| GaMD { |
| For i = 1, …, ntcmd // run short initial conventional molecular dynamics |
| Calculate Vmax, Vmin, Vavg, sigmaV |
| End |
| Calc_E_k0(iE,sigma0,Vmax,Vmin,Vavg,sigmaV) |
| For i = 1, …, nteb // Equilibrate the system after adding boost potential |
| deltaV = 0.5*k0*(E-V)**2/(Vmax-Vmin) |
| V = V + deltaV |
| Update Vmax, Vmin, Vavg, sigmaV |
| Calc_E_k0(iE,sigma0,Vmax,Vmin,Vavg,sigmaV) |
| End |
| For i = 1, …, nstlim // run production simulation |
| deltaV = 0.5*k0*(E-V)**2/(Vmax-Vmin) |
| V = V + deltaV |
| End |
| } |
| Subroutine Calc_E_k0(iE,sigma0,Vmax,Vmin,Vavg,sigmaV) { |
| if iE = 1 : |
| E = Vmax |
| k0′ = (sigma0/sigmaV) * (Vmax-Vmin)/(Vmax-Vavg) |
| k0 = min(1.0, k0′) |
| else if iE = 2 : |
| k0″ = (1-sigma0/sigmaV) * (Vmax-Vmin)/(Vavg-Vmin) |
| if 0 < k0” <= 1 : |
| k0 = k0” |
| else |
| k0 = 1.0 |
| end |
| E = Vmin + (Vmax-Vmin)/k0 |
| end |
| } |