# 2. Supported Equation Set¶

This section provides an overview of the currently supported equation sets. Equations will be described in integral form with assumed Favre averaging. However, the laminar counterparts are supported in the code base and are obtain in the user file by omitting a turbulence model specification.

## 2.1. Conservation of Mass¶

The continuity equation is always solved in the variable density form.

Since Nalu-Wind uses equal-order interpolation (variables are collocated) stabilization is required. The stabilization choice will be developed in the pressure stabilization section.

Note that the use of a low speed compressible formulation requires that the fluid density be computed by an equation of state that uses the thermodynamic pressure. This thermodynamic pressure can either be computed based on a global energy/mass balance or allowed to be spatially varying. By modification of the continuity density time derivative to include the \(\frac{\partial \rho}{\partial p}\) sensitivity, an equation that admits acoustic pressure waves is realized.

## 2.2. Conservation of Momentum¶

The integral form of the Favre-filtered momentum equations used for turbulent transport are

where the subgrid scale turbulent stress \(\tau^{sgs}_{ij}\) is defined as

The term \(\mathrm{f}_i\) is a body force used to represent additional momentum sources such as wind turbine blades, Coriolis effect, driving forces, etc. The Cauchy stress is provided by,

and the traceless rate-of-strain tensor defined as follows:

In a low Mach flow, as described in the low Mach theory section, the above pressure, \(\bar P\) is the perturbation about the thermodynamic pressure, \(P^{th}\). In a low speed compressible flow, i.e., flows confined to a closed domain with energy or mass addition in which the continuity equation has been modified to accommodate acoustics, this pressure is interpreted at the thermodynamic pressure itself.

For LES, \(\tau^{sgs}_{ij}\) that appears in Equation (2.1) and defined in Equation (2.2) represents the subgrid stress tensor that must be closed. The deviatoric part of the subgrid stress tensor is defined as

where the subgrid turbulent kinetic energy is defined as \(\tau^{sgs}_{kk} = 2 \bar \rho k\). Note that here, k represents the modeled turbulent kinetic energy as is formally defined as,

Model closures can use, Yoshizawa’s approach when k is not transported:

Above, \(| \widetilde S | = \sqrt {2 \widetilde S_{ij} \widetilde S_{ij}}\).

For low Mach-number flows, a vast majority of the turbulent kinetic energy is contained at resolved scales. For this reason, the subgrid turbulent kinetic energy is not directly treated and, rather, is included in the pressure as an additional normal stress. The Favre-filtered momentum equations then become

where LES closure models for the subgrid turbulent eddy viscosity \(\mu_t\) are either the constant coefficient Smagorinsky, WALE or the constant coefficient \(k_{sgs}\) model (see the turbulence section).

### 2.2.1. Earth Coriolis Force¶

For simulation of large-scale atmospheric flows, the following Coriolis force term can be added to the right-hand-side of the momentum equation ((2.1)):

Here, \(\Omega\) is the Earth’s angular velocity vector, and \(\epsilon_{ijk}\) is the Levi-Civita symbol denoting the cross product of the Earth’s angular velocity with the local fluid velocity vector. Consider an “East-North-Up” coordinate system on the Earth’s surface, with the domain centered on a latitude angle \(\phi\) (changes in latitude within the computational domain are neglected). In this coordinate system, the integrand of (cor-term), or the Coriolis acceleration vector, is

where \(\omega \equiv ||\Omega||\). Often, in geophysical flows it is assumed that the vertical component of velocity is small and that the vertical component of the acceleration is small relative to gravity, such that the terms containing \(\cos\phi\) are neglected. However, there is evidence that this so-called traditional approximation is not valid for some mesoscale atmospheric phenomena cite{Gerkema_etal:08}, and so the full Coriolis term is retained in Nalu-Wind. The implementation proceeds by first finding the velocity vector in the East-North-Up coordinate system, then calculating the Coriolis acceleration vector ((2.6)), then transforming this vector back to the model \(x-y-z\) coordinate system. The coordinate transformations are made using user-supplied North and East unit vectors given in the model coordinate system.

### 2.2.2. Boussinesq Buoyancy Model¶

In atmospheric and other flows, the density differences in the domain can be small enough as to not significantly affect inertia, but nonetheless the buoyancy term,

may still be important. The Boussinesq model ignores the effect of density on inertia while retaining the buoyancy term in Equation (2.1). For the purpose of evaluating the buoyant force, the density is approximated as

