ConfigurationMesh< dim > Class Template Reference#

DiFfRG: ConfigurationMesh< dim > Class Template Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
ConfigurationMesh< dim > Class Template Reference

A rectangular grid in field space, each axis a sequence of subranges with their own cell width. More...

#include <configuration_mesh.hh>

Classes

struct  TriangulationData
 What a mesh needs to build the coarse grid. More...
 

Public Member Functions

 ConfigurationMesh ()=delete
 
template<typename... Grids>
 ConfigurationMesh (unsigned int refinement, Grids... grids_args)
 From explicit axes: refinement and one std::vector<GridAxis> per dimension.
 
 ConfigurationMesh (const DiFfRG::ConfigTree &config)
 Read the keys of the table above; throws if a subrange is invalid or the subranges are not contiguous.
 
TriangulationData get_triangulation_data (const bool origin_cell_centered=false) const
 Domain corners and coarse cell widths.
 
std::vector< std::vector< double > > get_step_widths_for_triangulation () const
 The coarse cell widths per axis (not origin-centered).
 
std::vector< std::vector< double > > get_step_withs_for_triangulation () const
 
dealii::Point< dim, double > get_lower_left () const
 Lower corner of the domain (not origin-centered).
 
dealii::Point< dim, double > get_upper_right () const
 Upper corner of the domain.
 

Static Public Member Functions

static std::string get_defaults ()
 A JSON parameter-file fragment with all keys (axes set to GridAxis::get_default_range()).
 

Public Attributes

std::array< std::vector< GridAxis >, dim > grids
 The subranges of each axis.
 
uint refine
 Number of global refinements (/discretization/grid/refine).
 

Detailed Description

template<int dim>
class DiFfRG::Config::ConfigurationMesh< dim >

A rectangular grid in field space, each axis a sequence of subranges with their own cell width.

Each axis is a string of comma-separated subranges min:step:max, which must be contiguous (each min equals the previous max). Each subrange is divided into equal cells of width at most step, see GridAxis::get_step_widths. Example: "0:0.01:0.1,0.1:0.05:1".

Key Type Default (if missing) Meaning
/discretization/grid/x_grid string see below (warns) first axis
/discretization/grid/y_grid string see below (warns) second axis (dim ≥ 2)
/discretization/grid/z_grid string see below (warns) third axis (dim = 3)
/discretization/grid/refine uint 0 number of global refinements of the mesh (each halves all cells)

A missing axis is GridAxis::get_default_range(), "0:1e-4:7e-3,7e-3:5e-4:9e-3,9e-3:1e-3:1.1e-2", as written by get_defaults().

Template Parameters
dimField-space dimension, 1 to 3.

Constructor & Destructor Documentation

◆ ConfigurationMesh() [1/3]

template<int dim>
ConfigurationMesh ( )
delete

◆ ConfigurationMesh() [2/3]

template<int dim>
template<typename... Grids>
ConfigurationMesh ( unsigned int refinement,
Grids... grids_args )
inline

From explicit axes: refinement and one std::vector<GridAxis> per dimension.

◆ ConfigurationMesh() [3/3]

template<int dim>
ConfigurationMesh ( const DiFfRG::ConfigTree & config)
inline

Read the keys of the table above; throws if a subrange is invalid or the subranges are not contiguous.

Member Function Documentation

◆ get_defaults()

template<int dim>
static std::string get_defaults ( )
inlinestatic

A JSON parameter-file fragment with all keys (axes set to GridAxis::get_default_range()).

◆ get_lower_left()

template<int dim>
dealii::Point< dim, double > get_lower_left ( ) const
inline

Lower corner of the domain (not origin-centered).

◆ get_step_widths_for_triangulation()

template<int dim>
std::vector< std::vector< double > > get_step_widths_for_triangulation ( ) const
inline

The coarse cell widths per axis (not origin-centered).

◆ get_step_withs_for_triangulation()

template<int dim>
std::vector< std::vector< double > > get_step_withs_for_triangulation ( ) const
inline

◆ get_triangulation_data()

template<int dim>
TriangulationData get_triangulation_data ( const bool origin_cell_centered = false) const
inline

Domain corners and coarse cell widths.

If origin_cell_centered (all axes must start at 0): the first cell of every axis is chosen such that after refine refinements the first cell is centered on 0, and lower_left is shifted below 0 accordingly; see GridAxis::get_step_widths.

◆ get_upper_right()

template<int dim>
dealii::Point< dim, double > get_upper_right ( ) const
inline

Upper corner of the domain.

Member Data Documentation

◆ grids

template<int dim>
std::array<std::vector<GridAxis>, dim> grids

The subranges of each axis.

◆ refine

template<int dim>
uint refine

Number of global refinements (/discretization/grid/refine).


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