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