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

Computes the Galerkin LSE for the Hodge Laplacian of the whitney zero form. More...

#include </home/nico/bildung/SemVI/thesis/lehrfempp/projects/hldo_sphere/operators/whitney_zero_hodge_laplacian.h>

Public Member Functions

 WhitneyZeroHodgeLaplace ()
 Basic Constructor. More...
 
void Compute ()
 Computes the Galerkin LSE. More...
 
void SetMesh (std::shared_ptr< const lf::mesh::Mesh > mesh_p)
 Sets the mesh for later computations. More...
 
void SetLoadFunction (std::function< SCALAR(const Eigen::Matrix< double, 3, 1 > &)> &f)
 Sets the load function for later computations. More...
 
Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > GetLoadVector ()
 returns the Loadvector More...
 
lf::assemble::COOMatrix< SCALAR > GetGalerkinMatrix ()
 returns the Galerkin Matrix More...
 

Private Attributes

std::shared_ptr< const lf::mesh::Meshmesh_p_
 
std::function< SCALAR(const Eigen::Matrix< double, 3, 1 > &)> f_
 
lf::assemble::COOMatrix< SCALAR > coo_matrix_
 
Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > phi_
 

Detailed Description

template<typename SCALAR>
class projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >

Computes the Galerkin LSE for the Hodge Laplacian of the whitney zero form.

\[ -\Delta_0 = -\text{div}_{\Gamma} \circ \mathbf{grad}_{\Gamma} \\ -\Delta_0 u = f \]

As basis functions, the barycentric basis functions are used

Note
Only triangular meshes are supported

Definition at line 45 of file whitney_zero_hodge_laplacian.h.

Constructor & Destructor Documentation

◆ WhitneyZeroHodgeLaplace()

template<typename SCALAR >
projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::WhitneyZeroHodgeLaplace ( )
inline

Member Function Documentation

◆ Compute()

template<typename SCALAR >
void projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::Compute ( )
inline

◆ GetGalerkinMatrix()

template<typename SCALAR >
lf::assemble::COOMatrix< SCALAR > projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::GetGalerkinMatrix ( )
inline

returns the Galerkin Matrix

This is the Matrix of the LSE

Note
The Galerkin matrix must be computed with Compute() before calling this funciton

Definition at line 172 of file whitney_zero_hodge_laplacian.h.

References projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::coo_matrix_.

Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().

◆ GetLoadVector()

template<typename SCALAR >
Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::GetLoadVector ( )
inline

returns the Loadvector

This is the righthandside of the LSE

Note
The loadvector must be computed with Compute() before calling this function

Definition at line 161 of file whitney_zero_hodge_laplacian.h.

References projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::phi_.

Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().

◆ SetLoadFunction()

template<typename SCALAR >
void projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::SetLoadFunction ( std::function< SCALAR(const Eigen::Matrix< double, 3, 1 > &)> &  f)
inline

Sets the load function for later computations.

Parameters
fload function

\[ -\Delta_0 = \text{div}_{\Gamma} \circ \mathbf{grad}_{\Gamma} \\ -\Delta_0 u + k^2 u = f \]

Definition at line 147 of file whitney_zero_hodge_laplacian.h.

References projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::f_.

Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().

◆ SetMesh()

template<typename SCALAR >
void projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::SetMesh ( std::shared_ptr< const lf::mesh::Mesh mesh_p)
inline

Sets the mesh for later computations.

Parameters
mesh_ppointer to the mesh

requries all cells in the mesh are triangles requries mesh global dimension to be 3

Definition at line 122 of file whitney_zero_hodge_laplacian.h.

References lf::base::RefEl::kTria(), projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::mesh_p_, and lf::base::RefEl::RefEl().

Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().

Member Data Documentation

◆ coo_matrix_

template<typename SCALAR >
lf::assemble::COOMatrix<SCALAR> projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::coo_matrix_
private

◆ f_

template<typename SCALAR >
std::function<SCALAR(const Eigen::Matrix<double, 3, 1>&)> projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::f_
private

◆ mesh_p_

template<typename SCALAR >
std::shared_ptr<const lf::mesh::Mesh> projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::mesh_p_
private

◆ phi_

template<typename SCALAR >
Eigen::Matrix<SCALAR, Eigen::Dynamic, 1> projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::phi_
private

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