dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Dune::DirichletConstraints< Model, DiscreteFunctionSpace > Class Template Reference

#include <dune/fem/schemes/dirichletconstraints.hh>

Inheritance diagram for Dune::DirichletConstraints< Model, DiscreteFunctionSpace >:
Inheritance graph

Classes

class  BoundaryWrapper
 

Public Types

enum  Operation { set = 0 , sub = 1 }
 
typedef Model ModelType
 
typedef DiscreteFunctionSpace DiscreteFunctionSpaceType
 
typedef DiscreteFunctionSpaceType::DomainType DomainType
 
typedef DiscreteFunctionSpaceType::RangeType RangeType
 
typedef DiscreteFunctionSpaceType::JacobianRangeType JacobianRangeType
 
typedef DiscreteFunctionSpaceType::HessianRangeType HessianRangeType
 
typedef DiscreteFunctionSpaceType::GridPartType GridPartType
 type of grid partition
 
typedef DiscreteFunctionSpaceType::GridType GridType
 type of grid
 
typedef std::array< int, localBlockSizeDirichletBlock
 
typedef std::vector< DirichletBlockDirichletBlockVector
 

Public Member Functions

 DirichletConstraints (ModelType &model, const DiscreteFunctionSpaceType &space)
 
template<class DiscreteFunctionType >
void operator() (const DiscreteFunctionType &u, DiscreteFunctionType &w) const
 
template<class DiscreteFunctionType >
void operator() (const typename DiscreteFunctionType::RangeType &value, DiscreteFunctionType &w) const
 
template<class DiscreteFunctionType >
void operator() (DiscreteFunctionType &w) const
 
template<class GridFunctionType , class DiscreteFunctionType , typename = std::enable_if_t< std::is_base_of<Dune::Fem::HasLocalFunction, GridFunctionType>::value >>
void operator() (const GridFunctionType &u, DiscreteFunctionType &w, Operation op=Operation::setDF) const
 
template<class LinearOperator >
void applyToOperator (LinearOperator &linearOperator) const
 
const DirichletBlockVectordirichletBlocks () const
 

Static Public Attributes

static const int localBlockSize = DiscreteFunctionSpaceType :: localBlockSize
 

Protected Member Functions

template<class EntityType , class LocalMatrix >
void dirichletDofsCorrectOnEntity (const EntityType &entity, LocalMatrix &localMatrix) const
 
template<class LocalInterpolationType , class LocalFunctionType >
void dirichletDofTreatment (const LocalInterpolationType &interpolation, LocalFunctionType &wLocal) const
 set the Dirichlet points to exact values
 
template<class LocalInterpolationType , class GridLocalFunctionType , class LocalFunctionType >
void dirichletDofTreatment (const LocalInterpolationType &interpolation, const GridLocalFunctionType &uLocal, LocalFunctionType &wLocal, Operation op) const
 
void updateDirichletDofs () const
 
template<class EntityType >
bool searchEntityDirichletDofs (const EntityType &entity, ModelType &model) const
 

Protected Attributes

ModelTypemodel_
 
const DiscreteFunctionSpaceTypespace_
 
DirichletBlockVector dirichletBlocks_
 
bool hasDirichletDofs_
 
int sequence_
 

Member Typedef Documentation

◆ DirichletBlock

template<class Model , class DiscreteFunctionSpace >
typedef std::array<int,localBlockSize> Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::DirichletBlock

◆ DirichletBlockVector

template<class Model , class DiscreteFunctionSpace >
typedef std::vector< DirichletBlock > Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::DirichletBlockVector

◆ DiscreteFunctionSpaceType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpace Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::DiscreteFunctionSpaceType

◆ DomainType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpaceType::DomainType Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::DomainType

◆ GridPartType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpaceType::GridPartType Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::GridPartType

type of grid partition

◆ GridType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpaceType::GridType Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::GridType

type of grid

◆ HessianRangeType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpaceType::HessianRangeType Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::HessianRangeType

◆ JacobianRangeType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpaceType::JacobianRangeType Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::JacobianRangeType

◆ ModelType

template<class Model , class DiscreteFunctionSpace >
typedef Model Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::ModelType

◆ RangeType

template<class Model , class DiscreteFunctionSpace >
typedef DiscreteFunctionSpaceType::RangeType Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::RangeType

Member Enumeration Documentation

◆ Operation

template<class Model , class DiscreteFunctionSpace >
enum Dune::DirichletConstraints::Operation
Enumerator
set 
sub 

Constructor & Destructor Documentation

◆ DirichletConstraints()

template<class Model , class DiscreteFunctionSpace >
Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::DirichletConstraints ( ModelType model,
const DiscreteFunctionSpaceType space 
)
inline

Member Function Documentation

◆ applyToOperator()

template<class Model , class DiscreteFunctionSpace >
template<class LinearOperator >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::applyToOperator ( LinearOperator &  linearOperator) const
inline

