<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br><div><br></div><div>  It is also possible to read the solutions back from the trajectory object from your running code. It is not just for saving to files.</div><div><br></div><div><br><blockquote type="cite"><div>On Dec 13, 2022, at 12:51 PM, Zhang, Hong via petsc-users <petsc-users@mcs.anl.gov> wrote:</div><br class="Apple-interchange-newline"><div>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<div><span>Tyler,</span></div>
<span>
<div><span><br>
</span></div>
The quickest solution is to use TSTrajectory as Matt mentioned. You can add the following command line options to save the solution into a binary file under a folder at each time step.<br>
</span><span><br>
</span><span>-ts_save_trajectory -ts_trajectory_type visualization </span><span><br>
</span><span><br>
The folder name and the file name can be customized with </span><span>-ts_trajectory_dirname and -ts_trajectory_file_template.<br>
<br>
</span><span>If you want to load these files into Matlab, you can use some scripts in share/petsc/matlab/ such as PetscReadBinaryTrajectory.m and PetscBinaryRead.m.<br>
</span><span><br>
</span><span>The python versions of these scripts are available in lib/petsc/bin/.<br>
</span><span><br>
</span><span>Hong(Mr.)<br>
</span>
<div><br>
<blockquote type="cite">
<div>On Dec 13, 2022, at 12:14 AM, Guglielmo, Tyler Hardy via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div class="WordSection1" style="page: WordSection1; caret-color: rgb(0, 0, 0); font-family: Verdana; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Hi all,<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<o:p> </o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
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!).<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<o:p> </o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
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.<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<o:p> </o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
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!<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<o:p> </o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Thanks for your time,<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Tyler<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
<o:p> </o:p></div>
<div>
<div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
+++++++++++++++++++++++++++++<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Tyler Guglielmo<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Postdoctoral Researcher<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Lawrence Livermore National Lab<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Office: 925-423-6186<o:p></o:p></div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
Cell: 210-480-8000<o:p></o:p></div>
</div>
</div>
<div style="margin: 0in; font-size: 11pt; font-family: Calibri, sans-serif;">
+++++++++++++++++++++++++++++</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>

</div></blockquote></div><br></body></html>