1ea10196cSJeremy L Thompson## libCEED: Navier-Stokes Example 2ea10196cSJeremy L Thompson 3ea10196cSJeremy L ThompsonThis page provides a description of the Navier-Stokes example for the libCEED library, based on PETSc. 4b9842f74SJeremy L ThompsonPETSc v3.17 or a development version of PETSc at commit 0e95d842 or later is required. 5ea10196cSJeremy L Thompson 6a515125bSLeila GhaffariThe Navier-Stokes problem solves the compressible Navier-Stokes equations in three dimensions using an explicit time integration. 7a515125bSLeila GhaffariThe state variables are mass density, momentum density, and energy density. 8ea10196cSJeremy L Thompson 9a515125bSLeila GhaffariThe main Navier-Stokes solver for libCEED is defined in [`navierstokes.c`](navierstokes.c) with different problem definitions according to the application of interest. 10ea10196cSJeremy L Thompson 11575f8106SLeila GhaffariBuild by using: 12ea10196cSJeremy L Thompson 13ea10196cSJeremy L Thompson`make` 14ea10196cSJeremy L Thompson 15575f8106SLeila Ghaffariand run with: 16ea10196cSJeremy L Thompson 17575f8106SLeila Ghaffari``` 18575f8106SLeila Ghaffari./navierstokes -ceed [ceed] -problem [problem type] -degree [degree] 19575f8106SLeila Ghaffari``` 20ea10196cSJeremy L Thompson 21575f8106SLeila Ghaffari## Runtime options 22ea10196cSJeremy L Thompson 23575f8106SLeila Ghaffari% inclusion-fluids-marker 24ea10196cSJeremy L Thompson 25575f8106SLeila GhaffariThe Navier-Stokes mini-app is controlled via command-line options. 26575f8106SLeila GhaffariThe following options are common among all problem types: 27ea10196cSJeremy L Thompson 28575f8106SLeila Ghaffari:::{list-table} Common Runtime Options 29575f8106SLeila Ghaffari:header-rows: 1 30ea10196cSJeremy L Thompson 31575f8106SLeila Ghaffari* - Option 32575f8106SLeila Ghaffari - Description 33575f8106SLeila Ghaffari - Default value 34ea10196cSJeremy L Thompson 35575f8106SLeila Ghaffari* - `-ceed` 36575f8106SLeila Ghaffari - CEED resource specifier 37575f8106SLeila Ghaffari - `/cpu/self/opt/blocked` 38ea10196cSJeremy L Thompson 39707de87aSJames Wright* - `-test_type` 40707de87aSJames Wright - Run in test mode and specify whether solution (`solver`) or turbulent statistics (`turb_spanstats`) output should be verified 41707de87aSJames Wright - `none` 42ea10196cSJeremy L Thompson 43575f8106SLeila Ghaffari* - `-compare_final_state_atol` 44575f8106SLeila Ghaffari - Test absolute tolerance 45575f8106SLeila Ghaffari - `1E-11` 46ea10196cSJeremy L Thompson 47575f8106SLeila Ghaffari* - `-compare_final_state_filename` 48575f8106SLeila Ghaffari - Test filename 49575f8106SLeila Ghaffari - 50ea10196cSJeremy L Thompson 51575f8106SLeila Ghaffari* - `-problem` 52575f8106SLeila Ghaffari - Problem to solve (`advection`, `advection2d`, `density_current`, or `euler_vortex`) 53575f8106SLeila Ghaffari - `density_current` 54ea10196cSJeremy L Thompson 55575f8106SLeila Ghaffari* - `-implicit` 56575f8106SLeila Ghaffari - Use implicit time integartor formulation 57575f8106SLeila Ghaffari - 58ea10196cSJeremy L Thompson 59575f8106SLeila Ghaffari* - `-degree` 60575f8106SLeila Ghaffari - Polynomial degree of tensor product basis (must be >= 1) 61575f8106SLeila Ghaffari - `1` 62ea10196cSJeremy L Thompson 63c1680e98SJeremy L Thompson* - `-q_extra` 64575f8106SLeila Ghaffari - Number of extra quadrature points 651219168aSLeila Ghaffari - `0` 66ea10196cSJeremy L Thompson 67852e5969SJed Brown* - `-ts_monitor_solution` 68852e5969SJed Brown - PETSc output format, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`) 69852e5969SJed Brown - 70ea10196cSJeremy L Thompson 71852e5969SJed Brown* - `-ts_monitor_solution_interval` 72852e5969SJed Brown - Number of time steps between visualization output frames. 73852e5969SJed Brown - `1` 74852e5969SJed Brown 75852e5969SJed Brown* - `-viewer_cgns_batch_size` 76852e5969SJed Brown - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`). 77852e5969SJed Brown - `20` 78852e5969SJed Brown 79852e5969SJed Brown* - `-checkpoint_interval` 80852e5969SJed Brown - Number of steps between writing binary checkpoints. `0` has no output, `-1` outputs final state only 81575f8106SLeila Ghaffari - `10` 82ea10196cSJeremy L Thompson 83852e5969SJed Brown* - `-checkpoint_vtk` 84852e5969SJed Brown - Checkpoints include VTK (`*.vtu`) files for visualization. Consider `-ts_monitor_solution`instead. 85852e5969SJed Brown - `false` 86852e5969SJed Brown 87852e5969SJed Brown* - `-viz_refine` 88852e5969SJed Brown - Use regular refinement for VTK visualization 89852e5969SJed Brown - `0` 90852e5969SJed Brown 91575f8106SLeila Ghaffari* - `-output_dir` 92852e5969SJed Brown - Output directory for binary checkpoints and VTK files (if enabled). 93575f8106SLeila Ghaffari - `.` 94ea10196cSJeremy L Thompson 9591a36801SJames Wright* - `-output_add_stepnum2bin` 9691a36801SJames Wright - Whether to add step numbers to output binary files 9791a36801SJames Wright - `false` 9891a36801SJames Wright 9991a36801SJames Wright* - `-continue` 10091a36801SJames Wright - Continue from previous solution (input is step number of previous solution) 10191a36801SJames Wright - `0` 10291a36801SJames Wright 10391a36801SJames Wright* - `-continue_filename` 10491a36801SJames Wright - Path to solution binary file from which to continue from 10591a36801SJames Wright - `[output_dir]/ns-solution.bin` 10691a36801SJames Wright 10791a36801SJames Wright* - `-continue_time_filename` 1089293eaa1SJed Brown - Path to time stamp binary file (only for legacy checkpoints) 10991a36801SJames Wright - `[output_dir]/ns-time.bin` 11091a36801SJames Wright 111f4277be3SLeila Ghaffari* - `-bc_wall` 112f4277be3SLeila Ghaffari - Use wall boundary conditions on this list of faces 113f4277be3SLeila Ghaffari - 114f4277be3SLeila Ghaffari 115f4277be3SLeila Ghaffari* - `-wall_comps` 116f4277be3SLeila Ghaffari - An array of constrained component numbers for wall BCs 117f4277be3SLeila Ghaffari - 118f4277be3SLeila Ghaffari 119f4277be3SLeila Ghaffari* - `-bc_slip_x` 120f4277be3SLeila Ghaffari - Use slip boundary conditions, for the x component, on this list of faces 121f4277be3SLeila Ghaffari - 122f4277be3SLeila Ghaffari 123f4277be3SLeila Ghaffari* - `-bc_slip_y` 124f4277be3SLeila Ghaffari - Use slip boundary conditions, for the y component, on this list of faces 125f4277be3SLeila Ghaffari - 126f4277be3SLeila Ghaffari 127f4277be3SLeila Ghaffari* - `-bc_slip_z` 128f4277be3SLeila Ghaffari - Use slip boundary conditions, for the z component, on this list of faces 129f4277be3SLeila Ghaffari - 130f4277be3SLeila Ghaffari 131f4277be3SLeila Ghaffari* - `-bc_inflow` 132f4277be3SLeila Ghaffari - Use inflow boundary conditions on this list of faces 133f4277be3SLeila Ghaffari - 134f4277be3SLeila Ghaffari 135f4277be3SLeila Ghaffari* - `-bc_outflow` 136f4277be3SLeila Ghaffari - Use outflow boundary conditions on this list of faces 137f4277be3SLeila Ghaffari - 1388ef11c93SLeila Ghaffari 13979b17980SJames Wright* - `-bc_freestream` 14079b17980SJames Wright - Use freestream boundary conditions on this list of faces 14179b17980SJames Wright - 14279b17980SJames Wright 143c931fa59SJames Wright* - `-ts_monitor_turbulence_spanstats_collect_interval` 144a8ce54bfSJames Wright - Number of timesteps between statistics collection 145a8ce54bfSJames Wright - `1` 146a8ce54bfSJames Wright 147c931fa59SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer` 148c931fa59SJames 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. 149109cd75bSJames Wright - 150109cd75bSJames Wright 151c931fa59SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer_interval` 152a8ce54bfSJames Wright - Number of timesteps between statistics file writing (`-1` means only at end of run) 153a8ce54bfSJames Wright - `-1` 154a8ce54bfSJames Wright 155c931fa59SJames Wright* - `-ts_monitor_turbulence_spanstats_viewer_cgns_batch_size` 156109cd75bSJames Wright - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`). 157109cd75bSJames Wright - `20` 158109cd75bSJames Wright 159c5e9980aSAdeleke O. Bankole* - `-ts_monitor_wall_force` 160c5e9980aSAdeleke O. Bankole - Viewer for the force on each no-slip wall, e.g., `ascii:force.csv:ascii_csv` to write a CSV file. 161c5e9980aSAdeleke O. Bankole - 162c5e9980aSAdeleke O. Bankole 163575f8106SLeila Ghaffari* - `-snes_view` 164575f8106SLeila Ghaffari - View PETSc `SNES` nonlinear solver configuration 165575f8106SLeila Ghaffari - 1668ef11c93SLeila Ghaffari 167575f8106SLeila Ghaffari* - `-log_view` 168575f8106SLeila Ghaffari - View PETSc performance log 169575f8106SLeila Ghaffari - 170ea10196cSJeremy L Thompson 171575f8106SLeila Ghaffari* - `-help` 172575f8106SLeila Ghaffari - View comprehensive information about run-time options 173575f8106SLeila Ghaffari - 174575f8106SLeila Ghaffari::: 175ea10196cSJeremy L Thompson 17679b17980SJames 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: 177f4277be3SLeila Ghaffari 178bb8a0c61SJames Wright:::{list-table} 2D Face ID Labels 179bb8a0c61SJames Wright:header-rows: 1 180bb8a0c61SJames Wright* - PETSc Face Name 181bb8a0c61SJames Wright - Cartesian direction 182bb8a0c61SJames Wright - Face ID 183bb8a0c61SJames Wright 184bb8a0c61SJames Wright* - faceMarkerBottom 185bb8a0c61SJames Wright - -z 186bb8a0c61SJames Wright - 1 187bb8a0c61SJames Wright 188bb8a0c61SJames Wright* - faceMarkerRight 189bb8a0c61SJames Wright - +x 190bb8a0c61SJames Wright - 2 191bb8a0c61SJames Wright 192bb8a0c61SJames Wright* - faceMarkerTop 193bb8a0c61SJames Wright - +z 194bb8a0c61SJames Wright - 3 195bb8a0c61SJames Wright 196bb8a0c61SJames Wright* - faceMarkerLeft 197bb8a0c61SJames Wright - -x 198bb8a0c61SJames Wright - 4 199bb8a0c61SJames Wright::: 200bb8a0c61SJames Wright 201c52f2c1bSLeila Ghaffari:::{list-table} 3D Face ID Labels 202bb8a0c61SJames Wright:header-rows: 1 203bb8a0c61SJames Wright* - PETSc Face Name 204bb8a0c61SJames Wright - Cartesian direction 205bb8a0c61SJames Wright - Face ID 206bb8a0c61SJames Wright 207bb8a0c61SJames Wright* - faceMarkerBottom 208bb8a0c61SJames Wright - -z 209bb8a0c61SJames Wright - 1 210bb8a0c61SJames Wright 211bb8a0c61SJames Wright* - faceMarkerTop 212bb8a0c61SJames Wright - +z 213bb8a0c61SJames Wright - 2 214bb8a0c61SJames Wright 215bb8a0c61SJames Wright* - faceMarkerFront 216bb8a0c61SJames Wright - -y 217bb8a0c61SJames Wright - 3 218bb8a0c61SJames Wright 219bb8a0c61SJames Wright* - faceMarkerBack 220bb8a0c61SJames Wright - +y 221bb8a0c61SJames Wright - 4 222bb8a0c61SJames Wright 223bb8a0c61SJames Wright* - faceMarkerRight 224bb8a0c61SJames Wright - +x 225bb8a0c61SJames Wright - 5 226bb8a0c61SJames Wright 227bb8a0c61SJames Wright* - faceMarkerLeft 228bb8a0c61SJames Wright - -x 229bb8a0c61SJames Wright - 6 230bb8a0c61SJames Wright::: 231f4277be3SLeila Ghaffari 232c8c30d87SJed Brown### Boundary conditions 233c8c30d87SJed Brown 234c8c30d87SJed BrownBoundary conditions for compressible viscous flows are notoriously tricky. Here we offer some recommendations 235c8c30d87SJed Brown 236c8c30d87SJed Brown#### Inflow 237c8c30d87SJed Brown 238c8c30d87SJed 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). 239c8c30d87SJed BrownIt is stable and the least reflective boundary condition for acoustics. 240c8c30d87SJed Brown 241c8c30d87SJed BrownIf near a viscous wall, you may want a specified inflow profile. 242c8c30d87SJed BrownUse `bc_inflow` and see {ref}`example-blasius` and discussion of synthetic turbulence generation for ways to analytically generate developed inflow profiles. 243c8c30d87SJed 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. 244c8c30d87SJed BrownThe strong approach gives sharper resolution of velocity structures. 245c8c30d87SJed BrownWe have described the primitive variable formulation here; the conservative variants are similar, but not equivalent. 246c8c30d87SJed Brown 247a899b243SJames Wright#### Outflow 248c8c30d87SJed Brown 249c8c30d87SJed BrownIf you know the complete exterior state, `bc_freestream` is the least reflective boundary condition, but is disruptive to viscous flow structures. 250c8c30d87SJed BrownIf thermal anomalies must exit the domain, the Riemann solver must resolve the contact wave to avoid reflections. 251c8c30d87SJed 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. 252c8c30d87SJed Brown 253c8c30d87SJed 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. 254c8c30d87SJed Brown 255c8c30d87SJed 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). 256c8c30d87SJed BrownIn our experience, `riemann` is slightly less reflective but produces similar flows in cases of strict outflow. 257c8c30d87SJed BrownThe `pressure` variant is retained to facilitate comparison with other codes, such as PHASTA-C, but we recommend `riemann` for general use. 258c8c30d87SJed Brown 259a899b243SJames Wright#### Periodicity 260c8c30d87SJed Brown 261c8c30d87SJed BrownPETSc provides two ways to specify periodicity: 262c8c30d87SJed Brown 263c8c30d87SJed Brown1. Topological periodicity, in which the donor and receiver dofs are the same, obtained using: 264c8c30d87SJed Brown 265c8c30d87SJed Brown```yaml 266c8c30d87SJed Browndm_plex: 267c8c30d87SJed Brown shape: box 268c8c30d87SJed Brown box_faces: 10,12,4 269c8c30d87SJed Brown box_bd: none,none,periodic 270c8c30d87SJed Brown``` 271c8c30d87SJed Brown 272c5e9980aSAdeleke O. BankoleThe coordinates for such cases are stored as a new field with special cell-based indexing to enable wrapping through the boundary. 273c5e9980aSAdeleke 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. 274c5e9980aSAdeleke O. Bankole 275c5e9980aSAdeleke O. Bankole2. Isoperiodicity, in which the donor and receiver dofs are distinct in local vectors. This is obtained using `zbox`, as in: 276c5e9980aSAdeleke O. Bankole 277c5e9980aSAdeleke O. Bankole```yaml 278c5e9980aSAdeleke O. Bankoledm_plex: 279c5e9980aSAdeleke O. Bankole shape: zbox 280c5e9980aSAdeleke O. Bankole box_faces: 10,12,4 281c5e9980aSAdeleke O. Bankole box_bd: none,none,periodic 282c5e9980aSAdeleke O. Bankole``` 283c5e9980aSAdeleke O. Bankole 284c5e9980aSAdeleke O. BankoleIsoperiodicity enables standard boundary integrals, and is recommended for general use. 285c5e9980aSAdeleke O. BankoleAt the time of this writing, it only supports one direction of periodicity. 286c5e9980aSAdeleke 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. 287c8c30d87SJed Brown 288af8870a9STimothy Aiken### Advection 289af8870a9STimothy Aiken 290b46bfc5eSJeremy 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$. 291b46bfc5eSJeremy L ThompsonThese are available in 2D and 3D. 292af8870a9STimothy Aiken 293af8870a9STimothy Aiken#### 2D advection 294af8870a9STimothy Aiken 295575f8106SLeila GhaffariFor the 2D advection problem, the following additional command-line options are available: 296ea10196cSJeremy L Thompson 297575f8106SLeila Ghaffari:::{list-table} Advection2D Runtime Options 298575f8106SLeila Ghaffari:header-rows: 1 2998ef11c93SLeila Ghaffari 300575f8106SLeila Ghaffari* - Option 301575f8106SLeila Ghaffari - Description 302575f8106SLeila Ghaffari - Default value 303575f8106SLeila Ghaffari - Unit 3048ef11c93SLeila Ghaffari 305575f8106SLeila Ghaffari* - `-rc` 306575f8106SLeila Ghaffari - Characteristic radius of thermal bubble 307575f8106SLeila Ghaffari - `1000` 308575f8106SLeila Ghaffari - `m` 3098ef11c93SLeila Ghaffari 310575f8106SLeila Ghaffari* - `-units_meter` 311575f8106SLeila Ghaffari - 1 meter in scaled length units 312575f8106SLeila Ghaffari - `1E-2` 313575f8106SLeila Ghaffari - 3148ef11c93SLeila Ghaffari 315575f8106SLeila Ghaffari* - `-units_second` 316575f8106SLeila Ghaffari - 1 second in scaled time units 317575f8106SLeila Ghaffari - `1E-2` 318575f8106SLeila Ghaffari - 3198ef11c93SLeila Ghaffari 320575f8106SLeila Ghaffari* - `-units_kilogram` 321575f8106SLeila Ghaffari - 1 kilogram in scaled mass units 322575f8106SLeila Ghaffari - `1E-6` 323575f8106SLeila Ghaffari - 324a515125bSLeila Ghaffari 325575f8106SLeila Ghaffari* - `-strong_form` 326575f8106SLeila Ghaffari - Strong (1) or weak/integrated by parts (0) residual 327575f8106SLeila Ghaffari - `0` 328575f8106SLeila Ghaffari - 329a515125bSLeila Ghaffari 330575f8106SLeila Ghaffari* - `-stab` 331575f8106SLeila Ghaffari - Stabilization method (`none`, `su`, or `supg`) 332575f8106SLeila Ghaffari - `none` 333575f8106SLeila Ghaffari - 334a515125bSLeila Ghaffari 335575f8106SLeila Ghaffari* - `-CtauS` 336575f8106SLeila Ghaffari - Scale coefficient for stabilization tau (nondimensional) 337575f8106SLeila Ghaffari - `0` 338575f8106SLeila Ghaffari - 339a515125bSLeila Ghaffari 340575f8106SLeila Ghaffari* - `-wind_type` 341575f8106SLeila Ghaffari - Wind type in Advection (`rotation` or `translation`) 342575f8106SLeila Ghaffari - `rotation` 343575f8106SLeila Ghaffari - 344a515125bSLeila Ghaffari 345575f8106SLeila Ghaffari* - `-wind_translation` 346575f8106SLeila Ghaffari - Constant wind vector when `-wind_type translation` 347575f8106SLeila Ghaffari - `1,0,0` 348575f8106SLeila Ghaffari - 3498ef11c93SLeila Ghaffari 350575f8106SLeila Ghaffari* - `-E_wind` 351575f8106SLeila Ghaffari - Total energy of inflow wind when `-wind_type translation` 352575f8106SLeila Ghaffari - `1E6` 353575f8106SLeila Ghaffari - `J` 354575f8106SLeila Ghaffari::: 355268c6924SLeila Ghaffari 356575f8106SLeila GhaffariAn example of the `rotation` mode can be run with: 357268c6924SLeila Ghaffari 358575f8106SLeila Ghaffari``` 359f4277be3SLeila 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 360575f8106SLeila Ghaffari``` 361268c6924SLeila Ghaffari 362575f8106SLeila Ghaffariand the `translation` mode with: 363268c6924SLeila Ghaffari 364575f8106SLeila Ghaffari``` 365f4277be3SLeila 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 366575f8106SLeila Ghaffari``` 367f4277be3SLeila GhaffariNote the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`. 368268c6924SLeila Ghaffari 369af8870a9STimothy Aiken#### 3D advection 370af8870a9STimothy Aiken 371575f8106SLeila GhaffariFor the 3D advection problem, the following additional command-line options are available: 372268c6924SLeila Ghaffari 373575f8106SLeila Ghaffari:::{list-table} Advection3D Runtime Options 374575f8106SLeila Ghaffari:header-rows: 1 375268c6924SLeila Ghaffari 376575f8106SLeila Ghaffari* - Option 377575f8106SLeila Ghaffari - Description 378575f8106SLeila Ghaffari - Default value 379575f8106SLeila Ghaffari - Unit 380268c6924SLeila Ghaffari 381575f8106SLeila Ghaffari* - `-rc` 382575f8106SLeila Ghaffari - Characteristic radius of thermal bubble 383575f8106SLeila Ghaffari - `1000` 384575f8106SLeila Ghaffari - `m` 385268c6924SLeila Ghaffari 386575f8106SLeila Ghaffari* - `-units_meter` 387575f8106SLeila Ghaffari - 1 meter in scaled length units 388575f8106SLeila Ghaffari - `1E-2` 389575f8106SLeila Ghaffari - 390268c6924SLeila Ghaffari 391575f8106SLeila Ghaffari* - `-units_second` 392575f8106SLeila Ghaffari - 1 second in scaled time units 393575f8106SLeila Ghaffari - `1E-2` 394575f8106SLeila Ghaffari - 395268c6924SLeila Ghaffari 396575f8106SLeila Ghaffari* - `-units_kilogram` 397575f8106SLeila Ghaffari - 1 kilogram in scaled mass units 398575f8106SLeila Ghaffari - `1E-6` 399575f8106SLeila Ghaffari - 400268c6924SLeila Ghaffari 401575f8106SLeila Ghaffari* - `-strong_form` 402575f8106SLeila Ghaffari - Strong (1) or weak/integrated by parts (0) residual 403575f8106SLeila Ghaffari - `0` 404575f8106SLeila Ghaffari - 405268c6924SLeila Ghaffari 406575f8106SLeila Ghaffari* - `-stab` 407575f8106SLeila Ghaffari - Stabilization method (`none`, `su`, or `supg`) 408575f8106SLeila Ghaffari - `none` 409575f8106SLeila Ghaffari - 410268c6924SLeila Ghaffari 411575f8106SLeila Ghaffari* - `-CtauS` 412575f8106SLeila Ghaffari - Scale coefficient for stabilization tau (nondimensional) 413575f8106SLeila Ghaffari - `0` 414575f8106SLeila Ghaffari - 415268c6924SLeila Ghaffari 416575f8106SLeila Ghaffari* - `-wind_type` 417575f8106SLeila Ghaffari - Wind type in Advection (`rotation` or `translation`) 418575f8106SLeila Ghaffari - `rotation` 419575f8106SLeila Ghaffari - 420268c6924SLeila Ghaffari 421575f8106SLeila Ghaffari* - `-wind_translation` 422575f8106SLeila Ghaffari - Constant wind vector when `-wind_type translation` 423575f8106SLeila Ghaffari - `1,0,0` 424575f8106SLeila Ghaffari - 425268c6924SLeila Ghaffari 426575f8106SLeila Ghaffari* - `-E_wind` 427575f8106SLeila Ghaffari - Total energy of inflow wind when `-wind_type translation` 428575f8106SLeila Ghaffari - `1E6` 429575f8106SLeila Ghaffari - `J` 430268c6924SLeila Ghaffari 431575f8106SLeila Ghaffari* - `-bubble_type` 432575f8106SLeila Ghaffari - `sphere` (3D) or `cylinder` (2D) 433a899b243SJames Wright - `sphere` 434575f8106SLeila Ghaffari - 435268c6924SLeila Ghaffari 436575f8106SLeila Ghaffari* - `-bubble_continuity` 437575f8106SLeila Ghaffari - `smooth`, `back_sharp`, or `thick` 438575f8106SLeila Ghaffari - `smooth` 439575f8106SLeila Ghaffari - 440575f8106SLeila Ghaffari::: 441ea10196cSJeremy L Thompson 442575f8106SLeila GhaffariAn example of the `rotation` mode can be run with: 443ea10196cSJeremy L Thompson 444575f8106SLeila Ghaffari``` 445f4277be3SLeila 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 446575f8106SLeila Ghaffari``` 447ea10196cSJeremy L Thompson 448575f8106SLeila Ghaffariand the `translation` mode with: 449ea10196cSJeremy L Thompson 450575f8106SLeila Ghaffari``` 451f4277be3SLeila 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 452575f8106SLeila Ghaffari``` 453ea10196cSJeremy L Thompson 454af8870a9STimothy Aiken### Inviscid Ideal Gas 455af8870a9STimothy Aiken 456af8870a9STimothy Aiken#### Isentropic Euler vortex 457af8870a9STimothy Aiken 458575f8106SLeila GhaffariFor the Isentropic Vortex problem, the following additional command-line options are available: 459ea10196cSJeremy L Thompson 460575f8106SLeila Ghaffari:::{list-table} Isentropic Vortex Runtime Options 461575f8106SLeila Ghaffari:header-rows: 1 462ea10196cSJeremy L Thompson 463575f8106SLeila Ghaffari* - Option 464575f8106SLeila Ghaffari - Description 465575f8106SLeila Ghaffari - Default value 466575f8106SLeila Ghaffari - Unit 467ea10196cSJeremy L Thompson 468575f8106SLeila Ghaffari* - `-center` 469575f8106SLeila Ghaffari - Location of vortex center 470575f8106SLeila Ghaffari - `(lx,ly,lz)/2` 471575f8106SLeila Ghaffari - `(m,m,m)` 472ea10196cSJeremy L Thompson 473575f8106SLeila Ghaffari* - `-units_meter` 474575f8106SLeila Ghaffari - 1 meter in scaled length units 475575f8106SLeila Ghaffari - `1E-2` 476575f8106SLeila Ghaffari - 477ea10196cSJeremy L Thompson 478575f8106SLeila Ghaffari* - `-units_second` 479575f8106SLeila Ghaffari - 1 second in scaled time units 480575f8106SLeila Ghaffari - `1E-2` 481575f8106SLeila Ghaffari - 482ea10196cSJeremy L Thompson 483575f8106SLeila Ghaffari* - `-mean_velocity` 484575f8106SLeila Ghaffari - Background velocity vector 485575f8106SLeila Ghaffari - `(1,1,0)` 486575f8106SLeila Ghaffari - 487ea10196cSJeremy L Thompson 488575f8106SLeila Ghaffari* - `-vortex_strength` 489575f8106SLeila Ghaffari - Strength of vortex < 10 490575f8106SLeila Ghaffari - `5` 491575f8106SLeila Ghaffari - 492d8a22b9eSJed Brown 493d8a22b9eSJed Brown* - `-c_tau` 494d8a22b9eSJed Brown - Stabilization constant 495f821ee77SLeila Ghaffari - `0.5` 496d8a22b9eSJed Brown - 497575f8106SLeila Ghaffari::: 498ea10196cSJeremy L Thompson 499575f8106SLeila GhaffariThis problem can be run with: 500ea10196cSJeremy L Thompson 501575f8106SLeila Ghaffari``` 502f4277be3SLeila 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. 503575f8106SLeila Ghaffari``` 504ea10196cSJeremy L Thompson 505af8870a9STimothy Aiken#### Sod shock tube 506af8870a9STimothy Aiken 507af8870a9STimothy AikenFor the Shock Tube problem, the following additional command-line options are available: 508af8870a9STimothy Aiken 509af8870a9STimothy Aiken:::{list-table} Shock Tube Runtime Options 510af8870a9STimothy Aiken:header-rows: 1 511af8870a9STimothy Aiken 512af8870a9STimothy Aiken* - Option 513af8870a9STimothy Aiken - Description 514af8870a9STimothy Aiken - Default value 515af8870a9STimothy Aiken - Unit 516af8870a9STimothy Aiken 517af8870a9STimothy Aiken* - `-units_meter` 518af8870a9STimothy Aiken - 1 meter in scaled length units 519af8870a9STimothy Aiken - `1E-2` 520af8870a9STimothy Aiken - 521af8870a9STimothy Aiken 522af8870a9STimothy Aiken* - `-units_second` 523af8870a9STimothy Aiken - 1 second in scaled time units 524af8870a9STimothy Aiken - `1E-2` 525af8870a9STimothy Aiken - 526af8870a9STimothy Aiken 527af8870a9STimothy Aiken* - `-yzb` 528af8870a9STimothy Aiken - Use YZB discontinuity capturing 529af8870a9STimothy Aiken - `none` 530af8870a9STimothy Aiken - 531af8870a9STimothy Aiken 532af8870a9STimothy Aiken* - `-stab` 533af8870a9STimothy Aiken - Stabilization method (`none`, `su`, or `supg`) 534af8870a9STimothy Aiken - `none` 535af8870a9STimothy Aiken - 536af8870a9STimothy Aiken::: 537af8870a9STimothy Aiken 538af8870a9STimothy AikenThis problem can be run with: 539af8870a9STimothy Aiken 540af8870a9STimothy Aiken``` 541af8870a9STimothy 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 542af8870a9STimothy Aiken``` 543af8870a9STimothy Aiken 544af8870a9STimothy Aiken### Newtonian viscosity, Ideal Gas 545af8870a9STimothy Aiken 546bb8a0c61SJames WrightFor the Density Current, Channel, and Blasius problems, the following common command-line options are available: 547ea10196cSJeremy L Thompson 548bb8a0c61SJames Wright:::{list-table} Newtonian Ideal Gas problems Runtime Options 549575f8106SLeila Ghaffari:header-rows: 1 550ea10196cSJeremy L Thompson 551575f8106SLeila Ghaffari* - Option 552575f8106SLeila Ghaffari - Description 553575f8106SLeila Ghaffari - Default value 554575f8106SLeila Ghaffari - Unit 555ea10196cSJeremy L Thompson 556575f8106SLeila Ghaffari* - `-units_meter` 557575f8106SLeila Ghaffari - 1 meter in scaled length units 558bb8a0c61SJames Wright - `1` 559575f8106SLeila Ghaffari - 560ea10196cSJeremy L Thompson 561575f8106SLeila Ghaffari* - `-units_second` 562575f8106SLeila Ghaffari - 1 second in scaled time units 563bb8a0c61SJames Wright - `1` 564575f8106SLeila Ghaffari - 565ea10196cSJeremy L Thompson 566575f8106SLeila Ghaffari* - `-units_kilogram` 567575f8106SLeila Ghaffari - 1 kilogram in scaled mass units 568bb8a0c61SJames Wright - `1` 569575f8106SLeila Ghaffari - 570ea10196cSJeremy L Thompson 571575f8106SLeila Ghaffari* - `-units_Kelvin` 572575f8106SLeila Ghaffari - 1 Kelvin in scaled temperature units 573575f8106SLeila Ghaffari - `1` 574575f8106SLeila Ghaffari - 575ea10196cSJeremy L Thompson 576575f8106SLeila Ghaffari* - `-stab` 577575f8106SLeila Ghaffari - Stabilization method (`none`, `su`, or `supg`) 578575f8106SLeila Ghaffari - `none` 579575f8106SLeila Ghaffari - 580ea10196cSJeremy L Thompson 581d8a22b9eSJed Brown* - `-c_tau` 582bb8a0c61SJames Wright - Stabilization constant, $c_\tau$ 583f821ee77SLeila Ghaffari - `0.5` 584d8a22b9eSJed Brown - 585d8a22b9eSJed Brown 586bb8a0c61SJames Wright* - `-Ctau_t` 587bb8a0c61SJames Wright - Stabilization time constant, $C_t$ 588bb8a0c61SJames Wright - `1.0` 589bb8a0c61SJames Wright - 590ea10196cSJeremy L Thompson 591bb8a0c61SJames Wright* - `-Ctau_v` 592bb8a0c61SJames Wright - Stabilization viscous constant, $C_v$ 593b5786772SLeila Ghaffari - `36, 60, 128 for degree = 1, 2, 3` 594bb8a0c61SJames Wright - 595ea10196cSJeremy L Thompson 596bb8a0c61SJames Wright* - `-Ctau_C` 597bb8a0c61SJames Wright - Stabilization continuity constant, $C_c$ 598bb8a0c61SJames Wright - `1.0` 599bb8a0c61SJames Wright - 600ea10196cSJeremy L Thompson 601bb8a0c61SJames Wright* - `-Ctau_M` 602bb8a0c61SJames Wright - Stabilization momentum constant, $C_m$ 603bb8a0c61SJames Wright - `1.0` 604bb8a0c61SJames Wright - 605bb8a0c61SJames Wright 606bb8a0c61SJames Wright* - `-Ctau_E` 607bb8a0c61SJames Wright - Stabilization energy constant, $C_E$ 608bb8a0c61SJames Wright - `1.0` 609bb8a0c61SJames Wright - 610ea10196cSJeremy L Thompson 611575f8106SLeila Ghaffari* - `-cv` 612575f8106SLeila Ghaffari - Heat capacity at constant volume 613575f8106SLeila Ghaffari - `717` 614575f8106SLeila Ghaffari - `J/(kg K)` 615ea10196cSJeremy L Thompson 616575f8106SLeila Ghaffari* - `-cp` 617575f8106SLeila Ghaffari - Heat capacity at constant pressure 618575f8106SLeila Ghaffari - `1004` 619575f8106SLeila Ghaffari - `J/(kg K)` 620ea10196cSJeremy L Thompson 621*d9bb1cdbSJames Wright* - `-gravity` 622*d9bb1cdbSJames Wright - Gravitational acceleration vector 623*d9bb1cdbSJames Wright - `0,0,0` 624575f8106SLeila Ghaffari - `m/s^2` 625ea10196cSJeremy L Thompson 626575f8106SLeila Ghaffari* - `-lambda` 627575f8106SLeila Ghaffari - Stokes hypothesis second viscosity coefficient 628575f8106SLeila Ghaffari - `-2/3` 629575f8106SLeila Ghaffari - 630ea10196cSJeremy L Thompson 631575f8106SLeila Ghaffari* - `-mu` 632575f8106SLeila Ghaffari - Shear dynamic viscosity coefficient 633*d9bb1cdbSJames Wright - `1.8e-5` 634575f8106SLeila Ghaffari - `Pa s` 635a515125bSLeila Ghaffari 636575f8106SLeila Ghaffari* - `-k` 637575f8106SLeila Ghaffari - Thermal conductivity 638575f8106SLeila Ghaffari - `0.02638` 639575f8106SLeila Ghaffari - `W/(m K)` 640edd152dcSJed Brown 641edd152dcSJed Brown* - `-newtonian_unit_tests` 642edd152dcSJed Brown - Developer option to test properties 643edd152dcSJed Brown - `false` 644edd152dcSJed Brown - boolean 645aa61a79eSJames Wright 646ba952bfeSJames Wright* - `-state_var` 647ba952bfeSJames Wright - State variables to solve solution with. `conservative` ($\rho, \rho \bm{u}, \rho e$) or `primitive` ($P, \bm{u}, T$) 648ba952bfeSJames Wright - `conservative` 649ba952bfeSJames Wright - string 650e7754af5SKenneth E. Jansen 651e7754af5SKenneth E. Jansen* - `-idl_decay_time` 652e7754af5SKenneth E. Jansen - Characteristic timescale of the pressure deviance decay. The timestep is good starting point 653e7754af5SKenneth E. Jansen - `-1` (disabled) 654e7754af5SKenneth E. Jansen - `s` 655e7754af5SKenneth E. Jansen 656e7754af5SKenneth E. Jansen* - `-idl_start` 657e7754af5SKenneth E. Jansen - Start of IDL in the x direction 658e7754af5SKenneth E. Jansen - `0` 659e7754af5SKenneth E. Jansen - `m` 660e7754af5SKenneth E. Jansen 661e7754af5SKenneth E. Jansen* - `-idl_length` 662e7754af5SKenneth E. Jansen - Length of IDL in the positive x direction 663e7754af5SKenneth E. Jansen - `0` 664e7754af5SKenneth E. Jansen - `m` 665e7754af5SKenneth E. Jansen 666fb9b2996SJames Wright* - `-sgs_model_type` 667fb9b2996SJames Wright - Type of subgrid stress model to use. Currently only `data_driven` is available 668fb9b2996SJames Wright - `none` 669fb9b2996SJames Wright - string 670fb9b2996SJames Wright 671fb9b2996SJames Wright* - `-sgs_model_dd_leakyrelu_alpha` 672fb9b2996SJames Wright - Slope parameter for Leaky ReLU activation function. `0` corresponds to normal ReLU 673fb9b2996SJames Wright - 0 674fb9b2996SJames Wright - 675fb9b2996SJames Wright 676fb9b2996SJames Wright* - `-sgs_model_dd_parameter_dir` 677fb9b2996SJames Wright - Path to directory with data-driven model parameters (weights, biases, etc.) 678fb9b2996SJames Wright - `./dd_sgs_parameters` 679fb9b2996SJames Wright - string 680fb9b2996SJames Wright 681f4fad612SJames Wright* - `-diff_filter_monitor` 682f4fad612SJames Wright - Enable differential filter TSMonitor 683f4fad612SJames Wright - `false` 684f4fad612SJames Wright - boolean 685f4fad612SJames Wright 686f4fad612SJames Wright* - `-diff_filter_grid_based_width` 687f4fad612SJames Wright - Use filter width based on the grid size 688f4fad612SJames Wright - `false` 689f4fad612SJames Wright - boolean 690f4fad612SJames Wright 691f4fad612SJames Wright* - `-diff_filter_width_scaling` 692f4fad612SJames Wright - Anisotropic scaling for filter width in wall-aligned coordinates (snz) 693f4fad612SJames Wright - `1,1,1` 694f4fad612SJames Wright - `m` 695f4fad612SJames Wright 696f4fad612SJames Wright* - `-diff_filter_kernel_scaling` 697f4fad612SJames Wright - Scaling to make differential kernel size equivalent to other filter kernels 698f4fad612SJames Wright - `0.1` 699f4fad612SJames Wright - `m^2` 700f4fad612SJames Wright 701f4fad612SJames Wright* - `-diff_filter_wall_damping_function` 702f4fad612SJames Wright - Damping function to use at the wall for anisotropic filtering (`none`, `van_driest`) 703f4fad612SJames Wright - `none` 704f4fad612SJames Wright - string 705f4fad612SJames Wright 706f4fad612SJames Wright* - `-diff_filter_wall_damping_constant` 707aaa4e91fSJed Brown - Constant for the wall-damping function. $A^+$ for `van_driest` damping function. 708f4fad612SJames Wright - 25 709f4fad612SJames Wright - 710f4fad612SJames Wright 711f4fad612SJames Wright* - `-diff_filter_friction_length` 712f4fad612SJames Wright - Friction length associated with the flow, $\delta_\nu$. Used in wall-damping functions 713f4fad612SJames Wright - 0 714f4fad612SJames Wright - `m` 715f4fad612SJames Wright 716575f8106SLeila Ghaffari::: 717a515125bSLeila Ghaffari 718e7754af5SKenneth E. Jansen#### Gaussian Wave 71979b17980SJames Wright 720e7754af5SKenneth E. JansenThe Gaussian wave problem has the following command-line options in addition to the Newtonian Ideal Gas options: 72179b17980SJames Wright 722e7754af5SKenneth E. Jansen:::{list-table} Gaussian Wave Runtime Options 72379b17980SJames Wright:header-rows: 1 72479b17980SJames Wright 72579b17980SJames Wright* - Option 72679b17980SJames Wright - Description 72779b17980SJames Wright - Default value 72879b17980SJames Wright - Unit 72979b17980SJames Wright 730edf614b5SJed Brown* - `-freestream_riemann` 731edf614b5SJed Brown - Riemann solver for boundaries (HLL or HLLC) 732edf614b5SJed Brown - `hllc` 733edf614b5SJed Brown - 734edf614b5SJed Brown 735edf614b5SJed Brown* - `-freestream_velocity` 73679b17980SJames Wright - Freestream velocity vector 73779b17980SJames Wright - `0,0,0` 73879b17980SJames Wright - `m/s` 73979b17980SJames Wright 740edf614b5SJed Brown* - `-freestream_temperature` 74179b17980SJames Wright - Freestream temperature 74279b17980SJames Wright - `288` 74379b17980SJames Wright - `K` 74479b17980SJames Wright 745edf614b5SJed Brown* - `-freestream_pressure` 746ff82278dSJames Wright - Freestream pressure 74779b17980SJames Wright - `1.01e5` 74879b17980SJames Wright - `Pa` 74979b17980SJames Wright 75079b17980SJames Wright* - `-epicenter` 75179b17980SJames Wright - Coordinates of center of perturbation 75279b17980SJames Wright - `0,0,0` 75379b17980SJames Wright - `m` 75479b17980SJames Wright 75579b17980SJames Wright* - `-amplitude` 75679b17980SJames Wright - Amplitude of the perturbation 75779b17980SJames Wright - `0.1` 75879b17980SJames Wright - 75979b17980SJames Wright 76079b17980SJames Wright* - `-width` 76179b17980SJames Wright - Width parameter of the perturbation 76279b17980SJames Wright - `0.002` 76379b17980SJames Wright - `m` 76479b17980SJames Wright 76579b17980SJames Wright::: 76679b17980SJames Wright 767e7754af5SKenneth E. JansenThis problem can be run with the `gaussianwave.yaml` file via: 76879b17980SJames Wright 76979b17980SJames Wright``` 770e7754af5SKenneth E. Jansen./navierstokes -options_file gaussianwave.yaml 77179b17980SJames Wright``` 77279b17980SJames Wright 773e7754af5SKenneth E. Jansen```{literalinclude} ../../../../../examples/fluids/gaussianwave.yaml 77479b17980SJames Wright:language: yaml 77579b17980SJames Wright``` 776edd152dcSJed Brown 777b8fb7609SAdeleke O. Bankole#### Vortex Shedding - Flow past Cylinder 778b8fb7609SAdeleke O. Bankole 779b8fb7609SAdeleke O. BankoleThe vortex shedding, flow past cylinder problem has the following command-line options in addition to the Newtonian Ideal Gas options: 780b8fb7609SAdeleke O. Bankole 781b8fb7609SAdeleke O. Bankole:::{list-table} Vortex Shedding Runtime Options 782b8fb7609SAdeleke O. Bankole:header-rows: 1 783b8fb7609SAdeleke O. Bankole 784b8fb7609SAdeleke O. Bankole* - Option 785b8fb7609SAdeleke O. Bankole - Description 786b8fb7609SAdeleke O. Bankole - Default value 787b8fb7609SAdeleke O. Bankole - Unit 788b8fb7609SAdeleke O. Bankole 789b8fb7609SAdeleke O. Bankole* - `-freestream_velocity` 790b8fb7609SAdeleke O. Bankole - Freestream velocity vector 791b8fb7609SAdeleke O. Bankole - `0,0,0` 792b8fb7609SAdeleke O. Bankole - `m/s` 793b8fb7609SAdeleke O. Bankole 794b8fb7609SAdeleke O. Bankole* - `-freestream_temperature` 795b8fb7609SAdeleke O. Bankole - Freestream temperature 796b8fb7609SAdeleke O. Bankole - `288` 797b8fb7609SAdeleke O. Bankole - `K` 798b8fb7609SAdeleke O. Bankole 799b8fb7609SAdeleke O. Bankole* - `-freestream_pressure` 800b8fb7609SAdeleke O. Bankole - Freestream pressure 801b8fb7609SAdeleke O. Bankole - `1.01e5` 802b8fb7609SAdeleke O. Bankole - `Pa` 803b8fb7609SAdeleke O. Bankole 804b8fb7609SAdeleke O. Bankole::: 805b8fb7609SAdeleke O. Bankole 806b8fb7609SAdeleke O. BankoleThe initial condition is taken from `-reference_temperature` and `-reference_pressure`. 807b8fb7609SAdeleke O. BankoleTo run this problem, first generate a mesh: 808b8fb7609SAdeleke O. Bankole 809b8fb7609SAdeleke O. Bankole```console 810b8fb7609SAdeleke O. Bankole$ make -C examples/fluids/meshes 811b8fb7609SAdeleke O. Bankole``` 812b8fb7609SAdeleke O. Bankole 813b8fb7609SAdeleke O. BankoleThen run by building the executable and running: 814b8fb7609SAdeleke O. Bankole 815b8fb7609SAdeleke O. Bankole```console 816b8fb7609SAdeleke O. Bankole$ make build/fluids-navierstokes 817c5e9980aSAdeleke O. Bankole$ mpiexec -n 6 build/fluids-navierstokes -options_file examples/fluids/vortexshedding.yaml -{ts,snes}_monitor_ 818b8fb7609SAdeleke O. Bankole``` 819b8fb7609SAdeleke O. Bankole 820c5e9980aSAdeleke O. BankoleThe vortex shedding period is roughly 5.6 and this problem runs until time 100 (2000 time steps). 821c5e9980aSAdeleke 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. 822c5e9980aSAdeleke O. Bankole 823c5e9980aSAdeleke O. Bankole```console 8242004e3acSAdeleke O. Bankole$ python examples/fluids/postprocess/vortexshedding.py 825c5e9980aSAdeleke O. Bankole``` 826b8fb7609SAdeleke O. Bankole 827b8fb7609SAdeleke O. Bankole```{literalinclude} ../../../../../examples/fluids/vortexshedding.yaml 828b8fb7609SAdeleke O. Bankole:language: yaml 829b8fb7609SAdeleke O. Bankole``` 830b8fb7609SAdeleke O. Bankole 831af8870a9STimothy Aiken#### Density current 832af8870a9STimothy Aiken 83383c686feSJames WrightThe Density Current problem has the following command-line options in addition to the Newtonian Ideal Gas options: 834bb8a0c61SJames Wright 835bb8a0c61SJames Wright:::{list-table} Density Current Runtime Options 836bb8a0c61SJames Wright:header-rows: 1 837bb8a0c61SJames Wright 838bb8a0c61SJames Wright* - Option 839bb8a0c61SJames Wright - Description 840bb8a0c61SJames Wright - Default value 841bb8a0c61SJames Wright - Unit 842bb8a0c61SJames Wright 843bb8a0c61SJames Wright* - `-center` 844bb8a0c61SJames Wright - Location of bubble center 845bb8a0c61SJames Wright - `(lx,ly,lz)/2` 846bb8a0c61SJames Wright - `(m,m,m)` 847bb8a0c61SJames Wright 848bb8a0c61SJames Wright* - `-dc_axis` 849bb8a0c61SJames Wright - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric 850bb8a0c61SJames Wright - `(0,0,0)` 851bb8a0c61SJames Wright - 852bb8a0c61SJames Wright 853bb8a0c61SJames Wright* - `-rc` 854bb8a0c61SJames Wright - Characteristic radius of thermal bubble 855bb8a0c61SJames Wright - `1000` 856bb8a0c61SJames Wright - `m` 857bb8a0c61SJames Wright 858bb8a0c61SJames Wright* - `-theta0` 859bb8a0c61SJames Wright - Reference potential temperature 860bb8a0c61SJames Wright - `300` 861bb8a0c61SJames Wright - `K` 862bb8a0c61SJames Wright 863bb8a0c61SJames Wright* - `-thetaC` 864bb8a0c61SJames Wright - Perturbation of potential temperature 865bb8a0c61SJames Wright - `-15` 866bb8a0c61SJames Wright - `K` 867bb8a0c61SJames Wright 868bb8a0c61SJames Wright* - `-P0` 869bb8a0c61SJames Wright - Atmospheric pressure 870bb8a0c61SJames Wright - `1E5` 871bb8a0c61SJames Wright - `Pa` 872bb8a0c61SJames Wright 873bb8a0c61SJames Wright* - `-N` 874bb8a0c61SJames Wright - Brunt-Vaisala frequency 875bb8a0c61SJames Wright - `0.01` 876bb8a0c61SJames Wright - `1/s` 877bb8a0c61SJames Wright::: 878bb8a0c61SJames Wright 879575f8106SLeila GhaffariThis problem can be run with: 880ea10196cSJeremy L Thompson 881575f8106SLeila Ghaffari``` 882bb8a0c61SJames 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 883bb8a0c61SJames Wright``` 884bb8a0c61SJames Wright 885af8870a9STimothy Aiken#### Channel flow 886af8870a9STimothy Aiken 88783c686feSJames WrightThe Channel problem has the following command-line options in addition to the Newtonian Ideal Gas options: 888bb8a0c61SJames Wright 889bb8a0c61SJames Wright:::{list-table} Channel Runtime Options 890bb8a0c61SJames Wright:header-rows: 1 891bb8a0c61SJames Wright 892bb8a0c61SJames Wright* - Option 893bb8a0c61SJames Wright - Description 894bb8a0c61SJames Wright - Default value 895bb8a0c61SJames Wright - Unit 896bb8a0c61SJames Wright 897bb8a0c61SJames Wright* - `-umax` 898bb8a0c61SJames Wright - Maximum/centerline velocity of the flow 899bb8a0c61SJames Wright - `10` 900bb8a0c61SJames Wright - `m/s` 901bb8a0c61SJames Wright 902bb8a0c61SJames Wright* - `-theta0` 903bb8a0c61SJames Wright - Reference potential temperature 904bb8a0c61SJames Wright - `300` 905bb8a0c61SJames Wright - `K` 906bb8a0c61SJames Wright 907bb8a0c61SJames Wright* - `-P0` 908bb8a0c61SJames Wright - Atmospheric pressure 909bb8a0c61SJames Wright - `1E5` 910bb8a0c61SJames Wright - `Pa` 911edd152dcSJed Brown 912edd152dcSJed Brown* - `-body_force_scale` 913edd152dcSJed Brown - Multiplier for body force (`-1` for flow reversal) 914edd152dcSJed Brown - 1 915edd152dcSJed Brown - 916bb8a0c61SJames Wright::: 917bb8a0c61SJames Wright 918bb8a0c61SJames WrightThis problem can be run with the `channel.yaml` file via: 919bb8a0c61SJames Wright 920bb8a0c61SJames Wright``` 921bb8a0c61SJames Wright./navierstokes -options_file channel.yaml 922bb8a0c61SJames Wright``` 923bb8a0c61SJames Wright```{literalinclude} ../../../../../examples/fluids/channel.yaml 924bb8a0c61SJames Wright:language: yaml 925bb8a0c61SJames Wright``` 926bb8a0c61SJames Wright 927c8c30d87SJed Brown(example-blasius)= 928c8c30d87SJed Brown 929af8870a9STimothy Aiken#### Blasius boundary layer 930af8870a9STimothy Aiken 93183c686feSJames WrightThe Blasius problem has the following command-line options in addition to the Newtonian Ideal Gas options: 932bb8a0c61SJames Wright 933bb8a0c61SJames Wright:::{list-table} Blasius Runtime Options 934bb8a0c61SJames Wright:header-rows: 1 935bb8a0c61SJames Wright 936bb8a0c61SJames Wright* - Option 937bb8a0c61SJames Wright - Description 938bb8a0c61SJames Wright - Default value 939bb8a0c61SJames Wright - Unit 940bb8a0c61SJames Wright 941aef1eb53SLeila Ghaffari* - `-velocity_infinity` 942bb8a0c61SJames Wright - Freestream velocity 943bb8a0c61SJames Wright - `40` 944bb8a0c61SJames Wright - `m/s` 945bb8a0c61SJames Wright 946aef1eb53SLeila Ghaffari* - `-temperature_infinity` 947aef1eb53SLeila Ghaffari - Freestream temperature 948bb8a0c61SJames Wright - `288` 949bb8a0c61SJames Wright - `K` 950bb8a0c61SJames Wright 951aef1eb53SLeila Ghaffari* - `-temperature_wall` 952aef1eb53SLeila Ghaffari - Wall temperature 9530d850f2eSLeila Ghaffari - `288` 954aef1eb53SLeila Ghaffari - `K` 955aef1eb53SLeila Ghaffari 956aef1eb53SLeila Ghaffari* - `-delta0` 957aef1eb53SLeila Ghaffari - Boundary layer height at the inflow 958aef1eb53SLeila Ghaffari - `4.2e-3` 959aef1eb53SLeila Ghaffari - `m` 960aef1eb53SLeila Ghaffari 961bb8a0c61SJames Wright* - `-P0` 962bb8a0c61SJames Wright - Atmospheric pressure 963bb8a0c61SJames Wright - `1.01E5` 964bb8a0c61SJames Wright - `Pa` 965bb8a0c61SJames Wright 96698b448e2SJames Wright* - `-platemesh_refine_height` 96798b448e2SJames Wright - Height at which `-platemesh_Ndelta` number of elements should refined into 968bb8a0c61SJames Wright - `5.9E-4` 969bb8a0c61SJames Wright - `m` 970bb8a0c61SJames Wright 97198b448e2SJames Wright* - `-platemesh_Ndelta` 97298b448e2SJames Wright - Number of elements to keep below `-platemesh_refine_height` 973bb8a0c61SJames Wright - `45` 974bb8a0c61SJames Wright - 975bb8a0c61SJames Wright 97698b448e2SJames Wright* - `-platemesh_growth` 977bb8a0c61SJames Wright - Growth rate of the elements in the refinement region 978bb8a0c61SJames Wright - `1.08` 979bb8a0c61SJames Wright - 980bb8a0c61SJames Wright 98198b448e2SJames Wright* - `-platemesh_top_angle` 982bb8a0c61SJames Wright - Downward angle of the top face of the domain. This face serves as an outlet. 983bb8a0c61SJames Wright - `5` 984bb8a0c61SJames Wright - `degrees` 985493642f1SJames Wright 986493642f1SJames Wright* - `-stg_use` 987493642f1SJames Wright - Whether to use stg for the inflow conditions 988493642f1SJames Wright - `false` 989493642f1SJames Wright - 99098b448e2SJames Wright 99198b448e2SJames Wright* - `-platemesh_y_node_locs_path` 99298b448e2SJames Wright - Path to file with y node locations. If empty, will use mesh warping instead. 99398b448e2SJames Wright - `""` 99498b448e2SJames Wright - 995aef1eb53SLeila Ghaffari 9960d850f2eSLeila Ghaffari* - `-n_chebyshev` 997aef1eb53SLeila Ghaffari - Number of Chebyshev terms 998aef1eb53SLeila Ghaffari - `20` 999aef1eb53SLeila Ghaffari - 1000aef1eb53SLeila Ghaffari 10010d850f2eSLeila Ghaffari* - `-chebyshev_` 10020d850f2eSLeila Ghaffari - Prefix for Chebyshev snes solve 10030d850f2eSLeila Ghaffari - 10040d850f2eSLeila Ghaffari - 10050d850f2eSLeila Ghaffari 1006bb8a0c61SJames Wright::: 1007bb8a0c61SJames Wright 1008bb8a0c61SJames WrightThis problem can be run with the `blasius.yaml` file via: 1009bb8a0c61SJames Wright 1010bb8a0c61SJames Wright``` 1011bb8a0c61SJames Wright./navierstokes -options_file blasius.yaml 1012bb8a0c61SJames Wright``` 1013bb8a0c61SJames Wright 1014bb8a0c61SJames Wright```{literalinclude} ../../../../../examples/fluids/blasius.yaml 1015bb8a0c61SJames Wright:language: yaml 1016575f8106SLeila Ghaffari``` 1017493642f1SJames Wright 1018493642f1SJames Wright#### STG Inflow for Flat Plate 1019493642f1SJames Wright 1020b46bfc5eSJeremy L ThompsonUsing the STG Inflow for the blasius problem adds the following command-line options: 1021493642f1SJames Wright 1022493642f1SJames Wright:::{list-table} Blasius Runtime Options 1023493642f1SJames Wright:header-rows: 1 1024493642f1SJames Wright 1025493642f1SJames Wright* - Option 1026493642f1SJames Wright - Description 1027493642f1SJames Wright - Default value 1028493642f1SJames Wright - Unit 1029493642f1SJames Wright 1030493642f1SJames Wright* - `-stg_inflow_path` 1031493642f1SJames Wright - Path to the STGInflow file 1032493642f1SJames Wright - `./STGInflow.dat` 1033493642f1SJames Wright - 1034493642f1SJames Wright 1035493642f1SJames Wright* - `-stg_rand_path` 1036493642f1SJames Wright - Path to the STGRand file 1037493642f1SJames Wright - `./STGRand.dat` 1038493642f1SJames Wright - 1039493642f1SJames Wright 1040493642f1SJames Wright* - `-stg_alpha` 1041493642f1SJames Wright - Growth rate of the wavemodes 1042493642f1SJames Wright - `1.01` 1043493642f1SJames Wright - 1044493642f1SJames Wright 1045493642f1SJames Wright* - `-stg_u0` 1046493642f1SJames Wright - Convective velocity, $U_0$ 1047493642f1SJames Wright - `0.0` 1048493642f1SJames Wright - `m/s` 1049493642f1SJames Wright 1050493642f1SJames Wright* - `-stg_mean_only` 1051493642f1SJames Wright - Only impose the mean velocity (no fluctutations) 1052493642f1SJames Wright - `false` 1053493642f1SJames Wright - 1054493642f1SJames Wright 105529ea39e3SJames Wright* - `-stg_strong` 105629ea39e3SJames Wright - Strongly enforce the STG inflow boundary condition 105729ea39e3SJames Wright - `false` 105829ea39e3SJames Wright - 105929ea39e3SJames Wright 1060d4e0f297SJames Wright* - `-stg_fluctuating_IC` 1061d4e0f297SJames Wright - "Extrude" the fluctuations through the domain as an initial condition 1062d4e0f297SJames Wright - `false` 1063d4e0f297SJames Wright - 1064d4e0f297SJames Wright 1065493642f1SJames Wright::: 1066493642f1SJames Wright 1067493642f1SJames WrightThis problem can be run with the `blasius.yaml` file via: 1068493642f1SJames Wright 1069493642f1SJames Wright``` 1070493642f1SJames Wright./navierstokes -options_file blasius.yaml -stg_use true 1071493642f1SJames Wright``` 1072493642f1SJames Wright 1073b46bfc5eSJeremy L ThompsonNote the added `-stg_use true` flag 1074b46bfc5eSJeremy L ThompsonThis overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow. 1075