static char help[] = "Tests DMCreateInterpolation() for nonuniform DMDA coordinates.\n\n"; #include #include PetscErrorCode SetCoordinates1d(DM da) { PetscErrorCode ierr; PetscInt i,start,m; Vec local,global; PetscScalar *coors,*coorslocal; DM cda; PetscFunctionBeginUser; ierr = DMDASetUniformCoordinates(da,0.0,1.0,0.0,1.0,0.0,1.0);CHKERRQ(ierr); ierr = DMGetCoordinateDM(da,&cda);CHKERRQ(ierr); ierr = DMGetCoordinates(da,&global);CHKERRQ(ierr); ierr = DMGetCoordinatesLocal(da,&local);CHKERRQ(ierr); ierr = DMDAVecGetArray(cda,global,&coors);CHKERRQ(ierr); ierr = DMDAVecGetArrayRead(cda,local,&coorslocal);CHKERRQ(ierr); ierr = DMDAGetCorners(cda,&start,0,0,&m,0,0);CHKERRQ(ierr); for (i=start; i