On Sat, Apr 16, 2016 at 4:51 AM, Jed Brown <[email protected]> wrote:
> Matthew Kury <[email protected]> writes: > > > Yes you are correct I am sorry about that. I meant DMGetLocalVector, and > the ilk. > > > > here is a dummy function I am working on to try to figure out what is > going wrong: > > ///////////////////////////////////////////// > > // Get the information to operate on > > // Make Local Versions > > Vec XLoc; > > DM Xdm; > > PetscSection XSec; > > PetscReal *XPoints=NULL; > > > > PetscErrorCode ierr; > > > > > > ierr = DMGetLocalVector(msh.dm,&XLoc);chk; > > Here, you get XLoc from msh.dm. > > > ierr = DMGetCoordinateDM(msh.dm,&Xdm);chk; > > ierr = DMGetCoordinatesLocal(msh.dm, &XLoc);chk; > > VecView(XLoc,pview); > > > > ierr = DMDAVecGetArrayRead(Xdm,XLoc,&XPoints);chk; > Also here Xdm is supposed to be a DMDA. Is it? Matt > > ierr = DMDAVecRestoreArrayRead(Xdm,XLoc,&XPoints);chk; > > > > ierr = DMRestoreLocalVector(Xdm,&XLoc);chk; > > Here, you return it to Xdm. > > > //////////// end of function > > > > the error I get that seems to appear after the 2nd call or so is: > > 0]PETSC ERROR: --------------------- Error Message > -------------------------------------------------------------- > > [0]PETSC ERROR: Invalid argument > > [0]PETSC ERROR: Wrong type of object: Parameter # 2 > > [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html > for trouble shooting. > > [0]PETSC ERROR: Petsc Release Version 3.6.1, Jul, 22, 2015 > > [0]PETSC ERROR: ./net.out on a arch-darwin-c-debug named > Matthews-MacBook-Pro-2.local by mkury Sat Apr 16 01:33:34 2016 > > [0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ > --with-fc=gfortran --download-fblaslapack --download-mpich > --download-petsc4py --download-triangle --download-chaco --download-metis > --download-parmetis --download-ctetgen > > [0]PETSC ERROR: #2294 DMDAVecGetArrayRead() line 299 in > /usr/local/petsc-3.6.1/src/dm/impls/da/dagetarray.c > > This #2294 is nowhere near the top of your stack. Please check error > codes. Running in a debugger would help you understand what is wrong. > > > [0]PETSC ERROR: #2295 Element_Investigation_TEST() line 248 in > /Users/mkury/Documents/Code/petFEM/src/elementFunctions.c > > > > > > > > > > > > > > thanks again, > > > > Matt > > On Apr 16, 2016, at 1:21 AM, Jed Brown <[email protected]> wrote: > > > >> Matthew Kury <[email protected]> writes: > >> > >>> Hello, > >>> > >>> I have done some reading and I have not been able to find out what > the proper way to create and use vectors within a function. > >>> > >>> If I have a function that passes in dm and V then: > >>> +++ > >>> DMPlexGetLocalVec(dm, &VLocal) ; > >> > >> This function doesn't exist, and neither does DMPlexCreateLocalVec (from > >> the subject of your email), but when I gaze into my crystal ball, it > >> says you're probably spelling it DMGetLocalVector. Please send the full > >> error message. > >> > >>> DMGlobalToLocalBegin(dm,V,INSERT_VALUES,VLocal); > >>> DMGlobalToLocalEnd(dm,V,INSERT_VALUES,VLocal) ; > >>> > >>> VecGetArray(VLoc,VLocalArray); > >>> > >>> “Stuff with VLocalArray” > >>> > >>> VecRestoreArray(VLoc,VLocalArray); > >>> > >>> DMLocalToGlobalBegin(dm,VLocal,ADD_VALUES,V); > >>> DMLocalToGlobalEnd(dm,VLocal,ADD_VALUES,V); > >>> > >>> DMRestoreLocalVector(dm,&VLocal); > >>> +++ > >>> > >>> The second time I call the function I get errors with the > VecGetArray() function. I would appreciate any advice as to what is going > wrong. > >>> > >>> Thank you, > >>> > >>> Matthew > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener
