forked from idaholab/moose
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adding documentation Refs idaholab#29846
- Loading branch information
Showing
11 changed files
with
278 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
113 changes: 113 additions & 0 deletions
113
modules/navier_stokes/doc/content/source/linearfvkernels/LinearFVTKEDSourceSink.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
# LinearFVTKEDSourceSink | ||
|
||
This kernel implements a version of [`INSFVTKEDSourceSink`](INSFVTKEDSourceSink.md) for a linear kernel. | ||
The documentation is repeated down here for completeness. | ||
|
||
The object computes the turbulent source and sink term for the turbulent kinetic energy dissipation rate equation. | ||
|
||
Two terms are computed: `destruction` and `production` and the term `destruction - production` is | ||
passed to the residual. | ||
A different treatment is used for the bulk and the near wall regions. | ||
|
||
## Bulk formulation: | ||
|
||
The production of turbulent kinetic energy dissipation $G_\epsilon$ is modeled as follows: | ||
|
||
\begin{equation} | ||
G_{\epsilon} = C_{1,\epsilon} \frac{\epsilon}{k} G_k \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $C_{1,\epsilon} = 1.44$ is a closure parameter, | ||
- $G_k$ is the limited turbulent kinetic energy production. For more details please refer to [LinearFVTKESourceSink](LinearFVTKESourceSink.md). | ||
|
||
The destruction of the turbulent kinetic energy dissipation rate is modeled as follows: | ||
|
||
\begin{equation} | ||
\epsilon_{\epsilon} = \frac{C_{2,\epsilon} \rho \epsilon}{t_k} \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $C_{2,\epsilon} = 1.92$ is a closure parameter, | ||
- $\epsilon$ is the solution variable, i.e., the dissipation rate of the turbulent kinetic energy, | ||
- $k$ is the turbulent kinetic energy, | ||
- $t_k = \frac{k}{\epsilon}$ is the turbulent time scale; if the [!param](/LinearFVKernels/LinearFVTKEDSourceSink/linearized_model) is `true`, this timescale is computed from the previous iteration; if [!param](/LinearFVKernels/LinearFVTKEDSourceSink/linearized_model) is `false`, in a nonlinear solve, this timescale is aded to the Jacobian. | ||
|
||
## Wall formulation: | ||
|
||
All cells in contact with a boundary identified in the [!param](/LinearFVKernels/LinearFVTKEDSourceSink/walls) list are applied a different | ||
treatment in which the equilibrium value for the $\epsilon = \epsilon_{eq}$ is set. | ||
A separate formulation is used for the `sub-laminar` and `logarithmic` boundary layers. | ||
The determination of whether the near-wall cell lies in the laminar or logarithmic region | ||
is performed via the non-dimensional wall distance $y^+$. | ||
The non-dimensional wall distance can be defined differently according to the | ||
[!param](/LinearFVKernels/LinearFVTKEDSourceSink/wall_treatment) parameter. | ||
|
||
The four formulations are described in more detail in [INSFVTurbulentViscosityWallFunction.md]. | ||
|
||
If an equilibrium [!param](/LinearFVKernels/LinearFVTKEDSourceSink/wall_treatment) is defined, i.e. `eq_newton`,`eq_incremental` or `eq_linearized`, the standard wall function formulations are used in which $y^+$ is found: | ||
|
||
\begin{equation} | ||
y^+ = \frac{\rho y_p u_{\tau}}{\mu} \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $\rho$ is the density, | ||
- $y_p$ is the distance from the wall to the centroid of the next-to-wall cell, | ||
- $u_{\tau}$ is the friction velocity, defined as $u_{\tau} = \sqrt{\frac{\tau_w}{\rho}}$ with $\tau_w$ the shear stress at the wall for which the condition is applied, | ||
- $\mu$ is the dynamic molecular viscosity. | ||
|
||
If a non-equilibrium [!param](/LinearFVKernels/LinearFVTKEDSourceSink/wall_treatment) is defined, i.e. `neq`, | ||
the $y^+$ is defined non-iteratively as follows: | ||
|
||
\begin{equation} | ||
y^+ = \frac{y_p \sqrt{\sqrt{C_{\mu}}k}}{\mu} \,, | ||
\end{equation} | ||
|
||
!alert note | ||
Using non-equilibrium wall functions is recommended for problems with recirculations and boundary layer detachment. However, using non-equilibrium wall functions will deteriorate results for standard problems such as flow developing over walls. | ||
|
||
The cells with $y^+ < 11.25$ belong to `sub-laminar` boundary layer. | ||
The ones belonging to the `logarithmic` boundary layer are those for which $y^+ \ge 11.25$. | ||
|
||
A different value is used for $\epsilon_{eq}$ in each of the two regions. | ||
For the `sub-laminar` boundary layer, the equilibrium value is determined as follows: | ||
|
||
\begin{equation} | ||
\epsilon_{eq} = 2 \frac{k \mu}{y_p^2}\,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $\mu_t$ is the turbulent dynamic viscosity. | ||
|
||
For the `logarithmic` boundary layer, the value is determined as follows: | ||
|
||
\begin{equation} | ||
\epsilon_{eq} = \frac{C_{\mu}^{0.75} \rho k^{1.5}}{\kappa y_p}\,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $\kappa = 0.4187$ is the von Kármán constant. | ||
|
||
!alert note | ||
When using wall functions, since the equilibrium value for $\epsilon$ is set in the cells near the wall, the user is recommended to deactivate advection and diffusion for those near wall cells. | ||
|
||
!alert note | ||
When the wall treatment is specified in this kernel, any boundary condition for $\epsilon$ will be ignored. | ||
In other words, there is no need to impose boundary conditions for $\epsilon$ when the wall treatment | ||
is specified in his kernel. | ||
|
||
!alert note | ||
When using near-wall treatment, we assume that the $\mu_t$ functor is computed by an object | ||
that performs near-wall treatment. Otherwise, the results obtained won't be physically correct. | ||
|
||
!syntax parameters /LinearFVKernels/LinearFVTKEDSourceSink | ||
|
||
!syntax inputs /LinearFVKernels/LinearFVTKEDSourceSink | ||
|
||
!syntax children /LinearFVKernels/LinearFVTKEDSourceSink |
126 changes: 126 additions & 0 deletions
126
modules/navier_stokes/doc/content/source/linearfvkernels/LinearFVTKESourceSink.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,126 @@ | ||
# LinearFVTKESourceSink | ||
|
||
This kernel implements a version of [`INSFVTKESourceSink`](INSFVTKESourceSink.md) for a linear kernel. | ||
The documentation is repeated down here for completeness. | ||
|
||
The object computes the turbulent source and sink term for the turbulent kinetic energy equation. | ||
|
||
Two terms are computed `destruction` = $\epsilon$ and `production` = $G_k$ and the term $\epsilon - G_k$ is | ||
passed to the residual. | ||
A different treatment is used for the bulk and the near wall regions. | ||
|
||
## Bulk formulation: | ||
|
||
The turbulent production $G_k$ is modeled as: | ||
|
||
\begin{equation} | ||
G_k = \mu_t S^2 \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $\mu_t$ is the turbulent dynamic viscosity, | ||
- $S$ is the shear strain tensor internal norm, defined as $S = \sqrt{2\mathbf{S}:\mathbf{S}}$ with the shear strain tensor defined as $\mathbf{S} = \frac{1}{2} [\nabla \vec{u} + (\nabla \vec{u})^T]$. | ||
|
||
The turbulent kinetic energy dissipation rate $\epsilon$ is generally coming from a coupled | ||
transport equation for $\epsilon$. | ||
However, for canonical or measured cases, e.g., isotropic decaying turbulence, | ||
the user can utilize predefined fields through functors in MOOSE. | ||
|
||
To avoid the overproduction of turbulent kinetic energy in stagnation zones \cite{durbin1996k}, a production limiter is imposed in relation to the dissipation using the formulation in \cite{menter1994two}: | ||
|
||
\begin{equation} | ||
G_k = min \left( G_k , C_{PL} \rho \epsilon \right) \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $C_{PL}$ it the limiter constant, and set by default to a recommended value of 10 \cite{durbin1996k}. | ||
|
||
## Wall formulation: | ||
|
||
All cells in contact with a boundary identified in the [!param](/LinearFVKernels/LinearFVTKESourceSink/walls) list are applied a different | ||
treatment for production and destruction. | ||
A different formulation is used for the `sub-laminar` and `logarithmic` boundary layers. | ||
The determination of whether the near-wall cell lies in the laminar or logarithmic region | ||
is performed via the non-dimensional wall distance $y^+$. | ||
The non-dimensional wall distance is defined as | ||
|
||
\begin{equation} | ||
y^+ = \frac{\rho y_p u_{\tau}}{\mu} \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $\rho$ is the density, | ||
- $y_p$ is the distance to the wall to the centroid of the next-to-wall cell, | ||
- $u_{\tau}$ is the friction velocity, defined as $u_{\tau} = \sqrt{\frac{\tau_w}{\rho}}$ with $\tau_w$ the shear stress at the wall for which the condition is applied, | ||
- $\mu$ is the dynamic molecular viscosity. | ||
|
||
For every next-to-wall cell and every iteration step, $y^+$ is found via an | ||
incremental fixed-point search algorithm. | ||
The cells belonging to the `sub-laminar` boundary layers are defined as those | ||
for which $y^+ < 11.25$. | ||
The ones belonging to the `logarithmic` boundary layer are those for which $y^+ \ge 11.25$. | ||
The imposed threshold of $y^+ = 11.25$ is given by the value of $y^+$ at which the `sub-laminar` | ||
and `logarithmic` boundary profiles intersect. | ||
|
||
In the `sub-laminar` region production of turbulent kinetic energy is negligible, therefore, if $y^+ \lt 11.25$: | ||
|
||
\begin{equation} | ||
G_k = 0.0 \,, | ||
\end{equation} | ||
|
||
In the `logarithmic` boundary layers the production term is no longer negligible and is defined as: | ||
|
||
\begin{equation} | ||
G_k = \tau_w ||\nabla \vec{u}|| = \mu_w ||\nabla \vec{u}|| \frac{ C_{\mu}^{0.25} \sqrt(k)}{\kappa y_p} \,, | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $C_{\mu} = 0.09$ is a closure parameter, | ||
- $k$ is the turbulent kinetic energy, | ||
- $||\nabla \vec{u}||$ is the near wall velocity gradient norm, which is defined as $||\nabla \vec{u}|| = (\nabla \vec{u} \cdot \hat{n}) \cdot \hat{n}$, | ||
- $\kappa = 0.41$ is the von Kármán constant. | ||
|
||
The formulation assumes that the near wall value is already imposed in the $\mu_t$ functor. | ||
|
||
When solving a linear problem, instead of the nonlinear formulation, the production term is formulated as: | ||
|
||
\begin{equation} | ||
G_k = \mu_w ||\nabla \vec{u}|| \frac{ C_{\mu}^{0.25} k}{\sqrt{k_{old}} \kappa y_p} \,. | ||
\end{equation} | ||
|
||
where: | ||
|
||
- $k_{old}$ is the value of the turbulent kinetic energy in the previous iteration. | ||
|
||
For the destruction, formulation is different for the `sub-laminar` and `logarithmic` layers. | ||
For the `sub-laminar` layer, the destruction is defined as follows: | ||
|
||
\begin{equation} | ||
\epsilon = \frac{2 \mu k}{y_p ^2} \,. | ||
\end{equation} | ||
|
||
For the `logarithmic` layer, the destruction is defined as follows: | ||
|
||
\begin{equation} | ||
\epsilon = C_{\mu}^{0.75} \frac{\rho k^{\frac{3}{2}}}{\kappa y_p} \,. | ||
\end{equation} | ||
|
||
!alert note | ||
When the wall treatment is specified in this kernel, any boundary condition for $k$ will be ignored. | ||
In other words, there is no need to impose boundary conditions for $k$ when the wall treatment | ||
is specified in his kernel. | ||
|
||
!alert note | ||
When using near-wall treatment, we assume that the $\mu_t$ functor is computed by an object | ||
that performs near-wall treatment. | ||
Otherwise, the results obtained won't not physically correct | ||
|
||
!syntax parameters /LinearFVKernels/LinearFVTKESourceSink | ||
|
||
!syntax inputs /LinearFVKernels/LinearFVTKESourceSink | ||
|
||
!syntax children /LinearFVKernels/LinearFVTKESourceSink |
19 changes: 19 additions & 0 deletions
19
..._stokes/doc/content/source/linearfvkernels/LinearFVTurbulentLimitedAdvection.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# LinearFVTurbulentLimitedAdvection | ||
|
||
This object adds a $\nabla \cdot \vec u \phi$ term for an arbitrary scalar field | ||
$\phi$, where $\phi$ corresponds to the nonlinear variable that this kernel acts | ||
on. This kernel acts in a linear solve. | ||
The linear `variable` can be of type `MooseLinearVariableFVReal`. | ||
|
||
The particularity of this kernel is that it allows us to skip computing advection | ||
for near-wall elements. The key for this skip are the boundaries identified in | ||
the [!param](/LinearFVKernels/LinearFVTurbulentLimitedAdvection/walls) list. | ||
For any element that is in contact with a boundary identified | ||
in the [!param](/LinearFVKernels/LinearFVTurbulentLimitedAdvection/walls) list, | ||
advection will be skipped for that element over all faces. | ||
|
||
!syntax parameters /LinearFVKernels/LinearFVTurbulentLimitedAdvection | ||
|
||
!syntax inputs /LinearFVKernels/LinearFVTurbulentLimitedAdvection | ||
|
||
!syntax children /LinearFVKernels/LinearFVTurbulentLimitedAdvection |
17 changes: 17 additions & 0 deletions
17
..._stokes/doc/content/source/linearfvkernels/LinearFVTurbulentLimitedDiffusion.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# LinearFVTurbulentLimitedDiffusion | ||
|
||
This object extends [`LinearFVDiffusion`](LinearFVDiffusion.md) to allow diffusion to be skipped | ||
at certain boundaries. | ||
|
||
The particularity of this kernel is that it allows us to skip computing diffusion | ||
for near-wall elements. The key for this skip are the boundaries identified in | ||
the [!param](/LinearFVKernels/LinearFVTurbulentLimitedDiffusion/walls) list. | ||
For any element that is in contact with a boundary identified | ||
in the [!param](/LinearFVKernels/LinearFVTurbulentLimitedDiffusion/walls) list, | ||
diffusion contributions will be skipped for that element over all faces. | ||
|
||
!syntax parameters /LinearFVKernels/LinearFVTurbulentLimitedDiffusion | ||
|
||
!syntax inputs /LinearFVKernels/LinearFVTurbulentLimitedDiffusion | ||
|
||
!syntax children /LinearFVKernels/LinearFVTurbulentLimitedDiffusion |
Binary file modified
BIN
+80 Bytes
(100%)
...s/finite_volume/ins/turbulence/bfs/linear-segregated-transient/gold/BFS_ERCOFTAC_exodus.e
Binary file not shown.
Binary file added
BIN
+161 KB
...ts/finite_volume/ins/turbulence/bfs/linear-segregated-transient/gold/BFS_ERCOFTAC_short.e
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file added
BIN
+143 KB
...ite_volume/ins/turbulence/channel/linear-segregated-transient/gold/channel_ERCOFTAC_out.e
Binary file not shown.
Binary file added
BIN
+141 KB
...e_volume/ins/turbulence/channel/linear-segregated-transient/gold/channel_ERCOFTAC_short.e
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters