1c4762a1bSJed Brown 2c4762a1bSJed Brown static char help[] = "VecView() with a DMDA1d vector and draw viewer.\n\n"; 3c4762a1bSJed Brown 4c4762a1bSJed Brown #include <petscdm.h> 5c4762a1bSJed Brown #include <petscdmda.h> 6c4762a1bSJed Brown #include <petscao.h> 7c4762a1bSJed Brown 8c4762a1bSJed Brown PetscErrorCode apply(void *ctx,PetscInt n,const PetscScalar *x,PetscScalar *y) 9c4762a1bSJed Brown { 10c4762a1bSJed Brown PetscInt i; 11c4762a1bSJed Brown 12c4762a1bSJed Brown for (i=0; i<n; i++) {y[3*i] = x[i]; y[3*i+1] = x[i]*x[i]; y[3*i+2] = x[i]*x[i]*x[i];} 13c4762a1bSJed Brown return 0; 14c4762a1bSJed Brown } 15c4762a1bSJed Brown 16c4762a1bSJed Brown int main(int argc,char **argv) 17c4762a1bSJed Brown { 18c4762a1bSJed Brown DM da; 19c4762a1bSJed Brown Vec global; 20c4762a1bSJed Brown PF pf; 21c4762a1bSJed Brown 22*327415f7SBarry Smith PetscFunctionBeginUser; 239566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc,&argv,(char*)0,help)); 249566063dSJacob Faibussowitsch PetscCall(DMDACreate1d(PETSC_COMM_WORLD,DM_BOUNDARY_NONE,10,3,1,NULL,&da)); 259566063dSJacob Faibussowitsch PetscCall(DMSetFromOptions(da)); 269566063dSJacob Faibussowitsch PetscCall(DMSetUp(da)); 279566063dSJacob Faibussowitsch PetscCall(DMCreateGlobalVector(da,&global)); 289566063dSJacob Faibussowitsch PetscCall(PFCreate(PETSC_COMM_WORLD,1,3,&pf)); 299566063dSJacob Faibussowitsch PetscCall(PFSet(pf,apply,NULL,NULL,NULL,NULL)); 309566063dSJacob Faibussowitsch PetscCall(PFApplyVec(pf,NULL,global)); 319566063dSJacob Faibussowitsch PetscCall(PFDestroy(&pf)); 329566063dSJacob Faibussowitsch PetscCall(VecView(global,PETSC_VIEWER_DRAW_WORLD)); 339566063dSJacob Faibussowitsch PetscCall(VecDestroy(&global)); 349566063dSJacob Faibussowitsch PetscCall(DMDestroy(&da)); 359566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 36b122ec5aSJacob Faibussowitsch return 0; 37c4762a1bSJed Brown } 38c4762a1bSJed Brown 39c4762a1bSJed Brown /*TEST 40c4762a1bSJed Brown 41c4762a1bSJed Brown test: 42c4762a1bSJed Brown nsize: 2 43c4762a1bSJed Brown requires: x 44c4762a1bSJed Brown 45c4762a1bSJed Brown TEST*/ 46