# Use the OPLS-AA force field for all species. import /usr/local/moltemplate/moltemplate/force_fields/oplsaa.lt import PolyNIPAM.lt # Define the SPC water and ions as in the OPLS-AA Ca inherits OPLSAA { write("Data Atoms"){ $atom:a1 $mol:. @atom:354 0.0 0.00000 0.00000 0.000000 } } Cl inherits OPLSAA { write("Data Atoms"){ $atom:a1 $mol:. @atom:344 0.0 0.00000 0.00000 0.000000 } } SPC inherits OPLSAA { write("Data Atoms"){ $atom:O $mol:. @atom:76 0. 0.0000000 0.00000 0.000000 $atom:H1 $mol:. @atom:77 0. 0.8164904 0.00000 0.5773590 $atom:H2 $mol:. @atom:77 0. -0.8164904 0.00000 0.5773590 } write("Data Bond List") { $bond:OH1 $atom:O $atom:H1 $bond:OH2 $atom:O $atom:H2 } } # Create the sample. wat=new SPC[500] pol=new PolyNIPAM[1] cat=new Ca[1] ani=new Cl[2] # Periodic boundary conditions: write_once("Data Boundary"){ 0 26 xlo xhi 0 26 ylo yhi 0 26 zlo zhi } # Define the input variables. write_once("In Init"){ # Input variables. variable run string sample01 # output name variable ts equal 2 # timestep variable temp equal 298.15 # equilibrium temperature variable p equal 1. # equilibrium pressure variable equi equal 30000 # equilibration steps # PBC (set them before the creation of the box). boundary p p p neighbor 3 bin } # Run an NVT simulation. write_once("In Run"){ # Set the output. thermo 1000 thermo_style custom step etotal evdwl ecoul elong ebond eangle edihed eimp pe ke temp press atoms vol density cpu thermo_modify flush yes compute pe1 all pe/atom pair dump TRJ all custom 100 \$\{run\}.dump id xu yu zu c_pe1 # Minimise the input structure, just in case. minimize .01 .001 1000 100000 write_data \$\{run\}.min # Set the constrains. group watergroup type @atom:76 @atom:77 fix 0 watergroup shake 0.0001 10 0 b @bond:042_043 a @angle:043_042_043 # Short annealing. timestep \$\{ts\} fix 1 all nvt temp \$\{temp\} \$\{temp\} \$(100*dt) velocity all create \$\{temp\} 315443 run \$\{equi\} unfix 1 }