LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Computes the Galerkin LSE for the Hodge Laplacian of the whitney two form. More...
Public Member Functions | |
WhitneyTwoHodgeLaplace () | |
Constructor initializes basic mesh (Octaeder with radius 1.0) initializes zerovalued function f. More... | |
void | Compute () |
Computes the Galerkin LSE. More... | |
void | SetMesh (std::shared_ptr< const lf::mesh::Mesh > mesh_p) |
Sets the mesh and creates dof_handler. More... | |
void | SetLoadFunction (std::function< SCALAR(const Eigen::Matrix< double, 3, 1 > &)> &f) |
Sets the load function. 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 two form.
\[ -\Delta_2 = -\text{div}_{\Gamma} \circ \mathbf{grad}_{\Gamma} \\ -\Delta_2 u = f \]
Basis functions used are the rotated Whitney 1-forms and the cellwise constant functions
Details regarding the mathematical derivations can be found in the thesis Hodge-Laplacians and Dirac Operators on the Surface of the 3-Sphere
section 4.3.3.
Definition at line 54 of file whitney_two_hodge_laplacian.h.
|
inline |
Constructor initializes basic mesh (Octaeder with radius 1.0) initializes zerovalued function f.
Definition at line 62 of file whitney_two_hodge_laplacian.h.
|
inline |
Computes the Galerkin LSE.
The Galerkin matrix will be accessable with GetGalerkinMatrix() The load vector will be accessable with GetLoadVector()
Definition at line 88 of file whitney_two_hodge_laplacian.h.
References lf::assemble::AssembleVectorLocally(), lf::base::RefEl::kSegment(), lf::base::RefEl::kTria(), lf::assemble::DofHandler::NumDofs(), lf::assemble::COOMatrix< SCALAR >::setZero(), and lf::assemble::COOMatrix< SCALAR >::triplets().
Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().
|
inline |
returns the Galerkin Matrix
This is the Matrix of the LSE containing the negative laplacian
Definition at line 234 of file whitney_two_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().
|
inline |
returns the Loadvector
This is the righthandside of the LSE
Definition at line 223 of file whitney_two_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().
|
inline |
Sets the load function.
f | load function |
\[ \Delta_2 = \text{div}_{\Gamma} \circ \mathbf{grad}_{\Gamma} \\ \Delta_2 u = f \]
Definition at line 209 of file whitney_two_hodge_laplacian.h.
Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().
|
inline |
Sets the mesh and creates dof_handler.
mesh_p | pointer to the mesh |
requries all cells in the mesh are triangles requries mesh global dimension to be 3
Definition at line 184 of file whitney_two_hodge_laplacian.h.
References lf::base::RefEl::kTria(), and lf::base::RefEl::RefEl().
Referenced by projects::hldo_sphere::operators::HodgeLaplaciansSourceProblems< SCALAR >::Compute().
|
private |
Definition at line 239 of file whitney_two_hodge_laplacian.h.
|
private |
Definition at line 238 of file whitney_two_hodge_laplacian.h.
|
private |
Definition at line 237 of file whitney_two_hodge_laplacian.h.
|
private |
Definition at line 240 of file whitney_two_hodge_laplacian.h.