Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
TimeStepBase_Tria_Flags::RefinementFlags< dim > Struct Template Reference

#include <deal.II/numerics/time_dependent.h>

Public Types

using CorrectionRelaxations = std::vector< std::vector< std::pair< unsigned int, double > >>
 

Public Member Functions

 RefinementFlags (const unsigned int max_refinement_level=0, const unsigned int first_sweep_with_correction=0, const unsigned int min_cells_for_correction=0, const double cell_number_corridor_top=(1<< dim), const double cell_number_corridor_bottom=1, const CorrectionRelaxations &correction_relaxations=CorrectionRelaxations(), const unsigned int cell_number_correction_steps=0, const bool mirror_flags_to_previous_grid=false, const bool adapt_grids=false)
 

Static Public Member Functions

static ::ExceptionBaseExcInvalidValue (double arg1)
 

Public Attributes

const unsigned int max_refinement_level
 
const unsigned int first_sweep_with_correction
 
const unsigned int min_cells_for_correction
 
const double cell_number_corridor_top
 
const double cell_number_corridor_bottom
 
const std::vector< std::vector< std::pair< unsigned int, double > > > correction_relaxations
 
const unsigned int cell_number_correction_steps
 
const bool mirror_flags_to_previous_grid
 
const bool adapt_grids
 

Static Public Attributes

static CorrectionRelaxations default_correction_relaxations
 

Detailed Description

template<int dim>
struct TimeStepBase_Tria_Flags::RefinementFlags< dim >

This structure is used to tell the TimeStepBase_Tria() class how grids should be refined. Before we explain all the different variables, fist some terminology:

Description of flags

Definition at line 1132 of file time_dependent.h.

Member Typedef Documentation

◆ CorrectionRelaxations

template<int dim>
using TimeStepBase_Tria_Flags::RefinementFlags< dim >::CorrectionRelaxations = std::vector<std::vector<std::pair<unsigned int, double> >>

Typedef of a data type describing some relaxations of the correction process. See the general description of this class for more information.

Definition at line 1140 of file time_dependent.h.

Constructor & Destructor Documentation

◆ RefinementFlags()

template<int dim>
TimeStepBase_Tria_Flags::RefinementFlags< dim >::RefinementFlags ( const unsigned int  max_refinement_level = 0,
const unsigned int  first_sweep_with_correction = 0,
const unsigned int  min_cells_for_correction = 0,
const double  cell_number_corridor_top = (1 << dim),
const double  cell_number_corridor_bottom = 1,
const CorrectionRelaxations correction_relaxations = CorrectionRelaxations(),
const unsigned int  cell_number_correction_steps = 0,
const bool  mirror_flags_to_previous_grid = false,
const bool  adapt_grids = false 
)

Constructor. The default values are chosen such that almost no restriction on the mesh refinement is imposed.

Definition at line 1200 of file time_dependent.cc.

Member Data Documentation

◆ default_correction_relaxations

template<int dim>
TimeStepBase_Tria_Flags::RefinementFlags< dim >::CorrectionRelaxations TimeStepBase_Tria_Flags::RefinementFlags< dim >::default_correction_relaxations
static

Default values for the relaxations: no relaxations.

Definition at line 1145 of file time_dependent.h.

◆ max_refinement_level

template<int dim>
const unsigned int TimeStepBase_Tria_Flags::RefinementFlags< dim >::max_refinement_level

Maximum level of a cell in the triangulation of a time level. If it is set to zero, then no limit is imposed on the number of refinements a coarse grid cell may undergo. Usually, this field is used, if for some reason you want to limit refinement in an adaptive process, for example to avoid overly large numbers of cells or to compare with grids which have a certain number of refinements.

Definition at line 1170 of file time_dependent.h.

◆ first_sweep_with_correction

template<int dim>
const unsigned int TimeStepBase_Tria_Flags::RefinementFlags< dim >::first_sweep_with_correction

First sweep to perform cell number correction steps on; for sweeps before, cells are only flagged and no number-correction to previous grids is performed.

Definition at line 1177 of file time_dependent.h.

◆ min_cells_for_correction

template<int dim>
const unsigned int TimeStepBase_Tria_Flags::RefinementFlags< dim >::min_cells_for_correction

Apply cell number correction with the previous time level only if there are more than this number of cells.

Definition at line 1184 of file time_dependent.h.

◆ cell_number_corridor_top

template<int dim>
const double TimeStepBase_Tria_Flags::RefinementFlags< dim >::cell_number_corridor_top

Fraction by which the number of cells on a time level may differ from the number on the previous time level (first: top deviation, second: bottom deviation).

Definition at line 1191 of file time_dependent.h.

◆ cell_number_corridor_bottom

template<int dim>
const double TimeStepBase_Tria_Flags::RefinementFlags< dim >::cell_number_corridor_bottom

cell_number_corridor_top

Definition at line 1196 of file time_dependent.h.

◆ correction_relaxations

template<int dim>
const std::vector<std::vector<std::pair<unsigned int, double> > > TimeStepBase_Tria_Flags::RefinementFlags< dim >::correction_relaxations

List of relaxations to the correction step.

Definition at line 1202 of file time_dependent.h.

◆ cell_number_correction_steps

template<int dim>
const unsigned int TimeStepBase_Tria_Flags::RefinementFlags< dim >::cell_number_correction_steps

Number of iterations to be performed to adjust the number of cells on a time level to those on the previous one. Zero means: do no such iteration.

Definition at line 1209 of file time_dependent.h.

◆ mirror_flags_to_previous_grid

template<int dim>
const bool TimeStepBase_Tria_Flags::RefinementFlags< dim >::mirror_flags_to_previous_grid

Flag all cells which are flagged on this timestep for refinement on the previous one also. This is useful in case the error indicator was computed by integration over time-space cells, but are now associated to a grid on a discrete time level. Since the error contribution comes from both grids, however, it is appropriate to refine both grids.

Since the previous grid does not mirror the flags to the one before it, this does not lead to an almost infinite growth of cell numbers. You should use this flag with cell number correction switched on only, however.

Mirroring is done after cell number correction is done, but before grid adaption, so the cell number on this grid is not noticeably influenced by the cells flagged additionally on the previous grid.

Definition at line 1227 of file time_dependent.h.

◆ adapt_grids

template<int dim>
const bool TimeStepBase_Tria_Flags::RefinementFlags< dim >::adapt_grids

Adapt this grid to the previous one.

Definition at line 1232 of file time_dependent.h.


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