DUNE-ACFEM (2.5.1)
Arithmetic with models. More...
Modules | |
| ModelExpressionOptimizations | |
| Collapse the usual "zero" expressions into more simpler ones. | |
Classes | |
| class | Dune::ACFem::BinaryModelExpression< BinOp, LeftModelType, RightModelType > |
| Template for binary operations. More... | |
| class | Dune::ACFem::UnaryModelExpression< UnOp, ModelType > |
| Template for unary operations. More... | |
| class | Dune::ACFem::UnaryModelExpression< IdentityOperation, Model > |
| Unary identity operation which simply wraps the underlying model. More... | |
| class | Dune::ACFem::UnaryModelExpression< MinusOperation, Model > |
| Unary minus. More... | |
| struct | Dune::ACFem::ModelTraits< BinaryModelExpression< BinOp, LeftModel, RightModel > > |
| ModelExpression type traits. More... | |
| class | Dune::ACFem::BinaryModelExpression< SMultiplyOperation, Factor, ModelType > |
| S-multiplication with numbers (see below for S-multiplication with grid-functions). More... | |
| class | Dune::ACFem::BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType > |
| Multiplication with grid-functions. More... | |
Functions | |
| template<class LeftModelType , class RightModelType > | |
| BinaryModelExpression< PlusOperation, LeftModelType, RightModelType > | Dune::ACFem::operator+ (const ModelInterface< LeftModelType > &f_, const ModelInterface< RightModelType > &g_) |
| Add two models. | |
| template<class LeftModelType , class RightModelType > | |
| BinaryModelExpression< MinusOperation, LeftModelType, RightModelType > | Dune::ACFem::operator- (const ModelInterface< LeftModelType > &f_, const ModelInterface< RightModelType > &g_) |
| Subtract two models. | |
| template<class ModelType > | |
| BinaryModelExpression< SMultiplyOperation, typename ModelType::RangeFieldType, ModelType > | Dune::ACFem::operator* (const typename ModelType::RangeFieldType &s_, const ModelInterface< ModelType > &f_) |
| Multiplication with scalars from the left. | |
| template<class ModelType > | |
| auto | Dune::ACFem::operator* (const ModelInterface< ModelType > &m_, const typename ModelType::RangeFieldType &s_) -> decltype(s_ *asImp(m_)) |
| Multiplication with scalars from the right. | |
| template<class Parameter , class ModelType > | |
| BinaryModelExpression< SMultiplyOperation, Parameter, ModelType > | Dune::ACFem::operator* (const ParameterInterface< Parameter > &s_, const ModelInterface< ModelType > &f_) |
| Multiplication with something satisfying ParameterInterface from the left. | |
| template<class Parameter , class ModelType > | |
| auto | Dune::ACFem::operator* (const ModelInterface< ModelType > &m_, const ParameterInterface< Parameter > &s_) -> decltype(asImp(s_) *asImp(m_)) |
| Multiplication with something satisfying ParameterInterface from the right. | |
| template<class FactorFunction , class ModelType > | |
| BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType > | Dune::ACFem::operator* (const Fem::Function< typename FactorFunction::FunctionSpaceType::ScalarFunctionSpaceType, FactorFunction > &f_, const ModelInterface< ModelType > &m_) |
| Left multiplication by a function. More... | |
| template<class FactorFunction , class ModelType > | |
| BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType > | Dune::ACFem::operator* (const ModelInterface< ModelType > &m_, const Fem::Function< typename FactorFunction::FunctionSpaceType::ScalarFunctionSpaceType, FactorFunction > &f_) |
| Right multiplication by a function. | |
| template<class Model > | |
| class UnaryModelExpression< MinusOperation, Model > | Dune::ACFem::operator- (const ModelInterface< Model > &m_) |
| Unary minus. | |
| template<class Model > | |
| class UnaryModelExpression< IdentityOperation, Model > | Dune::ACFem::operator* (const ModelInterface< Model > &m_) |
| Identity. More... | |
| template<class Model > | |
| auto | Dune::ACFem::operator+ (const ModelInterface< Model > &m_) -> decltype(*m_) |
| Unary plus, acts like operator*(const ModelInterface<Model>&). | |
| template<class Model , class DiscreteFunctionSpace , class Traits > | |
| auto | Dune::ACFem::operator- (const ModelInterface< Model > &m_, const DiscreteLinearFunctional< DiscreteFunctionSpace, Traits > &phi_) -> decltype(m_+std::declval< ForcesFunctionalModel< typename Traits::GlobalFunctionalType > >()) |
| Augment the model by a DiscreteLinearFunctional. More... | |
| template<class Model , class DiscreteFunctionSpace , class Traits > | |
| auto | Dune::ACFem::operator+ (const ModelInterface< Model > &m_, const DiscreteLinearFunctional< DiscreteFunctionSpace, Traits > &phi_) -> decltype(m_ - std::declval< ForcesFunctionalModel< typename Traits::GlobalFunctionalType > >()) |
| Augment the model by a DiscreteLinearFunctional. More... | |
| template<class Model , class GridFunction > | |
| auto | Dune::ACFem::operator- (const ModelInterface< Model > &m, const Fem::Function< typename Model::FunctionSpaceType, GridFunction > &f) -> decltype(m+std::declval< BulkForcesFunctionModel< GridFunction > >()) |
| Augment the model by a right hand side, aka a "bulk forces
function". More... | |
| template<class Model , class GridFunction > | |
| auto | Dune::ACFem::operator+ (const ModelInterface< Model > &m_, const Fem::Function< typename Model::FunctionSpaceType, GridFunction > &f) -> decltype(m_ - std::declval< BulkForcesFunctionModel< GridFunction > >()) |
| Augment the model by a right hand side, aka BulkForcesFunction. More... | |
Detailed Description
Arithmetic with models.
Function Documentation
◆ operator*() [1/2]
| BinaryModelExpression< MultiplyOperation, FactorFunction, ModelType > Dune::ACFem::operator* | ( | const Fem::Function< typename FactorFunction::FunctionSpaceType::ScalarFunctionSpaceType, FactorFunction > & | f_, |
| const ModelInterface< ModelType > & | m_ | ||
| ) |
Left multiplication by a function.
- Note
The only natural way to treat functionals (see DiscreteLinearFunctional) as \(L^\infty\)-module is to multiply the argument of the functional by the \(L^\infty\)-function. This, however, is just the wrong side of the dual-pairing in comparison with the way all other parts of the model (see ModelInterface) are treated as \(L^\infty\)-module. Hence we do not allow multiplication by functions if ModelInterface::forcesFunctional does not return the zero-functional.
◆ operator*() [2/2]
| class UnaryModelExpression< IdentityOperation, Model > Dune::ACFem::operator* | ( | const ModelInterface< Model > & | m_ | ) |
Identity.
Primarily meant in intermediate expressions in order to form something which is an expression data-type.
◆ operator+() [1/2]
| auto Dune::ACFem::operator+ | ( | const ModelInterface< Model > & | m_, |
| const DiscreteLinearFunctional< DiscreteFunctionSpace, Traits > & | phi_ | ||
| ) | -> decltype(m_ - std::declval<ForcesFunctionalModel<typename Traits::GlobalFunctionalType> >()) |
Augment the model by a DiscreteLinearFunctional.
We use operator+ for this in order to express that we solve
Model + <Psi,.> = 0
although this function actually substracts two models.
- Warning
- You probably wanted to use Model - <Psi,.> = 0.
See also
◆ operator+() [2/2]
| auto Dune::ACFem::operator+ | ( | const ModelInterface< Model > & | m_, |
| const Fem::Function< typename Model::FunctionSpaceType, GridFunction > & | f | ||
| ) | -> decltype(m_ - std::declval<BulkForcesFunctionModel<GridFunction> >()) |
Augment the model by a right hand side, aka BulkForcesFunction.
We use operator+ for this in order to express that we solve
Model + F = 0
although this function actually substracts two models.
- Warning
- You probably wanted to use Model - F = 0.
See also
◆ operator-() [1/2]
| auto Dune::ACFem::operator- | ( | const ModelInterface< Model > & | m, |
| const Fem::Function< typename Model::FunctionSpaceType, GridFunction > & | f | ||
| ) | -> decltype(m + std::declval<BulkForcesFunctionModel<GridFunction> >()) |
Augment the model by a right hand side, aka a "bulk forces function".
We use operator- for this in order to express that we solve
Model - F = 0
The resulting model will have the given function as ModelInterface::BulkForcesFunctionType and the respective method ModelInterface::bulkForcesFunction() will return an instance of this function.
◆ operator-() [2/2]
| auto Dune::ACFem::operator- | ( | const ModelInterface< Model > & | m_, |
| const DiscreteLinearFunctional< DiscreteFunctionSpace, Traits > & | phi_ | ||
| ) | -> decltype(m_ + std::declval<ForcesFunctionalModel<typename Traits::GlobalFunctionalType> >()) |
Augment the model by a DiscreteLinearFunctional.
We use operator- for this in order to express that we solve
Model - <Psi,.> = 0.
The resulting model will have the given function as ModelInterface::ForcesFunctionionalTraits::FunctionalType and the respective method ModelInterface::forcesFunctional() will return an instance of the functional.
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Mar 3, 23:33, 2026)