Default class for the local finite element discretization. All schemes share the same structure. The only scheme-specific behavior is in localDofs(elemDisc, boundaryFace), which is provided by the DofHelper. More...
#include <dumux/discretization/fem/feelementdiscretization.hh>
| GG | the finite element grid discretization type |
| enableGridDiscretizationCache | if the grid discretization is cached or not |
Public Types | |
| using | Element = typename GridView::template Codim<0>::Entity |
| export the element type | |
| using | GridDiscretization = GG |
| export type of finite element grid discretization | |
| using | ElementQuadratureRule = typename GG::ElementQuadratureRule |
| the quadrature rule type for elements | |
| using | IntersectionQuadratureRule = typename GG::IntersectionQuadratureRule |
| the quadrature rule type for intersections | |
| using | BoundaryFaceQuadratureRule = typename GG::BoundaryFaceQuadratureRule |
| the quadrature rule type for boundary faces | |
| using | BoundaryFace = typename GG::BoundaryFace |
| export the boundary face type | |
Public Member Functions | |
| FEElementDiscretization (const GGCache &ggCache) | |
| Constructor. | |
| const FeLocalBasis & | feLocalBasis () const |
| Get a local finite element basis. | |
| const auto & | feLocalCoefficients () const |
| Get the local finite element coefficients. | |
| std::size_t | numLocalDofs () const |
| The total number of element-local dofs. | |
| FEElementDiscretization | bind (const Element &element) && |
| bind the local view (r-value overload) This overload is called when an instance of this class is a temporary in the usage context This allows a usage like this: const auto view = localView(...).bind(element); | |
| void | bind (const Element &element) & |
| FEElementDiscretization | bindElement (const Element &element) && |
| bind the local view (r-value overload) This overload is called when an instance of this class is a temporary in the usage context This allows a usage like this: const auto view = localView(...).bindElement(element); | |
| void | bindElement (const Element &element) & |
| Binding of an element, has to be called before using the fe geometries. | |
| bool | isBound () const |
| Returns true if bind/bindElement has already been called. | |
| const Element & | element () const |
| The bound element. | |
| const Element::Geometry & | elementGeometry () const |
| The bound element geometry. | |
| const GridDiscretization & | gridGeometry () const |
| The grid geometry we are a restriction of (deprecated). | |
| const GridDiscretization & | gridDiscretization () const |
| The grid discretization we are a restriction of. | |
| bool | hasBoundaryFaces () const |
| Returns whether the element has boundary faces. | |
| const BoundaryFace & | boundaryFace (LocalIndexType bfIdx) const |
| Get a boundary face with a local boundary face index. | |
| std::size_t | elementIndex () const |
| The bound element index. | |
| BoundaryFace::Traits::Geometry | geometry (const BoundaryFace &boundaryFace) const |
| Geometry of a boundary face. | |
Static Public Attributes | |
| static constexpr std::size_t | maxNumElementDofs = GridDiscretization::maxNumElementDofs |
| the maximum number of dofs per element | |
Friends | |
| auto | localDofs (const FEElementDiscretization &elemDisc) |
| iterate over all local dofs | |
| auto | nonCVLocalDofs (const FEElementDiscretization &elemDisc) |
| iterate over non-CV local dofs (for pure FE methods all dofs are non-CV) | |
| auto | localDofs (const FEElementDiscretization &elemDisc, const BoundaryFace &boundaryFace) |
| std::ranges::view auto | boundaryFaces (const FEElementDiscretization &elemDisc) |
| template<class LocalDof> | |
| auto | ipData (const FEElementDiscretization &elemDisc, const LocalDof &localDof) |
| Interpolation point data for a localDof. | |
| auto | ipData (const FEElementDiscretization &elemDisc, const typename Element::Geometry::GlobalCoordinate &globalPos) |
| Interpolation point data for a global position. | |
| using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::BoundaryFace = typename GG::BoundaryFace |
| using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::BoundaryFaceQuadratureRule = typename GG::BoundaryFaceQuadratureRule |
| using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::Element = typename GridView::template Codim<0>::Entity |
| using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::ElementQuadratureRule = typename GG::ElementQuadratureRule |
| using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::GridDiscretization = GG |
| using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::IntersectionQuadratureRule = typename GG::IntersectionQuadratureRule |
|
inline |
|
inline |
this function is for compatibility reasons with cc methods The stencil is always element-local so bind and bindElement are identical.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
friend |
iterator range for boundary faces of the bound element. To iterate: for (auto&& bf : boundaryFaces(elemDisc))
|
friend |
|
friend |
|
friend |
|
friend |
an iterator over all local dofs related to a boundary face Delegates to DofHelper::localDofsOnBoundaryFace for scheme-specific behavior
|
friend |
|
staticconstexpr |