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_;
113 ts_tangent_problem_ = NULL;
115 if(ts_adjoint_hessian_problem_ != NULL)
117 delete ts_adjoint_hessian_problem_;
118 ts_adjoint_hessian_problem_ = NULL;
120 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>::ReInit(algo_type);
126 return "InstatOptProblemContainer";
134 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
135 PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>,
138 if(ts_state_problem_ == NULL)
141 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
142 PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>,
143 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
146 return *ts_state_problem_;
155 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
158 if(ts_adjoint_problem_ == NULL)
160 ts_adjoint_problem_ =
new ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
161 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
164 return *ts_adjoint_problem_;
173 PRIMALTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
176 if(ts_tangent_problem_ == NULL)
178 ts_tangent_problem_ =
new PRIMALTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
179 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
182 return *ts_tangent_problem_;
191 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
194 if(ts_adjoint_hessian_problem_ == NULL)
196 ts_adjoint_hessian_problem_ =
new ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
197 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>(
OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,
200 return *ts_adjoint_hessian_problem_;
205 OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
206 PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>,
207 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* ts_state_problem_;
208 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
209 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* ts_adjoint_problem_;
210 PRIMALTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
211 SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH>* ts_tangent_problem_;
212 ADJOINTTSPROBLEM<OptProblemContainer<FUNCTIONAL_INTERFACE,FUNCTIONAL,PDE,DD,CONSTRAINTS,SPARSITYPATTERN,VECTOR,dopedim,dealdim,FE, DH>,
213 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:124
PRIMALTSPROBLEM< OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetTangentProblem()
Definition: instatoptproblemcontainer.h:174
void ReInit(std::string algo_type)
Definition: optproblemcontainer.h:1508
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:136
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:156
ADJOINTTSPROBLEM< OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & GetAdjointHessianProblem()
Definition: instatoptproblemcontainer.h:192