Closed tfrederiksen closed 1 year ago
Yes, when upscaling a density matrix, you need to halve the density, since the unpolardzed to polarized just copies the elements. So
DM = DM.transform(...) / 2
Should work, also note the charges in the electrode which should hint at this.
You're absolutely correct. With the scaling the script works, thanks!
For completeness, the EDM
should in principle also be divided by a factor two, right? (In my test case such a factor only seems to affect the calculated forces in the electrodes).
Yes, for density related stuff it is important, for the Hamiltonian it is not. :)
For completeness, the
EDM
should in principle also be divided by a factor two, right? (In my test case such a factor only seems to affect the calculated forces in the electrodes).
Probably because of having DM.update cross which means that the EDM in the device gets updated. :)
Describe the issue I wish to transform a
.TSDE
file, obtained from an unpolarized transiesta calculation, into a new one to be used in a spin-polarized run. However, I face some problems with the following script for a simple 1D test system:1. Transformation spin-polarized to spin-polarized is OK As a sanity check, the following read-write script works well if one reads spin-polarized transiesta outputs (but not what I want):
I.e., read and overwrite of the
.DM
and.TSDE
files makes a good starting point for another transiesta run:2. Transformation unpolarized to spin-polarized fails Now, if I instead change the filehandle to look up the outputs from a converged, unpolarized run, i.e., changing the second line to
which is basically what I wanted, the charges appear to be completely wrong with the
.DM
and.TSDE
written by sisl:3. Reference unpolarized output For reference, this is the convergence loop from the unpolarized run:
Any clues what could be the issue here?
Version details
(Siesta Version : 4.1.5)