diff --git a/examples/QUANTUM/NWChem/README b/examples/QUANTUM/NWChem/README index 3d570cb609..fbacd54865 100644 --- a/examples/QUANTUM/NWChem/README +++ b/examples/QUANTUM/NWChem/README @@ -106,14 +106,52 @@ Step 4: run the 2-water QMMM problem for a few steps % cd ~/lammps/examples/QUANTUM/NWChem -lmp_mpi -mdi "-name LMP -role DRIVER -method TCP -port 8021" -log log.water.nwchem.qmmm.tcp.1 -in in.water.nwchem.qmmm & +lmp_mpi -mdi "-name LMP -role DRIVER -method TCP -port 8021" -log log.water,qmmm.tcp.1 -in in.water.qmmm & python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method TCP -port 8021 -hostname localhost" template.water.nw water.dimer.nw log.water.pwdft.qmmm.tcp.1 # Run with MPI: 1 proc each -mpirun -np 1 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" -log log.water.nwchem.qmmm.mpi.1 -in in.water.nwchem.qmmm : -np 1 python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method MPI" template.water.nw water.dimer.nw log.water.pwdft.qmmm.mpi.1 +mpirun -np 1 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" -log log.water.qmmm.mpi.1 -in in.water.qmmm : -np 1 python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method MPI" template.water.nw water.dimer.nw log.water.pwdft.qmmm.mpi.1 # Run in plugin mode: 1 proc -lmp_mpi -mdi "-name LMP -role DRIVER -method LINK -plugin_path /home/sjplimp/work_qm" -log log.water.nwchem.qmmm.plugin.1 -in in.water.nwchem.qmmm.plugin +lmp_mpi -mdi "-name LMP -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/examples/QUANTUM/NWChem" -log log.water.qmmm.plugin.1 -in in.water.qmmm.plugin + +--------------------------------- +--------------------------------- + +Step 5: run the zeolite/methane QMMM problem for a few steps + +% cd ~/lammps/examples/QUANTUM/NWChem + +lmp_mpi -mdi "-name LMP -role DRIVER -method TCP -port 8021" -log log.zeolite.qmmm.tcp.1 -in in.zeolite.qmmm & + +python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method TCP -port 8021 -hostname localhost" template.methane.nw methane.nw log.zeolite.pwdft.qmmm.tcp.1 + +# Run with MPI: 1 proc each + +mpirun -np 1 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" -log log.zeolite.qmmm.mpi.1 -in in.zeolite.qmmm : -np 1 python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method MPI" template.methane.nw methane.nw log.zeolite.pwdft.qmmm.mpi.1 + +# Run in plugin mode: 1 proc + +lmp_mpi -mdi "-name LMP -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/examples/QUANTUM/NWChem" -log log.zeolite.qmmm.plugin.1 -in in.zeolite.qmmm.plugin + +--------------------------------- +--------------------------------- + +Step 6: run multiple W geometries + +% cd ~/lammps/examples/QUANTUM/NWChem + +lmp_mpi -mdi "-name LMP -role DRIVER -method TCP -port 8021" -log log.series.tcp.1 -in in.series & + +python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method TCP -port 8021 -hostname localhost" template.w.nw w.nw log.series.pwdft.tcp.1 + +# Run with MPI: 1 proc each + +mpirun -np 1 lmp_mpi -mdi "-name LMP -role DRIVER -method MPI" -log log.series.mpi.1 -in in.series : -np 1 python nwchem_mdi.py -mdi "-name NWChem -role ENGINE -method MPI" template.w.nw w.nw log.series.pwdft.mpi.1 + +# Run in plugin mode: 1 proc + +lmp_mpi -mdi "-name LMP -role DRIVER -method LINK -plugin_path /home/sjplimp/lammps/git/examples/QUANTUM/NWChem" -log log.series.plugin.1 -in in.series.plugin diff --git a/examples/QUANTUM/NWChem/data.w.bcc b/examples/QUANTUM/NWChem/data.w.bcc new file mode 100644 index 0000000000..62d758a4d2 --- /dev/null +++ b/examples/QUANTUM/NWChem/data.w.bcc @@ -0,0 +1,12 @@ +LAMMPS data file from VASP file VASP/POSCAR_bcc + +2 atoms +1 atom types +0.0 3.1654062429393064 xlo xhi +0.0 3.1654062429393064 ylo yhi +0.0 3.1654062429393064 zlo zhi + +Atoms + +1 1 0 0 0 +2 1 1.5827031214696532 1.5827031214696532 1.5827031214696532 diff --git a/examples/QUANTUM/NWChem/data.w.bcc_222 b/examples/QUANTUM/NWChem/data.w.bcc_222 new file mode 100644 index 0000000000..0157229f1c --- /dev/null +++ b/examples/QUANTUM/NWChem/data.w.bcc_222 @@ -0,0 +1,29 @@ +LAMMPS data file from VASP file VASP/POSCAR_bcc_222 + +18 atoms +1 atom types +0.0 8.9531208783704628 xlo xhi +0.0 3.8768150619108339 ylo yhi +0.0 45.534159244872015 zlo zhi + 2.2382802195926157 0 0 xy xz yz + +Atoms + +1 1 0 0 15 +2 1 6.7148406587778462 1.2922716873036106 15.913774073227765 +3 1 4.4765604391852314 2.5845433746072226 16.827548146455531 +4 1 11.191401097963077 3.876815061910833 17.741322219683298 +5 1 6.7148406587778471 1.2922716873036111 18.655096292911061 +6 1 4.4765604391852305 2.5845433746072222 19.568870366138828 +7 1 2.2382802195926152 3.876815061910833 20.482644439366592 +8 1 6.7148406587778453 1.2922716873036111 21.396418512594359 +9 1 4.4765604391852305 2.5845433746072222 22.310192585822122 +10 1 2.2382802195926148 3.8768150619108321 23.223966659049893 +11 1 6.7148406587778453 1.2922716873036102 24.137740732277656 +12 1 4.4765604391852305 2.5845433746072195 25.051514805505423 +13 1 2.2382802195926148 3.8768150619108321 25.965288878733183 +14 1 6.7148406587778444 1.2922716873036084 26.879062951960954 +15 1 4.4765604391852314 2.5845433746072204 27.792837025188717 +16 1 2.2382802195926139 3.8768150619108304 28.706611098416481 +17 1 6.7148406587778453 1.2922716873036102 29.620385171644248 +18 1 4.4765604391852269 2.5845433746072204 30.534159244872015 diff --git a/examples/QUANTUM/NWChem/data.w.diamond b/examples/QUANTUM/NWChem/data.w.diamond new file mode 100644 index 0000000000..1944b651a5 --- /dev/null +++ b/examples/QUANTUM/NWChem/data.w.diamond @@ -0,0 +1,14 @@ +LAMMPS data file from VASP file VASP/POSCAR_diamond + +4 atoms +1 atom types +0.0 2.8200563642280549 xlo xhi +0.0 2.8200563642280549 ylo yhi +0.0 3.9881619569478763 zlo zhi + +Atoms + +1 1 0 0 0 +2 1 1.4100281821140275 0 0.99704048923696909 +3 1 1.4100281821140275 1.4100281821140275 1.9940809784739382 +4 1 0 1.4100281821140275 2.991121467710907 diff --git a/examples/QUANTUM/NWChem/data.w.fcc_001 b/examples/QUANTUM/NWChem/data.w.fcc_001 new file mode 100644 index 0000000000..9578ba0f85 --- /dev/null +++ b/examples/QUANTUM/NWChem/data.w.fcc_001 @@ -0,0 +1,28 @@ +LAMMPS data file from VASP file VASP/POSCAR_fcc_001 + +18 atoms +1 atom types +0.0 4.4765604391852305 xlo xhi +0.0 4.4765604391852305 ylo yhi +0.0 113.81190612996821 zlo zhi + +Atoms + +1 1 0 0 30 +2 1 2.2382802195926152 2.2382802195926152 33.165406242939305 +3 1 0 0 36.33081248587861 +4 1 2.2382802195926152 2.2382802195926152 39.496218728817922 +5 1 0 0 42.661624971757227 +6 1 2.2382802195926152 2.2382802195926152 45.827031214696532 +7 1 0 0 48.992437457635837 +8 1 2.2382802195926152 2.2382802195926152 52.157843700575143 +9 1 0 0 55.323249943514455 +10 1 2.2382802195926152 2.2382802195926152 58.488656186453753 +11 1 0 0 61.654062429393065 +12 1 2.2382802195926152 2.2382802195926152 64.819468672332363 +13 1 0 0 67.984874915271675 +14 1 2.2382802195926152 2.2382802195926152 71.150281158210987 +15 1 0 0 74.315687401150285 +16 1 2.2382802195926152 2.2382802195926152 77.481093644089597 +17 1 0 0 80.646499887028909 +18 1 2.2382802195926152 2.2382802195926152 83.811906129968207 diff --git a/examples/QUANTUM/NWChem/data.w.sc_001 b/examples/QUANTUM/NWChem/data.w.sc_001 new file mode 100644 index 0000000000..8a5b70046a --- /dev/null +++ b/examples/QUANTUM/NWChem/data.w.sc_001 @@ -0,0 +1,19 @@ +LAMMPS data file from VASP file VASP/POSCAR_sc_001 + +9 atoms +1 atom types +0.0 2.5123845999742804 xlo xhi +0.0 2.5123845999742804 ylo yhi +0.0 50.099076799794247 zlo zhi + +Atoms + +1 1 0 0 15.000000000000002 +2 1 0 0 17.512384599974283 +3 1 0 0 20.024769199948562 +4 1 0 0 22.537153799922841 +5 1 0 0 25.049538399897123 +6 1 0 0 27.561922999871406 +7 1 0 0 30.074307599845682 +8 1 0 0 32.586692199819964 +9 1 0 0 35.099076799794247 diff --git a/examples/QUANTUM/NWChem/data.water.mm b/examples/QUANTUM/NWChem/data.water.mm new file mode 100644 index 0000000000..4a9f54f501 --- /dev/null +++ b/examples/QUANTUM/NWChem/data.water.mm @@ -0,0 +1,45 @@ +LAMMPS data file for water dimer in large box + +6 atoms +4 bonds +2 angles +2 atom types +1 bond types +1 angle types +-6.879301 6.879301 xlo xhi +-6.879301 6.879301 ylo yhi +-6.879301 6.879301 zlo zhi + +Masses + +1 15.99491 +2 1.008 + +Bond Coeffs + +1 554.25 1.0 + +Angle Coeffs + +1 47.744 109.4 + +Atoms + +1 1 1 -0.8476 0.161560 -0.052912 0.033173 +2 1 2 0.4238 0.803054 0.369132 -0.511660 +3 1 2 0.4238 -0.325571 -0.669574 -0.488560 +4 2 1 -0.8476 0.021259 0.506771 2.831278 +5 2 2 0.4238 -0.721039 1.083100 2.758378 +6 2 2 0.4238 0.158220 0.181883 1.945696 + +Bonds + +1 1 1 2 +2 1 1 3 +3 1 4 5 +4 1 4 6 + +Angles + +1 1 2 1 3 +2 1 5 4 6 diff --git a/examples/QUANTUM/NWChem/data.water.nwchem.qmmm b/examples/QUANTUM/NWChem/data.water.qmmm similarity index 100% rename from examples/QUANTUM/NWChem/data.water.nwchem.qmmm rename to examples/QUANTUM/NWChem/data.water.qmmm diff --git a/examples/QUANTUM/NWChem/data.zeolite b/examples/QUANTUM/NWChem/data.zeolite new file mode 100644 index 0000000000..4a038142c4 --- /dev/null +++ b/examples/QUANTUM/NWChem/data.zeolite @@ -0,0 +1,114 @@ +LAMMPS data file for SiO2 zeolite with one methane moleclue + +77 atoms +4 atom types +4 bonds +1 bond types +6 angles +1 angle types +-5.9266 5.9926 xlo xhi +-5.9266 5.9926 ylo yhi +-5.9266 5.9926 zlo zhi + +Masses + +1 28.0855 +2 15.99491 +3 12.0 +4 1.008 + +Atoms + +1 0 1 1.910418 0.00000 4.38651 2.18123 +2 0 1 1.910418 0.00000 -4.38651 2.18123 +3 0 1 1.910418 0.00000 4.38651 -2.18123 +4 0 1 1.910418 0.00000 -4.38651 -2.18123 +5 0 1 1.910418 2.18123 0.00000 4.38651 +6 0 1 1.910418 2.18123 0.00000 -4.38651 +7 0 1 1.910418 -2.18123 0.00000 4.38651 +8 0 1 1.910418 -2.18123 0.00000 -4.38651 +9 0 1 1.910418 4.38651 2.18123 0.00000 +10 0 1 1.910418 -4.38651 2.18123 0.00000 +11 0 1 1.910418 4.38651 -2.18123 0.00000 +12 0 1 1.910418 -4.38651 -2.18123 0.00000 +13 0 1 1.910418 4.38651 0.00000 -2.18123 +14 0 1 1.910418 -4.38651 0.00000 -2.18123 +15 0 1 1.910418 4.38651 0.00000 2.18123 +16 0 1 1.910418 -4.38651 0.00000 2.18123 +17 0 1 1.910418 0.00000 2.18123 -4.38651 +18 0 1 1.910418 0.00000 2.18123 4.38651 +19 0 1 1.910418 0.00000 -2.18123 -4.38651 +20 0 1 1.910418 0.00000 -2.18123 4.38651 +21 0 1 1.910418 2.18123 4.38651 0.00000 +22 0 1 1.910418 2.18123 -4.38651 0.00000 +23 0 1 1.910418 -2.18123 4.38651 0.00000 +24 0 1 1.910418 -2.18123 -4.38651 0.00000 +25 0 2 -0.955209 0.00000 -5.92660 2.64860 +26 0 2 -0.955209 0.00000 -5.92660 -2.64860 +27 0 2 -0.955209 2.64860 0.00000 -5.92660 +28 0 2 -0.955209 -2.64860 0.00000 -5.92660 +29 0 2 -0.955209 -5.92660 2.64860 0.00000 +30 0 2 -0.955209 -5.92660 -2.64860 0.00000 +31 0 2 -0.955209 -5.92660 0.00000 -2.64860 +32 0 2 -0.955209 -5.92660 0.00000 2.64860 +33 0 2 -0.955209 0.00000 2.64860 -5.92660 +34 0 2 -0.955209 0.00000 -2.64860 -5.92660 +35 0 2 -0.955209 2.64860 -5.92660 0.00000 +36 0 2 -0.955209 -2.64860 -5.92660 0.00000 +37 0 2 -0.955209 0.00000 3.45272 3.45272 +38 0 2 -0.955209 0.00000 -3.45272 3.45272 +39 0 2 -0.955209 0.00000 3.45272 -3.45272 +40 0 2 -0.955209 0.00000 -3.45272 -3.45272 +41 0 2 -0.955209 3.45272 0.00000 3.45272 +42 0 2 -0.955209 3.45272 0.00000 -3.45272 +43 0 2 -0.955209 -3.45272 0.00000 3.45272 +44 0 2 -0.955209 -3.45272 0.00000 -3.45272 +45 0 2 -0.955209 3.45272 3.45272 0.00000 +46 0 2 -0.955209 -3.45272 3.45272 0.00000 +47 0 2 -0.955209 3.45272 -3.45272 0.00000 +48 0 2 -0.955209 -3.45272 -3.45272 0.00000 +49 0 2 -0.955209 1.28702 1.28702 4.12598 +50 0 2 -0.955209 -1.28702 -1.28702 4.12598 +51 0 2 -0.955209 -1.28702 1.28702 -4.12598 +52 0 2 -0.955209 1.28702 -1.28702 -4.12598 +53 0 2 -0.955209 4.12598 1.28702 1.28702 +54 0 2 -0.955209 4.12598 -1.28702 -1.28702 +55 0 2 -0.955209 -4.12598 -1.28702 1.28702 +56 0 2 -0.955209 -4.12598 1.28702 -1.28702 +57 0 2 -0.955209 1.28702 4.12598 1.28702 +58 0 2 -0.955209 -1.28702 4.12598 -1.28702 +59 0 2 -0.955209 1.28702 -4.12598 -1.28702 +60 0 2 -0.955209 -1.28702 -4.12598 1.28702 +61 0 2 -0.955209 1.28702 1.28702 -4.12598 +62 0 2 -0.955209 -1.28702 -1.28702 -4.12598 +63 0 2 -0.955209 1.28702 -1.28702 4.12598 +64 0 2 -0.955209 -1.28702 1.28702 4.12598 +65 0 2 -0.955209 1.28702 4.12598 -1.28702 +66 0 2 -0.955209 -1.28702 4.12598 1.28702 +67 0 2 -0.955209 -1.28702 -4.12598 -1.28702 +68 0 2 -0.955209 1.28702 -4.12598 1.28702 +69 0 2 -0.955209 4.12598 1.28702 -1.28702 +70 0 2 -0.955209 4.12598 -1.28702 1.28702 +71 0 2 -0.955209 -4.12598 1.28702 1.28702 +72 0 2 -0.955209 -4.12598 -1.28702 -1.28702 +73 1 3 -0.66 0.00000 0.00000 0.00000 +74 1 4 0.165 0.00000 -0.89000 -0.62930 +75 1 4 0.165 0.00000 0.89000 -0.62930 +76 1 4 0.165 -0.89000 0.00000 0.62930 +77 1 4 0.165 0.89000 0.00000 0.62930 + +Bonds + +1 1 73 74 +2 1 73 75 +3 1 73 76 +4 1 73 77 + +Angles + +1 1 74 73 75 +2 1 74 73 76 +3 1 74 73 77 +4 1 75 73 76 +5 1 75 73 77 +6 1 76 73 77 diff --git a/examples/QUANTUM/NWChem/in.series b/examples/QUANTUM/NWChem/in.series new file mode 100644 index 0000000000..4eaa5ae186 --- /dev/null +++ b/examples/QUANTUM/NWChem/in.series @@ -0,0 +1,36 @@ +# multiple W conformations with NWChem + +variable datafile index data.w.bcc data.w.diamond + +mdi connect + +label loop + + units metal + atom_style atomic + atom_modify map yes + comm_modify cutoff 2.0 + + log log.series.${datafile} + + read_data ${datafile} + + mass 1 183.84 + + neighbor 1.0 bin + neigh_modify delay 0 every 1 check yes + + fix 1 all mdi/qm elements W connect no + fix_modify 1 energy yes + + dump 1 all custom 1 dump.series.${datafile} id x y z fx fy fz + + run 0 + + clear + +next datafile + +jump SELF loop + +mdi exit diff --git a/examples/QUANTUM/NWChem/in.series.plugin b/examples/QUANTUM/NWChem/in.series.plugin new file mode 100644 index 0000000000..8dc1c5421b --- /dev/null +++ b/examples/QUANTUM/NWChem/in.series.plugin @@ -0,0 +1,34 @@ +# multiple W conformations with NWChem + +variable datafile index data.w.bcc data.w.diamond + +label loop + + units metal + atom_style atomic + atom_modify map yes + comm_modify cutoff 2.0 + + log log.series.plugin.${datafile} + + read_data ${datafile} + + mass 1 183.84 + + neighbor 1.0 bin + neigh_modify delay 0 every 1 check yes + + fix 1 all mdi/qm elements W + fix_modify 1 energy yes + + dump 1 all custom 1 dump.series.plugin.${datafile} id x y z fx fy fz + + mdi plugin nwchem_mdi mdi "-role ENGINE -name LATTE -method LINK" & + extra "template.w.nw w.nw log.series.pwdft.plugin.1" & + command "run 0" + + clear + +next datafile + +jump SELF loop diff --git a/examples/QUANTUM/NWChem/in.w.many b/examples/QUANTUM/NWChem/in.w.many new file mode 100644 index 0000000000..384c3bb1b1 --- /dev/null +++ b/examples/QUANTUM/NWChem/in.w.many @@ -0,0 +1,34 @@ +# many conformations with NWChem + +variable datafiles file file.list.2 + +label loop + +clear + +units metal +atom_style atomic +atom_modify map yes +comm_modify cutoff 2.0 + +log log.${datafiles} + +read_data Wfiles/${datafiles} + +mass 1 183.84 + +neighbor 1.0 bin +neigh_modify delay 0 every 1 check yes + +fix 2 all nwchem template.w.nw ${datafiles}.nw & + log.pwdft.${datafiles} W +fix_modify 2 energy yes + +dump 1 all custom 1 dump.${datafiles} id x y z fx fy fz + +timestep 0.001 + +run 0 + +next datafiles +jump SELF loop diff --git a/examples/QUANTUM/NWChem/in.water.mm b/examples/QUANTUM/NWChem/in.water.mm new file mode 100644 index 0000000000..11c3a9c576 --- /dev/null +++ b/examples/QUANTUM/NWChem/in.water.mm @@ -0,0 +1,46 @@ +# MM for water dimer + +units real +atom_style full + +bond_style harmonic +angle_style harmonic + +read_data data.water.mm + +group mm molecule 1 +group qm molecule 2 + +# pair style must define stand-alone short-range Coulombics + +pair_style lj/cut/coul/cut 6.0 +pair_coeff 1 1 0.13506 3.166 +pair_coeff 2 2 0.0 1.0 + +#velocity all create 300.0 458732 + +neighbor 1.0 bin +neigh_modify delay 0 every 1 check yes + +fix 1 all nve + +compute 1 all pair/local dist +compute 2 all reduce max c_1 + +variable fxabs atom abs(fx) +variable fyabs atom abs(fy) +variable fzabs atom abs(fz) +variable qabs atom abs(q) +compute 3 all reduce max v_fxabs v_fyabs v_fzabs v_qabs + +dump 1 all custom 1 dump.water.dimer.mm id x y z q fx fy fz +dump_modify 1 sort id format float "%20.16g" + +timestep 1.0 + +thermo_style custom step cpu temp ke evdwl ecoul epair emol elong & + pe etotal press c_2 c_3[*] + +thermo 1 + +run 10 diff --git a/examples/QUANTUM/NWChem/in.water.nwchem.qmmm b/examples/QUANTUM/NWChem/in.water.qmmm similarity index 74% rename from examples/QUANTUM/NWChem/in.water.nwchem.qmmm rename to examples/QUANTUM/NWChem/in.water.qmmm index d46a8e7498..6dcbfbc3ab 100644 --- a/examples/QUANTUM/NWChem/in.water.nwchem.qmmm +++ b/examples/QUANTUM/NWChem/in.water.qmmm @@ -6,7 +6,7 @@ atom_style full bond_style harmonic angle_style harmonic -read_data data.water.nwchem.qmmm +read_data data.water.qmmm # QM atoms are 1st water # MM atoms are 2nd water @@ -49,22 +49,11 @@ timestep 0.1 fix 1 all nve -fix 2 qm mdi/qmmm potential elements 8 1 8 1 -#fix 2 qm nwchem template.water.nw water.dimer2.nw & -# log.pwdft.water.dimer O H O H +fix 2 qm mdi/qmmm potential elements O H O H fix_modify 2 energy yes thermo_style custom step cpu temp ke evdwl ecoul epair emol elong & f_2 pe etotal press -# convert dump file forces to Hartree/Bohr for comparison to NWChem - -variable fx atom fx/1185.8 -variable fy atom fy/1185.8 -variable fz atom fz/1185.8 - -dump 1 all custom 1 dump.water.nwchem.qmmm id x y z q v_fx v_fy v_fz -dump_modify 1 sort id format float "%20.16g" - thermo 1 run 2 diff --git a/examples/QUANTUM/NWChem/in.water.nwchem.qmmm.plugin b/examples/QUANTUM/NWChem/in.water.qmmm.plugin similarity index 78% rename from examples/QUANTUM/NWChem/in.water.nwchem.qmmm.plugin rename to examples/QUANTUM/NWChem/in.water.qmmm.plugin index f79411e4d5..a9884bc8dc 100644 --- a/examples/QUANTUM/NWChem/in.water.nwchem.qmmm.plugin +++ b/examples/QUANTUM/NWChem/in.water.qmmm.plugin @@ -6,7 +6,7 @@ atom_style full bond_style harmonic angle_style harmonic -read_data data.water.nwchem.qmmm +read_data data.water.qmmm # QM atoms are 1st water # MM atoms are 2nd water @@ -49,24 +49,13 @@ timestep 0.1 fix 1 all nve -fix 2 qm mdi/qmmm potential elements 8 1 8 1 +fix 2 qm mdi/qmmm potential elements O H O H fix_modify 2 energy yes thermo_style custom step cpu temp ke evdwl ecoul epair emol elong & f_2 pe etotal press - -# convert dump file forces to Hartree/Bohr for comparison to NWChem - -variable fx atom fx/1185.8 -variable fy atom fy/1185.8 -variable fz atom fz/1185.8 - -dump 1 all custom 1 dump.water.dimer.qmmm.plugin & - id x y z q v_fx v_fy v_fz -dump_modify 1 sort id format float "%20.16g" - thermo 1 mdi plugin nwchem_mdi mdi "-role ENGINE -name NWChem -method LINK" & extra "template.water.nw water.dimer.nw log.water.pwdft.qmmm.plugin.1" & - command "run 2" + command "run 1" diff --git a/examples/QUANTUM/NWChem/in.zeolite.mm b/examples/QUANTUM/NWChem/in.zeolite.mm new file mode 100644 index 0000000000..e746d468b5 --- /dev/null +++ b/examples/QUANTUM/NWChem/in.zeolite.mm @@ -0,0 +1,116 @@ +# MM for SiO2 zeolite with one methane molecule + +# CHIK potential +# EPL, Carre, Horbach, Ispas, Kob, 82, 17001 (2008) +# B = 1/rho + +#q Si = 1.910418 +#q O = -0.955209 +#A OO = 659.595398 eV +#B OO = 2.590066 1/Ang +#C OO = 26.836679 eV-Ang^6 +#A SiO = 27029.419922 eV +#B SiO = 5.158606 1/Ang +#C SiO = 148.099091 eV-Ang^6 +#A SiSi = 3150.462646 eV +#B SiSi = 2.851451 1/Ang +#C SiSi = 626.7519553 eV-Ang^6 + +# LJ params for methane and O from Table 1 +# Bhatia and Nicholson, J Phys Chem C, 2012, 116, 2344-2355. + +#q C = -0.66 +#Q H = 0.165 +#sigma C = 0.34 nm +#sigma H = 0.265 nm +#sigma O = 0.28 nm +#eps/kB C = 55.082 K = 0.004745993 eV +#eps/kB H = 7.905 K = 0.000681113 eV +#eps/kB O = 492.7 K = 0.0424522 eV + +# LJ params for silicon +#e-Journal of Surf Sci and Nanotech, Inui and Iwasaki, 15, 40-49 (2017) + +#sigma Si = 3.826 Ang +#eps Si = 17.4 meV = 0.0174 eV + +# C-H bond and methane angle params + +#OPLS C-H bond k = 29.40 ev/Ang^2 +#C-H bond r0 = 1.09 Angs +#methane angles = 109.5 degrees +#C-H angle k/kB = 2000 K/rad^2 + +# conversions + +#1 eV = 11606 K +#1 eV = 23.0609 kcal/mole +#1 kcal/mole = 503.2761 K +#1 kcal = 4.814 kJoule + +# ------------------------- + +units metal +atom_style full + +bond_style harmonic +angle_style harmonic + +read_data data.zeolite + +group mm type 1 2 +group qm type 3 4 + +# pair style must define stand-alone short-range Coulombics +# arithmetic mixing + +pair_style hybrid/overlay buck 6.5 lj/cut 6.5 coul/cut 6.5 + +pair_coeff 1 1 buck 3150.462646 0.35032282 626.7519553 +pair_coeff 2 2 buck 659.595398 0.38609055 26.836679 +pair_coeff 1 2 buck 27029.419922 0.19385082 148.099091 +pair_coeff 1 2 buck 27029.419922 0.19385082 148.099091 +pair_coeff 1 3 lj/cut 0.009087 3.613 +pair_coeff 1 4 lj/cut 0.00344258 3.238 +pair_coeff 2 3 lj/cut 0.01419429 3.1 +pair_coeff 2 4 lj/cut 0.00537724 2.725 +pair_coeff 3 3 lj/cut 0.004746 3.4 +pair_coeff 4 4 lj/cut 0.00068111 2.65 +pair_coeff * * coul/cut + +bond_style harmonic +bond_coeff 1 29.40 1.09 + +angle_style harmonic +angle_coeff 1 0.172325 109.5 + +#velocity all create 300.0 458732 + +neighbor 1.0 bin +neigh_modify delay 0 every 1 check yes + +# dynamic or frozen zeolite + +fix 1 all nve +#fix 1 qm nve + +compute 1 all pair/local dist +compute 2 all reduce max c_1 + +variable fxabs atom abs(fx) +variable fyabs atom abs(fy) +variable fzabs atom abs(fz) +variable qabs atom abs(q) +compute 3 all reduce max v_fxabs v_fyabs v_fzabs v_qabs + +dump 1 all custom 1 dump.zeolite.mm id x y z q fx fy fz +dump_modify 1 sort id format float "%20.16g" + +timestep 0.001 + +thermo_style custom step cpu temp ke evdwl ecoul epair emol elong & + pe etotal press c_2 c_3[*] + +thermo 1 + +run 3 diff --git a/examples/QUANTUM/NWChem/in.zeolite.qmmm b/examples/QUANTUM/NWChem/in.zeolite.qmmm new file mode 100644 index 0000000000..53441c80ba --- /dev/null +++ b/examples/QUANTUM/NWChem/in.zeolite.qmmm @@ -0,0 +1,70 @@ +# QMMM for SiO2 zeolite with one methane molecule + +units metal +atom_style full + +bond_style harmonic +angle_style harmonic + +read_data data.zeolite + +# MM atoms are Si,O +# QM atoms are C,H + +group mm type 1 2 +group qm type 3 4 + +# pair style must define stand-alone short-range Coulombics +# must specify mixing explicitly b/c hybrid/overlay +# MM Si,O = types 1,2 +# QM C,H = types 3,4 +# MM Si,O atoms do not LJ interact with each other (just via Buckingham) +# QM C,H atoms do not LJ interact with each other +# MM Si,O and QM C,H do LJ interact with each other + +pair_style hybrid/overlay buck 6.5 lj/cut 6.5 coul/cut 6.5 + +pair_coeff 1 1 buck 3150.462646 0.35032282 626.7519553 +pair_coeff 2 2 buck 659.595398 0.38609055 26.836679 +pair_coeff 1 2 buck 27029.419922 0.19385082 148.099091 + +pair_coeff 1 3 lj/cut 0.09087 3.613 +pair_coeff 1 4 lj/cut 0.0344258 3.238 +pair_coeff 2 3 lj/cut 0.1419429 3.1 +pair_coeff 2 4 lj/cut 0.035857762359063315 1.932779 + +pair_coeff 3 3 lj/cut 0.0 3.4 +pair_coeff 4 4 lj/cut 0.0 2.65 +pair_coeff * * coul/cut + +bond_style harmonic +bond_coeff 1 29.40 1.09 + +angle_style harmonic +angle_coeff 1 0.172325 109.5 + +# remove bonds/angles in QM methane molecule + +delete_bonds qm multi remove special + +neighbor 1.0 bin +neigh_modify delay 0 every 1 check yes + +velocity all create 300.0 458732 + +# QMMM dynamics with small timestep +# dynamic or frozen zeolite + +#fix 1 all nve +fix 1 qm nve + +fix 2 qm mdi/qmmm potential elements Si O C H +fix_modify 2 energy yes + +timestep 0.0001 + +thermo_style custom step cpu temp ke evdwl ecoul epair emol elong & + f_2 pe etotal press +thermo 1 + +run 2 diff --git a/examples/QUANTUM/NWChem/in.zeolite.qmmm.plugin b/examples/QUANTUM/NWChem/in.zeolite.qmmm.plugin new file mode 100644 index 0000000000..11bdc688c6 --- /dev/null +++ b/examples/QUANTUM/NWChem/in.zeolite.qmmm.plugin @@ -0,0 +1,72 @@ +# QMMM for SiO2 zeolite with one methane molecule + +units metal +atom_style full + +bond_style harmonic +angle_style harmonic + +read_data data.zeolite + +# MM atoms are Si,O +# QM atoms are C,H + +group mm type 1 2 +group qm type 3 4 + +# pair style must define stand-alone short-range Coulombics +# must specify mixing explicitly b/c hybrid/overlay +# MM Si,O = types 1,2 +# QM C,H = types 3,4 +# MM Si,O atoms do not LJ interact with each other (just via Buckingham) +# QM C,H atoms do not LJ interact with each other +# MM Si,O and QM C,H do LJ interact with each other + +pair_style hybrid/overlay buck 6.5 lj/cut 6.5 coul/cut 6.5 + +pair_coeff 1 1 buck 3150.462646 0.35032282 626.7519553 +pair_coeff 2 2 buck 659.595398 0.38609055 26.836679 +pair_coeff 1 2 buck 27029.419922 0.19385082 148.099091 + +pair_coeff 1 3 lj/cut 0.09087 3.613 +pair_coeff 1 4 lj/cut 0.0344258 3.238 +pair_coeff 2 3 lj/cut 0.1419429 3.1 +pair_coeff 2 4 lj/cut 0.035857762359063315 1.932779 # same as water dimer + +pair_coeff 3 3 lj/cut 0.0 3.4 +pair_coeff 4 4 lj/cut 0.0 2.65 +pair_coeff * * coul/cut + +bond_style harmonic +bond_coeff 1 29.40 1.09 + +angle_style harmonic +angle_coeff 1 0.172325 109.5 + +# remove bonds/angles in QM methane molecule + +delete_bonds qm multi remove special + +neighbor 1.0 bin +neigh_modify delay 0 every 1 check yes + +velocity all create 300.0 458732 + +# QMMM dynamics with small timestep +# dynamic or frozen zeolite + +#fix 1 all nve +fix 1 qm nve + +fix 2 qm mdi/qmmm potential elements Si O C H +fix_modify 2 energy yes + +timestep 0.0001 + +thermo_style custom step cpu temp ke evdwl ecoul epair emol elong & + f_2 pe etotal press +thermo 1 + +mdi plugin nwchem_mdi mdi "-role ENGINE -name NWChem -method LINK" & + extra "template.methane.nw methane.nw log.zeolite.pwdft.qmmm.plugin.1" & + command "run 2" diff --git a/examples/QUANTUM/NWChem/nwchem_mdi.py b/examples/QUANTUM/NWChem/nwchem_mdi.py index e6284d7aea..cdf00f283c 100644 --- a/examples/QUANTUM/NWChem/nwchem_mdi.py +++ b/examples/QUANTUM/NWChem/nwchem_mdi.py @@ -493,9 +493,9 @@ def evaluate(): qm_pe = c_qm_pe.value time2 = time.time() print("DONE QMMM minimizer",nwerr,time2-time1) - print("PE",qm_pe) - print("FORCE",qm_forces) - print("CHARGES",qm_charges) + #print("PE",qm_pe) + #print("FORCE",qm_forces) + #print("CHARGES",qm_charges) # AIMD with only QM atoms diff --git a/examples/QUANTUM/NWChem/template.methane.nw b/examples/QUANTUM/NWChem/template.methane.nw new file mode 100644 index 0000000000..5cd863593b --- /dev/null +++ b/examples/QUANTUM/NWChem/template.methane.nw @@ -0,0 +1,17 @@ +Title "LAMMPS wrapping of PWDFT" + +memory 1900 mb + +echo + +GEOMINSERT + +nwpw + xc pbe + cutoff 30.0 + 2d-hcurve + tolerances 1.0e-9 1.0-9 + apc on +end + +task pspw gradient diff --git a/examples/QUANTUM/NWChem/template.w.nw b/examples/QUANTUM/NWChem/template.w.nw new file mode 100644 index 0000000000..720faf87fa --- /dev/null +++ b/examples/QUANTUM/NWChem/template.w.nw @@ -0,0 +1,16 @@ +Title "LAMMPS wrapping of PWDFT" + +memory 1900 mb + +echo + +GEOMINSERT + +nwpw + 2d-hcurve + initialize_wavefunction on + cutoff 10.0 + xc pbe +end + +task pspw gradient