ryujin 2.1.1 revision c38afcfdec63b34961924f05408760247496a1f0
|
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 group_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 group_size) |
template<int dim> | |
unsigned int | ryujin::DoFRenumbering::internal_range (dealii::DoFHandler< dim > &dof_handler, const dealii::DynamicSparsityPattern &sparsity, const std::size_t group_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 27 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 67 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 | group_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 101 of file local_index_handling.h.
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 | group_size | ||
) |
Reorder all strides of inconsistent locally internal indices to the end of the locally internal index range.
Definition at line 215 of file local_index_handling.h.
unsigned int ryujin::DoFRenumbering::internal_range | ( | dealii::DoFHandler< dim > & | dof_handler, |
const dealii::DynamicSparsityPattern & | sparsity, | ||
const std::size_t | group_size | ||
) |
Reorder indices:
In order to traverse over multiple rows of a (to be constructed) sparsity pattern simultaneously using SIMD instructions 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 groups of multiples of group_size
Returns the right boundary n_internal of the internal index range.
Definition at line 314 of file local_index_handling.h.
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 404 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 434 of file local_index_handling.h.