forked from arfc/moltres
-
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.
Merge pull request arfc#248 from smpark7/sa-model
Spalart-Allmaras turbulence model
- Loading branch information
Showing
98 changed files
with
4,992 additions
and
660 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
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
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,174 @@ | ||
# Theory and Methodology | ||
|
||
The *two-step procedure* is a common approach for multiphysics full-core nuclear reactor analysis. | ||
These steps are: | ||
|
||
+Step 1:+ Generate neutron group constant data with a lattice or full-core reactor model on a | ||
high-fidelity, continuous/fine-energy neutronics software at various reactor states. | ||
|
||
+Step 2:+ Use an intermediate-fidelity, computationally cheaper neutronics software with the | ||
neutron group constant data to perform multiphysics reactor analysis. | ||
|
||
Moltres falls under Step 2 of the two-step procedure. Moltres solves the conventional multigroup | ||
neutron diffusion and delayed neutron precursor equations. The precursor equations include | ||
precursor drift terms to account for precursor movement under molten salt flow. Moltres is built on | ||
the MOOSE finite element framework, enabling highly flexible and scalable reactor simulations. | ||
|
||
## Multigroup Neutron Diffusion | ||
|
||
More information to be added in future. | ||
|
||
## Heat Transfer and Fluid Flow | ||
|
||
Moltres compiles with the MOOSE | ||
[Navier-Stokes](https://mooseframework.inl.gov/modules/navier_stokes/index.html) and | ||
[Heat Transfer](https://mooseframework.inl.gov/modules/heat_transfer/index.html) modules for flow | ||
modeling capabilities by default. Moltres couples with these modules natively because they are all | ||
built on the MOOSE framework. | ||
|
||
Past work with Moltres have modeled incompressible salt flow and temperature advection-diffusion | ||
with the | ||
[INS or INSAD implementations](https://mooseframework.inl.gov/modules/navier_stokes/cgfe.html) of | ||
the Navier-Stokes equations [!citep](peterson_overview_2018). Coupling with the compressible or | ||
finite volume implementations within the Navier-Stokes module are likely possible, but have not | ||
been demonstrated yet. | ||
|
||
For turbulence modeling, Moltres has a Spalart-Allmaras (SA) turbulence model | ||
[!citep](spalart_one-equation_1992) implementation with streamline-upwind Petrov-Galerkin (SUPG) | ||
stabilization. On balance the SA model is a complete (does not require prior knowledge of the | ||
actual turbulence behavior) and computationally efficient turbulence model for approximating | ||
wall-bounded turbulent flows. The SA model implementation in Moltres is | ||
compatible with the INSAD implementation only. Additionally, Moltres contains turbulent diffusion | ||
physics kernels for temperature and the delayed neutron precursors. | ||
|
||
The SA model in Moltres follows the (SA-noft2-R) implementation as described on the NASA | ||
[Turbulence Modeling Resource](https://turbmodels.larc.nasa.gov/spalart.html) website. The $f_{t2}$ | ||
term is togglable using the `use_ft2_term` input parameter (false by default). Moltres' | ||
implementation solves for the modified dynamic viscosity $\tilde{\mu}$ which can be easily obtained | ||
using $\nu=mu/\rho$ to convert $\nu$ to $\mu$ as follows: | ||
|
||
!equation id=sa-equation | ||
\rho \frac{\partial\tilde{\mu}}{\partial t} + \rho \mathbf{u}\cdot\nabla\tilde{\mu} = \rho c_{b1} | ||
\left(1-f_{t2}\right)\tilde{S}\tilde{\mu} + \frac{1}{\sigma}\{\nabla\cdot\left[\left(\mu+ | ||
\tilde{\mu}\right)\nabla\tilde{\mu}\right] + c_{b2}|\nabla\tilde{\mu}|^2\} - \left(c_{w1}f_w - | ||
\frac{c_{b1}}{\kappa^2}f_{t2}\right)\left( | ||
\frac{\tilde{\mu}}{d}\right)^2 | ||
|
||
where | ||
|
||
!equation | ||
\mu_t = \tilde{\mu}f_{v1} = \text{turbulent eddy viscosity}, \hspace{4cm} | ||
f_{v1} = \frac{\chi^3}{\chi^3 + c_{v1}^3}, \hspace{4cm} | ||
\chi = \frac{\tilde{\mu}}{\mu}, \hspace{2cm} \\ \hspace{1cm} | ||
\tilde{S} = \Omega + \frac{\tilde{\nu}}{\kappa^2 d^2} f_{v2}, \hspace{6cm} | ||
f_{v2} = 1 - \frac{\chi}{1+\chi f_{v1}}, \hspace{2cm} | ||
\Omega = \sqrt{2W_{ij}W_{ij}} = \text{vorticity magnitude}, \\ | ||
W_{ij} = \frac{1}{2}\left(\frac{\partial u_i}{\partial x_j} - \frac{\partial u_j}{\partial x_i} | ||
\right), \hspace{5cm} | ||
f_w = g\left(\frac{1 + c_{w3}^6}{g^6 + c_{w3}^6}\right)^{1/6}, \hspace{3cm} | ||
g = r + c_{w2}\left(r^6 - r\right), \\ | ||
r = \text{min}\left(\frac{\tilde{\nu}}{\tilde{S}\kappa^2d^2}, 10\right), \hspace{5cm} | ||
f_{t2} = c_{t3} \exp{\left(-c_{t4}\chi^2\right)}, \hspace{6cm} | ||
|
||
and the constants are: | ||
|
||
!equation | ||
\sigma = \frac{2}{3}, \ c_{b1} = 0.1355, \ c_{b2} = 0.622, \ \kappa = 0.41, \ | ||
c_{w1} = \frac{c_{b1}}{\kappa^2} + \frac{1+c_{b2}}{\sigma}, \ c_{w2} = 0.3, \ c_{w3} = 2, \ | ||
c_{v1} = 7.1, \ c_{t3} = 1.2, \ c_{t4} = 0.5 \ \text{.} | ||
|
||
We performed simple verification and validation tests of the SA model in Moltres using reference | ||
problems for channel, pipe, and backward-facing step flow. The Moltres test dataset is available on | ||
[Zenodo](https://doi.org/10.5281/zenodo.10059649). The following subsections show plots comparing | ||
results from Moltres to reference data from literature. | ||
|
||
#### Turbulent Channel Flow Verification Test | ||
|
||
The channel flow test is based on the direct numerical simulation (DNS) of turbulent channel flow | ||
with $Re_\tau\approx395$ | ||
by [!cite](moser_direct_1999). The Moltres input file for this problem may be found in | ||
`moltres/problems/2023-basic-turbulence-cases/channel-flow/`. | ||
|
||
!media channel_vel.png | ||
id=channel-vel | ||
caption=Normalized velocity distribution across the channel. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media channel_nondim.png | ||
id=channel-nondim | ||
caption=Dimensionless velocity vs dimensionless wall distance. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media channel_stress.png | ||
id=channel-stress | ||
caption=Normalized stress distribution across the channel. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
#### Turbulent Pipe Flow Validation Test | ||
|
||
The pipe flow test is based on the turbulent pipe flow experiment with $Re\approx 40,000$ by | ||
[!cite](laufer_structure_1954). The Moltres input file for this problem may be found in | ||
`moltres/problems/2023-basic-turbulence-cases/pipe-flow/`. | ||
|
||
!media pipe_vel.png | ||
id=pipe-vel | ||
caption=Normalized velocity distribution across the pipe. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media pipe_nondim.png | ||
id=pipe-nondim | ||
caption=Dimensionless velocity vs dimensionless wall distance. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media pipe_stress.png | ||
id=pipe-stress | ||
caption=Normalized turbulent shear stress distribution across the channel. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
#### Backward-Facing Step Flow Validation Test | ||
|
||
The backward-facing step (BFS) flow test is based on the BFS flow experiment with $Re\approx | ||
36,000$ by | ||
[!cite](driver_features_1985). The Moltres input file for this problem may be found in | ||
`moltres/problems/2023-basic-turbulence-cases/pipe-flow/`. | ||
The SA model implementation in Moltres performs largely similarly to the reference SA model results | ||
provided on the [Turbulence Modeling Resource](https://turbmodels.larc.nasa.gov/spalart.html) | ||
website. | ||
|
||
!table caption=Flow reattachment length estimates (normalized by step height $H$) id=re-table | ||
| Reference experimental data | Reference SA model | Moltres | | ||
| :- | :- | :- | | ||
| $6.26 \pm 0.10$ | $6.1$ | $6.36$ | | ||
|
||
!media bfs_upstream_vel.png | ||
id=bfs-upstream-vel | ||
caption=Normalized velocity distribution at $x/H$ equal -4 (upstream of step). | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media bfs_downstream_vel.png | ||
id=bfs-downstream-vel | ||
caption=Normalized velocity distribution at various $x/H$ locations (downstream of step). | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media bfs_cf.png | ||
id=bfs-cf | ||
caption=Skin friction coefficient along the bottom wall. | ||
style=width:33%;padding:10px;float:left; | ||
|
||
!media bfs_cp.png | ||
id=bfs-cp | ||
caption=Skin pressure coefficient along the bottom wall. | ||
style=width:33%;padding:10px;margin-left:17%;float:left; | ||
|
||
!media bfs_stress.png | ||
id=bfs-stress | ||
caption=Normalized turbulent shear stress distribution at various $x/H$ locations | ||
(downstream of step). | ||
style=width:33%;padding:10px;margin-right:17%;float:left; | ||
|
||
!media bfs.png | ||
id=bfs | ||
caption=Close-up of the velocity magnitude and streamlines around the backward-facing step | ||
style=width:80%;float:left;margin-left:10%;margin-right:10%; | ||
|
||
!bibtex bibliography |
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,77 @@ | ||
|
||
@techreport{laufer_structure_1954, | ||
title = {The structure of turbulence in fully developed pipe flow}, | ||
url = {https://ntrs.nasa.gov/citations/19930092199}, | ||
abstract = {Measurements, principally with a hot-wire anemometer, were made in fully developed turbulent flow in a 10-inch pipe at speeds of approximately 10 and 100 feet per second. Emphasis was placed on turbulence and conditions near the wall. The results include relevant mean and statistical quantities, such as Reynolds stresses, triple correlations, turbulent dissipation, and energy spectra. It is shown that rates of turbulent-energy production, dissipation, and diffusion have sharp maximums near the edge of the laminar sublayer and that there exist a strong movement of kinetic energy away from this point and an equally strong movement of pressure energy toward it.}, | ||
urldate = {2023-10-30}, | ||
institution = {National Bureau of Standards}, | ||
author = {Laufer, John}, | ||
month = jan, | ||
year = {1954}, | ||
note = {NTRS Author Affiliations: | ||
NTRS Report/Patent Number: NACA-TR-1174 | ||
NTRS Document ID: 19930092199 | ||
NTRS Research Center: Legacy CDMS (CDMS)}, | ||
file = {19930092199.pdf:C\:\\Users\\Sun Myung\\Zotero\\storage\\L8SHCFP9\\Laufer - 1954 - The structure of turbulence in fully developed pip.pdf:application/pdf;Snapshot:C\:\\Users\\Sun Myung\\Zotero\\storage\\7U6SXNMA\\19930092199.html:text/html}, | ||
} | ||
|
||
@article{moser_direct_1999, | ||
title = {Direct numerical simulation of turbulent channel flow up to {Reτ}=590}, | ||
volume = {11}, | ||
issn = {1070-6631}, | ||
url = {https://doi.org/10.1063/1.869966}, | ||
doi = {10.1063/1.869966}, | ||
abstract = {Numerical simulations of fully developed turbulent channel flow at three Reynolds numbers up to Reτ=590 are reported. It is noted that the higher Reynolds number simulations exhibit fewer low Reynolds number effects than previous simulations at Reτ=180. A comprehensive set of statistics gathered from the simulations is available on the web at http://www.tam.uiuc.edu/Faculty/Moser/channel.}, | ||
number = {4}, | ||
urldate = {2023-10-30}, | ||
journal = {Physics of Fluids}, | ||
author = {Moser, Robert D. and Kim, John and Mansour, Nagi N.}, | ||
month = apr, | ||
year = {1999}, | ||
pages = {943--945}, | ||
file = {Full Text PDF:C\:\\Users\\Sun Myung\\Zotero\\storage\\R6IZTYHZ\\Moser et al. - 1999 - Direct numerical simulation of turbulent channel f.pdf:application/pdf;Snapshot:C\:\\Users\\Sun Myung\\Zotero\\storage\\NN9Z4VLF\\Direct-numerical-simulation-of-turbulent-channel.html:text/html}, | ||
} | ||
|
||
@article{driver_features_1985, | ||
title = {Features of a reattaching turbulent shear layer in divergent channelflow}, | ||
volume = {23}, | ||
issn = {0001-1452, 1533-385X}, | ||
url = {https://arc.aiaa.org/doi/10.2514/3.8890}, | ||
doi = {10.2514/3.8890}, | ||
language = {en}, | ||
number = {2}, | ||
urldate = {2022-01-17}, | ||
journal = {AIAA Journal}, | ||
author = {Driver, David M. and Seegmiller, H. Lee}, | ||
month = feb, | ||
year = {1985}, | ||
pages = {163--171}, | ||
file = {Driver and Seegmiller - 1985 - Features of a reattaching turbulent shear layer in.pdf:C\:\\Users\\Sun Myung\\Zotero\\storage\\PHD7NPMR\\Driver and Seegmiller - 1985 - Features of a reattaching turbulent shear layer in.pdf:application/pdf}, | ||
} | ||
|
||
@inproceedings{spalart_one-equation_1992, | ||
title = {A one-equation turbulence model for aerodynamic flows}, | ||
url = {https://arc.aiaa.org/doi/abs/10.2514/6.1992-439}, | ||
urldate = {2023-11-02}, | ||
booktitle = {30th {Aerospace} {Sciences} {Meeting} and {Exhibit}}, | ||
publisher = {American Institute of Aeronautics and Astronautics}, | ||
author = {Spalart, P. and Allmaras, S.}, | ||
month = jan, | ||
year = {1992}, | ||
doi = {10.2514/6.1992-439}, | ||
note = {\_eprint: https://arc.aiaa.org/doi/pdf/10.2514/6.1992-439}, | ||
} | ||
|
||
@article{peterson_overview_2018, | ||
title = {Overview of the {Incompressible} {Navier}-{Stokes} simulation capabilities in the {MOOSE} {Framework}}, | ||
volume = {119}, | ||
doi = {10.1016/j.advengsoft.2018.02.004}, | ||
abstract = {The Multiphysics Object Oriented Simulation Environment (MOOSE) framework is a high-performance, open source, C++ finite element toolkit developed at Idaho National Laboratory. MOOSE was created with the aim of assisting domain scientists and engineers in creating customizable, high-quality tools for multiphysics simulations. While the core MOOSE framework itself does not contain code for simulating any particular physical application, it is distributed with a number of physics "modules" which are tailored to solving e.g. heat conduction, phase field, and solid/fluid mechanics problems. In this report, we describe the basic equations, finite element formulations, software implementation, and regression/verification tests currently available in MOOSE's navier\_stokes module for solving the Incompressible Navier-Stokes (INS) equations.}, | ||
journal = {Advances in Engineering Software}, | ||
author = {Peterson, John and Lindsay, Alexander and Kong, Fande}, | ||
month = may, | ||
year = {2018}, | ||
keywords = {65N30, Mathematics - Numerical Analysis}, | ||
pages = {68--92}, | ||
file = {arXiv\:1710.08898 PDF:C\:\\Users\\Sun Myung\\Zotero\\storage\\PBHHJKCD\\Peterson et al. - 2017 - Overview of the Incompressible Navier-Stokes simul.pdf:application/pdf;arXiv.org Snapshot:C\:\\Users\\Sun Myung\\Zotero\\storage\\3RRL7ED2\\1710.html:text/html;Full Text PDF:C\:\\Users\\Sun Myung\\Zotero\\storage\\YGQ9TDMU\\Peterson et al. - 2018 - Overview of the Incompressible Navier-Stokes simul.pdf:application/pdf}, | ||
} |
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
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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,18 @@ | ||
# SATurbulentViscosityAux | ||
|
||
!syntax description /AuxKernels/SATurbulentViscosityAux | ||
|
||
## Overview | ||
|
||
This object computes the turbulent viscosity $\mu_t=\tilde{\mu}f_{v1}$ as described | ||
[here](theory.md). | ||
|
||
## Example Input File Syntax | ||
|
||
!! Describe and include an example of how to use the SATurbulentViscosityAux object. | ||
|
||
!syntax parameters /AuxKernels/SATurbulentViscosityAux | ||
|
||
!syntax inputs /AuxKernels/SATurbulentViscosityAux | ||
|
||
!syntax children /AuxKernels/SATurbulentViscosityAux |
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,18 @@ | ||
# TurbulentStressAux | ||
|
||
!syntax description /AuxKernels/TurbulentStressAux | ||
|
||
## Overview | ||
|
||
This object computes the turbulent stress $\nu_t\sqrt{2S_{ij}S_{ij}}$ under the Spalart-Allmaras | ||
model. | ||
|
||
## Example Input File Syntax | ||
|
||
!! Describe and include an example of how to use the TurbulentStressAux object. | ||
|
||
!syntax parameters /AuxKernels/TurbulentStressAux | ||
|
||
!syntax inputs /AuxKernels/TurbulentStressAux | ||
|
||
!syntax children /AuxKernels/TurbulentStressAux |
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,20 @@ | ||
# WallDistanceAux | ||
|
||
!syntax description /AuxKernels/WallDistanceAux | ||
|
||
## Overview | ||
|
||
This object computes the minimum distance of each mesh node to the nearest wall node. The wall | ||
distance calculation may be slightly inaccurate for unstructured or skewed structured meshes as | ||
illustrated on the [Turbulence Modeling Resource](https://turbmodels.larc.nasa.gov/spalart.html) | ||
webpage. | ||
|
||
## Example Input File Syntax | ||
|
||
!! Describe and include an example of how to use the WallDistanceAux object. | ||
|
||
!syntax parameters /AuxKernels/WallDistanceAux | ||
|
||
!syntax inputs /AuxKernels/WallDistanceAux | ||
|
||
!syntax children /AuxKernels/WallDistanceAux |
Oops, something went wrong.