DOpE
Public Member Functions | Friends
DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH > Class Template Reference

#include <pdeproblemcontainer.h>

Inheritance diagram for DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >:
DOpE::ProblemContainerInternal< PDE >

Public Member Functions

 PDEProblemContainer (PDE &pde, StateSpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dealdim > &STH)
 
virtual ~PDEProblemContainer ()
 
virtual std::string GetName () const
 
StateProblem
< PDEProblemContainer< PDE, DD,
SPARSITYPATTERN, VECTOR,
dealdim, FE, DH >, PDE, DD,
SPARSITYPATTERN, VECTOR,
dealdim > & 
GetStateProblem ()
 
PDEProblemContainer< PDE, DD,
SPARSITYPATTERN, VECTOR,
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 > * > &param_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)
 
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 > * > &param_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.)
 
const FE< dealdim, dealdim > & GetFESystem () const
 
bool HasFaces () const
 
bool HasPoints () const
 
bool HasInterfaces () const
 
dealii::UpdateFlags GetUpdateFlags () const
 
dealii::UpdateFlags GetFaceUpdateFlags () const
 
void SetDirichletBoundaryColors (unsigned int color, const std::vector< bool > &comp_mask, const DD *values)
 
const std::vector< unsigned int > & GetDirichletColors () const
 
const std::vector< bool > & GetDirichletCompMask (unsigned int color) const
 
const dealii::Function< dealdim > & 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
 
void SetInitialValues (const dealii::Function< dealdim > *values)
 
const dealii::Function< dealdim > & GetInitialValues () const
 
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 (FunctionalInterface< ElementDataContainer, FaceDataContainer, DH, VECTOR, dealdim > *F)
 
void SetFunctionalForErrorEstimation (std::string functional_name)
 
unsigned int GetNFunctionals () 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
 
bool NeedTimeFunctional () const
 
DOpEExceptionHandler< VECTOR > * GetExceptionHandler ()
 
DOpEOutputHandler< VECTOR > * GetOutputHandler ()
 
void SetTime (double time, unsigned int time_dof_number, const TimeIterator &interval)
 
const StateSpaceTimeHandler
< FE, DH, SPARSITYPATTERN,
VECTOR, dealdim > * 
GetSpaceTimeHandler () const
 
StateSpaceTimeHandler< FE, DH,
SPARSITYPATTERN, VECTOR,
dealdim > * 
GetSpaceTimeHandler ()
 
void ComputeSparsityPattern (SPARSITYPATTERN &sparsity) const
 
template<typename INTEGRATOR >
void AddAuxiliaryToIntegrator (INTEGRATOR &)
 
template<typename INTEGRATOR >
void DeleteAuxiliaryFromIntegrator (INTEGRATOR &)
 
unsigned int GetStateNBlocks ()
 
std::vector< unsigned int > & GetStateBlockComponent ()
 
const std::map< std::string,
unsigned int > & 
GetFunctionalPosition () const
 
template<typename ELEMENTITERATOR >
bool AtInterface (ELEMENTITERATOR &element, unsigned int face) 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
 

Friends

class StateProblem< PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >, PDE, DD, SPARSITYPATTERN, VECTOR, dealdim >
 

Additional Inherited Members

- Protected Member Functions inherited from DOpE::ProblemContainerInternal< PDE >
PDE & GetPDE ()
 
void SetTypeInternal (std::string a)
 
void SetTypeNumInternal (unsigned int i)
 

Detailed Description

template<typename PDE, typename DD, typename SPARSITYPATTERN, typename VECTOR, int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
class DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >

Container class for all stationary PDE problems. This class collects all problem depended data needed to calculate the solution to the PDE.

Template Parameters
PDEThe description of the PDE, see PDEInterface for details.
DDThe description of the Dirichlet data, see DirichletDataInterface for details.
SPARSITYPATTERNThe sparsity pattern to be used in the stiffness matrix.
VECTORThe vector type in which the coordinate vector of the solution is to be stored.
dealdimThe dimension of the domain in which the PDE is considered.
FEThe finite element under consideration.
DHThe spatial DoFHandler to be used when evaluating the weak form.

