Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • fluiddyn/fluiddyn_papers
1 result
Show changes
Commits on Source (11)
Showing
with 4741 additions and 0 deletions
[settings]
profile = black
known_first_party = fluiddyn,fluidsim
known_local_folder = util
NAME = article
$(NAME).pdf: figures
cd input && latexmk -f -shell-escape -pdf $(NAME).tex && rsync $(NAME).pdf ../$(NAME).pdf
figures:
pdm run python py/make_figures.py SAVE
clean:
rm -f tmp/*.tex
cd input && rm -f *.aux *.fdb_latexmk *.fls *.log *.bak* *.bbl *.blg *.out *Notes.bib
cleantmp:
rm -rf tmp/*
cleanpdf:
rm -f $(NAME).pdf input/$(NAME).pdf
cleanall: clean cleantmp cleanpdf
format:
cd input && pdm run formattex *.tex -i -v
black:
pdm run black -l 82 py
install-deps: sync
sync:
pdm sync --clean
lock:
pdm lock
# Source of a great article
## How to build the document?
1. One needs to download the dataset which is now available in [MyCore
CNRS](https://mycore.core-cloud.net/index.php/s/rpiQSLSoauNCVQE).
1. One needs to define the environment variable `STRAT_TURB_TORO2022` with the
path towards the dataset directory.
Something like this can be added in your `~/.bashrc` file:
```bash
export STRAT_TURB_TORO2022=/data/MyCore/2022strat-turb-toro
```
1. Install a virtual env with `pdm sync --clean` and activate it.
1. The command `make` should produce all Latex tables, figures and finally the
main pdf file `article.pdf`.
Note also than the Latex code can be formatted with the command `make format`.
File added
\documentclass[%
aps,
superscriptaddress,
longbibliography,
12pt,
onecolumn,
a4paper,
% preprint,
% reprint,
linenumbers,
showpacs,
showkeys,
% draft,
amsfonts, amssymb, amsmath]{revtex4-2}
% The result seems nicer with revtex4-2, but
% Debian 9 (Stretch) does not have revtex4-2
\usepackage[utf8]{inputenc}
% \usepackage{epstopdf} % Converts .eps to
% \epstopdfsetup{update}
\usepackage[caption=false]{subfig}
\usepackage{hyperref} % Required for customising links and the PDF*
\linespread{1.05}
\hypersetup{pdfpagemode={UseOutlines},
bookmarksopen=true,
bookmarksopenlevel=0,
hypertexnames=false,
colorlinks=true, % Set to false to disable coloring links
citecolor=blue, % The color of citations
linkcolor=red, % The color of references to document elements (sections, figures, etc)
urlcolor=black, % The color of hyperlinks (URLs)
pdfstartview={FitV},
unicode,
breaklinks=true,
}
\usepackage{graphicx,amssymb,amsmath}
% \usepackage[english]{babel}
\usepackage{grffile}
\usepackage{color}
\usepackage{array}
\usepackage{hhline}
\usepackage[]{algorithm2e}
\usepackage{ulem}
% \usepackage{float}
\usepackage{siunitx}
\sisetup{
inter-unit-product = \ensuremath{{}\!\cdot\!{}},
detect-all,
separate-uncertainty = true,
exponent-product = \times,
space-before-unit = true,
output-decimal-marker = {,},
multi-part-units = brackets,
range-phrase = --,
% allow-number-unit-breaks,
list-final-separator = { et },
list-pair-separator = { et },
abbreviations
}
\setlength{\tabcolsep}{7pt}
\usepackage{booktabs}
\usepackage{float}
\newcommand{\cor}[1]{\textcolor{red}{#1}}
\newcommand{\todo}[1]{\textcolor{red}{TODO: #1}}
\newlength{\figwidth}
\setlength{\figwidth}{120mm}
% \setlength{\figwidth}{0.7\textwidth} % useful in single column
\newcommand{\R}{\mathcal{R}}
\newcommand{\eps}{\varepsilon}
\newcommand{\epsK}{{\varepsilon_{\!\scriptscriptstyle kin}}}
\newcommand{\epsKK}{{\varepsilon_{\!\scriptscriptstyle K 2}}}
\newcommand{\epsKKKK}{{\varepsilon_{\!\scriptscriptstyle K 4}}}
\newcommand{\epsA}{{\varepsilon_{\!\scriptscriptstyle pot}}}
\newcommand{\xx}{\boldsymbol{x}}
\newcommand{\rr}{\boldsymbol{r}}
\newcommand{\kk}{\boldsymbol{k}}
\newcommand{\eek}{\boldsymbol{e}_{\boldsymbol{k}}}
\newcommand{\eeh}{\boldsymbol{e}_h}
\newcommand{\eep}{\boldsymbol{e}_{p\kk}}
\newcommand{\eet}{\boldsymbol{e}_{t\kk}}
\newcommand{\eetheta}{\boldsymbol{e}_\theta}
\newcommand{\eex}{\boldsymbol{e}_x}
\newcommand{\eey}{\boldsymbol{e}_y}
\newcommand{\eez}{\boldsymbol{e}_z}
\newcommand{\cc}{\boldsymbol{c}}
\newcommand{\uu}{\boldsymbol{u}}
\newcommand{\vv}{\boldsymbol{v}}
\newcommand{\vvk}{\hat{\boldsymbol{v}}_{\kk}}
\newcommand{\vvp}{\hat{v}_{p\kk}}
\newcommand{\vvt}{\hat{v}_{t\kk}}
\newcommand{\vvs}{\hat{\boldsymbol{v}}_{s\kk}}
\newcommand{\bbk}{\hat{b}_{\kk}}
\newcommand{\ff}{\boldsymbol{f}}
\newcommand{\ffk}{\boldsymbol{\hat{f}}_{\kk}}
\newcommand{\bomega}{\boldsymbol{\omega}}
\newcommand{\bnabla}{\boldsymbol{\nabla}}
\newcommand{\Dt}{\mbox{D}_t}
\newcommand{\p}{\partial}
\newcommand{\mean}[1]{\langle #1 \rangle}
\newcommand{\epsP}{\varepsilon_{\!\scriptscriptstyle P}}
\newcommand{\epsm}{\varepsilon_{\!\scriptscriptstyle m}}
\newcommand{\CKA}{C_{K\rightarrow A}}
\newcommand{\D}{\mbox{D}}
\newcommand{\diff}{\text{d}}
\newcommand{\bv}{Brunt-V\"ais\"al\"a }
\newcommand{\kmax}{k_{\max}}
\newcommand{\thk}{\theta_{\kk}}
\newcommand{\phk}{\varphi_{\kk}}
\newcommand{\thf}{\theta_f}
\newcommand{\ok}{\omega_{\kk}}
\setlength\parindent{0pt}
\begin{document}
\title{Weak internal gravity waves in stratified flows with and without vortical modes}
\author{Vincent Labarre}
\email[]{vincent.labarre@oca.eu}
\affiliation{Universit\'{e} C\^{o}te d'Azur, Observatoire de la C\^{o}te d'Azur, CNRS,
Laboratoire Lagrange, Nice, France.}
\author{Pierre Augier}
\email[]{pierre.augier@univ-grenoble-alpes.fr}
\affiliation{Laboratoire des Ecoulements G\'eophysiques et Industriels, Universit\'e
Grenoble Alpes, CNRS, Grenoble-INP, F-38000 Grenoble, France}
\author{Giorgio Krstulovic}
\email[]{giorgio.krstulovic@oca.eu}
\affiliation{Universit\'{e} C\^{o}te d'Azur, Observatoire de la C\^{o}te d'Azur, CNRS,
Laboratoire Lagrange, Nice, France.}
\author{Sergey Nazarenko}
\email[]{sergey.nazarenko@unice.fr}
\affiliation{Universit\'{e} C\^{o}te d'Azur, CNRS, Institut de Physique de Nice -
INPHYNI, Nice, France}
\begin{abstract}
In order to test weak wave turbulence, we perform direct numerical simulations of
stratified turbulence without shear modes, and with or without vortical modes. Removing
vortical modes naturally helps to have a better overall balance between poloidal
kinetic energy, involved in internal gravity waves, and potential energy. A
spatio-temporal analysis reveals that removing vortical modes is not enough to
concentrate the energy in temporal scales, meaning that removing vortical modes does
not allow to get that closer to an internal gravity wave turbulence regime. For highly
stratified simulations, waves dominate in a sub-region of the buoyancy range defined by
the non-linearity parameter, as observed in Yokoyama and Takaoka (2019)
\cite{yokoyama_energy-based_2019}. However, conversion between kinetic and potential
energy in that region are not consistent with a wave turbulence regime for all
simulations. We give simple dimensional argument to stress the importance of the aspect
ratio for weak non-linearity to hold. For simulations with aspect ratio one, when the
waves dominated region starts to enclose the forcing region, we observe a transition to
a new regime that shares characteristics with internal gravity wave turbulence.
\todo{Target journal: JFM?}
\end{abstract}
%----------------------------------------------------------------------------------------
% Print the title
\maketitle
%----------------------------------------------------------------------------------------
% ARTICLE CONTENTS
%----------------------------------------------------------------------------------------
\section{Introduction}
\label{sec:introduction}
\input{introduction.tex}
\section{Methods}
\label{sec:methods}
\input{methods.tex}
\section{Results}
\label{sec:results}
\input{results.tex}
\section{Conclusions}
\label{sec:conclusions}
\input{conclusions.tex}
\begin{acknowledgments}
This project was supported by the Simons Foundation through the Simons collaboration on
wave turbulence. Part of the computations have been done on the ``Mesocentre SIGAMM''
machine, hosted by Observatoire de la Cote d'Azur. The authors are grateful to the OPAL
infrastructure from Université Côte d’Azur and the Université Côte d’Azur’s Center for
High-Performance Computing for providing resources and support. This work was granted
access to the HPC/AI resources of IDRIS under the allocation 2022-A0122A13417 made by
GENCI.
\end{acknowledgments}
\appendix
\section{List of simulations}
\input{../tmp/table_better_simuls.tex}
\input{../tmp/table_better_simuls_proj.tex}
\input{../tmp/table_better_simuls_ratio_one.tex}
\input{../tmp/table_better_simuls_proj_ratio_one.tex}
\newpage
%\appendix\section{A great appendix}
%\label{appendix}
\bibliography{biblio}
\end{document}
@article{mohanan_fluidfft_2019,
title = {{FluidFFT}: Common {API} (C++ and Python) for Fast Fourier Transform {HPC} Libraries},
volume = {7},
rights = {Authors who publish with this journal agree to the following terms: Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access ). All third-party images reproduced on this journal are shared under Educational Fair Use. For more information on Educational Fair Use , please see this useful checklist prepared by Columbia University Libraries . All copyright of third-party content posted here for research purposes belongs to its original owners. Unless otherwise stated all references to characters and comic art presented on this journal are ©, ® or ™ of their respective owners. No challenge to any owner’s rights is intended or should be inferred.},
issn = {2049-9647},
url = {http://openresearchsoftware.metajnl.com/article/10.5334/jors.238/},
doi = {10.5334/jors.238},
shorttitle = {{FluidFFT}},
abstract = {Article: {FluidFFT}: Common {API} (C++ and Python) for Fast Fourier Transform {HPC} Libraries},
pages = {10},
number = {1},
journaltitle = {Journal of Open Research Software},
journal = {Journal of Open Research Software},
author = {Mohanan, Ashwin Vishnu and Bonamy, Cyrille and Augier, Pierre},
urldate = {2022-10-17},
date = {2019-04-01},
langid = {english},
note = {Number: 1
Publisher: Ubiquity Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/PFXE6AWL/Mohanan et al. - 2019 - FluidFFT Common API (C++ and Python) for Fast Fou.pdf:application/pdf},
}
@article{mohanan_fluidsim_2019,
title = {{FluidSim}: Modular, Object-Oriented Python Package for High-Performance {CFD} Simulations},
volume = {7},
rights = {Authors who publish with this journal agree to the following terms: Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access ). All third-party images reproduced on this journal are shared under Educational Fair Use. For more information on Educational Fair Use , please see this useful checklist prepared by Columbia University Libraries . All copyright of third-party content posted here for research purposes belongs to its original owners. Unless otherwise stated all references to characters and comic art presented on this journal are ©, ® or ™ of their respective owners. No challenge to any owner’s rights is intended or should be inferred.},
issn = {2049-9647},
url = {http://openresearchsoftware.metajnl.com/article/10.5334/jors.239/},
doi = {10.5334/jors.239},
shorttitle = {{FluidSim}},
abstract = {Article: {FluidSim}: Modular, Object-Oriented Python Package for High-Performance {CFD} Simulations},
pages = {14},
number = {1},
journaltitle = {Journal of Open Research Software},
journal = {Journal of Open Research Software},
author = {Mohanan, Ashwin Vishnu and Bonamy, Cyrille and Linares, Miguel Calpe and Augier, Pierre},
urldate = {2022-10-17},
date = {2019-04-26},
langid = {english},
note = {Number: 1
Publisher: Ubiquity Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/BRIACGWN/Mohanan et al. - 2019 - FluidSim Modular, Object-Oriented Python Package .pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/2IN9MCBP/jors.239.html:text/html},
}
@article{augier_fluiddyn_2019,
title = {{FluidDyn}: A Python Open-Source Framework for Research and Teaching in Fluid Dynamics by Simulations, Experiments and Data Processing},
volume = {7},
rights = {Authors who publish with this journal agree to the following terms: Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal. Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal. Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access ). All third-party images reproduced on this journal are shared under Educational Fair Use. For more information on Educational Fair Use , please see this useful checklist prepared by Columbia University Libraries . All copyright of third-party content posted here for research purposes belongs to its original owners. Unless otherwise stated all references to characters and comic art presented on this journal are ©, ® or ™ of their respective owners. No challenge to any owner’s rights is intended or should be inferred.},
issn = {2049-9647},
url = {http://openresearchsoftware.metajnl.com/article/10.5334/jors.237/},
doi = {10.5334/jors.237},
shorttitle = {{FluidDyn}},
abstract = {Article: {FluidDyn}: A Python Open-Source Framework for Research and Teaching in Fluid Dynamics by Simulations, Experiments and Data Processing},
pages = {9},
number = {1},
journaltitle = {Journal of Open Research Software},
journal = {Journal of Open Research Software},
author = {Augier, Pierre and Mohanan, Ashwin Vishnu and Bonamy, Cyrille},
urldate = {2022-10-17},
date = {2019-04-01},
langid = {english},
note = {Number: 1
Publisher: Ubiquity Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/3T2RCTRI/Augier et al. - 2019 - FluidDyn A Python Open-Source Framework for Resea.pdf:application/pdf},
}
@article{yokoyama_energy-based_2019,
title = {Energy-based analysis and anisotropic spectral distribution of internal gravity waves in strongly stratified turbulence},
volume = {4},
url = {https://link.aps.org/doi/10.1103/PhysRevFluids.4.104602},
doi = {10.1103/PhysRevFluids.4.104602},
abstract = {Stratified turbulence shows scale- and direction-dependent anisotropy and the coexistence of weak turbulence of internal gravity waves and strong turbulence of eddies. Straightforward application of standard analyses developed in isotropic turbulence sometimes masks important aspects of the anisotropic turbulence. To capture detailed structures of the energy distribution in the wave-number space, it is indispensable to examine the energy distribution with nonintegrated spectra by fixing the codimensional wave-number component or in the two-dimensional domain spanned by both the horizontal and the vertical wave numbers. Indices which separate the range of the anisotropic weak-wave turbulence in the wave-number space are proposed based on the decomposed energies. In addition, the dominance of the waves in the range is also verified by the small frequency deviation from the linear dispersion relation. In the wave-dominant range, the linear wave periods given by the linear dispersion relation are smaller than approximately one third of the eddy-turnover time. The linear wave periods reflect the anisotropy of the system, while the isotropic Brunt-Väisälä period is used to evaluate the Ozmidov wave number, which is necessarily isotropic. It is found that the time scales in consideration of the anisotropy of the flow field must be appropriately selected to obtain the critical wave number separating the weak-wave turbulence.},
pages = {104602},
number = {10},
journaltitle = {Physical Review Fluids},
journal = {Phys. Rev. Fluids},
author = {Yokoyama, Naoto and Takaoka, Masanori},
urldate = {2022-10-17},
date = {2019-10-08},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/YBEFZRJC/PhysRevFluids.4.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/J6L4A9XB/Yokoyama and Takaoka - 2019 - Energy-based analysis and anisotropic spectral dis.pdf:application/pdf},
}
@article{lam_partitioning_2020,
title = {Partitioning Waves and Eddies in Stably Stratified Turbulence},
volume = {11},
rights = {http://creativecommons.org/licenses/by/3.0/},
issn = {2073-4433},
url = {https://www.mdpi.com/2073-4433/11/4/420},
doi = {10.3390/atmos11040420},
abstract = {We consider the separation of motion related to internal gravity waves and eddy dynamics in stably stratified flows obtained by direct numerical simulations. The waves’ dispersion relation links their angle of propagation to the vertical θ , to their frequency ω , so that two methods are used for characterizing wave-related motion: (a) the concentration of kinetic energy density in the ( θ , ω ) map along the dispersion relation curve; and (b) a direct computation of two-point two-time velocity correlations via a four-dimensional Fourier transform, permitting to extract wave-related space-time coherence. The second method is more computationally demanding than the first. In canonical flows with linear kinematics produced by space-localized harmonic forcing, we observe the pattern of the waves in physical space and the corresponding concentration curve of energy in the ( θ , ω ) plane. We show from a simple laminar flow that the curve characterizing the presence of waves is distorted differently in the presence of a background convective mean velocity, either uniform or varying in space, and also when the forcing source is moving. By generalizing the observation from laminar flow to turbulent flow, this permits categorizing the energy concentration pattern of the waves in complex flows, thus enabling the identification of wave-related motion in a general turbulent flow with stable stratification. The advanced method (b) is finally used to compute the wave-eddy partition in the velocity–buoyancy fields of direct numerical simulations of stably stratified turbulence. In particular, we use this splitting in statistics as varied as horizontal and vertical kinetic energy, as well as two-point velocity and buoyancy spectra.},
pages = {420},
number = {4},
journaltitle = {Atmosphere},
journal = {Atmosphere},
author = {Lam, Henri and Delache, Alexandre and Godeferd, Fabien S.},
urldate = {2022-10-17},
date = {2020-04},
langid = {english},
note = {Number: 4
Publisher: Multidisciplinary Digital Publishing Institute},
keywords = {stratified turbulence, dispersion relation, Doppler shift, internal gravity waves, sweeping effect},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/D9N66A7W/Lam et al. - 2020 - Partitioning Waves and Eddies in Stably Stratified.pdf:application/pdf},
}
@article{maffioli_signature_2020,
title = {Signature and energetics of internal gravity waves in stratified turbulence},
volume = {5},
url = {https://link.aps.org/doi/10.1103/PhysRevFluids.5.114802},
doi = {10.1103/PhysRevFluids.5.114802},
abstract = {Internal gravity waves propagating within homogeneous stratified turbulence are the subject of the present study. A spatiotemporal analysis is carried out on the results of direct numerical simulations including a forcing term, with the aim of showing the energy content of the simulations as a function of frequency, ω, and wave-vector inclination to the horizontal, θ. Clear signatures of the dispersion relation of internal gravity waves, ω=±Ncosθ, where N is the Brunt-Väisälä frequency, are observed in all our simulations, which have low Froude number, Frh≪1, and increasing buoyancy Reynolds number up to Reb≈10. Interestingly, we observe the presence of high-frequency waves with ω∼N and a corresponding low-frequency vortex mode, both containing a non-negligible amount of energy. These waves are large-scale waves, their energy signature being found at scales larger than the forcing scales. We also observe the growth of energy in the shear modes, constituting a horizontal mean flow, and we show that their continuous growth is due to an upscale energy transfer, from the forcing scales to larger horizontal as well as vertical scales. These shear modes are found to be responsible for Doppler shifting the frequency of the large-scale waves. When considering the wave energy across the simulations at varying Reb, such energy is seen to reduce as Reb is increased and the flow enters the strongly stratified turbulence regime. The classical wave-vortex decomposition, based on a purely spatial decomposition of instantaneous snapshots of the flow, is analyzed within the current framework and is seen to correspond relatively well to the “true” wave signal identified by the spatiotemporal analysis, at least for the large-scale waves with ω∼N. Distinct energy peaks in θ−ω space highlight that the waves have preferential directions of propagation, specifically θ=45∘ and θ≈55∘, similar to observations in studies of wave radiation from localized regions of turbulence. This suggests that the same wave-generation mechanisms may be relevant for homogeneous and inhomogeneous stratified turbulent flows.},
pages = {114802},
number = {11},
journaltitle = {Physical Review Fluids},
journal = {Phys. Rev. Fluids},
author = {Maffioli, Andrea and Delache, Alexandre and Godeferd, Fabien S.},
urldate = {2022-10-17},
date = {2020-11-11},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/2I5HEDCS/PhysRevFluids.5.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/TYVF8VHB/Maffioli et al. - 2020 - Signature and energetics of internal gravity waves.pdf:application/pdf},
}
@article{davis_succession_2020,
title = {Succession of Resonances to Achieve Internal Wave Turbulence},
volume = {124},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.124.204502},
doi = {10.1103/PhysRevLett.124.204502},
abstract = {We study experimentally the interaction of nonlinear internal waves in a stratified fluid confined in a trapezoidal tank. The setup has been designed to produce internal wave turbulence from monochromatic and polychromatic forcing through three processes. The first is a linear transfer in wavelength obtained by wave reflection on inclined slopes, leading to an internal wave attractor which has a broad wave number spectrum. Second is the broadbanded time-frequency spectrum of the trapezoidal geometry, as shown by the impulse response of the system. The third one is a nonlinear transfer in frequencies and wave vectors via triadic interactions, which results at large forcing amplitudes in a power law decay of the wave number power spectrum. This first experimental spectrum of internal wave turbulence displays a k−3 behavior.},
pages = {204502},
number = {20},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Davis, Géraldine and Jamin, Timothée and Deleuze, Julie and Joubaud, Sylvain and Dauxois, Thierry},
urldate = {2022-10-17},
date = {2020-05-21},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/IMTLWSVZ/PhysRevLett.124.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/VU48BV6J/Davis et al. - 2020 - Succession of Resonances to Achieve Internal Wave .pdf:application/pdf},
}
@article{lindborg_energy_2006,
title = {The energy cascade in a strongly stratified fluid},
volume = {550},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/energy-cascade-in-a-strongly-stratified-fluid/40CFC86F42AA14B8A7A29BB457D9A8D9},
doi = {10.1017/S0022112005008128},
abstract = {A cascade hypothesis for a strongly stratified fluid is developed on the basis of the Boussinesq equations. According to this hypothesis, kinetic and potential energy are transferred from large to small scales in a highly anisotropic turbulent cascade. A relation for the ratio, \$ l\_\{v\}/l\_\{h\} \$, between the vertical and horizontal length scale is derived, showing how this ratio decreases with increased stratification. Similarity expressions are formulated for the horizontal and vertical spectra of kinetic and potential energy. A series of box simulations of the Boussinesq equations are carried out and a good agreement between the proposed hypothesis and the simulations is seen. The simulations with strongest stratification give horizontal kinetic and potential energy spectra of the form \$ E\_\{K\_\{h\}\} {\textbackslash},\{=\}{\textbackslash}, C\_\{1\} {\textbackslash}epsilon\_\{K\}{\textasciicircum}\{2/3\} k\_\{h\}{\textasciicircum}\{-5/3\} \$ and \$ E\_\{P\_\{h\}\} {\textbackslash},\{=\}{\textbackslash}, C\_\{2\} {\textbackslash}epsilon\_\{P\} k\_\{h\}{\textasciicircum}\{-5/3\}/{\textbackslash}epsilon\_\{K\}{\textasciicircum}\{1/3\} \$, where \$ k\_\{h\} \$ is the horizontal wavenumber, \$ {\textbackslash}epsilon\_\{K\} \$ and \$ {\textbackslash}epsilon\_\{P\} \$ are the dissipation of kinetic and potential energy, respectively, and \$ C\_\{1\} \$ and \$ C\_\{2\} \$ are two constants. Within the given numerical accuracy, it is found that these two constants have the same value: \$ C\_\{1\} {\textbackslash}approx C\_\{2\} {\textbackslash},\{=\}{\textbackslash}, 0.51 {\textbackslash}pm 0.02 \$.},
pages = {207--242},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Lindborg, Erik},
urldate = {2022-10-17},
date = {2006-03},
langid = {english},
note = {Publisher: Cambridge University Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/QUL239GH/Lindborg - 2006 - The energy cascade in a strongly stratified fluid.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/SJV229FW/40CFC86F42AA14B8A7A29BB457D9A8D9.html:text/html},
}
@article{lam_energy_2021,
title = {Energy balance and mixing between waves and eddies in stably stratified turbulence},
volume = {923},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/energy-balance-and-mixing-between-waves-and-eddies-in-stably-stratified-turbulence/259ED50C26265836E76B8C588C85D1FC},
doi = {10.1017/jfm.2021.589},
abstract = {, We explore the strong stratification regime of stably stratified turbulence and the intermediate regime towards the viscosity-affected stratified state. Three-dimensional velocity-density fields from direct numerical simulations are decomposed into internal gravity waves ({IGWs}) and eddy motion based on Riley's decomposition (Riley et al., {AIP} Conf. Proc., vol. 76, issue 1, 1981, pp. 79–112) extended to account for the space–time properties of waves, their modification by vertically sheared horizontal flow and the vertical mixing by eddies (Lam et al., Atmosphere, vol. 11, issue 4, 2020, p. 420). We establish the evolution equations for the {IGW} and eddy parts separately. Up to buoyancy Reynolds number 𝑅𝑒𝑏∼1Reb∼1\{Re\}\_b{\textbackslash}sim 1, we observe a large exchange of energy that pumps energy from the {IGW} to eddy. For 𝑅𝑒𝑏{\textgreater}1Reb{\textgreater}1\{Re\}\_b{\textgreater}1, the {IGW} and eddy dynamics seem to be separate and no global exchange is observed. Our decomposition enables computation of the contributions to the mixing coefficient in terms of the {IGW} and eddy. At the largest 𝑅𝑒𝑏Reb\{Re\}\_b considered, the mixing due to eddies is four times that due to waves.},
pages = {A31},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Lam, H. and Delache, A. and Godeferd, F. S.},
urldate = {2022-10-17},
date = {2021-09},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {mixing and dispersion, stratified turbulence, wave-turbulence interactions},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/HARRR54N/Lam et al. - 2021 - Energy balance and mixing between waves and eddies.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/AL988WMT/259ED50C26265836E76B8C588C85D1FC.html:text/html},
}
@article{waite_stratified_2011,
title = {Stratified turbulence at the buoyancy scale},
volume = {23},
issn = {1070-6631},
url = {https://aip.scitation.org/doi/10.1063/1.3599699},
doi = {10.1063/1.3599699},
abstract = {Numerical simulations of forced stratified turbulence are presented, and the dependence on horizontal resolution and grid aspect ratio is investigated. Simulations are designed to model the small-scale end of the atmospheric mesoscale and oceanic submesoscale, for which high horizontal resolution is usually not feasible in large-scale geophysical fluid simulations. Coarse horizontal resolution, which necessitates the use of thin grid aspect ratio, yields a downscale stratified turbulence energy cascade in agreement with previous results. We show that with increasing horizontal resolution, a transition emerges at the buoyancy scale 2{πU}/N, where U is the rms velocity and N is the Brunt–Väisälä frequency. Simulations with high horizontal resolution and isotropic grid spacing exhibit a spectral break at this scale, below which there is a net injection of kinetic energy by nonlinear interactions with the large-scale flow. We argue that these results are consistent with a direct transfer of energy to the buoyancy scale by Kelvin–Helmholtz instability of the large-scale vortices. These findings suggest the existence of a distinct subrange of stratified turbulence between the buoyancy and Ozmidov scales. This range must be at least partially resolved or parameterized to obtain robust simulations of larger-scale turbulence.},
pages = {066602},
number = {6},
journaltitle = {Physics of Fluids},
journal = {Physics of Fluids},
author = {Waite, Michael L.},
urldate = {2022-10-17},
date = {2011-06},
note = {Publisher: American Institute of Physics},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/FKNIH268/Waite - 2011 - Stratified turbulence at the buoyancy scale.pdf:application/pdf},
}
@article{waite_stratified_2004,
title = {Stratified turbulence dominated by vortical motion},
volume = {517},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/stratified-turbulence-dominated-by-vortical-motion/CE2036181A315918218DBDD9BE05FD9E},
doi = {10.1017/S0022112004000977},
abstract = {We present numerical simulations of stably stratified, vortically forced turbulence at a wide range of Froude numbers. Large-scale vortical forcing was chosen to represent geophysical vortices which break down at small scales where Coriolis effects are weak. The resulting vortical energy spectra are much steeper in the horizontal direction and shallower in the vertical than typical observations in the atmosphere and ocean, as noted in previous studies. We interpret these spectra in terms of the vertical decoupling which emerges in the strongly stratified limit. We show that this decoupling breaks down at a vertical scale of \$U/N\$, where \$N\$ is the Brunt–Väisälä frequency and \$U\$ is a characteristic horizontal velocity, confirming previous scaling arguments. The transfer of vortical energy to wave energy is most efficient at this vertical scale; vertical spectra of wave energy are correspondingly peaked at small scales, as observed in past work. The equilibrium statistical mechanics of the inviscid unforced truncated problem qualitatively predicts the nature of the forced–dissipative solutions, and confirms the lack of an inverse cascade of vortical energy.},
pages = {281--308},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Waite, Michael L. and Bartello, Peter},
urldate = {2022-10-17},
date = {2004-09},
langid = {english},
note = {Publisher: Cambridge University Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/2BVLXYA4/Waite and Bartello - 2004 - Stratified turbulence dominated by vortical motion.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/M4BCS7Z9/CE2036181A315918218DBDD9BE05FD9E.html:text/html},
}
@article{kimura_energy_2012,
title = {Energy spectra of stably stratified turbulence},
volume = {698},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/energy-spectra-of-stably-stratified-turbulence/B3A21010303ECE1397BAD3BB63FBDE9F},
doi = {10.1017/jfm.2011.546},
abstract = {We investigate homogeneous incompressible turbulence subjected to a range of degrees of stratification. Our basic method is pseudospectral direct numerical simulations at a resolution of . Such resolution is sufficient to reveal inertial power-law ranges for suitably comprised horizontal and vertical spectra, which are designated as the wave and vortex mode (the Craya–Herring representation). We study mainly turbulence that is produced from randomly large-scale forcing via an Ornstein–Uhlenbeck process applied isotropically to the horizontal velocity field. In general, both the wave and vortex spectra are consistent with a Kolmogorov-like range at sufficiently large . At large scales, and for sufficiently strong stratification, the wave spectrum is a steeper , while that for the vortex component is consistent with . Here is the horizontally gathered wavenumber. In contrast to the horizontal wavenumber spectra, the vertical wavenumber spectra show very different features. For those spectra, a clear dependence for small scales is observed while the large scales show rather flat spectra. By modelling the horizontal layering of vorticity, we attempt to explain the flat spectra. These spectra are linked to two-point structure functions of the velocity correlations in the horizontal and vertical directions. We can observe the power-law transition also in certain of the two-point structure functions.},
pages = {19--50},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Kimura, Y. and Herring, J. R.},
urldate = {2022-10-17},
date = {2012-05},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {homogeneous turbulence, stratified flows, turbulence simulation},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/53Q7UVIZ/Kimura and Herring - 2012 - Energy spectra of stably stratified turbulence.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/8TKPFV7G/B3A21010303ECE1397BAD3BB63FBDE9F.html:text/html},
}
@article{dematteis_downscale_2021,
title = {Downscale energy fluxes in scale-invariant oceanic internal wave turbulence},
volume = {915},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/downscale-energy-fluxes-in-scaleinvariant-oceanic-internal-wave-turbulence/575CD634A844D7DACF84EBBA9FF5A084},
doi = {10.1017/jfm.2021.99},
abstract = {, We analyse analytically and numerically the scale-invariant stationary solution to the internal-wave kinetic equation. Our analysis of the resonant energy transfers shows that the leading-order contributions are given (i) by triads with extreme scale separation and (ii) by triads of waves that are quasi-collinear in the horizontal plane. The contributions from other types of triads is found to be subleading. We use the modified scale-invariant limit of the Garrett and Munk spectrum of internal waves to calculate the magnitude of the energy flux towards high wavenumbers in both the vertical and the horizontal directions. Our results compare favourably with the finescale parametrization of ocean mixing that was proposed in Polzin et al. (J. Phys. Oceanogr., vol. 25, issue 3, 1995, pp. 306–328).},
pages = {A129},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Dematteis, Giovanni and Lvov, Yuri V.},
urldate = {2022-10-17},
date = {2021-05},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {ocean processes, wave-turbulence interactions, internal waves},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/SV7W6JWU/Dematteis and Lvov - 2021 - Downscale energy fluxes in scale-invariant oceanic.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/E6CUHNEY/575CD634A844D7DACF84EBBA9FF5A084.html:text/html},
}
@article{nazarenko_critical_2011,
title = {Critical balance in magnetohydrodynamic, rotating and stratified turbulence: towards a universal scaling conjecture},
volume = {677},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/critical-balance-in-magnetohydrodynamic-rotating-and-stratified-turbulence-towards-a-universal-scaling-conjecture/0E807CB31B6599E2076B419429AED1A3},
doi = {10.1017/S002211201100067X},
shorttitle = {Critical balance in magnetohydrodynamic, rotating and stratified turbulence},
abstract = {It is proposed that critical balance – a scale-by-scale balance between the linear propagation and nonlinear interaction time scales – can be used as a universal scaling conjecture for determining the spectra of strong turbulence in anisotropic wave systems. Magnetohydrodynamic ({MHD}), rotating and stratified turbulence are considered under this assumption and, in particular, a novel and experimentally testable energy cascade scenario and a set of scalings of the spectra are proposed for low-Rossby-number rotating turbulence. It is argued that in neutral fluids the critically balanced anisotropic cascade provides a natural path from strong anisotropy at large scales to isotropic Kolmogorov turbulence at very small scales. It is also argued that the k−2⊥ spectra seen in recent numerical simulations of low-Rossby-number rotating turbulence may be analogous to the k−3/2⊥ spectra of the numerical {MHD} turbulence in the sense that they could be explained by assuming that fluctuations are polarised (aligned) approximately as inertial waves (Alfvén waves for {MHD}).},
pages = {134--153},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Nazarenko, Sergei V. and Schekochihin, Alexander A.},
urldate = {2022-10-17},
date = {2011-06},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {stratified turbulence, {MHD} turbulence, rotating turbulence},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/777Z76I5/Nazarenko and Schekochihin - 2011 - Critical balance in magnetohydrodynamic, rotating .pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/F5NU7K5K/0E807CB31B6599E2076B419429AED1A3.html:text/html},
}
@article{monsalve_quantitative_2020,
title = {Quantitative Experimental Observation of Weak Inertial-Wave Turbulence},
volume = {125},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.125.254502},
doi = {10.1103/PhysRevLett.125.254502},
abstract = {We report the quantitative experimental observation of the weak inertial-wave turbulence regime of rotating turbulence. We produce a statistically steady homogeneous turbulent flow that consists of nonlinearly interacting inertial waves, using rough top and bottom boundaries to prevent the emergence of a geostrophic flow. As the forcing amplitude increases, the temporal spectrum evolves from a discrete set of peaks to a continuous spectrum. Maps of the bicoherence of the velocity field confirm such a gradual transition between discrete wave interactions at weak forcing amplitude and the regime described by weak turbulence theory ({WTT}) for stronger forcing. In the former regime, the bicoherence maps display a near-zero background level, together with sharp localized peaks associated with discrete resonances. By contrast, in the latter regime, the bicoherence is a smooth function that takes values of the order of the Rossby number in line with the infinite-domain and random-phase assumptions of {WTT}. The spatial spectra then display a power-law behavior, both the spectral exponent and the spectral level being accurately predicted by {WTT} at high Reynolds number and low Rossby number.},
pages = {254502},
number = {25},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Monsalve, Eduardo and Brunet, Maxime and Gallet, Basile and Cortet, Pierre-Philippe},
urldate = {2022-10-17},
date = {2020-12-14},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/ER96DK5R/PhysRevLett.125.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/H3WVC2EZ/Monsalve et al. - 2020 - Quantitative Experimental Observation of Weak Iner.pdf:application/pdf},
}
@article{nazarenko_wave_2015,
title = {Wave turbulence},
volume = {56},
issn = {0010-7514},
url = {https://doi.org/10.1080/00107514.2015.1015250},
doi = {10.1080/00107514.2015.1015250},
abstract = {Wave turbulence is the statistical mechanics of random waves with a broadband spectrum interacting via non-linearity. To understand its difference from non-random well-tuned coherent waves, one could compare the sound of thunder to a piece of classical music. Wave turbulence is surprisingly common and important in a great variety of physical settings, starting with the most familiar ocean waves to waves at quantum scales or to much longer waves in astrophysics. We will provide a basic overview of the wave turbulence ideas, approaches and main results emphasising the physics of the phenomena and using qualitative descriptions avoiding, whenever possible, involved mathematical derivations. In particular, dimensional analysis will be used for obtaining the key scaling solutions in wave turbulence – Kolmogorov–Zakharov ({KZ}) spectra.},
pages = {359--373},
number = {3},
journaltitle = {Contemporary Physics},
journal = {Contemporary Physics},
author = {Nazarenko, Sergey},
urldate = {2022-10-17},
date = {2015-07-03},
note = {Publisher: Taylor \& Francis
\_eprint: https://doi.org/10.1080/00107514.2015.1015250},
keywords = {kinetic equations, Kolmogorov–Zakharov spectra, non-equilibrium statistical mechanics, non-linear partial differential equations, turbulence, waves},
}
@article{brunet_shortcut_2020,
title = {Shortcut to Geostrophy in Wave-Driven Rotating Turbulence: The Quartetic Instability},
volume = {124},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.124.124501},
doi = {10.1103/PhysRevLett.124.124501},
shorttitle = {Shortcut to Geostrophy in Wave-Driven Rotating Turbulence},
abstract = {We report on laboratory experiments of wave-driven rotating turbulence. A set of wave makers produces inertial-wave beams that interact nonlinearly in the central region of a water tank mounted on a rotating platform. The forcing thus injects energy into inertial waves only. For moderate forcing amplitude, part of the energy of the forced inertial waves is transferred to subharmonic waves, through a standard triadic resonance instability. This first step is broadly in line with the theory of weak turbulence. Surprisingly however, stronger forcing does not lead to an inertial-wave turbulence regime. Instead, most of the kinetic energy condenses into a vertically invariant geostrophic flow, even though the latter is unforced. We show that resonant quartets of inertial waves can trigger an instability—the “quartetic instability”—that leads to such spontaneous emergence of geostrophy. In the present experiment, this instability sets in as a secondary instability of the classical triadic instability.},
pages = {124501},
number = {12},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Brunet, Maxime and Gallet, Basile and Cortet, Pierre-Philippe},
urldate = {2022-10-17},
date = {2020-03-24},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/9KZE9B4K/PhysRevLett.124.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/LGVY6AZ2/Brunet et al. - 2020 - Shortcut to Geostrophy in Wave-Driven Rotating Tur.pdf:application/pdf},
}
@article{nazarenko_verifying_2020,
title = {Verifying Weak Turbulence Theory},
volume = {13},
rights = {©2020 by the American Physical Society. All rights reserved.},
url = {https://physics.aps.org/articles/v13/194},
doi = {10.1103/PhysRevLett.125.254502},
abstract = {A new experiment in wave turbulence achieves the long-sought goal of generating “pure” interacting waves that behave as theory predicts.},
pages = {194},
journaltitle = {Physics},
journal = {Physics},
author = {Nazarenko, Sergey},
urldate = {2022-10-17},
date = {2020-12-14},
langid = {english},
note = {Publisher: American Physical Society},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/GN7IRAFA/Nazarenko - 2020 - Verifying Weak Turbulence Theory.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/I5WDFMEK/194.html:text/html},
}
@article{meyrand_direct_2016,
title = {Direct Evidence of the Transition from Weak to Strong Magnetohydrodynamic Turbulence},
volume = {116},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.116.105002},
doi = {10.1103/PhysRevLett.116.105002},
abstract = {One of the most important predictions in magnetohydrodynamics is that in the presence of a uniform magnetic field b0{\textasciicircum}e∥ a transition from weak to strong wave turbulence should occur when going from large to small perpendicular scales. This transition is believed to be a universal property of several anisotropic turbulent systems. We present, for the first time, direct evidence of such a transition using a decaying three-dimensional direct numerical simulation of incompressible balanced magnetohydrodynamic turbulence with a grid resolution of 30722×256. From large to small scales, the change of regime is characterized by (i) a change of slope in the energy spectrum going from approximately −2 to −3/2, (ii) an increase of the ratio between the wave and nonlinear times, with a critical ratio of χc∼1/3, (iii) a modification of the isocontours of energy revealing a transition from a purely perpendicular cascade to a cascade compatible with the critical-balance-type phenomenology, and (iv) an absence followed by a dramatic increase of the communication between Alfvén modes. The changes happen at approximately the same transition scale and can be seen as manifest signatures of the transition from weak to strong wave turbulence. Furthermore, we observe a significant nonlocal three-wave coupling between strongly and weakly nonlinear modes resulting in an inverse transfer of energy from small to large scales.},
pages = {105002},
number = {10},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Meyrand, Romain and Galtier, Sébastien and Kiyani, Khurom H.},
urldate = {2022-10-17},
date = {2016-03-09},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/S93K79RB/PhysRevLett.116.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/QMIZVIJW/Meyrand et al. - 2016 - Direct Evidence of the Transition from Weak to Str.pdf:application/pdf},
}
@article{biven_breakdown_2001,
title = {Breakdown of wave turbulence and the onset of intermittency},
volume = {280},
issn = {0375-9601},
url = {https://www.sciencedirect.com/science/article/pii/S0375960101000160},
doi = {10.1016/S0375-9601(01)00016-0},
abstract = {This Letter demonstrates that the kinetic equations for wave turbulence, the long time statistical behavior of a sea of weakly coupled, dispersive waves, will almost always develop solutions for which the theory fails due to strongly nonlinear and intermittent events either at small or large scales.},
pages = {28--32},
number = {1},
journaltitle = {Physics Letters A},
journal = {Physics Letters A},
author = {Biven, L. and Nazarenko, S. V. and Newell, A. C.},
urldate = {2022-10-17},
date = {2001-02-12},
langid = {english},
file = {ScienceDirect Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/AG79PV3W/Biven et al. - 2001 - Breakdown of wave turbulence and the onset of inte.pdf:application/pdf;ScienceDirect Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/QGVFPJTS/S0375960101000160.html:text/html},
}
@misc{cerri_turbulent_2022,
title = {Turbulent regimes in collisions of 3D Alfv{\textbackslash}'en-wave packets},
url = {http://arxiv.org/abs/2207.04301},
doi = {10.48550/arXiv.2207.04301},
abstract = {Using 3D gyrofluid simulations, we revisit the problem of Alfven-wave ({AW}) collisions as building blocks of the Alfvenic cascade and their interplay with magnetic reconnection at magnetohydrodynamic ({MHD}) scales. Depending on the large-scale nonlinearity parameter \${\textbackslash}chi\_0\$ (the ratio between {AW} linear propagation time and nonlinear turnover time), different regimes are observed. For strong nonlinearities (\${\textbackslash}chi\_0{\textbackslash}sim1\$), turbulence is consistent with a dynamically aligned, critically balanced cascade--fluctuations exhibit a scale-dependent alignment \${\textbackslash}sin{\textbackslash}theta\_k{\textbackslash}propto k\_{\textbackslash}perp{\textasciicircum}\{-1/4\}\$, a \$k\_{\textbackslash}perp{\textasciicircum}\{-3/2\}\$ spectrum and \$k\_{\textbackslash}{\textbar}{\textbackslash}propto k\_{\textbackslash}perp{\textasciicircum}\{1/2\}\$ spectral anisotropy. At weaker nonlinearities (small \${\textbackslash}chi\_0\$), a spectral break marking the transition between a large-scale weak regime and a small-scale \$k\_{\textbackslash}perp{\textasciicircum}\{-11/5\}\$ tearing-mediated range emerges, implying that dynamic alignment occurs also for weak nonlinearities. At \${\textbackslash}chi\_0{\textless}1\$ the alignment angle \${\textbackslash}theta\_\{k\_{\textbackslash}perp\}\$ shows a stronger scale dependence than in the \${\textbackslash}chi\_0{\textbackslash}sim1\$ regime, i.e. \${\textbackslash}sin{\textbackslash}theta\_k{\textbackslash}propto k\_{\textbackslash}perp{\textasciicircum}\{-1/2\}\$ at \${\textbackslash}chi\_0{\textbackslash}sim0.5\$, and \${\textbackslash}sin{\textbackslash}theta\_k{\textbackslash}propto k\_{\textbackslash}perp{\textasciicircum}\{-1\}\$ at \${\textbackslash}chi\_0{\textbackslash}sim0.1\$. Dynamic alignment in the weak regime also modifies the large-scale spectrum, scaling roughly as \$k\_{\textbackslash}perp{\textasciicircum}\{-3/2\}\$ for \${\textbackslash}chi\_0{\textbackslash}sim0.5\$ and as \$k\_{\textbackslash}perp{\textasciicircum}\{-1\}\$ for \${\textbackslash}chi\_0{\textbackslash}sim0.1\$. A phenomenological theory of dynamically aligned turbulence at weak nonlinearities that can explain these spectra and the transition to the tearing-mediated regime is provided; at small \${\textbackslash}chi\_0\$, the strong scale dependence of the alignment angle combines with the increased lifetime of turbulent eddies to allow tearing to onset and mediate the cascade at scales that can be larger than those predicted for a critically balanced cascade by several orders of magnitude. Such a transition to tearing-mediated turbulence may even supplant the usual weak-to-strong transition.},
number = {{arXiv}:2207.04301},
publisher = {{arXiv}},
author = {Cerri, Silvio Sergio and Passot, Thierry and Laveder, Dimitri and Sulem, Pierre-Louis and Kunz, Matthew W.},
urldate = {2022-10-17},
date = {2022-09-20},
eprinttype = {arxiv},
eprint = {2207.04301 [astro-ph, physics:physics]},
keywords = {Physics - Fluid Dynamics, Astrophysics - Solar and Stellar Astrophysics, Physics - Plasma Physics, Physics - Space Physics},
file = {arXiv Fulltext PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/3VFIT7S9/Cerri et al. - 2022 - Turbulent regimes in collisions of 3D Alfv'en-wav.pdf:application/pdf;arXiv.org Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/ST4C6RR3/2207.html:text/html},
}
@article{pouquet_dual_2017,
title = {Dual constant-flux energy cascades to both large scales and small scales},
volume = {29},
issn = {1070-6631},
url = {https://aip.scitation.org/doi/10.1063/1.5000730},
doi = {10.1063/1.5000730},
abstract = {In this paper, we present an overview of concepts and data concerning inverse cascades of excitation towards scales larger than the forcing scale in a variety of contexts, from two-dimensional fluids and wave turbulence to geophysical flows in the presence of rotation and stratification. We briefly discuss the role of anisotropy in the occurrence and properties of such cascades. We then show that the cascade of some invariant, for example, the total energy, may be transferred through nonlinear interactions to both the small scales and the large scales, with in each case a constant flux. This is in contrast to the classical picture, and we illustrate such a dual cascade in the context of atmospheric and oceanic observations, direct numerical simulations, and modeling. We also show that this dual cascade of total energy can in fact be decomposed in some cases into separate cascades of the kinetic and potential energies, provided the Froude and Rossby numbers are small enough. In all cases, the potential energy flux remains small, of the order of 10\% or less relative to the kinetic energy flux. Finally, we demonstrate that, in the small-scale inertial range, approximate equipartition between potential and kinetic modes is obtained, leading to an energy ratio close to one, with strong departure at large scales due to the dominant kinetic energy inverse cascade and piling-up at the lowest spatial frequency and at small scales due to unbalanced dissipation processes, even though the Prandtl number is equal to one.},
pages = {111108},
number = {11},
journaltitle = {Physics of Fluids},
journal = {Physics of Fluids},
author = {Pouquet, A. and Marino, R. and Mininni, P. D. and Rosenberg, D.},
urldate = {2022-10-17},
date = {2017-11},
note = {Publisher: American Institute of Physics},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/BSHBJN99/Pouquet et al. - 2017 - Dual constant-flux energy cascades to both large s.pdf:application/pdf},
}
@article{griffin_energy_2022,
title = {Energy Spectrum of Two-Dimensional Acoustic Turbulence},
volume = {128},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.128.224501},
doi = {10.1103/PhysRevLett.128.224501},
abstract = {We report an exact unique constant-flux power-law analytical solution of the wave kinetic equation for the turbulent energy spectrum, E(k)=C1√ϵacs/k, of acoustic waves in 2D with almost linear dispersion law, ωk=csk[1+(ak)2], ak≪1. Here, ϵ is the energy flux over scales, and C1 is the universal constant which was found analytically. Our theory describes, for example, acoustic turbulence in 2D Bose-Einstein condensates. The corresponding 3D counterpart of turbulent acoustic spectrum was found over half a century ago, however, due to the singularity in 2D, no solution has been obtained until now. We show the spectrum E(k) is realizable in direct numerical simulations of forced-dissipated Gross-Pitaevskii equation in the presence of strong condensate.},
pages = {224501},
number = {22},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Griffin, Adam and Krstulovic, Giorgio and L’vov, Victor S. and Nazarenko, Sergey},
urldate = {2022-10-17},
date = {2022-06-03},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/5UT8RRY4/PhysRevLett.128.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NXJXFE38/Griffin et al. - 2022 - Energy Spectrum of Two-Dimensional Acoustic Turbul.pdf:application/pdf},
}
@article{rodda_experimental_2022,
title = {Experimental observations of internal wave turbulence transition in a stratified fluid},
volume = {7},
url = {https://link.aps.org/doi/10.1103/PhysRevFluids.7.094802},
doi = {10.1103/PhysRevFluids.7.094802},
abstract = {Recent developments of the weak turbulence theory applied to internal waves exhibit a power-law solution of the kinetic energy equation close to the oceanic Garrett-Munk spectrum, confirming weakly nonlinear wave interactions as a likely explanation of the observed oceanic spectra. However, finite-size effects can hinder wave interactions in bounded domains, and observations often differ from theoretical predictions. This paper studies the dynamical regimes experimentally developing in a stratified fluid forced by internal gravity waves in a pentagonal domain. We find that by changing the shape and increasing the dimensions of the domain finite-size effects diminish and wave turbulence is observed. In this regime, the temporal spectra decay with a slope compatible with the Garrett-Munk spectra. Different regimes appear by changing the forcing conditions, namely, discrete wave turbulence, weak wave turbulence, and strongly stratified turbulence. The buoyancy Reynolds number Reb marks well the transitions between the regimes, with weak wave turbulence occurring for 1≲Reb≲3.5 and strongly nonlinear stratified turbulence for higher Reb.},
pages = {094802},
number = {9},
journaltitle = {Physical Review Fluids},
journal = {Phys. Rev. Fluids},
author = {Rodda, Costanza and Savaro, Clément and Davis, Géraldine and Reneuve, Jason and Augier, Pierre and Sommeria, Joël and Valran, Thomas and Viboud, Samuel and Mordant, Nicolas},
urldate = {2022-10-17},
date = {2022-09-26},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/8HWBSX7Y/PhysRevFluids.7.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/BFR7QGSC/Rodda et al. - 2022 - Experimental observations of internal wave turbule.pdf:application/pdf},
}
@book{vallis_atmospheric_2017,
location = {Cambridge},
edition = {2},
title = {Atmospheric and Oceanic Fluid Dynamics: Fundamentals and Large-Scale Circulation},
isbn = {978-1-107-06550-5},
url = {https://www.cambridge.org/core/books/atmospheric-and-oceanic-fluid-dynamics/41379BDDC4257CBE11143C466F6428A4},
shorttitle = {Atmospheric and Oceanic Fluid Dynamics},
abstract = {The atmosphere and ocean are two of the most important components of the climate system, and fluid dynamics is central to our understanding of both. This book provides a unified and comprehensive treatment of the field that blends classical results with modern interpretations. It takes the reader seamlessly from the basics to the frontiers of knowledge, from the equations of motion to modern theories of the general circulation of the atmosphere and ocean. These concepts are illustrated throughout the book with observations and numerical examples. As well as updating existing chapters, this full-color second edition includes new chapters on tropical dynamics, El Niño, the stratosphere and gravity waves. Supplementary resources are provided online, including figures from the book and problem sets, making this new edition an ideal resource for students in the atmospheric, oceanic and climate sciences, as well as in applied mathematics and engineering.},
publisher = {Cambridge University Press},
author = {Vallis, Geoffrey K.},
urldate = {2022-10-17},
date = {2017},
doi = {10.1017/9781107588417},
file = {Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/MLXS4923/41379BDDC4257CBE11143C466F6428A4.html:text/html},
}
@article{staquet_internal_2002,
title = {{INTERNAL} {GRAVITY} {WAVES}: From Instabilities to Turbulence},
volume = {34},
url = {https://doi.org/10.1146/annurev.fluid.34.090601.130953},
doi = {10.1146/annurev.fluid.34.090601.130953},
shorttitle = {{INTERNAL} {GRAVITY} {WAVES}},
abstract = {We review the mechanisms of steepening and breaking for internal gravity waves in a continuous density stratification. After discussing the instability of a plane wave of arbitrary amplitude in an infinite medium at rest, we consider the steepening effects of wave reflection on a sloping boundary and propagation in a shear flow. The final process of breaking into small-scale turbulence is then presented. The influence of those processes upon the fluid medium by mean flow changes is discussed. The specific properties of wave turbulence, induced by wave-wave interactions and breaking, are illustrated by comparative studies of oceanic and atmospheric observations, as well as laboratory and numerical experiments. We then review the different attempts at a statistical description of internal gravity wave fields, whether weakly or strongly interacting.},
pages = {559--593},
number = {1},
journaltitle = {Annual Review of Fluid Mechanics},
journal = {Annual Review of Fluid Mechanics},
author = {Staquet, C. and Sommeria, J.},
urldate = {2022-10-17},
date = {2002},
note = {\_eprint: https://doi.org/10.1146/annurev.fluid.34.090601.130953},
keywords = {geophysical fluid dynamics, stratified fluids, wave breaking, wave interactions},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/J4ADA7BD/Staquet and Sommeria - 2002 - INTERNAL GRAVITY WAVES From Instabilities to Turb.pdf:application/pdf},
}
@article{brethouwer_scaling_2007,
title = {Scaling analysis and simulation of strongly stratified turbulent flows},
volume = {585},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/scaling-analysis-and-simulation-of-strongly-stratified-turbulent-flows/745A82C73D8E9E7350317B2A61791CAF},
doi = {10.1017/S0022112007006854},
abstract = {Direct numerical simulations of stably and strongly stratified turbulent flows with Reynolds number Re ≫ 1 and horizontal Froude number Fh ≪ 1 are presented. The results are interpreted on the basis of a scaling analysis of the governing equations. The analysis suggests that there are two different strongly stratified regimes according to the parameter . When , viscous forces are unimportant and lv scales as lv ∼ U/N (U is a characteristic horizontal velocity and N is the Brunt–Väisälä frequency) so that the dynamics of the flow is inherently three-dimensional but strongly anisotropic. When , vertical viscous shearing is important so that (lh is a characteristic horizontal length scale). The parameter is further shown to be related to the buoyancy Reynolds number and proportional to ({lO}/η)4/3, where {lO} is the Ozmidov length scale and η the Kolmogorov length scale. This implies that there are simultaneously two distinct ranges in strongly stratified turbulence when : the scales larger than {lO} are strongly influenced by the stratification while those between {lO} and η are weakly affected by stratification. The direct numerical simulations with forced large-scale horizontal two-dimensional motions and uniform stratification cover a wide Re and Fh range and support the main parameter controlling strongly stratified turbulence being . The numerical results are in good agreement with the scaling laws for the vertical length scale. Thin horizontal layers are observed independently of the value of but they tend to be smooth for {\textless} 1, while for {\textgreater} 1 small-scale three-dimensional turbulent disturbances are increasingly superimposed. The dissipation of kinetic energy is mostly due to vertical shearing for {\textless} 1 but tends to isotropy as increases above unity. When {\textless} 1, the horizontal and vertical energy spectra are very steep while, when {\textgreater} 1, the horizontal spectra of kinetic and potential energy exhibit an approximate k−5/3h-power-law range and a clear forward energy cascade is observed.},
pages = {343--368},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Brethouwer, G. and Billant, P. and Lindborg, E. and Chomaz, J.-M.},
urldate = {2022-10-17},
date = {2007-08},
langid = {english},
note = {Publisher: Cambridge University Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/54FY2GNE/Brethouwer et al. - 2007 - Scaling analysis and simulation of strongly strati.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NPMEQZ67/745A82C73D8E9E7350317B2A61791CAF.html:text/html},
}
@article{lvov_oceanic_2010,
title = {Oceanic Internal-Wave Field: Theory of Scale-Invariant Spectra},
volume = {40},
issn = {0022-3670, 1520-0485},
url = {https://journals.ametsoc.org/view/journals/phoc/40/12/2010jpo4132.1.xml},
doi = {10.1175/2010JPO4132.1},
shorttitle = {Oceanic Internal-Wave Field},
abstract = {Abstract Steady scale-invariant solutions of a kinetic equation describing the statistics of oceanic internal gravity waves based on wave turbulence theory are investigated. It is shown in the nonrotating scale-invariant limit that the collision integral in the kinetic equation diverges for almost all spectral power-law exponents. These divergences come from resonant interactions with the smallest horizontal wavenumbers and/or the largest horizontal wavenumbers with extreme scale separations. A small domain is identified in which the scale-invariant collision integral converges and numerically find a convergent power-law solution. This numerical solution is close to the Garrett–Munk spectrum. Power-law exponents that potentially permit a balance between the infrared and ultraviolet divergences are investigated. The balanced exponents are generalizations of an exact solution of the scale-invariant kinetic equation, the Pelinovsky–Raevsky spectrum. A small but finite Coriolis parameter representing the effects of rotation is introduced into the kinetic equation to determine solutions over the divergent part of the domain using rigorous asymptotic arguments. This gives rise to the induced diffusion regime. The derivation of the kinetic equation is based on an assumption of weak nonlinearity. Dominance of the nonlocal interactions puts the self-consistency of the kinetic equation at risk. However, these weakly nonlinear stationary states are consistent with much of the observational evidence.},
pages = {2605--2623},
number = {12},
journaltitle = {Journal of Physical Oceanography},
journal = {Journal of Physical Oceanography},
author = {Lvov, Yuri V. and Polzin, Kurt L. and Tabak, Esteban G. and Yokoyama, Naoto},
urldate = {2022-10-17},
date = {2010-12-01},
note = {Publisher: American Meteorological Society
Section: Journal of Physical Oceanography},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/SV7CYDEW/Lvov et al. - 2010 - Oceanic Internal-Wave Field Theory of Scale-Invar.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/Q5R5A243/2010jpo4132.1.html:text/html},
}
@article{garrett_space-time_1972,
title = {Space-Time scales of internal waves},
volume = {3},
issn = {0016-7991},
url = {https://doi.org/10.1080/03091927208236082},
doi = {10.1080/03091927208236082},
abstract = {We have contrived a model E(αω) α μ−1ω−p+1(ω 2−ω i 2)−+ for the distribution of internal wave energy in horizontal wavenumber, frequency-space, with wavenumber α extending to some upper limit μ(ω) α ω r-1 (ω 2−ω i 2)½, and frequency ω extending from the inertial frequency ω i to the local Väisälä frequency n(y). The spectrum is portrayed as an equivalent continuum to which the modal structure (if it exists) is not vital. We assume horizontal isotropy, E(α, ω) = 2{παE}(α1, α2, ω), with α1, α2 designating components of α. Certain moments of E(α1, α2, ω) can be derived from observations. (i) Moored (or freely floating) devices measuring horizontal current u(t), vertical displacement η(t),…, yield the frequency spectra F (u,η,…)(ω) = ∫∫ (U 2, Z 2,…)E(α1, ∞2, ω) dα1 dα2, where U, Z,… are the appropriate wave functions. (ii) Similarly towed measurements give the wavenumber spectrum F (…)(α1) = ∫∫… dα2 dω. (iii) Moored measurements horizontally separated by X yield the coherence spectrum R(X, ω) which is related to the horizontal cosine transform ∫∫ E(α1, α2 ω) cos α1 Xdα1 dα1. (iv) Moored measurements vertically separated by Y yield R(Y, ω) and (v) towed measurements vertically separated yield R(Y, α1), and these are related to similar vertical Fourier transforms. Away from inertial frequencies, our model E(α, ω) α ω −p-r for α ≦ μ ω ω r, yields F(ω) ∞ ω −p, F(α1) ∞ α1 −q, with q = (p + r − 1)/r. The observed moored and towed spectra suggest p and q between 5/3 and 2, yielding r between 2/3 and 3/2, inconsistent with a value of r = 2 derived from Webster's measurements of moored vertical coherence. We ascribe Webster's result to the oceanic fine-structure. Our choice (p, q, r) = (2, 2, 1) is then not inconsistent with existing evidence. The spectrum is E(∞, ω) ∞ ω −1(ω 2−ω i 2 −1, and the α-bandwith μ ∞ (ω 2−ω i 2)+ is equivalent to about 20 modes. Finally, we consider the frequency-of-encounter spectra F([sgrave]) at any towing speed S, approaching F(ω) as S ≦ S o, and F(α1) for α1 = [sgrave]/S as S ≧ S o, where S o = 0(1 km/h) is the relevant Doppler velocity scale.},
pages = {225--264},
number = {3},
journaltitle = {Geophysical Fluid Dynamics},
journal = {Geophysical Fluid Dynamics},
author = {Garrett, Christopher and Munk, Walter},
urldate = {2022-10-17},
date = {1972-05-01},
note = {Publisher: Taylor \& Francis
\_eprint: https://doi.org/10.1080/03091927208236082},
}
@article{garrett_internal_1979,
title = {Internal Waves in the Ocean},
volume = {11},
url = {https://doi.org/10.1146/annurev.fl.11.010179.002011},
doi = {10.1146/annurev.fl.11.010179.002011},
pages = {339--369},
number = {1},
journaltitle = {Annual Review of Fluid Mechanics},
journal = {Annual Review of Fluid Mechanics},
author = {Garrett, C and Munk, W},
urldate = {2022-10-17},
date = {1979},
note = {\_eprint: https://doi.org/10.1146/annurev.fl.11.010179.002011},
}
@article{caillol_kinetic_2000,
title = {Kinetic equations and stationary energy spectra of weakly nonlinear internal gravity waves},
volume = {32},
issn = {0377-0265},
url = {https://www.sciencedirect.com/science/article/pii/S0377026599000433},
doi = {10.1016/S0377-0265(99)00043-3},
abstract = {An ensemble of random-phase internal gravity waves is considered in the dynamical framework of the Euler–Boussinesq equations. For flows with zero mean potential vorticity, a kinetic equation for the mean spectral energy density of the waves is obtained under hypothesis of Gaussian statistics with zero correlation length. Stationary scaling solutions of this equation are found for almost vertically propagating waves. The resulting spectra are anisotropic in vertical and horizontal wave numbers. For flows with small but non-zero mean potential vorticity, under the same statistical hypothesis applied to the wave part of the flow, it is shown that the vortex part and the wave part decouple. The vortex part obeys a limiting slow dynamics equation exhibiting vertical collapse and layering which may contaminate the wave-part spectra. Relation of these results to the in situ atmospheric measurements and previous work on oceanic gravity waves is discussed.},
pages = {81--112},
number = {2},
journaltitle = {Dynamics of Atmospheres and Oceans},
journal = {Dynamics of Atmospheres and Oceans},
author = {Caillol, P. and Zeitlin, V.},
urldate = {2022-10-17},
date = {2000-07-01},
langid = {english},
keywords = {Kinetic equations, Nonlinear internal gravity waves, Stationary energy spectra},
file = {ScienceDirect Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/ADSYJAUG/Caillol and Zeitlin - 2000 - Kinetic equations and stationary energy spectra of.pdf:application/pdf;ScienceDirect Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/4APF4NNI/S0377026599000433.html:text/html},
}
@article{lvov_hamiltonian_2001,
title = {Hamiltonian Formalism and the Garrett-Munk Spectrum of Internal Waves in the Ocean},
volume = {87},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.87.168501},
doi = {10.1103/PhysRevLett.87.168501},
abstract = {Wave turbulence formalism for long internal waves in a stratified fluid is developed, based on a natural Hamiltonian description. A kinetic equation appropriate for the description of spectral energy transfer is derived, and its anisotropic self-similar stationary solution corresponding to a direct cascade of energy toward the short scales is found. This solution is very close to the high wave-number limit of the Garrett-Munk spectrum of long internal waves in the ocean. In fact, a small modification of the Garrett-Munk formalism includes a spectrum consistent with the one predicted by wave turbulence.},
pages = {168501},
number = {16},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Lvov, Yuri V. and Tabak, Esteban G.},
urldate = {2022-10-17},
date = {2001-10-02},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/LG4YLEL4/PhysRevLett.87.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/526LEXEM/Lvov and Tabak - 2001 - Hamiltonian Formalism and the Garrett-Munk Spectru.pdf:application/pdf},
}
@article{lvov_energy_2004,
title = {Energy Spectra of the Ocean's Internal Wave Field: Theory and Observations},
volume = {92},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.92.128501},
doi = {10.1103/PhysRevLett.92.128501},
shorttitle = {Energy Spectra of the Ocean's Internal Wave Field},
abstract = {The high-frequency limit of the Garrett and Munk spectrum of internal waves in the ocean and the observed deviations from it are shown to form a pattern consistent with the predictions of wave turbulence theory. In particular, the high-frequency limit of the Garrett and Munk spectrum constitutes an exact steady-state solution of the corresponding kinetic equation.},
pages = {128501},
number = {12},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Lvov, Yuri V. and Polzin, Kurt L. and Tabak, Esteban G.},
urldate = {2022-10-17},
date = {2004-03-24},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/QQPMF8W3/PhysRevLett.92.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/E4LCQIZW/Lvov et al. - 2004 - Energy Spectra of the Ocean's Internal Wave Field.pdf:application/pdf},
}
@article{smith_generation_2002,
title = {Generation of slow large scales in forced rotating stratified turbulence},
volume = {451},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/generation-of-slow-large-scales-in-forced-rotating-stratified-turbulence/10795099088F4FF48B7F219AFC57D8E0},
doi = {10.1017/S0022112001006309},
abstract = {Numerical simulations are used to study homogeneous, forced turbulence in three-dimensional
rotating, stably stratified flow in the Boussinesq approximation, where the
rotation axis and gravity are both in the zˆ-direction. Energy is injected through a three-dimensional
isotropic white-noise forcing localized at small scales. The parameter
range studied corresponds to Froude numbers smaller than an O(1) critical value,
below which energy is transferred to scales larger than the forcing scales. The values
of the ratio N/f range from ≈1/2 to ∞, where N is the Brunt–Väisälä frequency
and f is twice the rotation rate. For strongly stratified flows (N/f[Gt ]1), the slow
large scales generated by the fast small-scale forcing consist of vertically sheared
horizontal flow. Quasi-geostrophic dynamics dominate, at large scales, only when
1/2 [les ] N/f [les ] 2, which is the range where resonant triad interactions cannot occur.},
pages = {145--168},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Smith, Leslie M. and Waleffe, Fabian},
urldate = {2022-10-17},
date = {2002-01},
langid = {english},
note = {Publisher: Cambridge University Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/8WBPPN3E/Smith and Waleffe - 2002 - Generation of slow large scales in forced rotating.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/VWAV9GH4/10795099088F4FF48B7F219AFC57D8E0.html:text/html},
}
@article{waite_stratified_2006,
title = {Stratified turbulence generated by internal gravity waves},
volume = {546},
issn = {1469-7645, 0022-1120},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/stratified-turbulence-generated-by-internal-gravity-waves/BCA4EDC68F8194AB84268656754D8871},
doi = {10.1017/S0022112005007111},
abstract = {We present numerical simulations of randomly forced internal gravity waves in a uniformly stratified Boussinesq fluid, and compare the resulting vertical wavenumber energy spectra with the saturation spectrum \$E\_z(k\_z){\textbackslash},\{=\}{\textbackslash},c{\textbackslash},N{\textasciicircum}2k\_z{\textasciicircum}\{-3\}\$ (\$N\$ is the Brunt–Väisälä frequency) observed in the atmosphere and ocean. Overall, we have been unsuccessful at reproducing the observed spectrum in our simulations. Our spectra are shallower than \$k\_z{\textasciicircum}\{-3\}\$, although they steepen towards it with increasing stratification as long as wave breaking (in the form of static instability) is resolved. The spectral amplitude increases like \$N{\textasciicircum}\{1.1\}\$ rather than \$N{\textasciicircum}2\$. For a single stratification, our spectrum agrees well with the saturation spectrum with \$c{\textbackslash},\{=\}{\textbackslash},0.1\$, but only because it is spuriously steepened by insufficient resolution. We show that overturning occurs when the length scale \$l\_c{\textbackslash},\{=\}{\textbackslash},u\_\{rms\}/N\$ is larger than the dissipation scale, where \$u\_\{rms\}\$ is the root mean square velocity. This scale must be at least three times larger than the dissipation scale for the energy spectrum to be independent of Reynolds number in our simulations. When this condition is not satisfied, the computed energy spectrum must be interpreted with caution. Finally, we show that for strong stratifications, the presence of vortical energy can have a dramatic effect on the spectrum of wave energy due to the efficiency of interactions between two waves and a vortical mode. Any explanation of the energy spectrum involving resonant interactions must take into account the effect of vortical motion.},
pages = {313--339},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Waite, Michael L. and Bartello, Peter},
urldate = {2022-10-17},
date = {2006-01},
langid = {english},
note = {Publisher: Cambridge University Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/RNQX4AGK/Waite and Bartello - 2006 - Stratified turbulence generated by internal gravit.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/W5K7E68Q/BCA4EDC68F8194AB84268656754D8871.html:text/html},
}
@article{bartello_sensitivity_2013,
title = {Sensitivity of stratified turbulence to the buoyancy Reynolds number},
volume = {725},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/sensitivity-of-stratified-turbulence-to-the-buoyancy-reynolds-number/B06603E29019BAE59F541884CE2A9D99},
doi = {10.1017/jfm.2013.170},
abstract = {In this article we present direct numerical simulations of stratified flow at resolutions of up to 20482×51320482×513204\{8\}{\textasciicircum}\{2\} {\textbackslash}times 513, to explore scalings for the dynamics of stably stratified turbulence. Recent work suggests that for strong enough stratification, the vertical integral scale of the turbulence adjusts to yield a vertical Froude number, 𝐹𝑣Fv\{F\}\_\{v\} , of order unity at high enough Reynolds number, whilst the horizontal Froude number, 𝐹ℎFh\{F\}\_\{h\} , decreases as stratification is increased. Our numerical simulations are consistent with predictions by Lindborg (J. Fluid Mech., vol. 550, 2006, pp, 207–242), and with numerical simulations at lower resolution, in that the horizontal kinetic energy spectrum follows a Kolmogorov spectrum (after replacing the wavenumber with the horizontal wavenumber) and that the horizontal potential energy spectrum similarly follows the Corrsin–Obukhov spectrum for a passive scalar. Most importantly, we build upon these previous results by thoroughly exploring the dependence of the horizontal spectrum of horizontal kinetic energy on both the stratification and the relative size of the vertical dissipation terms, as quantified by the buoyancy Reynolds number. Our most important result is that variations in the power-law exponent scale entirely with the buoyancy Reynolds number and not with the stratification itself, lending considerable support to the Lindborg (2006) hypothesis that horizontal spectra are independent of stratification at large Reynolds numbers. We further demonstrate that even at the large numerical resolution of this study, the spectrum and hence the dynamics are affected by the buoyancy Reynolds number unless it is larger than 𝑂(10)O(10)O(10), indicating that extreme care must be taken when assessing claims made from previous numerical simulations of stratified flow at low or moderate resolution and extrapolating the results to geophysical or astrophysical Reynolds numbers.},
pages = {1--22},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Bartello, P. and Tobias, S. M.},
urldate = {2022-10-17},
date = {2013-06},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {stratified turbulence, stratified flows, turbulent flows},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/J3IVWP8H/Bartello and Tobias - 2013 - Sensitivity of stratified turbulence to the buoyan.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/JR6MICMQ/B06603E29019BAE59F541884CE2A9D99.html:text/html},
}
@thesis{craya_contribution_1957,
title = {Contribution à l'analyse de la turbulence associée à des vitesses moyennes},
url = {https://tel.archives-ouvertes.fr/tel-00684659},
abstract = {Il y a un peu plus de vingt ans se produisait, dans le domaine de la turbulence, une de ces mutations dont la Science bénéficie périodiquement et qui lui impriment, pour de longues années, une impulsion vigoureuse. Délaissant les phénomènes de turbulence usuels qui avaient, jusque-là, défié l'analyse, G. I. Taylor introduisait un schéma simple caractérisé par l'absence de vitesses moyennes, l'homogénéité et l'isotropie. L'écoulement à l'aval d'une grille dans une soufflerie lui fournissait même une réalisation facile d'une telle turbulence isotrope, circonstance considérée alors comme naturelle, regardée aujourd'hui avec un peu plus de surprise comme un accident heureux. Parallèlement, enfin, le petit instrument merveilleux qu'est le fil chaud parvenait, à force d'ingéniosité et d'électronique, à livrer à l'observation des propriétés de plus en plus fines des fluctuations de vitesse.},
institution = {Université de Grenoble},
type = {phdthesis},
author = {Craya, Antoine},
urldate = {2022-10-17},
date = {1957-04-02},
langid = {french},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/YUIS437M/Craya - 1957 - Contribution à l'analyse de la turbulence associée.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/3SRR3N2D/tel-00684659.html:text/html},
}
@thesis{linares_numerical_2020,
title = {Numerical study of 2D stratified turbulence forced by internal gravity waves},
url = {https://tel.archives-ouvertes.fr/tel-02612797},
abstract = {The oceanic motions are composed of eddies with a very large horizontal scaleand 3D propagating internal gravity waves. Its kinetic energy spectra follow thewell-known Garrett and Munk spectrum, which is usually interpreted as thesignature of interacting internal gravity waves. Our main motivation is toreproduce the turbulence regime observed in nature by forcing waves.Two-dimensional (2D) stratified flows on a vertical cross-section differ fromits analogous three-dimensional flows in its lack of vertical vorticity,supporting only waves and shear modes. In this {PhD} work, we perform a numericalstudy of 2D stratified turbulence forced with internal gravity waves. We get ridof the shear modes, sustaining a system only with wave modes. Unlike precedentstudies, the forcing is applied to a localized region of the spectral space, inwhich forced internal waves have a similar time scale. We forceintermediate-scale waves to allow the dynamics to develop both upscale anddownscale energy cascade.We first present the different regimes of 2D stratified turbulence with aparticular interest in the ocean-like regime, i.e. strong stratification andlarge Reynolds number. The dynamics of the energy cascade is analysed by meansof the spectral energy budget. Furthermore, we check if it is possible to obtainturbulence driven by weakly non-linear ineracting waves by performing aspatio-temporal analysis. To conclude, we report results of numericalsimulations forced either on the vorticity or on the eigenmode of {theNavier}-Stokes equations in order to study the degree of universality of 2Dstratified turbulence with respect to the forcing.},
institution = {Université Grenoble Alpes [2020-....]},
type = {phdthesis},
author = {Linares, Miguel Calpe},
urldate = {2022-10-17},
date = {2020-02-26},
langid = {english},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/RKAFWF24/Linares - 2020 - Numerical study of 2D stratified turbulence forced.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/4RQTDIJY/tel-02612797v2.html:text/html},
}
@article{garrett_space-time_1975,
title = {Space-time scales of internal waves: A progress report},
volume = {80},
issn = {2156-2202},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/JC080i003p00291},
doi = {10.1029/JC080i003p00291},
shorttitle = {Space-time scales of internal waves},
abstract = {We present a revised model for the distribution of internal wave energy in wave number frequency space. The model is empirical, guided by the following measurements: moored spectra and moored coherences for horizontal and vertical separations ({MS}, {MHC}, {MVC} as functions of frequency), towed spectra and towed vertical and time-lagged coherences ({TS}, {TVC}, {TLC} as functions of horizontal wave number), and dropped spectra and dropped horizontal and lagged coherences ({DS}, {DHC}, {DLC} as functions of vertical wave number). Measurements are available for all but {TLC} and {DHC}. There is some indication of universality, suggesting perhaps a saturation limit.},
pages = {291--297},
number = {3},
journaltitle = {Journal of Geophysical Research (1896-1977)},
journal = {Journal of Geophysical Research (1896-1977)},
author = {Garrett, Christopher and Munk, Walter},
urldate = {2022-10-17},
date = {1975},
langid = {english},
note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/{JC}080i003p00291},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/SPQ65FPR/Garrett and Munk - 1975 - Space-time scales of internal waves A progress re.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/38FFGBDN/JC080i003p00291.html:text/html},
}
@book{zakharov_kolmogorov_1992,
location = {Berlin, Heidelberg},
title = {Kolmogorov Spectra of Turbulence I},
isbn = {978-3-642-50054-1 978-3-642-50052-7},
url = {http://link.springer.com/10.1007/978-3-642-50052-7},
series = {Springer Series in Nonlinear Dynamics},
publisher = {Springer},
author = {Zakharov, Vladimir E. and L’vov, Victor S. and Falkovich, Gregory},
editorb = {Calogero, F. and Fuchssteiner, B. and Rowlands, G. and Segur, H. and Wadati, M. and Zakharov, V. E.},
editorbtype = {redactor},
urldate = {2022-10-17},
date = {1992},
doi = {10.1007/978-3-642-50052-7},
keywords = {kinetic equations, turbulence, atmosphere, Damping, Dissipation, fluid- and aerodynamics, Kinetische Gleichungen, Plasma, spectra, stability, Turbulenz, wave spectrum, Wellenspektrum},
file = {Submitted Version:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/IWYB4WVZ/Zakharov et al. - 1992 - Kolmogorov Spectra of Turbulence I.pdf:application/pdf},
}
@article{pan_numerical_2020,
title = {Numerical Investigation of Mechanisms Underlying Oceanic Internal Gravity Wave Power-Law Spectra},
volume = {50},
issn = {0022-3670, 1520-0485},
url = {https://journals.ametsoc.org/view/journals/phoc/50/9/jpoD200039.xml},
doi = {10.1175/JPO-D-20-0039.1},
abstract = {Abstract We consider the power-law spectra of internal gravity waves in a rotating and stratified ocean. Field measurements have shown considerable variability of spectral slopes compared to the high-wavenumber, high-frequency portion of the Garrett–Munk ({GM}) spectrum. Theoretical explanations have been developed through wave turbulence theory ({WTT}), where different power-law solutions of the kinetic equation can be found depending on the mechanisms underlying the nonlinear interactions. Mathematically, these are reflected by the convergence properties of the so-called collision integral ({CL}) at low- and high-frequency limits. In this work, we study the mechanisms in the formation of the power-law spectra of internal gravity waves, utilizing numerical data from the high-resolution modeling of internal waves ({HRMIW}) in a region northwest of Hawaii. The model captures the power-law spectra in broad ranges of space and time scales, with scalings ω−2.05±0.2 in frequency and m−2.58±0.4 in vertical wavenumber. The latter clearly deviates from the {GM}76 spectrum but is closer to a family of induced-diffusion-dominated solutions predicted by {WTT}. Our analysis of nonlinear interactions is performed directly on these model outputs, which is fundamentally different from previous work assuming a {GM}76 spectrum. By applying a bicoherence analysis and evaluations of modal energy transfer, we show that the {CL} is dominated by nonlocal interactions between modes in the power-law range and low-frequency inertial motions. We further identify induced diffusion and the near-resonances at its spectral vicinity as dominating the formation of power-law spectrum.},
pages = {2713--2733},
number = {9},
journaltitle = {Journal of Physical Oceanography},
journal = {Journal of Physical Oceanography},
author = {Pan, Yulin and Arbic, Brian K. and Nelson, Arin D. and Menemenlis, Dimitris and Peltier, W. R. and Xu, Wentao and Li, Ye},
urldate = {2022-10-17},
date = {2020-09-03},
note = {Publisher: American Meteorological Society
Section: Journal of Physical Oceanography},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/84LP88LZ/Pan et al. - 2020 - Numerical Investigation of Mechanisms Underlying O.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NCBS2Q4H/jpoD200039.html:text/html},
}
@article{medvedev_turbulence_2007,
title = {Turbulence of near-inertial waves in the continuously stratified fluid},
volume = {371},
issn = {0375-9601},
url = {https://www.sciencedirect.com/science/article/pii/S0375960107011760},
doi = {10.1016/j.physleta.2007.08.014},
abstract = {By using the normal form of continuously stratified “primitive” equations of geophysical fluid dynamics with density (in the ocean), or potential temperature (in the atmosphere) playing the role of the vertical coordinate, we decouple vortex and wave motions in the system, introduce normal variables, and derive the effective Hamiltonian for waves with frequencies close to the inertial frequency (near-inertial waves, {NIW}). We then apply the weak turbulence approach to the random-phase ensembles of these waves. We show how the anisotropic scale-invariance of {NIW} may be exploited in order to obtain the stationary power-law spectra. The non-decay anisotropic scale-invariant dispersion laws of the {NIW}-type were not studied previously in the weak-turbulence literature.},
pages = {221--227},
number = {3},
journaltitle = {Physics Letters A},
journal = {Physics Letters A},
author = {Medvedev, S. B. and Zeitlin, V.},
urldate = {2022-10-17},
date = {2007-11-12},
langid = {english},
file = {ScienceDirect Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/UH7AF5EV/Medvedev and Zeitlin - 2007 - Turbulence of near-inertial waves in the continuou.pdf:application/pdf;ScienceDirect Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/RX2HQYIR/S0375960107011760.html:text/html},
}
@book{nazarenko_wave_2011,
location = {Berlin, Heidelberg},
title = {Wave Turbulence},
volume = {825},
isbn = {978-3-642-15941-1 978-3-642-15942-8},
url = {http://link.springer.com/10.1007/978-3-642-15942-8},
series = {Lecture Notes in Physics},
publisher = {Springer},
author = {Nazarenko, Sergey},
urldate = {2022-10-17},
date = {2011},
doi = {10.1007/978-3-642-15942-8},
keywords = {fluid vortices, geophysical flows, nonlinear optics, nonlinear waves, solitons, turbulences},
file = {Submitted Version:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/D4XGKJPA/Nazarenko - 2011 - Wave Turbulence.pdf:application/pdf},
}
@article{falcon_experiments_2022,
title = {Experiments in Surface Gravity–Capillary Wave Turbulence},
volume = {54},
url = {https://doi.org/10.1146/annurev-fluid-021021-102043},
doi = {10.1146/annurev-fluid-021021-102043},
abstract = {The last decade has seen a significant increase in the number of studies devoted to wave turbulence. Many deal with water waves, as modeling of ocean waves has historically motivated the development of weak turbulence theory, which addresses the dynamics of a random ensemble of weakly nonlinear waves in interaction. Recent advances in experiments have shown that this theoretical picture is too idealized to capture experimental observations. While gravity dominates much of the oceanic spectrum, waves observed in the laboratory are in fact gravity–capillary waves, due to the restricted size of wave basins. This richer physics induces many interleaved physical effects far beyond the theoretical framework, notably in the vicinity of the gravity–capillary crossover. These include dissipation, finite–system size effects, and finite nonlinearity effects. Simultaneous space-and-time-resolved techniques, now available, open the way for a much more advanced analysis of these effects.},
pages = {1--25},
number = {1},
journaltitle = {Annual Review of Fluid Mechanics},
journal = {Annual Review of Fluid Mechanics},
author = {Falcon, Eric and Mordant, Nicolas},
urldate = {2022-10-17},
date = {2022},
note = {\_eprint: https://doi.org/10.1146/annurev-fluid-021021-102043},
keywords = {cascades, experiments, gravity–capillary wave turbulence, nonlinear random waves, wave–wave interactions, weak turbulence},
file = {Full Text:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/6W2ERKKM/Falcon and Mordant - 2022 - Experiments in Surface Gravity–Capillary Wave Turb.pdf:application/pdf},
}
@article{galtier_weak_2000,
title = {A weak turbulence theory for incompressible magnetohydrodynamics},
volume = {63},
issn = {1469-7807, 0022-3778},
url = {https://www.cambridge.org/core/journals/journal-of-plasma-physics/article/weak-turbulence-theory-for-incompressible-magnetohydrodynamics/D232F97E9C4C7E521A136131A3CCA3C8},
doi = {10.1017/S0022377899008284},
abstract = {We derive a weak turbulence formalism for incompressible magnetohydrodynamics.
Three-wave interactions lead to a system of kinetic equations for the
spectral densities of energy and helicity. The kinetic equations conserve energy in
all wavevector planes normal to the applied magnetic field B0ê∥.
Numerically and analytically, we find energy spectra
E± ∼ kn±⊥,
such that n+ + n− = −4, where E±
are the spectra of the Elsässer variables z± = v ± b in the
two-dimensional case (k∥ = 0). The constants of the spectra are computed exactly and found to
depend on the amount of correlation between the velocity and the magnetic field. Comparison
with several numerical simulations and models is also made.},
pages = {447--488},
number = {5},
journaltitle = {Journal of Plasma Physics},
journal = {Journal of Plasma Physics},
author = {Galtier, S. and Nazarenko, S. V. and Newell, A. C. and Pouquet, A.},
urldate = {2022-10-17},
date = {2000-06},
langid = {english},
note = {Publisher: Cambridge University Press},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/GB3KW4CS/Galtier et al. - 2000 - A weak turbulence theory for incompressible magnet.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/5H72V4WY/D232F97E9C4C7E521A136131A3CCA3C8.html:text/html},
}
@article{galtier_weak_2003,
title = {Weak inertial-wave turbulence theory},
volume = {68},
url = {https://link.aps.org/doi/10.1103/PhysRevE.68.015301},
doi = {10.1103/PhysRevE.68.015301},
abstract = {A weak wave turbulence theory is established for incompressible fluids under rapid rotation using a helicity decomposition, and the kinetic equations for energy E and helicity H are derived for three-wave coupling. As expected, nonlinear interactions of inertial waves lead to two-dimensional behavior of the turbulence with a transfer of energy and helicity mainly in the direction perpendicular to the rotation axis. For such a turbulence, we find, analytically, the anisotropic spectra E∼k−5/2⊥k−1/2∥, H∼k−3/2⊥k−1/2∥, and we prove that the energy cascade is to small scales. At lowest order, the wave theory does not describe the dynamics of two-dimensional (2D) modes which decouples from 3D waves.},
pages = {015301},
number = {1},
journaltitle = {Physical Review E},
journal = {Phys. Rev. E},
author = {Galtier, Sébastien},
urldate = {2022-10-17},
date = {2003-07-15},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NQB7EZWC/PhysRevE.68.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/UKN6ZDRF/Galtier - 2003 - Weak inertial-wave turbulence theory.pdf:application/pdf},
}
@article{lvov_weak_2010,
title = {Weak turbulence of Kelvin waves in superfluid He},
volume = {36},
issn = {1063-777X},
url = {https://aip.scitation.org/doi/10.1063/1.3499242},
doi = {10.1063/1.3499242},
abstract = {The physics of small-scale quantum turbulence in superfluids is essentially based on knowledge of the energy spectrum of Kelvin waves,
𝐸
𝑘
Ek
. Here we derive a new type of kinetic equation for Kelvin waves on quantized vortex filaments with random large-scale curvature which describes a step-by-step energy cascade over scales resulting from five-wave interactions. This approach replaces the earlier six-wave theory, which has recently been shown to be inconsistent owing to nonlocalization Solving the four-wave kinetic equation, we found a new local spectrum with a universal (curvature-independent) exponent,
𝐸
𝑘
𝑘
−5∕3
Ek∝k−5∕3
, which must replace the nonlocal spectrum of the six-wave theory,
𝐸
𝑘
𝑘
−7∕5
Ek∝k−7∕5
in any future theory, e.g., when determining the quantum turbulence decay rate, found by Kosik and Svistunov under an incorrect assumption of locality of energy transfer in six-wave interactions.},
pages = {785--791},
number = {8},
journaltitle = {Low Temperature Physics},
journal = {Low Temperature Physics},
author = {L’vov, Victor S. and Nazarenko, Sergey},
urldate = {2022-10-17},
date = {2010-08},
note = {Publisher: American Institute of Physics},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/X5Q5RVJL/L’vov and Nazarenko - 2010 - Weak turbulence of Kelvin waves in superfluid He.pdf:application/pdf},
}
@article{during_weak_2006,
title = {Weak Turbulence for a Vibrating Plate: Can One Hear a Kolmogorov Spectrum?},
volume = {97},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.97.025503},
doi = {10.1103/PhysRevLett.97.025503},
shorttitle = {Weak Turbulence for a Vibrating Plate},
abstract = {We study the long-time evolution of waves of a thin elastic plate in the limit of small deformation so that modes of oscillations interact weakly. According to the theory of weak turbulence (successfully applied in the past to plasma, optics, and hydrodynamic waves), this nonlinear wave system evolves at long times with a slow transfer of energy from one mode to another. We derive a kinetic equation for the spectral transfer in terms of the second order moment. We show that such a theory describes the approach to an equilibrium wave spectrum and represents also an energy cascade, often called the Kolmogorov-Zakharov spectrum. We perform numerical simulations that confirm this scenario.},
pages = {025503},
number = {2},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Düring, Gustavo and Josserand, Christophe and Rica, Sergio},
urldate = {2022-10-17},
date = {2006-07-14},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/G3MB9VBV/PhysRevLett.97.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/6XFVV6ZJ/Düring et al. - 2006 - Weak Turbulence for a Vibrating Plate Can One Hea.pdf:application/pdf},
}
@article{galtier_turbulence_2017,
title = {Turbulence of Weak Gravitational Waves in the Early Universe},
volume = {119},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.119.221101},
doi = {10.1103/PhysRevLett.119.221101},
abstract = {We study the statistical properties of an ensemble of weak gravitational waves interacting nonlinearly in a flat space-time. We show that the resonant three-wave interactions are absent and develop a theory for four-wave interactions in the reduced case of a 2.5+1 diagonal metric tensor. In this limit, where only plus-polarized gravitational waves are present, we derive the interaction Hamiltonian and consider the asymptotic regime of weak gravitational wave turbulence. Both direct and inverse cascades are found for the energy and the wave action, respectively, and the corresponding wave spectra are derived. The inverse cascade is characterized by a finite-time propagation of the metric excitations—a process similar to an explosive nonequilibrium Bose–Einstein condensation, which provides an efficient mechanism to ironing out small-scale inhomogeneities. The direct cascade leads to an accumulation of the radiation energy in the system. These processes might be important for understanding the early Universe where a background of weak nonlinear gravitational waves is expected.},
pages = {221101},
number = {22},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Galtier, Sébastien and Nazarenko, Sergey V.},
urldate = {2022-10-17},
date = {2017-11-28},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/LNLCRS9J/PhysRevLett.119.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/8CLAM9EJ/Galtier and Nazarenko - 2017 - Turbulence of Weak Gravitational Waves in the Earl.pdf:application/pdf},
}
@article{dyachenko_optical_1992,
title = {Optical turbulence: weak turbulence, condensates and collapsing filaments in the nonlinear Schrödinger equation},
volume = {57},
issn = {0167-2789},
url = {https://www.sciencedirect.com/science/article/pii/016727899290090A},
doi = {10.1016/0167-2789(92)90090-A},
shorttitle = {Optical turbulence},
abstract = {The nonlinear Schrödinger ({NLS}) equation {iΨt} + ∇2Ψ + α⋎Ψ⋎{sΨ} = 0 is a canonical and universal equation which is of major importance in continuum mechanics, plasma physics and optics. This paper argues that much of the observed solution behavior in the critical case sd = 4, where d is dimension and s is the order of nonlinearity, can be understood in terms of a combination of weak turbulence theory and condensate and collapse formation. The results are derived in the broad context of a class of Hamiltonian systems of which {NLS} is a member, so that the reader can gain a perspective on the ingredients important for the realization of the various equilibrium spectra, thermodynamic, pure Kolmogorov and combinations thereof. We also present time-dependent, self-similar solutions which describe the relaxation of the system towards these equilibrium states. We show that the number of particles lost in an individual collapse event is virtually independent of damping. Our numerical simulation of the full governing equations is the first to show the validity of the weak turbulence approximation. We also present a mechanism for intermittency which should have widespread application. It is caused by strongly nonlinear collapse events which are nucleated by a flow of particles towards the origin in wavenumber space. These highly organized events result in a cascade of particle number towards high wavenumbers and give rise to an intermittency and a behavior which violates many of the usual Kolmogorov assumptions about the loss of statistical information and the statistical independence of large and small scales. We discuss the relevance of these ideas to hydrodynamic turbulence in the conclusion.},
pages = {96--160},
number = {1},
journaltitle = {Physica D: Nonlinear Phenomena},
journal = {Physica D: Nonlinear Phenomena},
author = {Dyachenko, S. and Newell, A. C. and Pushkarev, A. and Zakharov, V. E.},
urldate = {2022-10-17},
date = {1992-06-15},
langid = {english},
file = {ScienceDirect Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/2BN2RYHW/Dyachenko et al. - 1992 - Optical turbulence weak turbulence, condensates a.pdf:application/pdf;ScienceDirect Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/JSTGRDA5/016727899290090A.html:text/html},
}
@article{zhu_testing_2022,
title = {Testing wave turbulence theory for the Gross-Pitaevskii system},
volume = {106},
url = {https://link.aps.org/doi/10.1103/PhysRevE.106.014205},
doi = {10.1103/PhysRevE.106.014205},
abstract = {We test the predictions of the theory of weak wave turbulence by performing numerical simulations of the Gross-Pitaevskii equation ({GPE}) and the associated wave-kinetic equation ({WKE}). We consider an initial state localized in Fourier space, and we confront the solutions of the {WKE} obtained numerically with {GPE} data for both the wave-action spectrum and the probability density functions ({PDFs}) of the Fourier mode intensities. We find that the temporal evolution of the {GPE} data is accurately predicted by the {WKE}, with no adjustable parameters, for about two nonlinear kinetic times. Qualitative agreement between the {GPE} and the {WKE} persists also for longer times with some quantitative deviations that may be attributed to the combination of a breakdown of the theoretical assumptions underlying the {WKE} as well as numerical issues. Furthermore, we study how the wave statistics evolves toward Gaussianity in a timescale of the order of the kinetic time. The excellent agreement between direct numerical simulations of the {GPE} and the {WKE} provides a solid foundation to the theory of weak wave turbulence.},
pages = {014205},
number = {1},
journaltitle = {Physical Review E},
journal = {Phys. Rev. E},
author = {Zhu, Ying and Semisalov, Boris and Krstulovic, Giorgio and Nazarenko, Sergey},
urldate = {2022-10-18},
date = {2022-07-08},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NE2NGDWD/PhysRevE.106.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/VARWQ78Q/Zhu et al. - 2022 - Testing wave turbulence theory for the Gross-Pitae.pdf:application/pdf},
}
@article{miquel_nonstationary_2011,
title = {Nonstationary Wave Turbulence in an Elastic Plate},
volume = {107},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.107.034501},
doi = {10.1103/PhysRevLett.107.034501},
abstract = {We report experimental results on the decay of wave turbulence in an elastic plate obtained by stopping the forcing from a stationary turbulent state. In the stationary case, the forcing is seen to induce some anisotropy and a spectrum in disagreement with the weak turbulence theory. After stopping the forcing, almost perfect isotropy is restored. The decay of energy is self-similar and the observed decaying spectrum is in better agreement with the prediction of the weak turbulence theory. The dissipative part of the spectrum is partially consistent with the theoretical prediction based on previous work by Kolmakov. This suggests that the nonagreement with the weak turbulence theory is mostly due to a spurious effect of the forcing related to the finite size of the system.},
pages = {034501},
number = {3},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Miquel, Benjamin and Mordant, Nicolas},
urldate = {2022-10-18},
date = {2011-07-12},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/7WZXXRAA/PhysRevLett.107.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/WI24CLH3/Miquel and Mordant - 2011 - Nonstationary Wave Turbulence in an Elastic Plate.pdf:application/pdf},
}
@article{yokoyama_identification_2014,
title = {Identification of a separation wave number between weak and strong turbulence spectra for a vibrating plate},
volume = {89},
url = {https://link.aps.org/doi/10.1103/PhysRevE.89.012909},
doi = {10.1103/PhysRevE.89.012909},
abstract = {A weakly nonlinear spectrum and a strongly nonlinear spectrum coexist in a statistically steady state of elastic wave turbulence. The analytical representation of the nonlinear frequency is obtained by evaluating the extended self-nonlinear interactions. The critical wave numbers at which the nonlinear frequencies are comparable with the linear frequencies agree with the separation wave numbers between the weak and strong turbulence spectra. We also confirm the validity of our analytical representation of the separation wave numbers through comparison with the results of direct numerical simulations by changing the material parameters of a vibrating plate.},
pages = {012909},
number = {1},
journaltitle = {Physical Review E},
journal = {Phys. Rev. E},
author = {Yokoyama, Naoto and Takaoka, Masanori},
urldate = {2022-10-18},
date = {2014-01-13},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/WZVE7AMZ/PhysRevE.89.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/QC2F8WSK/Yokoyama and Takaoka - 2014 - Identification of a separation wave number between.pdf:application/pdf},
}
@article{yokoyama_energy-flux_2021,
title = {Energy-flux vector in anisotropic turbulence: application to rotating turbulence},
volume = {908},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/energyflux-vector-in-anisotropic-turbulence-application-to-rotating-turbulence/1CBA48BE5CD13C5B81D50E469BE02A68},
doi = {10.1017/jfm.2020.860},
shorttitle = {Energy-flux vector in anisotropic turbulence},
abstract = {, Energy flux plays a key role in analyses of energy-cascading turbulence. In isotropic turbulence, the flux is given by a scalar as a function of the magnitude of the wavenumber. On the other hand, the flux in anisotropic turbulence should be a geometric vector that has a direction as well as a magnitude, and depends not only on the magnitude of the wavenumber but also on its direction. The energy-flux vector in anisotropic turbulence cannot be uniquely determined in a way used for the isotropic flux. In this work, introducing two ansatzes, net locality and efficiency of nonlinear energy transfer, we propose a way to determine the energy-flux vector in anisotropic turbulence using the Moore–Penrose inverse. The energy-flux vector in strongly rotating turbulence is demonstrated based on the energy transfer rate obtained by direct numerical simulations. It is found that the direction of the energy-flux vector is consistent with the prediction of the weak turbulence theory in the wavenumber range dominated by inertial waves. However, the energy flux along the critical wavenumbers predicted by the critical balance in the buffer range between the weak turbulence range and the isotropic Kolmogorov turbulence range is not observed in the present simulations. This discrepancy between the critical balance and the present numerical results is discussed and dissipation is found to play an important role in the energy flux in the buffer range.},
pages = {A17},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Yokoyama, Naoto and Takaoka, Masanori},
urldate = {2022-10-18},
date = {2021-02},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {rotating turbulence, wave–turbulence interactions, waves in rotating fluids},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/5PHLHNCU/Yokoyama and Takaoka - 2021 - Energy-flux vector in anisotropic turbulence appl.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/XGHST2LS/1CBA48BE5CD13C5B81D50E469BE02A68.html:text/html},
}
@article{maffioli_vertical_2017,
title = {Vertical spectra of stratified turbulence at large horizontal scales},
volume = {2},
url = {https://link.aps.org/doi/10.1103/PhysRevFluids.2.104802},
doi = {10.1103/PhysRevFluids.2.104802},
abstract = {Stably stratified turbulence is investigated with the aim of increasing our limited understanding of the vertical structure of this type of turbulent flow. For strongly stratified turbulence there is a theoretical prediction that the energy spectra in the vertical direction of gravity are very steep, possessing the well-known form Eh(kv)∝N2k−3v, where N is the Brunt-Väisälä frequency and kv is the vertical wave number, but supporting evidence from experiments and numerical simulations is lacking. We conduct direct numerical simulation ({DNS}) with uniform background stratification and forcing at large scales. In order to consider the large anisotropic scales only, the vertical energy spectra are decomposed into large-scale vertical spectra Elarge(kv) and small-scale vertical spectra Esmall(kv) using a horizontal demarcation scale. We find that this approach gives results that are in close agreement with Elarge(kv)∝N2k−3v for the {DNS} runs performed. This result holds approximately over the wave-number range kb≤kv≤koz, where kb is the buoyancy wave number and koz is the Ozmidov wave number, in agreement with theory. Similarly, large-scale vertical spectra of potential energy are found to be Ep,large(kv)∝N2k−3v, over a narrower range of wave numbers. The evidence supports the existence of a scale-by-scale balance between inertia and buoyancy occurring in strongly stratified turbulence at large horizontal scales. Finally, the current results are put in the context of ocean turbulence by making a comparison with measurements of vertical shear spectra made in the ocean interior.},
pages = {104802},
number = {10},
journaltitle = {Physical Review Fluids},
journal = {Phys. Rev. Fluids},
author = {Maffioli, Andrea},
urldate = {2022-10-18},
date = {2017-10-19},
note = {Publisher: American Physical Society},
file = {APS Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/LAJXQ5FM/PhysRevFluids.2.html:text/html;Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/IW96Q3BF/Maffioli - 2017 - Vertical spectra of stratified turbulence at large.pdf:application/pdf},
}
@article{mackinnon_climate_2017,
title = {Climate Process Team on Internal Wave–Driven Ocean Mixing},
volume = {98},
issn = {0003-0007, 1520-0477},
url = {https://journals.ametsoc.org/view/journals/bams/98/11/bams-d-16-0030.1.xml},
doi = {10.1175/BAMS-D-16-0030.1},
abstract = {Abstract Diapycnal mixing plays a primary role in the thermodynamic balance of the ocean and, consequently, in oceanic heat and carbon uptake and storage. Though observed mixing rates are on average consistent with values required by inverse models, recent attention has focused on the dramatic spatial variability, spanning several orders of magnitude, of mixing rates in both the upper and deep ocean. Away from ocean boundaries, the spatiotemporal patterns of mixing are largely driven by the geography of generation, propagation, and dissipation of internal waves, which supply much of the power for turbulent mixing. Over the last 5 years and under the auspices of U.S. Climate Variability and Predictability Program ({CLIVAR}), a National Science Foundation ({NSF})- and National Oceanic and Atmospheric Administration ({NOAA})-supported Climate Process Team has been engaged in developing, implementing, and testing dynamics-based parameterizations for internal wave–driven turbulent mixing in global ocean models. The work has primarily focused on turbulence 1) near sites of internal tide generation, 2) in the upper ocean related to wind-generated near inertial motions, 3) due to internal lee waves generated by low-frequency mesoscale flows over topography, and 4) at ocean margins. Here, we review recent progress, describe the tools developed, and discuss future directions.},
pages = {2429--2454},
number = {11},
journaltitle = {Bulletin of the American Meteorological Society},
journal = {Bulletin of the American Meteorological Society},
author = {{MacKinnon}, Jennifer A. and Zhao, Zhongxiang and Whalen, Caitlin B. and Waterhouse, Amy F. and Trossman, David S. and Sun, Oliver M. and Laurent, Louis C. St and Simmons, Harper L. and Polzin, Kurt and Pinkel, Robert and Pickering, Andrew and Norton, Nancy J. and Nash, Jonathan D. and Musgrave, Ruth and Merchant, Lynne M. and Melet, Angelique V. and Mater, Benjamin and Legg, Sonya and Large, William G. and Kunze, Eric and Klymak, Jody M. and Jochum, Markus and Jayne, Steven R. and Hallberg, Robert W. and Griffies, Stephen M. and Diggs, Steve and Danabasoglu, Gokhan and Chassignet, Eric P. and Buijsman, Maarten C. and Bryan, Frank O. and Briegleb, Bruce P. and Barna, Andrew and Arbic, Brian K. and Ansong, Joseph K. and Alford, Matthew H.},
urldate = {2022-10-18},
date = {2017-11-01},
note = {Publisher: American Meteorological Society
Section: Bulletin of the American Meteorological Society},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NM2DVVJD/MacKinnon et al. - 2017 - Climate Process Team on Internal Wave–Driven Ocean.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/GIQDVWVV/bams-d-16-0030.1.html:text/html},
}
@article{gregg_mixing_2018,
title = {Mixing Efficiency in the Ocean},
volume = {10},
url = {https://doi.org/10.1146/annurev-marine-121916-063643},
doi = {10.1146/annurev-marine-121916-063643},
abstract = {Mixing efficiency is the ratio of the net change in potential energy to the energy expended in producing the mixing. Parameterizations of efficiency and of related mixing coefficients are needed to estimate diapycnal diffusivity from measurements of the turbulent dissipation rate. Comparing diffusivities from microstructure profiling with those inferred from the thickening rate of four simultaneous tracer releases has verified, within observational accuracy, 0.2 as the mixing coefficient over a 30-fold range of diapycnal diffusivities. Although some mixing coefficients can be estimated from pycnocline measurements, at present mixing efficiency must be obtained from channel flows, laboratory experiments, and numerical simulations. Reviewing the different approaches demonstrates that estimates and parameterizations for mixing efficiency and coefficients are not converging beyond the at-sea comparisons with tracer releases, leading to recommendations for a community approach to address this important issue.},
pages = {443--473},
number = {1},
journaltitle = {Annual Review of Marine Science},
journal = {Annual Review of Marine Science},
author = {Gregg, M.C. and D'Asaro, E.A. and Riley, J.J. and Kunze, E.},
urldate = {2022-10-18},
date = {2018},
pmid = {28934598},
note = {\_eprint: https://doi.org/10.1146/annurev-marine-121916-063643},
keywords = {stratified turbulence, diapycnal diffusivity, differential diffusion, Kelvin-Helmholtz instability, mixing coefficient, mixing efficiency},
}
@article{brunner-suzuki_upscale_2014,
title = {Upscale Energy Transfer by the Vortical Mode and Internal Waves},
volume = {44},
issn = {0022-3670, 1520-0485},
url = {https://journals.ametsoc.org/view/journals/phoc/44/9/jpo-d-12-0149.1.xml},
doi = {10.1175/JPO-D-12-0149.1},
abstract = {Abstract Diapycnal mixing in the ocean is sporadic yet ubiquitous, leading to patches of mixing on a variety of scales. The adjustment of such mixed patches can lead to the formation of vortices and other small-scale geostrophic motions, which are thought to enhance lateral diffusivity. If vortices are densely populated, they can interact and merge, and upscale energy transfer can occur. Vortex interaction can also be modified by internal waves, thus impacting upscale transfer. Numerical experiments were used to study the effect of a large-scale near-inertial internal wave on a field of submesoscale vortices. While one might expect a vertical shear to limit the vertical scale of merging vortices, it was found that internal wave shear did not disrupt upscale energy transfer. Rather, under certain conditions, it enhanced upscale transfer by enhancing vortex–vortex interaction. If vortices were so densely populated that they interacted even in the absence of a wave, adding a forced large-scale wave enhanced the existing upscale transfer. Results further suggest that continuous forcing by the main driving mechanism (either vortices or internal waves) is necessary to maintain such upscale transfer. These findings could help to improve understanding of the direction of energy transfer in submesoscale oceanic processes.},
pages = {2446--2469},
number = {9},
journaltitle = {Journal of Physical Oceanography},
journal = {Journal of Physical Oceanography},
author = {Brunner-Suzuki, Anne-Marie E. G. and Sundermeyer, Miles A. and Lelong, M.-Pascale},
urldate = {2022-10-18},
date = {2014-09-01},
note = {Publisher: American Meteorological Society
Section: Journal of Physical Oceanography},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/LYAYKGYR/Brunner-Suzuki et al. - 2014 - Upscale Energy Transfer by the Vortical Mode and I.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/VXSZNGLR/jpo-d-12-0149.1.html:text/html},
}
@article{billant_self-similarity_2001,
title = {Self-similarity of strongly stratified inviscid flows},
volume = {13},
issn = {1070-6631},
url = {https://aip.scitation.org/doi/10.1063/1.1369125},
doi = {10.1063/1.1369125},
pages = {1645--1651},
number = {6},
journaltitle = {Physics of Fluids},
journal = {Physics of Fluids},
author = {Billant, Paul and Chomaz, Jean-Marc},
urldate = {2022-10-18},
date = {2001-06},
note = {Publisher: American Institute of Physics},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/D6U4MDVX/Billant and Chomaz - 2001 - Self-similarity of strongly stratified inviscid fl.pdf:application/pdf},
}
@article{augier_stratified_2015,
title = {Stratified turbulence forced with columnar dipoles: numerical study},
volume = {769},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/stratified-turbulence-forced-with-columnar-dipoles-numerical-study/180B138F786A1E8C400AD7F80986520E},
doi = {10.1017/jfm.2015.76},
shorttitle = {Stratified turbulence forced with columnar dipoles},
abstract = {This paper builds upon the investigation of Augier et al. (Phys. Fluids, vol. 26 (4), 2014) in which a strongly stratified turbulent-like flow was forced by 12 generators of vertical columnar dipoles. In experiments, measurements start to provide evidence of the existence of a strongly stratified inertial range that has been predicted for large turbulent buoyancy Reynolds numbers Rt=εK/(νN2)ℛ𝑡=𝜀𝐾/(𝜈𝑁2){\textbackslash}mathscr\{R\}\_\{t\}=\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!K\}/(\{{\textbackslash}it{\textbackslash}nu\}N{\textasciicircum}\{2\}), where εK𝜀𝐾\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!K\} is the mean dissipation rate of kinetic energy, ν𝜈\{{\textbackslash}it{\textbackslash}nu\} the viscosity and N𝑁N the Brunt–Väisälä frequency. However, because of experimental constraints, the buoyancy Reynolds number could not be increased to sufficiently large values so that the inertial strongly stratified turbulent range is only incipient. In order to extend the experimental results toward higher buoyancy Reynolds number, we have performed numerical simulations of forced stratified flows. To reproduce the experimental vortex generators, columnar dipoles are periodically produced in spatial space using impulsive horizontal body force at the peripheries of the computational domain. For moderate buoyancy Reynolds number, these numerical simulations are able to reproduce the results obtained in the experiments, validating this particular forcing. For higher buoyancy Reynolds number, the simulations show that the flow becomes turbulent as observed in Brethouwer et al. (J. Fluid Mech., vol. 585, 2007, pp. 343–368). However, the statistically stationary flow is horizontally inhomogeneous because the dipoles are destabilized quite rapidly after their generation. In order to produce horizontally homogeneous turbulence, high-resolution simulations at high buoyancy Reynolds number have been carried out with a slightly modified forcing in which dipoles are forced at random locations in the computational domain. The unidimensional horizontal spectra of kinetic and potential energies scale like C1ε2/3Kk−5/3h𝐶1𝜀2/3𝐾𝑘−5/3{ℎC}\_\{1\}\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!K\}{\textasciicircum}\{2/3\}k\_\{h\}{\textasciicircum}\{-5/3\} and C2ε2/3Kk−5/3h(εP/εK)𝐶2𝜀2/3𝐾𝑘−5/3ℎ(𝜀𝑃/𝜀𝐾)C\_\{2\}\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!K\}{\textasciicircum}\{2/3\}k\_\{h\}{\textasciicircum}\{-5/3\}(\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!P\}/\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!K\}), respectively, with C1=C2≃0.5𝐶1=𝐶2≃0.5C\_\{1\}=C\_\{2\}{\textbackslash}simeq 0.5 as obtained by Lindborg (J. Fluid Mech., vol. 550, 2006, pp. 207–242). However, there is a depletion in the horizontal kinetic energy spectrum for scales between the integral length scale and the buoyancy length scale and an anomalous energy excess around the buoyancy length scale probably due to direct transfers from large horizontal scale to small scales resulting from the shear and gravitational instabilities. The horizontal buoyancy flux co-spectrum increases abruptly at the buoyancy scale corroborating the presence of overturnings. Remarkably, the vertical kinetic energy spectrum exhibits a transition at the Ozmidov length scale from a steep spectrum scaling like N2k−3z𝑁2𝑘−3𝑧N{\textasciicircum}\{2\}k\_\{z\}{\textasciicircum}\{-3\} at large scales to a spectrum scaling like {CKε}2/3Kk−5/3z𝐶𝐾𝜀2/3𝐾𝑘−5/3𝑧C\_\{K\}\{{\textbackslash}it{\textbackslash}varepsilon\}\_\{{\textbackslash}!K\}{\textasciicircum}\{2/3\}k\_\{z\}{\textasciicircum}\{-5/3\}, with {CK}=1𝐶𝐾=1C\_\{K\}=1, the classical Kolmogorov constant.},
pages = {403--443},
journaltitle = {Journal of Fluid Mechanics},
journal = {Journal of Fluid Mechanics},
author = {Augier, Pierre and Billant, Paul and Chomaz, Jean-Marc},
urldate = {2022-10-18},
date = {2015-04},
langid = {english},
note = {Publisher: Cambridge University Press},
keywords = {stratified turbulence, turbulence simulation, geophysical and geological flows},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/4M2UIHJK/Augier et al. - 2015 - Stratified turbulence forced with columnar dipoles.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/WGB4M6IC/180B138F786A1E8C400AD7F80986520E.html:text/html},
}
@article{nazarenko_verifying_2020-1,
title = {Verifying Weak Turbulence Theory},
volume = {13},
issn = {1943-2879},
url = {https://link.aps.org/doi/10.1103/Physics.13.194},
doi = {10.1103/Physics.13.194},
pages = {194},
journaltitle = {Physics},
journal = {Physics},
author = {Nazarenko, Sergey},
urldate = {2022-10-16},
date = {2020-12-14},
langid = {english},
file = {Nazarenko - 2020 - Verifying Weak Turbulence Theory.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/UQN9LG9D/Nazarenko - 2020 - Verifying Weak Turbulence Theory.pdf:application/pdf},
}
@article{brunet_shortcut_2020-1,
title = {Shortcut to Geostrophy in Wave-Driven Rotating Turbulence: The Quartetic Instability},
volume = {124},
issn = {0031-9007, 1079-7114},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.124.124501},
doi = {10.1103/PhysRevLett.124.124501},
shorttitle = {Shortcut to Geostrophy in Wave-Driven Rotating Turbulence},
pages = {124501},
number = {12},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Brunet, Maxime and Gallet, Basile and Cortet, Pierre-Philippe},
urldate = {2022-10-16},
date = {2020-03-24},
langid = {english},
file = {Brunet et al. - 2020 - Shortcut to Geostrophy in Wave-Driven Rotating Tur.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/33NI8ZSW/Brunet et al. - 2020 - Shortcut to Geostrophy in Wave-Driven Rotating Tur.pdf:application/pdf},
}
@article{nazarenko_wave_2015-1,
title = {Wave turbulence},
volume = {56},
issn = {0010-7514, 1366-5812},
url = {http://www.tandfonline.com/doi/full/10.1080/00107514.2015.1015250},
doi = {10.1080/00107514.2015.1015250},
pages = {359--373},
number = {3},
journaltitle = {Contemporary Physics},
journal = {Contemporary Physics},
author = {Nazarenko, Sergey},
urldate = {2022-10-16},
date = {2015-07-03},
langid = {english},
file = {Nazarenko - 2015 - Wave turbulence.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/UTQS9NVE/Nazarenko - 2015 - Wave turbulence.pdf:application/pdf},
}
@article{monsalve_quantitative_2020-1,
title = {Quantitative Experimental Observation of Weak Inertial-Wave Turbulence},
volume = {125},
issn = {0031-9007, 1079-7114},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.125.254502},
doi = {10.1103/PhysRevLett.125.254502},
pages = {254502},
number = {25},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Monsalve, Eduardo and Brunet, Maxime and Gallet, Basile and Cortet, Pierre-Philippe},
urldate = {2022-10-16},
date = {2020-12-14},
langid = {english},
file = {Monsalve et al. - 2020 - Quantitative Experimental Observation of Weak Iner.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/NGQLUCN4/Monsalve et al. - 2020 - Quantitative Experimental Observation of Weak Iner.pdf:application/pdf},
}
@article{nazarenko_critical_2011-1,
title = {Critical balance in magnetohydrodynamic, rotating and stratified turbulence: towards a universal scaling conjecture},
volume = {677},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/product/identifier/S002211201100067X/type/journal_article},
doi = {10.1017/S002211201100067X},
shorttitle = {Critical balance in magnetohydrodynamic, rotating and stratified turbulence},
abstract = {It is proposed that critical balance – a scale-by-scale balance between the linear propagation and nonlinear interaction time scales – can be used as a universal scaling conjecture for determining the spectra of strong turbulence in anisotropic wave systems. Magnetohydrodynamic ({MHD}), rotating and stratified turbulence are considered under this assumption and, in particular, a novel and experimentally testable energy cascade scenario and a set of scalings of the spectra are proposed for low-Rossby-number rotating turbulence. It is argued that in neutral fluids the critically balanced anisotropic cascade provides a natural path from strong anisotropy at large scales to isotropic Kolmogorov turbulence at very small scales. It is also argued that the k⊥−2 spectra seen in recent numerical simulations of low-Rossby-number rotating turbulence may be analogous to the k⊥−3/2 spectra of the numerical {MHD} turbulence in the sense that they could be explained by assuming that fluctuations are polarised (aligned) approximately as inertial waves (Alfve´n waves for {MHD}).},
pages = {134--153},
journaltitle = {Journal of Fluid Mechanics},
journal = {J. Fluid Mech.},
author = {Nazarenko, Sergei V. and Schekochihin, Alexander A.},
urldate = {2022-10-16},
date = {2011-06-25},
langid = {english},
file = {Nazarenko et Schekochihin - 2011 - Critical balance in magnetohydrodynamic, rotating .pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/RLBVI7Q7/Nazarenko et Schekochihin - 2011 - Critical balance in magnetohydrodynamic, rotating .pdf:application/pdf},
}
@article{kimura_energy_2012-1,
title = {Energy spectra of stably stratified turbulence},
volume = {698},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/product/identifier/S0022112011005465/type/journal_article},
doi = {10.1017/jfm.2011.546},
abstract = {We investigate homogeneous incompressible turbulence subjected to a range of degrees of stratification. Our basic method is pseudospectral direct numerical simulations at a resolution of 10243. Such resolution is sufficient to reveal inertial power-law ranges for suitably comprised horizontal and vertical spectra, which are designated as the wave and vortex mode (the Craya–Herring representation). We study mainly turbulence that is produced from randomly large-scale forcing via an Ornstein–Uhlenbeck process applied isotropically to the horizontal velocity field. In general, both the wave and vortex spectra are consistent with a Kolmogorov-like k−5/3 range at sufficiently large k. At large scales, and for sufficiently strong stratification, the wave spectrum is a steeper k⊥−2, while that for the vortex component is consistent with k⊥−3. Here k⊥ is the horizontally gathered wavenumber. In contrast to the horizontal wavenumber spectra, the vertical wavenumber spectra show very different features. For those spectra, a clear kz−3 dependence for small scales is observed while the large scales show rather flat spectra. By modelling the horizontal layering of vorticity, we attempt to explain the flat spectra. These spectra are linked to two-point structure functions of the velocity correlations in the horizontal and vertical directions. We can observe the power-law transition also in certain of the two-point structure functions.},
pages = {19--50},
journaltitle = {Journal of Fluid Mechanics},
journal = {J. Fluid Mech.},
author = {Kimura, Y. and Herring, J. R.},
urldate = {2022-10-16},
date = {2012-05-10},
langid = {english},
file = {Kimura et Herring - 2012 - Energy spectra of stably stratified turbulence.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/SA7M3BKZ/Kimura et Herring - 2012 - Energy spectra of stably stratified turbulence.pdf:application/pdf},
}
@article{waite_stratified_2004-1,
title = {Stratified turbulence dominated by vortical motion},
volume = {517},
issn = {0022-1120, 1469-7645},
url = {http://www.journals.cambridge.org/abstract_S0022112004000977},
doi = {10.1017/S0022112004000977},
pages = {281--308},
journaltitle = {Journal of Fluid Mechanics},
journal = {J. Fluid Mech.},
author = {Waite, Michael L. and Bartello, Peter},
urldate = {2022-10-16},
date = {2004-09-25},
langid = {english},
file = {Waite et Bartello - 2004 - Stratified turbulence dominated by vortical motion.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/974MKXNM/Waite et Bartello - 2004 - Stratified turbulence dominated by vortical motion.pdf:application/pdf},
}
@article{waite_stratified_2011-1,
title = {Stratified turbulence at the buoyancy scale},
volume = {23},
issn = {1070-6631, 1089-7666},
url = {http://aip.scitation.org/doi/10.1063/1.3599699},
doi = {10.1063/1.3599699},
pages = {066602},
number = {6},
journaltitle = {Physics of Fluids},
journal = {Physics of Fluids},
author = {Waite, Michael L.},
urldate = {2022-10-16},
date = {2011-06},
langid = {english},
file = {Waite - 2011 - Stratified turbulence at the buoyancy scale.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/IA92NIAI/Waite - 2011 - Stratified turbulence at the buoyancy scale.pdf:application/pdf},
}
@article{lindborg_energy_2006-1,
title = {The energy cascade in a strongly stratified fluid},
volume = {550},
issn = {0022-1120, 1469-7645},
url = {http://www.journals.cambridge.org/abstract_S0022112005008128},
doi = {10.1017/S0022112005008128},
pages = {207},
number = {-1},
journaltitle = {Journal of Fluid Mechanics},
journal = {J. Fluid Mech.},
author = {Lindborg, Erik},
urldate = {2022-10-16},
date = {2006-02-27},
langid = {english},
file = {Lindborg - 2006 - The energy cascade in a strongly stratified fluid.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/9XF38477/Lindborg - 2006 - The energy cascade in a strongly stratified fluid.pdf:application/pdf},
}
@article{davis_succession_2020-1,
title = {Succession of Resonances to Achieve Internal Wave Turbulence},
volume = {124},
issn = {0031-9007, 1079-7114},
url = {https://link.aps.org/doi/10.1103/PhysRevLett.124.204502},
doi = {10.1103/PhysRevLett.124.204502},
pages = {204502},
number = {20},
journaltitle = {Physical Review Letters},
journal = {Phys. Rev. Lett.},
author = {Davis, Géraldine and Jamin, Timothée and Deleuze, Julie and Joubaud, Sylvain and Dauxois, Thierry},
urldate = {2022-10-16},
date = {2020-05-21},
langid = {english},
file = {Davis et al. - 2020 - Succession of Resonances to Achieve Internal Wave .pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/2RJJID6M/Davis et al. - 2020 - Succession of Resonances to Achieve Internal Wave .pdf:application/pdf},
}
@article{lindborg_stratified_2007,
title = {Stratified turbulence forced in rotational and divergent modes},
volume = {586},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/product/identifier/S0022112007007082/type/journal_article},
doi = {10.1017/S0022112007007082},
abstract = {We perform numerical box simulations of strongly stratified turbulence. The equations solved are the Boussinesq equations with constant Brunt–Väisälä frequency and forcing either in rotational or divergent modes, or, with another terminology, in vortical or wave modes. In both cases, we observe a forward energy cascade and inertial-range scaling of the horizontal kinetic and potential energy spectra. With forcing in rotational modes, there is approximate equipartition of kinetic energy between rotational and divergent modes in the inertial range. With forcing in divergent modes the results are sensitive to the vertical forcing wavenumber
k
f
v
. If
k
f
v
is sufficiently large the dynamics is very similar to the dynamics of the simulations which are forced in rotational modes, with approximate equipartition of kinetic energy in rotational and divergent modes in the inertial range. Frequency spectra of rotational, divergent and potential energy are calculated for individual Fourier modes. Waves are present at low horizontal wavenumbers corresponding to the largest scales in the boxes. In the inertial range, the frequency spectra exhibit no distinctive peaks in the internal wave frequency. In modes for which the vertical wavenumber is considerably larger than the horizontal wavenumber, the frequency spectra of rotational and divergent modes fall on top of each other. The simulation results indicate that the dynamics of rotational and divergent modes develop on the same time scale in stratified turbulence. We discuss the relevance of our results to atmospheric and oceanic dynamics. In particular, we review a number of observational reports indicating that stratified turbulence may be a prevalent dynamic process in the ocean at horizontal scales of the order of 10 or 100 m up to several kilometres.},
pages = {83--108},
journaltitle = {Journal of Fluid Mechanics},
journal = {J. Fluid Mech.},
author = {Lindborg, E. and Brethouwer, G.},
urldate = {2022-10-16},
date = {2007-09-10},
langid = {english},
file = {Lindborg et Brethouwer - 2007 - Stratified turbulence forced in rotational and div.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/SQLVMZEJ/Lindborg et Brethouwer - 2007 - Stratified turbulence forced in rotational and div.pdf:application/pdf},
}
@article{maffioli_signature_2020-1,
title = {Signature and energetics of internal gravity waves in stratified turbulence},
volume = {5},
issn = {2469-990X},
url = {https://link.aps.org/doi/10.1103/PhysRevFluids.5.114802},
doi = {10.1103/PhysRevFluids.5.114802},
pages = {114802},
number = {11},
journaltitle = {Physical Review Fluids},
journal = {Phys. Rev. Fluids},
author = {Maffioli, Andrea and Delache, Alexandre and Godeferd, Fabien S.},
urldate = {2022-10-16},
date = {2020-11-11},
langid = {english},
file = {Maffioli et al. - 2020 - Signature and energetics of internal gravity waves.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/2FDA64JF/Maffioli et al. - 2020 - Signature and energetics of internal gravity waves.pdf:application/pdf},
}
@article{lam_energy_2021-1,
title = {Energy balance and mixing between waves and eddies in stably stratified turbulence},
volume = {923},
issn = {0022-1120, 1469-7645},
url = {https://www.cambridge.org/core/product/identifier/S0022112021005899/type/journal_article},
doi = {10.1017/jfm.2021.589},
abstract = {Abstract
,
We explore the strong stratification regime of stably stratified turbulence and the intermediate regime towards the viscosity-affected stratified state. Three-dimensional velocity-density fields from direct numerical simulations are decomposed into internal gravity waves ({IGWs}) and eddy motion based on Riley's decomposition (Riley
et al.
,
{AIP} Conf. Proc.
, vol. 76, issue 1, 1981, pp. 79–112) extended to account for the space–time properties of waves, their modification by vertically sheared horizontal flow and the vertical mixing by eddies (Lam
et al.
,
Atmosphere
, vol. 11, issue 4, 2020, p. 420). We establish the evolution equations for the {IGW} and eddy parts separately. Up to buoyancy Reynolds number
\$\{Re\}\_b{\textbackslash}sim 1\$
, we observe a large exchange of energy that pumps energy from the {IGW} to eddy. For
\$\{Re\}\_b{\textgreater}1\$
, the {IGW} and eddy dynamics seem to be separate and no global exchange is observed. Our decomposition enables computation of the contributions to the mixing coefficient in terms of the {IGW} and eddy. At the largest
\$\{Re\}\_b\$
considered, the mixing due to eddies is four times that due to waves.},
pages = {A31},
journaltitle = {Journal of Fluid Mechanics},
journal = {J. Fluid Mech.},
author = {Lam, H. and Delache, A. and Godeferd, F.S.},
urldate = {2022-10-16},
date = {2021-09-25},
langid = {english},
file = {Lam et al. - 2021 - Energy balance and mixing between waves and eddies.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/7XJ8M7JM/Lam et al. - 2021 - Energy balance and mixing between waves and eddies.pdf:application/pdf},
}
@article{lam_partitioning_2020-1,
title = {Partitioning Waves and Eddies in Stably Stratified Turbulence},
volume = {11},
issn = {2073-4433},
url = {https://www.mdpi.com/2073-4433/11/4/420},
doi = {10.3390/atmos11040420},
abstract = {We consider the separation of motion related to internal gravity waves and eddy dynamics in stably stratified flows obtained by direct numerical simulations. The waves’ dispersion relation links their angle of propagation to the vertical θ, to their frequency ω, so that two methods are used for characterizing wave-related motion: (a) the concentration of kinetic energy density in the (θ, ω) map along the dispersion relation curve; and (b) a direct computation of two-point two-time velocity correlations via a four-dimensional Fourier transform, permitting to extract wave-related space-time coherence. The second method is more computationally demanding than the first. In canonical flows with linear kinematics produced by space-localized harmonic forcing, we observe the pattern of the waves in physical space and the corresponding concentration curve of energy in the (θ, ω) plane. We show from a simple laminar flow that the curve characterizing the presence of waves is distorted differently in the presence of a background convective mean velocity, either uniform or varying in space, and also when the forcing source is moving. By generalizing the observation from laminar flow to turbulent flow, this permits categorizing the energy concentration pattern of the waves in complex flows, thus enabling the identification of wave-related motion in a general turbulent flow with stable stratification. The advanced method (b) is finally used to compute the wave-eddy partition in the velocity–buoyancy fields of direct numerical simulations of stably stratified turbulence. In particular, we use this splitting in statistics as varied as horizontal and vertical kinetic energy, as well as two-point velocity and buoyancy spectra.},
pages = {420},
number = {4},
journaltitle = {Atmosphere},
journal = {Atmosphere},
author = {Lam, Henri and Delache, Alexandre and Godeferd, Fabien S},
urldate = {2022-10-16},
date = {2020-04-22},
langid = {english},
file = {Lam et al. - 2020 - Partitioning Waves and Eddies in Stably Stratified.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/MQDQNIN7/Lam et al. - 2020 - Partitioning Waves and Eddies in Stably Stratified.pdf:application/pdf},
}
@article{yokoyama_energy-based_2019-1,
title = {Energy-based analysis and anisotropic spectral distribution of internal gravity waves in strongly stratified turbulence},
volume = {4},
issn = {2469-990X},
url = {https://link.aps.org/doi/10.1103/PhysRevFluids.4.104602},
doi = {10.1103/PhysRevFluids.4.104602},
pages = {104602},
number = {10},
journaltitle = {Physical Review Fluids},
journal = {Phys. Rev. Fluids},
author = {Yokoyama, Naoto and Takaoka, Masanori},
urldate = {2022-10-16},
date = {2019-10-08},
langid = {english},
file = {Yokoyama et Takaoka - 2019 - Energy-based analysis and anisotropic spectral dis.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/XB9USJ8N/Yokoyama et Takaoka - 2019 - Energy-based analysis and anisotropic spectral dis.pdf:application/pdf},
}
@article{augier_fluiddyn_2019-1,
title = {{FluidDyn}: A Python Open-Source Framework for Research and Teaching in Fluid Dynamics by Simulations, Experiments and Data Processing},
volume = {7},
issn = {2049-9647},
url = {https://openresearchsoftware.metajnl.com/article/10.5334/jors.237/},
doi = {10.5334/jors.237},
shorttitle = {{FluidDyn}},
pages = {9},
number = {1},
journaltitle = {Journal of Open Research Software},
journal = {{JORS}},
author = {Augier, Pierre and Mohanan, Ashwin Vishnu and Bonamy, Cyrille},
urldate = {2022-10-16},
date = {2019-04-01},
langid = {english},
file = {Augier et al. - 2019 - FluidDyn A Python Open-Source Framework for Resea.pdf:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/FASPDDNH/Augier et al. - 2019 - FluidDyn A Python Open-Source Framework for Resea.pdf:application/pdf},
}
@article{muller_nonlinear_1986,
title = {Nonlinear interactions among internal gravity waves},
volume = {24},
issn = {1944-9208},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/RG024i003p00493},
doi = {10.1029/RG024i003p00493},
abstract = {This paper reviews the nonlinear interaction calculations for the internal gravity wave field in the deep ocean. The nonlinear interactions are a principal part of the dynamics of internal waves and are an important link in the overall energy cascade from large to small scales. Four approaches have been taken for their analysis: the evaluation of the transfer integral describing weakly and resonantly interacting waves, the application of closure hypotheses from turbulence theories to more strongly interacting waves, the integration of the eikonal or ray equations describing the propagation of small-scale internal waves in a background of large-scale internal waves, and the direct numerical simulation of the basic hydrodynamic equations of motion. The weak resonant interaction calculations have provided most of the conventional wisdom. Specific interaction processes and their role in shaping the internal wave spectrum have been unveiled and a comprehensive inertial range theory developed. The range of validity of the resonant interaction approximation, however, is not known and must be seriously doubted for high-wave number, high-frequency waves. The turbulence closure calculations and the direct numerical modeling are not yet in a state to be directly applicable to the oceanic internal wave field. The closure models are too complex and rest on conjectures that are not demonstrably justified. Numerical modeling can treat strongly interacting waves and buoyant turbulence, but is severely limited by finite computer resolutions. Extensive suites of experiments have only been carried out for two-dimensional flows. The eikonal calculations provide an efficient and versatile tool to study the interaction of small-scale internal waves, but it is not clear to what extent the scale-separated interactions with larger-scale internal waves compete with and might be overwhelmed by interactions among like scales. The major shortcoming of all four approaches is that they neglect the interaction with the vortical (=potential vorticity carrying) mode of motion that must be expected to exist in addition to internal waves at small scales. This interaction is intrinsically neglected in all Lagrangian-based studies and in the non-rotating two-dimensional simulations. The most promising approach for the future that can handle both arbitrarily strong interactions and the interaction with the vortical mode is numerical modeling once the resolution problem is overcome.},
pages = {493--536},
number = {3},
journaltitle = {Reviews of Geophysics},
journal = {Reviews of Geophysics},
author = {Müller, Peter and Holloway, Greg and Henyey, Frank and Pomphrey, Neil},
urldate = {2022-11-10},
date = {1986},
langid = {english},
note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/{RG}024i003p00493},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/H58TPJMI/Müller et al. - 1986 - Nonlinear interactions among internal gravity wave.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/562T6WFG/RG024i003p00493.html:text/html},
}
@article{lvov_resonant_2012,
title = {Resonant and Near-Resonant Internal Wave Interactions},
volume = {42},
issn = {0022-3670, 1520-0485},
url = {https://journals.ametsoc.org/view/journals/phoc/42/5/2011jpo4129.1.xml},
doi = {10.1175/2011JPO4129.1},
abstract = {Abstract The spectral energy density of the internal waves in the open ocean is considered. The Garrett and Munk spectrum and the resonant kinetic equation are used as the main tools of the study. Evaluations of a resonant kinetic equation that suggest the slow time evolution of the Garrett and Munk spectrum is not in fact slow are reported. Instead, nonlinear transfers lead to evolution time scales that are smaller than one wave period at high vertical wavenumber. Such values of the transfer rates are inconsistent with the viewpoint expressed in papers by C. H. {McComas} and P. Müller, and by P. Müller et al., which regards the Garrett and Munk spectrum as an approximate stationary state of the resonant kinetic equation. It also puts the self-consistency of a resonant kinetic equation at a serious risk. The possible reasons for and resolutions of this paradox are explored. Inclusion of near-resonant interactions decreases the rate at which the spectrum evolves. Consequently, this inclusion shows a tendency of improving of self-consistency of the kinetic equation approach.},
pages = {669--691},
number = {5},
journaltitle = {Journal of Physical Oceanography},
journal = {Journal of Physical Oceanography},
author = {Lvov, Yuri V. and Polzin, Kurt L. and Yokoyama, Naoto},
urldate = {2022-11-10},
date = {2012-05-01},
note = {Publisher: American Meteorological Society
Section: Journal of Physical Oceanography},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/3HLRQM9Z/Lvov et al. - 2012 - Resonant and Near-Resonant Internal Wave Interacti.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/5EILW9D4/2011jpo4129.1.html:text/html},
}
@article{lvov_nonlinear_2009,
title = {Nonlinear wave–wave interactions in stratified flows: Direct numerical simulations},
volume = {238},
issn = {0167-2789},
url = {https://www.sciencedirect.com/science/article/pii/S0167278909000414},
doi = {10.1016/j.physd.2009.01.016},
shorttitle = {Nonlinear wave–wave interactions in stratified flows},
abstract = {To investigate the formation mechanism of energy spectra of internal waves in the oceans, direct numerical simulations are performed. The simulations are based on the reduced dynamical equations of rotating stratified turbulence. In the reduced dynamical equations only wave modes are retained, and vortices and horizontally uniform vertical shears are excluded. Despite the simplifications, our simulations reproduce some key features of oceanic internal-wave spectra: accumulation of energy at near-inertial waves and realistic frequency and horizontal wavenumber dependencies. Furthermore, we provide evidence that formation of the energy spectra in the inertial subrange is dominated by scale-separated interactions with the near-inertial waves. These findings support observationally based intuition that spectral energy density of internal waves is the result of predominantly wave–wave interactions.},
pages = {803--815},
number = {8},
journaltitle = {Physica D: Nonlinear Phenomena},
journal = {Physica D: Nonlinear Phenomena},
author = {Lvov, Yuri V. and Yokoyama, Naoto},
urldate = {2022-11-14},
date = {2009-05-01},
langid = {english},
keywords = {Gravity waves, Simulation, Stratified flows},
file = {ScienceDirect Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/37AI9XMF/Lvov and Yokoyama - 2009 - Nonlinear wave–wave interactions in stratified flo.pdf:application/pdf;ScienceDirect Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/B6SAWITE/S0167278909000414.html:text/html},
}
@article{lvov_hamiltonian_2004,
title = {A Hamiltonian formulation for long internal waves},
volume = {195},
issn = {0167-2789},
url = {https://www.sciencedirect.com/science/article/pii/S0167278904001241},
doi = {10.1016/j.physd.2004.03.010},
abstract = {A novel canonical Hamiltonian formalism is developed for long internal waves in a rotating environment. This includes the effects of background vorticity and shear on the waves. By restricting consideration to flows in hydrostatic balance, superimposed on a horizontally uniform background of vertical shear and vorticity, a particularly simple Hamiltonian structure arises, which can be thought of as describing a nonlinearly coupled infinite collection of shallow water systems. The kinetic equation describing the time evolution of the spectral energy of internal waves is subsequently derived. In the high-frequency limit, the Coriolis effects may be neglected, and a family of stationary Kolmogorov solutions can be found, which includes the Garrett–Munk spectrum of oceanic internal waves.},
pages = {106--122},
number = {1},
journaltitle = {Physica D: Nonlinear Phenomena},
journal = {Physica D: Nonlinear Phenomena},
author = {Lvov, Yuri and Tabak, Esteban G},
urldate = {2022-11-14},
date = {2004-08-01},
langid = {english},
keywords = {Coriolis effect, Hamiltonian formulation, Internal wave interactions, Internal waves, Kolmogorov solution, Spectral energy density of internal waves, Wave kinetic equation, Wave turbulence},
file = {ScienceDirect Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/P8M5FBEB/Lvov and Tabak - 2004 - A Hamiltonian formulation for long internal waves.pdf:application/pdf;ScienceDirect Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/JJMUDD5Z/S0167278904001241.html:text/html},
}
@article{dematteis_origins_2022,
title = {On the Origins of the Oceanic Ultraviolet Catastrophe},
volume = {52},
issn = {0022-3670, 1520-0485},
url = {https://journals.ametsoc.org/view/journals/phoc/52/4/JPO-D-21-0121.1.xml},
doi = {10.1175/JPO-D-21-0121.1},
abstract = {Abstract We provide a first-principles analysis of the energy fluxes in the oceanic internal wave field. The resulting formula is remarkably similar to the renowned phenomenological formula for the turbulent dissipation rate in the ocean, which is known as the finescale parameterization. The prediction is based on the wave turbulence theory of internal gravity waves and on a new methodology devised for the computation of the associated energy fluxes. In the standard spectral representation of the wave energy density, in the two-dimensional vertical wavenumber–frequency (m–ω) domain, the energy fluxes associated with the steady state are found to be directed downscale in both coordinates, closely matching the finescale parameterization formula in functional form and in magnitude. These energy transfers are composed of a “local” and a “scale-separated” contributions; while the former is quantified numerically, the latter is dominated by the induced diffusion process and is amenable to analytical treatment. Contrary to previous results indicating an inverse energy cascade from high frequency to low, at odds with observations, our analysis of all nonzero coefficients of the diffusion tensor predicts a direct energy cascade. Moreover, by the same analysis fundamental spectra that had been deemed “no-flux” solutions are reinstated to the status of “constant-downscale-flux” solutions. This is consequential for an understanding of energy fluxes, sources, and sinks that fits in the observational paradigm of the finescale parameterization, solving at once two long-standing paradoxes that had earned the name of “oceanic ultraviolet catastrophe.” Significance Statement The global circulation models cannot resolve the scales of the oceanic internal waves. The finescale parameterization of turbulent dissipation, a formula grounded in observations, is the standard tool by which the energy transfers due to internal waves are incorporated in the global models. Here, we provide an interpretation of this parameterization formula building on the first-principles statistical theory describing energy transfers between waves at different scales. Our result is in agreement with the finescale parameterization and points out a large contribution to the energy fluxes due to a type of wave interactions (local) usually disregarded. Moreover, the theory on which the traditional understanding of the parameterization is mainly built, a “diffusion approximation,” is known to be partly in contradiction with observations. We put forward a solution to this problem, visualized by means of “streamlines” that improve the intuition of the direction of the energy cascade.},
pages = {597--616},
number = {4},
journaltitle = {Journal of Physical Oceanography},
journal = {Journal of Physical Oceanography},
author = {Dematteis, Giovanni and Polzin, Kurt and Lvov, Yuri V.},
urldate = {2022-11-14},
date = {2022-04-01},
note = {Publisher: American Meteorological Society
Section: Journal of Physical Oceanography},
file = {Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/3CGECLW3/JPO-D-21-0121.1.html:text/html;Submitted Version:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/EIL4FQUN/Dematteis et al. - 2022 - On the Origins of the Oceanic Ultraviolet Catastro.pdf:application/pdf},
}
@article{mccomas_resonant_1977,
title = {Resonant interaction of oceanic internal waves},
volume = {82},
issn = {2156-2202},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/JC082i009p01397},
doi = {10.1029/JC082i009p01397},
abstract = {Three classes of nonlinearly interacting triads, whose wave numbers and frequencies satisfy K1 ± K2 = K3 and ω1 ± ω2 = ω3, dominate the numerically computed transfer of energy in the Garrett and Munk models of the oceanic internal wave spectrum. We designate these triads as induced diffusion, elastic scattering, and parametric subharmonic instability. Special characteristics of wave number and frequency among the components identify each triad class. The concepts represented by these classes simplify an otherwise complex process and help explain some of the basic features of the observed internal wave spectrum.},
pages = {1397--1412},
number = {9},
journaltitle = {Journal of Geophysical Research (1896-1977)},
journal = {Journal of Geophysical Research (1896-1977)},
author = {{McComas}, C. Henry and Bretherton, Francis P.},
urldate = {2022-11-15},
date = {1977},
langid = {english},
note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/{JC}082i009p01397},
file = {Full Text PDF:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/9XRJQP7N/McComas and Bretherton - 1977 - Resonant interaction of oceanic internal waves.pdf:application/pdf;Snapshot:/home/vincentlabarre/snap/zotero-snap/common/Zotero/storage/GUMG3ARR/JC082i009p01397.html:text/html},
}
In this study, we performed direct numerical simulations of stratified turbulence
without shear modes, and with or without vortical modes. We observed that removing
vortical modes helps to have a better overall balance between poloidal kinetic energy
and potential energy. However, a spatiotemporal analysis showed that removing vortical
mode does not help to concentrate energy in temporal scales. Localisation of energy in
temporal scales is rather controlled by the stratification, i.e. by the Froude number.
Following \cite{yokoyama_energy-based_2019}, we performed a spectral energy budget in
the two-dimensional spectral space. As in \cite{yokoyama_energy-based_2019}, we
observed that the wave dominated region is delimited by the non-linearity parameter
$\chi_{\kk}$, with a threshold $\chi_{\kk} = 1/3$. We also observe a dependence in
$k/k_b$ (where $k_b$ is the buoyancy wave-vector) in our simulations such that the wave
dominated region should lies in $\left\{\kk ~ | ~ \chi_{\kk} <1/3, k < k_b \right\}$.
Consequently, performing numerical simulation in the buoyancy range (with $k_b \eta
\leq 1$) is tempting for observing wave turbulence at a lower numerical cost. However,
the conversion between kinetic energy and potential energy do not necessarily shows
fluctuations around zero in the wave dominated regime, as we expect for a system of
statistically stationary waves.
With a simple dimensional analysis, we showed that the aspect ratio of the numerical
domain (or of the container) is particularly important for the weak non-linearity
assumption to hold. We therefore conducted simulations with aspect ratio one. These
simulations revealed that a transition occurs when the forcing region starts to lie in
the waves dominated region: at this point strong fluctuations of the conversion between
kinetic energy and potential energy appears in the all wave dominated range, which
indicates the presence of statistically stationary waves. This transition has a simple
physical meanings: (i) When the forcing lies in the waves dominated region, injected
energy is efficiently converted into waves. (ii) The forcing does not feed other modes
of motions that could cascade and perturbs waves over the all scales. (iii) We start to
observe a temporal inertial range for waves. It is expected that the same transition
could occurs in others WWT systems, including MHD and rotating flows.
For highly stratified simulations, the spatial spectra of the equipartition energy $E_e
= 2 \min(E_{polo}, E_A)$ deviates from the prediction of waves turbulence theory
\cite{dematteis_downscale_2021, dematteis_origins_2022}, and the Garrett-Munk 1976
model \cite{garrett_internal_1979} where $k_z \leq k_h \leq k_b$. It is interesting to
note that the waves turbulence prediction is derived in the limit $k_z \gg k_h$, which
is the opposite limit that our numerical results, and the
\cite{yokoyama_energy-based_2019}'s ones suggest: the non-linear broadening is shown to
be large for $k_z \gg k_h$, therefore breaking a WWT theory's assumption in this region
of the spectral space. For more, the energy spectra are not separable, contrary to what
it is usually assumed in WWT. This motivate further studies to remove the $k_z \ll k_h$
assumption in the derivation of the kinetic equation of internal gravity waves.
2022strat_polo_waves/input/fig_poloidal-toroidal.png

72.2 KiB

% WWT
As eddies in classical hydrodynamic turbulence, waves in nonlinear systems interact and
transfer conserved quantities along scales in a cascade process. The Weak-Wave
Turbulence (WWT) theory aims to provides a statistical description of the system when
the non-linearity is small \cite{zakharov_kolmogorov_1992,nazarenko_wave_2011,
nazarenko_wave_2015}. The applications of this theory encompass capillary-gravity waves
\cite{falcon_experiments_2022}, Alfvén waves in magnetohydrodynamics (MHD)
\cite{galtier_weak_2000}, inertial and internal waves in rotating stratified fluids
\cite{caillol_kinetic_2000, galtier_weak_2003, medvedev_turbulence_2007}, Kelvin waves
in superfluids \cite{lvov_weak_2010}, elastic plates \cite{during_weak_2006},
gravitational waves \cite{galtier_turbulence_2017}, and density waves in Bose-Einstein
condensates \cite{dyachenko_optical_1992}.
% Weak non-linearity and small non-linear broadening
Two key hypotheses are used in WWT. The first one is weak non-linearity of the
dynamical equations. This condition is often translated in terms of the separation of
spatial scales: the considered scale on one side and the saturation scale on the other
side. The saturation scale is here defined as the scale at which the weak non-linearity
does not holds anymore, inducing wave breaking. This hypothesis is quite similar to the
separation between the integral scale and the dissipative scale in the more famous
three-dimensional hydrodynamic turbulence. The second hypothesis corresponds to a time
scales separation, and is more specific to wave turbulence. It consists to require that
the linear time, given by the wave period $\tau_{L}$, is small compared to the
non-linear time of interactions between waves $\tau_{NL}$ \cite{nazarenko_wave_2011}.
For many physical systems, at least one the two hypotheses is broken in some range of
scales, which reduce or even break the validity of WWT \cite{biven_breakdown_2001}.
Yet, when scales separations are observed in space and time, a weak wave turbulent
range can appear in spatiotemporal spectra of waves' energy. Besides experimental and
numerical difficulties for obtaining scales' separations, testing WWT in isotropic
systems is conceptually simpler. For this reason, many progress have been made in the
experimental and numerical verification of WWT for elastic plates
\cite{miquel_nonstationary_2011, yokoyama_identification_2014}, capillary-gravity waves
\cite{falcon_experiments_2022}, Gross-Pitaevskii equation \cite{zhu_testing_2022}, or
2D acoustic waves \cite{griffin_energy_2022}.
Anisotropic turbulence is, generally speaking, more difficult to investigate due to the
reduce number of symmetries. For example, it has been shown that studying
two-dimensional spatial spectra instead of one-dimensional integrated spectra is
essential to investigate stratified turbulence \cite{yokoyama_energy-based_2019}. Then,
the anisotropy makes the problem multidimensional in Fourier space, which makes the
notion of spectral energy fluxes more difficult than in isotropic turbulence
\cite{yokoyama_energy-flux_2021}. An additional difficultly is that scales separations
required by WWT can also depend on anisotropy. As an example, for linearly stratified
flows, separations of scales require
\begin{equation}
k/k_b \ll 1 ~~~~ \text{and} ~~~~ \tau_{L}/\tau_{NL} = \frac{(\epsK k^2)^{1/3}}{N k_h/k} \ll 1,
\end{equation}
where $k_b = N/U_h$ is the buoyancy wave-vector, $U_h$ is the rms of the horizontal
velocity, $N$ is the \bv frequency, $\epsK$ is the kinetic energy dissipation rate, $k$
is the wave-vector modulus, and $k_h$ is the horizontal wave-vector modulus. Then, due
to the anisotropic dispersion relation of internal gravity waves, time scales
separation will be less valid for small $k_h$, and even impossible for modes with
$k_h=0$. Consequently, separation of times scales can be violated even if a large
separation of spatial scales is observed (i.e. $k/k_b \ll 1$). It is therefore more
difficult to observe signatures of wave turbulence in anisotropic systems like MHD, or
rotating and stratified flows. \\
Stratified flows are not only an interesting conceptual problem, but they are also
important for the understanding of geophysical flows \cite{staquet_internal_2002,
vallis_atmospheric_2017}. In particular, understanding the role of waves in mixing is
required for sub-grid parameterizations in climate models \cite{mackinnon_climate_2017,
gregg_mixing_2018}. It is therefore not surprising that stratified flows received a
particular attention from both the ``strong'' turbulence community
\cite{billant_self-similarity_2001, waite_stratified_2004, waite_stratified_2006,
lindborg_energy_2006, brethouwer_scaling_2007, waite_stratified_2011,
kimura_energy_2012, bartello_sensitivity_2013, brunner-suzuki_upscale_2014,
augier_stratified_2015, maffioli_vertical_2017}, and the WWT community
\cite{caillol_kinetic_2000, lvov_hamiltonian_2001, lvov_weak_2010,
dematteis_downscale_2021, dematteis_origins_2022}. It turns out that internal waves are
effectively important in the dynamics and mixing in stratified flows
\cite{maffioli_signature_2020, lam_partitioning_2020, lam_energy_2021}, and that,
three-wave resonant interactions are responsible for slow, net energy transfers between
different wave-numbers \cite{davis_succession_2020, rodda_experimental_2022}. However,
many questions and issues remain about the applicability of WWT to stratified flows.
A recent study, \cite{yokoyama_energy-based_2019}, showed that a wave dominated region
should lie in the spectral region defined by $\tau_{L} / \tau_{NL} < 1/3$, in agreement
with observations made for MHD \cite{meyrand_direct_2016}. Yet, non-waves structures
like shear modes (purely vertical shear) and vortical modes (vertical vorticity) still
make the observation of a system of weakly interacting internal gravity waves
impossible. The same problem appear in rotating flows, in which the geostrophic modes
plays the role of the non-propagative structure. Experimentalists bypassed this
difficulty to observed weak inertial wave turbulence in a rotating tank, by using
honeycomb grids at top and bottom boundaries to dissipate geostrophic modes efficiently
\cite{brunet_shortcut_2020, monsalve_quantitative_2020}. These works point out that
some wave systems have a tendency to generate non-wave motions that can severely affect
the wave dynamics and should be suppressed in experiments aiming to observe wave
turbulence. In rotating inertial waves these modes are geostrophic flows, while in
internal gravity waves these modes are vertical shear and vertical vorticity
\cite{nazarenko_verifying_2020}. \\
The present study first deals with the existence and properties of a weak internal
gravity waves turbulence regime. To this end, we performed numerical simulations of
stratified turbulence at various stratifications. In the same spirit than experiments
in a rotating tank presented in \cite{brunet_shortcut_2020,
monsalve_quantitative_2020}, we removed shear modes in all of our simulations and the
vortical modes for half of them. The removing of vortical modes is done using the
Craya-Herring spectral decomposition \cite{craya_contribution_1957}. Consequently,
contrary to the removing of geostrophic modes in rotating tank, removing vortical modes
in a stratified flows is hardly doable experimentally. Note that, in order to get rid
of non waves structures, numerical simulations reduced dynamical equations (i.e.
without non-waves structures) of stratified rotating flows in the hydrostatic balance
where already done \cite{lvov_nonlinear_2009}. Despite the simplifications, these
simulations reproduced some key features of oceanic internal-wave spectra: accumulation
of energy at near-inertial waves and realistic frequency and horizontal wave-number
dependencies of spatiotemporal spectra. In the present work, we don't account for
rotation, and don't use the hydrostatic balance approximation. Also, having twins
simulations (i.e. with or without vortical modes) allows to have a better comparison to
understand the role of the vortical modes on the dynamics of stratified flows. In
particular, our study shows that the existence of vortical modes is not the limiting
factor when trying to observe internal gravity wave turbulence. In fact, the
stratification strength and the position of the forcing in spectral space appears to be
more important in that context.
The most commonly used WWT prediction is certainly the scale invariant stationary
solutions to the kinetic equation, which gives the expected spatial waves' energy
spectra in the statistically steady state. The solutions are usually of two types: the
thermodynamic equilibrium solution (Rayleigh-Jeans spectra), and the non equilibrium
solution(s) that are linked to the cascade(s) of the dynamical invariant(s) of the
system among scales (Kolmogorov-Zakharov spectra) \cite{nazarenko_wave_2011}. It is
important to note that these solutions can be considered as valid only if the collision
integral in the waves' kinetic equation converges. The importance of the nonlinear
interactions among internal gravity waves was recognized early, leading to several
derivations of waves' kinetic equations (see \cite{muller_nonlinear_1986,
lvov_resonant_2012}). Derivation of the Kolmogorov-Zakharov in the limit of large
vertical wave-number $k_z \simeq k \gg k_h$ can be found in \cite{caillol_kinetic_2000,
lvov_hamiltonian_2001}. This solution corresponds to an energy cascade, and is given by
\begin{equation}
n(k_h, k_z) \sim k_h^{-7/2} k_z^{-1/2} ~~~~ \text{and} ~~~~ E(k_h, k_z) \sim k_h^{-5/2} k_z^{-3/2}
\end{equation}
respectively for the wave-action spectra and the energy spectra. Yet, it was noted that
this solution comes through a cancellation between oppositely signed divergent
contributions in their respective collision integrals. Therefore, the existence of this
solution is fortuitous. Later, it was shown that power law solutions $n(k_h,k_z) \sim
k_h^{-\alpha_h} ~ k_z^{-\alpha_z}$ have convergent collision integral's contributions
only on the segment $\alpha_h \in ]3, 4[, \alpha_z=0$ \cite{lvov_oceanic_2010,
dematteis_downscale_2021}. The collision integral was then computed numerically for
$\alpha_z=0$, and it was deduced that the only scale invariant stationary solution to
the kinetic equation (zero of the collision integral) was close to
\begin{equation}
n(k_h, k_z) \sim k_h^{-3.69} k_z^{0} ~~~~ \text{and} ~~~~ E(k_h, k_z) \sim k_h^{-2.69} k_z^{-1}.
\end{equation}
It was also shown that, on the segment $\alpha_z =0$, the dominant contributions to the
collision integral corresponds to non-local transfers first identified by McComas
\cite{McComas_resonant_1977}, and by interactions between wave-vectors that are almost
collinear in the horizontal plane \cite{dematteis_downscale_2021}.
The manuscript is organized as follows. In section \ref{sec:methods}, we present our
methodology including a presentation of the code and the simulations. Our results are
presented in section \ref{sec:results}. Subsection \ref{subsec:global} is devoted to
the study of global energy ratio in the control parameters space for simulations at
aspect ratios less than unity. It allows us to observe that WWT is more likely to
occurs at high stratification and without vortical modes. Subsections
\ref{subsec:khkz} and \ref{subsec:khkzomega} deal with the spatiotemporal analysis of a
couple of strongly stratified simulations in order to investigate further the presence
of linear waves in spatial scales. It turns out that aspect small aspect ratio prevents
a WWT regime to occur. For this reason, we performed additional numerical simulations
with aspect ratio one. This new simulations are presented in subsection
\ref{subsec:ratio-one}. We give concluding remarks in section \ref{sec:conclusions}.
% Basics
We start from the three-dimensional Navier-Stokes equations under the Boussinesq
approximation:
\begin{align}
\label{eq:Continuity}
\bnabla \cdot \vv &= 0 \\
\label{eq:Impulsion}
\p_t\vv + (\vv \cdot \bnabla)\vv &= b\boldsymbol{e}_z - \bnabla p +
\nu \nabla^2\vv + \ff, \\
\label{eq:Buoyancy}
\p_t{b} + (\vv \cdot \bnabla)b &= -N^2 v_z + \kappa\nabla^2{b},
\end{align}
where $\rr = (x,y,z)$ represents the three spatial coordinates in the cartesian frame
$(O, \eex, \eey, \eez)$, $\eez$ is the stratification axis, $\vv=(v_x, v_y, v_z)$ is
the velocity, $b$ the buoyancy, $p$ the total kinematic pressure, $N$ the \bv
frequency, $\nu$ is the viscosity, $\kappa$ is the diffusivity, and $\ff$ is the
velocity forcing. We fix the Schmidt number $Sc = \nu/\kappa$ to one. We consider a
periodic domain of horizontal size $L_x = L_y = L_h = 3$. The vertical size of the
domain $L_z$, is varied. We note $(n_x, n_y, n_z)$ the numbers of collocations points
in the three spatial directions, with $n_x = n_x = n_h$.
The Fourier transform of the velocity field $\vvk = (\hat{v}_{x\kk}, \hat{v}_{y\kk},
\hat{v}_{z\kk})$ can be written using the poloidal-toroidal-shear decomposition (see
e.g. \cite{craya_contribution_1957, maffioli_vertical_2017})
\begin{equation}
\vvk = \begin{cases} \vvp \eep + \vvt \eet ~~~~ \text{if} ~ k_h \neq 0, \\
\vvs = \hat{v}_{x \kk} \eex + \hat{v}_{y \kk} \eey ~~~~ \text{if} ~ k_h = 0.
\end{cases}
\end{equation}
where
\begin{equation}
\label{eq:poloidal-toroidal}
\eek = \frac{\kk}{k}, ~~~~
\eep = \frac{\kk \times (\kk \times \eez)}{|\kk \times (\kk \times \eez)|}, ~~~~
\eet = \frac{\kk \times \eez}{|\kk \times \eez|},
\end{equation}
$\vvp$ is the poloidal velocity, $\vvt$ is the toroidal velocity, $\vvs$ is the shear
modes velocity, $\kk=(k_x, k_y, k_z)$ denotes the wave-vector, $k =|\kk| = \sqrt{k_x^2
+ k_y^2 + k_z^2}$ is its norm, and $k_h = \sqrt{k_x^2 + k_y^2}$ is the norm of the
horizontal wave-vector (Figure \ref{fig:poloidal-toroidal}).
\begin{figure}[H]
\centering
\includegraphics[width=0.5\textwidth]{fig_poloidal-toroidal}
\caption{Illustration of the poloidal-toroidal basis $(\eek, \eep, \eet)$ defined by
equations (\ref{eq:poloidal-toroidal}). $\thk$ is the angle between $\eez$ and $\eek$.
$\phk$ is the angle between the horizontal projection of $\kk$ and $\eex$.
\label{fig:poloidal-toroidal}}
\end{figure}
% Description of linear modes and shear modes dynamics
In spectral space, the equations of motion then reads
\begin{align}
\label{eq:StratifiedSpectralPoloidalToroidal}
\begin{cases}
\dot{\hat{v}}_{p\kk} &= - (\widehat{\vv \cdot \bnabla \vv})_{\kk} \cdot \eep - \bbk \sin \thk - \nu k^2 \vvp + \hat{f}_{\kk}, \\
\dot{\hat{v}}_{t\kk} &= - (\widehat{\vv \cdot \bnabla \vv})_{\kk} \cdot \eet - \nu k^2 \vvt, \\
\dot{\hat{b}}_{\kk} &= - (\widehat{\vv \cdot \bnabla b})_{\kk} + N^2 \vvp \sin \thk - \kappa k^2 \bbk
\end{cases}
\end{align}
if $k_h \neq 0$, and
\begin{align}
\label{eq:StratifiedSpectralShearModes}
\begin{cases}
\dot{\hat{\vv}}_{s\kk} &= - (\widehat{\vv \cdot \bnabla \vv_h})_{\kk} - \nu k^2 \vvs, \\
\dot{\hat{b}}_{\kk} &= - (\widehat{\vv \cdot \bnabla b})_{\kk} - \kappa k^2 \bbk
\end{cases}
\end{align}
if $k_h=0$, where $\vv_h = (v_x,v_y,0)$ is the horizontal component of $\vv$. $k_\alpha
\in \delta k_\alpha \mathbb{Z}$ with $\delta k_\alpha = 2\pi /L_\alpha$ for $\alpha
=x,y,z$. We will also note $\delta k_x = \delta k_y = \delta k_h$.
$\left(\widehat{\cdot}\right)_{\kk}$ denotes the Fourier transform. In the
poloidal-toroidal-shear decomposition, it is clear that linear waves live in the
poloidal poloidal velocity and the buoyancy, but not in the toroidal velocity.
The linear, unforced, inviscid dynamics can be written as
\begin{align}
\label{eq:StratifiedSpectralPoloidalToroidalLinear}
&\dot{a}_{\kk}^{(-)} = -i \ok a_{\kk}^{(-)}, ~~~~ \dot{a}_{\kk}^{(0)} = 0, ~~~~ \dot{a}_{\kk}^{(+)} = +i \ok a_{\kk}^{(+)} ~~~~ \text{if} ~~ k_h \neq 0 \\
\label{eq:StratifiedSpectralShearModesLinear}
&\dot{\hat{\vv}}_{s\kk} = \mathbf{0}, ~~~~ \dot{\hat{b}}_{\kk} = 0 ~~~~ \text{if} ~~ k_h = 0.
\end{align}
where $a_{\kk}^{(\mp)} = \left(\vvp \mp i \frac{\bbk}{N} \right)/\sqrt{2\ok}$ are the
waves modes,
\begin{equation}
\ok =N k_h/k = N \sin \thk
\end{equation}
is the pulsation of the waves, $\thk$ is the angle between $\kk$ and the stratification
axis $\eez$, and $a_{\kk}^{(0)} = \vvt$ are the vortical modes (vertical vorticity).
Equations
(\ref{eq:StratifiedSpectralPoloidalToroidalLinear}-\ref{eq:StratifiedSpectralShearModesLinear})
show that both shear modes and vortical modes have zero frequency.
% Forcing, truncations, and hyperviscosity, code
Since we are motivated by forcing internal gravity waves, in which only the poloidal
part is involved and whose dispersion relation is anisotropic, we choose a time
correlated, anisotropic, poloidal velocity forcing $\ffk = \hat{f}_{\kk} \eep$. The
flow is forced at large spatial scales and small angle $\left\{ \kk ~ | ~ 5 \leq
k/\delta k_h \leq 20, ~ |\sin \thk - 0.3| \leq 0.05 \right\}$, meaning that relatively
slow internal waves are forced. The correlation time of the forcing is equal to the
period of the forced waves $T_c = 2\pi / 0.3 N$. It is computed in spectral space such
that the kinetic energy injection rate $P_K$ is constant and equal to unity. The
forcing scheme is described by the Algorithm \ref{algorithm:forcing}. \\
\begin{algorithm}[H]
$t=0$: generate two random numbers $f_{0\kk}, f_{1\kk} \sim \mathcal{P}$ $\forall \kk$ in the forcing region; $t_0 = 0$; \\
\While{$t \leq T$}{
$t \rightarrow t +\delta t$; \\
\If{$t - t_0 \geq T_c$}{
$t_0 \rightarrow t$; \\
$f_{0 \kk} \rightarrow f_{1 \kk}$; \\
genererate $f_{1\kk} \sim \mathcal{P}$
}{}
$\ffk = \left\{ f_{0\kk} - \dfrac{(f_{1\kk} - f_{0\kk})}{2} \left[ \cos\left( \dfrac{\pi(t-t_0)}{T_c} \right) + 1 \right] \right\} ~ \eep$ \\
$\ffk$ are normalized to ensure $P_K = 1$
}
\caption{Forcing scheme. $\mathcal{P}$ is the probability law which has for distribution $p_X(x) = \left\{
\frac{1}{4} ~~ \text{if} ~ Re(x) \in [-1:1] ~ \text{and} ~ Im(x) \in [-1:1], 0 ~~ \text{otherwise} \right\}$. $\delta t$ is the time increment at each time step. \label{algorithm:forcing}}
\end{algorithm}
Some modes are removed in all the present simulations because they cause numerical and
physical problems and/or are not consistent with experiments in which the flow is
bounded with walls. (i) All modes with wavenumber modulus larger than $\kmax = 0.8
(n_h/2) \delta k_h$ are truncated to limit aliasing. (ii) Shear modes are truncated.
(iii) Vertically invariant vertical velocity (internal waves at $\omega = N$) is also
forbidden. We add hyperviscosity and hyperdiffusivity terms of order $4$, $\nu_4 =
\kappa_4$, in many simulations in order to avoid numerical issues. They are fixed
according to the numerical resolution such that the hyperviscous and hyperdifussive
dissipations act at the smallest scales. For most of the simulations, the resolution
increased sufficiently for the hyperviscosity and hypediffusivity to have no
significant impact on measured global quantities, and on spectra in the inertial range.
We measure the turbulent kinetic dissipations $\epsKK$ and $\epsKKKK$ based on both
viscosities, and the total energy dissipation $\epsK = \epsKK + \epsKKKK$. The product
of the maximal wave-vector $\kmax$ with the Kolmogorov scales $\eta \equiv (\nu^3 /
\epsKK)^{1/4}$ and $\eta_4 \equiv (\nu_4^3/\epsK)^{1/10}$ are computed to estimate que
quality of the simulations. Only some simulations at high $N$ remain affected by
hyperdiffusivity. The time advancement is performed using the $4^{th}$ order
Runge-Kutta scheme. The numerical simulations are performed using the pseudo-spectral
solver \texttt{ns3d.strat} from the FluidSim Python package.
\cite{augier_fluiddyn_2019, mohanan_fluidfft_2019, mohanan_fluidsim_2019}.
% Poloidal projection
For this study, we performed two types of simulations. In the first ones, we keep
vortical modes. For each simulation with vortical modes, we made a ``twin'' simulation
with the same values of input parameters but without vortical modes. The goal of this
procedure is to remove two non propagative structures, namely the shear modes and the
vortical modes in the second dataset in order to get closer to a system on internal
gravity waves. The reader is refered to \todo{cite manuscript for poloidal projection}
for more details about the numerical simulations with vortical modes. The simulations
without vortical modes are realised in the very same way.
% Dimensionless numbers and useful quantities
The main physical input parameters are the \bv frequency and the viscosity. Since both
forcing length and energy injection rate are in practice equal or close to unity, we
can take as input parameters the \bv frequency and an input buoyancy Reynolds number
$\R_i = 1/ \nu N^2$. The turbulent non-dimensional numbers are the horizontal turbulent
Froude number and the buoyancy Reynolds numbers that are respectively
\begin{equation}
F_h = \epsK / ({U_h}^2 N), ~~~~ \R = \epsK / (\nu N^2), ~~~~ \R_4 = \frac{\epsK U_h^2}{\nu_4 N^4},
\end{equation}
where $\epsK$ is the average kinetic energy dissipation rate, and $U_h$ is the rms of
the horizontal velocity. We also compute the buoyancy and the Ozmidov wave-vectors $k_b
\equiv N/U_h$ and $k_O \equiv \sqrt{N^3 / \epsK}$. All the quantities presented in this
manuscript are computed from averaging over 2 unit times of the simulations, when the
flow is stationary, at the end of the simulations. A list of the simulations we used in
subsection \ref{subsec:global}, with relevant parameters and physical quantities is
given by tables \ref{table-better-simuls} and \ref{table-better-simuls-proj}. \\
% Simulations with aspect ratio one
For reasons that will be explained in subsection \ref{subsec:ratio-one}, we also
performed additional simulations with aspect ratio one, $\nu=0$, a forcing at large
spatial scales but large angle $\left\{ \kk ~ | ~ 3 \leq k/\delta k_h \leq 3.5, ~ |\thk
- 0.8\pi/2| \leq \pi/40 \right\}$, meaning that relatively fast internal waves are
forced. The correlation time of the forcing is equal to the period of the forced waves
$T_c = 2\pi / \sin(0.8\pi/2) N$. We also changed the de-aliasing coefficient to $2/3$
such that $\kmax = n_h \delta k_h/3$. A list of these simulations is given byt tables
\ref{table-better-simuls-ratio-one} and \ref{table-better-simuls-proj-ratio-one}.
\subsection{Global energy distribution}
\label{subsec:global}
In this subsection, we study the global energy budget in the $(F_h, \R)$ plane. We note
$E_{pot} = \sum\limits_{\kk} \frac{|\bbk|^2}{2N^2}$ the potential energy, $E_{polo} =
\sum\limits_{\kk} \frac{|\vvp|^2}{2}$ the poloidal kinetic energy, $E_{toro} =
\sum\limits_{\kk} \frac{|\vvt|^2}{2}$ the vortical modes (toroidal) kinetic energy, and
$E = E_{pot} + E_{polo} + E_{toro}$ the total energy. Figure~\ref{fig:global-energy}
shows the evolution of vortical modes energy ratio $E_{toro}/E$ and the relative
difference between poloidal and potential energy $\tilde{\mathcal{D}} = (E_{polo} -
E_{pot})/(E_{polo} + E_{pot})$ as a function of $F_h$ and $\R$. For waves, we expect to
observe an equipartition between the poloidal kinetic energy and potential energy.
Consequently, both $E_{toro}/E$ and $\tilde{\mathcal{D}}$ should be close to zero for a
system mainly composed by internal gravity waves.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_ratio_E_vs_Fh}
\caption{(a) Ratio of vortical modes energy for simulations without projection vs
$F_h$. (b) Relative difference between poloidal and potential energies for simulations
with or without vortical modes vs $F_h$. \label{fig:global-energy}}
\end{figure}
We observe that vortical modes energy becomes dominant at high stratification (low
$F_h$) if they are not removed from the dynamics in these simulations with $\R \geq
0.1$ (figure~\ref{fig:global-energy} (a)). The ratio $E_{toro}/E$ is the lowest at
intermediate stratification $F_h \simeq 0.1-0.3$ and low values of $\R$. However, the
same simulations are marked by a predominance of potential energy over poloidal energy,
$\tilde{\mathcal{D}} < 0$ (figure~\ref{fig:global-energy} (b)), meaning that these
weakly stratified flows do contain other structures than waves. When vortical modes are
removed, we can obtain flows with a global balance between poloidal and potential
energies ($\tilde{\mathcal{D}} \simeq 0$) at high stratification. Consequently, a flow
governed by weak non-linear interactions between waves may be obtained at high
stratification by removing vortical modes. In the two next subsections, we perform a
spatiotemporal analysis of a couple of stongly stratified turbulent simulations with
$N=40$ and $\R_i=20$ (with and without vortical modes).
\subsection{$(k_h, k_z)$ energy budget in the strongly stratified regime}
\label{subsec:khkz}
The kinetic energy and potential energy budgets for one Fourier mode read
\begin{equation}
\label{eq:seb}
\left\langle \frac{1}{2}\frac{\mathrm{d} |\vvk|^2}{\mathrm{d}t} \right \rangle = \mathcal{I}_{\kk} + \mathcal{T}_{kin, \kk} - \mathcal{B}_{\kk} - \varepsilon_{kin,\kk}, ~~~~ \text{and} ~~~~
\left\langle \frac{1}{2N^2}\frac{\mathrm{d}|\hat{b}_{\kk}|^2}{\mathrm{d}t} \right\rangle = \mathcal{T}_{pot,\kk} + \mathcal{B}_{\kk} - \varepsilon_{pot,\kk},
\end{equation}
where
\begin{align}
\nonumber
&\mathcal{I}_{\kk} = \left\langle Re \left( \ffk \cdot \vvk^* \right) \right \rangle, ~~~~
\mathcal{T}_{kin, \kk} = - \left\langle Re \left( \vvk^* \cdot \left[ \bar{\bar{P}}_{\kk} \cdot (\widehat{\vv \cdot \bnabla \vv})_{\kk} \right] \right) \right\rangle, \\
&\mathcal{T}_{pot, \kk} = - \left\langle Re \left( \hat{b}_{\kk}^* (\widehat{\vv \cdot \bnabla b})_{\kk} \right) / N^2 \right\rangle, ~~~~
\mathcal{B}_{\kk} = - \left\langle Re \left( \hat{v}_{z\kk}^* \hat{b}_{\kk} \right) \right\rangle,
\end{align}
are respectively the kinetic energy injection rate, the kinetic energy transfer, the
potential energy transfer, and the conversion of kinetic energy to potential energy. In
the last equations, $(\cdot)^*$ denotes the complex conjugate, $Re(\cdot)$ the real
part, $\left\langle \cdot \right\rangle$ stands for the averaging operator, and
$\bar{\bar{P}}_{\kk} = \mathbb{I} - \kk \otimes \kk / k^2$ is the projector onto the
plane orthogonal to $\kk$. In this section, we study azimutal average of the energy
budget. Namely, we computed quantities like:
\begin{equation}
F(k_h, k_z) = \frac{1}{\delta k_h ~ \delta k_z} \sum\limits_{k_h \leq k_h'< k_h + \delta k_h} ~ \sum\limits_{k_z \leq |k_z'| < k_z + \delta k_z} ~ F_{\kk},
\end{equation}
where $F$ can be $E_{pot}$, $E_{polo}$, $E_{toro}$, $\mathcal{T}_{pot}$,
$\mathcal{T}_{kin}$, or $\mathcal{B}$.
Following \cite{yokoyama_energy-based_2019}, we use the following ratios of energies,
like $E_{toro}(k_h, k_z)/E(k_h, k_z)$, in order to quantify the energy content scale by
scale. In the same spirit, we also introduce the following quantities
\begin{align}
\label{eq:transferK}
\tilde{\mathcal{T}}_{kin} &= \mathcal{T}_{kin} /(|\mathcal{T}_{kin}| + |\mathcal{T}_{pot}| + |\mathcal{B}| + \epsK + \epsA), \\
\label{eq:transferA}
\tilde{\mathcal{T}}_{pot} &= \mathcal{T}_{pot} /(|\mathcal{T}_{kin}| + |\mathcal{T}_{pot}| + |\mathcal{B}| + \epsK + \epsA), \\
\label{eq:convK2toA}
\tilde{\mathcal{B}} &= \mathcal{B} /(|\mathcal{T}_{kin}| + |\mathcal{T}_{pot}| + |\mathcal{B}| + \epsK + \epsA)
\end{align}
that are useful for tracking the energy pathways. By construction,
$\tilde{\mathcal{T}}_{pot}$, $\tilde{\mathcal{T}_{kin}}$, and $\tilde{\mathcal{B}}$
vary between $-1$ and $1$ depending on the amplitude and direction of the energy
transfer or conversion. In statistically stationary state ($\langle\cdot \rangle = 0$)
and in the inertial range ($\epsK = \epsA = \mathcal{P}_K = 0$), we should have
$\mathcal{T}_{kin} = - \mathcal{T}_{pot} = \mathcal{B}$. For this reason, we will
present only $\tilde{\mathcal{B}}$ in spectral energy budgets. As explained in the
previous subsection, waves are marked by an equipartition between poloidal kinetic
energy and potential energy. Then, we introduce the equipartition energy and the
difference energy as
\begin{align}
E_{equi}(k_h, k_z) &= 2 \min \left\{ E_{polo}(k_h, k_z), E_{pot}(k_h, k_z)\right\}, \\
E_{diff}(k_h, k_z) &= E_{polo}(k_h, k_z) + E_{pot}(k_h, k_z) - E_{equi}(k_h, k_z),
\end{align}
in order to track the presence of waves in the $(k_h, k_z)$ plane. Indeed, $E_{diff}$
corresponds to the energy contained in $E_{pot}$ and $E_{polo}$ that cannot be in
potential-kinetic equipartition. Therefore, $E_{diff}$ does not contain the waves'
energy. On the other side, $E_{equi}$ corresponds to the energy contained in $E_{pot}$
and $E_{polo}$ that is in potential-kinetic equipartition. Consequently, $E_{equi}$
encompass the waves' energy. However, it is important to note that $E_{equi}$ can also
contain the energy of structures that are not waves. A more careful separation between
waves and non-waves structures requires a 4D spatiotemporal filtering
\cite{lam_partitioning_2020, lam_energy_2021}, which is expansive in term of
computational time and data storage. Yet, $E_{equi} /E$ and $E_{diff}/E$ help to track
waves in the $(k_h, k_z)$ plane at a lower cost. We also compute the non-linearity
parameter used for several physical systems, including stratified and rotating
turbulence \cite{nazarenko_critical_2011, yokoyama_energy-based_2019} and MHD
\cite{meyrand_direct_2016, cerri_turbulent_2022})
\begin{equation}
\chi_{\kk} = \frac{\tau_{L}}{\tau_{NL}} = \frac{(\epsK k^2)^{1/3}}{N k_h / k} = \frac{k}{k_h} \left( \frac{k}{k_O} \right)^{2/3}.
\end{equation}
It represents the ratio between the period of the linear waves and the eddy turnover
time, estimated by dimensional analysis.
Figure \ref{fig:seb-no-proj} shows the spectral energy budget of the simulation $(N=40,
\R_i=20)$ with vortical modes. We observe that $E_{equi}$ is the dominant energy in
almost all the inertial range. $E_{diff}$ dominates only in the forcing region.
$E_{toro}$ is never negligible away of the forcing region, and very important for small
wave-vectors. For this simulation, the conversion between potential energy and kinetic
energy $\tilde{\mathcal{B}}$ is important only when $\chi_{\kk} < 10$ and $k < k_O$.
$\tilde{\mathcal{B}} \geq 0$ in the forcing region and when $k_z < k_h < k_O$, while
$\tilde{\mathcal{B}} < 0$ if $\chi_{\kk} < 10$ and $k_h \leq k_z \leq k_O$.
Interestingly, $E_{equi}$ is dominant around the line $\chi_{\kk} = 3$ for this
simulation with $F_h \ll 1$ and $\R \gg 1$, even beyond the Ozmidov scale. This
indicates that the ratio of temporal scales $\chi_{\kk}$ is important when identifying
ranges in anisotropic turbulence, as explained in \cite{yokoyama_energy-based_2019}.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_seb_regimes_L_projNone}
\caption{Spectral energy budget for simulation $N=40$, $\R_i=20$, with vortical modes.
The gray dotted and dashed lines correspond to $\chi_{\kk} = 1/3$ and $\chi_{\kk} = 3$,
the continuous black line to $k_z = k_h$, the black dotted line to $k_b$, the black
dashed line to $k_O$, and the green dashed line to the dissipative scale. The orange
dashed lines correspond to the maximal vertical and horizontal wave-vectors of the
forcing. \label{fig:seb-no-proj}}
\end{figure}
Figure \ref{fig:seb-proj} represents the spectral energy budget of the simulation
$(N=40, \R_i=20)$ without vortical modes. Obviously, no energy is contained in vortical
modes in this case. One difference with the case were vortical modes are not removed is
that $E_{diff}$ is less concentrated around the line $\chi_{\kk} = 3$. This could be
due to the fact that this line is closer to the dissipative scale when we remove
vortical modes due to a small increase of $F_h$ (and therefore $k_b$ and $k_O$).
Another important difference is that we clearly see that $\tilde{E}_d$ can be important
when $k \geq k_b$, in particular when $k_z \ll k_h$ or $k_z \gg k_h$ due, for example,
to wave breaking. This is a first indication that the wave dominated range cannot lie
above $k_b$. Moreover, $E_{equi}$ is dominant for $k \leq k_b$, which is another
indication that the waves dominated region lies in the buoyancy range. The scaled
conversion to potential energy is remarkably similar to the case where vortical modes
are present (figure \ref{fig:seb-no-proj}). This is not surprising since the vertical
velocity is fully contained in waves modes, and not in vortical modes. Despite the fact
that $\tilde{\mathcal{B}}$ is important only when $\chi_{\kk} < 10$ and $k < k_O$, we
observe that it is whether positive or negative. Consequently, if waves certainly exist
in this range, they cannot subsist because kinetic energy is converted into potential
energy or vice-versa. Nevertheless, we observe that $\tilde{\mathcal{B}}$ fluctuates in
time in the buoyancy range. The region with $\chi_{\kk} > 10$ is marked by
wave-breaking and strong vortices. Therefore, these simulations are unlikely to
correspond to a WWT regime, even in the buoyancy range and without vortical modes.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_seb_regimes_L_projpoloidal}
\caption{Spectral energy budget for simulation $N=40$, $\R_i=20$, without vortical
modes. See figure \ref{fig:seb-no-proj} for definitions of the lines.
\label{fig:seb-proj}}
\end{figure}
\subsection{Spatiotemporal analysis in the buoyancy range}
\label{subsec:khkzomega}
From the previous subsection, it is expected that waves can dominate (but cannot
necessarily sustain) not too far from the buoyancy range ($k \leq k_b$), even for the
simulations without vortical modes. To assess further the presence and degree of
non-linearity of waves, we performed a spatiotemporal analysis for small $k$. On figure
\ref{fig:omega-L}, we represent relevant quantities computed from temporal spectra for
several $(k_h, k_z)$. The first one is the normalized temporal spectral $E_{equi}(k_h,
k_z, \omega)/ \max\limits_{\omega} E_{equi}(k_h, k_z, \omega)$ which indicates how the
energy is distributed among temporal scales for a given spatial scale. The second one
is the ratio $E_{equi}(k_h, k_z, \omega)/E(k_h, k_z, \omega)$ which indicates how much
energy is contained in $E_{equi}$ for a given $(k_h, k_z, \omega)$. For a system of
internal gravity waves, we should observe a pic of $E_{equi}$ around $\omega = \ok$
(for the energy to be concentrated around the linear frequency), and $E_{equi}/E$
should be close to unity (for the energy to be concentrated in waves modes).
For these simulations of strongly stratified turbulence, we observe that the
concentration around the linear frequency mostly depends on the ratio $k/k_b$. As
expected, the pics of energy around $\omega = \ok$ is more pronounced when $k \ll k_b$
(figure \ref{fig:omega-L} (a) and (b)). This is an indication that linear waves
effectivelly dominate at $k \ll k_b$, with or without vortical modes. When $k \simeq
k_b$, energy starts to spread at all temporal scales: we observe a plateau up to $\ok$,
then the energy decreases, indicating that structures at temporal scales smaller than
the linear waves are more dissipated. We note that removing vortical modes from the
dynamics has no strong effect on the concentration of $E_{equi}$ in temporal scales:
despite the fact that spectra are more picked for some modes at intermediate $k/k_b$,
but this is not the case in general. This could be due to the fact that removing
vortical modes forbid interactions between modes, and tends to make discretization
effects more important. Yet, simulations without vortical modes naturally have bigger
$E_{equi}/E$ at all spatial and temporal scales (figure \ref{fig:omega-L} (d)) when
compared to simulations with vortical modes (figure \ref{fig:omega-L} (c)).
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_spectra_slices_omega_kh_kz_regimes_L}
\caption{Spatiotemporal analysis of the simulations with $N=40$ and $\R_i=20$.
$E_{equi}(k_h, k_z, \omega)/E(k_h, k_z, \omega)$ for the simulation with vortical modes
(a) and for the simulation without vortical modes (b). $E_{equi}(k_h, k_z, \omega)/
\max\limits_{\omega} E_{equi}(k_h, k_z, \omega)$ for simulation with vortical modes (c)
and for simulation without vortical modes (d). Only some couples $(k_h, k_z)$ are
shown. Lines' colors corresponds to different values of $k/k_b$. The vertical black
lines corresponds to $\omega = \ok$. \label{fig:omega-L}}
\end{figure}
A way to measure the dispersion of temporal scales is to compute the empirical
frequency $\omega_{emp}$ and the deviation from linear waves frequency $\delta \ok$,
computed with the waves energy spectra. Here, we estimate them using the equipartition
energy spectra such that
\begin{equation}
\omega_{emp}(k_h, k_z) = \frac{\sum\limits_{\omega} ~ \omega ~ E_{equi}(k_h, k_z, \omega)}{\sum\limits_{\omega} ~ E_{equi}(k_h, k_z, \omega)} ~~ \text{and} ~~
\delta \ok(k_h, k_z) = \sqrt{ \frac{\sum\limits_{\omega} ~ (\omega - \ok)^2 ~ E_{equi}(k_h, k_z, \omega)}{\sum\limits_{\omega} ~ E_{equi}(k_h, k_z, \omega)}}.
\end{equation}
The quantity $\delta \ok / \ok$ is another estimation of the ratio between the period
of linear waves and the characteristic time of non linear interactions. Contrary to the
non-linearity parameter $\chi_{\kk}$, which is derived by dimensional analysis, $\delta
\ok/ \ok$ requires the knowledge of the spatio-temporal spectra. $\delta \ok/ \ok$ is
called non-linear broadening, and is particularly important in the the WWT theory: for
$\delta \ok/ \ok \gg 1$, waves' dynamics is strongly affected by non-linear
interactions, while when $\delta \ok/ \ok \ll 1$, waves can propagate with only weak
non-linear perturbations and the theory could hold \cite{nazarenko_wave_2011}. For a
system of non-interacting linear waves, both $|\omega_{emp}-\ok|/N$ and $\delta
\ok/\ok$ should be zero. Figure \ref{fig:nonlinear-L} shows this quantities in the
$(k_h, k_z)$ plane. It shows that the empirical frequency is close to $\ok$, and that
the nonlinear broadening is small if $k \ll k_b$ and $\chi_{\kk} \leq 1/3$. In fact, we
observed that the limit of the region where waves dominate depends both on $\chi_{\kk}$
and $k/k_b$. This is slightly different than the conclusions drawn in
\cite{yokoyama_energy-based_2019}, where this region was expected to be delimited by
$\chi_{\kk} \leq 1/3$ only. However, it is important to remember that we use a
different forcing mechanism in our simulations, a smaller aspect ratio, and shear modes
are truncated. $\omega_{emp}$ deviates significantly from $\ok$ and $\delta \ok/\ok$
becomes large when $k \gg k_b$ or $\chi_{\kk} > 3$. As we observed in figure
\ref{fig:omega-L}, removing vortical modes does not have a significant direct effect on
$\omega_{emp}$ and $\delta \ok/\ok$. However, the simulations without vortical modes
tend to have smaller $F_h$, which increases the size of the buoyancy range when
compared to the simulations with vortical modes.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_nonlinear_regimes_L}
\caption{$\omega_{emp}/N$ vs $\omega_{\kk}/N$ for simulation with vortical modes (a)
and without vortical modes (b). $|\omega_{emp} - \ok|/N$ for simulation with vortical
modes (c) and without vortical modes (d). $\delta \ok/\ok$ for simulation with vortical
modes (e) and without vortical modes (f). The simulations are the same that in figure
\ref{fig:omega-L} and legend is the same that in figures \ref{fig:seb-no-proj} and
\ref{fig:seb-proj}. \label{fig:nonlinear-L}}
\end{figure}
\subsection{Simulations at higher aspect ratio, in the buoyancy range}
\label{subsec:ratio-one}
We saw that waves dominate if $k \ll k_b$, $\chi_{\kk} < 1/3$, and when vortical modes
are removed. A first conclusion to draw from that is that performing simulation at high
buoyancy Reynolds number is not mandatory to observe a waves dominated region in the
spectral space. If we are interested in observing an internal gravity waves system, it
is therefore tempting to reduce $\R$ in numerical simulations or experiments. Yet, our
previous simulations also reveal that $\tilde{\mathcal{B}}(k_h, k_z)$ in the region $k
< k_b, \chi_{\kk} <1/3$ is positive or negative, but does not fluctuate around zero, as
a system of statistically stationary waves should do. This is an indication that waves
certainly do not survive for a long time in these simulations. It appears that this
remains true for all the simulations with aspect ratio one that we performed. Yet, this
fact could be due to the small aspect ratio of the simulations. To understand this, we
can consider the linear inviscid Boussinesq equations without forcing (equations
(\ref{eq:Continuity}-\ref{eq:Buoyancy}) with $\nu = \kappa = 0$, $\ff =
\boldsymbol{0}$, and no nonlinear terms) and scale the variables as follow
\begin{align}
&t \rightarrow \frac{t}{N}, ~~ x \rightarrow \frac{x}{L_h}, ~~ y \rightarrow \frac{y}{L_h}, ~~ z \rightarrow \frac{z}{L_z}, \\
&v_x \rightarrow \frac{v_x}{U_h}, ~~ v_y \rightarrow \frac{v_y}{U_h}, ~~ v_z \rightarrow \frac{v_z}{U_z}, \\
&p \rightarrow \frac{p}{P}, ~~ b \rightarrow \frac{b}{B},
\end{align}
Where $P$ and $B$ are nominal values for the pressure and the buoyancy. Then, an order
of magnitude analysis leads to (i) $U_h/L_h = U_z/L_z$ for equation
(\ref{eq:Continuity}); (ii) $P = U_h L_h N$ for the horizontal part of equation
(\ref{eq:Impulsion}); (iii) $B=NU_z$ for equation (\ref{eq:Buoyancy}). For a system of
internal gravity waves, the vertical velocity is due to buoyancy variations, which
constitute the forcing. Due to the vertical component of equation (\ref{eq:Impulsion}),
the buoyancy forcing should be compensated by the temporal evolution of the vertical
velocity, or by the vertical pressure gradient, giving
\begin{equation}
B = \max \left\{ \frac{P}{L_z}, N U_z \right\} ~~ \Rightarrow ~~
N U_z = \max \left\{ N U_z \left(\frac{L_h}{L_z}\right)^2, N U_z \right\},
\end{equation}
which can hold only if $L_h \leq L_z$. The last condition simply means that if the
relevant vertical length-scale is too small compared to the horizontal one, the
vertical pressure gradient becomes too important which breaks the weak non-linearity
assumption. Consequently, performing numerical simulations or experiments with not too
small aspect ratio is important when trying to observe WWT in stratified flows. For
this reason, we performed additional numerical simulations with aspect ratio one
(tables \ref{table-better-simuls-ratio-one} and
\ref{table-better-simuls-proj-ratio-one}). In order to excite waves more easily, we
also decided to move the forcing region at larger angles $\thk$ and smaller $k_h/\delta
k_h$, for which $\chi_{\kk}$ is smaller.
We observed that not all simulations are in statistically steady state, i.e. the energy
injection rate stays bigger that the energy dissipation rate at the end of some runs
(not shown) \todo{Still working on this... It happens only for simulations with
$N\geq50$. However, the energy is almost constant in all runs.}. Simulations with $N
\leq 20$, and the simulation with $N=80$ without vortical modes are all in steady
state. However, we still observe a very slow increases of the energy in other
simulations with $N \geq 50$. Because of the computational cost, we did not run
simulations for longer times.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_ratio_E_vs_Fh_ratio_one}
\caption{(a) Ratio of vortical modes energy for simulations with aspect ratio one and
with vortical modes vs $F_h$. (b) Relative difference between poloidal and potential
energies for simulations with aspect ratio one, with or without vortical modes vs
$F_h$. \label{fig:ratio-one-global-energy}}
\end{figure}
Figure \ref{fig:ratio-one-global-energy} represents the global energy budget for
simulations with aspect ratio one. Here, all the simulations have the same
hyper-viscosity. Because $\nu = 0$ in these simulations, we indicate $\R_4$ in color
scale instead of $\R$ in figure \ref{fig:global-energy}. Since $\nu_4$ is kept
constant, decreasing $F_h$ tends to decrease $\R_4$ and the ratio $k_b \eta_4$, meaning
that dissipation occurs near or in the buoyancy range at highest stratification. This
is consistent with previous numerical simulations where it was observed that the energy
of eddies dominate for $\R \gg 1$, and that energy of waves dominate for $\R \ll 1$
\cite{lam_energy_2021}. It is also consistent with recent experiments that suggest that
the WWT regime should exist for $\R$ not too large \cite{rodda_experimental_2022}. This
explain why, contrary to simulations with smaller aspect ratio (figure
\ref{fig:global-energy}), $\tilde{E}_{toro}$ stays relatively small ($\leq 0.5$) even
at low $F_h$ in these new simulations. Moreover, we observe that $\tilde{\mathcal{D}}
\simeq 0$ which means that these new simulations are also characterized by a good
global balance between poloidal energy and potential energy, removing vortical modes or
not.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_seb_transition_ratio_one}
\caption{Dimensionless conversion to potential energy $\tilde{\mathcal{B}}$ for
simulations with aspect ratio one at different stratifications. $N=10$ with vortical
modes $(a)$ and without vortical modes $(b)$. $N=20$ with vortical modes $(c)$ and
without vortical modes $(d)$. $N=80$ with vortical modes $(e)$ and without vortical
modes $(f)$. See figure \ref{fig:seb-no-proj} for definitions of lines.
\label{fig:ratio-one-B}}
\end{figure}
Figure \ref{fig:ratio-one-B} shows the dimensionless conversion to potential energy
$\tilde{\mathcal{B}}$ for simulations with aspect ratio one. For low stratification,
i.e. $N=10$ (figures \ref{fig:ratio-one-B} $(a)$ and $(b)$), the behavior of
$\tilde{\mathcal{B}}$ is very similar to what we observed for strongly stratified
turbulent simulations at lower aspect ratio: despite the fluctuations in the buoyancy
range, $\tilde{\mathcal{B}}$ tends to be positive or negative, indicating that the
waves' kinetic energy is significantly converted into potential energy or conversely.
For intermediate stratification, i.e. $N=20$ (figures \ref{fig:ratio-one-B} $(c)$ and
$(d)$), fluctuations of $\tilde{\mathcal{B}}$ grow significantly in the buoyancy range.
This coincide with the point at which the forcing region starts to lie in the region
$\chi_{\kk} \leq 1/3$. For higher stratification, i.e. $N=80$ (figures
\ref{fig:ratio-one-B} $(e)$ and $(f)$), fluctuations of $\tilde{\mathcal{B}}$ are very
important in the buoyancy range. The temporal window for averaging is kept constant and
is of 2 units time for all runs. We see that at this stratification, the forcing region
fully lie in $\chi_{\kk} \leq 1/3$, suggesting that injected energy can be converted
into waves even more efficiently. This also means that the energy injected energy will
less feed non waves structures which could cascade among scales and perturb the all
spectra. In other words, when the forcing region fully lie in $\chi_{\kk} \leq 1/3$, we
can start to observe a sub-inertial range between the forcing region and $\chi_{\kk}
\leq 1/3$, $k\leq k_b$ in which waves dominate and can survive for longer times. An
indication of such a transition is also visible on Figure 6 of
\cite{yokoyama_energy-based_2019} which shows the ratio between poloidal energy and
total kinetic energy for various stratifications. The authors stressed out the
importance the line $\chi_{\kk} < 1/3$ and discussed it in detail. However, it seems
that they did not pointed out that $E_{polo}/(E_{polo} + E_{toro})$ starts to be really
close to one only if the forcing region lies in $\chi_{\kk} \leq 1/3$. As explained in
the introduction, it is important to have a large region with small values of
$\chi_{\kk}$ in WWT perspective. Our simulations illustrate that it is also important
to have the forcing in that region. Note that one could also think that this transition
is due to the fact that the Ozmidov wave-vector becomes larger than the dissipative
scale. Yet, our simulations with smaller aspect ratio show that it is not the case. For
more, $k_{\eta} / k_O$ is known to be related to $\R$, and determine whether small
isotropic turbulence range can develop or not \cite{bartello_sensitivity_2013}.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_nonlinear_ratio_one}
\caption{Non-linear broadening for simulations with aspect ratio one at different
stratifications. $N=10$ with vortical modes $(a)$ and without vortical modes $(b)$.
$N=20$ with vortical modes $(c)$ and without vortical modes $(d)$. $N=80$ with vortical
modes $(e)$ and without vortical modes $(f)$. See figure \ref{fig:seb-no-proj} for
definitions of lines. \label{fig:ratio-one-nonlinear}}
\end{figure}
Figure \ref{fig:ratio-one-nonlinear} shows the non-linear broadening for simulations
with aspect ratio one and different stratifications. The more we increase $N$, the
lower is the value of $\delta \ok/\ok$, and the largest is the waves' dominated region.
We observed the same tendency for simulations at smaller smaller aspect ratios.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_spectra_kh_kz_ratio_one}
\caption{Slices of $E_{equi}(k_h,k_z) \times k_h^{5/3}$ for simulations with aspect
ratio one at different stratifications. $N=10$ with vortical modes $(a)$ and without
vortical modes $(b)$. $N=20$ with vortical modes $(c)$ and without vortical modes
$(d)$. $N=80$ with vortical modes $(e)$ and without vortical modes $(f)$. The lines'
colors correspond to different values of $k_z/k_b$. The black dotted line is $k_b$, the
black dashed line is $k_O$, the green dashed line is the dissipative scale, and the
orange dashed lines is the maximal horizontal wave-vectors of the forcing.
\label{fig:ratio-one-spectra}}
\end{figure}
Figure \ref{fig:ratio-one-spectra} shows slices of the compensated spatial spectra of
$E_{equi}$ for simulations with aspect ratio one and different stratifications. The
first important point is that simulations without vortical modes give very similar
$E_{equi}$ spectra than simulations with vortical modes in the inertial range: panels
$(a)$, $(c)$, and $(e)$ are very similar to panels $(b)$, $(d)$, and $(f)$
respectively. The second important point is that spectra change drastically with
stratification: for a constant $k_z$, $E_{equi}(k_h,k_z)$ goes from something close to
$k_h^{-5/3}$ for $N=10$ to something slightly shallower than $k_h^{-4}$ for $N=80$ and
$k_z \leq k_h \leq k_b$. These simulations at high stratifications are therefore not
consistent with the vertically homogeneous stationary solution of the internal gravity
wave kinetic equation, obtained recently by \cite{dematteis_downscale_2021,
dematteis_origins_2022}. In their work, they predicted a wave energy spectra of the
form $E_{waves}(k_h,k_z) = n(k_h, k_z) \ok \sim k_h^{-2.69} k_z^{-1}$ in the
hydrostatic limit. This theoretical solution is obtained by considering contributions
from both extreme scale separated interactions and interactions that are
quasi-collinear in horizontal wave-number. For $k_h \leq k_z$, $E_{equi}(k_h,k_z)$ does
not follow a power law in the buoyancy range and it is not separable, i.e.
$E_{equi}(k_h, k_z) \neq f_h(k_h) f_z(k_z)$ (otherwise, all lines of different colors
on Figure \ref{fig:ratio-one-spectra} should have been parallel). The same observation
were made for simulations of the reduced equations with rotation in the hydrostatic
limit \cite{lvov_nonlinear_2009}.
\begin{figure}[H]
\includegraphics[width=1.0\textwidth]{../tmp/fig_spectra_kh_kz_ratio_one_2D}
\caption{$E_{equi}(k_h,k_z)$ for simulations with aspect ratio one at different
stratifications. $N=10$ with vortical modes $(a)$ and without vortical modes $(b)$.
$N=20$ with vortical modes $(c)$ and without vortical modes $(d)$. $N=80$ with vortical
modes $(e)$ and without vortical modes $(f)$. The gray dotted and dashed lines
correspond to $\chi_{\kk} = 1/3$ and $\chi_{\kk} = 3$, the continuous black line to
$k_z = k_h$, the black dotted line to $k_b$, the black dashed line to $k_O$, and the
green dashed line to the dissipative scale. The orange line corresponds to the maximal
wave-vector modulus of the forcing. \label{fig:ratio-one-spectra-2D}}
\end{figure}
# This file is @generated by PDM.
# It is not intended for manual editing.
[metadata]
groups = ["default"]
strategy = ["inherit_metadata"]
lock_version = "4.5.0"
content_hash = "sha256:0aef11623390842f845fbb561644993f7c4c9f42c925e697b2292125397fdbb0"
[[metadata.targets]]
requires_python = "==3.11.*"
[[package]]
name = "autopep8"
version = "2.3.1"
requires_python = ">=3.8"
summary = "A tool that automatically formats Python code to conform to the PEP 8 style guide"
groups = ["default"]
dependencies = [
"pycodestyle>=2.12.0",
"tomli; python_version < \"3.11\"",
]
files = [
{file = "autopep8-2.3.1-py2.py3-none-any.whl", hash = "sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"},
{file = "autopep8-2.3.1.tar.gz", hash = "sha256:8d6c87eba648fdcfc83e29b788910b8643171c395d9c4bcf115ece035b9c9dda"},
]
[[package]]
name = "beniget"
version = "0.4.2.post1"
requires_python = ">=3.6"
summary = "Extract semantic information about static Python code"
groups = ["default"]
dependencies = [
"gast>=0.5.0",
]
files = [
{file = "beniget-0.4.2.post1-py3-none-any.whl", hash = "sha256:e1b336e7b5f2ae201e6cc21f533486669f1b9eccba018dcff5969cd52f1c20ba"},
{file = "beniget-0.4.2.post1.tar.gz", hash = "sha256:a0258537e65e7e14ec33a86802f865a667f949bb6c73646d55e42f7c45a052ae"},
]
[[package]]
name = "black"
version = "24.10.0"
requires_python = ">=3.9"
summary = "The uncompromising code formatter."
groups = ["default"]
dependencies = [
"click>=8.0.0",
"mypy-extensions>=0.4.3",
"packaging>=22.0",
"pathspec>=0.9.0",
"platformdirs>=2",
"tomli>=1.1.0; python_version < \"3.11\"",
"typing-extensions>=4.0.1; python_version < \"3.11\"",
]
files = [
{file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad"},
{file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50"},
{file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392"},
{file = "black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175"},
{file = "black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d"},
{file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"},
]
[[package]]
name = "click"
version = "8.1.7"
requires_python = ">=3.7"
summary = "Composable command line interface toolkit"
groups = ["default"]
dependencies = [
"colorama; platform_system == \"Windows\"",
"importlib-metadata; python_version < \"3.8\"",
]
files = [
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
]
[[package]]
name = "colorama"
version = "0.4.6"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
summary = "Cross-platform colored terminal text."
groups = ["default"]
marker = "platform_system == \"Windows\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
]
[[package]]
name = "contourpy"
version = "1.3.1"
requires_python = ">=3.10"
summary = "Python library for calculating contours of 2D quadrilateral grids"
groups = ["default"]
dependencies = [
"numpy>=1.23",
]
files = [
{file = "contourpy-1.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8b974d8db2c5610fb4e76307e265de0edb655ae8169e8b21f41807ccbeec4b"},
{file = "contourpy-1.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:20914c8c973f41456337652a6eeca26d2148aa96dd7ac323b74516988bea89fc"},
{file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d40d37c1c3a4961b4619dd9d77b12124a453cc3d02bb31a07d58ef684d3d86"},
{file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:113231fe3825ebf6f15eaa8bc1f5b0ddc19d42b733345eae0934cb291beb88b6"},
{file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4dbbc03a40f916a8420e420d63e96a1258d3d1b58cbdfd8d1f07b49fcbd38e85"},
{file = "contourpy-1.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a04ecd68acbd77fa2d39723ceca4c3197cb2969633836ced1bea14e219d077c"},
{file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c414fc1ed8ee1dbd5da626cf3710c6013d3d27456651d156711fa24f24bd1291"},
{file = "contourpy-1.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:31c1b55c1f34f80557d3830d3dd93ba722ce7e33a0b472cba0ec3b6535684d8f"},
{file = "contourpy-1.3.1-cp311-cp311-win32.whl", hash = "sha256:f611e628ef06670df83fce17805c344710ca5cde01edfdc72751311da8585375"},
{file = "contourpy-1.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:b2bdca22a27e35f16794cf585832e542123296b4687f9fd96822db6bae17bfc9"},
{file = "contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699"},
]
[[package]]
name = "cycler"
version = "0.12.1"
requires_python = ">=3.8"
summary = "Composable style cycles"
groups = ["default"]
files = [
{file = "cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30"},
{file = "cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c"},
]
[[package]]
name = "distro"
version = "1.9.0"
requires_python = ">=3.6"
summary = "Distro - an OS platform information API"
groups = ["default"]
files = [
{file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"},
{file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"},
]
[[package]]
name = "fluiddyn"
version = "0.7.0"
requires_python = ">=3.10"
summary = "Framework for studying fluid dynamics."
groups = ["default"]
dependencies = [
"distro",
"h5netcdf",
"h5py",
"matplotlib",
"numpy",
"psutil>=5.2.1",
"simpleeval>=0.9.13",
]
files = [
{file = "fluiddyn-0.7.0-py3-none-any.whl", hash = "sha256:33447e1145d8b904b1854c34eef3a56ad314e30afce64323d2891901180fbb0d"},
{file = "fluiddyn-0.7.0.tar.gz", hash = "sha256:144cebddfd9bf9866bf955ce98ae5cc8c0edb2147a2ff186a16edf5d57d4ef99"},
]
[[package]]
name = "fluidfft"
version = "0.4.3"
requires_python = ">=3.10"
summary = "Efficient and easy Fast Fourier Transform (FFT) for Python."
groups = ["default"]
dependencies = [
"fluiddyn>=0.2.3",
"importlib-metadata; python_version < \"3.10\"",
"transonic>=0.6.4",
]
files = [
{file = "fluidfft-0.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:03a39b843ad204f809a9595552621ae779adbdbb9df171efdb267dac4cacd8f3"},
{file = "fluidfft-0.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffb9c5079eeb2910241e822105210432ecf04dba688d4a9932c26284cf0c7deb"},
{file = "fluidfft-0.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a6c779c4a5797df825c9d02cd0f73661e6048abcd8b3faa15e4288da6044b0a"},
{file = "fluidfft-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32f73aa6b369bea0f7c5f26cb2b0cde47278d8a349d5d51f5ecc33ebdaa2a7c7"},
{file = "fluidfft-0.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:1576b4db71ffbe81e8b9a70b6ded2d8a8ab16c5d8657534e2636957645a4d1a4"},
{file = "fluidfft-0.4.3.tar.gz", hash = "sha256:31635a6fe22279c1c47bbf3a61202ab36c6110be409e5c7a785ef8a17158e1df"},
]
[[package]]
name = "fluidsim"
version = "0.8.4"
requires_python = ">=3.10"
summary = "Framework for studying fluid dynamics with simulations."
groups = ["default"]
dependencies = [
"fluidsim-core>=0.8.1",
"h5netcdf",
"h5py",
"matplotlib>=3.3",
"rich",
"scipy",
"transonic>=0.6.2",
"xarray",
]
files = [
{file = "fluidsim-0.8.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1e189327771c0bc1fa09608ad1a5430ba11cf13e483415a65d1192c012974b88"},
{file = "fluidsim-0.8.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6cf9bb9fb62375782e9f994c050bb66f17aa46f590c5a49974035515d729484e"},
{file = "fluidsim-0.8.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db5fe2870a5338be70ef6acbb2d88b2ce785bf36ffd1eede1b7f1f1e57262dad"},
{file = "fluidsim-0.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fcb3b0ae488b17a38b0d517e6338ac8f809a06469dc8a3e3e002619d5474bd0"},
{file = "fluidsim-0.8.4-cp311-cp311-win_amd64.whl", hash = "sha256:7a80e8d1d874bf5357e3ec59c98e288b978b42c4f614808f5c8eec1dec2878bd"},
{file = "fluidsim-0.8.4.tar.gz", hash = "sha256:0cc50d969284abf26541ace3e3e328824cd3ba980d699748c4b043cbe9f29d09"},
]
[[package]]
name = "fluidsim-core"
version = "0.8.4"
requires_python = ">=3.9"
summary = "Pure-Python core library for FluidSim framework"
groups = ["default"]
dependencies = [
"fluiddyn",
"importlib-metadata; python_version < \"3.10\"",
]
files = [
{file = "fluidsim_core-0.8.4-py3-none-any.whl", hash = "sha256:29a8bb6a90dae20546c069a3fae27396c36dcedf05bf467036e649434784594c"},
{file = "fluidsim_core-0.8.4.tar.gz", hash = "sha256:fde46d3150c62dd3db32ef47aaa5dd3dd6be30307ff83517ee204b7e4935d886"},
]
[[package]]
name = "fonttools"
version = "4.55.0"
requires_python = ">=3.8"
summary = "Tools to manipulate font files"
groups = ["default"]
files = [
{file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fa34aa175c91477485c44ddfbb51827d470011e558dfd5c7309eb31bef19ec51"},
{file = "fonttools-4.55.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:37dbb3fdc2ef7302d3199fb12468481cbebaee849e4b04bc55b77c24e3c49189"},
{file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5263d8e7ef3c0ae87fbce7f3ec2f546dc898d44a337e95695af2cd5ea21a967"},
{file = "fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f307f6b5bf9e86891213b293e538d292cd1677e06d9faaa4bf9c086ad5f132f6"},
{file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f0a4b52238e7b54f998d6a56b46a2c56b59c74d4f8a6747fb9d4042190f37cd3"},
{file = "fonttools-4.55.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3e569711464f777a5d4ef522e781dc33f8095ab5efd7548958b36079a9f2f88c"},
{file = "fonttools-4.55.0-cp311-cp311-win32.whl", hash = "sha256:2b3ab90ec0f7b76c983950ac601b58949f47aca14c3f21eed858b38d7ec42b05"},
{file = "fonttools-4.55.0-cp311-cp311-win_amd64.whl", hash = "sha256:aa046f6a63bb2ad521004b2769095d4c9480c02c1efa7d7796b37826508980b6"},
{file = "fonttools-4.55.0-py3-none-any.whl", hash = "sha256:12db5888cd4dd3fcc9f0ee60c6edd3c7e1fd44b7dd0f31381ea03df68f8a153f"},
{file = "fonttools-4.55.0.tar.gz", hash = "sha256:7636acc6ab733572d5e7eec922b254ead611f1cdad17be3f0be7418e8bfaca71"},
]
[[package]]
name = "formattex"
version = "0.1.4"
requires_python = ">=3.8"
summary = "A simple and uncompromising Latex code formatter"
groups = ["default"]
dependencies = [
"texsoup-alt",
]
files = [
{file = "formattex-0.1.4-py3-none-any.whl", hash = "sha256:a29dd1d5145e1cc8c6e9f3f265bb67a352f835627cb182f1900c761c76ad6445"},
{file = "formattex-0.1.4.tar.gz", hash = "sha256:cfa4877a970db9025ea960d3edd20c3acb1116cea7e12133b8c31f3f21c3dc94"},
]
[[package]]
name = "gast"
version = "0.5.5"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
summary = "Python AST that abstracts the underlying Python version"
groups = ["default"]
files = [
{file = "gast-0.5.5-py3-none-any.whl", hash = "sha256:84486015d9ad90965f731bf9dbae9427c8728da0c9dd1f29ff7ecf3c14bc9b68"},
{file = "gast-0.5.5.tar.gz", hash = "sha256:5f4ae749ba7199034b6912af98f05b4058d6d48fc2f065037b241be819a22924"},
]
[[package]]
name = "h5netcdf"
version = "1.4.1"
requires_python = ">=3.9"
summary = "netCDF4 via h5py"
groups = ["default"]
dependencies = [
"h5py",
"packaging",
]
files = [
{file = "h5netcdf-1.4.1-py3-none-any.whl", hash = "sha256:dd86c78ae69b92b16aa8a3c1ff3a14e7622571b5788dcf6d8b68569035bf71ce"},
{file = "h5netcdf-1.4.1.tar.gz", hash = "sha256:7c8401ab807ff37c9798edc90d99467595892e6c541a5d5abeb8f53aab5335fe"},
]
[[package]]
name = "h5py"
version = "3.12.1"
requires_python = ">=3.9"
summary = "Read and write HDF5 files from Python"
groups = ["default"]
dependencies = [
"numpy>=1.19.3",
]
files = [
{file = "h5py-3.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ccd9006d92232727d23f784795191bfd02294a4f2ba68708825cb1da39511a93"},
{file = "h5py-3.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ad8a76557880aed5234cfe7279805f4ab5ce16b17954606cca90d578d3e713ef"},
{file = "h5py-3.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1473348139b885393125126258ae2d70753ef7e9cec8e7848434f385ae72069e"},
{file = "h5py-3.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:018a4597f35092ae3fb28ee851fdc756d2b88c96336b8480e124ce1ac6fb9166"},
{file = "h5py-3.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:3fdf95092d60e8130ba6ae0ef7a9bd4ade8edbe3569c13ebbaf39baefffc5ba4"},
{file = "h5py-3.12.1.tar.gz", hash = "sha256:326d70b53d31baa61f00b8aa5f95c2fcb9621a3ee8365d770c551a13dbbcbfdf"},
]
[[package]]
name = "jinja2"
version = "3.1.4"
requires_python = ">=3.7"
summary = "A very fast and expressive template engine."
groups = ["default"]
dependencies = [
"MarkupSafe>=2.0",
]
files = [
{file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"},
{file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"},
]
[[package]]
name = "kiwisolver"
version = "1.4.7"
requires_python = ">=3.8"
summary = "A fast implementation of the Cassowary constraint solver"
groups = ["default"]
files = [
{file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d2b0e12a42fb4e72d509fc994713d099cbb15ebf1103545e8a45f14da2dfca54"},
{file = "kiwisolver-1.4.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2a8781ac3edc42ea4b90bc23e7d37b665d89423818e26eb6df90698aa2287c95"},
{file = "kiwisolver-1.4.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:46707a10836894b559e04b0fd143e343945c97fd170d69a2d26d640b4e297935"},
{file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef97b8df011141c9b0f6caf23b29379f87dd13183c978a30a3c546d2c47314cb"},
{file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ab58c12a2cd0fc769089e6d38466c46d7f76aced0a1f54c77652446733d2d02"},
{file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:803b8e1459341c1bb56d1c5c010406d5edec8a0713a0945851290a7930679b51"},
{file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9a9e8a507420fe35992ee9ecb302dab68550dedc0da9e2880dd88071c5fb052"},
{file = "kiwisolver-1.4.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18077b53dc3bb490e330669a99920c5e6a496889ae8c63b58fbc57c3d7f33a18"},
{file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6af936f79086a89b3680a280c47ea90b4df7047b5bdf3aa5c524bbedddb9e545"},
{file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:3abc5b19d24af4b77d1598a585b8a719beb8569a71568b66f4ebe1fb0449460b"},
{file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:933d4de052939d90afbe6e9d5273ae05fb836cc86c15b686edd4b3560cc0ee36"},
{file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:65e720d2ab2b53f1f72fb5da5fb477455905ce2c88aaa671ff0a447c2c80e8e3"},
{file = "kiwisolver-1.4.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3bf1ed55088f214ba6427484c59553123fdd9b218a42bbc8c6496d6754b1e523"},
{file = "kiwisolver-1.4.7-cp311-cp311-win32.whl", hash = "sha256:4c00336b9dd5ad96d0a558fd18a8b6f711b7449acce4c157e7343ba92dd0cf3d"},
{file = "kiwisolver-1.4.7-cp311-cp311-win_amd64.whl", hash = "sha256:929e294c1ac1e9f615c62a4e4313ca1823ba37326c164ec720a803287c4c499b"},
{file = "kiwisolver-1.4.7-cp311-cp311-win_arm64.whl", hash = "sha256:e33e8fbd440c917106b237ef1a2f1449dfbb9b6f6e1ce17c94cd6a1e0d438376"},
{file = "kiwisolver-1.4.7.tar.gz", hash = "sha256:9893ff81bd7107f7b685d3017cc6583daadb4fc26e4a888350df530e41980a60"},
]
[[package]]
name = "markdown-it-py"
version = "3.0.0"
requires_python = ">=3.8"
summary = "Python port of markdown-it. Markdown parsing, done right!"
groups = ["default"]
dependencies = [
"mdurl~=0.1",
]
files = [
{file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
{file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
]
[[package]]
name = "markupsafe"
version = "3.0.2"
requires_python = ">=3.9"
summary = "Safely add untrusted strings to HTML/XML markup."
groups = ["default"]
files = [
{file = "MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d"},
{file = "MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93"},
{file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832"},
{file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84"},
{file = "MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca"},
{file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798"},
{file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e"},
{file = "MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4"},
{file = "MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d"},
{file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"},
{file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
]
[[package]]
name = "matplotlib"
version = "3.9.2"
requires_python = ">=3.9"
summary = "Python plotting package"
groups = ["default"]
dependencies = [
"contourpy>=1.0.1",
"cycler>=0.10",
"fonttools>=4.22.0",
"importlib-resources>=3.2.0; python_version < \"3.10\"",
"kiwisolver>=1.3.1",
"numpy>=1.23",
"packaging>=20.0",
"pillow>=8",
"pyparsing>=2.3.1",
"python-dateutil>=2.7",
]
files = [
{file = "matplotlib-3.9.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8dd059447824eec055e829258ab092b56bb0579fc3164fa09c64f3acd478772"},
{file = "matplotlib-3.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c797dac8bb9c7a3fd3382b16fe8f215b4cf0f22adccea36f1545a6d7be310b41"},
{file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d719465db13267bcef19ea8954a971db03b9f48b4647e3860e4bc8e6ed86610f"},
{file = "matplotlib-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8912ef7c2362f7193b5819d17dae8629b34a95c58603d781329712ada83f9447"},
{file = "matplotlib-3.9.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7741f26a58a240f43bee74965c4882b6c93df3e7eb3de160126d8c8f53a6ae6e"},
{file = "matplotlib-3.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:ae82a14dab96fbfad7965403c643cafe6515e386de723e498cf3eeb1e0b70cc7"},
{file = "matplotlib-3.9.2.tar.gz", hash = "sha256:96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92"},
]
[[package]]
name = "mdurl"
version = "0.1.2"
requires_python = ">=3.7"
summary = "Markdown URL utilities"
groups = ["default"]
files = [
{file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
]
[[package]]
name = "mypy-extensions"
version = "1.0.0"
requires_python = ">=3.5"
summary = "Type system extensions for programs checked with the mypy type checker."
groups = ["default"]
files = [
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
]
[[package]]
name = "numpy"
version = "2.1.3"
requires_python = ">=3.10"
summary = "Fundamental package for array computing in Python"
groups = ["default"]
files = [
{file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"},
{file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"},
{file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"},
{file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"},
{file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"},
{file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"},
{file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"},
{file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"},
{file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"},
{file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"},
{file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"},
]
[[package]]
name = "packaging"
version = "24.2"
requires_python = ">=3.8"
summary = "Core utilities for Python packages"
groups = ["default"]
files = [
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
]
[[package]]
name = "pandas"
version = "2.2.3"
requires_python = ">=3.9"
summary = "Powerful data structures for data analysis, time series, and statistics"
groups = ["default"]
dependencies = [
"numpy>=1.22.4; python_version < \"3.11\"",
"numpy>=1.23.2; python_version == \"3.11\"",
"numpy>=1.26.0; python_version >= \"3.12\"",
"python-dateutil>=2.8.2",
"pytz>=2020.1",
"tzdata>=2022.7",
]
files = [
{file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"},
{file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"},
{file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"},
{file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"},
{file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"},
{file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"},
{file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"},
{file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"},
]
[[package]]
name = "pathspec"
version = "0.12.1"
requires_python = ">=3.8"
summary = "Utility library for gitignore style pattern matching of file paths."
groups = ["default"]
files = [
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
]
[[package]]
name = "pillow"
version = "11.0.0"
requires_python = ">=3.9"
summary = "Python Imaging Library (Fork)"
groups = ["default"]
files = [
{file = "pillow-11.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1c1d72714f429a521d8d2d018badc42414c3077eb187a59579f28e4270b4b0fc"},
{file = "pillow-11.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:499c3a1b0d6fc8213519e193796eb1a86a1be4b1877d678b30f83fd979811d1a"},
{file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8b2351c85d855293a299038e1f89db92a2f35e8d2f783489c6f0b2b5f3fe8a3"},
{file = "pillow-11.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4dba50cfa56f910241eb7f883c20f1e7b1d8f7d91c750cd0b318bad443f4d5"},
{file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:5ddbfd761ee00c12ee1be86c9c0683ecf5bb14c9772ddbd782085779a63dd55b"},
{file = "pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:45c566eb10b8967d71bf1ab8e4a525e5a93519e29ea071459ce517f6b903d7fa"},
{file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b4fd7bd29610a83a8c9b564d457cf5bd92b4e11e79a4ee4716a63c959699b306"},
{file = "pillow-11.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:cb929ca942d0ec4fac404cbf520ee6cac37bf35be479b970c4ffadf2b6a1cad9"},
{file = "pillow-11.0.0-cp311-cp311-win32.whl", hash = "sha256:006bcdd307cc47ba43e924099a038cbf9591062e6c50e570819743f5607404f5"},
{file = "pillow-11.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:52a2d8323a465f84faaba5236567d212c3668f2ab53e1c74c15583cf507a0291"},
{file = "pillow-11.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:16095692a253047fe3ec028e951fa4221a1f3ed3d80c397e83541a3037ff67c9"},
{file = "pillow-11.0.0.tar.gz", hash = "sha256:72bacbaf24ac003fea9bff9837d1eedb6088758d41e100c1552930151f677739"},
]
[[package]]
name = "platformdirs"
version = "4.3.6"
requires_python = ">=3.8"
summary = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
groups = ["default"]
files = [
{file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
{file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
]
[[package]]
name = "psutil"
version = "6.1.0"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
summary = "Cross-platform lib for process and system monitoring in Python."
groups = ["default"]
files = [
{file = "psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688"},
{file = "psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e"},
{file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38"},
{file = "psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b"},
{file = "psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a"},
{file = "psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e"},
{file = "psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be"},
{file = "psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a"},
]
[[package]]
name = "pycodestyle"
version = "2.12.1"
requires_python = ">=3.8"
summary = "Python style guide checker"
groups = ["default"]
files = [
{file = "pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3"},
{file = "pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521"},
]
[[package]]
name = "pyfftw"
version = "0.15.0"
requires_python = ">=3.10"
summary = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms."
groups = ["default"]
dependencies = [
"numpy>=1.20",
"setuptools>=70.1.1",
]
files = [
{file = "pyFFTW-0.15.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:facabac06cb2300fdfcb1cfab9af70b24380d24a725a9b4dbf8cdadf04c1a6c0"},
{file = "pyFFTW-0.15.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:730e86d23ea52a511fd3b0a0b8206dbe9f9f017522dabb838a7ca876e442ea8a"},
{file = "pyFFTW-0.15.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:b8ab3ad5b6fadf64e34be2fdc34c9cc2b767b33c7a1b0f3e778f4b3fac0b2566"},
{file = "pyFFTW-0.15.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:076c42a2b8841fc06fc592d812bfa41a85355dc7f79b6f51016ce981a35efc97"},
{file = "pyFFTW-0.15.0-cp311-cp311-win32.whl", hash = "sha256:5c50580ac16173fb547d18ad089148f030ef48a0f1f3b2faf3bb522b7f9fd8b6"},
{file = "pyFFTW-0.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:553d62715e8e9ad20c6a6aa556846d785488f16fa2a518abcac58ae3c7087654"},
{file = "pyfftw-0.15.0.tar.gz", hash = "sha256:2f16b9854a40c8fdd10aa5803b24ddc6ab49f9cd559dbd7f07e7d61aa205c1ca"},
]
[[package]]
name = "pygments"
version = "2.18.0"
requires_python = ">=3.8"
summary = "Pygments is a syntax highlighting package written in Python."
groups = ["default"]
files = [
{file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
{file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
]
[[package]]
name = "pyparsing"
version = "3.2.0"
requires_python = ">=3.9"
summary = "pyparsing module - Classes and methods to define and execute parsing grammars"
groups = ["default"]
files = [
{file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"},
{file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"},
]
[[package]]
name = "python-dateutil"
version = "2.9.0.post0"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
summary = "Extensions to the standard Python datetime module"
groups = ["default"]
dependencies = [
"six>=1.5",
]
files = [
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
]
[[package]]
name = "pytz"
version = "2024.2"
summary = "World timezone definitions, modern and historical"
groups = ["default"]
files = [
{file = "pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725"},
{file = "pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a"},
]
[[package]]
name = "rich"
version = "13.9.4"
requires_python = ">=3.8.0"
summary = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
groups = ["default"]
dependencies = [
"markdown-it-py>=2.2.0",
"pygments<3.0.0,>=2.13.0",
"typing-extensions<5.0,>=4.0.0; python_version < \"3.11\"",
]
files = [
{file = "rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"},
{file = "rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098"},
]
[[package]]
name = "scipy"
version = "1.14.1"
requires_python = ">=3.10"
summary = "Fundamental algorithms for scientific computing in Python"
groups = ["default"]
dependencies = [
"numpy<2.3,>=1.23.5",
]
files = [
{file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"},
{file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"},
{file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"},
{file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"},
{file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"},
{file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"},
{file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"},
{file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"},
{file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"},
]
[[package]]
name = "setuptools"
version = "75.6.0"
requires_python = ">=3.9"
summary = "Easily download, build, install, upgrade, and uninstall Python packages"
groups = ["default"]
files = [
{file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"},
{file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"},
]
[[package]]
name = "simpleeval"
version = "1.0.3"
requires_python = ">=3.9"
summary = "A simple, safe single expression evaluator library."
groups = ["default"]
files = [
{file = "simpleeval-1.0.3-py3-none-any.whl", hash = "sha256:e3bdbb8c82c26297c9a153902d0fd1858a6c3774bf53ff4f134788c3f2035c38"},
{file = "simpleeval-1.0.3.tar.gz", hash = "sha256:67bbf246040ac3b57c29cf048657b9cf31d4e7b9d6659684daa08ca8f1e45829"},
]
[[package]]
name = "six"
version = "1.16.0"
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
summary = "Python 2 and 3 compatibility utilities"
groups = ["default"]
files = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
]
[[package]]
name = "texsoup-alt"
version = "0.3.1"
summary = "parses valid LaTeX and provides variety of Beautiful-Soup-esque methods and Pythonic idioms for iterating over and searching the parse tree"
groups = ["default"]
files = [
{file = "texsoup-alt-0.3.1.tar.gz", hash = "sha256:0007e921b694d834772c0749241f7a329aaf9625b8532d5839b03f73e4e09af9"},
{file = "texsoup_alt-0.3.1-py3-none-any.whl", hash = "sha256:2a6bb85be60f61bc0ca2744c95be7c103ddc6895bc92f93aac8e688c9631ef15"},
]
[[package]]
name = "transonic"
version = "0.7.2"
requires_python = ">=3.9"
summary = "Make your Python code fly at transonic speeds!"
groups = ["default"]
dependencies = [
"autopep8",
"beniget~=0.4.0",
"gast~=0.5.0",
"numpy",
]
files = [
{file = "transonic-0.7.2-py3-none-any.whl", hash = "sha256:5e7ad061da05b633ce743215da78e207131956182de57066278526f4e381da47"},
{file = "transonic-0.7.2.tar.gz", hash = "sha256:d0c39c13b535df4f121a8a378efc42e3d3bf4e49536d131e6d26e9fe7d5a5bf4"},
]
[[package]]
name = "tzdata"
version = "2024.2"
requires_python = ">=2"
summary = "Provider of IANA time zone data"
groups = ["default"]
files = [
{file = "tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd"},
{file = "tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc"},
]
[[package]]
name = "xarray"
version = "2024.11.0"
requires_python = ">=3.10"
summary = "N-D labeled arrays and datasets in Python"
groups = ["default"]
dependencies = [
"numpy>=1.24",
"packaging>=23.2",
"pandas>=2.1",
]
files = [
{file = "xarray-2024.11.0-py3-none-any.whl", hash = "sha256:6ee94f63ddcbdd0cf3909d1177f78cdac756640279c0e32ae36819a89cdaba37"},
{file = "xarray-2024.11.0.tar.gz", hash = "sha256:1ccace44573ddb862e210ad3ec204210654d2c750bec11bbe7d842dfc298591f"},
]
import sys
from runpy import run_path
import matplotlib.pyplot as plt
print("import util")
from util import (
has_to_be_made,
has_to_save,
here,
paths_all,
paths_all_proj,
paths_all_ratio_one,
)
def make_fig(name, source=None):
if source is None:
source = f"save_{name}.py"
fig_name = f"fig_{name}.png"
if has_to_be_made(fig_name, source):
print(f"Calling {source} to make {fig_name}")
run_path(str(here / source))
def make_table(name, source=None):
if source is None:
source = f"save_table_{name}.py"
if has_to_be_made(f"table_{name}.tex", source):
print(f"Calling {source} to make {name}")
run_path(str(here / source))
print(paths_all_ratio_one)
make_table("better_simuls")
make_table("better_simuls_ratio_one")
make_fig("ratio_E_vs_Fh")
sys.argv.append("")
sys.argv[-1] = 0
make_fig("seb_regimes_L_projNone", "save_seb_regimes.py")
del sys.argv[-1]
sys.argv.append("")
sys.argv[-1] = 1
make_fig("seb_regimes_L_projpoloidal", "save_seb_regimes.py")
del sys.argv[-1]
make_fig("nonlinear_regimes_L", "save_nonlinear_regimes.py")
make_fig(
"spectra_slices_omega_kh_kz_regimes_L",
"save_spectra_slices_omega_kh_kz_regimes.py",
)
# make_fig("delta_omega_spectra")
make_fig("ratio_E_vs_Fh_ratio_one")
make_fig("seb_transition_ratio_one")
make_fig("nonlinear_ratio_one")
make_fig("spectra_kh_kz_ratio_one")
make_fig("spectra_kh_kz_ratio_one_2D")
if not has_to_save:
plt.show()
import h5py
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm, ticker
from util_simuls_regimes import get_sim
from fluidsim import load
from fluidsim.util import load_params_simul, times_start_last_from_path
from util import (
compute_kf_kb_ko_keta_kd,
compute_omega_emp_vs_kzkh,
customize,
get_path_finer_resol,
save_fig,
)
# Latex
plt.rcParams["text.usetex"] = True
plt.rcParams["text.latex.preamble"] = r"\usepackage{bm}"
cm = cm.get_cmap("inferno", 100)
def plot_nlb(sim, ax):
t_start, t_last = times_start_last_from_path(path)
tmin = t_last - 2
kf, kb, ko, keta, kd = compute_kf_kb_ko_keta_kd(sim, tmin)
mean_values = sim.output.get_mean_values(tmin=tmin, customize=customize)
Fh = mean_values["Fh"]
epsK = mean_values["epsK"]
params = load_params_simul(path)
nh = nx = params.oper.nx
proj = params.projection
N = sim.params.N
path_spec = sorted(path.glob(f"spatiotemporal/periodogram_[0-9]*.h5"))
assert len(path_spec) == 1, f"Not only 1 periodogram in {path} \n"
path_spec = path_spec[0]
with h5py.File(path_spec, "r") as f:
kh = f["kh_spectra"][:]
kz = f["kz_spectra"][:]
delta_kh = kh[1]
delta_kz = kz[1]
omegas = f["omegas"][:]
EA = f["spectrum_A"][:]
EKz = f["spectrum_K"][:] - f["spectrum_Khd"][:] - f["spectrum_Khr"][:]
Epolo = f["spectrum_Khd"][:] + EKz
Etoro = f["spectrum_Khr"][:]
E = Epolo + Etoro + EA
Ee = 2 * np.minimum(EA, Epolo)
Ed = EA + Epolo - Ee
spectrum = Epolo + EA
omega_emp, delta_omega_emp = compute_omega_emp_vs_kzkh(
N, spectrum, kh, kz, omegas
)
KH, KZ = np.meshgrid(kh, kz)
K = (KH**2 + KZ**2) ** 0.5
K_NOZERO = K.copy()
K_NOZERO[K_NOZERO == 0] = 1e-16
omega_disp = N * KH / K_NOZERO
chi = (K**2 * epsK) ** (1 / 3) / omega_disp
cs = ax.pcolormesh(
kh,
kz,
np.log10(delta_omega_emp / omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
shading="nearest",
)
th = np.linspace(0, np.pi / 2, 100, endpoint=True)
ax.plot(kb * np.sin(th), kb * np.cos(th), color="k", linestyle="dotted")
ax.plot(ko * np.sin(th), ko * np.cos(th), "k--")
a = 3
xa = np.linspace(delta_kh, a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dashed",
color="gray",
)
a = 1 / 3
xa = np.linspace(delta_kh, a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dotted",
color="gray",
)
ax.plot([delta_kh, max(kh)], [delta_kh, max(kh)], "k-")
ax.plot(kf * np.sin(th), kf * np.cos(th), linestyle="--", color="orange")
ax.plot(keta * np.sin(th), keta * np.cos(th), linestyle="--", color="g")
ax.set_xlim([delta_kh, 2 * max(kh) / 3])
ax.set_ylim([delta_kh, 2 * max(kh) / 3])
# ax.set_xscale("lin")
# ax.set_yscale("lin")
return cs
Ns = [10, 20, 80]
nbax = 0
css = [None for i in range(6)]
fig, axes = plt.subplots(
ncols=2, nrows=3, figsize=(10, 3 * 3 * 4.5 / 4), constrained_layout=True
)
ax0 = axes[0, 0]
ax1 = axes[0, 1]
ax2 = axes[1, 0]
ax3 = axes[1, 1]
ax4 = axes[2, 0]
ax5 = axes[2, 1]
axs = [ax0, ax1, ax2, ax3, ax4, ax5]
for N in Ns:
for proj in [False, True]:
path = get_path_finer_resol(N=N, Rb=None, proj=proj, ratio_one=True)
sim = load(path)
css[nbax] = plot_nlb(sim, axs[nbax])
nbax += 1
for ax in [ax0, ax2, ax4]:
ax.set_ylabel(r"$k_z$", fontsize=16)
for ax in [ax4, ax5]:
ax.set_xlabel(r"$k_h$", fontsize=16)
for ax in [ax0, ax1, ax2, ax3]:
ax.set_xticks([])
for ax in [ax1, ax3, ax5]:
ax.set_yticks([])
ax0.set_title(r"Standard Navier-Stokes" + "\n" + r"$(a)$", fontsize=16)
ax1.set_title(r"Without vortical modes" + "\n" + r"$(b)$", fontsize=16)
ax2.set_title(r"$(c)$", fontsize=16)
ax3.set_title(r"$(d)$", fontsize=16)
ax4.set_title(r"$(e)$", fontsize=16)
ax5.set_title(r"$(f)$", fontsize=16)
fig.tight_layout()
fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.28, 0.02, 0.35])
cbar = fig.colorbar(css[3], cax=cbar_ax)
cbar.set_ticks([-0.5, 0.0, 0.5, 1.0, 1.5])
cbar.ax.set_ylabel(
r"$\log_{10}\left(\delta \omega_{\bm{k}}/ \omega_{\bm{k}}\right)$",
fontsize=16,
)
save_fig(fig, f"fig_nonlinear_ratio_one.png")
if __name__ == "__main__":
plt.show()
import glob
import os
import re
import sys
from pathlib import Path
import h5py
import matplotlib.cm
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.collections import LineCollection
from util_simuls_regimes import get_sim
from fluiddyn.util import modification_date
from fluidsim import load
from fluidsim.util import load_params_simul, times_start_last_from_path
from util import (
compute_kf_kb_ko_keta_kd,
compute_omega_emp_vs_kzkh,
customize,
get_path_finer_resol,
get_paths,
paths_simuls_regimes,
paths_simuls_regimes_proj,
pos_closest_value,
save_fig,
)
# Latex
plt.rcParams["text.usetex"] = True
plt.rcParams["text.latex.preamble"] = r"\usepackage{bm}"
cm = matplotlib.cm.get_cmap("inferno", 100)
print(sys.argv)
letter = sys.argv[-1]
if letter not in "DLOWPU":
letter = "L"
sim = get_sim(letter)
path = paths_simuls_regimes[letter]
sim_proj = get_sim(letter, proj=True)
print(sim_proj.params.projection)
path_proj = paths_simuls_regimes_proj[letter]
# assert sim.params.oper.nx == sim_proj.params.oper.nx, f"Not the same resolution for simulation Without vortical modes: {sim.params.oper.nx} vs {sim_proj.params.oper.nx}"
fig, axes = plt.subplots(
ncols=2, nrows=3, figsize=(10, 3 * 3 * 4.5 / 4), constrained_layout=True
)
ax0 = axes[0, 0]
ax1 = axes[0, 1]
ax2 = axes[1, 0]
ax3 = axes[1, 1]
ax4 = axes[2, 0]
ax5 = axes[2, 1]
# Standard Navier-Stokes
t_start, t_last = times_start_last_from_path(path)
tmin = t_last - 2
kf, kb, ko, keta, kd = compute_kf_kb_ko_keta_kd(sim, tmin)
mean_values = sim.output.get_mean_values(tmin=tmin, customize=customize)
R2 = mean_values["R2"]
Fh = mean_values["Fh"]
params = load_params_simul(path)
nh = nx = params.oper.nx
proj = params.projection
N = sim.params.N
path_spec = sorted(path.glob(f"spatiotemporal/periodogram_[0-9]*.h5"))
assert len(path_spec) == 1, f"Not only 1 periodogram in {path} \n"
path_spec = path_spec[0]
with h5py.File(path_spec, "r") as f:
# List all groups
# print("Keys: %s" % f.keys())
# a_group_key = list(f.keys())[0]
# Get the data
kh = f["kh_spectra"][:]
kz = f["kz_spectra"][:]
omegas = f["omegas"][:]
EA = f["spectrum_A"][:]
EKz = f["spectrum_K"][:] - f["spectrum_Khd"][:] - f["spectrum_Khr"][:]
Epolo = f["spectrum_Khd"][:] + EKz
Etoro = f["spectrum_Khr"][:]
E = Epolo + Etoro + EA
Ee = 2 * np.minimum(EA, Epolo)
Ed = EA + Epolo - Ee
spectrum = Ee
omega_emp, delta_omega_emp = compute_omega_emp_vs_kzkh(
N, spectrum, kh, kz, omegas
)
KH, KZ = np.meshgrid(kh, kz)
K = (KH**2 + KZ**2) ** 0.5
K_NOZERO = K.copy()
K_NOZERO[K_NOZERO == 0] = 1e-16
omega_disp = N * KH / K_NOZERO
xb = np.linspace(kh[1], kb, 50, endpoint=True)
for ax in [ax2, ax4]:
ax.plot(xb, np.sqrt(kb**2 - xb**2), color="k", linestyle="dotted")
a = 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dashed",
color="gray",
)
a = 1 / 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dotted",
color="gray",
)
Ee = np.sum(Ee, axis=2)
cs0 = ax0.scatter(
omega_disp.flatten() / N,
omega_emp.flatten() / N,
c=np.log10(Ee.flatten()),
cmap=cm,
vmin=-7.0,
vmax=-3.0,
# shading="nearest",
)
cs2 = ax2.pcolormesh(
kh,
kz,
np.abs((omega_emp - omega_disp)) / N,
cmap=cm,
vmin=0.0,
vmax=1,
shading="nearest",
)
cs4 = ax4.pcolormesh(
kh,
kz,
np.log10(delta_omega_emp / omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
shading="nearest",
)
# Without vortical modes
t_start, t_last = times_start_last_from_path(path_proj)
tmin = t_last - 2
k_old = kb
kf, kb, ko, keta, kd = compute_kf_kb_ko_keta_kd(sim_proj, tmin)
mean_values = sim_proj.output.get_mean_values(tmin=tmin, customize=customize)
print(k_old, " ", kb)
R2 = mean_values["R2"]
Fh = mean_values["Fh"]
params = load_params_simul(path)
nh = nx = params.oper.nx
proj = params.projection
N = sim_proj.params.N
path_spec = sorted(path_proj.glob(f"spatiotemporal/periodogram_[0-9]*.h5"))
assert len(path_spec) == 1, f"Not only 1 periodogram in {path} \n"
path_spec = path_spec[0]
with h5py.File(path_spec, "r") as f:
# List all groups
# print("Keys: %s" % f.keys())
# a_group_key = list(f.keys())[0]
# Get the data
kh = f["kh_spectra"][:]
kz = f["kz_spectra"][:]
omegas = f["omegas"][:]
EA = f["spectrum_A"][:]
EKz = f["spectrum_K"][:] - f["spectrum_Khd"][:] - f["spectrum_Khr"][:]
Epolo = f["spectrum_Khd"][:] + EKz
Etoro = f["spectrum_Khr"][:]
E = Epolo + Etoro + EA
Ee = 2 * np.minimum(EA, Epolo)
Ed = EA + Epolo - Ee
spectrum = Ee
omega_emp, delta_omega_emp = compute_omega_emp_vs_kzkh(
N, spectrum, kh, kz, omegas
)
KH, KZ = np.meshgrid(kh, kz)
K = (KH**2 + KZ**2) ** 0.5
K_NOZERO = K.copy()
K_NOZERO[K_NOZERO == 0] = 1e-16
omega_disp = N * KH / K_NOZERO
xb = np.linspace(kh[1], kb, 50, endpoint=True)
for ax in [ax1, ax3]:
ax.plot(xb, np.sqrt(kb**2 - xb**2), color="k", linestyle="dotted")
a = 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dashed",
color="gray",
)
a = 1 / 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dotted",
color="gray",
)
Ee = np.sum(Ee, axis=2)
cs1 = ax1.scatter(
omega_disp.flatten() / N,
omega_emp.flatten() / N,
c=np.log10(Ee.flatten()),
cmap=cm,
vmin=-7,
vmax=-3,
# shading="nearest",
)
cs3 = ax3.pcolormesh(
kh,
kz,
np.abs((omega_emp - omega_disp)) / N,
cmap=cm,
vmin=0.0,
vmax=1,
shading="nearest",
)
cs5 = ax5.pcolormesh(
kh,
kz,
np.log10(delta_omega_emp / omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
shading="nearest",
)
for ax in [ax0, ax1]:
ax.plot([0, 1], [0, 1], "k-")
ax.set_xlim([0, 1])
ax.set_ylim([0, 2])
for ax in [ax2, ax3, ax4, ax5]:
ax.set_xlim([kh[1], 0.8 * max(kh)])
ax.set_ylim([kz[1], 0.8 * max(kh)])
# ax.set_xscale('log')
# ax.set_yscale('log')
ax.plot([kh[1], max(kh)], [kh[1], max(kh)], "k-")
ax.plot(
[kh[1], kf * 0.35],
[kf * (1 - 0.25**2) ** 0.5, kf * (1 - 0.25**2) ** 0.5],
linestyle="--",
color="orange",
)
ax.plot(
[kf * 0.35, kf * 0.35],
[kz[1], kf * (1 - 0.25**2) ** 0.5],
linestyle="--",
color="orange",
)
# ax.plot(xo, kb*np.sqrt(xo/delta_kh), "m--")
for ax in [ax2, ax3]:
ax.set_xticklabels([])
for ax in [ax1, ax3, ax5]:
ax.set_yticklabels([])
for ax in [ax2, ax3, ax4, ax5]:
ax.set_xlabel(r"$k_h$", fontsize=16)
for ax in [ax2, ax4]:
ax.set_ylabel(r"$k_z$", fontsize=16)
for ax in [ax0, ax1]:
ax.set_xlabel(r"$\omega_{\bm{k}}/N$", fontsize=16)
ax0.set_ylabel(r"$\omega_{emp, \bm{k}}/N$", fontsize=16)
ax0.set_title(r"Standard Navier-Stokes" + "\n" + r"$(a)$", fontsize=16)
ax1.set_title(r"Without vortical modes" + "\n" + r"$(b)$", fontsize=16)
ax2.set_title(r"$(c)$", fontsize=16)
ax3.set_title(r"$(d)$", fontsize=16)
ax4.set_title(r"$(e)$", fontsize=16)
ax5.set_title(r"$(f)$", fontsize=16)
fig.tight_layout()
# fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.71, 0.02, 0.23])
cbar = fig.colorbar(cs0, cax=cbar_ax)
cbar.set_ticks([-7, -6, -5, -4, -3])
cbar.ax.set_ylabel(r"$\log_{10} E_{equi}$", fontsize=16)
# fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.385, 0.02, 0.23])
cbar = fig.colorbar(cs2, cax=cbar_ax)
cbar.set_ticks([0.0, 0.2, 0.4, 0.6, 0.8, 1.0])
cbar.ax.set_ylabel(r"$|\omega_{emp, \bm{k}}- \omega_{\bm{k}}|/N$", fontsize=16)
# fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.06, 0.02, 0.23])
cbar = fig.colorbar(cs4, cax=cbar_ax)
cbar.set_ticks([-0.5, 0.0, 0.5, 1.0, 1.5])
cbar.ax.set_ylabel(
r"$\log_{10}\left(\delta \omega_{\bm{k}}/ \omega_{\bm{k}}\right)$",
fontsize=16,
)
fig.subplots_adjust(right=0.85, wspace=0.1, hspace=0.4)
save_fig(fig, f"fig_nonlinear_regimes_{letter}.png")
if __name__ == "__main__":
plt.show()
import glob
import os
import re
import sys
from pathlib import Path
import h5py
import matplotlib.cm
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.collections import LineCollection
from util_simuls_regimes import get_sim
from fluiddyn.util import modification_date
from fluidsim import load
from fluidsim.util import load_params_simul, times_start_last_from_path
from util import (
compute_kf_kb_ko_keta_kd,
compute_omega_emp_vs_kzkh,
customize,
get_path_finer_resol,
get_paths,
paths_simuls_regimes,
paths_simuls_regimes_proj,
pos_closest_value,
save_fig,
)
# Latex
plt.rcParams["text.usetex"] = True
plt.rcParams["text.latex.preamble"] = r"\usepackage{bm}"
cm = matplotlib.cm.get_cmap("binary", 100)
###
N = 80
Rb = 20
ratio_one = True
###
path = get_path_finer_resol(N, Rb, proj=False, ratio_one=ratio_one)
sim = load(path)
path_proj = get_path_finer_resol(N, Rb, proj=True, ratio_one=ratio_one)
sim_proj = load(path_proj)
fig, axes = plt.subplots(
ncols=2, nrows=2, figsize=(10, 2 * 3 * 4.5 / 4), constrained_layout=True
)
ax0 = axes[0, 0]
ax1 = axes[0, 1]
ax2 = axes[1, 0]
ax3 = axes[1, 1]
# Standard Navier-Stokes
t_start, t_last = times_start_last_from_path(path)
tmin = t_last - 2
kf, kb, ko, keta, kd = compute_kf_kb_ko_keta_kd(sim, tmin)
mean_values = sim.output.get_mean_values(tmin=tmin, customize=customize)
# R2 = mean_values["R2"]
Fh = mean_values["Fh"]
epsK = mean_values["epsK"]
params = load_params_simul(path)
nh = nx = params.oper.nx
proj = params.projection
N = sim.params.N
path_spec = sorted(path.glob(f"spatiotemporal/periodogram_[0-9]*.h5"))
assert len(path_spec) == 1, f"Not only 1 periodogram in {path} \n"
path_spec = path_spec[0]
with h5py.File(path_spec, "r") as f:
# List all groups
# print("Keys: %s" % f.keys())
# a_group_key = list(f.keys())[0]
# Get the data
kh = f["kh_spectra"][:]
kz = f["kz_spectra"][:]
omegas = f["omegas"][:]
EA = f["spectrum_A"][:]
EKz = f["spectrum_K"][:] - f["spectrum_Khd"][:] - f["spectrum_Khr"][:]
Epolo = f["spectrum_Khd"][:] + EKz
Etoro = f["spectrum_Khr"][:]
E = Epolo + Etoro + EA
Ee = 2 * np.minimum(EA, Epolo)
Ed = EA + Epolo - Ee
spectrum = Epolo + EA
omega_emp, delta_omega_emp = compute_omega_emp_vs_kzkh(
N, spectrum, kh, kz, omegas
)
KH, KZ = np.meshgrid(kh, kz)
K = (KH**2 + KZ**2) ** 0.5
K_NOZERO = K.copy()
K_NOZERO[K_NOZERO == 0] = 1e-16
omega_disp = N * KH / K_NOZERO
chi = (K**2 * epsK) ** (1 / 3) / omega_disp
xb = np.linspace(kh[1], kb, 50, endpoint=True)
for ax in [ax0, ax2]:
ax.plot(xb, np.sqrt(kb**2 - xb**2), color="k", linestyle="dotted")
a = 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dashed",
color="gray",
)
a = 1 / 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dotted",
color="gray",
)
cs0 = ax0.pcolormesh(
kh,
kz,
np.abs((omega_emp - omega_disp)) / N,
cmap=cm,
vmin=0.0,
vmax=1,
shading="nearest",
)
cs2 = ax2.pcolormesh(
kh,
kz,
np.log10(delta_omega_emp / omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
shading="nearest",
)
"""
cs2 = ax2.scatter(
chi*(kb/K)**(2/3),
K/kb,
c = np.log10(delta_omega_emp/omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
)
"""
# Without vortical modes
t_start, t_last = times_start_last_from_path(path_proj)
tmin = t_last - 2
k_old = kb
kf, kb, ko, keta, kd = compute_kf_kb_ko_keta_kd(sim_proj, tmin)
mean_values = sim_proj.output.get_mean_values(tmin=tmin, customize=customize)
print(k_old, " ", kb)
# R2 = mean_values["R2"]
Fh = mean_values["Fh"]
epsK = mean_values["epsK"]
params = load_params_simul(path)
nh = nx = params.oper.nx
proj = params.projection
N = sim_proj.params.N
path_spec = sorted(path_proj.glob(f"spatiotemporal/periodogram_[0-9]*.h5"))
assert len(path_spec) == 1, f"Not only 1 periodogram in {path} \n"
path_spec = path_spec[0]
with h5py.File(path_spec, "r") as f:
# List all groups
# print("Keys: %s" % f.keys())
# a_group_key = list(f.keys())[0]
# Get the data
kh = f["kh_spectra"][:]
kz = f["kz_spectra"][:]
omegas = f["omegas"][:]
EA = f["spectrum_A"][:]
EKz = f["spectrum_K"][:] - f["spectrum_Khd"][:] - f["spectrum_Khr"][:]
Epolo = f["spectrum_Khd"][:] + EKz
Etoro = f["spectrum_Khr"][:]
E = Epolo + Etoro + EA
Ee = 2 * np.minimum(EA, Epolo)
Ed = EA + Epolo - Ee
spectrum = Ee
omega_emp, delta_omega_emp = compute_omega_emp_vs_kzkh(
N, spectrum, kh, kz, omegas
)
KH, KZ = np.meshgrid(kh, kz)
K = (KH**2 + KZ**2) ** 0.5
K_NOZERO = K.copy()
K_NOZERO[K_NOZERO == 0] = 1e-16
omega_disp = N * KH / K_NOZERO
chi = (K**2 * epsK) ** (1 / 3) / omega_disp
xb = np.linspace(kh[1], kb, 50, endpoint=True)
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
for ax in [ax1, ax3]:
ax.plot(xb, np.sqrt(kb**2 - xb**2), color="k", linestyle="dotted")
a = 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dashed",
color="gray",
)
a = 1 / 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dotted",
color="gray",
)
cs1 = ax1.pcolormesh(
kh,
kz,
np.abs((omega_emp - omega_disp)) / N,
cmap=cm,
vmin=0.0,
vmax=1,
shading="nearest",
)
cs3 = ax3.pcolormesh(
kh,
kz,
np.log10(delta_omega_emp / omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
shading="nearest",
)
"""
cs3 = ax3.scatter(
chi*(kb/K)**(2/3),
K/kb,
c = np.log10(delta_omega_emp/omega_disp),
cmap=cm,
vmin=-0.5,
vmax=1.5,
)
"""
th = np.linspace(0, np.pi / 2, 50)
for ax in [ax0, ax1, ax2, ax3]:
ax.set_xlim([kh[1], 0.8 * max(kh)])
ax.set_ylim([kz[1], 0.8 * max(kh)])
# ax.set_xscale('log')
# ax.set_yscale('log')
ax.plot([kh[1], max(kh)], [kh[1], max(kh)], "k-")
ax.plot(kf * np.sin(th), kf * np.cos(th), linestyle="--", color="orange")
for ax in [ax0, ax1]:
ax.set_xticklabels([])
for ax in [ax1, ax3]:
ax.set_yticklabels([])
for ax in [ax2, ax3]:
ax.set_xlabel(r"$k_h$", fontsize=12)
for ax in [ax0, ax2]:
ax.set_ylabel(r"$k_z$", fontsize=12)
ax0.set_title(r"$(a)$", fontsize=16)
ax1.set_title(r"$(b)$", fontsize=16)
ax2.set_title(r"$(c)$", fontsize=16)
ax3.set_title(r"$(d)$", fontsize=16)
fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.53, 0.02, 0.35])
cbar = fig.colorbar(cs0, cax=cbar_ax)
cbar.set_ticks([0.0, 0.2, 0.4, 0.6, 0.8, 1.0])
cbar.ax.set_ylabel(r"$|\omega_{emp, \bm{k}}- \omega_{\bm{k}}|/N$", fontsize=16)
fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.11, 0.02, 0.35])
cbar = fig.colorbar(cs2, cax=cbar_ax)
cbar.set_ticks([-0.5, 0.0, 0.5, 1.0, 1.5])
cbar.ax.set_ylabel(
r"$\log_{10}\left(\delta \omega_{\bm{k}}/ \omega_{\bm{k}}\right)$",
fontsize=16,
)
# fig.tight_layout()
save_fig(fig, f"fig_nonlinear_regimes_ratio_one_N{N}.png")
if __name__ == "__main__":
plt.show()
from curses import keyname
import matplotlib.pyplot as plt
import numpy as np
from util_dataframe import df, df_proj
from util import Fh_limit, plot, save_fig
plt.rcParams["text.usetex"] = True
fig, axes = plt.subplots(
ncols=2, nrows=1, figsize=(10, 4.5), constrained_layout=True
)
ax0 = axes[0]
ax1 = axes[1]
ax0.scatter(
df["Fh"],
df["Etoro"] / df["E"],
c=np.log10(df["R2"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="o",
vmin=-1,
vmax=4,
)
ax0.set_xlim([1e-3, 20])
ax0.set_xscale("log")
ax0.set_ylim([0, 1])
ax0.set_xlabel(r"$F_h$", fontsize=16)
ax0.set_ylabel(r"$E_{toro}/E$", fontsize=16)
ax0.set_title(r"$(a)$", fontsize=16)
ax0.grid(True)
cs = ax1.scatter(
df["Fh"],
(df["Epolo"] - df["EA"]) / (df["Epolo"] + df["EA"]),
c=np.log10(df["R2"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="o",
vmin=-1,
vmax=4,
label=r"Standard Navier-Stokes",
)
ax1.scatter(
df_proj["Fh"],
(df_proj["Epolo"] - df_proj["EA"]) / (df_proj["Epolo"] + df_proj["EA"]),
c=np.log10(df_proj["R2"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="^",
label=r"Without vortical modes",
)
ax1.legend(loc="lower center", fontsize=16)
ax1.set_xlim([1e-3, 20])
ax1.set_xscale("log")
ax1.set_ylim([-1, 1])
ax1.set_yticks([-1, -0.5, 0.0, 0.5, 1.0])
ax1.set_xlabel(r"$F_h$", fontsize=16)
ax1.set_ylabel(r"$\tilde{\mathcal{D}}$", fontsize=16)
ax1.set_title(r"$(b)$", fontsize=16)
ax1.grid(True)
fig.tight_layout()
fig.subplots_adjust(right=0.85, wspace=0.3)
cbar_ax = fig.add_axes([0.88, 0.15, 0.02, 0.7])
cbar = fig.colorbar(cs, cax=cbar_ax, orientation="vertical")
# cbar.set_ticklabels([-1, 0, 1, 2, 3, 4], position="right")
cbar.set_ticks([-1, 0, 1, 2, 3, 4])
cbar.set_ticklabels(
[r"$-1$", r"$0$", r"$1$", r"$2$", r"$3$", r"$4$"], fontsize=14
)
# cbar.set_label(r"$\log_{10}(\mathcal{R})$", fontsize = 12, rotation=0)
fig.text(0.88, 0.07, r"$\log_{10}(\mathcal{R})$", fontsize=16)
save_fig(fig, f"fig_ratio_E_vs_Fh.png")
if __name__ == "__main__":
plt.show()
from curses import keyname
import matplotlib.pyplot as plt
import numpy as np
from util_dataframe import df_proj_ratio_one, df_ratio_one
from util import Fh_limit, plot, save_fig
df = df_ratio_one
df_proj = df_proj_ratio_one
plt.rcParams["text.usetex"] = True
fig, axes = plt.subplots(
ncols=2, nrows=1, figsize=(10, 4.5), constrained_layout=True
)
ax0 = axes[0]
ax1 = axes[1]
print(df)
ax0.scatter(
df["Fh"],
df["Etoro"] / df["E"],
c=np.log10(df["R4"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="o",
vmin=-2,
vmax=3,
)
# ax0.set_xlim([1e-3, 20])
ax0.set_xscale("log")
ax0.set_ylim([0, 1])
ax0.set_xlabel(r"$F_h$", fontsize=16)
ax0.set_ylabel(r"$E_{toro}/E$", fontsize=16)
ax0.set_title(r"$(a)$", fontsize=16)
ax0.grid(True)
cs = ax1.scatter(
df["Fh"],
(df["Epolo"] - df["EA"]) / (df["Epolo"] + df["EA"]),
c=np.log10(df["R4"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="o",
vmin=-2,
vmax=3,
label=r"Standard Navier-Stokes",
)
ax1.scatter(
df_proj["Fh"],
(df_proj["Epolo"] - df_proj["EA"]) / (df_proj["Epolo"] + df_proj["EA"]),
c=np.log10(df_proj["R4"]),
cmap="inferno",
edgecolors="k",
s=40,
marker="^",
label=r"Without vortical modes",
)
ax1.legend(loc="lower center", fontsize=16)
# ax1.set_xlim([1e-3, 20])
ax1.set_xscale("log")
ax1.set_ylim([-1, 1])
ax1.set_yticks([-1, -0.5, 0.0, 0.5, 1.0])
ax1.set_xlabel(r"$F_h$", fontsize=16)
ax1.set_ylabel(r"$\tilde{\mathcal{D}}$", fontsize=16)
ax1.set_title(r"$(b)$", fontsize=16)
ax1.grid(True)
fig.tight_layout()
fig.subplots_adjust(right=0.85, wspace=0.3)
cbar_ax = fig.add_axes([0.88, 0.15, 0.02, 0.7])
cbar = fig.colorbar(cs, cax=cbar_ax, orientation="vertical")
cbar.set_ticks([-2, -1, 0, 1, 2, 3])
cbar.set_ticklabels(
[r"$-2$", r"$-1$", r"$0$", r"$1$", r"$2$", r"$3$"], fontsize=14
)
# cbar.set_label(r"$\log_{10}(\mathcal{R})$", fontsize = 12, rotation=0)
fig.text(0.88, 0.07, r"$\log_{10}(\mathcal{R}_4)$", fontsize=16)
save_fig(fig, f"fig_ratio_E_vs_Fh_ratio_one.png")
if __name__ == "__main__":
plt.show()
import matplotlib.pyplot as plt
import numpy as np
from util_dataframe import df
from util import (
Fh_limit,
R2_limit,
formatters,
params_simuls_regimes,
plot,
save_fig,
)
key = ["Epolo", "Etoro", "EA"]
EA = df["EA"]
Epolo = df["Epolo"]
Etoro = df["Etoro"]
E = df["E"]
# Plot 1: (EA+Epolo)/E
ax = plot(
df,
"Fh",
"R2",
c=(EA + Epolo) / E,
cmap="binary", # "binary" "seismic"
logy=True,
vmin=0,
vmax=1,
s=35,
)
ax.set_xlim([1e-3, 20])
ax.set_ylim([1e-1, 1e5])
# ax.axvline(Fh_limit, linestyle=":")
# ax.axvline(1.0, linestyle=":")
# Fh_min, Fh_max = ax.get_xlim()
# ax.plot([Fh_min, Fh_limit], [R2_limit, R2_limit], linestyle=":")
ax.set_xlabel(r"$F_h$", fontsize=16)
ax.set_ylabel(r"$\mathcal{R}$", fontsize=16)
ax.set_title(r"$(E_{polo}+E_{A})/E$", fontsize=16)
fig = ax.figure
fig.tight_layout()
save_fig(fig, f"fig_ratio_EAEpolo_E_vs_FhR.png")
fig, axes = plt.subplots(
ncols=2, nrows=1, figsize=(10, 3 * 4.5 / 4), constrained_layout=True
)
ax0 = axes[0]
ax1 = axes[1]
# Plot 2: Etoro/E
ax0 = plot(
df,
"Fh",
"R2",
c=Etoro / E,
cmap="binary", # "binary" "seismic"
logy=True,
vmin=0,
vmax=1,
s=35,
)
ax0.set_xlim([1e-3, 20])
ax0.set_ylim([1e-1, 1e5])
ax0.set_xlabel(r"$F_h$", fontsize=16)
ax0.set_ylabel(r"$\mathcal{R}$", fontsize=16)
ax0.set_title(r"$E_{toro}/E$", fontsize=16)
save_fig(fig, f"fig_ratio_Etoro_E_vs_FhR.png")
# Plot 3: (Epolo-EA)/(Epolo+EA)
ax1 = plot(
df,
"Fh",
"R2",
c=(Epolo - EA) / (Epolo + EA),
cmap="seismic", # "binary" "seismic"
logy=True,
vmin=-1,
vmax=1,
s=35,
)
ax1.set_xlim([1e-3, 20])
ax1.set_ylim([1e-1, 1e5])
ax1.set_xlabel(r"$F_h$", fontsize=16)
ax1.set_ylabel(r"$\mathcal{R}$", fontsize=16)
ax1.set_title(r"$(E_{polo}-E_{A})/(E_{polo}+E_{A})$", fontsize=16)
fig = axes.figure
fig.tight_layout()
save_fig(fig, f"fig_ratio_Epolo-EA_Epolo+EA_vs_FhR.png")
if __name__ == "__main__":
plt.show()
import sys
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm, ticker
from util_simuls_regimes import get_sim
from util import compute_kf_kb_ko_keta_kd, customize, save_fig
plt.rcParams["text.usetex"] = True
print(sys.argv)
proj = bool(sys.argv[-1])
if proj not in [True, False]:
letter = False
sim = get_sim("L", proj)
fig, axes = plt.subplots(
ncols=2, nrows=2, figsize=(10, 2 * 3 * 4.5 / 4), constrained_layout=True
)
ax0 = axes[0, 0]
ax1 = axes[0, 1]
ax2 = axes[1, 0]
ax3 = axes[1, 1]
mean_values = sim.output.get_mean_values(tmin="t_last-2", customize=customize)
R2 = mean_values["R2"]
Uh2 = mean_values["Uh2"]
epsK = mean_values["epsK"]
Fh = mean_values["Fh"]
proj = sim.params.projection
t_start, t_last = sim.output.print_stdout.get_times_start_last()
tmin = t_last - 2.0
kf, kb, ko, keta, kd = compute_kf_kb_ko_keta_kd(sim, tmin)
data = sim.output.spectra.load_kzkh_mean(
tmin, key_to_load=["A", "Khd", "Kz", "Khr"]
)
kh = data["kh_spectra"]
kz = data["kz"]
delta_kh = kh[1]
delta_kz = kz[1]
KH, KZ = np.meshgrid(kh, kz)
EA = data["A"]
EKhd = data["Khd"]
EKz = data["Kz"]
EKhr = data["Khr"]
Epolo = EKhd + EKz
Etoro = EKhr
E = Epolo + Etoro + EA
Ee = 2 * np.minimum(Epolo, EA)
Ed = Epolo + EA - Ee
E[E == 0] = 1e-15
levels = np.linspace(0, 1, 51, endpoint=True)
K = np.sqrt(KH**2 + KZ**2)
K[K == 0] = 1e-15
# EA / E (kh, kz)
cs = ax0.contourf(KH, KZ, Ee / E, cmap=cm.binary, levels=levels)
ax0.set_title(r"$E_{equi}/E$", fontsize=16)
# Epolo / E (kh, kz)
cs = ax1.contourf(KH, KZ, Ed / E, cmap=cm.binary, levels=levels)
ax1.set_title(r"$E_{diff}/E$", fontsize=16)
# Etoro / E (kh, kz)
cs = ax2.contourf(KH, KZ, Etoro / E, cmap=cm.binary, levels=levels)
ax2.set_title(r"$E_{toro}/E$", fontsize=16)
data = sim.output.spect_energy_budg.load_mean(tmin=tmin)
kh = data["kh"]
kz = data["kz"]
delta_kh = kh[1]
delta_kz = kz[1]
KH, KZ = np.meshgrid(kh, kz)
DA = data["diss_A"]
TA = data["transfer_A"]
TK = data["transfer_Kh"] + data["transfer_Kz"]
K2A = data["conv_K2A"]
DKh = data["diss_Kh"]
DKz = data["diss_Kz"]
DK = DKh + DKz
D = DA + DK
T = TA + TK
levels = np.linspace(-1, 1, 51, endpoint=True)
cs2 = ax3.contourf(
KH,
KZ,
K2A / (D + np.abs(TA) + np.abs(TK) + np.abs(K2A)),
cmap=cm.seismic,
levels=levels,
)
ax3.set_title(r"$\tilde{\mathcal{B}}$", fontsize=16)
# ax0.legend()
th = np.linspace(0, np.pi / 2, 50)
for ax in [ax0, ax1, ax2, ax3]:
ax.plot([kh[1], max(kh)], [kh[1], max(kh)], "k-")
ax.plot(kb * np.sin(th), kb * np.cos(th), color="k", linestyle="dotted")
ax.plot(ko * np.sin(th), ko * np.cos(th), "k--")
a = 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dashed",
color="gray",
)
a = 1 / 3
xa = np.linspace(kh[1], a**1.5 * ko, 50, endpoint=True)
ax.plot(
xa,
xa * np.sqrt((a**1.5 * ko / xa) ** 0.8 - 1),
linestyle="dotted",
color="gray",
)
ax.plot([kh[1], max(kh)], [kh[1], max(kh)], "k-")
ax.plot(
[kh[1], kf * 0.35],
[kf * (1 - 0.25**2) ** 0.5, kf * (1 - 0.25**2) ** 0.5],
linestyle="--",
color="orange",
)
ax.plot(
[kf * 0.35, kf * 0.35],
[kz[1], kf * (1 - 0.25**2) ** 0.5],
linestyle="--",
color="orange",
)
ax.plot(keta * np.sin(th), keta * np.cos(th), linestyle="--", color="g")
ax.set_xlim([kh[1], 0.8 * max(kh)])
ax.set_ylim([kz[1], 0.8 * max(kh)])
ax.set_xscale("log")
ax.set_yscale("log")
for ax in [ax0, ax2]:
ax.set_ylabel(r"$k_z$", fontsize=16)
ax.set_yticks(
[1e1, 1e2, 1e3, kb, ko],
[r"$10^1$", r"$10^2$", r"$10^3$", r"$k_b$", r"$k_O$"],
)
for ax in [ax2, ax3]:
ax.set_xlabel(r"$k_h$", fontsize=16)
ax.set_xticks(
[1e1, 1e2, 1e3, kb, ko],
[r"$10^1$", r"$10^2$", r"$10^3$", r"$k_b$", r"$k_O$"],
)
for ax in [ax0, ax1]:
ax.set_xticks([])
for ax in [ax1, ax3]:
ax.set_yticks([])
fig.tight_layout()
fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.53, 0.02, 0.35])
cbar = fig.colorbar(cs, cax=cbar_ax)
cbar.set_ticks([0.0, 0.2, 0.4, 0.6, 0.8, 1.0])
# fig.subplots_adjust(right=0.85)
cbar_ax = fig.add_axes([0.88, 0.11, 0.02, 0.35])
cbar = fig.colorbar(cs2, cax=cbar_ax)
cbar.set_ticks([-1.0, -0.5, 0.0, 0.5, 1.0])
save_fig(fig, f"fig_seb_regimes_L_proj{proj}.png")
if __name__ == "__main__":
plt.show()