LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Local edge contributions to element vector. More...
#include <lf/uscalfe/uscalfe.h>
Public Types | |
using | Scalar |
using | ElemVec = Eigen::Matrix<Scalar, Eigen::Dynamic, 1> |
Public Member Functions | |
ScalarLoadEdgeVectorProvider (std::shared_ptr< const UniformScalarFESpace< SCALAR > > fe_space, FUNCTOR g, EDGESELECTOR edge_sel=base::PredicateTrue{}) | |
Constructor, performs precomputations. | |
ScalarLoadEdgeVectorProvider (std::shared_ptr< const UniformScalarFESpace< SCALAR > > fe_space, FUNCTOR g, lf::quad::QuadRule quadrule, EDGESELECTOR edge_sel=base::PredicateTrue{}) | |
Constructor, performs precomputations. | |
virtual bool | isActive (const lf::mesh::Entity &cell) |
Default implement: all edges are active. | |
ElemVec | Eval (const lf::mesh::Entity &edge) |
virtual | ~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_ |
PrecomputedScalarReferenceFiniteElement< SCALAR > | pfe_ |
Local edge contributions to element vector.
SCALAR | underlying scalar type, 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 either based on a quadrature rules supplied by the LehrFEM++ lf::quad::QuadRule module or on a user-supplied quadrature rule.
This class complies with the requirements for the template parameter ELEM_VEC_COMP
of the function AssembleVectorLocally().
This class logs additional information to ScalarLoadEdgeVectorProvider(). See Loggers and Debug output for more information.
Definition at line 786 of file loc_comp_ellbvp.h.
using lf::uscalfe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::ElemVec = Eigen::Matrix<Scalar, Eigen::Dynamic, 1> |
Definition at line 791 of file loc_comp_ellbvp.h.
using lf::uscalfe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::Scalar |
Definition at line 788 of file loc_comp_ellbvp.h.
|
delete |
|
defaultnoexcept |
|
inline |
Constructor, performs precomputations.
fe_space | UniformScalarFESpace which describes the shape functions. |
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 814 of file loc_comp_ellbvp.h.
|
inline |
Constructor, performs precomputations.
fe_space | UniformScalarFESpace which describes the shape functions. |
g | functor object providing edge data |
quadrule | user-supplied quadrature rule object |
edge_sel | selector predicate for active edges. |
Definition at line 833 of file loc_comp_ellbvp.h.
|
virtualdefault |
ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::ElemVec lf::uscalfe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::Eval | ( | const lf::mesh::Entity & | edge | ) |
Definition at line 885 of file loc_comp_ellbvp.h.
References lf::mesh::Entity::Geometry(), lf::geometry::Geometry::Global(), lf::geometry::Geometry::IntegrationElement(), lf::base::RefEl::kSegment(), and lf::mesh::Entity::RefEl().
|
inlinevirtual |
Default implement: all edges are active.
Definition at line 847 of file loc_comp_ellbvp.h.
References lf::uscalfe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::edge_sel_.
|
delete |
|
delete |
|
private |
Definition at line 863 of file loc_comp_ellbvp.h.
Referenced by lf::uscalfe::ScalarLoadEdgeVectorProvider< SCALAR, FUNCTOR, EDGESELECTOR >::isActive().
|
private |
Definition at line 862 of file loc_comp_ellbvp.h.
|
private |
Definition at line 864 of file loc_comp_ellbvp.h.