Hostname: page-component-7dd5485656-gs9qr Total loading time: 0 Render date: 2025-10-28T21:15:59.458Z Has data issue: false hasContentIssue false

Flux-driven turbulent transport using penalisation in the Hasegawa–Wakatani system

Published online by Cambridge University Press:  23 October 2025

Pierre L. Guillon*
Affiliation:
Laboratoire de Physique des Plasmas, CNRS, Ecole Polytechnique, Sorbonne Universit´e, Universit´e Paris-Saclay, Observatoire de Paris , F-91120 Palaiseau, France ENPC, Institut Polytechnique de Paris , Marne-la-Vallée, France
Özgür D. Gürcan
Affiliation:
Laboratoire de Physique des Plasmas, CNRS, Ecole Polytechnique, Sorbonne Universit´e, Universit´e Paris-Saclay, Observatoire de Paris , F-91120 Palaiseau, France
Guilhem Dif-Pradalier
Affiliation:
CEA, IRFM, F-13108 Saint-Paul-lez-Durance, France
Yanick Sarazin
Affiliation:
CEA, IRFM, F-13108 Saint-Paul-lez-Durance, France
Nicolas Fedorczak
Affiliation:
CEA, IRFM, F-13108 Saint-Paul-lez-Durance, France
*
Corresponding author: Pierre Guillon, pierre.guillon@lpp.polytechnique.fr

Abstract

First numerical results from the newly developed pseudo-spectral code P-FLARE (Penalised FLux-driven Algorithm for REduced models) are presented. This flux-driven turbulence/transport code uses a pseudo-spectral formulation with the penalisation method to impose radial boundary conditions. Its concise, flexible structure allows implementing various quasi-two-dimensional reduced fluid models in flux-driven formulation. Here, results from simulations of the modified Hasegawa–Wakatani system are discussed, where particle transport and zonal flow formation, together with profile relaxation, are studied. It is shown that coupled spreading/profile relaxation that one obtains for this system is consistent with a simple one-dimensional model of coupled spreading/transport equations. Then, the effect of a particle source is investigated, which results in the observation of sandpile-like critical behaviour. The model displays profile stiffness for certain parameters, with very different input fluxes resulting in very similar mean density gradients. This is due to different zonal flow levels around the critical value for the control parameter (i.e. the ratio of the adiabaticity parameter to the mean gradient) and the existence for this system of a hysteresis loop for the transition from two-dimensional turbulence to a zonal flow dominated state.

Information

