Input keywords

mudirac takes a single input file, containing multiple lines with the format <keyword>: <value>. Here, we list all the currently available keywords, divided by type, their purpose, and default values.

String keywords

These keywords take a string as value; invalid strings (e.g. a chemical symbol that doesn’t correspond to a known element) will give rise to errors.

  • element: symbol of the element for the calculation. Determines the nuclear charge. Can be any symbol in the periodic table up to Z=111, Roentgenium (Rg). Default is H.

  • nuclear_model: model used to describe the nucleus. Can be POINT (point charge), SPHERE (finite size, uniformly charged spherical nucleus) or FERMI2 (Fermi 2-term charge distribution). Default is POINT.

  • electronic_config: electronic configuration to use in order to describe the negative charge background. Can be a full string describing the configuration (e.g. 1s2 2s2 2p2), an element symbol to represent the default configuration of that atom when neutral (e.g. C) or a mix of the two (e.g. [He] 2s2 2p2). Default is the empty string (no electrons).

  • ideal_atom_minshell: for this shell, and all above it, treat the atom as a simple hydrogen-like point charge Dirac atom, using the known analytical solution and discarding all corrections. Mostly useful for debugging, or when very high shell states have difficulty to converge. The shell must use IUPAC notation (\(K \Rightarrow n=1\), \(L \Rightarrow n=2\), etc.). Default is the empty string (no ideal solutions used).

  • xr_lines: the transition or transitions for which energy and rates are desired. Each line must be expressed using the conventional IUPAC notation [Jenkins et al., 1991]. Multiple lines can be separated by commas. For example:

    xr_lines: K1-L2,K1-L3
    

    In addition, colons can be used to indicate ranges of lines. The notation K1:L3-M1 would compute the lines K1-M1, L1-M1, L2-M1 and L3-M1. Note that if some of these lines are forbidden by selection rules, they will simply be skipped. A double colon, like K1:L3-K1:L3 would loop on both sides, and not count all repeated lines.

Boolean keywords

These keywords can only have a value of TRUE or FALSE. In order to set them true, either the word ‘TRUE’ or the letter ‘T’ (regardless of case) work.

  • uehling_correction: whether to turn on the Uehling correction or not. Default is FALSE.

  • write_spec: if true, write a spectrum file using the transition lines found broadened with Gaussian functions. Other Floating point keywords starting with spec_ can then be specified. Default is FALSE.

  • sort_byE: if true, print out the transitions sorted by energy instead than by shell. Default is FALSE.

Floating point keywords

These keywords accept a non-integer number. It can be written normally (e.g. 105.3) or in scientific notation (e.g. 1.053E2).

  • mass: mass of the particle in atomic units (1 = mass of the electron). By default it’s the mass of the muon, 206.7683.

  • energy_tol: absolute tolerance for energy convergence when searching for eigenvalues. Iterations will stop once the energy change is smaller than this number, in atomic units. Default is 1E-7.

  • energy_damp: a damping parameter used in steepest descent energy search to ease convergence. Used to multiply the suggested step \(\delta E\) and make it smaller. Helps avoiding overshooting; fine-tuning it might help to converge difficult calculations, while making it bigger might make convergence faster in simple ones. Default is 0.5.

  • max_dE_ratio: maximum ratio between energy step, \(\delta E\), and current energy \(E\) in convergence search. If the suggested step exceeds this ratio times the guessed energy, it will be rescaled. This also serves as a measure to avoid overshooting and can be tweaked to get around cases of bad convergence. Default is 0.1.

  • node_tol: tolerance parameter used to identify and count nodes in wavefunctions. Very unlikely to need any tweaking. Default is 1E-6.

  • loggrid_step: step of the logarithmic grid. Default is 0.005.

  • loggrid_center: center of the logarithmic grid in units of \(a_0 = 1/(Zm)\). Default is 1.

  • uehling_lowcut: low cutoff for Uehling potential, under which the radius will be considered 0. Default is 0.

  • uehling_highcut: high cutoff for Uehling potential, over which the radius will be considered \(r >> c\). Default is INFINITY.

  • econf_rhoeps: charge density threshold under which the electronic charge background will be truncated and treated as zero. Default is 1E-4.

  • econf_rin_max: upper limit for the innermost radius of the electronic charge background grid. Default is -1 (no limit).

  • econf_rout_min: lower limit for the outermost radius of the electronic charge background grid. Default is -1 (no limit)

  • spec_step: energy step for the simulated spectrum, in eV. Only has effect if write_spec = TRUE. Default is 1E2 eV.

  • spec_linewidth: Gaussian broadening width for the simulated spectrum, in eV. Only has effect if write_spec = TRUE. Default is 1E3 eV.

  • spec_expdec: exponential decay parameter \(E_{\text{dec}}\) for a sensitivity function for the simulated spectrum, in eV. Multiplies the entire spectrum by a function \(\exp(-E/E_{\text{dec}})\). Only has effect if write_spec = TRUE. Default is -1 (no decay).

Integer keywords

Keywords that take an integer number as value.

  • isotope: which isotope of the element to consider. Important to determine the mass of the nucleus and its size. Default is -1, which means the most common isotope for the element will be used.

  • max_E_iter: maximum number of iterations to perform when searching for the energy of a state. If exceeded, convergence will fail. Increase this value for slow convergences that are however progressing. Default is 100.

  • max_nodes_iter: maximum number of iterations to perform when searching for a starting energy value that gives a state the expected number of nodes. If exceeded, convergence will fail. Should generally not need to be adjusted. Default is 100.

  • max_state_iter: maximum number of iterations to perform when searching for a state. This loop encloses both node-based and energy-based search. Once a state is converged, the program checks again that it has the correct number of nodes. If it does not, the state is stored for future use and to provide an upper or lower limit to the energy of the searches and then the process is repeated. This number represents how much can the process be repeated before failing. Should not generally need to be adjusted. Default is 100.

  • uehling_steps: integration steps for the Uehling potential. Higher numbers will make the Uehling energy more precise but increase computation times. Default is 100.

  • xr_print_precision: number of digits after the point to use when printing out energies and transition rates in the .xr.out file. Default is -1 (print as many as possible).

  • state_print_precision: number of digits after the point to use when printing out energies and transition rates in the .{state name}.out files. Default is -1 (print as many as possible). Only has effect if output >= 2.

  • verbosity: verbosity level. Going from 1 to 3 will increase the amount of information printed to the log file. Default is 1.

  • output: output level. Going from 1 to 3 will increase the amount of files produced. Specifically:
    1. will print out only the transition energies and rates in the .xr.out file;

    2. will print out also each of the states in a separate ASCII file as well as the transition matrices for each line;

    3. is reserved for future uses and currently has the same effect as 2.