RectangularMesh< dim_, TriangulationType_ > Class Template Reference#

DiFfRG: DiFfRG::RectangularMesh< dim_, TriangulationType_ > Class Template Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::RectangularMesh< dim_, TriangulationType_ > Class Template Reference

Class to manage the discretization mesh, also called grid and triangluation, on which we simulate. This class only builds cartesian, regular grids, however cell density in all directions can be chosen independently. More...

#include <rectangular_mesh.hh>

Inheritance diagram for DiFfRG::RectangularMesh< dim_, TriangulationType_ >:
DiFfRG::internal::TriangulationHolder< Tria >

Public Types

using TriangulationType = TriangulationType_
 

Public Member Functions

 RectangularMesh (const ConfigTree &config)
 Construct a new RectangularMesh object.
 
 RectangularMesh (const ConfigTree &config, RectangularMeshOptions options)
 Construct a new RectangularMesh object from ConfigTree configuration.
 
 RectangularMesh (const Config::ConfigurationMesh< dim > &mesh_config)
 
 RectangularMesh (const Config::ConfigurationMesh< dim > &mesh_config, RectangularMeshOptions options)
 Construct a new RectangularMesh object.
 
TriangulationType & get_triangulation ()
 
const TriangulationType & get_triangulation () const
 

Static Public Attributes

static constexpr uint dim = dim_
 
static constexpr bool is_rectangular = true
 
static constexpr bool is_parallel = !std::is_same_v<TriangulationType, dealii::Triangulation<dim_>>
 Whether cells carry subdomain ids, i.e. whether cell->is_locally_owned() is selective.
 

Protected Member Functions

virtual void make_grid ()
 

Protected Attributes

const Config::ConfigurationMesh< dim > mesh_config
 
const RectangularMeshOptions options
 
- Protected Attributes inherited from DiFfRG::internal::TriangulationHolder< Tria >
Tria triangulation
 

Detailed Description

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
class DiFfRG::RectangularMesh< dim_, TriangulationType_ >

Class to manage the discretization mesh, also called grid and triangluation, on which we simulate. This class only builds cartesian, regular grids, however cell density in all directions can be chosen independently.

Template Parameters
dim_dimensionality of the spatial discretization.
TriangulationType_the triangulation to build on. Defaults to DefaultTriangulation<dim_>, i.e. parallel::shared::Triangulation in an MPI+PETSc build and dealii::Triangulation otherwise, so that a plain RectangularMesh<dim> follows the build configuration. A partitioned triangulation splits cell ownership across ranks while keeping the mesh itself replicated, which is what lets the assemblers restrict themselves to locally-owned cells without any of the caches or the EoM search having to change.

Use RectangularMeshSerial<dim> / RectangularMeshParallel<dim> below to pin one explicitly.

Member Typedef Documentation

◆ TriangulationType

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
using DiFfRG::RectangularMesh< dim_, TriangulationType_ >::TriangulationType = TriangulationType_

Constructor & Destructor Documentation

◆ RectangularMesh() [1/4]

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
DiFfRG::RectangularMesh< dim_, TriangulationType_ >::RectangularMesh ( const ConfigTree & config)

Construct a new RectangularMesh object.

Parameters
configConfigTree object containing the parameters for the mesh.

◆ RectangularMesh() [2/4]

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
DiFfRG::RectangularMesh< dim_, TriangulationType_ >::RectangularMesh ( const ConfigTree & config,
RectangularMeshOptions options )

Construct a new RectangularMesh object from ConfigTree configuration.

Parameters
configConfigTree object containing the parameters for the mesh.
optionsOptions controlling rectangular mesh construction.

All configured axes must start at zero when origin centering is enabled.

◆ RectangularMesh() [3/4]

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
DiFfRG::RectangularMesh< dim_, TriangulationType_ >::RectangularMesh ( const Config::ConfigurationMesh< dim > & mesh_config)

◆ RectangularMesh() [4/4]

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
DiFfRG::RectangularMesh< dim_, TriangulationType_ >::RectangularMesh ( const Config::ConfigurationMesh< dim > & mesh_config,
RectangularMeshOptions options )

Construct a new RectangularMesh object.

Parameters
mesh_configConfiguration of the rectangular mesh.
optionsOptions controlling rectangular mesh construction.

All configured axes must start at zero when origin centering is enabled.

Member Function Documentation

◆ get_triangulation() [1/2]

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
TriangulationType & DiFfRG::RectangularMesh< dim_, TriangulationType_ >::get_triangulation ( )
inline

◆ get_triangulation() [2/2]

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
const TriangulationType & DiFfRG::RectangularMesh< dim_, TriangulationType_ >::get_triangulation ( ) const
inline

◆ make_grid()

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
virtual void DiFfRG::RectangularMesh< dim_, TriangulationType_ >::make_grid ( )
protectedvirtual

Member Data Documentation

◆ dim

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
uint DiFfRG::RectangularMesh< dim_, TriangulationType_ >::dim = dim_
staticconstexpr

◆ is_parallel

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
bool DiFfRG::RectangularMesh< dim_, TriangulationType_ >::is_parallel = !std::is_same_v<TriangulationType, dealii::Triangulation<dim_>>
staticconstexpr

Whether cells carry subdomain ids, i.e. whether cell->is_locally_owned() is selective.

◆ is_rectangular

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
bool DiFfRG::RectangularMesh< dim_, TriangulationType_ >::is_rectangular = true
staticconstexpr

◆ mesh_config

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
const Config::ConfigurationMesh<dim> DiFfRG::RectangularMesh< dim_, TriangulationType_ >::mesh_config
protected

◆ options

template<uint dim_, typename TriangulationType_ = DefaultTriangulation<dim_>>
const RectangularMeshOptions DiFfRG::RectangularMesh< dim_, TriangulationType_ >::options
protected

The documentation for this class was generated from the following file:
  • /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/mesh/rectangular_mesh.hh