This leads to a buoyancy body force term that depends on temperature (\(T\)), a reference density (\(\rho_{\circ}\)), a reference temperature (\(T_{\circ}\)), and a thermal expansion coefficient (\(\beta\)) as

The flow is otherwise kept as constant density.

## 2.3. Filtered Mixture Fraction¶

The optional quantity used to identify the chemical state is the mixture fraction, \(Z\). While there are many different definitions of the mixture fraction that have subtle variations that attempt to capture effects like differential diffusion, they can all be interpreted as a local mass fraction of the chemical elements that originated in the fuel stream. The mixture fraction is a conserved scalar that varies between zero in the secondary stream and unity in the primary stream and is transported in laminar flow by the equation,

where \(D\) is an effective molecular mass diffusivity.

Applying either temporal Favre filtering for RANS-based treatments or spatial Favre filtering for LES-based treatments yields

where sub-filter correlations have been neglected in the molecular diffusive flux vector and the turbulent diffusive flux vector is defined as

This subgrid scale closure is modeled using the gradient diffusion hypothesis,

where \(D_t\) is the turbulent mass diffusivity, modeled as \(\bar{\rho} D_t = \mu_t / \mathrm{Sc}_t\) where \(\mu_t\) is the modeled turbulent viscosity from momentum transport and \(\mathrm{Sc}_t\) is the turbulent Schmidt number. The molecular mass diffusivity is then expressed similarly as \(\bar{\rho} D = \mu / \mathrm{Sc}\) so that the final modeled form of the filtered mixture fraction transport equation is

In integral form the mixture fraction transport equation is

## 2.4. Conservation of Energy¶

The integral form of the Favre-filtered static enthalpy energy equation used for turbulent transport is

The above equation is derived by starting with the total internal energy equation, subtracting the mechanical energy equation and enforcing the variable density continuity equation. Note that the above equation includes possible source terms due to thermal radiatitive transport, viscous dissipation, pressure work, and external driving sources (\(S_\theta\)).

The simple Fickian diffusion velocity approximation, Equation (2.22), is assumed, so that the mean diffusive heat flux vector \(\bar{q}_j\) is

If \(Sc = Pr\), i.e., unity Lewis number (\(Le = 1\)), then the diffusive heat flux vector simplifies to \(\bar{q}_j = -\frac{\mu}{\mathrm{Pr}} \frac{\partial \widetilde{h}}{\partial x_j}\). In the code base, the user has the ability to either specify a laminar Prandtl number, which is a constant, or provide a property evaluator for thermal conductivity. Inclusion of a Prandtl number prevails and ensures that the thermal conductivity is computed base on \(\kappa = \frac{C_p \mu}{Pr}\). The viscous dissipation term is closed by

The subgrid scale turbulent flux vector \(\tau^{sgs}_{h}\) in Equation (2.12) is defined as

As with species transport, the gradient diffusion hypothesis is used to close this subgrid scale model,

where \(\mathrm{Pr}_t\) is the turbulent Prandtl number and \(\mu_t\) is the modeled turbulent eddy viscosity from momentum closure. The resulting filtered and modeled turbulent energy equation is given by,

The turbulent Prandtl number must have the same value as the turbulent Schmidt number for species transport to maintain unity Lewis number.

## 2.5. Review of Prandtl, Schmidt and Unity Lewis Number¶

For situations where a single diffusion coefficient is applicable (e.g., a binary gas system) the Lewis number is defined as:

If the diffusion rates of energy and mass are equal,

For completeness, the thermal diffusivity, Prandtl and Schmidt number are defined by,

and

where \(c_p\) is the specific heat, \(\kappa\), is the thermal conductivity and \(\alpha\) is the thermal diffusivity.

## 2.6. Thermal Heat Conduction¶

For non-isothermal object response that may occur in conjugate heat transfer applications, a simple single material heat conduction equation is supported.

where \(q_j\) is again the energy flux vector, however, now in the following temperature form:

## 2.7. ABL Forcing Source Terms¶

In LES of wind plant atmospheric flows, it is often necessary to drive the flow to a predetermined vertical velocity and/or temperature profile. In Nalu-Wind, this is achieved by adding appropriate source terms \(\mathrm{f}_i\) to the momentum equation (2.1) and \(S_\theta\) to the enthalpy equation (2.12).