Constructor & Destructor Documentation

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::PDEProblemContainer ( PDE &  pde,
StateSpaceTimeHandler< FE, DH, SPARSITYPATTERN, VECTOR, dealdim > &  STH 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::~PDEProblemContainer ( )
virtual

Member Function Documentation

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename INTEGRATOR >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::AddAuxiliaryToIntegrator ( INTEGRATOR &  )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::AddFunctional ( FunctionalInterface< ElementDataContainer, FaceDataContainer, DH, VECTOR, dealdim > *  F)
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!

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
double DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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!

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename ELEMENTITERATOR >
bool DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::AtInterface ( ELEMENTITERATOR &  element,
unsigned int  face 
) const
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::BoundaryEquation ( const FACEDATACONTAINER &  dc,
dealii::Vector< double > &  local_vector,
double  scale,
double  scale_ico 
)

Computes the value of face on a boundary. It has the same functionality as ElementEquation. We refer to its documentation.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
double DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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', `aux_functional' and 'functional_for_ee. 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. The last one is needed if one watns to use the goal oriented adaptive grid refinement based on the DWR method.

FACEDATACONTAINER Class of the datacontainer in use, distinguishes between hp- and classical case.

Parameters
fdcA DataContainer holding all the needed information of the face.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::BoundaryMatrix ( const FACEDATACONTAINER &  fdc,
FullMatrix< double > &  local_matrix,
double  scale,
double  scale_ico 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::ComputeSparsityPattern ( SPARSITYPATTERN &  sparsity) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename INTEGRATOR >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::DeleteAuxiliaryFromIntegrator ( INTEGRATOR &  )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

Parameters
edcA DataContainer holding all the needed information of the element
local_vectorThis vector contains the locally computed values of the element equation. For more information on dealii::Vector, please visit, the deal.ii manual pages.
scaleA scaling factor which is -1 or 1 depending on the subroutine to compute.
scale_icoA scaling factor for terms which will be treated fully implicit in an instationary equation.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
double DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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', `aux_functional' and 'functional_for_ee'. 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. The last one is needed if one wants to use the goal oriented adaptive grid refinement based on the DWR method.

DATACONTAINER Class of the datacontainer, distinguishes between hp- and classical case.

Parameters
edcA DataContainer holding all the needed information of the face.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

Parameters
edcA DataContainer holding all the needed information
local_entry_matrixThe 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.
scaleA scaling factor which is -1 or 1 depending on the subroutine to compute.
scale_icoA scaling factor for terms which will be treated fully implicit in an instationary equation.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

Parameters
edcA DataContainer holding all the needed information
local_vectorThis vector contains the locally computed values of the element equation. For more information on dealii::Vector, please visit, the deal.ii manual pages.
scaleA scaling factor which is -1 or 1 depending on the subroutine to compute.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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 needed for problems with nonlinearities in the time derivative, like fluid-structure interaction problems and has special structure.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::ElementTimeMatrix ( const DATACONTAINER &  edc,
FullMatrix< double > &  local_entry_matrix 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename DATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
double DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::FaceMatrix ( const FACEDATACONTAINER &  fdc,
FullMatrix< double > &  local_entry_matrix,
double  scale,
double  scale_ico 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
PDEProblemContainer<PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH>& DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetBaseProblem ( )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const std::vector< unsigned int > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetBoundaryEquationColors ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const std::vector< unsigned int > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetBoundaryFunctionalColors ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const std::vector< unsigned int > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetDirichletColors ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const std::vector< bool > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetDirichletCompMask ( unsigned int  color) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const Function< dealdim > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const dealii::ConstraintMatrix & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetDoFConstraints ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
unsigned int DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetDoFsPerBlock ( unsigned int  b) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const std::vector< unsigned int > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetDoFsPerBlock ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
std::string DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetDoFType ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
DOpEExceptionHandler<VECTOR>* DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetExceptionHandler ( )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
UpdateFlags DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetFaceUpdateFlags ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
const FE< dealdim, dealdim > & DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetFESystem ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
std::string DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetFunctionalName ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
const std::map<std::string, unsigned int>& DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetFunctionalPosition ( ) const
inline

FunctionalPosition maps the name of the cost/auxiliary functionals to their position in ReducedProblemInterface_Base::_functional_values.

TODO This should not be public!

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
std::string DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetFunctionalType ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
const dealii::Function<dealdim>& DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetInitialValues ( ) const
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
virtual std::string DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetName ( ) const
inlinevirtual
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
unsigned int DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetNBlocks ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
unsigned int DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetNFunctionals ( ) const
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
DOpEOutputHandler<VECTOR>* DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetOutputHandler ( )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
const StateSpaceTimeHandler<FE, DH, SPARSITYPATTERN, VECTOR, dealdim>* DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetSpaceTimeHandler ( ) const
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
StateSpaceTimeHandler<FE, DH, SPARSITYPATTERN, VECTOR, dealdim>* DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetSpaceTimeHandler ( )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
std::vector<unsigned int>& DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetStateBlockComponent ( )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
unsigned int DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetStateNBlocks ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
unsigned int DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetStateNBlocks ( )
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
StateProblem< PDEProblemContainer<PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH>, PDE, DD, SPARSITYPATTERN, VECTOR, dealdim>& DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetStateProblem ( )
inline

Returns a description of the PDE

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
UpdateFlags DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::GetUpdateFlags ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
bool DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::HasFaces ( ) const

This function determines whether a loop over all faces is required or not.

Returns
Returns whether or not this functional has components on faces between elements. The default value is false.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
bool DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::HasInterfaces ( ) const

This function determines whether a loop over all faces is required or not.

Returns
Returns whether or not this functional needs to compute the product of two different finite element functions across an internal face.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
bool DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::HasPoints ( ) const

Do we need the evaluation of PointRhs?

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
template<typename FACEDATACONTAINER >
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::InterfaceMatrix ( const FACEDATACONTAINER &  fdc,
FullMatrix< double > &  local_entry_matrix,
double  scale,
double  scale_ico 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
bool DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::NeedTimeFunctional ( ) const
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
double DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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', `aux_functional' and 'functional_for_ee. 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. The last one is needed if one watns to use the goal oriented adaptive grid refinement based on the DWR method.

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, 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.

Parameters
param_valuesA 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_valuesA 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_vectorThis vector contains the complete point-rhs.
scaleA scaling factor which is -1 or 1 depending on the subroutine to compute.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::RegisterExceptionHandler ( DOpEExceptionHandler< VECTOR > *  OH)
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::RegisterOutputHandler ( DOpEOutputHandler< VECTOR > *  OH)
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::ReInit ( std::string  algo_type)

This function calls the ReInit function of the StateSpaceTimeHandler

Parameters
algo_typeSpecifies the type of the algorithm Actually, only the `reduced' algorithm is implemented.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetBoundaryEquationColors ( unsigned int  color)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetBoundaryFunctionalColors ( unsigned int  color)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetDirichletBoundaryColors ( unsigned int  color,
const std::vector< bool > &  comp_mask,
const DD *  values 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetFunctionalForErrorEstimation ( std::string  functional_name)
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!

Parameters
functional_nameThe name of the functional for the error estimation.
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetInitialValues ( const dealii::Function< dealdim > *  values)
inline
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetTime ( double  time,
unsigned int  time_dof_number,
const TimeIterator interval 
)
template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE, template< int, int > class DH>
void DOpE::PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE, DH >::SetType ( std::string  type,
unsigned int  num = 0 
)

Sets the type of the problem.

Parameters
typeSpecifies the type of the problem, like 'state', 'adjoint' etc.

Friends And Related Function Documentation

template<typename PDE , typename DD , typename SPARSITYPATTERN , typename VECTOR , int dealdim, template< int, int > class FE = dealii::FESystem, template< int, int > class DH = dealii::DoFHandler>
friend class StateProblem< PDEProblemContainer< PDE, DD, SPARSITYPATTERN, VECTOR, dealdim, FE,DH >, PDE, DD, SPARSITYPATTERN, VECTOR, dealdim >
friend

The documentation for this class was generated from the following file: