Spinors with Siesta

Note that c2x 2.41 or later is required for this example.

The example follows the fe_noncol_kp example from the Siesta Tests directory, with the addition of SaveRho .true. so that the density is written.

Input Files

The pseudopotential fe_nc.psf can be found in the Tests/Pseudos directory.

$ wget https://gitlab.com/siesta-project/siesta/-/raw/v4.1.5/Tests/Pseudos/fe_nc.psf

And Siesta can be run as

$ siesta < Fe.fdf > Fe.out


This short test calculation might not converge fully, but the output contains spin information as follows

siesta: E_KS(eV) =            -2326.9239

siesta: E_KS - E_eggbox =     -2326.9239
     spin moment: S , {S} =    1.64896   1.64896   0.00000   0.00000


mulliken: Atomic and Orbital Populations:

Species: fe_nc               

Atom      Orb        Charge      Spin       Svec
    1     Total     7.94481   3.09031      0.099   0.000   3.089

    2     Total     8.11037   1.45182      1.452   0.000  -0.000
    3     Total     7.94481   3.09031      0.099   0.000  -3.089

Total              24.00000   1.64896      1.649   0.000   0.000

These data can be compared to the output of c2x.

$ c2x -scv --vec2force=0.96i --cubic --null fe_noncol_kp.RHO 
Found 3D data for Density
  min=0 max=5.87102 sum=10365.5 int=24
  (integral is e per cell for charge and spin densities)
Found 3D data for Vector spin
Data contain 3 components. Per component analysis:
  min=-0.00338721 max=1.87392 sum=712.176 int=1.64896 int|s|=1.68155
  min=-6.20107e-16 max=5.80643e-15 sum=2.02319e-12 int=4.68447e-15 int|s|=5.14379e-15
  min=-3.06191 max=3.06191 sum=3.47021e-05 int=8.03489e-08 int|s|=6.68912
  With s as vector, min(|s|)=0.000000, max(|s|)=3.067627, int|s|=7.936363
  (integral is e per cell for charge and spin densities)
Sampling of vector data integrating over 0.960000A using 16 points radially
Fe at (0.0000,0.0000,0.1822) vector ( 0.0979, 0.0000, 2.7294) modulus 2.7312
Fe at (0.0000,0.0000,0.0000) vector ( 1.2653, 0.0000,-0.0000) modulus 1.2653
Fe at (0.0000,0.0000,-0.1822) vector ( 0.0979, 0.0000,-2.7294) modulus 2.7312

So c2x finds a total charge of 24, a total spin of (1.64896, 4.7e-15, 8.0e-8), and per-atom spins of (0.098, 0, 2.729), (1.265, 0, 0) and (0.098, 0, -2.729). C2x's per-atom analysis is based on integrating over (almost) touching spheres, whereas Siesta is performing Mulliken analysis. It is unsurprising that Siesta's answers are larger, as it will effectively be attributing a greater volume of space to each atom, and has attributed every part of the electron density to an atom, whereas c2x will leave some density unattributed.

In pictures

The Siesta test systems is three Fe atoms in a line, centred on the origin. The centring is unhelpful, but c2x can move them to the centre of the cell.

$ c2x -scv --vec2force=0.96i --cubic --xsf -m='(.5,.5,.5)' fe_noncol_kp.RHO Fe.xsf

And after Modify, Force Settings, Length Factor is set to 2, Display, Forces, to on, and a little rotation, something like the below should be seen.

Fe linear timer with vector spin