LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Public Member Functions | Private Attributes | List of all members
projects::hldo_sphere::assemble::WhitneyOneVectorProvider< SCALAR > Class Template Reference

Element vector provider for Whitney one forms. More...

#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/hldo_sphere/assemble/whitney_one_vector_provider.h>

Public Member Functions

 WhitneyOneVectorProvider (const std::function< Eigen::Matrix< SCALAR, 3, 1 >(const Eigen::Vector3d &)> &f)
 Constructor. More...
 
Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > Eval (const lf::mesh::Entity &entity) const
 Compute the element vector for a given triangle off the mesh. More...
 
bool isActive (const lf::mesh::Entity &entity) const
 All entities are regarded as active. More...
 

Private Attributes

const std::function< Eigen::Matrix< SCALAR, 3, 1 >(const Eigen::Vector3d &)> f_
 

Detailed Description

template<typename SCALAR>
class projects::hldo_sphere::assemble::WhitneyOneVectorProvider< SCALAR >

Element vector provider for Whitney one forms.

The linear form is given by

\[ (\mathbf{v}) \mapsto \int\limits_K \mathbf{f} \cdot \mathbf{v} \,\mathrm{d}x, \quad \mathbf{f}, \mathbf{v} \in \mathbf{H}(\text{curl}_{\Gamma}, \partial\mathbf{S}) \]

The element vector provider works in a 3 dimensional world with 2 dimensional triangular cells.

Basis functions are the Whitney 1-forms, surface edge elements for \(v\)

The whitney 1-forms, surface edge elements are associated with edges and defined as

\[ \mathbf{b}_i = s_i (\lambda_i \mathbf{grad}_{\Gamma}(\lambda_{i+1}) - \lambda_{i+1} \mathbf{grad}_{\Gamma}(\lambda_{i})) \]

with \( \lambda_i \) barycentric basis functions and \( s_i \) is a sign of the function based on the relative orientation of the edge in the mesh.

Note
This class complies with the type requirements for the template argument ENTITY_VECTOR_PROVIDER of the function lf::assemble::AssembleVectorLocally().
Only triangular meshes are supported

Definition at line 56 of file whitney_one_vector_provider.h.

Constructor & Destructor Documentation

◆ WhitneyOneVectorProvider()

template<typename SCALAR >
projects::hldo_sphere::assemble::WhitneyOneVectorProvider< SCALAR >::WhitneyOneVectorProvider ( const std::function< Eigen::Matrix< SCALAR, 3, 1 >(const Eigen::Vector3d &)> &  f)
inline

Constructor.

Template Parameters
SCALARrepresenting the scalar field, on which the codomain is based on
Parameters
fa tangential vector field functor required to be defined on the mesh

Definition at line 67 of file whitney_one_vector_provider.h.

Member Function Documentation

◆ Eval()

template<typename SCALAR >
Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > projects::hldo_sphere::assemble::WhitneyOneVectorProvider< SCALAR >::Eval ( const lf::mesh::Entity entity) const
inline

◆ isActive()

template<typename SCALAR >
bool projects::hldo_sphere::assemble::WhitneyOneVectorProvider< SCALAR >::isActive ( const lf::mesh::Entity entity) const
inline

All entities are regarded as active.

Definition at line 153 of file whitney_one_vector_provider.h.

Member Data Documentation

◆ f_

template<typename SCALAR >
const std::function<Eigen::Matrix<SCALAR, 3, 1>(const Eigen::Vector3d &)> projects::hldo_sphere::assemble::WhitneyOneVectorProvider< SCALAR >::f_
private

The documentation for this class was generated from the following file: