LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Quadrature-based computation of local mass matrix for an edge. More...
#include <lf/uscalfe/uscalfe.h>
Public Types | |
using | scalar_t |
Scalar type of the element matrix. | |
using | ElemMat = Eigen::Matrix<scalar_t, Eigen::Dynamic, Eigen::Dynamic> |
Public Member Functions | |
MassEdgeMatrixProvider (std::shared_ptr< const UniformScalarFESpace< SCALAR > > fe_space, COEFF gamma, EDGESELECTOR edge_selector=base::PredicateTrue{}) | |
Constructor performing cell-independent initializations and choosing a suitable 1D quadrature rule. | |
MassEdgeMatrixProvider (std::shared_ptr< const UniformScalarFESpace< SCALAR > > fe_space, COEFF gamma, lf::quad::QuadRule quadrule, EDGESELECTOR edge_selector=base::PredicateTrue{}) | |
Constructor performing cell-independent initializations. | |
bool | isActive (const lf::mesh::Entity &edge) |
If true, then an edge is taken into account during assembly. | |
ElemMat | Eval (const lf::mesh::Entity &edge) |
actual computation of edge mass matrix | |
virtual | ~MassEdgeMatrixProvider ()=default |
standard constructors | |
MassEdgeMatrixProvider (const MassEdgeMatrixProvider &)=delete | |
MassEdgeMatrixProvider (MassEdgeMatrixProvider &&) noexcept=default | |
MassEdgeMatrixProvider & | operator= (const MassEdgeMatrixProvider &)=delete |
MassEdgeMatrixProvider & | operator= (MassEdgeMatrixProvider &&)=delete |
Private Attributes | |
COEFF | gamma_ |
EDGESELECTOR | edge_sel_ |
PrecomputedScalarReferenceFiniteElement< SCALAR > | fe_precomp_ |
Quadrature-based computation of local mass matrix for an edge.
SCALAR | underlying scalar type of the basis functions, usually double or complex<double> |
COEFF | MeshFunction that defines the scalar valued coefficient \( \gamma \) |
EDGESELECTOR | predicate defining which edges are included |
This helper class corresponds to the the element matrix for the bilinear form
\[ (u,v) \mapsto \int\limits_e \gamma(x)u(x)\overline{v(x)}\,\mathrm{d}S(x)\;, \]
where \(e\) is an edge of the mesh, and \(\gamma\) a scalar-valued coefficient function.
This class logs additional information to MassEdgeMatrixProviderLogger(). See Loggers and Debug output for more information.
Definition at line 369 of file loc_comp_ellbvp.h.
using lf::uscalfe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR >::ElemMat = Eigen::Matrix<scalar_t, Eigen::Dynamic, Eigen::Dynamic> |
Definition at line 375 of file loc_comp_ellbvp.h.
using lf::uscalfe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR >::scalar_t |
Scalar type of the element matrix.
Definition at line 372 of file loc_comp_ellbvp.h.
|
delete |
|
defaultnoexcept |
|
inline |
Constructor performing cell-independent initializations and choosing a suitable 1D quadrature rule.
fe_space | Describes the shapefunctions |
gamma | coefficient function through functor object |
edge_selector | predicate object selecting active to be covered in the assembly |
This constructor chooses a local quadature rule with double the degree of exactness as the polynomial degree of the finite element space.
Definition at line 396 of file loc_comp_ellbvp.h.
|
inline |
Constructor performing cell-independent initializations.
fe_space | Describes the shapefunctions |
gamma | coefficient function through functor object |
quadrule | quadrature rule for EDGE entities |
edge_selector | predicate object selecting active to be covered in the assembly |
This constructor takes a user-supplied quadrature rule.
Definition at line 420 of file loc_comp_ellbvp.h.
|
virtualdefault |
MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR >::ElemMat lf::uscalfe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR >::Eval | ( | const lf::mesh::Entity & | edge | ) |
actual computation of edge mass matrix
edge | reference to the edge for which the mass matrix is needed |
Actual computation of the local edge mass based on numerical quadrature and mapping techniques. The order of the quadrature rule is tied to the polynomial degree of the underlying Lagrangian finite element spaces: for polynomial degree p a quadrature rule is chosen that is exact for polynomials o degree 2p.
Definition at line 494 of file loc_comp_ellbvp.h.
References lf::mesh::Entity::Geometry(), lf::geometry::Geometry::IntegrationElement(), lf::base::RefEl::kSegment(), and lf::mesh::Entity::RefEl().
|
inline |
If true, then an edge is taken into account during assembly.
The information about "active" edges is supplied through the edge_selector
argument of the constructor.
Definition at line 441 of file loc_comp_ellbvp.h.
References lf::uscalfe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR >::edge_sel_, lf::base::RefEl::kSegment(), and lf::mesh::Entity::RefEl().
|
delete |
|
delete |
|
private |
Definition at line 468 of file loc_comp_ellbvp.h.
Referenced by lf::uscalfe::MassEdgeMatrixProvider< SCALAR, COEFF, EDGESELECTOR >::isActive().
|
private |
Definition at line 470 of file loc_comp_ellbvp.h.
|
private |
Definition at line 467 of file loc_comp_ellbvp.h.