Skip to content

Commit

Permalink
Merge pull request #970 from Iximiel/pwPatchMasses2_9
Browse files Browse the repository at this point in the history
Plumed now fetches the masses from pw.x correctly (v2.9)
  • Loading branch information
GiovanniBussi authored Sep 22, 2023
2 parents c473b4d + 38cf420 commit 9bb038f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
13 changes: 9 additions & 4 deletions patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,21 @@ SUBROUTINE plugin_ext_forces()
USE plugin_flags
!
USE cell_base, ONLY : alat, at
USE ions_base, ONLY : tau, nat,amass
USE ions_base, ONLY : tau, nat, amass, ityp
USE force_mod, ONLY : force,sigma
USE control_flags, ONLY : istep
USE ener, ONLY : etot
!
IMPLICIT NONE
!
INTEGER:: i,j
INTEGER:: i,j,ia
REAL(DP) :: at_plumed(3,3)
REAL(DP) :: virial(3,3)
REAL(DP) :: volume
REAL(DP), ALLOCATABLE :: tau_plumed(:,:)
REAL(DP) :: masses_plumed(nat)
!
masses_plumed = 0.0_DP
IF(use_plumed) then
IF(ionode)THEN
at_plumed=alat*at; ! the cell, rescaled properly
Expand All @@ -43,9 +45,12 @@ SUBROUTINE plugin_ext_forces()
-at_plumed(1,2)*at_plumed(3,3)*at_plumed(2,1) &
-at_plumed(1,3)*at_plumed(3,1)*at_plumed(2,2)
virial=-sigma*volume

! the masses in QE are stored per type, see q-e//Modules/ions_base.f90
do ia=1,nat
masses_plumed(ia)=amass(ityp(ia))
end do
CALL plumed_f_gcmd("setStep"//char(0),istep)
CALL plumed_f_gcmd("setMasses"//char(0),amass)
CALL plumed_f_gcmd("setMasses"//char(0),masses_plumed)
CALL plumed_f_gcmd("setForces"//char(0),force)
CALL plumed_f_gcmd("setPositions"//char(0),tau_plumed)
CALL plumed_f_gcmd("setBox"//char(0),at_plumed)
Expand Down
13 changes: 10 additions & 3 deletions patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ SUBROUTINE plugin_ext_forces()
USE plugin_flags, ONLY : use_plumed
!
USE cell_base, ONLY : alat, at
USE ions_base, ONLY : tau, nat,amass
USE ions_base, ONLY : tau, nat, amass, ityp
USE force_mod, ONLY : force,sigma
USE control_flags, ONLY : istep
USE ener, ONLY : etot
Expand All @@ -27,12 +27,14 @@ SUBROUTINE plugin_ext_forces()
!
IMPLICIT NONE
!
INTEGER:: i,j
INTEGER:: i,j,ia
REAL(DP) :: at_plumed(3,3)
REAL(DP) :: virial(3,3)
REAL(DP) :: volume
REAL(DP), ALLOCATABLE :: tau_plumed(:,:)
REAL(DP) :: masses_plumed(nat)
!
masses_plumed = 0.0_DP
IF(use_plumed) then
IF(ionode)THEN
at_plumed=alat*at; ! the cell, rescaled properly
Expand All @@ -46,8 +48,13 @@ SUBROUTINE plugin_ext_forces()
-at_plumed(1,3)*at_plumed(3,1)*at_plumed(2,2)
virial=-sigma*volume

! the masses in QE are stored per type, see q-e//Modules/ions_base.f90
do ia=1,nat
masses_plumed(ia)=amass(ityp(ia))
end do

CALL plumed_f_gcmd("setStep"//char(0),istep)
CALL plumed_f_gcmd("setMasses"//char(0),amass)
CALL plumed_f_gcmd("setMasses"//char(0),masses_plumed)
CALL plumed_f_gcmd("setForces"//char(0),force)
CALL plumed_f_gcmd("setPositions"//char(0),tau_plumed)
CALL plumed_f_gcmd("setBox"//char(0),at_plumed)
Expand Down

1 comment on commit 9bb038f

@PlumedBot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found broken examples in automatic/a-masterclass-22-09.txt
Found broken examples in automatic/a-masterclass-22-11.txt
Found broken examples in automatic/a-masterclass-22-12.txt
Found broken examples in automatic/performance-optimization.txt
Found broken examples in automatic/a-trieste-6.txt
Found broken examples in automatic/munster.txt
Found broken examples in automatic/ANN.tmp
Found broken examples in automatic/EDS.tmp
Found broken examples in automatic/EMMI.tmp
Found broken examples in automatic/ENVIRONMENTSIMILARITY.tmp
Found broken examples in automatic/FOURIER_TRANSFORM.tmp
Found broken examples in automatic/FUNCPATHGENERAL.tmp
Found broken examples in automatic/FUNCPATHMSD.tmp
Found broken examples in automatic/FUNNEL.tmp
Found broken examples in automatic/FUNNEL_PS.tmp
Found broken examples in automatic/GHBFIX.tmp
Found broken examples in automatic/INCLUDE.tmp
Found broken examples in automatic/MAZE_MEMETIC_SAMPLING.tmp
Found broken examples in automatic/MAZE_OPTIMIZER_BIAS.tmp
Found broken examples in automatic/MAZE_RANDOM_ACCELERATION_MD.tmp
Found broken examples in automatic/MAZE_RANDOM_WALK.tmp
Found broken examples in automatic/MAZE_SIMULATED_ANNEALING.tmp
Found broken examples in automatic/MAZE_STEERED_MD.tmp
Found broken examples in automatic/PIV.tmp
Found broken examples in automatic/PLUMED.tmp
Found broken examples in MiscelaneousPP.md

Please sign in to comment.