The pyxais_core.namd() function takes a single argument (called params in below examples) of the python dictionary data type. This allows one to prepare a single object containing all simulation parameters an then pass it to pyxais_core.namd() function. One of the ways to do this is by setting key-value pairs as:
params = [] # empty dictionary container params["key1"] = value1 # set the value corresponding to key1 params["key2"] = value2 # set the value corresponding to key2 ...
Alternative way to define a dictionary with the simulation parameters is:
params = {key1:value1, key2:value2, ...}
Although the first way is a bit longer, it is easier to understand, modify and support. That is why you will find it in the tutorial scripts. Especially in the script "py-scr3.py" Before going into description of the parameters used by namd function, you may find it very useful to take a look on that script first - it is heavily commented and explaint most of the valid keys and their allowed values and also shows how to set the corresponding parameters up.
"namd" - perform NA-MD calculations (with or without decoherence, field, etc.)
"nonamd"(or anything else) - only calculate the energies and input states and parameters. No trajectory hopping and TD-SE calculations are performed, no output is written (except for me_energies*). This is helpful for computing the energies of the excited states (determinants) along the trajectory.
"batch" - in this case all Ham_ (and, optionally, Hprime_) files (as defined by namdtime and initial conditions) are read first and stored internally. This helps to save a great deal of time, because reading this (same) files for each initial condition is very time consuming part. The only drawback of this method is that a lot of memory may be required. This option is preferred if the memory allows. Also note that this mode requires ALL Ham_ (and, optionally, Hprime_) files to be read in the beginning, even if the lowest initial excitation time is much larger than 0. So such files must be present.
"online" - in this case Ham_ (and, optionally, Hprime_) files are read as they need. This may be much slower than batch mode, but requires much less memory, because only current file is stored. This mode requires only those files which are actually used - that may be convenient in some cases.
"online_all_in_one" - this is similar to "online", but now both imaginary and real part are combined in a single Hamiltonian file. See example of usage and more explanation here
0 - Based on Trotter splitting formula
10 - Finite difference approach with 1-st order interpolation of Hamiltonian
11 - Finite difference approach with 2-nd order interpolation of Hamiltonian
2 - Exact analytic formula, based on matrix exponential (eigenvalue problem)
0 - in this case the electrons are considered as quasiparticles with spin (alpha and beta, see Figure 1a). This leads to a more detailed structure of the basis states - e.g. states 1 and 2 are distinct, as well as 3 and 4. The alpha and beta orbitals are not coupled, thus transitions 1<-->2, 3<-->4 or 0<-->2 are not allowed, while transitions 0<-->1, 1<-->3 are possible. To developers: the current algorithm, which determines if two states are coupled, is based on the number of occupied orbitals by which two determinants are different. Thus, internally the states 1 and 2 are formally coupled as well as 0 and 2 or 3 and 4. The alp_bet flag set to 0 will simply nullify the NACs (transition dipole moments) for such elements (in KS orbital basis), so effectively the mentioned states will be decoupled.
1 - in this case the electrons are considered as spinless quasiparticles (Figure 1b). This results in the states, defined purely on the spatial parts of the KS orbitals, so no spin-multiplicity is considered and there are no restrictions on possible transitions is due to spin component. The possibility of transitions is solely defined by the occupation numbers of the orbitals. In such an approach states 1 and 2 are equivalent, as well as 3 and 4. The transitions 0<-->(1,2) or (1,2)<-->(3,4) are allowed, while 0<-->(3,4) are not.
0 - do not output extra information
1 - print debug (extra) information
2 - print even more information
...
0 - no decoherence effects are included
1 - include the decoherence via DISH. In this case the dephasing (decoherence) functions will be computed for each pair of states and for each initial condition. The decoherence functions will be fitted to gaussian curve to determine the dephasing rates. The computed and fitted dephasing functions and the cumulants will be written in the files (located in scratch_dir - see corresponding section). The matrices of dephasing rates will also be written in that directory - one for each initial condition. These files will be re-opened during the main DISH execution cycle. Note: the number of files created is quite large (~Nbas x Nbas x Nicond, where Nbas - the number of basis states Nicond - the number of initial conditions), so be careful (in later version i'll try to fix this)
0 - y = ax, where P = log(D) and x = t2
1 - y = ax + b, where P = log(D) and x = t2