TABLE OF CONTENTS
ABINIT/pred_simple [ 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