Skip to content

Commit a209f32

Browse files
authored
Merge pull request #52 from ktbolt/Add-svZeroDSolver_interface-subsection_50
Add svzerod solver interface subsection
2 parents 9d5c871 + bf757d1 commit a209f32

File tree

4 files changed

+135
-38
lines changed

4 files changed

+135
-38
lines changed

documentation/multi_physics.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ <h4 class="skipTo solver-input-file"> Solver Input File </h4>
196196
<div>
197197
<p class="skipTo domain_section"> Domain Subsection </p>
198198
<p class="skipTo linear_solver_parameters "> Linear Solver Subsection </p>
199+
<p class="skipTo svzerodsolver_interface_parameters"> svZeroDSolver Interface Subsection </p>
199200
<p class="skipTo boundary_condition_parameters "> Boundary Condition Subsection </p>
200201
<p class="skipTo output_parameters "> Output Subsection </p>
201202
</div>
@@ -387,6 +388,10 @@ <h4 class="skipTo appendix"> Appendix </h4>
387388
<zero-md src="multi_physics/solver-input-file/linear_solver_parameters/readme.md" no-shadow></zero-md>
388389
</span>
389390

391+
<span id="svzerodsolver_interface_parameters">
392+
<zero-md src="multi_physics/solver-input-file/svzerodsolver_interface_parameters/readme.md" no-shadow></zero-md>
393+
</span>
394+
390395
<span id="output_parameters">
391396
<zero-md src="multi_physics/solver-input-file/output_parameters/readme.md" no-shadow></zero-md>
392397
</span>

documentation/multi_physics/solver-input-file/boundary_condition_parameters/readme.md

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The Boundary Condition Parameters section is organized as follows
1111
<div style="background-color: #F0F0F0; padding: 10px; border: 1px solid #d0d0d0; border-left: 1px solid #d0d0d0">
1212
&lt;<strong>Add_BC</strong> name=<i>face_name</i>&gt;
1313
<br><br>
14-
[Boundary Condition Parameter]
14+
[<a href="#general_boundary_condition_parameters"> General Boundary Condition Parameters </a> ]
1515
<br><br>
1616
&lt;<strong>RCR_values</strong>&gt;<br>
1717
[<a href="#rcr_boundary_condition_parameters"> RCR Parameters </a> ]
@@ -71,118 +71,124 @@ in a text file.
7171

7272
<!-- ---------- G e n e r a l P a r a m e t e r s ---------- -->
7373
<br>
74-
<h4> General Parameters </h4>
75-
<div class="bc_param_div">
74+
<h4 id="general_boundary_condition_parameters"> General Parameters </h4>
75+
<div class="bc_param_div"><nobr>
7676
<strong>&lt;Bct_file_path&gt;</strong> <i>string</i> [none] <nobr>
7777
<strong>&lt;/Bct_file_path&gt;</strong>
78-
</nobr><br>
78+
<br><br>
7979
Load a file used to set the spatial and temporal values for a boundary condition. The file can be a VTK VTP-format file or a text file.
80-
<br>
80+
<br> <br>
8181
<strong>&lt;CST_shell_bc_type&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
8282
<strong>&lt;/CST_shell_bc_type&gt;</strong>
83-
</nobr><br>
83+
<br><br>
8484
Constrain the degrees of freedom of a Constant Strain Triangle (CST) of a triangular shell element.
8585
condition. Permissible values are:
8686
<ul style="list-style-type:disc;">
8787
<li> fixed - Fix the edge </li>
8888
<li> hinged - Allow rotation about an edge </li>
8989
<li> free - Allow free motion about an edge </li>
9090
</ul>
91-
<strong>&lt;Impose_on_state_variable_integral&gt;</strong> <i>boolean</i> [<i>false</i>] <nobr>
91+
<br>
9292
<strong>&lt;Impose_flux&gt;</strong> <i>boolean</i> [<i>false</i>] <nobr>
9393
<strong>&lt;/Impose_flux&gt;</strong>
94-
</nobr><br>
94+
<br><br>
9595
If <i>true</i> then normalize the spatial profile with the area of the face so that the imposed flux value is converted into the state variable.
96-
<br>
96+
<br><br>
9797
<strong>&lt;Impose_on_state_variable_integral&gt;</strong> <i>boolean</i> [<i>false</i>] <nobr>
9898
<strong>&lt;/Impose_on_state_variable_integral&gt;</strong>
99-
</nobr><br>
99+
<br><br>
100100
If <i>true</i> then used for applying a Dirichlet boundary condition on the displacement degrees of freedom when velocity is the state variable (e.g. fluid, CMM, FSI).
101-
<br>
101+
<br><br>
102102
<section id="bc_Initial_displacements_file_path">
103103
<strong>&lt;Initial_displacements_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
104104
<strong>&lt;/Initial_displacements_file_path&gt;</strong>
105-
</nobr><br>
105+
<br><br>
106106
Use the VTK VTU-format file to initialize CMM using an inflation method resulting from a diastolic or time-averaged fluid traction.
107-
<br>
107+
<br><br>
108108
<strong>&lt;Penalty_parameter&gt;</strong> <i>real</i> [0.0] <nobr>
109109
<strong>&lt;/Penalty_parameter&gt;</strong>
110-
</nobr><br>
110+
<br><br>
111111
If the Poisson ratio for a given case is close to 0.5, then calculated bulk modulus used for dilational penalty model can be extremely high leading to poor linear solver convergence. The users may then override the physical bulk modulus with a penalty constant sufficiently large enough for the linear solver to converge.
112-
<br>
112+
<br><br>
113113
<section id="bc_Prestress_file_path">
114114
<strong>&lt;Prestress_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
115115
<strong>&lt;/Prestress_file_path&gt;</strong>
116-
</nobr><br>
116+
<br><br>
117117
Use the VTK VTP-format file to initialize CMM using a prestressed wall under equilibrium with fluid traction.
118-
<br>
118+
<br><br>
119119
<section id="bc_Profile">
120120
<strong>&lt;Profile&gt;</strong> <i>string</i> [flat] <nobr>
121121
<strong>&lt;/Profile&gt;</strong>
122-
</nobr><br>
122+
<br><br>
123123
Set the spatial distribution of a state variable on the face. Acceptable values: Flat, Parabolic or User_defined
124-
<br>
124+
<br><br>
125125
<strong>&lt;Ramp_function&gt;</strong> <i>boolean</i> [<i>false</i>] <nobr>
126126
<strong>&lt;/Ramp_function&gt;</strong>
127-
</nobr><br>
127+
<br><br>
128128
If <i>true</i> then the first two entries in the file setting an unsteady boundary is used to linearly increment from the first value to the second value, and maintains a steady value thereafter.
129-
<br>
129+
<br><br>
130130
<section id="bc_Spatial_profile_file_path">
131131
<strong>&lt;Spatial_profile_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
132132
<strong>&lt;/Spatial_profile_file_path&gt;</strong>
133-
</nobr><br>
133+
<br><br>
134134
Use the given text file to set the spatial distribution of a state variable for a User_defined profile.
135-
<br>
135+
<br><br>
136136
<section id="bc_Spatial_values_file">
137137
<strong>&lt;Spatial_values_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
138138
<strong>&lt;/Spatial_values_file_path&gt;</strong>
139-
</nobr><br>
139+
<br><br>
140140
The path to the VTK VTP-format file used to set the spatially varying body force to a face.
141-
<br>
141+
<br><br>
142+
<section id="bc_svZeroDSolver_block">
143+
<strong>&lt;svZeroDSolver_block&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
144+
<strong>&lt;/svZeroDSolver_block&gt;</strong>
145+
<br><br>
146+
The name of the svZeroDSolver block this boundary face is coupled to.
147+
<br><br>
142148
<section id="bc_Temporal_and_spatial_values_file_path">
143149
<strong>&lt;Temporal_and_spatial_values_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
144150
<strong>&lt;/Temporal_and_spatial_values_file_path&gt;</strong>
145-
</nobr><br>
151+
<br><br>
146152
The path to the text file containing temporal and spatial values.
147-
<br>
153+
<br><br>
148154
<section id="bc_Temporal_values_file_path">
149155
<strong>&lt;Temporal_values_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
150156
<strong>&lt;/Temporal_values_file_path&gt;</strong>
151-
</nobr><br>
157+
<br><br>
152158
The path to the text file containing temporal values.
153-
<br>
159+
<br><br>
154160
<strong>&lt;Time_dependence&gt;</strong> <i>string</i> [steady] <nobr>
155161
<strong>&lt;/Time_dependence&gt;</strong>
156-
</nobr><br>
162+
<br><br>
157163
The time dependence of a boundary condition. Permissible values are:
158164
&middot;general - Spatial and temporal variations are provided from a file
159165
&middot;spatial - Spatially varying values
160166
&middot;steady - A constant value is imposed
161167
&middot;unsteady - Time-dependent values are provide from a file
162-
<br>
168+
<br><br>
163169
<strong>&lt;Traction_values_file_path&gt;</strong> <i>string</i> [<i>none</i>] <nobr>
164170
<strong>&lt;/Traction_values_file_path&gt;</strong>
165-
</nobr><br>
171+
<br><br>
166172
The path to the VTK VTP-format file containing nodally varying traction values.
167-
<br>
173+
<br><br>
168174
<strong>&lt;Traction_multiplier&gt;</strong> <i>real</i> [1.0] <nobr>
169175
<strong>&lt;/Traction_multiplier&gt;</strong>
170-
</nobr><br>
176+
<br><br>
171177
The value used to scale the traction values read from from a file.
172-
<br>
178+
<br><br>
173179
<strong>&lt;Type&gt;</strong> <i>string</i> <nobr>
174180
<strong>&lt;/Type&gt;</strong>
175-
</nobr><br>
181+
<br><br>
176182
The boundary condition type. Permissible values are:
177183
&middot;Coupled Momentum - Identifies the face to be treated using the coupled momentum method
178184
&middot;Dirichlet - Identifies the face to be treated as a Dirichlet boundary condition
179185
&middot;Neumann - Identifies the face to be treated as a Neumann boundary condition
180186
&middot;Robin - Identifies the face to be treated as a Robin boundary condition
181187
&middot;Traction - Identifies the face to be treated as a Traction boundary condition
182-
<br>
188+
<br><br>
183189
<strong>&lt;Value&gt;</strong> <i>real</i> <nobr>
184190
<strong>&lt;/Value&gt;</strong>
185-
</nobr><br>
191+
<br><br>
186192
The value of the state variable.
187193
<br>
188194
</div>

documentation/multi_physics/solver-input-file/equation_parameters/readme.md

100755100644
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ The <i>Equation Section</i> is organized as follows
2828
<br>
2929
&lt;<strong>/ECGLeads</strong>&gt;
3030

31+
&lt;<strong>svZeroDSolver_interface</strong>&gt;
32+
<br>
33+
[<a href="#svzerodsolver_interface_subsection"> svZeroDSolver Interface Subsection </a> ]
34+
<br>
35+
&lt;<strong>/svZeroDSolver_interface</strong>&gt;
36+
3137
&lt;<strong>Variable_wall_properties</strong> mesh_name=<i>mesh_name</i>&gt;<br>
3238
[<a href="#Variable_wall_properties_subsection"> Variable wall properties Subsection </a> ]
3339
<br>
@@ -49,6 +55,19 @@ The <i>Equation Section</i> is organized as follows
4955
&lt;<strong>Output</strong>&gt;
5056
<br>
5157

58+
&lt;<strong>svZeroDSolver_interface</strong> name=<i>svzerod_interface_name</i>&gt;<br>
59+
[<a href="#svzerodsolver_interface_parameters"> svZeroDSolver Interface Subsection </a>]
60+
<br>
61+
&lt;<strong>svZeroDSolver_interface</strong>&gt;
62+
<br>
63+
64+
&lt;<strong>Add_BC</strong> name=<i>bc_name</i>&gt;<br>
65+
[<a href="#boundary_condition_parameters"> Boundary Condition Subsection </a>]
66+
<br>
67+
&lt;<strong>Add_BC</strong>&gt;
68+
<br>
69+
70+
5271
&lt;<strong>Add_equation</strong>&gt;
5372

5473
</div>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<!-- ======================================================================== -->
2+
<!-- ==================== svZeroDSolver Interface Subsection ================ -->
3+
<!-- ======================================================================== -->
4+
5+
<h3 id="svzerodsolver_interface_subsection"> svZeroDSolver Interface Subsection </h3>
6+
The <i>svZeroDSolver Interface Subsection</i> of the <i>Equation Section</i> defines the parameters needed by the svMultiPhysics solver to interface with the svZeroDSolver.
7+
8+
The SimVascular <a href="/documentation/rom_simulation.html#0d-solver"> svZeroDSolver </a> simulates bulk cardiovascular flow rates and pressures using an arbitrary zero-dimensional (0D) lumped parameter model (LPM) of a discrete network of components analogous to electrical circuits. It provides an Application Programming Interface (API) that allows it to communicate and interact with external software applications directly using function calls to programmatically define custom inflow and outflow boundary conditions for a CFD simulation. The svMultiPhysics solver can directly access the svZeroDSolver API by loading the svZeroDSolver as a shared (dynamic) library available after installing the svZeroDSolver.
9+
10+
The <i>svZeroDSolver Interface Subsection </i> is organized as follows
11+
<div style="background-color: #F0F0F0; padding: 10px; border: 1px solid #d0d0d0; border-left: 1px solid #d0d0d0">
12+
&lt;<strong>svZeroDSolver_interface</strong>&gt;<br>
13+
[<a href="#svzerodsolver_interface_parameters_desc"> svZeroDSolver Interface Parameters </a> ]
14+
<br>
15+
&lt;<strong>&#47;svZeroDSolver_interface</strong>&gt;<br>
16+
</div>
17+
18+
The <strong>svZeroDSolver_interface</strong> keyword activates coupling for boundary conditions with the
19+
&lt;<strong>Time_dependence</strong>&gt; Coupled &lt;<strong>&#47;Time_dependence</strong>&gt; keyword for the enclosing equation coupled boundary condition.
20+
21+
The value of <i>svzerodsolver_interface_name</i> can be any string name and is not currently used.
22+
23+
<!-- ------------------------------------------- -->
24+
<!-- ---- svZeroDSolver_interface parameters --- -->
25+
<!-- ------------------------------------------- -->
26+
27+
<h4 id="svzerodsolver_interface_parameters_desc"> svZeroDSolver Interface Parameters </h4>
28+
<div class="bc_param_div"><nobr>
29+
<strong>&lt;Coupling_type&gt;</strong> <i>string</i> [none] <nobr>
30+
<strong>&lt;/Coupling_type&gt;</strong><br><br>
31+
The type of coupling used between the svMultiPhysics and svZeroDSolve solvers. The coupling type determines how contributions from the coupled svZeroDSolver are added to the svMultiPhysics solver tangent matrix.<br><br>
32+
The value of the coupling type can be
33+
<ul style="list-style-type:disc;">
34+
<li> explicit - No contribution is added. This may potentially cause poor nonlinear convergence. </li>
35+
<li> implicit - Contributions are added as outlet resistances for each svZeroDSolver and svMultiPhysics solver Newton iteration. This leads to theoretically quadratic nonlinear convergence but at the expense of additional computation.
36+
</li>
37+
<li> semi-implicit - Contributions obtained from the svZeroDSolver for outlet resistances are added only at the beginning of the simulation .</li>
38+
</ul>
39+
<strong>&lt;Configuration_file&gt;</strong> <i>string</i> [none] <nobr>
40+
<strong>&lt;/Configuration_file&gt;</strong>
41+
<br><br>
42+
The name of the svZeroDSolver JSON configuration file containing the description of the components of a lumped parameter network and various simulation parameters.
43+
<br><br>
44+
<strong>&lt;Shared_library&gt;</strong> <i>string</i> [none] <nobr>
45+
<strong>&lt;/Shared_library&gt;</strong>
46+
<nobr><br><br>
47+
The path and name of the svZeroDSolver shared library used to access the svZeroDSolver API. The name of the library is specific to the computer platform you are using
48+
<ul style="list-style-type:disc;">
49+
<li> Linux - libsvzero_interface.so </li>
50+
<li> MacOS - libsvzero_interface.dylib </li>
51+
<li> Windows - libsvzero_interface.dll </li>
52+
</ul>
53+
On MacOS and Linux this library will be installed in the directory /usr/local/sv/svZeroDSolver/DATE/lib.
54+
<br><br>
55+
<strong>&lt;Initial_flows&gt;</strong> <i>real</i> [0.0] <nobr>
56+
<strong>&lt;/Initial_flows&gt;</strong>
57+
<br><br>
58+
Initialize the flows for all coupling blocks with the given value. If this parameter is not given then flows will not be initialized.<br>
59+
<br>
60+
<strong>&lt;Initial_pressures&gt;</strong> <i>real</i> [0.0] <nobr>
61+
<strong>&lt;/Initial_pressures&gt;</strong>
62+
<br><br>
63+
Initialize the pressures for all coupling blocks with the given value. If this parameter is not given then pressures will not be initialized.
64+
</div>
65+
66+
67+

0 commit comments

Comments
 (0)