Skip to content

Commit 01eec55

Browse files
committed
fixed bullet points
1 parent f2b59e0 commit 01eec55

File tree

3 files changed

+28
-25
lines changed

3 files changed

+28
-25
lines changed

documentation/rom_simulation/0d-solver/solver/readme.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@ Zero-dimensional (0D) models are lightweight methods to simulate bulk hemodynami
66

77
svZeroDSolver is an application for performing 0D simulations of cardiovascular flows. Some noteworthy features of svZeroDSolver are:
88

9-
* It is completely modular. Users can create custom flow models by arranging blocks corresponding to blood vessels, junctions, different types of boundary conditions, etc.
10-
* It is written in C++ to enable high-performance applications.
11-
* svZeroDSolver offers both a Python API and a C++ shared library to interface with other Python or C++-based applications. This allows it to be used in a fully coupled manner with other multi-physics solvers, and for parameter estimation, uncertainty quantification, etc.
12-
* The svZeroDCalibrator application, which is included in svZeroDSolver, optimizes 0D blood vessel parameters to recapitulate given time-varying flow and pressure measurements (for example, from a high-fidelity 3D simulation). This allows users to build accurate 0D models that reflect observed hemodynamics.
13-
* The svZeroDVisualization application enables users to visualize their 0D network and
14-
interactively select nodes to view simulation results.
15-
* The svZeroDGUI application allows users to generate input files for svZeroDSolver by
16-
drawing the network on an easy-to-use GUI. This provides an alternative to manually
17-
creating files and is useful for users without access to a 3D model.
9+
<ul style="list-style-type:disc;">
10+
<li> It is completely modular. Users can create custom flow models by arranging blocks corresponding to blood vessels, junctions, different types of boundary conditions, etc. </li>
11+
<li> It is written in C++ to enable high-performance applications. </li>
12+
<li> svZeroDSolver offers both a Python API and a C++ shared library to interface with other Python or C++-based applications. This allows it to be used in a fully coupled manner with other multi-physics solvers, and for parameter estimation, uncertainty quantification, etc. </li>
13+
<li> The svZeroDCalibrator application, which is included in svZeroDSolver, optimizes 0D blood vessel parameters to recapitulate given time-varying flow and pressure measurements (for example, from a high-fidelity 3D simulation). This allows users to build accurate 0D models that reflect observed hemodynamics. </li>
14+
<li> The svZeroDVisualization application enables users to visualize their 0D network and interactively select nodes to view simulation results. </li>
15+
<li> The svZeroDGUI application allows users to generate input files for svZeroDSolver by drawing the network on an easy-to-use GUI. This provides an alternative to manually creating files and is useful for users without access to a 3D model. </li>
16+
</ul>
1817

1918
## Blocks
2019

2120
The modular architecture of svZeroDSolver relies on "blocks", such as blood vessels, junctions, valves, boundary conditions, etc. Users can assemble and connect these blocks together in a variety of ways to create extensive and customizable 0D circulation models.
2221

2322
The main categories of blocks implemented in svZeroDSolver are:
24-
<ul>
25-
<li>Blood vessels</li>
26-
<li>Junctions</li>
27-
<li>Boundary conditions</li>
28-
<li>Heart chambers</li>
29-
<li>Heart valves</li>
23+
24+
<ul style="list-style-type:disc;">
25+
<li> Blood vessels </li>
26+
<li> Junctions </li>
27+
<li> Boundary conditions </li>
28+
<li> Heart chambers </li>
29+
<li> Heart valves </li>
3030
</ul>
3131

