Skip to content
Snippets Groups Projects
Commit de4dc27e authored by Pierre Augier's avatar Pierre Augier
Browse files

2022strat_turb_toro: more methods

parent 05b74fae
No related branches found
No related tags found
1 merge request!72022strat_turb_toro: text
......@@ -107,6 +107,9 @@
\newcommand{\bv}{Brunt-V\"ais\"al\"a }
\newcommand{\kmax}{k_{\max}}
\newcommand{\Ivelo}{I_{\text{velo}}}
\newcommand{\Idiss}{I_{\text{diss}}}
\newcommand{\todo}[1]{\textcolor{red}{TODO: #1}}
% fix an incompatibility between lineno and align
......@@ -192,13 +195,14 @@
k_x$ are truncating to limit aliasing. The precise shape of the truncation actually
corresponds to the Fluidsim parameter
\mintinline{python}{params.oper.truncation_shape="no_multiple_aliases"}. (ii) All shear
modes (i.e. modes for which $|\mathbf{k_h}| = 0$) are truncated (Fluidsim parameter
\mintinline{python}{params.oper.NO_SHEAR_MODES = True}). If we do not truncate them,
they tend to grow very slowly and the simulations do not really reach a statistically
stationary flow. This was observed in many numerical studies of stratified turbulence
[TODO citations]. A quasi statistically stationary is finally reached with very strong
shear modes dominated the dynamics. All other structures at other scales are strongly
distorted by the shear modes.
modes (i.e.\ modes for which $|\mathbf{k_h}| = 0$) are truncated (Fluidsim
parameter \mintinline{python}{params.oper.NO_SHEAR_MODES = True}). If we do not
truncate them, they tend to grow very slowly and the simulations do not really reach a
statistically stationary flow. This was observed in many numerical studies of
stratified turbulence \cite[for example,]{brethouwer_billant_lindborg_chomaz_2007,
augier2015stratified, Maffioli2016mixing}. A quasi statistically stationary is finally
reached with very strong shear modes dominated the dynamics. All other structures at
other scales are strongly distorted by the shear modes.
Finally, (iii) vertically invariant vertical velocity (corresponding to internal waves
at $\omega = N$) is also forbidden (\mintinline{python}{params.no_vz_kz0 = True}). Note
......@@ -208,7 +212,8 @@
The forcing term $\ff_{\text{toro}}$ is a large scale ($k_z = 0$ and $3 \leq k_h/\delta
k_h \leq 5$) time correlated toroidal forcing computed in spectral space such that the
kinetic energy injection rate $P_K$ is constant and equal to unity. The exact method to
normalize the injection rate correspond to the Fluidsim parameter
normalize the injection rate \cite[]{Maffioli2016mixing, AugierMohananLinborg2019}
corresponds to the Fluidsim parameter
\mintinline{python}{params.forcing.normalized.type = "2nd_degree_eq"}. In physical
space, large columnar vortices of horizontal length scale of typically $L_f = 1$
associated with vertical vorticity are constantly forced. In few time units, a
......@@ -230,6 +235,6 @@
F_{hi}^2$. The input Reynolds number is thus computed as $Re_i = \R_i N^2$.
For some couple $(N,\ \R_i)$ for quite large $N$ and $\R_i$, the required
resolution for proper DNS become too large. To decrease the computational cost of the
comprehensive dataset, we use three ...
resolution for proper DNS become very large. To decrease the computational cost of the
comprehensive dataset, we use three compromises.
......@@ -235,6 +240,7 @@
The aspect ratio of the numerical domain is varied depending on the stratification
strength.
Coarse, badly resolved simulations to reach the steady state.
First, the aspect ratio of the numerical domain is decreased when the stratification is
increased. Indeed, strongly stratified flows are strongly anisotropic and dominated by
thin layers. The aspect ratio is chosen such that the vertical spectra are not
dominated by the first vertical mode and that there are few vertical layers in the
domain.
......@@ -240,14 +246,13 @@
For some simulations, fourth-order hyperviscous and hyperdiffusive terms are added. The
fourth-order viscosity $\nu_4$ and diffusivity $\kappa_4$ are computed so that
dissipative scales are well resolved.
TODO: formula
We use the measure of the turbulent kinetic dissipations $\epsKK$ and $\epsKKKK$ based
on both viscosities, and the ratio $\epsKK/\epsK$ where $\epsK=\epsKK+\epsKKKK$, as an
indicator of how close the simulations we perform are to proper DNS. For a set of
physical parameters, the needed hyperviscosity decreases when the resolution is
increased and the ratio $\epsKK/\epsK$ grows towards unity.
Second, for each couple, we run first simulations at coarse resolution to reach a
steady state. For these "approach" simulations, fourth-order hyperviscous and
hyperdiffusive terms are added, with fourth-order viscosity $\nu_4$ and diffusivity
$\kappa_4$ computed so that dissipative scales are well resolved.
\begin{equation}
\nu_4 = \kappa_4 = P ^{1 / 3} \kmax ^ {-10 / 3},
\end{equation}
where $\kmax$ is the largest wavenumber taken into account truncation. The effect of
hyperdiffusion can be quantified with the ratio $\epsKK/\epsK$ where
$\epsK=\epsKK+\epsKKKK$.
%% Method: simulations 1 couple (N, R_i)
......@@ -252,5 +257,4 @@
%% Method: simulations 1 couple (N, R_i)
\input{../tmp/table_methods_1couple.tex}
......@@ -255,7 +259,5 @@
\input{../tmp/table_methods_1couple.tex}
Table \ref{table-methods-1couple} shows ...
\begin{figure}
\centerline{
\includegraphics[width=0.48\textwidth]{%
......@@ -268,6 +270,42 @@
\label{fig:method-N40-R20}}
\end{figure}
Table \ref{table-methods-1couple} presents physical and numerical parameters for the
simulations carried out for one particular couple $(N,\ R_i) = (40,\ 20)$. The
turbulent nondimensional numbers are computed from the statistically stationary flows
as $F_h = \epsK / ({U_h}^2 N)$, $\R_2 = \epsK / (\nu_2 N^2)$ and $\R_4 = \epsK{U_h}^2 /
(\nu_4 N ^ 4)$, where $\epsK$ is the mean kinetic energy dissipation and $U_h$ the rms
horizontal velocity. The time evolution of some components of the energy for these
simulations are shown in figure~\ref{fig:method-N40-R20}(a). The resolution is
increased step by step until the product $\kmax\eta$ is larger than or very close to
one. The times of these changes of resolution are indicated in
figure~\ref{fig:method-N40-R20}(a) by dashed vertical lines ($t_{640}$ being the
beginning of the simulation with $n_h=640$). Some quantities time averaged during the
statistical stationnary state are plotted as a function of $\kmax\eta$ in
figure~\ref{fig:method-N40-R20}(b).
Figure~\ref{fig:method-N40-R20}(b, top) shows the ratio $\epsKK/\epsK$ where
$\epsK=\epsKK+\epsKKKK$, where $\epsKK$ and $\epsKKKK$ are kinetic energy dissipations
due to standard and hyper viscosities, respectively. This ratio is an indicator of how
close the simulations we perform are to proper DNS. For a resolution approximately half
smaller than the required resolution for a proper DNS (typically $\kmax\eta \simeq
0.5$, in this case $n_h=1344$), the standard dissipation $\epsKK$ starts to dominate
the total dissipation ($\epsKK/\epsK > 0.5$). This means that the standard dissipation
range starts to be resolved. For the simulations for $\kmax\eta \sim 1$, most of the
dissipation is due to standard viscosity and it is reasonable to qualify such
simulations as "quasi-DNS".
Figure ~\ref{fig:method-N40-R20}(b, bottom) shows the effect of increasing the
resolution on 3 time averaged quantities that will be used in the result section:
$\Gamma = \epsA/\epsK$ is the mixing coefficient, $\Ivelo$ is a large scale isotropy
coefficient computed as a ratio of velocities and $\Idiss$ is a small scale isotropy
coefficient computed as a ratio of dissipation terms (the exact definitions will be
given in the next section). We see that these quantities very weakly depend on the
resolution as soon as $\kmax\eta \geq 0.5$, which shows that we can get a good
evaluation of them by using only badly resolved quasi-DNS for $\kmax\eta \geq 0.5$.
Note that the variations for $\Ivelo$ between simulations are rather associated with
lacks of statistics (simulations not long enough) than with too coarse resolutions.
\begin{figure}% [H]
\centerline{
\includegraphics[width=0.98\textwidth]{%
......@@ -277,6 +315,31 @@
resolutions for $N=40$ and $\R_i=20$. \label{fig:method-N40-Ri20-spectra}}
\end{figure}
Finally, figure~\ref{fig:method-N40-Ri20-spectra} shows the one-dimensional compensated
spectra for the same simulations. We see that the spectra gently converge when one
increases $\kmax\eta$ towards the spectra for the DNS ($\kmax\eta > 1$). As soon as
$\kmax\eta > 0.5$, the differences between the spectra are very small in the inertial
range and are mainly noticeable in the precise shape in the dissipation range.
We think that the results presented in figures~\ref{fig:method-N40-R20} and
\ref{fig:method-N40-Ri20-spectra} show that it is reasonable to evaluate the evolution
with the input parameters of a lot of quantities that are not related to the precise
dynamics in the dissipation range with a mix of quasi-DNS ($\kmax\eta \geqslant 0.5$)
and coarse DNS ($\kmax\eta \simeq 1$). It is of course important to keep in mind the
limitations of these simulations and to not interpret results that could be due to the
limited resolution. Note that the DNS by \cite{brethouwer_billant_lindborg_chomaz_2007}
and \cite{Maffioli2017vertical} correspond to $\kmax\eta \simeq 1$ and 1.5,
respectively. In contrast, other studies use more resolved DNS, for example $\kmax\eta
\simeq 3$ for \cite{Portwood2016robust}. It is interesting to consider the difference
in terms of numerical costs for the same input parameters between a quasi-DNS, a coarse
DNS and a finely-resolved DNS. If one consider for simplicity that the Fourier
transform scale linearly with the number of points and that the time step scales
inversely proportional to the grid mech, a finely-resolved DNS for $\kmax\eta = 3$
($8064\times8064\times1008$ grid points for $N,\ \R_i = 40, 20$) would be
approximately 1300 ($=6^4$) and 80 ($=3^4$) times more expensive than a quasi-DNS for
$\kmax\eta = 0.5$ ($1344\times1344\times168$ grid points) and a coarse DNS for
$\kmax\eta = 1$ ($2688\times2688\times336$ grid points), respectively.
%% Method: resolution and hyperdiffusivity for the better simulations for each couple (N, R_i)
\begin{figure}
......@@ -291,8 +354,11 @@
simulation. \label{fig:method-resolution-hyperdiffusivity}}
\end{figure}
\input{../tmp/table_better_simuls.tex}
Table \input{../tmp/table_better_simuls.tex} and
figure~\ref{fig:method-resolution-hyperdiffusivity} describe the finest simulations of
our dataset for each couple $(N,\ \R_i)$. We see that for most couples, the finest
simulation corresponds to a coarse DNS with $\kmax\eta \simeq 1$.
The simulations were performed on a local cluster at LEGI for resolutions up to $n_h =
640$ and on the national CINES cluster Occigen for finer resolutions. Parameters and
dimensionless numbers for each simulations are summarized in
......@@ -295,15 +361,9 @@
The simulations were performed on a local cluster at LEGI for resolutions up to $n_h =
640$ and on the national CINES cluster Occigen for finer resolutions. Parameters and
dimensionless numbers for each simulations are summarized in
table~\ref{table-better-simuls}. The turbulent nondimensional numbers are computed from
the statistically stationary flows as $F_h = \epsK / ({U_h}^2 N)$, $\R_2 = \epsK /
(\nu_2 N^2)$ and $\R_4 = \epsK{U_h}^2 / (\nu_4 N ^ 4)$, where $\epsK$ is the mean
kinetic energy dissipation and $U_h$ the rms horizontal velocity. The results presented
in this article are obtained from periods of the simulation when a steady state has
been approximately reached. Because the time scales of the flows studied here are very
long, finding such steady-state period can be very difficult and computationally
costly. In order to reach an approximately steady state in a reasonable time, we start
all the simulations at a reduced resolution $240\times240\times40$, and increase the
resolution step by step only when a sufficiently stationary state has been reached.
table~\ref{table-better-simuls}. The results presented in this article are obtained
from periods of the simulation when a steady state has been approximately reached. In
the following the spatial spectra and the spectral energy budget are taken from coarse
DNS for which $\kmax\eta \simeq 1$.
......@@ -309,6 +369,18 @@
TODO: content of the dataset. Fluidsim simulation folder with data of specific outputs
and end state for restart.
This articles is accompanied by 2 datasets. The first dataset shared through Zenodo
(citation) is of moderate size (less than 30 GB) and can easily be downloaded as a
whole for future analyses. It contains for each simulation (i) the Fluidsim simulation
folder, (ii) a executed notebook showing a short description of the flow and how to
load and plot the Fluidsim results and (iii) a 3D representation of the statistically
stationnary flow. A Fluidsim simulation folder can be loaded with the program Fluidsim
to load and plot some data saved during the simulation. The different datafiles contain
input parameters of the simulation, space averaged quantities, spatial spectra,
spectral energy budget, temporal spectra and spatio-temporal spectra. The second
dataset is available through a LEGI server (address?) and contains for each simulations
a raw Fluidsim restart file.
TODO: Fluidsim versions...
\section{Results}
......@@ -312,7 +384,6 @@
\section{Results}
\subsection{Large and small scale isotropy coefficients}
%% Large scale isotropy
......@@ -324,7 +395,7 @@
\includegraphics[width=0.48\textwidth]{%
../tmp/fig_isotropy_velo_vs_R}
}
\caption{Large scale isotropy coefficient $I_{velo}$. \label{fig:large-scale-isotropy}}
\caption{Large scale isotropy coefficient $\Ivelo$. \label{fig:large-scale-isotropy}}
\end{figure}
Figure~\ref{fig:large-scale-isotropy} ...
......@@ -338,7 +409,7 @@
\includegraphics[width=0.48\textwidth]{%
../tmp/fig_isotropy_diss_vs_R}
}
\caption{Small scale isotropy coefficient $I_{diss}$. \label{fig:small-scale-isotropy}}
\caption{Small scale isotropy coefficient $\Idiss$. \label{fig:small-scale-isotropy}}
\end{figure}
Figure~\ref{fig:small-scale-isotropy} ...
......@@ -382,7 +453,8 @@
\includegraphics[width=0.48\textwidth]{%
../tmp/fig_ratio_EA_EK_vs_FhR}
}
\caption{Mixing coefficient (a) and ratio $E_A/E_K$ (b). \label{fig:mixing-coefficients-vs-FhR}}
\caption{Mixing coefficient (a) and ratio $E_A/E_K$ (b).
\label{fig:mixing-coefficients-vs-FhR}}
\end{figure}
Figure~\ref{fig:mixing-coefficients-vs-FhR} ...
......
......@@ -287,6 +287,16 @@
year={2002}
}
@article{AugierMohananLinborg2019,
title={Shallow water wave turbulence},
DOI={10.1017/jfm.2019.375},
journal = "J. Fluid Mech.",
volume={874},
author={Augier, Pierre and Mohanan, Ashwin Vishnu and Lindborg, Erik},
year={2019},
pages={1169–1196}
}
@article{augier2015stratified,
title={Stratified turbulence forced with columnar dipoles: numerical study},
author={Augier, Pierre and Billant, Paul and Chomaz, Jean-Marc},
......
......@@ -10,6 +10,7 @@
fig, axes = plt.subplots(ncols=2, figsize=(10, 3 * 4.5 / 4))
ax0, ax1 = axes
coef = 5 / 3
for sim, k_max_eta in zip(simuls, df["k_max*eta"]):
t_start, t_last = sim.output.print_stdout.get_times_start_last()
......@@ -21,8 +22,8 @@
k = data["kx"]
ax0.plot(
k,
data["spectra_E_kx"] * k ** (5 / 3),
data["spectra_E_kx"] * k**coef,
label=rf"$k_{{max}}\eta={k_max_eta:.2f}$",
)
k = data["kz"]
......@@ -25,8 +26,8 @@
label=rf"$k_{{max}}\eta={k_max_eta:.2f}$",
)
k = data["kz"]
ax1.plot(k, data["spectra_E_kz"] * k ** (5 / 3))
ax1.plot(k, data["spectra_E_kz"] * k**coef)
ax0.set_xlabel("$k_h$")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment