OrderN / CONQUEST-release

Full public release of large scale and linear scaling DFT code CONQUEST
http://www.order-n.org/
MIT License
96 stars 25 forks source link

Problem in setting spin-dependent atomic charge density #127

Closed tsuyoshi38 closed 1 year ago

tsuyoshi38 commented 1 year ago

For multi-element systems, even when we set different electron numbers for spin up and down electrons of some elements, CONQUEST does not set the initial density is not set properly.
It is because the flag flag_InitialAtomicSpin in initial_read_module.f90 is not set properly for multi-element systems, I think. It is now set in the do-loop of species for every species, thus can be overwritten. We will correct it soon, but for now, the problem may be solved if we set the element which needs to be spin polarized as the last element.

tsuyoshi38 commented 1 year ago

I am not completely sure, but I think.. even with the correction mentioned above, the present version of CONQUEST seems to have a problem in setting the initial spin-dependent atomic charge density.
In addition to this, even after we get the spin-polarized SCF density, the density made from K-matrix is found to be not spin polarized again. It is strange. I will check more. (Kmatrix should be spin dependent, of course.) (I am now working with "f_rework_output".)

lionelalexandre commented 1 year ago

I have found a similar issue in the merged f-rework-output(-ase). Initialisation of spin-up and spin-dn can be fixed. But still problems in running spin-pol calculation. Note that this issue doesn't exist in f-rework-output-ase which is based on a older version of f-rework-output. This will help to find the problem which should be located in a few commits. I m working on.

tsuyoshi38 commented 1 year ago

Following the comment by Nakata-san about ne_magn_in_cell, I have realized that the problem probably comes from the incorrect setting of ne_spin_in_cell. Then, This value was not properly set and I have just fixed it when spin dependent electron numbers are set for some species.
(by Setting Atom.SpinNeUp and Atom.SpinNeDn in the block of atomic species. )

tsuyoshi38 commented 1 year ago

One comment: there are several ways of setting initial spin density, but I assume, if we set Atom.SpinNeUp and Atom.SpinNeDn, then we ignore Spin.Magn. Is it okay ? (In the present version of CONQUEST, if we set Spin.Magn, then Spin.NeUP(not Atom.SpinNeUp) and Spin.NeDN are ignored.)

I have not checked how it works when Spin.FixSpin is true because I cannot think of any examples for this case.

davidbowler commented 1 year ago

Should be fixed by #133 (merge of f-rework-output)

davidbowler commented 1 year ago

Fixed by #133