<div dir="ltr">Just a quick follow up on Marissa's terrific explanation which briefly mentioned handling HDF5 outputs using VisIt, IDL, python, etc: I personally recommend the python package yt. It makes processing FLASH simulations as easy as<div><br><div>1) import yt</div><div>2) ds = yt.load("YOUR_HDF5_FILE")</div><div>3) ad = ds.all_data() # or subset of data if you prefer, many options available</div><div><a href="https://yt-project.org/">https://yt-project.org/</a><br><div><br></div><div><div>Best,<br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr">--------<div>Ryan</div></div></div></div></div></div></div><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 18, 2020 at 9:16 AM Marissa B. P. Adams <<a href="mailto:marissa@flash.uchicago.edu">marissa@flash.uchicago.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">If you would like output information for each time step, you can use the routine <font face="Courier New">Simulation_adjustEvolution.F90</font>.<div><br></div><div>If you open any old <span style="font-family:"Courier New"">Simulation_adjustEvolution.F90 </span>from an object directory you will find that it is effectively empty. The routine takes in the number of blocks as an integer, the block list, current cycle number, time step, and current simulation time. From that you can tell that the purpose of this routine is to acquire or change block information for each time step, hence its name. </div><div><br></div><div>Assuming your routine is empty, you may want to do the following:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>1. Loop through the number of blocks.</div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>2. Call <font face="Courier New">Grid_getBlkIndexLimits</font>, <font face="Courier New">Grid_getCellCoords</font>, <font face="Courier New">Grid_getBlkPtr</font>, and <font face="Courier New">Grid_getDeltas</font>. Some of these are crucial (<span style="font-family:"Courier New"">Grid_getBlkIndexLimits, </span><span style="font-family:"Courier New"">Grid_getBlkPtr</span>) if you want to a access the blkPtr, or, as Ryan said, the UNK. The other routines are helpful if you would like to a access the coordinates and their differences, in the case that you may want to preform an integration. If you want to get the coordinates make sure you allocate, initialize the arrays, and then deallocate after the step (3) series of loops.</div><div>3. Then you will want to loop over all three block limits for each i, j,k direction. </div></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>4. After this third step you can then assign your UNK to variables and preform calculations that may be grid based, or require special calculations.</div></blockquote></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div>5. Don’t forget to close the four essential loops, and deallocate allocated arrays, etc. </div></blockquote><div><br></div><div>You can find examples of what I have just described in various parts of the code. I tried to provide the “shape” of the code, which can be helpful, in the formatting. If you want to create new UNK variables make sure you follow the appropriate procedure to do so… edit the configuration file, initialize it, etc. You can then access it in whatever routine.</div><div><br></div><div>Around this whole operation you could then preform the standard methods of file I/O or whatever you please, or within it. Whether it is a .<i>dat</i> file or a .<i>txt</i> file, whatever you want.</div><div><br></div><div>If you’re looking to access <i>all</i> block to cell information for each UNK though I would really recommend just sticking to HDF5, using VisIt, IDL, or python’s associated libraries…. Honestly the idea of any other format gives me nightmares for post processing purposes… and ASCII file for each output dump would probably eat your storage alive. </div><div><br></div><div>I know that Flash also has chombo capabilities but I am pretty certain that part of the code is not maintained well.</div><div><br><div>
<div dir="auto" style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div><font face="monospace" size="1" color="#000000">%———————————————————%</font><div><font face="monospace" size="1" color="#000000">Marissa B. P. Adams</font></div><div><font face="monospace" size="1" color="#000000">(she/her/hers)</font></div><div><font face="monospace" size="1" color="#000000">Phd Candidate, University of Rochester</font></div><div><b style="font-family:monospace;font-size:x-small">E-mail:</b><span style="font-family:monospace;font-size:x-small"> <a href="mailto:madams@pas.rochester.edu" target="_blank">madams@pas.rochester.edu</a></span><br></div><div><font face="monospace" size="1" color="#000000"><b>Website:</b> <a href="http://www.pas.rochester.edu/~madams" target="_blank">https://www.pas.rochester.edu/~madams</a></font></div><div><font face="monospace" color="#000000" size="1"><b>Twitter:</b> <a href="https://twitter.com/mbpadams" target="_blank">https://twitter.com/mbpadams</a></font></div><div><font color="#000000" face="monospace" size="1"><b>Current Location:</b></font></div><div><font face="monospace" size="1">My 400 sq. ft studio apartment</font></div><div><font color="#000000" face="monospace" size="1"><strike>371 Bausch and Lomb Hall</strike></font></div><div><font color="#000000" face="monospace" size="1"><strike>University of Rochester</strike></font></div><div><font color="#000000" face="monospace" size="1"><strike>Rochester, NY 14627</strike></font></div></div></div>
</div>
<div><br><blockquote type="cite"><div>On May 17, 2020, at 18:43, Ryan Farber <<a href="mailto:rjfarber@umich.edu" target="_blank">rjfarber@umich.edu</a>> wrote:</div><br><div><div dir="ltr">Hi Petr,<div><br></div><div>While I have not modified the dat file before, note that it should be easy to write to stdout.</div><div>For example, if you're debugging and want to know the minimum and maximum density before your code crashes you can do</div><div>==========</div><div>!! some flash file</div><div>use physicaldata, ONLY : unk</div><div>use Driver_data, ONLY : dr_globalMe ! or you can use pt_globalMe if you're in a Particle file and want to stay modular for example</div><div><br></div><div>if (dr_globalMe == MASTER_PE) then</div><div>  write(*,*) "max dens: ", maxval(unk(DENS_VAR,:,:,:,:)) ! unk has indices to variables, i, j, k, blocks</div><div>  write(*,*) "min dens: ", minval(unk(DENS_VAR,:,:,:,:))</div><div>endif</div><div>=========</div><div>Note that it's probably safer (especially for getting the minimum values, I don't remember if the above will just yield zero) to loop over list of blocks to find the maximum, minimum. Or do an MPI_ALLREDUCE. Many options :)</div><div><br></div><div>Best,<br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr">--------<div>Ryan</div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 17, 2020 at 2:04 AM petrk <<a href="mailto:petrk@physics.muni.cz" target="_blank">petrk@physics.muni.cz</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:10pt;font-family:Verdana,Geneva,sans-serif"><p>Hello users,</p><p>Is there any possibility to write output data (for example for some particular quantities - density, pressure, etc.) explicitly to the ordinary .dat file and not to hdf?</p><p>Thanks a lot,</p><p>Petr</p>
<blockquote type="cite" style="padding:0px 0.4em;border-left:2px solid rgb(16,16,255);margin:0px"></blockquote><p><br></p>

</div>
</blockquote></div>
</div></blockquote></div><br></div></div></blockquote></div>