DUNE-ACFEM (2.5.1)
ModelExpressionOptimizations
Collapse the usual "zero" expressions into more simpler ones. More...
Functions | |
| template<class Expression > | |
| Expression | Dune::ACFem::operator* (const ModelExpression< Expression > &m_) |
| Avoid double identity wrapping. | |
| template<class Model > | |
| static auto | Dune::ACFem::operator* (const typename Model::RangeFieldType &s_, const BinaryModelExpression< SMultiplyOperation, typename Model::RangeFieldType, Model > &m_) -> decltype((s_ *m_.scalar()) *m_.model()) |
| Fold s * (s * m) into (s*s) * m. | |
| template<class Parameter , class Model > | |
| static auto | Dune::ACFem::operator* (const ParameterInterface< Parameter > &p_, const ModelInterface< BinaryModelExpression< SMultiplyOperation, typename Model::RangeFieldType, Model > > &m_) -> decltype(asImp(m_).scalar() *(asImp(p_) *asImp(m_).model())) |
| Move sclars left-most. | |
| template<class Field , class Parameter , class Model > | |
| static auto | Dune::ACFem::operator* (const BinaryParameterExpression< SMultiplyOperation, Field, Parameter > &p_, const ModelInterface< Model > &m_) -> decltype(p_.left() *(p_.right() *asImp(m_))) |
| Move scalars out of BinaryParameterExpression. | |
| template<class Function , class Field , class Model > | |
| static auto | Dune::ACFem::operator* (const Fem::Function< typename Function::FunctionSpaceType, Function > &f_, const BinaryModelExpression< SMultiplyOperation, Field, Model > &m_) -> decltype(m_.scalar() *(asImp(f_) *m_.model())) |
| Move sclars left-most. | |
| template<class Field , class Function , class Model > | |
| static auto | Dune::ACFem::operator* (const BinaryGridFunctionExpression< SMultiplyOperation, Field, Function > &f_, const ModelInterface< Model > &m_) -> decltype(f_.scalar() *(f_.function() *asImp(m_))) |
| Move scalars out of BinaryGridFunctionExpression. | |
| template<class Model > | |
| auto | Dune::ACFem::operator- (const UnaryModelExpression< MinusOperation, Model > &m_) -> decltype(*m_.containedExpression()) |
| -(-Model) = Model More... | |
| template<class Model , class DiscreteFunctionSpace , class GridFunction , template< class > class QuadratureTraits> | |
| auto | Dune::ACFem::operator- (const ModelInterface< Model > &m_, const L2InnerProductFunctional< DiscreteFunctionSpace, GridFunction, QuadratureTraits > &phi_) -> decltype(m_ - phi_.function()) |
| Avoid adding ordinary L2-functionals as functional. | |
| template<class Model > | |
| auto | Dune::ACFem::operator+ (const ModelInterface< Model > &m, const ZeroModel< typename Model::FunctionSpaceType, typename Model::GridPartType > &z) -> decltype(*asImp(m)) |
| Model + Zero = Model. | |
| template<class Model > | |
| auto | Dune::ACFem::operator+ (const ZeroModel< typename Model::FunctionSpaceType, typename Model::GridPartType > &z, const ModelInterface< Model > &m) -> decltype(*asImp(m)) |
| Zero + Model = Model. | |
| template<class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator+ (const ZeroModel< FunctionSpace, GridPart > &z1, const ZeroModel< FunctionSpace, GridPart > &z2) -> decltype(*z1) |
| Zero + Zero = Zero. | |
| template<class Model > | |
| auto | Dune::ACFem::operator- (const ModelInterface< Model > &m, const ZeroModel< typename Model::FunctionSpaceType, typename Model::GridPartType > &z) -> decltype(*asImp(m)) |
| Model - Zero = Model. | |
| template<class Model > | |
| auto | Dune::ACFem::operator- (const ZeroModel< typename Model::FunctionSpaceType, typename Model::GridPartType > &z, const ModelInterface< Model > &m) -> decltype(-m) |
| Zero - Model = -Model. | |
| template<class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator- (const ZeroModel< FunctionSpace, GridPart > &z1, const ZeroModel< FunctionSpace, GridPart > &z2) -> decltype(*z1) |
| Zero - Zero = Zero. | |
| template<class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator* (const typename FunctionSpace::RangeFieldType &s_, const ZeroModel< FunctionSpace, GridPart > &z) -> decltype(*z) |
| s * Zero = Zero | |
| template<class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator* (const ZeroModel< FunctionSpace, GridPart > &z, const typename FunctionSpace::RangeFieldType &s) -> decltype(*z) |
| Zero * s = Zero. | |
| template<class Parameter , class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator* (const ParameterInterface< Parameter > &s, const ZeroModel< FunctionSpace, GridPart > &z) -> decltype(*z) |
| Parameter * Zero = Zero. | |
| template<class Parameter , class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator* (const ZeroModel< FunctionSpace, GridPart > &z, const ParameterInterface< Parameter > &s) -> decltype(*z) |
| Zero * Parameter = Zero. | |
| template<class Function , class ScalarSpace , class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator* (const Fem::Function< ScalarSpace, Function > &f, const ZeroModel< FunctionSpace, GridPart > &z) -> decltype(*z) |
| Function * Zero = Zero. | |
| template<class Function , class ScalarSpace , class FunctionSpace , class GridPart > | |
| auto | Dune::ACFem::operator* (const ZeroModel< FunctionSpace, GridPart > &z, const Fem::Function< ScalarSpace, Function > &f) -> decltype(*z) |
| Zero * Function = Zero. | |
Detailed Description
Collapse the usual "zero" expressions into more simpler ones.
Function Documentation
◆ operator-()
template<class Model >
| auto Dune::ACFem::operator- | ( | const UnaryModelExpression< MinusOperation, Model > & | m_ | ) | -> decltype(*m_.containedExpression()) |
-(-Model) = Model
Replace any double unary minus expression by either the contained expression, or if the contained expression is not itself an expression template, wrap it into one identity expression.
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Mar 3, 23:33, 2026)