Skip to content

Commit 8a002ab

Browse files
authored
Merge pull request #45 from hanzhao2020/hemodynamics_doc
Updating user guide for computational hemodynamics.
2 parents 95b52b4 + b372186 commit 8a002ab

File tree

3 files changed

+129
-23
lines changed

3 files changed

+129
-23
lines changed
132 KB
Loading

documentation/multi_physics/user-guide/hemodynamics/non_newtonian/readme.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ Blood is a complex mixture that consists of plasma, blood cells and platelets. T
77

88
Currently, **svMultiPhysics** supports three viscosity models: Newtonian, Carreau-Yasuda and Casson <a href="#ref-2">[2]</a>.
99

10+
<br>
1011
<figure>
11-
<img class="svImg svImgSm" src="/documentation/svfsi/fluid/imgs/non-newtonian.png" style="width:100%;height:auto;max-width: 30vw;">
12-
<figcaption class="svCaption" >Non-Newtonian viscosity model<a href="#ref-1">[1]</a>.</figcaption>
12+
<img src="/documentation/multi_physics/user-guide/hemodynamics/imgs/non-newtonian.png" style="float: left; width: 50%; margin-right: 1%; margin-bottom: 0.5em;">
13+
<p style="clear: both;">
1314
</figure>
15+
<br>
1416

1517
Carreau-Yassuda model is defined as
1618

@@ -35,36 +37,34 @@ Here, $k\_0 ( c )$ and $k\_1 ( c )$ are functions of the hematocrit $c$.
3537

3638

3739
<h4> Input file </h4>
38-
Some specific input options are discussed below:
40+
Input options for different viscosity models are discussed below:
3941

4042
For Newtonian fluid:
4143

4244
```
43-
Viscosity: Constant {
44-
Vsalue: 0.04
45-
}
45+
<Viscosity model="Constant" >
46+
<Value> 0.04 </Value>
47+
</Viscosity>
4648
```
4749

4850
For Casson fluid
4951

5052
```
51-
Viscosity: Cassons {
52-
Asymptotic viscosity parameter: 0.3953
53-
Yield stress parameter: 0.22803
54-
Low shear-rate threshold: 0.5
55-
}
53+
<Viscosity model="Cassons" >
54+
<Asymptotic_viscosity_parameter> 0.3953 </Asymptotic_viscosity_parameter>
55+
<Yield_stress_parameter> 0.22803 </Yield_stress_parameter>
56+
<Low_shear_rate_threshold> 0.5 </Low_shear_rate_threshold>
57+
</Viscosity>
5658
```
5759

5860
For Carreau-Yasuda fluid
5961

6062
```
61-
Viscosity: Carreau-Yasuda {
62-
Limiting high shear-rate viscosity: 0.022
63-
Limiting low shear-rate viscosity: 0.22
64-
Shear-rate tensor multiplier (lamda): 0.11
65-
Shear-rate tensor exponent (a): 0.644
66-
Power-law index (n): 0.392
67-
}
63+
<Viscosity model="Carreau-Yasuda" >
64+
<Limiting_high_shear_rate_viscosity> 0.022 </Limiting_high_shear_rate_viscosity>
65+
<Limiting_low_shear_rate_viscosity> 0.22 </Limiting_low_shear_rate_viscosity>
66+
<Shear_rate_tensor_multiplier> 0.11 </Shear_rate_tensor_multiplier>
67+
<Shear_rate_tensor_exponent> 0.644 </Shear_rate_tensor_exponent>
68+
<Power_law_index> 0.392 </Power_law_index>
69+
</Viscosity>
6870
```
69-
70-

documentation/multi_physics/user-guide/hemodynamics/prescribed/readme.md

Lines changed: 109 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,110 @@
1+
## Input file for fluid simulations
2+
3+
In this example, the abdominal aortic aneurysm (AAA) model is used as the fluid domain to perform the hemodynamics simulation, as shown in the figure below.
4+
5+
<br>
6+
<figure>
7+
<img src="/documentation/multi_physics/user-guide/hemodynamics/imgs/AAA_geometry.png" style="float: left; width: 20%; margin-right: 1%; margin-bottom: 0.5em;">
8+
<p style="clear: both;">
9+
</figure>
10+
<br>
11+
12+
An XML input file is needed to run the simulation. The setup of the input file is introduced in the following tutorial.
13+
14+
The mesh files, including the lumen of the AAA, inlet and outlet surfaces, and wall surfaces, are first added to the input file to specify the computational domain.
15+
16+
```
17+
<Add_mesh name="lumen" >
18+
<Mesh_file_path> mesh/lumen-mesh-complete/mesh-complete.mesh.vtu </Mesh_file_path>
19+
<Add_face name="lumen_inlet">
20+
<Face_file_path> mesh/lumen-mesh-complete/mesh-surfaces/Inlet.vtp </Face_file_path>
21+
</Add_face>
22+
<Add_face name="lumen_outlet1">
23+
<Face_file_path> mesh/lumen-mesh-complete/mesh-surfaces/Outlet_1.vtp </Face_file_path>
24+
</Add_face>
25+
<Add_face name="lumen_outlet2">
26+
<Face_file_path> mesh/lumen-mesh-complete/mesh-surfaces/Outlet_2.vtp </Face_file_path>
27+
</Add_face>
28+
<Add_face name="lumen_wall">
29+
<Face_file_path> mesh/lumen-mesh-complete/mesh-surfaces/lumen_wall.vtp </Face_file_path>
30+
</Add_face>
31+
<Domain> 0 </Domain>
32+
</Add_mesh>
33+
34+
```
35+
36+
In the equation section, the fluid equation is employed for computational hemodynamics to solve the Navier-Stokes equations. The setup of equation parameters can be found in the equation section. In this example, the Newtonian fluid with a constant viscosity of 0.04 is used to model the blood. Multiple quantities, including velocity, pressure, traction, etc, are contained in the output section.
37+
38+
```
39+
<Add_equation type="fluid" >
40+
<Coupled> true </Coupled>
41+
<Min_iterations> 3 </Min_iterations>
42+
<Max_iterations> 5</Max_iterations>
43+
<Tolerance> 1e-11 </Tolerance>
44+
<Backflow_stabilization_coefficient> 0.2 </Backflow_stabilization_coefficient>
45+
46+
<Density> 1.06 </Density>
47+
<Viscosity model="Constant" >
48+
<Value> 0.04 </Value>
49+
</Viscosity>
50+
51+
<Output type="Spatial" >
52+
<Velocity> true </Velocity>
53+
<Pressure> true </Pressure>
54+
<Traction> true </Traction>
55+
<Vorticity> true</Vorticity>
56+
<Divergence> true</Divergence>
57+
<WSS> true </WSS>
58+
</Output>
59+
```
60+
61+
The Navier-Stokes linear solver based on the partitioned method for fluid equations is selected for this example, with both the linear algebra type and preconditioner specified as “fsils”. A comprehensive introduction of the parameters in the linear solver can be found in the linear solver subsection.
62+
63+
```
64+
<LS type="NS" >
65+
<Linear_algebra type="fsils" >
66+
<Preconditioner> fsils </Preconditioner>
67+
</Linear_algebra>
68+
<Max_iterations> 15 </Max_iterations>
69+
<NS_GM_max_iterations> 10 </NS_GM_max_iterations>
70+
<NS_CG_max_iterations> 300 </NS_CG_max_iterations>
71+
<Tolerance> 1e-3 </Tolerance>
72+
<NS_GM_tolerance> 1e-3 </NS_GM_tolerance>
73+
<NS_CG_tolerance> 1e-3 </NS_CG_tolerance>
74+
<Absolute_tolerance> 1e-17 </Absolute_tolerance>
75+
<Krylov_space_dimension> 250 </Krylov_space_dimension>
76+
</LS>
77+
```
78+
79+
Notably, boundary conditions need to be defined on the surfaces of the AAA mesh. Dirichlet boundary conditions are imposed on the lumen inlet and wall surface, and Neumann boundary conditions are specified for the lumen outlets.
80+
81+
```
82+
<Add_BC name="lumen_inlet" >
83+
<Type> Dir </Type>
84+
<Value> -62.79 </Value>
85+
</Add_BC>
86+
87+
<Add_BC name="lumen_outlet1" >
88+
<Type> Neu </Type>
89+
<Time_dependence> Resistance </Time_dependence>
90+
<Value> 381.8 </Value>
91+
</Add_BC>
92+
93+
<Add_BC name="lumen_outlet2" >
94+
<Type> Neu </Type>
95+
<Time_dependence> Resistance </Time_dependence>
96+
<Value> 381.8 </Value>
97+
</Add_BC>
98+
99+
<Add_BC name="lumen_wall" >
100+
<Type> Dir </Type>
101+
<Time_dependence> Steady </Time_dependence>
102+
<Value> 0.0 </Value>
103+
</Add_BC>
104+
105+
</Add_equation>
106+
```
107+
1108
## Prescribed Wall Motion
2109

3110
In this section, we discuss how to set up a simulation with prescribed wall motion. For example, one may wish to extract the motion of the walls of the ventricle from CT/MR scans, and reconstruct the flow fields by solving the Navier-Stokes equations. This is accomplished by computing the displacement trajectory of the endocardial surface and prescribed it as the boundary condition. This must be done offline by the user for their specific problem. This is typically done for a small subset of the total times, and displacements between the specified times are prescribed by using a piece-wise linear interpolant. Some researchers refer to this method as the one-way coupled fluid-structure interaction modeling. But since only fluid equation is solved here, we categorize it as flow simulation.
@@ -102,8 +209,7 @@ For example,
102209

103210
Note that in this example, we wish the mesh motion to be periodic in time, and thus the final displacement is zero.
104211

105-
106-
<h3> Input file </h3>
212+
<!-- <h3> Input file </h3>
107213
108214
To set up the input file, set the equation to be FSI to allow the mesh to move under the ALE framework, even though there is not necessarily a structure. For the moving wall, add the motion file when specifying the wall boundary condition, and turn on the option “Impose on state variable integral”.
109215
@@ -161,4 +267,4 @@ Under the mesh equation, we similarly add the motion file.
161267
}
162268
```
163269
164-
Follow this [instruction](svfsi.html#app_restart_after_remesh) if you need to restart your simulation after stoppage.
270+
Follow this [instruction](svfsi.html#app_restart_after_remesh) if you need to restart your simulation after stoppage. -->

0 commit comments

Comments
 (0)