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 39575f8106SLeila Ghaffari* - `-test` 40575f8106SLeila Ghaffari - Run in test mode 41575f8106SLeila Ghaffari - `false` 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 143a8ce54bfSJames Wright* - `-stats_enable` 144a8ce54bfSJames Wright - Enable collection of spanwise flow statistics 145a8ce54bfSJames Wright - `false` 146a8ce54bfSJames Wright 147a8ce54bfSJames Wright* - `-stats_test` 148a8ce54bfSJames Wright - Use manufactured solution for statistics collection (used for testing) 149a8ce54bfSJames Wright - `false` 150a8ce54bfSJames Wright 151a8ce54bfSJames Wright* - `-stats_collect_interval` 152a8ce54bfSJames Wright - Number of timesteps between statistics collection 153a8ce54bfSJames Wright - `1` 154a8ce54bfSJames Wright 155*109cd75bSJames Wright* - `-stats_viewer` 156*109cd75bSJames Wright - Sets the PetscViewer for the statistics file writing, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`) 157*109cd75bSJames Wright - 158*109cd75bSJames Wright 159*109cd75bSJames Wright* - `-stats_viewer_interval` 160a8ce54bfSJames Wright - Number of timesteps between statistics file writing (`-1` means only at end of run) 161a8ce54bfSJames Wright - `-1` 162a8ce54bfSJames Wright 163*109cd75bSJames Wright* - `-stats_viewer_cgns_batch_size` 164*109cd75bSJames Wright - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`). 165*109cd75bSJames Wright - `20` 166*109cd75bSJames Wright 167575f8106SLeila Ghaffari* - `-snes_view` 168575f8106SLeila Ghaffari - View PETSc `SNES` nonlinear solver configuration 169575f8106SLeila Ghaffari - 1708ef11c93SLeila Ghaffari 171575f8106SLeila Ghaffari* - `-log_view` 172575f8106SLeila Ghaffari - View PETSc performance log 173575f8106SLeila Ghaffari - 174ea10196cSJeremy L Thompson 175575f8106SLeila Ghaffari* - `-help` 176575f8106SLeila Ghaffari - View comprehensive information about run-time options 177575f8106SLeila Ghaffari - 178575f8106SLeila Ghaffari::: 179ea10196cSJeremy L Thompson 18079b17980SJames 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: 181f4277be3SLeila Ghaffari 182bb8a0c61SJames Wright:::{list-table} 2D Face ID Labels 183bb8a0c61SJames Wright:header-rows: 1 184bb8a0c61SJames Wright* - PETSc Face Name 185bb8a0c61SJames Wright - Cartesian direction 186bb8a0c61SJames Wright - Face ID 187bb8a0c61SJames Wright 188bb8a0c61SJames Wright* - faceMarkerBottom 189bb8a0c61SJames Wright - -z 190bb8a0c61SJames Wright - 1 191bb8a0c61SJames Wright 192bb8a0c61SJames Wright* - faceMarkerRight 193bb8a0c61SJames Wright - +x 194bb8a0c61SJames Wright - 2 195bb8a0c61SJames Wright 196bb8a0c61SJames Wright* - faceMarkerTop 197bb8a0c61SJames Wright - +z 198bb8a0c61SJames Wright - 3 199bb8a0c61SJames Wright 200bb8a0c61SJames Wright* - faceMarkerLeft 201bb8a0c61SJames Wright - -x 202bb8a0c61SJames Wright - 4 203bb8a0c61SJames Wright::: 204bb8a0c61SJames Wright 205bb8a0c61SJames Wright:::{list-table} 2D Face ID Labels 206bb8a0c61SJames Wright:header-rows: 1 207bb8a0c61SJames Wright* - PETSc Face Name 208bb8a0c61SJames Wright - Cartesian direction 209bb8a0c61SJames Wright - Face ID 210bb8a0c61SJames Wright 211bb8a0c61SJames Wright* - faceMarkerBottom 212bb8a0c61SJames Wright - -z 213bb8a0c61SJames Wright - 1 214bb8a0c61SJames Wright 215bb8a0c61SJames Wright* - faceMarkerTop 216bb8a0c61SJames Wright - +z 217bb8a0c61SJames Wright - 2 218bb8a0c61SJames Wright 219bb8a0c61SJames Wright* - faceMarkerFront 220bb8a0c61SJames Wright - -y 221bb8a0c61SJames Wright - 3 222bb8a0c61SJames Wright 223bb8a0c61SJames Wright* - faceMarkerBack 224bb8a0c61SJames Wright - +y 225bb8a0c61SJames Wright - 4 226bb8a0c61SJames Wright 227bb8a0c61SJames Wright* - faceMarkerRight 228bb8a0c61SJames Wright - +x 229bb8a0c61SJames Wright - 5 230bb8a0c61SJames Wright 231bb8a0c61SJames Wright* - faceMarkerLeft 232bb8a0c61SJames Wright - -x 233bb8a0c61SJames Wright - 6 234bb8a0c61SJames Wright::: 235f4277be3SLeila Ghaffari 236c8c30d87SJed Brown### Boundary conditions 237c8c30d87SJed Brown 238c8c30d87SJed BrownBoundary conditions for compressible viscous flows are notoriously tricky. Here we offer some recommendations 239c8c30d87SJed Brown 240c8c30d87SJed Brown#### Inflow 241c8c30d87SJed Brown 242c8c30d87SJed 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). 243c8c30d87SJed BrownIt is stable and the least reflective boundary condition for acoustics. 244c8c30d87SJed Brown 245c8c30d87SJed BrownIf near a viscous wall, you may want a specified inflow profile. 246c8c30d87SJed BrownUse `bc_inflow` and see {ref}`example-blasius` and discussion of synthetic turbulence generation for ways to analytically generate developed inflow profiles. 247c8c30d87SJed 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. 248c8c30d87SJed BrownThe strong approach gives sharper resolution of velocity structures. 249c8c30d87SJed BrownWe have described the primitive variable formulation here; the conservative variants are similar, but not equivalent. 250c8c30d87SJed Brown 251c8c30d87SJed Brown### Outflow 252c8c30d87SJed Brown 253c8c30d87SJed BrownIf you know the complete exterior state, `bc_freestream` is the least reflective boundary condition, but is disruptive to viscous flow structures. 254c8c30d87SJed BrownIf thermal anomalies must exit the domain, the Riemann solver must resolve the contact wave to avoid reflections. 255c8c30d87SJed 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. 256c8c30d87SJed Brown 257c8c30d87SJed 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. 258c8c30d87SJed Brown 259c8c30d87SJed 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). 260c8c30d87SJed BrownIn our experience, `riemann` is slightly less reflective but produces similar flows in cases of strict outflow. 261c8c30d87SJed BrownThe `pressure` variant is retained to facilitate comparison with other codes, such as PHASTA-C, but we recommend `riemann` for general use. 262c8c30d87SJed Brown 263c8c30d87SJed Brown### Periodicity 264c8c30d87SJed Brown 265c8c30d87SJed BrownPETSc provides two ways to specify periodicity: 266c8c30d87SJed Brown 267c8c30d87SJed Brown1. Topological periodicity, in which the donor and receiver dofs are the same, obtained using: 268c8c30d87SJed Brown 269c8c30d87SJed Brown``` yaml 270c8c30d87SJed Browndm_plex: 271c8c30d87SJed Brown shape: box 272c8c30d87SJed Brown box_faces: 10,12,4 273c8c30d87SJed Brown box_bd: none,none,periodic 274c8c30d87SJed Brown``` 275c8c30d87SJed Brown 276c8c30d87SJed BrownThe coordinates for such cases are stored as a new field, and 277c8c30d87SJed Brown 278af8870a9STimothy Aiken### Advection 279af8870a9STimothy Aiken 280b46bfc5eSJeremy 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$. 281b46bfc5eSJeremy L ThompsonThese are available in 2D and 3D. 282af8870a9STimothy Aiken 283af8870a9STimothy Aiken#### 2D advection 284af8870a9STimothy Aiken 285575f8106SLeila GhaffariFor the 2D advection problem, the following additional command-line options are available: 286ea10196cSJeremy L Thompson 287575f8106SLeila Ghaffari:::{list-table} Advection2D Runtime Options 288575f8106SLeila Ghaffari:header-rows: 1 2898ef11c93SLeila Ghaffari 290575f8106SLeila Ghaffari* - Option 291575f8106SLeila Ghaffari - Description 292575f8106SLeila Ghaffari - Default value 293575f8106SLeila Ghaffari - Unit 2948ef11c93SLeila Ghaffari 295575f8106SLeila Ghaffari* - `-rc` 296575f8106SLeila Ghaffari - Characteristic radius of thermal bubble 297575f8106SLeila Ghaffari - `1000` 298575f8106SLeila Ghaffari - `m` 2998ef11c93SLeila Ghaffari 300575f8106SLeila Ghaffari* - `-units_meter` 301575f8106SLeila Ghaffari - 1 meter in scaled length units 302575f8106SLeila Ghaffari - `1E-2` 303575f8106SLeila Ghaffari - 3048ef11c93SLeila Ghaffari 305575f8106SLeila Ghaffari* - `-units_second` 306575f8106SLeila Ghaffari - 1 second in scaled time units 307575f8106SLeila Ghaffari - `1E-2` 308575f8106SLeila Ghaffari - 3098ef11c93SLeila Ghaffari 310575f8106SLeila Ghaffari* - `-units_kilogram` 311575f8106SLeila Ghaffari - 1 kilogram in scaled mass units 312575f8106SLeila Ghaffari - `1E-6` 313575f8106SLeila Ghaffari - 314a515125bSLeila Ghaffari 315575f8106SLeila Ghaffari* - `-strong_form` 316575f8106SLeila Ghaffari - Strong (1) or weak/integrated by parts (0) residual 317575f8106SLeila Ghaffari - `0` 318575f8106SLeila Ghaffari - 319a515125bSLeila Ghaffari 320575f8106SLeila Ghaffari* - `-stab` 321575f8106SLeila Ghaffari - Stabilization method (`none`, `su`, or `supg`) 322575f8106SLeila Ghaffari - `none` 323575f8106SLeila Ghaffari - 324a515125bSLeila Ghaffari 325575f8106SLeila Ghaffari* - `-CtauS` 326575f8106SLeila Ghaffari - Scale coefficient for stabilization tau (nondimensional) 327575f8106SLeila Ghaffari - `0` 328575f8106SLeila Ghaffari - 329a515125bSLeila Ghaffari 330575f8106SLeila Ghaffari* - `-wind_type` 331575f8106SLeila Ghaffari - Wind type in Advection (`rotation` or `translation`) 332575f8106SLeila Ghaffari - `rotation` 333575f8106SLeila Ghaffari - 334a515125bSLeila Ghaffari 335575f8106SLeila Ghaffari* - `-wind_translation` 336575f8106SLeila Ghaffari - Constant wind vector when `-wind_type translation` 337575f8106SLeila Ghaffari - `1,0,0` 338575f8106SLeila Ghaffari - 3398ef11c93SLeila Ghaffari 340575f8106SLeila Ghaffari* - `-E_wind` 341575f8106SLeila Ghaffari - Total energy of inflow wind when `-wind_type translation` 342575f8106SLeila Ghaffari - `1E6` 343575f8106SLeila Ghaffari - `J` 344575f8106SLeila Ghaffari::: 345268c6924SLeila Ghaffari 346575f8106SLeila GhaffariAn example of the `rotation` mode can be run with: 347268c6924SLeila Ghaffari 348575f8106SLeila Ghaffari``` 349f4277be3SLeila 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 350575f8106SLeila Ghaffari``` 351268c6924SLeila Ghaffari 352575f8106SLeila Ghaffariand the `translation` mode with: 353268c6924SLeila Ghaffari 354575f8106SLeila Ghaffari``` 355f4277be3SLeila 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 356575f8106SLeila Ghaffari``` 357f4277be3SLeila GhaffariNote the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`. 358268c6924SLeila Ghaffari 359af8870a9STimothy Aiken#### 3D advection 360af8870a9STimothy Aiken 361575f8106SLeila GhaffariFor the 3D advection problem, the following additional command-line options are available: 362268c6924SLeila Ghaffari 363575f8106SLeila Ghaffari:::{list-table} Advection3D Runtime Options 364575f8106SLeila Ghaffari:header-rows: 1 365268c6924SLeila Ghaffari 366575f8106SLeila Ghaffari* - Option 367575f8106SLeila Ghaffari - Description 368575f8106SLeila Ghaffari - Default value 369575f8106SLeila Ghaffari - Unit 370268c6924SLeila Ghaffari 371575f8106SLeila Ghaffari* - `-rc` 372575f8106SLeila Ghaffari - Characteristic radius of thermal bubble 373575f8106SLeila Ghaffari - `1000` 374575f8106SLeila Ghaffari - `m` 375268c6924SLeila Ghaffari 376575f8106SLeila Ghaffari* - `-units_meter` 377575f8106SLeila Ghaffari - 1 meter in scaled length units 378575f8106SLeila Ghaffari - `1E-2` 379575f8106SLeila Ghaffari - 380268c6924SLeila Ghaffari 381575f8106SLeila Ghaffari* - `-units_second` 382575f8106SLeila Ghaffari - 1 second in scaled time units 383575f8106SLeila Ghaffari - `1E-2` 384575f8106SLeila Ghaffari - 385268c6924SLeila Ghaffari 386575f8106SLeila Ghaffari* - `-units_kilogram` 387575f8106SLeila Ghaffari - 1 kilogram in scaled mass units 388575f8106SLeila Ghaffari - `1E-6` 389575f8106SLeila Ghaffari - 390268c6924SLeila Ghaffari 391575f8106SLeila Ghaffari* - `-strong_form` 392575f8106SLeila Ghaffari - Strong (1) or weak/integrated by parts (0) residual 393575f8106SLeila Ghaffari - `0` 394575f8106SLeila Ghaffari - 395268c6924SLeila Ghaffari 396575f8106SLeila Ghaffari* - `-stab` 397575f8106SLeila Ghaffari - Stabilization method (`none`, `su`, or `supg`) 398575f8106SLeila Ghaffari - `none` 399575f8106SLeila Ghaffari - 400268c6924SLeila Ghaffari 401575f8106SLeila Ghaffari* - `-CtauS` 402575f8106SLeila Ghaffari - Scale coefficient for stabilization tau (nondimensional) 403575f8106SLeila Ghaffari - `0` 404575f8106SLeila Ghaffari - 405268c6924SLeila Ghaffari 406575f8106SLeila Ghaffari* - `-wind_type` 407575f8106SLeila Ghaffari - Wind type in Advection (`rotation` or `translation`) 408575f8106SLeila Ghaffari - `rotation` 409575f8106SLeila Ghaffari - 410268c6924SLeila Ghaffari 411575f8106SLeila Ghaffari* - `-wind_translation` 412575f8106SLeila Ghaffari - Constant wind vector when `-wind_type translation` 413575f8106SLeila Ghaffari - `1,0,0` 414575f8106SLeila Ghaffari - 415268c6924SLeila Ghaffari 416575f8106SLeila Ghaffari* - `-E_wind` 417575f8106SLeila Ghaffari - Total energy of inflow wind when `-wind_type translation` 418575f8106SLeila Ghaffari - `1E6` 419575f8106SLeila Ghaffari - `J` 420268c6924SLeila Ghaffari 421575f8106SLeila Ghaffari* - `-bubble_type` 422575f8106SLeila Ghaffari - `sphere` (3D) or `cylinder` (2D) 423575f8106SLeila Ghaffari - `shpere` 424575f8106SLeila Ghaffari - 425268c6924SLeila Ghaffari 426575f8106SLeila Ghaffari* - `-bubble_continuity` 427575f8106SLeila Ghaffari - `smooth`, `back_sharp`, or `thick` 428575f8106SLeila Ghaffari - `smooth` 429575f8106SLeila Ghaffari - 430575f8106SLeila Ghaffari::: 431ea10196cSJeremy L Thompson 432575f8106SLeila GhaffariAn example of the `rotation` mode can be run with: 433ea10196cSJeremy L Thompson 434575f8106SLeila Ghaffari``` 435f4277be3SLeila 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 436575f8106SLeila Ghaffari``` 437ea10196cSJeremy L Thompson 438575f8106SLeila Ghaffariand the `translation` mode with: 439ea10196cSJeremy L Thompson 440575f8106SLeila Ghaffari``` 441f4277be3SLeila 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 442575f8106SLeila Ghaffari``` 443ea10196cSJeremy L Thompson 444af8870a9STimothy Aiken### Inviscid Ideal Gas 445af8870a9STimothy Aiken 446af8870a9STimothy Aiken#### Isentropic Euler vortex 447af8870a9STimothy Aiken 448575f8106SLeila GhaffariFor the Isentropic Vortex problem, the following additional command-line options are available: 449ea10196cSJeremy L Thompson 450575f8106SLeila Ghaffari:::{list-table} Isentropic Vortex Runtime Options 451575f8106SLeila Ghaffari:header-rows: 1 452ea10196cSJeremy L Thompson 453575f8106SLeila Ghaffari* - Option 454575f8106SLeila Ghaffari - Description 455575f8106SLeila Ghaffari - Default value 456575f8106SLeila Ghaffari - Unit 457ea10196cSJeremy L Thompson 458575f8106SLeila Ghaffari* - `-center` 459575f8106SLeila Ghaffari - Location of vortex center 460575f8106SLeila Ghaffari - `(lx,ly,lz)/2` 461575f8106SLeila Ghaffari - `(m,m,m)` 462ea10196cSJeremy L Thompson 463575f8106SLeila Ghaffari* - `-units_meter` 464575f8106SLeila Ghaffari - 1 meter in scaled length units 465575f8106SLeila Ghaffari - `1E-2` 466575f8106SLeila Ghaffari - 467ea10196cSJeremy L Thompson 468575f8106SLeila Ghaffari* - `-units_second` 469575f8106SLeila Ghaffari - 1 second in scaled time units 470575f8106SLeila Ghaffari - `1E-2` 471575f8106SLeila Ghaffari - 472ea10196cSJeremy L Thompson 473575f8106SLeila Ghaffari* - `-mean_velocity` 474575f8106SLeila Ghaffari - Background velocity vector 475575f8106SLeila Ghaffari - `(1,1,0)` 476575f8106SLeila Ghaffari - 477ea10196cSJeremy L Thompson 478575f8106SLeila Ghaffari* - `-vortex_strength` 479575f8106SLeila Ghaffari - Strength of vortex < 10 480575f8106SLeila Ghaffari - `5` 481575f8106SLeila Ghaffari - 482d8a22b9eSJed Brown 483d8a22b9eSJed Brown* - `-c_tau` 484d8a22b9eSJed Brown - Stabilization constant 485f821ee77SLeila Ghaffari - `0.5` 486d8a22b9eSJed Brown - 487575f8106SLeila Ghaffari::: 488ea10196cSJeremy L Thompson 489575f8106SLeila GhaffariThis problem can be run with: 490ea10196cSJeremy L Thompson 491575f8106SLeila Ghaffari``` 492f4277be3SLeila 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. 493575f8106SLeila Ghaffari``` 494ea10196cSJeremy L Thompson 495af8870a9STimothy Aiken#### Sod shock tube 496af8870a9STimothy Aiken 497af8870a9STimothy AikenFor the Shock Tube problem, the following additional command-line options are available: 498af8870a9STimothy Aiken 499af8870a9STimothy Aiken:::{list-table} Shock Tube Runtime Options 500af8870a9STimothy Aiken:header-rows: 1 501af8870a9STimothy Aiken 502af8870a9STimothy Aiken* - Option 503af8870a9STimothy Aiken - Description 504af8870a9STimothy Aiken - Default value 505af8870a9STimothy Aiken - Unit 506af8870a9STimothy Aiken 507af8870a9STimothy Aiken* - `-units_meter` 508af8870a9STimothy Aiken - 1 meter in scaled length units 509af8870a9STimothy Aiken - `1E-2` 510af8870a9STimothy Aiken - 511af8870a9STimothy Aiken 512af8870a9STimothy Aiken* - `-units_second` 513af8870a9STimothy Aiken - 1 second in scaled time units 514af8870a9STimothy Aiken - `1E-2` 515af8870a9STimothy Aiken - 516af8870a9STimothy Aiken 517af8870a9STimothy Aiken* - `-yzb` 518af8870a9STimothy Aiken - Use YZB discontinuity capturing 519af8870a9STimothy Aiken - `none` 520af8870a9STimothy Aiken - 521af8870a9STimothy Aiken 522af8870a9STimothy Aiken* - `-stab` 523af8870a9STimothy Aiken - Stabilization method (`none`, `su`, or `supg`) 524af8870a9STimothy Aiken - `none` 525af8870a9STimothy Aiken - 526af8870a9STimothy Aiken::: 527af8870a9STimothy Aiken 528af8870a9STimothy AikenThis problem can be run with: 529af8870a9STimothy Aiken 530af8870a9STimothy Aiken``` 531af8870a9STimothy 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 532af8870a9STimothy Aiken``` 533af8870a9STimothy Aiken 534af8870a9STimothy Aiken### Newtonian viscosity, Ideal Gas 535af8870a9STimothy Aiken 536bb8a0c61SJames WrightFor the Density Current, Channel, and Blasius problems, the following common command-line options are available: 537ea10196cSJeremy L Thompson 538bb8a0c61SJames Wright:::{list-table} Newtonian Ideal Gas problems Runtime Options 539575f8106SLeila Ghaffari:header-rows: 1 540ea10196cSJeremy L Thompson 541575f8106SLeila Ghaffari* - Option 542575f8106SLeila Ghaffari - Description 543575f8106SLeila Ghaffari - Default value 544575f8106SLeila Ghaffari - Unit 545ea10196cSJeremy L Thompson 546575f8106SLeila Ghaffari* - `-units_meter` 547575f8106SLeila Ghaffari - 1 meter in scaled length units 548bb8a0c61SJames Wright - `1` 549575f8106SLeila Ghaffari - 550ea10196cSJeremy L Thompson 551575f8106SLeila Ghaffari* - `-units_second` 552575f8106SLeila Ghaffari - 1 second in scaled time units 553bb8a0c61SJames Wright - `1` 554575f8106SLeila Ghaffari - 555ea10196cSJeremy L Thompson 556575f8106SLeila Ghaffari* - `-units_kilogram` 557575f8106SLeila Ghaffari - 1 kilogram in scaled mass units 558bb8a0c61SJames Wright - `1` 559575f8106SLeila Ghaffari - 560ea10196cSJeremy L Thompson 561575f8106SLeila Ghaffari* - `-units_Kelvin` 562575f8106SLeila Ghaffari - 1 Kelvin in scaled temperature units 563575f8106SLeila Ghaffari - `1` 564575f8106SLeila Ghaffari - 565ea10196cSJeremy L Thompson 566575f8106SLeila Ghaffari* - `-stab` 567575f8106SLeila Ghaffari - Stabilization method (`none`, `su`, or `supg`) 568575f8106SLeila Ghaffari - `none` 569575f8106SLeila Ghaffari - 570ea10196cSJeremy L Thompson 571d8a22b9eSJed Brown* - `-c_tau` 572bb8a0c61SJames Wright - Stabilization constant, $c_\tau$ 573f821ee77SLeila Ghaffari - `0.5` 574d8a22b9eSJed Brown - 575d8a22b9eSJed Brown 576bb8a0c61SJames Wright* - `-Ctau_t` 577bb8a0c61SJames Wright - Stabilization time constant, $C_t$ 578bb8a0c61SJames Wright - `1.0` 579bb8a0c61SJames Wright - 580ea10196cSJeremy L Thompson 581bb8a0c61SJames Wright* - `-Ctau_v` 582bb8a0c61SJames Wright - Stabilization viscous constant, $C_v$ 583b5786772SLeila Ghaffari - `36, 60, 128 for degree = 1, 2, 3` 584bb8a0c61SJames Wright - 585ea10196cSJeremy L Thompson 586bb8a0c61SJames Wright* - `-Ctau_C` 587bb8a0c61SJames Wright - Stabilization continuity constant, $C_c$ 588bb8a0c61SJames Wright - `1.0` 589bb8a0c61SJames Wright - 590ea10196cSJeremy L Thompson 591bb8a0c61SJames Wright* - `-Ctau_M` 592bb8a0c61SJames Wright - Stabilization momentum constant, $C_m$ 593bb8a0c61SJames Wright - `1.0` 594bb8a0c61SJames Wright - 595bb8a0c61SJames Wright 596bb8a0c61SJames Wright* - `-Ctau_E` 597bb8a0c61SJames Wright - Stabilization energy constant, $C_E$ 598bb8a0c61SJames Wright - `1.0` 599bb8a0c61SJames Wright - 600ea10196cSJeremy L Thompson 601575f8106SLeila Ghaffari* - `-cv` 602575f8106SLeila Ghaffari - Heat capacity at constant volume 603575f8106SLeila Ghaffari - `717` 604575f8106SLeila Ghaffari - `J/(kg K)` 605ea10196cSJeremy L Thompson 606575f8106SLeila Ghaffari* - `-cp` 607575f8106SLeila Ghaffari - Heat capacity at constant pressure 608575f8106SLeila Ghaffari - `1004` 609575f8106SLeila Ghaffari - `J/(kg K)` 610ea10196cSJeremy L Thompson 611575f8106SLeila Ghaffari* - `-g` 612575f8106SLeila Ghaffari - Gravitational acceleration 613575f8106SLeila Ghaffari - `9.81` 614575f8106SLeila Ghaffari - `m/s^2` 615ea10196cSJeremy L Thompson 616575f8106SLeila Ghaffari* - `-lambda` 617575f8106SLeila Ghaffari - Stokes hypothesis second viscosity coefficient 618575f8106SLeila Ghaffari - `-2/3` 619575f8106SLeila Ghaffari - 620ea10196cSJeremy L Thompson 621575f8106SLeila Ghaffari* - `-mu` 622575f8106SLeila Ghaffari - Shear dynamic viscosity coefficient 623575f8106SLeila Ghaffari - `75` 624575f8106SLeila Ghaffari - `Pa s` 625a515125bSLeila Ghaffari 626575f8106SLeila Ghaffari* - `-k` 627575f8106SLeila Ghaffari - Thermal conductivity 628575f8106SLeila Ghaffari - `0.02638` 629575f8106SLeila Ghaffari - `W/(m K)` 630edd152dcSJed Brown 631edd152dcSJed Brown* - `-newtonian_unit_tests` 632edd152dcSJed Brown - Developer option to test properties 633edd152dcSJed Brown - `false` 634edd152dcSJed Brown - boolean 635aa61a79eSJames Wright 636ba952bfeSJames Wright* - `-state_var` 637ba952bfeSJames Wright - State variables to solve solution with. `conservative` ($\rho, \rho \bm{u}, \rho e$) or `primitive` ($P, \bm{u}, T$) 638ba952bfeSJames Wright - `conservative` 639ba952bfeSJames Wright - string 640575f8106SLeila Ghaffari::: 641a515125bSLeila Ghaffari 64279b17980SJames Wright#### Newtonian Wave 64379b17980SJames Wright 64483c686feSJames WrightThe newtonian wave problem has the following command-line options in addition to the Newtonian Ideal Gas options: 64579b17980SJames Wright 646ff82278dSJames Wright:::{list-table} Newtonian Wave Runtime Options 64779b17980SJames Wright:header-rows: 1 64879b17980SJames Wright 64979b17980SJames Wright* - Option 65079b17980SJames Wright - Description 65179b17980SJames Wright - Default value 65279b17980SJames Wright - Unit 65379b17980SJames Wright 654edf614b5SJed Brown* - `-freestream_riemann` 655edf614b5SJed Brown - Riemann solver for boundaries (HLL or HLLC) 656edf614b5SJed Brown - `hllc` 657edf614b5SJed Brown - 658edf614b5SJed Brown 659edf614b5SJed Brown* - `-freestream_velocity` 66079b17980SJames Wright - Freestream velocity vector 66179b17980SJames Wright - `0,0,0` 66279b17980SJames Wright - `m/s` 66379b17980SJames Wright 664edf614b5SJed Brown* - `-freestream_temperature` 66579b17980SJames Wright - Freestream temperature 66679b17980SJames Wright - `288` 66779b17980SJames Wright - `K` 66879b17980SJames Wright 669edf614b5SJed Brown* - `-freestream_pressure` 670ff82278dSJames Wright - Freestream pressure 67179b17980SJames Wright - `1.01e5` 67279b17980SJames Wright - `Pa` 67379b17980SJames Wright 67479b17980SJames Wright* - `-epicenter` 67579b17980SJames Wright - Coordinates of center of perturbation 67679b17980SJames Wright - `0,0,0` 67779b17980SJames Wright - `m` 67879b17980SJames Wright 67979b17980SJames Wright* - `-amplitude` 68079b17980SJames Wright - Amplitude of the perturbation 68179b17980SJames Wright - `0.1` 68279b17980SJames Wright - 68379b17980SJames Wright 68479b17980SJames Wright* - `-width` 68579b17980SJames Wright - Width parameter of the perturbation 68679b17980SJames Wright - `0.002` 68779b17980SJames Wright - `m` 68879b17980SJames Wright 68979b17980SJames Wright::: 69079b17980SJames Wright 69179b17980SJames WrightThis problem can be run with the `newtonianwave.yaml` file via: 69279b17980SJames Wright 69379b17980SJames Wright``` 69479b17980SJames Wright./navierstokes -options_file newtonianwave.yaml 69579b17980SJames Wright``` 69679b17980SJames Wright 69779b17980SJames Wright```{literalinclude} ../../../../../examples/fluids/newtonianwave.yaml 69879b17980SJames Wright:language: yaml 69979b17980SJames Wright``` 700edd152dcSJed Brown 701b8fb7609SAdeleke O. Bankole#### Vortex Shedding - Flow past Cylinder 702b8fb7609SAdeleke O. Bankole 703b8fb7609SAdeleke O. BankoleThe vortex shedding, flow past cylinder problem has the following command-line options in addition to the Newtonian Ideal Gas options: 704b8fb7609SAdeleke O. Bankole 705b8fb7609SAdeleke O. Bankole:::{list-table} Vortex Shedding Runtime Options 706b8fb7609SAdeleke O. Bankole:header-rows: 1 707b8fb7609SAdeleke O. Bankole 708b8fb7609SAdeleke O. Bankole* - Option 709b8fb7609SAdeleke O. Bankole - Description 710b8fb7609SAdeleke O. Bankole - Default value 711b8fb7609SAdeleke O. Bankole - Unit 712b8fb7609SAdeleke O. Bankole 713b8fb7609SAdeleke O. Bankole* - `-freestream_velocity` 714b8fb7609SAdeleke O. Bankole - Freestream velocity vector 715b8fb7609SAdeleke O. Bankole - `0,0,0` 716b8fb7609SAdeleke O. Bankole - `m/s` 717b8fb7609SAdeleke O. Bankole 718b8fb7609SAdeleke O. Bankole* - `-freestream_temperature` 719b8fb7609SAdeleke O. Bankole - Freestream temperature 720b8fb7609SAdeleke O. Bankole - `288` 721b8fb7609SAdeleke O. Bankole - `K` 722b8fb7609SAdeleke O. Bankole 723b8fb7609SAdeleke O. Bankole* - `-freestream_pressure` 724b8fb7609SAdeleke O. Bankole - Freestream pressure 725b8fb7609SAdeleke O. Bankole - `1.01e5` 726b8fb7609SAdeleke O. Bankole - `Pa` 727b8fb7609SAdeleke O. Bankole 728b8fb7609SAdeleke O. Bankole::: 729b8fb7609SAdeleke O. Bankole 730b8fb7609SAdeleke O. BankoleThe initial condition is taken from `-reference_temperature` and `-reference_pressure`. 731b8fb7609SAdeleke O. BankoleTo run this problem, first generate a mesh: 732b8fb7609SAdeleke O. Bankole 733b8fb7609SAdeleke O. Bankole```console 734b8fb7609SAdeleke O. Bankole$ make -C examples/fluids/meshes 735b8fb7609SAdeleke O. Bankole``` 736b8fb7609SAdeleke O. Bankole 737b8fb7609SAdeleke O. BankoleThen run by building the executable and running: 738b8fb7609SAdeleke O. Bankole 739b8fb7609SAdeleke O. Bankole```console 740b8fb7609SAdeleke O. Bankole$ make build/fluids-navierstokes 741b8fb7609SAdeleke O. Bankole$ mpiexec -n 6 build/fluids-navierstokes -options_file vortexshedding.yaml 742b8fb7609SAdeleke O. Bankole``` 743b8fb7609SAdeleke O. Bankole 744b8fb7609SAdeleke O. BankoleThe vortex shedding period is roughly 6 and this problem runs until time 100 (2000 time steps). 745b8fb7609SAdeleke O. Bankole 746b8fb7609SAdeleke O. Bankole```{literalinclude} ../../../../../examples/fluids/vortexshedding.yaml 747b8fb7609SAdeleke O. Bankole:language: yaml 748b8fb7609SAdeleke O. Bankole``` 749b8fb7609SAdeleke O. Bankole 750af8870a9STimothy Aiken#### Density current 751af8870a9STimothy Aiken 75283c686feSJames WrightThe Density Current problem has the following command-line options in addition to the Newtonian Ideal Gas options: 753bb8a0c61SJames Wright 754bb8a0c61SJames Wright:::{list-table} Density Current Runtime Options 755bb8a0c61SJames Wright:header-rows: 1 756bb8a0c61SJames Wright 757bb8a0c61SJames Wright* - Option 758bb8a0c61SJames Wright - Description 759bb8a0c61SJames Wright - Default value 760bb8a0c61SJames Wright - Unit 761bb8a0c61SJames Wright 762bb8a0c61SJames Wright* - `-center` 763bb8a0c61SJames Wright - Location of bubble center 764bb8a0c61SJames Wright - `(lx,ly,lz)/2` 765bb8a0c61SJames Wright - `(m,m,m)` 766bb8a0c61SJames Wright 767bb8a0c61SJames Wright* - `-dc_axis` 768bb8a0c61SJames Wright - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric 769bb8a0c61SJames Wright - `(0,0,0)` 770bb8a0c61SJames Wright - 771bb8a0c61SJames Wright 772bb8a0c61SJames Wright* - `-rc` 773bb8a0c61SJames Wright - Characteristic radius of thermal bubble 774bb8a0c61SJames Wright - `1000` 775bb8a0c61SJames Wright - `m` 776bb8a0c61SJames Wright 777bb8a0c61SJames Wright* - `-theta0` 778bb8a0c61SJames Wright - Reference potential temperature 779bb8a0c61SJames Wright - `300` 780bb8a0c61SJames Wright - `K` 781bb8a0c61SJames Wright 782bb8a0c61SJames Wright* - `-thetaC` 783bb8a0c61SJames Wright - Perturbation of potential temperature 784bb8a0c61SJames Wright - `-15` 785bb8a0c61SJames Wright - `K` 786bb8a0c61SJames Wright 787bb8a0c61SJames Wright* - `-P0` 788bb8a0c61SJames Wright - Atmospheric pressure 789bb8a0c61SJames Wright - `1E5` 790bb8a0c61SJames Wright - `Pa` 791bb8a0c61SJames Wright 792bb8a0c61SJames Wright* - `-N` 793bb8a0c61SJames Wright - Brunt-Vaisala frequency 794bb8a0c61SJames Wright - `0.01` 795bb8a0c61SJames Wright - `1/s` 796bb8a0c61SJames Wright::: 797bb8a0c61SJames Wright 798575f8106SLeila GhaffariThis problem can be run with: 799ea10196cSJeremy L Thompson 800575f8106SLeila Ghaffari``` 801bb8a0c61SJames 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 802bb8a0c61SJames Wright``` 803bb8a0c61SJames Wright 804af8870a9STimothy Aiken#### Channel flow 805af8870a9STimothy Aiken 80683c686feSJames WrightThe Channel problem has the following command-line options in addition to the Newtonian Ideal Gas options: 807bb8a0c61SJames Wright 808bb8a0c61SJames Wright:::{list-table} Channel Runtime Options 809bb8a0c61SJames Wright:header-rows: 1 810bb8a0c61SJames Wright 811bb8a0c61SJames Wright* - Option 812bb8a0c61SJames Wright - Description 813bb8a0c61SJames Wright - Default value 814bb8a0c61SJames Wright - Unit 815bb8a0c61SJames Wright 816bb8a0c61SJames Wright* - `-umax` 817bb8a0c61SJames Wright - Maximum/centerline velocity of the flow 818bb8a0c61SJames Wright - `10` 819bb8a0c61SJames Wright - `m/s` 820bb8a0c61SJames Wright 821bb8a0c61SJames Wright* - `-theta0` 822bb8a0c61SJames Wright - Reference potential temperature 823bb8a0c61SJames Wright - `300` 824bb8a0c61SJames Wright - `K` 825bb8a0c61SJames Wright 826bb8a0c61SJames Wright* - `-P0` 827bb8a0c61SJames Wright - Atmospheric pressure 828bb8a0c61SJames Wright - `1E5` 829bb8a0c61SJames Wright - `Pa` 830edd152dcSJed Brown 831edd152dcSJed Brown* - `-body_force_scale` 832edd152dcSJed Brown - Multiplier for body force (`-1` for flow reversal) 833edd152dcSJed Brown - 1 834edd152dcSJed Brown - 835bb8a0c61SJames Wright::: 836bb8a0c61SJames Wright 837bb8a0c61SJames WrightThis problem can be run with the `channel.yaml` file via: 838bb8a0c61SJames Wright 839bb8a0c61SJames Wright``` 840bb8a0c61SJames Wright./navierstokes -options_file channel.yaml 841bb8a0c61SJames Wright``` 842bb8a0c61SJames Wright```{literalinclude} ../../../../../examples/fluids/channel.yaml 843bb8a0c61SJames Wright:language: yaml 844bb8a0c61SJames Wright``` 845bb8a0c61SJames Wright 846c8c30d87SJed Brown(example-blasius)= 847c8c30d87SJed Brown 848af8870a9STimothy Aiken#### Blasius boundary layer 849af8870a9STimothy Aiken 85083c686feSJames WrightThe Blasius problem has the following command-line options in addition to the Newtonian Ideal Gas options: 851bb8a0c61SJames Wright 852bb8a0c61SJames Wright:::{list-table} Blasius Runtime Options 853bb8a0c61SJames Wright:header-rows: 1 854bb8a0c61SJames Wright 855bb8a0c61SJames Wright* - Option 856bb8a0c61SJames Wright - Description 857bb8a0c61SJames Wright - Default value 858bb8a0c61SJames Wright - Unit 859bb8a0c61SJames Wright 860aef1eb53SLeila Ghaffari* - `-velocity_infinity` 861bb8a0c61SJames Wright - Freestream velocity 862bb8a0c61SJames Wright - `40` 863bb8a0c61SJames Wright - `m/s` 864bb8a0c61SJames Wright 865aef1eb53SLeila Ghaffari* - `-temperature_infinity` 866aef1eb53SLeila Ghaffari - Freestream temperature 867bb8a0c61SJames Wright - `288` 868bb8a0c61SJames Wright - `K` 869bb8a0c61SJames Wright 870aef1eb53SLeila Ghaffari* - `-temperature_wall` 871aef1eb53SLeila Ghaffari - Wall temperature 8720d850f2eSLeila Ghaffari - `288` 873aef1eb53SLeila Ghaffari - `K` 874aef1eb53SLeila Ghaffari 875aef1eb53SLeila Ghaffari* - `-delta0` 876aef1eb53SLeila Ghaffari - Boundary layer height at the inflow 877aef1eb53SLeila Ghaffari - `4.2e-3` 878aef1eb53SLeila Ghaffari - `m` 879aef1eb53SLeila Ghaffari 880bb8a0c61SJames Wright* - `-P0` 881bb8a0c61SJames Wright - Atmospheric pressure 882bb8a0c61SJames Wright - `1.01E5` 883bb8a0c61SJames Wright - `Pa` 884bb8a0c61SJames Wright 88598b448e2SJames Wright* - `-platemesh_refine_height` 88698b448e2SJames Wright - Height at which `-platemesh_Ndelta` number of elements should refined into 887bb8a0c61SJames Wright - `5.9E-4` 888bb8a0c61SJames Wright - `m` 889bb8a0c61SJames Wright 89098b448e2SJames Wright* - `-platemesh_Ndelta` 89198b448e2SJames Wright - Number of elements to keep below `-platemesh_refine_height` 892bb8a0c61SJames Wright - `45` 893bb8a0c61SJames Wright - 894bb8a0c61SJames Wright 89598b448e2SJames Wright* - `-platemesh_growth` 896bb8a0c61SJames Wright - Growth rate of the elements in the refinement region 897bb8a0c61SJames Wright - `1.08` 898bb8a0c61SJames Wright - 899bb8a0c61SJames Wright 90098b448e2SJames Wright* - `-platemesh_top_angle` 901bb8a0c61SJames Wright - Downward angle of the top face of the domain. This face serves as an outlet. 902bb8a0c61SJames Wright - `5` 903bb8a0c61SJames Wright - `degrees` 904493642f1SJames Wright 905493642f1SJames Wright* - `-stg_use` 906493642f1SJames Wright - Whether to use stg for the inflow conditions 907493642f1SJames Wright - `false` 908493642f1SJames Wright - 90998b448e2SJames Wright 91098b448e2SJames Wright* - `-platemesh_y_node_locs_path` 91198b448e2SJames Wright - Path to file with y node locations. If empty, will use mesh warping instead. 91298b448e2SJames Wright - `""` 91398b448e2SJames Wright - 914aef1eb53SLeila Ghaffari 9150d850f2eSLeila Ghaffari* - `-n_chebyshev` 916aef1eb53SLeila Ghaffari - Number of Chebyshev terms 917aef1eb53SLeila Ghaffari - `20` 918aef1eb53SLeila Ghaffari - 919aef1eb53SLeila Ghaffari 9200d850f2eSLeila Ghaffari* - `-chebyshev_` 9210d850f2eSLeila Ghaffari - Prefix for Chebyshev snes solve 9220d850f2eSLeila Ghaffari - 9230d850f2eSLeila Ghaffari - 9240d850f2eSLeila Ghaffari 925bb8a0c61SJames Wright::: 926bb8a0c61SJames Wright 927bb8a0c61SJames WrightThis problem can be run with the `blasius.yaml` file via: 928bb8a0c61SJames Wright 929bb8a0c61SJames Wright``` 930bb8a0c61SJames Wright./navierstokes -options_file blasius.yaml 931bb8a0c61SJames Wright``` 932bb8a0c61SJames Wright 933bb8a0c61SJames Wright```{literalinclude} ../../../../../examples/fluids/blasius.yaml 934bb8a0c61SJames Wright:language: yaml 935575f8106SLeila Ghaffari``` 936493642f1SJames Wright 937493642f1SJames Wright#### STG Inflow for Flat Plate 938493642f1SJames Wright 939b46bfc5eSJeremy L ThompsonUsing the STG Inflow for the blasius problem adds the following command-line options: 940493642f1SJames Wright 941493642f1SJames Wright:::{list-table} Blasius Runtime Options 942493642f1SJames Wright:header-rows: 1 943493642f1SJames Wright 944493642f1SJames Wright* - Option 945493642f1SJames Wright - Description 946493642f1SJames Wright - Default value 947493642f1SJames Wright - Unit 948493642f1SJames Wright 949493642f1SJames Wright* - `-stg_inflow_path` 950493642f1SJames Wright - Path to the STGInflow file 951493642f1SJames Wright - `./STGInflow.dat` 952493642f1SJames Wright - 953493642f1SJames Wright 954493642f1SJames Wright* - `-stg_rand_path` 955493642f1SJames Wright - Path to the STGRand file 956493642f1SJames Wright - `./STGRand.dat` 957493642f1SJames Wright - 958493642f1SJames Wright 959493642f1SJames Wright* - `-stg_alpha` 960493642f1SJames Wright - Growth rate of the wavemodes 961493642f1SJames Wright - `1.01` 962493642f1SJames Wright - 963493642f1SJames Wright 964493642f1SJames Wright* - `-stg_u0` 965493642f1SJames Wright - Convective velocity, $U_0$ 966493642f1SJames Wright - `0.0` 967493642f1SJames Wright - `m/s` 968493642f1SJames Wright 969493642f1SJames Wright* - `-stg_mean_only` 970493642f1SJames Wright - Only impose the mean velocity (no fluctutations) 971493642f1SJames Wright - `false` 972493642f1SJames Wright - 973493642f1SJames Wright 97429ea39e3SJames Wright* - `-stg_strong` 97529ea39e3SJames Wright - Strongly enforce the STG inflow boundary condition 97629ea39e3SJames Wright - `false` 97729ea39e3SJames Wright - 97829ea39e3SJames Wright 979d4e0f297SJames Wright* - `-stg_fluctuating_IC` 980d4e0f297SJames Wright - "Extrude" the fluctuations through the domain as an initial condition 981d4e0f297SJames Wright - `false` 982d4e0f297SJames Wright - 983d4e0f297SJames Wright 984493642f1SJames Wright::: 985493642f1SJames Wright 986493642f1SJames WrightThis problem can be run with the `blasius.yaml` file via: 987493642f1SJames Wright 988493642f1SJames Wright``` 989493642f1SJames Wright./navierstokes -options_file blasius.yaml -stg_use true 990493642f1SJames Wright``` 991493642f1SJames Wright 992b46bfc5eSJeremy L ThompsonNote the added `-stg_use true` flag 993b46bfc5eSJeremy L ThompsonThis overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow. 994