Skip to content

New initialization

Byung Kyu Na requested to merge linearmhd_verification_slab into devel
  • 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.
Edited by Byung Kyu Na

Merge request reports