# This is the control script for LAMMPS. echo both log 3.1_Initialize.out #------------------------------------------------------------------------------- # Stage 3.1: Initialize LAMMPS run for 3-d periodic #------------------------------------------------------------------------------- units real boundary p p p atom_style full box tilt large read_data structure.dat pair_style reax/c NULL checkqeq no safezone 10.0 mincap 1000 pair_coeff * * parameters.dat H O variable R equal 0.00198722 variable sysvol equal vol variable sysmass equal mass(all)/6.0221367e+23 variable sysdensity equal v_sysmass/v_sysvol/1.0e-24 variable coulomb equal ecoul+elong variable etotal equal etotal variable pe equal pe variable ke equal ke variable evdwl equal evdwl variable epair equal epair variable ebond equal ebond variable eangle equal eangle variable edihed equal edihed variable eimp equal eimp variable lx equal lx variable ly equal ly variable lz equal lz variable Nthermo equal 0 variable cella equal lx variable cellb equal sqrt(ly*ly+xy*xy) variable cellc equal sqrt(lz*lz+xz*xz+yz*yz) variable cellalpha equal acos((xy*xz+ly*yz)/(v_cellb*v_cellc)) variable cellbeta equal acos(xz/v_cellc) variable cellgamma equal acos(xy/v_cellb) variable p equal press variable pxx equal pxx variable pyy equal pyy variable pzz equal pzz variable pyz equal pyz variable pxz equal pxz variable pxy equal pxy variable sxx equal -pxx variable syy equal -pyy variable szz equal -pzz variable syz equal -pyz variable sxz equal -pxz variable sxy equal -pxy variable fmax equal fmax variable fnorm equal fnorm variable time equal step*dt+0.000001 variable surfacetension equal 0.5*v_lz*(0.5*(v_sxx+v_syy)-v_szz) thermo_style custom step v_time press vol v_sysdensity temp ebond eangle edihed eimp evdwl ecoul etail elong pe ke thermo_modify flush yes # # Set up the fixed and movable groups # group movable union all group fixed subtract all movable compute sum_f1 movable reduce sum fx fy fz variable sum_fx equal c_sum_f1[1] variable sum_fy equal c_sum_f1[2] variable sum_fz equal c_sum_f1[3] log 3.2_Velocities.out #------------------------------------------------------------------------------- # Stage 3.2: Set the initial velocities for $T #------------------------------------------------------------------------------- velocity movable create 300 48 dist gaussian mom yes rot no log 3.3_NVT.out #------------------------------------------------------------------------------- # Stage 3.3: NVT integration for 10 ps with a timestep of 1 fs # Temperature 300 K #------------------------------------------------------------------------------- reset_timestep 0 thermo_style custom step v_time press vol v_sysdensity temp ebond eangle edihed eimp evdwl ecoul etail elong pe ke thermo ${Nthermo} fix 1 movable nvt temp 300 300 100 drag 1.0 fix 2 movable ave/time 1 1000 1000 v_time c_thermo_temp c_thermo_press v_sysvol v_sysdensity v_etotal v_pe v_ke v_evdwl v_coulomb v_sxx v_syy v_szz v_syz v_sxz v_sxy file 3.3_averages.txt off 1 fix 3 movable ave/time 1 1 1 v_time c_thermo_temp c_thermo_press v_sysvol v_sysdensity v_etotal v_pe v_ke v_evdwl v_coulomb v_sxx v_syy v_szz v_syz v_sxz v_sxy file 3.3_instantaneous.txt fix 4 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c restart 10000 3.3.restart dump sci all custom 1000 3.3.xyz id mol type q xs ys zs timestep 1 run 10000 undump sci restart 0 dump sci all custom 10000 3.3.xyz id mol type q xs ys zs run 0 undump sci unfix 1 unfix 2 unfix 3 unfix 4 log 3.4_NPT.out #------------------------------------------------------------------------------- # Stage 3.4: NPT integration for 50 ps with a timestep of 1 fs # Temperature 300 K # Pressure 1 atm #------------------------------------------------------------------------------- reset_timestep 0 thermo_style custom step v_time press vol v_sysdensity temp ebond eangle edihed eimp evdwl ecoul etail elong pe ke thermo ${Nthermo} fix 1 movable npt temp 300 300 100 iso 1 1 500 drag 0 mtk yes nreset 1000 fix 2 movable ave/time 1 4999 5000 v_time c_thermo_temp c_thermo_press v_sysvol v_sysdensity v_etotal v_cella v_cellb v_cellc v_cellalpha v_cellbeta v_cellgamma v_pe v_ke v_evdwl v_coulomb v_sxx v_syy v_szz v_syz v_sxz v_sxy file 3.4_averages.txt off 1 fix 3 movable ave/time 5 1 5 v_time c_thermo_temp c_thermo_press v_sysvol v_sysdensity v_etotal v_cella v_cellb v_cellc v_cellalpha v_cellbeta v_cellgamma v_pe v_ke v_evdwl v_coulomb v_sxx v_syy v_szz v_syz v_sxz v_sxy file 3.4_instantaneous.txt fix 4 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c restart 50000 3.4.restart dump sci all custom 5000 3.4.xyz id mol type q xs ys zs timestep 1 run 50000 undump sci restart 0 dump sci all custom 50000 3.4.xyz id mol type q xs ys zs run 0 undump sci unfix 1 unfix 2 unfix 3 unfix 4