-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathinputfile.xml
316 lines (299 loc) · 12.5 KB
/
inputfile.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
<?xml version="1.0" encoding="utf-8"?>
<!-- Kaiser, J. W. J., Hoppe, N., Adami, S., & Adams, N. A. (2019).
An adaptive local time-stepping scheme for multiresolution simulations of hyperbolic conservation laws.
Journal of Computational Physics: X, 4, 100038.
Section 4.2 Shock-tube problem of Sod.
-->
<configuration>
<domain>
<!-- Size of a single multi-resolution node on the coarsest level, i.e. level 0. -->
<nodeSize> 1 </nodeSize>
<!-- Number of nodes per dimension on the coarsest level.
Multiplying nodeRatio_x/y/z * nodeSize gives the domain size in x/y/z-direction.
Multiplying nodeRatio_x/y/z * internal_cells_per_node_and_dimension (adjustable in code: compile_time_constants.h)
gives the number of cells in x/y/z-direction on the coarsest level. Refinement of the coarse mesh is possible
by using a multi-resolution scheme. It can be adjusted in the multiResolution section of this inputfile. -->
<nodeRatio>
<x> 1 </x>
<y> 1 </y>
<z> 1 </z>
</nodeRatio>
<!-- Boundary conditions have to be specified for all six faces of the cuboid domain (in 3D). They have to be specified
for the material as well as the levelset. The faces are denoted according to their geographic orientation:
East -> positive x direction
West -> negative x direction
North -> positive y direction
South -> negative y direction
Top -> positive z direction
Bottom -> negative z direction -->
<boundaryConditions>
<material>
<!-- Types of material boundary conditions:
zeroGradient,
symmetry,
wall,
fixedValue. -->
<west> ZeroGradient </west>
<east> ZeroGradient </east>
<!-- In case a fixedValue boundary condition is used, a xml node specifying the
fixed prime states has to be added (see example below). -->
<valuesEast>
<density> 1.0 </density>
<velocityX> 0.0 </velocityX>
<velocityY> 0.0 </velocityY>
<velocityZ> 0.0 </velocityZ>
<pressure> 1.0 </pressure>
</valuesEast>
<south> ZeroGradient </south>
<north> ZeroGradient </north>
<valuesNorth>
<density> 1.0 </density>
<velocityX> 0.0 </velocityX>
<velocityY> 0.0 </velocityY>
<velocityZ> 0.0 </velocityZ>
<pressure> 1.0 </pressure>
</valuesNorth>
<bottom> symmetry </bottom>
<top> symmetry </top>
</material>
<!-- Levelset boundary conditions. -->
<levelSet>
<!--types of level-set boundary conditions:
zeroGradient,
symmetry -->
<west> symmetry </west>
<east> symmetry </east>
<south> symmetry </south>
<north> symmetry </north>
<bottom> symmetry </bottom>
<top> symmetry </top>
</levelSet>
</boundaryConditions>
<!-- The initial state of each material and the levelset have to be defined. It is possible to use conditional expressions as given below. -->
<initialConditions>
<material1>
if (x < 0.5)
{
density : = 1.0;
velocityX := 0.0;
velocityY := 0.0;
velocityZ := 0.0;
pressure := 1.0;
}
else
{
density := 0.125;
velocityX := 0.0;
velocityY := 0.0;
velocityZ := 0.0;
pressure := 0.1;
}
</material1>
<material2>
density := 1.0;
velocityX := 0.75;
velocityY := 0.0;
velocityZ := 0.0;
pressure := 1.0;
</material2>
<!-- Xml node defining the levelset input. Possible types are: functional, STL, parametric. For each type, a set of parameters must be specified. -->
<levelSet1>
<type> functional </type>
<input> phi := 1.0; </input>
<boundingBox>
<xMin> 0.0 </xMin>
<xMax> 1.0 </xMax>
<yMin> 0.0 </yMin>
<yMax> 1.0 </yMax>
<zMin> 0.0 </zMin>
<zMax> 1.0 </zMax>
</boundingBox>
</levelSet1>
</initialConditions>
</domain>
<!-- Xml nodes defining the equation of state and its properties for each material. -->
<!-- Explanation:
type: Choose the equation of state that has to be applied.
Possible choices are: StiffenedGas or WaterlikeFluid (Tait), NobleAbelStiffenedGas, StiffenedGasComplete.
For each equation of state a set of parameter must be specified.
-->
<materials>
<!-- The number of materials in the simulation. Note: Currently, 2 is the maximum. -->
<numberOfMaterials> 2 </numberOfMaterials>
<material1>
<!-- available options are: Fluid, SolidBoundary -->
<type> Fluid </type>
<equationOfState>
<type> StiffenedGas </type>
<gamma> 1.4 </gamma>
<backgroundPressure> 0.0 </backgroundPressure>
</equationOfState>
<properties>
<specificHeatCapacity> 0.0 </specificHeatCapacity>
<thermalConductivity>
<fixedValue> 0.0 </fixedValue>
<model>
<name> Constant </name>
<parameter>
<lambdaConstant> 10.0 </lambdaConstant>
</parameter>
</model>
</thermalConductivity>
<shearViscosity>
<fixedValue> 0.0 </fixedValue>
<model>
<name> PowerLaw </name>
<parameter>
<consistencyFactor> 1.0 </consistencyFactor>
<powerLawExponent> 0.0 </powerLawExponent>
</parameter>
</model>
</shearViscosity>
<bulkViscosity> 0.0 </bulkViscosity>
</properties>
</material1>
<material2>
<!-- available options are: Fluid, SolidBoundary -->
<type> Fluid </type>
<equationOfState>
<type> WaterlikeFluid </type>
<gamma> 1.4 </gamma>
<A> 1.0 </A>
<B> 1.0 </B>
<rho0> 1.0 </rho0>
</equationOfState>
<properties>
<specificHeatCapacity> 0.0 </specificHeatCapacity>
<thermalConductivity>
<fixedValue> 0.0 </fixedValue>
<model>
<name> Constant </name>
<parameter>
<lambdaConstant> 0.0 </lambdaConstant>
</parameter>
</model>
</thermalConductivity>
<shearViscosity>
<fixedValue> 0.0 </fixedValue>
<model>
<name> PowerLaw </name>
<parameter>
<consistencyFactor> 1.0 </consistencyFactor>
<powerLawExponent> 0.0 </powerLawExponent>
</parameter>
</model>
</shearViscosity>
<bulkViscosity> 0.0 </bulkViscosity>
</properties>
</material2>
</materials>
<materialPairings>
<material1_2>
<surfaceTensionCoefficient>
<fixedValue> 0.0 </fixedValue>
<model>
<name> Constant </name>
<parameter>
<sigmaConstant> 0.0 </sigmaConstant>
</parameter>
</model>
</surfaceTensionCoefficient>
</material1_2>
</materialPairings>
<!-- Define a volume force, due to gravity in this case, in x/y/z direction. -->
<sourceTerms>
<gravity>
<x> 0 </x>
<y> 0 </y>
<z> 0 </z>
</gravity>
</sourceTerms>
<!-- Employ a multi-resolution scheme as described in the paper cited at the top of this file. -->
<multiResolution>
<!-- Number of possible refinements. Uniform meshes are obtained for maximumLevel = 0 or 1 -->
<maximumLevel> 2 </maximumLevel>
<refinementCriterion>
<!-- The reference error on the given reference level for the wavelet-based refinement decisions. -->
<epsilonReference> 0.01 </epsilonReference>
<!-- The level on which the stated epsilon value should be enforced.
Note: allowed values are 0-13. -->
<levelOfEpsilonReference> 1 </levelOfEpsilonReference>
</refinementCriterion>
</multiResolution>
<!-- Block where the start, end time and Courant–Friedrichs–Lewy number of the simulation are defined. -->
<timeControl>
<startTime> 0.0 </startTime>
<endTime> 0.2 </endTime>
<CFLNumber> 0.6 </CFLNumber>
</timeControl>
<!-- ALPACA internally calculates with nondimensionalized values. Reference values used for
nondimensionalization have to be specified to length scales, velocity, density and temperature. -->
<dimensionalization>
<lengthReference> 1.0 </lengthReference>
<velocityReference> 1.0 </velocityReference>
<densityReference> 1.0 </densityReference>
<temperatureReference> 1.0 </temperatureReference>
</dimensionalization>
<!-- This xml node specifies whether a simulation should be restarted or not, and all relevant parameters that
have to be specified. -->
<restart>
<!-- xml node to restore the simulation from a snapshot -->
<restore>
<!-- Mode: Off, Soft (if file exists) OR Forced -->
<mode> Off </mode>
<!-- The path to the .h5 file that has to be used to restore the simulation. Only used if restore is active -->
<fileName> inputfile/restart/restart_***.h5 </fileName>
</restore>
<!-- xml node to specify details about the snapshots writing-->
<snapshots>
<!-- Type how the snapshots are written: Off, Stamps, Interval OR IntervalStamps -->
<type> Stamps </type>
<!-- in wall seconds. Only used if type Interval or IntervalStamps is active. -->
<interval> 3600 </interval>
<!-- Number of interval snapshots that are kept. Timestamp-based snapshots are always kept -->
<intervalsToKeep> 2 </intervalsToKeep>
<!-- Time stamps for specific snapshots. Only used if type Stamps or IntervalStamps is active. -->
<stamps> <!-- always kept -->
<!-- <ts1> 0.1 </ts1> -->
<!-- <ts2> 0.2 </ts2> -->
</stamps>
</snapshots>
</restart>
<!-- Below xml node is used to specify output related settings. The output is always written in Xdmf/Hdf5 format. -->
<output>
<!-- Factor to manipulate the naming of the output files. TimeInName = physical time * timeNamingFactor-->
<timeNamingFactor> 1.e0 </timeNamingFactor>
<!-- Output settings used for the general output of the full domain (also in Debug mode (adjustable in code: debug_profile_settings.h)) -->
<standardOutput>
<!-- Specify whether output should be written with a fixed interval (Interval), specific timestamps (Timestamps) or both (IntervalStamps).
To disable aoutput use Off. -->
<type> Interval </type>
<!-- The interval with which output is written in case interval output is active. Neglected otherwise. -->
<interval> 1e-6 </interval>
<!-- If output at timestamps is active, the timestamps can be specified below. Neglected otherwise. -->
<stamps>
<ts1> 0.0004 </ts1>
<ts2> 0.0006 </ts2>
<ts3> 0.0008 </ts3>
<ts4> 0.0010 </ts4>
<ts5> 0.0012 </ts5>
<ts6> 0.0014 </ts6>
<ts7> 0.0016 </ts7>
<ts8> 0.0018 </ts8>
<ts9> 0.05 </ts9>
<ts10>0.15 </ts10>
<ts11>0.2 </ts11>
<ts12>0.4 </ts12>
</stamps>
</standardOutput>
<!-- Output settings used for the output of only interface nodes. Details about specifications, see above in standardOutput. -->
<interfaceOutput>
<type> Interval </type> <!--Off, Interval, Stamps OR IntervalStamps-->
<interval> 1e-6 </interval>
<stamps>
<ts1> 0.0004 </ts1>
<ts2> 0.0006 </ts2>
</stamps>
</interfaceOutput>
</output>
</configuration>