DUNE-ACFEM (2.5.1)
Dune::ACFem::BinaryOperatorPartsExpression< MultiplyOperation, FactorFunction, OperandType > Class Template Reference
Multiplication with grid-functions. More...
#include <dune/acfem/models/operatorparts/operatorpartsexpression.hh>
Collaboration diagram for Dune::ACFem::BinaryOperatorPartsExpression< MultiplyOperation, FactorFunction, OperandType >:
Public Types | |
typedef InterfaceType::FunctionSpaceType | FunctionSpaceType |
type of discrete function space | |
typedef InterfaceType::DomainFieldType | DomainFieldType |
domain type (from function space) | |
typedef InterfaceType::RangeFieldType | RangeFieldType |
range type (from function space) | |
typedef InterfaceType::DomainType | DomainType |
domain type (from function space) | |
typedef InterfaceType::RangeType | RangeType |
range type (from function space) | |
typedef InterfaceType::JacobianRangeType | JacobianRangeType |
jacobian type (from function space) | |
typedef InterfaceType::HessianRangeType | HessianRangeType |
hessian type (from function space) | |
enum | StructureFlags |
enum | ConstituentFlags |
typedef Expression | ExpressionType |
The type of the underlying expression. | |
Public Member Functions | |
template<class Entity > | |
void | setEntity (const Entity &entity) const |
template<class Intersection > | |
bool | setIntersection (const Intersection &intersection) const |
std::string | name () const |
template<class Entity , class Point > | |
void | flux (const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, JacobianRangeType &result) const |
flux on local coordinate local | |
template<class Entity , class Point > | |
void | linearizedFlux (const RangeType &uBar, const JacobianRangeType &DuBar, const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, JacobianRangeType &result) const |
linearizedflux | |
template<class Entity , class Point > | |
void | source (const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, RangeType &result) const |
source term | |
template<class Entity , class Point > | |
void | linearizedSource (const RangeType &uBar, const JacobianRangeType &DuBar, const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, RangeType &result) const |
linearized source term | |
template<class Intersection , class Point > | |
void | robinFlux (const Intersection &intersection, const Point &x, const DomainType &unitOuterNormal, const RangeType &value, RangeType &result) const |
template<class Intersection , class Point > | |
void | linearizedRobinFlux (const RangeType &uBar, const Intersection &intersection, const Point &x, const DomainType &unitOuterNormal, const RangeType &value, RangeType &result) const |
template<class Entity , class Point > | |
void | fluxDivergence (const Entity &entity, const Point &x, const RangeType &value, const JacobianRangeType &jacobian, const HessianRangeType &hessian, RangeType &result) const |
fluxDivergence for estimator | |
const ExpressionType & | expression () const |
Return a const reference to the underlying expression. | |
ExpressionType & | expression () |
Return a mutable reference to the underlying expression. | |
ExpressionType | operator* () const |
Return a copy from of the underlying expression. | |
Detailed Description
template<class FactorFunction, class OperandType>
class Dune::ACFem::BinaryOperatorPartsExpression< MultiplyOperation, FactorFunction, OperandType >
class Dune::ACFem::BinaryOperatorPartsExpression< MultiplyOperation, FactorFunction, OperandType >
Multiplication with grid-functions.
The implementation makes sure that the fluxDivergence() method correctly takes the derivatives of the factor functions into account.
- Note
- We specialize the expression-class explicitly because the recurse to the static methods of the expression-operations class just does not make this stuff less complicated. Instead we define the s-multiplication expression explicitly here.
- We only define the class for multiplication with scalars from the left and define multiplication and division from the right via the operator functions (given that multiplication is commutative, which is not correct for complicated expressions when taking round-off errors into account.
- Bug:
- Due to a bug in the OperatorParts the localFactor_ has to be tagged as "mutable".
Member Enumeration Documentation
◆ ConstituentFlags
|
inherited |
◆ StructureFlags
|
inherited |
Member Function Documentation
◆ linearizedRobinFlux()
template<class FactorFunction , class OperandType >
template<class Intersection , class Point >
|
inline |
◆ name()
template<class FactorFunction , class OperandType >
|
inline |
◆ robinFlux()
template<class FactorFunction , class OperandType >
template<class Intersection , class Point >
|
inline |
◆ setEntity()
template<class FactorFunction , class OperandType >
template<class Entity >
|
inline |
◆ setIntersection()
template<class FactorFunction , class OperandType >
template<class Intersection >
|
inline |
The documentation for this class was generated from the following file:
- dune/acfem/models/operatorparts/operatorpartsexpression.hh
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Aug 13, 22:30, 2024)