xref: /libCEED/examples/fluids/README.md (revision ee3de5638cd978c26745df7ee7b00cda30766d2c)
1ccaff030SJeremy L Thompson## libCEED: Navier-Stokes Example
2ccaff030SJeremy L Thompson
3ccaff030SJeremy L ThompsonThis page provides a description of the Navier-Stokes example for the libCEED library, based on PETSc.
4b8962995SJeremy L ThompsonPETSc v3.17 or a development version of PETSc at commit 0e95d842 or later is required.
5ccaff030SJeremy L Thompson
677841947SLeila GhaffariThe Navier-Stokes problem solves the compressible Navier-Stokes equations in three dimensions using an explicit time integration.
777841947SLeila GhaffariThe state variables are mass density, momentum density, and energy density.
8ccaff030SJeremy L Thompson
977841947SLeila GhaffariThe main Navier-Stokes solver for libCEED is defined in [`navierstokes.c`](navierstokes.c) with different problem definitions according to the application of interest.
10ccaff030SJeremy L Thompson
11bc7bbd5dSLeila GhaffariBuild by using:
12ccaff030SJeremy L Thompson
13ccaff030SJeremy L Thompson`make`
14ccaff030SJeremy L Thompson
15bc7bbd5dSLeila Ghaffariand run with:
16ccaff030SJeremy L Thompson
17bc7bbd5dSLeila Ghaffari```
18bc7bbd5dSLeila Ghaffari./navierstokes -ceed [ceed] -problem [problem type] -degree [degree]
19bc7bbd5dSLeila Ghaffari```
20ccaff030SJeremy L Thompson
21bc7bbd5dSLeila Ghaffari## Runtime options
22ccaff030SJeremy L Thompson
23bc7bbd5dSLeila Ghaffari% inclusion-fluids-marker
24ccaff030SJeremy L Thompson
25bc7bbd5dSLeila GhaffariThe Navier-Stokes mini-app is controlled via command-line options.
26bc7bbd5dSLeila GhaffariThe following options are common among all problem types:
27ccaff030SJeremy L Thompson
28bc7bbd5dSLeila Ghaffari:::{list-table} Common Runtime Options
29bc7bbd5dSLeila Ghaffari:header-rows: 1
30ccaff030SJeremy L Thompson
31bc7bbd5dSLeila Ghaffari* - Option
32bc7bbd5dSLeila Ghaffari  - Description
33bc7bbd5dSLeila Ghaffari  - Default value
34ccaff030SJeremy L Thompson
35bc7bbd5dSLeila Ghaffari* - `-ceed`
36bc7bbd5dSLeila Ghaffari  - CEED resource specifier
37bc7bbd5dSLeila Ghaffari  - `/cpu/self/opt/blocked`
38ccaff030SJeremy L Thompson
39bc7bbd5dSLeila Ghaffari* - `-test`
40bc7bbd5dSLeila Ghaffari  - Run in test mode
41bc7bbd5dSLeila Ghaffari  - `false`
42ccaff030SJeremy L Thompson
43bc7bbd5dSLeila Ghaffari* - `-compare_final_state_atol`
44bc7bbd5dSLeila Ghaffari  - Test absolute tolerance
45bc7bbd5dSLeila Ghaffari  - `1E-11`
46ccaff030SJeremy L Thompson
47bc7bbd5dSLeila Ghaffari* - `-compare_final_state_filename`
48bc7bbd5dSLeila Ghaffari  - Test filename
49bc7bbd5dSLeila Ghaffari  -
50ccaff030SJeremy L Thompson
51bc7bbd5dSLeila Ghaffari* - `-problem`
52bc7bbd5dSLeila Ghaffari  - Problem to solve (`advection`, `advection2d`, `density_current`, or `euler_vortex`)
53bc7bbd5dSLeila Ghaffari  - `density_current`
54ccaff030SJeremy L Thompson
55bc7bbd5dSLeila Ghaffari* - `-implicit`
56bc7bbd5dSLeila Ghaffari  - Use implicit time integartor formulation
57bc7bbd5dSLeila Ghaffari  -
58ccaff030SJeremy L Thompson
59bc7bbd5dSLeila Ghaffari* - `-degree`
60bc7bbd5dSLeila Ghaffari  - Polynomial degree of tensor product basis (must be >= 1)
61bc7bbd5dSLeila Ghaffari  - `1`
62ccaff030SJeremy L Thompson
632288fb52SJeremy L Thompson* - `-q_extra`
64bc7bbd5dSLeila Ghaffari  - Number of extra quadrature points
65fc14f3f6SLeila Ghaffari  - `0`
66ccaff030SJeremy L Thompson
6737cbb16aSJed Brown* - `-ts_monitor_solution`
6837cbb16aSJed Brown  - PETSc output format, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`)
6937cbb16aSJed Brown  -
70ccaff030SJeremy L Thompson
7137cbb16aSJed Brown* - `-ts_monitor_solution_interval`
7237cbb16aSJed Brown  - Number of time steps between visualization output frames.
7337cbb16aSJed Brown  - `1`
7437cbb16aSJed Brown
7537cbb16aSJed Brown* - `-viewer_cgns_batch_size`
7637cbb16aSJed Brown  - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`).
7737cbb16aSJed Brown  - `20`
7837cbb16aSJed Brown
7937cbb16aSJed Brown* - `-checkpoint_interval`
8037cbb16aSJed Brown  - Number of steps between writing binary checkpoints. `0` has no output, `-1` outputs final state only
81bc7bbd5dSLeila Ghaffari  - `10`
82ccaff030SJeremy L Thompson
8337cbb16aSJed Brown* - `-checkpoint_vtk`
8437cbb16aSJed Brown  - Checkpoints include VTK (`*.vtu`) files for visualization. Consider `-ts_monitor_solution`instead.
8537cbb16aSJed Brown  - `false`
8637cbb16aSJed Brown
8737cbb16aSJed Brown* - `-viz_refine`
8837cbb16aSJed Brown  - Use regular refinement for VTK visualization
8937cbb16aSJed Brown  - `0`
9037cbb16aSJed Brown
91bc7bbd5dSLeila Ghaffari* - `-output_dir`
9237cbb16aSJed Brown  - Output directory for binary checkpoints and VTK files (if enabled).
93bc7bbd5dSLeila Ghaffari  - `.`
94ccaff030SJeremy L Thompson
9569293791SJames Wright* - `-output_add_stepnum2bin`
9669293791SJames Wright  - Whether to add step numbers to output binary files
9769293791SJames Wright  - `false`
9869293791SJames Wright
9969293791SJames Wright* - `-continue`
10069293791SJames Wright  - Continue from previous solution (input is step number of previous solution)
10169293791SJames Wright  - `0`
10269293791SJames Wright
10369293791SJames Wright* - `-continue_filename`
10469293791SJames Wright  - Path to solution binary file from which to continue from
10569293791SJames Wright  - `[output_dir]/ns-solution.bin`
10669293791SJames Wright
10769293791SJames Wright* - `-continue_time_filename`
1084de8550aSJed Brown  - Path to time stamp binary file (only for legacy checkpoints)
10969293791SJames Wright  - `[output_dir]/ns-time.bin`
11069293791SJames Wright
1114534a52eSLeila Ghaffari* - `-bc_wall`
1124534a52eSLeila Ghaffari  - Use wall boundary conditions on this list of faces
1134534a52eSLeila Ghaffari  -
1144534a52eSLeila Ghaffari
1154534a52eSLeila Ghaffari* - `-wall_comps`
1164534a52eSLeila Ghaffari  - An array of constrained component numbers for wall BCs
1174534a52eSLeila Ghaffari  -
1184534a52eSLeila Ghaffari
1194534a52eSLeila Ghaffari* - `-bc_slip_x`
1204534a52eSLeila Ghaffari  - Use slip boundary conditions, for the x component, on this list of faces
1214534a52eSLeila Ghaffari  -
1224534a52eSLeila Ghaffari
1234534a52eSLeila Ghaffari* - `-bc_slip_y`
1244534a52eSLeila Ghaffari  - Use slip boundary conditions, for the y component, on this list of faces
1254534a52eSLeila Ghaffari  -
1264534a52eSLeila Ghaffari
1274534a52eSLeila Ghaffari* - `-bc_slip_z`
1284534a52eSLeila Ghaffari  - Use slip boundary conditions, for the z component, on this list of faces
1294534a52eSLeila Ghaffari  -
1304534a52eSLeila Ghaffari
1314534a52eSLeila Ghaffari* - `-bc_inflow`
1324534a52eSLeila Ghaffari  - Use inflow boundary conditions on this list of faces
1334534a52eSLeila Ghaffari  -
1344534a52eSLeila Ghaffari
1354534a52eSLeila Ghaffari* - `-bc_outflow`
1364534a52eSLeila Ghaffari  - Use outflow boundary conditions on this list of faces
1374534a52eSLeila Ghaffari  -
13889d0f5c0SLeila Ghaffari
1397ec884f8SJames Wright* - `-bc_freestream`
1407ec884f8SJames Wright  - Use freestream boundary conditions on this list of faces
1417ec884f8SJames Wright  -
1427ec884f8SJames Wright
143*ee3de563SJames Wright* - `-stats_enable`
144*ee3de563SJames Wright  - Enable collection of spanwise flow statistics
145*ee3de563SJames Wright  - `false`
146*ee3de563SJames Wright
147*ee3de563SJames Wright* - `-stats_test`
148*ee3de563SJames Wright  - Use manufactured solution for statistics collection (used for testing)
149*ee3de563SJames Wright  - `false`
150*ee3de563SJames Wright
151*ee3de563SJames Wright* - `-stats_collect_interval`
152*ee3de563SJames Wright  - Number of timesteps between statistics collection
153*ee3de563SJames Wright  - `1`
154*ee3de563SJames Wright
155*ee3de563SJames Wright* - `-stats_write_interval`
156*ee3de563SJames Wright  - Number of timesteps between statistics file writing (`-1` means only at end of run)
157*ee3de563SJames Wright  - `-1`
158*ee3de563SJames Wright
159bc7bbd5dSLeila Ghaffari* - `-snes_view`
160bc7bbd5dSLeila Ghaffari  - View PETSc `SNES` nonlinear solver configuration
161bc7bbd5dSLeila Ghaffari  -
16289d0f5c0SLeila Ghaffari
163bc7bbd5dSLeila Ghaffari* - `-log_view`
164bc7bbd5dSLeila Ghaffari  - View PETSc performance log
165bc7bbd5dSLeila Ghaffari  -
166ccaff030SJeremy L Thompson
167bc7bbd5dSLeila Ghaffari* - `-help`
168bc7bbd5dSLeila Ghaffari  - View comprehensive information about run-time options
169bc7bbd5dSLeila Ghaffari  -
170bc7bbd5dSLeila Ghaffari:::
171ccaff030SJeremy L Thompson
1727ec884f8SJames 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_slip_x`, `-bc_slip_y`, and `-bc_slip_z` are:
1734534a52eSLeila Ghaffari
17488626eedSJames Wright:::{list-table} 2D Face ID Labels
17588626eedSJames Wright:header-rows: 1
17688626eedSJames Wright* - PETSc Face Name
17788626eedSJames Wright  - Cartesian direction
17888626eedSJames Wright  - Face ID
17988626eedSJames Wright
18088626eedSJames Wright* - faceMarkerBottom
18188626eedSJames Wright  - -z
18288626eedSJames Wright  - 1
18388626eedSJames Wright
18488626eedSJames Wright* - faceMarkerRight
18588626eedSJames Wright  - +x
18688626eedSJames Wright  - 2
18788626eedSJames Wright
18888626eedSJames Wright* - faceMarkerTop
18988626eedSJames Wright  - +z
19088626eedSJames Wright  - 3
19188626eedSJames Wright
19288626eedSJames Wright* - faceMarkerLeft
19388626eedSJames Wright  - -x
19488626eedSJames Wright  - 4
19588626eedSJames Wright:::
19688626eedSJames Wright
19788626eedSJames Wright:::{list-table} 2D Face ID Labels
19888626eedSJames Wright:header-rows: 1
19988626eedSJames Wright* - PETSc Face Name
20088626eedSJames Wright  - Cartesian direction
20188626eedSJames Wright  - Face ID
20288626eedSJames Wright
20388626eedSJames Wright* - faceMarkerBottom
20488626eedSJames Wright  - -z
20588626eedSJames Wright  - 1
20688626eedSJames Wright
20788626eedSJames Wright* - faceMarkerTop
20888626eedSJames Wright  - +z
20988626eedSJames Wright  - 2
21088626eedSJames Wright
21188626eedSJames Wright* - faceMarkerFront
21288626eedSJames Wright  - -y
21388626eedSJames Wright  - 3
21488626eedSJames Wright
21588626eedSJames Wright* - faceMarkerBack
21688626eedSJames Wright  - +y
21788626eedSJames Wright  - 4
21888626eedSJames Wright
21988626eedSJames Wright* - faceMarkerRight
22088626eedSJames Wright  - +x
22188626eedSJames Wright  - 5
22288626eedSJames Wright
22388626eedSJames Wright* - faceMarkerLeft
22488626eedSJames Wright  - -x
22588626eedSJames Wright  - 6
22688626eedSJames Wright:::
2274534a52eSLeila Ghaffari
2288a94a473SJed Brown### Boundary conditions
2298a94a473SJed Brown
2308a94a473SJed BrownBoundary conditions for compressible viscous flows are notoriously tricky. Here we offer some recommendations
2318a94a473SJed Brown
2328a94a473SJed Brown#### Inflow
2338a94a473SJed Brown
2348a94a473SJed BrownIf 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).
2358a94a473SJed BrownIt is stable and the least reflective boundary condition for acoustics.
2368a94a473SJed Brown
2378a94a473SJed BrownIf near a viscous wall, you may want a specified inflow profile.
2388a94a473SJed BrownUse `bc_inflow` and see {ref}`example-blasius` and discussion of synthetic turbulence generation for ways to analytically generate developed inflow profiles.
2398a94a473SJed BrownThese 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.
2408a94a473SJed BrownThe strong approach gives sharper resolution of velocity structures.
2418a94a473SJed BrownWe have described the primitive variable formulation here; the conservative variants are similar, but not equivalent.
2428a94a473SJed Brown
2438a94a473SJed Brown### Outflow
2448a94a473SJed Brown
2458a94a473SJed BrownIf you know the complete exterior state, `bc_freestream` is the least reflective boundary condition, but is disruptive to viscous flow structures.
2468a94a473SJed BrownIf thermal anomalies must exit the domain, the Riemann solver must resolve the contact wave to avoid reflections.
2478a94a473SJed BrownThe default Riemann solver, HLLC, is sufficient in this regard while the simpler HLL converts thermal structures exiting the domain into grid-scale reflecting acoustics.
2488a94a473SJed Brown
2498a94a473SJed BrownIf 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.
2508a94a473SJed Brown
2518a94a473SJed BrownThe 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).
2528a94a473SJed BrownIn our experience, `riemann` is slightly less reflective but produces similar flows in cases of strict outflow.
2538a94a473SJed BrownThe `pressure` variant is retained to facilitate comparison with other codes, such as PHASTA-C, but we recommend `riemann` for general use.
2548a94a473SJed Brown
2558a94a473SJed Brown### Periodicity
2568a94a473SJed Brown
2578a94a473SJed BrownPETSc provides two ways to specify periodicity:
2588a94a473SJed Brown
2598a94a473SJed Brown1. Topological periodicity, in which the donor and receiver dofs are the same, obtained using:
2608a94a473SJed Brown
2618a94a473SJed Brown``` yaml
2628a94a473SJed Browndm_plex:
2638a94a473SJed Brown  shape: box
2648a94a473SJed Brown  box_faces: 10,12,4
2658a94a473SJed Brown  box_bd: none,none,periodic
2668a94a473SJed Brown```
2678a94a473SJed Brown
2688a94a473SJed BrownThe coordinates for such cases are stored as a new field, and
2698a94a473SJed Brown
270019b7682STimothy Aiken### Advection
271019b7682STimothy Aiken
27217be3a41SJeremy L ThompsonFor 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$.
27317be3a41SJeremy L ThompsonThese are available in 2D and 3D.
274019b7682STimothy Aiken
275019b7682STimothy Aiken#### 2D advection
276019b7682STimothy Aiken
277bc7bbd5dSLeila GhaffariFor the 2D advection problem, the following additional command-line options are available:
278ccaff030SJeremy L Thompson
279bc7bbd5dSLeila Ghaffari:::{list-table} Advection2D Runtime Options
280bc7bbd5dSLeila Ghaffari:header-rows: 1
28189d0f5c0SLeila Ghaffari
282bc7bbd5dSLeila Ghaffari* - Option
283bc7bbd5dSLeila Ghaffari  - Description
284bc7bbd5dSLeila Ghaffari  - Default value
285bc7bbd5dSLeila Ghaffari  - Unit
28689d0f5c0SLeila Ghaffari
287bc7bbd5dSLeila Ghaffari* - `-rc`
288bc7bbd5dSLeila Ghaffari  - Characteristic radius of thermal bubble
289bc7bbd5dSLeila Ghaffari  - `1000`
290bc7bbd5dSLeila Ghaffari  - `m`
29189d0f5c0SLeila Ghaffari
292bc7bbd5dSLeila Ghaffari* - `-units_meter`
293bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
294bc7bbd5dSLeila Ghaffari  - `1E-2`
295bc7bbd5dSLeila Ghaffari  -
29689d0f5c0SLeila Ghaffari
297bc7bbd5dSLeila Ghaffari* - `-units_second`
298bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
299bc7bbd5dSLeila Ghaffari  - `1E-2`
300bc7bbd5dSLeila Ghaffari  -
30189d0f5c0SLeila Ghaffari
302bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
303bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
304bc7bbd5dSLeila Ghaffari  - `1E-6`
305bc7bbd5dSLeila Ghaffari  -
30677841947SLeila Ghaffari
307bc7bbd5dSLeila Ghaffari* - `-strong_form`
308bc7bbd5dSLeila Ghaffari  - Strong (1) or weak/integrated by parts (0) residual
309bc7bbd5dSLeila Ghaffari  - `0`
310bc7bbd5dSLeila Ghaffari  -
31177841947SLeila Ghaffari
312bc7bbd5dSLeila Ghaffari* - `-stab`
313bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
314bc7bbd5dSLeila Ghaffari  - `none`
315bc7bbd5dSLeila Ghaffari  -
31677841947SLeila Ghaffari
317bc7bbd5dSLeila Ghaffari* - `-CtauS`
318bc7bbd5dSLeila Ghaffari  - Scale coefficient for stabilization tau (nondimensional)
319bc7bbd5dSLeila Ghaffari  - `0`
320bc7bbd5dSLeila Ghaffari  -
32177841947SLeila Ghaffari
322bc7bbd5dSLeila Ghaffari* - `-wind_type`
323bc7bbd5dSLeila Ghaffari  - Wind type in Advection (`rotation` or `translation`)
324bc7bbd5dSLeila Ghaffari  - `rotation`
325bc7bbd5dSLeila Ghaffari  -
32677841947SLeila Ghaffari
327bc7bbd5dSLeila Ghaffari* - `-wind_translation`
328bc7bbd5dSLeila Ghaffari  - Constant wind vector when `-wind_type translation`
329bc7bbd5dSLeila Ghaffari  - `1,0,0`
330bc7bbd5dSLeila Ghaffari  -
33189d0f5c0SLeila Ghaffari
332bc7bbd5dSLeila Ghaffari* - `-E_wind`
333bc7bbd5dSLeila Ghaffari  - Total energy of inflow wind when `-wind_type translation`
334bc7bbd5dSLeila Ghaffari  - `1E6`
335bc7bbd5dSLeila Ghaffari  - `J`
336bc7bbd5dSLeila Ghaffari:::
337e43605a5SLeila Ghaffari
338bc7bbd5dSLeila GhaffariAn example of the `rotation` mode can be run with:
339e43605a5SLeila Ghaffari
340bc7bbd5dSLeila Ghaffari```
3414534a52eSLeila Ghaffari./navierstokes -problem advection2d -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
342bc7bbd5dSLeila Ghaffari```
343e43605a5SLeila Ghaffari
344bc7bbd5dSLeila Ghaffariand the `translation` mode with:
345e43605a5SLeila Ghaffari
346bc7bbd5dSLeila Ghaffari```
3474534a52eSLeila Ghaffari./navierstokes -problem advection2d -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
348bc7bbd5dSLeila Ghaffari```
3494534a52eSLeila GhaffariNote the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`.
350e43605a5SLeila Ghaffari
351019b7682STimothy Aiken#### 3D advection
352019b7682STimothy Aiken
353bc7bbd5dSLeila GhaffariFor the 3D advection problem, the following additional command-line options are available:
354e43605a5SLeila Ghaffari
355bc7bbd5dSLeila Ghaffari:::{list-table} Advection3D Runtime Options
356bc7bbd5dSLeila Ghaffari:header-rows: 1
357e43605a5SLeila Ghaffari
358bc7bbd5dSLeila Ghaffari* - Option
359bc7bbd5dSLeila Ghaffari  - Description
360bc7bbd5dSLeila Ghaffari  - Default value
361bc7bbd5dSLeila Ghaffari  - Unit
362e43605a5SLeila Ghaffari
363bc7bbd5dSLeila Ghaffari* - `-rc`
364bc7bbd5dSLeila Ghaffari  - Characteristic radius of thermal bubble
365bc7bbd5dSLeila Ghaffari  - `1000`
366bc7bbd5dSLeila Ghaffari  - `m`
367e43605a5SLeila Ghaffari
368bc7bbd5dSLeila Ghaffari* - `-units_meter`
369bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
370bc7bbd5dSLeila Ghaffari  - `1E-2`
371bc7bbd5dSLeila Ghaffari  -
372e43605a5SLeila Ghaffari
373bc7bbd5dSLeila Ghaffari* - `-units_second`
374bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
375bc7bbd5dSLeila Ghaffari  - `1E-2`
376bc7bbd5dSLeila Ghaffari  -
377e43605a5SLeila Ghaffari
378bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
379bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
380bc7bbd5dSLeila Ghaffari  - `1E-6`
381bc7bbd5dSLeila Ghaffari  -
382e43605a5SLeila Ghaffari
383bc7bbd5dSLeila Ghaffari* - `-strong_form`
384bc7bbd5dSLeila Ghaffari  - Strong (1) or weak/integrated by parts (0) residual
385bc7bbd5dSLeila Ghaffari  - `0`
386bc7bbd5dSLeila Ghaffari  -
387e43605a5SLeila Ghaffari
388bc7bbd5dSLeila Ghaffari* - `-stab`
389bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
390bc7bbd5dSLeila Ghaffari  - `none`
391bc7bbd5dSLeila Ghaffari  -
392e43605a5SLeila Ghaffari
393bc7bbd5dSLeila Ghaffari* - `-CtauS`
394bc7bbd5dSLeila Ghaffari  - Scale coefficient for stabilization tau (nondimensional)
395bc7bbd5dSLeila Ghaffari  - `0`
396bc7bbd5dSLeila Ghaffari  -
397e43605a5SLeila Ghaffari
398bc7bbd5dSLeila Ghaffari* - `-wind_type`
399bc7bbd5dSLeila Ghaffari  - Wind type in Advection (`rotation` or `translation`)
400bc7bbd5dSLeila Ghaffari  - `rotation`
401bc7bbd5dSLeila Ghaffari  -
402e43605a5SLeila Ghaffari
403bc7bbd5dSLeila Ghaffari* - `-wind_translation`
404bc7bbd5dSLeila Ghaffari  - Constant wind vector when `-wind_type translation`
405bc7bbd5dSLeila Ghaffari  - `1,0,0`
406bc7bbd5dSLeila Ghaffari  -
407e43605a5SLeila Ghaffari
408bc7bbd5dSLeila Ghaffari* - `-E_wind`
409bc7bbd5dSLeila Ghaffari  - Total energy of inflow wind when `-wind_type translation`
410bc7bbd5dSLeila Ghaffari  - `1E6`
411bc7bbd5dSLeila Ghaffari  - `J`
412e43605a5SLeila Ghaffari
413bc7bbd5dSLeila Ghaffari* - `-bubble_type`
414bc7bbd5dSLeila Ghaffari  - `sphere` (3D) or `cylinder` (2D)
415bc7bbd5dSLeila Ghaffari  - `shpere`
416bc7bbd5dSLeila Ghaffari  -
417e43605a5SLeila Ghaffari
418bc7bbd5dSLeila Ghaffari* - `-bubble_continuity`
419bc7bbd5dSLeila Ghaffari  - `smooth`, `back_sharp`, or `thick`
420bc7bbd5dSLeila Ghaffari  - `smooth`
421bc7bbd5dSLeila Ghaffari  -
422bc7bbd5dSLeila Ghaffari:::
423ccaff030SJeremy L Thompson
424bc7bbd5dSLeila GhaffariAn example of the `rotation` mode can be run with:
425ccaff030SJeremy L Thompson
426bc7bbd5dSLeila Ghaffari```
4274534a52eSLeila Ghaffari./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
428bc7bbd5dSLeila Ghaffari```
429ccaff030SJeremy L Thompson
430bc7bbd5dSLeila Ghaffariand the `translation` mode with:
431ccaff030SJeremy L Thompson
432bc7bbd5dSLeila Ghaffari```
4334534a52eSLeila Ghaffari./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
434bc7bbd5dSLeila Ghaffari```
435ccaff030SJeremy L Thompson
436019b7682STimothy Aiken### Inviscid Ideal Gas
437019b7682STimothy Aiken
438019b7682STimothy Aiken#### Isentropic Euler vortex
439019b7682STimothy Aiken
440bc7bbd5dSLeila GhaffariFor the Isentropic Vortex problem, the following additional command-line options are available:
441ccaff030SJeremy L Thompson
442bc7bbd5dSLeila Ghaffari:::{list-table} Isentropic Vortex Runtime Options
443bc7bbd5dSLeila Ghaffari:header-rows: 1
444ccaff030SJeremy L Thompson
445bc7bbd5dSLeila Ghaffari* - Option
446bc7bbd5dSLeila Ghaffari  - Description
447bc7bbd5dSLeila Ghaffari  - Default value
448bc7bbd5dSLeila Ghaffari  - Unit
449ccaff030SJeremy L Thompson
450bc7bbd5dSLeila Ghaffari* - `-center`
451bc7bbd5dSLeila Ghaffari  - Location of vortex center
452bc7bbd5dSLeila Ghaffari  - `(lx,ly,lz)/2`
453bc7bbd5dSLeila Ghaffari  - `(m,m,m)`
454ccaff030SJeremy L Thompson
455bc7bbd5dSLeila Ghaffari* - `-units_meter`
456bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
457bc7bbd5dSLeila Ghaffari  - `1E-2`
458bc7bbd5dSLeila Ghaffari  -
459ccaff030SJeremy L Thompson
460bc7bbd5dSLeila Ghaffari* - `-units_second`
461bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
462bc7bbd5dSLeila Ghaffari  - `1E-2`
463bc7bbd5dSLeila Ghaffari  -
464ccaff030SJeremy L Thompson
465bc7bbd5dSLeila Ghaffari* - `-mean_velocity`
466bc7bbd5dSLeila Ghaffari  - Background velocity vector
467bc7bbd5dSLeila Ghaffari  - `(1,1,0)`
468bc7bbd5dSLeila Ghaffari  -
469ccaff030SJeremy L Thompson
470bc7bbd5dSLeila Ghaffari* - `-vortex_strength`
471bc7bbd5dSLeila Ghaffari  - Strength of vortex < 10
472bc7bbd5dSLeila Ghaffari  - `5`
473bc7bbd5dSLeila Ghaffari  -
474932417b3SJed Brown
475932417b3SJed Brown* - `-c_tau`
476932417b3SJed Brown  - Stabilization constant
477504dc8e0SLeila Ghaffari  - `0.5`
478932417b3SJed Brown  -
479bc7bbd5dSLeila Ghaffari:::
480ccaff030SJeremy L Thompson
481bc7bbd5dSLeila GhaffariThis problem can be run with:
482ccaff030SJeremy L Thompson
483bc7bbd5dSLeila Ghaffari```
4844534a52eSLeila Ghaffari./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_slip_z 1,2 -mean_velocity .5,-.8,0.
485bc7bbd5dSLeila Ghaffari```
486ccaff030SJeremy L Thompson
487019b7682STimothy Aiken#### Sod shock tube
488019b7682STimothy Aiken
489019b7682STimothy AikenFor the Shock Tube problem, the following additional command-line options are available:
490019b7682STimothy Aiken
491019b7682STimothy Aiken:::{list-table} Shock Tube Runtime Options
492019b7682STimothy Aiken:header-rows: 1
493019b7682STimothy Aiken
494019b7682STimothy Aiken* - Option
495019b7682STimothy Aiken  - Description
496019b7682STimothy Aiken  - Default value
497019b7682STimothy Aiken  - Unit
498019b7682STimothy Aiken
499019b7682STimothy Aiken* - `-units_meter`
500019b7682STimothy Aiken  - 1 meter in scaled length units
501019b7682STimothy Aiken  - `1E-2`
502019b7682STimothy Aiken  -
503019b7682STimothy Aiken
504019b7682STimothy Aiken* - `-units_second`
505019b7682STimothy Aiken  - 1 second in scaled time units
506019b7682STimothy Aiken  - `1E-2`
507019b7682STimothy Aiken  -
508019b7682STimothy Aiken
509019b7682STimothy Aiken* - `-yzb`
510019b7682STimothy Aiken  - Use YZB discontinuity capturing
511019b7682STimothy Aiken  - `none`
512019b7682STimothy Aiken  -
513019b7682STimothy Aiken
514019b7682STimothy Aiken* - `-stab`
515019b7682STimothy Aiken  - Stabilization method (`none`, `su`, or `supg`)
516019b7682STimothy Aiken  - `none`
517019b7682STimothy Aiken  -
518019b7682STimothy Aiken:::
519019b7682STimothy Aiken
520019b7682STimothy AikenThis problem can be run with:
521019b7682STimothy Aiken
522019b7682STimothy Aiken```
523019b7682STimothy Aiken./navierstokes -problem shocktube -yzb -stab su -bc_slip_z 3,4 -bc_slip_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
524019b7682STimothy Aiken```
525019b7682STimothy Aiken
526019b7682STimothy Aiken### Newtonian viscosity, Ideal Gas
527019b7682STimothy Aiken
52888626eedSJames WrightFor the Density Current, Channel, and Blasius problems, the following common command-line options are available:
529ccaff030SJeremy L Thompson
53088626eedSJames Wright:::{list-table} Newtonian Ideal Gas problems Runtime Options
531bc7bbd5dSLeila Ghaffari:header-rows: 1
532ccaff030SJeremy L Thompson
533bc7bbd5dSLeila Ghaffari* - Option
534bc7bbd5dSLeila Ghaffari  - Description
535bc7bbd5dSLeila Ghaffari  - Default value
536bc7bbd5dSLeila Ghaffari  - Unit
537ccaff030SJeremy L Thompson
538bc7bbd5dSLeila Ghaffari* - `-units_meter`
539bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
54088626eedSJames Wright  - `1`
541bc7bbd5dSLeila Ghaffari  -
542ccaff030SJeremy L Thompson
543bc7bbd5dSLeila Ghaffari* - `-units_second`
544bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
54588626eedSJames Wright  - `1`
546bc7bbd5dSLeila Ghaffari  -
547ccaff030SJeremy L Thompson
548bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
549bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
55088626eedSJames Wright  - `1`
551bc7bbd5dSLeila Ghaffari  -
552ccaff030SJeremy L Thompson
553bc7bbd5dSLeila Ghaffari* - `-units_Kelvin`
554bc7bbd5dSLeila Ghaffari  - 1 Kelvin in scaled temperature units
555bc7bbd5dSLeila Ghaffari  - `1`
556bc7bbd5dSLeila Ghaffari  -
557ccaff030SJeremy L Thompson
558bc7bbd5dSLeila Ghaffari* - `-stab`
559bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
560bc7bbd5dSLeila Ghaffari  - `none`
561bc7bbd5dSLeila Ghaffari  -
562ccaff030SJeremy L Thompson
563932417b3SJed Brown* - `-c_tau`
56488626eedSJames Wright  - Stabilization constant, $c_\tau$
565504dc8e0SLeila Ghaffari  - `0.5`
566932417b3SJed Brown  -
567932417b3SJed Brown
56888626eedSJames Wright* - `-Ctau_t`
56988626eedSJames Wright  - Stabilization time constant, $C_t$
57088626eedSJames Wright  - `1.0`
57188626eedSJames Wright  -
572ccaff030SJeremy L Thompson
57388626eedSJames Wright* - `-Ctau_v`
57488626eedSJames Wright  - Stabilization viscous constant, $C_v$
57594c01735SLeila Ghaffari  - `36, 60, 128 for degree = 1, 2, 3`
57688626eedSJames Wright  -
577ccaff030SJeremy L Thompson
57888626eedSJames Wright* - `-Ctau_C`
57988626eedSJames Wright  - Stabilization continuity constant, $C_c$
58088626eedSJames Wright  - `1.0`
58188626eedSJames Wright  -
582ccaff030SJeremy L Thompson
58388626eedSJames Wright* - `-Ctau_M`
58488626eedSJames Wright  - Stabilization momentum constant, $C_m$
58588626eedSJames Wright  - `1.0`
58688626eedSJames Wright  -
58788626eedSJames Wright
58888626eedSJames Wright* - `-Ctau_E`
58988626eedSJames Wright  - Stabilization energy constant, $C_E$
59088626eedSJames Wright  - `1.0`
59188626eedSJames Wright  -
592ccaff030SJeremy L Thompson
593bc7bbd5dSLeila Ghaffari* - `-cv`
594bc7bbd5dSLeila Ghaffari  - Heat capacity at constant volume
595bc7bbd5dSLeila Ghaffari  - `717`
596bc7bbd5dSLeila Ghaffari  - `J/(kg K)`
597ccaff030SJeremy L Thompson
598bc7bbd5dSLeila Ghaffari* - `-cp`
599bc7bbd5dSLeila Ghaffari  - Heat capacity at constant pressure
600bc7bbd5dSLeila Ghaffari  - `1004`
601bc7bbd5dSLeila Ghaffari  - `J/(kg K)`
602ccaff030SJeremy L Thompson
603bc7bbd5dSLeila Ghaffari* - `-g`
604bc7bbd5dSLeila Ghaffari  - Gravitational acceleration
605bc7bbd5dSLeila Ghaffari  - `9.81`
606bc7bbd5dSLeila Ghaffari  - `m/s^2`
607ccaff030SJeremy L Thompson
608bc7bbd5dSLeila Ghaffari* - `-lambda`
609bc7bbd5dSLeila Ghaffari  - Stokes hypothesis second viscosity coefficient
610bc7bbd5dSLeila Ghaffari  - `-2/3`
611bc7bbd5dSLeila Ghaffari  -
612ccaff030SJeremy L Thompson
613bc7bbd5dSLeila Ghaffari* - `-mu`
614bc7bbd5dSLeila Ghaffari  - Shear dynamic viscosity coefficient
615bc7bbd5dSLeila Ghaffari  - `75`
616bc7bbd5dSLeila Ghaffari  -  `Pa s`
61777841947SLeila Ghaffari
618bc7bbd5dSLeila Ghaffari* - `-k`
619bc7bbd5dSLeila Ghaffari  - Thermal conductivity
620bc7bbd5dSLeila Ghaffari  - `0.02638`
621bc7bbd5dSLeila Ghaffari  - `W/(m K)`
622a1df05f8SJed Brown
623a1df05f8SJed Brown* - `-newtonian_unit_tests`
624a1df05f8SJed Brown  - Developer option to test properties
625a1df05f8SJed Brown  - `false`
626a1df05f8SJed Brown  - boolean
627de2fdd78SJames Wright
6285c0afad3SJames Wright* - `-state_var`
6295c0afad3SJames Wright  - State variables to solve solution with. `conservative` ($\rho, \rho \bm{u}, \rho e$) or `primitive` ($P, \bm{u}, T$)
6305c0afad3SJames Wright  - `conservative`
6315c0afad3SJames Wright  - string
632bc7bbd5dSLeila Ghaffari:::
63377841947SLeila Ghaffari
6347ec884f8SJames Wright#### Newtonian Wave
6357ec884f8SJames Wright
636061ff11eSJames WrightThe newtonian wave problem has the following command-line options in addition to the Newtonian Ideal Gas options:
6377ec884f8SJames Wright
63889e3cb53SJames Wright:::{list-table} Newtonian Wave Runtime Options
6397ec884f8SJames Wright:header-rows: 1
6407ec884f8SJames Wright
6417ec884f8SJames Wright* - Option
6427ec884f8SJames Wright  - Description
6437ec884f8SJames Wright  - Default value
6447ec884f8SJames Wright  - Unit
6457ec884f8SJames Wright
646f1e435c9SJed Brown* - `-freestream_riemann`
647f1e435c9SJed Brown  - Riemann solver for boundaries (HLL or HLLC)
648f1e435c9SJed Brown  - `hllc`
649f1e435c9SJed Brown  -
650f1e435c9SJed Brown
651f1e435c9SJed Brown* - `-freestream_velocity`
6527ec884f8SJames Wright  - Freestream velocity vector
6537ec884f8SJames Wright  - `0,0,0`
6547ec884f8SJames Wright  - `m/s`
6557ec884f8SJames Wright
656f1e435c9SJed Brown* - `-freestream_temperature`
6577ec884f8SJames Wright  - Freestream temperature
6587ec884f8SJames Wright  - `288`
6597ec884f8SJames Wright  - `K`
6607ec884f8SJames Wright
661f1e435c9SJed Brown* - `-freestream_pressure`
66289e3cb53SJames Wright  - Freestream pressure
6637ec884f8SJames Wright  - `1.01e5`
6647ec884f8SJames Wright  - `Pa`
6657ec884f8SJames Wright
6667ec884f8SJames Wright* - `-epicenter`
6677ec884f8SJames Wright  - Coordinates of center of perturbation
6687ec884f8SJames Wright  - `0,0,0`
6697ec884f8SJames Wright  - `m`
6707ec884f8SJames Wright
6717ec884f8SJames Wright* - `-amplitude`
6727ec884f8SJames Wright  - Amplitude of the perturbation
6737ec884f8SJames Wright  - `0.1`
6747ec884f8SJames Wright  -
6757ec884f8SJames Wright
6767ec884f8SJames Wright* - `-width`
6777ec884f8SJames Wright  - Width parameter of the perturbation
6787ec884f8SJames Wright  - `0.002`
6797ec884f8SJames Wright  - `m`
6807ec884f8SJames Wright
6817ec884f8SJames Wright:::
6827ec884f8SJames Wright
6837ec884f8SJames WrightThis problem can be run with the `newtonianwave.yaml` file via:
6847ec884f8SJames Wright
6857ec884f8SJames Wright```
6867ec884f8SJames Wright./navierstokes -options_file newtonianwave.yaml
6877ec884f8SJames Wright```
6887ec884f8SJames Wright
6897ec884f8SJames Wright```{literalinclude} ../../../../../examples/fluids/newtonianwave.yaml
6907ec884f8SJames Wright:language: yaml
6917ec884f8SJames Wright```
692a1df05f8SJed Brown
693d310b3d3SAdeleke O. Bankole#### Vortex Shedding - Flow past Cylinder
694d310b3d3SAdeleke O. Bankole
695d310b3d3SAdeleke O. BankoleThe vortex shedding, flow past cylinder problem has the following command-line options in addition to the Newtonian Ideal Gas options:
696d310b3d3SAdeleke O. Bankole
697d310b3d3SAdeleke O. Bankole:::{list-table} Vortex Shedding Runtime Options
698d310b3d3SAdeleke O. Bankole:header-rows: 1
699d310b3d3SAdeleke O. Bankole
700d310b3d3SAdeleke O. Bankole* - Option
701d310b3d3SAdeleke O. Bankole  - Description
702d310b3d3SAdeleke O. Bankole  - Default value
703d310b3d3SAdeleke O. Bankole  - Unit
704d310b3d3SAdeleke O. Bankole
705d310b3d3SAdeleke O. Bankole* - `-freestream_velocity`
706d310b3d3SAdeleke O. Bankole  - Freestream velocity vector
707d310b3d3SAdeleke O. Bankole  - `0,0,0`
708d310b3d3SAdeleke O. Bankole  - `m/s`
709d310b3d3SAdeleke O. Bankole
710d310b3d3SAdeleke O. Bankole* - `-freestream_temperature`
711d310b3d3SAdeleke O. Bankole  - Freestream temperature
712d310b3d3SAdeleke O. Bankole  - `288`
713d310b3d3SAdeleke O. Bankole  - `K`
714d310b3d3SAdeleke O. Bankole
715d310b3d3SAdeleke O. Bankole* - `-freestream_pressure`
716d310b3d3SAdeleke O. Bankole  - Freestream pressure
717d310b3d3SAdeleke O. Bankole  - `1.01e5`
718d310b3d3SAdeleke O. Bankole  - `Pa`
719d310b3d3SAdeleke O. Bankole
720d310b3d3SAdeleke O. Bankole:::
721d310b3d3SAdeleke O. Bankole
722d310b3d3SAdeleke O. BankoleThe initial condition is taken from `-reference_temperature` and `-reference_pressure`.
723d310b3d3SAdeleke O. BankoleTo run this problem, first generate a mesh:
724d310b3d3SAdeleke O. Bankole
725d310b3d3SAdeleke O. Bankole```console
726d310b3d3SAdeleke O. Bankole$ make -C examples/fluids/meshes
727d310b3d3SAdeleke O. Bankole```
728d310b3d3SAdeleke O. Bankole
729d310b3d3SAdeleke O. BankoleThen run by building the executable and running:
730d310b3d3SAdeleke O. Bankole
731d310b3d3SAdeleke O. Bankole```console
732d310b3d3SAdeleke O. Bankole$ make build/fluids-navierstokes
733d310b3d3SAdeleke O. Bankole$ mpiexec -n 6 build/fluids-navierstokes -options_file vortexshedding.yaml
734d310b3d3SAdeleke O. Bankole```
735d310b3d3SAdeleke O. Bankole
736d310b3d3SAdeleke O. BankoleThe vortex shedding period is roughly 6 and this problem runs until time 100 (2000 time steps).
737d310b3d3SAdeleke O. Bankole
738d310b3d3SAdeleke O. Bankole```{literalinclude} ../../../../../examples/fluids/vortexshedding.yaml
739d310b3d3SAdeleke O. Bankole:language: yaml
740d310b3d3SAdeleke O. Bankole```
741d310b3d3SAdeleke O. Bankole
742019b7682STimothy Aiken#### Density current
743019b7682STimothy Aiken
744061ff11eSJames WrightThe Density Current problem has the following command-line options in addition to the Newtonian Ideal Gas options:
74588626eedSJames Wright
74688626eedSJames Wright:::{list-table} Density Current Runtime Options
74788626eedSJames Wright:header-rows: 1
74888626eedSJames Wright
74988626eedSJames Wright* - Option
75088626eedSJames Wright  - Description
75188626eedSJames Wright  - Default value
75288626eedSJames Wright  - Unit
75388626eedSJames Wright
75488626eedSJames Wright* - `-center`
75588626eedSJames Wright  - Location of bubble center
75688626eedSJames Wright  - `(lx,ly,lz)/2`
75788626eedSJames Wright  - `(m,m,m)`
75888626eedSJames Wright
75988626eedSJames Wright* - `-dc_axis`
76088626eedSJames Wright  - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric
76188626eedSJames Wright  - `(0,0,0)`
76288626eedSJames Wright  -
76388626eedSJames Wright
76488626eedSJames Wright* - `-rc`
76588626eedSJames Wright  - Characteristic radius of thermal bubble
76688626eedSJames Wright  - `1000`
76788626eedSJames Wright  - `m`
76888626eedSJames Wright
76988626eedSJames Wright* - `-theta0`
77088626eedSJames Wright  - Reference potential temperature
77188626eedSJames Wright  - `300`
77288626eedSJames Wright  - `K`
77388626eedSJames Wright
77488626eedSJames Wright* - `-thetaC`
77588626eedSJames Wright  - Perturbation of potential temperature
77688626eedSJames Wright  - `-15`
77788626eedSJames Wright  - `K`
77888626eedSJames Wright
77988626eedSJames Wright* - `-P0`
78088626eedSJames Wright  - Atmospheric pressure
78188626eedSJames Wright  - `1E5`
78288626eedSJames Wright  - `Pa`
78388626eedSJames Wright
78488626eedSJames Wright* - `-N`
78588626eedSJames Wright  - Brunt-Vaisala frequency
78688626eedSJames Wright  - `0.01`
78788626eedSJames Wright  - `1/s`
78888626eedSJames Wright:::
78988626eedSJames Wright
790bc7bbd5dSLeila GhaffariThis problem can be run with:
791ccaff030SJeremy L Thompson
792bc7bbd5dSLeila Ghaffari```
79388626eedSJames 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_slip_y 3,4 -mu 75
79488626eedSJames Wright```
79588626eedSJames Wright
796019b7682STimothy Aiken#### Channel flow
797019b7682STimothy Aiken
798061ff11eSJames WrightThe Channel problem has the following command-line options in addition to the Newtonian Ideal Gas options:
79988626eedSJames Wright
80088626eedSJames Wright:::{list-table} Channel Runtime Options
80188626eedSJames Wright:header-rows: 1
80288626eedSJames Wright
80388626eedSJames Wright* - Option
80488626eedSJames Wright  - Description
80588626eedSJames Wright  - Default value
80688626eedSJames Wright  - Unit
80788626eedSJames Wright
80888626eedSJames Wright* - `-umax`
80988626eedSJames Wright  - Maximum/centerline velocity of the flow
81088626eedSJames Wright  - `10`
81188626eedSJames Wright  - `m/s`
81288626eedSJames Wright
81388626eedSJames Wright* - `-theta0`
81488626eedSJames Wright  - Reference potential temperature
81588626eedSJames Wright  - `300`
81688626eedSJames Wright  - `K`
81788626eedSJames Wright
81888626eedSJames Wright* - `-P0`
81988626eedSJames Wright  - Atmospheric pressure
82088626eedSJames Wright  - `1E5`
82188626eedSJames Wright  - `Pa`
822a1df05f8SJed Brown
823a1df05f8SJed Brown* - `-body_force_scale`
824a1df05f8SJed Brown  - Multiplier for body force (`-1` for flow reversal)
825a1df05f8SJed Brown  - 1
826a1df05f8SJed Brown  -
82788626eedSJames Wright:::
82888626eedSJames Wright
82988626eedSJames WrightThis problem can be run with the `channel.yaml` file via:
83088626eedSJames Wright
83188626eedSJames Wright```
83288626eedSJames Wright./navierstokes -options_file channel.yaml
83388626eedSJames Wright```
83488626eedSJames Wright```{literalinclude} ../../../../../examples/fluids/channel.yaml
83588626eedSJames Wright:language: yaml
83688626eedSJames Wright```
83788626eedSJames Wright
8388a94a473SJed Brown(example-blasius)=
8398a94a473SJed Brown
840019b7682STimothy Aiken#### Blasius boundary layer
841019b7682STimothy Aiken
842061ff11eSJames WrightThe Blasius problem has the following command-line options in addition to the Newtonian Ideal Gas options:
84388626eedSJames Wright
84488626eedSJames Wright:::{list-table} Blasius Runtime Options
84588626eedSJames Wright:header-rows: 1
84688626eedSJames Wright
84788626eedSJames Wright* - Option
84888626eedSJames Wright  - Description
84988626eedSJames Wright  - Default value
85088626eedSJames Wright  - Unit
85188626eedSJames Wright
852fb455ff0SLeila Ghaffari* - `-velocity_infinity`
85388626eedSJames Wright  - Freestream velocity
85488626eedSJames Wright  - `40`
85588626eedSJames Wright  - `m/s`
85688626eedSJames Wright
857fb455ff0SLeila Ghaffari* - `-temperature_infinity`
858fb455ff0SLeila Ghaffari  - Freestream temperature
85988626eedSJames Wright  - `288`
86088626eedSJames Wright  - `K`
86188626eedSJames Wright
862fb455ff0SLeila Ghaffari* - `-temperature_wall`
863fb455ff0SLeila Ghaffari  - Wall temperature
86407d14e58SLeila Ghaffari  - `288`
865fb455ff0SLeila Ghaffari  - `K`
866fb455ff0SLeila Ghaffari
867fb455ff0SLeila Ghaffari* - `-delta0`
868fb455ff0SLeila Ghaffari  - Boundary layer height at the inflow
869fb455ff0SLeila Ghaffari  - `4.2e-3`
870fb455ff0SLeila Ghaffari  - `m`
871fb455ff0SLeila Ghaffari
87288626eedSJames Wright* - `-P0`
87388626eedSJames Wright  - Atmospheric pressure
87488626eedSJames Wright  - `1.01E5`
87588626eedSJames Wright  - `Pa`
87688626eedSJames Wright
87791eaef80SJames Wright* - `-platemesh_refine_height`
87891eaef80SJames Wright  - Height at which `-platemesh_Ndelta` number of elements should refined into
87988626eedSJames Wright  - `5.9E-4`
88088626eedSJames Wright  - `m`
88188626eedSJames Wright
88291eaef80SJames Wright* - `-platemesh_Ndelta`
88391eaef80SJames Wright  - Number of elements to keep below `-platemesh_refine_height`
88488626eedSJames Wright  - `45`
88588626eedSJames Wright  -
88688626eedSJames Wright
88791eaef80SJames Wright* - `-platemesh_growth`
88888626eedSJames Wright  - Growth rate of the elements in the refinement region
88988626eedSJames Wright  - `1.08`
89088626eedSJames Wright  -
89188626eedSJames Wright
89291eaef80SJames Wright* - `-platemesh_top_angle`
89388626eedSJames Wright  - Downward angle of the top face of the domain. This face serves as an outlet.
89488626eedSJames Wright  - `5`
89588626eedSJames Wright  - `degrees`
896ba6664aeSJames Wright
897ba6664aeSJames Wright* - `-stg_use`
898ba6664aeSJames Wright  - Whether to use stg for the inflow conditions
899ba6664aeSJames Wright  - `false`
900ba6664aeSJames Wright  -
90191eaef80SJames Wright
90291eaef80SJames Wright* - `-platemesh_y_node_locs_path`
90391eaef80SJames Wright  - Path to file with y node locations. If empty, will use mesh warping instead.
90491eaef80SJames Wright  - `""`
90591eaef80SJames Wright  -
906fb455ff0SLeila Ghaffari
90707d14e58SLeila Ghaffari* - `-n_chebyshev`
908fb455ff0SLeila Ghaffari  - Number of Chebyshev terms
909fb455ff0SLeila Ghaffari  - `20`
910fb455ff0SLeila Ghaffari  -
911fb455ff0SLeila Ghaffari
91207d14e58SLeila Ghaffari* - `-chebyshev_`
91307d14e58SLeila Ghaffari  - Prefix for Chebyshev snes solve
91407d14e58SLeila Ghaffari  -
91507d14e58SLeila Ghaffari  -
91607d14e58SLeila Ghaffari
91788626eedSJames Wright:::
91888626eedSJames Wright
91988626eedSJames WrightThis problem can be run with the `blasius.yaml` file via:
92088626eedSJames Wright
92188626eedSJames Wright```
92288626eedSJames Wright./navierstokes -options_file blasius.yaml
92388626eedSJames Wright```
92488626eedSJames Wright
92588626eedSJames Wright```{literalinclude} ../../../../../examples/fluids/blasius.yaml
92688626eedSJames Wright:language: yaml
927bc7bbd5dSLeila Ghaffari```
928ba6664aeSJames Wright
929ba6664aeSJames Wright#### STG Inflow for Flat Plate
930ba6664aeSJames Wright
93117be3a41SJeremy L ThompsonUsing the STG Inflow for the blasius problem adds the following command-line options:
932ba6664aeSJames Wright
933ba6664aeSJames Wright:::{list-table} Blasius Runtime Options
934ba6664aeSJames Wright:header-rows: 1
935ba6664aeSJames Wright
936ba6664aeSJames Wright* - Option
937ba6664aeSJames Wright  - Description
938ba6664aeSJames Wright  - Default value
939ba6664aeSJames Wright  - Unit
940ba6664aeSJames Wright
941ba6664aeSJames Wright* - `-stg_inflow_path`
942ba6664aeSJames Wright  - Path to the STGInflow file
943ba6664aeSJames Wright  - `./STGInflow.dat`
944ba6664aeSJames Wright  -
945ba6664aeSJames Wright
946ba6664aeSJames Wright* - `-stg_rand_path`
947ba6664aeSJames Wright  - Path to the STGRand file
948ba6664aeSJames Wright  - `./STGRand.dat`
949ba6664aeSJames Wright  -
950ba6664aeSJames Wright
951ba6664aeSJames Wright* - `-stg_alpha`
952ba6664aeSJames Wright  - Growth rate of the wavemodes
953ba6664aeSJames Wright  - `1.01`
954ba6664aeSJames Wright  -
955ba6664aeSJames Wright
956ba6664aeSJames Wright* - `-stg_u0`
957ba6664aeSJames Wright  - Convective velocity, $U_0$
958ba6664aeSJames Wright  - `0.0`
959ba6664aeSJames Wright  - `m/s`
960ba6664aeSJames Wright
961ba6664aeSJames Wright* - `-stg_mean_only`
962ba6664aeSJames Wright  - Only impose the mean velocity (no fluctutations)
963ba6664aeSJames Wright  - `false`
964ba6664aeSJames Wright  -
965ba6664aeSJames Wright
96630af3636SJames Wright* - `-stg_strong`
96730af3636SJames Wright  - Strongly enforce the STG inflow boundary condition
96830af3636SJames Wright  - `false`
96930af3636SJames Wright  -
97030af3636SJames Wright
97189060322SJames Wright* - `-stg_fluctuating_IC`
97289060322SJames Wright  - "Extrude" the fluctuations through the domain as an initial condition
97389060322SJames Wright  - `false`
97489060322SJames Wright  -
97589060322SJames Wright
976ba6664aeSJames Wright:::
977ba6664aeSJames Wright
978ba6664aeSJames WrightThis problem can be run with the `blasius.yaml` file via:
979ba6664aeSJames Wright
980ba6664aeSJames Wright```
981ba6664aeSJames Wright./navierstokes -options_file blasius.yaml -stg_use true
982ba6664aeSJames Wright```
983ba6664aeSJames Wright
98417be3a41SJeremy L ThompsonNote the added `-stg_use true` flag
98517be3a41SJeremy L ThompsonThis overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow.
986