USim Documentation 3.0.1
  • Tech-X
  • Documents
      • USim 3.0 Installation, Licensing and Release Notes
        • Introduction
        • Installation
          • USim Installation Instructions
          • Included Software
          • USim Documentation
        • License Installation
          • Windows or Linux
          • On Mac OS X
        • Release Notes
          • New and Updated Features in 3.0
          • New and Updated Features in 2.2
          • New and Updated Features in 2.0
      • USim Quick Start
        • USim Quick Start: Getting Started with the USim Series of Computational Applications
        • USimComposer Introduction
          • Setup
          • Run
          • Visualize
          • USimComposer Menu Bar
        • USimBase Examples
          • Flow over a Forward-Facing Step (forwardFacingStep.pre)
          • Kelvin-Helmholtz Instability (khInstability.pre)
          • Magnetized Ramp Flow (rampFlow.pre)
          • Rayleigh-Taylor Instability (rtInstability.pre)
          • Shock Tube (shockTube.pre)
          • Unstable Plasma zPinch (zPinch.pre)
        • USimHEDP Examples
          • Anisotropic Diffusion (anisotropicDiffusion.pre)
          • Anisotropic Poisson (anisotropicPoisson.pre)
          • Multi-Fluids with Collisions (collisionalMultiFluid.pre)
          • Dense Plasma Focus (densePlasmaFocus.pre)
          • Gas Injection (gasInjection.pre)
          • Two-Fluid Magnetic Reconnection (gemChallenge.pre)
          • Magnetic Nozzle (magneticNozzle.pre)
          • Merging Plasma Jets (plasmaJetMerging.pre)
          • Ten-Moment, Two-Fluid Shock (tenMomentShock.pre)
          • Verify EOS Table (verifyEOSTable.pre)
        • USimHS Examples
          • Diffusion (diffusion.pre)
          • Turbulent Flow Over Flat Plate (flatPlate.pre)
          • Flow over a Cylindrical Rod (highSpeedRod.pre)
          • Supersonic Crossflow over a Cylinder (mach2Cylinder.pre)
          • Blunt-Body Reentry Vehicle (ramC.pre)
          • 3D Reentry Vehicle (ramC3d.pre)
        • Coupled USimHS and USimHEDP Examples
          • Arc Plasma Torch (plasmaTorch.pre)
          • Radio Communication Blackout (ramCEM.pre)
      • USim In Depth
        • Basic Concepts
          • Pre File Syntax
          • Key Parameters
        • Macros
          • Introduction
          • Overview
        • Basic USim Simulations
          • Using USim to solve the Euler Equations
          • Using USim to solve the Magnetohydrodynamic Equations
          • Solving Multi-Dimensional Problems in USim
          • Solving Problems on Advanced Structured Meshes in USim
          • Solving Problems on Unstructured Meshes in USim
        • Advanced USim Simulations
          • Advanced USim Simulation Concepts
          • Advanced Methods for Solving the Euler Equations with USim
          • Advanced Methods for Solving the Magnetohydrodynamics Equations with USim
          • Advanced Methods for Solving for Solving Problems in Multi-Dimensions with Usim
          • Advanced Methods for Solving Problems on Advanced Meshes with USim
        • Using USim to Solve Advanced Physics Problems
          • Using USim to Solve a Diffusion Problem
          • Using USim to Solve the Two-Fluid Plasma Model
          • Using USim to Solve MHD with General Equation of State
          • Using USim to Solve MHD with General Equation of State
          • Using USim to Solve a Magnetic Nozzle Problem
          • Using USim to Solve an Anisotropic Diffusion Problem
          • Using USim to Solve Multi-Fluid Problems with Collisions
          • Using USim to solve 10 moment ions with 5 moment electrons
          • Using USim to Solve Navier-Stokes Equations
          • Using USim to Solve Multi-Species Reactive Flows
          • Advanced Time-Stepping Methods in USim
          • Running USim from the Command Line
          • Restarting a USim Simulation
          • Running on a Remote Host
      • USim Reference Manual
        • Introduction
        • Macros
          • Mathphys Macro
          • Grid Macro
          • Euler Macro
          • Ideal MHD Macro
          • Anisotropic Conductivity Macro
        • Grid
          • cart (1d, 2d, 3d)
          • bodyFitted (1d, 2d, 3d)
          • unstructured
        • DataStruct
          • bin
          • dynVector
          • nodalArray
        • DataStructAlias
        • UpdateStep
        • UpdateSequence
        • Updater
          • initialize (1d, 2d, 3d)
          • linearCombiner (1d, 2d, 3d)
          • uniformCombiner (1d, 2d, 3d)
          • combiner (1d, 2d, 3d)
          • dynVectorOperator
          • equation (1d, 2d, 3d)
          • computePrimitiveState(1d, 2d, 3d)
          • vertexJetUpdater (1d, 2d, 3d)
          • firstOrderMusclUpdater (1d, 2d, 3d)
          • classicMusclUpdater (1d, 2d, 3d)
          • unstructMusclUpdater (1d, 2d, 3d)
          • thirdOrderMusclUpdater (1d, 2d, 3d)
          • vector (1d, 2d, 3d)
          • diffusion (1d, 2d, 3d)
          • navierStokesViscousOperator (1d, 2d, 3d)
          • kOmegaOperator (1d, 2d, 3d)
          • kEpsilonOperator (1d, 2d, 3d)
          • generalizedOhmsLaw (1d, 2d, 3d)
          • resitiveOperator (1d, 2d, 3d)
          • multiUpdater (1d, 2d, 3d)
          • implicitMultiUpdater (1d, 2d, 3d)
          • localOdeIntegrator (1d, 2d, 3d)
          • timeStepRestrictionUpdater (1d, 2d, 3d)
          • boundaryEntityGenerator (1d, 2d, 3d)
          • characteristicCellLength (1d, 2d, 3d)
          • entityGenerator (1d, 2d, 3d)
          • minDistanceToWall (1d, 2d, 3d)
          • operatorEntityGenerator (1d, 2d, 3d)
          • paintEntity (1d, 2d, 3d)
          • binCells (1d, 2d, 3d)
          • fieldAtPoint (1d, 2d, 3d)
          • intCombinedFields (1d, 2d, 3d)
          • lineIntegral (1d, 2d, 3d)
          • maxCombinedFields (1d, 2d, 3d)
          • surfaceIntegral (1d, 2d, 3d)
          • surfaceVariables (1d, 2d, 3d)
          • nanChecker (1d, 2d, 3d)
          • pressureDensityCorrector (1d, 2d, 3d)
          • valueCorrector (1d, 2d, 3d)
        • Time Integrator
        • Preconditioner
        • Hyperbolic Equations
          • eulerEqn
          • realGasEqn
          • realGasEosEqn
          • tenMomentEqn
          • multiSpeciesSingleVelocityEqn
          • mhdDednerEqn
          • mhdDednerEosEqn
          • gasDynamicMhdDednerEqn
          • simpleTwoTemperatureMhdDednerEqn
          • twoTemperatureMhdDednerEqn
          • maxwellEqn
          • maxwellDednerEqn
          • gasDynamicMaxwellDednerEqn
          • twoFluidEqn
          • userDefinedEqn
        • Algebraic Equations
          • eulerSym
          • mhdSym
          • maxwellSym
          • multiSpeciesSym
          • twoFluidSym
          • exprHyperSrc
          • mhdSrc
          • tenMomentFluidSrc
          • twoFluidSrc
          • idealGasVariables
          • idealGasComputeVariables
          • propaceosVariables
          • propaceosComputeVariables
          • sesameVariables
          • sesameComputeVariables
          • vanDerWaalsVariables
          • vanDerWaalsComputeVariables
          • bremsPowerSrc
          • radiationAbsorption
          • radiationEmission
          • coilFieldEqn
          • current
          • lorentzForce
          • wireFieldEqn
          • computeChargeError
          • hyperbolicCleanSym
          • collisionFrequency
          • conductivityTensor
          • momentumEnergyExchange
          • NFluidSrc
          • reactionTableRhs
          • temperatureRelaxation
          • transportCoeffSrc
        • Boundary Conditions
          • copy (1d, 2d, 3d)
          • eulerBc (1d, 2d, 3d)
          • functionBc (1d, 2d, 3d)
          • generalBc (1d, 2d, 3d)
          • maxwellBc (1d, 2d, 3d)
          • mhdBc (1d, 2d, 3d)
          • periodicCartBc (1d, 2d, 3d)
          • simpleBc (1d, 2d, 3d)
          • sufaceEvaporation (1d, 2d, 3d)
          • tenMomentBc (1d, 2d, 3d)
        • Time Step Restriction
          • cyclotronFrequency (1d, 2d, 3d)
          • frequency (1d, 2d, 3d)
          • hyperbolic (1d, 2d, 3d)
          • plasmaFrequency (1d, 2d, 3d)
          • positiveValue (1d, 2d, 3d)
          • quadratic (1d, 2d, 3d)
          • whistlerWave (1d, 2d, 3d)
        • Multi-Species Data Files
          • Multi-Species Chemical Reactions
          • Multi-Species Specific Heat At Constant Pressure
          • Multi-Species Energy of Formation, Molecular Weight, Molecular Diameter and Degrees of Freedom
  • Current Topic
      • navierStokesViscousOperator (1d, 2d, 3d)
        • Data
        • Parameters
        • Examples

