jkitchin / jasp

python enhancements of ase.calculators.vasp
Other
27 stars 13 forks source link

Spin Polarized charge densities #46

Open prtkm opened 9 years ago

prtkm commented 9 years ago

Hi John,

What is the role of spin=0 in get_charge_density? https://github.com/jkitchin/jasp/blob/master/jasp/volumetric_data.py#L45

If I call calc.get_charge_density(spin=1) for a spin polarized calculation, I get

Traceback (most recent call last): File "", line 9, in File "/afs/crc.nd.edu/user/p/pmehta1/jasp/jasp/volumetric_data.py", line 57, in get_charge_density return x, y, z, data[spin] IndexError: index 1 is out of bounds for axis 0 with size 1

I think the charge density is the spin up + spin down density (atleast according the the CHGCAR documentation).

"For spinpolarized calculations, two sets of data can be found in the CHGCAR file. The first set contains the total charge density (spin up plus spin down), the second one the magnetization density (spin up minus spin down). For non collinear calculations the CHGCAR file contains the total charge density and the magnetisation density in the x, y and z direction in this order."

There is a self.chgdiff in VaspChargeDensity, that stores the difference between spin-up and spin-down charge densities. https://trac.fysik.dtu.dk/projects/ase/browser/trunk/ase/calculators/vasp.py#L1475

jkitchin commented 9 years ago

once upon a time in Dacapo you could get the spin up and down densities this way. I guess it doesn't work that way in VASP.