DMBlockingType#
Describes how to choose variable block sizes
Synopsis#
typedef enum {
DM_BLOCKING_TOPOLOGICAL_POINT,
DM_BLOCKING_FIELD_NODE
} DMBlockingType;
Values#
DM_BLOCKING_TOPOLOGICAL_POINT
- select all fields at a topological point (cell center, at a face, etc)DM_BLOCKING_FIELD_NODE
- using a separate block for each field at a topological point
Note#
When using PCVPBJACOBI
, one can choose to block by topological point (all fields at a cell center, at a face, etc.)
or by field nodes (using number of components per field to identify “nodes”). Field nodes lead to smaller blocks, but
may converge more slowly. For example, a cubic Lagrange hexahedron will have one node at vertices, two at edges, four
at faces, and eight at cell centers. If using point blocking, the PCVPBJACOBI
preconditioner will work with block
sizes up to 8 Lagrange nodes. For 5-component CFD, this produces matrices up to 40x40, which increases memory
footprint and may harm performance. With field node blocking, the maximum block size will correspond to one Lagrange node,
or 5x5 blocks for the CFD example.
See Also#
PCVPBJACOBI
, MatSetVariableBlockSizes()
, DMSetBlockingType()
Level#
intermediate
Location#
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages