ConfigurationΒΆ

The code is controlled by a single human-readable configuration file. In order to use this option, you need to have the configparser package installed in your system. It can be downloaded from http://www.voidspace.org.uk/python/configobj.html or installed as a standard Python package using ``pip install configparser’‘. The serial version of the code is run using:

./run.py conf.ini

and the parallel code is run with

./run.py conf.ini nProcessors

An example of the file, that is self-explanatory, is:

# Hazel configuration File

#####################
# General information
#####################

[Files]
Input model file = 'ATOMS/helium.mod'
File with observations = 'OBSERVATION/test_2comp.prof'
File with inverted profiles = 'test.inversion'
File with inverted parameters = 'test.parameters'

[Working mode]
Action = 'inversion'                        # 'synthesis' or 'inversion'
Verbose = no
Linear system solver = 'LU'                 # 'LU' or 'CG'
Stopping volume for DIRECT = 0.001

[General parameters]
Synthesis mode = 'exact'                    # 'thin' or 'exact'
Include stimulated emission = yes
Include magnetic field  = yes
Include Paschen-Back effect = yes
Include atomic level polarization = yes
Include magneto-optical effects in the RT = yes
Include stimulated emission in the RT = yes
Multiplet = 10830                           # 10830, 5876, 7065, 3889 A
Line-of-sight angles = 0.0, 0.0, 90.0       # theta, chi, gamma deg
Wavelength axis = -3.0, 2.5, 200            # Minimum, maximum and number of grid points

#####################
# Synthesis parameters
#####################
[Synthesis]
Number of slabs = '1'                       # '1' -> single slab, '1+1' -> two slabs with same field, '1+1B' -> 2 slabs with different field, '2' -> two slabs added with a filling factor
Boundary condition = 4.098e-5, 0.0, 0.0, 0.0      # I0, Q0, U0, V0. It can also be a file that contains the boundary condition vs wavelength (see boundary.dat in run directory)
a = 0.0
height = 3.0                                # Real height if positive, apparent height if negative arcsec
ff = 0.0
    [[Slab 1]]
    B =         0.0         # G
    thetaB =    0.0         # deg
    chiB =      0.0         # deg
    vdopp =     8.0         # km/s
    tau =       1.0
    vmac =      0.0         # Positive is redshift km/s
    beta =      1.0
    [[Slab 2]]
    B =         0.0         # G
    thetaB =    0.0         # deg
    chiB =      0.0         # deg
    vdopp =     0.0         # km/s
    tau =       0.0
    vmac =      0.0         # Positive is redshift km/s
    beta =      1.0

#####################
# Ranges for the DIRECT method [min, max]
#####################
[Ranges]
a =             0,0.5
ff =            0.0,1.0
    [[Slab 1]]
    B =         800,1100
    thetaB =    0,180
    chiB =      0,180
    vdopp =     2,12
    tau =       0.1,2
    vmac =      -5,5
    beta =      0.5,2
    [[Slab 2]]
    B =         800,1100
    thetaB =    0,180
    chiB =      0,180
    vdopp =     2,12
    tau =       0.1,2
    vmac =      -5,5
    beta =      0.5,2

#####################
# Parameters to invert
#####################
[Inversion]
Iterations in LM = 20
Number of cycles = 4
Inversion modes = 'DIRECT', 'LM', 'DIRECT', 'LM'        # 'DIRECT' for DIRECT algorithm and 'LM' for Levenberg-Marquardt
    [[Cycles]]
    a =             1, 1, 0, 0
    ff =            0, 0, 0, 0
        [[[Slab 1]]]
        B =         0, 0, 1, 1
        thetaB =    0, 0, 1, 1
        chiB =      0, 0, 1, 1
        vdopp =     1, 1, 0, 0
        tau =       1, 1, 0, 0
        vmac =      1, 1, 0, 0
        beta =      0, 0, 0, 0
        [[[Slab 2]]]
        B =         0, 0, 0, 0
        thetaB =    0, 0, 0, 0
        chiB =      0, 0, 0, 0
        vdopp =     0, 0, 0, 0
        tau =       0, 0, 0, 0
        vmac =      0, 0, 0, 0
        beta =      0, 0, 0, 0
    [[Weights]]
        Stokes I =  1.0, 1.0, 1.0, 1.0
        Stokes Q =  0.0, 0.0, 1.0, 1.0
        Stokes U =  0.0, 0.0, 1.0, 1.0
        Stokes V =  0.0, 0.0, 1.0, 1.0

The code will convolve with a spectral point spread function if a file called psf.txt is placed on the directory where you run the code. This file contains a first line with the number of points of the PSF. Then a single column giving the transmission in a wavelength axis with a step equal to that of the observations. If this file is not present, no convolution will be done.