Previous topic

  diffusion (1d, 2d, 3d)

Next topic

  kOmegaOperator (1d, 2d, 3d)

Contents

  • USim 3.0 Installation, Licensing and Release Notes
  • USim Quick Start
  • USim In Depth
  • USim Reference Manual
    • Introduction
    • Macros
    • Grid
    • DataStruct
    • DataStructAlias
    • UpdateStep
    • UpdateSequence
    • Updater
    • Time Integrator
    • Preconditioner
    • Hyperbolic Equations
    • Algebraic Equations
    • Boundary Conditions
    • Time Step Restriction
    • Multi-Species Data Files

navierStokesViscousOperator (1d, 2d, 3d)¶

The navierStokesViscousOperator computes the viscous stress and thermal conduction terms, with contributions from laminar (and optionally, turbulent) viscosity in the Navier Stokes equations using a conservative least squares interpolation scheme.

USim implements the viscous stress terms in the momentum and total energy equations in the Navier-Stokes operator using the form:

\[\notag \begin{align} \mathcal{S} \left(\mathbf{w}\right) = \left[ \begin{array}{c} \mathcal{S}_{\rho \mathbf{u}} \left(\mathbf{w}\right) \\ S_{E} \left(\mathbf{w}\right) \end{array} \right] = \left[ \begin{array}{c} c \nabla \cdot \mathbb{S} \left(\mathbf{w}\right) \\ c \nabla \cdot \left\{ \mathbb{S} \left(\mathbf{w}\right) \cdot \mathbf{u} \right\} \end{array} \right] \\ \mathbb{S} \left(\mathbf{w}\right) = 2 \left[\mu + \mu_{\mathrm{turb}} \right] \left[ \frac{\nabla \mathbf{u} + \left( \nabla \mathbf{u} \right)^{\mathrm{T}}}{2} - \frac{\mathbb{I}}{3} \nabla \cdot \mathbf{u} \right] - \frac{2 \mathbb{I}}{3} \mu_{\mathrm{turb}} \rho k \end{align}\]

