DOpE
Public Member Functions | Protected Member Functions
DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim > Class Template Referenceabstract

#include <constraintinterface.h>

Inheritance diagram for DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >:
DOpE::FunctionalInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim > DOpE::NoConstraints< EDC, FDC, DH, VECTOR, dopedim, dealdim >

Public Member Functions

 ConstraintInterface ()
 
 ~ConstraintInterface ()
 
virtual void EvaluateLocalControlConstraints (const VECTOR &control, VECTOR &constraints)=0
 
virtual void GetControlBoxConstraints (VECTOR &lb, VECTOR &ub) const =0
 
void SetProblemType (std::string type, unsigned int num)
 
virtual void PostProcessConstraints (ConstraintVector< VECTOR > &) const
 
- Public Member Functions inherited from DOpE::FunctionalInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >
 FunctionalInterface ()
 
virtual ~FunctionalInterface ()
 
virtual double ElementValue (const EDC< DH, VECTOR, dealdim > &edc)
 
virtual void ElementValue_U (const EDC< DH, VECTOR, dealdim > &edc, dealii::Vector< double > &local_vector, double scale)
 
virtual void ElementValue_Q (const EDC< DH, VECTOR, dealdim > &edc, dealii::Vector< double > &local_vector, double scale)
 
virtual void ElementValue_UU (const EDC< DH, VECTOR, dealdim > &edc, dealii::Vector< double > &local_vector, double scale)
 
virtual void ElementValue_QU (const EDC< DH, VECTOR, dealdim > &edc, dealii::Vector< double > &local_vector, double scale)
 
virtual void ElementValue_UQ (const EDC< DH, VECTOR, dealdim > &edc, dealii::Vector< double > &local_vector, double scale)
 
virtual void ElementValue_QQ (const EDC< DH, VECTOR, dealdim > &edc, dealii::Vector< double > &local_vector, double scale)
 
virtual double PointValue (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values)
 
virtual void PointValue_U (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs, double scale)
 
virtual void PointValue_Q (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs, double scale)
 
virtual void PointValue_UU (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs, double scale)
 
virtual void PointValue_QU (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs, double scale)
 
virtual void PointValue_UQ (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs, double scale)
 
virtual void PointValue_QQ (const DOpEWrapper::DoFHandler< dopedim, DH > &control_dof_handler, const DOpEWrapper::DoFHandler< dealdim, DH > &state_dof_handler, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values, VECTOR &rhs, double scale)
 
virtual double BoundaryValue (const FDC< DH, VECTOR, dealdim > &fdc)
 
virtual void BoundaryValue_U (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void BoundaryValue_Q (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void BoundaryValue_UU (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void BoundaryValue_QU (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void BoundaryValue_UQ (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void BoundaryValue_QQ (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual double FaceValue (const FDC< DH, VECTOR, dealdim > &fdc)
 
virtual void FaceValue_U (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void FaceValue_Q (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void FaceValue_UU (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void FaceValue_QU (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void FaceValue_UQ (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual void FaceValue_QQ (const FDC< DH, VECTOR, dealdim > &fdc, dealii::Vector< double > &local_vector, double scale)
 
virtual double AlgebraicValue (const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values)
 
virtual void AlgebraicGradient_Q (VECTOR &gradient, const std::map< std::string, const dealii::Vector< double > * > &param_values, const std::map< std::string, const VECTOR * > &domain_values)
 
virtual std::string GetType () const
 
virtual std::string GetName () const
 
virtual bool NeedTime () const
 
virtual void SetTime (double) const
 
virtual dealii::UpdateFlags GetUpdateFlags () const
 
virtual dealii::UpdateFlags GetFaceUpdateFlags () const
 
virtual bool HasFaces () const
 
virtual bool HasPoints () const
 
void SetProblemType (std::string type)
 

Protected Member Functions

std::string GetProblemType () const
 
unsigned int GetProblemTypeNum () const
 
- Protected Member Functions inherited from DOpE::FunctionalInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >
std::string GetProblemType () const
 

Detailed Description

template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR, int dopedim, int dealdim>
class DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >

A template for an arbitrary control constraint. GlobalConstraints are dealt with as a Functional, hence all functions from Functionals are inherited.

Template Parameters
<EDC>The ElementDataContainer object needed by the base class.
<FDC>The FaceDataContainer object needed by the base class.
<DH>The DoFHandler object used by the FunctionalInterface.
<VECTOR>The vector class on which ControlVector<> is based.
<dopedim>The dimension of the domain for the control.
<dealdim>The dimension of the domain for the state.

Constructor & Destructor Documentation

template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::ConstraintInterface ( )
inline
template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::~ConstraintInterface ( )
inline

Member Function Documentation

template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
virtual void DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::EvaluateLocalControlConstraints ( const VECTOR &  control,
VECTOR &  constraints 
)
pure virtual

This function is used to evaluate all control constraints that are posed locally, i.e., those that can be evaluated by knowledge of the coefficient vector of the control.

Parameters
controlThe control in which the constraints should be evaluated.
constraintsThe vector in which the local constraints at the point control are stored. It is assumed that a control is feasible, if all entries of this vector are non positive. If any entry is positive, the control is considered to be infeasible.

Implemented in DOpE::NoConstraints< EDC, FDC, DH, VECTOR, dopedim, dealdim >.

template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
virtual void DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::GetControlBoxConstraints ( VECTOR &  lb,
VECTOR &  ub 
) const
pure virtual

This function returns the lower and upper box constraints on the control. This means for a problem with box constraints The method EvaluateLocalControlConstraints computes (lb - control, control - ub)

Parameters
lbThe vector where the lower bound is stored. It is assumed that this vector is of the same size as the control.
ubThe vector where the upper bound is stored. It is assumed that this vector is of the same size as the control.

Implemented in DOpE::NoConstraints< EDC, FDC, DH, VECTOR, dopedim, dealdim >.

template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
std::string DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::GetProblemType ( ) const
inlineprotected
template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
unsigned int DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::GetProblemTypeNum ( ) const
inlineprotected
template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
virtual void DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::PostProcessConstraints ( ConstraintVector< VECTOR > &  ) const
inlinevirtual

This function is called after the constraints are evaluated. The default is that nothing is done. However, certain Methods, e.g., penalty or barrier methods may need some Postprocessing to convert the constraint vector into the desired form.

Parameters
gThe vector to be transformed.

Reimplemented in DOpE::NoConstraints< EDC, FDC, DH, VECTOR, dopedim, dealdim >.

template<template< template< int, int > class DH, typename VECTOR, int dealdim > class EDC, template< template< int, int > class DH, typename VECTOR, int dealdim > class FDC, template< int, int > class DH, typename VECTOR , int dopedim, int dealdim>
void DOpE::ConstraintInterface< EDC, FDC, DH, VECTOR, dopedim, dealdim >::SetProblemType ( std::string  type,
unsigned int  num 
)
inline

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