xref: /honee/doc/runtime_options.md (revision 965d9f743f86785935177ec2ff1624a7b09e04f8)
1*965d9f74SJames Wright# Runtime options
2*965d9f74SJames Wright
3*965d9f74SJames Wright## Common Options
4*965d9f74SJames WrightThe Navier-Stokes mini-app is controlled via command-line options.
5*965d9f74SJames WrightThe following options are common among all problem types:
6*965d9f74SJames Wright
7*965d9f74SJames Wright:::{list-table} Common Runtime Options
8*965d9f74SJames Wright:header-rows: 1
9*965d9f74SJames Wright
10*965d9f74SJames Wright* - Option
11*965d9f74SJames Wright  - Description
12*965d9f74SJames Wright  - Default value
13*965d9f74SJames Wright
14*965d9f74SJames Wright* - `-ceed`
15*965d9f74SJames Wright  - CEED resource specifier
16*965d9f74SJames Wright  - `/cpu/self/opt/blocked`
17*965d9f74SJames Wright
18*965d9f74SJames Wright* - `-test_type`
19*965d9f74SJames Wright  - Run in test mode and specify whether solution (`solver`) or turbulent statistics (`turb_spanstats`) output should be verified
20*965d9f74SJames Wright  - `none`
21*965d9f74SJames Wright
22*965d9f74SJames Wright* - `-compare_final_state_atol`
23*965d9f74SJames Wright  - Test absolute tolerance
24*965d9f74SJames Wright  - `1E-11`
25*965d9f74SJames Wright
26*965d9f74SJames Wright* - `-compare_final_state_filename`
27*965d9f74SJames Wright  - Test filename
28*965d9f74SJames Wright  -
29*965d9f74SJames Wright
30*965d9f74SJames Wright* - `-problem`
31*965d9f74SJames Wright  - Problem to solve (`advection`, `density_current`, `euler_vortex`, `shocktube`, `blasius`, `channel`, `gaussian_wave`, and `taylor_green`)
32*965d9f74SJames Wright  - `density_current`
33*965d9f74SJames Wright
34*965d9f74SJames Wright* - `-implicit`
35*965d9f74SJames Wright  - Use implicit time integrator formulation
36*965d9f74SJames Wright  -
37*965d9f74SJames Wright
38*965d9f74SJames Wright* - `-degree`
39*965d9f74SJames Wright  - Polynomial degree of tensor product basis (must be >= 1)
40*965d9f74SJames Wright  - `1`
41*965d9f74SJames Wright
42*965d9f74SJames Wright* - `-q_extra`
43*965d9f74SJames Wright  - Number of extra quadrature points
44*965d9f74SJames Wright  - `0`
45*965d9f74SJames Wright
46*965d9f74SJames Wright* - `-ts_monitor_solution`
47*965d9f74SJames Wright  - PETSc output format, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`)
48*965d9f74SJames Wright  -
49*965d9f74SJames Wright
50*965d9f74SJames Wright* - `-ts_monitor_solution_interval`
51*965d9f74SJames Wright  - Number of time steps between visualization output frames.
52*965d9f74SJames Wright  - `1`
53*965d9f74SJames Wright
54*965d9f74SJames Wright* - `-viewer_cgns_batch_size`
55*965d9f74SJames Wright  - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`).
56*965d9f74SJames Wright  - `20`
57*965d9f74SJames Wright
58*965d9f74SJames Wright* - `-checkpoint_interval`
59*965d9f74SJames Wright  - Number of steps between writing binary checkpoints. `0` has no output, `-1` outputs final state only
60*965d9f74SJames Wright  - `10`
61*965d9f74SJames Wright
62*965d9f74SJames Wright* - `-checkpoint_vtk`
63*965d9f74SJames Wright  - Checkpoints include VTK (`*.vtu`) files for visualization. Consider `-ts_monitor_solution`instead.
64*965d9f74SJames Wright  - `false`
65*965d9f74SJames Wright
66*965d9f74SJames Wright* - `-viz_refine`
67*965d9f74SJames Wright  - Use regular refinement for VTK visualization
68*965d9f74SJames Wright  - `0`
69*965d9f74SJames Wright
70*965d9f74SJames Wright* - `-output_dir`
71*965d9f74SJames Wright  - Output directory for binary checkpoints and VTK files (if enabled).
72*965d9f74SJames Wright  - `.`
73*965d9f74SJames Wright
74*965d9f74SJames Wright* - `-output_add_stepnum2bin`
75*965d9f74SJames Wright  - Whether to add step numbers to output binary files
76*965d9f74SJames Wright  - `false`
77*965d9f74SJames Wright
78*965d9f74SJames Wright* - `-continue`
79*965d9f74SJames Wright  - Continue from previous solution (input is step number of previous solution)
80*965d9f74SJames Wright  - `0`
81*965d9f74SJames Wright
82*965d9f74SJames Wright* - `-continue_filename`
83*965d9f74SJames Wright  - Path to solution binary file from which to continue from
84*965d9f74SJames Wright  - `[output_dir]/ns-solution.bin`
85*965d9f74SJames Wright
86*965d9f74SJames Wright* - `-continue_time_filename`
87*965d9f74SJames Wright  - Path to time stamp binary file (only for legacy checkpoints)
88*965d9f74SJames Wright  - `[output_dir]/ns-time.bin`
89*965d9f74SJames Wright
90*965d9f74SJames Wright* - `-bc_wall`
91*965d9f74SJames Wright  - Use wall boundary conditions on this list of faces
92*965d9f74SJames Wright  -
93*965d9f74SJames Wright
94*965d9f74SJames Wright* - `-wall_comps`
95*965d9f74SJames Wright  - An array of constrained component numbers for wall BCs
96*965d9f74SJames Wright  -
97*965d9f74SJames Wright
98*965d9f74SJames Wright* - `-bc_slip`
99*965d9f74SJames Wright  - Use weak slip boundary condition on this list of faces
100*965d9f74SJames Wright  -
101*965d9f74SJames Wright
102*965d9f74SJames Wright* - `-bc_symmetry_x`
103*965d9f74SJames Wright  - Use symmetry boundary conditions, for the x component, on this list of faces
104*965d9f74SJames Wright  -
105*965d9f74SJames Wright
106*965d9f74SJames Wright* - `-bc_symmetry_y`
107*965d9f74SJames Wright  - Use symmetry boundary conditions, for the y component, on this list of faces
108*965d9f74SJames Wright  -
109*965d9f74SJames Wright
110*965d9f74SJames Wright* - `-bc_symmetry_z`
111*965d9f74SJames Wright  - Use symmetry boundary conditions, for the z component, on this list of faces
112*965d9f74SJames Wright  -
113*965d9f74SJames Wright
114*965d9f74SJames Wright* - `-bc_inflow`
115*965d9f74SJames Wright  - Use inflow boundary conditions on this list of faces
116*965d9f74SJames Wright  -
117*965d9f74SJames Wright
118*965d9f74SJames Wright* - `-bc_outflow`
119*965d9f74SJames Wright  - Use outflow boundary conditions on this list of faces
120*965d9f74SJames Wright  -
121*965d9f74SJames Wright
122*965d9f74SJames Wright* - `-bc_freestream`
123*965d9f74SJames Wright  - Use freestream boundary conditions on this list of faces
124*965d9f74SJames Wright  -
125*965d9f74SJames Wright
126*965d9f74SJames Wright* - `-ts_monitor_turbulence_spanstats_collect_interval`
127*965d9f74SJames Wright  - Number of timesteps between statistics collection
128*965d9f74SJames Wright  - `1`
129*965d9f74SJames Wright
130*965d9f74SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer`
131*965d9f74SJames Wright  - Sets the PetscViewer for the statistics file writing, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`). Also turns the statistics collection on.
132*965d9f74SJames Wright  -
133*965d9f74SJames Wright
134*965d9f74SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer_interval`
135*965d9f74SJames Wright  - Number of timesteps between statistics file writing (`-1` means only at end of run)
136*965d9f74SJames Wright  - `-1`
137*965d9f74SJames Wright
138*965d9f74SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer_cgns_batch_size`
139*965d9f74SJames Wright  - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`).
140*965d9f74SJames Wright  - `20`
141*965d9f74SJames Wright
142*965d9f74SJames Wright* - `-ts_monitor_wall_force`
143*965d9f74SJames Wright  - Viewer for the force on each no-slip wall, e.g., `ascii:force.csv:ascii_csv` to write a CSV file.
144*965d9f74SJames Wright  -
145*965d9f74SJames Wright
146*965d9f74SJames Wright* - `-mesh_transform`
147*965d9f74SJames Wright  - Transform the mesh, usually for an initial box mesh.
148*965d9f74SJames Wright  - `none`
149*965d9f74SJames Wright
150*965d9f74SJames Wright* - `-snes_view`
151*965d9f74SJames Wright  - View PETSc `SNES` nonlinear solver configuration
152*965d9f74SJames Wright  -
153*965d9f74SJames Wright
154*965d9f74SJames Wright* - `-log_view`
155*965d9f74SJames Wright  - View PETSc performance log
156*965d9f74SJames Wright  -
157*965d9f74SJames Wright
158*965d9f74SJames Wright* - `-help`
159*965d9f74SJames Wright  - View comprehensive information about run-time options
160*965d9f74SJames Wright  -
161*965d9f74SJames Wright:::
162*965d9f74SJames Wright
163*965d9f74SJames WrightFor the case of a square/cubic mesh, the list of face indices to be used with `-bc_wall`, `bc_inflow`, `bc_outflow`, `bc_freestream`  and/or `-bc_symmetry_x`, `-bc_symmetry_y`, and `-bc_symmetry_z` are:
164*965d9f74SJames Wright
165*965d9f74SJames Wright:::{list-table} 2D Face ID Labels
166*965d9f74SJames Wright:header-rows: 1
167*965d9f74SJames Wright* - PETSc Face Name
168*965d9f74SJames Wright  - Cartesian direction
169*965d9f74SJames Wright  - Face ID
170*965d9f74SJames Wright
171*965d9f74SJames Wright* - faceMarkerBottom
172*965d9f74SJames Wright  - -z
173*965d9f74SJames Wright  - 1
174*965d9f74SJames Wright
175*965d9f74SJames Wright* - faceMarkerRight
176*965d9f74SJames Wright  - +x
177*965d9f74SJames Wright  - 2
178*965d9f74SJames Wright
179*965d9f74SJames Wright* - faceMarkerTop
180*965d9f74SJames Wright  - +z
181*965d9f74SJames Wright  - 3
182*965d9f74SJames Wright
183*965d9f74SJames Wright* - faceMarkerLeft
184*965d9f74SJames Wright  - -x
185*965d9f74SJames Wright  - 4
186*965d9f74SJames Wright:::
187*965d9f74SJames Wright
188*965d9f74SJames Wright:::{list-table} 3D Face ID Labels
189*965d9f74SJames Wright:header-rows: 1
190*965d9f74SJames Wright* - PETSc Face Name
191*965d9f74SJames Wright  - Cartesian direction
192*965d9f74SJames Wright  - Face ID
193*965d9f74SJames Wright
194*965d9f74SJames Wright* - faceMarkerBottom
195*965d9f74SJames Wright  - -z
196*965d9f74SJames Wright  - 1
197*965d9f74SJames Wright
198*965d9f74SJames Wright* - faceMarkerTop
199*965d9f74SJames Wright  - +z
200*965d9f74SJames Wright  - 2
201*965d9f74SJames Wright
202*965d9f74SJames Wright* - faceMarkerFront
203*965d9f74SJames Wright  - -y
204*965d9f74SJames Wright  - 3
205*965d9f74SJames Wright
206*965d9f74SJames Wright* - faceMarkerBack
207*965d9f74SJames Wright  - +y
208*965d9f74SJames Wright  - 4
209*965d9f74SJames Wright
210*965d9f74SJames Wright* - faceMarkerRight
211*965d9f74SJames Wright  - +x
212*965d9f74SJames Wright  - 5
213*965d9f74SJames Wright
214*965d9f74SJames Wright* - faceMarkerLeft
215*965d9f74SJames Wright  - -x
216*965d9f74SJames Wright  - 6
217*965d9f74SJames Wright:::
218*965d9f74SJames Wright
219*965d9f74SJames Wright## Boundary conditions
220*965d9f74SJames Wright
221*965d9f74SJames WrightBoundary conditions for compressible viscous flows are notoriously tricky.
222*965d9f74SJames WrightHere we offer some recommendations.
223*965d9f74SJames Wright
224*965d9f74SJames Wright### Inflow
225*965d9f74SJames Wright
226*965d9f74SJames WrightIf in a region where the flow velocity is known (e.g., away from viscous walls), use `bc_freestream`, which solves a Riemann problem and can handle inflow and outflow (simultaneously and dynamically).
227*965d9f74SJames WrightIt is stable and the least reflective boundary condition for acoustics.
228*965d9f74SJames Wright
229*965d9f74SJames WrightIf near a viscous wall, you may want a specified inflow profile.
230*965d9f74SJames WrightUse `bc_inflow` and see {ref}`example-blasius` and discussion of synthetic turbulence generation for ways to analytically generate developed inflow profiles.
231*965d9f74SJames WrightThese conditions may be either weak or strong, with the latter specifying velocity and temperature as essential boundary conditions and evaluating a boundary integral for the mass flux.
232*965d9f74SJames WrightThe strong approach gives sharper resolution of velocity structures.
233*965d9f74SJames WrightWe have described the primitive variable formulation here; the conservative variants are similar, but not equivalent.
234*965d9f74SJames Wright
235*965d9f74SJames Wright### Outflow
236*965d9f74SJames Wright
237*965d9f74SJames WrightIf you know the complete exterior state, `bc_freestream` is the least reflective boundary condition, but is disruptive to viscous flow structures.
238*965d9f74SJames WrightIf thermal anomalies must exit the domain, the Riemann solver must resolve the contact wave to avoid reflections.
239*965d9f74SJames WrightThe default Riemann solver, HLLC, is sufficient in this regard while the simpler HLL converts thermal structures exiting the domain into grid-scale reflecting acoustics.
240*965d9f74SJames Wright
241*965d9f74SJames WrightIf acoustic reflections are not a concern and/or the flow is impacted by walls or interior structures that you wish to resolve to near the boundary, choose `bc_outflow`. This condition (with default `outflow_type: riemann`) is stable for both inflow and outflow, so can be used in areas that have recirculation and lateral boundaries in which the flow fluctuates.
242*965d9f74SJames Wright
243*965d9f74SJames WrightThe simpler `bc_outflow` variant, `outflow_type: pressure`, requires that the flow be a strict outflow (or the problem becomes ill-posed and the solver will diverge).
244*965d9f74SJames WrightIn our experience, `riemann` is slightly less reflective but produces similar flows in cases of strict outflow.
245*965d9f74SJames WrightThe `pressure` variant is retained to facilitate comparison with other codes, such as PHASTA-C, but we recommend `riemann` for general use.
246*965d9f74SJames Wright
247*965d9f74SJames Wright### Periodicity
248*965d9f74SJames Wright
249*965d9f74SJames WrightPETSc provides two ways to specify periodicity:
250*965d9f74SJames Wright
251*965d9f74SJames Wright1. Topological periodicity, in which the donor and receiver dofs are the same, obtained using:
252*965d9f74SJames Wright
253*965d9f74SJames Wright```yaml
254*965d9f74SJames Wrightdm_plex:
255*965d9f74SJames Wright  shape: box
256*965d9f74SJames Wright  box_faces: 10,12,4
257*965d9f74SJames Wright  box_bd: none,none,periodic
258*965d9f74SJames Wright```
259*965d9f74SJames Wright
260*965d9f74SJames WrightThe coordinates for such cases are stored as a new field with special cell-based indexing to enable wrapping through the boundary.
261*965d9f74SJames WrightThis choice of coordinates prevents evaluating boundary integrals that cross the periodicity, such as for the outflow Riemann problem in the presence of spanwise periodicity.
262*965d9f74SJames Wright
263*965d9f74SJames Wright2. Isoperiodicity, in which the donor and receiver dofs are distinct in local vectors. This is obtained using `zbox`, as in:
264*965d9f74SJames Wright
265*965d9f74SJames Wright```yaml
266*965d9f74SJames Wrightdm_plex:
267*965d9f74SJames Wright  shape: zbox
268*965d9f74SJames Wright  box_faces: 10,12,4
269*965d9f74SJames Wright  box_bd: none,none,periodic
270*965d9f74SJames Wright```
271*965d9f74SJames Wright
272*965d9f74SJames WrightIsoperiodicity enables standard boundary integrals, and is recommended for general use.
273*965d9f74SJames WrightAt the time of this writing, it only supports one direction of periodicity.
274*965d9f74SJames WrightThe `zbox` method uses [Z-ordering](https://en.wikipedia.org/wiki/Z-order_curve) to construct the mesh in parallel and provide an adequate initial partition, which makes it higher performance and avoids needing a partitioning package.
275*965d9f74SJames Wright
276*965d9f74SJames Wright## Advection
277*965d9f74SJames Wright
278*965d9f74SJames WrightFor testing purposes, there is a reduced mode for pure advection, which holds density $\rho$ and momentum density $\rho \bm u$ constant while advecting "total energy density" $E$.
279*965d9f74SJames WrightThe advection problems can be run in both 2D and 3D, based on the DM defined for the problem.
280*965d9f74SJames WrightThe following additional command-line options are available:
281*965d9f74SJames Wright
282*965d9f74SJames Wright:::{list-table} Advection Runtime Options
283*965d9f74SJames Wright:header-rows: 1
284*965d9f74SJames Wright
285*965d9f74SJames Wright* - Option
286*965d9f74SJames Wright  - Description
287*965d9f74SJames Wright  - Default value
288*965d9f74SJames Wright  - Unit
289*965d9f74SJames Wright
290*965d9f74SJames Wright* - `-rc`
291*965d9f74SJames Wright  - Characteristic radius of thermal bubble
292*965d9f74SJames Wright  - `1000`
293*965d9f74SJames Wright  - `m`
294*965d9f74SJames Wright
295*965d9f74SJames Wright* - `-units_meter`
296*965d9f74SJames Wright  - 1 meter in scaled length units
297*965d9f74SJames Wright  - `1E-2`
298*965d9f74SJames Wright  -
299*965d9f74SJames Wright
300*965d9f74SJames Wright* - `-units_second`
301*965d9f74SJames Wright  - 1 second in scaled time units
302*965d9f74SJames Wright  - `1E-2`
303*965d9f74SJames Wright  -
304*965d9f74SJames Wright
305*965d9f74SJames Wright* - `-units_kilogram`
306*965d9f74SJames Wright  - 1 kilogram in scaled mass units
307*965d9f74SJames Wright  - `1E-6`
308*965d9f74SJames Wright  -
309*965d9f74SJames Wright
310*965d9f74SJames Wright* - `-strong_form`
311*965d9f74SJames Wright  - Strong (1) or weak/integrated by parts (0) residual
312*965d9f74SJames Wright  - `0`
313*965d9f74SJames Wright  -
314*965d9f74SJames Wright
315*965d9f74SJames Wright* - `-stab`
316*965d9f74SJames Wright  - Stabilization method (`none`, `su`, or `supg`)
317*965d9f74SJames Wright  - `none`
318*965d9f74SJames Wright  -
319*965d9f74SJames Wright
320*965d9f74SJames Wright* - `-stab_tau`
321*965d9f74SJames Wright  - Formulation for $\tau$ in stabilization (`ctau`, `advdiff_shakib`)
322*965d9f74SJames Wright  - `ctau`
323*965d9f74SJames Wright  -
324*965d9f74SJames Wright
325*965d9f74SJames Wright* - `-Ctau_t`
326*965d9f74SJames Wright  - Scaling factor on the temporal portion of the $\tau$ formulation
327*965d9f74SJames Wright  - 0.
328*965d9f74SJames Wright  -
329*965d9f74SJames Wright
330*965d9f74SJames Wright* - `-Ctau_a`
331*965d9f74SJames Wright  - Scaling factor on the advection portion of the $\tau$ formulation
332*965d9f74SJames Wright  - $P^2$
333*965d9f74SJames Wright  -
334*965d9f74SJames Wright
335*965d9f74SJames Wright* - `-CtauS`
336*965d9f74SJames Wright  - Scale coefficient for stabilization tau (nondimensional)
337*965d9f74SJames Wright  - `0`
338*965d9f74SJames Wright  -
339*965d9f74SJames Wright
340*965d9f74SJames Wright* - `-wind_type`
341*965d9f74SJames Wright  - Wind type in Advection (`rotation` or `translation`)
342*965d9f74SJames Wright  - `rotation`
343*965d9f74SJames Wright  -
344*965d9f74SJames Wright
345*965d9f74SJames Wright* - `-wind_translation`
346*965d9f74SJames Wright  - Constant wind vector when `-wind_type translation`
347*965d9f74SJames Wright  - `1,0,0`
348*965d9f74SJames Wright  -
349*965d9f74SJames Wright
350*965d9f74SJames Wright* - `-diffusion_coeff`
351*965d9f74SJames Wright  - Diffusion coefficient
352*965d9f74SJames Wright  - `0`
353*965d9f74SJames Wright  -
354*965d9f74SJames Wright
355*965d9f74SJames Wright* - `-E_wind`
356*965d9f74SJames Wright  - Total energy of inflow wind when `-wind_type translation`
357*965d9f74SJames Wright  - `1E6`
358*965d9f74SJames Wright  - `J`
359*965d9f74SJames Wright
360*965d9f74SJames Wright* - `-advection_ic_type`
361*965d9f74SJames Wright  - Initial condition type, from `sphere`, `cylinder`, `cosine_hill`, and `skew`
362*965d9f74SJames Wright  - `sphere`
363*965d9f74SJames Wright  -
364*965d9f74SJames Wright
365*965d9f74SJames Wright* - `-bubble_continuity`
366*965d9f74SJames Wright  - Different shapes for `sphere` and `cylinder` initial conditions, from `smooth`, `back_sharp`, `thick`, or `cosine`
367*965d9f74SJames Wright  - `smooth`
368*965d9f74SJames Wright  -
369*965d9f74SJames Wright:::
370*965d9f74SJames Wright
371*965d9f74SJames WrightFor 3D advection, an example of the `rotation` mode can be run with:
372*965d9f74SJames Wright
373*965d9f74SJames Wright```
374*965d9f74SJames Wright./navierstokes -problem advection -dm_plex_box_faces 10,10,10 -dm_plex_dim 3 -dm_plex_box_lower 0,0,0 -dm_plex_box_upper 8000,8000,8000 -bc_wall 1,2,3,4,5,6 -wall_comps 4 -wind_type rotation -implicit -stab su
375*965d9f74SJames Wright```
376*965d9f74SJames Wright
377*965d9f74SJames Wrightand the `translation` mode with:
378*965d9f74SJames Wright
379*965d9f74SJames Wright```
380*965d9f74SJames Wright./navierstokes -problem advection -dm_plex_box_faces 10,10,10 -dm_plex_dim 3 -dm_plex_box_lower 0,0,0 -dm_plex_box_upper 8000,8000,8000 -wind_type translation -wind_translation .5,-1,0 -bc_inflow 1,2,3,4,5,6
381*965d9f74SJames Wright```
382*965d9f74SJames Wright
383*965d9f74SJames WrightFor 2D advection, an example of the `rotation` mode can be run with:
384*965d9f74SJames Wright
385*965d9f74SJames Wright```
386*965d9f74SJames Wright./navierstokes -problem advection -dm_plex_box_faces 20,20 -dm_plex_box_lower 0,0 -dm_plex_box_upper 1000,1000 -bc_wall 1,2,3,4 -wall_comps 4 -wind_type rotation -implicit -stab supg
387*965d9f74SJames Wright```
388*965d9f74SJames Wright
389*965d9f74SJames Wrightand the `translation` mode with:
390*965d9f74SJames Wright
391*965d9f74SJames Wright```
392*965d9f74SJames Wright./navierstokes -problem advection -dm_plex_box_faces 20,20 -dm_plex_box_lower 0,0 -dm_plex_box_upper 1000,1000 -units_meter 1e-4 -wind_type translation -wind_translation 1,-.5 -bc_inflow 1,2,3,4
393*965d9f74SJames Wright```
394*965d9f74SJames WrightNote the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`.
395*965d9f74SJames Wright
396*965d9f74SJames Wright## Inviscid Ideal Gas
397*965d9f74SJames Wright
398*965d9f74SJames Wright### Isentropic Euler vortex
399*965d9f74SJames Wright
400*965d9f74SJames WrightFor the Isentropic Vortex problem, the following additional command-line options are available:
401*965d9f74SJames Wright
402*965d9f74SJames Wright:::{list-table} Isentropic Vortex Runtime Options
403*965d9f74SJames Wright:header-rows: 1
404*965d9f74SJames Wright
405*965d9f74SJames Wright* - Option
406*965d9f74SJames Wright  - Description
407*965d9f74SJames Wright  - Default value
408*965d9f74SJames Wright  - Unit
409*965d9f74SJames Wright
410*965d9f74SJames Wright* - `-center`
411*965d9f74SJames Wright  - Location of vortex center
412*965d9f74SJames Wright  - `(lx,ly,lz)/2`
413*965d9f74SJames Wright  - `(m,m,m)`
414*965d9f74SJames Wright
415*965d9f74SJames Wright* - `-units_meter`
416*965d9f74SJames Wright  - 1 meter in scaled length units
417*965d9f74SJames Wright  - `1E-2`
418*965d9f74SJames Wright  -
419*965d9f74SJames Wright
420*965d9f74SJames Wright* - `-units_second`
421*965d9f74SJames Wright  - 1 second in scaled time units
422*965d9f74SJames Wright  - `1E-2`
423*965d9f74SJames Wright  -
424*965d9f74SJames Wright
425*965d9f74SJames Wright* - `-mean_velocity`
426*965d9f74SJames Wright  - Background velocity vector
427*965d9f74SJames Wright  - `(1,1,0)`
428*965d9f74SJames Wright  -
429*965d9f74SJames Wright
430*965d9f74SJames Wright* - `-vortex_strength`
431*965d9f74SJames Wright  - Strength of vortex < 10
432*965d9f74SJames Wright  - `5`
433*965d9f74SJames Wright  -
434*965d9f74SJames Wright
435*965d9f74SJames Wright* - `-c_tau`
436*965d9f74SJames Wright  - Stabilization constant
437*965d9f74SJames Wright  - `0.5`
438*965d9f74SJames Wright  -
439*965d9f74SJames Wright:::
440*965d9f74SJames Wright
441*965d9f74SJames WrightThis problem can be run with:
442*965d9f74SJames Wright
443*965d9f74SJames Wright```
444*965d9f74SJames Wright./navierstokes -problem euler_vortex -dm_plex_box_faces 20,20,1 -dm_plex_box_lower 0,0,0 -dm_plex_box_upper 1000,1000,50 -dm_plex_dim 3 -bc_inflow 4,6 -bc_outflow 3,5 -bc_symmetry_z 1,2 -mean_velocity .5,-.8,0.
445*965d9f74SJames Wright```
446*965d9f74SJames Wright
447*965d9f74SJames Wright### Sod shock tube
448*965d9f74SJames Wright
449*965d9f74SJames WrightFor the Shock Tube problem, the following additional command-line options are available:
450*965d9f74SJames Wright
451*965d9f74SJames Wright:::{list-table} Shock Tube Runtime Options
452*965d9f74SJames Wright:header-rows: 1
453*965d9f74SJames Wright
454*965d9f74SJames Wright* - Option
455*965d9f74SJames Wright  - Description
456*965d9f74SJames Wright  - Default value
457*965d9f74SJames Wright  - Unit
458*965d9f74SJames Wright
459*965d9f74SJames Wright* - `-units_meter`
460*965d9f74SJames Wright  - 1 meter in scaled length units
461*965d9f74SJames Wright  - `1E-2`
462*965d9f74SJames Wright  -
463*965d9f74SJames Wright
464*965d9f74SJames Wright* - `-units_second`
465*965d9f74SJames Wright  - 1 second in scaled time units
466*965d9f74SJames Wright  - `1E-2`
467*965d9f74SJames Wright  -
468*965d9f74SJames Wright
469*965d9f74SJames Wright* - `-yzb`
470*965d9f74SJames Wright  - Use YZB discontinuity capturing
471*965d9f74SJames Wright  - `none`
472*965d9f74SJames Wright  -
473*965d9f74SJames Wright
474*965d9f74SJames Wright* - `-stab`
475*965d9f74SJames Wright  - Stabilization method (`none`, `su`, or `supg`)
476*965d9f74SJames Wright  - `none`
477*965d9f74SJames Wright  -
478*965d9f74SJames Wright:::
479*965d9f74SJames Wright
480*965d9f74SJames WrightThis problem can be run with:
481*965d9f74SJames Wright
482*965d9f74SJames Wright```
483*965d9f74SJames Wright./navierstokes -problem shocktube -yzb -stab su -bc_symmetry_z 3,4 -bc_symmetry_y 1,2 -bc_wall 5,6 -dm_plex_dim 3 -dm_plex_box_lower 0,0,0 -dm_plex_box_upper 1000,100,100 -dm_plex_box_faces 200,1,1 -units_second 0.1
484*965d9f74SJames Wright```
485*965d9f74SJames Wright
486*965d9f74SJames Wright## Newtonian viscosity, Ideal Gas
487*965d9f74SJames Wright
488*965d9f74SJames WrightFor the Density Current, Channel, and Blasius problems, the following common command-line options are available:
489*965d9f74SJames Wright
490*965d9f74SJames Wright:::{list-table} Newtonian Ideal Gas problems Runtime Options
491*965d9f74SJames Wright:header-rows: 1
492*965d9f74SJames Wright
493*965d9f74SJames Wright* - Option
494*965d9f74SJames Wright  - Description
495*965d9f74SJames Wright  - Default value
496*965d9f74SJames Wright  - Unit
497*965d9f74SJames Wright
498*965d9f74SJames Wright* - `-units_meter`
499*965d9f74SJames Wright  - 1 meter in scaled length units
500*965d9f74SJames Wright  - `1`
501*965d9f74SJames Wright  -
502*965d9f74SJames Wright
503*965d9f74SJames Wright* - `-units_second`
504*965d9f74SJames Wright  - 1 second in scaled time units
505*965d9f74SJames Wright  - `1`
506*965d9f74SJames Wright  -
507*965d9f74SJames Wright
508*965d9f74SJames Wright* - `-units_kilogram`
509*965d9f74SJames Wright  - 1 kilogram in scaled mass units
510*965d9f74SJames Wright  - `1`
511*965d9f74SJames Wright  -
512*965d9f74SJames Wright
513*965d9f74SJames Wright* - `-units_Kelvin`
514*965d9f74SJames Wright  - 1 Kelvin in scaled temperature units
515*965d9f74SJames Wright  - `1`
516*965d9f74SJames Wright  -
517*965d9f74SJames Wright
518*965d9f74SJames Wright* - `-stab`
519*965d9f74SJames Wright  - Stabilization method (`none`, `su`, or `supg`)
520*965d9f74SJames Wright  - `none`
521*965d9f74SJames Wright  -
522*965d9f74SJames Wright
523*965d9f74SJames Wright* - `-c_tau`
524*965d9f74SJames Wright  - Stabilization constant, $c_\tau$
525*965d9f74SJames Wright  - `0.5`
526*965d9f74SJames Wright  -
527*965d9f74SJames Wright
528*965d9f74SJames Wright* - `-Ctau_t`
529*965d9f74SJames Wright  - Stabilization time constant, $C_t$
530*965d9f74SJames Wright  - `1.0`
531*965d9f74SJames Wright  -
532*965d9f74SJames Wright
533*965d9f74SJames Wright* - `-Ctau_v`
534*965d9f74SJames Wright  - Stabilization viscous constant, $C_v$
535*965d9f74SJames Wright  - `36, 60, 128 for degree = 1, 2, 3`
536*965d9f74SJames Wright  -
537*965d9f74SJames Wright
538*965d9f74SJames Wright* - `-Ctau_C`
539*965d9f74SJames Wright  - Stabilization continuity constant, $C_c$
540*965d9f74SJames Wright  - `1.0`
541*965d9f74SJames Wright  -
542*965d9f74SJames Wright
543*965d9f74SJames Wright* - `-Ctau_M`
544*965d9f74SJames Wright  - Stabilization momentum constant, $C_m$
545*965d9f74SJames Wright  - `1.0`
546*965d9f74SJames Wright  -
547*965d9f74SJames Wright
548*965d9f74SJames Wright* - `-Ctau_E`
549*965d9f74SJames Wright  - Stabilization energy constant, $C_E$
550*965d9f74SJames Wright  - `1.0`
551*965d9f74SJames Wright  -
552*965d9f74SJames Wright
553*965d9f74SJames Wright* - `-cv`
554*965d9f74SJames Wright  - Heat capacity at constant volume
555*965d9f74SJames Wright  - `717`
556*965d9f74SJames Wright  - `J/(kg K)`
557*965d9f74SJames Wright
558*965d9f74SJames Wright* - `-cp`
559*965d9f74SJames Wright  - Heat capacity at constant pressure
560*965d9f74SJames Wright  - `1004`
561*965d9f74SJames Wright  - `J/(kg K)`
562*965d9f74SJames Wright
563*965d9f74SJames Wright* - `-gravity`
564*965d9f74SJames Wright  - Gravitational acceleration vector
565*965d9f74SJames Wright  - `0,0,0`
566*965d9f74SJames Wright  - `m/s^2`
567*965d9f74SJames Wright
568*965d9f74SJames Wright* - `-lambda`
569*965d9f74SJames Wright  - Stokes hypothesis second viscosity coefficient
570*965d9f74SJames Wright  - `-2/3`
571*965d9f74SJames Wright  -
572*965d9f74SJames Wright
573*965d9f74SJames Wright* - `-mu`
574*965d9f74SJames Wright  - Shear dynamic viscosity coefficient
575*965d9f74SJames Wright  - `1.8e-5`
576*965d9f74SJames Wright  -  `Pa s`
577*965d9f74SJames Wright
578*965d9f74SJames Wright* - `-k`
579*965d9f74SJames Wright  - Thermal conductivity
580*965d9f74SJames Wright  - `0.02638`
581*965d9f74SJames Wright  - `W/(m K)`
582*965d9f74SJames Wright
583*965d9f74SJames Wright* - `-newtonian_unit_tests`
584*965d9f74SJames Wright  - Developer option to test properties
585*965d9f74SJames Wright  - `false`
586*965d9f74SJames Wright  - boolean
587*965d9f74SJames Wright
588*965d9f74SJames Wright* - `-state_var`
589*965d9f74SJames Wright  - State variables to solve solution with. `conservative` ($\rho, \rho \bm{u}, \rho e$), `primitive` ($P, \bm{u}, T$), or `entropy` ($\frac{\gamma - s}{\gamma - 1} - \frac{\rho}{P} (e - c_v T),\ \frac{\rho}{P} \bm{u},\ -\frac{\rho}{P}$) where  $s = \ln(P\rho^{-\gamma})$
590*965d9f74SJames Wright  - `conservative`
591*965d9f74SJames Wright  - string
592*965d9f74SJames Wright
593*965d9f74SJames Wright* - `-idl_decay_time`
594*965d9f74SJames Wright  - Characteristic timescale of the pressure deviance decay. The timestep is good starting point
595*965d9f74SJames Wright  - `-1` (disabled)
596*965d9f74SJames Wright  - `s`
597*965d9f74SJames Wright
598*965d9f74SJames Wright* - `-idl_start`
599*965d9f74SJames Wright  - Start of IDL in the x direction
600*965d9f74SJames Wright  - `0`
601*965d9f74SJames Wright  - `m`
602*965d9f74SJames Wright
603*965d9f74SJames Wright* - `-idl_length`
604*965d9f74SJames Wright  - Length of IDL in the positive x direction
605*965d9f74SJames Wright  - `0`
606*965d9f74SJames Wright  - `m`
607*965d9f74SJames Wright
608*965d9f74SJames Wright* - `-idl_pressure`
609*965d9f74SJames Wright  - Pressure used for IDL reference pressure
610*965d9f74SJames Wright  -  `-reference_pressure`
611*965d9f74SJames Wright  - `Pa`
612*965d9f74SJames Wright
613*965d9f74SJames Wright* - `-sgs_model_type`
614*965d9f74SJames Wright  - Type of subgrid stress model to use. Currently only `data_driven` is available
615*965d9f74SJames Wright  - `none`
616*965d9f74SJames Wright  - string
617*965d9f74SJames Wright
618*965d9f74SJames Wright* - `-sgs_model_dd_leakyrelu_alpha`
619*965d9f74SJames Wright  - Slope parameter for Leaky ReLU activation function. `0` corresponds to normal ReLU
620*965d9f74SJames Wright  - 0
621*965d9f74SJames Wright  -
622*965d9f74SJames Wright
623*965d9f74SJames Wright* - `-sgs_model_dd_parameter_dir`
624*965d9f74SJames Wright  - Path to directory with data-driven model parameters (weights, biases, etc.)
625*965d9f74SJames Wright  - `./dd_sgs_parameters`
626*965d9f74SJames Wright  - string
627*965d9f74SJames Wright
628*965d9f74SJames Wright* - `-sgs_model_dd_model_implementation`
629*965d9f74SJames Wright  - Which computational implementation to use for SGS DD model (`fused`, `sequential_ceed`, `sequential_torch`)
630*965d9f74SJames Wright  - `fused`
631*965d9f74SJames Wright  - string
632*965d9f74SJames Wright
633*965d9f74SJames Wright* - `-sgs_model_dd_torch_model_path`
634*965d9f74SJames Wright  - Path to the PyTorch `*.pt` file containing the DD inference model
635*965d9f74SJames Wright  -
636*965d9f74SJames Wright  - string
637*965d9f74SJames Wright
638*965d9f74SJames Wright* - `-sgs_model_dd_torch_model_device`
639*965d9f74SJames Wright  - What hardware to perform the model inference on (`cpu`, `cuda`, `hip`, `xpu`)
640*965d9f74SJames Wright  - Default matches the libCEED backend
641*965d9f74SJames Wright  - string
642*965d9f74SJames Wright
643*965d9f74SJames Wright* - `-diff_filter_monitor`
644*965d9f74SJames Wright  - Enable differential filter TSMonitor
645*965d9f74SJames Wright  - `false`
646*965d9f74SJames Wright  - boolean
647*965d9f74SJames Wright
648*965d9f74SJames Wright* - `-diff_filter_grid_based_width`
649*965d9f74SJames Wright  - Use filter width based on the grid size
650*965d9f74SJames Wright  - `false`
651*965d9f74SJames Wright  - boolean
652*965d9f74SJames Wright
653*965d9f74SJames Wright* - `-diff_filter_width_scaling`
654*965d9f74SJames Wright  - Anisotropic scaling for filter width in wall-aligned coordinates (snz)
655*965d9f74SJames Wright  - `1,1,1`
656*965d9f74SJames Wright  - `m`
657*965d9f74SJames Wright
658*965d9f74SJames Wright* - `-diff_filter_kernel_scaling`
659*965d9f74SJames Wright  - Scaling to make differential kernel size equivalent to other filter kernels
660*965d9f74SJames Wright  - `0.1`
661*965d9f74SJames Wright  - `m^2`
662*965d9f74SJames Wright
663*965d9f74SJames Wright* - `-diff_filter_wall_damping_function`
664*965d9f74SJames Wright  - Damping function to use at the wall for anisotropic filtering (`none`, `van_driest`)
665*965d9f74SJames Wright  - `none`
666*965d9f74SJames Wright  - string
667*965d9f74SJames Wright
668*965d9f74SJames Wright* - `-diff_filter_wall_damping_constant`
669*965d9f74SJames Wright  - Constant for the wall-damping function. $A^+$ for `van_driest` damping function.
670*965d9f74SJames Wright  - 25
671*965d9f74SJames Wright  -
672*965d9f74SJames Wright
673*965d9f74SJames Wright* - `-diff_filter_friction_length`
674*965d9f74SJames Wright  - Friction length associated with the flow, $\delta_\nu$. Used in wall-damping functions
675*965d9f74SJames Wright  - 0
676*965d9f74SJames Wright  - `m`
677*965d9f74SJames Wright
678*965d9f74SJames Wright* - `-sgs_train_enable`
679*965d9f74SJames Wright  - Whether to enable *in situ* training of data-driven SGS model. Require building with SmartRedis.
680*965d9f74SJames Wright  - `false`
681*965d9f74SJames Wright  - boolean
682*965d9f74SJames Wright
683*965d9f74SJames Wright* - `-sgs_train_write_data_interval`
684*965d9f74SJames Wright  - Number of timesteps between writing training data into SmartRedis database
685*965d9f74SJames Wright  - `1`
686*965d9f74SJames Wright  -
687*965d9f74SJames Wright
688*965d9f74SJames Wright* - `-sgs_train_overwrite_data`
689*965d9f74SJames Wright  - Whether new training data should overwrite old data on database
690*965d9f74SJames Wright  - `true`
691*965d9f74SJames Wright  - boolean
692*965d9f74SJames Wright
693*965d9f74SJames Wright* - `-sgs_train_filter_widths`
694*965d9f74SJames Wright  - List of scalar values for different filter widths to calculate for training data
695*965d9f74SJames Wright  -
696*965d9f74SJames Wright  - `m`
697*965d9f74SJames Wright
698*965d9f74SJames Wright* - `-smartsim_collocated_num_ranks`
699*965d9f74SJames Wright  - Number of MPI ranks associated with each collocated database (i.e. ranks per node)
700*965d9f74SJames Wright  - `1`
701*965d9f74SJames Wright  -
702*965d9f74SJames Wright:::
703*965d9f74SJames Wright
704*965d9f74SJames Wright### Gaussian Wave
705*965d9f74SJames Wright
706*965d9f74SJames WrightThe Gaussian wave problem has the following command-line options in addition to the Newtonian Ideal Gas options:
707*965d9f74SJames Wright
708*965d9f74SJames Wright:::{list-table} Gaussian Wave Runtime Options
709*965d9f74SJames Wright:header-rows: 1
710*965d9f74SJames Wright
711*965d9f74SJames Wright* - Option
712*965d9f74SJames Wright  - Description
713*965d9f74SJames Wright  - Default value
714*965d9f74SJames Wright  - Unit
715*965d9f74SJames Wright
716*965d9f74SJames Wright* - `-freestream_riemann`
717*965d9f74SJames Wright  - Riemann solver for boundaries (HLL or HLLC)
718*965d9f74SJames Wright  - `hllc`
719*965d9f74SJames Wright  -
720*965d9f74SJames Wright
721*965d9f74SJames Wright* - `-freestream_velocity`
722*965d9f74SJames Wright  - Freestream velocity vector
723*965d9f74SJames Wright  - `0,0,0`
724*965d9f74SJames Wright  - `m/s`
725*965d9f74SJames Wright
726*965d9f74SJames Wright* - `-freestream_temperature`
727*965d9f74SJames Wright  - Freestream temperature
728*965d9f74SJames Wright  - `288`
729*965d9f74SJames Wright  - `K`
730*965d9f74SJames Wright
731*965d9f74SJames Wright* - `-freestream_pressure`
732*965d9f74SJames Wright  - Freestream pressure
733*965d9f74SJames Wright  - `1.01e5`
734*965d9f74SJames Wright  - `Pa`
735*965d9f74SJames Wright
736*965d9f74SJames Wright* - `-epicenter`
737*965d9f74SJames Wright  - Coordinates of center of perturbation
738*965d9f74SJames Wright  - `0,0,0`
739*965d9f74SJames Wright  - `m`
740*965d9f74SJames Wright
741*965d9f74SJames Wright* - `-amplitude`
742*965d9f74SJames Wright  - Amplitude of the perturbation
743*965d9f74SJames Wright  - `0.1`
744*965d9f74SJames Wright  -
745*965d9f74SJames Wright
746*965d9f74SJames Wright* - `-width`
747*965d9f74SJames Wright  - Width parameter of the perturbation
748*965d9f74SJames Wright  - `0.002`
749*965d9f74SJames Wright  - `m`
750*965d9f74SJames Wright
751*965d9f74SJames Wright:::
752*965d9f74SJames Wright
753*965d9f74SJames WrightThis problem can be run with the `gaussianwave.yaml` file via:
754*965d9f74SJames Wright
755*965d9f74SJames Wright```
756*965d9f74SJames Wright./navierstokes -options_file gaussianwave.yaml
757*965d9f74SJames Wright```
758*965d9f74SJames Wright
759*965d9f74SJames Wright```{literalinclude} ../gaussianwave.yaml
760*965d9f74SJames Wright:language: yaml
761*965d9f74SJames Wright```
762*965d9f74SJames Wright
763*965d9f74SJames Wright### Vortex Shedding - Flow past Cylinder
764*965d9f74SJames Wright
765*965d9f74SJames WrightThe vortex shedding, flow past cylinder problem has the following command-line options in addition to the Newtonian Ideal Gas options:
766*965d9f74SJames Wright
767*965d9f74SJames Wright:::{list-table} Vortex Shedding Runtime Options
768*965d9f74SJames Wright:header-rows: 1
769*965d9f74SJames Wright
770*965d9f74SJames Wright* - Option
771*965d9f74SJames Wright  - Description
772*965d9f74SJames Wright  - Default value
773*965d9f74SJames Wright  - Unit
774*965d9f74SJames Wright
775*965d9f74SJames Wright* - `-freestream_velocity`
776*965d9f74SJames Wright  - Freestream velocity vector
777*965d9f74SJames Wright  - `0,0,0`
778*965d9f74SJames Wright  - `m/s`
779*965d9f74SJames Wright
780*965d9f74SJames Wright* - `-freestream_temperature`
781*965d9f74SJames Wright  - Freestream temperature
782*965d9f74SJames Wright  - `288`
783*965d9f74SJames Wright  - `K`
784*965d9f74SJames Wright
785*965d9f74SJames Wright* - `-freestream_pressure`
786*965d9f74SJames Wright  - Freestream pressure
787*965d9f74SJames Wright  - `1.01e5`
788*965d9f74SJames Wright  - `Pa`
789*965d9f74SJames Wright
790*965d9f74SJames Wright:::
791*965d9f74SJames Wright
792*965d9f74SJames WrightThe initial condition is taken from `-reference_temperature` and `-reference_pressure`.
793*965d9f74SJames WrightTo run this problem, first generate a mesh:
794*965d9f74SJames Wright
795*965d9f74SJames Wright```console
796*965d9f74SJames Wright$ make -C /meshes
797*965d9f74SJames Wright```
798*965d9f74SJames Wright
799*965d9f74SJames WrightThen run by building the executable and running:
800*965d9f74SJames Wright
801*965d9f74SJames Wright```console
802*965d9f74SJames Wright$ make build/fluids-navierstokes
803*965d9f74SJames Wright$ mpiexec -n 6 build/fluids-navierstokes -options_file vortexshedding.yaml -{ts,snes}_monitor_
804*965d9f74SJames Wright```
805*965d9f74SJames Wright
806*965d9f74SJames WrightThe vortex shedding period is roughly 5.6 and this problem runs until time 100 (2000 time steps).
807*965d9f74SJames WrightThe above run writes a file named `force.csv` (see `ts_monitor_wall_force` in `vortexshedding.yaml`), which can be postprocessed by running to create a figure showing lift and drag coefficients over time.
808*965d9f74SJames Wright
809*965d9f74SJames Wright```console
810*965d9f74SJames Wright$ python postprocess/vortexshedding.py
811*965d9f74SJames Wright```
812*965d9f74SJames Wright
813*965d9f74SJames Wright```{literalinclude} ../vortexshedding.yaml
814*965d9f74SJames Wright:language: yaml
815*965d9f74SJames Wright```
816*965d9f74SJames Wright
817*965d9f74SJames Wright### Density current
818*965d9f74SJames Wright
819*965d9f74SJames WrightThe Density Current problem has the following command-line options in addition to the Newtonian Ideal Gas options:
820*965d9f74SJames Wright
821*965d9f74SJames Wright:::{list-table} Density Current Runtime Options
822*965d9f74SJames Wright:header-rows: 1
823*965d9f74SJames Wright
824*965d9f74SJames Wright* - Option
825*965d9f74SJames Wright  - Description
826*965d9f74SJames Wright  - Default value
827*965d9f74SJames Wright  - Unit
828*965d9f74SJames Wright
829*965d9f74SJames Wright* - `-center`
830*965d9f74SJames Wright  - Location of bubble center
831*965d9f74SJames Wright  - `(lx,ly,lz)/2`
832*965d9f74SJames Wright  - `(m,m,m)`
833*965d9f74SJames Wright
834*965d9f74SJames Wright* - `-dc_axis`
835*965d9f74SJames Wright  - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric
836*965d9f74SJames Wright  - `(0,0,0)`
837*965d9f74SJames Wright  -
838*965d9f74SJames Wright
839*965d9f74SJames Wright* - `-rc`
840*965d9f74SJames Wright  - Characteristic radius of thermal bubble
841*965d9f74SJames Wright  - `1000`
842*965d9f74SJames Wright  - `m`
843*965d9f74SJames Wright
844*965d9f74SJames Wright* - `-theta0`
845*965d9f74SJames Wright  - Reference potential temperature
846*965d9f74SJames Wright  - `300`
847*965d9f74SJames Wright  - `K`
848*965d9f74SJames Wright
849*965d9f74SJames Wright* - `-thetaC`
850*965d9f74SJames Wright  - Perturbation of potential temperature
851*965d9f74SJames Wright  - `-15`
852*965d9f74SJames Wright  - `K`
853*965d9f74SJames Wright
854*965d9f74SJames Wright* - `-P0`
855*965d9f74SJames Wright  - Atmospheric pressure
856*965d9f74SJames Wright  - `1E5`
857*965d9f74SJames Wright  - `Pa`
858*965d9f74SJames Wright
859*965d9f74SJames Wright* - `-N`
860*965d9f74SJames Wright  - Brunt-Vaisala frequency
861*965d9f74SJames Wright  - `0.01`
862*965d9f74SJames Wright  - `1/s`
863*965d9f74SJames Wright:::
864*965d9f74SJames Wright
865*965d9f74SJames WrightThis problem can be run with:
866*965d9f74SJames Wright
867*965d9f74SJames Wright```
868*965d9f74SJames Wright./navierstokes -problem density_current -dm_plex_box_faces 16,1,8 -degree 1 -dm_plex_box_lower 0,0,0 -dm_plex_box_upper 2000,125,1000 -dm_plex_dim 3 -rc 400. -bc_wall 1,2,5,6 -wall_comps 1,2,3 -bc_symmetry_y 3,4 -mu 75
869*965d9f74SJames Wright```
870*965d9f74SJames Wright
871*965d9f74SJames Wright### Channel flow
872*965d9f74SJames Wright
873*965d9f74SJames WrightThe Channel problem has the following command-line options in addition to the Newtonian Ideal Gas options:
874*965d9f74SJames Wright
875*965d9f74SJames Wright:::{list-table} Channel Runtime Options
876*965d9f74SJames Wright:header-rows: 1
877*965d9f74SJames Wright
878*965d9f74SJames Wright* - Option
879*965d9f74SJames Wright  - Description
880*965d9f74SJames Wright  - Default value
881*965d9f74SJames Wright  - Unit
882*965d9f74SJames Wright
883*965d9f74SJames Wright* - `-umax`
884*965d9f74SJames Wright  - Maximum/centerline velocity of the flow
885*965d9f74SJames Wright  - `10`
886*965d9f74SJames Wright  - `m/s`
887*965d9f74SJames Wright
888*965d9f74SJames Wright* - `-theta0`
889*965d9f74SJames Wright  - Reference potential temperature
890*965d9f74SJames Wright  - `300`
891*965d9f74SJames Wright  - `K`
892*965d9f74SJames Wright
893*965d9f74SJames Wright* - `-P0`
894*965d9f74SJames Wright  - Atmospheric pressure
895*965d9f74SJames Wright  - `1E5`
896*965d9f74SJames Wright  - `Pa`
897*965d9f74SJames Wright
898*965d9f74SJames Wright* - `-body_force_scale`
899*965d9f74SJames Wright  - Multiplier for body force (`-1` for flow reversal)
900*965d9f74SJames Wright  - 1
901*965d9f74SJames Wright  -
902*965d9f74SJames Wright:::
903*965d9f74SJames Wright
904*965d9f74SJames WrightThis problem can be run with the `channel.yaml` file via:
905*965d9f74SJames Wright
906*965d9f74SJames Wright```
907*965d9f74SJames Wright./navierstokes -options_file channel.yaml
908*965d9f74SJames Wright```
909*965d9f74SJames Wright```{literalinclude} ../channel.yaml
910*965d9f74SJames Wright:language: yaml
911*965d9f74SJames Wright```
912*965d9f74SJames Wright
913*965d9f74SJames Wright(example-blasius)=
914*965d9f74SJames Wright
915*965d9f74SJames Wright### Blasius boundary layer
916*965d9f74SJames Wright
917*965d9f74SJames WrightThe Blasius problem has the following command-line options in addition to the Newtonian Ideal Gas options:
918*965d9f74SJames Wright
919*965d9f74SJames Wright:::{list-table} Blasius Runtime Options
920*965d9f74SJames Wright:header-rows: 1
921*965d9f74SJames Wright
922*965d9f74SJames Wright* - Option
923*965d9f74SJames Wright  - Description
924*965d9f74SJames Wright  - Default value
925*965d9f74SJames Wright  - Unit
926*965d9f74SJames Wright
927*965d9f74SJames Wright* - `-velocity_infinity`
928*965d9f74SJames Wright  - Freestream velocity
929*965d9f74SJames Wright  - `40`
930*965d9f74SJames Wright  - `m/s`
931*965d9f74SJames Wright
932*965d9f74SJames Wright* - `-temperature_infinity`
933*965d9f74SJames Wright  - Freestream temperature
934*965d9f74SJames Wright  - `288`
935*965d9f74SJames Wright  - `K`
936*965d9f74SJames Wright
937*965d9f74SJames Wright* - `-pressure_infinity`
938*965d9f74SJames Wright  - Atmospheric pressure, also sets IDL reference pressure
939*965d9f74SJames Wright  - `1.01E5`
940*965d9f74SJames Wright  - `Pa`
941*965d9f74SJames Wright
942*965d9f74SJames Wright* - `-temperature_wall`
943*965d9f74SJames Wright  - Wall temperature
944*965d9f74SJames Wright  - `288`
945*965d9f74SJames Wright  - `K`
946*965d9f74SJames Wright
947*965d9f74SJames Wright* - `-delta0`
948*965d9f74SJames Wright  - Boundary layer height at the inflow
949*965d9f74SJames Wright  - `4.2e-3`
950*965d9f74SJames Wright  - `m`
951*965d9f74SJames Wright
952*965d9f74SJames Wright* - `-platemesh_modify_mesh`
953*965d9f74SJames Wright  - Whether to modify the mesh using the given options below.
954*965d9f74SJames Wright  - `false`
955*965d9f74SJames Wright  -
956*965d9f74SJames Wright
957*965d9f74SJames Wright* - `-platemesh_refine_height`
958*965d9f74SJames Wright  - Height at which `-platemesh_Ndelta` number of elements should refined into
959*965d9f74SJames Wright  - `5.9E-4`
960*965d9f74SJames Wright  - `m`
961*965d9f74SJames Wright
962*965d9f74SJames Wright* - `-platemesh_Ndelta`
963*965d9f74SJames Wright  - Number of elements to keep below `-platemesh_refine_height`
964*965d9f74SJames Wright  - `45`
965*965d9f74SJames Wright  -
966*965d9f74SJames Wright
967*965d9f74SJames Wright* - `-platemesh_growth`
968*965d9f74SJames Wright  - Growth rate of the elements in the refinement region
969*965d9f74SJames Wright  - `1.08`
970*965d9f74SJames Wright  -
971*965d9f74SJames Wright
972*965d9f74SJames Wright* - `-platemesh_top_angle`
973*965d9f74SJames Wright  - Downward angle of the top face of the domain. This face serves as an outlet.
974*965d9f74SJames Wright  - `5`
975*965d9f74SJames Wright  - `degrees`
976*965d9f74SJames Wright
977*965d9f74SJames Wright* - `-platemesh_y_node_locs_path`
978*965d9f74SJames Wright  - Path to file with y node locations. If empty, will use mesh warping instead.
979*965d9f74SJames Wright  - `""`
980*965d9f74SJames Wright  -
981*965d9f74SJames Wright
982*965d9f74SJames Wright* - `-stg_use`
983*965d9f74SJames Wright  - Whether to use STG for the inflow conditions
984*965d9f74SJames Wright  - `false`
985*965d9f74SJames Wright  -
986*965d9f74SJames Wright
987*965d9f74SJames Wright* - `-n_chebyshev`
988*965d9f74SJames Wright  - Number of Chebyshev terms
989*965d9f74SJames Wright  - `20`
990*965d9f74SJames Wright  -
991*965d9f74SJames Wright
992*965d9f74SJames Wright* - `-chebyshev_`
993*965d9f74SJames Wright  - Prefix for Chebyshev snes solve
994*965d9f74SJames Wright  -
995*965d9f74SJames Wright  -
996*965d9f74SJames Wright
997*965d9f74SJames Wright:::
998*965d9f74SJames Wright
999*965d9f74SJames WrightThis problem can be run with the `blasius.yaml` file via:
1000*965d9f74SJames Wright
1001*965d9f74SJames Wright```
1002*965d9f74SJames Wright./navierstokes -options_file blasius.yaml
1003*965d9f74SJames Wright```
1004*965d9f74SJames Wright
1005*965d9f74SJames Wright```{literalinclude} ../blasius.yaml
1006*965d9f74SJames Wright:language: yaml
1007*965d9f74SJames Wright```
1008*965d9f74SJames Wright
1009*965d9f74SJames Wright### STG Inflow for Flat Plate
1010*965d9f74SJames Wright
1011*965d9f74SJames WrightUsing the STG Inflow for the blasius problem adds the following command-line options:
1012*965d9f74SJames Wright
1013*965d9f74SJames Wright:::{list-table} Blasius Runtime Options
1014*965d9f74SJames Wright:header-rows: 1
1015*965d9f74SJames Wright
1016*965d9f74SJames Wright* - Option
1017*965d9f74SJames Wright  - Description
1018*965d9f74SJames Wright  - Default value
1019*965d9f74SJames Wright  - Unit
1020*965d9f74SJames Wright
1021*965d9f74SJames Wright* - `-stg_inflow_path`
1022*965d9f74SJames Wright  - Path to the STGInflow file
1023*965d9f74SJames Wright  - `./STGInflow.dat`
1024*965d9f74SJames Wright  -
1025*965d9f74SJames Wright
1026*965d9f74SJames Wright* - `-stg_rand_path`
1027*965d9f74SJames Wright  - Path to the STGRand file
1028*965d9f74SJames Wright  - `./STGRand.dat`
1029*965d9f74SJames Wright  -
1030*965d9f74SJames Wright
1031*965d9f74SJames Wright* - `-stg_alpha`
1032*965d9f74SJames Wright  - Growth rate of the wavemodes
1033*965d9f74SJames Wright  - `1.01`
1034*965d9f74SJames Wright  -
1035*965d9f74SJames Wright
1036*965d9f74SJames Wright* - `-stg_u0`
1037*965d9f74SJames Wright  - Convective velocity, $U_0$
1038*965d9f74SJames Wright  - `0.0`
1039*965d9f74SJames Wright  - `m/s`
1040*965d9f74SJames Wright
1041*965d9f74SJames Wright* - `-stg_mean_only`
1042*965d9f74SJames Wright  - Only impose the mean velocity (no fluctutations)
1043*965d9f74SJames Wright  - `false`
1044*965d9f74SJames Wright  -
1045*965d9f74SJames Wright
1046*965d9f74SJames Wright* - `-stg_strong`
1047*965d9f74SJames Wright  - Strongly enforce the STG inflow boundary condition
1048*965d9f74SJames Wright  - `false`
1049*965d9f74SJames Wright  -
1050*965d9f74SJames Wright
1051*965d9f74SJames Wright* - `-stg_fluctuating_IC`
1052*965d9f74SJames Wright  - "Extrude" the fluctuations through the domain as an initial condition
1053*965d9f74SJames Wright  - `false`
1054*965d9f74SJames Wright  -
1055*965d9f74SJames Wright
1056*965d9f74SJames Wright* - `-stg_dx`
1057*965d9f74SJames Wright  - Set the element size in the x direction. Default is calculated for box meshes, assuming equispaced elements.
1058*965d9f74SJames Wright  -
1059*965d9f74SJames Wright  - `m`
1060*965d9f74SJames Wright
1061*965d9f74SJames Wright* - `-stg_h_scale_factor`
1062*965d9f74SJames Wright  - Scale element size for cutoff frequency calculation
1063*965d9f74SJames Wright  - $1/p$
1064*965d9f74SJames Wright  -
1065*965d9f74SJames Wright
1066*965d9f74SJames Wright:::
1067*965d9f74SJames Wright
1068*965d9f74SJames WrightThis problem can be run with the `blasius.yaml` file via:
1069*965d9f74SJames Wright
1070*965d9f74SJames Wright```
1071*965d9f74SJames Wright./navierstokes -options_file blasius.yaml -stg_use true
1072*965d9f74SJames Wright```
1073*965d9f74SJames Wright
1074*965d9f74SJames WrightNote the added `-stg_use true` flag
1075*965d9f74SJames WrightThis overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow.
1076