ryujin 2.1.1 revision 71cdc42292164f8095c0bd62c4ea75ebcfac58fa
Loading...
Searching...
No Matches
List of all members
ryujin::MeshAdaptor< Description, dim, Number > Class Template Referencefinal

#include <source/mesh_adaptor.h>

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

Public Member Functions

Constructor and setup
 MeshAdaptor (const MPIEnsemble &mpi_ensemble, const OfflineData< dim, Number > &offline_data, const HyperbolicSystem &hyperbolic_system, const ParabolicSystem &parabolic_system, const InitialPrecomputedVector &initial_precomputed, const ScalarVector &alpha, const std::string &subsection="/MeshAdaptor")
 
void prepare (const Number t)
 
Functions for performing mesh adaptation
void analyze (const StateVector &state_vector, const Number t, unsigned int cycle)
 
void mark_cells_for_coarsening_and_refinement (dealii::Triangulation< dim > &triangulation) const
 
void compute_smoothness_indicators (const StateVector &state_vector) const
 
Information and statistics
const auto & need_mesh_adaptation () const
 
const auto & indicators () const
 
const auto & smoothness_indicators () const
 

Typedefs and constexpr constants

using HyperbolicSystem = typename Description::HyperbolicSystem
 
using ParabolicSystem = typename Description::ParabolicSystem
 
using View = typename HyperbolicSystem::template View< dim, Number >
 
using StateVector = typename View::StateVector
 
using InitialPrecomputedVector = typename View::InitialPrecomputedVector
 
using ScalarVector = Vectors::ScalarVector< Number >
 
static constexpr auto problem_dimension = View::problem_dimension
 

Detailed Description

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

The MeshAdaptor class is responsible for performing global or local mesh adaptation.

Definition at line 107 of file mesh_adaptor.h.

Member Typedef Documentation

◆ HyperbolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::MeshAdaptor< Description, dim, Number >::HyperbolicSystem = typename Description::HyperbolicSystem

Definition at line 115 of file mesh_adaptor.h.

◆ ParabolicSystem

template<typename Description , int dim, typename Number = double>
using ryujin::MeshAdaptor< Description, dim, Number >::ParabolicSystem = typename Description::ParabolicSystem

Definition at line 116 of file mesh_adaptor.h.

◆ View

template<typename Description , int dim, typename Number = double>
using ryujin::MeshAdaptor< Description, dim, Number >::View = typename HyperbolicSystem::template View<dim, Number>

Definition at line 118 of file mesh_adaptor.h.

◆ StateVector

template<typename Description , int dim, typename Number = double>
using ryujin::MeshAdaptor< Description, dim, Number >::StateVector = typename View::StateVector

Definition at line 122 of file mesh_adaptor.h.

◆ InitialPrecomputedVector

template<typename Description , int dim, typename Number = double>
using ryujin::MeshAdaptor< Description, dim, Number >::InitialPrecomputedVector = typename View::InitialPrecomputedVector

Definition at line 123 of file mesh_adaptor.h.

◆ ScalarVector

template<typename Description , int dim, typename Number = double>
using ryujin::MeshAdaptor< Description, dim, Number >::ScalarVector = Vectors::ScalarVector<Number>

Definition at line 124 of file mesh_adaptor.h.

Constructor & Destructor Documentation

◆ MeshAdaptor()

template<typename Description , int dim, typename Number >
ryujin::MeshAdaptor< Description, dim, Number >::MeshAdaptor ( const MPIEnsemble &  mpi_ensemble,
const OfflineData< dim, Number > &  offline_data,
const HyperbolicSystem &  hyperbolic_system,
const ParabolicSystem &  parabolic_system,
const InitialPrecomputedVector &  initial_precomputed,
const ScalarVector &  alpha,
const std::string &  subsection = "/MeshAdaptor< Description, dim, Number >" 
)

Constructor.

Definition at line 22 of file mesh_adaptor.template.h.

Member Function Documentation

◆ prepare()

template<typename Description , int dim, typename Number >
void ryujin::MeshAdaptor< Description, dim, Number >::prepare ( const Number  t)

Prepare temporary storage and clean up internal data for the analyze() facility.

Definition at line 168 of file mesh_adaptor.template.h.

◆ analyze()

template<typename Description , int dim, typename Number >
void ryujin::MeshAdaptor< Description, dim, Number >::analyze ( const StateVector &  state_vector,
const Number  t,
unsigned int  cycle 
)

Analyze the given StateVector with the configured adaptation strategy and time point selection strategy and decide whether a mesh adaptation cycle should be performed.

Definition at line 192 of file mesh_adaptor.template.h.

References ryujin::fixed_time_points, ryujin::global_refinement, ryujin::random_adaptation, ryujin::simulation_cycle, and ryujin::smoothness_indicators.

◆ mark_cells_for_coarsening_and_refinement()

template<typename Description , int dim, typename Number >
void ryujin::MeshAdaptor< Description, dim, Number >::mark_cells_for_coarsening_and_refinement ( dealii::Triangulation< dim > &  triangulation) const

Mark cells for coarsening and refinement with the configured mesh adaptation and marking strategies.

Definition at line 311 of file mesh_adaptor.template.h.

References ryujin::fixed_threshold, ryujin::global_refinement, ryujin::maximum, ryujin::minimum, ryujin::random_adaptation, and ryujin::smoothness_indicators.

◆ compute_smoothness_indicators()

template<typename Description , int dim, typename Number >
void ryujin::MeshAdaptor< Description, dim, Number >::compute_smoothness_indicators ( const StateVector &  state_vector) const

Compute smoothness indicators. This function reinitializes and populates the smoothness_indicators() vector.

Definition at line 420 of file mesh_adaptor.template.h.

References ryujin::have_separate_memory_spaces.

◆ need_mesh_adaptation()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::MeshAdaptor< Description, dim, Number >::need_mesh_adaptation ( ) const
inline

A boolean indicating whether we should perform a mesh adaptation step in the current cycle. The analyze() method will set this boolean to true whenever the selected adaptation strategy advises to perform an adaptation cycle.

Definition at line 189 of file mesh_adaptor.h.

◆ indicators()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::MeshAdaptor< Description, dim, Number >::indicators ( ) const
inline

The computed cell indicators.

Definition at line 194 of file mesh_adaptor.h.

◆ smoothness_indicators()

template<typename Description , int dim, typename Number = double>
const auto & ryujin::MeshAdaptor< Description, dim, Number >::smoothness_indicators ( ) const
inline

The computed smoothness indicators. The vector is only valid if the "smoothness indicator" refinement strategy has been selected.

Definition at line 200 of file mesh_adaptor.h.

Member Data Documentation

◆ problem_dimension

template<typename Description , int dim, typename Number = double>
constexpr auto ryujin::MeshAdaptor< Description, dim, Number >::problem_dimension = View::problem_dimension
staticconstexpr

Definition at line 120 of file mesh_adaptor.h.


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