[petsc-users] valgrind errors.

Jed Brown jed at 59A2.org
Tue Jan 19 12:05:34 CST 2010

On Tue, 19 Jan 2010 12:56:30 -0500, "(Rebecca) Xuefei YUAN" <xy2102 at columbia.edu> wrote:
> Dear Jed,
> I have one more question, what is the difference or how could I know  
> whether I need DAGetArray() or DAGetLocalVector()+DAVecGetArray() to  
> get my array?

You can use the former unless you need to use it when packed up in a

In a mulitlevel scheme, I would probably put something like this in my

  DA da = (DA)dmmg->dm,eda;

  if (!eda) {
    // create eda based on the layout of da
    DADestroy(eda); // give away ownership
  DAGetArray(eda,PETSC_TRUE,&extrafield); // or FALSE if you don't need ghost values



This way the memory is only allocated once, it will work with multiple
levels, and get cleaned up when you are done.


More information about the petsc-users mailing list