LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Computes the Galerkin LSE for the Hodge Laplacian of the whitney zero form. More...
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::Mesh > | mesh_p_ |
std::function< SCALAR(const Eigen::Matrix< double, 3, 1 > &)> | f_ |
lf::assemble::COOMatrix< SCALAR > | coo_matrix_ |
Eigen::Matrix< SCALAR, Eigen::Dynamic, 1 > | phi_ |
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
Definition at line 45 of file whitney_zero_hodge_laplacian.h.
|
inline |
Basic Constructor.
initializes basic mesh (Octaeder with radius 1.0) initializes zerovalued function f
Definition at line 54 of file whitney_zero_hodge_laplacian.h.
References projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::f_, projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::mesh_p_, and projects::hldo_sphere::mesh::SphereTriagMeshBuilder::setRefinementLevel().
|
inline |
Computes the Galerkin LSE.
The Galerkin matrix will be accessable with GetGalerkinMatrix() The load vector will be accessable with GetLoadVector
Definition at line 81 of file whitney_zero_hodge_laplacian.h.
References lf::assemble::AssembleVectorLocally(), projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::coo_matrix_, projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::f_, lf::base::RefEl::kPoint(), projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::mesh_p_, lf::assemble::DofHandler::NumDofs(), projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::phi_, and lf::assemble::COOMatrix< SCALAR >::setZero().
Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().
|
inline |
returns the Galerkin Matrix
This is the Matrix of the LSE
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().
|
inline |
returns the Loadvector
This is the righthandside of the LSE
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().
|
inline |
Sets the load function for later computations.
f | load 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().
|
inline |
Sets the mesh for later computations.
mesh_p | pointer 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().
|
private |
Definition at line 177 of file whitney_zero_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::Compute(), and projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::GetGalerkinMatrix().
|
private |
Definition at line 176 of file whitney_zero_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::Compute(), projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::SetLoadFunction(), and projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::WhitneyZeroHodgeLaplace().
|
private |
Definition at line 175 of file whitney_zero_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::Compute(), projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::SetMesh(), and projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::WhitneyZeroHodgeLaplace().
|
private |
Definition at line 178 of file whitney_zero_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::Compute(), and projects::hldo_sphere::operators::WhitneyZeroHodgeLaplace< SCALAR >::GetLoadVector().