![]() |
deal.II version GIT relicensing-6960-g70e9c5b7be 2026-10-22 20:10:01+00:00
|
#include <deal.II/multigrid/portable_mg_transfer_global_coarsening.h>
A multigrid transfer scheme. A multigrid transfer class can have different transfer schemes to enable global coarsening (one transfer scheme for transfer between children and parent cells as well as one transfer scheme for cells that are not refined).
Definition at line 139 of file portable_mg_transfer_global_coarsening.h.
Public Attributes | |
| unsigned int | n_coarse_cells |
| unsigned int | n_dofs_per_cell_coarse |
| unsigned int | n_dofs_per_cell_fine |
| unsigned int | degree_coarse |
| unsigned int | degree_fine |
| Kokkos::View< Number *, MemorySpace::Default::kokkos_space > | prolongation_matrix |
| bool | use_constraint_crs = false |
| Kokkos::View< unsigned int *, MemorySpace::Default::kokkos_space > | coarse_constraint_offsets |
| Kokkos::View< unsigned int *, MemorySpace::Default::kokkos_space > | coarse_constraint_indices |
| Kokkos::View< Number *, MemorySpace::Default::kokkos_space > | coarse_constraint_weights |
| Kokkos::View< unsigned int **, MemorySpace::Default::kokkos_space > | dof_indices_fine |
| Kokkos::View< Number **, MemorySpace::Default::kokkos_space > | weights |
| Kokkos::View<::internal::MatrixFreeFunctions::ConstraintKinds *, MemorySpace::Default::kokkos_space > | hanging_node_masks |
| unsigned int Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::n_coarse_cells |
Number of coarse cells.
Definition at line 144 of file portable_mg_transfer_global_coarsening.h.
| unsigned int Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::n_dofs_per_cell_coarse |
Number of degrees of freedom of a coarse cell.
n_components * (degree_coarse + 1)^dim. Definition at line 152 of file portable_mg_transfer_global_coarsening.h.
| unsigned int Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::n_dofs_per_cell_fine |
Number of degrees of freedom of fine cell.
n_components * (n_dofs_per_cell_fine + 1)^dim. Definition at line 160 of file portable_mg_transfer_global_coarsening.h.
| unsigned int Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::degree_coarse |
Polynomial degree of the finite element of a coarse cell.
Definition at line 165 of file portable_mg_transfer_global_coarsening.h.
| unsigned int Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::degree_fine |
Number of basis functions per coordinate direction in a tensor product of the union of all children of a coarse cell, which we refer to as "polynomial degree" in analogy to the p-multigrid ingredients, meaning degree_fine * 2 + 1 if a cell is refined.
Definition at line 173 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<Number *, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::prolongation_matrix |
Prolongation matrix used for the prolongate_and_add() and restrict_and_add() functions. Empty for the identity scheme (cells that are not refined between the two levels).
Definition at line 181 of file portable_mg_transfer_global_coarsening.h.
| bool Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::use_constraint_crs = false |
If false, coarse DoFs are gathered/scattered with a single global index per local DoF stored in coarse_constraint_indices (length n_coarse_cells * n_dofs_per_cell_coarse). Dirichlet DoFs use numbers::invalid_unsigned_int and contribute 0 / are skipped on write-back. If true, use the full CRS in coarse_constraint_offsets / coarse_constraint_indices / coarse_constraint_weights for multi-entry AffineConstraints (e.g. hanging nodes not resolved by hanging_node_masks).
Definition at line 193 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<unsigned int *, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::coarse_constraint_offsets |
CRS offsets into coarse_constraint_indices / coarse_constraint_weights. Empty if use_constraint_crs is false. Otherwise size is n_coarse_cells * n_dofs_per_cell_coarse + 1.
Definition at line 201 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<unsigned int *, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::coarse_constraint_indices |
Global (locally owned + ghost) DoF indices for the coarse side. If use_constraint_crs is false, length is n_coarse_cells * n_dofs_per_cell_coarse with one entry per local DoF (numbers::invalid_unsigned_int for Dirichlet). If true, this is the CRS column index array with length equal to coarse_constraint_weights; for local DoF i on cell c, entries lie in [coarse_constraint_offsets(c * n_dofs_per_cell_coarse + i), coarse_constraint_offsets(c * n_dofs_per_cell_coarse + i + 1)).
Definition at line 215 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<Number *, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::coarse_constraint_weights |
Constraint weights for the CRS path. Empty if use_constraint_crs is false. For unconstrained DoFs in the CRS path this is a single entry with weight 1.
Definition at line 223 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<unsigned int **, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::dof_indices_fine |
DoF indices on the fine solution space.
Definition at line 229 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<Number **, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::weights |
Weights for continuous elements.
Definition at line 234 of file portable_mg_transfer_global_coarsening.h.
| Kokkos::View<::internal::MatrixFreeFunctions::ConstraintKinds *, MemorySpace::Default::kokkos_space> Portable::MGTwoLevelTransfer< dim, VectorType >::MGTransferScheme::hanging_node_masks |
Fast hanging-node constraint masks for each coarse cell of this scheme (ConstraintKinds::unconstrained if none). Empty if the host setup did not enable the fast hanging-node algorithm.
Definition at line 243 of file portable_mg_transfer_global_coarsening.h.