DUNE-ACFEM (2.5.1)

Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType > Class Template Reference

Multiplication with grid-functions. More...

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

+ Collaboration diagram for Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >:

Public Types

typedef InterfaceType::FunctionSpaceType FunctionSpaceType
 type of discrete function space
 
typedef InterfaceType::GridPartType GridPartType
 type of the grid-part we live on
 
typedef InterfaceType::EntityType EntityType
 type of the codim-0 Entity from the GridPartType
 
typedef InterfaceType::DomainFieldType DomainFieldType
 domain type (from function space)
 
typedef InterfaceType::RangeFieldType RangeFieldType
 range type (from function space)
 
typedef InterfaceType::DomainType DomainType
 domain type (from function space)
 
typedef InterfaceType::RangeType RangeType
 range type (from function space)
 
typedef InterfaceType::JacobianRangeType JacobianRangeType
 jacobian type (from function space)
 
typedef InterfaceType::HessianRangeType HessianRangeType
 hessian type (from function space)
 
typedef Expression ExpressionType
 The type of the underlying expression.
 

Public Member Functions

std::string name () const
 Print a descriptive name for debugging and output. More...
 
OperatorPartsType operatorParts () const
 Return the integral kernels for the bilinear form.
 
BulkForcesFunctionType bulkForcesFunction (const GridPartType &gridPart) const
 Generate an instance of a class defining the bulk-forces the model is subject to. More...
 
DirichletBoundaryFunctionType dirichletBoundaryFunction (const GridPartType &gridPart) const
 Generate an instance of a class defining Dirichlet boundary values as a Fem grid-function. More...
 
DirichletWeightFunctionType dirichletWeightFunction (const GridPartType &gridPart) const
 Generate an instance of a class defining Dirichlet boundary values as a Fem grid-function. More...
 
NeumannBoundaryFunctionType neumannBoundaryFunction (const GridPartType &gridPart) const
 Generate an instance of a class defining Neumann boundary values as a Fem grid-function. More...
 
DirichletIndicatorType dirichletIndicator () const
 Generate an object to identify parts of the boundary subject to Dirichlet boundary conditions. More...
 
NeumannIndicatorType neumannIndicator () const
 Generate an object to identify parts of the boundary subject to Neumann boundary conditions. More...
 
TraitsType::template ForcesFunctionalTraits< DiscreteFunctionSpace >::FunctionalType forcesFunctional (const DiscreteFunctionSpace &space) const
 
const ExpressionTypeexpression () const
 Return a const reference to the underlying expression.
 
ExpressionTypeexpression ()
 Return a mutable reference to the underlying expression.
 
ExpressionType operator* () const
 Return a copy from of the underlying expression.
 

Detailed Description

template<class FactorFunction, class ModelType>
class Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >

Multiplication with grid-functions.

The implementation makes sure that the fluxDivergence() method correctly takes the derivatives of the factor functions into account.

Note
We specialize the expression-class explicitly because the recurse to the static methods of the expression-operations class just does not make this stuff less complicated. Instead we define the s-multiplication expression explicitly here.
We only define the class for multiplication with scalars from the left and define multiplication and division from the right via the operator functions (given that multiplication is commutative, which is not correct for complicated expressions when taking round-off errors into account.

ALSO NOTE: Dirichlet boundary values do not change when multiplying the model with a (intentionally non-zero) factor.

Bug:
Due to a bug in the ModelInterface the localFactor_ has to be tagged as "mutable".

Member Function Documentation

◆ bulkForcesFunction()

template<class FactorFunction , class ModelType >
BulkForcesFunctionType Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::bulkForcesFunction ( const GridPartType gridPart) const
inline

Generate an instance of a class defining the bulk-forces the model is subject to.

The return object is a Fem grid-function. This can be used for the case where the "right hand side" is an L2-function.

◆ dirichletBoundaryFunction()

template<class FactorFunction , class ModelType >
DirichletBoundaryFunctionType Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::dirichletBoundaryFunction ( const GridPartType gridPart) const
inline

Generate an instance of a class defining Dirichlet boundary values as a Fem grid-function.

◆ dirichletIndicator()

template<class FactorFunction , class ModelType >
DirichletIndicatorType Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::dirichletIndicator ( ) const
inline

Generate an object to identify parts of the boundary subject to Dirichlet boundary conditions.

The return value has to obey the BoundaryIndicatorInterface.

◆ dirichletWeightFunction()

template<class FactorFunction , class ModelType >
DirichletWeightFunctionType Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::dirichletWeightFunction ( const GridPartType gridPart) const
inline

Generate an instance of a class defining Dirichlet boundary values as a Fem grid-function.

◆ forcesFunctional()

TraitsType::template ForcesFunctionalTraits<DiscreteFunctionSpace>::FunctionalType Dune::ACFem::DefaultModel< Expression >::forcesFunctional ( const DiscreteFunctionSpace &  space) const
inlineinherited

Generate an instance of a class defining a functional which forms part of the force-terms for the model.

◆ name()

template<class FactorFunction , class ModelType >
std::string Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::name ( ) const
inline

Print a descriptive name for debugging and output.

◆ neumannBoundaryFunction()

template<class FactorFunction , class ModelType >
NeumannBoundaryFunctionType Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::neumannBoundaryFunction ( const GridPartType gridPart) const
inline

Generate an instance of a class defining Neumann boundary values as a Fem grid-function.

◆ neumannIndicator()

template<class FactorFunction , class ModelType >
NeumannIndicatorType Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType >::neumannIndicator ( ) const
inline

Generate an object to identify parts of the boundary subject to Neumann boundary conditions.

The return value has to obey the BoundaryIndicatorInterface.


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