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@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 <knep...@gmail.com <mailto:knep...@gmail.com>>
> Date: Tuesday, December 13, 2022 at 6:41 AM
> To: Guglielmo, Tyler Hardy <gugliel...@llnl.gov <mailto:gugliel...@llnl.gov>>
> Cc: petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov> 
> <petsc-users@mcs.anl.gov <mailto:petsc-users@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@mcs.anl.gov <mailto:petsc-users@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$>

Reply via email to