Trouble with DA, multiple degrees of freedom

Pearl Flath pflath at ices.utexas.edu
Tue Feb 5 13:50:51 CST 2008


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);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20080205/f67468bf/attachment.htm>


More information about the petsc-users mailing list