Skip to content

Commit 5db9885

Browse files
committed
Add new fsi plus docs.
1 parent 67cca54 commit 5db9885

File tree

92 files changed

+2100
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+2100
-3
lines changed

css/bootstrap.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1468,7 +1468,7 @@ abbr[data-original-title] {
14681468
}
14691469
.initialism {
14701470
font-size: 90%;
1471-
text-transform: uppercase;
1471+
text-transform: none;
14721472
}
14731473
blockquote {
14741474
padding: 10px 20px;

css/documentation.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,4 +445,4 @@ zero-md {
445445
#skipToTop {
446446
font-size: 38px;
447447
color: white;
448-
}
448+
}

css/grayscale.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ html {
1414
/* line 22 */
1515
h1, h2, h3, h4, h5, h6 {
1616
margin: 0 0 35px;
17-
text-transform: uppercase;
1817
font-family: "Montserrat","Helvetica Neue",Helvetica,Arial,sans-serif;
1918
font-weight: 700;
2019
letter-spacing: 1px; }

documentation/svfsi_plus.html

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
<!DOCTYPE html>
2+
<html lang="en" class="html">
3+
<head>
4+
<!-- This corresponds to a fontawesome kit but can be customized -->
5+
<script src="https://kit.fontawesome.com/48644805cd.js" crossorigin="anonymous"></script>
6+
7+
<!-- Required meta tags -->
8+
<meta charset="utf-8">
9+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
10+
11+
<!-- Custom Fonts -->
12+
<link href="https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic" rel="stylesheet" type="text/css">
13+
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
14+
<link href="//vjs.zencdn.net/4.8/video-js.css" rel="stylesheet">
15+
16+
<!-- Bootstrap CSS -->
17+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
18+
19+
<!-- This applies styling to the elements that aren't generated from markdown -->
20+
<link rel="stylesheet" href="../css/bootstrap.css">
21+
<link rel="stylesheet" href="../css/grayscale.css">
22+
<link rel="stylesheet" href="../css/standards.css">
23+
<link rel="stylesheet" href="../css/documentation.css">
24+
25+
<!-- This applies styling to the markdown that is generated with the <zero-md> element -->
26+
<script>
27+
window.ZeroMd = {
28+
config: {
29+
cssUrls: ["../css/bootstrap.css","../css/grayscale.css","../css/standards.css","../css/shop-item.css","../css/documentation.css"]
30+
}
31+
}
32+
</script>
33+
34+
35+
<script>
36+
MathJax = {
37+
tex: {
38+
inlineMath: [
39+
['$', '$'],
40+
['\\(', '\\)'],
41+
],
42+
},
43+
};
44+
</script>
45+
46+
<!-- This is the CDN that imports the code for the <zero-md> element -->
47+
<script
48+
type="module"
49+
src="https://cdn.jsdelivr.net/gh/zerodevx/zero-md@1/src/zero-md.min.js"
50+
></script>
51+
52+
<!-- browser tab labels -->
53+
<link rel="shortcut icon" type="image/jpg" href="../img/svlogo/svIcon.png"></link>
54+
<title>SimVascular Docs</title>
55+
56+
<!-- Google Analytics Manager -->
57+
<script
58+
async
59+
src="https://www.googletagmanager.com/gtag/js?id=G-PQXFMVS01C"
60+
></script>
61+
<script>
62+
window.dataLayer = window.dataLayer || [];
63+
function gtag() {
64+
dataLayer.push(arguments);
65+
}
66+
gtag("js", new Date());
67+
68+
gtag("config", "G-PQXFMVS01C");
69+
</script>
70+
</head>
71+
<body>
72+
<section class="header">
73+
<div class="row navRow">
74+
<div class="col-6 topLeftLogo">
75+
<!-- logo top left -->
76+
<div class="headerLogoContainer">
77+
<img id="logo" class="headerLogoImage" src="../img/svlogo/svLogoTitle.png" alt="SimVascular Logo"></img>
78+
</div>
79+
</div>
80+
<div class="col-6 topRightBars">
81+
<!-- The following code defines the navigation bar in the header -->
82+
<div id="headerNavBar">
83+
<details>
84+
<summary><i class="fa-solid fa-bars" id="iconForSkip"></i></summary>
85+
<div class="navBarSection">
86+
<div class="navLink">
87+
<a href="../index.html">
88+
<i class="iconInHeader fa-solid fa-house"></i>Home
89+
</a>
90+
</div>
91+
<details>
92+
<summary class="navTitle"><i class="iconInHeader fa-solid fa-user"></i>User Guides</summary>
93+
<div>
94+
<div class="navSubLink">
95+
<a href="quickguide.html">Getting Started</a>
96+
</div>
97+
<div class="navSubLink">
98+
<a href="modeling.html">Modeling</a>
99+
</div>
100+
<div class="navSubLink">
101+
<a href="meshing.html">Meshing</a>
102+
</div>
103+
<div class="navSubLink">
104+
<a href="flowsolver.html">Simulation</a>
105+
</div>
106+
<div class="navSubLink active">
107+
<a href="svfsi.html">svFSI</a>
108+
</div>
109+
<div class="navSubLink active">
110+
<a href="svfsi_plus.html">svFSI</a>
111+
</div>
112+
<div class="navSubLink">
113+
<a href="simcardio.html">SimCardio</a>
114+
</div>
115+
<div class="navSubLink">
116+
<a href="rom_simulation.html">ROM Simulation</a>
117+
</div>
118+
<div class="navSubLink">
119+
<a href="genbc.html">General B.C.</a>
120+
</div>
121+
<div class="navSubLink">
122+
<a href="python_interface.html">Python Interface</a>
123+
</div>
124+
<div class="navSubLink">
125+
<a href="references.html">References</a>
126+
</div>
127+
</div>
128+
</details>
129+
<details>
130+
<summary class="navTitle"><i class="iconInHeader fa-solid fa-stethoscope" style="padding-right: 15px"></i>Clinical Cases</summary>
131+
<div>
132+
<div class="navSubLink">
133+
<a href="../clinical/coronary.html">Coronary Normal</a>
134+
</div>
135+
<div class="navSubLink">
136+
<a href="../clinical/aortofemoral1.html">Aortofemoral Normal - 1</a>
137+
</div>
138+
<div class="navSubLink">
139+
<a href="../clinical/aortofemoral2.html">Aortofemoral Normal - 2</a>
140+
</div>
141+
<div class="navSubLink">
142+
<a href="../clinical/pulmonary.html">Healthy Pulmonary</a>
143+
</div>
144+
<div class="navSubLink">
145+
<a href="https://simtk.org/projects/sv_tests">All Demo Projects</a>
146+
</div>
147+
</div>
148+
</details>
149+
</div>
150+
</div>
151+
</div>
152+
</div>
153+
</section>
154+
155+
<section class="mainSection">
156+
<!-- The following code defines the navigation section on the left of the page -->
157+
<section class="navigationSection" style="float: left">
158+
<!-- The second class after "skipTo" is the ID of the <span> element
159+
of the <zero-md> element that renders the markdown file -->
160+
<div>
161+
<h4 class="skipTo introduction">Introduction</h4>
162+
</div>
163+
<div>
164+
<h4 class="skipTo feature">Main features</h4>
165+
</div>
166+
<div>
167+
<h4 class="skipTo input">Input file format</h4>
168+
</div>
169+
<div>
170+
<h4 class="skipTo mesh">Mesh format</h4>
171+
</div>
172+
<div>
173+
<h4 class="skipTo run">Run simulaton</h4>
174+
</div>
175+
<div>
176+
<h4 class="skipTo resource">Resources</h4>
177+
</div>
178+
<div>
179+
<h4 class="skipTo install">Installation</h4>
180+
<div>
181+
<p class="skipTo installer">Precompiled installer</p>
182+
<p class="skipTo docker_container">Docker container</p>
183+
<p class="skipTo source">Build from source</p>
184+
</div>
185+
</div>
186+
</section>
187+
188+
<!-- The following code defines the place where the markdown files are rendered -->
189+
<section class="docsSection" style="float: right">
190+
<!-- To reference the section linked in the <zero-md> element,
191+
reference the ID in the <span> element -->
192+
193+
<!-- All markdown files must be named readme.md -->
194+
195+
<!-- The first <zero-md> element should have the id="math" attribute -->
196+
<!-- All <zero-md> elements should have the "no-shadow" attribute -->
197+
<span id="introduction">
198+
<zero-md id="main" src="svfsi_plus/main/intro/readme.md" no-shadow></zero-md>
199+
</span>
200+
201+
<span id="feature">
202+
<zero-md src="svfsi_plus/main/feature/readme.md" no-shadow></zero-md>
203+
</span>
204+
205+
<span id="mesh">
206+
<zero-md src="svfsi_plus/main/mesh/readme.md" no-shadow></zero-md>
207+
</span>
208+
209+
</section>
210+
</section>
211+
<section class="skipToTopSection">
212+
<p id="skipToTop"><i class="fa-solid fa-arrow-up"></i></p>
213+
</section>
214+
215+
<!-- The following code adds the Mathjax CDN to the html once it has been
216+
rendered by the markdown files -->
217+
<script>
218+
math.addEventListener('zero-md-rendered', () => {
219+
var el = document.createElement('script');
220+
el.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js';
221+
document.head.appendChild(el);
222+
});
223+
</script>
224+
225+
<!-- Optional JavaScript -->
226+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
227+
<!-- <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> -->
228+
<script src="../js/jquery-2.1.1.js"></script>
229+
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
230+
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
231+
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-csv/1.0.21/jquery.csv.min.js"></script>
232+
233+
<!-- <script src="js/jquery-2.1.1.js"></script> -->
234+
<script src="../js/jquery.mixitup.min.js"></script>
235+
236+
<script src="../js/documentation.js"></script>
237+
238+
</body>
239+
240+
</html>
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
### Cellular activation models
2+
3+
Depending on how the depolarization and repolarization within a single cardiac myocyte is described, the electrophysiology models can be roughly divided into two categories: biophysics-based ionic models (such as the ten Tusscher-Panfilov (TTP) model<a href="#ref-2">[2]</a><a href="#ref-3">[3]</a>), and phenomenological models (such as the Aliev-Panfilov (AP), Fitzhugh-Nagumo (FN) models<a href="#ref-4">[4]</a>).
4+
5+
<br/>
6+
7+
#### Biophysics-based ionic models
8+
9+
Between cardiac myocytes, the propagation of the electrical signal is enabled by the transmembrane motion of different ions, such as $K^+$, $Na^+$ and $Ca^{2+}$ during depolarization and repolarization of the myocytes. Cellular biophysics-based activation models are designed to capture these ionic movements. One of the popular biophysics-based ionic models, the TTP model <a href="#ref-3">[3]</a> is implemented in <strong>svFSI</strong>. Here, we will briefly illustrate the ionic currents involved in the TTP model.
10+
11+
In the TTP model, the ionic current is expressed as
12+
13+
$$ I\_{ion} = I\_{Na} + I\_{Kl} + I\_{to} + I\_{Kr} + I\_{Ks} + I\_{CaL} + I\_{NaCa} + I\_{NaK} + I\_{pCa} + I\_{pK} + I\_{bCa} + I\_{bNa} $$
14+
15+
The governing equations for each current can be found in <a href="#ref-3">[3]</a>.
16+
17+
Since, intracellular calcium concentration is the driving factor behind excitation-contraction coupling, we focus on the calcium dynamics here. In the TTP model,the following calcium concentrations are included:
18+
19+
<ul>
20+
<li> $Ca_{itotal}$: total (free+buffered) cytoplasmic $Ca^{2+}$ concentration.</li>
21+
<li> $Ca_{SRtotal}$: total SR $Ca^{2+}$ concentration.</li>
22+
<li> $Ca_{SStotal}$: total dyadic space $Ca^{2+}$ concentration.</li>
23+
<li> $Ca_i$: free cytoplasmic $Ca^{2+}$ concentration.</li>
24+
<li> $Ca_{SR}$: free SR $Ca^{2+}$ concentration.</li>
25+
<li> $Ca_{SS}$: free dyadic space $Ca^{2+}$ concentration.</li>
26+
</ul>
27+
28+
Sarcoplasmic reticulum (SR) is a membrane structure within the muscle cell, whose main function is to store $Ca^{2+}$. Dyadic space is the region bounded by the T-tubule and SR. $Ca^{2+}$ ions are considered buffered if they are bound to negatively charged proteins (called buffers). Otherwise they are considered free. The action potential transmitted through the gap junction cause the current myocyte to depolarize. The depolarization opens the L-type (long-lasting) Ca channel located on the surface membrane. A small amount of $Ca^{2+}$ enters the myocyte due to potential, leading to a sharp increase of $Ca^{2+}$ in the dyadic space, which is a small region. This increase triggers the SR to release a large amount of $Ca^{2+}$ (calcium-induced calcium release) to enable the excitation-contraction. During diastole, calcium is removed from the cytoplasm through two ways. Ca is pumped (1) back into the SR and (2) out of the cell, mainly by the sodium-calcium exchange (NCX).
29+
30+
For the TTP model in <strong>svFSI</strong>, the following units have to be used: time in [ms], length [mm], amount of substance [mmol], voltage [mV]. Mass can be in [g].
31+
32+
<figure>
33+
<img class="svImg svImgMd" src="/documentation/svfsi/cep/imgs/Calcium.png">
34+
<figcaption class="svCaption" >Structures involved in $Ca^{2+}$ cycling<a href="#ref-6">[6]</a>.</figcaption>
35+
</figure>
36+
37+
<br/>
38+
39+
#### Phenomenological models
40+
41+
Phenomenological models are derived based on some observations of the full ion model <a href="#ref-4">[4]</a>. Instead of following the transmembrane ionic currents, they use an oscillation system with a fast ($V$) and a slow ($r$) variable to mimic the behaviors of the action potentials. The oscillators, without considering the diffusion term, are modeled as
42+
43+
$$ \frac{\mathrm{d}V}{\mathrm{d}t}=f^{V}(V,r) $$
44+
$$ \frac{\mathrm{d}r}{\mathrm{d}t}=f^{r}(V,r) $$
45+
46+
Note that this set of equations describes the electrophysiology in a single cardiac myocyte, and the choice of $f^V$ and $f^r$ will determine if this is a pacemaker cell or a non-pacemaker cell.
47+
48+
The FitzHugh-Nagumo (FN) model describes the pacemaker cells with
49+
50+
$$ f^V = c[V(V-\alpha)(1-V)-r] $$
51+
$$ f^r = V-br+a $$
52+
53+
<figure>
54+
<img class="svImg svImgMd" src="/documentation/svfsi/cep/imgs/FN_model.png">
55+
<figcaption class="svCaption" >Action potential calculated from FitzHugh-Nagumo model.</figcaption>
56+
</figure>
57+
58+
The Aliev-Panfilov (AP) model describes the non-pacemaker cells with
59+
60+
$$ f^V = cV(V-\alpha)(1-V)-Vr $$
61+
62+
$$ f^r = \left( \gamma+\frac{\mu_1r}{\mu_2+V}\right)[-r-cV(V-b-1)] $$
63+
64+
<figure>
65+
<img class="svImg svImgMd" src="/documentation/svfsi/cep/imgs/AP_model.png">
66+
<figcaption class="svCaption" >Action potential calculated from Aliev-Panfilov model.</figcaption>
67+
</figure>
68+
69+
Note that $V$ and $t$ are non-dimensional values here. The following equations are used to recover the physiological action potential and time:
70+
71+
$$ \mathrm{FitzHugh-Nagumo model}: V^{fhn}=(65V-35)mV; ~~ t^{fhn} = (220t) ms $$
72+
73+
$$ \mathrm{Aliev-Panfilov model}: V^{ap}=(100V-80)mV; ~~ t^{ap} = (12.9t) ms $$
74+
75+
Another class of phenomenological models exists that include additional variables to account for intra-cellular calcium kinetics. One such model is the Bueno-Orovio (BO) model <a href="#ref-5">[5]</a> that can serve as a trade-off between the complex TTP model and the simplified phenomenological AP model.
76+
77+
<br/>
78+
79+
#### Activation models available in svFSI
80+
81+
The following table provides a summary of all the available electrophysiology models in <strong>svFSI</strong>.
82+
83+
<table class="table table-bordered">
84+
<caption>Available cardiac electrophysiology models.</caption>
85+
<thead>
86+
<tr>
87+
<th>Electrophysiology Model</th>
88+
<th>Input Keyword</th>
89+
</tr>
90+
</thead>
91+
<tr>
92+
<td>Aliev-Panfilov model<a href="#ref-4">[4]</td>
93+
<td>"ap", "aliev-panfilov"</td>
94+
</tr>
95+
<tr>
96+
<td>Fitzhugh-Nagumo model<a href="#ref-4">[4]</a></td>
97+
<td>"fn", "fitzhugh-nagumo"</td>
98+
</tr>
99+
<tr>
100+
<td>Bueno-Orovio-Cherry-Fenton model<a href="#ref-5">[5]</a></td>
101+
<td>"bo", "bueno-orovio"</td>
102+
</tr>
103+
<tr>
104+
<td>tenTusscher-Panfilov model<a href="#ref-3">[3]</a></td>
105+
<td>"ttp", "tentusscher-panfilov"</td>
106+
</tr>
107+
</table>

0 commit comments

Comments
 (0)