DOpE
|
#include <optproblemcontainer.h>
Public Member Functions | |
OptProblemContainer (FUNCTIONAL &functional, PDE &pde, CONSTRAINTS &constraints, SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > &STH) | |
virtual | ~OptProblemContainer () |
virtual std::string | GetName () const |
StateProblem < OptProblemContainer < FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >, PDE, DD, SPARSITYPATTERN, VECTOR, dealdim > & | GetStateProblem () |
OptProblemContainer < FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH > & | GetBaseProblem () |
void | ReInit (std::string algo_type) |
void | RegisterOutputHandler (DOpEOutputHandler< VECTOR > *OH) |
void | RegisterExceptionHandler (DOpEExceptionHandler< VECTOR > *OH) |
void | SetType (std::string type, unsigned int num=0) |
template<typename DATACONTAINER > | |
double | ElementFunctional (const DATACONTAINER &edc) |
double | PointFunctional (const std::map< std::string, const dealii::Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values) |
template<typename FACEDATACONTAINER > | |
double | BoundaryFunctional (const FACEDATACONTAINER &fdc) |
template<typename FACEDATACONTAINER > | |
double | FaceFunctional (const FACEDATACONTAINER &fdc) |
double | AlgebraicFunctional (const std::map< std::string, const dealii::Vector< double > * > &values, const std::map< std::string, const VECTOR * > &block_values) |
void | AlgebraicResidual (VECTOR &residual, const std::map< std::string, const dealii::Vector< double > * > &values, const std::map< std::string, const VECTOR * > &block_values) |
template<typename DATACONTAINER > | |
void | ElementEquation (const DATACONTAINER &edc, dealii::Vector< double > &local_vector, double scale, double scale_ico) |
template<typename DATACONTAINER > | |
void | ElementTimeEquation (const DATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale=1.) |
template<typename DATACONTAINER > | |
void | ElementTimeEquationExplicit (const DATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale=1.) |
template<typename DATACONTAINER > | |
void | ElementRhs (const DATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale=1.) |
void | PointRhs (const std::map< std::string, const dealii::Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs_vector, double scale=1.) |
template<typename DATACONTAINER > | |
void | ElementMatrix (const DATACONTAINER &dc, dealii::FullMatrix< double > &local_entry_matrix, double scale=1., double scale_ico=1.) |
template<typename DATACONTAINER > | |
void | ElementTimeMatrix (const DATACONTAINER &dc, dealii::FullMatrix< double > &local_entry_matrix) |
template<typename DATACONTAINER > | |
void | ElementTimeMatrixExplicit (const DATACONTAINER &dc, dealii::FullMatrix< double > &local_entry_matrix) |
template<typename FACEDATACONTAINER > | |
void | FaceEquation (const FACEDATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale, double scale_ico) |
template<typename FACEDATACONTAINER > | |
void | InterfaceEquation (const FACEDATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale, double scale_ico) |
template<typename FACEDATACONTAINER > | |
void | FaceRhs (const FACEDATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale=1.) |
template<typename FACEDATACONTAINER > | |
void | FaceMatrix (const FACEDATACONTAINER &dc, dealii::FullMatrix< double > &local_entry_matrix, double scale=1., double scale_ico=1.) |
template<typename FACEDATACONTAINER > | |
void | InterfaceMatrix (const FACEDATACONTAINER &dc, dealii::FullMatrix< double > &local_entry_matrix, double scale=1., double scale_ico=1.) |
template<typename FACEDATACONTAINER > | |
void | BoundaryEquation (const FACEDATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale, double scale_ico) |
template<typename FACEDATACONTAINER > | |
void | BoundaryRhs (const FACEDATACONTAINER &dc, dealii::Vector< double > &local_vector, double scale=1.) |
template<typename FACEDATACONTAINER > | |
void | BoundaryMatrix (const FACEDATACONTAINER &dc, dealii::FullMatrix< double > &local_matrix, double scale=1., double scale_ico=1.) |
void | ComputeLocalControlConstraints (VECTOR &constraints, const std::map< std::string, const dealii::Vector< double > * > &values, const std::map< std::string, const VECTOR * > &block_values) |
void | GetControlBoxConstraints (VECTOR &lb, VECTOR &ub) const |
const FE< dealdim, dealdim > & | GetFESystem () const |
bool | HasFaces () const |
bool | HasPoints () const |
bool | HasInterfaces () const |
dealii::UpdateFlags | GetUpdateFlags () const |
dealii::UpdateFlags | GetFaceUpdateFlags () const |
void | SetControlDirichletBoundaryColors (unsigned int color, const std::vector< bool > &comp_mask, const DOpEWrapper::Function< dealdim > *values) |
void | SetDirichletBoundaryColors (unsigned int color, const std::vector< bool > &comp_mask, const DD *values) |
const std::vector< unsigned int > & | GetDirichletColors () const |
const std::vector< unsigned int > & | GetTransposedDirichletColors () const |
const std::vector< bool > & | GetDirichletCompMask (unsigned int color) const |
const std::vector< bool > & | GetTransposedDirichletCompMask (unsigned int color) const |
const dealii::Function< dealdim > & | GetDirichletValues (unsigned int color, const std::map< std::string, const dealii::Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values) const |
const TransposedDirichletDataInterface < dealdim > & | GetTransposedDirichletValues (unsigned int color, const std::map< std::string, const dealii::Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values) const |
void | SetInitialValues (const dealii::Function< dealdim > *values) |
const dealii::Function< dealdim > & | GetInitialValues () const |
void | SetControlBoundaryEquationColors (unsigned int color) |
void | SetBoundaryEquationColors (unsigned int color) |
const std::vector< unsigned int > & | GetBoundaryEquationColors () const |
void | SetBoundaryFunctionalColors (unsigned int color) |
const std::vector< unsigned int > & | GetBoundaryFunctionalColors () const |
void | AddFunctional (FUNCTIONAL_INTERFACE *F) |
void | SetFunctionalForErrorEstimation (std::string functional_name) |
unsigned int | GetNFunctionals () const |
unsigned int | GetControlNBlocks () const |
unsigned int | GetStateNBlocks () const |
unsigned int | GetNBlocks () const |
unsigned int | GetDoFsPerBlock (unsigned int b) const |
const std::vector< unsigned int > & | GetDoFsPerBlock () const |
const dealii::ConstraintMatrix & | GetDoFConstraints () const |
std::string | GetDoFType () const |
std::string | GetFunctionalType () const |
std::string | GetFunctionalName () const |
std::string | GetConstraintType () const |
bool | NeedTimeFunctional () const |
bool | HasControlInDirichletData () const |
DOpEExceptionHandler< VECTOR > * | GetExceptionHandler () |
DOpEOutputHandler< VECTOR > * | GetOutputHandler () |
void | SetTime (double time, const TimeIterator &interval, bool initial=false) |
const SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > * | GetSpaceTimeHandler () const |
SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > * | GetSpaceTimeHandler () |
void | ComputeSparsityPattern (SPARSITYPATTERN &sparsity) const |
void | PostProcessConstraints (ConstraintVector< VECTOR > &g) const |
void | AddAuxiliaryControl (const ControlVector< VECTOR > *c, std::string name) |
void | AddAuxiliaryState (const StateVector< VECTOR > *c, std::string name) |
void | AddAuxiliaryConstraint (const ConstraintVector< VECTOR > *c, std::string name) |
const ControlVector< VECTOR > * | GetAuxiliaryControl (std::string name) const |
const StateVector< VECTOR > * | GetAuxiliaryState (std::string name) const |
void | DeleteAuxiliaryControl (std::string name) |
void | DeleteAuxiliaryState (std::string name) |
void | DeleteAuxiliaryConstraint (std::string name) |
const ConstraintVector< VECTOR > * | GetAuxiliaryConstraint (std::string name) |
template<typename INTEGRATOR > | |
void | AddAuxiliaryToIntegrator (INTEGRATOR &integrator) |
template<typename INTEGRATOR > | |
void | DeleteAuxiliaryFromIntegrator (INTEGRATOR &integrator) |
const std::map< std::string, unsigned int > & | GetFunctionalPosition () const |
unsigned int | GetStateNBlocks () |
std::vector< unsigned int > & | GetControlBlockComponent () |
std::vector< unsigned int > & | GetStateBlockComponent () |
template<typename DATACONTAINER > | |
void | Init_ElementEquation (const DATACONTAINER &edc, dealii::Vector< double > &local_vector, double scale, double scale_ico) |
template<typename DATACONTAINER > | |
void | Init_ElementRhs (const DATACONTAINER &edc, dealii::Vector< double > &local_vector, double scale) |
void | Init_PointRhs (const std::map< std::string, const dealii::Vector< double > * > ¶m_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs_vector, double scale=1.) |
template<typename DATACONTAINER > | |
void | Init_ElementMatrix (const DATACONTAINER &edc, dealii::FullMatrix< double > &local_entry_matrix, double scale, double scale_ico) |
bool | EEFunctionalIsCost () const |
template<typename DATACONTAINER > | |
void | ElementTimeMatrix (const DATACONTAINER &edc, FullMatrix< double > &local_entry_matrix) |
template<typename FACEDATACONTAINER > | |
void | FaceMatrix (const FACEDATACONTAINER &fdc, FullMatrix< double > &local_entry_matrix, double scale, double scale_ico) |
template<typename FACEDATACONTAINER > | |
void | InterfaceMatrix (const FACEDATACONTAINER &fdc, FullMatrix< double > &local_entry_matrix, double scale, double scale_ico) |
template<typename FACEDATACONTAINER > | |
void | BoundaryMatrix (const FACEDATACONTAINER &fdc, FullMatrix< double > &local_matrix, double scale, double scale_ico) |
Public Member Functions inherited from DOpE::ProblemContainerInternal< PDE > | |
ProblemContainerInternal (PDE &pde) | |
template<class EDC , class DWRC > | |
void | ElementErrorContribution (const EDC &edc, const DWRC &dwrc, std::vector< double > &element_contrib, double scale) |
template<class FDC , class DWRC > | |
void | FaceErrorContribution (const FDC &fdc, const DWRC &dwrc, std::vector< double > &error_contrib, double scale=1.) |
template<class FDC , class DWRC > | |
void | BoundaryErrorContribution (const FDC &dc, const DWRC &dwrc, std::vector< double > &, double scale=1.) |
const PDE & | GetPDE () const |
std::string | GetType () const |
unsigned int | GetTypeNum () const |
Protected Member Functions | |
FUNCTIONAL * | GetFunctional () |
const FUNCTIONAL * | GetFunctional () const |
CONSTRAINTS * | GetConstraints () |
const CONSTRAINTS * | GetConstraints () const |
const VECTOR * | GetBlockVector (const std::map< std::string, const VECTOR * > &values, std::string name) |
const dealii::Vector< double > * | GetVector (const std::map< std::string, const Vector< double > * > &values, std::string name) |
Protected Member Functions inherited from DOpE::ProblemContainerInternal< PDE > | |
PDE & | GetPDE () |
void | SetTypeInternal (std::string a) |
void | SetTypeNumInternal (unsigned int i) |
Container class for all stationary Optimization problems. This class collects all problem depended data needed to calculate the solution to the optimization problem
FUNCTIONAL_INTERFACE | A generic interface to arbitrary functionals to be evaluated. |
FUNCTIONAL | The cost functional, see FunctionalInterface for details. |
PDE | The description of the PDE, see PDEInterface for details. |
DD | The description of the Dirichlet data, see DirichletDataInterface for details. |
CONSTRAINTS | The description of, possible, additional constraints for the optimization problem, see ConstraintInterface for details. |
SPARSITYPATTERN | The sparsity pattern to be used in the stiffness matrix. |
VECTOR | The vector type in which the coordinate vector of the solution is to be stored. |
dopedim | The dimension of the domain in which the control is considered. |
dealdim | The dimension of the domain in which the PDE is considered. |
FE | The finite element under consideration. |
DH | The spatial DoFHandler to be used when evaluating the weak form. |
DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::OptProblemContainer | ( | FUNCTIONAL & | functional, |
PDE & | pde, | ||
CONSTRAINTS & | constraints, | ||
SpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dopedim, dealdim > & | STH | ||
) |
|
virtual |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::AddAuxiliaryConstraint | ( | const ConstraintVector< VECTOR > * | c, |
std::string | name | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::AddAuxiliaryControl | ( | const ControlVector< VECTOR > * | c, |
std::string | name | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::AddAuxiliaryState | ( | const StateVector< VECTOR > * | c, |
std::string | name | ||
) |
|
inline |
Adds the auxiliary Vectors from the integrator, so that their values are available for the integrated object.
integrator | The integrator in which the vecors should be available |
|
inline |
Adds a functional which will be evaluated after/during (in time dependent equations) the computation of the state solution.
Note that you have to specify a the GetName() method for your functional, and that you can not add two functionals with the same name!
double DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::AlgebraicFunctional | ( | const std::map< std::string, const dealii::Vector< double > * > & | values, |
const std::map< std::string, const VECTOR * > & | block_values | ||
) |
This function returns a functional value that is computed entirely out of the knowledge of the coordinate vectors of state and control.
No integration routine is implemented inbetween!
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::AlgebraicResidual | ( | VECTOR & | residual, |
const std::map< std::string, const dealii::Vector< double > * > & | values, | ||
const std::map< std::string, const VECTOR * > & | block_values | ||
) |
This function returns a residual to an equation that is depending directly on the knowledge of the coordinate vectors of state and control.
No integration routine is implemented inbetween!
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::BoundaryEquation | ( | const FACEDATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale, | ||
double | scale_ico | ||
) |
Computes the value of the boundary on a element. It has the same functionality as ElementEquation. We refer to its documentation.
double DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::BoundaryFunctional | ( | const FACEDATACONTAINER & | fdc | ) |
This function returns a functional value of a part of the outer boundary or the whole boundary. Different types of functionals have been implemented so far: `cost_functional' and `aux_functional'. The first one is needed for optimization problems. The second one can be used for the computation of arbitrary functionals that are defined on the boundary, e.g., stresses.
FACEDATACONTAINER Class of the datacontainer in use, distinguishes between hp- and classical case.
fdc | A DataContainer holding all the needed information of the face. |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::BoundaryMatrix | ( | const FACEDATACONTAINER & | dc, |
dealii::FullMatrix< double > & | local_matrix, | ||
double | scale = 1. , |
||
double | scale_ico = 1. |
||
) |
Computes the value of the boundary on a element. It has the same functionality as ElementMatrix. We refer to its documentation.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::BoundaryMatrix | ( | const FACEDATACONTAINER & | fdc, |
FullMatrix< double > & | local_matrix, | ||
double | scale, | ||
double | scale_ico | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::BoundaryRhs | ( | const FACEDATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale = 1. |
||
) |
Computes the value of the boundary on a element. It has the same functionality as ElementRhs. We refer to its documentation.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ComputeLocalControlConstraints | ( | VECTOR & | constraints, |
const std::map< std::string, const dealii::Vector< double > * > & | values, | ||
const std::map< std::string, const VECTOR * > & | block_values | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ComputeSparsityPattern | ( | SPARSITYPATTERN & | sparsity | ) | const |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::DeleteAuxiliaryConstraint | ( | std::string | name | ) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::DeleteAuxiliaryControl | ( | std::string | name | ) |
|
inline |
Deletes the auxiliary Vectors from the integrator. This is required to add vecors of the same name but possibly at a different point in time.
integrator | The integrator in which the vecors should be available |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::DeleteAuxiliaryState | ( | std::string | name | ) |
|
inline |
Returns whether the functional for error estimation is the costfunctional
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementEquation | ( | const DATACONTAINER & | edc, |
dealii::Vector< double > & | local_vector, | ||
double | scale, | ||
double | scale_ico | ||
) |
Computes the value of the element equation which corresponds to the residuum in nonlinear cases. This function is the basis for all stationary examples and unsteady configurations as well. However, in unsteady computations one has to differentiate between explicit (diffusion, convection) and implicit terms (pressure, incompressibility). For that reason a second function ElementEquationImplicit also exists.
If no differentiation between explicit and implicit terms is needed this function should be used.
DATACONTAINER Class of the datacontainer in use, distinguishes between hp- and classical case.
edc | A DataContainer holding all the needed information of the element. |
local_vector | This vector contains the locally computed values of the element equation. For more information on dealii::Vector, please visit, the deal.ii manual pages. |
scale | A scaling factor which is -1 or 1 depending on the subroutine to compute. |
scale_ico | A scaling factor for terms which will be treated fully implicit in an instationary equation. |
double DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementFunctional | ( | const DATACONTAINER & | edc | ) |
This function returns a functional value on a element. Different types of functionals have been implemented so far: `cost_functional' and `aux_functional'. The first one is needed for optimization problems. The second one can be used for the computation of arbitrary functionals that are defined on elements, e.g., drag and lift computation. Or computations of deflections and deformations.
DATACONTAINER Class of the datacontainer, distinguishes between hp- and classical case.
edc | A DataContainer holding all the needed information of the element. |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementMatrix | ( | const DATACONTAINER & | dc, |
dealii::FullMatrix< double > & | local_entry_matrix, | ||
double | scale = 1. , |
||
double | scale_ico = 1. |
||
) |
Computes the value of the element matrix which is derived by computing the directional derivatives of the residuum equation of the PDE problem under consideration.
The differentiation between explicit and implicit terms is equivalent to the ElementEquation. We refer to its documentation.
Moreover, you find an extensive explication in the time step algorithms, e.g., backward_euler_problem.h.
DATACONTAINER Class of the datacontainer in use, distinguishes between hp- and classical case.
edc | A DataContainer holding all the needed information |
scale | A scaling factor which is -1 or 1 depending on the subroutine to compute. |
scale_ico | A scaling factor for terms which will be treated fully implicit in an instationary equation. |
local_entry_matrix | The local matrix is quadratic and has size local DoFs times local DoFs and is filled by the locally computed values. For more information of its functionality, please search for the keyword `FullMatrix' in the deal.ii manual. |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementRhs | ( | const DATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale = 1. |
||
) |
Computes the value of the right-hand side of the problem at hand.
DATACONTAINER Class of the datacontainer in use, distinguishes between hp- and classical case.
edc | A DataContainer holding all the needed information of the element. |
local_vector | This vector contains the locally computed values of the element equation. For more information on dealii::Vector, please visit, the deal.ii manual pages. |
scale | A scaling factor which is -1 or 1 depending on the subroutine to compute. |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementTimeEquation | ( | const DATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale = 1. |
||
) |
This function has the same functionality as the ElementEquation function. It is needed for time derivatives when working with time dependent problems.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementTimeEquationExplicit | ( | const DATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale = 1. |
||
) |
This function has the same functionality as the ElementTimeEquation function. It is mainly needed for fluid-structure interaction problems and should be used when the term of the time derivative contains nonlinear terms, i.e. $ u v + ...$ in which u and v denote solution variables. Secondly, this function should be used when the densities are not constant: $ v + ...$
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementTimeMatrix | ( | const DATACONTAINER & | dc, |
dealii::FullMatrix< double > & | local_entry_matrix | ||
) |
Computes the value of the element matrix which is derived by computing the directional derivatives of the time residuum of the PDE problem under consideration.
The differentiation between explicit and implicit terms is equivalent to the ElementTimeEquation. We refer to its documentation.
Moreover, you find an extensive explication in the time step algorithms, e.g., backward_euler_problem.h.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementTimeMatrix | ( | const DATACONTAINER & | edc, |
FullMatrix< double > & | local_entry_matrix | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ElementTimeMatrixExplicit | ( | const DATACONTAINER & | dc, |
dealii::FullMatrix< double > & | local_entry_matrix | ||
) |
Computes the value of the element matrix which is derived by computing the directional derivatives of the time residuum of the PDE problem under consideration.
This function is only needed for fluid-structure interaction problems. Please ask Thomas Wick WHY and HOW to use this function.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::FaceEquation | ( | const FACEDATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale, | ||
double | scale_ico | ||
) |
Computes the value of face on a element. It has the same functionality as ElementEquation. We refer to its documentation.
double DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::FaceFunctional | ( | const FACEDATACONTAINER & | fdc | ) |
This function returns a functional value of quantities that are defined on faces. This function is very similar to the BoundaryFunctional and has the same functionality.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::FaceMatrix | ( | const FACEDATACONTAINER & | dc, |
dealii::FullMatrix< double > & | local_entry_matrix, | ||
double | scale = 1. , |
||
double | scale_ico = 1. |
||
) |
Computes the value of face on a element. It has the same functionality as ElementMatrix. We refer to its documentation.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::FaceMatrix | ( | const FACEDATACONTAINER & | fdc, |
FullMatrix< double > & | local_entry_matrix, | ||
double | scale, | ||
double | scale_ico | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::FaceRhs | ( | const FACEDATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale = 1. |
||
) |
Computes the value of face on a element. It has the same functionality as ElementRhs. We refer to its documentation.
|
inline |
const ControlVector< VECTOR > * DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetAuxiliaryControl | ( | std::string | name | ) | const |
const StateVector< VECTOR > * DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetAuxiliaryState | ( | std::string | name | ) | const |
|
inline |
|
inlineprotected |
const std::vector< unsigned int > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetBoundaryEquationColors | ( | ) | const |
const std::vector< unsigned int > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetBoundaryFunctionalColors | ( | ) | const |
|
inlineprotected |
|
inlineprotected |
std::string DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetConstraintType | ( | ) | const |
|
inline |
|
inline |
This is to get the lower and upper control box constraints
unsigned int DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetControlNBlocks | ( | ) | const |
const std::vector< unsigned int > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDirichletColors | ( | ) | const |
const std::vector< bool > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDirichletCompMask | ( | unsigned int | color | ) | const |
const Function< dealdim > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDirichletValues | ( | unsigned int | color, |
const std::map< std::string, const dealii::Vector< double > * > & | param_values, | ||
const std::map< std::string, const VECTOR * > & | domain_values | ||
) | const |
const dealii::ConstraintMatrix & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDoFConstraints | ( | ) | const |
unsigned int DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDoFsPerBlock | ( | unsigned int | b | ) | const |
const std::vector< unsigned int > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDoFsPerBlock | ( | ) | const |
std::string DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetDoFType | ( | ) | const |
|
inline |
UpdateFlags DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetFaceUpdateFlags | ( | ) | const |
const FE< dealdim, dealdim > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetFESystem | ( | ) | const |
|
protected |
|
protected |
std::string DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetFunctionalName | ( | ) | const |
|
inline |
std::string DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetFunctionalType | ( | ) | const |
|
inline |
|
inlinevirtual |
unsigned int DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetNBlocks | ( | ) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
unsigned int DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetStateNBlocks | ( | ) | const |
|
inline |
|
inline |
Returns a description of the PDE
const std::vector< unsigned int > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetTransposedDirichletColors | ( | ) | const |
const std::vector< bool > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetTransposedDirichletCompMask | ( | unsigned int | color | ) | const |
const TransposedDirichletDataInterface< dealdim > & DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetTransposedDirichletValues | ( | unsigned int | color, |
const std::map< std::string, const dealii::Vector< double > * > & | param_values, | ||
const std::map< std::string, const VECTOR * > & | domain_values | ||
) | const |
UpdateFlags DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::GetUpdateFlags | ( | ) | const |
|
inlineprotected |
bool DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::HasControlInDirichletData | ( | ) | const |
bool DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::HasFaces | ( | ) | const |
This function determines whether a loop over all faces is required or not.
bool DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::HasInterfaces | ( | ) | const |
This function determines whether a loop over all faces is required or not.
bool DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::HasPoints | ( | ) | const |
This function determines whether point evaluations are required or not.
|
inline |
|
inline |
|
inline |
|
inline |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::InterfaceEquation | ( | const FACEDATACONTAINER & | dc, |
dealii::Vector< double > & | local_vector, | ||
double | scale, | ||
double | scale_ico | ||
) |
Computes the product of two different finite elements on a interior face. It has the same functionality as ElementEquation. We refer to its documentation.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::InterfaceMatrix | ( | const FACEDATACONTAINER & | dc, |
dealii::FullMatrix< double > & | local_entry_matrix, | ||
double | scale = 1. , |
||
double | scale_ico = 1. |
||
) |
Computes the product of two different finite elements on an interior face. It has the same functionality as ElementMatrix. We refer to its documentation.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::InterfaceMatrix | ( | const FACEDATACONTAINER & | fdc, |
FullMatrix< double > & | local_entry_matrix, | ||
double | scale, | ||
double | scale_ico | ||
) |
bool DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::NeedTimeFunctional | ( | ) | const |
double DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::PointFunctional | ( | const std::map< std::string, const dealii::Vector< double > * > & | param_values, |
const std::map< std::string, const VECTOR * > & | domain_values | ||
) |
This function returns a functional value of a point. Different types of functionals have been implemented so far: `cost_functional' and `aux_functional'. The first one is needed for optimization problems. The second one can be used for the computation of arbitrary functionals that are defined in points. For example, deflection or pressure values in points.
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::PointRhs | ( | const std::map< std::string, const dealii::Vector< double > * > & | param_values, |
const std::map< std::string, const VECTOR * > & | domain_values, | ||
VECTOR & | rhs_vector, | ||
double | scale = 1. |
||
) |
Computes the value of the right-hand side of the problem at hand, if it contains pointevaluations.
param_values | A std::map containing parameter data (e.g. non space dependent data). If the control is done by parameters, it is contained in this map at the position "control". |
domain_values | A std::map containing domain data (e.g. nodal vectors for FE-Functions). If the control is distributed, it is contained in this map at the position "control". The state may always be found in this map at the position "state" |
rhs_vector | This vector contains the complete point-rhs. |
scale | A scaling factor which is -1 or 1 depending on the subroutine to compute. |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::PostProcessConstraints | ( | ConstraintVector< VECTOR > & | g | ) | const |
|
inline |
|
inline |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::ReInit | ( | std::string | algo_type | ) |
This function calls the ReInit function of the SpaceTimeHandler
algo_type | Specifies the type of the algorithm Actually, only the `reduced' algorithm is implemented. |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetBoundaryEquationColors | ( | unsigned int | color | ) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetBoundaryFunctionalColors | ( | unsigned int | color | ) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetControlBoundaryEquationColors | ( | unsigned int | color | ) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetControlDirichletBoundaryColors | ( | unsigned int | color, |
const std::vector< bool > & | comp_mask, | ||
const DOpEWrapper::Function< dealdim > * | values | ||
) |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetDirichletBoundaryColors | ( | unsigned int | color, |
const std::vector< bool > & | comp_mask, | ||
const DD * | values | ||
) |
|
inline |
Through this function one sets the functional for the error estimation. The name given by functional_name is looked up in aux_functionals_, so the function assumes that the functional intended for the error estimation is set prior by AddFunctional.
functional_name | The name of the functional for the error estimation. |
|
inline |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetTime | ( | double | time, |
const TimeIterator & | interval, | ||
bool | initial = false |
||
) |
Sets the actual time.
time | The actual time. |
interval | The actual interval. Make sure that time lies in interval! |
initial | Do we solve at the initial time? |
void DOpE::OptProblemContainer< FUNCTIONAL_INTERFACE, FUNCTIONAL, PDE, DD, CONSTRAINTS, SPARSITYPATTERN, VECTOR, dopedim, dealdim, FE, DH >::SetType | ( | std::string | type, |
unsigned int | num = 0 |
||
) |
Sets the type of the problem.
type | Specifies the type of the problem, like 'state', 'adjoint' etc. |
|
friend |