First, the momentum source term is discussed. The main objective of this implementation is to force the volume averaged velocity at a certain location to a specified value (\(<\mathrm{u}_i>=\mathrm{U}_i\)). The brackets used here, \(<>\), mean volume averaging over a certain region. In order to achieve this, a source term must be applied to the momentum equation. This source term can be better understood as a proportional controller within the momentum equation.

The velocity and density fields can be decomposed into a volume averaged component and fluctuations about that volume average as \(\mathrm{u}_i = \left< \mathrm{u}_i \right> + \mathrm{u}_i'\) and \(\bar{\rho} = \left< \bar{\rho} \right> + \bar{\rho}'\). A decomposition of the plane averaged momentum at a given instance in time is then

We now wish to apply a momentum source based on a desired spatial averaged velocity \(\mathrm{U}_i\). This can be expressed as:

where \(\mathrm{u}_i^*\) is an unknown reference velocity field whose volume average is the desired velocity \(\left< \mathrm{u}_i^* \right> = \mathrm{U}_i\). Since the correlation \(\left< \bar{\rho}' \mathrm{u^*}'_i \right>\) is unknown, we assume that

such that the momentum source can now be defined as:

where \(\left< \right>\) denotes volume averaging at a certain time \(t\), \(\mathrm{U}_i\) is the desired spatial averaged velocity, and \(\Delta t\) is the time-scale between when the source term is computed (time \(t\)) and when it is applied (time \(t + \Delta t\)). This is typically chosen to be the simulation time-step. In the case of an ABL simulation with flat terrain, the volume averaging is done over an infinitesimally thin slice in the \(x\) and \(y\) directions, such that the body force is only a function of height \(z\) and time \(t\). The implementation allows the user to prescribe relaxation factors \(\alpha_u\) for the source terms that are applied. Nalu-Wind uses a default value of 1.0 for the relaxation factors if no values are defined in the input file during initialization.

The enthalpy source term works similarly to the momentum source term. A temperature difference is computed at every time-step and a forcing term is added to the enthalpy equation:

where \(\theta_{\rm ref}\) is the desired spatial averaged temperature, \(\left< \theta \right>\) is the spatial averaged temperature, \(C_p\) is the heat capacity, \(\alpha_\theta\) is the relaxation factor, and \(\Delta t\) is the time-scale.

The present implementation can vary the
source terms as a function of time and space using either a user-defined table
of previously computed source terms (e.g., from a *precursor* simulation or
another model such as WRF), or compute the source term as a function of the
transient flow solution.

## 2.8. Conservation of Species¶

The integral form of the Favre-filtered species equation used for turbulent transport is

where the form of diffusion velocities (see Equation (2.22)) assumes the Fickian approximation with a constant value of diffusion velocity for consistency with the turbulent form of the energy equation, Equation (2.12). The simplest form is Fickian diffusion with the same value of mass diffusivity for all species,

The subgrid scale turbulent diffusive flux vector \(\tau^{sgs}_{Y_kj}\) is defined as

The closure for this model takes on its usual gradient diffusion hypothesis, i.e.,

where \(\mathrm{Sc}_t\) is the turbulent Schmidt number for all species and \(\mu_t\) is the modeled turbulent eddy viscosity from momentum closure.

The Favre-filtered and modeled turbulent species transport equation is,

If transporting both energy and species equations, the laminar Prandtl number must be equal to the laminar Schmidt number and the turbulent Prandtl number must be equal to the turbulent Schmidt number to maintain unity Lewis number. Although there is a species conservation equation for each species in a mixture of \(n\) species, only \(n-1\) species equations need to be solved since the mass fractions sum to unity and

Finally, the reaction rate source term is expected to be added based on an operator split approach whereby the set of ODEs are integrated over the full time step. The chemical kinetic source terms can be sub-integrated within a time step using a stiff ODE integrator package.

The following system of ODEs are numerically integrated over a time step \(\Delta t\) for a fixed temperature and pressure starting from the initial values of gas phase mass fraction and density,

The sources for the sub-integration are computed with the composition and density at the new time level which are used to approximate a mean production rate for the time step

## 2.9. Subgrid-Scale Kinetic Energy One-Equation LES Model¶

The subgrid scale kinetic energy one-equation turbulence model, or \(k^{sgs}\) model, [Dav97], represents a simple LES closure model. The transport equation for subgrid turbulent kinetic energy is given by

