Automating Batch Simulations

Provides a system for patient-specific cardiovascular modeling and simulation.
POST REPLY
User avatar
Daniel Emerson
Posts: 12
Joined: Fri Jul 17, 2020 4:33 pm

Automating Batch Simulations

Post by Daniel Emerson » Sat Oct 10, 2020 8:17 am

Hi, I am trying to run batch simulations to create a data set. I am able to call the svSolver from terminal/command line, but I have to manually set up the simulations before and manually convert the data after the fact. Is there some way I can automate these processes?

User avatar
gang fang
Posts: 24
Joined: Wed Aug 28, 2019 3:51 pm

Re: Automating Batch Simulations

Post by gang fang » Sun Oct 11, 2020 10:19 pm

Hi, Daniel and Developers
Could you share the steps to batch mesh generation and cfd computations?
I also have a lot of STL format files, and want to run CFD batch process.

Thank you so much!
Gang

User avatar
Daniel Emerson
Posts: 12
Joined: Fri Jul 17, 2020 4:33 pm

Re: Automating Batch Simulations

Post by Daniel Emerson » Mon Oct 12, 2020 12:46 pm

Gang,

I am just using one model with a fixed mesh, so I cant speak much to automating the meshing process. I am looking to randomize the input parameters to create a data set.

That said, you might find the following paper out of the Marsden Lab interesting: Accelerating cardiovascular model building with convolutional neural networks. Link: https://doi.org/10.1007/s11517-019-02029-3
The paper talks about using a CNN to automate the segmentation process. The user still has to manually specify path lines, but the CNN takes care of making 2D and 3D geometries.

Best,
Dan

User avatar
David Parker
Posts: 1719
Joined: Tue Aug 23, 2005 2:43 pm

Re: Automating Batch Simulations

Post by David Parker » Mon Oct 12, 2020 8:26 pm

Hi Dan,

I am planning on adding a Simulation module to the new SV Python API (see http://simvascular.github.io/docsPythonInterface.html) that will be useful for automating simulations. That should be added in a few weeks.

Until the Simulation module is done you will need to kind of hack things together by generating the .svpre and solver.inp files needed to setup a simulation using some sort of script; I would use Python for this. Once you have generated an .svpre file you can use the svpre program installed with svsolver to generate geombc and restart files.

Cheers,
Dave

User avatar
Daniel Emerson
Posts: 12
Joined: Fri Jul 17, 2020 4:33 pm

Re: Automating Batch Simulations

Post by Daniel Emerson » Tue Oct 13, 2020 5:11 pm

Thanks for the reply Dave!

I was looking into generating the solver.inp and sim.svpre files. It looks like the only input to the svPre is the sim.svpre file, and the outputs are (bct.dat, geombc.dat.1, restart.0.1, numstart.dat)? I am assuming I would then generate the solver.inp file and copy over the files describing the mesh (my mesh is constant across all simulations).
How would I call the svPre executable from terminal? This is the only part I couldnt surmise from the documentation. Do I set my directory to the .svpre file and then call the executable?

I guess I have a lot of the same questions for the post solver. Does the svPost executable perform the same function as the "convert results" button in the simulation GUI? And again, how would I call from terminal? Point the directory where the restart files are contained and then call the svPost exectuable?

Best,
Dan

User avatar
David Parker
Posts: 1719
Joined: Tue Aug 23, 2005 2:43 pm

Re: Automating Batch Simulations

Post by David Parker » Tue Oct 13, 2020 7:02 pm

Hi Dan,

You are correct! The svpre executable creates the initial input files for the solver. The solver.inp is used to actually run the solver, you will need to create that too.

The svpre executable is in the same directory as svsolver. On Mac and Ubuntu this is something like /usr/local/sv/svsolver/2019-01-19/bin. svpre is run from the command like this in the Simulations/sim directory

Code: Select all

/usr/local/sv/svsolver/2019-01-19/bin/svpre sim.svpre
The svpost executable is also in /usr/local/sv/svsolver/2019-01-19/bin, it has a bunch of options, but to mimic what is going on in the SV GUI I use a shell script like this

Code: Select all


svpost=/usr/local/sv/svsolver/2019-01-19/bin/svpost

indir=288-procs_case
outdir=export
start=100
stop=2000
inc=100

$svpost -all  \
    -indir ${indir}   \
    -outdir ${outdir}  \
    -start ${start}  \
    -stop ${stop}  \
    -incr ${inc}  \
    -vtp all_results  \
    -vtu all_results
Note that the outdir directory must already exist.

svpost -h prints a list of options.

svpost does not create any of the .txt files (e.g. all_results-averages-from_cm-to-mmHg-L_per_min.txt), that is done in SV. If you need those files then I can figure out how to get them.

Cheers,
Dave

User avatar
Daniel Emerson
Posts: 12
Joined: Fri Jul 17, 2020 4:33 pm

Re: Automating Batch Simulations

Post by Daniel Emerson » Thu Oct 15, 2020 2:15 pm

Hi Dave,

Perfect, this is exactly what I have been looking for!! Coincidentally the only parameters I am really interested in are the average pressure and flows from the all_results-averages-from_cm-to-mmHg-L_per_min.txt file. Any help on generating these numbers would be much appreciated.

Thanks!
Dan

User avatar
David Parker
Posts: 1719
Joined: Tue Aug 23, 2005 2:43 pm

Re: Automating Batch Simulations

Post by David Parker » Fri Oct 16, 2020 2:29 pm

Hi Dan,

I'll write a Python script to calculate average pressure and flows, think this would be useful for other users too.

Cheers,
Dave

User avatar
Daniel Emerson
Posts: 12
Joined: Fri Jul 17, 2020 4:33 pm

Re: Automating Batch Simulations

Post by Daniel Emerson » Sat Oct 17, 2020 8:20 am

Dave,

That would be great. Thank you!

Best,
Dan

User avatar
Shannen Kizilski
Posts: 17
Joined: Thu Dec 08, 2016 3:39 pm

Re: Automating Batch Simulations

Post by Shannen Kizilski » Tue Oct 20, 2020 11:14 am

I have another quick question about using svpost: How do you achieve the "As Single File" option to create only one VTP and one VTU for all of the selected steps in the simulation?
I tried using -vtkcombo based on its description, but that instead created one VTU for each step. If I'm running hundreds of steps, I don't want to create hundreds of files; plus I need the TAWSS and OSI values to be calculated.

Thank you!
- Shannen

POST REPLY