SemiDiscreteOT 1.0
Semi-Discrete Optimal Transport Library
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
MeshManager< dim, spacedim > Class Template Reference

#include <MeshManager.h>

Public Member Functions

 MeshManager (const MPI_Comm &comm)
 Constructor for MeshManager.
 
template<typename TriangulationType >
void generate_mesh (TriangulationType &tria, const std::string &grid_generator_function, const std::string &grid_generator_arguments, const unsigned int n_refinements, const bool use_tetrahedral_mesh)
 Generate mesh using deal.II grid generator.
 
void load_source_mesh (parallel::fullydistributed::Triangulation< dim, spacedim > &source_mesh, const std::string &source_file="")
 Load source mesh from file into distributed triangulation.
 
void load_target_mesh (Triangulation< dim, spacedim > &target_mesh)
 Load target mesh from file into serial triangulation.
 
void load_mesh_at_level (parallel::fullydistributed::Triangulation< dim, spacedim > &source_mesh, DoFHandler< dim, spacedim > &dof_handler_source, const std::string &mesh_file)
 Load mesh at specific refinement level.
 
void save_meshes (const parallel::fullydistributed::Triangulation< dim, spacedim > &source_mesh, const Triangulation< dim, spacedim > &target_mesh)
 Save source and target meshes to files.
 
template<typename TriangulationType >
bool write_mesh (const TriangulationType &mesh, const std::string &filepath, const std::vector< std::string > &formats, const std::vector< double > *cell_data=nullptr, const std::string &data_name="cell_data")
 Write mesh to file in specified formats with optional cell data.
 

Static Public Member Functions

static std::vector< std::string > get_mesh_hierarchy_files (const std::string &dir="output/data_multilevel/source_multilevel")
 Get sorted list of mesh hierarchy files.
 

Private Attributes

MPI_Comm mpi_communicator
 
const unsigned int n_mpi_processes
 
const unsigned int this_mpi_process
 
ConditionalOStream pcout
 
const std::string mesh_directory = "output/data_mesh"
 

Detailed Description

template<int dim, int spacedim = dim>
class MeshManager< dim, spacedim >

Definition at line 24 of file MeshManager.h.

Constructor & Destructor Documentation

◆ MeshManager()

template<int dim, int spacedim>
MeshManager< dim, spacedim >::MeshManager ( const MPI_Comm &  comm)

Constructor for MeshManager.

Parameters
commMPI communicator

Definition at line 8 of file MeshManager.templates.h.

Member Function Documentation

◆ generate_mesh()

template<int dim, int spacedim>
template<typename TriangulationType >
void MeshManager< dim, spacedim >::generate_mesh ( TriangulationType &  tria,
const std::string &  grid_generator_function,
const std::string &  grid_generator_arguments,
const unsigned int  n_refinements,
const bool  use_tetrahedral_mesh 
)

Generate mesh using deal.II grid generator.

Parameters
triaTriangulation to generate
grid_generator_functionName of grid generator function
grid_generator_argumentsArguments for grid generator
n_refinementsNumber of global refinements
use_tetrahedral_meshWhether to convert to tetrahedral mesh

Definition at line 17 of file MeshManager.templates.h.

◆ load_source_mesh()

template<int dim, int spacedim>
void MeshManager< dim, spacedim >::load_source_mesh ( parallel::fullydistributed::Triangulation< dim, spacedim > &  source_mesh,
const std::string &  source_file = "" 
)

Load source mesh from file into distributed triangulation.

Parameters
source_meshDistributed triangulation to load into
source_fileOptional path to source mesh file. If not provided, defaults to mesh_directory/source.[vtk|msh]

Definition at line 81 of file MeshManager.templates.h.

◆ load_target_mesh()

template<int dim, int spacedim>
void MeshManager< dim, spacedim >::load_target_mesh ( Triangulation< dim, spacedim > &  target_mesh)

Load target mesh from file into serial triangulation.

Parameters
target_meshSerial triangulation to load into

Definition at line 158 of file MeshManager.templates.h.

◆ load_mesh_at_level()

template<int dim, int spacedim>
void MeshManager< dim, spacedim >::load_mesh_at_level ( parallel::fullydistributed::Triangulation< dim, spacedim > &  source_mesh,
DoFHandler< dim, spacedim > &  dof_handler_source,
const std::string &  mesh_file 
)

Load mesh at specific refinement level.

Parameters
source_meshDistributed triangulation to load into
dof_handler_sourceDoF handler for the mesh
mesh_filePath to mesh file

Definition at line 202 of file MeshManager.templates.h.

◆ save_meshes()

template<int dim, int spacedim>
void MeshManager< dim, spacedim >::save_meshes ( const parallel::fullydistributed::Triangulation< dim, spacedim > &  source_mesh,
const Triangulation< dim, spacedim > &  target_mesh 
)

Save source and target meshes to files.

Parameters
source_meshDistributed source triangulation
target_meshSerial target triangulation

Definition at line 276 of file MeshManager.templates.h.

◆ write_mesh()

template<int dim, int spacedim>
template<typename TriangulationType >
bool MeshManager< dim, spacedim >::write_mesh ( const TriangulationType &  mesh,
const std::string &  filepath,
const std::vector< std::string > &  formats,
const std::vector< double > *  cell_data = nullptr,
const std::string &  data_name = "cell_data" 
)

Write mesh to file in specified formats with optional cell data.

Parameters
meshTriangulation to write
filepathBase path for output files (without extension)
formatsVector of output formats ("vtk", "msh", "vtu")
cell_dataOptional vector of cell data to include
data_nameName for the cell data field
Returns
true if write successful, false otherwise

Definition at line 292 of file MeshManager.templates.h.

◆ get_mesh_hierarchy_files()

template<int dim, int spacedim>
std::vector< std::string > MeshManager< dim, spacedim >::get_mesh_hierarchy_files ( const std::string &  dir = "output/data_multilevel/source_multilevel")
static

Get sorted list of mesh hierarchy files.

Parameters
dirDirectory containing hierarchy files
Returns
Vector of mesh file paths, sorted coarsest to finest

Definition at line 377 of file MeshManager.templates.h.

Member Data Documentation

◆ mpi_communicator

template<int dim, int spacedim = dim>
MPI_Comm MeshManager< dim, spacedim >::mpi_communicator
private

Definition at line 104 of file MeshManager.h.

◆ n_mpi_processes

template<int dim, int spacedim = dim>
const unsigned int MeshManager< dim, spacedim >::n_mpi_processes
private

Definition at line 105 of file MeshManager.h.

◆ this_mpi_process

template<int dim, int spacedim = dim>
const unsigned int MeshManager< dim, spacedim >::this_mpi_process
private

Definition at line 106 of file MeshManager.h.

◆ pcout

template<int dim, int spacedim = dim>
ConditionalOStream MeshManager< dim, spacedim >::pcout
private

Definition at line 107 of file MeshManager.h.

◆ mesh_directory

template<int dim, int spacedim = dim>
const std::string MeshManager< dim, spacedim >::mesh_directory = "output/data_mesh"
private

Definition at line 110 of file MeshManager.h.


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