ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
Loading...
Searching...
No Matches
Classes | List of all members
ryujin::OfflineData< dim, Number > Class Template Referencefinal

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

Inheritance diagram for ryujin::OfflineData< dim, Number >:
Inheritance graph
[legend]
Collaboration diagram for ryujin::OfflineData< dim, Number >:
Collaboration graph
[legend]

Classes

struct  CouplingDescription
 

Public Types

Typedefs and constexpr constants
using BoundaryDescription = std::tuple< unsigned int, dealii::Tensor< 1, dim, Number >, Number, Number, dealii::types::boundary_id, dealii::Point< dim > >
 
using BoundaryMap = std::vector< BoundaryDescription >
 
using CouplingBoundaryPairs = std::vector< CouplingDescription >
 

Public Member Functions

Constructor and setup
 OfflineData (const MPIEnsemble &mpi_ensemble, const Discretization< dim > &discretization, const std::string &subsection="/OfflineData")
 
void prepare (const unsigned int problem_dimension, const unsigned int n_precomputed_values)
 
Information and statistics
const dealii::DoFHandler< dim > & dof_handler () const
 
const dealii::AffineConstraints< Number > & affine_constraints () const
 

Detailed Description

template<int dim, typename Number = double>
class ryujin::OfflineData< dim, Number >

A class to store all data that can be precomputed offline.

This class takes a reference to a Discretization object (that itself holds a Triangulation, FiniteElement, Mapping, and Quadrature object).

Most notably this class sets up a DoFHandler, the SparsityPattern, various IndexSet objects to hold locally owned and locally relevant indices, and precomputes all matrices (mass matrix, lumped mass matrix, $c_{ij}$ matrices, and $n_{ij}$ matrices).

After prepare() is called, all getter functions return valid references.

Note
The offline data precomputed in this class is problem independent, it only depends on the chosen geometry and ansatz stored in the Discretization class.
Data structures in OfflineData are initialized with the ensemble subrange communicator stored in MPIEnsemble.

Definition at line 58 of file offline_data.h.

Member Typedef Documentation

◆ BoundaryDescription

template<int dim, typename Number = double>
using ryujin::OfflineData< dim, Number >::BoundaryDescription = std::tuple<unsigned int , dealii::Tensor<1, dim, Number> , Number , Number , dealii::types::boundary_id , dealii::Point<dim> >

A tuple describing (local) dof index, boundary normal, normal mass, boundary mass, boundary id, and position of the boundary degree of freedom.

Definition at line 71 of file offline_data.h.

◆ BoundaryMap

template<int dim, typename Number = double>
using ryujin::OfflineData< dim, Number >::BoundaryMap = std::vector<BoundaryDescription>

A vector of BoundaryDescription entries.

Definition at line 95 of file offline_data.h.

◆ CouplingBoundaryPairs

template<int dim, typename Number = double>
using ryujin::OfflineData< dim, Number >::CouplingBoundaryPairs = std::vector<CouplingDescription>

A vector of CouplingDescription entries.

Definition at line 100 of file offline_data.h.

Constructor & Destructor Documentation

◆ OfflineData()

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

Constructor

Member Function Documentation

◆ prepare()

template<int dim, typename Number = double>
void ryujin::OfflineData< dim, Number >::prepare ( const unsigned int  problem_dimension,
const unsigned int  n_precomputed_values 
)

Prepare offline data. A call to prepare() sets up storage, dof handlers, sparsity patterns, and assembles all matrices.

The problem_dimension and n_precomputed_values parameters is used to set up appropriately sized vector partitioners for the state and precomputed MultiComponentVector.

◆ dof_handler()

template<int dim, typename Number = double>
const dealii::DoFHandler< dim > & ryujin::OfflineData< dim, Number >::dof_handler ( ) const
inline

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

Note
If the selected finite element space is continuous then this method simply returns the same object as dof_handler(). Return a read-only const reference to the DoFHandler for the 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 dof_handler(). Return a read-only const reference to the dof handler.

Definition at line 153 of file offline_data.h.

Referenced by ryujin::MGSmoother< dim, Number >::initialize().

◆ affine_constraints()

template<int dim, typename Number = double>
const dealii::AffineConstraints< Number > & ryujin::OfflineData< dim, Number >::affine_constraints ( ) const
inline

An AffineConstraints object storing constraints for the continuous ("cG") variant of the selected finite element space in (deal.II typical) global numbering.

Note
The affine constraints object is populated with (a) hanging node constraints, and (b) periodicity constraints, that directly affect the chosen ansatz space.
If the selected finite element space is continuous then this method simply returns the same object as affine_constraints(). An AffineConstraints object storing constraints for the discontinuous ("dG") variant of the selected finite element space in (deal.II typical) global numbering.
The affine constraints object is populated with (a) hanging node constraints, and (b) periodicity constraints, that directly affect the chosen ansatz space.
If the selected finite element space is discontinuous then this method simply returns the same object as affine_constraints(). An AffineConstraints object storing constraints in (deal.II typical) global numbering.
The affine constraints object is populated with (a) hanging node constraints, and (b) periodicity constraints, that directly affect the chosen ansatz space.

Definition at line 200 of file offline_data.h.


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