The production of subgrid turbulent kinetic energy, \(P_k^\mathrm{sgs}\), is modeled by,

while the dissipation of turbulent kinetic energy, \(D_k^\mathrm{sgs}\), is given by

where the grid filter length, \(\Delta\), is given in terms of the grid cell volume by

The subgrid turbulent eddy viscosity is then provided by

where the values of \(C_{\epsilon}\) and \(C_{\mu_{\epsilon}}\) are 0.845 and 0.0856, respectively.

For simulations in which a buoyancy source term is desired, the code supports the Rodi form,

## 2.10. RANS Model Suite¶

Although Nalu-Wind is primarily expected to be a LES simulation tool, RANS modeling is supported through the activation of different two-equation RANS models: the Chien \(k-\epsilon\) model [Chi82], the Wilcox 1998 \(k-\omega\) model [W+98], and the SST model. For the first two models, the reader is referred to the reference papers and the NASA Turbulence Modeling Resource for the Chien and Wilcox models. The SST model is explained in more details below.

### 2.10.1. Shear Stress Transport (SST) Formulation¶

It has been observed that standard 1998 \(k-\omega\) models display a strong sensitivity to the free stream value of \(\omega\) (see Menter, [MKL03]). To remedy, this, an alternative set of transport equations have been used that are based on smoothly blending the \(k-\omega\) model near a wall with \(k-\epsilon\) away from the wall. Because of the relationship between \(\omega\) and \(\epsilon\), the transport equations for turbulent kinetic energy and dissipation can be transformed into equations involving \(k\) and \(\omega\). Aside from constants, the transport equation for \(k\) is unchanged. However, an additional cross-diffusion term is present in the \(\omega\) equation. Blending is introduced by using smoothing which is a function of the distance from the wall, \(F(y)\). The transport equations for the Menter 2003 model are then

where the value of \(\beta^*\) is 0.09.

The model coefficients, \(\hat\sigma_k\), \(\hat\sigma_{\omega}\), \(\hat\gamma\) and \(\hat\beta\) must also be blended, which is represented by

where \(\sigma_{k1} = 0.85\), \(\sigma_{k2} = 1.0\), \(\sigma_{\omega1} = 0.5\), \(\sigma_{\omega2} = 0.856\), \(\gamma_1 = \frac{5}{9}\), \(\gamma_2 = 0.44\), \(\beta_1 = 0.075\) and \(\beta_2 = 0.0828\). The blending function is given by

where

The final parameter is

An important component of the SST model is the different expression used for the turbulent viscosity,

where \(F_2\) is another blending function given by

The final parameter is

The Menter SST Two-Equation Model with Controlled Decay (SST-SUST) is also supported, [SR07]. Two new constants are added that are incorporated into additional source terms for the transport equations:

where the constants are \(k_{amb}\) and \(\omega_{amb}\). Typically these are set to \(k_{amb} = 10^{-6} U_{\infty}^2\) and \(\omega_{amb} = \frac{5 U_\infty}{L}\), where \(L\) is a defining length scale for the particular problem, and \(U_\infty\) is the freestream velocity. The value chosen for these constants should match the values for \(\omega\) and \(k\) at the inflow BC.

### 2.10.2. SST Mixing Length Limiter¶

When using SST to model the Atmospheric Boundary Layer with the Coriolis effect, a mixing length limiter should be included. The limiter included here is based on the limiter for the k-epsilon model in [Kob13]. An analogous limiter was derived for the SST model. The SST limiter was presented in [AdFM+21] and will be written up in a future publication.

The mixing length limiter replaces the SST model parameter, \(\gamma\), in the \(\omega\) equation with \(\gamma^*\). \(\gamma^*\) is a blend of \(\gamma_1^*\) and \(\gamma_2^*\) using the SST blending function, \(F\)

\(\gamma_i^*\) for \(i=1,2\) is calculated from \(C_{\varepsilon 1, i}^*\) as

\(C_{\varepsilon 1, i}^*\) is calculated by applying the mixing length limiter to \(C_{\varepsilon 1, i}\) as

\(C_{\varepsilon 1, i}\) is calculated from the SST model constant \(gamma_1\) as

\(C_{\varepsilon 2, i}\) is calculated from the SST model constants \(\beta_i\) and \(\beta^*\) as

The maximum mixing length, \(l_e\) is calculated as

