ryujin 2.1.1 revision 350e54cc11f3d21282bddcf3e6517944dbc508bf
Public Member Functions | List of all members
ryujin::Discretization< dim > Class Template Reference

#include <source/discretization.h>

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

Public Member Functions

 Discretization (const MPIEnsemble &mpi_ensemble, const std::string &subsection="/Discretization")
 
void prepare (const std::string &base_name)
 

Accessors to data structures managed by this class.

const MPIEnsemblempi_ensemble_
 
std::unique_ptr< dealii::Triangulation< dim > > triangulation_
 
std::unique_ptr< const dealii::hp::MappingCollection< dim > > mapping_
 
std::unique_ptr< const dealii::hp::FECollection< dim > > finite_element_
 
std::unique_ptr< const dealii::hp::FECollection< dim > > finite_element_cg_
 
std::unique_ptr< const dealii::hp::QCollection< dim > > quadrature_
 
std::unique_ptr< const dealii::hp::QCollection< dim > > quadrature_high_order_
 
std::unique_ptr< const dealii::hp::QCollection< dim > > nodal_quadrature_
 
std::unique_ptr< const dealii::hp::QCollection< 1 > > quadrature_1d_
 
std::unique_ptr< const dealii::hp::QCollection< dim - 1 > > face_quadrature_
 
std::unique_ptr< const dealii::hp::QCollection< dim - 1 > > face_nodal_quadrature_
 
const auto & ansatz () const
 
bool have_discontinuous_ansatz () const
 
unsigned int polynomial_degree () const
 
bool have_distributed_triangulation () const
 
const auto & triangulation () const
 
const auto & mapping () const
 
const auto & finite_element () const
 
const auto & finite_element_cg () const
 
const auto & quadrature () const
 
const auto & quadrature_high_order () const
 
const auto & nodal_quadrature () const
 
const auto & quadrature_1d () const
 
const auto & face_quadrature () const
 
const auto & face_nodal_quadrature () const
 

Internal data:

template<typename Discretization , int dim_, typename Number_ >
class SolutionTransfer
 

Detailed Description

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

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

The class uses dealii::ParameterAcceptor to handle a multitude of parameters to control the creation of meshes for a variety of benchmark configurations and to read in meshes in one of the formats supported by the deal.II library.

Definition at line 220 of file discretization.h.

Constructor & Destructor Documentation

◆ Discretization()

template<int dim>
ryujin::Discretization< dim >::Discretization ( const MPIEnsemble mpi_ensemble,
const std::string &  subsection = "/Discretization< dim >" 
)

Constructor.

Definition at line 27 of file discretization.template.h.

References ryujin::cg_q1.

Member Function Documentation

◆ prepare()

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

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

Definition at line 65 of file discretization.template.h.

References ryujin::parallel_distributed, ryujin::parallel_fullydistributed, and ryujin::parallel_shared.

◆ ansatz()

template<int dim>
const auto & ryujin::Discretization< dim >::ansatz ( ) const
inline

Return a read-only const reference to the finite element ansatz.

Definition at line 243 of file discretization.h.

◆ have_discontinuous_ansatz()

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

Return a boolean indicating whether the chosen Ansatz space is discontinuous.

Definition at line 250 of file discretization.h.

References ryujin::cg_q1, ryujin::cg_q2, ryujin::cg_q3, ryujin::dg_q1, ryujin::dg_q2, and ryujin::dg_q3.

◆ polynomial_degree()

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

Return the polynomial degree of the chosen finite element ansatz.

Definition at line 277 of file discretization.h.

References ryujin::cg_q1, ryujin::cg_q2, ryujin::cg_q3, ryujin::dg_q1, ryujin::dg_q2, and ryujin::dg_q3.

◆ have_distributed_triangulation()

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

Return a boolean indicating whether the chosen mesh geometry is stored in a parallel distributed, or parallel fullydistributed triangulation.

Definition at line 304 of file discretization.h.

References ryujin::Discretization< dim >::triangulation_.

◆ triangulation()

template<int dim>
const auto & ryujin::Discretization< dim >::triangulation ( ) 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.

Definition at line 330 of file discretization.h.

◆ mapping()

template<int dim>
const auto & ryujin::Discretization< dim >::mapping ( ) const
inline

Return a read-only const reference to the mapping.

Note
The accessor returns an MappingCollection object.

Definition at line 337 of file discretization.h.

◆ finite_element()

template<int dim>
const auto & ryujin::Discretization< dim >::finite_element ( ) const
inline

Return a read-only const reference to the finite element.

Note
The accessor returns an FECollection object.

