diff --git a/doc/src/pair_python.rst b/doc/src/pair_python.rst index 2c511a16c9..b74eb74557 100644 --- a/doc/src/pair_python.rst +++ b/doc/src/pair_python.rst @@ -223,19 +223,21 @@ be explicitly provided. The corresponding python code is: .. admonition:: Performance Impact :class: note - The evaluation of scripted python code will slow down the - computation pairwise interactions quite significantly. However, this - can be largely worked around through using the python pair style not - for the actual simulation, but to generate tabulated potentials on the - fly using the :doc:`pair_write ` command. Please see below - for an example LAMMPS input of how to build a table file: + The evaluation of scripted python code will slow down the computation + of pairwise interactions quite significantly. However, this performance + penalty can be worked around through using the python pair style not + for the actual simulation, but to generate tabulated potentials using + the :doc:`pair_write ` command. This will also enable + GPU or multi-thread acceleration through the GPU, KOKKOS, or OPENMP + package versions of the *table* pair style. Please see below for a + LAMMPS input example demonstrating how to build a table file: .. code-block:: LAMMPS pair_style python 2.5 pair_coeff * * py_pot.LJCutMelt lj - shell rm -f melt.table - pair_write 1 1 2000 rsq 0.01 2.5 lj1_lj2.table lj + shell rm -f lj.table + pair_write 1 1 2000 rsq 0.01 2.5 lj.table lj Note that it is strongly recommended to try to **delete** the potential table file before generating it. Since the *pair_write* command will @@ -250,7 +252,7 @@ to be assigned to the LAMMPS atom types like this: .. code-block:: LAMMPS pair_style table linear 2000 - pair_coeff 1 1 melt.table lj + pair_coeff 1 1 lj.table lj This can also be done for more complex systems. Please see the *examples/python* folders for a few more examples. diff --git a/examples/python/in.fix_python_invoke b/examples/python/in.fix_python_invoke index ac435762c5..7502c7ad89 100644 --- a/examples/python/in.fix_python_invoke +++ b/examples/python/in.fix_python_invoke @@ -1,21 +1,21 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 1 box -create_atoms 1 box -mass 1 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 1 box +create_atoms 1 box +mass 1 1.0 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no python end_of_step_callback here """ from __future__ import print_function @@ -32,19 +32,19 @@ def post_force_callback(lmp, v): print("### POST_FORCE ###", t) """ -fix 1 all nve +fix 1 all nve fix 2 all python/invoke 50 end_of_step end_of_step_callback fix 3 all python/invoke 50 post_force post_force_callback -#dump id all atom 50 dump.melt +#dump id all atom 50 dump.melt -#dump 2 all image 25 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 25 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 25 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 25 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 50 -run 250 +thermo 50 +run 250 diff --git a/examples/python/in.fix_python_invoke_neighlist b/examples/python/in.fix_python_invoke_neighlist index f45a92c510..4820b23250 100644 --- a/examples/python/in.fix_python_invoke_neighlist +++ b/examples/python/in.fix_python_invoke_neighlist @@ -1,22 +1,22 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 2 0 2 0 2 -create_box 1 box -create_atoms 1 box -mass 1 1.0 +lattice fcc 0.8442 +region box block 0 2 0 2 0 2 +create_box 1 box +create_atoms 1 box +mass 1 1.0 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 -neighbor 0.1 bin +neighbor 0.1 bin -neigh_modify every 20 delay 0 check no +neigh_modify every 20 delay 0 check no python post_force_callback here """ from __future__ import print_function @@ -55,18 +55,18 @@ def post_force_callback(lmp, v): print(e) """ -fix 1 all nve +fix 1 all nve fix 3 all python/invoke 50 post_force post_force_callback -#dump id all atom 1 dump.melt +#dump id all atom 1 dump.melt -#dump 2 all image 1 image.*.jpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 2 pad 3 +#dump 2 all image 1 image.*.jpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 2 pad 3 -#dump 3 all movie 1 movie.mpg type type & -# axes yes 0.8 0.02 view 60 -30 -#dump_modify 3 pad 3 +#dump 3 all movie 1 movie.mpg type type & +# axes yes 0.8 0.02 view 60 -30 +#dump_modify 3 pad 3 -thermo 1 -run 100 +thermo 1 +run 100 diff --git a/examples/python/in.fix_python_move_nve_melt b/examples/python/in.fix_python_move_nve_melt index 24828d7445..0bcba36f67 100644 --- a/examples/python/in.fix_python_move_nve_melt +++ b/examples/python/in.fix_python_move_nve_melt @@ -1,23 +1,23 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 1 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 1 box +create_atoms 1 box +mass * 1.0 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all python/move py_nve.NVE +fix 1 all python/move py_nve.NVE -thermo 50 -run 250 +thermo 50 +run 250 diff --git a/examples/python/in.fix_python_move_nve_melt_opt b/examples/python/in.fix_python_move_nve_melt_opt index 9564ffa02e..426b4f4a70 100644 --- a/examples/python/in.fix_python_move_nve_melt_opt +++ b/examples/python/in.fix_python_move_nve_melt_opt @@ -1,23 +1,23 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 1 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 1 box +create_atoms 1 box +mass * 1.0 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all python/move py_nve.NVE_Opt +fix 1 all python/move py_nve.NVE_Opt -thermo 50 -run 250 +thermo 50 +run 250 diff --git a/examples/python/in.pair_python_coulomb b/examples/python/in.pair_python_coulomb index 7eb8599ac2..a4bdf258cd 100644 --- a/examples/python/in.pair_python_coulomb +++ b/examples/python/in.pair_python_coulomb @@ -1,27 +1,27 @@ -units real -atom_style full +units real +atom_style full -read_data data.spce +read_data data.spce -pair_style hybrid/overlay coul/cut 12.0 python 12.0 +pair_style hybrid/overlay coul/cut 12.0 python 12.0 -pair_coeff * * coul/cut -pair_coeff * * python py_pot.LJCutSPCE OW NULL +pair_coeff * * coul/cut +pair_coeff * * python py_pot.LJCutSPCE OW NULL -bond_style harmonic -angle_style harmonic -dihedral_style none -improper_style none +bond_style harmonic +angle_style harmonic +dihedral_style none +improper_style none -bond_coeff 1 1000.00 1.000 -angle_coeff 1 100.0 109.47 +bond_coeff 1 1000.00 1.000 +angle_coeff 1 100.0 109.47 special_bonds lj/coul 0.0 0.0 1.0 neighbor 2.0 bin -fix 1 all shake 0.0001 20 0 b 1 a 1 -fix 2 all nvt temp 300.0 300.0 100.0 +fix 1 all shake 0.0001 20 0 b 1 a 1 +fix 2 all nvt temp 300.0 300.0 100.0 # create combined lj/coul table for all atom types # generate tabulated potential from python variant diff --git a/examples/python/in.pair_python_harmonic b/examples/python/in.pair_python_harmonic new file mode 100644 index 0000000000..9b7630551e --- /dev/null +++ b/examples/python/in.pair_python_harmonic @@ -0,0 +1,84 @@ +# 3d soft repulsive particles + +units real +atom_style atomic + +lattice fcc 5.0 origin 0.1 0.1 0.1 +region box block -5 5 -5 5 -5 5 +create_box 2 box +create_atoms 1 box +set type 1 type/ratio 2 0.5 424662346 +mass * 1.0 + +velocity all create 3.0 87287 + +pair_style python 9.0 +pair_coeff * * py_pot.Harmonic A B + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + +write_restart repulsive.restart + +clear + +read_restart repulsive.restart + +pair_style python 10.0 +pair_coeff * * py_pot.Harmonic A B + +shell rm -f python.dat +pair_write 1 1 1000 rsq 0.1 10.0 python.dat PYTH_A_A +pair_write 2 2 1000 rsq 0.1 10.0 python.dat PYTH_B_B +pair_write 1 2 1000 rsq 0.1 10.0 python.dat PYTH_A_B + +fix 1 all nve + +thermo 50 +run 250 post no + +clear + +read_restart repulsive.restart + +pair_style harmonic/cut +pair_coeff 1 1 0.2 9.0 +pair_coeff 2 2 0.4 9.0 + +shell rm -f harmonic.dat +pair_write 1 1 1000 rsq 0.1 10.0 harmonic.dat HARM_1_1 +pair_write 2 2 1000 rsq 0.1 10.0 harmonic.dat HARM_2_2 +pair_write 1 2 1000 rsq 0.1 10.0 harmonic.dat HARM_1_2 + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + +clear + +read_restart repulsive.restart + +pair_style table spline 1000 +pair_coeff 1 1 python.dat PYTH_A_A +pair_coeff 1 2 python.dat PYTH_A_B +pair_coeff 2 2 python.dat PYTH_B_B + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + +# remove temporary files +shell rm repulsive.restart harmonic.dat python.dat diff --git a/examples/python/in.pair_python_hybrid b/examples/python/in.pair_python_hybrid index 5d5157ae6d..2b238fac04 100644 --- a/examples/python/in.pair_python_hybrid +++ b/examples/python/in.pair_python_hybrid @@ -1,29 +1,29 @@ # 3d Lennard-Jones hybrid -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 2 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 2 box +create_atoms 1 box +mass * 1.0 region half block -0.1 4.9 0 10 0 10 set region half type 2 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style hybrid lj/cut 2.5 python 2.5 -pair_coeff * * python py_pot.LJCutMelt lj NULL +pair_style hybrid lj/cut 2.5 python 2.5 +pair_coeff * * python py_pot.LJCutMelt lj NULL pair_coeff * 2 lj/cut 1.0 1.0 -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 write_data hybrid.data write_restart hybrid.restart @@ -32,32 +32,32 @@ clear read_restart hybrid.restart -pair_style hybrid lj/cut 2.5 python 2.5 -pair_coeff * * python py_pot.LJCutMelt lj NULL +pair_style hybrid lj/cut 2.5 python 2.5 +pair_coeff * * python py_pot.LJCutMelt lj NULL pair_coeff * 2 lj/cut 1.0 1.0 -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 clear -units lj -atom_style atomic +units lj +atom_style atomic read_data hybrid.data -pair_style hybrid lj/cut 2.5 python 2.5 -pair_coeff * * python py_pot.LJCutMelt lj NULL +pair_style hybrid lj/cut 2.5 python 2.5 +pair_coeff * * python py_pot.LJCutMelt lj NULL pair_coeff * 2 lj/cut 1.0 1.0 -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 shell rm hybrid.data hybrid.restart diff --git a/examples/python/in.pair_python_long b/examples/python/in.pair_python_long index a600e824df..df61ec3e33 100644 --- a/examples/python/in.pair_python_long +++ b/examples/python/in.pair_python_long @@ -1,25 +1,25 @@ -units real -atom_style full +units real +atom_style full -read_data data.spce +read_data data.spce -pair_style python 12.0 -pair_coeff * * py_pot.LJCutSPCE OW HW +pair_style python 12.0 +pair_coeff * * py_pot.LJCutSPCE OW HW -bond_style harmonic -angle_style harmonic -dihedral_style none -improper_style none +bond_style harmonic +angle_style harmonic +dihedral_style none +improper_style none -bond_coeff 1 1000.00 1.000 -angle_coeff 1 100.0 109.47 +bond_coeff 1 1000.00 1.000 +angle_coeff 1 100.0 109.47 special_bonds lj/coul 0.0 0.0 1.0 neighbor 2.0 bin -fix 1 all shake 0.0001 20 0 b 1 a 1 -fix 2 all nvt temp 300.0 300.0 100.0 +fix 1 all shake 0.0001 20 0 b 1 a 1 +fix 2 all nvt temp 300.0 300.0 100.0 # create only lj/cut table for the oxygen atoms from python shell rm -f spce.table @@ -27,7 +27,7 @@ pair_write 1 1 2000 rsq 0.1 12 spce.table OW-OW # switch to tabulated potential with long-range coulomb as overlay pair_style hybrid/overlay coul/long 12.0 table linear 2000 -kspace_style pppm 1.0e-6 +kspace_style pppm 1.0e-6 pair_coeff * * coul/long pair_coeff 1 1 table spce.table OW-OW diff --git a/examples/python/in.pair_python_melt b/examples/python/in.pair_python_melt index 3f775e6651..7223a1f24d 100644 --- a/examples/python/in.pair_python_melt +++ b/examples/python/in.pair_python_melt @@ -1,26 +1,26 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 1 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 1 box +create_atoms 1 box +mass * 1.0 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style python 2.5 -pair_coeff * * py_pot.LJCutMelt lj +pair_style python 2.5 +pair_coeff * * py_pot.LJCutMelt lj -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 write_data melt.data write_restart melt.restart @@ -29,30 +29,30 @@ clear read_restart melt.restart -pair_style python 2.5 -pair_coeff * * py_pot.LJCutMelt lj +pair_style python 2.5 +pair_coeff * * py_pot.LJCutMelt lj -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 clear -units lj -atom_style atomic +units lj +atom_style atomic read_data melt.data -pair_style python 2.5 -pair_coeff * * py_pot.LJCutMelt lj +pair_style python 2.5 +pair_coeff * * py_pot.LJCutMelt lj -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 shell rm melt.data melt.restart diff --git a/examples/python/in.pair_python_spce b/examples/python/in.pair_python_spce index 5bd9e1e23a..050fe8cdc6 100644 --- a/examples/python/in.pair_python_spce +++ b/examples/python/in.pair_python_spce @@ -1,28 +1,28 @@ -units real -atom_style full +units real +atom_style full -read_data data.spce +read_data data.spce -pair_style hybrid/overlay coul/long 12.0 python 12.0 -kspace_style pppm 1.0e-6 +pair_style hybrid/overlay coul/long 12.0 python 12.0 +kspace_style pppm 1.0e-6 -pair_coeff * * coul/long -pair_coeff * * python py_pot.LJCutSPCE OW NULL +pair_coeff * * coul/long +pair_coeff * * python py_pot.LJCutSPCE OW NULL -bond_style harmonic -angle_style harmonic -dihedral_style none -improper_style none +bond_style harmonic +angle_style harmonic +dihedral_style none +improper_style none -bond_coeff 1 1000.00 1.000 -angle_coeff 1 100.0 109.47 +bond_coeff 1 1000.00 1.000 +angle_coeff 1 100.0 109.47 special_bonds lj/coul 0.0 0.0 1.0 neighbor 2.0 bin -fix 1 all shake 0.0001 20 0 b 1 a 1 -fix 2 all nvt temp 300.0 300.0 100.0 +fix 1 all shake 0.0001 20 0 b 1 a 1 +fix 2 all nvt temp 300.0 300.0 100.0 thermo 10 run 100 diff --git a/examples/python/in.pair_python_table b/examples/python/in.pair_python_table index 761a6efd78..a834f18a59 100644 --- a/examples/python/in.pair_python_table +++ b/examples/python/in.pair_python_table @@ -1,18 +1,18 @@ # 3d Lennard-Jones melt -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 1 box -create_atoms 1 box -mass * 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 1 box +create_atoms 1 box +mass * 1.0 -velocity all create 3.0 87287 +velocity all create 3.0 87287 -pair_style python 2.5 -pair_coeff * * py_pot.LJCutMelt lj +pair_style python 2.5 +pair_coeff * * py_pot.LJCutMelt lj # generate tabulated potential from python variant pair_write 1 1 2000 rsq 0.01 2.5 lj_1_1.table LJ @@ -20,13 +20,13 @@ pair_write 1 1 2000 rsq 0.01 2.5 lj_1_1.table LJ pair_style table linear 2000 pair_coeff 1 1 lj_1_1.table LJ -neighbor 0.3 bin -neigh_modify every 20 delay 0 check no +neighbor 0.3 bin +neigh_modify every 20 delay 0 check no -fix 1 all nve +fix 1 all nve -thermo 50 -run 250 +thermo 50 +run 250 shell rm lj_1_1.table diff --git a/examples/python/in.python b/examples/python/in.python index 9372c684d6..4a2b4f66eb 100644 --- a/examples/python/in.python +++ b/examples/python/in.python @@ -1,25 +1,25 @@ # 3d Lennard-Jones melt with Python functions added -units lj -atom_style atomic +units lj +atom_style atomic -lattice fcc 0.8442 -region box block 0 10 0 10 0 10 -create_box 1 box -create_atoms 1 box -mass 1 1.0 +lattice fcc 0.8442 +region box block 0 10 0 10 0 10 +create_box 1 box +create_atoms 1 box +mass 1 1.0 -velocity all create 1.44 87287 loop geom +velocity all create 1.44 87287 loop geom -pair_style lj/cut 2.5 -pair_coeff 1 1 1.0 1.0 2.5 +pair_style lj/cut 2.5 +pair_coeff 1 1 1.0 1.0 2.5 -neighbor 0.3 bin -neigh_modify delay 0 every 1 check yes +neighbor 0.3 bin +neigh_modify delay 0 every 1 check yes -fix 1 all nve +fix 1 all nve -run 10 +run 10 # 1st Python function # example of catching a syntax error diff --git a/examples/python/log.18Mar22.pair_python_harmonic.g++.1 b/examples/python/log.18Mar22.pair_python_harmonic.g++.1 new file mode 100644 index 0000000000..3055d157f2 --- /dev/null +++ b/examples/python/log.18Mar22.pair_python_harmonic.g++.1 @@ -0,0 +1,235 @@ +LAMMPS (17 Feb 2022) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# 3d soft repulsive particles + +units real +atom_style atomic + +lattice fcc 5.0 origin 0.1 0.1 0.1 +Lattice spacing in x,y,z = 5 5 5 +region box block -5 5 -5 5 -5 5 +create_box 2 box +Created orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 4000 atoms + using lattice units in orthogonal box = (-25 -25 -25) to (25 25 25) + create_atoms CPU = 0.001 seconds +set type 1 type/ratio 2 0.5 424662346 +Setting atom values ... + 2000 settings made for type/ratio +mass * 1.0 + +velocity all create 3.0 87287 + +pair_style python 9.0 +pair_coeff * * py_pot.Harmonic A B + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10 + ghost atom cutoff = 10 + binsize = 5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.139 | 4.139 | 4.139 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 3 423789.56 0 423825.32 249259.3 + 50 75.889551 422919.46 0 423824.08 248893.24 + 100 105.20972 422570.47 0 423824.6 250756.6 + 150 132.08764 422249.71 0 423824.23 251894.29 + 200 118.14116 422416.43 0 423824.7 252088.96 + 250 128.40086 422293.71 0 423824.28 252057.16 +Loop time of 17.4414 on 1 procs for 250 steps with 4000 atoms + + +write_restart repulsive.restart +System init for write_restart ... + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.001 seconds + +pair_style python 10.0 +pair_coeff * * py_pot.Harmonic A B + +shell rm -f python.dat +pair_write 1 1 1000 rsq 0.1 10.0 python.dat PYTH_A_A +Creating table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 python.dat PYTH_B_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 python.dat PYTH_A_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 4.977 | 4.977 | 4.977 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.16 + 300 119.72871 422397.4 0 423824.6 251985.11 + 350 124.88375 422335.77 0 423824.42 252051.28 + 400 121.76143 422373.11 0 423824.53 252006.39 + 450 125.29847 422330.9 0 423824.49 251997.23 + 500 126.87408 422312.08 0 423824.45 252053.51 +Loop time of 23.4715 on 1 procs for 250 steps with 4000 atoms + + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style harmonic/cut +pair_coeff 1 1 0.2 9.0 +pair_coeff 2 2 0.4 9.0 + +shell rm -f harmonic.dat +pair_write 1 1 1000 rsq 0.1 10.0 harmonic.dat HARM_1_1 +Creating table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 harmonic.dat HARM_2_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 harmonic.dat HARM_1_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 4.138 | 4.138 | 4.138 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.16 + 300 119.72871 422397.4 0 423824.6 251985.11 + 350 124.88375 422335.77 0 423824.42 252051.28 + 400 121.76143 422373.11 0 423824.53 252006.39 + 450 125.29847 422330.9 0 423824.49 251997.23 + 500 126.87408 422312.08 0 423824.45 252053.51 +Loop time of 0.843376 on 1 procs for 250 steps with 4000 atoms + + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style table spline 1000 +pair_coeff 1 1 python.dat PYTH_A_A +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 1 2 python.dat PYTH_A_B +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 2 2 python.dat PYTH_B_B +Reading pair table potential file python.dat with DATE: 2022-03-18 + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.552 | 4.552 | 4.552 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.14 + 300 119.72876 422397.4 0 423824.6 251985.1 + 350 124.88381 422335.77 0 423824.42 252051.26 + 400 121.76148 422373.11 0 423824.53 252006.37 + 450 125.29842 422330.9 0 423824.49 251997.21 + 500 126.87418 422312.08 0 423824.46 252053.48 +Loop time of 1.57415 on 1 procs for 250 steps with 4000 atoms + + +# remove temporary files +shell rm repulsive.restart harmonic.dat python.dat +Total wall time: 0:00:43 diff --git a/examples/python/log.18Mar22.pair_python_harmonic.g++.4 b/examples/python/log.18Mar22.pair_python_harmonic.g++.4 new file mode 100644 index 0000000000..f13c799ed1 --- /dev/null +++ b/examples/python/log.18Mar22.pair_python_harmonic.g++.4 @@ -0,0 +1,235 @@ +LAMMPS (17 Feb 2022) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# 3d soft repulsive particles + +units real +atom_style atomic + +lattice fcc 5.0 origin 0.1 0.1 0.1 +Lattice spacing in x,y,z = 5 5 5 +region box block -5 5 -5 5 -5 5 +create_box 2 box +Created orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box +Created 4000 atoms + using lattice units in orthogonal box = (-25 -25 -25) to (25 25 25) + create_atoms CPU = 0.000 seconds +set type 1 type/ratio 2 0.5 424662346 +Setting atom values ... + 2000 settings made for type/ratio +mass * 1.0 + +velocity all create 3.0 87287 + +pair_style python 9.0 +pair_coeff * * py_pot.Harmonic A B + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10 + ghost atom cutoff = 10 + binsize = 5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.225 | 3.225 | 3.225 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 3 423843.22 0 423878.98 249277.9 + 50 79.665061 422928.03 0 423877.66 248995.64 + 100 108.5878 422583.81 0 423878.21 250822.76 + 150 130.90607 422317.45 0 423877.89 251949.08 + 200 120.05458 422447.24 0 423878.33 252105.09 + 250 135.76605 422259.47 0 423877.84 252077.41 +Loop time of 4.70112 on 4 procs for 250 steps with 4000 atoms + + +write_restart repulsive.restart +System init for write_restart ... + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.001 seconds + +pair_style python 10.0 +pair_coeff * * py_pot.Harmonic A B + +shell rm -f python.dat +pair_write 1 1 1000 rsq 0.1 10.0 python.dat PYTH_A_A +Creating table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 python.dat PYTH_B_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 python.dat PYTH_A_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 3.666 | 3.667 | 3.667 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 135.76605 422259.47 0 423877.84 252077.41 + 300 119.63404 422452.21 0 423878.28 251958.74 + 350 129.35013 422336.12 0 423878 252069.99 + 400 123.04377 422411.48 0 423878.19 252024.23 + 450 126.01375 422375.98 0 423878.1 252019.19 + 500 126.91094 422365.34 0 423878.15 252012.59 +Loop time of 6.20423 on 4 procs for 250 steps with 4000 atoms + + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.001 seconds + +pair_style harmonic/cut +pair_coeff 1 1 0.2 9.0 +pair_coeff 2 2 0.4 9.0 + +shell rm -f harmonic.dat +pair_write 1 1 1000 rsq 0.1 10.0 harmonic.dat HARM_1_1 +Creating table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 harmonic.dat HARM_2_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 harmonic.dat HARM_1_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 3.227 | 3.227 | 3.229 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 135.76605 422259.47 0 423877.84 252077.41 + 300 119.63404 422452.21 0 423878.28 251958.74 + 350 129.35013 422336.12 0 423878 252069.99 + 400 123.04377 422411.48 0 423878.19 252024.23 + 450 126.01375 422375.98 0 423878.1 252019.19 + 500 126.91094 422365.34 0 423878.15 252012.59 +Loop time of 0.257048 on 4 procs for 250 steps with 4000 atoms + + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 2 by 2 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style table spline 1000 +pair_coeff 1 1 python.dat PYTH_A_A +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 1 2 python.dat PYTH_A_B +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 2 2 python.dat PYTH_B_B +Reading pair table potential file python.dat with DATE: 2022-03-18 + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 3.257 | 3.257 | 3.257 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 135.76605 422259.47 0 423877.84 252077.38 + 300 119.63401 422452.21 0 423878.28 251958.73 + 350 129.35009 422336.11 0 423878 252069.98 + 400 123.04383 422411.48 0 423878.19 252024.21 + 450 126.01378 422375.98 0 423878.1 252019.16 + 500 126.91078 422365.34 0 423878.15 252012.57 +Loop time of 0.497624 on 4 procs for 250 steps with 4000 atoms + + +# remove temporary files +shell rm repulsive.restart harmonic.dat python.dat +Total wall time: 0:00:11 diff --git a/examples/python/log.18Mar22.pair_python_harmonic.opencl.1 b/examples/python/log.18Mar22.pair_python_harmonic.opencl.1 new file mode 100644 index 0000000000..42df69b3a3 --- /dev/null +++ b/examples/python/log.18Mar22.pair_python_harmonic.opencl.1 @@ -0,0 +1,288 @@ +LAMMPS (17 Feb 2022) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +package gpu 0 +# 3d soft repulsive particles + +units real +atom_style atomic + +lattice fcc 5.0 origin 0.1 0.1 0.1 +Lattice spacing in x,y,z = 5 5 5 +region box block -5 5 -5 5 -5 5 +create_box 2 box +Created orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 4000 atoms + using lattice units in orthogonal box = (-25 -25 -25) to (25 25 25) + create_atoms CPU = 0.000 seconds +set type 1 type/ratio 2 0.5 424662346 +Setting atom values ... + 2000 settings made for type/ratio +mass * 1.0 + +velocity all create 3.0 87287 + +pair_style python 9.0 +pair_coeff * * py_pot.Harmonic A B + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- GPU package (short-range, long-range and three-body potentials): + +@Article{Brown11, + author = {W. M. Brown, P. Wang, S. J. Plimpton, A. N. Tharrington}, + title = {Implementing Molecular Dynamics on Hybrid High Performance Computers - Short Range Forces}, + journal = {Comp.~Phys.~Comm.}, + year = 2011, + volume = 182, + pages = {898--911} +} + +@Article{Brown12, + author = {W. M. Brown, A. Kohlmeyer, S. J. Plimpton, A. N. Tharrington}, + title = {Implementing Molecular Dynamics on Hybrid High Performance Computers - Particle-Particle Particle-Mesh}, + journal = {Comp.~Phys.~Comm.}, + year = 2012, + volume = 183, + pages = {449--459} +} + +@Article{Brown13, + author = {W. M. Brown, Y. Masako}, + title = {Implementing Molecular Dynamics on Hybrid High Performance Computers – Three-Body Potentials}, + journal = {Comp.~Phys.~Comm.}, + year = 2013, + volume = 184, + pages = {2785--2793} +} + +@Article{Trung15, + author = {T. D. Nguyen, S. J. Plimpton}, + title = {Accelerating dissipative particle dynamics simulations for soft matter systems}, + journal = {Comput.~Mater.~Sci.}, + year = 2015, + volume = 100, + pages = {173--180} +} + +@Article{Trung17, + author = {T. D. Nguyen}, + title = {GPU-accelerated Tersoff potentials for massively parallel Molecular Dynamics simulations}, + journal = {Comp.~Phys.~Comm.}, + year = 2017, + volume = 212, + pages = {113--122} +} + +@Article{Nikolskiy19, + author = {V. Nikolskiy, V. Stegailov}, + title = {GPU acceleration of four-site water models in LAMMPS}, + journal = {Proceeding of the International Conference on Parallel Computing (ParCo 2019), Prague, Czech Republic}, + year = 2019 +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10 + ghost atom cutoff = 10 + binsize = 5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton off + pair build: half/bin/newtoff + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 4.612 | 4.612 | 4.612 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 3 423789.56 0 423825.32 249259.3 + 50 75.889551 422919.46 0 423824.08 248893.24 + 100 105.20972 422570.47 0 423824.6 250756.6 + 150 132.08764 422249.71 0 423824.23 251894.29 + 200 118.14116 422416.43 0 423824.7 252088.96 + 250 128.40086 422293.71 0 423824.28 252057.16 +Loop time of 21.1837 on 1 procs for 250 steps with 4000 atoms + + +write_restart repulsive.restart +System init for write_restart ... + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +package gpu 0 + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style python 10.0 +pair_coeff * * py_pot.Harmonic A B + +shell rm -f python.dat +pair_write 1 1 1000 rsq 0.1 10.0 python.dat PYTH_A_A +Creating table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton off + pair build: half/bin/newtoff + stencil: full/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 python.dat PYTH_B_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 python.dat PYTH_A_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 5.451 | 5.451 | 5.451 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.16 + 300 119.72871 422397.4 0 423824.6 251985.11 + 350 124.88375 422335.77 0 423824.42 252051.28 + 400 121.76143 422373.11 0 423824.53 252006.39 + 450 125.29847 422330.9 0 423824.49 251997.23 + 500 126.87408 422312.08 0 423824.45 252053.51 +Loop time of 28.5184 on 1 procs for 250 steps with 4000 atoms + + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +package gpu 0 + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style harmonic/cut +pair_coeff 1 1 0.2 9.0 +pair_coeff 2 2 0.4 9.0 + +shell rm -f harmonic.dat +pair_write 1 1 1000 rsq 0.1 10.0 harmonic.dat HARM_1_1 +Creating table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut, perpetual + attributes: half, newton off + pair build: half/bin/newtoff + stencil: full/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 harmonic.dat HARM_2_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 harmonic.dat HARM_1_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 4.611 | 4.611 | 4.611 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.16 + 300 119.72871 422397.4 0 423824.6 251985.11 + 350 124.88375 422335.77 0 423824.42 252051.28 + 400 121.76143 422373.11 0 423824.53 252006.39 + 450 125.29847 422330.9 0 423824.49 251997.23 + 500 126.87408 422312.08 0 423824.45 252053.51 +Loop time of 1.1146 on 1 procs for 250 steps with 4000 atoms + + +clear +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +package gpu 0 + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style table spline 1000 +pair_coeff 1 1 python.dat PYTH_A_A +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 1 2 python.dat PYTH_A_B +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 2 2 python.dat PYTH_B_B +Reading pair table potential file python.dat with DATE: 2022-03-18 + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Per MPI rank memory allocation (min/avg/max) = 2.965 | 2.965 | 2.965 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.14 + 300 119.72876 422397.4 0 423824.6 251985.09 + 350 124.88381 422335.77 0 423824.42 252051.26 + 400 121.76148 422373.11 0 423824.53 252006.37 + 450 125.29841 422330.9 0 423824.49 251997.2 + 500 126.87418 422312.08 0 423824.45 252053.48 +Loop time of 0.389958 on 1 procs for 250 steps with 4000 atoms + + +# remove temporary files +shell rm repulsive.restart harmonic.dat python.dat +Total wall time: 0:00:54 diff --git a/examples/python/log.18Mar22.pair_python_harmonic.openmp.1 b/examples/python/log.18Mar22.pair_python_harmonic.openmp.1 new file mode 100644 index 0000000000..dcadfcb004 --- /dev/null +++ b/examples/python/log.18Mar22.pair_python_harmonic.openmp.1 @@ -0,0 +1,268 @@ +LAMMPS (17 Feb 2022) + using 4 OpenMP thread(s) per MPI task +package omp 0 +using multi-threaded neighbor list subroutines +# 3d soft repulsive particles + +units real +atom_style atomic + +lattice fcc 5.0 origin 0.1 0.1 0.1 +Lattice spacing in x,y,z = 5 5 5 +region box block -5 5 -5 5 -5 5 +create_box 2 box +Created orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box +Created 4000 atoms + using lattice units in orthogonal box = (-25 -25 -25) to (25 25 25) + create_atoms CPU = 0.001 seconds +set type 1 type/ratio 2 0.5 424662346 +Setting atom values ... + 2000 settings made for type/ratio +mass * 1.0 + +velocity all create 3.0 87287 + +pair_style python 9.0 +pair_coeff * * py_pot.Harmonic A B + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +No /omp style for force computation currently active +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10 + ghost atom cutoff = 10 + binsize = 5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on, omp + pair build: half/bin/atomonly/newton/omp + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.024 | 6.024 | 6.024 Mbytes +Step Temp E_pair E_mol TotEng Press + 0 3 423789.56 0 423825.32 249259.3 + 50 75.889551 422919.46 0 423824.08 248893.24 + 100 105.20972 422570.47 0 423824.6 250756.6 + 150 132.08764 422249.71 0 423824.23 251894.29 + 200 118.14116 422416.43 0 423824.7 252088.96 + 250 128.40086 422293.71 0 423824.28 252057.16 +Loop time of 18.9294 on 4 procs for 250 steps with 4000 atoms + + +write_restart repulsive.restart +System init for write_restart ... + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +No /omp style for force computation currently active + +clear + using 4 OpenMP thread(s) per MPI task +package omp 0 +using multi-threaded neighbor list subroutines + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.001 seconds + +pair_style python 10.0 +pair_coeff * * py_pot.Harmonic A B + +shell rm -f python.dat +pair_write 1 1 1000 rsq 0.1 10.0 python.dat PYTH_A_A +Creating table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 python.dat PYTH_B_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 python.dat PYTH_A_B +Appending to table file python.dat with DATE: 2022-03-18 + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +No /omp style for force computation currently active +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 9 9 9 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair python, perpetual + attributes: half, newton on, omp + pair build: half/bin/atomonly/newton/omp + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 7.626 | 7.626 | 7.626 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.16 + 300 119.72871 422397.4 0 423824.6 251985.11 + 350 124.88375 422335.77 0 423824.42 252051.28 + 400 121.76143 422373.11 0 423824.53 252006.39 + 450 125.29847 422330.9 0 423824.49 251997.23 + 500 126.87408 422312.08 0 423824.45 252053.51 +Loop time of 24.3294 on 4 procs for 250 steps with 4000 atoms + + +clear + using 4 OpenMP thread(s) per MPI task +package omp 0 +using multi-threaded neighbor list subroutines + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style harmonic/cut +pair_coeff 1 1 0.2 9.0 +pair_coeff 2 2 0.4 9.0 + +shell rm -f harmonic.dat +pair_write 1 1 1000 rsq 0.1 10.0 harmonic.dat HARM_1_1 +Creating table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update every 1 steps, delay 10 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut/omp, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +pair_write 2 2 1000 rsq 0.1 10.0 harmonic.dat HARM_2_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +pair_write 1 2 1000 rsq 0.1 10.0 harmonic.dat HARM_1_2 +Appending to table file harmonic.dat with DATE: 2022-03-18 + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 1 of 1 mixed pair_coeff terms from geometric mixing rule +Last active /omp style is pair_style harmonic/cut/omp +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 10 + ghost atom cutoff = 10 + binsize = 5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair harmonic/cut/omp, perpetual + attributes: half, newton on, omp + pair build: half/bin/atomonly/newton/omp + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.023 | 6.023 | 6.023 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.16 + 300 119.72871 422397.4 0 423824.6 251985.11 + 350 124.88375 422335.77 0 423824.42 252051.28 + 400 121.76143 422373.11 0 423824.53 252006.39 + 450 125.29847 422330.9 0 423824.49 251997.23 + 500 126.87408 422312.08 0 423824.45 252053.51 +Loop time of 0.219199 on 4 procs for 250 steps with 4000 atoms + + +clear + using 4 OpenMP thread(s) per MPI task +package omp 0 +using multi-threaded neighbor list subroutines + +read_restart repulsive.restart +Reading restart file ... + restart file = 17 Feb 2022, LAMMPS = 17 Feb 2022 + restoring atom style atomic from restart + orthogonal box = (-25 -25 -25) to (25 25 25) + 1 by 1 by 1 MPI processor grid + pair style python stores no restart info + 4000 atoms + read_restart CPU = 0.000 seconds + +pair_style table spline 1000 +pair_coeff 1 1 python.dat PYTH_A_A +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 1 2 python.dat PYTH_A_B +Reading pair table potential file python.dat with DATE: 2022-03-18 +pair_coeff 2 2 python.dat PYTH_B_B +Reading pair table potential file python.dat with DATE: 2022-03-18 + +neighbor 1.0 bin +neigh_modify every 2 delay 4 check yes + +fix 1 all nve + +thermo 50 +run 250 post no + generated 0 of 1 mixed pair_coeff terms from geometric mixing rule +Last active /omp style is pair_style table/omp +Neighbor list info ... + update every 2 steps, delay 4 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 10 10 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair table/omp, perpetual + attributes: half, newton on, omp + pair build: half/bin/atomonly/newton/omp + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.056 | 6.056 | 6.056 Mbytes +Step Temp E_pair E_mol TotEng Press + 250 128.40086 422293.71 0 423824.28 252057.14 + 300 119.72876 422397.4 0 423824.6 251985.1 + 350 124.88381 422335.77 0 423824.42 252051.26 + 400 121.76148 422373.11 0 423824.53 252006.37 + 450 125.29842 422330.9 0 423824.49 251997.21 + 500 126.87418 422312.08 0 423824.46 252053.48 +Loop time of 0.374806 on 4 procs for 250 steps with 4000 atoms + + +# remove temporary files +shell rm repulsive.restart harmonic.dat python.dat +Total wall time: 0:00:44 diff --git a/examples/python/py_pot.py b/examples/python/py_pot.py index 5699bd082c..1d3fafd019 100644 --- a/examples/python/py_pot.py +++ b/examples/python/py_pot.py @@ -1,4 +1,5 @@ from __future__ import print_function +import math class LAMMPSPairPotential(object): def __init__(self): @@ -10,6 +11,34 @@ class LAMMPSPairPotential(object): if (units != self.units): raise Exception("Conflicting units: %s vs. %s" % (self.units,units)) +class Harmonic(LAMMPSPairPotential): + def __init__(self): + super(Harmonic,self).__init__() + self.units = 'real' + # set coeffs: K, r0 + self.coeff = {'A' : {'A' : (0.2,9.0), + 'B' : (math.sqrt(0.2*0.4),9.0)}, + 'B' : {'A' : (math.sqrt(0.2*0.4),9.0), + 'B' : (0.4,9.0)}} + + def compute_force(self,rsq,itype,jtype): + coeff = self.coeff[self.pmap[itype]][self.pmap[jtype]] + r = math.sqrt(rsq) + delta = coeff[1]-r + if (r <= coeff[1]): + return 2.0*delta*coeff[0]/r + else: + return 0.0 + + def compute_energy(self,rsq,itype,jtype): + coeff = self.coeff[self.pmap[itype]][self.pmap[jtype]] + r = math.sqrt(rsq) + delta = coeff[1]-r + if (r <= coeff[1]): + return delta*delta*coeff[0] + else: + return 0.0 + class LJCutMelt(LAMMPSPairPotential): def __init__(self): super(LJCutMelt,self).__init__()