where \(G\) is the geostrophic (freestream) velocity and \(f_c\) is the Coriolis force. The Coriolis force is calculated as

where \(\Omega\) is the earth’s angular velocity and \(\lambda\) is the latitude.

## 2.11. Detached Eddy Simulation (DES) Formulation¶

The DES technique is also supported in the code base when the SST model is activated. This model seeks to formally relax the RANS-based approach and allows for a theoretical basis to allow for transient flows. The method follows the method of Temporally Filtered NS formulation as described by Tieszen, [TDB05].

The SST DES model simply changes the turbulent kinetic energy equation to include a new minimum scale that manipulates the dissipation term.

where \(l_{DES}\) is the min(\(l_{SST}, c_{DES}l_{DES}\)). The constants are given by, \(l_{SST}=\frac{k^{1/2}}{\beta^* \omega}\) and \(c_{DES}\) represents a blended set of DES constants: \(c_{{DES}_1} = 0.78\) and \(c_{{DES}_2} = 0.61\). The length scale, \(l_{DES}\) is the maximum edge length scale touching a given node.

## 2.12. Active Model Split (AMS) Formulation¶

The AMS approach is a recently developed hybrid RANS/LES framework by Haering, Oliver and Moser [HOM20]. In this approach a triple decomposition is used, breaking the instantaneous velocity field into an average component \(<u_i>\), a resolved fluctuation \(u_i^>\) and an unresolved fluctuation \(u_i^<\). The subgrid stress is split into two terms, \(\tau_{ij} = \tau_{ij}^{SGRS} + \tau_{ij}^{SGET}\), with \(\tau_{ij}^{SGRS}\) modeling the mean subgrid stress, taking on the form of a standard RANS subgrid stress model and \(\tau_{ij}^{SGET}\) representing the energy transfer from the resolved to the modeled scales. In addition, a forcing stress \(F_i\) is added to the momentum equations to induce the transfer of energy from the modeled to the resolved scales. Thus the AMS approach solves the following momentum equation

### 2.12.1. Split subgrid model stress¶

In a typical Hybrid RANS/LES approach, the observation that the LES and RANS equations take on the same mathematical form is leveraged, relying simply on a modified turbulent viscosity coefficient that takes into account the ability to resolve some turbulent content. Due to deficiencies in this approach as discussed in Haering et al. [HOM20], an alternative approach where the modeled term is split into two contributions, one representing the impact on the mean flow and one the impact on the resolved fluctuations, from the unresolved content, is used in the Active Model Split (AMS) formulation.

Starting by substitution of a triple decomposition of the flow variables, \(\phi = \langle \phi \rangle + \phi^> + \phi^<\), with \(\langle \cdot \rangle\) representing a mean quantity, \(\phi^>\) a resolved fluctuation and \(\phi^<\) an unresolved fluctuation and dropping all terms that have an unresolved fluctuation in them (since by definition, these terms cannot be resolved and thus must be modeled) we get the following momentum equation:

Note that here, \(\overline{\phi} = \langle \phi \rangle + \phi^>\) represents an instantaneous resolved quantity and \(F_i\) is a forcing term discussed in Sec. AMS forcing.

The model term in AMS, \(\tau_{ij}^M\) is split into two pieces, the first representing the impact of the unresolved scales on the mean flow, referred to as \(\tau_{ij}^{SGRS}\), since this mimics the purpose of RANS models and seeks to model the subgrid Reynolds Stress (SGRS). The second term represents the impact of the unresolved scales on the resolved fluctuations which acts to capture energy transfer from the resolved fluctuations to the unresolved fluctuations, which as Haering et al. points out, is really the primary function of typical LES SGS models. As this term models subgrid energy transfer (SGET), it is referred to as \(\tau_{ij}^{SGET}\).

\(\tau_{ij}^{SGRS}\) is modeled using a typical RANS model, but since in the hybrid context, some turbulence is resolved, the magnitude of the stress tensor is reduced through a derived scaling with \(\alpha = \beta^{1.7}\), \(\beta = 1 - k_{res}/k_{tot}\), where \(k_{tot}\) is the total kinetic energy, taken from the RANS model and \(k_{res} = 0.5 \langle u_i^> u_i^> \rangle\), a measure of the average resolved turbulent kinetic energy.

