![]() |
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Local computation of general element (load) vector for scalar finite elements; volume contributions only. More...
#include <lf/uscalfe/uscalfe.h>
Public Types | |
| using | scalar_t |
| Scalar type of the element matrix. | |
| using | ElemVec = Eigen::Matrix<scalar_t, Eigen::Dynamic, 1> |
Public Member Functions | |
| ScalarLoadElementVectorProvider (std::shared_ptr< const UniformScalarFESpace< SCALAR > > fe_space, MESH_FUNCTION f) | |
| Constructor, performs precomputations. | |
| ScalarLoadElementVectorProvider (std::shared_ptr< const UniformScalarFESpace< SCALAR > > fe_space, MESH_FUNCTION f, quad_rule_collection_t qr_collection) | |
| Constructor, performs precomputations based on user-supplied quadrature rules. | |
| virtual bool | isActive (const lf::mesh::Entity &) |
| Default implement: all cells are active. | |
| ElemVec | Eval (const lf::mesh::Entity &cell) |
| virtual | ~ScalarLoadElementVectorProvider ()=default |
standard constructors | |
| ScalarLoadElementVectorProvider (const ScalarLoadElementVectorProvider &)=delete | |
| ScalarLoadElementVectorProvider (ScalarLoadElementVectorProvider &&) noexcept=default | |
| ScalarLoadElementVectorProvider & | operator= (const ScalarLoadElementVectorProvider &)=delete |
| ScalarLoadElementVectorProvider & | operator= (ScalarLoadElementVectorProvider &&)=delete |
Private Attributes | |
| MESH_FUNCTION | f_ |
| An object providing the source function. | |
| std::array< PrecomputedScalarReferenceFiniteElement< SCALAR >, 5 > | fe_precomp_ |
Local computation of general element (load) vector for scalar finite elements; volume contributions only.
| SCALAR | Scalar type of the Finite Element Space. |
| MESH_FUNCTION | MeshFunction which defines the source function \( f \) |
The underlying local linear form is
\[ v \mapsto \int_K f(\mathbf{x})\,\overline{v(\mathbf{x})}\,\mathrm{d}\mathbf{x}\;, \]
where \(f\) is supposed to be a locally continuous source function.
Computation is based on a quadrature rules supplied by the LehrFEM++ lf::quad::QuadRule module.
This class complies with the requirements for the template parameter ELEM_VEC_COMP of the function AssembleVectorLocally().
This class logs additional information to ScalarLoadElementVectorProvider(). See Loggers and Debug output for more information.
Definition at line 563 of file loc_comp_ellbvp.h.
| using lf::uscalfe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ElemVec = Eigen::Matrix<scalar_t, Eigen::Dynamic, 1> |
Definition at line 570 of file loc_comp_ellbvp.h.
| using lf::uscalfe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::scalar_t |
Scalar type of the element matrix.
Definition at line 566 of file loc_comp_ellbvp.h.
|
delete |
References ScalarLoadElementVectorProvider().
Referenced by operator=(), operator=(), ScalarLoadElementVectorProvider(), and ScalarLoadElementVectorProvider().
|
defaultnoexcept |
References ScalarLoadElementVectorProvider().
| lf::uscalfe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ScalarLoadElementVectorProvider | ( | std::shared_ptr< const UniformScalarFESpace< SCALAR > > | fe_space, |
| MESH_FUNCTION | f ) |
Constructor, performs precomputations.
| fe_space | specification of local shape functions |
| f | functor object for source function |
Uses quadrature rule of double the degree of exactness compared to the degree of the finite element space.
Definition at line 639 of file loc_comp_ellbvp.h.
References f_, fe_precomp_, lf::base::RefEl::kQuad(), lf::base::RefEl::kTria(), and lf::quad::make_QuadRule().
| lf::uscalfe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ScalarLoadElementVectorProvider | ( | std::shared_ptr< const UniformScalarFESpace< SCALAR > > | fe_space, |
| MESH_FUNCTION | f, | ||
| quad_rule_collection_t | qr_collection ) |
Constructor, performs precomputations based on user-supplied quadrature rules.
| fe_space | specification of local shape functions |
| f | functor object for source function |
| qr_collection | collection of quadrature rule. |
Definition at line 659 of file loc_comp_ellbvp.h.
References f_, fe_precomp_, lf::base::RefEl::kQuad(), lf::base::RefEl::kTria(), and lf::quad::QuadRule::RefEl().
|
virtualdefault |
| ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ElemVec lf::uscalfe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::Eval | ( | const lf::mesh::Entity & | cell | ) |
Definition at line 693 of file loc_comp_ellbvp.h.
References lf::geometry::Geometry::DimLocal(), f_, fe_precomp_, lf::mesh::Entity::Geometry(), lf::geometry::Geometry::Global(), lf::geometry::Geometry::IntegrationElement(), lf::mesh::Entity::RefEl(), and lf::uscalfe::ScalarLoadElementVectorProviderLogger().
|
inlinevirtual |
Default implement: all cells are active.
Definition at line 607 of file loc_comp_ellbvp.h.
References isActive().
Referenced by isActive().
|
delete |
References ScalarLoadElementVectorProvider().
|
delete |
References ScalarLoadElementVectorProvider().
|
private |
An object providing the source function.
Definition at line 621 of file loc_comp_ellbvp.h.
Referenced by Eval(), ScalarLoadElementVectorProvider(), and ScalarLoadElementVectorProvider().
|
private |
Definition at line 623 of file loc_comp_ellbvp.h.
Referenced by Eval(), ScalarLoadElementVectorProvider(), and ScalarLoadElementVectorProvider().