Development of a Reactive Force Field for Simulating Photoinitiated Acrylate Polymerization
文中对MD的过程是这么描述的
All MD simulations were performed in LAMMPS, and all initial configurations with different monomers were independently generated using Packmol [size=17.008px][url=](24)[/url] where molecules are randomly distributed, and atom overlaps were minimized. The initial box sizes were determined assuming the densities of the liquid monomers were the same as experimental values. All initial configurations were subjected to equilibration. During equilibration, a series of short trajectories with short time steps were performed and the temperature was carefully ramped up from 100 to 300 K in the NVT (canonical) ensemble followed by 500 ps in the NPT (isothermal–isobaric) ensemble at 300 K and 1 atm to eliminate any high-energy configurations and relax the systems across the periodic boundaries. The liquid monomer properties were then taken from the equilibrated systems at ambient conditions. For radical polymerization reactions, CH4 was first introduced to the monomers and once the systems were equilibrated, one of the hydrogens on CH4 was removed to generate the CH3• radical and initiate the reaction. Reactions were run in NPT for 20 ns. For all MD simulations, the temperature was maintained using a Nosé–Hoover thermostat with a damping parameter of 25 fs, and pressure was maintained using a Nosé–Hoover barostat with a damping parameter of 250 fs. Except during the temperature ramping process, time steps of 0.25 fs were used for all runs.
# NVT ensemble: Ramp up temperature from 100 K to 300 K
reset_timestep 0
timestep 0.25
fix 1 all nvt/kk temp ${Initial_T} ${Final_T} ${T_damp}
fix 2 all qeq/reaxff/kk 1 0.0 10.0 1e-6 reaxff
# Print out thermo data
thermo_style custom step cpu time temp press density etotal c_msd[4] cpuremain
thermo 1000
# Save Output and Log
variable Ramp_up_file string "${Base_Name}_Ramp_up.lammpstrj"
variable Ramp_up_log string "${Base_Name}_Ramp_up.log"
dump 1 all custom 1000 ${Ramp_up_file} id type x y z ix iy iz
dump_modify 1 sort id
log ${Ramp_up_log}
# Run
run 50000
variable Ramp_up_restart string "${Base_Name}_Ramp_up.restart"
write_restart ${Ramp_up_restart}
# NPT ensemble: Equilibrate at 300 K and 1 atm (500 ps)
unfix 1
undump 1
fix 3 all npt/kk temp ${Final_T} ${Final_T} ${T_damp} iso ${P} ${P} ${P_damp}
# Print out thermo data
thermo_style custom step cpu time temp press density etotal c_msd[4] cpuremain
thermo 1000
# Save Output and Log
variable Equilibration_file string "${Base_Name}_Equilibration.lammpstrj"
variable Equilibration_log string "${Base_Name}_Equilibration.log"
dump 2 all custom 5000 ${Equilibration_file} id type x y z ix iy iz
dump_modify 2 sort id
log ${Equilibration_log}
# Run
run 2000000
variable Equilibration_restart string "${Base_Name}_Equilibration.restart"
write_restart ${Equilibration_restart}