DUNE-ACFEM (2.5.1)

ExpressionTemplates

ACFem provides expression templates in order to form algebraic expression for models, grid-functions and parameters. More...

Modules

 ExpressionStorage
 Store objects either as references (real objects) or as copy (expression templates).
 
 ExpressionOperations
 "Tag"-structures for each supported algebraic operation, used to distinguish the various expression template classes from each other.
 
 ExpressionResults
 Helper structures for expression templates which aid in forming an (optimized) result types.
 
 ParameterExpressions
 Form algebraic expressions for classes satisfying the ParameterInterface.
 
 VectorExpressions
 Avoid tempararies in the usual way by Expression templates for anything which behaves slightly like a vector of field elements.
 
 GridFunctionExpressions
 Define the usual algebraic vector space operations for grid-functions.
 
 FunctionExpressions
 This repeats some of the expression stuff from \ŗef GridFunctionExpression's in order to cope with the inefficiency caused by combining wrapped non-local functions.
 
 IndicatorExpressions
 Boolean expression for indicators, corresponding to the usual union, intersection, complement set operations of the boundary segments the indicator applies to.
 
 ModelExpressions
 Arithmetic with models.
 
 OperatorPartsExpressions
 Arithmetic with stuff.
 
 OperatorpartsExpressions
 Arithmetic with operatorpartss.
 
 FunctionalExpressions
 Simple algebraic expressions with linear functionals.
 

Classes

struct  Dune::ACFem::ExpressionTemplate< ExpressionImp >
 Provide up-cast functionality for expression templates. More...
 
class  Dune::ACFem::UnaryGridFunctionExpression< UnOp, FunctionType >
 UnaryGridFunctionExpression implements point-wise unary operations for GridFunction-types. More...
 
class  Dune::ACFem::BinaryGridFunctionExpression< BinOp, LeftFunction, RightFunction >
 BinaryGridFunctionExpression implements point-wise vector-space operations for GridFunction-types. More...
 
class  Dune::ACFem::GridFunctionExpression< FunctionSpaceImp, ExpressionImp, ExpressionTag >
 A class providing some basic functionality common to all expressions. More...
 
class  Dune::ACFem::ZeroGridFunctionExpression< FunctionSpaceImp, ExpressionImp >
 A base class for zero function expression. More...
 
struct  Dune::ACFem::IsPieceWiseConstant
 Tag type, consequences are zero Jacobian and Hessian. More...
 
struct  Dune::ACFem::IsNotPieceWiseConstant
 Negation of IsPieceWiseConstant, in order to have something to branch to with std::conditional. More...
 

Functions

template<class Interface , class Implementation >
const Implementation & Dune::ACFem::asImp (const Fem::BartonNackmanInterface< Interface, Implementation > &arg)
 Up-cast to the implementation for any Fem::BartonNackmanInterface. More...
 

Detailed Description

ACFem provides expression templates in order to form algebraic expression for models, grid-functions and parameters.

Function Documentation

◆ asImp()

template<class Interface , class Implementation >
const Implementation& Dune::ACFem::asImp ( const Fem::BartonNackmanInterface< Interface, Implementation > &  arg)

Up-cast to the implementation for any Fem::BartonNackmanInterface.

In general, the operator-functions generating expression-templates accept only the interface class as arguments, in order to enforce a first level compatibility barrier (and after all: this is what interfaces are meant for). The ExpressionTemplate classes, however, are built from the implementation classes, in order to avoid yet-another-template-generated-typename-hugeness. This function template serves as a short cut for this purpose.

Referenced by Dune::ACFem::BoundaryIndicatorInterface< Implementation >::applies(), Dune::ACFem::ModelInterface< ModelType >::bulkForcesFunction(), Dune::ACFem::DiscreteLinearFunctional< DiscreteFunctionSpace, Traits >::coefficients(), Dune::ACFem::DiscreteLinearFunctionalDefault< DiscreteFunctionSpace, Traits >::coefficients(), Dune::ACFem::LocalLinearFunctional< DiscreteFunctionSpace, Traits >::coefficients(), Dune::ACFem::LocalLinearFunctionalDefault< DiscreteFunctionSpace, Traits >::coefficients(), Dune::ACFem::constantFunction(), Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::constrain(), Dune::ACFem::ModelInterface< ModelType >::dirichletBoundaryFunction(), Dune::ACFem::ModelInterface< ModelType >::dirichletIndicator(), Dune::ACFem::ModelInterface< ModelType >::dirichletWeightFunction(), Dune::ACFem::LocalLinearFunctional< DiscreteFunctionSpace, Traits >::entity(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::flux(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::fluxDivergence(), Dune::ACFem::ModelInterface< ModelType >::forcesFunctional(), Dune::ACFem::LocalLinearFunctional< DiscreteFunctionSpace, Traits >::functional(), Dune::ACFem::LocalLinearFunctional< DiscreteFunctionSpace, Traits >::init(), Dune::ACFem::DifferentiableBlockConstraintsOperatorInterface< JacobianOperator, Traits >::jacobian(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::linearizedFlux(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::linearizedRobinFlux(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::linearizedSource(), Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::localOperator(), Dune::ACFem::ModelInterface< ModelType >::name(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::name(), Dune::ACFem::ModelInterface< ModelType >::neumannBoundaryFunction(), Dune::ACFem::ModelInterface< ModelType >::neumannIndicator(), Dune::ACFem::operator&&(), Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::operator()(), Dune::ACFem::DiscreteLinearFunctional< DiscreteFunctionSpace, Traits >::operator()(), Dune::ACFem::DiscreteLinearFunctionalDefault< DiscreteFunctionSpace, Traits >::operator()(), Dune::ACFem::LocalLinearFunctional< DiscreteFunctionSpace, Traits >::operator()(), Dune::ACFem::LocalLinearFunctionalDefault< DiscreteFunctionSpace, Traits >::operator()(), Dune::ACFem::operator*(), Dune::ACFem::operator+(), Dune::ACFem::operator-(), Dune::ACFem::operator/(), Dune::ACFem::ModelInterface< ModelType >::operatorParts(), Dune::ACFem::operator||(), Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::rebuild(), Dune::ACFem::robinBoundaryModel(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::robinFlux(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::setEntity(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::setIntersection(), Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::size(), Dune::ACFem::OperatorPartsInterface< PartsImpl >::source(), Dune::ACFem::ParameterInterface< ParameterImpl >::value(), Dune::ACFem::BlockConstraintsOperatorInterface< DiscreteFunction, Traits >::zeroConstrain(), and Dune::ACFem::zeroFunction().

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 24, 22:30, 2024)