[petsc-dev] Integrating PFLOTRAN, PETSC & SAMRAI

Boyce Griffith griffith at cims.nyu.edu
Mon Jun 6 15:14:04 CDT 2011



On 6/6/11 3:55 PM, Barry Smith wrote:
>
> On Jun 6, 2011, at 2:50 PM, Boyce Griffith wrote:
>
>> I maintain similar SAMRAI-PETSc stuff, although I'm only synched up with PETSc 3.1, not petsc-dev.  VecNorm caching caused me endless grief until I started making lots of calls to PetscObjectStateIncrease(), both in the Vec routines and in the Mat/nonlinear function wrappers.
>>
>> If you are "building your own" Vec class, is there a better/safer way to ensure that cached Vec data is properly invalidated?
>
>     Hmm, in theory the "base" vector class that calls your implementation is suppose to manage the cache/state stuff, for example VecAXPY() updates the state of the y vector. So this should not be problem except in nonlinear function evaluates where YOU are changing the vector entries directly and need to update the state.  Of course, there could be bugs in some of our base Vec classes, please report any you know about and we'll get them fixed.

All I can tell you is that, many years ago, at least some of these calls 
to PetscObjectStateIncrease() were needed in the Vec routines in order 
to get PETSc solvers to work with the SAMRAI PETSc Vec class.  To try to 
avoid the issues that Bobby is reporting, I went ahead and made any Vec 
routine that could conceivably result in an invalidation of cached Vec 
data call PetscObjectStateIncrease().  I probably went overboard and 
call it unnecessarily in some places.

I will work on systematically removing these calls and report any problems.

Besides nonlinear function evalutations, is it also necessary in 
implementations of MatVecMult/MatVecMultAdd/etc?  Or should these also 
be handled automatically by PETSc?

Thanks,

-- Boyce



More information about the petsc-dev mailing list