xref: /libCEED/examples/fluids/README.md (revision 89e3cb53fc5f29c44319cd190169331660dcb2de)
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
65bc7bbd5dSLeila Ghaffari  - `2`
66ccaff030SJeremy L Thompson
67bc7bbd5dSLeila Ghaffari* - `-viz_refine`
68bc7bbd5dSLeila Ghaffari  - Use regular refinement for visualization
69bc7bbd5dSLeila Ghaffari  - `0`
70ccaff030SJeremy L Thompson
71bc7bbd5dSLeila Ghaffari* - `-output_freq`
720b22eb44SJames Wright  - Frequency of output, in number of steps. `0` has no output, `-1` outputs final state only
73bc7bbd5dSLeila Ghaffari  - `10`
74ccaff030SJeremy L Thompson
75bc7bbd5dSLeila Ghaffari* - `-continue`
76bc7bbd5dSLeila Ghaffari  - Continue from previous solution
77bc7bbd5dSLeila Ghaffari  - `0`
78ccaff030SJeremy L Thompson
79bc7bbd5dSLeila Ghaffari* - `-output_dir`
80bc7bbd5dSLeila Ghaffari  - Output directory
81bc7bbd5dSLeila Ghaffari  - `.`
82ccaff030SJeremy L Thompson
834534a52eSLeila Ghaffari* - `-bc_wall`
844534a52eSLeila Ghaffari  - Use wall boundary conditions on this list of faces
854534a52eSLeila Ghaffari  -
864534a52eSLeila Ghaffari
874534a52eSLeila Ghaffari* - `-wall_comps`
884534a52eSLeila Ghaffari  - An array of constrained component numbers for wall BCs
894534a52eSLeila Ghaffari  -
904534a52eSLeila Ghaffari
914534a52eSLeila Ghaffari* - `-bc_slip_x`
924534a52eSLeila Ghaffari  - Use slip boundary conditions, for the x component, on this list of faces
934534a52eSLeila Ghaffari  -
944534a52eSLeila Ghaffari
954534a52eSLeila Ghaffari* - `-bc_slip_y`
964534a52eSLeila Ghaffari  - Use slip boundary conditions, for the y component, on this list of faces
974534a52eSLeila Ghaffari  -
984534a52eSLeila Ghaffari
994534a52eSLeila Ghaffari* - `-bc_slip_z`
1004534a52eSLeila Ghaffari  - Use slip boundary conditions, for the z component, on this list of faces
1014534a52eSLeila Ghaffari  -
1024534a52eSLeila Ghaffari
1034534a52eSLeila Ghaffari* - `-bc_inflow`
1044534a52eSLeila Ghaffari  - Use inflow boundary conditions on this list of faces
1054534a52eSLeila Ghaffari  -
1064534a52eSLeila Ghaffari
1074534a52eSLeila Ghaffari* - `-bc_outflow`
1084534a52eSLeila Ghaffari  - Use outflow boundary conditions on this list of faces
1094534a52eSLeila Ghaffari  -
11089d0f5c0SLeila Ghaffari
1117ec884f8SJames Wright* - `-bc_freestream`
1127ec884f8SJames Wright  - Use freestream boundary conditions on this list of faces
1137ec884f8SJames Wright  -
1147ec884f8SJames Wright
115bc7bbd5dSLeila Ghaffari* - `-snes_view`
116bc7bbd5dSLeila Ghaffari  - View PETSc `SNES` nonlinear solver configuration
117bc7bbd5dSLeila Ghaffari  -
11889d0f5c0SLeila Ghaffari
119bc7bbd5dSLeila Ghaffari* - `-log_view`
120bc7bbd5dSLeila Ghaffari  - View PETSc performance log
121bc7bbd5dSLeila Ghaffari  -
122ccaff030SJeremy L Thompson
123bc7bbd5dSLeila Ghaffari* - `-help`
124bc7bbd5dSLeila Ghaffari  - View comprehensive information about run-time options
125bc7bbd5dSLeila Ghaffari  -
126bc7bbd5dSLeila Ghaffari:::
127ccaff030SJeremy L Thompson
1287ec884f8SJames 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:
1294534a52eSLeila Ghaffari
13088626eedSJames Wright:::{list-table} 2D Face ID Labels
13188626eedSJames Wright:header-rows: 1
13288626eedSJames Wright* - PETSc Face Name
13388626eedSJames Wright  - Cartesian direction
13488626eedSJames Wright  - Face ID
13588626eedSJames Wright
13688626eedSJames Wright* - faceMarkerBottom
13788626eedSJames Wright  - -z
13888626eedSJames Wright  - 1
13988626eedSJames Wright
14088626eedSJames Wright* - faceMarkerRight
14188626eedSJames Wright  - +x
14288626eedSJames Wright  - 2
14388626eedSJames Wright
14488626eedSJames Wright* - faceMarkerTop
14588626eedSJames Wright  - +z
14688626eedSJames Wright  - 3
14788626eedSJames Wright
14888626eedSJames Wright* - faceMarkerLeft
14988626eedSJames Wright  - -x
15088626eedSJames Wright  - 4
15188626eedSJames Wright:::
15288626eedSJames Wright
15388626eedSJames Wright:::{list-table} 2D Face ID Labels
15488626eedSJames Wright:header-rows: 1
15588626eedSJames Wright* - PETSc Face Name
15688626eedSJames Wright  - Cartesian direction
15788626eedSJames Wright  - Face ID
15888626eedSJames Wright
15988626eedSJames Wright* - faceMarkerBottom
16088626eedSJames Wright  - -z
16188626eedSJames Wright  - 1
16288626eedSJames Wright
16388626eedSJames Wright* - faceMarkerTop
16488626eedSJames Wright  - +z
16588626eedSJames Wright  - 2
16688626eedSJames Wright
16788626eedSJames Wright* - faceMarkerFront
16888626eedSJames Wright  - -y
16988626eedSJames Wright  - 3
17088626eedSJames Wright
17188626eedSJames Wright* - faceMarkerBack
17288626eedSJames Wright  - +y
17388626eedSJames Wright  - 4
17488626eedSJames Wright
17588626eedSJames Wright* - faceMarkerRight
17688626eedSJames Wright  - +x
17788626eedSJames Wright  - 5
17888626eedSJames Wright
17988626eedSJames Wright* - faceMarkerLeft
18088626eedSJames Wright  - -x
18188626eedSJames Wright  - 6
18288626eedSJames Wright:::
1834534a52eSLeila Ghaffari
184019b7682STimothy Aiken### Advection
185019b7682STimothy Aiken
18617be3a41SJeremy 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$.
18717be3a41SJeremy L ThompsonThese are available in 2D and 3D.
188019b7682STimothy Aiken
189019b7682STimothy Aiken#### 2D advection
190019b7682STimothy Aiken
191bc7bbd5dSLeila GhaffariFor the 2D advection problem, the following additional command-line options are available:
192ccaff030SJeremy L Thompson
193bc7bbd5dSLeila Ghaffari:::{list-table} Advection2D Runtime Options
194bc7bbd5dSLeila Ghaffari:header-rows: 1
19589d0f5c0SLeila Ghaffari
196bc7bbd5dSLeila Ghaffari* - Option
197bc7bbd5dSLeila Ghaffari  - Description
198bc7bbd5dSLeila Ghaffari  - Default value
199bc7bbd5dSLeila Ghaffari  - Unit
20089d0f5c0SLeila Ghaffari
201bc7bbd5dSLeila Ghaffari* - `-rc`
202bc7bbd5dSLeila Ghaffari  - Characteristic radius of thermal bubble
203bc7bbd5dSLeila Ghaffari  - `1000`
204bc7bbd5dSLeila Ghaffari  - `m`
20589d0f5c0SLeila Ghaffari
206bc7bbd5dSLeila Ghaffari* - `-units_meter`
207bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
208bc7bbd5dSLeila Ghaffari  - `1E-2`
209bc7bbd5dSLeila Ghaffari  -
21089d0f5c0SLeila Ghaffari
211bc7bbd5dSLeila Ghaffari* - `-units_second`
212bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
213bc7bbd5dSLeila Ghaffari  - `1E-2`
214bc7bbd5dSLeila Ghaffari  -
21589d0f5c0SLeila Ghaffari
216bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
217bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
218bc7bbd5dSLeila Ghaffari  - `1E-6`
219bc7bbd5dSLeila Ghaffari  -
22077841947SLeila Ghaffari
221bc7bbd5dSLeila Ghaffari* - `-strong_form`
222bc7bbd5dSLeila Ghaffari  - Strong (1) or weak/integrated by parts (0) residual
223bc7bbd5dSLeila Ghaffari  - `0`
224bc7bbd5dSLeila Ghaffari  -
22577841947SLeila Ghaffari
226bc7bbd5dSLeila Ghaffari* - `-stab`
227bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
228bc7bbd5dSLeila Ghaffari  - `none`
229bc7bbd5dSLeila Ghaffari  -
23077841947SLeila Ghaffari
231bc7bbd5dSLeila Ghaffari* - `-CtauS`
232bc7bbd5dSLeila Ghaffari  - Scale coefficient for stabilization tau (nondimensional)
233bc7bbd5dSLeila Ghaffari  - `0`
234bc7bbd5dSLeila Ghaffari  -
23577841947SLeila Ghaffari
236bc7bbd5dSLeila Ghaffari* - `-wind_type`
237bc7bbd5dSLeila Ghaffari  - Wind type in Advection (`rotation` or `translation`)
238bc7bbd5dSLeila Ghaffari  - `rotation`
239bc7bbd5dSLeila Ghaffari  -
24077841947SLeila Ghaffari
241bc7bbd5dSLeila Ghaffari* - `-wind_translation`
242bc7bbd5dSLeila Ghaffari  - Constant wind vector when `-wind_type translation`
243bc7bbd5dSLeila Ghaffari  - `1,0,0`
244bc7bbd5dSLeila Ghaffari  -
24589d0f5c0SLeila Ghaffari
246bc7bbd5dSLeila Ghaffari* - `-E_wind`
247bc7bbd5dSLeila Ghaffari  - Total energy of inflow wind when `-wind_type translation`
248bc7bbd5dSLeila Ghaffari  - `1E6`
249bc7bbd5dSLeila Ghaffari  - `J`
250bc7bbd5dSLeila Ghaffari:::
251e43605a5SLeila Ghaffari
252bc7bbd5dSLeila GhaffariAn example of the `rotation` mode can be run with:
253e43605a5SLeila Ghaffari
254bc7bbd5dSLeila Ghaffari```
2554534a52eSLeila 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
256bc7bbd5dSLeila Ghaffari```
257e43605a5SLeila Ghaffari
258bc7bbd5dSLeila Ghaffariand the `translation` mode with:
259e43605a5SLeila Ghaffari
260bc7bbd5dSLeila Ghaffari```
2614534a52eSLeila 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
262bc7bbd5dSLeila Ghaffari```
2634534a52eSLeila GhaffariNote the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`.
264e43605a5SLeila Ghaffari
265019b7682STimothy Aiken#### 3D advection
266019b7682STimothy Aiken
267bc7bbd5dSLeila GhaffariFor the 3D advection problem, the following additional command-line options are available:
268e43605a5SLeila Ghaffari
269bc7bbd5dSLeila Ghaffari:::{list-table} Advection3D Runtime Options
270bc7bbd5dSLeila Ghaffari:header-rows: 1
271e43605a5SLeila Ghaffari
272bc7bbd5dSLeila Ghaffari* - Option
273bc7bbd5dSLeila Ghaffari  - Description
274bc7bbd5dSLeila Ghaffari  - Default value
275bc7bbd5dSLeila Ghaffari  - Unit
276e43605a5SLeila Ghaffari
277bc7bbd5dSLeila Ghaffari* - `-rc`
278bc7bbd5dSLeila Ghaffari  - Characteristic radius of thermal bubble
279bc7bbd5dSLeila Ghaffari  - `1000`
280bc7bbd5dSLeila Ghaffari  - `m`
281e43605a5SLeila Ghaffari
282bc7bbd5dSLeila Ghaffari* - `-units_meter`
283bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
284bc7bbd5dSLeila Ghaffari  - `1E-2`
285bc7bbd5dSLeila Ghaffari  -
286e43605a5SLeila Ghaffari
287bc7bbd5dSLeila Ghaffari* - `-units_second`
288bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
289bc7bbd5dSLeila Ghaffari  - `1E-2`
290bc7bbd5dSLeila Ghaffari  -
291e43605a5SLeila Ghaffari
292bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
293bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
294bc7bbd5dSLeila Ghaffari  - `1E-6`
295bc7bbd5dSLeila Ghaffari  -
296e43605a5SLeila Ghaffari
297bc7bbd5dSLeila Ghaffari* - `-strong_form`
298bc7bbd5dSLeila Ghaffari  - Strong (1) or weak/integrated by parts (0) residual
299bc7bbd5dSLeila Ghaffari  - `0`
300bc7bbd5dSLeila Ghaffari  -
301e43605a5SLeila Ghaffari
302bc7bbd5dSLeila Ghaffari* - `-stab`
303bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
304bc7bbd5dSLeila Ghaffari  - `none`
305bc7bbd5dSLeila Ghaffari  -
306e43605a5SLeila Ghaffari
307bc7bbd5dSLeila Ghaffari* - `-CtauS`
308bc7bbd5dSLeila Ghaffari  - Scale coefficient for stabilization tau (nondimensional)
309bc7bbd5dSLeila Ghaffari  - `0`
310bc7bbd5dSLeila Ghaffari  -
311e43605a5SLeila Ghaffari
312bc7bbd5dSLeila Ghaffari* - `-wind_type`
313bc7bbd5dSLeila Ghaffari  - Wind type in Advection (`rotation` or `translation`)
314bc7bbd5dSLeila Ghaffari  - `rotation`
315bc7bbd5dSLeila Ghaffari  -
316e43605a5SLeila Ghaffari
317bc7bbd5dSLeila Ghaffari* - `-wind_translation`
318bc7bbd5dSLeila Ghaffari  - Constant wind vector when `-wind_type translation`
319bc7bbd5dSLeila Ghaffari  - `1,0,0`
320bc7bbd5dSLeila Ghaffari  -
321e43605a5SLeila Ghaffari
322bc7bbd5dSLeila Ghaffari* - `-E_wind`
323bc7bbd5dSLeila Ghaffari  - Total energy of inflow wind when `-wind_type translation`
324bc7bbd5dSLeila Ghaffari  - `1E6`
325bc7bbd5dSLeila Ghaffari  - `J`
326e43605a5SLeila Ghaffari
327bc7bbd5dSLeila Ghaffari* - `-bubble_type`
328bc7bbd5dSLeila Ghaffari  - `sphere` (3D) or `cylinder` (2D)
329bc7bbd5dSLeila Ghaffari  - `shpere`
330bc7bbd5dSLeila Ghaffari  -
331e43605a5SLeila Ghaffari
332bc7bbd5dSLeila Ghaffari* - `-bubble_continuity`
333bc7bbd5dSLeila Ghaffari  - `smooth`, `back_sharp`, or `thick`
334bc7bbd5dSLeila Ghaffari  - `smooth`
335bc7bbd5dSLeila Ghaffari  -
336bc7bbd5dSLeila Ghaffari:::
337ccaff030SJeremy L Thompson
338bc7bbd5dSLeila GhaffariAn example of the `rotation` mode can be run with:
339ccaff030SJeremy L Thompson
340bc7bbd5dSLeila Ghaffari```
3414534a52eSLeila 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
342bc7bbd5dSLeila Ghaffari```
343ccaff030SJeremy L Thompson
344bc7bbd5dSLeila Ghaffariand the `translation` mode with:
345ccaff030SJeremy L Thompson
346bc7bbd5dSLeila Ghaffari```
3474534a52eSLeila 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
348bc7bbd5dSLeila Ghaffari```
349ccaff030SJeremy L Thompson
350019b7682STimothy Aiken### Inviscid Ideal Gas
351019b7682STimothy Aiken
352019b7682STimothy Aiken#### Isentropic Euler vortex
353019b7682STimothy Aiken
354bc7bbd5dSLeila GhaffariFor the Isentropic Vortex problem, the following additional command-line options are available:
355ccaff030SJeremy L Thompson
356bc7bbd5dSLeila Ghaffari:::{list-table} Isentropic Vortex Runtime Options
357bc7bbd5dSLeila Ghaffari:header-rows: 1
358ccaff030SJeremy L Thompson
359bc7bbd5dSLeila Ghaffari* - Option
360bc7bbd5dSLeila Ghaffari  - Description
361bc7bbd5dSLeila Ghaffari  - Default value
362bc7bbd5dSLeila Ghaffari  - Unit
363ccaff030SJeremy L Thompson
364bc7bbd5dSLeila Ghaffari* - `-center`
365bc7bbd5dSLeila Ghaffari  - Location of vortex center
366bc7bbd5dSLeila Ghaffari  - `(lx,ly,lz)/2`
367bc7bbd5dSLeila Ghaffari  - `(m,m,m)`
368ccaff030SJeremy L Thompson
369bc7bbd5dSLeila Ghaffari* - `-units_meter`
370bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
371bc7bbd5dSLeila Ghaffari  - `1E-2`
372bc7bbd5dSLeila Ghaffari  -
373ccaff030SJeremy L Thompson
374bc7bbd5dSLeila Ghaffari* - `-units_second`
375bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
376bc7bbd5dSLeila Ghaffari  - `1E-2`
377bc7bbd5dSLeila Ghaffari  -
378ccaff030SJeremy L Thompson
379bc7bbd5dSLeila Ghaffari* - `-mean_velocity`
380bc7bbd5dSLeila Ghaffari  - Background velocity vector
381bc7bbd5dSLeila Ghaffari  - `(1,1,0)`
382bc7bbd5dSLeila Ghaffari  -
383ccaff030SJeremy L Thompson
384bc7bbd5dSLeila Ghaffari* - `-vortex_strength`
385bc7bbd5dSLeila Ghaffari  - Strength of vortex < 10
386bc7bbd5dSLeila Ghaffari  - `5`
387bc7bbd5dSLeila Ghaffari  -
388932417b3SJed Brown
389932417b3SJed Brown* - `-c_tau`
390932417b3SJed Brown  - Stabilization constant
391504dc8e0SLeila Ghaffari  - `0.5`
392932417b3SJed Brown  -
393bc7bbd5dSLeila Ghaffari:::
394ccaff030SJeremy L Thompson
395bc7bbd5dSLeila GhaffariThis problem can be run with:
396ccaff030SJeremy L Thompson
397bc7bbd5dSLeila Ghaffari```
3984534a52eSLeila 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.
399bc7bbd5dSLeila Ghaffari```
400ccaff030SJeremy L Thompson
401019b7682STimothy Aiken#### Sod shock tube
402019b7682STimothy Aiken
403019b7682STimothy AikenFor the Shock Tube problem, the following additional command-line options are available:
404019b7682STimothy Aiken
405019b7682STimothy Aiken:::{list-table} Shock Tube Runtime Options
406019b7682STimothy Aiken:header-rows: 1
407019b7682STimothy Aiken
408019b7682STimothy Aiken* - Option
409019b7682STimothy Aiken  - Description
410019b7682STimothy Aiken  - Default value
411019b7682STimothy Aiken  - Unit
412019b7682STimothy Aiken
413019b7682STimothy Aiken* - `-units_meter`
414019b7682STimothy Aiken  - 1 meter in scaled length units
415019b7682STimothy Aiken  - `1E-2`
416019b7682STimothy Aiken  -
417019b7682STimothy Aiken
418019b7682STimothy Aiken* - `-units_second`
419019b7682STimothy Aiken  - 1 second in scaled time units
420019b7682STimothy Aiken  - `1E-2`
421019b7682STimothy Aiken  -
422019b7682STimothy Aiken
423019b7682STimothy Aiken* - `-yzb`
424019b7682STimothy Aiken  - Use YZB discontinuity capturing
425019b7682STimothy Aiken  - `none`
426019b7682STimothy Aiken  -
427019b7682STimothy Aiken
428019b7682STimothy Aiken* - `-stab`
429019b7682STimothy Aiken  - Stabilization method (`none`, `su`, or `supg`)
430019b7682STimothy Aiken  - `none`
431019b7682STimothy Aiken  -
432019b7682STimothy Aiken:::
433019b7682STimothy Aiken
434019b7682STimothy AikenThis problem can be run with:
435019b7682STimothy Aiken
436019b7682STimothy Aiken```
437019b7682STimothy 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
438019b7682STimothy Aiken```
439019b7682STimothy Aiken
440019b7682STimothy Aiken### Newtonian viscosity, Ideal Gas
441019b7682STimothy Aiken
44288626eedSJames WrightFor the Density Current, Channel, and Blasius problems, the following common command-line options are available:
443ccaff030SJeremy L Thompson
44488626eedSJames Wright:::{list-table} Newtonian Ideal Gas problems Runtime Options
445bc7bbd5dSLeila Ghaffari:header-rows: 1
446ccaff030SJeremy L Thompson
447bc7bbd5dSLeila Ghaffari* - Option
448bc7bbd5dSLeila Ghaffari  - Description
449bc7bbd5dSLeila Ghaffari  - Default value
450bc7bbd5dSLeila Ghaffari  - Unit
451ccaff030SJeremy L Thompson
452bc7bbd5dSLeila Ghaffari* - `-units_meter`
453bc7bbd5dSLeila Ghaffari  - 1 meter in scaled length units
45488626eedSJames Wright  - `1`
455bc7bbd5dSLeila Ghaffari  -
456ccaff030SJeremy L Thompson
457bc7bbd5dSLeila Ghaffari* - `-units_second`
458bc7bbd5dSLeila Ghaffari  - 1 second in scaled time units
45988626eedSJames Wright  - `1`
460bc7bbd5dSLeila Ghaffari  -
461ccaff030SJeremy L Thompson
462bc7bbd5dSLeila Ghaffari* - `-units_kilogram`
463bc7bbd5dSLeila Ghaffari  - 1 kilogram in scaled mass units
46488626eedSJames Wright  - `1`
465bc7bbd5dSLeila Ghaffari  -
466ccaff030SJeremy L Thompson
467bc7bbd5dSLeila Ghaffari* - `-units_Kelvin`
468bc7bbd5dSLeila Ghaffari  - 1 Kelvin in scaled temperature units
469bc7bbd5dSLeila Ghaffari  - `1`
470bc7bbd5dSLeila Ghaffari  -
471ccaff030SJeremy L Thompson
472bc7bbd5dSLeila Ghaffari* - `-stab`
473bc7bbd5dSLeila Ghaffari  - Stabilization method (`none`, `su`, or `supg`)
474bc7bbd5dSLeila Ghaffari  - `none`
475bc7bbd5dSLeila Ghaffari  -
476ccaff030SJeremy L Thompson
477932417b3SJed Brown* - `-c_tau`
47888626eedSJames Wright  - Stabilization constant, $c_\tau$
479504dc8e0SLeila Ghaffari  - `0.5`
480932417b3SJed Brown  -
481932417b3SJed Brown
48288626eedSJames Wright* - `-Ctau_t`
48388626eedSJames Wright  - Stabilization time constant, $C_t$
48488626eedSJames Wright  - `1.0`
48588626eedSJames Wright  -
486ccaff030SJeremy L Thompson
48788626eedSJames Wright* - `-Ctau_v`
48888626eedSJames Wright  - Stabilization viscous constant, $C_v$
48988626eedSJames Wright  - `36.0`
49088626eedSJames Wright  -
491ccaff030SJeremy L Thompson
49288626eedSJames Wright* - `-Ctau_C`
49388626eedSJames Wright  - Stabilization continuity constant, $C_c$
49488626eedSJames Wright  - `1.0`
49588626eedSJames Wright  -
496ccaff030SJeremy L Thompson
49788626eedSJames Wright* - `-Ctau_M`
49888626eedSJames Wright  - Stabilization momentum constant, $C_m$
49988626eedSJames Wright  - `1.0`
50088626eedSJames Wright  -
50188626eedSJames Wright
50288626eedSJames Wright* - `-Ctau_E`
50388626eedSJames Wright  - Stabilization energy constant, $C_E$
50488626eedSJames Wright  - `1.0`
50588626eedSJames Wright  -
506ccaff030SJeremy L Thompson
507bc7bbd5dSLeila Ghaffari* - `-cv`
508bc7bbd5dSLeila Ghaffari  - Heat capacity at constant volume
509bc7bbd5dSLeila Ghaffari  - `717`
510bc7bbd5dSLeila Ghaffari  - `J/(kg K)`
511ccaff030SJeremy L Thompson
512bc7bbd5dSLeila Ghaffari* - `-cp`
513bc7bbd5dSLeila Ghaffari  - Heat capacity at constant pressure
514bc7bbd5dSLeila Ghaffari  - `1004`
515bc7bbd5dSLeila Ghaffari  - `J/(kg K)`
516ccaff030SJeremy L Thompson
517bc7bbd5dSLeila Ghaffari* - `-g`
518bc7bbd5dSLeila Ghaffari  - Gravitational acceleration
519bc7bbd5dSLeila Ghaffari  - `9.81`
520bc7bbd5dSLeila Ghaffari  - `m/s^2`
521ccaff030SJeremy L Thompson
522bc7bbd5dSLeila Ghaffari* - `-lambda`
523bc7bbd5dSLeila Ghaffari  - Stokes hypothesis second viscosity coefficient
524bc7bbd5dSLeila Ghaffari  - `-2/3`
525bc7bbd5dSLeila Ghaffari  -
526ccaff030SJeremy L Thompson
527bc7bbd5dSLeila Ghaffari* - `-mu`
528bc7bbd5dSLeila Ghaffari  - Shear dynamic viscosity coefficient
529bc7bbd5dSLeila Ghaffari  - `75`
530bc7bbd5dSLeila Ghaffari  -  `Pa s`
53177841947SLeila Ghaffari
532bc7bbd5dSLeila Ghaffari* - `-k`
533bc7bbd5dSLeila Ghaffari  - Thermal conductivity
534bc7bbd5dSLeila Ghaffari  - `0.02638`
535bc7bbd5dSLeila Ghaffari  - `W/(m K)`
536a1df05f8SJed Brown
537a1df05f8SJed Brown* - `-newtonian_unit_tests`
538a1df05f8SJed Brown  - Developer option to test properties
539a1df05f8SJed Brown  - `false`
540a1df05f8SJed Brown  - boolean
541de2fdd78SJames Wright
5425c0afad3SJames Wright* - `-state_var`
5435c0afad3SJames Wright  - State variables to solve solution with. `conservative` ($\rho, \rho \bm{u}, \rho e$) or `primitive` ($P, \bm{u}, T$)
5445c0afad3SJames Wright  - `conservative`
5455c0afad3SJames Wright  - string
546bc7bbd5dSLeila Ghaffari:::
54777841947SLeila Ghaffari
5487ec884f8SJames Wright#### Newtonian Wave
5497ec884f8SJames Wright
5507ec884f8SJames WrightThe newtonian wave problem the following command-line options are available in addition to the Newtonian Ideal Gas options:
5517ec884f8SJames Wright
552*89e3cb53SJames Wright:::{list-table} Newtonian Wave Runtime Options
5537ec884f8SJames Wright:header-rows: 1
5547ec884f8SJames Wright
5557ec884f8SJames Wright* - Option
5567ec884f8SJames Wright  - Description
5577ec884f8SJames Wright  - Default value
5587ec884f8SJames Wright  - Unit
5597ec884f8SJames Wright
560*89e3cb53SJames Wright* - `-velocity_freestream`
5617ec884f8SJames Wright  - Freestream velocity vector
5627ec884f8SJames Wright  - `0,0,0`
5637ec884f8SJames Wright  - `m/s`
5647ec884f8SJames Wright
565*89e3cb53SJames Wright* - `-temperature_freestream`
5667ec884f8SJames Wright  - Freestream temperature
5677ec884f8SJames Wright  - `288`
5687ec884f8SJames Wright  - `K`
5697ec884f8SJames Wright
570*89e3cb53SJames Wright* - `-pressure_freestream`
571*89e3cb53SJames Wright  - Freestream pressure
5727ec884f8SJames Wright  - `1.01e5`
5737ec884f8SJames Wright  - `Pa`
5747ec884f8SJames Wright
5757ec884f8SJames Wright* - `-epicenter`
5767ec884f8SJames Wright  - Coordinates of center of perturbation
5777ec884f8SJames Wright  - `0,0,0`
5787ec884f8SJames Wright  - `m`
5797ec884f8SJames Wright
5807ec884f8SJames Wright* - `-amplitude`
5817ec884f8SJames Wright  - Amplitude of the perturbation
5827ec884f8SJames Wright  - `0.1`
5837ec884f8SJames Wright  -
5847ec884f8SJames Wright
5857ec884f8SJames Wright* - `-width`
5867ec884f8SJames Wright  - Width parameter of the perturbation
5877ec884f8SJames Wright  - `0.002`
5887ec884f8SJames Wright  - `m`
5897ec884f8SJames Wright
5907ec884f8SJames Wright:::
5917ec884f8SJames Wright
5927ec884f8SJames WrightThis problem can be run with the `newtonianwave.yaml` file via:
5937ec884f8SJames Wright
5947ec884f8SJames Wright```
5957ec884f8SJames Wright./navierstokes -options_file newtonianwave.yaml
5967ec884f8SJames Wright```
5977ec884f8SJames Wright
5987ec884f8SJames Wright```{literalinclude} ../../../../../examples/fluids/newtonianwave.yaml
5997ec884f8SJames Wright:language: yaml
6007ec884f8SJames Wright```
601a1df05f8SJed Brown
602019b7682STimothy Aiken#### Density current
603019b7682STimothy Aiken
60417be3a41SJeremy L ThompsonThe Density Current problem the following command-line options are available in addition to the Newtonian Ideal Gas options:
60588626eedSJames Wright
60688626eedSJames Wright:::{list-table} Density Current Runtime Options
60788626eedSJames Wright:header-rows: 1
60888626eedSJames Wright
60988626eedSJames Wright* - Option
61088626eedSJames Wright  - Description
61188626eedSJames Wright  - Default value
61288626eedSJames Wright  - Unit
61388626eedSJames Wright
61488626eedSJames Wright* - `-center`
61588626eedSJames Wright  - Location of bubble center
61688626eedSJames Wright  - `(lx,ly,lz)/2`
61788626eedSJames Wright  - `(m,m,m)`
61888626eedSJames Wright
61988626eedSJames Wright* - `-dc_axis`
62088626eedSJames Wright  - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric
62188626eedSJames Wright  - `(0,0,0)`
62288626eedSJames Wright  -
62388626eedSJames Wright
62488626eedSJames Wright* - `-rc`
62588626eedSJames Wright  - Characteristic radius of thermal bubble
62688626eedSJames Wright  - `1000`
62788626eedSJames Wright  - `m`
62888626eedSJames Wright
62988626eedSJames Wright* - `-theta0`
63088626eedSJames Wright  - Reference potential temperature
63188626eedSJames Wright  - `300`
63288626eedSJames Wright  - `K`
63388626eedSJames Wright
63488626eedSJames Wright* - `-thetaC`
63588626eedSJames Wright  - Perturbation of potential temperature
63688626eedSJames Wright  - `-15`
63788626eedSJames Wright  - `K`
63888626eedSJames Wright
63988626eedSJames Wright* - `-P0`
64088626eedSJames Wright  - Atmospheric pressure
64188626eedSJames Wright  - `1E5`
64288626eedSJames Wright  - `Pa`
64388626eedSJames Wright
64488626eedSJames Wright* - `-N`
64588626eedSJames Wright  - Brunt-Vaisala frequency
64688626eedSJames Wright  - `0.01`
64788626eedSJames Wright  - `1/s`
64888626eedSJames Wright:::
64988626eedSJames Wright
650bc7bbd5dSLeila GhaffariThis problem can be run with:
651ccaff030SJeremy L Thompson
652bc7bbd5dSLeila Ghaffari```
65388626eedSJames 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
65488626eedSJames Wright```
65588626eedSJames Wright
656019b7682STimothy Aiken#### Channel flow
657019b7682STimothy Aiken
65817be3a41SJeremy L ThompsonThe Channel problem the following command-line options are available in addition to the Newtonian Ideal Gas options:
65988626eedSJames Wright
66088626eedSJames Wright:::{list-table} Channel Runtime Options
66188626eedSJames Wright:header-rows: 1
66288626eedSJames Wright
66388626eedSJames Wright* - Option
66488626eedSJames Wright  - Description
66588626eedSJames Wright  - Default value
66688626eedSJames Wright  - Unit
66788626eedSJames Wright
66888626eedSJames Wright* - `-umax`
66988626eedSJames Wright  - Maximum/centerline velocity of the flow
67088626eedSJames Wright  - `10`
67188626eedSJames Wright  - `m/s`
67288626eedSJames Wright
67388626eedSJames Wright* - `-theta0`
67488626eedSJames Wright  - Reference potential temperature
67588626eedSJames Wright  - `300`
67688626eedSJames Wright  - `K`
67788626eedSJames Wright
67888626eedSJames Wright* - `-P0`
67988626eedSJames Wright  - Atmospheric pressure
68088626eedSJames Wright  - `1E5`
68188626eedSJames Wright  - `Pa`
682a1df05f8SJed Brown
683a1df05f8SJed Brown* - `-body_force_scale`
684a1df05f8SJed Brown  - Multiplier for body force (`-1` for flow reversal)
685a1df05f8SJed Brown  - 1
686a1df05f8SJed Brown  -
68788626eedSJames Wright:::
68888626eedSJames Wright
68988626eedSJames WrightThis problem can be run with the `channel.yaml` file via:
69088626eedSJames Wright
69188626eedSJames Wright```
69288626eedSJames Wright./navierstokes -options_file channel.yaml
69388626eedSJames Wright```
69488626eedSJames Wright```{literalinclude} ../../../../../examples/fluids/channel.yaml
69588626eedSJames Wright:language: yaml
69688626eedSJames Wright```
69788626eedSJames Wright
698019b7682STimothy Aiken#### Blasius boundary layer
699019b7682STimothy Aiken
70017be3a41SJeremy L ThompsonThe Blasius problem the following command-line options are available in addition to the Newtonian Ideal Gas options:
70188626eedSJames Wright
70288626eedSJames Wright:::{list-table} Blasius Runtime Options
70388626eedSJames Wright:header-rows: 1
70488626eedSJames Wright
70588626eedSJames Wright* - Option
70688626eedSJames Wright  - Description
70788626eedSJames Wright  - Default value
70888626eedSJames Wright  - Unit
70988626eedSJames Wright
710fb455ff0SLeila Ghaffari* - `-velocity_infinity`
71188626eedSJames Wright  - Freestream velocity
71288626eedSJames Wright  - `40`
71388626eedSJames Wright  - `m/s`
71488626eedSJames Wright
715fb455ff0SLeila Ghaffari* - `-temperature_infinity`
716fb455ff0SLeila Ghaffari  - Freestream temperature
71788626eedSJames Wright  - `288`
71888626eedSJames Wright  - `K`
71988626eedSJames Wright
720fb455ff0SLeila Ghaffari* - `-temperature_wall`
721fb455ff0SLeila Ghaffari  - Wall temperature
72207d14e58SLeila Ghaffari  - `288`
723fb455ff0SLeila Ghaffari  - `K`
724fb455ff0SLeila Ghaffari
725fb455ff0SLeila Ghaffari* - `-delta0`
726fb455ff0SLeila Ghaffari  - Boundary layer height at the inflow
727fb455ff0SLeila Ghaffari  - `4.2e-3`
728fb455ff0SLeila Ghaffari  - `m`
729fb455ff0SLeila Ghaffari
73088626eedSJames Wright* - `-P0`
73188626eedSJames Wright  - Atmospheric pressure
73288626eedSJames Wright  - `1.01E5`
73388626eedSJames Wright  - `Pa`
73488626eedSJames Wright
73591eaef80SJames Wright* - `-platemesh_refine_height`
73691eaef80SJames Wright  - Height at which `-platemesh_Ndelta` number of elements should refined into
73788626eedSJames Wright  - `5.9E-4`
73888626eedSJames Wright  - `m`
73988626eedSJames Wright
74091eaef80SJames Wright* - `-platemesh_Ndelta`
74191eaef80SJames Wright  - Number of elements to keep below `-platemesh_refine_height`
74288626eedSJames Wright  - `45`
74388626eedSJames Wright  -
74488626eedSJames Wright
74591eaef80SJames Wright* - `-platemesh_growth`
74688626eedSJames Wright  - Growth rate of the elements in the refinement region
74788626eedSJames Wright  - `1.08`
74888626eedSJames Wright  -
74988626eedSJames Wright
75091eaef80SJames Wright* - `-platemesh_top_angle`
75188626eedSJames Wright  - Downward angle of the top face of the domain. This face serves as an outlet.
75288626eedSJames Wright  - `5`
75388626eedSJames Wright  - `degrees`
754ba6664aeSJames Wright
755ba6664aeSJames Wright* - `-stg_use`
756ba6664aeSJames Wright  - Whether to use stg for the inflow conditions
757ba6664aeSJames Wright  - `false`
758ba6664aeSJames Wright  -
75991eaef80SJames Wright
76091eaef80SJames Wright* - `-platemesh_y_node_locs_path`
76191eaef80SJames Wright  - Path to file with y node locations. If empty, will use mesh warping instead.
76291eaef80SJames Wright  - `""`
76391eaef80SJames Wright  -
764fb455ff0SLeila Ghaffari
76507d14e58SLeila Ghaffari* - `-n_chebyshev`
766fb455ff0SLeila Ghaffari  - Number of Chebyshev terms
767fb455ff0SLeila Ghaffari  - `20`
768fb455ff0SLeila Ghaffari  -
769fb455ff0SLeila Ghaffari
77007d14e58SLeila Ghaffari* - `-chebyshev_`
77107d14e58SLeila Ghaffari  - Prefix for Chebyshev snes solve
77207d14e58SLeila Ghaffari  -
77307d14e58SLeila Ghaffari  -
77407d14e58SLeila Ghaffari
77588626eedSJames Wright:::
77688626eedSJames Wright
77788626eedSJames WrightThis problem can be run with the `blasius.yaml` file via:
77888626eedSJames Wright
77988626eedSJames Wright```
78088626eedSJames Wright./navierstokes -options_file blasius.yaml
78188626eedSJames Wright```
78288626eedSJames Wright
78388626eedSJames Wright```{literalinclude} ../../../../../examples/fluids/blasius.yaml
78488626eedSJames Wright:language: yaml
785bc7bbd5dSLeila Ghaffari```
786ba6664aeSJames Wright
787ba6664aeSJames Wright#### STG Inflow for Flat Plate
788ba6664aeSJames Wright
78917be3a41SJeremy L ThompsonUsing the STG Inflow for the blasius problem adds the following command-line options:
790ba6664aeSJames Wright
791ba6664aeSJames Wright:::{list-table} Blasius Runtime Options
792ba6664aeSJames Wright:header-rows: 1
793ba6664aeSJames Wright
794ba6664aeSJames Wright* - Option
795ba6664aeSJames Wright  - Description
796ba6664aeSJames Wright  - Default value
797ba6664aeSJames Wright  - Unit
798ba6664aeSJames Wright
799ba6664aeSJames Wright* - `-stg_inflow_path`
800ba6664aeSJames Wright  - Path to the STGInflow file
801ba6664aeSJames Wright  - `./STGInflow.dat`
802ba6664aeSJames Wright  -
803ba6664aeSJames Wright
804ba6664aeSJames Wright* - `-stg_rand_path`
805ba6664aeSJames Wright  - Path to the STGRand file
806ba6664aeSJames Wright  - `./STGRand.dat`
807ba6664aeSJames Wright  -
808ba6664aeSJames Wright
809ba6664aeSJames Wright* - `-stg_alpha`
810ba6664aeSJames Wright  - Growth rate of the wavemodes
811ba6664aeSJames Wright  - `1.01`
812ba6664aeSJames Wright  -
813ba6664aeSJames Wright
814ba6664aeSJames Wright* - `-stg_u0`
815ba6664aeSJames Wright  - Convective velocity, $U_0$
816ba6664aeSJames Wright  - `0.0`
817ba6664aeSJames Wright  - `m/s`
818ba6664aeSJames Wright
819ba6664aeSJames Wright* - `-stg_mean_only`
820ba6664aeSJames Wright  - Only impose the mean velocity (no fluctutations)
821ba6664aeSJames Wright  - `false`
822ba6664aeSJames Wright  -
823ba6664aeSJames Wright
82430af3636SJames Wright* - `-stg_strong`
82530af3636SJames Wright  - Strongly enforce the STG inflow boundary condition
82630af3636SJames Wright  - `false`
82730af3636SJames Wright  -
82830af3636SJames Wright
829ba6664aeSJames Wright:::
830ba6664aeSJames Wright
831ba6664aeSJames WrightThis problem can be run with the `blasius.yaml` file via:
832ba6664aeSJames Wright
833ba6664aeSJames Wright```
834ba6664aeSJames Wright./navierstokes -options_file blasius.yaml -stg_use true
835ba6664aeSJames Wright```
836ba6664aeSJames Wright
83717be3a41SJeremy L ThompsonNote the added `-stg_use true` flag
83817be3a41SJeremy L ThompsonThis overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow.
839