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>;
}
Interface class representing a topological entity in a cellular complex
Definition entity.h:42
Provides the local element vector for a mesh entity.
Check if a given type T is an Eigen::Matrix.
Definition eigen_tools.h:70

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

  • evp an object of type EVP
  • e is a const lf::mesh::Entity object
  • SCALAR is an Eigen supported scalar datatype (e.g. double)
  • ROWS is the number of rows of the local element vector or Eigen::Dynamic

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.