New initialization
- Modifying
initialization
sequence to be more flexible.
Now one FEEC coefficient can be initialized with multiple fourier modes.
i.e.
fluid :
mhd :
phys_params:
A : 1 # mass number in units of proton mass
Z : 1 # signed charge number in units of elementary charge
mhd_u_space : Hdiv # Hdiv | H1vec
init :
type : [TorusModesSin, TorusModesCos] # initial conditions (possible types seen below)
TorusModesSin :
comps :
n3 : False # components to be initialized (for scalar fields: no list)
u2 : [True, False, False] # components to be initialized (for scalar fields: no list)
p3 : False # components to be initialized (for scalar fields: no list)
ms : [1] # poloidal mode numbers
ns : [-1] # toroidal mode numbers
amps : [0.001] # amplitudes of each mode
pfuns : ['sin'] # profile function in eta1-direction ('sin' or 'cos' or 'exp')
pfun_params : [null] # Provides [r_0, sigma] parameters for each "exp" profile fucntion, and null for "sin"
TorusModesCos :
comps :
n3 : False # components to be initialized (for scalar fields: no list)
u2 : [False, True, False] # components to be initialized (for scalar fields: no list)
p3 : False # components to be initialized (for scalar fields: no list)
ms : [1] # poloidal mode numbers
ns : [-1] # toroidal mode numbers
amps : [0.00314159265359] # amplitudes of each mode
pfuns : ['cos'] # profile function in eta1-direction ('sin' or 'cos' or 'exp')
pfun_params : [null] # Provides [r_0, sigma] parameters for each "exp" profile fucntion, and null for "sin" and "cos"
In order to initialize with more than one modes, type name should be given as list
.
type : [TorusModesSin, TorusModesCos] # initial conditions (possible types seen below)
For a single mode or type, both list
type and str
type can be given.
i.e.
type : ModesCos # initial conditions (possible types seen below)
type : [ModesCos] # initial conditions (possible types seen below)
type : noise # initial conditions (possible types seen below)
type : [..EigenFun] # initial conditions (possible types seen below)
Note that, multiple modes must be applied to the different directions of FEEC variables respectively. Otherwise, there will be overwriting.
e.g. eta1: ModesCos, eta2: ModesSin, eta3: TorusModesSin
Moreover, different types of initialization (noise, eigenfun, fouriermode) cannot not be applied to one FEEC variables.
Following things are forbidden.
e.g.
eta1: noise, eta2: ModesSin, eta3: null
eta1: eigfun, eta2: ModesSin, eta3: null
solve issue #202 (closed)
-
TorusModesCos
is implemented. -
params_linearmhd_phasemixing_slab.yml
is added for linearmhd phasemixing test on sheared slab.