![]() |
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 |
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. | |
bool | isActive (const lf::mesh::Entity &cell) const |
all edges are active | |
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 ScalarFESpace, 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 730 of file loc_comp_ellbvp.h.
using lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::ElemVec = Eigen::Matrix<Scalar, Eigen::Dynamic, 1> |
Definition at line 734 of file loc_comp_ellbvp.h.
using lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::Scalar |
Definition at line 732 of file loc_comp_ellbvp.h.
|
delete |
References ScalarLoadEdgeVectorProvider().
Referenced by operator=(), operator=(), ScalarLoadEdgeVectorProvider(), ScalarLoadEdgeVectorProvider(), and ScalarLoadEdgeVectorProvider().
|
defaultnoexcept |
References ScalarLoadEdgeVectorProvider().
|
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 757 of file loc_comp_ellbvp.h.
References ScalarLoadEdgeVectorProvider().
|
default |
ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::ElemVec lf::fe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::Eval | ( | const lf::mesh::Entity & | edge | ) | const |
Definition at line 801 of file loc_comp_ellbvp.h.
References lf::geometry::Geometry::DimLocal(), fe_space_, g_, lf::mesh::Entity::Geometry(), lf::geometry::Geometry::IntegrationElement(), lf::quad::QuadRule::NumPoints(), lf::quad::QuadRule::Points(), qr_cache_, lf::mesh::Entity::RefEl(), and lf::quad::QuadRule::Weights().
|
inline |
|
delete |
References ScalarLoadEdgeVectorProvider().
|
delete |
References ScalarLoadEdgeVectorProvider().
|
private |
Definition at line 777 of file loc_comp_ellbvp.h.
Referenced by isActive().
|
private |
Definition at line 778 of file loc_comp_ellbvp.h.
Referenced by Eval().
|
private |
Definition at line 776 of file loc_comp_ellbvp.h.
Referenced by Eval().
|
private |
Definition at line 780 of file loc_comp_ellbvp.h.
Referenced by Eval().