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 |
generated with Hugo v0.111.3
(Nov 12, 23:30, 2024)