Reference documentation for deal.II version Git 6c3defc1fd 2020-06-02 18:18:21 -0400
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Functions
TriangulationDescription::Utilities Namespace Reference

Functions

template<int dim, int spacedim = dim>
Description< dim, spacedim > create_description_from_triangulation (const ::Triangulation< dim, spacedim > &tria, const MPI_Comm comm, const TriangulationDescription::Settings settings=TriangulationDescription::Settings::default_setting, const unsigned int my_rank_in=numbers::invalid_unsigned_int)
 
template<int dim, int spacedim = dim>
Description< dim, spacedim > create_description_from_triangulation_in_groups (const std::function< void(::Triangulation< dim, spacedim > &)> &serial_grid_generator, const std::function< void(::Triangulation< dim, spacedim > &, const MPI_Comm, const unsigned int)> &serial_grid_partitioner, const MPI_Comm comm, const int group_size=1, const typename Triangulation< dim, spacedim >::MeshSmoothing smoothing=::Triangulation< dim, spacedim >::none, const TriangulationDescription::Settings setting=TriangulationDescription::Settings::default_setting)
 

Detailed Description

A namespace for TriangulationDescription::Description utility functions.

Function Documentation

◆ create_description_from_triangulation()

template<int dim, int spacedim = dim>
Description< dim, spacedim > TriangulationDescription::Utilities::create_description_from_triangulation ( const ::Triangulation< dim, spacedim > &  tria,
const MPI_Comm  comm,
const TriangulationDescription::Settings  settings = TriangulationDescription::Settings::default_setting,
const unsigned int  my_rank_in = numbers::invalid_unsigned_int 
)

Construct TriangulationDescription::Description from a given partitioned triangulation tria and a specified process. The input triangulation can be either a serial triangulation of type Triangulation which has been colored (subdomain_id and/or level_subdomain_id has been set) or a distributed triangulation of type parallel::distributed::Triangulation, where the partitioning is adopted unaltered.

Parameters
triaPartitioned input triangulation.
commMPI_Communicator to be used. In the case of parallel::distributed::Triangulation, the communicators have to match.
settingsSee the description of the Settings enumerator.
my_rank_inConstruct Description for the specified rank (only working for serial triangulations that have been partitioned by functions like GridToold::partition_triangulation()).
Returns
Description to be used to set up a Triangulation.
Note
If construct_multigrid_hierarchy is set in the settings, the source triangulation has to be setup with limit_level_difference_at_vertices.
Author
Peter Munch, 2019

Definition at line 150 of file tria_description.cc.

◆ create_description_from_triangulation_in_groups()

template<int dim, int spacedim = dim>
Description< dim, spacedim > TriangulationDescription::Utilities::create_description_from_triangulation_in_groups ( const std::function< void(::Triangulation< dim, spacedim > &)> &  serial_grid_generator,
const std::function< void(::Triangulation< dim, spacedim > &, const MPI_Comm, const unsigned int)> &  serial_grid_partitioner,
const MPI_Comm  comm,
const int  group_size = 1,
const typename Triangulation< dim, spacedim >::MeshSmoothing  smoothing = ::Triangulation<dim, spacedim>::none,
const TriangulationDescription::Settings  setting = TriangulationDescription::Settings::default_setting 
)

Construct a TriangulationDescription::Description. In contrast to the function above, this function is also responsible for creating a serial triangulation and for its partitioning (by calling the provided std::function objects). Internally only selected processes ( every n-th/each root of a group of size group_size) create a serial triangulation and the TriangulationDescription::Description for all processes in its group, which is communicated.

Note
A reasonable group size is the size of a NUMA domain or the size of a compute node.
Parameters
serial_grid_generatorA function which creates a serial triangulation.
serial_grid_partitionerA function which can partition a serial triangulation, i.e., sets the sudomain_ids of the active cells. The function takes as the first argument a serial triangulation, as the second argument the MPI communicator, and as the third argument the group size.
commMPI communicator.
group_sizeThe size of each group.
smoothingMesh smoothing type.
settingSee the description of the Settings enumerator.
Returns
Description to be used to set up a Triangulation.
Note
If construct_multigrid_hierarchy is set in the settings, the smoothing parameter is extended with the limit_level_difference_at_vertices flag.
Author
Peter Munch, 2019

Definition at line 449 of file tria_description.cc.