LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Local edge contributions to element vector. More...
#include <lf/fe/fe.h>
Public Types | |
using | Scalar = decltype(SCALAR(0) *mesh::utils::MeshFunctionReturnType< FUNCTOR >(0)) |
using | ElemVec = Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > |
Public Member Functions | |
ScalarLoadEdgeVectorProvider (std::shared_ptr< const ScalarFESpace< SCALAR > > fe_space, FUNCTOR g, EDGESELECTOR edge_sel=base::PredicateTrue{}) | |
Constructor. More... | |
bool | isActive (const lf::mesh::Entity &cell) const |
all edges are active More... | |
ElemVec | Eval (const lf::mesh::Entity &edge) const |
~ScalarLoadEdgeVectorProvider ()=default | |
standard constructors | |
ScalarLoadEdgeVectorProvider (const ScalarLoadEdgeVectorProvider &)=delete | |
ScalarLoadEdgeVectorProvider (ScalarLoadEdgeVectorProvider &&) noexcept=default | |
ScalarLoadEdgeVectorProvider & | operator= (const ScalarLoadEdgeVectorProvider &)=delete |
ScalarLoadEdgeVectorProvider & | operator= (ScalarLoadEdgeVectorProvider &&)=delete |
Private Attributes | |
FUNCTOR | g_ |
EDGESELECTOR | edge_sel_ |
std::shared_ptr< const ScalarFESpace< SCALAR > > | fe_space_ |
quad::QuadRuleCache | qr_cache_ |
Local edge contributions to element vector.
SCALAR | underlying scalar type of the FESpace, usually double or complex<double> |
FUNCTOR | SCALAR valued MeshFunction which defines the function \( g \) |
EDGESELECTOR | selector type for active edges |
The underlying local linear form for an edge \(e\) is
\[ v \mapsto \int_e g(\mathbf{x})\,\overline{v(\mathbf{x})}\,\mathrm{d}S\mathbf{x}\;, \]
where \(g\) is supposed to be a locally continuous source function.
Computations are based on quadrature rules supplied by the LehrFEM++ lf::quad::make_QuadRule() method.
This class complies with the requirements for the template parameter ELEM_VEC_COMP
of the function AssembleVectorLocally().
Definition at line 701 of file loc_comp_ellbvp.h.
using lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::ElemVec = Eigen::Matrix<Scalar, Eigen::Dynamic, 1> |
Definition at line 707 of file loc_comp_ellbvp.h.
using lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::Scalar = decltype(SCALAR(0) * mesh::utils::MeshFunctionReturnType<FUNCTOR>(0)) |
Definition at line 705 of file loc_comp_ellbvp.h.
|
delete |
|
defaultnoexcept |
|
inline |
Constructor.
fe_space | ScalarFESpace that supplied the finite elements. |
g | functor object providing edge data |
edge_sel | selector predicate for active edges. |
This constructor selects one of LehrFEM++'s built-in quadrature rules with a degree of exactness twice as big as the polynomial degree of the finite element space.
Definition at line 730 of file loc_comp_ellbvp.h.
|
default |
ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::ElemVec lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::Eval | ( | const lf::mesh::Entity & | edge | ) | const |
|
inline |
all edges are active
Definition at line 736 of file loc_comp_ellbvp.h.
References lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::edge_sel_.
|
delete |
|
delete |
|
private |
Definition at line 750 of file loc_comp_ellbvp.h.
Referenced by lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::isActive().
|
private |
Definition at line 751 of file loc_comp_ellbvp.h.
|
private |
Definition at line 749 of file loc_comp_ellbvp.h.
|
private |
Definition at line 753 of file loc_comp_ellbvp.h.