![]() |
ryujin 2.1.1 revision ee5cbcbf2346c1299c942d0e1f13b46449973c18
|
Namespaces | |
| namespace | ryujin::DoFRenumbering |
| namespace | ryujin::DoFTools |
Functions | |
| template<typename Number > | |
| void | ryujin::transform_to_local_range (const dealii::Utilities::MPI::Partitioner &partitioner, dealii::AffineConstraints< Number > &affine_constraints) |
| template<typename VECTOR > | |
| void | ryujin::transform_to_local_range (const dealii::Utilities::MPI::Partitioner &partitioner, VECTOR &vector) |
| template<int dim> | |
| unsigned int | ryujin::DoFRenumbering::export_indices_first (dealii::DoFHandler< dim > &dof_handler, const MPI_Comm &mpi_communicator, const unsigned int n_locally_internal, const std::size_t warp_size) |
| template<int dim> | |
| unsigned int | ryujin::DoFRenumbering::inconsistent_strides_last (dealii::DoFHandler< dim > &dof_handler, const dealii::DynamicSparsityPattern &sparsity, const unsigned int n_locally_internal, const std::size_t warp_size) |
| template<int dim> | |
| unsigned int | ryujin::DoFRenumbering::internal_range (dealii::DoFHandler< dim > &dof_handler, const dealii::DynamicSparsityPattern &sparsity, const std::size_t warp_size) |
| template<int dim, typename Number , typename SPARSITY > | |
| void | ryujin::DoFTools::make_extended_sparsity_pattern (const dealii::DoFHandler< dim > &dof_handler, SPARSITY &dsp, const dealii::AffineConstraints< Number > &affine_constraints, bool keep_constrained) |
| template<int dim, typename Number , typename SPARSITY > | |
| void | ryujin::DoFTools::make_extended_sparsity_pattern_dg (const dealii::DoFHandler< dim > &dof_handler, SPARSITY &dsp, const dealii::AffineConstraints< Number > &affine_constraints, bool keep_constrained) |
Some helper functions for local index handling, dof renumbering, sparsity pattern creation and matrix assembly.
| void ryujin::transform_to_local_range | ( | const dealii::Utilities::MPI::Partitioner & | partitioner, |
| dealii::AffineConstraints< Number > & | affine_constraints | ||
| ) |
Given a partitioner the function converts an AffineConstraints object affine_constraints from the usual global numbering used in deal.II to an MPI-rank local numbering \([0,n]\), where \(n\) is the number of locally relevant degrees of freedom.
Definition at line 29 of file local_index_handling.h.
| void ryujin::transform_to_local_range | ( | const dealii::Utilities::MPI::Partitioner & | partitioner, |
| VECTOR & | vector | ||
| ) |
Given a partitioner the function translates each element of a given vector vector from the usual global numbering used in deal.II to an MPI-rank local numbering \([0,n]\), where \(n\) is the number of locally relevant degrees of freedom.
Definition at line 69 of file local_index_handling.h.
| unsigned int ryujin::DoFRenumbering::export_indices_first | ( | dealii::DoFHandler< dim > & | dof_handler, |
| const MPI_Comm & | mpi_communicator, | ||
| const unsigned int | n_locally_internal, | ||
| const std::size_t | warp_size | ||
| ) |
Reorder all (strides of) locally internal indices that contain export indices to the start of the index range.
This renumbering requires MPI communication in order to determine the set of export indices.
Definition at line 103 of file local_index_handling.h.
References ryujin::warp_size.
| unsigned int ryujin::DoFRenumbering::inconsistent_strides_last | ( | dealii::DoFHandler< dim > & | dof_handler, |
| const dealii::DynamicSparsityPattern & | sparsity, | ||
| const unsigned int | n_locally_internal, | ||
| const std::size_t | warp_size | ||
| ) |
Reorder all strides of inconsistent locally internal indices to the end of the locally internal index range.
Definition at line 216 of file local_index_handling.h.
References ryujin::warp_size.
| unsigned int ryujin::DoFRenumbering::internal_range | ( | dealii::DoFHandler< dim > & | dof_handler, |
| const dealii::DynamicSparsityPattern & | sparsity, | ||
| const std::size_t | warp_size | ||
| ) |
Reorder indices:
In order to traverse over multiple rows of a (to be constructed) sparsity pattern simultaneously (using SIMD instructions, or a warp of threads on the device) we reorder all locally owned degrees of freedom to ensure that a local index range \([0,
\text{n_locally_internal_}) \subset [0,
\text{n_locally_owned})\) is available that groups dofs with same stencil size in "warps" of warp_size consecutive indices.
Returns the right boundary n_internal of the internal index range.
Definition at line 316 of file local_index_handling.h.
References ryujin::warp_size.
| void ryujin::DoFTools::make_extended_sparsity_pattern | ( | const dealii::DoFHandler< dim > & | dof_handler, |
| SPARSITY & | dsp, | ||
| const dealii::AffineConstraints< Number > & | affine_constraints, | ||
| bool | keep_constrained | ||
| ) |
Given a dof_handler, and constraints affine_constraints this function creates an extended sparsity pattern that also includes locally relevant to locally relevant couplings.
Definition at line 406 of file local_index_handling.h.
| void ryujin::DoFTools::make_extended_sparsity_pattern_dg | ( | const dealii::DoFHandler< dim > & | dof_handler, |
| SPARSITY & | dsp, | ||
| const dealii::AffineConstraints< Number > & | affine_constraints, | ||
| bool | keep_constrained | ||
| ) |
Given a dof_handler, and constraints affine_constraints this function creates an extended sparsity pattern for the discontinuous Galerkin formulation that also includes locally relevant to locally relevant couplings.
Definition at line 438 of file local_index_handling.h.