\(\tau_{ij}^{SGET}\) is modeled using the M43 SGS model discussed in Haering et al. [HOM19]. This uses an anisotropic representation, \(\tau_{ij} = \nu_{jk} \partial_k u_i + \nu_{ik} \partial_k u_j\), of the stress tensor and a tensorial eddy viscosity, \(\nu_{ij} = C(\mathcal{M}) \langle \epsilon \rangle^{1/3} \mathcal{M}_{ij}^{4/3}\), with \(C\), a coefficient determined as a function of the eigenvalues of \(\mathcal{M}\), a metric tensor measure of the grid and \(\langle \epsilon \rangle\) inferred from the RANS model.

So this produces the final form for the AMS model term,

The AMS model terms are implemented for the edge based
scheme in *MomentumSSTAMSDiffEdgeKernel*.
The isotropic component, \(2 \beta k_{tot}\delta_{ij}/3\) is
brought into the pressure term.

### 2.12.2. Averaging functions¶

The averaging algorithms are invoked as part of the
*AMSAlgDriver* and are called from the *pre_iter_work*
function so that they are executed at the beginning of each Picard
iteration. The *AMSAlgDriver* is invoked last, so to ensure
that this is also done initially, so that the initial step has correct
average quantities, the averaging functions are also called in the
*initial_work* function.

The main averaging algorithm is
*SSTAMSAveragesAlg*. The averaging function is
solving a simple causal average equation for the intermediate (or final) quantity:

Here \(\langle \cdot \rangle\) refers to a mean (time-averaged) quantity and \(T_{RANS}\) is the timescale of the turbulence determined by the underlying RANS scalars (\(1 / (\beta^*\omega)\) in SST). \(()^{n}\) refers to a previous timestep quantity and \(()^{*}\) refers to an intermediate quantity. Note that currently the time scale is stored in a nodal field.

We can discretize the causal average equation explicitly to produce the implemented form:

The averaging is carried out for velocities (\(u_i\)), velocity gradients (\(\partial u_i / \partial x_j\)), pressure (\(P\)), density (\(\rho\)), resolved turbulent kinetic energy (\(k_{res} = 0.5 u^>_i u^>_i\)) and the kinetic energy production \(\left( \mathcal{P}_k = \langle S_{ij} \rangle \left( \tau_{ij}^{SGRS} - u^>_i u^>_j \right) \right)\). Note that \(^>\) is used to denote a resolved fluctuation, i.e. \(\phi^> = \phi - \langle \phi \rangle\).

### 2.12.3. Dynamic Hybrid Diagnostics¶

Typically in a hybrid model, it is necessary to have diagnostics that assess the ability of the grid to resolve turbulent content and to aid in its introduction. In AMS, there are two main diagnostic quantities, \(\alpha = \beta^{1.7} = (1 - k_{res}/k_{tot})^{1.7}\) and a resolution adequacy parameter, \(r_k\), which is used to evaluate where in the flow the grid and the amount of resolved turbulent content is inconsistent.

\(\beta\) is a straight-forward calculation. Limiters are applied to \(\beta\) to realize the RANS and DNS limits. In the RANS limit, \(k_{res} = 0\) and thus \(\beta = 1\), so \(\beta\) is limited from evaluation above 1. In the DNS limit, ideally, the ratio of the approximate Kolmogorov velocity scale to total TKE would be used as a lower bound,

but that has shown some performance issues near the wall when using SST with AMS. Currently an adhoc lower bound of \(\beta = 0.01\) is used instead. The resolution adequacy parameter is based on the ratio between the anisotropic grid metric tensor, \(\mathcal{M} = \mathcal{J}^T J\), where \(\mathcal{J}\) is the mapping from a unit cube to the cell, and the length scale associated with the model production. It takes the form,

For the RANS models used in Nalu-Wind, \(\langle \overline{v}^2 \rangle \approx 5\nu_{RANS}/T_{RANS}\). \(\mathcal{P}_{ij}^{SGS} = \frac{1}{2} ( \tau_{ik} \partial \overline{u}_k / \partial x_j + \tau_{jk} \partial \overline{u}_k / \partial x_i)\) is the full subgrid production tensor, with \(\tau_{ij} = \tau_{ij}^{SGRS} + \tau_{ij}^{SGET} + \frac{2}{3} \alpha k_{tot} \delta_{ij}\).

### 2.12.4. Forcing Term¶

