Dear All,
I have a code where the velocity (three components) and pressure
are all stored in a distributed array with 4 degrees of freedom per
node. I'd like to take one component of the velocity and multiply it
by -1, but I am having trouble figuring out how to access that. I
believe it must involve DAVecGetArrayDOF or DAVecGetArray, but I
haven't managed to get either to work. I've attached a code fragment
where it loads the velocity. Could someone suggest how to do this or
point me to where I can find additional discussion of this? I've
read the users manual on DA already.
Sincerely,
Pearl Flath
ICES, UT Austin
---------------------------------
DACreate3d(PETSC_COMM_WORLD,DA_NONPERIODIC,DA_STENCIL_BOX,m,n,p,
PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,
4,1,PETSC_NULL,PETSC_NULL,PETSC_NULL,&daV);
DACreateGlobalVector(daV, &vel);
// Set the velocity file to read from
PetscTruth flg ;
PetscViewer view_u;
char velocityfile[1024] ;
PetscOptionsGetString(0,"-velocityfile",velocityfile,1023,&flg);
PetscViewerBinaryOpen(PETSC_COMM_WORLD, velocityfile,
FILE_MODE_READ, &view_u);
VecLoadIntoVector(view_u, vel);
PetscViewerDestroy(view_u);