You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: documentation/rom_simulation/0d-solver/solver/readme.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,27 +6,27 @@ Zero-dimensional (0D) models are lightweight methods to simulate bulk hemodynami
6
6
7
7
svZeroDSolver is an application for performing 0D simulations of cardiovascular flows. Some noteworthy features of svZeroDSolver are:
8
8
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
+
<ulstyle="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>
18
17
19
18
## Blocks
20
19
21
20
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.
22
21
23
22
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
+
<ulstyle="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>
30
30
</ul>
31
31
32
32
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 <ahref="#0d-solver-user-guide">User Guide</a> below provides details.
Copy file name to clipboardExpand all lines: documentation/rom_simulation/0d-solver/theory/readme.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,13 +10,14 @@ where $\mathbf{y}^e \in \mathbb{R}^{N_d^e}$ is the vector of unknown degrees-of-
10
10
11
11
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:
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.
Copy file name to clipboardExpand all lines: documentation/rom_simulation/0d-solver/user-guide-output/readme.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,11 @@ If `output_variable_based` is set to `true`, the CSV file will contain all the d
10
10
11
11
The degrees-of-freedom (DOFs) follow the following naming scheme:
12
12
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
+
<ulstyle="list-style-type:disc;">
14
+
<li> Flow DOFs are labelled <code>flow:<name_of_upstream_block>:<name_of_downstream_block></code>. </li>
15
+
<li> Pressure DOFs are labelled <code>pressure:<name_of_upstream_block>:<name_of_downstream_block></code>. </li>
16
+
<li> Internal DOFs (i.e., variables internal to a block and not connected to upstream/downstream blocks) are labelled <code><variable_name>:<block_name></code>. The internal variables for each block are listed in the blocks' [class documentation](https://simvascular.github.io/svZeroDSolver/annotated.html). </li>
17
+
</ul>
16
18
17
19
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.
0 commit comments