ryujin 2.5.0 revision 3a6c8d57210175dea14d8116e1fe878f349f8c1c
Loading...
Searching...
No Matches
Classes | List of all members
ryujin::Interface::Discretization< dim > Class Template Referenceabstract

#include <include/ryujin/interface/discretization.h>

Inheritance diagram for ryujin::Interface::Discretization< dim >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::Interface::Discretization< dim >:
Collaboration graph
[legend]

Classes

struct  Collection
 

Public Types

Typedefs and constexpr constants
using Transformation = std::function< dealii::Point< dim >(const typename dealii::Triangulation< dim >::cell_iterator &, const dealii::Point< dim > &)>
 

Public Member Functions

Setup
virtual void prepare (const std::string &base_name)=0
 
virtual void update_mapping ()=0
 

Protected Attributes

Internal data
Ansatz ansatz_
 
unsigned int refinement_
 
std::unique_ptr< dealii::Triangulation< dim > > triangulation_
 
Collection collection_
 
std::shared_ptr< dealii::MappingQCache< dim > > mapping_cache_
 
Transformation transformation_
 
Geometry< dim > * selected_geometry_ = nullptr
 

Information and statistics

bool have_discontinuous_ansatz () const
 
unsigned int polynomial_degree () const
 
const dealii::hp::FECollection< dim > & finite_element () const
 
 Discretization (const std::string &subsection)
 

Detailed Description

template<int dim>
class ryujin::Interface::Discretization< dim >

The interface of a Discretization: a container for data related to the discretization, this includes the triangulation, finite element, mapping, and quadrature. After prepare() is called, the getter functions triangulation(), finite_element(), mapping(), and quadrature() return valid const references to the mentioned objects.

The interface holds all state in protected fields with a non-virtual accessor each. A derived class fills the fields in prepare() and update_mapping().

Definition at line 210 of file discretization.h.

Member Typedef Documentation

◆ Transformation

template<int dim>
using ryujin::Interface::Discretization< dim >::Transformation = std::function<dealii::Point<dim>( const typename dealii::Triangulation<dim>::cell_iterator &, const dealii::Point<dim> &)>

A forward transformation that maps points of the triangulation to the actual geometry, see Geometry::transformation().

Definition at line 244 of file discretization.h.

Constructor & Destructor Documentation

◆ Discretization()

template<int dim>
ryujin::Interface::Discretization< dim >::Discretization ( const std::string &  subsection)
inlineexplicitprotected

Return a read-only const reference to the quadrature rule.

Note
The accessor returns an QCollection object. Return a read-only const reference to a higher order quadrature rule used for computing errors.
The accessor returns an QCollection object. Return a read-only const reference to the nodal quadrature rule (Gauß Lobatto).
The accessor returns an QCollection object. Return a read-only const reference to the 1D quadrature rule.
The accessor returns an QCollection object. Return a read-only const reference to the 1D nodal quadrature rule (Gauß Lobatto).
The accessor returns an QCollection object. Return a read-only const reference to the face quadrature rules.
The accessor returns a vector of QCollection objects, one per finite element of the collection, that holds one quadrature per face of the reference cell (or a single quadrature used on all faces). Return a read-only const reference to the nodal face quadrature rules (Gauß Lobatto).
The accessor returns a vector of QCollection objects, see face_quadrature(). Constructor.

Definition at line 473 of file discretization.h.

Member Function Documentation

◆ prepare()

template<int dim>
virtual void ryujin::Interface::Discretization< dim >::prepare ( const std::string &  base_name)
pure virtual

Create the triangulation and set up the finite element, mapping and quadrature objects.

Implemented in ryujin::Discretization< dim >.

◆ update_mapping()

template<int dim>
virtual void ryujin::Interface::Discretization< dim >::update_mapping ( )
pure virtual

Recompute the cached mapping after the triangulation, or the transformation(), has changed.