Type
Research Article
Creative Commons
Creative Common License - CCCreative Common License - BYCreative Common License - NCCreative Common License - ND
This is an Open Access article, distributed under the terms of the Creative Commons Attribution-NonCommercial-NoDerivatives licence (https://creativecommons.org/licenses/by-nc-nd/4.0/), which permits non-commercial re-use, distribution, and reproduction in any medium, provided that no alterations are made and the original article is properly cited. The written permission of Cambridge University Press must be obtained prior to any commercial use and/or adaptation of the article.
Copyright
© The Author(s), 2025. Published by Cambridge University Press

1. Introduction

In magnetised plasmas, large temperature and density gradients drive turbulent transport, which affects the confinement capability of magnetic fusion devices. The two paradigms that aim to address the effect of turbulence on heat and particle transport are fixed gradient or flux-driven approaches. In the former, a mean profile is imposed on the system, which provides a mean temperature or density gradient, constant in time. This gradient then triggers a linear instability that saturates by generating turbulence, which in turn creates turbulent heat or particle fluxes. However, in this approach, the imposed profile is not affected by the turbulent fluxes through any kind of transport equation. The fixed gradient framework relies on the separation of time and spatial scales, with the hypothesis that turbulence develops much faster than typical response times of the profile, which is assumed to be ‘frozen’. Fixed gradient systems are useful to study the formation and the saturation mechanisms of turbulence, and can help estimate the turbulent flux (or turbulence level) at a given mean density gradient. However, the interplay between turbulence and transport is completely lost, even though one may have zonal flows and zonal corrugations that appear as perturbations on top of the fixed gradient.

In contrast, flux-driven systems do not assume this scale separation (Garbet & Waltz Reference Garbet and Waltz1998; Gillot et al. Reference Gillot2023; Panico et al. Reference Panico, Sarazin, Hennequin, Gürcan, Bigué, Dif-Pradalier, Garbet, Ghendrih, Varennes and Vermare2025). They feature a transport equation on the profile, which allows the mean gradients to self-consistently evolve in response to the turbulent fluxes, along with additional sources and sinks. As a result, they offer a more realistic framework, where it is the particle and heat sources and not the gradients that are externally imposed on the system. However, from a computational perspective, flux-driven systems are usually more complicated to implement and numerical simulations are more costly, partly because of the need for reaching flux equilibrium.

Ideally, tokamak turbulence should be described using gyrokinetics to incorporate all kinetic effects, such as Landau damping, instabilities involving energetic and trapped particles, electromagnetic effects including large-scale Alfvèn modes, as well as small-scale electromagnetic turbulence such as micro-tearing. However, since such gyrokinetic codes require high computational time and resources, and they come with a complex theoretical framework, the use of reduced fluid models may often be prefered, especially if the goal is to understand complex nonlinear feedback mechanisms such as the interplay between turbulence, transport and zonal flows. These models are obtained by taking the first few moments of the (gyro-) kinetic equations, and already display quite rich behaviours including zonal flows or avalanches. Considering two-dimensions, the minimal model, which features turbulence generation from a linear instability driven by a mean-gradient and its self-organisation into zonal flows, is the Hasegawa–Wakatani model (Hasegawa & Wakatani Reference Hasegawa and Wakatani1983), which has been widely studied both theoretically and numerically for the past 40 years (Hu, Krommes & Bowman Reference Hu, Krommes and Bowman1997; Camargo, Tippett & Caldas Reference Camargo, Tippett and Caldas1998; Numata, Ball & Dewar Reference Numata, Ball and Dewar2007; Anderson & Hnat Reference Anderson and Hnat2017; Kim, An & Min Reference Kim, An and Min2019; Heinonen & Diamond Reference Heinonen and Diamond2020b ; Gürcan et al. Reference Gürcan, Anderson, Moradi, Biancalani and Morel2022).

Reduced fluid models generally feature a small number of equations, and here we consider quasi-two-dimensional models, since the wavenumber of the fluctuations parallel to the magnetic field lines $k_{\parallel }$ is much lower than in the perpendicular direction $k_{\perp }$ . In this approximation, these models are similar to the two-dimensional (2-D) incompressible Navier–Stokes system. Performing fixed gradient simulations of these systems in a 2-D, periodic, slab geometry can be reasonably and efficiently achieved using a pseudo-spectral formulation relying on fast Fourier transforms. This makes it natural to have periodic boundary conditions, which means that the mean gradient must be extracted from the profile and used as a constant parameter in such a system, while the remaining part constitutes turbulent fluctuations, which are taken to be periodic in both directions. In contrast, flux-driven systems do not normally use the pseudo-spectral method as they do not have periodic boundary conditions in the radial direction. They are instead often solved using finite difference numerical schemes, which can be slower to compute and less precise, especially for linear terms involving higher order derivatives.

To further improve computation time, one may impose further reductions, e.g. as in the Tokam1D model (Panico et al. Reference Panico, Sarazin, Hennequin, Gürcan, Bigué, Dif-Pradalier, Garbet, Ghendrih, Varennes and Vermare2025), where radial/zonal profiles are completely resolved, but only one poloidal mode is retained. Although such models can describe complex phenomena such as zonal flow generation and avalanche formation, they lack the fluctuating turbulent–turbulent nonlinear interaction term, which can be recovered, at least partially, either by using eddy viscosity closure terms (Carnevale & Martin Reference Carnevale and Martin1982; Krommes Reference Krommes2002) or by adding more poloidal modes and their interactions (Terry & Horton Reference Terry and Horton1983; Guillon & Gürcan Reference Guillon and Gürcan2025). However, adding even a few poloidal modes considerably complicates the basic structure of such a reduced model, while in a pseudo-spectral formulation, one can decide how many poloidal modes to incorporate freely, without any difficulty.

To benchmark these further reduced models, one needs to compare their results to actual direct numerical simulation (DNS) of flux-driven plasma fluid models. For this purpose, and to study flux-driven non-local transport in reduced fluid models in general, we developed the P-FLARE code (Guillon Reference Guillon2025b ), which stands for Penalised FLux-driven Algorithm for REduced models. The code uses the penalisation method introduced by Angot, Bruneau & Fabrie (Reference Angot, Bruneau and Fabrie1999), which works by constructing buffer zones at both ends of the radial domain. In these buffer regions, turbulent fluctuations are suppressed, and the radial profiles are modified so that they can be written as a combination of a periodic part and a jump, which allows us to compute their fast Fourier transforms and use the pseudo-spectral method. Thus, starting from a pseudo-spectral implementation of a fixed gradient system, we can easily obtain the implementation for the corresponding flux-driven system, while keeping the advantages of using fast Fourier transforms to perform high-resolution (i.e. $4096\times 4096$ padded) simulations that run at a comparable speed to its fixed-gradient pseudo-spectral version.

As a first application of the code, we perform numerical simulations of the flux-driven Hasegawa–Wakatani (FDHW) system. However, the flexible formulation of the code allows us to easily apply it to other similar reduced fluid models, such as 2-D models for edge turbulence (Sarazin & Ghendrih Reference Sarazin and Ghendrih1998; Sarazin et al. Reference Sarazin2021; Panico et al. Reference Panico, Sarazin, Hennequin, Gürcan, Bigué, Dif-Pradalier, Garbet, Ghendrih, Varennes and Vermare2025), which can include interchange, finite Larmor radius effects and the effect of the diamagnetic stress, or fluid ITG/ETG models (Horton et al. Reference Horton, Choi and Tang1981, Reference Horton, Hong and Tang1988; Ivanov et al. Reference Ivanov, Schekochihin, Dorland, Field and Parra2020) for core turbulence.

To demonstrate the capabilities of the code, we first consider a density profile which is steep in the inner radius and flat in the outer radius as the initial condition, and study its relaxation in the absence of a source. At short times, we observe ‘pair formation’ around the steepest part of the initial profile, with density bumps and holes growing linearly and then the bump moving radially outwards while the hole moves inwards. On longer time scales, the profile gradually relaxes, while the turbulent region, initially excited in the vicinity of the steep part of the density profile, spreads towards the flat region. To reproduce this relaxation, coupled to turbulent spreading, we use a one-dimensional (1-D) model, which consists of an equation for the turbulent kinetic energy, coupled to a transport equation for the density profile. Both equations feature a nonlinear diffusive term, in which the nonlinear diffusion coefficient is proportional to the turbulent kinetic energy. Such models have often been used in the past for studying profile relaxation and turbulence spreading together or separately (Hahm et al. Reference Hahm, Diamond, Lin, Itoh and Itoh2004; Gürcan et al. Reference Gürcan, Diamond, Hahm and Lin2005; Naulin, Nielsen & Rasmussen Reference Naulin, Nielsen and Rasmussen2005; Garbet et al. Reference Garbet, Sarazin, Imbeaux, Ghendrih, Bourdelle, Gürcan and Diamond2007; Miki et al. Reference Miki, Diamond, Gürcan, Tynan, Estrada, Schmitz and Xu2012). In the case of the flux-driven Hasegawa–Wakatani system, we observe that the reduced model reproduces both qualitatively and quantitatively the turbulent front propagation, which, for this particular problem, is found to be slightly subdiffusive.

At the end of the simulation, the system is observed to be in a state dominated by zonal flows. This is a manifestation of the transition from 2-D turbulence to zonal flows observed in the fixed gradient system when the ratio between the adiabaticity parameter $C$ and the mean gradient $\kappa$ is varied (Numata et al. Reference Numata, Ball and Dewar2007; Grander, Locker & Kendl Reference Grander, Locker and Kendl2024; Guillon & Gürcan Reference Guillon and Gürcan2025). The critical point for this transition, which is approximately $C/\kappa =0.1$ , is reached at some point as the density profile relaxes and the mean density gradient $\kappa$ decreases in time. Once the system transitions to a state dominated by zonal flows, the turbulent flux is suppressed and a marginally stable state is established, which does not result in a completely flattened final state.

To compare both runtimes and physical results with the more conventional finite difference formulation, we have benchmarked our relaxation simulation against the BOUT++ code (Dudson et al. Reference Dudson, Umansky, Xu, Snyder and Wilson2009) and the results, which can be found in Appendix A, show reasonable agreement.

Lastly, as an actual example of flux-driven simulations, we explore the effect of a localised particle source on the final state. Starting from the same initial saturated state, we find very different final states, by varying the source amplitude. Due to the existence of a marginally stable state dominated by zonal flows, the density profile exhibits behaviour somewhat reminiscent of sandpile models in self-organised criticality (Bak, Tang & Wiesenfeld Reference Bak, Tang and Wiesenfeld1987; Hwa & Kardar Reference Hwa and Kardar1992). To be more precise, the existence of a hysteresis loop suggestive of a first-order transition, and the fact that the critical state is not the threshold of a linear instability but of a nonlinear transition suggests that we have what is called self-organised bistability (Gil & Sornette Reference Gil and Sornette1996; di Santo et al. Reference di Santo, Burioni, Vezzani and Muñoz2016). Another consequence of the presence of this hysteresis loop is that it causes profile stiffness (Wolf et al. Reference Wolf2003; Garbet et al. Reference Garbet, Mantica, Ryter, Cordey, Imbeaux, Sozzi, Manini, Asp, Parail and Wolf2004; Mantica et al. Reference Mantica2009), in the sense that within some range of parameters close to the transition value, the simulations with very different imposed fluxes result in very similar final profiles. We argue that this is mainly due to differences in zonal flow levels between these simulations.

The rest of the article is organised as follows. In § 2, we define the flux-driven Hasegawa–Wakatani model starting from the original fixed gradient model. Then, in § 3, we detail the penalisation method that we use in the P-FLARE code, which requires buffer regions, modifying the radial profiles so that they become periodic in these regions and prescribing boundary conditions. The relaxation of the density profile is studied in § 4, along with turbulence spreading, which is reproduced by the one-dimensional (1-D) reduced model. Finally, in § 5, we discuss the impact of the localised particle source, which displays sandpile-like behaviour and profile stiffness.

2. Flux-driven Hasegawa–Wakatani model

In this section, we present the derivation of the particle flux-driven Hasegawa–Wakatani system, which we will call FDHW from now on. First, we recall the classical, fixed gradient equations.

2.1. Fixed gradient Hasegawa–Wakatani model

We consider the Hasegawa–Wakatani model in a 2-D slab $(\boldsymbol{e}_{x},\boldsymbol{e}_{y})$ of size $L_{x}\times L_{y}$ orthogonal to a uniform and constant magnetic field $\boldsymbol{B}=B\boldsymbol{e}_{z}$ , where $x$ and $y$ are respectively the radial and poloidal directions normalised to the sound Larmor radius $\rho _{s}$ . We first assume that the fluctuations are periodic in both axes.

The modified Hasegawa–Wakatani equations are (Hasegawa & Wakatani Reference Hasegawa and Wakatani1983; Numata et al. Reference Numata, Ball and Dewar2007; Guillon & Gürcan, Reference Guillon and Gürcan2025)

(2.1a) \begin{align} \partial _{t}\varOmega +\left [\phi ,\varOmega \right ] & =C(\widetilde {\phi }-\widetilde {n}),\\[-10pt]\nonumber \end{align}
(2.1b) \begin{align} \partial _{t}n+\left [\phi ,n\right ]+\kappa \partial _{y}\phi & =C(\widetilde {\phi }-\widetilde {n}), \end{align}

where $\phi$ is the electrostatic potential, $n$ the density perturbation and $\varOmega ={\nabla} _{\perp }^{2}\phi$ corresponds to the vorticity. The Poisson bracket $[\phi ,A]=\partial _{x}\phi \partial _{y}A-\partial _{y}\phi \partial _{x}A$ represents the advection of $A$ by the $E\times B$ velocity $\boldsymbol{v}_{E\times B}=\boldsymbol{e}_{z}\times \boldsymbol{\nabla }\phi$ . The adiabaticity parameter $C= {k_{||}^{2}\rho _{s}^2B}/{en_{0}\eta _{e,||}}$ , with $e$ the unit charge, $k_{||}$ the parallel wavenumber of fluctuations (along the magnetic field lines), $\eta _{e,||}$ the parallel resistivity and the background density gradient $\kappa \equiv - ({1}/{n_{r}}) ({\text{d}n_{r}}/{\text{d}x})$ , with $n_{r}$ being the background density profile normalised to a constant density reference $n_{0}$ , are constant parameters of the model. Even though here, we consider the inviscid case for simplicity, dissipation terms are generally introduced in both equations for numerical studies. Note that we have also decomposed the perturbations $A$ into their zonal $\overline {A}$ (averaged over the poloidal direction) and non-zonal $\widetilde {A}$ components, with a poloidal average defined as

(2.2) \begin{equation} \overline {A}(x,t)=\langle A\rangle _{y}\equiv \frac {1}{L_{y}}\int _{0}^{L_{y}}A\,\text{d}y,\ \langle \widetilde {A}\rangle _{y}=0\,. \end{equation}

In fact, (2.1b ) can also be written for the total density $N(x,y,t)=n_{r}(x,t)+\widetilde {n}(x,y,t)$ , normalised here to the constant reference density $n_{0}$ , so that

(2.3) \begin{equation} \partial _{t}N+\left [\phi ,N\right ]=C(\tilde {\phi }-\tilde {n}), \end{equation}

where

(2.4) \begin{equation} n_{r}=n_{lin}+\overline {n} \end{equation}

is the radial density profile, which combines the zonal density fluctuations with the linear (i.e. fixed gradient) background density profile as

(2.5) \begin{equation} n_{lin}(x,t)=-\kappa (x-L_{x})+n_{r}(x=L_{x})\,. \end{equation}

The Poisson bracket for $n_{lin}$ indeed yields $[\phi ,n_{lin}]=-\partial _{x}n_{lin}\partial _{y}\phi =\kappa \partial _{y}\phi$ .

In a fixed gradient formulation, since $\kappa$ is a constant, the background density profile $n_{lin}$ is prescribed and does not change in time. One may argue that this corresponds to imposing a complicated form of source terms to the density profile, which compensates the turbulent particle flux generated by the underlying instability (Garbet & Waltz Reference Garbet and Waltz1998), and that the remaining zonal density is basically a radially periodic perturbation, which cannot change the mean gradient.

2.2. Flux-driven model

To develop the flux-driven formulation, let us first consider $n_{r}$ to be an arbitrary density profile subject to a transport equation due to the turbulent particle flux.

2.2.1. Decomposition of the radial density profile

We can still decompose the density profile into a ‘linear’ part $n_{lin}$ and a radially periodic perturbation part $\overline {n}$ , which is just the zonal part of the density profile

(2.6) \begin{equation} n_{r}(x,t)=n_{lin}(x,t)+\overline {n}(x,t), \end{equation}

where

(2.7) \begin{equation} n_{lin}(x,t)\equiv -\kappa (t)(x-L_{x})+n_{r}(x=L_{x},t)\, \end{equation}

is no longer a constant in time, so that

(2.8) \begin{equation} \kappa (t)\equiv -\frac {n_{r}(x=L_{x},t)-n_{r}(x=0,t)}{L_{x}}\, \end{equation}

is a function of time, defined for the radial profile at a given time, and corresponds to the mean density gradient in the radial direction. The decomposition is illustrated in figure 1.

Figure 1. Decomposition of a given radial profile $n_{r}$ (blue) into its linear component $n_{lin}$ (dashed green) and its zonal fluctuating component $\overline {n}$ (dash-dotted red). Notice that using such a decomposition, we find that the zonal profile is periodic at the edges, while its derivative $\partial _{x}\overline {n}$ is not.

This decomposition is important because it enables us to obtain a radially periodic perturbated part, i.e. $\overline {n}$ , from which we will compute the fast Fourier transform, while the linear part will correspond to the constant in space $\kappa (t)$ in (2.1b ), which is now time dependent. Furthermore, this decomposition may help us project what we know about the linear, zonal and transport properties of the classic gradient-driven system into the flux-driven version, where the linear parameter $\kappa$ will now evolve in time in response to the turbulent particle transport. We know for example from fixed gradient studies of the Hasegawa–Wakatani system (Numata et al. Reference Numata, Ball and Dewar2007; Grander et al. Reference Grander, Locker and Kendl2024; Guillon & Gürcan Reference Guillon and Gürcan2025) that for $C/\kappa \lesssim 0.1$ , we get 2-D-like turbulence dominated by eddies, while for $C/\kappa \gtrsim 0.1$ , zonal flows dominate. We can argue that this observation should apply equally using a time evolving local mean gradient in a flux-driven system.

Notice that we can also define the zonal density to have a zero mean value:

(2.9) \begin{equation} \overline {n}\equiv n_{r}-n_{lin}-\left \langle n_{r}-n_{lin}\right \rangle _{x}\!, \end{equation}

where $\langle \boldsymbol{\cdot }\rangle _{x}$ denotes averaging along the $x$ axis. Thus, we have

(2.10) \begin{equation} n_{r}=n_{lin}+\overline {n}+n_{m}, \end{equation}

with $n_{m}\equiv \langle n_{r}-n_{lin}\rangle _{x}$ , so that $\overline {n}$ is really a zero mean, radially periodic perturbation associated with the density profile, as it would be the case in a fixed gradient model.

2.2.2. The equations

We can then write the time derivative of the total density $N(x,y,t)=n_{r}(x,t)+\widetilde {n}(x,y,t)$ using (2.3) as

(2.11) \begin{align} \partial _{t}N+\left [\phi ,N\right ] & =\partial _{t}n_{r}+\partial _{t}\widetilde {n}+\left (\kappa (t)-\partial _{x}\overline {n}\right )\partial _{y}\phi +\left [\phi ,\widetilde {n}\right ]=C(\widetilde {\phi }-\widetilde {n}), \end{align}

where we decomposed the Poisson bracket of the total density. Averaging this along $y$ , we get the evolution equation for the radial density profile:

(2.12) \begin{equation} \partial _{t}n_{r}+\partial _{x}\varGamma _{n}=0, \end{equation}

with $\varGamma _{n}$ the radial particle flux that is averaged along $y$ , defined as

(2.13) \begin{equation} \varGamma _{n}(x,t)\equiv \langle \widetilde {n}\widetilde {v}_{x}\rangle _{y}=-\langle \widetilde {n}\partial _{y}\widetilde {\phi }\rangle _{y}\,. \end{equation}

Note that density source terms can be introduced in (2.12). Subtracting the averaged (2.12) from the complete (2.11), we get the time evolution of the non-zonal density fluctuations

(2.14) \begin{equation} \partial _{t}\widetilde {n}+\left (\kappa (t)-\partial _{x}\overline {n}\right )\partial _{y}\phi +[\phi ,\widetilde {n}]-\langle [\widetilde {\phi },\widetilde {n}]\rangle _{y}=C(\widetilde {\phi }-\widetilde {n}), \end{equation}

so that we can write the complete flux-driven model as

(2.15a) \begin{align} \partial _{t}\varOmega +\left [\phi ,\varOmega \right ] & =C(\widetilde {\phi }-\widetilde {n})+\nu {\nabla} ^{2}\widetilde {\varOmega }, \end{align}
(2.15b) \begin{align} \partial _{t}\widetilde {n}+\left (\kappa (t)-\partial _{x}\overline {n}\right )\partial _{y}\widetilde {\phi }+\partial _{x}\overline {\phi }\partial _{y}\widetilde {n}+[\widetilde {\phi },\widetilde {n}]-\langle [\widetilde {\phi },\widetilde {n}]\rangle _{y} & =C(\widetilde {\phi }-\widetilde {n})+D{\nabla} ^{2}\widetilde {n}, \end{align}
(2.15c) \begin{align} \partial _{t}n_{r}+\partial _{x}\varGamma _{n} & =S_{n}(x,t)+D_{0}\partial _{x}^{2}n_{r}, \end{align}

where $\kappa$ and $\varGamma _{n}$ are given by (2.8) and (2.13), respectively. Note that viscosity and particle diffusion coefficients $\nu$ and $D$ , which act on vorticity and density fluctuations, respectively, have been introduced, but they could as well be replaced by hyperdiffusivity terms. An explicit diffusion term $D_{0}\partial _{x}^{2}n_{r}$ , which represents neoclassical diffusion on the radial profile, has also been added, along with a source term $S_{n}(x,t)$ , which represents particle injection.

We could apply the same decomposition procedure to a given radial profile $u_{r}$ of the $E\times B$ velocity, which would allow us to introduce the effect of large-scale mean sheared flows, generated by the radial electric field $E_{r}$ , which plays a fundamental role in turbulence suppression and pedestal formation in the L–H transition (Biglari, Diamond & Terry Reference Biglari, Diamond and Terry1990; Hinton & Staebler Reference Hinton and Staebler1993a ). However, this is technically more complicated because the vorticity (2.15a ) features the first and the second derivatives of the radial profile of the electrostatic potential $\phi _{r}$ (respectively the velocity $u_{r}=\partial _{x}\phi _{r}$ and the vorticity $\varOmega _{r}=\partial _{x}^{2}\phi _{r}$ radial profiles), and it is not clear which decomposition between a linear and zonal profile would be the better adapted.Footnote 1 We leave this discussion to a future publication where an external $E_{r}$ shear acts as an important control parameter.

Having presented the theoretical model, we now turn our attention to the numerical implementation of the FDHW system, using a pseudo-spectral method with penalisation.

3. P-FLARE code: a pseudo-spectral flux-driven code using the penalisation method

In this section, we present the P-FLARE code, which stands for ‘Penalised FLux-driven Algorithm for REduced models’, that we developed to numerically solve the FDHW equations as a primary example for the reduced fluid model. The code is written in Python using CUDA, and is available on GitHub (Guillon Reference Guillon2025b ) under the MIT Licence.

The pseudo-spectral method provides a fast and precise method for solving turbulence problems. However, its implementation requires periodic boundary conditions in all directions to compute fast Fourier transforms. This is not a priori satisfied for a flux-driven system, because we no longer have periodicity along the direction of the flux drive (i.e. the radial, or $x$ direction in our case). One possible solution that allows us to continue using this formulation is the method of penalisation (Angot et al. Reference Angot, Bruneau and Fabrie1999; Schneider & Farge Reference Schneider and Farge2005; Schneider, Neffaa & Bos Reference Schneider, Neffaa and Bos2011), which is based on dividing the radial domain into a physical and a buffer zone near the edge, where the fluctuations are strongly damped and the perturbation parts of the profiles are slightly modified to make them periodic so that we can still apply the fast Fourier transforms. In other words, these edge buffer regions act like absorbant walls for the fluctuations and allow us to impose different kinds of boundary conditions on radial profiles.

3.1. Buffer zone

In the flux-driven formulation, in addition to all the fields being $L_{y}$ periodic, all non-zonal fluctuations are also $L_{x}$ periodic. However, this is not the case, for example, for the zonal density gradient $\partial _{x}\overline {n}$ , which becomes discontinuous at the end points (orange dots), even though the zonal density perturbation can be made periodic, as can be seen in figure 1. However, to use the pseudo-spectral algorithm, we need to compute its fast Fourier transform, since it appears in the nonlinear term $\partial _{x}\overline {n}\partial _{y}\phi$ .

To use fast Fourier transforms while maintaining non-periodic boundary conditions, we need to design a buffer zone at both ends of the $x$ axis to enforce the desired radial periodicity. For this purpose, we choose to restrict the radial domain $[0,L_{x}]$ to a smaller range $[x_{b1},x_{b2}]$ , with $0\lt x_{b1}\lt x_{b2}\lt L_{x}$ (see figure 2), which describes the physical region in which the solution is considered valid, and construct buffer zones, in which the profile is modified slightly to get the continuity of the first few derivatives of the zonal density profile (the continuity of the second derivative is needed to compute the neoclassical diffusion term).

Figure 2. Decomposition of the radial profile $n_{r}$ (blue) into its linear component $n_{lin}$ (dashed green) and its zonal fluctuating component $\overline {n}$ (dash-dotted red). The background density gradient is now computed between $x_{b1}$ and $x_{b2}$ , and the buffer zones are indicated by the dashed lines.

In the buffer region, the system has no ‘physical meaning’ and the profiles are not realistic, as a result of imposing the perturbation to match between the two ends of the domain. To avoid that these unrealistic profiles generate spurious transport, we also need to strongly damp fluctuations in those regions, which is achieved by the penalisation method.

When decomposing the radial profile, instead of computing the background density gradient using the endpoints of the domain $x=0$ and $x=L_{x}$ , we now take it between the physical end points $x_{b1}$ and $x_{b2}$ :

(3.1) \begin{equation} \kappa (t)\equiv -\frac {n_{r}(x_{b2},t)-n_{r}(x_{b1},t)}{x_{b2}-x_{b1}}\,. \end{equation}

An example of this decomposition is shown in figure 2.

Note that $x_{b2}-x_{b1}$ is equal to the physical box size $L_{px}$ , while $L_{x}$ , which also includes the two buffer regions, actually represents the computational domain size.

3.2. Flattening the zonal density in the buffer

The zonal profile inside the buffer zone needs to be such that at least its first two derivatives are continuous at the end points (i.e. $0$ and $L_{x}$ , which is the same point in a periodic box), while keeping the zonal perturbation periodic. This can be achieved by interpolating the zonal density perturbation in the buffer so that it basically becomes flat. However, the interpolation is rather costly from a computational point of view and, therefore, a better solution is to multiply the profile by a ‘gate function’, which is exactly 1 outside the buffer zones and 0 at the very edges. To ensure the continuity of the higher derivatives at the ends, the function that is used should be quite flat when converging to 0 (and $L_{x}$ on the other side) and it should be at least twice differentiable, to allow the computation of derivatives of the zonal profiles.

To guarantee that, we can use a smooth transition function (Tu Reference Tu2011, Ch. 13) which can be constructed using the following function, defined for $z\in [0,1]$ as

(3.2) \begin{equation} g(z)\equiv \begin{cases} \exp \left (-1/z\right ), & z\gt 0,\\ 0, & z=0. \end{cases} \end{equation}

This function is infinitely continuous and differentiable in its domain of validity and all its derivatives are equal to zero at $z=0$ , which makes it rather flat in its vicinity. Using this function as the basis, we can construct a smooth transition function, defined on $[0,1]$ as

(3.3) \begin{equation} h(z)\equiv \frac {g(z)}{g(z)+g(1-z)}, \end{equation}

which goes from 0 at $z=0$ to 1 at $z=1$ , and has all its derivatives equal to zero at both ends. The function $h$ is illustrated in figure 3(a).

Figure 3. (a) Smooth transition function $h$ defined according to (3.3) on $[0,1]$ . (b) Smooth gate $\varPsi$ defined from (3.4) on $[0,L_{x}]$ , where the transition parts are shown in orange.

Scaling and translating this function to match the buffer region, we can construct the following ‘smooth gate’ function $\varPsi$ :

(3.4) \begin{equation} \varPsi (x)\equiv \begin{cases} 0, & 0\leqslant x\leqslant x_{m_{\ell }},\\ h\left (\dfrac {x-x_{m\ell }}{x_{m1}-x_{m\ell }}\right ), & x_{m\ell }\lt x\lt x_{m1},\\ 1, & x_{m1}\leqslant x\leqslant x_{m2},\\ h\left (\dfrac {x_{mr}-x}{x_{mr}-x_{m2}}\right ), & x_{m2}\lt x\lt x_{mr},\\ 0, & x_{mr}\leqslant x\leqslant L_{x}, \end{cases} \end{equation}

which is exactly 0 in $[0,x_{m\ell }]$ and $[x_{mr},L_{x}]$ (close to the edges), exactly 1 on $[x_{m1},x_{m2}]$ , and which transitions smoothly for all its derivatives between those intervals. The gate function is shown in figure 3(b).

Notice that the intervals around the endpoints where the gate function is exactly zero are introduced for numerical reasons: since the $x$ axis is discretised in numerical simulations, it is better to ensure that the derivatives are exactly zero on a small portion of the $x$ grid, rather than just at the very ends. These regions $[0,x_{m\ell }]$ and $[x_{mr},L_{x}]$ are exagerated in figures 3 and 4 for visual purposes. In practice, we will choose $x_{m\ell }$ and $x_{mr}$ such that they correspond to some of the very first and last points of the grid (obviously within the buffer region), respectively (see § 4.1 for an actual application). In the following, we actually use the radial extension of the transition

(3.5) \begin{equation} \delta x_{m}\equiv x_{m1}-x_{m\ell }=x_{mr}-x_{m2} \end{equation}

as a parameter, and infer the individual values of $x_{m\ell }$ and $x_{mr}$ from that.

Figure 4. Top plot: modified zonal density perturbation $\overline {n}_{matched}$ (red), which is now periodic and flat at both ends. The corresponding matched radial profile $n_{r,matched}$ is shown in blue. The orignal radial profile $n_{r}$ (dashed light-blue), linear profile $n_{lin}$ (green) and zonal profile $\overline {n}$ (dashed dark-red) from figure 2 are also shown. Bottom plot: smooth-gate function $\varPsi$ .

Now, we can use the gate function $\varPsi$ to modify the zonal density profile inside the buffer zones, and match its values and derivatives at both edges. The simplest solution would be to just multiply the zonal density perturbation by $\varPsi$ to ensure the periodicity of $\overline {n}$ and all its derivatives. However, the values of the density perturbation, as computed from the decomposition, can be very different from zero at $x=0$ and $x=L_{x}$ , and forcing them to be zero could introduce strong gradients in the buffer zones which might trigger numerical instabilities (even though they would be suppressed in the buffer). To mitigate that effect, we first shift the zonal perturbation by an offset:

(3.6) \begin{equation} n_{off}\equiv \dfrac {1}{4}\left [\overline {n}(0)+\overline {n}(x_{m1})+\overline {n}(x_{m2})+\overline {n}(L_{x})\right ], \end{equation}

corresponding to the mean value between both ends of the profile and its value at $x=x_{m1}$ and $x=x_{m2}$ . Then, we apply the gate function and shift back the profile by $n_{off}$ :

(3.7) \begin{equation} \overline {n}_{matched}\equiv \varPsi (x)\left (\overline {n}-n_{off}\right )+n_{off}\,. \end{equation}

Note that this does not change the profile within the interval $[x_{m1},x_{m2}]$ . The matched zonal perturbation profile is shown on figure 4 (red line). We also show the corresponding ‘matched’ radial profile (blue line), which is the combination of the matched zonal perturbation and the linear profile,

(3.8) \begin{equation} n_{r,matched}\equiv n_{lin}+\overline {n}_{matched}, \end{equation}

actually ‘seen’ by the system.

Notice that we initially took $(x_{m1},x_{m2})=(x_{b1},x_{b2})$ , but this introduced strong density gradients very close to the physical space $[x_{b1},x_{b2}]$ , where the fluctuations are not completely zero. Instead, taking $x_{m1}$ and $x_{m2}$ well inside the buffer zone allows us to avoid such effects.

In practice, we subtract the mean value $n_{m}=\langle \overline {n}_{matched}\rangle _{x}$ from the matched zonal profile, as already discussed in § 2.2 (see (2.9)).

3.3. Penalisation method

Having constructed a profile whose zonal perturbation is periodic and whose derivative falls to zero at the endpoints, we now want to impose some constraints on both the radial profiles and turbulent fluctuations inside the buffer zone, to enforce the desired boundary conditions and avoid spurious fluctuations inside the edge regions. To this end, we use the volume penalisation approach, introduced by Angot et al. (Reference Angot, Bruneau and Fabrie1999) for Navier–Stokes simulations with a bounded, non-periodic domain, and used later for pseudo-spectral simulations of hydrodynamic (Schneider & Farge Reference Schneider and Farge2005) and magnetohydrodynamic (Schneider et al. Reference Schneider, Neffaa and Bos2011) turbulence.

The general idea is to impose a strong friction term

(3.9) \begin{equation} -\mu H(x)(A-A_{buff}) \end{equation}

to force the field $A$ to rapidly decay to a given boundary function $A_{buff}$ inside the buffer zone, represented by the mask function $H$ , which is 0 in the physical domain and 1 inside the buffer. To underline that it is large, the friction coefficient $\mu$ is sometimes represented as $1/\varepsilon$ , where $\varepsilon$ stands for some permeability coefficient, for the case when $A$ is the velocity field. This corresponds to building a thin artificial boundary layer around the buffer zone, in which the fields are forced to rapidly converge towards their edge value.

Using (3.9), and (2.11) and (2.15a ), we can write the penalised form of the equations that we solve numerically:

(3.10a) \begin{align} \partial _{t}\varOmega +[\phi ,\varOmega ] & =C(\widetilde {\phi }-\widetilde {n})+\nu {\nabla} ^{2}\widetilde {\varOmega }-\mu \boldsymbol{\nabla }\times \left (H(x)\boldsymbol{v}_{E\times B}\right ),\\[-10pt]\nonumber \end{align}
(3.10b) \begin{align} \partial _{t}N+[\phi ,N] & =C(\widetilde {\phi }-\widetilde {n})+D{\nabla} ^{2}\widetilde {n}+S_{n}(x,t)-\mu H(x)\left (N-n_{r,buff}\right ), \end{align}

where the last two terms in both equations correspond to the penalisation. Notice that in (3.10a ), we impose the fluid velocity $\boldsymbol{v}_{E\times B}=-\partial _{y}\phi \boldsymbol{e}_{x}+\partial _{x}\phi \boldsymbol{e}_{y}$ to be zero inside the buffer zone, corresponding to no-slip boundary conditions, and since the equation is actually for the vorticity $\varOmega =\boldsymbol{\nabla }\times \boldsymbol{v}_{E\times B}$ , it is the curl of that penalisation condition (projected onto $\boldsymbol{e}_{z}$ ) that appears in this equation (Schneider & Farge Reference Schneider and Farge2005; Schneider et al. Reference Schneider, Neffaa and Bos2011). For the density (3.10b ), the total density $N$ is forced to be equal to a given boundary function $n_{r,buff}(x,t)$ in the buffer, which is only a function of $x$ and time, so that the turbulent, non-zonal fluctuations are forced to be zero in the buffer. The choice for $n_{r,buff}$ will be discussed further in § 3.4 about boundary conditions on the radial profile.

We can thus write the penalised equations for the turbulent fluctuations (using (2.15a ) and (2.15b )),

(3.11a) \begin{align} \partial _{t}\widetilde {\varOmega } & +[\phi ,\widetilde {\varOmega }]-\langle [\phi ,\widetilde {\varOmega }]\rangle _{y}=C(\widetilde {\phi }-\widetilde {n})+\nu \boldsymbol{\nabla} ^{2}\widetilde {\varOmega }-\mu \boldsymbol{\nabla }\times \left (H(x)\hat {z}\times \boldsymbol{\nabla }\widetilde {\phi }\right ), \end{align}
(3.11b) \begin{align} \partial _{t}\widetilde {n} & +\left (\kappa (t)-\partial _{x}\overline {n}\right )\partial _{y}\widetilde {\phi }+\partial _{x}\overline {\phi }\partial _{y}\widetilde {n}+\widetilde {[\phi ,n]}=C(\widetilde {\phi }-\widetilde {n})+D\boldsymbol{\nabla} ^{2}\widetilde {n}-\mu H(x)\widetilde {n}, \end{align}

and for the radial profile of the velocity $u_{r}$ , which is just the zonal velocity $\overline {v}_{y}$ here,Footnote 2 and the radial density $n_{r}$

(3.12a) \begin{align} \partial _{t}\overline {v}_{y} & =\langle \widetilde {\varOmega }\partial _{y}\widetilde {\phi }\rangle _{y}-\mu H(x)\overline {v}_{y}\\[-10pt]\nonumber \end{align}
(3.12b) \begin{align} \partial _{t}n_{r} & =\partial _{x}\langle \widetilde {n}\partial _{y}\widetilde {\phi }\rangle _{y}+S_{n}(x,t)+D_{0}\partial _{x}^{2}n_{r}-\mu H(x)\left (n_{r}-n_{r,buff}\right )\,. \end{align}

The mask function $H(x)$ , which should quickly (but smoothly) transition from 0 to 1 as we enter the buffer zone, is taken as the smooth gate function $\varPsi$ defined previously in (3.4). More precisely, we will use the following mask function:

(3.13) \begin{equation} H(x)=1-\varPsi _{mask}(x)\,. \end{equation}

Note that $\varPsi _{mask}$ is parametrised differently from the function used to make zonal profiles periodic in § 3.2. As illustrated in figure 5, the parameters are chosen so that fluctuations are zero before the radial profile has any modification. In other words the fluctuations do not ‘see’ the modified parts of the radial profiles.

Figure 5. Combined plot of $\psi _{mask}(x)=1-H(x)$ (blue) and the smooth-gate function $\varPsi _{smooth}(x)$ (dashed red). Their radial extensions $\delta x_{b}$ and $\delta x_{m}$ are also shown (respectively blue and red arrows).

3.4. Boundary conditions

3.4.1. Boundary profile in the buffer zone

First, we specify the boundary radial profile $n_{r,buff}(x,t)$ that we impose in the buffer zone. Since the fluctuations are not supposed to penetrate that region, we argue that the density profile should keep its initial shape $n_{r}(x,t=0)$ . However, since turbulence creates a net outward radial particle flux, the total number of particles can vary in time in the physical domain. This would create large gradients in the buffer zone if we kept the density in the buffer region really constant. To avoid this, we need the boundary profile to decrease or increase together with the value of $n_{r}(x,t)$ at $x_{b1}$ and $x_{b2}$ , where the buffers meet the physical domain. To achieve this, we propose the following boundary profile:

(3.14) \begin{equation} n_{r,buff}(x,t)=\begin{cases} n_{r}(x,t=0)-n_{r}(x_{b1},t=0)+n_{r}(x_{b1},t), & x\leqslant x_{b1},\\ n_{r}(x,t=0)-n_{r}(x_{b2},t=0)+n_{r}(x_{b2},t), & x\geqslant x_{b2}, \end{cases} \end{equation}

which will cause the boundary profiles to move together with $n_{r}(x_{b1},t)$ and $n_{r}(x_{b2},t)$ at these points, without changing their initial shape.

3.4.2. Boundary condition at $(x_{b1},x_{b2})$

As a first application of the code with non-trivial boundary conditions, we choose to fix the density profile at the right buffer, $x=x_{b2}$ (Dirichlet boundary condition), while letting it evolve freely at the left buffer, $x=x_{b1}$ , as a response to the turbulent particle flux (which is a loosely Neumann boundary condition). Note that we make this somewhat arbitrary choice because we are interested in studying the profile relaxation, or its evolution with a particle source localised at the inner boundary, which is more relevant if the profile is fixed at the outer boundary. It also allows us to demonstrate the two kinds of boundary conditions that can be used.

In particular, imposing the Dirichlet boundary condition $\partial _{t}n_{r}(x_{b2},t)=0$ is not straightforward: even though we impose a boundary profile for $n_{r}$ inside the buffer, the condition is only really met where the mask function $H(x)$ is close to $1$ . Therefore, in the vicinity of $x_{b2}$ in the buffer, where $H(x)\ll 1$ (see figure 5), the radial profile can still evolve freely because the effect of penalisation is quite weak in this region. To impose the condition exactly at $x_{b2}$ , but in a smooth way around this point, we apply an artificial Gaussian sink centred at the outer boundary point. Indeed, we cannot impose a boundary condition only at $x_{b2}$ , because such a singularity would trigger numerical errors when computing fast Fourier transforms.

This artificial Gaussian sink is taken as

(3.15) \begin{equation} S_{b2}(x,t)=-\partial _{t}n_{r}(x_{b2},t)\exp \left [-(x-x_{b2})^{2}/(2\sigma _{S_{b}}^{2})\right ], \end{equation}

where $\partial _{t}n_{r}(x_{b2},t)$ is computed from (3.12b ). The sink is centred on $x_{b2}$ and imposes $\partial _{t}n_{r}(x_{b2},t)=0$ . Since it has some finite (small) width $\sigma _{S_{b}}$ , its effect extends into the physical space around $x_{b2}$ , which means that it modifies the particle budget inside the physical domain and acts as a volumetric particle sink. The particle budget becomes

(3.16) \begin{equation} d_{t}N_{\varphi }=\int _{x_{b1}}^{x_{b2}}\partial _{t}n_{r}\,\text{d}x=\varGamma _{n}(x_{b1},t)-\varGamma _{n}(x_{b2},t)+P_{b2}(t), \end{equation}

with $N_{\varphi }$ the total density inside the physical domain $[x_{b1},x_{b2}]$ , $\varGamma _{n}$ the total particle flux (turbulent and potentially diffusive if the neoclassical diffusion $D_{0}$ is also included) and $P_{b2}=\int _{x_{b1}}^{x_{b2}}S_{b2}(x,t)\,\text{d}x$ is the integral over the physical domain of the sink $S_{b2}$ localised at $x_{b2}$ .

Note that this is a particular choice for the present study and that the boundary conditions can easily be modified for other applications of the code.

3.5. Limits of the penalisation method

First of all, notice that, by construction, turbulent (zonal and non-zonal) perturbations are taken to be zero mean-valued. However, since we impose the radial profile of the poloidal velocity $u_{r}$ to be zero in the buffer zone, it may acquire a non-zero mean value resulting in $\overline {v}_{y}=u_{r}-\langle u_{r}\rangle _{x}\neq u_{r}$ . We account for this small non-zero mean value in the numerical implementation, which can be seen as a Doppler shift (and which remains several orders of magnitude lower than the typical amplitude of $u_{r}$ in the saturated state). This makes it so that the zonal velocity perturbation is not exactly zero in the buffer zone, but it is actually equal to $-\langle u_{r}\rangle _{x}$ . This is not really a problem, but a feature of the penalisation with the particular kind of boundary condition that is used.

Second, the actual effectiveness of the penalisation is related to the value of the penalisation coefficient $\mu$ in such a way that the higher the coefficient $\mu$ , the closer we are to a system with actual impermeable boundaries. However, since $\mu \lt \infty$ , there is still some permeability which means that some fluctuations manage to penetrate into the buffer region. Nevertheless, we observe in simulations that the turbulence level in the buffer zone is still 2–3 orders of magnitude below that of what one finds in the physical domain and no coherent information seems to pass from one buffer to the other. This can, in principle, be improved by increasing the numerical value of the penalisation coefficient, but experience shows that the improvement remains limited, and it causes the adaptive time stepping algorithm that we use to slow down considerably.

The mask function can also create a second instability induced by the penalisation term $-\mu \boldsymbol{\nabla }\times (H(x)\hat {z}\times \boldsymbol{\nabla }\widetilde {\phi })$ from (3.11a ). Indeed this term can be decomposed into a penalisation term on the vorticity $-\mu H(x){\nabla} _{\perp }^{2}\widetilde {\phi }$ and a second term $-\mu \boldsymbol{\nabla }H\times (\hat {z}\times \boldsymbol{\nabla }\widetilde {\phi })$ , which features the gradient of the mask function and which will appear as an additional term in the dissipative drift-wave dispersion relation when kept, in contrast to Navier–Stokes, where there is no linear instability. Note that this is not a numerical artefact per se: this would probably happen if we had actual walls around the system as implied by the penalisation scheme. However, it is unwelcome here because the buffer zones are not supposed to represent actual walls and it shows that using the penalisation method may cause the dynamics close to the boundaries to be affected in specific ways, which may be different from what is intended. Fortunately, this instability remains of very low amplitude, confined to the vicinity of the buffer zone, and is completely suppressed once ‘real’ turbulence reaches the buffer and covers it (see the discussion in § 4.3.1 on an actual DNS). Again, this effect can be reduced by making the buffer regions larger, so that the local gradients of the mask function become smaller. However, this is a trade-off, since in doing so, one looses a bigger part of the computational domain to buffers.

4. Turbulent spreading and transport

To demonstrate the capabilities of our code, we consider the decades-old problem of turbulent spreading coupled to turbulent transport. While the exact definition of spreading remains controversial, a rather strong definition related to observations of turbulence in linearly stable regions (Guo & Diamond Reference Guo and Diamond2017; Heinonen & Diamond Reference Heinonen and Diamond2020a ) can be ruled out in our model. However, a weaker definition consists of the nonlinear tendency of turbulence to spread itself, which can be represented by a nonlinear diffusive term in the equation for the fluctuations. Such a term is well known to not be very efficient in penetrating stable or damped regions, but modifies the complex feedback loops between turbulence and transport in such a way that it increases the initial nonlinear diffusion of turbulence and the profile together into an initially stable region. Note, however, that the dissipative drift instability that we consider here does not have an instability threshold in the inviscid limit.

Our code allows us to study the detailed dynamics of how turbulent fluctuations, due to an initial density profile with a highly local instability drive, spread in the radial direction, when the system is released with no forcing. Naturally, this happens through a coupled evolution of the profile and turbulence which results in a turbulent front propagation accompanied by a relaxation of the initial density profile.

For this purpose, we construct an initial profile, which is very steep on the left and then very flat on the right, using the following expression:

(4.1) \begin{equation} n_{r}(x,t=0)=\frac {L_{x}}{\alpha }\left [\tanh \left (\frac {x_{a}-x}{L_{x}}\kappa _{\ell }\alpha \right )-\tanh \left (\frac {x_{a}-L_{x}}{L_{x}}\kappa _{\ell }\alpha \right )\right ], \end{equation}

where $\kappa _{\ell }$ is the slope of the steepest part (i.e. the background density gradient on the left), $x_{a}$ defines the centre of this region, and $\alpha$ is a scaling factor that controls the width and the height of the hyperbolic tangent. The second term is an offset which allows us to have $n_{r}(x=L_{x},t=0)=0$ . Note that, for $x\sim x_{a}$ , we have $n_{r}(x,t=0)\sim$ $-\kappa _{\ell }(x-x_{a})$ , which means that $\kappa _{\ell }$ indeed corresponds to the local background density gradient at that point. The linear instability is also the strongest at this point, where the profile is the steepest, and naturally the turbulence initially develops there. The turbulent patch then spreads to the right, accompanied by a relaxing profile until they reach the right buffer zone. Note that while a relaxing profile would drag the turbulence with it, resulting in a similar overall picture, the existence of turbulence spreading, in the form of a flux term in the fluctuation evolution, changes the details of how exactly this happens.

The evolution of density and vorticity fluctuations as well as the zonal velocity and the density profiles are shown in figure 6 for a numerical simulation of padded resolution $1024\times 1024$ , with $C=0.05$ , $\kappa _{\ell }=5$ , $L_{x}=L_{y}=32\pi$ , $x_{a}=2.5x_{b1}$ and $\alpha =2$ . The animation for this simulation is available on the repository page (Guillon Reference Guillon2025a , Movie 1). We can describe the time evolution of the system as follows.

  1. (i) The initial radial density profile at $t=0$ (panel a) is the steepest at $x=x_{a}\approx 33$ , so the linear instability mostly occurs around this point. Initially, there are no zonal flows (panel e).

  2. (ii) At $t=31.3$ , the instability is well developed and we see a local flattening (panel b) of the profile centred on $x=x_{a}$ . The 2-D map of density exhibits blobs and holes of positive and negative density fluctuations, respectively, alternating periodically in the poloidal direction. Positive blobs move to the right while negative holes move to the left. For the velocity profile (panel f), this corresponds to the formation of a nonlinear structure similar to a modulational instability. The vorticity map exhibits similar structures.

  3. (iii) At $t=58.8$ , as shown in panels (c) and (g), the instability has completely saturated and the left part of the domain is in a turbulent state. The initial density profile has collapsed, due to the outward turbulent particle flux, and has relaxed to the right.

  4. (iv) At $t=375$ , panels (d) and (h), the turbulent region has completely spread to the right of the radial axis. The global density profile is considerably flatter than the initial one and the global $C/\kappa$ is thus higher. As a result, the system has made the transition to the zonal flow dominated state, which is evidenced by the large-scale sheared flows (panel h) and the density corrugations (panel d), where the so-called staircase steps can be observed. The zonal flows reduce the particle flux, and hence the profile stops collapsing and the system ends up in some kind of marginal state that is mostly ‘frozen’ by the zonal flows. The turbulence level is also smaller, as shown in the 2-D maps of density and vorticity.

Figure 6. Spreading of the turbulent region in a numerical simulation of padded resolution $1024\times 1024$ , with $C=0.05$ and $\kappa _{\ell }=5$ . (a–d) Snapshots of the density fluctuation $n(x,y)$ and radial density profile $n_{r}$ (black line). (e–h) Snapshots of the vorticity fluctuation $\varOmega (x,y)$ and zonal velocity profile $\overline {v}_{y}$ (black line). Buffer zones are shown in dashed lines.

In the following, we study these different stages in detail: (i) the ‘pair formation’ in § 4.2; (ii) the spreading of the turbulent region, along with the relaxation of the density profile in § 4.3, which we reproduce using a 1-D reduced model; and finally (iii) the formation of zonal flows once the density profile is sufficiently flat at the end, along with the ‘freezing’ of the system due to zonal flow domination, in § 4.4.

We have also made a detailed comparison to the BOUT++ code, which can be considered as the standard in finite difference formulation where the boundary conditions can be specified explicitly, and the results of this benchmark, which show reasonable agreement, can be found in Appendix A.

4.1. Numerical set-up

To further study the dynamics of the flux-driven Hasegawa–Wakatani system accurately, we perform high-resolution ( $4096\times 4096$ ) numerical simulations, for which the physics and penalisation parameters are given in table 1. The parameters that determine the buffer and smoothing functions correspond to integer multiples of the unpadded grid resolution $\Delta x=L_{x}/N_{x}$ , where $N_{x}=2\lfloor 4096/3\rfloor =2730$ . The initial value for the profile is given by (4.1) as before.

Table 1. Physical and penalisation parameters for the $4096\times 4096$ padded simulation. The initial profile is taken as (4.1).

Note that for this high-resolution simulation, the buffer zone corresponds to less than $7\,\%$ of the total computational domain size. In contrast, in the $1024\times 1024$ simulation shown in figure 6, the buffer zone covers $25\,\%$ of the computational domain size (using the same integer multiples for setting the buffer zone).

The time evolution of energy, flux and density at the left boundary $n_{r}(x_{b1},t)$ are shown in figure 18 in Appendix B.

4.2. Early times: pair production

First, we detail the flattening of the initial profile as a result of positive blobs of density $\delta n_{+}$ travelling outwards and negative holes $\delta n_{-}$ travelling inwards. This can be seen as a consequence of the modulation of the linear drift-wave instability, which occurs mostly where the profile is the steepest (highest local $\kappa$ ). Although the waveform of this instability is mainly poloidal (i.e. $k_{y}=0$ modes have zero growth rate), the nonlinear interaction of two linearly unstable modes can form a structure with a finite radial scale through a mechanism akin to modulational instability.

The evolution of the profile is shown in figure 7(a) at different time steps (the initial profile is the black dashed line). The flattening is centred at $x=x_{a}\approx 53$ , around which the modulation grows, making the profile more steep at the edges. The perturbation with respect to the initial profile

(4.2) \begin{equation} \delta n_{r}\equiv n_{r}-n_{r}(t=0) \end{equation}

is shown in figure 7(b), where we clearly see the formation of a negative ‘dip’ on the left, corresponding to the holes $\delta n_{-}$ , and a positive bump on the right, corresponding to the positive blobs $\delta n_{+}$ , both moving away from $x=x_{a}$ and, as a result, flattening the profile. The growth of this flattening perturbation, which we may call an avalanche from the point of view of the profile, is initially smooth, but becomes chaotic towards the end $t=30.6$ (violet line). At this point, the system really enters the turbulent regime, as the blobs become unstable themselves, forming smaller scale structures, as can be seen in figures 6(c) and 6(g).

Figure 7. Flattening of the initial density profile in the early times. (a) Density profile restrained on the interval $x\in [30,75]$ at different time steps. The initial profile is in black dashed lines. (b) Perturbation $\delta n_{r}=n_{r}-n_{r}(t=0)$ from the intial profile.

To quantify the dynamics, we can look at the time evolution of the root mean square (r.m.s.) of the deviation from the initial profile

(4.3) \begin{equation} \langle \delta n_{r}\rangle _{rms}\equiv \left (\frac {1}{x_{2}-x_{1}}\int _{x_{1}}^{x_{2}}\delta n_{r}^{2}\,{\rm d}x\right )^{1/2}, \end{equation}

where we take $x_{1}=30$ and $x_{2}=75$ since it is sufficient to look only in the vicinity of the avalanche. We can also look at the position $X_{\pm }$ of the positive and negative perturbations $\delta n_{\pm }$ that we observe in figure 7(b). We define those as the barycentre of the squared perturbations:

(4.4) \begin{equation} X_{\pm }(t)\equiv \frac {\int _{x_{1}}^{x_{2}}x\delta n_{r}^{2}\varTheta \left (\pm \delta n_{r}\right )\,{\rm d}x}{\int _{x_{1}}^{x_{2}}\delta n_{r}^{2}\varTheta \left (\pm \delta n_{r}\right )\,{\rm d}x}, \end{equation}

where $\varTheta$ is the Heaviside step function. This definition is similar to tracking the position of the maxima, but it has the advantage of behaving more smoothly.

In figure 8, we show the r.m.s. value $\langle \delta n_{r}\rangle _{rms}$ of the perturbation (panel a), and the position $X_{\pm }$ of the bump and the hole (panel b) as functions of time. The time evolution of the perturbation can be decomposed in two phases. First, there is a linear phase, where the perturbation grows exponentially and the bump and the hole stay almost at the same distance from each other, although we can notice that they slowly drift towards the left (in other simulations, they may not move at all). Then, for $t\geqslant 27$ , the amplitude of the perturbation saturates, which is associated with the positive perturbation moving radially outwards while the negative perturbation moves inwards, at roughly constant speeds. Finally, towards the end, the perturbation starts to be chaotic and the blobs become unstable themselves.

Figure 8. (a) Time evolution of the r.m.s. value $\langle \delta n_{r}\rangle$ of the density profile perturbation. The slope of the growth of the perturbation in the linear phase is compared with the sum of the growth rates of the most unstable mode and side-band $\gamma _{k}+\gamma _{p}$ . (b) Positions $X_{\pm }$ of the density perturbations $\delta n_{\pm }$ as functions of time, shown respectively in red and blue dashed lines. The contour plots of the density perturbation $\delta n_{r}$ are also shown. The perturbation wavelength $\lambda _{q}=2(X_{+}-X_{-})\approx 23.0$ is estimated at $t\approx 20$ (orange arrow).

To explain the formation of the perturbation, which is a radial structure, we can assume that it results from triadic interactions between the most unstable mode $k=(0,k_{y0})$ , a radial mode $q=(q,0)$ , with $q$ corresponding to the wavenumber of the perturbation, and two side-bands $p_{\pm }=(\pm q,k_{Y0})$ , which statisfy the triadic interaction $\boldsymbol{k}-\boldsymbol{p}_{\pm }\pm \boldsymbol{q}=\boldsymbol{0}$ . Taking the Fourier transform of (2.12), and restraining the nonlinear term to only those, yields

(4.5) \begin{equation} \partial _{t}\overline {n}_{q}=qk\left (\phi _{k}^{*}n_{p_{+}}-\phi _{p_{+}}n_{k}^{*}-\phi _{k}n_{p_{-}}^{*}+\phi _{p_{-}}^{*}n_{k}\right )\,. \end{equation}

Assuming $\phi _{k,p_{\pm }},n_{k,p_{\pm }}\propto \exp [-i\omega _{k,p_{\pm }}t]$ , where $\omega _{k}=\omega _{k,r}+i\gamma _{k}$ is the eigenvalue associated with the unstable mode ( $\gamma _{k}\gt 0$ ) of the drift-wave instability, we can write

(4.6) \begin{equation} \overline {n}_{q}=\left (A_{k,q}^{+}e^{-i\delta \omega t}+A_{k,q}^{-}e^{i\delta \omega t}\right )e^{(\gamma _{k}+\gamma _{p})t}, \end{equation}

where $\delta \omega =\omega _{p,r}-\omega _{k,r}$ and $A_{k,p}^{\pm }$ are complex coefficients depending on the initial phase and amplitudes of the modes $k$ and $p_{\pm }$ . This suggests that the pertubation is expected to grow at a rate $\gamma _{q}^{\delta n}=\gamma _{k}+\gamma _{p}$ initially.

Note that from figure 8(b), we can estimate the perturbation wavelength to be $\lambda _{q}=2(X_{+}-X_{-})\approx 23.0$ (at $t\approx 20$ , when the distance between the bump and the hole is still constant), which yields a wavenumber $q\approx 0.27$ . The most unstable wavenumber can be calculated using the dispersion relation (see Appendix C and Gürcan et al. (Reference Gürcan, Anderson, Moradi, Biancalani and Morel2022) for the analytical expression and discussions) with $C=0.05$ and $\kappa _{\ell }=5.0$ , and yields $k_{y0}\approx 0.39$ . We can then compute the perturbation growth rate $\gamma _{k}+\gamma _{p}\approx 0.73$ , which corresponds to the dashed black line in figure 8(b), and which shows a very good agreement between this value and the actual growth of $\delta n_{r}$ in the simulation.

The mechanism that determines the wavenumber $\lambda =2\pi /q$ of the perturbation is yet to be found, but it might be similar to the one that determines the typical size of the zonal flows, which also remains unknown in the case of the HasegawaWakatani system. Notice also that the pair formation is only observed if the sharp gradient region is sufficiently extended compared with $\lambda =2\pi /q$ . If it is too narrow, we do not see the formation of these large-scale corrugations, but rather smaller, less coherent structures.

4.3. Relaxation and spreading

4.3.1. Observations of profile relaxation and turbulent spreading in the DNS

To understand how the system continues to evolve, we consider the spreading of the turbulent region together with the relaxation of the radial density profile over longer time scales. In figure 9(a), we show the density profile $n_{r}$ at different time steps, starting from $t=30$ (dark blue), when the initial pair consisting of a bump and a hole collapses (the initial density profile is shown in black dashed lines), until $t=1000$ (brown) when turbulence reaches the right buffer and zonal flows start to accumulate and dominate the system. A time animation of both density and zonal velocity radial profiles is available on the repository page (Guillon Reference Guillon2025a , Movie 2). It can be seen that the initial sharp gradient gradually relaxes in time, as it extends to the right into the initially flat part of the profile. Spreading to the right slows down and stops when it reaches the right buffer, at which point the system is completely covered by turbulence, as can be seen in figures 6(d) and 6(h). Notice that the profile completely looses its original shape and is very close to a straight line as a result of the turbulent particle flux, flattening all the steep, large amplitude initial perturbations.

Figure 9. (a) Radial density profile $n_{r}$ at different time steps (the dashed line correspond to the initial profile). (b) Radial turbulent kinetic energy profile $\overline {\mathcal{K}}$ at the same time steps, in $y$ semilog plot. Circles correspond to the right-most position at which the radial kinetic energy $\overline {\mathcal{K}}$ is equal to $1\,\%$ of its maximum at a given time step (4.9), which we use as a proxy for the turbulent front position $X_{f}(t)$ .

We can also study the radial profile of the turbulent intensity and its evolution in time. To do so, we define the radial turbulent kinetic energy as

(4.7) \begin{equation} \overline {\mathcal{K}}(x)\equiv \langle \widetilde {v}_{x}^{2}+\left (\widetilde {v}_{y}+\overline {v}_{y}\right ){}^{2}\rangle _{y}, \end{equation}

which is the poloidal average of the perturbed kinetic energy $e_{\mathcal{K}}(x,y)=\widetilde {v}_{x}^{2}+(\widetilde {v}_{y}+\overline {v}_{y}){}^{2}$ , where we include both zonal and non-zonal perturbations. The time evolution of the radial profile of kinetic energy is shown in figure 9(b), at the same time steps with the density profile in panel (a). The first time step $t=30$ (dark blue) shows that the turbulent energy is peaked around $x=x_{a}$ , where the profile is the steepest. In fact, we could obtain this shape by solving the equation

(4.8) \begin{equation} \partial _{t}\overline {\mathcal{K}}=2\gamma _{max}(\partial _{x}n_{r})\overline {\mathcal{K}}, \end{equation}

where $\gamma _{max}(\partial _{x}n_{r})$ is the maximum linear growth rate computed by taking $\kappa (x)=-\partial _{x}n_{r}$ at each point $x$ and is thus a function of the radial position. This is discussed in more detail in § 4.3.2, where we compare the DNS results with those of a 1-D reduced model of transport/turbulence spreading. After the initial growth, the kinetic energy peak saturates and spreads in the radial direction, together with the relaxing radial density profile, decreasing in amplitude as the local free energy source is lowered because the local profile gradient decreases. At $t=1000$ (brown), turbulence completely covers the radial domain, and we start to see some large-scale peaks at $x\approx 40$ and $x\approx 185$ , which corresponds to the formation of zonal flows. Notice that for some intermediary time steps (e.g. $t=100$ , in light-blue), we can observe traces of the numerical instability due to the mask function gradient in the vicinity of the right buffer, as discussed in § 3.5. As mentioned, this instability is 2–3 orders of magnitude lower than the turbulence level and becomes completely irrelevant once the turbulence reaches the right buffer.

To investigate how the density profile relaxation/turbulence spreading front moves, we need a proxy for the position of the front so that we can study its propagation. Ideally, the position of this front should correspond to the point at which the density profile is turbulent on the left and still at rest on the right. To this end, we use as a proxy the last radial point where the turbulent kinetic energy exceeds a certain threshold, which we take as $1\,\%$ of the maximum energy at each time step:

(4.9) \begin{equation} X_{f}(t)\equiv \max _{x}\big\{ x\;:\;\overline {\mathcal{K}}(x,t)\geqslant 0.01\times \max _{x}\big [\overline {\mathcal{K}}(x,t)\big ]\big\} \,. \end{equation}

The position of $X_{f}$ at various time steps is shown in figure 9 (coloured circles). We see that the proxy provides a good estimate of the position of the front.

In figure 10(a), we show the time evolution of the turbulent front position $X_{f}(t)$ (dashed red line), on top of the spatiotemporal evolution of the radial profile of kinetic energy $\overline {\mathcal{K}}(x,t)$ . We find again that the localised growth of the turbulent energy around $x=x_{a}$ spreads quickly until $t=100$ and then slows down but continues spreading at a slower rate, while decreasing in amplitude. Note that we do not plot $X_{f}$ for $t\lt 30$ because the definition of the proxy (4.9) fails when the system is still in the linear instability phase, concentrated at $x_{a}$ . At $t\approx 600$ , we start to see the formation of zonal flows, evidenced by the yellow horizontal stripes in the spatiotemporal evolution of $\overline {\mathcal{K}}$ .

Figure 10. (a) Time evolution of the turbulent front position $X_{f}(t)$ (dashed red line), on top of the spatiotemporal evolution of the radial kinetic energy profile $\overline {\mathcal{K}}(x,t)$ . (b) Time evolution of the left mean density gradient, defined by (4.11). (c) Time evolution of the corresponding maximum growth rate, defined by (4.11). Both mean gradient and growth rate are fit with power laws of the time (red and green dashed lines). The vertical grey line denotes the time $t_{1}\approx 800$ at which the front reaches the right buffer.

Using the turbulent front position, we can track the time evolution of the mean density gradient to its left, $\kappa _{\ell }$ , which corresponds to the slope of the high gradient part of the profile, by using

(4.10) \begin{equation} \kappa _{\ell }(t)\equiv \frac {n_{r}(x_{b1},t)-n_{r}(X_{f}(t),t)}{X_{f}(t)-x_{b1}}, \end{equation}

which is defined using the difference between the left buffer position $x_{b1}$ and the right turbulent front position $X_{f}(t)$ . Note that maybe we should rather define a left turbulent front position and use it instead of $x_{b1}$ . However, since the left front reaches the left buffer very quickly, it is practically equivalent to using $x_{b1}$ . The time evolution of $\kappa _{\ell }(t)$ is shown in figure 10(b). After the initial collapse, the mean left gradient decreases according to a time power law $t^{-0.46}$ (red dashed line) while turbulence spreads to the right. When the turbulent front reaches the right buffer ( $t\geqslant 800$ ), $\kappa _{\ell }$ becomes the global density gradient of the system and continues to decrease according to a slower power law $t^{-0.13}$ (green dashed line), due to the difference of particle flux between both ends of the physical domain, as there is no particle source in these simulations to compensate for the flux difference.

We can also compute the maximum growth rate in the left part associated with $\kappa _{\ell }(t)$ ,

(4.11) \begin{equation} \gamma _{\ell }(t)\equiv \gamma _{max}\left (\kappa _{\ell }(t)\right ), \end{equation}

which corresponds to the energy injection rate in the turbulent region. The time evolution of $\gamma _{\ell }(t)$ , shown in figure 10(c), is very similar to that of $\kappa _{\ell }$ , and also follows two different time power laws before and after the front reaches the buffer, though the power exponents slightly differ from that of $\kappa _{\ell }(t)$ . From the figure, we see that the energy injection rate decreases with the relaxation of the profile. This can actually be used as an estimate of the slow turbulent spreading velocity, which is rather low for this system, as discussed in the next section.

4.3.2. One-dimensional reduced model for coupled profile relaxation/spreading

To understand the key mechanisms that play a role in the nature of profile relaxation/turbulence spreading that we observe in the DNS without explicit source terms, we use a 1-D reduced model which features an equation on the radial turbulent kinetic energy $\overline {\mathcal{K}}$ coupled with a transport equation for the density profile $n_{r}$ . The first equation is

(4.12) \begin{equation} \partial _{t}\overline {\mathcal{K}}=2\gamma _{max}(x,\partial _{x}n_{r})\overline {\mathcal{K}}-\beta _{NL}\overline {\mathcal{K}}^{2}+\chi _{\mathcal{\mathcal{K}}}\partial _{x}\left (\overline {\mathcal{K}}\,\partial _{x}\overline {\mathcal{K}}\right ), \end{equation}

where on the right-hand side, the first term corresponds to the local linear maximum growth rate (i.e. the growth rate of the most unstable mode $k_{y0}$ ), computed using the radial density gradient $\partial _{x}n_{r}$ at each point as the ‘local’ background density gradient. The second term corresponds to a nonlinear saturation due to eddy viscosity, determined by $\beta _{NL}$ , so that we would have a steady-state $\overline {\mathcal{K}}(x)=2\gamma _{max}(x)/\beta _{NL}$ without turbulent spreading. The latter is in turn represented by the last term on the right-hand side, which is a nonlinear diffusion term, with a diffusion coefficient $\chi _{\mathcal{K}}\overline {\mathcal{K}}$ that is proportional to the turbulent kinetic energy itself. The second equation, for the radial density profile, can be written as

(4.13) \begin{equation} \partial _{t}n_{r}=D_{n}\partial _{x}\left (\overline {\mathcal{K}}\,\partial _{x}n_{r}\right ), \end{equation}

where the turbulent flux is also assumed to have the same nonlinear diffusivity as the turbulent kinetic energy, i.e. $\varGamma _{n}=-D_{n}\overline {\mathcal{K}}\,\partial _{x}n_{r}$ . The coefficients $\beta _{NL},\chi _{\mathcal{K}}$ and $D_{n}$ are the parameters of the model, which is very similar to previous reductions introduced to study profile relaxation and turbulence spreading together. Although here, (4.12) is on the radial turbulent kinetic energy $\overline {\mathcal{K}}$ , for some of these works, it is replaced by the evolution of the turbulent intensity $\sum _{k}|\phi _{k}|^{2}$ denoted by $I$ (Hahm et al. Reference Hahm, Diamond, Lin, Itoh and Itoh2004; Miki et al. Reference Miki, Diamond, Gürcan, Tynan, Estrada, Schmitz and Xu2012), $\varepsilon$ (Gürcan et al. Reference Gürcan, Diamond, Hahm and Lin2005) or $E$ (Garbet et al. Reference Garbet, Sarazin, Imbeaux, Ghendrih, Bourdelle, Gürcan and Diamond2007). Naulin et al. (Reference Naulin, Nielsen and Rasmussen2005) use an equation for a general definition of the turbulent energy, written as $\epsilon$ .

To compare the 1-D reduced model with DNS, we incorporate the boundary conditions of the penalisation method in (4.12) and (4.13) (see Appendix D). Note that some refined model (Miki et al. Reference Miki, Diamond, Gürcan, Tynan, Estrada, Schmitz and Xu2012) can include an additional saturation term due to zonal flow shearing, as well as an equation on the zonal energy. However, as will be discussed in § 4.4, the fraction of zonal energy remains rather low during the spreading phase, and the two-equations system (4.12) and (4.13) seemed to be sufficient to reproduce the turbulent front spreading, in our case. Additional refinements include a mean $E\times B$ poloidal flow shearing effect, along with neoclassical diffusion and flow terms, which are out of the scope of the present study.

In figure 11, we show the comparison of the turbulent front position $X_{f}(t)$ (panel a) and velocity $v_{X_{f}}(t)=d_{t}X_{f}$ (panel b) measured using both DNS and the 1-D reduced model. The numerical simulation of the 1-D reduced model is performed using $\beta _{NL}=0.014,\chi _{\mathcal{K}}=0.1$ and $D_{n}=0.1$ , which yields satisfactory agreement with the DNS, even though a formal optimisation study, which is left for future work, could be used to improve this agreement. The turbulent front position $X_{f}(t)$ is measured using the proxy (4.9), from which we subtracted its initial value at $t_{0}=30$ (before this time, the proxy measurement fails because we are in the linear phase). The velocity $v_{X_{f}}(t)=d_{t}X_{f}$ is measured in both cases by differentiating $X_{f}$ after applying a Savitzky–Golay filter (Savitzky & Golay Reference Savitzky and Golay1964) with a window of 1000 time points and a third-degree polynomial, to filter out the short fluctuations of the front position (which arise from the front position measurement using the proxy and from fast turbulent fluctuations), which correspond to abrupt and noisy spikes in the velocity signal. That way, we can focus on the mean velocity of the front which evolves on a slower time scale than that of turbulence.

Figure 11. Comparison of the turbulent spreading between the DNS (blue) and the 1-D reduced model (red). (a) Log–log plot of the turbulent front $X_{f}(t)$ computed using the proxy (4.9), from which the initial front position $X_{f}(t_{0})$ has been subtracted. The green dashed line corresponds to the 1-D simulation without spreading (i.e. $\chi _{\mathcal{K}}=0$ ). The black dashed line corresponds to the slope of the diffusive spreading $X(t)\propto t^{1/2}.$ (b) Velocity of the turbulent front $v_{X_{f}}(t)=d_{t}X_{f}$ computed by differentiating $X_{f}(t)$ after applying a Savitzky–Golay filter. The simulations are compared with the theoretical estimation of the front velocity $\sqrt {D_{n}\gamma _{\ell }(t)}$ (dashed line) where $\gamma _{\ell }$ is computed using (4.11) and $D_{n}=0.1$ is the diffusion coefficient of the 1-D reduced density transport (4.13).

The comparison of the turbulent front behaviour between the DNS and the 1-D reduced model yields remarkably good agreement, especially for the long time evolution of the front position $X_{f}(t)$ , where it seems to follow some kind of power law with $X_{f}(t)\propto t^{a}$ , where $a\approx 0.4$ . This suggests that turbulence spreading is slightly subdiffusive in this particular example, since $X_{f}(t)$ evolves slower than $t^{1/2}$ , as shown by the black dashed line in panel (a). Moreover, in different simulations of the 1-D reduced model, we oberve that the exponent $a$ of the power law scaling increases as a function of $\chi _{\mathcal{K}}$ and $D_{n}$ (taken equal).

To underline the importance of the turbulent spreading term $\chi _{\mathcal{\mathcal{K}}}\partial _{x}(\overline {\mathcal{K}}\,\partial _{x}\overline {\mathcal{K}})$ , we performed a simulation of the 1-D model taking $\chi _{\mathcal{K}}=0$ , while keeping the same values for $\beta _{NL}$ and $D_{n}$ . The front propagation of this simulation without the spreading term corresponds to the green dashed line in figure 11(a). We see that in this case, the front does not propagate as far (two times less) as when turbulent spreading is included, and it really becomes diffusive in this case (i.e. evolves as ${t}^{1/2}$ ). To observe a similar front propagation, we need to multiply the diffusion coefficient $D_{n}$ approximately by 10. In particular, we loose the initial, brutal collapse of the profile ( $t=50{-}100$ in figure 10 a). Hence, even though turbulence spreading makes the front propagation slightly subdiffusive, its diffusion rate becomes much (almost 10 times) higher than profile relaxation on its own, suggesting that it plays a role in the front propagation in this system.

The front velocity closely matches between the DNS and the reduced model, although it fluctuates much more in the former due to the complete turbulence description (with eddies intermittently surging into the unperturbed region on the right), while it propagates more smoothly in the 1-D model where the spreading comes from the nonlinear diffusive term. We compare the numerical results to the theoretical estimate of the front velocity for a diffusive process $v_{front}=\sqrt {D_{n}\gamma _{\ell }(t)}$ (Gürcan et al. Reference Gürcan, Diamond, Hahm and Lin2005), where $\gamma _{\ell }(t)$ is the maximum growth rate in the turbulent domain (measured in the DNS), and $D_{n}$ is the density coefficient from the reduced model. Although this estimation fails at the early times, where the velocity decreases very rapidly, it roughly matches both models at long time, as evidenced by the black line in figure 11(b).

The animation of the energy and density profiles for both DNS and the 1-D model is available at the repository page (Guillon Reference Guillon2025a , Movie 3), and shows that the profiles can be different to some extent between both simulations, even though the front evolution is very similar. This could be improved by optimising the parameters of the 1-D reduced model using the DNS to completely validate the comparison, along with adding the effect of turbulence damping by zonal flows shear, which is left for future work.

4.4. Freezing of the system by zonal flows

Last, we can discuss the final state of the system, after $t=t_{1}$ , at which the turbulent front reaches the right buffer. The density profile continues to relax until it stops and develops large-scale corrugations. These corrugations can be seen as rising trends and sharp drops in the zonal density profile $\overline {n}$ (blue line), shown in figure 12(a), together with smaller scale fluctuations. At the same time, we see the emergence of large-scale zonal flows (orange) which become stationary.

Figure 12. (a) Zonal density profile $\overline {n}$ (blue) and zonal velocity profile $\overline {v}_{y}$ (orange) at the last time step of the simulation. (b) Control parameter $C/\kappa$ computed using the left density gradient $\kappa _{\ell }(t)$ (blue) and the global mean gradient $\kappa$ (dashed green) as a function of time. The fraction of zonal kinetic energy $\varXi _{\mathcal{K}}$ is also shown in red. The vertical line marks the time $t_{1}\approx 800$ at which the turbulent front reaches the right buffer.

This is due to the fact that, since the turbulent front has reached the right buffer, the density gradient $\kappa _{\ell }$ , which now corresponds to the mean global background $\kappa$ of the system, is close to the critical value $\kappa _{c}=0.5$ so that $C/\kappa _{c}=0.1$ , at which the fixed gradient system normally transitions to a zonal flow dominated state (Numata et al. Reference Numata, Ball and Dewar2007; Grander et al. Reference Grander, Locker and Kendl2024; Guillon & Gürcan, Reference Guillon and Gürcan2025). This is illustrated in figure 12(b) where the ratios $C/\kappa _{\ell }(t)$ (blue) and $C/\kappa (t)$ (dashed green) are shown. Because the zonal flows suppress the turbulent particle flux, the radial density profile stops to evolve (actually, it still evolves a bit since the particle flux is not exactly zero, but extremely slowly). Indeed, $C/\kappa$ becomes almost constant at the end of the simulation. Hence, we end up with a state that is ‘frozen’ by the zonal flows. Note that, somewhat counter-intuitively, because of the dependence of the adiabaticity parameter to temperature through parallel resistivity, a higher physical temperature makes the system more easily frozen by zonal flows.

To quantify the level of zonal flows, we can measure the fraction of zonal kinetic energy $\varXi _{\mathcal{K}}\equiv \mathcal{K}_{ZF}/\mathcal{K}$ , where $\mathcal{K}_{ZF}$ is the kinetic energy of zonal modes and $\mathcal{K}$ is the total kinetic energy of the system. The fraction, shown in figure 12(b), starts from low values at the beginning of the simulation and reaches almost $70\,\%$ at the end, even though it still continues to increase.

In some simulations with a sufficiently large 2-D box, we observe that zonal flow formation can be localised near the edges of the system, while the centre is still turbulent. Then, over time, zonal flows progressively cover the domain and the turbulence becomes completely suppressed. We leave the characterisation of this ‘freezing front’ and its comparison with that of turbulence, as well as the attempt to reproduce it using the 1-D reduced model featuring an equation on the zonal velocity/shear, to future studies. However, note that the phenomenon is dependent on the value of $C$ and requires tailoring the initial density profile to be observed.

5. Particle source, sandpiles and stiffness

In this last section, we explore the behaviour of the system in the presence of a particle source. In the radial density transport (2.15c ), we add the following source term:

(5.1) \begin{equation} S_{n}(\alpha )=\frac {\alpha }{\sigma _{n}\sqrt {2\pi }}\exp \big[-(x-x_{0})^{2}/\big(2\sigma _{n}^{2}\big)\big], \end{equation}

where $\alpha$ is the source amplitude (in this study, $\alpha$ is constant in time but it can be ramped), and $x_{0}$ and $\sigma _{n}$ are respectively its position and width. The source term has a Gaussian shape, and is localised close to the left physical boundary so that it mainly acts on the left part of the density profile. With this source term, the particle budget inside the physical domain (3.16) becomes

(5.2) \begin{equation} d_{t}N_{\varphi }=\varGamma _{n}(x_{b1},t)-\varGamma _{n}(x_{b2},t)+P_{b2}(t)+\alpha , \end{equation}

where we recall that $\varGamma _{n}(x_{b1},t)-\varGamma _{n}(x_{b2},t)$ is the difference between the particle fluxes at the two physical boundaries, and $P_{b2}(t)=\int _{x_{b1}}^{x_{b2}}S_{b2}(x,t)\,{\rm d}x$ is the integral over the physical domain of the sink $S_{b2}$ (3.15) localised at $x_{b2}$ (because of the fixed boundary condition at $x_{b2}$ ). Note that here,

(5.3) \begin{equation} P_{b2}(t)\approx \sigma _{b}\sqrt {\frac {\pi }{2}}\partial _{x}\varGamma _{n}(x_{b2},t), \end{equation}

assuming the artifical source is sufficiently narrow so that

(5.4) \begin{align} \int _{x_{1}}^{x_{2}}\exp \left [-(x-x_{b2})^{2}/(2\sigma _{S_{b}}^{2})\right ]\text{d}x\approx \sigma _{b}\sqrt {\frac {\pi }{2}}, \end{align}

and that $\partial _{t}n_{r}(x_{b2},t)\approx -\partial _{x}\varGamma _{n}(x_{b2},t)$ since the driving source $S_{n}(\alpha )$ is localised close to the left edge.

We start the numerical simulation without the source term and with a Gaussian initial profile (corresponding to $\kappa (t=0)\approx 1.2$ ) with $C=0.05$ , with a padded resolution of $1024\times 1024$ . Details about the numerical set-up and the source position and width are given in Appendix E. After reaching the first saturation peak of the turbulent energy, at time $t_{S}\approx 207$ , we stop the simulation and measure the net outward particle flux, which gives $\Delta \varGamma \equiv \varGamma _{n}(x_{b2})-\varGamma _{n}(x_{b1})\approx 1.2$ that we use as a reference value for setting the source amplitude. Using the last time step of this saturated seed simulation, we start four different simulations which now include the source term (5.1), with the following four values of the source amplitude: $\alpha =0$ , $\alpha =\Delta \varGamma =1.2$ , $\alpha =2\Delta \varGamma =2.4$ and $\alpha =10\Delta \varGamma =12$ . An animation showing these four simulations is available on the repository page (Guillon Reference Guillon2025a , Movie 4).

The time evolution of different observables are shown in figure 13 for the four source amplitudes ( $\alpha =0$ in blue, $\alpha =1.2$ in green, $\alpha =2.4$ in red and $\alpha =12$ in orange). In panel (a), the outward particle flux $\varGamma _{n}(x_{b2},t)-\varGamma _{n}(x_{b1},t)-P_{b2}(t)$ (accounting for the sink at $x_{b2}$ ) is shown, applying a Savitzky–Golay filter with a window of 200 time points and a third-degree polynomial. The saturated value of the outward flux increases with the source amplitude and it relaxes towards zero in the absence of source (blue line). Notice that the outward flux seems to fluctuate around an equilibrium value close to the source amplitude $\alpha$ , as evidenced by the coloured dashed lines and arrows, except for the decaying case (i.e. $\alpha =0$ in blue), for which the flux continues progressively to decrease. In this case, the profile will collapse until there are either no particles or the flux is completely suppressed by zonal flows. Note also that the actual non-filtered flux (not shown here) fluctuates much more and that it may become momentarily negative, corresponding to narrow negative spikes in its time evolution. This may be due to coherent structures getting reflected off of the right buffer, due to the no-slip boundary condition acting as a wall for coherent vortices.

Figure 13. Comparison of observables between the four source amplitudes: $\alpha =0$ (blue), $\alpha =1.2$ (green), $\alpha =2.4$ (red) and $\alpha =12$ (orange). (a) Outward particle flux $\varGamma _{n}(x_{b2},t)-\varGamma _{n}(x_{b1},t)-P_{b2}(t)$ in y symlog plot (filtered). Source amplitudes are indicated by dashed lines and arrows on the right. (b) Zonal kinetic energy fraction $\varXi _{\mathcal{K}}$ . (c) Control parameter $C/\kappa (t)$ . The vertical line at $t=t_{S}$ corresponds to the time at which the sources are activated.

Looking closely at the time evolution of both the fraction of zonal kinetic energy $\varXi _{\mathcal{K}}(t)$ and the control parameter $C/\kappa (t)$ , which are shown respectively in figures 13(b) and 13(c), one finds that they display a very interesting phenomenon. When there is no source (blue), the profile relaxes until $C/\kappa \sim 0.1$ and the system becomes dominated by zonal flows, with $\varXi _{\mathcal{K}}\sim 1$ , as discussed previously in § 4.4. At the extreme opposite, for $\alpha =12$ (orange), $C/\kappa$ actually decreases quite rapidly, since the density profile rises due to the strong localised source, before it stabilises. Here, the critical value for the transition to zonal flows is never reached and the zonal fraction remains very low.

For the two intermediate source levels, however, the final mean density gradients are very close even though their turbulent states are very different. For $\alpha =1.2$ (green), at first, the profile oscillates between relaxing and rising, as evidenced by the upward and downward evolution of $C/\kappa$ , due to the source creating a stronger local gradient, which generates more turbulence. Consequently, the profile collapses due to the higher turbulent flux and, once it collapses, the source makes it rise again. This cyclic behaviour is reminiscent of the self-organised criticality (SOC) in sandpile models (Bak et al. Reference Bak, Tang and Wiesenfeld1987; Hwa & Kardar Reference Hwa and Kardar1992; Carreras et al. Reference Carreras, Newman, Lynch and Diamond1996), where reaching a critical gradient makes the sandpile collapse until it is again stable and starts to grow, oscillating around a marginal equilibrium. What is interesting here, with the Hasegawa–Wakatani system, is that the marginal stability in question is not a linear stability, but a phase transition from a zonal flow dominated to a turbulent state. Indeed, the critical gradient $\kappa _{c}$ such that $C/\kappa _{c}=0.1$ , at which the system transitions to zonal flows and the particle flux is suppressed, defines a marginal state towards which the system converges eventually (as discussed in § 4.4), and around which the presence of a (weak) particle source makes the profile oscillate. Indeed, we see that the zonal fraction in figure 13(b) for $\alpha =1.2$ goes above $50\,\%$ and then collapses when the profile rises again. However, at $t=2000$ , the system is eventually able to definitely transition to the zonal flow dominated state. Surprisingly, we see that the mean gradient rises again and reaches that of the system with $\alpha =2.4$ . This can be explained by the hysteresis in the transition to zonal flows (Guillon & Gürcan, Reference Guillon and Gürcan2025), in which zonal flows survive in the presence of a larger mean gradient $\kappa \gt \kappa _{c}$ once they have formed. Since zonal flows have reduced the particle flux, the source can now efficiently feed the profile, which explains why $C/\kappa \approx 0.05$ at the end of the simulation even though $\varXi _{\mathcal{K}}\approx 80\,\%$ . The hysteresis allows the definition of a new marginal state for the system where the mean gradient is higher. This is reminiscent of the effect of mean shear flows in the L–H transition, which is explained by Hinton & Staebler (Reference Hinton and Staebler1993b ) with a simple 1-D model featuring hysteresis. While self-organised criticality is studied for systems that exhibit a second-order phase transition, it is more relevant here to speak about the so-called self-organised bistability (Gil & Sornette Reference Gil and Sornette1996; di Santo et al. Reference di Santo, Burioni, Vezzani and Muñoz2016) which takes place at the onset of a first-order phase transition with a hysteresis loop, and which can exhibit rare strong events. The detailed study of this connexion is left for future work.

In contrast, for $\alpha =2.4$ (red), the source is too strong and does not enable the system to form zonal flows. Due to the strong particle flux, the source cannot efficiently increase the density gradient, which converges to that of $\alpha =1.2$ . Hence, both simulations end up roughly with the same mean gradient, but completely different zonal fractions and completely different values of the fluxes. This corresponds to profile stiffness observed in turbulent transport (Wolf et al. Reference Wolf2003; Garbet et al. Reference Garbet, Mantica, Ryter, Cordey, Imbeaux, Sozzi, Manini, Asp, Parail and Wolf2004; Mantica et al. Reference Mantica2009), where small changes in the mean profile gradient result in dramatic changes of the turbulent flux. This is further illustrated in figure 14, where we show the time evolution of the non-zonal turbulent intensity $\widetilde {I}\equiv \sum _{k_{x},k_{y}\neq 0}|\phi _{k}|^{2}$ for $\alpha =1.2$ (green) and $\alpha =2.4$ (red). Although there is more than a factor of two between the turbulence level in both simulations, the value of the control parameter $C/\kappa$ (averaged on the last quarter of the simulation) is almost the same. We argue that such an observation is only possible in the parameter regime where the hysteresis appears in the fixed gradient formulation.

Figure 14. Time evolution of the non-zonal turbulent intensity $\widetilde {I}\equiv \sum _{k_{x},k_{y} \neq 0}|\phi _{k}|^{2}$ for $\alpha =1.2$ (green) and $\alpha =2.4$ (red). Mean values of $\widetilde {I}$ (dashed lines) and of the control parameter $C/\kappa$ are taken over the last quarter of the simulations.

To further illustrate the differences between the dynamics of the system with these four different source amplitudes $\alpha$ , we show the Hovmöller diagrams of the zonal velocity $\overline {v}_{y}$ (top row) and zonal density (middle row) $\overline {n}$ profiles, along with the corresponding fraction of kinetic energy in zonal flows $\varXi _{\mathcal{K}}$ in the bottom row, in figure 15. As expected, without any source ( $\alpha =0$ , the leftmost column), which corresponds to the highest zonal energy fraction, we see the formation of steady zonal flows, along with large-scale density corrugations. Conversely, for the strongest source amplitude ( $\alpha =12$ , the rightmost column), both velocity and density profiles remain strongly fluctuating, and we see no evidence of any long-lived zonal structure. Note that it is possible to see the effect of the particle source (shown as a black line), localised at $x\approx 20$ , which corresponds to an intense steady line (in time) on the spatiotemporal evolution of the zonal density close to that position. For the intermediate source amplitude ( $\alpha =2.4$ , the third column from the left), the velocity profile is less chaotic (especially at the end of the simulation) compared with the previous case, which is consistent with the zonal fraction being slightly below $50\,\%$ . However, no clear pattern can be observed, apart from the largest zonal mode available, and the zonal density profile is still very chaotic.

Figure 15. Hovmöller diagrams of the zonal velocity $\overline {v}_{y}$ (top row) and zonal density $\overline {n}$ (middle row) profiles, for the four source amplitudes $\alpha$ (the source is shown by the black line on the density maps in arbitrary units). The bottom row shows the time evolution of the zonal kinetic energy fraction $\varXi _{\mathcal{K}}$ .

Finally, for the low source amplitude ( $\alpha =1.2$ , the second column from the left), we can see the emergence of the zonal pattern when the zonal fraction is higher than $50\,\%$ , i.e. from $t\approx 1000$ to $t\approx 2000$ and after $t\approx 2500$ . Between $t\approx 1800$ and $t\approx 2500$ , the fraction decreases below $50\,\%$ and then increases again, which corresponds in figure 13 to the collapse of the density profile, before it starts again to steepen with strong zonal flows. Looking at the zonal velocity profile during this time interval, it is not clear if the zonal structure actually collapses due to the backtransition from zonal flows to turbulence, or if we only see a merging of two flows (which can be accompanied by a short decrease of the fraction that we observed in fixed-gradient simulations). It seems however that this merging is chaotic, and we could really have a breakup of the zonal structure. Furthermore, when zonal flows reform after collapsing, they usually have a larger radial width (see also Grander et al. Reference Grander, Locker and Kendl2024), which is also the case here.

6. Conclusion

First results from the P-FLARE code, which performs numerical simulations of flux-driven, reduced fluid models using the penalisation method, were presented. The formulation relies on the premise that, by designing buffer zones at the two extremes of the radial domain, where the fluctuations are strongly damped, it is possible to modify the radial perturbations so that they become periodic, allowing for the use of fast Fourier transforms.

To demonstrate the capabilities of the code, it was applied to the flux-driven Hasegawa–Wakatani model, where the relaxation of a density profile that is locally steep in the left part of the radial domain is considered. It was observed that, initially, as the drift-wave instability saturates, it formed density bumps moving radially outwards, along with holes moving inwards, before becoming unstable themselves. Then, the relaxation of the profile on longer times, along with the spreading of the turbulent region, were analysed. Using a 1-D model of two coupled equations on the radial kinetic energy and the density profile, we obtained a qualitative and quantitative agreement with the DNS for the turbulent front propagation, and found that the spreading was slightly subdiffusive in this specific example. In the present study, the parameters for the 2-D model were tuned by hand to match the DNS, which can be extended in the future using an automated optimisation of the parameters based on the DNS data (Kobayashi, Gürcan & Diamond Reference Kobayashi, Gürcan and Diamond2015). Currently, the code has zonal flows, but no mean flow evolution. We also intend to implement mean flow profile evolution, and compare with 1-D models that have zonal and mean flows and can describe the L–H transition (Miki et al. Reference Miki, Diamond, Gürcan, Tynan, Estrada, Schmitz and Xu2012; Chôné et al. Reference Chôné, Beyer, Sarazin, Fuhr, Bourdelle and Benkadda2015).

In this study, we also observed that the critical mean gradient $\kappa _{c}$ such that $C/\kappa _{c}\approx 0.1$ defines some kind of marginally stable state, towards which the system converges if we have initially $C/\kappa \lt 0.1$ . We have argued that this was a consequence of the transition between a 2-D turbulent state to a zonal flow dominated state that is observed in the fixed gradient system with varying $C/\kappa$ . When zonal flows form, they suppress the turbulent transport and thus the profile relaxation slows down, to a halt. This is possible since neither large- nor small-scale dissipations have been applied on zonal flows in this model.

The impact of the transition was further explored by adding a localised particle source. It was observed that, close to the transition point, the system exhibits behaviour similar to sandpile models studied in self-organised criticality. However, in our case, the stable state was dominated by zonal flows, and became turbulent only when the particle source pushed the mean gradient beyond the transition point. If the source amplitude was sufficiently low, the profile would oscillate close to the critical slope $\kappa _{c}$ . Notice that, since the transition in the fixed gradient version of the Hasegawa–Wakatani system shows characteristic features of a first-order phase transition, such as the existence of a hysteresis loop, we might actually have self-organised bistability, which needs to be further characterised.

One consequence of this hysteresis is the observation of profile stiffness. For very similar mean density gradients, we observed that both the turbulent particle flux and the turbulent intensity were different by a factor of two, corresponding to very different zonal flow levels. It seems that, with a small amplitude source, the system is able to transition to zonal flows, which suppress the transport. The particle source can then efficiently steepen the profile without zonal flows immediatly collapsing, due to the bistability implied by the hysteresis loop. This mechanism needs to be studied in more detail and extended to other fluid systems which may exhibit a similar transition, e.g. ITG turbulence close to the Dimits shift (Dimits et al. Reference Dimits, Cohen, Mattor, Nevins, Shumaker, Parker and Kim2000).

While this first study using P-FLARE was confined to the flux-driven Hasegawa–Wakatani system, the code can be easily adapted to other reduced fluid models (Horton et al. Reference Horton, Choi and Tang1981, Reference Horton, Hong and Tang1988; Sarazin & Ghendrih Reference Sarazin and Ghendrih1998; Ivanov et al. Reference Ivanov, Schekochihin, Dorland, Field and Parra2020; Panico et al. Reference Panico, Sarazin, Hennequin, Gürcan, Bigué, Dif-Pradalier, Garbet, Ghendrih, Varennes and Vermare2025) or using the gyro-moment approach (Frei et al. Reference Frei, Hoffmann, Ricci, Brunner and Tecchioll2023; Hoffmann, Frei & Ricci Reference Hoffmann, Frei and Ricci2023). Future perspectives include implementing self-consistent evolution of a mean $E\times B$ velocity profile and its damping towards a neoclassical profile, which could be used to study other phenomena such as the L–H transition. Benchmarking flux-driven reduced models, and performing detailed comparisons between flux-driven and fixed gradient simulations especially near the threshold of zonal flow formation, are also considered.

Acknowledgments

This work was granted access to the Jean Zay super-computer of IDRIS under the allocation AD010514291R2 by GENCI.

Editor Paolo Ricci thanks the referees for their advice in evaluating this article.

Funding

This work has been carried out within the framework of the EUROfusion Consortium, funded by the European Union via the Euratom Research and Training Programme (Grant Agreement No 101052200 – EUROfusion) and within the framework of the French Research Federation for Fusion Studies.

Declaration of interests

The authors report no conflict of interest.

Data availability statement

The data that support the findings of this study are available upon reasonable request.

Appendix A. Benchmark of the relaxation/spreading simulation with BOUT++

To compare both runtimes and physical results with a more conventionnal finite difference scheme, we also performed a benchmark of the relaxation simulation with the BOUT++ code (Dudson et al. Reference Dudson, Umansky, Xu, Snyder and Wilson2009). To make the comparison possible, the domain simulated in BOUT++ is set to correspond to the physical domain available in P-FLARE, i.e. keeping the full poloidal domain and removing the buffer zone. Hence, to compare with a $1024\times 1024$ padded P-FLARE simulation having the buffer settings given in table 2, we use a resolution $N_{x}\times N_{z}=506\times 682$ with BOUT++ (the $z$ axis corresponds to $-y$ in P-FLARE). Hence, the $x$ axis in BOUT++ should be understood as being shifted by the left buffer position $x_{b1}$ from P-FLARE. All parameters for both P-FLARE and BOUT++ simulations are given in table 2. We fix $\kappa =0$ and use, instead, the initial density profile in BOUT++. Note that we use the same (modified) Hasegawa–Wakatani equations as P-FLARE, i.e. with classical (and not hyper) viscosity, acting only on non-zonal fluctuations, in BOUT++.

Table 2. Physical parameters for BOUT++ and P-FLARE simulations, and penalisation parameters for P-FLARE.

As for initial conditions, the density profile is initialised with the hyperbolic tangent formula (4.1), with $\kappa _{\ell }=10$ , $x_{a}=1.8x_{b1}$ and $\alpha =2$ so that the steep region is shorter to observe enough spreading to the right (in BOUT++, the profile is shifted by $x_{b1}$ to the left). All non-zonal density fluctuations are set to 0. The initial vorticity fluctuations are set using the mixmode function from BOUT++ with an amplitude of $10^{-3}$ . In practice, we take the initial conditions from BOUT++ and use them in P-FLARE. The vorticity fluctuations are then extrapolated to their mean value inside the buffer zone and the density profile is extended in that region (using the analytical formula (4.1)). Both simulation are run until $t=200$ .

The boundary conditions in BOUT++ are Neumann at the inner radial axis, Dirichlet at the outer radial axis and periodic along the poloidal axis. Note that, as mentioned in § 3.4, we introduced in P-FLARE an artificial sink localised at $x_{b2}$ , to have the equivalent of a Dirichlet boundary condition at the outer radial axis. Since the source has a finite width, it allows for the particle flux to leave the radial domain. In contrast, in BOUT++, the Dirichlet boundary condition is applied only at the very edge. Consequently, we observed in some BOUT++ simulations that once turbulence has reached the right edge, the particles pile up at the right end of the domain and the density profile jumps from 0 at the very edge (where the Dirichlet BC is applied) to a higher value inside the radial domain. Hence, a sink with finite width similar to that used in P-FLARE should probably also be implemented in BOUT++, to allow particles to exit the domain, but this is beyond the scope of this work.

As a first result, we show in figure 16 the time evolution of the zonal kinetic energy fraction (panel a) and the mean radial particle flux (panel b) for both codes. The time evolutions of the fluxes are almost identical for both codes. The zonal fractions differ between $t=50$ and $t=100$ , with zonal flows forming earlier in the P-FLARE simulation, but otherwise they display reasonably close values. The difference in the transient evolution of zonal fractions can be explained by the fact that finite difference introduces numerical dissipation due to the error made when computing derivatives, and this dissipation is applied to both zonal and non-zonal fluctuations, which might affect the formation of zonal flows. In contrast, no such numerical dissipation is present when using FFTs, which compute derivatives almost exactly. Nevertheless, both codes predict the same final level of zonal flows and particle flux, which is eventually the goal of such codes.

Figure 16. (a) Zonal kinetic energy fraction $\varXi _{\mathcal{K}}$ and (b) mean radial particle flux $\varGamma _{n}$ versus time obtained with BOUT++ (plain blue) and P-FLARE (dashed red) simulations.

In figure 17, we compare the spatiotemporal evolutions of the zonal velocity profile obtained with BOUT++ (panel a) and P-FLARE (panel b). The profiles are very similar, spread towards the outer radial axis at similar rates, and display the formation of similar zonal structures. We can then look at the turbulent front propagation, which we compute using the same proxy as in (4.9). In panel (c), we show the time evolution of the fronts $X_{f}$ (from which the initial front position $X_{f}(t_{0})$ has been subtracted) obtained using BOUT++ (plain blue) and P-FLARE (dashed red). Both fronts exhibit very similar propagation, even though the front from BOUT++ seems to spread slightly faster. This can again be explained by the additional numerical dissipation from finite difference, which may increase the diffusion rate and introduce numerical damping on zonal flows.

Figure 17. Hovmöller diagrams of the zonal velocity $\overline {v}_{y}$ profiles obtained using (a) BOUT++ and (b) P-FLARE, with the turbulent front proxy $X_{f}(t)$ in dashed black. The time evolution of the turbulent front position is shown in panel (c) obtained with BOUT++ (plain blue) and P-FLARE (dashed red), in log–log. Note that for the P-FLARE results, we shifted the $x$ axis and the front position $X_{f}$ by the left buffer position $x_{b1}$ , to line up with BOUT++.

Therefore, BOUT++ and P-FLARE exhibit very similar results for the case of the relaxation study, which underlines the consistency of the boundary condition implementation in P-FLARE, compared with using Neumann at the left boundary and Dirichlet at the right in a finite difference scheme.

Comparing runtimes is not straightforward, since BOUT++ was parallelised on two CPUs, while P-FLARE was run on a V100 GPU. In this case, it took 30 min for BOUT++ versus 40 min for P-FLARE. However, this actually depends on the performance of the solver and the numerical tolerances used in the adaptive steep computation. Moreover, we expect to gain computational speed using FFTs when going to higher resolution (i.e. $4096^{2}$ ) compared with finite difference, and with using a solver which accounts for stiffness (which is the case for diffusion in BOUT++). Furthermore, what we advocate with this new method is also the accuracy provided by FFTs: we can afford to resolve a wide range of scales without the effect of numerical dissipation. Finally, the method allows for more flexibility, especially regarding developing reduced models based on Fourier space properties of turbulence (e.g. large eddy simulation, triad truncations, etc.) which is eventually one of our goals with developing such a code.

Appendix B. Time evolution of energy, flux and density for the relaxation/spreading simulation

In figure 18, we show the time evolution of several quantities for the $4096\times 4096$ padded resolution simulation used for the study of profile relaxation and turbulence spreading (see § 4). In panel (a), we show the total kinetic energy $\mathcal{K}$ (black), along with its zonal component $\mathcal{K}_{ZF}$ (dash-dotted red) and its non-zonal component $\mathcal{K}_{turb}$ , averaged over the physical domain $[x_{b1},x_{b2}]\times L_{y}$ . In panel (b), we show the time evolution of the density at the left boundary $n_{r}(x_{b1},t)$ (dashed blue), along with the radial particle flux $\langle \varGamma _{n}\rangle$ (orange) averaged over the physical domain.

Figure 18. Time evolution of some quantities for the relaxation simulation (see § 4). (a) Time evolution of the total (black), zonal (red dash-dotted) and non-zonal (green dashed) kinetic energy averaged over the physical domain. (b) Time evolution of the density at the left boundary $n_{r}(x_{b1},t)$ (dashed blue) and of the radial particle flux $\langle \varGamma _{n}\rangle$ (orange) averaged over the physical domain.

Appendix C. Eigenvalues of the Hasegawa–Wakatani system

Linearisation and Fourier transform of the Hasegawa–Wakatani (2.1a ) and (2.1b ) for non-zonal modes $(k_{y}\neq 0)$ yields (Gürcan et al. Reference Gürcan, Anderson, Moradi, Biancalani and Morel2022)

(C1a) \begin{align} \partial _{t}\phi _{k}+(A_{k}-B_{k})\phi _{k} & =\frac {C}{k^{2}}n_{k},\\[-10pt]\nonumber \end{align}
(C1b) \begin{align} \partial _{t}n_{k}+(A_{k}+B_{k})n_{k} & =(C-i\kappa k_{y})\phi _{k}\text{ ,} \end{align}

where

(C2a) \begin{align} A_{k}= & \frac {1}{2}\left [(Dk^{2}+C)+\left (\frac {C}{k^{2}}+\nu k^{2}\right )\right ],\\[-10pt]\nonumber \end{align}
(C2b) \begin{align} B_{k}= & \frac {1}{2}\left [(Dk^{2}+C)-\left (\frac {C}{k^{2}}+\nu k^{2}\right )\right ]\,. \end{align}

The two eigenvalues $\omega _{k}^{\pm }(C,\kappa ,\nu ,D)=\omega _{k,r}^{\pm }+i\gamma _{k}^{\pm }$ can then be written as

(C3) \begin{equation} \omega _{k}^{\pm }=\varOmega _{k}^{\pm }-iA_{k}\, \end{equation}

with

(C4) \begin{equation} \varOmega _{k}^{\pm }=\pm \left (\sigma _{k}\sqrt {\frac {H_{k}-G_{k}}{2}}+i\sqrt {\frac {H_{k}+G_{k}}{2}}\right ), \end{equation}

where $\sigma _{k}=\text{sign}(\kappa k_{y})$ ,

(C5) \begin{equation} H_{k}=\sqrt {G_{k}^{2}+C^{2}\kappa {{}^2}k_{y}^{2}/k^{4}}\, \end{equation}

and

(C6) \begin{equation} G_{k}=\left (B_{k}^{2}+\frac {C^{2}}{k^{2}}\right )\,. \end{equation}

Appendix D. Complete 1-D reduced model for turbulent spreading

We detail the complete 1-D reduced model used for reproducing the profile relaxation and the turbulent spreading in § 4.3.2. The complete equations are

(D1a) \begin{align} \partial _{t}\overline {\mathcal{K}} & =2\gamma _{max}(x,\partial _{x}n_{r})\overline {\mathcal{K}}-\beta _{NL}\overline {\mathcal{K}}^{2}+\chi _{\mathcal{\mathcal{K}}}\partial _{x}\left (\overline {\mathcal{K}}\,\partial _{x}\overline {\mathcal{K}}\right )-\mu H(x)\overline {\mathcal{K}},\\[-10pt]\nonumber \end{align}
(D1b) \begin{align} \partial _{t}n_{r} & =D_{n}\partial _{x}\left (\overline {\mathcal{K}}\,\partial _{x}n_{r}\right )+S_{b2}(x,t)-\mu H(x)[n_{r}(x,t)-n_{buff}(x,t)], \end{align}

where we introduced the same penalisation terms $\mu H(x)$ as in (3.12a ) and (3.12b ), along with the artificial source (3.15) in the density equation. The parameters are the same as for the DNS (see table 1), except that we use a resolution of $N_{x}=682$ in this case.

Numerical simulations of the 1-D reduced model are performed using a finite-difference scheme and integrated in time using the RK45 method from scipy.integrate.solve_ivp with an adaptative time step. We use the same initial conditions as for the DNS, as well as the same time steps for saving the solution.

Appendix E. Numerical set-up with particle sources

We perform $1024\times 1024$ padded resolution simulations. We start the seed simulation with the following initial profile:

(E1) \begin{equation} n_{r}(x,t=0)=L_{x}\exp \left [-4(x/L_{x})^{2}\right ], \end{equation}

and we impose the following particle source:

(E2) \begin{equation} S_{n}(\alpha )=\frac {\alpha }{\sigma _{n}\sqrt {2\pi }}\exp \big[-(x-x_{0})^{2}/\big(2\sigma _{n}^{2}\big)\big]\,. \end{equation}

All physical, sources and penalisation parameters are given in table 3.

Table 3. Physical and penalisation parameters for the $1024\times 1024$ padded simulations with a source term.

Footnotes

1 More precisely, would it be better to define $\kappa _{\phi }$ (mean electrostatic potential gradient), $\kappa _{u}$ (mean $E\times B$ velocity gradient/mean shear) or $\kappa _{\varOmega }$ (which would result in a mean potential vorticity gradient $\kappa _{n}-\kappa _{\varOmega }$ )?

2 Although the theoretical model in § 2.2 had an equation on the total vorticity $\varOmega =\overline {\varOmega }+\widetilde {\varOmega }$ , we prefer to separate both components in the implementation. Furthermore, we write an equation for $\partial _{t}\overline {v}_{y}$ instead of $\partial _{t}\overline {\varOmega }$ , since it makes more sense to think in terms of the radial profile of the $E\times B$ velocity, rather than that of vorticity. Moreover, this paves the way for a more general version of the model which could include a non-zero background velocity profile $u_{r}$ , or damping towards a background neoclassical flow.

References

Anderson, J. & Hnat, B. 2017 Statistical analysis of Hasegawa–Wakatani turbulence. Phys. Plasmas 24, 062301.10.1063/1.4984985CrossRefGoogle Scholar
Angot, P., Bruneau, C.-H. & Fabrie, P. 1999 A penalization method to take into account obstacles in incompressible viscous flows. Numer. Math. 81, 497520.10.1007/s002110050401CrossRefGoogle Scholar
Bak, P., Tang, C. & Wiesenfeld, K. 1987 Self-organized criticality: an explanation of the 1/f noise. Phys. Rev. Lett. 59, 381384.10.1103/PhysRevLett.59.381CrossRefGoogle ScholarPubMed
Biglari, H., Diamond, P.H. & Terry, P.W. 1990 Influence of sheared poloidal rotation on edge turbulence. Phys. Fluids B: Plasma Phys. 2, 14.10.1063/1.859529CrossRefGoogle Scholar
Camargo, S.J., Tippett, M.K. & Caldas, I.L. 1998 Nonmodal energetics of resistive drift waves. Phys. Rev. E 58, 36933704.10.1103/PhysRevE.58.3693CrossRefGoogle Scholar
Carnevale, G.F. & Martin, P.C. 1982 Field theoretical techniques in statistical fluid dynamics: with application to nonlinear wave dynamics. Geophys. Astrophys. Fluid Dyn. 20, 131163.10.1080/03091928208209002CrossRefGoogle Scholar
Carreras, B.A., Newman, D., Lynch, V.E. & Diamond, P.H. 1996 A model realization of self-organized criticality for plasma confinement. Phys. Plasmas 3, 29032911.10.1063/1.871650CrossRefGoogle Scholar
Chôné, L., Beyer, P., Sarazin, Y., Fuhr, G., Bourdelle, C. & Benkadda, S. 2015 Mechanisms and dynamics of the external transport barrier formation in non-linear plasma edge simulations. Nucl. Fusion 55, 073010.10.1088/0029-5515/55/7/073010CrossRefGoogle Scholar
di Santo, S., Burioni, R., Vezzani, A. & Muñoz, M.A. 2016 Self-organized bistability associated with first-order phase transitions. Phys. Rev. Lett. 116, 240601.10.1103/PhysRevLett.116.240601CrossRefGoogle ScholarPubMed
Dimits, A.M., Cohen, B.I., Mattor, N., Nevins, W.M., Shumaker, D.E., Parker, S.E. & Kim, C. 2000 Simulation of ion temperature gradient turbulence in tokamaks. Nucl. Fusion 40, 661.10.1088/0029-5515/40/3Y/329CrossRefGoogle Scholar
Dudson, B.D., Umansky, M.V., Xu, X.Q., Snyder, P.B. & Wilson, H.R. 2009 BOUT++: a framework for parallel plasma fluid simulations. Comput. Phys. Commun. 180, 14671480.10.1016/j.cpc.2009.03.008CrossRefGoogle Scholar
Frei, B.J., Hoffmann, A.C. D., Ricci, P., Brunner, S. & Tecchioll, Z. 2023 Moment-based approach to the flux-tube linear gyrokinetic model. J. Plasma Phys. 89, 905890414.10.1017/S0022377823000715CrossRefGoogle Scholar
Garbet, X., Mantica, P., Ryter, F., Cordey, G., Imbeaux, F., Sozzi, C., Manini, A., Asp, E., Parail, V., Wolf, R., Contributors, the JET EFDA 2004 Profile stiffness and global confinement. Plasma Phys. Control Fusion 46, 1351.10.1088/0741-3335/46/9/002CrossRefGoogle Scholar
Garbet, X., Sarazin, Y., Imbeaux, F., Ghendrih, P., Bourdelle, C., Gürcan, Ö. D. & Diamond, P.H. 2007 Front propagation and critical gradient transport models. Phys. Plasmas 14, 122305.10.1063/1.2824375CrossRefGoogle Scholar
Garbet, X. & Waltz, R.E. 1998 Heat flux driven ion turbulence. Phys. Plasmas 5, 28362845.10.1063/1.873003CrossRefGoogle Scholar
Gil, L. & Sornette, D. 1996 Landau–Ginzburg theory of self-organized criticality. Phys. Rev. Lett. 76, 39913994.10.1103/PhysRevLett.76.3991CrossRefGoogle ScholarPubMed
Gillot, C., et al. 2023 The problem of capturing marginality in model reductions of turbulence. Plasma Phys. Control Fusion 65, 055012.10.1088/1361-6587/acc276CrossRefGoogle Scholar
Grander, F., Locker, F.F. & Kendl, A. 2024 Hysteresis in the gyrofluid resistive drift wave turbulence to zonal flow transition. Phys. Plasmas 31, 052301.10.1063/5.0202720CrossRefGoogle Scholar
Guillon, P.L. 2025a Animations obtained with the code P-FLARE applied to the flux-driven Hasegawa–Wakatani system. https://doi.org/10.5281/zenodo.15423476.CrossRefGoogle Scholar
Guillon, P.L. 2025b Penalised flux-driven algorithm for reduced models. Available at https://github.com/piergui/P-FLARE.Google Scholar
Guillon, P.L. & Gürcan, Ö.D. 2025 Phase transition from turbulence to zonal flows in the Hasegawa–Wakatani system. Phys. Plasmas 32, 012306.10.1063/5.0242282CrossRefGoogle Scholar
Guo, Z.B. & Diamond, P.H. 2017 Bistable dynamics of turbulence spreading in a corrugated temperature profile. Phys. Plasmas 24, 100705.10.1063/1.5000850CrossRefGoogle Scholar
Gürcan, Ö.D., Anderson, J., Moradi, S., Biancalani, A. & Morel, P. 2022 Phase and amplitude evolution in the network of triadic interactions of the Hasegawa–Wakatani system. Phys. Plasmas 29, 052306.10.1063/5.0089073CrossRefGoogle Scholar
Gürcan, Ö.D., Diamond, P.H., Hahm, T.S. & Lin, Z. 2005 Dynamics of turbulence spreading in magnetically confined plasmas. Phys. Plasmas 12, 032303.10.1063/1.1853385CrossRefGoogle Scholar
Hahm, T.S., Diamond, P.H., Lin, Z., Itoh, K. & Itoh, S.-I. 2004 Turbulence spreading into the linearly stable zone and transport scaling. Plasma Phys. Control Fusion 46, A323.10.1088/0741-3335/46/5A/036CrossRefGoogle Scholar
Hasegawa, A. & Wakatani, M. 1983 Plasma edge turbulence. Phys. Rev. Lett. 50, 682686.10.1103/PhysRevLett.50.682CrossRefGoogle Scholar
Heinonen, R.A. & Diamond, P.H. 2020 a A closer look at turbulence spreading: how bistability admits intermittent, propagating turbulence fronts. Phys. Plasmas 27, 032303.10.1063/1.5138129CrossRefGoogle Scholar
Heinonen, R.A. & Diamond, P.H. 2020 b Turbulence model reduction by deep learning. Phys. Rev. E 101, 061201.10.1103/PhysRevE.101.061201CrossRefGoogle ScholarPubMed
Hinton, F.L. & Staebler, G.M. 1993 a Particle and energy confinement bifurcation in tokamaks. Phys. Fluids B: Plasma Phys. 5, 12811288.10.1063/1.860919CrossRefGoogle Scholar
Hinton, F.L. & Staebler, G.M. 1993 b Particle and energy confinement bifurcation in tokamaks. Phys. Fluids B: Plasma Phys. 5, 12811288.10.1063/1.860919CrossRefGoogle Scholar
Hoffmann, A.C.D., Frei, B.J. & Ricci, P. 2023 Gyrokinetic moment-based simulations of the dimits shift. J. Plasma Phys. 89, 905890611.10.1017/S0022377823001320CrossRefGoogle Scholar
Horton, W.Jr., Choi, D.-I. & Tang, W.M. 1981 Toroidal drift modes driven by ion pressure gradients. Phys. Fluids 24, 10771085.10.1063/1.863486CrossRefGoogle Scholar
Horton, W., Hong, B.G. & Tang, W.M. 1988 Toroidal electron temperature gradient driven drift modes. Phys. Fluids 31, 29712983.10.1063/1.866954CrossRefGoogle Scholar
Hu, G., Krommes, J.A. & Bowman, J.C. 1997 Statistical theory of resistive drift-wave turbulence and transport. Phys. Plasmas 4, 21162133.10.1063/1.872377CrossRefGoogle Scholar
Hwa, T. & Kardar, M. 1992 Avalanches, hydrodynamics, and discharge events in models of sandpiles. Phys. Rev. A 45, 70027023.10.1103/PhysRevA.45.7002CrossRefGoogle ScholarPubMed
Ivanov, P.G., Schekochihin, A.A., Dorland, W., Field, A.R. & Parra, F.I. 2020 Zonally dominated dynamics and Dimits threshold in curvature-driven ITG turbulence. J. Plasma Phys. 86, 855860502.10.1017/S0022377820000938CrossRefGoogle Scholar
Kim, C.-B., An, C.-Y. & Min, B. 2019 Reduction of edge plasma turbulence via cross-phase decrease by zonal fields. Plasma Phys. Control Fusion 61, 085024.10.1088/1361-6587/ab2973CrossRefGoogle Scholar
Kobayashi, S., Gürcan, Ö.D. & Diamond, P.H. 2015 Direct identification of predator–prey dynamics in gyrokinetic simulations. Phys. Plasmas 22, 090702.10.1063/1.4930127CrossRefGoogle Scholar
Krommes, J.A. 2002 Fundamental statistical descriptions of plasma turbulence in magnetic fields. Phys. Rep. 360, 1352.10.1016/S0370-1573(01)00066-7CrossRefGoogle Scholar
Mantica, P., et al. 2009 Experimental study of the ion critical-gradient length and stiffness level and the impact of rotation in the JET tokamak. Phys. Rev. Lett. 102, 175002.10.1103/PhysRevLett.102.175002CrossRefGoogle ScholarPubMed
Miki, K., Diamond, P.H., Gürcan, Ö.D., Tynan, G.R., Estrada, T., Schmitz, L. & Xu, G.S. 2012 Spatio-temporal evolution of the L $\rightarrow$ I $\rightarrow$ H transition. Phys. Plasmas 19, 092306.10.1063/1.4753931CrossRefGoogle Scholar
Naulin, V., Nielsen, A.H. & Rasmussen, J.J. 2005 Turbulence spreading, anomalous transport, and pinch effect. Phys. Plasmas 12, 122306.10.1063/1.2141396CrossRefGoogle Scholar
Numata, R., Ball, R. & Dewar, R.L. 2007 Bifurcation in electrostatic resistive drift wave turbulence. Phys. Plasmas 14, 102312.10.1063/1.2796106CrossRefGoogle Scholar
Panico, O., Sarazin, Y., Hennequin, P., Gürcan, Ö.D., Bigué, R., Dif-Pradalier, G., Garbet, X., Ghendrih, P., Varennes, R. & Vermare, L. 2025 On the importance of flux-driven turbulence regime to address tokamak plasma edge dynamics. J. Plasma Phys. 91, E26.10.1017/S0022377824001624CrossRefGoogle Scholar
Sarazin, Y., et al. 2021 Key impact of phase dynamics and diamagnetic drive on Reynolds stress in magnetic fusion plasmas. Plasma Phys. Control Fusion 63, 064007.10.1088/1361-6587/abf673CrossRefGoogle Scholar
Sarazin, Y. & Ghendrih, P. 1998 Intermittent particle transport in two-dimensional edge turbulence. Phys. Plasmas 5, 42144228.10.1063/1.873157CrossRefGoogle Scholar
Savitzky, A. & Golay, M.J. E. 1964 Smoothing and differentiation of data by simplified least squares procedures. Anal. Chem. 36, 16271639.10.1021/ac60214a047CrossRefGoogle Scholar
Schneider, K. & Farge, M. 2005 Decaying two-dimensional turbulence in a circular container. Phys. Rev. Lett. 95, 244502.10.1103/PhysRevLett.95.244502CrossRefGoogle Scholar
Schneider, K., Neffaa, S. & Bos, W.J. T. 2011 A pseudo-spectral method with volume penalisation for magnetohydrodynamic turbulence in confined domains. Comput. Phys. Commun. 182, 27.10.1016/j.cpc.2010.05.019CrossRefGoogle Scholar
Terry, P.W. & Horton, W. 1983 Drift wave turbulence in a low-order k space. Phys. Fluids 26, 106112.10.1063/1.863997CrossRefGoogle Scholar
Tu, L.W. 2011 An Introduction to Manifolds. Springer.10.1007/978-1-4419-7400-6CrossRefGoogle Scholar
Wolf, R.C., et al. 2003 Characterization of ion heat conduction in JET and ASDEX Upgrade plasmas with and without internal transport barriers. Plasma Phys. Control Fusion 45, 1757.10.1088/0741-3335/45/9/313CrossRefGoogle Scholar
Figure 0

Figure 1. Decomposition of a given radial profile $n_{r}$ (blue) into its linear component $n_{lin}$ (dashed green) and its zonal fluctuating component $\overline {n}$ (dash-dotted red). Notice that using such a decomposition, we find that the zonal profile is periodic at the edges, while its derivative $\partial _{x}\overline {n}$ is not.

Figure 1

Figure 2. Decomposition of the radial profile $n_{r}$ (blue) into its linear component $n_{lin}$ (dashed green) and its zonal fluctuating component $\overline {n}$ (dash-dotted red). The background density gradient is now computed between $x_{b1}$ and $x_{b2}$, and the buffer zones are indicated by the dashed lines.

Figure 2

Figure 3. (a) Smooth transition function $h$ defined according to (3.3) on $[0,1]$. (b) Smooth gate $\varPsi$ defined from (3.4) on $[0,L_{x}]$, where the transition parts are shown in orange.

Figure 3

Figure 4. Top plot: modified zonal density perturbation $\overline {n}_{matched}$ (red), which is now periodic and flat at both ends. The corresponding matched radial profile $n_{r,matched}$ is shown in blue. The orignal radial profile $n_{r}$ (dashed light-blue), linear profile $n_{lin}$ (green) and zonal profile $\overline {n}$ (dashed dark-red) from figure 2 are also shown. Bottom plot: smooth-gate function $\varPsi$.

Figure 4

Figure 5. Combined plot of $\psi _{mask}(x)=1-H(x)$ (blue) and the smooth-gate function $\varPsi _{smooth}(x)$ (dashed red). Their radial extensions $\delta x_{b}$ and $\delta x_{m}$ are also shown (respectively blue and red arrows).

Figure 5

Figure 6. Spreading of the turbulent region in a numerical simulation of padded resolution $1024\times 1024$, with $C=0.05$ and $\kappa _{\ell }=5$. (a–d) Snapshots of the density fluctuation $n(x,y)$ and radial density profile $n_{r}$ (black line). (e–h) Snapshots of the vorticity fluctuation $\varOmega (x,y)$ and zonal velocity profile $\overline {v}_{y}$ (black line). Buffer zones are shown in dashed lines.

Figure 6

Table 1. Physical and penalisation parameters for the $4096\times 4096$ padded simulation. The initial profile is taken as (4.1).

Figure 7

Figure 7. Flattening of the initial density profile in the early times. (a) Density profile restrained on the interval $x\in [30,75]$ at different time steps. The initial profile is in black dashed lines. (b) Perturbation $\delta n_{r}=n_{r}-n_{r}(t=0)$ from the intial profile.

Figure 8

Figure 8. (a) Time evolution of the r.m.s. value $\langle \delta n_{r}\rangle$ of the density profile perturbation. The slope of the growth of the perturbation in the linear phase is compared with the sum of the growth rates of the most unstable mode and side-band $\gamma _{k}+\gamma _{p}$. (b) Positions $X_{\pm }$ of the density perturbations $\delta n_{\pm }$ as functions of time, shown respectively in red and blue dashed lines. The contour plots of the density perturbation $\delta n_{r}$ are also shown. The perturbation wavelength $\lambda _{q}=2(X_{+}-X_{-})\approx 23.0$ is estimated at $t\approx 20$ (orange arrow).

Figure 9

Figure 9. (a) Radial density profile $n_{r}$ at different time steps (the dashed line correspond to the initial profile). (b) Radial turbulent kinetic energy profile $\overline {\mathcal{K}}$ at the same time steps, in $y$ semilog plot. Circles correspond to the right-most position at which the radial kinetic energy $\overline {\mathcal{K}}$ is equal to $1\,\%$ of its maximum at a given time step (4.9), which we use as a proxy for the turbulent front position $X_{f}(t)$.

Figure 10

Figure 10. (a) Time evolution of the turbulent front position $X_{f}(t)$ (dashed red line), on top of the spatiotemporal evolution of the radial kinetic energy profile $\overline {\mathcal{K}}(x,t)$. (b) Time evolution of the left mean density gradient, defined by (4.11). (c) Time evolution of the corresponding maximum growth rate, defined by (4.11). Both mean gradient and growth rate are fit with power laws of the time (red and green dashed lines). The vertical grey line denotes the time $t_{1}\approx 800$ at which the front reaches the right buffer.

Figure 11

Figure 11. Comparison of the turbulent spreading between the DNS (blue) and the 1-D reduced model (red). (a) Log–log plot of the turbulent front $X_{f}(t)$ computed using the proxy (4.9), from which the initial front position $X_{f}(t_{0})$ has been subtracted. The green dashed line corresponds to the 1-D simulation without spreading (i.e. $\chi _{\mathcal{K}}=0$). The black dashed line corresponds to the slope of the diffusive spreading $X(t)\propto t^{1/2}.$ (b) Velocity of the turbulent front $v_{X_{f}}(t)=d_{t}X_{f}$ computed by differentiating $X_{f}(t)$ after applying a Savitzky–Golay filter. The simulations are compared with the theoretical estimation of the front velocity $\sqrt {D_{n}\gamma _{\ell }(t)}$ (dashed line) where $\gamma _{\ell }$ is computed using (4.11) and $D_{n}=0.1$ is the diffusion coefficient of the 1-D reduced density transport (4.13).

Figure 12

Figure 12. (a) Zonal density profile $\overline {n}$ (blue) and zonal velocity profile $\overline {v}_{y}$ (orange) at the last time step of the simulation. (b) Control parameter $C/\kappa$ computed using the left density gradient $\kappa _{\ell }(t)$ (blue) and the global mean gradient $\kappa$ (dashed green) as a function of time. The fraction of zonal kinetic energy $\varXi _{\mathcal{K}}$ is also shown in red. The vertical line marks the time $t_{1}\approx 800$ at which the turbulent front reaches the right buffer.

Figure 13

Figure 13. Comparison of observables between the four source amplitudes: $\alpha =0$ (blue), $\alpha =1.2$ (green), $\alpha =2.4$ (red) and $\alpha =12$ (orange). (a) Outward particle flux $\varGamma _{n}(x_{b2},t)-\varGamma _{n}(x_{b1},t)-P_{b2}(t)$ in y symlog plot (filtered). Source amplitudes are indicated by dashed lines and arrows on the right. (b) Zonal kinetic energy fraction $\varXi _{\mathcal{K}}$. (c) Control parameter $C/\kappa (t)$. The vertical line at $t=t_{S}$ corresponds to the time at which the sources are activated.

Figure 14

Figure 14. Time evolution of the non-zonal turbulent intensity $\widetilde {I}\equiv \sum _{k_{x},k_{y} \neq 0}|\phi _{k}|^{2}$ for $\alpha =1.2$ (green) and $\alpha =2.4$ (red). Mean values of $\widetilde {I}$ (dashed lines) and of the control parameter $C/\kappa$ are taken over the last quarter of the simulations.

Figure 15

Figure 15. Hovmöller diagrams of the zonal velocity $\overline {v}_{y}$ (top row) and zonal density $\overline {n}$ (middle row) profiles, for the four source amplitudes $\alpha$ (the source is shown by the black line on the density maps in arbitrary units). The bottom row shows the time evolution of the zonal kinetic energy fraction $\varXi _{\mathcal{K}}$.

Figure 16

Table 2. Physical parameters for BOUT++ and P-FLARE simulations, and penalisation parameters for P-FLARE.

Figure 17

Figure 16. (a) Zonal kinetic energy fraction $\varXi _{\mathcal{K}}$ and (b) mean radial particle flux $\varGamma _{n}$ versus time obtained with BOUT++ (plain blue) and P-FLARE (dashed red) simulations.

Figure 18

Figure 17. Hovmöller diagrams of the zonal velocity $\overline {v}_{y}$ profiles obtained using (a) BOUT++ and (b) P-FLARE, with the turbulent front proxy $X_{f}(t)$ in dashed black. The time evolution of the turbulent front position is shown in panel (c) obtained with BOUT++ (plain blue) and P-FLARE (dashed red), in log–log. Note that for the P-FLARE results, we shifted the $x$ axis and the front position $X_{f}$ by the left buffer position $x_{b1}$, to line up with BOUT++.

Figure 19

Figure 18. Time evolution of some quantities for the relaxation simulation (see § 4). (a) Time evolution of the total (black), zonal (red dash-dotted) and non-zonal (green dashed) kinetic energy averaged over the physical domain. (b) Time evolution of the density at the left boundary $n_{r}(x_{b1},t)$ (dashed blue) and of the radial particle flux $\langle \varGamma _{n}\rangle$ (orange) averaged over the physical domain.

Figure 20

Table 3. Physical and penalisation parameters for the $1024\times 1024$ padded simulations with a source term.