spinmix_broyden Subroutine

private subroutine spinmix_broyden(iter, natyp, angles_new, totmoment_atoms, iounit)

Uses

Perform spin mixing of nonco angles by first creating magentization vectors that are then mixed (should be more stable than mixing the angles directly) MdSD: criterion to fix angles (see also rhovalnew)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iter

iteration counter

integer, intent(in) :: natyp

number of atoms (array dimensions)

real(kind=dp), intent(in) :: angles_new(2,natyp)

new directions of the nonco angles

real(kind=dp), intent(in) :: totmoment_atoms(natyp)

length of the magentization vectors

integer, intent(in) :: iounit

output unit where the nonco_angles output file is written