Good to hear it works now. And here's the relevant merge request (from April 2019).
https://gitlab.com/petsc/petsc/-/merge_requests/1602 Sepideh Kavousi <[email protected]> writes: > Dear Dr. Brown, > In the VTS files the field components did not exist. I checked 3.11 and 3.12, > and it seems 3.11 still has the problem but for the 3.12 the problem is > solved. > Thanks, > Sepideh > ________________________________ > From: Jed Brown <[email protected]> > Sent: Thursday, February 13, 2020 4:06 PM > To: Sepideh Kavousi <[email protected]>; [email protected] > <[email protected]> > Subject: Re: [petsc-users] TSMonitorSolutionVTK > > Sepideh Kavousi <[email protected]> writes: > >> Dear Petsc users, >> I am trying to write VTK output file every few steps. When I was using the >> petsc 3.7 I used the following lines: >> if (user->ts_write % 500 ==0) { >> ierr= >> PetscSNPrintf(user->filename,sizeof(user->filename),"one-%03d.vts",user->ts_write);CHKERRQ(ierr); >> ierr= >> TSMonitorSolutionVTK(user->ts,user->ts_write,t,user->sol_old,&user->filename);CHKERRQ(ierr);} >> user->ts_write+=1; >> } >> and it worked fine, but when I use the same line in Petsc 3.9 and 3.10, >> using these lines it still outputs the files but when I open them with Visit >> and try to visualize the individual field component, it does not show them. > > Do they not exist or are just unnamed? I believe we had a couple > regressions with this output style circa 3.10 (side-effect of better > handling vector fields), but I believe it was fixed by 3.11 or certainly > 3.12. Would it be possible for you to upgrade? > > > Note that you can (and should) pass the format specifier directly, as in: > > > TSMonitorSolutionVTK(user->ts,user->ts_write,t,user->sol_old,"one-%03D.vts"); > > Visit won't care about the numbers not being contiguous. If you want to > name them manually, just handle the viewer yourself; body of > TSMonitorSolutionVTK: > > ierr = PetscSNPrintf(filename,sizeof(filename),(const > char*)filenametemplate,step);CHKERRQ(ierr); > ierr = > PetscViewerVTKOpen(PetscObjectComm((PetscObject)ts),filename,FILE_MODE_WRITE,&viewer);CHKERRQ(ierr); > ierr = VecView(u,viewer);CHKERRQ(ierr); > ierr = PetscViewerDestroy(&viewer);CHKERRQ(ierr);
