LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
lf::assemble::EntityVectorProvider Concept Reference

Provides the local element vector for a mesh entity. More...

#include <lf/assemble/assemble.h>

Concept definition

template<class EVP>
concept lf::assemble::EntityVectorProvider = requires(EVP& evp, const mesh::Entity& e) {
{ evp.isActive(e) } -> std::same_as<bool>;
{ evp.Eval(e) } -> base::EigenMatrix<void, -1, 1>;
}
Provides the local element vector for a mesh entity.
Check if a given type T is an Eigen::Matrix.
Definition eigen_tools.h:70
void AssembleMatrixLocally(dim_t codim, const DofHandler &dof_handler_trial, const DofHandler &dof_handler_test, ENTITY_MATRIX_PROVIDER &entity_matrix_provider, TMPMATRIX &matrix)
Assembly function for standard assembly of finite element matrices.
Definition assembler.h:115

Detailed Description

Provides the local element vector for a mesh entity.

Description

An EntityVectorProvider is an object that provides a local element vector for a given mesh entity. EntityVectorProvider's are mostly used together with lf::assemble::AssembleVectorLocally to assemble a vector.

Requirements

The type EVP satisfies the Concept EntityVectorProvider if given

the following expressions are valid:

expression return type semantics
evp.isActive(e) bool Defines whether the entity e is taken into account by the assembly routine.
evp.Eval(e) Eigen::Matrix<SCALAR, ROWS, 1> Returns the local element vector for mesh entity e. Is only called if evp.isActive(e)==true.

Usage scenarios

The concept of a EntityVectorProvider is widely used in the lf::assemble and lf::uscalfe modules:

Archetype

See also

Classes modelling this concept

Definition at line 211 of file assemble_concepts.h.