Implemented in ryujin::Discretization< dim >.

◆ have_discontinuous_ansatz()

template<int dim>
bool ryujin::Interface::Discretization< dim >::have_discontinuous_ansatz ( ) const
inline

Return a read-only const reference to the selected geometry. Return a read-only const reference to the finite element ansatz. Return a boolean indicating whether the chosen Ansatz space is discontinuous.

Definition at line 286 of file discretization.h.

References ryujin::Interface::Discretization< dim >::ansatz_, ryujin::cg_q1, ryujin::cg_q2, ryujin::cg_q3, ryujin::dg_q1, ryujin::dg_q2, and ryujin::dg_q3.

Referenced by ryujin::Interface::Discretization< dim >::finite_element().

◆ polynomial_degree()

template<int dim>
unsigned int ryujin::Interface::Discretization< dim >::polynomial_degree ( ) const
inline

Return the polynomial degree of the chosen finite element ansatz.

Definition at line 313 of file discretization.h.

References ryujin::Interface::Discretization< dim >::ansatz_, ryujin::cg_q1, ryujin::cg_q2, ryujin::cg_q3, ryujin::dg_q1, ryujin::dg_q2, and ryujin::dg_q3.

◆ finite_element()

template<int dim>
const dealii::hp::FECollection< dim > & ryujin::Interface::Discretization< dim >::finite_element ( ) const
inline

Return a mutable reference to the refinement variable. Return a mutable reference to the triangulation. Return a read-only const reference to the triangulation. Return a mutable reference to the transformation used for the MappingQCache object.

Note
The transformation will be set initially during the prepare() call provided the selected geometry sets Geometry::transformation(). An empty transformation is treated as the identity.
After updating the transformation a call to update_mapping() is required to reinitialize the underlying MappingQCache. Return a read-only const reference to the transformation. Return a read-only const reference to the mapping.
The accessor returns an MappingCollection object. Return a read-only const reference to a continuous ("cG") variant of the selected finite element space.
If the selected finite element space is continuous then this method simply returns the same object as finite_element().
The accessor returns an FECollection object. Return a read-only const reference to a discontinuous ("dG") variant of the selected finite element space.
If the selected finite element space is discontinuous then this method simply returns the same object as finite_element().
The accessor returns an FECollection object. Return a read-only const reference to the selected finite element.
The accessor returns an FECollection object.

Definition at line 402 of file discretization.h.

References ryujin::Interface::Discretization< dim >::collection_, ryujin::Interface::Discretization< dim >::Collection::finite_element_cg, ryujin::Interface::Discretization< dim >::Collection::finite_element_dg, and ryujin::Interface::Discretization< dim >::have_discontinuous_ansatz().

Member Data Documentation

◆ ansatz_

template<int dim>
Ansatz ryujin::Interface::Discretization< dim >::ansatz_
protected

◆ refinement_

template<int dim>
unsigned int ryujin::Interface::Discretization< dim >::refinement_
protected

Definition at line 487 of file discretization.h.

◆ triangulation_

template<int dim>
std::unique_ptr<dealii::Triangulation<dim> > ryujin::Interface::Discretization< dim >::triangulation_
protected

Definition at line 489 of file discretization.h.

◆ collection_

template<int dim>
Collection ryujin::Interface::Discretization< dim >::collection_
protected

◆ mapping_cache_

template<int dim>
std::shared_ptr<dealii::MappingQCache<dim> > ryujin::Interface::Discretization< dim >::mapping_cache_
protected

Definition at line 492 of file discretization.h.

◆ transformation_

template<int dim>
Transformation ryujin::Interface::Discretization< dim >::transformation_
protected

Definition at line 493 of file discretization.h.

◆ selected_geometry_

template<int dim>
Geometry<dim>* ryujin::Interface::Discretization< dim >::selected_geometry_ = nullptr
protected

Definition at line 495 of file discretization.h.


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