On Tue, 19 Jan 2010 13:27:14 -0500, "(Rebecca) Xuefei YUAN" <xy2102 at columbia.edu> wrote: > Dear Jed, > > I switched the code as below and it is working now without valgrind errors.
Great! > I am using multilevel, will the following approach be fine? I will > modify the code a little more to get sth like yours. It looks fine, but it does a bit of allocation/setup on each function evaluation. The snippet I gave would only do the setup once and do no allocations afterwards. Also note that you can VecZeroEntries() instead of your explicit zeroing loop. > What if the dof of da is 4 and the dof of eda is 6? No problem, just change 4 to 6 in: > ierr = DACreate2d(PETSC_COMM_WORLD,DA_NONPERIODIC,DA_STENCIL_BOX, > info.mx, info.my, PETSC_DECIDE, PETSC_DECIDE, 4, 2, 0, 0, > &dafieldother);CHKERRQ(ierr); I would use dof = sizeof(FieldOther)/sizeof(PetscScalar); so that it's always the correct size if I go change FieldOther. (And the entries in FieldOther should by PetscScalar if you want them to work correctly on a PETSc build with complex support.) Jed
