InputDefinedSubdividedHyperRectangleDomain< dim, number > Struct Template Reference

Developer Documentation: MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number > Struct Template Reference
Developer Documentation
MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number > Struct Template Reference

#include <case_utils.hpp>

Public Member Functions

void create_triangulation (std::shared_ptr< dealii::Triangulation< dim > > &triangulation, const MPI_Comm &mpi_communicator, const unsigned n_global_refinements)
 
void add_parameters (dealii::ParameterHandler &prm)
 

Public Attributes

std::vector< number > domain_dimensions
 
std::vector< unsigned > domain_base_discretization
 
std::array< std::vector< number >, 2 > region_of_interest_corner
 
unsigned region_of_interest_refinement_times = 0
 
std::vector< bool > periodic_boundaries = std::vector<bool>(dim, false)
 

Detailed Description

template<int dim, typename number>
struct MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >

Struct creating a hyper-rectangular mesh based on user-provided parameters describing the domain size and discretization. This struct can be used to provide cases where the user can specify the domain size and discretization via the input file, and where the mesh is created accordingly. For details what parameters can be provided to fine tune the mesh, see the documentation of the member variables of this struct.

Member Function Documentation

◆ add_parameters()

template<int dim, typename number >
void MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::add_parameters ( dealii::ParameterHandler &  prm)

Adds all required parameters describing domain size and discretization relevant for creating a user defined hyper-rectangle mesh to the parameter handler.

Parameters
prmParameter handler to which the parameters will be added.

◆ create_triangulation()

template<int dim, typename number >
void MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::create_triangulation ( std::shared_ptr< dealii::Triangulation< dim > > &  triangulation,
const MPI_Comm &  mpi_communicator,
const unsigned  n_global_refinements 
)

Generates a hyper-rectangular mesh based on the parameters stored in this struct. For simulations with dim > 1, the mesh is created as a distributed triangulation. For dim == 1, it is created as a parallel shared triangulation.

Parameters
triangulationShared pointer to an empty triangulation object where the generated mesh will be stored.
mpi_communicatorMPI communicator used to construct the triangulation.
n_global_refinementsNumber of global refinements to apply after mesh creation. This count includes regions marked for additional refinement by the user. Consequently, the final refinement level in a region of interest is n_global_refinements + region_of_interest_refinement_times.

Member Data Documentation

◆ domain_base_discretization

template<int dim, typename number >
std::vector<unsigned> MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::domain_base_discretization

Discretization of the domain in each dimension. The x, y, and z discretizations are given at indices 0, 1, and 2, respectively.

◆ domain_dimensions

template<int dim, typename number >
std::vector<number> MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::domain_dimensions

Sizes of the domain in each dimension. The x, y, and z sizes are given at indices 0, 1, and 2, respectively.

◆ periodic_boundaries

template<int dim, typename number >
std::vector<bool> MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::periodic_boundaries = std::vector<bool>(dim, false)

Vector indicating which boundaries are periodic. The x, y, and z periodicity flags are given at indices 0, 1, and 2, respectively.

◆ region_of_interest_corner

template<int dim, typename number >
std::array<std::vector<number>, 2> MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::region_of_interest_corner

Defines the opposite corners of an axis-aligned box in physical space. The region enclosed by these points may be subject to additional refinement, depending on the value of region_of_interest_refinement_times.

◆ region_of_interest_refinement_times

template<int dim, typename number >
unsigned MeltPoolDG::CompressibleFlow::InputDefinedSubdividedHyperRectangleDomain< dim, number >::region_of_interest_refinement_times = 0

If greater than zero, cells whose centers lie within the region defined by region_of_interest_corner will be refined this many additional times beyond the global refinement level.


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