Home

A note on various implementations of anisotropic forcing in Pencil

Tags

pencil-code (1 post).

In the context of the Pencil code, there are three distinct notions of anisotropic forcing:

  1. Changing the values of ex, ey, and ez in samples/helical-MHDturb/python/generate_kvectors.py makes the wavenumbers of the forcing different in different directions. This seems useful if one wants the flow to have different spatial scales in different directions.

  2. In forcing_run_pars, one can set force_strength to a nonzero value and additionally set force_direction (a 3-vector). This is the forcing described by Käpylä (2019) and Käpylä (2019_1), where an anisotropic component is added to the usual isotropic random curl-eigenfunction forcing. I have checked that the velocity field remains nonhelical on average when relhel=0. Note that the modified forcing is not solenoidal. To keep the amplitude of the forcing the same while changing the degree of anisotropy, one should keep f0[1+f1/(9f0)]f_0 \left[ 1 + f_1/ \left( 9f_0 \right)\right] constant. This condition results from requiring the trace of the angular average of the fijf_{ij} tensor1 to be unchanged.

  3. Setting laniso_forcing_old=F in forcing_run_pars (in addition to the other options mentioned in the previous point) scales the amplitude of the forcing depending on the direction of k\vec{k}. Here, the forcing is still in terms of eigenfunctions of the curl operator.

Note that none of the described options seems to completely capture the sense in which convection is anisotropic.


  1. Previous studies (Käpylä 2019_1, eq. 9; Käpylä 2019, eq. 22) seem to have a typo in their stated definition of fijf_{ij}; the correct definition is fijf0δij+f1δi3δj3(k^z^)2f_{ij} \defn f_0 \delta_{ij} + f_1 \delta_{i3} \delta_{j3} ( \uvec{k}\cdot\uvec{z} )^2↩︎

Tags

pencil-code (1 post).

Bibliography