![]() |
ryujin 2.5.0 revision c64172211cf21344cb9b9b0f3a1266aa6400d392
|

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_dg (const dealii::DoFHandler< dim > &dof_handler, SPARSITY &dsp, const dealii::AffineConstraints< Number > &affine_constraints, bool keep_constrained) |
| template<int dim, typename Number , typename Number2 , bool add> | |
| void | ryujin::internal::integrate_add_tensor_product_value_linear (const Number2 &value, Number2 *values, const dealii::Point< dim, Number > &p) |
Some helper functions for local index handling, dof renumbering, sparsity pattern creation, reference cells, and tensor product point kernels (include/ryujin/discretization).
| 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_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 407 of file local_index_handling.h.
|
inline |
This is a copy of the integrate_add_tensor_product_value_linear() function shipped with deal.II that fixes a compilation error when instantiating with float.
Definition at line 33 of file tensor_product_point_kernels.h.
References ryujin::add().
Referenced by ryujin::internal::integrate_tensor_product_value().