Closed cetait closed 2 years ago
As discussed on the call, we should eliminate Sys.Pop
and Sys.PopMode
and use Sys.initState
as the only input for spin polarization.
Some additional thoughts:
A)
The Sys.initState
should allow for three types of input:
B) For 1. and 2., it should be possible to use the electron states only (i.e. give only one number for each electron spin manifold), or all states.
C)
State ordering should always be in order of increasing energy. If there are degeneracies, EasySpin should issue an error, since then the basis vectors are actually not uniquely defined. This would also mean we remove the hard-coded E=0 case from resfields
.
D)
ISC triplets are best specified via the Tx, Ty, Tz populations rather than energy-ordered as currently in Exp.Temperature
(5.2) or Sys.Pop
(6.0-dev). One possible syntax would be Sys.initState = {[0.4 0.2 0.6], 'xyz'}
, only valid for triplets. This would be completely unambiguous, and the values obtained could be directly used in a publication. Of course, we will have to hard-code the Tx, Ty, Tz states for this shortcut.
Thanks Claudia - this is a massive addition!
Improved integration of spectral simulations for spin-polarized systems including spin-correlated radical pairs, ISC and recombination triplets and higher spin systems. The current implementation is an extension of the undocumented features introduced by @mdkrzyaniak and addresses issues #44 and #243.
Things still to do include:
[x] develop cleaner and more compact user interface
At the moment, different input fields are used for different systems, i.e.
Sys.initState
to specify the initial density matrix (for SCRPs) andSys.Pop
(+Sys.PopMode
) for ISC and recombination triplets (and higher spin systems). The idea would be to eventually integrate all options into a single input field, e. g.Sys.initState
. One proposal for this would be the following:Sys.initState = rho; % density matrix in uncoupled (EasySpin) basis
Sys.initState = 'singlet';
Sys.initState = {[px py pz],'xyz'};
Sys.initState = {[p1 p2 p3],'zerofield'}; % lowest to highest energy
Sys.initState = {[pm1 p0 pp1],'eigen'};
[x] make sure implementation is general enough to cover different spin-polarized spin systems beyond SCRPs and triplets
[x] add more tests and examples
[x] finalize documentation