DUNE-ACFEM (2.5.1)
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. | |
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()
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().