Here, \(\mathbf{w}\) is the primitive state vector, \(\mathbf{u}\) is the fluid velocity, \(\mu\) is the laminar viscosity, \(\mu_{\mathrm{turb}}\) is the turbulent viscosity, \(\rho\) is the fluid density and \(k\) is the local local turbulent kinetic energy. The laminar viscosity can be computed through (e.g.) Sutherland’s law:

\[\notag \begin{align} \mu = \mu_0 \left( \frac{T}{T_0} \right)^{\frac{3}{2}} \left( \frac{T_0+S}{T_0+S} \right) \end{align}\]

where \(\mu_0 = 1.716 \times 10^{-5} \mathrm{kg} \; (\mathrm{ms} )^{-1}\), \(T_0 = 491.6R\), \(S = 198.6R\).

USim implements the thermal conduction terms in the total energy equation in the Navier-Stokes operator using the form:

\[\notag \begin{align} S_{E} \left(\mathbf{w}\right) = c \nabla \cdot \left[ -\left(\kappa + \kappa_{\mathrm{turb}}\right) \nabla T \right] \end{align}\]

where \(\kappa\) and \(\kappa_{\mathrm{turb}}\) are the laminar and turbulent heat conductivity, which can be modelled through:

\[\notag \begin{align} \kappa = \frac{c_p \mu}{\mathrm{Pr}}; \;\; \kappa_\mathrm{turb} = \frac{c_p \mu_\mathrm{turb}}{\mathrm{Pr}_\mathrm{turb}} \end{align}\]

where \(c_p\) is the heat capacity at constant pressure and \(\mathrm{Pr}\) and \(\mathrm{Pr}_\mathrm{turb}\) are the laminar and turbulent Prandtl numbers.

Data¶

in (string vector, required)

Defined by the choice of the enableThermal, enableViscous, and enableTurbulence flags defined below in the Parameters section. Input variables must be in the order listed below. The rules for the which arrays should be included in the vector are as follows:

  • fluid velocity: required if enableViscous = true or enableTurbulence = true
  • total viscosity: required if enableViscous = true or enableTurbulence = true
  • fluid temperature: required if enableThermal = true or enableTurbulence = true
  • total thermal conductivity: required if enableThermal = true or enableTurbulence = true
  • turbulence model: required if enableTurbulence = true
  • turbulence viscosity: required if enableTurbulence = true

Note

