version 3.11-dev
Loading...
Searching...
No Matches
Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache > Class Template Reference

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>

Inheritance diagram for Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >:

Description

template<class GG, bool enableGridDiscretizationCache>
class Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >
Template Parameters
GGthe finite element grid discretization type
enableGridDiscretizationCacheif 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 Elementelement () const
 The bound element.
const Element::Geometry & elementGeometry () const
 The bound element geometry.
const GridDiscretizationgridGeometry () const
 The grid geometry we are a restriction of (deprecated).
const GridDiscretizationgridDiscretization () const
 The grid discretization we are a restriction of.
bool hasBoundaryFaces () const
 Returns whether the element has boundary faces.
const BoundaryFaceboundaryFace (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.

Member Typedef Documentation

◆ BoundaryFace

template<class GG, bool enableGridDiscretizationCache>
using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::BoundaryFace = typename GG::BoundaryFace

◆ BoundaryFaceQuadratureRule

template<class GG, bool enableGridDiscretizationCache>
using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::BoundaryFaceQuadratureRule = typename GG::BoundaryFaceQuadratureRule

◆ Element

template<class GG, bool enableGridDiscretizationCache>
using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::Element = typename GridView::template Codim<0>::Entity

◆ ElementQuadratureRule

template<class GG, bool enableGridDiscretizationCache>
using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::ElementQuadratureRule = typename GG::ElementQuadratureRule

◆ GridDiscretization

template<class GG, bool enableGridDiscretizationCache>
using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::GridDiscretization = GG

◆ IntersectionQuadratureRule

template<class GG, bool enableGridDiscretizationCache>
using Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::IntersectionQuadratureRule = typename GG::IntersectionQuadratureRule

Constructor & Destructor Documentation

◆ FEElementDiscretization()

template<class GG, bool enableGridDiscretizationCache>
Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::FEElementDiscretization ( const GGCache & ggCache)
inline

Member Function Documentation

◆ bind() [1/2]

template<class GG, bool enableGridDiscretizationCache>
void Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::bind ( const Element & element) &
inline

this function is for compatibility reasons with cc methods The stencil is always element-local so bind and bindElement are identical.

◆ bind() [2/2]

template<class GG, bool enableGridDiscretizationCache>
FEElementDiscretization Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::bind ( const Element & element) &&
inline

◆ bindElement() [1/2]

template<class GG, bool enableGridDiscretizationCache>
void Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::bindElement ( const Element & element) &
inline

◆ bindElement() [2/2]

template<class GG, bool enableGridDiscretizationCache>
FEElementDiscretization Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::bindElement ( const Element & element) &&
inline

◆ boundaryFace()

template<class GG, bool enableGridDiscretizationCache>
const BoundaryFace & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::boundaryFace ( LocalIndexType bfIdx) const
inline

◆ element()

template<class GG, bool enableGridDiscretizationCache>
const Element & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::element ( ) const
inline

◆ elementGeometry()

template<class GG, bool enableGridDiscretizationCache>
const Element::Geometry & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::elementGeometry ( ) const
inline

◆ elementIndex()

template<class GG, bool enableGridDiscretizationCache>
std::size_t Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::elementIndex ( ) const
inline

◆ feLocalBasis()

template<class GG, bool enableGridDiscretizationCache>
const FeLocalBasis & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::feLocalBasis ( ) const
inline

◆ feLocalCoefficients()

template<class GG, bool enableGridDiscretizationCache>
const auto & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::feLocalCoefficients ( ) const
inline

◆ geometry()

template<class GG, bool enableGridDiscretizationCache>
BoundaryFace::Traits::Geometry Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::geometry ( const BoundaryFace & boundaryFace) const
inline

◆ gridDiscretization()

template<class GG, bool enableGridDiscretizationCache>
const GridDiscretization & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::gridDiscretization ( ) const
inline

◆ gridGeometry()

template<class GG, bool enableGridDiscretizationCache>
const GridDiscretization & Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::gridGeometry ( ) const
inline

◆ hasBoundaryFaces()

template<class GG, bool enableGridDiscretizationCache>
bool Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::hasBoundaryFaces ( ) const
inline

◆ isBound()

template<class GG, bool enableGridDiscretizationCache>
bool Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::isBound ( ) const
inline

◆ numLocalDofs()

template<class GG, bool enableGridDiscretizationCache>
std::size_t Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::numLocalDofs ( ) const
inline

◆ boundaryFaces

template<class GG, bool enableGridDiscretizationCache>
std::ranges::view auto boundaryFaces ( const FEElementDiscretization< GG, enableGridDiscretizationCache > & elemDisc)
friend

iterator range for boundary faces of the bound element. To iterate: for (auto&& bf : boundaryFaces(elemDisc))

◆ ipData [1/2]

template<class GG, bool enableGridDiscretizationCache>
template<class LocalDof>
auto ipData ( const FEElementDiscretization< GG, enableGridDiscretizationCache > & elemDisc,
const LocalDof & localDof )
friend

◆ ipData [2/2]

template<class GG, bool enableGridDiscretizationCache>
auto ipData ( const FEElementDiscretization< GG, enableGridDiscretizationCache > & elemDisc,
const typename Element::Geometry::GlobalCoordinate & globalPos )
friend

◆ localDofs [1/2]

template<class GG, bool enableGridDiscretizationCache>
auto localDofs ( const FEElementDiscretization< GG, enableGridDiscretizationCache > & elemDisc)
friend

◆ localDofs [2/2]

template<class GG, bool enableGridDiscretizationCache>
auto localDofs ( const FEElementDiscretization< GG, enableGridDiscretizationCache > & elemDisc,
const BoundaryFace & boundaryFace )
friend

an iterator over all local dofs related to a boundary face Delegates to DofHelper::localDofsOnBoundaryFace for scheme-specific behavior

◆ nonCVLocalDofs

template<class GG, bool enableGridDiscretizationCache>
auto nonCVLocalDofs ( const FEElementDiscretization< GG, enableGridDiscretizationCache > & elemDisc)
friend

Member Data Documentation

◆ maxNumElementDofs

template<class GG, bool enableGridDiscretizationCache>
std::size_t Dumux::Experimental::FEElementDiscretization< GG, enableGridDiscretizationCache >::maxNumElementDofs = GridDiscretization::maxNumElementDofs
staticconstexpr

The documentation for this class was generated from the following file: