1ccaff030SJeremy L Thompson## libCEED: Navier-Stokes Example 2ccaff030SJeremy L Thompson 3ccaff030SJeremy L ThompsonThis page provides a description of the Navier-Stokes example for the libCEED library, based on PETSc. 4ccaff030SJeremy L Thompson 5ccaff030SJeremy L ThompsonThe Navier-Stokes problem solves the compressible Navier-Stokes equations in three dimensions using an 6ccaff030SJeremy L Thompsonexplicit time integration. The state variables are mass density, momentum density, and energy density. 7ccaff030SJeremy L Thompson 8ccaff030SJeremy L ThompsonThe main Navier-Stokes solver for libCEED is defined in [`navierstokes.c`](navierstokes.c) 9ccaff030SJeremy L Thompsonwith different problem definitions according to the application of interest. 10ccaff030SJeremy L Thompson 11ccaff030SJeremy L ThompsonBuild by using 12ccaff030SJeremy L Thompson 13ccaff030SJeremy L Thompson`make` 14ccaff030SJeremy L Thompson 15ccaff030SJeremy L Thompsonand run with 16ccaff030SJeremy L Thompson 17ff6701fcSJed Brown`./navierstokes` 18ccaff030SJeremy L Thompson 19ccaff030SJeremy L ThompsonAvailable runtime options are: 20ccaff030SJeremy L Thompson 21ccaff030SJeremy L Thompson| Option | Meaning | 2281f92cf0SLeila Ghaffari| :-------------------------------------| :-----------------------------------------------------------------------------------------------| 23ccaff030SJeremy L Thompson| `-ceed` | CEED resource specifier | 24ccaff030SJeremy L Thompson| `-test` | Run in test mode | 25*e43605a5SLeila Ghaffari| `-problem` | Problem to solve (`advection`, `advection2d`, `density_current`, or `euler_vortex`) | 2681f92cf0SLeila Ghaffari| `-problem_advection_wind` | Wind type in Advection (`rotation` or `translation`) | 2781f92cf0SLeila Ghaffari| `-problem_advection_wind_translation` | Constant wind vector when `-problem_advection_wind translation` | 28*e43605a5SLeila Ghaffari| `-problem_euler_mean_velocity` | Constant mean velocity vector in `euler_vortex` | 29*e43605a5SLeila Ghaffari| `-vortex_strength` | Strength of vortex in `euler_vortex` | 30ccaff030SJeremy L Thompson| `-stab` | Stabilization method | 31ccaff030SJeremy L Thompson| `-implicit` | Use implicit time integartor formulation | 32ccaff030SJeremy L Thompson| `-bc_wall` | Use wall boundary conditions on this list of faces | 33ccaff030SJeremy L Thompson| `-bc_slip_x` | Use slip boundary conditions, for the x component, on this list of faces | 34ccaff030SJeremy L Thompson| `-bc_slip_y` | Use slip boundary conditions, for the y component, on this list of faces | 35ccaff030SJeremy L Thompson| `-bc_slip_z` | Use slip boundary conditions, for the z component, on this list of faces | 36ccaff030SJeremy L Thompson| `-viz_refine` | Use regular refinement for visualization | 37ff6701fcSJed Brown| `-degree` | Polynomial degree of tensor product basis (must be >= 1) | 38ccaff030SJeremy L Thompson| `-units_meter` | 1 meter in scaled length units | 39ccaff030SJeremy L Thompson| `-units_second` | 1 second in scaled time units | 40ccaff030SJeremy L Thompson| `-units_kilogram` | 1 kilogram in scaled mass units | 41ccaff030SJeremy L Thompson| `-units_Kelvin` | 1 Kelvin in scaled temperature units | 42ccaff030SJeremy L Thompson| `-theta0` | Reference potential temperature | 43ccaff030SJeremy L Thompson| `-thetaC` | Perturbation of potential temperature | 44ccaff030SJeremy L Thompson| `-P0` | Atmospheric pressure | 4516c0476cSLeila Ghaffari| `-E_wind` | Total energy of inflow wind | 46ccaff030SJeremy L Thompson| `-N` | Brunt-Vaisala frequency | 47ccaff030SJeremy L Thompson| `-cv` | Heat capacity at constant volume | 48ccaff030SJeremy L Thompson| `-cp` | Heat capacity at constant pressure | 49ccaff030SJeremy L Thompson| `-g` | Gravitational acceleration | 50ccaff030SJeremy L Thompson| `-lambda` | Stokes hypothesis second viscosity coefficient | 51ccaff030SJeremy L Thompson| `-mu` | Shear dynamic viscosity coefficient | 52ccaff030SJeremy L Thompson| `-k` | Thermal conductivity | 53ccaff030SJeremy L Thompson| `-CtauS` | Scale coefficient for stabilization tau (nondimensional) | 54ccaff030SJeremy L Thompson| `-strong_form` | Strong (1) or weak/integrated by parts (0) advection residual | 55ccaff030SJeremy L Thompson| `-lx` | Length scale in x direction | 56ccaff030SJeremy L Thompson| `-ly` | Length scale in y direction | 57ccaff030SJeremy L Thompson| `-lz` | Length scale in z direction | 58ccaff030SJeremy L Thompson| `-rc` | Characteristic radius of thermal bubble | 59ccaff030SJeremy L Thompson| `-resx` | Resolution in x | 60ccaff030SJeremy L Thompson| `-resy` | Resolution in y | 61ccaff030SJeremy L Thompson| `-resz` | Resolution in z | 62ccaff030SJeremy L Thompson| `-center` | Location of bubble center | 63ccaff030SJeremy L Thompson| `-dc_axis` | Axis of density current cylindrical anomaly, or {0,0,0} for spherically symmetric | 64ccaff030SJeremy L Thompson| `-output_freq` | Frequency of output, in number of steps | 65ccaff030SJeremy L Thompson| `-continue` | Continue from previous solution | 66ccaff030SJeremy L Thompson| `-degree` | Polynomial degree of tensor product basis | 67ccaff030SJeremy L Thompson| `-qextra` | Number of extra quadrature points | 6881f92cf0SLeila Ghaffari| `-qextra_boundary` | Number of extra quadrature points on in/outflow faces | 69d99129b9SLeila Ghaffari| `-output_dir` | Output directory | 70ccaff030SJeremy L Thompson 71c063f476SvaleriabarraFor the case of a square/cubic mesh, the list of face indices to be used with `-bc_wall` and/or `-bc_slip_x`, 72ed1c75c9SLeila Ghaffari`-bc_slip_y`, and `-bc_slip_z` are: 73c063f476Svaleriabarra 74c063f476Svaleriabarra* 2D: 75c063f476Svaleriabarra - faceMarkerBottom = 1; 76c063f476Svaleriabarra - faceMarkerRight = 2; 77c063f476Svaleriabarra - faceMarkerTop = 3; 78c063f476Svaleriabarra - faceMarkerLeft = 4; 79c063f476Svaleriabarra* 3D: 80c063f476Svaleriabarra - faceMarkerBottom = 1; 81c063f476Svaleriabarra - faceMarkerTop = 2; 82c063f476Svaleriabarra - faceMarkerFront = 3; 83c063f476Svaleriabarra - faceMarkerBack = 4; 84c063f476Svaleriabarra - faceMarkerRight = 5; 85c063f476Svaleriabarra - faceMarkerLeft = 6; 86ccaff030SJeremy L Thompson 87ccaff030SJeremy L Thompson### Advection 88ccaff030SJeremy L Thompson 89ccaff030SJeremy L ThompsonThis problem solves the convection (advection) equation for the total (scalar) energy density, 90ccaff030SJeremy L Thompsontransported by the (vector) velocity field. 91ccaff030SJeremy L Thompson 92ccaff030SJeremy L ThompsonThis is 3D advection given in two formulations based upon the weak form. 93ccaff030SJeremy L Thompson 94ccaff030SJeremy L ThompsonState Variables: 95ccaff030SJeremy L Thompson 96ccaff030SJeremy L Thompson *q = ( rho, U<sub>1</sub>, U<sub>2</sub>, U<sub>3</sub>, E )* 97ccaff030SJeremy L Thompson 98ccaff030SJeremy L Thompson *rho* - Mass Density 99ccaff030SJeremy L Thompson 100ccaff030SJeremy L Thompson *U<sub>i</sub>* - Momentum Density , *U<sub>i</sub> = rho ui* 101ccaff030SJeremy L Thompson 102ccaff030SJeremy L Thompson *E* - Total Energy Density, *E = rho Cv T + rho (u u) / 2 + rho g z* 103ccaff030SJeremy L Thompson 104ccaff030SJeremy L ThompsonAdvection Equation: 105ccaff030SJeremy L Thompson 106ccaff030SJeremy L Thompson *dE/dt + div( E _u_ ) = 0* 107ccaff030SJeremy L Thompson 108ccaff030SJeremy L Thompson#### Initial Conditions 109ccaff030SJeremy L Thompson 110ccaff030SJeremy L ThompsonMass Density: 111ccaff030SJeremy L Thompson Constant mass density of 1.0 112ccaff030SJeremy L Thompson 113ccaff030SJeremy L ThompsonMomentum Density: 114ccaff030SJeremy L Thompson Rotational field in x,y with no momentum in z 115ccaff030SJeremy L Thompson 116ccaff030SJeremy L ThompsonEnergy Density: 117ccaff030SJeremy L Thompson Maximum of 1. x0 decreasing linearly to 0. as radial distance increases 118ccaff030SJeremy L Thompson to 1/8, then 0. everywhere else 119ccaff030SJeremy L Thompson 120ccaff030SJeremy L Thompson#### Boundary Conditions 121ccaff030SJeremy L Thompson 122ccaff030SJeremy L ThompsonMass Density: 123ccaff030SJeremy L Thompson 0.0 flux 124ccaff030SJeremy L Thompson 125ccaff030SJeremy L ThompsonMomentum Density: 126ccaff030SJeremy L Thompson 0.0 127ccaff030SJeremy L Thompson 128ccaff030SJeremy L ThompsonEnergy Density: 129ccaff030SJeremy L Thompson 0.0 flux 130ccaff030SJeremy L Thompson 131*e43605a5SLeila Ghaffari### Euler Traveling Vortex 132*e43605a5SLeila Ghaffari 133*e43605a5SLeila GhaffariThis problem solves the 3D Euler equations for vortex evolution provided 134*e43605a5SLeila Ghaffariin On the Order of Accuracy and Numerical Performance of Two Classes of 135*e43605a5SLeila GhaffariFinite Volume WENO Schemes, Zhang, Zhang, and Shu (2011). 136*e43605a5SLeila Ghaffari 137*e43605a5SLeila GhaffariState Variables: 138*e43605a5SLeila Ghaffari 139*e43605a5SLeila Ghaffari *q = ( rho, U<sub>1</sub>, U<sub>2</sub>, U<sub>3</sub>, E )* 140*e43605a5SLeila Ghaffari 141*e43605a5SLeila Ghaffari *rho* - Mass Density 142*e43605a5SLeila Ghaffari 143*e43605a5SLeila Ghaffari *U<sub>i</sub>* - Momentum Density , *U<sub>i</sub> = rho u<sub>i</sub>* 144*e43605a5SLeila Ghaffari 145*e43605a5SLeila Ghaffari *E* - Total Energy Density, *E = P / (gamma - 1) + rho (u u) / 2* 146*e43605a5SLeila Ghaffari 147*e43605a5SLeila GhaffariEuler Equations: 148*e43605a5SLeila Ghaffari 149*e43605a5SLeila Ghaffari *drho/dt + div( U ) = 0* 150*e43605a5SLeila Ghaffari 151*e43605a5SLeila Ghaffari *dU/dt + div( rho (u x u) + P I<sub>3</sub> ) = 0* 152*e43605a5SLeila Ghaffari 153*e43605a5SLeila Ghaffari *dE/dt + div( (E + P) u ) = 0* 154*e43605a5SLeila Ghaffari 155*e43605a5SLeila GhaffariConstants: 156*e43605a5SLeila Ghaffari 157*e43605a5SLeila Ghaffari *c<sub>v</sub>* , Specific heat, constant volume 158*e43605a5SLeila Ghaffari 159*e43605a5SLeila Ghaffari *c<sub>p</sub>* , Specific heat, constant pressure 160*e43605a5SLeila Ghaffari 161*e43605a5SLeila Ghaffari *gamma = c<sub>p</sub> / c<sub>v</sub>*, Specific heat ratio 162*e43605a5SLeila Ghaffari 163*e43605a5SLeila Ghaffari *epsilon* , Vortex Strength 164*e43605a5SLeila Ghaffari 165*e43605a5SLeila Ghaffari#### Initial Conditions 166*e43605a5SLeila Ghaffari 167*e43605a5SLeila GhaffariTemperature: 168*e43605a5SLeila Ghaffari 169*e43605a5SLeila Ghaffari *T = 1 - (gamma - 1) epsilon^2 exp(1 - r^2) / (8 gamma pi^2)* 170*e43605a5SLeila Ghaffari 171*e43605a5SLeila GhaffariEntropy: 172*e43605a5SLeila Ghaffari 173*e43605a5SLeila Ghaffari *S = 1* , Constant entropy 174*e43605a5SLeila Ghaffari 175*e43605a5SLeila GhaffariDensity: 176*e43605a5SLeila Ghaffari 177*e43605a5SLeila Ghaffari *rho = (T/S)^(1 / (gamma - 1))* 178*e43605a5SLeila Ghaffari 179*e43605a5SLeila GhaffariPressure: 180*e43605a5SLeila Ghaffari 181*e43605a5SLeila Ghaffari *P = rho T* 182*e43605a5SLeila Ghaffari 183*e43605a5SLeila GhaffariVelocity: 184*e43605a5SLeila Ghaffari 185*e43605a5SLeila Ghaffari *u<sub>i</sub> = 1 + epsilon exp((1 - r^2)/2) [yc - y, x - xc, 0] / (2 pi)* 186*e43605a5SLeila Ghaffari 187*e43605a5SLeila Ghaffari *r = sqrt( (x - xc)^2 + (y - yc)^2 )* 188*e43605a5SLeila Ghaffari with *(xc,yc)* center of the xy-plane in the domain 189*e43605a5SLeila Ghaffari 190*e43605a5SLeila Ghaffari#### Boundary Conditions 191*e43605a5SLeila Ghaffari 192*e43605a5SLeila GhaffariFor this problem, in/outflow BCs are implemented where the validity of the weak 193*e43605a5SLeila Ghaffariform of the governing equations is extended to the outflow. 194*e43605a5SLeila GhaffariFor the inflow fluxes, prescribed T_inlet and P_inlet are converted to 195*e43605a5SLeila Ghaffariconservative variables and applied weakly. 196*e43605a5SLeila Ghaffari 197ccaff030SJeremy L Thompson### Density Current 198ccaff030SJeremy L Thompson 199ccaff030SJeremy L ThompsonThis problem solves the full compressible Navier-Stokes equations, using 200ccaff030SJeremy L Thompsonoperator composition and design of coupled solvers in the context of atmospheric 201ccaff030SJeremy L Thompsonmodeling. This problem uses the formulation given in Semi-Implicit Formulations 202ccaff030SJeremy L Thompsonof the Navier-Stokes Equations: Application to Nonhydrostatic Atmospheric Modeling, 203ccaff030SJeremy L ThompsonGiraldo, Restelli, and Lauter (2010). 204ccaff030SJeremy L Thompson 205ccaff030SJeremy L ThompsonThe 3D compressible Navier-Stokes equations are formulated in conservation form with state 206ccaff030SJeremy L Thompsonvariables of density, momentum density, and total energy density. 207ccaff030SJeremy L Thompson 208ccaff030SJeremy L ThompsonState Variables: 209ccaff030SJeremy L Thompson 210ccaff030SJeremy L Thompson *q = ( rho, U<sub>1</sub>, U<sub>2</sub>, U<sub>3</sub>, E )* 211ccaff030SJeremy L Thompson 212ccaff030SJeremy L Thompson *rho* - Mass Density 213ccaff030SJeremy L Thompson 214ccaff030SJeremy L Thompson *U<sub>i</sub>* - Momentum Density , *U<sub>i</sub> = rho u<sub>i</sub>* 215ccaff030SJeremy L Thompson 216ccaff030SJeremy L Thompson *E* - Total Energy Density, *E = rho c<sub>v</sub> T + rho (u u) / 2 + rho g z* 217ccaff030SJeremy L Thompson 218ccaff030SJeremy L ThompsonNavier-Stokes Equations: 219ccaff030SJeremy L Thompson 220ccaff030SJeremy L Thompson *drho/dt + div( U ) = 0* 221ccaff030SJeremy L Thompson 222ccaff030SJeremy L Thompson *dU/dt + div( rho (u x u) + P I<sub>3</sub> ) + rho g khat = div( F<sub>u</sub> )* 223ccaff030SJeremy L Thompson 224ccaff030SJeremy L Thompson *dE/dt + div( (E + P) u ) = div( F<sub>e</sub> )* 225ccaff030SJeremy L Thompson 226ccaff030SJeremy L ThompsonViscous Stress: 227ccaff030SJeremy L Thompson 228ccaff030SJeremy L Thompson *F<sub>u</sub> = mu (grad( u ) + grad( u )^T + lambda div ( u ) I<sub>3</sub>)* 229ccaff030SJeremy L Thompson 230ccaff030SJeremy L ThompsonThermal Stress: 231ccaff030SJeremy L Thompson 232ccaff030SJeremy L Thompson *F<sub>e</sub> = u F<sub>u</sub> + k grad( T )* 233ccaff030SJeremy L Thompson 234ccaff030SJeremy L ThompsonEquation of State: 235ccaff030SJeremy L Thompson 236ccaff030SJeremy L Thompson *P = (gamma - 1) (E - rho (u u) / 2 - rho g z)* 237ccaff030SJeremy L Thompson 238ccaff030SJeremy L ThompsonTemperature: 239ccaff030SJeremy L Thompson 240ccaff030SJeremy L Thompson *T = (E / rho - (u u) / 2 - g z) / c<sub>v</sub>* 241ccaff030SJeremy L Thompson 242ccaff030SJeremy L ThompsonConstants: 243ccaff030SJeremy L Thompson 244ccaff030SJeremy L Thompson *lambda = - 2 / 3*, From Stokes hypothesis 245ccaff030SJeremy L Thompson 246ccaff030SJeremy L Thompson *mu* , Dynamic viscosity 247ccaff030SJeremy L Thompson 248ccaff030SJeremy L Thompson *k* , Thermal conductivity 249ccaff030SJeremy L Thompson 250ccaff030SJeremy L Thompson *c<sub>v</sub>* , Specific heat, constant volume 251ccaff030SJeremy L Thompson 252ccaff030SJeremy L Thompson *c<sub>p</sub>* , Specific heat, constant pressure 253ccaff030SJeremy L Thompson 254ccaff030SJeremy L Thompson *g* , Gravity 255ccaff030SJeremy L Thompson 256ccaff030SJeremy L Thompson *gamma = c<sub>p</sub> / c<sub>v</sub>*, Specific heat ratio 257ccaff030SJeremy L Thompson 258ccaff030SJeremy L Thompson#### Initial Conditions 259ccaff030SJeremy L Thompson 260ccaff030SJeremy L ThompsonPotential Temperature: 261ccaff030SJeremy L Thompson 262ccaff030SJeremy L Thompson *theta = thetabar + deltatheta* 263ccaff030SJeremy L Thompson 264ccaff030SJeremy L Thompson *thetabar = theta0 exp( N * * 2 z / g )* 265ccaff030SJeremy L Thompson 266ccaff030SJeremy L Thompson *deltatheta = 267ccaff030SJeremy L Thompson r <= rc : theta0(1 + cos(pi r)) / 2 268ccaff030SJeremy L Thompson r > rc : 0* 269ccaff030SJeremy L Thompson 270ccaff030SJeremy L Thompson *r = sqrt( (x - xc) * * 2 + (y - yc) * * 2 + (z - zc) * * 2 )* 271ccaff030SJeremy L Thompson with *(xc,yc,zc)* center of domain 272ccaff030SJeremy L Thompson 273ccaff030SJeremy L ThompsonExner Pressure: 274ccaff030SJeremy L Thompson 275ccaff030SJeremy L Thompson *Pi = Pibar + deltaPi* 276ccaff030SJeremy L Thompson 277ccaff030SJeremy L Thompson *Pibar = g * * 2 (exp( - N * * 2 z / g ) - 1) / (cp theta0 N * * 2)* 278ccaff030SJeremy L Thompson 279ccaff030SJeremy L Thompson *deltaPi = 0* (hydrostatic balance) 280ccaff030SJeremy L Thompson 281ccaff030SJeremy L ThompsonVelocity/Momentum Density: 282ccaff030SJeremy L Thompson 283ccaff030SJeremy L Thompson *U<sub>i</sub> = u<sub>i</sub> = 0* 284ccaff030SJeremy L Thompson 285ccaff030SJeremy L ThompsonConversion to Conserved Variables: 286ccaff030SJeremy L Thompson 287ccaff030SJeremy L Thompson *rho = P0 Pi**(c<sub>v</sub>/R<sub>d</sub>) / (R<sub>d</sub> theta)* 288ccaff030SJeremy L Thompson 289ccaff030SJeremy L Thompson *E = rho (c<sub>v</sub> theta Pi + (u u)/2 + g z)* 290ccaff030SJeremy L Thompson 291ccaff030SJeremy L ThompsonConstants: 292ccaff030SJeremy L Thompson 293ccaff030SJeremy L Thompson *theta0* , Potential temperature constant 294ccaff030SJeremy L Thompson 295ccaff030SJeremy L Thompson *thetaC* , Potential temperature perturbation 296ccaff030SJeremy L Thompson 297ccaff030SJeremy L Thompson *P0* , Pressure at the surface 298ccaff030SJeremy L Thompson 299ccaff030SJeremy L Thompson *N* , Brunt-Vaisala frequency 300ccaff030SJeremy L Thompson 301ccaff030SJeremy L Thompson *c<sub>v</sub>* , Specific heat, constant volume 302ccaff030SJeremy L Thompson 303ccaff030SJeremy L Thompson *c<sub>p</sub>* , Specific heat, constant pressure 304ccaff030SJeremy L Thompson 305ccaff030SJeremy L Thompson *R<sub>d</sub>* = c<sub>p</sub> - c<sub>v</sub>, Specific heat difference 306ccaff030SJeremy L Thompson 307ccaff030SJeremy L Thompson *g* , Gravity 308ccaff030SJeremy L Thompson 309ccaff030SJeremy L Thompson *r<sub>c</sub>* , Characteristic radius of thermal bubble 310ccaff030SJeremy L Thompson 311ccaff030SJeremy L Thompson *l<sub>x</sub>* , Characteristic length scale of domain in x 312ccaff030SJeremy L Thompson 313ccaff030SJeremy L Thompson *l<sub>y</sub>* , Characteristic length scale of domain in y 314ccaff030SJeremy L Thompson 315ccaff030SJeremy L Thompson *l<sub>z</sub>* , Characteristic length scale of domain in z 316ccaff030SJeremy L Thompson 317ccaff030SJeremy L Thompson 318ccaff030SJeremy L Thompson#### Boundary Conditions 319ccaff030SJeremy L Thompson 320ccaff030SJeremy L ThompsonMass Density: 321ccaff030SJeremy L Thompson 0.0 flux 322ccaff030SJeremy L Thompson 323ccaff030SJeremy L ThompsonMomentum Density: 324ccaff030SJeremy L Thompson 0.0 325ccaff030SJeremy L Thompson 326ccaff030SJeremy L ThompsonEnergy Density: 327ccaff030SJeremy L Thompson 0.0 flux 328ccaff030SJeremy L Thompson 329ccaff030SJeremy L Thompson### Time Discretization 330ccaff030SJeremy L Thompson 331c063f476SvaleriabarraFor all different problems, the time integration is performed with an explicit 332c063f476Svaleriabarraor implicit formulation. 333ccaff030SJeremy L Thompson 334ccaff030SJeremy L Thompson### Space Discretization 335ccaff030SJeremy L Thompson 336ccaff030SJeremy L ThompsonThe geometric factors and coordinate transformations required for the integration of the weak form 337ccaff030SJeremy L Thompsonare described in the file [`common.h`](common.h) 338