TABLE OF CONTENTS


ABINIT/pred_simple [ Functions ]

[ Top ] [ Functions ]

NAME

 pred_simple

FUNCTION

 Ionmov predictors (4 & 6) Internal to SCFV

 IONMOV 4:
 Conjugate gradient algorithm for simultaneous optimization
 of potential and ionic degrees of freedom. It can be used with
 iscf=2 and iscf=5 or 6

 IONMOV 5:
 Simple relaxation of ionic positions according to (converged)
 forces. Equivalent to ionmov=1 with zero masses, albeit the
 relaxation coefficient is not vis, but iprcfc.

COPYRIGHT

 Copyright (C) 1998-2018 ABINIT group (DCA, XG, GMR, JCC, SE)
 This file is distributed under the terms of the
 GNU General Public License, see ~abinit/COPYING
 or http://www.gnu.org/copyleft/gpl.txt .
 For the initials of contributors,
 see ~abinit/doc/developers/contributors.txt .

INPUTS

 ab_mover <type(abimover)> : Datatype with all the information
                                needed by the preditor
 zDEBUG : if true print some debugging information

OUTPUT

SIDE EFFECTS

 hist <type(abihist)> : History of positions,forces
                               acell, rprimd, stresses

NOTES

PARENTS

      mover

CHILDREN

SOURCE

 46 #if defined HAVE_CONFIG_H
 47 #include "config.h"
 48 #endif
 49 
 50 #include "abi_common.h"
 51 
 52 
 53 subroutine pred_simple(ab_mover,hist,iexit)
 54 
 55  use defs_basis
 56  use m_profiling_abi
 57  use m_abimover
 58  use m_abihist
 59 
 60 !This section has been created automatically by the script Abilint (TD).
 61 !Do not modify the following lines by hand.
 62 #undef ABI_FUNC
 63 #define ABI_FUNC 'pred_simple'
 64 !End of the abilint section
 65 
 66  implicit none
 67 
 68 !Arguments ------------------------------------
 69 !scalars
 70  type(abimover),intent(in) :: ab_mover
 71  type(abihist),intent(inout) :: hist
 72  integer,intent(in) :: iexit
 73 
 74 !Local variables-------------------------------
 75 !scalars
 76  integer  :: ihist_next,kk,jj
 77 
 78 !***************************************************************************
 79 !Beginning of executable session
 80 !***************************************************************************
 81 
 82  if(iexit/=0)then
 83    return
 84  end if
 85 
 86 !All the operations are internal to scfcv.F90
 87 
 88 !XRED, FCART and VEL
 89  ihist_next = abihist_findIndex(hist,+1)
 90  do kk=1,ab_mover%natom
 91    do jj=1,3
 92      hist%xred(jj,kk, ihist_next)=hist%xred (jj,kk,hist%ihist)
 93      hist%fcart(jj,kk,ihist_next)=hist%fcart(jj,kk,hist%ihist)
 94      hist%vel(jj,kk,ihist_next)=hist%vel(jj,kk,hist%ihist)
 95    end do
 96  end do
 97 
 98 !ACELL
 99  do jj=1,3
100    hist%acell(jj,ihist_next)=hist%acell(jj,hist%ihist)
101  end do
102 
103 !RPRIMD
104  do kk=1,3
105    do jj=1,3
106      hist%rprimd(jj,kk,ihist_next)=hist%rprimd(jj,kk,hist%ihist)
107    end do
108  end do
109 
110  hist%ihist=ihist_next
111 
112 end subroutine pred_simple