treatment of Dirichlet-DoFs for solution and right-hand-side

delete rows for dirichlet-DoFs, setting diagonal element to 1.

Note
A LagrangeDiscreteFunctionSpace is implicitly assumed.
Parameters
[out]linearOperatorlinear operator to be adjusted

◆ dirichletBlocks()

template<class Model , class DiscreteFunctionSpace >
const DirichletBlockVector & Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::dirichletBlocks ( ) const
inline

◆ dirichletDofsCorrectOnEntity()

template<class Model , class DiscreteFunctionSpace >
template<class EntityType , class LocalMatrix >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::dirichletDofsCorrectOnEntity ( const EntityType &  entity,
LocalMatrix &  localMatrix 
) const
inlineprotected

treatment of Dirichlet-DoFs for one entity

delete rows for dirichlet-DoFs, setting diagonal element to 1.

Note
A LagrangeDiscreteFunctionSpace is implicitly assumed.
Parameters
[in]entityentity to perform Dirichlet treatment on

◆ dirichletDofTreatment() [1/2]

template<class Model , class DiscreteFunctionSpace >
template<class LocalInterpolationType , class GridLocalFunctionType , class LocalFunctionType >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::dirichletDofTreatment ( const LocalInterpolationType &  interpolation,
const GridLocalFunctionType &  uLocal,
LocalFunctionType &  wLocal,
Operation  op 
) const
inlineprotected

◆ dirichletDofTreatment() [2/2]

template<class Model , class DiscreteFunctionSpace >
template<class LocalInterpolationType , class LocalFunctionType >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::dirichletDofTreatment ( const LocalInterpolationType &  interpolation,
LocalFunctionType &  wLocal 
) const
inlineprotected

set the Dirichlet points to exact values

◆ operator()() [1/4]

template<class Model , class DiscreteFunctionSpace >
template<class DiscreteFunctionType >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::operator() ( const DiscreteFunctionType &  u,
DiscreteFunctionType &  w 
) const
inline

treatment of Dirichlet-const DoFs for given discrete function

Note
A LagrangeDiscreteFunctionSpace is implicitly assumed.
Parameters
[in]udiscrete function providing the constraints
[out]wdiscrete function the constraints are applied to

◆ operator()() [2/4]

template<class Model , class DiscreteFunctionSpace >
template<class GridFunctionType , class DiscreteFunctionType , typename = std::enable_if_t< std::is_base_of<Dune::Fem::HasLocalFunction, GridFunctionType>::value >>
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::operator() ( const GridFunctionType &  u,
DiscreteFunctionType &  w,
Operation  op = Operation::setDF 
) const
inline

◆ operator()() [3/4]

template<class Model , class DiscreteFunctionSpace >
template<class DiscreteFunctionType >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::operator() ( const typename DiscreteFunctionType::RangeType &  value,
DiscreteFunctionType &  w 
) const
inline

treatment of Dirichlet-DoFs for given discrete function

Note
A LagrangeDiscreteFunctionSpace is implicitly assumed.
Parameters
[in]valuea range vector
[out]wdiscrete function the constraints are applied to

◆ operator()() [4/4]

template<class Model , class DiscreteFunctionSpace >
template<class DiscreteFunctionType >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::operator() ( DiscreteFunctionType &  w) const
inline

treatment of Dirichlet-DoFs for given discrete function

Note
A LagrangeDiscreteFunctionSpace is implicitly assumed.
Parameters
[in]udiscrete function providing the constraints
[out]wdiscrete function the constraints are applied to

◆ searchEntityDirichletDofs()

template<class Model , class DiscreteFunctionSpace >
template<class EntityType >
bool Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::searchEntityDirichletDofs ( const EntityType &  entity,
ModelType model 
) const
inlineprotected

◆ updateDirichletDofs()

template<class Model , class DiscreteFunctionSpace >
void Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::updateDirichletDofs ( ) const
inlineprotected

Member Data Documentation

◆ dirichletBlocks_

template<class Model , class DiscreteFunctionSpace >
DirichletBlockVector Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::dirichletBlocks_
mutableprotected

◆ hasDirichletDofs_

template<class Model , class DiscreteFunctionSpace >
bool Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::hasDirichletDofs_
mutableprotected

◆ localBlockSize

template<class Model , class DiscreteFunctionSpace >
const int Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::localBlockSize = DiscreteFunctionSpaceType :: localBlockSize
static

◆ model_

template<class Model , class DiscreteFunctionSpace >
ModelType& Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::model_
protected

◆ sequence_

template<class Model , class DiscreteFunctionSpace >
int Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::sequence_
mutableprotected

◆ space_

template<class Model , class DiscreteFunctionSpace >
const DiscreteFunctionSpaceType& Dune::DirichletConstraints< Model, DiscreteFunctionSpace >::space_
protected

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