When the grid is capable of resolving some turbulent content, the model will want to reduce the modeled stress and allow for resolved turbulence to contribute the remaining piece of the total stress. As discussed in Haering et al. [HOM20] and the observation of “modeled-stress depletion” in other hybrid approaches, such as DES, a mechanism for inducing resolved turbulent fluctuations at proper energy levels and timescales to match your reduction of the modeled stress is needed. AMS resolves this issue through the use of an active forcing term, designed to introduce turbulent fluctuations into regions of the grid where turbulent content can be supported. The implications of the specific form and method of introduction for this forcing term is still an area of ongoing research, but for now, empirical testing has shown great success with a simple turbulent structure based off of Taylor-Green vortices.

The forcing term \(F_i\) is determined by first specifying an auxiliary field based off of a Taylor-Green vortex:

with \(\mathbf{x'} = \mathbf{x} + \langle \mathbf{u} \rangle t\) and \(a_i = \pi / \mathbb{P}_i\). \(\mathbb{P}\) is determined as follows,

where \(L_{p_i}\) is related to the periodic domain size and is user specified. With the initial TG vortex field, \(h_i\), determined, we now determine a scaling factor (\(\eta\)) for the forcing.

Now the final forcing field, \(F_i = \eta h_i\). Since this is
being added as a source term to the momentum solve, we
are not projecting onto a divergence free field and are instead
allowing that to pass into the continuity solve, where the
intermediate velocity field with the forcing will then be projected
onto a divergence free field. This is implemented in the node kernels as
*MomentumSSTAMSForcingNodeKernel*.

### 2.12.5. AMS with SST Mixing Length Limiter¶

When using AMS with SST as the mean (RANS) contribution to model the Atmospheric Boundary Layer with the Coriolis effect, SST should include a mixing length limiter. The mixing length limiter is described in SST Mixing Length Limiter. For consistency, when using the limiter the RANS time scale, \(T_{RANS}^*\), should depend on the mixing length rather than \(\omega\) to account for the effect of the limiter. The time scale becomes

## 2.13. Solid Stress¶

A fully implicit CVFEM (only) linear elastic equation is supported in the code base. This equation is either used for true solid stress prediction or for smoothing the mesh due to boundary mesh motion (either through fluid structure interaction (FSI) or prescribed mesh motion).

Consider the displacement for component i, \(u_i\) equation set,

where the Cauchy stress tensor, \(\sigma_{ij}\) assuming Hooke’s law is given by,

Above, the so-called Lame coefficients, Lame’s first parameter, \(\lambda\) (also known as the Lame modulus) and Lame’s second parameter, \(\mu\) (also known as the shear modulus) are provided as functions of the Young’s modulus, \(E\), and Poisson’s ratio, \(\nu\); here shown in the context of a isotropic elastic material,

and

Note that the above notation of \(u_i\) to represent displacement is with respect to the classic definition of current and model coordinates,

where \(x_i\) is the position, relative to the fixed, or previous position, \(X_i\).

The above equations are solved for mesh displacements, \(u_i\). The supplemental relationship for solid velocity, \(v_i\) is given by,

Numerically, the velocity might be obtained by a backward Euler or BDF2 scheme,

## 2.14. Moving Mesh¶

The code base supports three notions of moving mesh: 1) linear elastic equation system that computes the stress of a solid 2) solid body rotation mesh motion and 3) mesh deformation via an external source.

The linear elastic equation system is activated via the standard
equation system approach. Properties for the solid are specified in the
material block. Mesh motion is prescribed by the input file via the
`mesh_motion`

block. Here, it is assumed
that the mesh motion is solid rotation. For fluid/structure interaction
(FSI) a mesh smoothing scheme is used to propagate the surface mesh
displacement obtained by the solids solve. Simple mesh smoothing is
obtained via a linear elastic solve in which the so-called Lame
constants are proportional to the inverse of the dual volume. This
allows for boundary layer mesh locations to be stiff while free stream
mesh elements to be soft.

Additional mesh motion terms are required for the Eulerian fluid mechanics solve. Using the geometric conservative law the time and advection source term for a general scalar \(\phi\) can be written as:

