1## libCEED: Navier-Stokes Example 2 3This page provides a description of the Navier-Stokes example for the libCEED library, based on PETSc. 4PETSc v3.17 or a development version of PETSc at commit 0e95d842 or later is required. 5 6The Navier-Stokes problem solves the compressible Navier-Stokes equations in three dimensions using an explicit time integration. 7The state variables are mass density, momentum density, and energy density. 8 9The main Navier-Stokes solver for libCEED is defined in [`navierstokes.c`](navierstokes.c) with different problem definitions according to the application of interest. 10 11Build by using: 12 13`make` 14 15and run with: 16 17``` 18./navierstokes -ceed [ceed] -problem [problem type] -degree [degree] 19``` 20 21## Runtime options 22 23% inclusion-fluids-marker 24 25The Navier-Stokes mini-app is controlled via command-line options. 26The following options are common among all problem types: 27 28:::{list-table} Common Runtime Options 29:header-rows: 1 30 31* - Option 32 - Description 33 - Default value 34 35* - `-ceed` 36 - CEED resource specifier 37 - `/cpu/self/opt/blocked` 38 39* - `-test` 40 - Run in test mode 41 - `false` 42 43* - `-compare_final_state_atol` 44 - Test absolute tolerance 45 - `1E-11` 46 47* - `-compare_final_state_filename` 48 - Test filename 49 - 50 51* - `-problem` 52 - Problem to solve (`advection`, `advection2d`, `density_current`, or `euler_vortex`) 53 - `density_current` 54 55* - `-implicit` 56 - Use implicit time integartor formulation 57 - 58 59* - `-degree` 60 - Polynomial degree of tensor product basis (must be >= 1) 61 - `1` 62 63* - `-q_extra` 64 - Number of extra quadrature points 65 - `0` 66 67* - `-ts_monitor_solution` 68 - PETSc output format, such as `cgns:output-%d.cgns` (requires PETSc `--download-cgns`) 69 - 70 71* - `-ts_monitor_solution_interval` 72 - Number of time steps between visualization output frames. 73 - `1` 74 75* - `-viewer_cgns_batch_size` 76 - Number of frames written per CGNS file if the CGNS file name includes a format specifier (`%d`). 77 - `20` 78 79* - `-checkpoint_interval` 80 - Number of steps between writing binary checkpoints. `0` has no output, `-1` outputs final state only 81 - `10` 82 83* - `-checkpoint_vtk` 84 - Checkpoints include VTK (`*.vtu`) files for visualization. Consider `-ts_monitor_solution`instead. 85 - `false` 86 87* - `-viz_refine` 88 - Use regular refinement for VTK visualization 89 - `0` 90 91* - `-output_dir` 92 - Output directory for binary checkpoints and VTK files (if enabled). 93 - `.` 94 95* - `-output_add_stepnum2bin` 96 - Whether to add step numbers to output binary files 97 - `false` 98 99* - `-continue` 100 - Continue from previous solution (input is step number of previous solution) 101 - `0` 102 103* - `-continue_filename` 104 - Path to solution binary file from which to continue from 105 - `[output_dir]/ns-solution.bin` 106 107* - `-continue_time_filename` 108 - Path to time stamp binary file (only for legacy checkpoints) 109 - `[output_dir]/ns-time.bin` 110 111* - `-bc_wall` 112 - Use wall boundary conditions on this list of faces 113 - 114 115* - `-wall_comps` 116 - An array of constrained component numbers for wall BCs 117 - 118 119* - `-bc_slip_x` 120 - Use slip boundary conditions, for the x component, on this list of faces 121 - 122 123* - `-bc_slip_y` 124 - Use slip boundary conditions, for the y component, on this list of faces 125 - 126 127* - `-bc_slip_z` 128 - Use slip boundary conditions, for the z component, on this list of faces 129 - 130 131* - `-bc_inflow` 132 - Use inflow boundary conditions on this list of faces 133 - 134 135* - `-bc_outflow` 136 - Use outflow boundary conditions on this list of faces 137 - 138 139* - `-bc_freestream` 140 - Use freestream boundary conditions on this list of faces 141 - 142 143* - `-snes_view` 144 - View PETSc `SNES` nonlinear solver configuration 145 - 146 147* - `-log_view` 148 - View PETSc performance log 149 - 150 151* - `-help` 152 - View comprehensive information about run-time options 153 - 154::: 155 156For 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: 157 158:::{list-table} 2D Face ID Labels 159:header-rows: 1 160* - PETSc Face Name 161 - Cartesian direction 162 - Face ID 163 164* - faceMarkerBottom 165 - -z 166 - 1 167 168* - faceMarkerRight 169 - +x 170 - 2 171 172* - faceMarkerTop 173 - +z 174 - 3 175 176* - faceMarkerLeft 177 - -x 178 - 4 179::: 180 181:::{list-table} 2D Face ID Labels 182:header-rows: 1 183* - PETSc Face Name 184 - Cartesian direction 185 - Face ID 186 187* - faceMarkerBottom 188 - -z 189 - 1 190 191* - faceMarkerTop 192 - +z 193 - 2 194 195* - faceMarkerFront 196 - -y 197 - 3 198 199* - faceMarkerBack 200 - +y 201 - 4 202 203* - faceMarkerRight 204 - +x 205 - 5 206 207* - faceMarkerLeft 208 - -x 209 - 6 210::: 211 212### Boundary conditions 213 214Boundary conditions for compressible viscous flows are notoriously tricky. Here we offer some recommendations 215 216#### Inflow 217 218If 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). 219It is stable and the least reflective boundary condition for acoustics. 220 221If near a viscous wall, you may want a specified inflow profile. 222Use `bc_inflow` and see {ref}`example-blasius` and discussion of synthetic turbulence generation for ways to analytically generate developed inflow profiles. 223These 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. 224The strong approach gives sharper resolution of velocity structures. 225We have described the primitive variable formulation here; the conservative variants are similar, but not equivalent. 226 227### Outflow 228 229If you know the complete exterior state, `bc_freestream` is the least reflective boundary condition, but is disruptive to viscous flow structures. 230If thermal anomalies must exit the domain, the Riemann solver must resolve the contact wave to avoid reflections. 231The default Riemann solver, HLLC, is sufficient in this regard while the simpler HLL converts thermal structures exiting the domain into grid-scale reflecting acoustics. 232 233If 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. 234 235The 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). 236In our experience, `riemann` is slightly less reflective but produces similar flows in cases of strict outflow. 237The `pressure` variant is retained to facilitate comparison with other codes, such as PHASTA-C, but we recommend `riemann` for general use. 238 239### Periodicity 240 241PETSc provides two ways to specify periodicity: 242 2431. Topological periodicity, in which the donor and receiver dofs are the same, obtained using: 244 245``` yaml 246dm_plex: 247 shape: box 248 box_faces: 10,12,4 249 box_bd: none,none,periodic 250``` 251 252The coordinates for such cases are stored as a new field, and 253 254### Advection 255 256For 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$. 257These are available in 2D and 3D. 258 259#### 2D advection 260 261For the 2D advection problem, the following additional command-line options are available: 262 263:::{list-table} Advection2D Runtime Options 264:header-rows: 1 265 266* - Option 267 - Description 268 - Default value 269 - Unit 270 271* - `-rc` 272 - Characteristic radius of thermal bubble 273 - `1000` 274 - `m` 275 276* - `-units_meter` 277 - 1 meter in scaled length units 278 - `1E-2` 279 - 280 281* - `-units_second` 282 - 1 second in scaled time units 283 - `1E-2` 284 - 285 286* - `-units_kilogram` 287 - 1 kilogram in scaled mass units 288 - `1E-6` 289 - 290 291* - `-strong_form` 292 - Strong (1) or weak/integrated by parts (0) residual 293 - `0` 294 - 295 296* - `-stab` 297 - Stabilization method (`none`, `su`, or `supg`) 298 - `none` 299 - 300 301* - `-CtauS` 302 - Scale coefficient for stabilization tau (nondimensional) 303 - `0` 304 - 305 306* - `-wind_type` 307 - Wind type in Advection (`rotation` or `translation`) 308 - `rotation` 309 - 310 311* - `-wind_translation` 312 - Constant wind vector when `-wind_type translation` 313 - `1,0,0` 314 - 315 316* - `-E_wind` 317 - Total energy of inflow wind when `-wind_type translation` 318 - `1E6` 319 - `J` 320::: 321 322An example of the `rotation` mode can be run with: 323 324``` 325./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 326``` 327 328and the `translation` mode with: 329 330``` 331./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 332``` 333Note the lengths in `-dm_plex_box_upper` are given in meters, and will be nondimensionalized according to `-units_meter`. 334 335#### 3D advection 336 337For the 3D advection problem, the following additional command-line options are available: 338 339:::{list-table} Advection3D Runtime Options 340:header-rows: 1 341 342* - Option 343 - Description 344 - Default value 345 - Unit 346 347* - `-rc` 348 - Characteristic radius of thermal bubble 349 - `1000` 350 - `m` 351 352* - `-units_meter` 353 - 1 meter in scaled length units 354 - `1E-2` 355 - 356 357* - `-units_second` 358 - 1 second in scaled time units 359 - `1E-2` 360 - 361 362* - `-units_kilogram` 363 - 1 kilogram in scaled mass units 364 - `1E-6` 365 - 366 367* - `-strong_form` 368 - Strong (1) or weak/integrated by parts (0) residual 369 - `0` 370 - 371 372* - `-stab` 373 - Stabilization method (`none`, `su`, or `supg`) 374 - `none` 375 - 376 377* - `-CtauS` 378 - Scale coefficient for stabilization tau (nondimensional) 379 - `0` 380 - 381 382* - `-wind_type` 383 - Wind type in Advection (`rotation` or `translation`) 384 - `rotation` 385 - 386 387* - `-wind_translation` 388 - Constant wind vector when `-wind_type translation` 389 - `1,0,0` 390 - 391 392* - `-E_wind` 393 - Total energy of inflow wind when `-wind_type translation` 394 - `1E6` 395 - `J` 396 397* - `-bubble_type` 398 - `sphere` (3D) or `cylinder` (2D) 399 - `shpere` 400 - 401 402* - `-bubble_continuity` 403 - `smooth`, `back_sharp`, or `thick` 404 - `smooth` 405 - 406::: 407 408An example of the `rotation` mode can be run with: 409 410``` 411./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 412``` 413 414and the `translation` mode with: 415 416``` 417./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 418``` 419 420### Inviscid Ideal Gas 421 422#### Isentropic Euler vortex 423 424For the Isentropic Vortex problem, the following additional command-line options are available: 425 426:::{list-table} Isentropic Vortex Runtime Options 427:header-rows: 1 428 429* - Option 430 - Description 431 - Default value 432 - Unit 433 434* - `-center` 435 - Location of vortex center 436 - `(lx,ly,lz)/2` 437 - `(m,m,m)` 438 439* - `-units_meter` 440 - 1 meter in scaled length units 441 - `1E-2` 442 - 443 444* - `-units_second` 445 - 1 second in scaled time units 446 - `1E-2` 447 - 448 449* - `-mean_velocity` 450 - Background velocity vector 451 - `(1,1,0)` 452 - 453 454* - `-vortex_strength` 455 - Strength of vortex < 10 456 - `5` 457 - 458 459* - `-c_tau` 460 - Stabilization constant 461 - `0.5` 462 - 463::: 464 465This problem can be run with: 466 467``` 468./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. 469``` 470 471#### Sod shock tube 472 473For the Shock Tube problem, the following additional command-line options are available: 474 475:::{list-table} Shock Tube Runtime Options 476:header-rows: 1 477 478* - Option 479 - Description 480 - Default value 481 - Unit 482 483* - `-units_meter` 484 - 1 meter in scaled length units 485 - `1E-2` 486 - 487 488* - `-units_second` 489 - 1 second in scaled time units 490 - `1E-2` 491 - 492 493* - `-yzb` 494 - Use YZB discontinuity capturing 495 - `none` 496 - 497 498* - `-stab` 499 - Stabilization method (`none`, `su`, or `supg`) 500 - `none` 501 - 502::: 503 504This problem can be run with: 505 506``` 507./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 508``` 509 510### Newtonian viscosity, Ideal Gas 511 512For the Density Current, Channel, and Blasius problems, the following common command-line options are available: 513 514:::{list-table} Newtonian Ideal Gas problems Runtime Options 515:header-rows: 1 516 517* - Option 518 - Description 519 - Default value 520 - Unit 521 522* - `-units_meter` 523 - 1 meter in scaled length units 524 - `1` 525 - 526 527* - `-units_second` 528 - 1 second in scaled time units 529 - `1` 530 - 531 532* - `-units_kilogram` 533 - 1 kilogram in scaled mass units 534 - `1` 535 - 536 537* - `-units_Kelvin` 538 - 1 Kelvin in scaled temperature units 539 - `1` 540 - 541 542* - `-stab` 543 - Stabilization method (`none`, `su`, or `supg`) 544 - `none` 545 - 546 547* - `-c_tau` 548 - Stabilization constant, $c_\tau$ 549 - `0.5` 550 - 551 552* - `-Ctau_t` 553 - Stabilization time constant, $C_t$ 554 - `1.0` 555 - 556 557* - `-Ctau_v` 558 - Stabilization viscous constant, $C_v$ 559 - `36, 60, 128 for degree = 1, 2, 3` 560 - 561 562* - `-Ctau_C` 563 - Stabilization continuity constant, $C_c$ 564 - `1.0` 565 - 566 567* - `-Ctau_M` 568 - Stabilization momentum constant, $C_m$ 569 - `1.0` 570 - 571 572* - `-Ctau_E` 573 - Stabilization energy constant, $C_E$ 574 - `1.0` 575 - 576 577* - `-cv` 578 - Heat capacity at constant volume 579 - `717` 580 - `J/(kg K)` 581 582* - `-cp` 583 - Heat capacity at constant pressure 584 - `1004` 585 - `J/(kg K)` 586 587* - `-g` 588 - Gravitational acceleration 589 - `9.81` 590 - `m/s^2` 591 592* - `-lambda` 593 - Stokes hypothesis second viscosity coefficient 594 - `-2/3` 595 - 596 597* - `-mu` 598 - Shear dynamic viscosity coefficient 599 - `75` 600 - `Pa s` 601 602* - `-k` 603 - Thermal conductivity 604 - `0.02638` 605 - `W/(m K)` 606 607* - `-newtonian_unit_tests` 608 - Developer option to test properties 609 - `false` 610 - boolean 611 612* - `-state_var` 613 - State variables to solve solution with. `conservative` ($\rho, \rho \bm{u}, \rho e$) or `primitive` ($P, \bm{u}, T$) 614 - `conservative` 615 - string 616::: 617 618#### Newtonian Wave 619 620The newtonian wave problem has the following command-line options in addition to the Newtonian Ideal Gas options: 621 622:::{list-table} Newtonian Wave Runtime Options 623:header-rows: 1 624 625* - Option 626 - Description 627 - Default value 628 - Unit 629 630* - `-freestream_riemann` 631 - Riemann solver for boundaries (HLL or HLLC) 632 - `hllc` 633 - 634 635* - `-freestream_velocity` 636 - Freestream velocity vector 637 - `0,0,0` 638 - `m/s` 639 640* - `-freestream_temperature` 641 - Freestream temperature 642 - `288` 643 - `K` 644 645* - `-freestream_pressure` 646 - Freestream pressure 647 - `1.01e5` 648 - `Pa` 649 650* - `-epicenter` 651 - Coordinates of center of perturbation 652 - `0,0,0` 653 - `m` 654 655* - `-amplitude` 656 - Amplitude of the perturbation 657 - `0.1` 658 - 659 660* - `-width` 661 - Width parameter of the perturbation 662 - `0.002` 663 - `m` 664 665::: 666 667This problem can be run with the `newtonianwave.yaml` file via: 668 669``` 670./navierstokes -options_file newtonianwave.yaml 671``` 672 673```{literalinclude} ../../../../../examples/fluids/newtonianwave.yaml 674:language: yaml 675``` 676 677#### Vortex Shedding - Flow past Cylinder 678 679The vortex shedding, flow past cylinder problem has the following command-line options in addition to the Newtonian Ideal Gas options: 680 681:::{list-table} Vortex Shedding Runtime Options 682:header-rows: 1 683 684* - Option 685 - Description 686 - Default value 687 - Unit 688 689* - `-freestream_velocity` 690 - Freestream velocity vector 691 - `0,0,0` 692 - `m/s` 693 694* - `-freestream_temperature` 695 - Freestream temperature 696 - `288` 697 - `K` 698 699* - `-freestream_pressure` 700 - Freestream pressure 701 - `1.01e5` 702 - `Pa` 703 704::: 705 706The initial condition is taken from `-reference_temperature` and `-reference_pressure`. 707To run this problem, first generate a mesh: 708 709```console 710$ make -C examples/fluids/meshes 711``` 712 713Then run by building the executable and running: 714 715```console 716$ make build/fluids-navierstokes 717$ mpiexec -n 6 build/fluids-navierstokes -options_file vortexshedding.yaml 718``` 719 720The vortex shedding period is roughly 6 and this problem runs until time 100 (2000 time steps). 721 722```{literalinclude} ../../../../../examples/fluids/vortexshedding.yaml 723:language: yaml 724``` 725 726#### Density current 727 728The Density Current problem has the following command-line options in addition to the Newtonian Ideal Gas options: 729 730:::{list-table} Density Current Runtime Options 731:header-rows: 1 732 733* - Option 734 - Description 735 - Default value 736 - Unit 737 738* - `-center` 739 - Location of bubble center 740 - `(lx,ly,lz)/2` 741 - `(m,m,m)` 742 743* - `-dc_axis` 744 - Axis of density current cylindrical anomaly, or `(0,0,0)` for spherically symmetric 745 - `(0,0,0)` 746 - 747 748* - `-rc` 749 - Characteristic radius of thermal bubble 750 - `1000` 751 - `m` 752 753* - `-theta0` 754 - Reference potential temperature 755 - `300` 756 - `K` 757 758* - `-thetaC` 759 - Perturbation of potential temperature 760 - `-15` 761 - `K` 762 763* - `-P0` 764 - Atmospheric pressure 765 - `1E5` 766 - `Pa` 767 768* - `-N` 769 - Brunt-Vaisala frequency 770 - `0.01` 771 - `1/s` 772::: 773 774This problem can be run with: 775 776``` 777./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 778``` 779 780#### Channel flow 781 782The Channel problem has the following command-line options in addition to the Newtonian Ideal Gas options: 783 784:::{list-table} Channel Runtime Options 785:header-rows: 1 786 787* - Option 788 - Description 789 - Default value 790 - Unit 791 792* - `-umax` 793 - Maximum/centerline velocity of the flow 794 - `10` 795 - `m/s` 796 797* - `-theta0` 798 - Reference potential temperature 799 - `300` 800 - `K` 801 802* - `-P0` 803 - Atmospheric pressure 804 - `1E5` 805 - `Pa` 806 807* - `-body_force_scale` 808 - Multiplier for body force (`-1` for flow reversal) 809 - 1 810 - 811::: 812 813This problem can be run with the `channel.yaml` file via: 814 815``` 816./navierstokes -options_file channel.yaml 817``` 818```{literalinclude} ../../../../../examples/fluids/channel.yaml 819:language: yaml 820``` 821 822(example-blasius)= 823 824#### Blasius boundary layer 825 826The Blasius problem has the following command-line options in addition to the Newtonian Ideal Gas options: 827 828:::{list-table} Blasius Runtime Options 829:header-rows: 1 830 831* - Option 832 - Description 833 - Default value 834 - Unit 835 836* - `-velocity_infinity` 837 - Freestream velocity 838 - `40` 839 - `m/s` 840 841* - `-temperature_infinity` 842 - Freestream temperature 843 - `288` 844 - `K` 845 846* - `-temperature_wall` 847 - Wall temperature 848 - `288` 849 - `K` 850 851* - `-delta0` 852 - Boundary layer height at the inflow 853 - `4.2e-3` 854 - `m` 855 856* - `-P0` 857 - Atmospheric pressure 858 - `1.01E5` 859 - `Pa` 860 861* - `-platemesh_refine_height` 862 - Height at which `-platemesh_Ndelta` number of elements should refined into 863 - `5.9E-4` 864 - `m` 865 866* - `-platemesh_Ndelta` 867 - Number of elements to keep below `-platemesh_refine_height` 868 - `45` 869 - 870 871* - `-platemesh_growth` 872 - Growth rate of the elements in the refinement region 873 - `1.08` 874 - 875 876* - `-platemesh_top_angle` 877 - Downward angle of the top face of the domain. This face serves as an outlet. 878 - `5` 879 - `degrees` 880 881* - `-stg_use` 882 - Whether to use stg for the inflow conditions 883 - `false` 884 - 885 886* - `-platemesh_y_node_locs_path` 887 - Path to file with y node locations. If empty, will use mesh warping instead. 888 - `""` 889 - 890 891* - `-n_chebyshev` 892 - Number of Chebyshev terms 893 - `20` 894 - 895 896* - `-chebyshev_` 897 - Prefix for Chebyshev snes solve 898 - 899 - 900 901::: 902 903This problem can be run with the `blasius.yaml` file via: 904 905``` 906./navierstokes -options_file blasius.yaml 907``` 908 909```{literalinclude} ../../../../../examples/fluids/blasius.yaml 910:language: yaml 911``` 912 913#### STG Inflow for Flat Plate 914 915Using the STG Inflow for the blasius problem adds the following command-line options: 916 917:::{list-table} Blasius Runtime Options 918:header-rows: 1 919 920* - Option 921 - Description 922 - Default value 923 - Unit 924 925* - `-stg_inflow_path` 926 - Path to the STGInflow file 927 - `./STGInflow.dat` 928 - 929 930* - `-stg_rand_path` 931 - Path to the STGRand file 932 - `./STGRand.dat` 933 - 934 935* - `-stg_alpha` 936 - Growth rate of the wavemodes 937 - `1.01` 938 - 939 940* - `-stg_u0` 941 - Convective velocity, $U_0$ 942 - `0.0` 943 - `m/s` 944 945* - `-stg_mean_only` 946 - Only impose the mean velocity (no fluctutations) 947 - `false` 948 - 949 950* - `-stg_strong` 951 - Strongly enforce the STG inflow boundary condition 952 - `false` 953 - 954 955* - `-stg_fluctuating_IC` 956 - "Extrude" the fluctuations through the domain as an initial condition 957 - `false` 958 - 959 960::: 961 962This problem can be run with the `blasius.yaml` file via: 963 964``` 965./navierstokes -options_file blasius.yaml -stg_use true 966``` 967 968Note the added `-stg_use true` flag 969This overrides the `stg: use: false` setting in the `blasius.yaml` file, enabling the use of the STG inflow. 970