147c6ae99SBarry Smith 247c6ae99SBarry Smith /* 347c6ae99SBarry Smith Code for manipulating distributed regular arrays in parallel. 447c6ae99SBarry Smith */ 547c6ae99SBarry Smith 6af0996ceSBarry Smith #include <petsc/private/dmdaimpl.h> /*I "petscdmda.h" I*/ 7d78e899eSRichard Tran Mills extern PetscErrorCode DMLocalToLocalCreate_DA(DM); 847c6ae99SBarry Smith 947c6ae99SBarry Smith /*@C 10bd1fc5aeSBarry Smith DMDAGetScatter - Gets the global-to-local, and 1147c6ae99SBarry Smith local-to-local vector scatter contexts for a distributed array. 1247c6ae99SBarry Smith 13*20f4b53cSBarry Smith Collective 1447c6ae99SBarry Smith 1547c6ae99SBarry Smith Input Parameter: 1647c6ae99SBarry Smith . da - the distributed array 1747c6ae99SBarry Smith 1847c6ae99SBarry Smith Output Parameters: 19*20f4b53cSBarry Smith + gtol - global-to-local scatter context (may be `NULL`) 20*20f4b53cSBarry Smith - ltol - local-to-local scatter context (may be `NULL`) 2147c6ae99SBarry Smith 2247c6ae99SBarry Smith Level: developer 2347c6ae99SBarry Smith 24dce8aebaSBarry Smith Note: 25*20f4b53cSBarry Smith The output contexts are valid only as long as the input `da` is valid. 26*20f4b53cSBarry Smith If you delete the `da`, the scatter contexts will become invalid. 2747c6ae99SBarry Smith 28dce8aebaSBarry Smith .seealso: `DM`, `DMDA`, `DMGlobalToLocalBegin()`, `DMGlobalToLocalEnd()`, `DMLocalToGlobalBegin()` 2947c6ae99SBarry Smith @*/ 30d71ae5a4SJacob Faibussowitsch PetscErrorCode DMDAGetScatter(DM da, VecScatter *gtol, VecScatter *ltol) 31d71ae5a4SJacob Faibussowitsch { 3247c6ae99SBarry Smith DM_DA *dd = (DM_DA *)da->data; 3347c6ae99SBarry Smith 3447c6ae99SBarry Smith PetscFunctionBegin; 35a9a02de4SBarry Smith PetscValidHeaderSpecificType(da, DM_CLASSID, 1, DMDA); 3647c6ae99SBarry Smith if (gtol) *gtol = dd->gtol; 3747c6ae99SBarry Smith if (ltol) { 3848a46eb9SPierre Jolivet if (!dd->ltol) PetscCall(DMLocalToLocalCreate_DA(da)); 3947c6ae99SBarry Smith *ltol = dd->ltol; 4047c6ae99SBarry Smith } 413ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 4247c6ae99SBarry Smith } 43