where \(u_j\) is the fluid velocity and \(v_j\) is the mesh
velocity. Mesh velocities and the mesh velocity spatial derivatives are
provided by the mesh smoothing solve. Activating the external mesh
deformation or mesh motion block will result in the velocity relative to
mesh calculation in the advection terms. The line command for source
term, “\(gcl\)” must be activated for each equation for the volume
integral to be included in the set of PDE solves. Finally, transfers are
expected between the physics. For example, the solids solve is to
provide mesh displacements to the mesh smoothing realm. The mesh
smoothing procedure provides the boundary velocity, mesh velocity and
projected nodal gradients of the mesh velocity to the fluids realm.
Finally, the fluids solve is to provide the surface force at the desired
solids surface. Currently, the pressure is transferred from the fluids
realm to the solids realm. The ideal view of FSI is to solve the solids
pde at the half time step. As such, in time, the
\(P^{n+\frac{1}{2}}\) is expected. The
`fsi_interface`

input line command attribute is
expected to be set at these unique surfaces. More advanced FSI coupling
techniques are under development by a current academic partner.

## 2.15. Radiative Transport Equation¶

The spatial variation of the radiative intensity corresponding to a given direction and at a given wavelength within a radiatively participating material, \(I(s)\), is governed by the Boltzmann transport equation. In general, the Boltzmann equation represents a balance between absorption, emission, out-scattering, and in-scattering of radiation at a point. For combustion applications, however, the steady form of the Boltzmann equation is appropriate since the transient term only becomes important on nanosecond time scales which is orders of magnitude shorter than the fastest chemical.

Experimental data shows that the radiative properties for heavily sooting, fuel-rich hydrocarbon diffusion flames (\(10^{-4}\)% to \(10^{-6}\)% soot by volume) are dominated by the soot phase and to a lesser extent by the gas phase. Since soot emits and absorbs radiation in a relatively constant spectrum, it is common to ignore wavelength effects when modeling radiative transport in these environments. Additionally, scattering from soot particles commonly generated by hydrocarbon flames is several orders of magnitude smaller that the absorption effect and may be neglected. Moreover, the phase function is rarely known. However, for situations in which the phase function can be approximated by the iso-tropic scattering assumption, i.e., an intensity for direction \(k\) has equal probability to be scattered in any direction \(l\), the appropriate form of the Botzmann radiative transport is

where \(\mu_a\) is the absorption coeffiecient, \(\mu_s\) is the scattering coefficient, \(I(s)\) is the intensity along the direction \(s_i\), \(T\) is the temperature and the scalar flux is \(G\). The black body radiation, \(I_b\), is defined by \(\frac{\sigma T^4}{\pi}\). Note that for situations in which the scattering coefficient is zero, the RTE reduces to a set of linear, decoupled equations for each intensity to be solved.

The flux divergence may be written as a difference between the radiative emission and mean incident radiation at a point,

where \(G\) is again the scalar flux. The flux divergence term is the same regardless of whether or not scattering is active. The quantity, \(G/4\pi\), is often referred to as the mean incident intensity. Note that when the scattering coefficient is non-zero, the RTE is coupled over all intensity directions by the scalar flux relationship.

The scalar flux and radiative flux vector represent angular moments of the directional radiative intensity at a point,

where \(\theta_{zn}\) and \(\theta_{az}\) are the zenith and azimuthal angles respectively as shown in Figure Fig. 2.1.

The radiation intensity must be defined at all portions of the boundary along which \(s_i n_i < 0\), where \(n_i\) is the outward directed unit normal vector at the surface. The intensity is applied as a weak flux boundary condition which is determined from the surface properties and temperature. The diffuse surface assumption provides reasonable accuracy for many engineering combustion applications. The intensity leaving a diffuse surface in all directions is given by

where \(\epsilon\) is the total normal emissivity of the surface, \(\tau\) is the transmissivity of the surface, \(T_w\) is the temperature of the boundary, \(T_\infty\) is the environmental temperature and \(H\) is the incident radiation, or irradiation (incoming radiative flux). Recall that the relationship given by Kirchoff’s Law that relates emissivity, transmissivity and reflectivity, \(\rho\), is

where it is implied that \(\alpha = \epsilon\).

## 2.16. Wall Distance Computation¶

RANS and DES simulations using \(k-\omega\) SST or
SST-DES equations requires the specification of a *wall
distance* for computing various turbulence parameters. For static mesh
simulations this field can be generated using a pre-processing step and provided
as an input in the mesh database. However, for moving mesh simulations, e.g.,
blade resolved wind turbine simulations, this field must be computed throughout
the course of the simulation. Nalu-Wind implements a Poisson equation
([G03]) to determine the wall distance \(d\) using the
gradients of a field \(\phi\).