If enableTurbulence is true and enableViscous is false, then enableTurbulence has no effect.

If enableTurbulence and enableThermal don’t impact each other algorithmically.

If enableTurbulence is true, then the input variables are required to be present.

Fluid velocity (nodalArray, 3-components, optional)
Vector of fluid velocities, required if enableViscous = true: 0. \(u_{\hat{\mathbf{i}}} = \mathbf{u} \cdot \hat{\mathbf{i}}\): velocity in the \(\hat{\mathbf{i}}\) direction 1. \(u_{\hat{\mathbf{j}}} = \mathbf{u} \cdot \hat{\mathbf{j}}\): velocity in the \(\hat{\mathbf{j}}\) direction 2. \(u_{\hat{\mathbf{k}}} = \mathbf{u} \cdot \hat{\mathbf{k}}\): velocity in the \(\hat{\mathbf{k}}\) direction
Total viscosity (nodalArray, 1-components, optional)
Sum of the laminar and turbulent viscosities, \(\mu + \mu_{\mathrm{turb}}\) (if turbulence is not modelled, the latter can be ommitted). Required if enableViscous = true:
Fluid Temperature (nodalArray, 1-components, optional)
Required if enableThermal = true.
Total thermal conductivity (nodalArray, 1-components, optional)
Sum of the laminar and turbulent thermal conductivities, \(\mu + \mu_{\mathrm{turb}}\) (if turbulence is not modelled, the latter can be ommitted). Required if enableThermal = true.
Turbulence model (nodalArray, 1-components, optional)

Required if enableTurbulence = true. One of:

Turbulent kinetic energy density \(\rho k - \rho \epsilon\)

Turbulent kinetic energy density dissipation rate \(\rho k - \rho \omega\)

Turbulent viscosity (nodalArray, 1-components, optional)
Turbulent viscosities, \(\mu_{\mathrm{turb}}\). Required if enableTurbulence = true:
out (string vector, required)
Vector of Fluxes (nodalArray, 4-components)
  1. \(\mathcal{S}\left( \rho\,u_{\hat{\mathbf{i}}} \right)\): \(\hat{\mathbf{i}}\) momentum flux
  2. \(\mathcal{S}\left( \rho\,u_{\hat{\mathbf{j}}} \right)\): \(\hat{\mathbf{j}}\) momentum flux
  3. \(\mathcal{S}\left( \rho\,u_{\hat{\mathbf{k}}} \right)\): \(\hat{\mathbf{k}}\) momentum flux
  4. \(\mathcal{S}\left( E \right)\): total energy flux

Parameters¶

The navierStokesViscousOperator updater accepts the parameters below, in addition to those required by Updater:

orderAccuracy (integer, required)
Order of the polynomial that is used to form the operator. Choice of 1, 2 or 3 corresponding, respectively to first, second and third order accuracy. The appropriate choice of order varies on the problem type and the mesh used.
numberOfInterpolationPoints (integer, required)

Number of points to be considerd for the least squares fit. This parameter varies from mesh to mesh and should be determined by computing a known function on the mesh.

The numberOfInterpolationPoints must be greater than (or equal to) the number of coefficients in the polynomial approximation. This means that in 1d the value is 4, in 2D the value is at least 6 and in 3D the value is at least 10.

These choices do not guarantee that a matrix inverse will be found. The following values though appear to be adequate in general: in 1D 4; in 2D 8 and in 3D 20.

coefficient (float, required)
Constant floating point value, c that multiplies the output of the diffusion updater.
enableThermal (boolean, optional)
Tell USim whether to include the contribution from heat conduction. Default true.
enableViscous (boolean, optional)
Tell USim whether to inclue the contribution from viscous stress. Default true.
enableTurbulence (boolean, optional)
Tell USim whether to include the turbulence. Default false.

Examples¶

<Updater computeViscousSource>
  kind = navierStokesViscousOperator2d
  onGrid = domain

  coefficient = 1.0

  numberOfInterpolationPoints = 8
  orderAccuracy = 2

  enableThermal = false
  enableViscous = true

  in = [velocity, dynamicViscosity, temperature, thermalCoefficient]
  out = [viscousSource]
</Updater>
<Updater computeViscousSource>
  kind = navierStokesViscousOperator2d
  onGrid = domain
  isRadial = true
  coefficient = 1.0

  numberOfInterpolationPoints = 8

  enableThermal = false
  enableViscous = true
  enableTurbulence = true
  temperatureIndex = 0

  in = [velocity, totalVisc, avgTemp, totalCond, kEpsilon, turbulentViscosity]
  out = [viscousSource]
</Updater>

Back to top

© Copyright 2011-2018, Tech-X Corporation.