You will need to associate the vector with a DMDA so you can use DMDAVecGetArray() to index into it. Use DMCreateGlobalVector (with the appropriate DMDA) to get the vector instead of VecCreate() before you do the VecLoad().
Barry > On Mar 17, 2015, at 6:15 AM, Mohammad Imtiaz <[email protected]> > wrote: > > Hi, > > I am trying to solve a 2 dimensional finite difference reaction diffusion > problem where diffusional coupling is position based, i.e. fibres, > discontinuities etc occur due to material properties (e.g. Heart tissue). > > I have managed to import a matlab matrix representing coupling in four > directions as below: > > PetscViewerBinaryOpen(PETSC_COMM_WORLD,”R",FILE_MODE_READ,&fd); > VecCreate(PETSC_COMM_WORLD,&R); > VecLoad(R,fd); > > …..Repeated to get L, U, D, coupling. > > How can I now make R,L,U,D available to my finite difference part of the > code? So that I can do > > > v is field. > > vxx = u[j][i].R*(u[j][i-1].v - u[j][i].v) + u[j][i].L*(u[j][i+1].v – > u[j][i].v); > > And similarly for up & down coupling. > > > > > > Thanks > Mohammad Imtiaz
