Skip to content

Commit 6e80e34

Browse files
committed
added intro
1 parent de3bdc4 commit 6e80e34

File tree

1 file changed

+59
-1
lines changed
  • documentation/rom_simulation/0d-solver/solver

1 file changed

+59
-1
lines changed

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

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,67 @@
11
# 0D Solver
22

3-
Zero-dimensional (0D) models are lightweight methods to simulate bulk hemodynamic quantities in the cardiovascular system. Unlike 3D and 1D models, 0D models are purely time-dependent; they are unable to simulate spatial patterns in the hemodynamics. 0D models primarily simulate bulk cardiovascular flow rates and pressures; however, they can simulate other hemodynamic quantities, such as wall shear stress [1] or volume, as well. Furthermore, 0D models are highly modular and compartmentalized, meaning different regions of the 0D models represent the hemodynamics in different parts of the cardiovascular anatomy being modeled.
3+
Zero-dimensional (0D) models are lightweight methods to simulate bulk hemodynamic quantities in the cardiovascular system. Unlike 3D and 1D models, 0D models are purely time-dependent; they are unable to simulate spatial patterns in the hemodynamics. 0D models primarily simulate bulk cardiovascular flow rates and pressures; however, they can simulate other hemodynamic quantities, such as wall shear stress or volume, as well. Furthermore, 0D models are highly modular and compartmentalized, meaning different regions of the 0D models represent the hemodynamics in different parts of the cardiovascular anatomy being modeled.
44

55
0D models are analogous to electrical circuits. The flow rate simulated by 0D models represents electrical current, while the pressure represents voltage. Three primary building blocks of 0D models are resistors, capacitors, and inductors. Resistance captures the viscous effects of blood flow, capacitance represents the compliance and distensibility of the vessel wall, and inductance represents the inertia of the blood flow. Different combinations of these building blocks, as well as others, can be formed to reflect the hemodynamics and physiology of different cardiovascular anatomies.
66

7+
svZeroDSolver is an application for performing 0D simulations of cardiovascular flows. Some noteworthy features of svZeroDSolver are:
8+
* It is completely modular. Users can create custom flow models by arranging blocks corresponding to blood vessels, junctions, different types of boundary conditions, etc.
9+
* It is written in C++ to enable high-performance applications.
10+
* 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.
11+
* 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.
12+
* The svZeroDVisualization application enables users to visualize their 0D network and
13+
interactively select nodes to view simulation results.
14+
* The svZeroDGUI application allows users to generate input files for svZeroDSolver by
15+
drawing the network on an easy-to-use GUI. This provides an alternative to manually
16+
creating files and is useful for users without access to a 3D model.
17+
18+
The main categories of blocks implemented in svZeroDSolver are:
19+
- Blood vessels
20+
- Junctions
21+
- Boundary conditions
22+
- Heart chambers
23+
- Heart valves
24+
25+
#### Installation
26+
27+
svZeroDSolver can be installed in two different ways. For using the Python
28+
API, an installation via pip is recommended.
29+
30+
##### Using pip
31+
32+
For a pip installation, simply run the following command
33+
(cloning of the repository is not required):
34+
35+
```bash
36+
pip install git+https://github.com/simvascular/svZeroDSolver.git
37+
```
38+
39+
##### Using CMake
40+
41+
If you want to build svZeroDSolver manually from source, clone the repository
42+
and run the following commands from the top directory of the project:
43+
44+
```bash
45+
mkdir Release
46+
cd Release
47+
cmake -DCMAKE_BUILD_TYPE=Release ..
48+
cmake --build .
49+
```
50+
51+
52+
@remark <details>
53+
<summary>**Building on Sherlock**</summary>
54+
55+
```bash
56+
module load cmake/3.23.1 gcc/12.1.0 binutils/2.38
57+
mkdir Release
58+
cd Release
59+
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=/share/software/user/open/gcc/12.1.0/bin/g++ -DCMAKE_C_COMPILER=/share/software/user/open/gcc/12.1.0/bin/gcc ..
60+
cmake --build .
61+
```
62+
63+
</details>
64+
765
#### 0D Solver Theory
866
We highlight here the theory behind the 0D solver. For equations and implementation details, we refer to the [documentation](https://simvascular.github.io/svZeroDSolver/index.html) throught this guide.
967

0 commit comments

Comments
 (0)