xref: /petsc/src/dm/impls/da/dareg.c (revision d7bf68aed858a02b69c3ac329d35f78f24359a6b)
147c6ae99SBarry Smith #define PETSCDM_DLL
247c6ae99SBarry Smith 
347c6ae99SBarry Smith #include "private/daimpl.h"    /*I "petscda.h"  I*/
447c6ae99SBarry Smith 
5*d7bf68aeSBarry Smith extern PetscErrorCode PETSCDM_DLLEXPORT DASetUp_1D(DA);
6*d7bf68aeSBarry Smith extern PetscErrorCode PETSCDM_DLLEXPORT DASetUp_2D(DA);
7*d7bf68aeSBarry Smith extern PetscErrorCode PETSCDM_DLLEXPORT DASetUp_3D(DA);
847c6ae99SBarry Smith 
947c6ae99SBarry Smith #undef __FUNCT__
10*d7bf68aeSBarry Smith #define __FUNCT__ "DASetUp"
1147c6ae99SBarry Smith /*@C
12*d7bf68aeSBarry Smith   DASetUp - Sets up the data structures for a DA
1347c6ae99SBarry Smith 
1447c6ae99SBarry Smith   Collective on DA
1547c6ae99SBarry Smith 
1647c6ae99SBarry Smith   Input Parameters:
17*d7bf68aeSBarry Smith . da     - The DA object
1847c6ae99SBarry Smith 
1947c6ae99SBarry Smith   Level: intermediate
2047c6ae99SBarry Smith 
2147c6ae99SBarry Smith .keywords: DA, set, type
22*d7bf68aeSBarry Smith .seealso: DACreate()
2347c6ae99SBarry Smith @*/
24*d7bf68aeSBarry Smith PetscErrorCode PETSCDM_DLLEXPORT DASetUp(DA da)
2547c6ae99SBarry Smith {
2647c6ae99SBarry Smith   PetscErrorCode ierr;
27*d7bf68aeSBarry Smith   DM_DA          *dd = (DM_DA*)da->data;
2847c6ae99SBarry Smith 
2947c6ae99SBarry Smith   PetscFunctionBegin;
3047c6ae99SBarry Smith   PetscValidHeaderSpecific(da, DM_CLASSID,1);
31*d7bf68aeSBarry Smith   if (dd->dim == 1) {
32*d7bf68aeSBarry Smith     ierr = DASetUp_1D(da);CHKERRQ(ierr);
33*d7bf68aeSBarry Smith   } else if (dd->dim == 2) {
34*d7bf68aeSBarry Smith     ierr = DASetUp_2D(da);CHKERRQ(ierr);
35*d7bf68aeSBarry Smith   } else if (dd->dim == 3) {
36*d7bf68aeSBarry Smith     ierr = DASetUp_3D(da);CHKERRQ(ierr);
37*d7bf68aeSBarry Smith   } else SETERRQ(((PetscObject)da)->comm,PETSC_ERR_SUP,"DAs only supported for 1, 2, and 3d");
3847c6ae99SBarry Smith   PetscFunctionReturn(0);
3947c6ae99SBarry Smith }
4047c6ae99SBarry Smith 
41