LCOV - code coverage report
Current view: top level - mix - stdmix.f90 (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 4 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             : 
       7             : MODULE m_stmix
       8             :   !
       9             :   !      straight mixing,     r.pentcheva, iff, 1996
      10             :   !
      11             :   !     sm   : input charge density of iteration m
      12             :   !     sm1  : input charge density of iteration m+1
      13             :   !     fsm  : output minus input charge densityof iteration m
      14             :   !
      15             : CONTAINS
      16           0 :   SUBROUTINE stmix(&
      17             :        &                 atoms,input,noco,&
      18             :        &                 fsm,fsm_mag,sm)
      19             :     USE m_types_mixvector
      20             :     USE m_types
      21             :     IMPLICIT NONE
      22             :     TYPE(t_input),INTENT(IN)        :: input
      23             :     TYPE(t_noco),INTENT(IN)         :: noco
      24             :     TYPE(t_atoms),INTENT(IN)        :: atoms
      25             :     TYPE(t_mixvector),INTENT(IN)    :: fsm,fsm_mag
      26             :     TYPE(t_mixvector),INTENT(INOUT) :: sm
      27             :     !     ..
      28             :     !     .. Local Scalars ..
      29             :     INTEGER imap
      30             :     REAL,PARAMETER:: tol_6=1.0e-6
      31             :     !     ..
      32             :     !
      33           0 :     sm = sm + input%alpha*fsm
      34             : 
      35           0 :     IF ( ABS(input%spinf-1.0e0).LE.tol_6 .OR. input%jspins.EQ.1 .or.input%imix.ne.0) THEN
      36             :        !  Done with     sm1 = sm + alpha * F(sm)
      37             :        !No spin
      38             :        RETURN
      39             :     ELSE
      40           0 :        sm = sm + input%alpha/2.0*(input%spinf-1.0)*fsm_mag
      41             :        !     -->perform simple mixing with the mixing parameters
      42             :        !        for charge and spin
      43             :        !
      44             :        !       sm1+/_ = (sm+/_) + alpha* F(sm)
      45             :        !                +/-0.5alpha(spinf-1)( F(sm+) + F(sm-) )
      46             :     END IF
      47             : 
      48             :   END SUBROUTINE stmix
      49             : END MODULE m_stmix

Generated by: LCOV version 1.13