1 #define PETSCDM_DLL 2 3 #include "private/daimpl.h" /*I "petscdm.h" I*/ 4 5 extern PetscErrorCode PETSCDM_DLLEXPORT DMSetUp_DA_1D(DM); 6 extern PetscErrorCode PETSCDM_DLLEXPORT DMSetUp_DA_2D(DM); 7 extern PetscErrorCode PETSCDM_DLLEXPORT DMSetUp_DA_3D(DM); 8 9 #undef __FUNCT__ 10 #define __FUNCT__ "DMSetUp_DA" 11 PetscErrorCode PETSCDM_DLLEXPORT DMSetUp_DA(DM da) 12 { 13 PetscErrorCode ierr; 14 DM_DA *dd = (DM_DA*)da->data; 15 16 PetscFunctionBegin; 17 PetscValidHeaderSpecific(da, DM_CLASSID,1); 18 if (dd->dim == 1) { 19 ierr = DMSetUp_DA_1D(da);CHKERRQ(ierr); 20 } else if (dd->dim == 2) { 21 ierr = DMSetUp_DA_2D(da);CHKERRQ(ierr); 22 } else if (dd->dim == 3) { 23 ierr = DMSetUp_DA_3D(da);CHKERRQ(ierr); 24 } else SETERRQ(((PetscObject)da)->comm,PETSC_ERR_SUP,"DMs only supported for 1, 2, and 3d"); 25 PetscFunctionReturn(0); 26 } 27 28