24 #ifndef _INSTAT_OPT_PROBLEM_CONTAINER_
25 #define _INSTAT_OPT_PROBLEM_CONTAINER_
59 template<
template<
typename BASE_PROB,
typename SPARSITYPATTERN,
typename VECTOR,
int dopedim,
int dealdim,
template<
int,
int>
class FE,
template<
int,
int>
class DH>
class PRIMALTSPROBLEM,
60 template<typename BASE_PROB, typename SPARSITYPATTERN, typename VECTOR,int dopedim, int dealdim, template<int, int> class FE, template<int, int> class DH> class ADJOINTTSPROBLEM,
61 typename FUNCTIONAL_INTERFACE, typename FUNCTIONAL, typename PDE,
62 typename DD, typename CONSTRAINTS, typename SPARSITYPATTERN,
63 typename VECTOR, int dopedim, int dealdim,
64 template<int, int> class FE = FESystem,
65 template<
int,
int>
class DH = dealii::DoFHandler>
67 SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>
72 :
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>(
73 functional,pde,constraints,STH), _ts_state_problem(NULL), _ts_adjoint_problem(NULL),
74 _ts_tangent_problem(NULL), _ts_adjoint_hessian_problem(NULL)
80 if(_ts_state_problem != NULL)
82 delete _ts_state_problem;
84 if(_ts_adjoint_problem != NULL)
86 delete _ts_adjoint_problem;
88 if(_ts_tangent_problem != NULL)
90 delete _ts_tangent_problem;
92 if(_ts_adjoint_hessian_problem != NULL)
94 delete _ts_adjoint_hessian_problem;
100 if(_ts_state_problem != NULL)
102 delete _ts_state_problem;
103 _ts_state_problem = NULL;
105 if(_ts_adjoint_problem != NULL)
107 delete _ts_adjoint_problem;
108 _ts_adjoint_problem = NULL;
110 if(_ts_tangent_problem != NULL)
112 delete _ts_tangent_problem;
114 if(_ts_adjoint_hessian_problem != NULL)
116 delete _ts_adjoint_hessian_problem;
118 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>::ReInit(algo_type);
124 return "InstatOptProblemContainer";
132 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
133 PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>,
136 if(_ts_state_problem == NULL)
139 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
140 PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>,
141 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
144 return *_ts_state_problem;
153 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
156 if(_ts_adjoint_problem == NULL)
158 _ts_adjoint_problem =
new ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
159 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
162 return *_ts_adjoint_problem;
171 PRIMALTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
174 if(_ts_tangent_problem == NULL)
176 _ts_tangent_problem =
new PRIMALTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
177 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
180 return *_ts_tangent_problem;
189 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
192 if(_ts_adjoint_hessian_problem == NULL)
194 _ts_adjoint_hessian_problem =
new ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
195 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
198 return *_ts_adjoint_hessian_problem;
203 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
204 PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>,
205 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* _ts_state_problem;
206 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
207 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* _ts_adjoint_problem;
208 PRIMALTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
209 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* _ts_tangent_problem;
210 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
211 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* _ts_adjoint_hessian_problem;
Definition: stateproblem.h:48
Definition: instatoptproblemcontainer.h:66
std::string GetName() const
Definition: instatoptproblemcontainer.h:122
PRIMALTSPROBLEM< OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetTangentProblem()
Definition: instatoptproblemcontainer.h:172
void ReInit(std::string algo_type)
Definition: optproblemcontainer.h:1360
void ReInit(std::string algo_type)
Definition: instatoptproblemcontainer.h:98
PRIMALTSPROBLEM< StateProblem< OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, PDE, DD, SPARSITYPATTERN, VECTOR, dealdim >, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetStateProblem()
Definition: instatoptproblemcontainer.h:134
Definition: optproblemcontainer.h:101
~InstatOptProblemContainer()
Definition: instatoptproblemcontainer.h:78
InstatOptProblemContainer(FUNCTIONAL &functional, PDE &pde, CONSTRAINTS &constraints, SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > &STH)
Definition: instatoptproblemcontainer.h:70
Definition: spacetimehandler.h:71
OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetBaseProblem()
Definition: optproblemcontainer.h:145
ADJOINTTSPROBLEM< OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetAdjointProblem()
Definition: instatoptproblemcontainer.h:154
ADJOINTTSPROBLEM< OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetAdjointHessianProblem()
Definition: instatoptproblemcontainer.h:190