Skip to content
Snippets Groups Projects
Commit 84d601ff authored by Philipp Rüssmann's avatar Philipp Rüssmann
Browse files

Add <soc_no_spinflip> test option

Sets the spin-flip terms of the SOC Hamiltonian to zero in spinorbit_ham.
Usage: Set '<soc_no_spinflip>= True' in the inputcard
parent 9ab80078
No related branches found
No related tags found
No related merge requests found
......@@ -124,6 +124,7 @@ module mod_runoptions
logical :: write_angles_alliter= .false. !! write out noncollinear angles for all iterations
logical :: write_tmat_all= .false. !! write out the tmat for all atoms and energies
logical :: write_double_precision= .false. !! write out kkrflex files in double precision
logical :: soc_no_spinflip= .false. !! set spin-flip components of the SOC Hamiltonian to zero
!some old run and test options have been removed:
! 'atptshft': replaced by presence or absence of IVSHIFT in inputcard
......@@ -251,6 +252,7 @@ module mod_runoptions
call set_runoption(write_double_precision , '<write_double_precision>')
call set_runoption(calc_onsite_only , '<calc_onsite_only>')
call set_runoption(use_gmat_unity , '<use_gmat_unity>')
call set_runoption(soc_no_spinflip , '<soc_no_spinflip>')
end subroutine read_runoptions
......@@ -799,6 +801,7 @@ module mod_runoptions
call mpi_bcast(write_double_precision , 1, mpi_logical, master, mpi_comm_world, ierr)
call mpi_bcast(calc_onsite_only , 1, mpi_logical, master, mpi_comm_world, ierr)
call mpi_bcast(use_gmat_unity , 1, mpi_logical, master, mpi_comm_world, ierr)
call mpi_bcast(soc_no_spinflip , 1, mpi_logical, master, mpi_comm_world, ierr)
end subroutine bcast_runoptions
#endif
......@@ -919,6 +922,7 @@ module mod_runoptions
write(iounit, '(A35,1x,1L,3x,A)') '<write_double_precision>=', write_double_precision, "write out kkrflex files in double precision"
write(iounit, '(A35,1x,1L,3x,A)') '<calc_onsite_only>=', calc_onsite_only, "calculate not the full Green function for the density but take the onsite part alone"
write(iounit, '(A35,1x,1L,3x,A)') '<use_gmat_unity>=', use_gmat_unity, "set the structural GF to the unity matrix for test purposes"
write(iounit, '(A35,1x,1L,3x,A)') '<soc_no_spinflip>=', soc_no_spinflip, "set spin-flip components of the SOC Hamiltonian to zero"
end subroutine print_runoptions
......
......@@ -33,7 +33,7 @@ contains
use :: mod_datatypes, only: dp
use :: mod_constants, only: czero
use :: mod_runoptions, only: set_cheby_nosoc, decouple_spin_cheby
use :: mod_runoptions, only: set_cheby_nosoc, decouple_spin_cheby, soc_no_spinflip
use :: mod_cheb, only: getclambdacinv
use :: mod_spin_orbit_compl, only: spin_orbit_compl
use :: mod_rotatespinframe, only: rotatematrix
......@@ -134,6 +134,13 @@ contains
! do nothing
end if
! test option that deactivates the spin-flip terms of the SOC Hamiltonian
if (soc_no_spinflip) then
! set off-diagonal lm blocks in spin space to zero
lsmh(1+lmmaxd:2*lmmaxd, 1:lmmaxd) = czero
lsmh(1:lmmaxd, 1+lmmaxd:2*lmmaxd) = czero
end if
! contruct prefactor of spin-orbit hamiltonian
hsofac = 0e0_dp
vnspll1 = (0e0_dp, 0e0_dp)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment