xref: /libCEED/examples/fluids/README.md (revision a2d72b6f1ed489cbeb0eb5f72cf8bf977e7ff50a)
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
113b219b86SJames Wright## Build instructions
123b219b86SJames Wright
13bc7bbd5dSLeila GhaffariBuild by using:
14ccaff030SJeremy L Thompson
15ccaff030SJeremy L Thompson`make`
16ccaff030SJeremy L Thompson
17bc7bbd5dSLeila Ghaffariand run with:
18ccaff030SJeremy L Thompson
19bc7bbd5dSLeila Ghaffari```
20bc7bbd5dSLeila Ghaffari./navierstokes -ceed [ceed] -problem [problem type] -degree [degree]
21bc7bbd5dSLeila Ghaffari```
22ccaff030SJeremy L Thompson
233b219b86SJames WrightIf you want to do *in situ* machine-learning training, specify `SMARTREDIS_DIR` in the make command like:
243b219b86SJames Wright
253b219b86SJames Wright```
263b219b86SJames Wrightmake SMARTREDIS_DIR=~/software/smartredis/install
273b219b86SJames Wright```
283b219b86SJames Wright
29bc7bbd5dSLeila Ghaffari## Runtime options
30ccaff030SJeremy L Thompson
31bc7bbd5dSLeila Ghaffari% inclusion-fluids-marker
32ccaff030SJeremy L Thompson
33bc7bbd5dSLeila GhaffariThe Navier-Stokes mini-app is controlled via command-line options.
34bc7bbd5dSLeila GhaffariThe following options are common among all problem types:
35ccaff030SJeremy L Thompson
36bc7bbd5dSLeila Ghaffari:::{list-table} Common Runtime Options
37bc7bbd5dSLeila Ghaffari:header-rows: 1
38ccaff030SJeremy L Thompson
39bc7bbd5dSLeila Ghaffari* - Option
40bc7bbd5dSLeila Ghaffari  - Description
41bc7bbd5dSLeila Ghaffari  - Default value
42ccaff030SJeremy L Thompson
43bc7bbd5dSLeila Ghaffari* - `-ceed`
44bc7bbd5dSLeila Ghaffari  - CEED resource specifier
45bc7bbd5dSLeila Ghaffari  - `/cpu/self/opt/blocked`
46ccaff030SJeremy L Thompson
473866774cSJames Wright* - `-test_type`
483866774cSJames Wright  - Run in test mode and specify whether solution (`solver`) or turbulent statistics (`turb_spanstats`) output should be verified
493866774cSJames Wright  - `none`
50ccaff030SJeremy L Thompson
51bc7bbd5dSLeila Ghaffari* - `-compare_final_state_atol`
52bc7bbd5dSLeila Ghaffari  - Test absolute tolerance
53bc7bbd5dSLeila Ghaffari  - `1E-11`
54ccaff030SJeremy L Thompson
55bc7bbd5dSLeila Ghaffari* - `-compare_final_state_filename`
56bc7bbd5dSLeila Ghaffari  - Test filename
57bc7bbd5dSLeila Ghaffari  -
58ccaff030SJeremy L Thompson
59bc7bbd5dSLeila Ghaffari* - `-problem`
609e529eadSJames Wright  - Problem to solve (`advection`, `density_current`, `euler_vortex`, `shocktube`, `blasius`, `channel`, `gaussian_wave`, and `taylor_green`)
61bc7bbd5dSLeila Ghaffari  - `density_current`
62ccaff030SJeremy L Thompson
63bc7bbd5dSLeila Ghaffari* - `-implicit`
649e576805SJames Wright  - Use implicit time integrator formulation
65bc7bbd5dSLeila Ghaffari  -
66ccaff030SJeremy L Thompson
67bc7bbd5dSLeila Ghaffari* - `-degree`
68bc7bbd5dSLeila Ghaffari  - Polynomial degree of tensor product basis (must be >= 1)
69bc7bbd5dSLeila Ghaffari  - `1`
70ccaff030SJeremy L Thompson
712288fb52SJeremy L Thompson* - `-q_extra`
72bc7bbd5dSLeila Ghaffari  - Number of extra quadrature points
73fc14f3f6SLeila Ghaffari  - `0`
74ccaff030SJeremy L Thompson
7537cbb16aSJed Brown* - `-ts_monitor_solution`
7637cbb16aSJed Brown  - PETSc output format, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`)
7737cbb16aSJed Brown  -
78ccaff030SJeremy L Thompson
7937cbb16aSJed Brown* - `-ts_monitor_solution_interval`
8037cbb16aSJed Brown  - Number of time steps between visualization output frames.
8137cbb16aSJed Brown  - `1`
8237cbb16aSJed Brown
8337cbb16aSJed Brown* - `-viewer_cgns_batch_size`
8437cbb16aSJed Brown  - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`).
8537cbb16aSJed Brown  - `20`
8637cbb16aSJed Brown
8737cbb16aSJed Brown* - `-checkpoint_interval`
8837cbb16aSJed Brown  - Number of steps between writing binary checkpoints. `0` has no output, `-1` outputs final state only
89bc7bbd5dSLeila Ghaffari  - `10`
90ccaff030SJeremy L Thompson
9137cbb16aSJed Brown* - `-checkpoint_vtk`
9237cbb16aSJed Brown  - Checkpoints include VTK (`*.vtu`) files for visualization. Consider `-ts_monitor_solution`instead.
9337cbb16aSJed Brown  - `false`
9437cbb16aSJed Brown
9537cbb16aSJed Brown* - `-viz_refine`
9637cbb16aSJed Brown  - Use regular refinement for VTK visualization
9737cbb16aSJed Brown  - `0`
9837cbb16aSJed Brown
99bc7bbd5dSLeila Ghaffari* - `-output_dir`
10037cbb16aSJed Brown  - Output directory for binary checkpoints and VTK files (if enabled).
101bc7bbd5dSLeila Ghaffari  - `.`
102ccaff030SJeremy L Thompson
10369293791SJames Wright* - `-output_add_stepnum2bin`
10469293791SJames Wright  - Whether to add step numbers to output binary files
10569293791SJames Wright  - `false`
10669293791SJames Wright
10769293791SJames Wright* - `-continue`
10869293791SJames Wright  - Continue from previous solution (input is step number of previous solution)
10969293791SJames Wright  - `0`
11069293791SJames Wright
11169293791SJames Wright* - `-continue_filename`
11269293791SJames Wright  - Path to solution binary file from which to continue from
11369293791SJames Wright  - `[output_dir]/ns-solution.bin`
11469293791SJames Wright
11569293791SJames Wright* - `-continue_time_filename`
1164de8550aSJed Brown  - Path to time stamp binary file (only for legacy checkpoints)
11769293791SJames Wright  - `[output_dir]/ns-time.bin`
11869293791SJames Wright
1194534a52eSLeila Ghaffari* - `-bc_wall`
1204534a52eSLeila Ghaffari  - Use wall boundary conditions on this list of faces
1214534a52eSLeila Ghaffari  -
1224534a52eSLeila Ghaffari
1234534a52eSLeila Ghaffari* - `-wall_comps`
1244534a52eSLeila Ghaffari  - An array of constrained component numbers for wall BCs
1254534a52eSLeila Ghaffari  -
1264534a52eSLeila Ghaffari
1279f844368SJames Wright* - `-bc_slip`
1289f844368SJames Wright  - Use weak slip boundary condition on this list of faces
1299f844368SJames Wright  -
1309f844368SJames Wright
1317c5bba50SJames Wright* - `-bc_symmetry_x`
1327c5bba50SJames Wright  - Use symmetry boundary conditions, for the x component, on this list of faces
1334534a52eSLeila Ghaffari  -
1344534a52eSLeila Ghaffari
1357c5bba50SJames Wright* - `-bc_symmetry_y`
1367c5bba50SJames Wright  - Use symmetry boundary conditions, for the y component, on this list of faces
1374534a52eSLeila Ghaffari  -
1384534a52eSLeila Ghaffari
1397c5bba50SJames Wright* - `-bc_symmetry_z`
1407c5bba50SJames Wright  - Use symmetry boundary conditions, for the z component, on this list of faces
1414534a52eSLeila Ghaffari  -
1424534a52eSLeila Ghaffari
1434534a52eSLeila Ghaffari* - `-bc_inflow`
1444534a52eSLeila Ghaffari  - Use inflow boundary conditions on this list of faces
1454534a52eSLeila Ghaffari  -
1464534a52eSLeila Ghaffari
1474534a52eSLeila Ghaffari* - `-bc_outflow`
1484534a52eSLeila Ghaffari  - Use outflow boundary conditions on this list of faces
1494534a52eSLeila Ghaffari  -
15089d0f5c0SLeila Ghaffari
1517ec884f8SJames Wright* - `-bc_freestream`
1527ec884f8SJames Wright  - Use freestream boundary conditions on this list of faces
1537ec884f8SJames Wright  -
1547ec884f8SJames Wright
155b7d66439SJames Wright* - `-ts_monitor_turbulence_spanstats_collect_interval`
156ee3de563SJames Wright  - Number of timesteps between statistics collection
157ee3de563SJames Wright  - `1`
158ee3de563SJames Wright
159b7d66439SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer`
160b7d66439SJames 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.
1618ed52730SJames Wright  -
1628ed52730SJames Wright
163b7d66439SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer_interval`
164ee3de563SJames Wright  - Number of timesteps between statistics file writing (`-1` means only at end of run)
165ee3de563SJames Wright  - `-1`
166ee3de563SJames Wright
167b7d66439SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer_cgns_batch_size`
1688ed52730SJames Wright  - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`).
1698ed52730SJames Wright  - `20`
1708ed52730SJames Wright
171ca69d878SAdeleke O. Bankole* - `-ts_monitor_wall_force`
172ca69d878SAdeleke O. Bankole  - Viewer for the force on each no-slip wall, e.g., `ascii:force.csv:ascii_csv` to write a CSV file.
173ca69d878SAdeleke O. Bankole  -
174ca69d878SAdeleke O. Bankole
1752526956eSJames Wright* - `-mesh_transform`
1762526956eSJames Wright  - Transform the mesh, usually for an initial box mesh.
1772526956eSJames Wright  - `none`
1782526956eSJames Wright
179bc7bbd5dSLeila Ghaffari* - `-snes_view`
180bc7bbd5dSLeila Ghaffari  - View PETSc `SNES` nonlinear solver configuration
181bc7bbd5dSLeila Ghaffari  -
18289d0f5c0SLeila Ghaffari
183bc7bbd5dSLeila Ghaffari* - `-log_view`
184bc7bbd5dSLeila Ghaffari  - View PETSc performance log
185bc7bbd5dSLeila Ghaffari  -
186ccaff030SJeremy L Thompson
187bc7bbd5dSLeila Ghaffari* - `-help`
188bc7bbd5dSLeila Ghaffari  - View comprehensive information about run-time options
189bc7bbd5dSLeila Ghaffari  -
190bc7bbd5dSLeila Ghaffari:::
191ccaff030SJeremy L Thompson
1927c5bba50SJames 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:
1934534a52eSLeila Ghaffari
19488626eedSJames Wright:::{list-table} 2D Face ID Labels
19588626eedSJames Wright:header-rows: 1
19688626eedSJames Wright* - PETSc Face Name
19788626eedSJames Wright  - Cartesian direction
19888626eedSJames Wright  - Face ID
19988626eedSJames Wright
20088626eedSJames Wright* - faceMarkerBottom
20188626eedSJames Wright  - -z
20288626eedSJames Wright  - 1
20388626eedSJames Wright
20488626eedSJames Wright* - faceMarkerRight
20588626eedSJames Wright  - +x
20688626eedSJames Wright  - 2
20788626eedSJames Wright
20888626eedSJames Wright* - faceMarkerTop
20988626eedSJames Wright  - +z
21088626eedSJames Wright  - 3
21188626eedSJames Wright
21288626eedSJames Wright* - faceMarkerLeft
21388626eedSJames Wright  - -x
21488626eedSJames Wright  - 4
21588626eedSJames Wright:::
21688626eedSJames Wright
217b5e826a6SLeila Ghaffari:::{list-table} 3D Face ID Labels
21888626eedSJames Wright:header-rows: 1
21988626eedSJames Wright* - PETSc Face Name
22088626eedSJames Wright  - Cartesian direction
22188626eedSJames Wright  - Face ID
22288626eedSJames Wright
22388626eedSJames Wright* - faceMarkerBottom
22488626eedSJames Wright  - -z
22588626eedSJames Wright  - 1
22688626eedSJames Wright
22788626eedSJames Wright* - faceMarkerTop
22888626eedSJames Wright  - +z
22988626eedSJames Wright  - 2
23088626eedSJames Wright
23188626eedSJames Wright* - faceMarkerFront
23288626eedSJames Wright  - -y
23388626eedSJames Wright  - 3
23488626eedSJames Wright
23588626eedSJames Wright* - faceMarkerBack
23688626eedSJames Wright  - +y
23788626eedSJames Wright  - 4
23888626eedSJames Wright
23988626eedSJames Wright* - faceMarkerRight
24088626eedSJames Wright  - +x
24188626eedSJames Wright  - 5
24288626eedSJames Wright
24388626eedSJames Wright* - faceMarkerLeft
24488626eedSJames Wright  - -x
24588626eedSJames Wright  - 6
24688626eedSJames Wright:::
2474534a52eSLeila Ghaffari
2488a94a473SJed Brown### Boundary conditions
2498a94a473SJed Brown
2503b219b86SJames WrightBoundary conditions for compressible viscous flows are notoriously tricky.
2513b219b86SJames WrightHere we offer some recommendations.
2528a94a473SJed Brown
2538a94a473SJed Brown#### Inflow
2548a94a473SJed Brown
2558a94a473SJed 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).
2568a94a473SJed BrownIt is stable and the least reflective boundary condition for acoustics.
2578a94a473SJed Brown
2588a94a473SJed BrownIf near a viscous wall, you may want a specified inflow profile.
2598a94a473SJed BrownUse `bc_inflow` and see {ref}`example-blasius` and discussion of synthetic turbulence generation for ways to analytically generate developed inflow profiles.
2608a94a473SJed 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.
2618a94a473SJed BrownThe strong approach gives sharper resolution of velocity structures.
2628a94a473SJed BrownWe have described the primitive variable formulation here; the conservative variants are similar, but not equivalent.
2638a94a473SJed Brown
264f3f66076SJames Wright#### Outflow
2658a94a473SJed Brown
2668a94a473SJed BrownIf you know the complete exterior state, `bc_freestream` is the least reflective boundary condition, but is disruptive to viscous flow structures.
2678a94a473SJed BrownIf thermal anomalies must exit the domain, the Riemann solver must resolve the contact wave to avoid reflections.
2688a94a473SJed 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.
2698a94a473SJed Brown
2708a94a473SJed 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.
2718a94a473SJed Brown
2728a94a473SJed 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).
2738a94a473SJed BrownIn our experience, `riemann` is slightly less reflective but produces similar flows in cases of strict outflow.
2748a94a473SJed BrownThe `pressure` variant is retained to facilitate comparison with other codes, such as PHASTA-C, but we recommend `riemann` for general use.
2758a94a473SJed Brown
276f3f66076SJames Wright#### Periodicity
2778a94a473SJed Brown
2788a94a473SJed BrownPETSc provides two ways to specify periodicity:
2798a94a473SJed Brown
2808a94a473SJed Brown1. Topological periodicity, in which the donor and receiver dofs are the same, obtained using:
2818a94a473SJed Brown
2828a94a473SJed Brown```yaml
2838a94a473SJed Browndm_plex:
2848a94a473SJed Brown  shape: box
2858a94a473SJed Brown  box_faces: 10,12,4
2868a94a473SJed Brown  box_bd: none,none,periodic
2878a94a473SJed Brown```
2888a94a473SJed Brown
289ca69d878SAdeleke O. BankoleThe coordinates for such cases are stored as a new field with special cell-based indexing to enable wrapping through the boundary.
290ca69d878SAdeleke O. BankoleThis choice of coordinates prevents evaluating boundary integrals that cross the periodicity, such as for the outflow Riemann problem in the presence of spanwise periodicity.
291ca69d878SAdeleke O. Bankole
292ca69d878SAdeleke O. Bankole2. Isoperiodicity, in which the donor and receiver dofs are distinct in local vectors. This is obtained using `zbox`, as in:
293ca69d878SAdeleke O. Bankole
294ca69d878SAdeleke O. Bankole```yaml
295ca69d878SAdeleke O. Bankoledm_plex:
296ca69d878SAdeleke O. Bankole  shape: zbox
297ca69d878SAdeleke O. Bankole  box_faces: 10,12,4
298ca69d878SAdeleke O. Bankole  box_bd: none,none,periodic
299ca69d878SAdeleke O. Bankole```
300ca69d878SAdeleke O. Bankole
301ca69d878SAdeleke O. BankoleIsoperiodicity enables standard boundary integrals, and is recommended for general use.
302ca69d878SAdeleke O. BankoleAt the time of this writing, it only supports one direction of periodicity.
303ca69d878SAdeleke O. BankoleThe `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.
3048a94a473SJed Brown
305019b7682STimothy Aiken### Advection
306019b7682STimothy Aiken
30717be3a41SJeremy 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$.
3089e529eadSJames WrightThe advection problems can be run in both 2D and 3D, based on the DM defined for the problem.
30994a05c6fSJames WrightThe following additional command-line options are available:
310019b7682STimothy Aiken
31194a05c6fSJames Wright:::{list-table} Advection Runtime Options
312bc7bbd5dSLeila Ghaffari:header-rows: 1
313e43605a5SLeila Ghaffari
314bc7bbd5dSLeila Ghaffari* - Option
315bc7bbd5dSLeila Ghaffari  - Description
316bc7bbd5dSLeila Ghaffari  - Default value
317bc7bbd5dSLeila Ghaffari  - Unit
318e43605a5SLeila Ghaffari
319bc7bbd5dSLeila Ghaffari* - `-rc`
320bc7bbd5dSLeila Ghaffari  - Characteristic radius of thermal bubble
321bc7bbd5dSLeila Ghaffari  - `1000`
322bc7bbd5dSLeila Ghaffari  - `m`
323e43605a5SLeila Ghaffari
324bc7bbd5dSLeila Ghaffari* - `-units_meter`
325bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
326bc7bbd5dSLeila Ghaffari  - `1E-2`
327bc7bbd5dSLeila Ghaffari  -
328e43605a5SLeila Ghaffari
329bc7bbd5dSLeila Ghaffari* - `-units_second`
330bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
331bc7bbd5dSLeila Ghaffari  - `1E-2`
332bc7bbd5dSLeila Ghaffari  -
333e43605a5SLeila Ghaffari
334bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
335bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
336bc7bbd5dSLeila Ghaffari  - `1E-6`
337bc7bbd5dSLeila Ghaffari  -
338e43605a5SLeila Ghaffari
339bc7bbd5dSLeila Ghaffari* - `-strong_form`
340bc7bbd5dSLeila Ghaffari  - Strong (1) or weak/integrated by parts (0) residual
341bc7bbd5dSLeila Ghaffari  - `0`
342bc7bbd5dSLeila Ghaffari  -
343e43605a5SLeila Ghaffari
344bc7bbd5dSLeila Ghaffari* - `-stab`
345bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
346bc7bbd5dSLeila Ghaffari  - `none`
347bc7bbd5dSLeila Ghaffari  -
348e43605a5SLeila Ghaffari
34944e8f77dSJames Wright* - `-stab_tau`
35044e8f77dSJames Wright  - Formulation for $\tau$ in stabilization (`ctau`, `advdiff_shakib`)
35144e8f77dSJames Wright  - `ctau`
35244e8f77dSJames Wright  -
35344e8f77dSJames Wright
35444e8f77dSJames Wright* - `-Ctau_t`
35544e8f77dSJames Wright  - Scaling factor on the temporal portion of the $\tau$ formulation
35644e8f77dSJames Wright  - 0.
35744e8f77dSJames Wright  -
35844e8f77dSJames Wright
35944e8f77dSJames Wright* - `-Ctau_a`
36044e8f77dSJames Wright  - Scaling factor on the advection portion of the $\tau$ formulation
36144e8f77dSJames Wright  - $P^2$
36244e8f77dSJames Wright  -
36344e8f77dSJames Wright
364bc7bbd5dSLeila Ghaffari* - `-CtauS`
365bc7bbd5dSLeila Ghaffari  - Scale coefficient for stabilization tau (nondimensional)
366bc7bbd5dSLeila Ghaffari  - `0`
367bc7bbd5dSLeila Ghaffari  -
368e43605a5SLeila Ghaffari
369bc7bbd5dSLeila Ghaffari* - `-wind_type`
370bc7bbd5dSLeila Ghaffari  - Wind type in Advection (`rotation` or `translation`)
371bc7bbd5dSLeila Ghaffari  - `rotation`
372bc7bbd5dSLeila Ghaffari  -
373e43605a5SLeila Ghaffari
374bc7bbd5dSLeila Ghaffari* - `-wind_translation`
375bc7bbd5dSLeila Ghaffari  - Constant wind vector when `-wind_type translation`
376bc7bbd5dSLeila Ghaffari  - `1,0,0`
377bc7bbd5dSLeila Ghaffari  -
378e43605a5SLeila Ghaffari
379d1d77723SJames Wright* - `-diffusion_coeff`
380d1d77723SJames Wright  - Diffusion coefficient
381d1d77723SJames Wright  - `0`
382d1d77723SJames Wright  -
383d1d77723SJames Wright
384bc7bbd5dSLeila Ghaffari* - `-E_wind`
385bc7bbd5dSLeila Ghaffari  - Total energy of inflow wind when `-wind_type translation`
386bc7bbd5dSLeila Ghaffari  - `1E6`
387bc7bbd5dSLeila Ghaffari  - `J`
388e43605a5SLeila Ghaffari
3897b77ddfdSJames Wright* - `-advection_ic_type`
3907b77ddfdSJames Wright  - Initial condition type, from `sphere`, `cylinder`, `cosine_hill`, and `skew`
391f3f66076SJames Wright  - `sphere`
392bc7bbd5dSLeila Ghaffari  -
393e43605a5SLeila Ghaffari
394bc7bbd5dSLeila Ghaffari* - `-bubble_continuity`
3959e529eadSJames Wright  - Different shapes for `sphere` and `cylinder` initial conditions, from `smooth`, `back_sharp`, `thick`, or `cosine`
396bc7bbd5dSLeila Ghaffari  - `smooth`
397bc7bbd5dSLeila Ghaffari  -
398bc7bbd5dSLeila Ghaffari:::
399ccaff030SJeremy L Thompson
40094a05c6fSJames WrightFor 3D advection, an example of the `rotation` mode can be run with:
401ccaff030SJeremy L Thompson
402bc7bbd5dSLeila Ghaffari```
4034534a52eSLeila 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
404bc7bbd5dSLeila Ghaffari```
405ccaff030SJeremy L Thompson
406bc7bbd5dSLeila Ghaffariand the `translation` mode with:
407ccaff030SJeremy L Thompson
408bc7bbd5dSLeila Ghaffari```
4094534a52eSLeila 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
410bc7bbd5dSLeila Ghaffari```
411ccaff030SJeremy L Thompson
41294a05c6fSJames WrightFor 2D advection, an example of the `rotation` mode can be run with:
41394a05c6fSJames Wright
41494a05c6fSJames Wright```
4159e529eadSJames 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
41694a05c6fSJames Wright```
41794a05c6fSJames Wright
41894a05c6fSJames Wrightand the `translation` mode with:
41994a05c6fSJames Wright
42094a05c6fSJames Wright```
4219e529eadSJames 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
42294a05c6fSJames Wright```
42394a05c6fSJames WrightNote the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`.
42494a05c6fSJames Wright
425019b7682STimothy Aiken### Inviscid Ideal Gas
426019b7682STimothy Aiken
427019b7682STimothy Aiken#### Isentropic Euler vortex
428019b7682STimothy Aiken
429bc7bbd5dSLeila GhaffariFor the Isentropic Vortex problem, the following additional command-line options are available:
430ccaff030SJeremy L Thompson
431bc7bbd5dSLeila Ghaffari:::{list-table} Isentropic Vortex Runtime Options
432bc7bbd5dSLeila Ghaffari:header-rows: 1
433ccaff030SJeremy L Thompson
434bc7bbd5dSLeila Ghaffari* - Option
435bc7bbd5dSLeila Ghaffari  - Description
436bc7bbd5dSLeila Ghaffari  - Default value
437bc7bbd5dSLeila Ghaffari  - Unit
438ccaff030SJeremy L Thompson
439bc7bbd5dSLeila Ghaffari* - `-center`
440bc7bbd5dSLeila Ghaffari  - Location of vortex center
441bc7bbd5dSLeila Ghaffari  - `(lx,ly,lz)/2`
442bc7bbd5dSLeila Ghaffari  - `(m,m,m)`
443ccaff030SJeremy L Thompson
444bc7bbd5dSLeila Ghaffari* - `-units_meter`
445bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
446bc7bbd5dSLeila Ghaffari  - `1E-2`
447bc7bbd5dSLeila Ghaffari  -
448ccaff030SJeremy L Thompson
449bc7bbd5dSLeila Ghaffari* - `-units_second`
450bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
451bc7bbd5dSLeila Ghaffari  - `1E-2`
452bc7bbd5dSLeila Ghaffari  -
453ccaff030SJeremy L Thompson
454bc7bbd5dSLeila Ghaffari* - `-mean_velocity`
455bc7bbd5dSLeila Ghaffari  - Background velocity vector
456bc7bbd5dSLeila Ghaffari  - `(1,1,0)`
457bc7bbd5dSLeila Ghaffari  -
458ccaff030SJeremy L Thompson
459bc7bbd5dSLeila Ghaffari* - `-vortex_strength`
460bc7bbd5dSLeila Ghaffari  - Strength of vortex < 10
461bc7bbd5dSLeila Ghaffari  - `5`
462bc7bbd5dSLeila Ghaffari  -
463932417b3SJed Brown
464932417b3SJed Brown* - `-c_tau`
465932417b3SJed Brown  - Stabilization constant
466504dc8e0SLeila Ghaffari  - `0.5`
467932417b3SJed Brown  -
468bc7bbd5dSLeila Ghaffari:::
469ccaff030SJeremy L Thompson
470bc7bbd5dSLeila GhaffariThis problem can be run with:
471ccaff030SJeremy L Thompson
472bc7bbd5dSLeila Ghaffari```
4737c5bba50SJames 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.
474bc7bbd5dSLeila Ghaffari```
475ccaff030SJeremy L Thompson
476019b7682STimothy Aiken#### Sod shock tube
477019b7682STimothy Aiken
478019b7682STimothy AikenFor the Shock Tube problem, the following additional command-line options are available:
479019b7682STimothy Aiken
480019b7682STimothy Aiken:::{list-table} Shock Tube Runtime Options
481019b7682STimothy Aiken:header-rows: 1
482019b7682STimothy Aiken
483019b7682STimothy Aiken* - Option
484019b7682STimothy Aiken  - Description
485019b7682STimothy Aiken  - Default value
486019b7682STimothy Aiken  - Unit
487019b7682STimothy Aiken
488019b7682STimothy Aiken* - `-units_meter`
489019b7682STimothy Aiken  - 1 meter in scaled length units
490019b7682STimothy Aiken  - `1E-2`
491019b7682STimothy Aiken  -
492019b7682STimothy Aiken
493019b7682STimothy Aiken* - `-units_second`
494019b7682STimothy Aiken  - 1 second in scaled time units
495019b7682STimothy Aiken  - `1E-2`
496019b7682STimothy Aiken  -
497019b7682STimothy Aiken
498019b7682STimothy Aiken* - `-yzb`
499019b7682STimothy Aiken  - Use YZB discontinuity capturing
500019b7682STimothy Aiken  - `none`
501019b7682STimothy Aiken  -
502019b7682STimothy Aiken
503019b7682STimothy Aiken* - `-stab`
504019b7682STimothy Aiken  - Stabilization method (`none`, `su`, or `supg`)
505019b7682STimothy Aiken  - `none`
506019b7682STimothy Aiken  -
507019b7682STimothy Aiken:::
508019b7682STimothy Aiken
509019b7682STimothy AikenThis problem can be run with:
510019b7682STimothy Aiken
511019b7682STimothy Aiken```
5127c5bba50SJames 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
513019b7682STimothy Aiken```
514019b7682STimothy Aiken
515019b7682STimothy Aiken### Newtonian viscosity, Ideal Gas
516019b7682STimothy Aiken
51788626eedSJames WrightFor the Density Current, Channel, and Blasius problems, the following common command-line options are available:
518ccaff030SJeremy L Thompson
51988626eedSJames Wright:::{list-table} Newtonian Ideal Gas problems Runtime Options
520bc7bbd5dSLeila Ghaffari:header-rows: 1
521ccaff030SJeremy L Thompson
522bc7bbd5dSLeila Ghaffari* - Option
523bc7bbd5dSLeila Ghaffari  - Description
524bc7bbd5dSLeila Ghaffari  - Default value
525bc7bbd5dSLeila Ghaffari  - Unit
526ccaff030SJeremy L Thompson
527bc7bbd5dSLeila Ghaffari* - `-units_meter`
528bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
52988626eedSJames Wright  - `1`
530bc7bbd5dSLeila Ghaffari  -
531ccaff030SJeremy L Thompson
532bc7bbd5dSLeila Ghaffari* - `-units_second`
533bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
53488626eedSJames Wright  - `1`
535bc7bbd5dSLeila Ghaffari  -
536ccaff030SJeremy L Thompson
537bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
538bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
53988626eedSJames Wright  - `1`
540bc7bbd5dSLeila Ghaffari  -
541ccaff030SJeremy L Thompson
542bc7bbd5dSLeila Ghaffari* - `-units_Kelvin`
543bc7bbd5dSLeila Ghaffari  - 1 Kelvin in scaled temperature units
544bc7bbd5dSLeila Ghaffari  - `1`
545bc7bbd5dSLeila Ghaffari  -
546ccaff030SJeremy L Thompson
547bc7bbd5dSLeila Ghaffari* - `-stab`
548bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
549bc7bbd5dSLeila Ghaffari  - `none`
550bc7bbd5dSLeila Ghaffari  -
551ccaff030SJeremy L Thompson
552932417b3SJed Brown* - `-c_tau`
55388626eedSJames Wright  - Stabilization constant, $c_\tau$
554504dc8e0SLeila Ghaffari  - `0.5`
555932417b3SJed Brown  -
556932417b3SJed Brown
55788626eedSJames Wright* - `-Ctau_t`
55888626eedSJames Wright  - Stabilization time constant, $C_t$
55988626eedSJames Wright  - `1.0`
56088626eedSJames Wright  -
561ccaff030SJeremy L Thompson
56288626eedSJames Wright* - `-Ctau_v`
56388626eedSJames Wright  - Stabilization viscous constant, $C_v$
56494c01735SLeila Ghaffari  - `36, 60, 128 for degree = 1, 2, 3`
56588626eedSJames Wright  -
566ccaff030SJeremy L Thompson
56788626eedSJames Wright* - `-Ctau_C`
56888626eedSJames Wright  - Stabilization continuity constant, $C_c$
56988626eedSJames Wright  - `1.0`
57088626eedSJames Wright  -
571ccaff030SJeremy L Thompson
57288626eedSJames Wright* - `-Ctau_M`
57388626eedSJames Wright  - Stabilization momentum constant, $C_m$
57488626eedSJames Wright  - `1.0`
57588626eedSJames Wright  -
57688626eedSJames Wright
57788626eedSJames Wright* - `-Ctau_E`
57888626eedSJames Wright  - Stabilization energy constant, $C_E$
57988626eedSJames Wright  - `1.0`
58088626eedSJames Wright  -
581ccaff030SJeremy L Thompson
582bc7bbd5dSLeila Ghaffari* - `-cv`
583bc7bbd5dSLeila Ghaffari  - Heat capacity at constant volume
584bc7bbd5dSLeila Ghaffari  - `717`
585bc7bbd5dSLeila Ghaffari  - `J/(kg K)`
586ccaff030SJeremy L Thompson
587bc7bbd5dSLeila Ghaffari* - `-cp`
588bc7bbd5dSLeila Ghaffari  - Heat capacity at constant pressure
589bc7bbd5dSLeila Ghaffari  - `1004`
590bc7bbd5dSLeila Ghaffari  - `J/(kg K)`
591ccaff030SJeremy L Thompson
592a2726bdbSJames Wright* - `-gravity`
593a2726bdbSJames Wright  - Gravitational acceleration vector
594a2726bdbSJames Wright  - `0,0,0`
595bc7bbd5dSLeila Ghaffari  - `m/s^2`
596ccaff030SJeremy L Thompson
597bc7bbd5dSLeila Ghaffari* - `-lambda`
598bc7bbd5dSLeila Ghaffari  - Stokes hypothesis second viscosity coefficient
599bc7bbd5dSLeila Ghaffari  - `-2/3`
600bc7bbd5dSLeila Ghaffari  -
601ccaff030SJeremy L Thompson
602bc7bbd5dSLeila Ghaffari* - `-mu`
603bc7bbd5dSLeila Ghaffari  - Shear dynamic viscosity coefficient
604a2726bdbSJames Wright  - `1.8e-5`
605bc7bbd5dSLeila Ghaffari  -  `Pa s`
60677841947SLeila Ghaffari
607bc7bbd5dSLeila Ghaffari* - `-k`
608bc7bbd5dSLeila Ghaffari  - Thermal conductivity
609bc7bbd5dSLeila Ghaffari  - `0.02638`
610bc7bbd5dSLeila Ghaffari  - `W/(m K)`
611a1df05f8SJed Brown
612a1df05f8SJed Brown* - `-newtonian_unit_tests`
613a1df05f8SJed Brown  - Developer option to test properties
614a1df05f8SJed Brown  - `false`
615a1df05f8SJed Brown  - boolean
616de2fdd78SJames Wright
6175c0afad3SJames Wright* - `-state_var`
618*a2d72b6fSJames 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})$
6195c0afad3SJames Wright  - `conservative`
6205c0afad3SJames Wright  - string
621530ad8c4SKenneth E. Jansen
622530ad8c4SKenneth E. Jansen* - `-idl_decay_time`
623530ad8c4SKenneth E. Jansen  - Characteristic timescale of the pressure deviance decay. The timestep is good starting point
624530ad8c4SKenneth E. Jansen  - `-1` (disabled)
625530ad8c4SKenneth E. Jansen  - `s`
626530ad8c4SKenneth E. Jansen
627530ad8c4SKenneth E. Jansen* - `-idl_start`
628530ad8c4SKenneth E. Jansen  - Start of IDL in the x direction
629530ad8c4SKenneth E. Jansen  - `0`
630530ad8c4SKenneth E. Jansen  - `m`
631530ad8c4SKenneth E. Jansen
632530ad8c4SKenneth E. Jansen* - `-idl_length`
633530ad8c4SKenneth E. Jansen  - Length of IDL in the positive x direction
634530ad8c4SKenneth E. Jansen  - `0`
635530ad8c4SKenneth E. Jansen  - `m`
636530ad8c4SKenneth E. Jansen
6372249ac91SJames Wright* - `-idl_pressure`
6382249ac91SJames Wright  - Pressure used for IDL reference pressure
6392249ac91SJames Wright  -  `-reference_pressure`
6402249ac91SJames Wright  - `Pa`
6412249ac91SJames Wright
642c79d6dc9SJames Wright* - `-sgs_model_type`
643c79d6dc9SJames Wright  - Type of subgrid stress model to use. Currently only `data_driven` is available
644c79d6dc9SJames Wright  - `none`
645c79d6dc9SJames Wright  - string
646c79d6dc9SJames Wright
647c79d6dc9SJames Wright* - `-sgs_model_dd_leakyrelu_alpha`
648c79d6dc9SJames Wright  - Slope parameter for Leaky ReLU activation function. `0` corresponds to normal ReLU
649c79d6dc9SJames Wright  - 0
650c79d6dc9SJames Wright  -
651c79d6dc9SJames Wright
652c79d6dc9SJames Wright* - `-sgs_model_dd_parameter_dir`
653c79d6dc9SJames Wright  - Path to directory with data-driven model parameters (weights, biases, etc.)
654c79d6dc9SJames Wright  - `./dd_sgs_parameters`
655c79d6dc9SJames Wright  - string
656c79d6dc9SJames Wright
657013a5551SJames Wright* - `-sgs_model_dd_model_implementation`
658013a5551SJames Wright  - Which computational implementation to use for SGS DD model (`fused`, `sequential_ceed`, `sequential_torch`)
659013a5551SJames Wright  - `fused`
660013a5551SJames Wright  - string
661013a5551SJames Wright
662013a5551SJames Wright* - `-sgs_model_dd_torch_model_path`
663013a5551SJames Wright  - Path to the PyTorch `*.pt` file containing the DD inference model
664013a5551SJames Wright  -
665013a5551SJames Wright  - string
666013a5551SJames Wright
667013a5551SJames Wright* - `-sgs_model_dd_torch_model_device`
668013a5551SJames Wright  - What hardware to perform the model inference on (`cpu`, `cuda`, `hip`, `xpu`)
669013a5551SJames Wright  - Default matches the libCEED backend
670013a5551SJames Wright  - string
671cf90ec9bSJames Wright
6723f89fbfdSJames Wright* - `-diff_filter_monitor`
6733f89fbfdSJames Wright  - Enable differential filter TSMonitor
6743f89fbfdSJames Wright  - `false`
6753f89fbfdSJames Wright  - boolean
6763f89fbfdSJames Wright
6773f89fbfdSJames Wright* - `-diff_filter_grid_based_width`
6783f89fbfdSJames Wright  - Use filter width based on the grid size
6793f89fbfdSJames Wright  - `false`
6803f89fbfdSJames Wright  - boolean
6813f89fbfdSJames Wright
6823f89fbfdSJames Wright* - `-diff_filter_width_scaling`
6833f89fbfdSJames Wright  - Anisotropic scaling for filter width in wall-aligned coordinates (snz)
6843f89fbfdSJames Wright  - `1,1,1`
6853f89fbfdSJames Wright  - `m`
6863f89fbfdSJames Wright
6873f89fbfdSJames Wright* - `-diff_filter_kernel_scaling`
6883f89fbfdSJames Wright  - Scaling to make differential kernel size equivalent to other filter kernels
6893f89fbfdSJames Wright  - `0.1`
6903f89fbfdSJames Wright  - `m^2`
6913f89fbfdSJames Wright
6923f89fbfdSJames Wright* - `-diff_filter_wall_damping_function`
6933f89fbfdSJames Wright  - Damping function to use at the wall for anisotropic filtering (`none`, `van_driest`)
6943f89fbfdSJames Wright  - `none`
6953f89fbfdSJames Wright  - string
6963f89fbfdSJames Wright
6973f89fbfdSJames Wright* - `-diff_filter_wall_damping_constant`
6989d9c52bbSJed Brown  - Constant for the wall-damping function. $A^+$ for `van_driest` damping function.
6993f89fbfdSJames Wright  - 25
7003f89fbfdSJames Wright  -
7013f89fbfdSJames Wright
7023f89fbfdSJames Wright* - `-diff_filter_friction_length`
7033f89fbfdSJames Wright  - Friction length associated with the flow, $\delta_\nu$. Used in wall-damping functions
7043f89fbfdSJames Wright  - 0
7053f89fbfdSJames Wright  - `m`
7063f89fbfdSJames Wright
7073b219b86SJames Wright* - `-sgs_train_enable`
7083b219b86SJames Wright  - Whether to enable *in situ* training of data-driven SGS model. Require building with SmartRedis.
7093b219b86SJames Wright  - `false`
7103b219b86SJames Wright  - boolean
7113b219b86SJames Wright
7123b219b86SJames Wright* - `-sgs_train_write_data_interval`
7133b219b86SJames Wright  - Number of timesteps between writing training data into SmartRedis database
7143b219b86SJames Wright  - `1`
7153b219b86SJames Wright  -
7163b219b86SJames Wright
7173b219b86SJames Wright* - `-sgs_train_overwrite_data`
7183b219b86SJames Wright  - Whether new training data should overwrite old data on database
7193b219b86SJames Wright  - `true`
7203b219b86SJames Wright  - boolean
7213b219b86SJames Wright
722c79b0730SJames Wright* - `-sgs_train_filter_widths`
723c79b0730SJames Wright  - List of scalar values for different filter widths to calculate for training data
724c79b0730SJames Wright  -
725c79b0730SJames Wright  - `m`
726c79b0730SJames Wright
7273b219b86SJames Wright* - `-smartsim_collocated_num_ranks`
7283b219b86SJames Wright  - Number of MPI ranks associated with each collocated database (i.e. ranks per node)
7293b219b86SJames Wright  - `1`
7303b219b86SJames Wright  -
731bc7bbd5dSLeila Ghaffari:::
73277841947SLeila Ghaffari
733530ad8c4SKenneth E. Jansen#### Gaussian Wave
7347ec884f8SJames Wright
735530ad8c4SKenneth E. JansenThe Gaussian wave problem has the following command-line options in addition to the Newtonian Ideal Gas options:
7367ec884f8SJames Wright
737530ad8c4SKenneth E. Jansen:::{list-table} Gaussian Wave Runtime Options
7387ec884f8SJames Wright:header-rows: 1
7397ec884f8SJames Wright
7407ec884f8SJames Wright* - Option
7417ec884f8SJames Wright  - Description
7427ec884f8SJames Wright  - Default value
7437ec884f8SJames Wright  - Unit
7447ec884f8SJames Wright
745f1e435c9SJed Brown* - `-freestream_riemann`
746f1e435c9SJed Brown  - Riemann solver for boundaries (HLL or HLLC)
747f1e435c9SJed Brown  - `hllc`
748f1e435c9SJed Brown  -
749f1e435c9SJed Brown
750f1e435c9SJed Brown* - `-freestream_velocity`
7517ec884f8SJames Wright  - Freestream velocity vector
7527ec884f8SJames Wright  - `0,0,0`
7537ec884f8SJames Wright  - `m/s`
7547ec884f8SJames Wright
755f1e435c9SJed Brown* - `-freestream_temperature`
7567ec884f8SJames Wright  - Freestream temperature
7577ec884f8SJames Wright  - `288`
7587ec884f8SJames Wright  - `K`
7597ec884f8SJames Wright
760f1e435c9SJed Brown* - `-freestream_pressure`
76189e3cb53SJames Wright  - Freestream pressure
7627ec884f8SJames Wright  - `1.01e5`
7637ec884f8SJames Wright  - `Pa`
7647ec884f8SJames Wright
7657ec884f8SJames Wright* - `-epicenter`
7667ec884f8SJames Wright  - Coordinates of center of perturbation
7677ec884f8SJames Wright  - `0,0,0`
7687ec884f8SJames Wright  - `m`
7697ec884f8SJames Wright
7707ec884f8SJames Wright* - `-amplitude`
7717ec884f8SJames Wright  - Amplitude of the perturbation
7727ec884f8SJames Wright  - `0.1`
7737ec884f8SJames Wright  -
7747ec884f8SJames Wright
7757ec884f8SJames Wright* - `-width`
7767ec884f8SJames Wright  - Width parameter of the perturbation
7777ec884f8SJames Wright  - `0.002`
7787ec884f8SJames Wright  - `m`
7797ec884f8SJames Wright
7807ec884f8SJames Wright:::
7817ec884f8SJames Wright
782530ad8c4SKenneth E. JansenThis problem can be run with the `gaussianwave.yaml` file via:
7837ec884f8SJames Wright
7847ec884f8SJames Wright```
785530ad8c4SKenneth E. Jansen./navierstokes -options_file gaussianwave.yaml
7867ec884f8SJames Wright```
7877ec884f8SJames Wright
788530ad8c4SKenneth E. Jansen```{literalinclude} ../../../../../examples/fluids/gaussianwave.yaml
7897ec884f8SJames Wright:language: yaml
7907ec884f8SJames Wright```
791a1df05f8SJed Brown
792d310b3d3SAdeleke O. Bankole#### Vortex Shedding - Flow past Cylinder
793d310b3d3SAdeleke O. Bankole
794d310b3d3SAdeleke O. BankoleThe vortex shedding, flow past cylinder problem has the following command-line options in addition to the Newtonian Ideal Gas options:
795d310b3d3SAdeleke O. Bankole
796d310b3d3SAdeleke O. Bankole:::{list-table} Vortex Shedding Runtime Options
797d310b3d3SAdeleke O. Bankole:header-rows: 1
798d310b3d3SAdeleke O. Bankole
799d310b3d3SAdeleke O. Bankole* - Option
800d310b3d3SAdeleke O. Bankole  - Description
801d310b3d3SAdeleke O. Bankole  - Default value
802d310b3d3SAdeleke O. Bankole  - Unit
803d310b3d3SAdeleke O. Bankole
804d310b3d3SAdeleke O. Bankole* - `-freestream_velocity`
805d310b3d3SAdeleke O. Bankole  - Freestream velocity vector
806d310b3d3SAdeleke O. Bankole  - `0,0,0`
807d310b3d3SAdeleke O. Bankole  - `m/s`
808d310b3d3SAdeleke O. Bankole
809d310b3d3SAdeleke O. Bankole* - `-freestream_temperature`
810d310b3d3SAdeleke O. Bankole  - Freestream temperature
811d310b3d3SAdeleke O. Bankole  - `288`
812d310b3d3SAdeleke O. Bankole  - `K`
813d310b3d3SAdeleke O. Bankole
814d310b3d3SAdeleke O. Bankole* - `-freestream_pressure`
815d310b3d3SAdeleke O. Bankole  - Freestream pressure
816d310b3d3SAdeleke O. Bankole  - `1.01e5`
817d310b3d3SAdeleke O. Bankole  - `Pa`
818d310b3d3SAdeleke O. Bankole
819d310b3d3SAdeleke O. Bankole:::
820d310b3d3SAdeleke O. Bankole
821d310b3d3SAdeleke O. BankoleThe initial condition is taken from `-reference_temperature` and `-reference_pressure`.
822d310b3d3SAdeleke O. BankoleTo run this problem, first generate a mesh:
823d310b3d3SAdeleke O. Bankole
824d310b3d3SAdeleke O. Bankole```console
825d310b3d3SAdeleke O. Bankole$ make -C examples/fluids/meshes
826d310b3d3SAdeleke O. Bankole```
827d310b3d3SAdeleke O. Bankole
828d310b3d3SAdeleke O. BankoleThen run by building the executable and running:
829d310b3d3SAdeleke O. Bankole
830d310b3d3SAdeleke O. Bankole```console
831d310b3d3SAdeleke O. Bankole$ make build/fluids-navierstokes
832ca69d878SAdeleke O. Bankole$ mpiexec -n 6 build/fluids-navierstokes -options_file examples/fluids/vortexshedding.yaml -{ts,snes}_monitor_
833d310b3d3SAdeleke O. Bankole```
834d310b3d3SAdeleke O. Bankole
835ca69d878SAdeleke O. BankoleThe vortex shedding period is roughly 5.6 and this problem runs until time 100 (2000 time steps).
836ca69d878SAdeleke O. BankoleThe 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.
837ca69d878SAdeleke O. Bankole
838ca69d878SAdeleke O. Bankole```console
839d6734f85SAdeleke O. Bankole$ python examples/fluids/postprocess/vortexshedding.py
840ca69d878SAdeleke O. Bankole```
841d310b3d3SAdeleke O. Bankole
842d310b3d3SAdeleke O. Bankole```{literalinclude} ../../../../../examples/fluids/vortexshedding.yaml
843d310b3d3SAdeleke O. Bankole:language: yaml
844d310b3d3SAdeleke O. Bankole```
845d310b3d3SAdeleke O. Bankole
846019b7682STimothy Aiken#### Density current
847019b7682STimothy Aiken
848061ff11eSJames WrightThe Density Current problem has the following command-line options in addition to the Newtonian Ideal Gas options:
84988626eedSJames Wright
85088626eedSJames Wright:::{list-table} Density Current Runtime Options
85188626eedSJames Wright:header-rows: 1
85288626eedSJames Wright
85388626eedSJames Wright* - Option
85488626eedSJames Wright  - Description
85588626eedSJames Wright  - Default value
85688626eedSJames Wright  - Unit
85788626eedSJames Wright
85888626eedSJames Wright* - `-center`
85988626eedSJames Wright  - Location of bubble center
86088626eedSJames Wright  - `(lx,ly,lz)/2`
86188626eedSJames Wright  - `(m,m,m)`
86288626eedSJames Wright
86388626eedSJames Wright* - `-dc_axis`
86488626eedSJames Wright  - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric
86588626eedSJames Wright  - `(0,0,0)`
86688626eedSJames Wright  -
86788626eedSJames Wright
86888626eedSJames Wright* - `-rc`
86988626eedSJames Wright  - Characteristic radius of thermal bubble
87088626eedSJames Wright  - `1000`
87188626eedSJames Wright  - `m`
87288626eedSJames Wright
87388626eedSJames Wright* - `-theta0`
87488626eedSJames Wright  - Reference potential temperature
87588626eedSJames Wright  - `300`
87688626eedSJames Wright  - `K`
87788626eedSJames Wright
87888626eedSJames Wright* - `-thetaC`
87988626eedSJames Wright  - Perturbation of potential temperature
88088626eedSJames Wright  - `-15`
88188626eedSJames Wright  - `K`
88288626eedSJames Wright
88388626eedSJames Wright* - `-P0`
88488626eedSJames Wright  - Atmospheric pressure
88588626eedSJames Wright  - `1E5`
88688626eedSJames Wright  - `Pa`
88788626eedSJames Wright
88888626eedSJames Wright* - `-N`
88988626eedSJames Wright  - Brunt-Vaisala frequency
89088626eedSJames Wright  - `0.01`
89188626eedSJames Wright  - `1/s`
89288626eedSJames Wright:::
89388626eedSJames Wright
894bc7bbd5dSLeila GhaffariThis problem can be run with:
895ccaff030SJeremy L Thompson
896bc7bbd5dSLeila Ghaffari```
8977c5bba50SJames 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
89888626eedSJames Wright```
89988626eedSJames Wright
900019b7682STimothy Aiken#### Channel flow
901019b7682STimothy Aiken
902061ff11eSJames WrightThe Channel problem has the following command-line options in addition to the Newtonian Ideal Gas options:
90388626eedSJames Wright
90488626eedSJames Wright:::{list-table} Channel Runtime Options
90588626eedSJames Wright:header-rows: 1
90688626eedSJames Wright
90788626eedSJames Wright* - Option
90888626eedSJames Wright  - Description
90988626eedSJames Wright  - Default value
91088626eedSJames Wright  - Unit
91188626eedSJames Wright
91288626eedSJames Wright* - `-umax`
91388626eedSJames Wright  - Maximum/centerline velocity of the flow
91488626eedSJames Wright  - `10`
91588626eedSJames Wright  - `m/s`
91688626eedSJames Wright
91788626eedSJames Wright* - `-theta0`
91888626eedSJames Wright  - Reference potential temperature
91988626eedSJames Wright  - `300`
92088626eedSJames Wright  - `K`
92188626eedSJames Wright
92288626eedSJames Wright* - `-P0`
92388626eedSJames Wright  - Atmospheric pressure
92488626eedSJames Wright  - `1E5`
92588626eedSJames Wright  - `Pa`
926a1df05f8SJed Brown
927a1df05f8SJed Brown* - `-body_force_scale`
928a1df05f8SJed Brown  - Multiplier for body force (`-1` for flow reversal)
929a1df05f8SJed Brown  - 1
930a1df05f8SJed Brown  -
93188626eedSJames Wright:::
93288626eedSJames Wright
93388626eedSJames WrightThis problem can be run with the `channel.yaml` file via:
93488626eedSJames Wright
93588626eedSJames Wright```
93688626eedSJames Wright./navierstokes -options_file channel.yaml
93788626eedSJames Wright```
93888626eedSJames Wright```{literalinclude} ../../../../../examples/fluids/channel.yaml
93988626eedSJames Wright:language: yaml
94088626eedSJames Wright```
94188626eedSJames Wright
9428a94a473SJed Brown(example-blasius)=
9438a94a473SJed Brown
944019b7682STimothy Aiken#### Blasius boundary layer
945019b7682STimothy Aiken
946061ff11eSJames WrightThe Blasius problem has the following command-line options in addition to the Newtonian Ideal Gas options:
94788626eedSJames Wright
94888626eedSJames Wright:::{list-table} Blasius Runtime Options
94988626eedSJames Wright:header-rows: 1
95088626eedSJames Wright
95188626eedSJames Wright* - Option
95288626eedSJames Wright  - Description
95388626eedSJames Wright  - Default value
95488626eedSJames Wright  - Unit
95588626eedSJames Wright
956fb455ff0SLeila Ghaffari* - `-velocity_infinity`
95788626eedSJames Wright  - Freestream velocity
95888626eedSJames Wright  - `40`
95988626eedSJames Wright  - `m/s`
96088626eedSJames Wright
961fb455ff0SLeila Ghaffari* - `-temperature_infinity`
962fb455ff0SLeila Ghaffari  - Freestream temperature
96388626eedSJames Wright  - `288`
96488626eedSJames Wright  - `K`
96588626eedSJames Wright
966ff9b3c0eSJames Wright* - `-pressure_infinity`
967ff9b3c0eSJames Wright  - Atmospheric pressure, also sets IDL reference pressure
968ff9b3c0eSJames Wright  - `1.01E5`
969ff9b3c0eSJames Wright  - `Pa`
970ff9b3c0eSJames Wright
971fb455ff0SLeila Ghaffari* - `-temperature_wall`
972fb455ff0SLeila Ghaffari  - Wall temperature
97307d14e58SLeila Ghaffari  - `288`
974fb455ff0SLeila Ghaffari  - `K`
975fb455ff0SLeila Ghaffari
976fb455ff0SLeila Ghaffari* - `-delta0`
977fb455ff0SLeila Ghaffari  - Boundary layer height at the inflow
978fb455ff0SLeila Ghaffari  - `4.2e-3`
979fb455ff0SLeila Ghaffari  - `m`
980fb455ff0SLeila Ghaffari
9819309e21cSJames Wright* - `-platemesh_modify_mesh`
9829309e21cSJames Wright  - Whether to modify the mesh using the given options below.
9839309e21cSJames Wright  - `false`
9849309e21cSJames Wright  -
9859309e21cSJames Wright
98691eaef80SJames Wright* - `-platemesh_refine_height`
98791eaef80SJames Wright  - Height at which `-platemesh_Ndelta` number of elements should refined into
98888626eedSJames Wright  - `5.9E-4`
98988626eedSJames Wright  - `m`
99088626eedSJames Wright
99191eaef80SJames Wright* - `-platemesh_Ndelta`
99291eaef80SJames Wright  - Number of elements to keep below `-platemesh_refine_height`
99388626eedSJames Wright  - `45`
99488626eedSJames Wright  -
99588626eedSJames Wright
99691eaef80SJames Wright* - `-platemesh_growth`
99788626eedSJames Wright  - Growth rate of the elements in the refinement region
99888626eedSJames Wright  - `1.08`
99988626eedSJames Wright  -
100088626eedSJames Wright
100191eaef80SJames Wright* - `-platemesh_top_angle`
100288626eedSJames Wright  - Downward angle of the top face of the domain. This face serves as an outlet.
100388626eedSJames Wright  - `5`
100488626eedSJames Wright  - `degrees`
1005ba6664aeSJames Wright
100691eaef80SJames Wright* - `-platemesh_y_node_locs_path`
100791eaef80SJames Wright  - Path to file with y node locations. If empty, will use mesh warping instead.
100891eaef80SJames Wright  - `""`
100991eaef80SJames Wright  -
1010fb455ff0SLeila Ghaffari
10119309e21cSJames Wright* - `-stg_use`
10129309e21cSJames Wright  - Whether to use STG for the inflow conditions
10139309e21cSJames Wright  - `false`
10149309e21cSJames Wright  -
10159309e21cSJames Wright
101607d14e58SLeila Ghaffari* - `-n_chebyshev`
1017fb455ff0SLeila Ghaffari  - Number of Chebyshev terms
1018fb455ff0SLeila Ghaffari  - `20`
1019fb455ff0SLeila Ghaffari  -
1020fb455ff0SLeila Ghaffari
102107d14e58SLeila Ghaffari* - `-chebyshev_`
102207d14e58SLeila Ghaffari  - Prefix for Chebyshev snes solve
102307d14e58SLeila Ghaffari  -
102407d14e58SLeila Ghaffari  -
102507d14e58SLeila Ghaffari
102688626eedSJames Wright:::
102788626eedSJames Wright
102888626eedSJames WrightThis problem can be run with the `blasius.yaml` file via:
102988626eedSJames Wright
103088626eedSJames Wright```
103188626eedSJames Wright./navierstokes -options_file blasius.yaml
103288626eedSJames Wright```
103388626eedSJames Wright
103488626eedSJames Wright```{literalinclude} ../../../../../examples/fluids/blasius.yaml
103588626eedSJames Wright:language: yaml
1036bc7bbd5dSLeila Ghaffari```
1037ba6664aeSJames Wright
1038ba6664aeSJames Wright#### STG Inflow for Flat Plate
1039ba6664aeSJames Wright
104017be3a41SJeremy L ThompsonUsing the STG Inflow for the blasius problem adds the following command-line options:
1041ba6664aeSJames Wright
1042ba6664aeSJames Wright:::{list-table} Blasius Runtime Options
1043ba6664aeSJames Wright:header-rows: 1
1044ba6664aeSJames Wright
1045ba6664aeSJames Wright* - Option
1046ba6664aeSJames Wright  - Description
1047ba6664aeSJames Wright  - Default value
1048ba6664aeSJames Wright  - Unit
1049ba6664aeSJames Wright
1050ba6664aeSJames Wright* - `-stg_inflow_path`
1051ba6664aeSJames Wright  - Path to the STGInflow file
1052ba6664aeSJames Wright  - `./STGInflow.dat`
1053ba6664aeSJames Wright  -
1054ba6664aeSJames Wright
1055ba6664aeSJames Wright* - `-stg_rand_path`
1056ba6664aeSJames Wright  - Path to the STGRand file
1057ba6664aeSJames Wright  - `./STGRand.dat`
1058ba6664aeSJames Wright  -
1059ba6664aeSJames Wright
1060ba6664aeSJames Wright* - `-stg_alpha`
1061ba6664aeSJames Wright  - Growth rate of the wavemodes
1062ba6664aeSJames Wright  - `1.01`
1063ba6664aeSJames Wright  -
1064ba6664aeSJames Wright
1065ba6664aeSJames Wright* - `-stg_u0`
1066ba6664aeSJames Wright  - Convective velocity, $U_0$
1067ba6664aeSJames Wright  - `0.0`
1068ba6664aeSJames Wright  - `m/s`
1069ba6664aeSJames Wright
1070ba6664aeSJames Wright* - `-stg_mean_only`
1071ba6664aeSJames Wright  - Only impose the mean velocity (no fluctutations)
1072ba6664aeSJames Wright  - `false`
1073ba6664aeSJames Wright  -
1074ba6664aeSJames Wright
107530af3636SJames Wright* - `-stg_strong`
107630af3636SJames Wright  - Strongly enforce the STG inflow boundary condition
107730af3636SJames Wright  - `false`
107830af3636SJames Wright  -
107930af3636SJames Wright
108089060322SJames Wright* - `-stg_fluctuating_IC`
108189060322SJames Wright  - "Extrude" the fluctuations through the domain as an initial condition
108289060322SJames Wright  - `false`
108389060322SJames Wright  -
108489060322SJames Wright
1085ba6664aeSJames Wright:::
1086ba6664aeSJames Wright
1087ba6664aeSJames WrightThis problem can be run with the `blasius.yaml` file via:
1088ba6664aeSJames Wright
1089ba6664aeSJames Wright```
1090ba6664aeSJames Wright./navierstokes -options_file blasius.yaml -stg_use true
1091ba6664aeSJames Wright```
1092ba6664aeSJames Wright
109317be3a41SJeremy L ThompsonNote the added `-stg_use true` flag
109417be3a41SJeremy L ThompsonThis overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow.
1095