DUNE-ACFEM (2.5.1)

Dune::ACFem::DefaultModelTraits< FunctionSpace, GridPart > Struct Template Reference

A structure defining some trivial default values for the template structure ModelTraits<ModelType>, given the function-space the beast maps to, and the grid part. More...

#include <dune/acfem/models/modelinterface.hh>

Classes

struct  ForcesFunctionalTraits
 Helper structure to define an optional functional as part of the "right hand side". More...
 

Public Types

typedef FunctionSpace FunctionSpaceType
 The FunctionSpace defining domain and range co-ordinates.
 
typedef FunctionSpaceType::ScalarFunctionSpaceType ScalarFunctionSpaceType
 The compatible scalar-valued function space.
 
typedef GridPart GridPartType
 The GridPart the model is meant for.
 
typedef ZeroOperatorParts< FunctionSpace > OperatorPartsType
 The integral kernel of the bilinear form.
 
Dirichlet boundary definitions

Data for Dirichlet constraints.

typedef EmptyBoundaryIndicatorType DirichletIndicatorType
 Something satisfying the BoundaryIndicatorInterface. More...
 
typedef BoundarySupportedFunction< ZeroGridFunction< FunctionSpaceType, GridPartType >, DirichletIndicatorTypeDirichletBoundaryFunctionType
 A BoundarySupportedFunction which must be sub-ordinate to the DirichletIndicatorType. More...
 
typedef BoundarySupportedFunction< FractionGridFunction< ScalarFunctionSpaceType, GridPartType, 1L, 1UL >, DirichletIndicatorTypeDirichletWeightFunctionType
 A scalar BoundarySupportedFunction which defines "weighted" Dirichlet values of the form. More...
 
Right-hand-side functional definitions

Bulk and boundary contributions to the "Right-Hand-Side".

The ModelInterface allows for "Right-Hand-Side" functionals of the form

\[ \langle\rho\chi\sigma, \phi\rangle = \int_\Omega f\,\phi + \int_{\partial\Omega} g\,\phi + \langle\Psi,\phi\rangle \]

\(f\) is modelled by the ModelInterface::BulkForcesFunctionType, \(g\) is modelled by the ModelInterface::NeumannBoundaryFunctionType and the \(H^1\)-functional \(\Psi\) is modelled by ForcesFunctionalTraits::FunctionalType.

The default is to keep everything at zero.

Note
Functionals cannot not be operated on in a natural way by \(L^\infty\)-functions, only a vector space structure is "natural". Therefore ModelExpressions templates which model multiplication by functions will yield undefined results when applied to PDE-Models with a LinearFunctional as "right hand side" (maybe rejected by the compiler, maybe simply forming something which was most likely not intended).
typedef ZeroGridFunction< FunctionSpaceType, GridPartTypeBulkForcesFunctionType
 A function modelling "force" terms in the bulk-phase.
 
typedef EmptyBoundaryIndicatorType NeumannIndicatorType
 Something satisfying the BoundaryIndicatorInterface. More...
 
typedef BoundarySupportedFunction< ZeroGridFunction< FunctionSpaceType, GridPartType >, NeumannIndicatorTypeNeumannBoundaryFunctionType
 A function modelling the "right hand side" inhomogeneous von Neumann as for inhomogeneous Robin boundary conditions. More...
 

Detailed Description

template<class FunctionSpace, class GridPart>
struct Dune::ACFem::DefaultModelTraits< FunctionSpace, GridPart >

A structure defining some trivial default values for the template structure ModelTraits<ModelType>, given the function-space the beast maps to, and the grid part.

The default are homogeneous Neumann boundary conditions anywhere.

Member Typedef Documentation

◆ DirichletBoundaryFunctionType

A BoundarySupportedFunction which must be sub-ordinate to the DirichletIndicatorType.

See also
BoundarySupportedFunction, in particular the "factory" function boundarySupportedFunction() and BoundaryFunctionExpressions for the set of supported algebraic operations for such functions.

◆ DirichletIndicatorType

template<class FunctionSpace , class GridPart >
typedef EmptyBoundaryIndicatorType Dune::ACFem::DefaultModelTraits< FunctionSpace, GridPart >::DirichletIndicatorType

Something satisfying the BoundaryIndicatorInterface.

This models the indicator function for the subset of the boundary where Dirichlet conditions apply. The default is the indicator function for the empty set.

◆ DirichletWeightFunctionType

A scalar BoundarySupportedFunction which defines "weighted" Dirichlet values of the form.

\[ \chi_D(x)\,w_D(x)\,u(x) = g_D(x)\text{ on }\Gamma_D\subset\partial\Omega. \]

Here \(\chi_D\) is the indicator function on \(\Gamma_D\) and \(g_D\) denotes the prescribed Dirichlet values. Under simple circumstances \(w_D\) will simply evaluate to 1. The presence of \(w_D\) seems to be a little bit obscure, but the presence of this factor helps a lot in defining ModelExpressions in a simple and consitent way. The drawback is that this function needs to be adjusted when changing the DirichletIndicatorType. The DirichletBoundaryModel (Model Building Blocks) takes automatically care of this. If you define your own model, you have to take care to define a suitable weight function. Normally it should suffice to copy the corresponding three lines from the DefaultModelTraits out of modelinterface.hh into your specialized Model-class.

◆ NeumannBoundaryFunctionType

A function modelling the "right hand side" inhomogeneous von Neumann as for inhomogeneous Robin boundary conditions.

This must be a BoundarySupportedFunction subordinate to NeumannIndicatorType.

See also
BoundarySupportedFunction, in particular the "factory" function boundarySupprotedFunction() and BoundaryFunctionExpressions for the set of supported algebraic operations for such functions.

◆ NeumannIndicatorType

template<class FunctionSpace , class GridPart >
typedef EmptyBoundaryIndicatorType Dune::ACFem::DefaultModelTraits< FunctionSpace, GridPart >::NeumannIndicatorType

Something satisfying the BoundaryIndicatorInterface.

This models the indicator function for the subset of the boundary where inhomogeneous boundary conditions apply. The default is the indicator function for the empty set. For homogeneous von Neumann or Robin boundary conditions this can be left at its default, which is the indicator function for the empty set (aka x -> 0).


The documentation for this struct was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 2, 22:35, 2024)