LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Public Types | Public Member Functions | Private Attributes | List of all members
lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION > Class Template Referencefinal

Local computation of general element (load) vector for scalar finite elements; volume contributions only. More...

#include <lf/fe/fe.h>

Public Types

using scalar_t = decltype(SCALAR(0) *mesh::utils::MeshFunctionReturnType< MESH_FUNCTION >(0))
 
using ElemVec = Eigen::Matrix< scalar_t, Eigen::Dynamic, 1 >
 

Public Member Functions

 ScalarLoadElementVectorProvider (std::shared_ptr< const ScalarFESpace< SCALAR > > fe_space, MESH_FUNCTION f)
 Constructor, performs precomputations. More...
 
bool isActive (const lf::mesh::Entity &) const
 all cells are active More...
 
ElemVec Eval (const lf::mesh::Entity &cell) const
 
 ~ScalarLoadElementVectorProvider ()=default
 
standard constructors
 ScalarLoadElementVectorProvider (const ScalarLoadElementVectorProvider &)=delete
 
 ScalarLoadElementVectorProvider (ScalarLoadElementVectorProvider &&) noexcept=default
 
ScalarLoadElementVectorProvideroperator= (const ScalarLoadElementVectorProvider &)=delete
 
ScalarLoadElementVectorProvideroperator= (ScalarLoadElementVectorProvider &&)=delete
 

Private Attributes

MESH_FUNCTION f_
 An object providing the source function. More...
 
std::shared_ptr< const ScalarFESpace< SCALAR > > fe_space_
 
quad::QuadRuleCache qr_cache_
 

Detailed Description

template<typename SCALAR, typename MESH_FUNCTION>
class lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >

Local computation of general element (load) vector for scalar finite elements; volume contributions only.

Template Parameters
SCALARunderlying scalar type of the ScalarFESpace, usually double or complex<double>
MESH_FUNCTIONMeshFunction 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 assemble::AssembleVectorLocally().

Definition at line 540 of file loc_comp_ellbvp.h.

Member Typedef Documentation

◆ ElemVec

template<typename SCALAR , typename MESH_FUNCTION >
using lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ElemVec = Eigen::Matrix<scalar_t, Eigen::Dynamic, 1>

Definition at line 546 of file loc_comp_ellbvp.h.

◆ scalar_t

template<typename SCALAR , typename MESH_FUNCTION >
using lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::scalar_t = decltype( SCALAR(0) * mesh::utils::MeshFunctionReturnType<MESH_FUNCTION>(0))

Definition at line 544 of file loc_comp_ellbvp.h.

Constructor & Destructor Documentation

◆ ScalarLoadElementVectorProvider() [1/3]

template<typename SCALAR , typename MESH_FUNCTION >
lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ScalarLoadElementVectorProvider ( const ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION > &  )
delete

◆ ScalarLoadElementVectorProvider() [2/3]

template<typename SCALAR , typename MESH_FUNCTION >
lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ScalarLoadElementVectorProvider ( ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION > &&  )
defaultnoexcept

◆ ScalarLoadElementVectorProvider() [3/3]

template<typename SCALAR , typename MESH_FUNCTION >
lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ScalarLoadElementVectorProvider ( std::shared_ptr< const ScalarFESpace< SCALAR > >  fe_space,
MESH_FUNCTION  f 
)

Constructor, performs precomputations.

Parameters
fe_spacespecification of local shape functions
ffunctor 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 606 of file loc_comp_ellbvp.h.

◆ ~ScalarLoadElementVectorProvider()

template<typename SCALAR , typename MESH_FUNCTION >
lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::~ScalarLoadElementVectorProvider ( )
default

Member Function Documentation

◆ Eval()

template<typename SCALAR , typename MESH_FUNCTION >
ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ElemVec lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::Eval ( const lf::mesh::Entity cell) const

◆ isActive()

template<typename SCALAR , typename MESH_FUNCTION >
bool lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::isActive ( const lf::mesh::Entity ) const
inline

all cells are active

Definition at line 571 of file loc_comp_ellbvp.h.

◆ operator=() [1/2]

template<typename SCALAR , typename MESH_FUNCTION >
ScalarLoadElementVectorProvider & lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::operator= ( const ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION > &  )
delete

◆ operator=() [2/2]

template<typename SCALAR , typename MESH_FUNCTION >
ScalarLoadElementVectorProvider & lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::operator= ( ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION > &&  )
delete

Member Data Documentation

◆ f_

template<typename SCALAR , typename MESH_FUNCTION >
MESH_FUNCTION lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::f_
private

An object providing the source function.

Definition at line 585 of file loc_comp_ellbvp.h.

◆ fe_space_

template<typename SCALAR , typename MESH_FUNCTION >
std::shared_ptr<const ScalarFESpace<SCALAR> > lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::fe_space_
private

Definition at line 587 of file loc_comp_ellbvp.h.

◆ qr_cache_

template<typename SCALAR , typename MESH_FUNCTION >
quad::QuadRuleCache lf::fe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::qr_cache_
private

Definition at line 589 of file loc_comp_ellbvp.h.


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