[petsc-users] Saving solution with monitor function
Barry Smith
bsmith at petsc.dev
Wed Dec 14 14:50:50 CST 2022
See, for example https://petsc.org/release/docs/manualpages/TS/TSTrajectoryGetVecs/ and https://petsc.org/release/docs/manualpages/TS/TSTrajectoryGetUpdatedHistoryVecs/
One does not directly access the data inside the trajectory; one calls functions in the API to obtained desired information. If you need specific information that it does not currently provide we can attempt to provide additional functionality.
Barry
> On Dec 14, 2022, at 1:07 PM, Guglielmo, Tyler Hardy via petsc-users <petsc-users at mcs.anl.gov> wrote:
>
> Thanks Matt,
>
> I’m a bit confused on where the trajectory is being stored in the TSTrajectory object.
>
> Basically I have run
>
> TSSetSaveTrajectory(ts);
> …
> TSSolve(ts, x);
> TSTrajectory tj;
> TSGetTrajectory(ts, &tj);
> TSTrajectorySetType(tj, ts, TSTRAJECTORYMEMORY);
>
> How is the object supposed to be accessed to find the entire trajectory? I couldn’t find a clear example of where this is laid out in the documentation.
>
> The TSTrajectory object looks like some complicated struct, but parsing which pointer is pointing to the solution has alluded me.
>
> Thanks for your time!
>
> Best,
> Tyler
>
>
> From: Matthew Knepley <knepley at gmail.com <mailto:knepley at gmail.com>>
> Date: Tuesday, December 13, 2022 at 6:41 AM
> To: Guglielmo, Tyler Hardy <guglielmo2 at llnl.gov <mailto:guglielmo2 at llnl.gov>>
> Cc: petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>>
> Subject: Re: [petsc-users] Saving solution with monitor function
>
> On Tue, Dec 13, 2022 at 8:40 AM Guglielmo, Tyler Hardy via petsc-users <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
> Hi all,
>
> I am a new PETSc user (and new to MPI in general), and was wondering if someone could help me out with what I am sure is a basic question (if this is not the appropriate email list or there is a better place please let me know!).
>
> Basically, I am writing a code that requires a solution to an ODE that will be used later on during runtime. I have written the basic ODE solver using TSRK, however I haven’t thought of a good way to store the actual solution at all time steps throughout the time evolution. I would like to avoid writing each time step to a file through the monitor function, and instead just plug each time step into an array.
>
> How is this usually done? I suppose the user defined struct that gets passed into the monitor function could contain a pointer to an array in main? This is how I would do this if the program wasn’t of the MPI variety, but I am not sure how to properly declare a pointer to an array declared as Vec and built through the usual PETSc process. Any tips are greatly appreciated
>
> I think this is what TSTrajectory is for. I believe you want https://petsc.org/main/docs/manualpages/TS/TSTRAJECTORYMEMORY/ <https://urldefense.us/v3/__https:/petsc.org/main/docs/manualpages/TS/TSTRAJECTORYMEMORY/__;!!G2kpM7uM-TzIFchu!irkbXWpYDosRslumKjVGCqxHkKyU-riye4i1dWe58HYH_sFxImRj33gOkhB2sgd_duk$>
>
> Thanks,
>
> Matt
>
> Thanks for your time,
> Tyler
>
> +++++++++++++++++++++++++++++
> Tyler Guglielmo
> Postdoctoral Researcher
> Lawrence Livermore National Lab
> Office: 925-423-6186
> Cell: 210-480-8000
> +++++++++++++++++++++++++++++
>
>
> --
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/ <https://urldefense.us/v3/__http:/www.cse.buffalo.edu/*knepley/__;fg!!G2kpM7uM-TzIFchu!irkbXWpYDosRslumKjVGCqxHkKyU-riye4i1dWe58HYH_sFxImRj33gOkhB27-uscIw$>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20221214/361d36e4/attachment.html>
More information about the petsc-users
mailing list