PRISMS-PF Manual
Loading...
Searching...
No Matches
TriangulationManager< dim > Class Template Reference

This class handlers the generation and manipulation of triangulations. More...

#include <triangulation_manager.h>

Public Member Functions

 TriangulationManager (bool _has_multigrid=false)
 Constructor.
 
 TriangulationManager (const SpatialDiscretization< dim > &discretization_params, bool _has_multigrid=false)
 
void set_using_multigrid (bool _has_multigrid)
 Set whether multigrid triangulations will be generated.
 
void reinit ()
 Reinitialize the triangulation handler. This is used for AMR with multigrid so the coarsened meshes can be reinitialized.
 
const Triangulation< dim > & get_triangulation () const
 Getter function for triangulation (constant reference).
 
const dealii::Triangulation< dim > & get_triangulation (unsigned int relative_level) const
 Getter function for a level in the globally coarsening multigrid triangulation (constant reference).
 
const std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation< dim >::cell_iterator > > & get_periodic_face_pairs () const
 Get the vector of periodic face pairs.
 
double get_volume () const
 Get the vector of periodic face pairs.
 
void generate_mesh (const SpatialDiscretization< dim > &discretization_params)
 Generate mesh based on the inputs provided by the user.
 
void export_triangulation_as_vtk (const std::string &filename) const
 Export triangulation to vtk. This is done for debugging purposes when dealing with unusual meshes (e.g., circular domains).
 
void prepare_for_grid_refinement ()
 Prepare the triangulation for grid refinement.
 
void execute_grid_refinement ()
 Execute grid refinement on the triangulation.
 
void clear_user_flags ()
 Clear all user flags.
 
PRISMS_PF_BEGIN_NAMESPACE TriangulationManager (bool _has_multigrid)
 

Private Attributes

bool has_multigrid = false
 Whether we have multigrid.
 
Triangulation< dimtriangulation
 Main triangulation.
 
std::vector< std::shared_ptr< const dealii::Triangulation< dim > > > coarsened_triangulations
 Coarsened triangulations for multigrid.
 
std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation< dim >::cell_iterator > > periodicity_vector
 Periodic face pairs on the coarsest mesh if they exist.
 
double volume = 0
 Periodic face pairs on the coarsest mesh if they exist.
 

Detailed Description

template<unsigned int dim>
class TriangulationManager< dim >

This class handlers the generation and manipulation of triangulations.

Constructor & Destructor Documentation

◆ TriangulationManager() [1/3]

template<unsigned int dim>
TriangulationManager< dim >::TriangulationManager ( bool  _has_multigrid = false)
explicit

Constructor.

◆ TriangulationManager() [2/3]

template<unsigned int dim>
TriangulationManager< dim >::TriangulationManager ( const SpatialDiscretization< dim > &  discretization_params,
bool  _has_multigrid = false 
)
inlineexplicit

◆ TriangulationManager() [3/3]

PRISMS_PF_BEGIN_NAMESPACE TriangulationManager< 1U >::TriangulationManager ( bool  _has_multigrid)

Member Function Documentation

◆ clear_user_flags()

template<unsigned int dim>
void TriangulationManager< dim >::clear_user_flags ( )
inline

Clear all user flags.

◆ execute_grid_refinement()

template<unsigned int dim>
void TriangulationManager< dim >::execute_grid_refinement ( )
inline

Execute grid refinement on the triangulation.

◆ export_triangulation_as_vtk()

template<unsigned int dim>
void TriangulationManager< dim >::export_triangulation_as_vtk ( const std::string &  filename) const

Export triangulation to vtk. This is done for debugging purposes when dealing with unusual meshes (e.g., circular domains).

◆ generate_mesh()

template<unsigned int dim>
void TriangulationManager< dim >::generate_mesh ( const SpatialDiscretization< dim > &  discretization_params)

Generate mesh based on the inputs provided by the user.

◆ get_periodic_face_pairs()

template<unsigned int dim>
const std::vector< dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation< dim >::cell_iterator > > & TriangulationManager< dim >::get_periodic_face_pairs ( ) const

Get the vector of periodic face pairs.

◆ get_triangulation() [1/2]

template<unsigned int dim>
const Triangulation< dim > & TriangulationManager< dim >::get_triangulation ( ) const

Getter function for triangulation (constant reference).

◆ get_triangulation() [2/2]

template<unsigned int dim>
const dealii::Triangulation< dim > & TriangulationManager< dim >::get_triangulation ( unsigned int  relative_level) const

Getter function for a level in the globally coarsening multigrid triangulation (constant reference).

◆ get_volume()

template<unsigned int dim>
double TriangulationManager< dim >::get_volume ( ) const

Get the vector of periodic face pairs.

◆ prepare_for_grid_refinement()

template<unsigned int dim>
void TriangulationManager< dim >::prepare_for_grid_refinement ( )
inline

Prepare the triangulation for grid refinement.

◆ reinit()

template<unsigned int dim>
void TriangulationManager< dim >::reinit ( )

Reinitialize the triangulation handler. This is used for AMR with multigrid so the coarsened meshes can be reinitialized.

◆ set_using_multigrid()

template<unsigned int dim>
void TriangulationManager< dim >::set_using_multigrid ( bool  _has_multigrid)
inline

Set whether multigrid triangulations will be generated.

Member Data Documentation

◆ coarsened_triangulations

template<unsigned int dim>
std::vector<std::shared_ptr<const dealii::Triangulation<dim> > > TriangulationManager< dim >::coarsened_triangulations
private

Coarsened triangulations for multigrid.

◆ has_multigrid

template<unsigned int dim>
bool TriangulationManager< dim >::has_multigrid = false
private

Whether we have multigrid.

◆ periodicity_vector

template<unsigned int dim>
std::vector<dealii::GridTools::PeriodicFacePair< typename dealii::Triangulation<dim>::cell_iterator> > TriangulationManager< dim >::periodicity_vector
private

Periodic face pairs on the coarsest mesh if they exist.

◆ triangulation

template<unsigned int dim>
Triangulation<dim> TriangulationManager< dim >::triangulation
private

Main triangulation.

◆ volume

template<unsigned int dim>
double TriangulationManager< dim >::volume = 0
private

Periodic face pairs on the coarsest mesh if they exist.


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