[petsc-users] DMSTAG Gathering Vector on single process

Colton Bryant coltonbryant2021 at u.northwestern.edu
Wed Dec 6 16:53:42 CST 2023


Hello,

I am working on a code in which a DMSTAG object is used to solve a fluid
flow problem and I need to gather this flow data on a single process to
interact with an existing (serial) library at each timestep of my
simulation. After looking around the solution I've tried is:

-use DMStagVecSplitToDMDA to extract vectors of each component of the flow
-use DMDACreateNaturalVector and DMDAGlobalToNatural to get the components
naturally ordered
-use VecScatterCreateToZero to set up and then do the scatter to gather on
the single process

Unless I'm misunderstanding something this method results in a lot of
memory allocation/freeing happening at each step of the evolution and I was
wondering if there is a way to directly perform such a scatter from the
DMSTAG object without splitting as I'm doing here.

Any advice would be much appreciated!

Best,
Colton Bryant
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231206/aeabae94/attachment.html>


More information about the petsc-users mailing list