3232
An overview of all currently implemented blocks can be found [here](https://simvascular.github.io/svZeroDSolver/class_block.html). This collection of building blocks allows to model extensive and complex vascular networks. Many examples of vascular networks can be found [here](https://github.com/simvascular/svZeroDSolver/tree/master/tests/cases). The assembly of these blocks is specified in the `.json` configuration file. The <a href="#0d-solver-user-guide">User Guide</a> below provides details.

documentation/rom_simulation/0d-solver/theory/readme.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ where $\mathbf{y}^e \in \mathbb{R}^{N_d^e}$ is the vector of unknown degrees-of-
1010

1111
The governing equations for each block in svZeroDSolver, along with the corresponding electric circuit representation, can be found within their respective documentation pages. An overview of all the blocks is available [here](https://simvascular.github.io/svZeroDSolver/class_block.html). Below are the documentation pages for a few important blocks:
1212

13-
* [Blood vessel](https://simvascular.github.io/svZeroDSolver/class_blood_vessel.html)
14-
* [Junction](https://simvascular.github.io/svZeroDSolver/class_junction.html)
15-
* [Windkessel/RCR boundary condition](https://simvascular.github.io/svZeroDSolver/class_windkessel_b_c.html)
16-
* [Coronary boundary condition](https://simvascular.github.io/svZeroDSolver/class_open_loop_coronary_b_c.html)
17-
* [Cardiac chamber](https://simvascular.github.io/svZeroDSolver/class_chamber_elastance_inductor.html)
18-
* [Valve](https://simvascular.github.io/svZeroDSolver/class_valve_tanh.html)
19-
13+
<ul style="list-style-type:disc;">
14+
<li> <a href="https://simvascular.github.io/svZeroDSolver/class_blood_vessel.html"> Blood vessel </a> </li>
15+
<li> <a href="https://simvascular.github.io/svZeroDSolver/class_junction.html"> Junction </a> </li>
16+
<li> <a href="https://simvascular.github.io/svZeroDSolver/class_windkessel_b_c.html"> Windkessel/RCR boundary condition </a> </li>
17+
<li> <a href="https://simvascular.github.io/svZeroDSolver/class_open_loop_coronary_b_c.html"> Coronary boundary condition </a> </li>
18+
<li> <a href="https://simvascular.github.io/svZeroDSolver/class_chamber_elastance_inductor.html"> Cardiac chamber </a> </li>
19+
<li> <a href="https://simvascular.github.io/svZeroDSolver/class_valve_tanh.html"> Valve </a> </li>
20+
</ul>
2021
svZeroDSolver uses the `.json` configuration file described in the user guide to assemble the governing equations for each block (written in the form above), and the connectivity amongst the blocks, into a global set of governing equations. This is done in a similar manner to a finite element solver, where the global assembly is based on the local contributions of each block via their corresponding $\textbf{E}^e$, $\textbf{F}^e$ and $\textbf{c}^e$ matrices/vectors.
2122

2223
The global governing equation is given by:

documentation/rom_simulation/0d-solver/user-guide-output/readme.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ If `output_variable_based` is set to `true`, the CSV file will contain all the d
1010

1111
The degrees-of-freedom (DOFs) follow the following naming scheme:
1212

13-
- Flow DOFs are labelled `flow:<name_of_upstream_block>:<name_of_downstream_block>`.
14-
- Pressure DOFs are labelled `pressure:<name_of_upstream_block>:<name_of_downstream_block>`.
15-
- Internal DOFs (i.e., variables internal to a block and not connected to upstream/downstream blocks) are labelled `<variable_name>:<block_name>`. The internal variables for each block are listed in the blocks' [class documentation](https://simvascular.github.io/svZeroDSolver/annotated.html).
13+
<ul style="list-style-type:disc;">
14+
<li> Flow DOFs are labelled <code>flow:&lt;name_of_upstream_block&gt;:&lt;name_of_downstream_block&gt;</code>. </li>
15+
<li> Pressure DOFs are labelled <code>pressure:&lt;name_of_upstream_block&gt;:&lt;name_of_downstream_block&gt;</code>. </li>
16+
<li> Internal DOFs (i.e., variables internal to a block and not connected to upstream/downstream blocks) are labelled <code>&lt;variable_name&gt;:&lt;block_name&gt;</code>. The internal variables for each block are listed in the blocks' [class documentation](https://simvascular.github.io/svZeroDSolver/annotated.html). </li>
17+
</ul>
1618

1719
When the outputs are written in the variable-based and vessel-based forms, the user can specify whether they want outputs written for all cardiac cycles or just the last cardiac cycle using the `output_all_cycles` option. By default, only the last cycle is written. This makes the simulation more efficient.
1820

0 commit comments

Comments
 (0)