DMSlicedCreate#

Creates a DM object, used to manage data for a unstructured problem

Synopsis#

#include "petscdmsliced.h" 
PetscErrorCode DMSlicedCreate(MPI_Comm comm, PetscInt bs, PetscInt nlocal, PetscInt Nghosts, const PetscInt ghosts[], const PetscInt d_nnz[], const PetscInt o_nnz[], DM *dm)

Collective

Input Parameters#

  • comm - the processors that will share the global vector

  • bs - the block size

  • nlocal - number of vector entries on this process

  • Nghosts - number of ghost points needed on this process

  • ghosts - global indices of all ghost points for this process

  • d_nnz - matrix preallocation information representing coupling within this process

  • o_nnz - matrix preallocation information representing coupling between this process and other processes

Output Parameter#

  • dm - the slice object

Notes#

This DM does not support DMCreateLocalVector(), DMGlobalToLocalBegin(), and DMGlobalToLocalEnd() instead one directly uses VecGhostGetLocalForm() and VecGhostRestoreLocalForm() to access the local representation and VecGhostUpdateBegin() and VecGhostUpdateEnd() to update the ghost points.

One can use DMGlobalToLocalBegin(), and DMGlobalToLocalEnd() instead of VecGhostUpdateBegin() and VecGhostUpdateEnd().

See Also#

DM, DMSLICED, DMDestroy(), DMCreateGlobalVector(), DMSetType(), DMSlicedSetGhosts(), DMSlicedSetPreallocation(), VecGhostUpdateBegin(), VecGhostUpdateEnd(), VecGhostGetLocalForm(), VecGhostRestoreLocalForm()

Level#

advanced

Location#

src/dm/impls/sliced/sliced.c


Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages