On Mar 18, 2014, at 5:19 PM, Åsmund Ervik <[email protected]> wrote:

> Dear PETSc users,
> 
> I'm trying to wrap my head around parallel I/O. If I understand correctly, a 
> decent way of doing this is having one rank (say 0) writing to disk, and the 
> other ranks communicating their part of the solution to rank 0. Please 
> correct me if I'm wrong here. 
> 
> I'm using DMDA to manage my domain decomposition. As a first step, I've been 
> trying to create an array on rank 0 holding the entire global solution and 
> then writing this to file by re-using some routines from our serial codes 
> (the format is Tecplot ASCII). (I realize that neither this approach nor an 
> ASCII format are good solutions in the end, but I have to start somewhere.) 
> However, I haven't been able to find any DMDA routines that give me an array 
> holding the entire global solution on rank 0. Are there any, or is this too 
> much of a "dirty trick"? (For just 1 process there is no problem, the output 
> files generated look good.)

    DMDACreateNatural()
    DMDAGlobalToNaturalBegin/End()
    VecScatterCreateToZero
    VecGetArray()  on process 0

    the final array is in the natural ordering, x direction first, y direction 
second, z direction third.
> 
> I'm also willing to try the VTK way of doing things, but I hit a problem when 
> I tried that: even though I include "petscviewer.h" (also tried adding 
> "petscviewerdef.h"), when I do
>    call PetscViewerSetType(viewer,PETSCVIEWERVTK,ierr)
> my compiler complains that PETSCVIEWERVTK is undefined (has no implicit 
> type). This is from Fortran90 using preprocessing macros to #include the 
> files. I tried PETSCVIEWERASCII as well, same problem. This is with 3.4.3. 
> Any hints on this? 
   
   Hmm, they are in petscviewerdef.h in 3.4.4 but anyways you can pass ‘vtk’   
or  ‘ascii’  as the type
> 
> Also, there are many different examples and mailing list threads about VTK 
> output. What is the currently recommended way of doing things? I need to 
> output at least (u,v,w) as vector components of one field, together with a 
> scalar field (p). These currently have separate DM's, since I only use PETSc 
> to solve for p (the pressure). 
> 
> Best regards,
> Åsmund

Reply via email to