LCOV - code coverage report
Current view: top level - eigen - hsmt_mtNocoPot_offdiag.F90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 20 0.0 %
Date: 2019-09-08 04:53:50 Functions: 0 1 0.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
       3             : ! This file is part of FLEUR and available as free software under the conditions
       4             : ! of the MIT license as expressed in the LICENSE file in more detail.
       5             : !--------------------------------------------------------------------------------
       6             : MODULE m_hsmt_mtNocoPot_offdiag
       7             :   USE m_juDFT
       8             :   IMPLICIT NONE
       9             : CONTAINS
      10           0 :   SUBROUTINE hsmt_mtNocoPot_offdiag(n,mpi,sym,atoms,noco,cell,lapw,td,fj,gj,hmat_tmp,hmat)
      11             :     !Calculate the contribution from the local-spin-offdiagonal potential
      12             :     !The following idea is used:
      13             :     !Calculate the matrix by using non-spherical algorithm. This is done only once, since
      14             :     !this sets up both the local spin-up-down and the spin-down-up part (it calculates the
      15             :     !full matrix). So both can be updated from this matrix. But since the off-diagonal
      16             :     !local potential is real we have to call the routine twice and use the chi_one factor
      17             :     !to get the imaginary contribution
      18             :     USE m_types
      19             :     USE m_hsmt_nonsph
      20             :     USE m_hsmt_distspins
      21             :     USE m_hsmt_spinor
      22             :     IMPLICIT NONE
      23             :     TYPE(t_mpi),INTENT(IN)        :: mpi
      24             :     TYPE(t_sym),INTENT(IN)        :: sym
      25             :     TYPE(t_noco),INTENT(IN)       :: noco
      26             :     TYPE(t_cell),INTENT(IN)       :: cell
      27             :     TYPE(t_atoms),INTENT(IN)      :: atoms
      28             :     TYPE(t_lapw),INTENT(IN)       :: lapw
      29             :     TYPE(t_tlmplm),INTENT(IN)     :: td
      30             : #if defined CPP_GPU
      31             :     REAL,MANAGED,INTENT(IN)    :: fj(:,:,:,:),gj(:,:,:,:)
      32             : #else
      33             :     REAL,INTENT(IN)            :: fj(:,0:,:,:),gj(:,0:,:,:)
      34             : #endif
      35             :     !     .. Scalar Arguments ..
      36             :     INTEGER, INTENT (IN)          :: n
      37             :     COMPLEX                       :: chi_one,chi(2,2)
      38             :     CLASS(t_mat),INTENT(INOUT)    :: hmat(:,:),hmat_tmp
      39             : 
      40           0 :     chi_one=1.0
      41           0 :     CALL hmat_tmp%clear()
      42             :     !The spin1,2 matrix is calculated(real part of potential)
      43             :     CALL hsmt_nonsph(n,mpi,sym,atoms,3,1,1,chi_one,noco,cell,lapw,td,&
      44           0 :          fj(:,0:,1,:),gj(:,0:,2,:),hmat_tmp)
      45             : 
      46           0 :     CALL hsmt_spinor(3,n,noco,chi) !spinor for off-diagonal part
      47           0 :     CALL hsmt_distspins(chi,hmat_tmp,hmat)
      48             : 
      49           0 :     CALL hmat_tmp%TRANSPOSE()
      50           0 :     hmat_tmp%data_c=CONJG(hmat_tmp%data_c)
      51           0 :     CALL hsmt_spinor(4,n,noco,chi) !spinor for off-diagonal part
      52           0 :     CALL hsmt_distspins(chi,hmat_tmp,hmat)
      53             : 
      54             : 
      55           0 :     CALL hmat_tmp%clear()
      56             :     !The spin1,2 matrix is calculated(imag part of potential)
      57           0 :     chi_one=CMPLX(0.,1.)
      58             :     CALL hsmt_nonsph(n,mpi,sym,atoms,4,1,1,chi_one,noco,cell,lapw,td,&
      59           0 :          fj(:,0:,1,:),gj(:,0:,2,:),hmat_tmp)
      60             : 
      61           0 :     CALL hsmt_spinor(3,n,noco,chi) 
      62           0 :     CALL hsmt_distspins(chi,hmat_tmp,hmat)
      63             : 
      64           0 :     CALL hmat_tmp%TRANSPOSE()
      65           0 :     hmat_tmp%data_c=CONJG(hmat_tmp%data_c)
      66           0 :     CALL hsmt_spinor(4,n,noco,chi) 
      67           0 :     CALL hsmt_distspins(chi,hmat_tmp,hmat)
      68           0 :   END SUBROUTINE hsmt_mtNocoPot_offdiag
      69             : END MODULE m_hsmt_mtNocoPot_offdiag

Generated by: LCOV version 1.13