Items related to the multigrid linear solver.
More...
Items related to the multigrid linear solver.
- See also
LinearSolver::multigrid::Multigrid
◆ child_ids()
The elements covering the parent_id
on the finer grid.
- Template Parameters
-
Dim | The spatial dimension of the domain |
- Parameters
-
parent_id | The ID of an element on the coarser grid |
children_refinement_levels | The refinement level of the finer grid in this block |
Returns: std::unordered_set<ElementId<Dim>> The IDs of the elements on the finer grid that cover the parent_id
. Returns an empty set if the parent_id
is already on the finest grid. Else, returns at least one child (if the grids have the same refinement levels) and at most children (if the grid is finer in every dimension).
◆ coarsen()
Coarsen the initial refinement levels of all blocks in the domain.
Simply decrement the refinement level uniformly over the entire domain. Doesn't do anything for blocks that are already fully coarsened, so if the return value equals the input argument the entire domain is fully coarsened. Decrementing the refinement level means combining two elements into one, thereby halving the number of elements per dimension.
- Template Parameters
-
Dim | The spatial dimension of the domain |
- Parameters
-
initial_refinement_levels | The refinement level in each block of the domain and in every dimension. |
Returns: std::vector<std::array<size_t, Dim>> The coarsened refinement levels by decrementing every entry in initial_refinement_levels
unless it is already zero.
◆ parent_id()
The element covering the child_id
on the coarser grid.
- Template Parameters
-
Dim | The spatial dimension of the domain |
- Parameters
-
child_id | The ID of an element on the finer grid |
Returns: ElementId<Dim> The ID of the element on the coarser grid that covers the child_id
. This parent element covers at most two child elements per dimension.