\(k-\varepsilon\)
\(k-\varepsilon\) closure parameters, states and computation functions.
This module contains the implementation of the \(k-\varepsilon\) model
described as a GLS case as in [1] as a Closure instance. The
model was traduced from Frotran to JAX with the work of Florian Lemarié and
Manolis Perrot [2], the translation was done in part using the work of Anthony
Zhou, Linnia Hawkins and Pierre Gentine [3]. The parameters of the closure are
available in the KepsParameters class, the closure state in
KepsState class. The function keps_step compute one time-step
of the closure, which means that it computes the eddy-diffusivity and
viscosity. The module contains other functions that are used by this main one.
These classes and the function step can be obtained by the prefix
tunax.closures.k_epsilon or directly by tunax.closures.
References
- class KepsParameters(c1=5.0, c2=0.8, c3=1.968, c4=1.136, c5=0.0, c6=0.4, cb1=5.95, cb2=0.6, cb3=1.0, cb4=0.0, cb5=0.3333, cbb=0.72, c_mu0=0.5477, sig_k=1.0, sig_eps=1.3, c_eps1=1.44, c_eps2=1.92, c_eps3m=-0.4, c_eps3p=1.0, chk_grav=1400.0, galp=0.53, z0s_min=0.01, z0b_min=0.01, z0b=1e-14, akt_min=1e-05, akv_min=0.0001, tke_min=1e-06, eps_min=1e-12, c_mu_min=0.1, c_mu_prim_min=0.1, dir_sfc=False, dir_btm=True, gls_p=3, gls_m=1.5, gls_n=-1)[source]
Parameters and constants for \(k-\varepsilon\).
The first 17 attributes are the parameters of \(k-\varepsilon\) that may be calibrated. This class also contains some physical constants used in the closure computing. The last 19 attributes are the one for the stability function that are computed from the parameters of \(k-\varepsilon\).
- Parameters:
c1 (float, default=5.) – cf. attribute.
c2 (float, default=0.8) – cf. attribute.
c3 (float, default=1.968) – cf. attribute.
c4 (float, default=1.136) – cf. attribute.
c5 (float, default=0.) – cf. attribute.
c6 (float, default=0.4) – cf. attribute.
cb1 (float, default=5.95) – cf. attribute.
cb2 (float, default=.6) – cf. attribute.
cb3 (float, default=1.) – cf. attribute.
cb4 (float, default=0.) – cf. attribute.
cb5 (float, default=0.3333) – cf. attribute.
cbb (float, default=.72) – cf. attribute.
c_mu0 (float, default=0.5477) – cf. attribute.
sig_k (float, default=1.) – cf. attribute.
sig_eps (float, default=1.3) – cf. attribute.
c_eps1 (float, default=1.44) – cf. attribute.
c_eps2 (float, default=1.92) – cf. attribute.
c_eps3m (float, default=-0.4) – cf. attribute.
c_eps3p (float, default=1.) – cf. attribute.
chk_grav (float, default=1400.) – cf. attribute.
galp (float, default=0.53) – cf. attribute.
z0s_min (float, default=1e-2) – cf. attribute.
z0b_min (float, default=1e-4) – cf. attribute.
z0b (float, default=1e-14) – cf. attribute.
akt_min (float, default=1e-4) – cf. attribute.
akt_min – cf. attribute.
tke_min (float, default=1e-6) – cf. attribute.
eps_min (float, default=1e-12) – cf. attribute.
c_mu_min (float, default=0.1) – cf. attribute.
c_mu_prim_min (float, default=0.1) – cf. attribute.
dir_sfc (bool, default=False) – cf. attribute.
dir_btm (bool, default=True) – cf. attribute.
gls_p (float, default=3) – cf. attribute.
gls_m (float, default=1.5) – cf. attribute.
gls_n (float, default=-1) – cf. attribute.
akv_min (float)
- c1
\(k-\varepsilon\) parameter \(c_1\) for the dissipation of the corelation tensor pressure/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=5.
- c2
\(k-\varepsilon\) parameter \(c_2\) for the dissipation of the corelation tensor pressure/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=0.8
- c3
\(k-\varepsilon\) parameter \(c_3\) for the dissipation of the corelation tensor pressure/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.968
- c4
\(k-\varepsilon\) parameter \(c_4\) for the dissipation of the corelation tensor pressure/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.136
- c5
\(k-\varepsilon\) parameter \(c_5\) for the dissipation of the corelation tensor pressure/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=0.
- c6
\(k-\varepsilon\) parameter \(c_6\) for the dissipation of the corelation tensor pressure/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=0.4
- cb1
\(k-\varepsilon\) parameter \(c_{b1}\) for the dissipation of the corelation tensor buoyancy/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=5.95
- cb2
\(k-\varepsilon\) parameter \(c_{b2}\) for the dissipation of the corelation tensor buoyancy/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=.6
- cb3
\(k-\varepsilon\) parameter \(c_{b3}\) for the dissipation of the corelation tensor buoyancy/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.
- cb4
\(k-\varepsilon\) parameter \(c_{b4}\) for the dissipation of the corelation tensor buoyancy/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=0.
- cb5
\(k-\varepsilon\) parameter \(c_{b5}\) for the dissipation of the corelation tensor buoyancy/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=0.3333
- cbb
\(k-\varepsilon\) parameter \(c_{b}\) for the dissipation of the corelation tensor buoyancy/velocity (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=.72
- c_mu0
\(k-\varepsilon\) parameter \(c_\mu^0\) which links the mixing length to the dissipation (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=0.5477
- sig_k
\(k-\varepsilon\) parameter \(\sigma_k\) Schmit number for the dissipation of TKE (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.
- sig_eps
\(k-\varepsilon\) parameter \(\sigma_\varepsilon\) Schmit number for the dissipation of \(\varepsilon\) (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.3
- c_eps1
\(k-\varepsilon\) parameter \(c_{\varepsilon 1}\) correction of the \(\varepsilon\) equation (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.44
- c_eps2
\(k-\varepsilon\) parameter \(c_{\varepsilon 2}\) correction of the \(\varepsilon\) equation (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.92
- c_eps3m
\(k-\varepsilon\) parameter \(c_{\varepsilon 3}^-\) correction of the \(\varepsilon\) equation (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=-0.4
- c_eps3p
\(k-\varepsilon\) parameter \(c_{\varepsilon 3}^+\) correction of the \(\varepsilon\) equation (Umlauf and Burchard notations) \([\text{dimensionless}]\).
- Type:
float, default=1.
- galp
Parameter for Galperin mixing length limitation \([\text{dimensionless}]\).
- Type:
float, default=0.53
- akt_min
Minimal and initialization value of eddy-diffusivity \(\left[\text m^2 \cdot \text s^{-1} \right]\).
- Type:
float, default=1e-5
- akv_min
Minimal and initialization value of eddy-viscosity \(\left[\text m^2 \cdot \text s^{-1} \right]\).
- Type:
float, default=1e-4
- tke_min
Minimal and initialization value of turbulent kinetic energy (TKE) \(\left[\text m^3 \cdot \text s^{-2} \right]\).
- Type:
float, default=1e-6
- eps_min
Minimal and initialization value of TKE dissipation \(\left[\text m^2 \cdot \text s^{-3} \right]\).
- Type:
float, default=1e-12
- c_mu_min
Minimal and initialization value of \(c_\mu\) in GLS formalisim \([\text{dimensionless}]\).
- Type:
float, default=0.1
- c_mu_prim_min
Minimal and initialization value of c_mu’ in GLS formalisim \([\text{dimensionless}]\).
- Type:
float, default=0.1
- dir_sfc
Apply a Dirichlet boundary condition at the surface for TKE, else apply a Neumann boundary condition.
- Type:
bool, default=False
- dir_btm
Apply a Dirichlet boundary condition at the bottom for TKE, else apply a Neumann boundary condition.
- Type:
bool, default=True
- gls_p
GLS coefficient \(p\) to define \(k-\varepsilon\) \([\text{dimensionless}]\).
- Type:
float, default=3
- gls_m
GLS coefficient \(m\) to define \(k-\varepsilon\) \([\text{dimensionless}]\).
- Type:
float, default=1.5
- gls_n
GLS coefficient \(n\) to define \(k-\varepsilon\) \([\text{dimensionless}]\).
- Type:
float, default=-1
- sf_d0
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_d1
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_d2
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_d3
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_d4
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_d5
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_n0
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_n1
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_n2
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_nb0
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_nb1
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- sf_nb2
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- lim_am0
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- lim_am1
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- lim_am2
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- lim_am3
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- lim_am4
Limitation coefficient for \(k-\varepsilon\) computed from the parameters \([\text{dimensionless}]\).
- Type:
float (not a parameter, computed from the above attributes)
- class KepsState(grid, keps_params)[source]
Define the state of the water column for the \(k-\varepsilon\) model.
The first initilisation is done from the minimal values of the different variables given in an instance of :class:’KepsParameters`.
- Parameters:
grid (Grid) – cf. attribute.
keps_params (KepsParameters) – Used to define the initialization values of the variables.
- grid
Geometry of the water column, should be the same than for the
Stateinstance used in the model.- Type:
- akt
Eddy-diffusivity on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-1}\right]\).
- Type:
Float[Array, ‘nz+1’]
- akv
Eddy-viscosity on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-1}\right]\).
- Type:
Float[Array, ‘nz+1’]
- tke
Turbulent kinetic energy (TKE) denoted \(k\) on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-2}\right]\).
- Type:
Float[Array, ‘nz+1’]
- eps
TKE dissipation denoted \(\varepsilon\) on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
- Type:
Float[Array, ‘nz+1’]
- keps_step(state, keps_state, dt, keps_params, case)[source]
Run one time-step of the \(k-\varepsilon\) closure.
The purpose of this function is to get the eddy-diffusivity and eddy-viscosity at the next time-step. It works in 3 steps
The Brunt–Väisälä frequency and the shear is computed from the
stateand the boundary conditions are computed.The equations on \(k\) and \(\varepsilon\) are solved and their values are computed for the next time step.
The eddy-diffusivity and viscosity are computed as diagnostic variables and the \(keps_state\) is updated.
- Parameters:
state (State) – Current state of the water column.
keps_state (KepsState) – Current state of the water column for the variables used by \(k-\varepsilon\).
dt (float) – Time-step of the forward model \([\text s]\).
keps_params (KepsParameters) – Values of the parameters used by \(k-\varepsilon\) (time- independant).
case (Case) – Physical parameters and forcings of the model run.
- Returns:
keps_state – State of the water column for the variables used by \(k-\varepsilon\) at the next time-step.
- Return type:
Note
This function is jitted with JAX, it should make it faster, but the
jit()decorator can be removed.
- compute_rho_eos(t, s, zr, case)[source]
Compute density anomaly and Brunt–Väisälä frequency.
Prognostic computation via linear Equation Of State (EOS) :
\(\rho = \rho_0(1-\alpha (T-T_0) + \beta (S-S_0))\)
\(N^2 = - \dfrac g {\rho_0} \partial_z \rho\)
- Parameters:
t (Float[Array, 'nz']) – Temperature on the center of the cells \([° \text C]\).
s (Float[Array, 'nz']) – Salinity on the center of the cells \([\text{psu}]\).
zr (Float[Array, 'nz']) – Depths of cell centers from deepest to shallowest \([\text m]\)
case (Case) – Physical parameters and forcings of the model run.
- Return type:
Tuple[Float[Array, 'nz+1'],Float[Array, 'nz']]- Returns:
bvf (Float[Array, ‘nz+1’]) – Brunt–Väisälä frequency squared \(N^2\) on cell interfaces \(\left[\text s^{-2}\right]\).
rho (Float[Array, ‘nz’]) – Density anomaly \(\rho\) on cell interfaces \(\left[\text {kg} \cdot \text m^{-3}\right]\)
- compute_shear(u_n, v_n, u_np1, v_np1, zr)[source]
Compute shear production term for TKE equation.
The prognostic equations are
\(S_h^2 = \partial_Z U^n \cdot \partial_z U^{n+1/2}\)
where \(U^{n+1/2}\) is the mean between \(U^n\) and \(U^{n+1}\).
- Parameters:
u_n (Float[Array, 'nz']) – Current zonal velocity on the center of the cells \(\left[\text m \cdot \text s^{-1}\right]\).
v_n (Float[Array, 'nz']) – Current meridional velocity on the center of the cells \(\left[\text m \cdot \text s^{-1}\right]\).
u_np1 (Float[Array, 'nz']) – Zonal velocity on the center of the cells at the next time step \(\left[\text m \cdot \text s^{-1}\right]\).
v_np1 (Float[Array, 'nz']) – Meridional velocity on the center of the cells at the next time step \(\left[\text m \cdot \text s^{-1}\right]\).
zr (Float[Array, 'nz']) – Depths of cell centers from deepest to shallowest \([\text m]\)
- Returns:
shear2 – Shear production squared \(S_h^2\) on cell interfaces \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
- Return type:
Float[Array, ‘nz+1’]
- compute_tke_eps_bc(tke, hz, keps_params, case)[source]
Compute top and bottom boundary conditions for TKE and \(\varepsilon\).
- Parameters:
tke (Float[Array, 'nz+1']) – Turbulent kinetic energy (TKE) denoted \(k\) on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-2}\right]\).
hz (Float[Array, 'nz']) – Thickness of cells from deepest to shallowest \([\text m]\).
keps_params (KepsParameters) – Values of the parameters used by \(k-\varepsilon\).
case (Case) – Physical parameters and forcings of the model run.
- Return type:
- Returns:
tke_sfc_bc (float) – TKE value for surface boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-2}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-3}\right]\)).
tke_btm_bc (float) – TKE value for bottom boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-2}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-3}\right]\)).
eps_sfc_bc (float) – \(\varepsilon\) value for surface boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-3}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-4}\right]\)).
eps_btm_bc (float) – \(\varepsilon\) value for surface boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-3}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-4}\right]\)).
Note
The kind of boundary conditions between Neumann and Dirichlet are register in the parameters
keps_params.
- advance_turb(akt, akv, tke, tke_np1, eps, c_mu, c_mu_prim, bvf, shear2, hz, dt, tke_sfc_bc, tke_btm_bc, eps_sfc_bc, eps_btm_bc, keps_params, do_tke)[source]
Integrate TKE or \(\varepsilon\) quantities.
First the shear and buoyancy production are computed, then they are used in the building of the tridiagonal problem, the boundary conditions are then added and finally the tridiagonal problem is solved.
- Parameters:
akt (Float[Array, 'nz+1']) – Current eddy-diffusivity on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-1}\right]\).
akv (Float[Array, 'nz+1']) – Current eddy-viscosity on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-1}\right]\).
tke (Float[Array, 'nz+1']) – Current turbulent kinetic energy (TKE) denoted \(k\) on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-2}\right]\).
tke_np1 (Float[Array, 'nz+1']) – Turbulent kinetic energy (TKE) denoted \(k\) on the interfaces of the cells at next step (usefull only for \(\varepsilon\) integration) \(\left[\text m ^2 \cdot \text s ^{-2}\right]\).
eps (Float[Array, 'nz+1']) – Current TKE dissipation denoted \(\varepsilon\) on the interfaces of the cells \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
c_mu (Float[Array, 'nz+1']) – Current \(c_\mu\) in GLS formalisim on the interfaces of the cells \([\text{dimensionless}]\).
c_mu_prim (Float[Array, 'nz+1']) – Current \(c_\mu'\) in GLS formalisim on the interfaces of the cells \([\text{dimensionless}]\).
bvf (float(nz+1)) – Current Brunt–Väisälä frequency squared \(N^2\) on cell interfaces \(\left[\text s^{-2}\right]\).
shear2 (Float[Array, 'nz+1']) – Current shear production squared \(S_h^2\) on cell interfaces \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
hz (Float[Array, 'nz']) – Thickness of cells from deepest to shallowest \([\text m]\).
dt (float) – Time-step of the forward model \([\text s]\).
tke_sfc_bc (float) – TKE value for surface boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-2}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-3}\right]\)).
tke_btm_bc (float) – TKE value for bottom boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-2}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-3}\right]\)).
eps_sfc_bc (float) – \(\varepsilon\) value for surface boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-3}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-4}\right]\)).
eps_btm_bc (float) – \(\varepsilon\) value for surface boundary condition (Dirichlet \(\left[\text m ^2 \cdot \text s ^{-3}\right]\) or Neumann \(\left[\text m ^3 \cdot \text s ^{-4}\right]\)).
keps_params (KepsParameters) – Values of the parameters used by \(k-\varepsilon\).
do_tke (bool) – If
Truesolve the equation for TKE, else for \(\varepsilon\).
- Returns:
vec – TKE or \(\varepsilon\) at next step (depending on
do_tke).- Return type:
Float[Array, ‘nz+1’]
- compute_diag(tke, eps, bvf, shear2, keps_params)[source]
Computes the diagnostic variables of \(k-\varepsilon\) closure.
This function first apply the Galperin limitation, then it computes \(c_\mu'\) and \(c_\mu\) with the stability function, and finally it computes the eddy-diffusivity and viscosity with these variables.
- Parameters:
tke (Float[Array, 'nz+1']) – Turbulent kinetic energy (TKE) denoted \(k\) on the interfaces of the cells at next step \(\left[\text m ^2 \cdot \text s ^{-2}\right]\).
eps (Float[Array, 'nz+1']) – TKE dissipation denoted \(\varepsilon\) on the interfaces of the cells at next step \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
bvf (Float[Array, 'nz+1']) – Current Brunt–Väisälä frequency squared \(N^2\) on cell interfaces \(\left[\text s^{-2}\right]\).
shear2 (Float[Array, 'nz+1']) – Current shear production squared \(S_h^2\) on cell interfaces \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
keps_params (KepsParameters) – Values of the parameters used by \(k-\varepsilon\).
- Return type:
Tuple[Float[Array, 'nz+1'],Float[Array, 'nz+1'],Float[Array, 'nz+1'],Float[Array, 'nz+1'],Float[Array, 'nz+1']]- Returns:
akt (Float[Array, ‘nz+1’]) – Eddy-diffusivity on the interfaces of the cells at next step \(\left[\text m ^2 \cdot \text s ^{-1}\right]\).
akv (Float[Array, ‘nz+1’]) – Eddy-viscosity on the interfaces of the cells at next step \(\left[\text m ^2 \cdot \text s ^{-1}\right]\).
eps (Float[Array, ‘nz+1’]) – TKE dissipation denoted \(\varepsilon\) on the interfaces of the cells at next step \(\left[\text m ^2 \cdot \text s ^{-3}\right]\).
c_mu (Float[Array, ‘nz+1’]) – \(c_\mu\) in GLS formalisim on the interfaces of the cells at next step \([\text{dimensionless}]\).
c_mu_prim (Float[Array, ‘nz+1’]) – \(c_\mu'\) in GLS formalisim on the interfaces of the cells at next step \([\text{dimensionless}]\).