LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Element matrix provider for the stokes system. More...
Public Member Functions | |
PiecewiseConstElementMatrixProvider (double sigma, const lf::mesh::utils::MeshDataSet< bool > &boundary, bool modified=false) | |
Constructor. More... | |
Eigen::MatrixXd | Eval (const lf::mesh::Entity &entity) const |
Compute the element matrix for some entity of a mesh. More... | |
bool | isActive (const lf::mesh::Entity &entity) const |
All entities are regarded as active. More... | |
Private Attributes | |
const double | sigma_ |
const lf::mesh::utils::MeshDataSet< bool > & | boundary_ |
const bool | modified_ |
Element matrix provider for the stokes system.
As basis functions, the curl of the standard linear Lagrangian FEM hat functions is used in order to guarantee divergence-freeness of the solution.
The (global) bilinear form is given by
\[ (u, v) \mapsto \sum_{e \in \mathcal{E}(\mathcal{M})} \int_e\! \frac{\sigma}{|e|}\left[\!\left[ u \cdot \tau_e \right]\!\right] : \left[\!\left[ v \cdot \tau_e \right]\!\right] \,\mathrm{d}x \]
To enable local assembly of the system matrix, auxilary dofs are introduced on the edges of the mesh which are then forced to be equal to the jump of \(u\) over that edge. As we use Raviart-Thomas basis functions, the normal component of the function is continuous over the mesh edges. For this reason, the jump terms only consist of the jump in the tangential direction over an edge.
Definition at line 39 of file piecewise_const_element_matrix_provider.h.
projects::ipdg_stokes::assemble::PiecewiseConstElementMatrixProvider::PiecewiseConstElementMatrixProvider | ( | double | sigma, |
const lf::mesh::utils::MeshDataSet< bool > & | boundary, | ||
bool | modified = false |
||
) |
Constructor.
sigma | The stabilization coefficient of the IPDG method |
boundary | A MeshDataSet marking the boundary edges |
modified | If true, the modified penalty term is used missing the scaling with 1/|e_n| |
Definition at line 12 of file piecewise_const_element_matrix_provider.cc.
Eigen::MatrixXd projects::ipdg_stokes::assemble::PiecewiseConstElementMatrixProvider::Eval | ( | const lf::mesh::Entity & | entity | ) | const |
Compute the element matrix for some entity of a mesh.
entity | The mesh entity to compute the element matrix for |
Definition at line 17 of file piecewise_const_element_matrix_provider.cc.
References boundary_, projects::ipdg_stokes::mesh::computeOutwardNormals(), lf::mesh::Entity::Geometry(), lf::geometry::Geometry::Global(), lf::uscalfe::FeLagrangeO1Tria< SCALAR >::GradientsReferenceShapeFunctions(), modified_, lf::base::RefEl::NodeCoords(), lf::mesh::Entity::RefEl(), sigma_, lf::mesh::Entity::SubEntities(), and lf::geometry::Volume().
|
inline |
All entities are regarded as active.
Definition at line 64 of file piecewise_const_element_matrix_provider.h.
|
private |
Definition at line 68 of file piecewise_const_element_matrix_provider.h.
Referenced by Eval().
|
private |
Definition at line 69 of file piecewise_const_element_matrix_provider.h.
Referenced by Eval().
|
private |
Definition at line 67 of file piecewise_const_element_matrix_provider.h.
Referenced by Eval().