Definition at line 344 of file discretization.h.

◆ finite_element_cg()

template<int dim>
const auto & ryujin::Discretization< dim >::finite_element_cg ( ) const
inline

Return a read-only const reference to a continuous ("cG") variant of the selected discontinuous finite element space.

Note
The accessor returns an FECollection object.

Definition at line 352 of file discretization.h.

◆ quadrature()

template<int dim>
const auto & ryujin::Discretization< dim >::quadrature ( ) const
inline

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

Note
The accessor returns an QCollection object.

Definition at line 359 of file discretization.h.

◆ quadrature_high_order()

template<int dim>
const auto & ryujin::Discretization< dim >::quadrature_high_order ( ) const
inline

Return a read-only const reference to a highe order quadrature rule used for computing errors.

Note
The accessor returns an QCollection object.

Definition at line 367 of file discretization.h.

◆ nodal_quadrature()

template<int dim>
const auto & ryujin::Discretization< dim >::nodal_quadrature ( ) const
inline

Return a read-only const reference to the nodal quadrature rule (Gauß Lobatto).

Note
The accessor returns an QCollection object.

Definition at line 375 of file discretization.h.

◆ quadrature_1d()

template<int dim>
const auto & ryujin::Discretization< dim >::quadrature_1d ( ) const
inline

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

Note
The accessor returns an QCollection object.

Definition at line 382 of file discretization.h.

◆ face_quadrature()

template<int dim>
const auto & ryujin::Discretization< dim >::face_quadrature ( ) const
inline

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

Note
The accessor returns an QCollection object.

Definition at line 389 of file discretization.h.

◆ face_nodal_quadrature()

template<int dim>
const auto & ryujin::Discretization< dim >::face_nodal_quadrature ( ) const
inline

Return a read-only const reference to the nodal face quadrature rule (Gauß Lobatto).

Note
The accessor returns an QCollection object.

Definition at line 397 of file discretization.h.

Friends And Related Function Documentation

◆ SolutionTransfer

template<int dim>
template<typename Discretization , int dim_, typename Number_ >
friend class SolutionTransfer
friend

In the SolutionTransfer class we need writable access to the triangulation object in order to prepare data for mesh adaptation and checkpointing / restart. Work around this issue by declaring the solution transfer class to be a friend rather than changing the constructor, or augmenting the methods in SolutionTransfer.

Definition at line 448 of file discretization.h.

Member Data Documentation

◆ mpi_ensemble_

template<int dim>
const MPIEnsemble& ryujin::Discretization< dim >::mpi_ensemble_
protected

Definition at line 400 of file discretization.h.

◆ triangulation_

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

◆ mapping_

template<int dim>
std::unique_ptr<const dealii::hp::MappingCollection<dim> > ryujin::Discretization< dim >::mapping_
protected

Definition at line 403 of file discretization.h.

◆ finite_element_

template<int dim>
std::unique_ptr<const dealii::hp::FECollection<dim> > ryujin::Discretization< dim >::finite_element_
protected

Definition at line 404 of file discretization.h.

◆ finite_element_cg_

template<int dim>
std::unique_ptr<const dealii::hp::FECollection<dim> > ryujin::Discretization< dim >::finite_element_cg_
protected

Definition at line 405 of file discretization.h.

◆ quadrature_

template<int dim>
std::unique_ptr<const dealii::hp::QCollection<dim> > ryujin::Discretization< dim >::quadrature_
protected

Definition at line 406 of file discretization.h.

◆ quadrature_high_order_

template<int dim>
std::unique_ptr<const dealii::hp::QCollection<dim> > ryujin::Discretization< dim >::quadrature_high_order_
protected

Definition at line 407 of file discretization.h.

◆ nodal_quadrature_

template<int dim>
std::unique_ptr<const dealii::hp::QCollection<dim> > ryujin::Discretization< dim >::nodal_quadrature_
protected

Definition at line 408 of file discretization.h.

◆ quadrature_1d_

template<int dim>
std::unique_ptr<const dealii::hp::QCollection<1> > ryujin::Discretization< dim >::quadrature_1d_
protected

Definition at line 409 of file discretization.h.

◆ face_quadrature_

template<int dim>
std::unique_ptr<const dealii::hp::QCollection<dim - 1> > ryujin::Discretization< dim >::face_quadrature_
protected

Definition at line 410 of file discretization.h.

◆ face_nodal_quadrature_

template<int dim>
std::unique_ptr<const dealii::hp::QCollection<dim - 1> > ryujin::Discretization< dim >::face_nodal_quadrature_
protected

Definition at line 412 of file discretization.h.


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