|
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
A MeshFunction which combines two other mesh functions using a binary operator (advanced use). More...
#include <lf/uscalfe/uscalfe.h>
Public Member Functions | |
| MeshFunctionBinary (OP op, A a, B b) | |
| Create a new MeshFunctionBinary. More... | |
| auto | operator() (const lf::mesh::Entity &e, const Eigen::MatrixXd &local) const |
Private Attributes | |
| OP | op_ |
| A | a_ |
| B | b_ |
Related Functions | |
(Note that these are not member functions.) | |
| template<class A , class B , class = std::enable_if_t<isMeshFunction<A> && isMeshFunction<B>>> | |
| auto | operator+ (const A &a, const B &b) |
| Add's two mesh functions. More... | |
| template<class A , class B , class = std::enable_if_t<isMeshFunction<A> && isMeshFunction<B>>> | |
| auto | operator- (const A &a, const B &b) |
| Subtracts two mesh functions. More... | |
| template<class A , class B , class = std::enable_if_t<isMeshFunction<A> && isMeshFunction<B>>> | |
| auto | operator* (const A &a, const B &b) |
| Multiply two mesh functions with each other. More... | |
A MeshFunction which combines two other mesh functions using a binary operator (advanced use).
| OP | The type of operator that combines the mesh functions. |
| A | The type of the lhs mesh function. |
| B | The type of the rhs mesh function. |
The Operator OP must fulfill the following requirements:
operator() as follows: U is the MeshFunctionReturnType of the lhs MeshFunction, V is the MeshFunctionReturnType of the rhs MeshFunction and Z is the type of the mesh function A OP B.int argument of operator() can be used to prefer certain overloads over others, e.g. operator()(const std::vector<U>& u, const std::vector<V>& int) takes higher precedence than operator()(const std::vector<U>& u, const std::vector<V>& long) Definition at line 51 of file mesh_function_binary.h.
|
inline |
Create a new MeshFunctionBinary.
| op | The operator to apply |
| a | The lhs mesh function |
| b | The rhs mesh function. |
Definition at line 59 of file mesh_function_binary.h.
|
inline |
see MeshFunction for details.
Definition at line 65 of file mesh_function_binary.h.
References lf::mesh::utils::MeshFunctionBinary< OP, A, B >::a_, lf::mesh::utils::MeshFunctionBinary< OP, A, B >::b_, and lf::mesh::utils::MeshFunctionBinary< OP, A, B >::op_.
|
related |
Multiply two mesh functions with each other.
| A | The type of the lhs MeshFunction |
| B | The type of the rhs MeshFunction |
| a | the lhs MeshFunction |
| b | the rhs MeshFunction |
a*b, i.e. a new mesh function which represents the pointwise product of a and b.A and B are Eigen::Matrix valued, the resulting MeshFunction will also be Matrix/Vector valued and will represent the Matrix product of a and b.lf::uscalfe namespace, it will not be found by Argument Dependent Lookup (ADL). You can get around this by explicitly importing the operator overload: using lf::uscalfe::operator*;Definition at line 729 of file mesh_function_binary.h.
|
related |
Add's two mesh functions.
| A | Type of the lhs MeshFunction |
| B | Type of the rhs MeshFunction |
| a | the lhs MeshFunction |
| b | the rhs MeshFunction |
a + b, i.e. a new mesh function which represents the pointwise addition of a and ba and b should produce the same type of values, e.g. both should be scalar valued or both matrix/vector/array valued.lf::uscalfe namespace, it will not be found by Argument Dependent Lookup. You can get around this by explictly importing the operator overload: using lf::uscalfe::operator+;Definition at line 671 of file mesh_function_binary.h.
|
related |
Subtracts two mesh functions.
| A | Type of the lhs MeshFunction |
| B | Type of the rhs MeshFunction |
| a | the lhs MeshFunction |
| b | the rhs MeshFunction |
a - b, i.e. a new mesh function which represents the pointwise difference of a minus ba and b should produce the same type of values, e.g. both should be scalar valued or both matrix/vector valued.lf::uscalfe namespace, it will not be found by Argument Dependent Lookup (ADL). You can get around this by explicitly importing the operator overload: using lf::uscalfe::operator-;Definition at line 700 of file mesh_function_binary.h.
|
private |
Definition at line 72 of file mesh_function_binary.h.
Referenced by lf::mesh::utils::MeshFunctionBinary< OP, A, B >::operator()().
|
private |
Definition at line 73 of file mesh_function_binary.h.
Referenced by lf::mesh::utils::MeshFunctionBinary< OP, A, B >::operator()().
|
private |
Definition at line 71 of file mesh_function_binary.h.
Referenced by lf::mesh::utils::MeshFunctionBinary< OP, A, B >::operator()().