diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 28e02bbee7..f7e9b314bd 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -971,33 +971,53 @@ if(PKG_KOKKOS) endif() endif() if(PKG_KSPACE) - message(STATUS "<<< FFT settings >>> --- Primary FFT lib: ${FFT}") - if(FFT_SINGLE) - message(STATUS "Using single precision FFTs") - else() - message(STATUS "Using double precision FFTs") - endif() - if(FFT_FFTW_THREADS OR FFT_MKL_THREADS) - message(STATUS "Using threaded FFTs") - else() - message(STATUS "Using non-threaded FFTs") - endif() - if(PKG_KOKKOS) - if(Kokkos_ENABLE_CUDA) - if(FFT STREQUAL "KISS") - message(STATUS "Kokkos FFT: KISS") - else() - message(STATUS "Kokkos FFT: cuFFT") - endif() - elseif(Kokkos_ENABLE_HIP) - if(FFT STREQUAL "KISS") - message(STATUS "Kokkos FFT: KISS") - else() - message(STATUS "Kokkos FFT: hipFFT") - endif() + if (LMP_HEFFTE) + message(STATUS "<<< FFT settings >>> +-- Primary FFT lib: heFFTe") + if (HEFFTE_BACKEND) + message(STATUS "heFFTe backend: ${HEFFTE_BACKEND}") else() - message(STATUS "Kokkos FFT: ${FFT}") + message(STATUS "heFFTe backend: stock (builtin FFT implementation, tested for corrected but not optimized for production)") + endif() + if(FFT_SINGLE) + message(STATUS "Using single precision FFTs") + else() + message(STATUS "Using double precision FFTs") + endif() + else() + message(STATUS "<<< FFT settings >>> +-- Primary FFT lib: ${FFT}") + if(FFT_SINGLE) + message(STATUS "Using single precision FFTs") + else() + message(STATUS "Using double precision FFTs") + endif() + if(FFT_FFTW_THREADS OR FFT_MKL_THREADS) + message(STATUS "Using threaded FFTs") + else() + message(STATUS "Using non-threaded FFTs") + endif() + if (FFT_HEFFTE) + message(STATUS "Using distributed algorithms from heFTTe") + else() + message(STATUS "Using builtin distributed algorithms") + endif() + if(PKG_KOKKOS) + if(Kokkos_ENABLE_CUDA) + if(FFT STREQUAL "KISS") + message(STATUS "Kokkos FFT: KISS") + else() + message(STATUS "Kokkos FFT: cuFFT") + endif() + elseif(Kokkos_ENABLE_HIP) + if(FFT STREQUAL "KISS") + message(STATUS "Kokkos FFT: KISS") + else() + message(STATUS "Kokkos FFT: hipFFT") + endif() + else() + message(STATUS "Kokkos FFT: ${FFT}") + endif() endif() endif() endif() diff --git a/cmake/Modules/Packages/KSPACE.cmake b/cmake/Modules/Packages/KSPACE.cmake index de7e7e5b20..9c9c879cd4 100644 --- a/cmake/Modules/Packages/KSPACE.cmake +++ b/cmake/Modules/Packages/KSPACE.cmake @@ -46,6 +46,42 @@ else() target_compile_definitions(lammps PRIVATE -DFFT_KISS) endif() +option(FFT_USE_HEFFTE "Use heFFTe as the distributed FFT engine, overrides the FFT option." OFF) +if(FFT_USE_HEFFTE) + # if FFT_HEFFTE is enabled, switch the builtin FFT engine with Heffte + set(FFT_HEFFTE_BACKEND_VALUES FFTW MKL) + set(FFT_HEFFTE_BACKEND "" CACHE STRING "Select heFFTe backend, e.g., FFTW or MKL") + set_property(CACHE FFT_HEFFTE_BACKEND PROPERTY STRINGS ${FFT_HEFFTE_BACKEND_VALUES}) + + if(FFT_HEFFTE_BACKEND STREQUAL "FFTW") # respect the backend choice, FFTW or MKL + set(HEFFTE_COMPONENTS "FFTW") + set(Heffte_ENABLE_FFTW "ON" CACHE BOOL "Enables FFTW backend for heFFTe") + elseif(FFT_HEFFTE_BACKEND STREQUAL "MKL") + set(HEFFTE_COMPONENTS "MKL") + set(Heffte_ENABLE_MKL "ON" CACHE BOOL "Enables MKL backend for heFFTe") + else() + message(WARNING "FFT_HEFFTE_BACKEND not selected, defaulting to the builtin 'stock' backend, which is intended for testing and is not optimized for production runs") + endif() + + find_package(Heffte 2.4.0 QUIET COMPONENTS ${HEFFTE_COMPONENTS}) + if (NOT Heffte_FOUND) # download and build + include(FetchContent) + FetchContent_Declare(HEFFTE_PROJECT # using v2.4.0 + URL "https://github.com/icl-utk-edu/heffte/archive/refs/tags/v2.4.0.tar.gz" + URL_HASH SHA256=02310fb4f9688df02f7181667e61c3adb7e38baf79611d80919d47452ff7881d + ) + FetchContent_Populate(HEFFTE_PROJECT) + add_subdirectory(${heffte_project_SOURCE_DIR} ${heffte_project_BINARY_DIR}) + set_target_properties(lmp PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + set_target_properties(lammps PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + add_library(Heffte::Heffte INTERFACE IMPORTED GLOBAL) + target_link_libraries(Heffte::Heffte INTERFACE Heffte) + endif() + + target_compile_definitions(lammps PRIVATE -DFFT_HEFFTE "-DFFT_HEFFTE_${FFT_HEFFTE_BACKEND}") + target_link_libraries(lammps PRIVATE Heffte::Heffte) +endif() + set(FFT_PACK "array" CACHE STRING "Optimization for FFT") set(FFT_PACK_VALUES array pointer memcpy) set_property(CACHE FFT_PACK PROPERTY STRINGS ${FFT_PACK_VALUES}) diff --git a/cmake/Modules/Packages/ML-PACE.cmake b/cmake/Modules/Packages/ML-PACE.cmake index ce8f02f5f4..248b8eea76 100644 --- a/cmake/Modules/Packages/ML-PACE.cmake +++ b/cmake/Modules/Packages/ML-PACE.cmake @@ -1,33 +1,40 @@ -set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.10.04.tar.gz" CACHE STRING "URL for PACE evaluator library sources") +set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2023.11.25.fix.tar.gz" CACHE STRING "URL for PACE evaluator library sources") -set(PACELIB_MD5 "70ff79f4e59af175e55d24f3243ad1ff" CACHE STRING "MD5 checksum of PACE evaluator library tarball") +set(PACELIB_MD5 "b45de9a633f42ed65422567e3ce56f9f" CACHE STRING "MD5 checksum of PACE evaluator library tarball") mark_as_advanced(PACELIB_URL) mark_as_advanced(PACELIB_MD5) GetFallbackURL(PACELIB_URL PACELIB_FALLBACK) -# download library sources to build folder -if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz) - file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5) -endif() -if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}") - message(STATUS "Downloading ${PACELIB_URL}") - file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS) - file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5) - if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")) - message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}") - file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS) - endif() +# LOCAL_ML-PACE points to top-level dir with local lammps-user-pace repo, +# to make it easier to check local build without going through the public github releases +if(LOCAL_ML-PACE) + set(lib-pace "${LOCAL_ML-PACE}") else() - message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz") -endif() + # download library sources to build folder + if(EXISTS ${CMAKE_BINARY_DIR}/libpace.tar.gz) + file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5) + endif() + if(NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}") + message(STATUS "Downloading ${PACELIB_URL}") + file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/libpace.tar.gz STATUS DL_STATUS SHOW_PROGRESS) + file(MD5 ${CMAKE_BINARY_DIR}/libpace.tar.gz DL_MD5) + if((NOT DL_STATUS EQUAL 0) OR (NOT "${DL_MD5}" STREQUAL "${PACELIB_MD5}")) + message(WARNING "Download from primary URL ${PACELIB_URL} failed\nTrying fallback URL ${PACELIB_FALLBACK}") + file(DOWNLOAD ${PACELIB_FALLBACK} ${CMAKE_BINARY_DIR}/libpace.tar.gz EXPECTED_HASH MD5=${PACELIB_MD5} SHOW_PROGRESS) + endif() + else() + message(STATUS "Using already downloaded archive ${CMAKE_BINARY_DIR}/libpace.tar.gz") + endif() -# uncompress downloaded sources -execute_process( - COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace* - COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} -) -get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace) + + # uncompress downloaded sources + execute_process( + COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace* + COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + get_newest_file(${CMAKE_BINARY_DIR}/lammps-user-pace-* lib-pace) +endif() add_subdirectory(${lib-pace} build-pace) set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE}) diff --git a/doc/src/Build_settings.rst b/doc/src/Build_settings.rst index 7576cae3eb..e2b096c6e0 100644 --- a/doc/src/Build_settings.rst +++ b/doc/src/Build_settings.rst @@ -43,6 +43,12 @@ When the KSPACE package is included in a LAMMPS build, the require use of an FFT library to compute 1d FFTs. The KISS FFT library is included with LAMMPS, but other libraries can be faster. LAMMPS can use them if they are available on your system. +Alternatively, LAMMPS can use the +`heFFTe `_ +library for the MPI communication algorithms, +which comes with many optimizations for special cases, +e.g., leveraging 2D and 3D backend transforms and +better pipelining for packing and communication. .. tabs:: @@ -53,6 +59,7 @@ LAMMPS can use them if they are available on your system. -D FFT=value # FFTW3 or MKL or KISS, default is FFTW3 if found, else KISS -D FFT_SINGLE=value # yes or no (default), no = double precision -D FFT_PACK=value # array (default) or pointer or memcpy + -D FFT_USE_HEFFTE=value # yes or no (default), yes links to heFFTe .. note:: @@ -76,6 +83,15 @@ LAMMPS can use them if they are available on your system. -D MKL_INCLUDE_DIR=path # ditto for Intel MKL library -D FFT_MKL_THREADS=on # enable using threaded FFTs with MKL libraries -D MKL_LIBRARY=path # path to MKL libraries + -D FFT_HEFFTE_BACKEND=value # FFTW or MKL or empty/undefined for the stock backend + -D Heffte_ROOT=path # path to an existing heFFTe installation + + .. note:: + + heFFTe comes with a builtin stock backend for FFTs; however, the backend + is intended for testing purposes and is not performance optimized + for large scale production runs. + .. tab:: Traditional make @@ -111,6 +127,24 @@ LAMMPS can use them if they are available on your system. files in its default search path. You must specify ``FFT_LIB`` with the appropriate FFT libraries to include in the link. + Traditional make can also link to heFFTe using an existing installation + + .. code-block:: make + + include /share/heffte/HeffteMakefile.in + FFT_INC = -DFFT_HEFFTE -DFFT_HEFFTE_FFTW $(heffte_include) + FFT_PATH = + FFT_LIB = $(heffte_link) $(heffte_libs) + + The heFFTe install path will contain `HeffteMakefile.in`. + which will define the `heffte_` include variables needed to link to heFFTe from + an external project using traditional make. + The `-DFFT_HEFFTE` is required to switch to using heFFTe, while the optional `-DFFT_HEFFTE_FFTW` + selects the desired heFFTe backend, e.g., `-DFFT_HEFFTE_FFTW` or `-DFFT_HEFFTE_MKL`, + omitting the variable will default to the `stock` backend. + The heFFTe `stock` backend is intended to be used for testing and debugging, + but is not performance optimized for large scale production runs. + The `KISS FFT library `_ is included in the LAMMPS distribution. It is portable across all platforms. Depending on the size of the FFTs and the number of @@ -170,6 +204,16 @@ Depending on the machine, the size of the FFT grid, the number of processors used, one option may be slightly faster. The default is ARRAY mode. +When using ``-DFFT_HEFFTE`` CMake will first look for an existing install +with hints provided by ``-DHeffte_ROOT``, as recommended by the CMake +standard and note that the name is case sensitive. If CMake cannot find +a heFFTe installation with the correct backend (e.g., FFTW or MKL), +it will attempt to download and build the library automatically. +In this case, LAMMPS CMake will also accept all heFFTe specific variables +listed in the +`heFFTe documentation `_ +and those variables will be passed into the heFFTe build. + ---------- .. _size: diff --git a/doc/src/Commands_compute.rst b/doc/src/Commands_compute.rst index 3f32fb8ed1..ab4d8d64a2 100644 --- a/doc/src/Commands_compute.rst +++ b/doc/src/Commands_compute.rst @@ -100,6 +100,7 @@ KOKKOS, o = OPENMP, t = OPT. * :doc:`nbond/atom ` * :doc:`omega/chunk ` * :doc:`orientorder/atom (k) ` + * :doc:`pace ` * :doc:`pair ` * :doc:`pair/local ` * :doc:`pe ` @@ -115,6 +116,7 @@ KOKKOS, o = OPENMP, t = OPT. * :doc:`property/grid ` * :doc:`property/local ` * :doc:`ptm/atom ` + * :doc:`rattlers/atom ` * :doc:`rdf ` * :doc:`reduce ` * :doc:`reduce/chunk ` diff --git a/doc/src/Commands_fix.rst b/doc/src/Commands_fix.rst index 7301d1345e..e89e302673 100644 --- a/doc/src/Commands_fix.rst +++ b/doc/src/Commands_fix.rst @@ -122,6 +122,7 @@ OPT. * :doc:`mvv/tdpd ` * :doc:`neb ` * :doc:`neb/spin ` + * :doc:`nonaffine/displacement ` * :doc:`nph (ko) ` * :doc:`nph/asphere (o) ` * :doc:`nph/body ` @@ -238,10 +239,10 @@ OPT. * :doc:`store/force ` * :doc:`store/state ` * :doc:`tdpd/source ` - * :doc:`temp/berendsen ` + * :doc:`temp/berendsen (k) ` * :doc:`temp/csld ` * :doc:`temp/csvr ` - * :doc:`temp/rescale ` + * :doc:`temp/rescale (k) ` * :doc:`temp/rescale/eff ` * :doc:`tfmc ` * :doc:`tgnpt/drude ` diff --git a/doc/src/Commands_removed.rst b/doc/src/Commands_removed.rst index 8a00c63734..98a52fc2d7 100644 --- a/doc/src/Commands_removed.rst +++ b/doc/src/Commands_removed.rst @@ -126,6 +126,17 @@ syntax compatible with the removed reax pair style, so input files will have to be adapted. The REAXFF package was originally called USER-REAXC. +USER-REAXC package +------------------ + +.. deprecated:: TBD + +The USER-REAXC package has been renamed to :ref:`REAXFF `. +In the process also the pair style and related fixes were renamed to use +the "reaxff" string instead of "reax/c". For a while LAMMPS was maintaining +backward compatibility by providing aliases for the styles. These have +been removed, so using "reaxff" is now *required*. + USER-CUDA package ----------------- diff --git a/doc/src/Howto.rst b/doc/src/Howto.rst index b1f5da8abc..85c98bd6de 100644 --- a/doc/src/Howto.rst +++ b/doc/src/Howto.rst @@ -101,6 +101,7 @@ Tutorials howto Howto_cmake Howto_github Howto_lammps_gui + Howto_moltemplate Howto_pylammps Howto_wsl diff --git a/doc/src/Howto_body.rst b/doc/src/Howto_body.rst index 115b7797c8..968e10edd8 100644 --- a/doc/src/Howto_body.rst +++ b/doc/src/Howto_body.rst @@ -335,7 +335,7 @@ faces are listed, so that M = 6 + 3\*N + 1. The integer line has three values: number of vertices (N), number of edges (E) and number of faces (F). The floating point line(s) list 6 moments of inertia followed by the coordinates of the N vertices (x1 -to zN) as 3N values, followed by 2N vertex indices corresponding to +to zN) as 3N values, followed by 2E vertex indices corresponding to the end points of the E edges, then 4\*F vertex indices defining F faces. The last value is the diameter value = the rounded diameter of the sphere that surrounds each vertex. The diameter value can be diff --git a/doc/src/Howto_moltemplate.rst b/doc/src/Howto_moltemplate.rst new file mode 100644 index 0000000000..bb068a2e93 --- /dev/null +++ b/doc/src/Howto_moltemplate.rst @@ -0,0 +1,371 @@ +Moltemplate Tutorial +==================== + +In this tutorial, we are going to use the tool :ref:`Moltemplate +` to set up a classical molecular dynamic simulation using +the :ref:`OPLS-AA force field `. The first +task is to describe an organic compound and create a complete input deck +for LAMMPS. The second task is to map the OPLS-AA force field to a +molecular sample created with an external tool, e.g. PACKMOL, and +exported as a PDB file. The files used in this tutorial can be found +in the ``tools/moltemplate/tutorial-files`` folder of the LAMMPS +source code distribution. + +Simulating an organic solvent +""""""""""""""""""""""""""""" + +This example aims to create a cubic box of the organic solvent +formamide. + +The first step is to create a molecular topology in the +LAMMPS-template (LT) file format representing a single molecule, which +will be stored in a Moltemplate object called ``_FAM inherits OPLSAA {}``. +This command states that the object ``_FAM`` is based on an existing +object called ``OPLSAA``, which contains OPLS-AA parameters, atom type +definitions, partial charges, masses and bond-angle rules for many organic +and biological compounds. + +The atomic structure is the starting point to populate the command +``write('Data Atoms') {}``, which will write the ``Atoms`` section in the +LAMMPS data file. The OPLS-AA force field uses the ``atom_style full``, +therefore, this column format is used: +``# atomID molID atomType charge coordX coordY coordZ``. +The ``atomID``\ s are replaced with Moltemplate ``$``-type variables, which +are then substituted with unique numerical IDs. The same logic is applied +to the ``molID``, except that the same variable is used for the whole +molecule. The atom types are assigned using ``@``-type variables. The +assignment of atom types (e.g. ``@atom:177``, ``@atom:178``) is done using +the OPLS-AA atom types defined in the "In Charges" section of the file +``oplsaa.lt``, looking for a reasonable match with the description of the atom. +The resulting file (``formamide.lt``) follows: + +.. code-block:: bash + + _FAM inherits OPLSAA { + + # atomID molID atomType charge coordX coordY coordZ + write('Data Atoms') { + $atom:C00 $mol @atom:177 0.00 0.100 0.490 0.0 + $atom:O01 $mol @atom:178 0.00 1.091 -0.250 0.0 + $atom:N02 $mol @atom:179 0.00 -1.121 -0.181 0.0 + $atom:H03 $mol @atom:182 0.00 -2.013 0.272 0.0 + $atom:H04 $mol @atom:182 0.00 -1.056 -1.190 0.0 + $atom:H05 $mol @atom:221 0.00 0.144 1.570 0.0 + } + + # A list of the bonds in the molecule: + # BondID AtomID1 AtomID2 + write('Data Bond List') { + $bond:C1 $atom:C00 $atom:O01 + $bond:C2 $atom:C00 $atom:H05 + $bond:C3 $atom:C00 $atom:N02 + $bond:C4 $atom:N02 $atom:H03 + $bond:C5 $atom:N02 $atom:H04 + } + } + +You don't have to specify the charge in this example because they will +be assigned according to the atom type. Analogously, only a +"Data Bond List" section is needed as the atom type will determine the +bond type. The other bonded interactions (e.g. angles, +dihedrals, and impropers) will be automatically generated by +Moltemplate. + +If the simulation is non-neutral, or Moltemplate complains that you have +missing bond, angle, or dihedral types, this means at least one of your +atom types is incorrect. + +The second step is to create a master file with instructions to build a +starting structure and the LAMMPS commands to run an NPT simulation. The +master file (``solv_01.lt``) follows: + +.. code-block:: bash + + # Import the force field. + import /usr/local/moltemplate/moltemplate/force_fields/oplsaa.lt + import formamide.lt # after oplsaa.lt, as it depends on it. + + # Create the input sample. + solv = new _FAM [5].move( 4.6, 0, 0) + [5].move( 0, 4.6, 0) + [5].move( 0, 0, 4.6) + solv[*][*][*].move(-11.5, -11.5, -11.5) + + # Set the simulation box. + write_once("Data Boundary") { + -11.5 11.5 xlo xhi + -11.5 11.5 ylo yhi + -11.5 11.5 zlo zhi + } + + # Create an input deck for LAMMPS. + write_once("In Init"){ + # Input variables. + variable run string solv_01 # output name + variable ts equal 1 # timestep + variable temp equal 300 # equilibrium temperature + variable p equal 1. # equilibrium pressure + variable d equal 1000 # output frequency + variable equi equal 5000 # Equilibration steps + variable prod equal 30000 # Production steps + + # PBC (set them before the creation of the box). + boundary p p p + } + + # Run an NPT simulation. + write_once("In Run"){ + # Derived variables. + variable tcouple equal \$\{ts\}*100 + variable pcouple equal \$\{ts\}*1000 + + # Output. + thermo \$d + thermo_style custom step etotal evdwl ecoul elong ebond eangle & + edihed eimp ke pe temp press vol density cpu + thermo_modify flush yes + + # Trajectory. + dump TRJ all dcd \$d \$\{run\}.dcd + dump_modify TRJ unwrap yes + + # Thermalisation and relaxation, NPT ensemble. + timestep \$\{ts\} + fix NPT all npt temp \$\{temp\} \$\{temp\} \$\{tcouple\} iso \$p \$p \$\{pcouple\} + velocity all create \$\{temp\} 858096 dist gaussian + # Short runs to update the PPPM settings as the box shinks. + run \$\{equi\} post no + run \$\{equi\} post no + run \$\{equi\} post no + run \$\{equi\} + # From now on, the density shouldn't change too much. + run \$\{prod\} + unfix NPT + } + +The first two commands insert the content of files ``oplsaa.lt`` and +``formamide.lt`` into the master file. At this point, we can use the +command ``solv = new _FAM [N]`` to create N copies of a molecule of type +``_FAM``. In this case, we create an array of 5*5*5 molecules on a cubic +grid using the coordinate transformation command ``.move( 4.6, 0, 0)``. +See the Moltemplate documentation to learn more about the syntax. As +the sample was created from scratch, we also specify the simulation box +size in the "Data Boundary" section. + +The LAMMPS setting for the force field are specified in the file +``oplsaa.lt`` and are written automatically in the input deck. We also +specify the boundary conditions and a set of variables in +the "In Init" section. The remaining commands to run an NPT simulation +are written in the "In Run" section. Note that in this script, LAMMPS +variables are protected with the escape character ``\`` to distinguish +them from Moltemplate variables, e.g. ``\$\{run\}`` is a LAMMPS +variable that is written in the input deck as ``${run}``. + +Compile the master file with: + +.. code-block:: bash + + moltemplate.sh -overlay-all solv_01.lt + +And execute the simulation with the following: + +.. code-block:: bash + + mpirun -np 4 lmp -in solv_01.in -l solv_01.log + +.. figure:: JPG/solv_01.png + :figwidth: 80% + :figclass: align-center + + Snapshot of the sample at the beginning and end of the simulation. + Rendered with Ovito. + +Mapping an existing structure +""""""""""""""""""""""""""""" + +Another helpful way to use Moltemplate is mapping an existing molecular +sample to a force field. This is useful when a complex sample is +assembled from different simulations or created with specialized +software (e.g. PACKMOL). As in the previous example, all molecular +species in the sample must be defined using single-molecule Moltemplate +objects. For this example, we use a short polymer in a box containing +water molecules and ions in the PDB file ``model.pdb``. + +It is essential to understand that the order of atoms in the PDB file +and in the Moltemplate master script must match, as we are using the +coordinates from the PDB file in the order they appear. The order of +atoms and molecules in the PDB file provided is as follows: + +- 500 water molecules, with atoms ordered in this sequence: + + .. parsed-literal:: + + ATOM 1 O MOL D 1 5.901 7.384 1.103 0.00 0.00 DUM + ATOM 2 H MOL D 1 6.047 8.238 0.581 0.00 0.00 DUM + ATOM 3 H MOL D 1 6.188 7.533 2.057 0.00 0.00 DUM + +- 1 polymer molecule. +- 1 Ca\ :sup:`2+` ion. +- 2 Cl\ :sup:`-` ions. + +In the master LT file, this sequence of molecules is matched with the +following commands: + +.. code-block:: bash + + # Create the sample. + wat=new SPC[500] + pol=new PolyNIPAM[1] + cat=new Ca[1] + ani=new Cl[2] + +Note that the first command would create 500 water molecules in the +same position in space, and the other commands will use the coordinates +specified in the corresponding molecular topology block. However, the +coordinates will be overwritten by rendering an external atomic +structure file. Note that if the same molecule species are scattered in +the input structure, it is recommended to reorder and group together +for molecule types to facilitate the creation of the input sample. + +The molecular topology for the polymer is created as in the previous +example, with the atom types assigned as in the following schema: + +.. figure:: JPG/PolyNIPAM.jpg + :scale: 30% + :align: center + + Atom types assigned to the polymer's repeating unit. + +The molecular topology of the water and ions is stated directly into +the master file for the sake of space, but they could also be written +in a separate file(s) and imported before the sample is created. + +The resulting master LT file defining short annealing at a fixed volume +(NVT) follows: + +.. code-block:: bash + + # 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 + } + + +In this example, the water model is SPC and it is defined in the +``oplsaa.lt`` file with atom types ``@atom:76`` and ``@atom:77``. For +water we also use the ``group`` and ``fix shake`` commands with +Moltemplate ``@``-type variables, to ensure consistency with the +numerical values assigned during compilation. To identify the bond and +angle types, look for the extended ``@atom`` IDs, which in this case +are: + +.. code-block:: bash + + replace{ @atom:76 @atom:76_b042_a042_d042_i042 } + replace{ @atom:77 @atom:77_b043_a043_d043_i043 } + +From which we can identify the following "Data Bonds By Type": +``@bond:042_043 @atom:*_b042*_a*_d*_i* @atom:*_b043*_a*_d*_i*`` and +"Data Angles By Type": ``@angle:043_042_043 @atom:*_b*_a043*_d*_i* +@atom:*_b*_a042*_d*_i* @atom:*_b*_a043*_d*_i*`` + +Compile the master file with: + +.. code-block:: bash + + moltemplate.sh -overlay-all -pdb model.pdb sample01.lt + +And execute the simulation with the following: + +.. code-block:: bash + + mpirun -np 4 lmp -in sample01.in -l sample01.log + +.. figure:: JPG/sample01.png + :figwidth: 50% + :figclass: align-center + + Sample visualized with Ovito loading the trajectory into the DATA + file written after minimization. + +------------ + +.. _OPLSAA96: + +**(OPLS-AA)** Jorgensen, Maxwell, Tirado-Rives, J Am Chem Soc, +118(45), 11225-11236 (1996). diff --git a/doc/src/JPG/PolyNIPAM.jpg b/doc/src/JPG/PolyNIPAM.jpg new file mode 100644 index 0000000000..4ad3ce8274 Binary files /dev/null and b/doc/src/JPG/PolyNIPAM.jpg differ diff --git a/doc/src/JPG/sample01.png b/doc/src/JPG/sample01.png new file mode 100644 index 0000000000..3a00176edd Binary files /dev/null and b/doc/src/JPG/sample01.png differ diff --git a/doc/src/JPG/solv_01.png b/doc/src/JPG/solv_01.png new file mode 100644 index 0000000000..fc52d44928 Binary files /dev/null and b/doc/src/JPG/solv_01.png differ diff --git a/doc/src/compute.rst b/doc/src/compute.rst index b258f986b7..afe57d9048 100644 --- a/doc/src/compute.rst +++ b/doc/src/compute.rst @@ -264,6 +264,7 @@ The individual style names on the :doc:`Commands compute ` pag * :doc:`nbond/atom ` - calculates number of bonds per atom * :doc:`omega/chunk ` - angular velocity for each chunk * :doc:`orientorder/atom ` - Steinhardt bond orientational order parameters Ql +* :doc:`pace ` - atomic cluster expansion descriptors and related quantities * :doc:`pair ` - values computed by a pair style * :doc:`pair/local ` - distance/energy/force of each pairwise interaction * :doc:`pe ` - potential energy @@ -279,6 +280,7 @@ The individual style names on the :doc:`Commands compute ` pag * :doc:`property/grid ` - convert per-grid attributes to per-grid vectors/arrays * :doc:`property/local ` - convert local attributes to local vectors/arrays * :doc:`ptm/atom ` - determines the local lattice structure based on the Polyhedral Template Matching method +* :doc:`rattlers/atom ` - identify under-coordinated rattler atoms * :doc:`rdf ` - radial distribution function :math:`g(r)` histogram of group of atoms * :doc:`reduce ` - combine per-atom quantities into a single global value * :doc:`reduce/chunk ` - reduce per-atom quantities within each chunk diff --git a/doc/src/compute_contact_atom.rst b/doc/src/compute_contact_atom.rst index 31aa24aa60..b7ed062ff6 100644 --- a/doc/src/compute_contact_atom.rst +++ b/doc/src/compute_contact_atom.rst @@ -36,6 +36,9 @@ sum of the radii of the two particles. The value of the contact number will be 0.0 for atoms not in the specified compute group. +The optional *group2-ID* argument allows to specify from which group atoms +contribute to the coordination number. Default setting is group 'all'. + Output info """"""""""" @@ -47,9 +50,6 @@ overview of LAMMPS output options. The per-atom vector values will be a number :math:`\ge 0.0`, as explained above. -The optional *group2-ID* argument allows to specify from which group atoms -contribute to the coordination number. Default setting is group 'all.' - Restrictions """""""""""" @@ -69,6 +69,3 @@ Default """"""" *group2-ID* = all - - -none diff --git a/doc/src/compute_pace.rst b/doc/src/compute_pace.rst new file mode 100644 index 0000000000..0c4a295f1b --- /dev/null +++ b/doc/src/compute_pace.rst @@ -0,0 +1,251 @@ +.. index:: compute pace + +compute pace command +======================== + +Syntax +"""""" + +.. code-block:: LAMMPS + + compute ID group-ID pace ace_potential_filename ... keyword values ... + +* ID, group-ID are documented in :doc:`compute ` command +* pace = style name of this compute command +* ace_potential_filename = file name (in the .yace or .ace format from :doc:`pace pair_style `) including ACE hyperparameters, bonds, and generalized coupling coefficients +* keyword = *bikflag* or *dgradflag* + + .. parsed-literal:: + + *bikflag* value = *0* or *1* + *0* = descriptors are summed over atoms of each type + *1* = descriptors are listed separately for each atom + *dgradflag* value = *0* or *1* + *0* = descriptor gradients are summed over atoms of each type + *1* = descriptor gradients are listed separately for each atom pair + +Examples +"""""""" + +.. code-block:: LAMMPS + + compute pace all pace coupling_coefficients.yace + compute pace all pace coupling_coefficients.yace 0 1 + compute pace all pace coupling_coefficients.yace 1 1 + +Description +""""""""""" + +.. versionadded:: TBD + +This compute calculates a set of quantities related to the atomic cluster +expansion (ACE) descriptors of the atoms in a group. ACE descriptors are +a highly generalizable atomic descriptor, encoding the radial and angular +distribution of neighbor atoms, up to arbitrary bond order (rank). The +detailed mathematical definition is given in the paper by +:ref:`(Drautz) `. These descriptors are used in the +:doc:`pace pair_style `. Quantities obtained from `compute pace` +are related to those used in :doc:`pace pair_style ` to +evaluate atomic energies, forces, and stresses for linear ACE models. +For example, the energy for a linear ACE model is calculated as: +:math:`E=\sum_i^{N\_atoms} \sum_{\boldsymbol{\nu}} c_{\boldsymbol{\nu}} B_{i,\boldsymbol{\boldsymbol{\nu}}}`. +The ACE descriptors for atom `i` :math:`B_{i,\boldsymbol{\nu}}`, and +:math:`c_{\nu}` are linear model parameters. The detailed definition +and indexing convention for ACE descriptors is given in :ref:`(Drautz) `. +In short, body order :math:`N`, angular character, radial character, +and chemical elements in the *N-body* descriptor are encoded by :math:`\nu`. +In the :doc:`pace pair_style `, the linear model parameters +and the ACE descriptors are combined for efficient evaluation of energies +and forces. The details and benefits of this efficient implementation are +given in :ref:`(Lysogorskiy) `. et. al, but the combined +descriptors and linear model parameters for the purposes of `compute pace` +may be expressed in terms of the ACE descriptors mentioned above. + +:math:`c_{\boldsymbol{\nu}} B_{i,\boldsymbol{\nu}}= \sum_{\boldsymbol{\nu}' \in \boldsymbol{\nu} } \big[ c_{\boldsymbol{\nu}} C(\boldsymbol{\nu}') \big] A_{i,\boldsymbol{\nu}'}` + +where the bracketed terms on the right-hand side are the combined functions +with linear model parameters typically provided in the `.yace` potential +file for `pace pair_style`. When these bracketed terms are multiplied by the +products of the atomic base from :ref:`(Drautz) `, +:math:`A_{i,\boldsymbol{\nu'}}`, the ACE descriptors are recovered but they +are also scaled by linear model parameters. The generalized coupling coefficients, +written in short-hand here as :math:`C(\boldsymbol{\nu}')`, are the generalized +Clebsch-Gordan or generalized Wigner symbols. It may be desirable to reverse the +combination of these descriptors and the linear model parameters so that the +ACE descriptors themselves may be used. The ACE descriptors and their gradients +are often used when training ACE models, performing custom data analysis, +generalizing ACE model forms, and other tasks that involve direct computation of +descriptors. The key utility of `compute pace` is that it can compute the ACE +descriptors and gradients so that these tasks can be performed during a LAMMPS +simulation or so that LAMMPS can be used as a driver for tasks like ACE model +parameterization. To see how this command can be used within a Python workflow +to train ACE potentials, see the examples in +`FitSNAP `_. Examples on using outputs from +this compute to construct general ACE potential forms are demonstrated in +:ref:`(Goff) `. The various keywords and inputs to `compute pace` +determine what ACE descriptors and related quantities are returned in a compute +array. + +The coefficient file, `.yace`, ultimately defines the number of ACE +descriptors to be computed, their maximum body-order, the degree of angular +character they have, the degree of radial character they have, the chemical +character (which element-element interactions are encoded by descriptors), +and other hyperparameters defined in :ref:`(Drautz) `. These may +be modeled after the potential files in :doc:`pace pair_style `, +and have the same format. Details on how to generate the coefficient files +to train ACE models may be found in `FitSNAP `_. + +The keyword *bikflag* determines whether or not to list the descriptors of +each atom separately, or sum them together and list in a single row. If +*bikflag* is set to *0* then a single descriptor row is used, which contains +the per-atom ACE descriptors :math:`B_{i,\boldsymbol{\nu}}` summed over all +atoms *i* to produce :math:`B_{\boldsymbol{\nu}}`. If *bikflag* is set to +*1* this is replaced by a separate per-atom ACE descriptor row for each atom. +In this case, the entries in the final column for these rows are set to zero. + +The keyword *dgradflag* determines whether to sum atom gradients or list +them separately. If *dgradflag* is set to 0, the ACE +descriptor gradients w.r.t. atom *j* are summed over all atoms *i'* +of, which may be useful when training linear ACE models on atomic forces. +If *dgradflag* is set to 1, gradients are listed separately for each pair of atoms. +Each row corresponds +to a single term :math:`\frac{\partial {B_{i,\boldsymbol{\nu}}}}{\partial {r}^a_j}` +where :math:`{r}^a_j` is the *a-th* position coordinate of the atom with global +index *j*. This also changes the number of columns to be equal to the number of +ACE descriptors, with 3 additional columns representing the indices :math:`i`, +:math:`j`, and :math:`a`, as explained more in the Output info section below. +The option *dgradflag=1* requires that *bikflag=1*. + +.. note:: + + It is noted here that in contrast to :doc:`pace pair_style `, + the *.yace* file for `compute pace` typically should not contain linear + parameters for an ACE potential. If :math:`c_{\nu}` are included, + the value of the descriptor will not be returned in the `compute` array, + but instead, the energy contribution from that descriptor will be returned. + Do not do this unless it is the desired behavior. + *In short, you should not plug in a '.yace' for a pace potential into this + compute to evaluate descriptors.* + +.. note:: + + *Generalized Clebsch-Gordan or Generalized Wigner symbols (with appropriate + factors) must be used to evaluate ACE descriptors with this compute.* There + are multiple ways to define the generalized coupling coefficients. Because + of this, this compute will not revert your potential file to a coupling + coefficient file. Instead this compute allows the user to supply coupling + coefficients that follow any convention. + +.. note:: + + Using *dgradflag* = 1 produces a global array with :math:`N + 3N^2 + 1` rows + which becomes expensive for systems with more than 1000 atoms. + +.. note:: + + If you have a bonded system, then the settings of :doc:`special_bonds + ` command can remove pairwise interactions between + atoms in the same bond, angle, or dihedral. This is the default + setting for the :doc:`special_bonds ` command, and + means those pairwise interactions do not appear in the neighbor list. + Because this fix uses the neighbor list, it also means those pairs + will not be included in the calculation. One way to get around this, + is to write a dump file, and use the :doc:`rerun ` command to + compute the ACE descriptors for snapshots in the dump file. + The rerun script can use a :doc:`special_bonds ` + command that includes all pairs in the neighbor list. + +---------- + +Output info +""""""""""" + +Compute *pace* evaluates a global array. The columns are arranged into +*ntypes* blocks, listed in order of atom type *I*\ . Each block contains +one column for each ACE descriptor, the same as for compute +*sna/atom*\ in :doc:`compute snap `. A final column contains the corresponding energy, force +component on an atom, or virial stress component. The rows of the array +appear in the following order: + +* 1 row: *pace* average descriptor values for all atoms of type *I* +* 3\*\ *n* force rows: quantities, with derivatives w.r.t. x, y, and z coordinate of atom *i* appearing in consecutive rows. The atoms are sorted based on atom ID and run up to the total number of atoms, *n*. +* 6 rows: *virial* quantities summed for all atoms of type *I* + +For example, if :math:`\# \; B_{i, \boldsymbol{\nu}}` =30 and ntypes=1, the number of columns in the +The number of columns in the global array generated by *pace* are 31, and +931, respectively, while the number of rows is 1+3\*\ *n*\ +6, where *n* +is the total number of atoms. + +If the *bik* keyword is set to 1, the structure of the pace array is expanded. +The first :math:`N` rows of the pace array +correspond to :math:`\# \; B_{i,\boldsymbol{\nu}}` instead of a single row summed over atoms :math:`i`. +In this case, the entries in the final column for these rows +are set to zero. Also, each row contains only non-zero entries for the +columns corresponding to the type of that atom. This is not true in the case +of *dgradflag* keyword = 1 (see below). + +If the *dgradflag* keyword is set to 1, this changes the structure of the +global array completely. +Here the per-atom quantities are replaced with rows corresponding to +descriptor gradient components on single atoms: + +.. math:: + + \frac{\partial {B_{i,\boldsymbol{\nu}} }}{\partial {r}^a_j} + +where :math:`{r}^a_j` is the *a-th* position coordinate of the atom with global +index *j*. The rows are +organized in chunks, where each chunk corresponds to an atom with global index +:math:`j`. The rows in an atom :math:`j` chunk correspond to +atoms with global index :math:`i`. The total number of rows for +these descriptor gradients is therefore :math:`3N^2`. +The number of columns is equal to the number of ACE descriptors, +plus 3 additional left-most columns representing the global atom indices +:math:`i`, :math:`j`, +and Cartesian direction :math:`a` (0, 1, 2, for x, y, z). +The first 3 columns of the first :math:`N` rows belong to the reference +potential force components. The remaining K columns contain the +:math:`B_{i,\boldsymbol{\nu}}` per-atom descriptors corresponding to the non-zero entries +obtained when *bikflag* = 1. +The first column of the last row, after the first +:math:`N + 3N^2` rows, contains the reference potential +energy. The virial components are not used with this option. The total number of +rows is therefore :math:`N + 3N^2 + 1` and the number of columns is :math:`K + 3`. + +These values can be accessed by any command that uses global values +from a compute as input. See the :doc:`Howto output ` doc +page for an overview of LAMMPS output options. + +Restrictions +"""""""""""" + +These computes are part of the ML-PACE package. They are only enabled +if LAMMPS was built with that package. See the :doc:`Build package +` page for more info. + +Related commands +"""""""""""""""" + +:doc:`pair_style pace ` +:doc:`pair_style snap ` +:doc:`compute snap ` + +Default +""""""" + +The optional keyword defaults are *bikflag* = 0, +*dgradflag* = 0 + +---------- + +.. _Drautz19: + +**(Drautz)** Drautz, Phys Rev B, 99, 014104 (2019). + +.. _Lysogorskiy21: + +**(Lysogorskiy)** Lysogorskiy, van der Oord, Bochkarev, Menon, Rinaldi, Hammerschmidt, Mrovec, Thompson, Csanyi, Ortner, Drautz, npj Comp Mat, 7, 97 (2021). + +.. _Goff23: + +**(Goff)** Goff, Zhang, Negre, Rohskopf, Niklasson, Journal of Chemical Theory and Computation 19, no. 13 (2023). diff --git a/doc/src/compute_rattlers_atom.rst b/doc/src/compute_rattlers_atom.rst new file mode 100644 index 0000000000..a69d091466 --- /dev/null +++ b/doc/src/compute_rattlers_atom.rst @@ -0,0 +1,92 @@ +.. index:: compute rattlers/atom + +compute rattlers/atom command +======================== + +Syntax +"""""" + +.. parsed-literal:: + + compute ID group-ID rattlers/atom cutoff zmin ntries + +* ID, group-ID are documented in :doc:`compute ` command +* rattlers/atom = style name of this compute command +* cutoff = *type* or *radius* + + .. parsed-literal:: + + *type* = cutoffs determined based on atom types + *radius* = cutoffs determined based on atom diameters (atom style sphere) + +* zmin = minimum coordination for a non-rattler atom +* ntries = maximum number of iterations to remove rattlers + +Examples +"""""""" + +.. code-block:: LAMMPS + + compute 1 all rattlers/atom type 4 10 + +Description +""""""""""" + +.. versionadded:: TBD + +Define a compute that identifies rattlers in a system. Rattlers are often +identified in granular or glassy packings as undercoordinated atoms that +do not have the required number of contacts to constrain their translational +degrees of freedom. Such atoms are not considered rigid and can often freely +rattle around in the system. This compute identifies rattlers which can be +helpful for excluding them from analysis or providing extra damping forces +to accelerate relaxation processes. + +Rattlers are identified using an interactive approach. The coordination +number of all atoms is first calculated. The *type* and *radius* settings +are used to select whether interaction cutoffs are determined by atom +types or by the sum of atomic radii (atom style sphere), respectively. +Rattlers are then identified as atoms with a coordination number less +than *zmin* and are removed from consideration. Atomic coordination +numbers are then recalculated, excluding previously identified rattlers, +to identify a new set of rattlers. This process is iterated up to a maximum +of *ntries* or until no new rattlers are identified and the remaining +atoms form a stable network of contacts. + +In dense homogeneous systems where the average atom coordination number +is expected to be larger than *zmin*, this process usually only takes a few +iterations and a value of *ntries* around ten may be sufficient. In systems +with significant heterogeneity or average coordination numbers less than +*zmin*, an appropriate value of *ntries* depends heavily on the specific +system. For instance, a linear chain of N rattler atoms with a *zmin* of 2 +would take N/2 iterations to identify that all the atoms are rattlers. + +Output info +""""""""""" + +This compute calculates a per-atom vector and a global scalar. The vector +designates which atoms are rattlers, indicated by a value 1. Non-rattlers +have a value of 0. The global scalar returns the total number of rattlers +in the system. See the :doc:`Howto output ` page for an +overview of LAMMPS output options. + +Restrictions +"""""""""""" + +This compute is part of the EXTRA-COMPUTE package. It is only enabled if +LAMMPS was built with that package. See the +:doc:`Build package ` page for more info. + +The *radius* cutoff option requires that atoms store a radius as defined by the +:doc:`atom_style sphere ` or similar commands. + +Related commands +"""""""""""""""" + +:doc:`compute coord/atom ` +:doc:`compute contact/atom ` + +Default +""""""" + +none diff --git a/doc/src/compute_xrd.rst b/doc/src/compute_xrd.rst index 8673ce9199..18bb4c886f 100644 --- a/doc/src/compute_xrd.rst +++ b/doc/src/compute_xrd.rst @@ -62,28 +62,29 @@ equations: \frac{\sin(\theta)}{\lambda} &= \frac{\left\lVert\mathbf{k}\right\rVert}{2} Here, :math:`\mathbf{k}` is the location of the reciprocal lattice node, -:math:`r_j` is the position of each atom, :math:`f_j` are atomic scattering -factors, *Lp* is the Lorentz-polarization factor, and :math:`\theta` is the -scattering angle of diffraction. The Lorentz-polarization factor can be turned -off using the optional *LP* keyword. +:math:`r_j` is the position of each atom, :math:`f_j` are atomic +scattering factors, *Lp* is the Lorentz-polarization factor, and +:math:`\theta` is the scattering angle of diffraction. The +Lorentz-polarization factor can be turned off using the optional *LP* +keyword. Diffraction intensities are calculated on a three-dimensional mesh of -reciprocal lattice nodes. The mesh spacing is defined either (a) by the entire -simulation domain or (b) manually using selected values as -shown in the 2D diagram below. +reciprocal lattice nodes. The mesh spacing is defined either (a) by the +entire simulation domain or (b) manually using selected values as shown +in the 2D diagram below. -.. image:: img/xrd_mesh.jpg +.. image:: img/xrd_mesh.png :scale: 75% :align: center For a mesh defined by the simulation domain, a rectilinear grid is constructed with spacing :math:`c A^{-1}` along each reciprocal lattice -axis, where :math:`A` is a matrix containing the vectors corresponding to the -edges of the simulation cell. If one or two directions has non-periodic -boundary conditions, then the spacing in these directions is defined from the -average of the (inversed) box lengths with periodic boundary conditions. -Meshes defined by the simulation domain must contain at least one periodic -boundary. +axis, where :math:`A` is a matrix containing the vectors corresponding +to the edges of the simulation cell. If one or two directions has +non-periodic boundary conditions, then the spacing in these directions +is defined from the average of the (inversed) box lengths with periodic +boundary conditions. Meshes defined by the simulation domain must +contain at least one periodic boundary. If the *manual* flag is included, the mesh of reciprocal lattice nodes will be defined using the *c* values for the spacing along each diff --git a/doc/src/fix.rst b/doc/src/fix.rst index 0889fe281f..69a7212487 100644 --- a/doc/src/fix.rst +++ b/doc/src/fix.rst @@ -287,6 +287,7 @@ accelerated styles exist. * :doc:`mvv/tdpd ` - constant temperature DPD using the modified velocity-Verlet algorithm * :doc:`neb ` - nudged elastic band (NEB) spring forces * :doc:`neb/spin ` - nudged elastic band (NEB) spring forces for spins +* :doc:`nonaffine/displacement ` - calculate nonaffine displacement of atoms * :doc:`nph ` - constant NPH time integration via Nose/Hoover * :doc:`nph/asphere ` - NPH for aspherical particles * :doc:`nph/body ` - NPH for body particles diff --git a/doc/src/fix_adapt.rst b/doc/src/fix_adapt.rst index 86eec3eadb..9cfbef7a11 100644 --- a/doc/src/fix_adapt.rst +++ b/doc/src/fix_adapt.rst @@ -205,6 +205,8 @@ formulas for the meaning of these parameters: +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`pace, pace/extrapolation ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ +| :doc:`quip ` | scale | type global | ++------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`snap ` | scale | type pairs | +------------------------------------------------------------------------------+--------------------------------------------------+-------------+ | :doc:`spin/dmi ` | coulombic_cutoff | type global | @@ -315,21 +317,21 @@ Currently *bond* does not support bond_style hybrid nor bond_style hybrid/overlay as bond styles. The bond styles that currently work with fix_adapt are -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`class2 ` | r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`fene ` | k,r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`fene/nm ` | k,r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`gromos ` | k,r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`harmonic ` | k,r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`morse ` | r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ | :doc:`nonlinear ` | epsilon,r0 | type bonds | -+------------------------------------+-------+-----------------+ ++------------------------------------+------------+------------+ ---------- @@ -353,11 +355,11 @@ Currently *angle* does not support angle_style hybrid nor angle_style hybrid/overlay as angle styles. The angle styles that currently work with fix_adapt are -+------------------------------------+-------+-----------------+ -| :doc:`harmonic ` | k,theta0 | type angles | -+------------------------------------+-------+-----------------+ -| :doc:`cosine ` | k | type angles | -+------------------------------------+-------+-----------------+ ++------------------------------------+----------+-------------+ +| :doc:`harmonic ` | k,theta0 | type angles | ++------------------------------------+----------+-------------+ +| :doc:`cosine ` | k | type angles | ++------------------------------------+----------+-------------+ Note that internally, theta0 is stored in radians, so the variable this fix uses to reset theta0 needs to generate values in radians. @@ -482,7 +484,7 @@ Restrictions Related commands """""""""""""""" -:doc:`compute ti ` +:doc:`compute ti `, :doc:`fix adapt/fep ` Default """"""" diff --git a/doc/src/fix_nh_uef.rst b/doc/src/fix_nh_uef.rst index a515375746..60d47994f0 100644 --- a/doc/src/fix_nh_uef.rst +++ b/doc/src/fix_nh_uef.rst @@ -23,7 +23,7 @@ Syntax .. parsed-literal:: keyword = *erate* or *ext* or *strain* or *temp* or *iso* or *x* or *y* or *z* or *tchain* or *pchain* or *tloop* or *ploop* or *mtk* - *erate* values = e_x e_y = engineering strain rates (required) + *erate* values = e_x e_y = true strain rates (required) *ext* value = *x* or *y* or *z* or *xy* or *yz* or *xz* = external dimensions sets the external dimensions used to calculate the scalar pressure *strain* values = e_x e_y = initial strain @@ -62,7 +62,7 @@ performed using the :doc:`fix deform `, :doc:`fix nvt/sllod `, and :doc:`compute temp/deform ` commands. -The applied flow field is set by the *eps* keyword. The values +The applied flow field is set by the *erate* keyword. The values *edot_x* and *edot_y* correspond to the strain rates in the xx and yy directions. It is implicitly assumed that the flow field is traceless, and therefore the strain rate in the zz direction is eqal diff --git a/doc/src/fix_nonaffine_displacement.rst b/doc/src/fix_nonaffine_displacement.rst new file mode 100644 index 0000000000..363b0a747a --- /dev/null +++ b/doc/src/fix_nonaffine_displacement.rst @@ -0,0 +1,133 @@ +.. index:: fix nonaffine/displacement + +fix nonaffine/displacement command +================================== + +Syntax +"""""" + +.. parsed-literal:: + + fix ID group nonaffine/displacement style args reference/style nstep + +* ID, group are documented in :doc:`fix ` command +* nonaffine/displacement = style name of this fix command +* nevery = calculate nonaffine displacement every this many timesteps +* style = *d2min* or *integrated* + + .. parsed-literal:: + + *d2min* args = cutoff args + cutoff = *type* or *radius* or *custom* + *type* args = none, cutoffs determined by atom types + *radius* args = none, cutoffs determined based on atom diameters (atom style sphere) + *custom* args = *rmax*, cutoff set by a constant numeric value *rmax* (distance units) + *integrated* args = none + +* reference/style = *fixed* or *update* or *offset* + + .. parsed-literal:: + + *fixed* = use a fixed reference frame at *nstep* + *update* = update the reference frame every *nstep* timesteps + *offset* = update the reference frame *nstep* timesteps before calculating the nonaffine displacement + +Examples +"""""""" + +.. code-block:: LAMMPS + + fix 1 all nonaffine/displacement 100 integrated update 100 + fix 1 all nonaffine/displacement 1000 d2min type fixed 0 + fix 1 all nonaffine/displacement 1000 d2min custom 2.0 offset 100 + +Description +""""""""""" + +.. versionadded:: TBD + +This fix computes different metrics of the nonaffine displacement of +particles. The first metric, *d2min* calculates the :math:`D^2_\mathrm{min}` +nonaffine displacement by Falk and Langer in :ref:`(Falk) `. +For each atom, the fix computes the two tensors + +.. math:: + + X = \sum_{\mathrm{neighbors}} \vec{r} \left(\vec{r}_{0} \right)^T + +and + +.. math:: + + Y = \sum_{\mathrm{neighbors}} \vec{r}_0 \left(\vec{r}_{0} \right)^T + +where the neighbors include all other atoms within the distance criterion +set by the cutoff option, discussed below, :math:`\vec{r}` is the current +displacement between particles, and :math:`\vec{r}_0` is the reference +displacement. A deformation gradient tensor is then calculated as +:math:`F = X Y^{-1}` from which + +.. math:: + + D^2_\mathrm{min} = \sum_{\mathrm{neighbors}} \left| \vec{r} - F \vec{r}_0 \right|^2 + +and a strain tensor is calculated :math:`E = F F^{T} - I` where :math:`I` +is the identity tensor. This calculation is only performed on timesteps that +are a multiple of *nevery* (including timestep zero). Data accessed before +this occurs will simply be zeroed. + +The *integrated* style simply integrates the velocity of particles +every timestep to calculate a displacement. This style only works if +used in conjunction with another fix that deforms the box and displaces +atom positions such as :doc:`fix deform ` with remap x, +:doc:`fix press/berendsen `, or :doc:`fix nh `. + +Both of these methods require defining a reference state. With the *fixed* reference +style, the user picks a specific timestep *nstep* at which particle positions are saved. +If peratom data is accessed from this compute prior to this timestep, it will simply be +zeroed. The *update* reference style implies the reference state will be updated every +*nstep* timesteps. The *offset* reference only applies to the *d2min* metric and will +update the reference state *nstep* timesteps before a multiple of *nevery* timesteps. + + +---------- + +Restart, fix_modify, output, run start/stop, minimize info +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +The reference state is saved to :doc:`binary restart files `. + +None of the :doc:`fix_modify ` options are relevant to this +fix. + +This fix computes a peratom array with 3 columns, which can be accessed +by indices 1-3 using any command that uses per-atom values from a fix +as input. + +For the *integrated* style, the three columns are the nonaffine +displacements in the x, y, and z directions. For the *d2min* style, +the three columns are the calculated :math:`\sqrt{D^2_\mathrm{min}}`, the +volumetric strain, and the deviatoric strain. + +Restrictions +"""""""""""" + +This compute is part of the EXTRA-FIX package. It is only enabled if +LAMMPS was built with that package. See the +:doc:`Build package ` page for more info. + +Related commands +"""""""""""""""" + +none + +Default +""""""" + +none + +---------- + +.. _d2min-Falk: + +**(Falk)** Falk and Langer PRE, 57, 7192 (1998). diff --git a/doc/src/fix_rigid.rst b/doc/src/fix_rigid.rst index a50e215681..3174a0929c 100644 --- a/doc/src/fix_rigid.rst +++ b/doc/src/fix_rigid.rst @@ -80,7 +80,7 @@ Syntax groupID1, groupID2, ... = list of N group IDs * zero or more keyword/value pairs may be appended -* keyword = *langevin* or *reinit* or *temp* or *iso* or *aniso* or *x* or *y* or *z* or *couple* or *tparam* or *pchain* or *dilate* or *force* or *torque* or *infile* or *gravity* +* keyword = *langevin* or *reinit* or *temp* or *mol* or *iso* or *aniso* or *x* or *y* or *z* or *couple* or *tparam* or *pchain* or *dilate* or *force* or *torque* or *infile* or *gravity* .. parsed-literal:: @@ -92,6 +92,8 @@ Syntax *temp* values = Tstart Tstop Tdamp Tstart,Tstop = desired temperature at start/stop of run (temperature units) Tdamp = temperature damping parameter (time units) + *mol* value = template-ID + template-ID = ID of molecule template specified in a separate :doc:`molecule ` command *iso* or *aniso* values = Pstart Pstop Pdamp Pstart,Pstop = scalar external pressure at start/end of run (pressure units) Pdamp = pressure damping parameter (time units) diff --git a/doc/src/fix_temp_berendsen.rst b/doc/src/fix_temp_berendsen.rst index 67e496e6c5..541f3191d5 100644 --- a/doc/src/fix_temp_berendsen.rst +++ b/doc/src/fix_temp_berendsen.rst @@ -1,8 +1,11 @@ .. index:: fix temp/berendsen +.. index:: fix temp/berendsen/kk fix temp/berendsen command ========================== +Accelerator Variants: *temp/berendsen/kk* + Syntax """""" @@ -118,6 +121,10 @@ remaining thermal degrees of freedom, and the bias is added back in. ---------- +.. include:: accel_styles.rst + +---------- + Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/fix_temp_rescale.rst b/doc/src/fix_temp_rescale.rst index bfdcaa90f8..2dd2178346 100644 --- a/doc/src/fix_temp_rescale.rst +++ b/doc/src/fix_temp_rescale.rst @@ -1,8 +1,11 @@ .. index:: fix temp/rescale +.. index:: fix temp/rescale/kk fix temp/rescale command ======================== +Accelerator Variants: *temp/rescale/kk* + Syntax """""" @@ -125,6 +128,10 @@ remaining thermal degrees of freedom, and the bias is added back in. ---------- +.. include:: accel_styles.rst + +---------- + Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/img/xrd_mesh.jpg b/doc/src/img/xrd_mesh.jpg deleted file mode 100644 index 677234caab..0000000000 Binary files a/doc/src/img/xrd_mesh.jpg and /dev/null differ diff --git a/doc/src/img/xrd_mesh.png b/doc/src/img/xrd_mesh.png new file mode 100644 index 0000000000..e58c7322a5 Binary files /dev/null and b/doc/src/img/xrd_mesh.png differ diff --git a/doc/src/molecule.rst b/doc/src/molecule.rst index 480e175e7b..1de905886c 100644 --- a/doc/src/molecule.rst +++ b/doc/src/molecule.rst @@ -154,21 +154,25 @@ These are the recognized header keywords. Header lines can come in any order. The numeric value(s) are read from the beginning of the line. The keyword should appear at the end of the line. All these settings have default values, as explained below. A line need only -appear if the value(s) are different than the default. +appear if the value(s) are different than the default, except when +defining a *body* particle, which requires setting the number of +*atoms* to 1, and setting the *inertia* in a specific section (see below). * N *atoms* = # of atoms N in molecule, default = 0 * Nb *bonds* = # of bonds Nb in molecule, default = 0 * Na *angles* = # of angles Na in molecule, default = 0 * Nd *dihedrals* = # of dihedrals Nd in molecule, default = 0 * Ni *impropers* = # of impropers Ni in molecule, default = 0 -* Nf *fragments* = # of fragments in molecule, default = 0 +* Nf *fragments* = # of fragments Nf in molecule, default = 0 +* Ninteger Ndouble *body* = # of integer and floating-point values in body +particle, default = 0 * Mtotal *mass* = total mass of molecule * Xc Yc Zc *com* = coordinates of center-of-mass of molecule * Ixx Iyy Izz Ixy Ixz Iyz *inertia* = 6 components of inertia tensor of molecule For *mass*, *com*, and *inertia*, the default is for LAMMPS to calculate this quantity itself if needed, assuming the molecules -consists of a set of point particles or finite-size particles (with a +consist of a set of point particles or finite-size particles (with a non-zero diameter) that do not overlap. If finite-size particles in the molecule do overlap, LAMMPS will not account for the overlap effects when calculating any of these 3 quantities, so you should @@ -188,6 +192,7 @@ These are the allowed section keywords for the body of the file. * *Bonds, Angles, Dihedrals, Impropers* = molecular topology sections * *Special Bond Counts, Special Bonds* = special neighbor info * *Shake Flags, Shake Atoms, Shake Bond Types* = SHAKE info +* *Body Integers, Body Doubles* = body-property sections For the Types, Bonds, Angles, Dihedrals, and Impropers sections, each atom/bond/angle/etc type can be specified either as a number (numeric @@ -515,6 +520,67 @@ of SHAKE clusters. ---------- +*Body Integers* section: + +* one line +* line syntax: N E F +* N = number of sub-particles or number or vertices +* E,F = number of edges and faces + +This section is only needed when the molecule is a body particle. the other +Body section must also appear in the file. + +The total number of values that must appear is determined by the body style, and +must be equal to the Ninteger value given in the *body* header. + +For *nparticle* and *rounded/polygon*, only the number of sub-particles or +vertices N is required, and Ninteger should have a value of 1. + +For *rounded/polyhedron*, the number of edges E and faces F is required, and +Ninteger should have a value of 3. + +See the :doc:`Howto body ` page for a further description of +the file format. + +---------- + +*Body Doubles* section: + +* first line +* line syntax: Ixx Iyy Izz Ixy Ixz Iyz +* Ixx Iyy Izz Ixy Ixz Iyz = 6 components of inertia tensor of body particle +* one line per sub-particle or vertex +* line syntax: x y z +* x, y, z = coordinates of sub-particle or vertex +* one line per edge +* line syntax: N1 N2 +* N1, N2 = vertex indices +* one line per face +* line syntax: N1 N2 N3 N4 +* N1, N2, N3, N4 = vertex indices +* last line +* line syntax: diam +* diam = rounded diameter that surrounds each vertex + +This section is only needed when the molecule is a body particle. the other +Body section must also appear in the file. + +The total number of values that must appear is determined by the body style, and +must be equal to the Ndouble value given in the *body* header. The 6 moments of +inertia and the 3N coordinates of the sub-particles or vertices are required +for all body styles. + +For *rounded/polygon*, the E = 6 + 3*N + 1 edges are automatically determined +from the vertices. + +For *rounded/polyhedron*, the 2E vertex indices for the end points of the edges +and 4F vertex indices defining the faces are required. + +See the :doc:`Howto body ` page for a further description of +the file format. + +---------- + Restrictions """""""""""" diff --git a/doc/src/pair_beck.rst b/doc/src/pair_beck.rst index 2bf027515c..6bb4afdc80 100644 --- a/doc/src/pair_beck.rst +++ b/doc/src/pair_beck.rst @@ -30,11 +30,11 @@ Description Style *beck* computes interactions based on the potential by :ref:`(Beck) `, originally designed for simulation of Helium. It -includes truncation at a cutoff distance Rc. +includes truncation at a cutoff distance :math:`r_c`. .. math:: - E(r) &= A \exp\left[-\alpha r - \beta r^6\right] - \frac{B}{\left(r^2+a^2\right)^3} \left(1+\frac{2.709+3a^2}{r^2+a^2}\right) \qquad r < R_c \\ + E(r) &= A \exp\left[-\alpha r - \beta r^6\right] - \frac{B}{\left(r^2+a^2\right)^3} \left(1+\frac{2.709+3a^2}{r^2+a^2}\right) \qquad r < r_c \\ The following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff ` command as in the examples @@ -50,7 +50,7 @@ commands. * cutoff (distance units) The last coefficient is optional. If not specified, the global cutoff -:math:`R_c` is used. +:math:`r_c` is used. ---------- diff --git a/doc/src/pair_lj_cut_tip4p.rst b/doc/src/pair_lj_cut_tip4p.rst index 7198b60159..d95f356ab7 100644 --- a/doc/src/pair_lj_cut_tip4p.rst +++ b/doc/src/pair_lj_cut_tip4p.rst @@ -58,6 +58,40 @@ Examples Description """"""""""" +The *lj/cut/tip4p* styles implement the TIP4P water model of +:ref:`(Jorgensen) ` and similar models, which introduce a +massless site M located a short distance away from the oxygen atom along +the bisector of the HOH angle. The atomic types of the oxygen and +hydrogen atoms, the bond and angle types for OH and HOH interactions, +and the distance to the massless charge site are specified as pair_style +arguments and are used to identify the TIP4P-like molecules and +determine the position of the M site from the positions of the hydrogen +and oxygen atoms of the water molecules. The M site location is used +for all Coulomb interactions instead of the oxygen atom location, also +with all other atom types, while the location of the oxygen atom is used +for the Lennard-Jones interactions. Style *lj/cut/tip4p/cut* uses a +cutoff for Coulomb interactions; style *lj/cut/tip4p/long* is for use +with a long-range Coulombic solver (Ewald or PPPM). + +.. note:: + + For each TIP4P water molecule in your system, the atom IDs for + the O and 2 H atoms must be consecutive, with the O atom first. This + is to enable LAMMPS to "find" the 2 H atoms associated with each O + atom. For example, if the atom ID of an O atom in a TIP4P water + molecule is 500, then its 2 H atoms must have IDs 501 and 502. + +See the :doc:`Howto tip4p ` page for more information +on how to use the TIP4P pair styles and lists of parameters to set. +Note that the neighbor list cutoff for Coulomb interactions is +effectively extended by a distance 2\*qdist when using the TIP4P pair +style, to account for the offset distance of the fictitious charges on +O atoms in water molecules. Thus it is typically best in an +efficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\*qdist, to +shrink the size of the neighbor list. This leads to slightly larger +cost for the long-range calculation, so you can test the trade-off for +your model. + The *lj/cut/tip4p* styles compute the standard 12/6 Lennard-Jones potential, given by @@ -91,34 +125,6 @@ specified for this style means that pairwise interactions within this distance are computed directly; interactions outside that distance are computed in reciprocal space. -The *lj/cut/tip4p* styles implement the TIP4P -water model of :ref:`(Jorgensen) `, which introduces a massless -site located a short distance away from the oxygen atom along the -bisector of the HOH angle. The atomic types of the oxygen and -hydrogen atoms, the bond and angle types for OH and HOH interactions, -and the distance to the massless charge site are specified as -pair_style arguments. Style *lj/cut/tip4p/cut* uses a cutoff for -Coulomb interactions; style *lj/cut/tip4p/long* is for use with a -long-range Coulombic solver (Ewald or PPPM). - -.. note:: - - For each TIP4P water molecule in your system, the atom IDs for - the O and 2 H atoms must be consecutive, with the O atom first. This - is to enable LAMMPS to "find" the 2 H atoms associated with each O - atom. For example, if the atom ID of an O atom in a TIP4P water - molecule is 500, then its 2 H atoms must have IDs 501 and 502. - -See the :doc:`Howto tip4p ` page for more information -on how to use the TIP4P pair styles and lists of parameters to set. -Note that the neighbor list cutoff for Coulomb interactions is -effectively extended by a distance 2\*qdist when using the TIP4P pair -style, to account for the offset distance of the fictitious charges on -O atoms in water molecules. Thus it is typically best in an -efficiency sense to use a LJ cutoff >= Coulombic cutoff + 2\*qdist, to -shrink the size of the neighbor list. This leads to slightly larger -cost for the long-range calculation, so you can test the trade-off for -your model. Coefficients """""""""""" diff --git a/doc/src/pair_lj_smooth_linear.rst b/doc/src/pair_lj_smooth_linear.rst index 7a3ba7a3d5..20b5e6cbda 100644 --- a/doc/src/pair_lj_smooth_linear.rst +++ b/doc/src/pair_lj_smooth_linear.rst @@ -31,13 +31,13 @@ Style *lj/smooth/linear* computes a truncated and force-shifted LJ interaction (aka Shifted Force Lennard-Jones) that combines the standard 12/6 Lennard-Jones function and subtracts a linear term based on the cutoff distance, so that both, the potential and the force, go -continuously to zero at the cutoff Rc :ref:`(Toxvaerd) `: +continuously to zero at the cutoff :math:`r_c` :ref:`(Toxvaerd) `: .. math:: \phi\left(r\right) & = 4 \epsilon \left[ \left(\frac{\sigma}{r}\right)^{12} - \left(\frac{\sigma}{r}\right)^6 \right] \\ - E\left(r\right) & = \phi\left(r\right) - \phi\left(R_c\right) - \left(r - R_c\right) \left.\frac{d\phi}{d r} \right|_{r=R_c} \qquad r < R_c + E\left(r\right) & = \phi\left(r\right) - \phi\left(r_c\right) - \left(r - r_c\right) \left.\frac{d\phi}{d r} \right|_{r=r_c} \qquad r < r_c The following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff ` command as in the examples @@ -77,8 +77,9 @@ tail option for adding long-range tail corrections to energy and pressure, since the energy of the pair interaction is smoothed to 0.0 at the cutoff. -This pair style writes its information to :doc:`binary restart files `, so pair_style and pair_coeff commands do not need -to be specified in an input script that reads a restart file. +This pair style writes its information to :doc:`binary restart files `, +so pair_style and pair_coeff commands do not need to be specified +in an input script that reads a restart file. This pair style can only be used via the *pair* keyword of the :doc:`run_style respa ` command. It does not support the diff --git a/doc/src/pair_mie.rst b/doc/src/pair_mie.rst index 089f8d3d29..6e9eec1f5c 100644 --- a/doc/src/pair_mie.rst +++ b/doc/src/pair_mie.rst @@ -35,7 +35,7 @@ The *mie/cut* style computes the Mie potential, given by E = C \epsilon \left[ \left(\frac{\sigma}{r}\right)^{\gamma_{rep}} - \left(\frac{\sigma}{r}\right)^{\gamma_{att}} \right] \qquad r < r_c -Rc is the cutoff and C is a function that depends on the repulsive and +:math:`r_c` is the cutoff and C is a function that depends on the repulsive and attractive exponents, given by: .. math:: diff --git a/doc/src/pair_morse.rst b/doc/src/pair_morse.rst index 807882980d..4b93d182bb 100644 --- a/doc/src/pair_morse.rst +++ b/doc/src/pair_morse.rst @@ -53,7 +53,7 @@ Style *morse* computes pairwise interactions with the formula E = D_0 \left[ e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)} \right] \qquad r < r_c -Rc is the cutoff. +:math:`r_c` is the cutoff. The following coefficients must be defined for each pair of atoms types via the :doc:`pair_coeff ` command as in the examples @@ -78,7 +78,7 @@ so that both, potential energy and force, go to zero at the cut-off: .. math:: \phi\left(r\right) & = D_0 \left[ e^{- 2 \alpha (r - r_0)} - 2 e^{- \alpha (r - r_0)} \right] \qquad r < r_c \\ - E\left(r\right) & = \phi\left(r\right) - \phi\left(R_c\right) - \left(r - R_c\right) \left.\frac{d\phi}{d r} \right|_{r=R_c} \qquad r < R_c + E\left(r\right) & = \phi\left(r\right) - \phi\left(r_c\right) - \left(r - r_c\right) \left.\frac{d\phi}{d r} \right|_{r=r_c} \qquad r < r_c The syntax of the pair_style and pair_coeff commands are the same for the *morse* and *morse/smooth/linear* styles. diff --git a/doc/src/pair_pace.rst b/doc/src/pair_pace.rst index d815f663fe..001214370c 100644 --- a/doc/src/pair_pace.rst +++ b/doc/src/pair_pace.rst @@ -40,6 +40,9 @@ Examples pair_style pace product chunksize 2048 pair_coeff * * Cu-PBE-core-rep.ace Cu + pair_style pace + pair_coeff * * Cu.yaml Cu + pair_style pace/extrapolation pair_coeff * * Cu.yaml Cu.asi Cu @@ -64,7 +67,7 @@ specifies an ACE coefficient file followed by N additional arguments specifying the mapping of ACE elements to LAMMPS atom types, where N is the number of LAMMPS atom types: -* ACE coefficient file +* ACE coefficient file (.yaml or .yace/.ace format) * N element names = mapping of ACE elements to atom types Only a single pair_coeff command is used with the *pace* style which @@ -136,6 +139,22 @@ product B-basis evaluator is always used and only *linear* ASI is supported. See the :doc:`pair_coeff ` page for alternate ways to specify the path for the ACE coefficient file. +Core repulsion +""""""""""""""""""" +The ACE potential can be configured to initiate core-repulsion from an inner cutoff, +seamlessly transitioning from ACE to ZBL. The core repulsion factor can be accessed +as a per-atom quantity, as demonstrated in the example below: + +.. code-block:: LAMMPS + + pair_style pace + pair_coeff * * CuNi.yaml Cu Ni + + fix pace_corerep all pair 1 pace corerep 1 + +In this case, per-atom `f_pace_corerep` quantities represent the fraction of ZBL +core-repulsion for each atom. + Mixing, shift, table, tail correction, restart, rRESPA info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/pair_soft.rst b/doc/src/pair_soft.rst index 1702811ed9..e21ae28432 100644 --- a/doc/src/pair_soft.rst +++ b/doc/src/pair_soft.rst @@ -44,8 +44,9 @@ It is useful for pushing apart overlapping atoms, since it does not blow up as r goes to 0. A is a prefactor that can be made to vary in time from the start to the end of the run (see discussion below), e.g. to start with a very soft potential and slowly harden the -interactions over time. Rc is the cutoff. See the :doc:`fix nve/limit ` command for another way to push apart -overlapping atoms. +interactions over time. :math:`r_c` is the cutoff. +See the :doc:`fix nve/limit ` command for another way +to push apart overlapping atoms. The following coefficients must be defined for each pair of atom types via the :doc:`pair_coeff ` command as in the examples above, diff --git a/doc/src/pair_spica.rst b/doc/src/pair_spica.rst index 74a069d8a2..859506593f 100644 --- a/doc/src/pair_spica.rst +++ b/doc/src/pair_spica.rst @@ -81,7 +81,7 @@ given by as required for the SPICA (formerly called SDK) and the pSPICA Coarse-grained MD parameterization discussed in :ref:`(Shinoda) `, :ref:`(DeVane) `, :ref:`(Seo) `, and :ref:`(Miyazaki) `. -Rc is the cutoff. +:math:`r_c` is the cutoff. Summary information on these force fields can be found at https://www.spica-ff.org Style *lj/spica/coul/long* computes the adds Coulombic interactions diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 9a99bb7718..272e747358 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -1077,6 +1077,7 @@ facesets factorizable factorizations Fahrenberger +Falk Faken Farago Fasolino @@ -1176,6 +1177,7 @@ Foiles fopenmp forceclear forestgreen +formamide formatarg formulae Forschungszentrum @@ -1826,6 +1828,7 @@ Lanczos Lande Landron Landsgesell +Langer langevin Langevin Langston @@ -1976,6 +1979,7 @@ lpsapi lr lrt lsfftw +lt ltbbmalloc Lua lubricateU @@ -2510,6 +2514,7 @@ noforce noguess Noid nolib +nonaffine nonequilibrium nongauss nonGaussian @@ -2582,6 +2587,7 @@ nthreads ntimestep Ntptask Ntriples +ntries ntris Ntype ntypes @@ -3387,6 +3393,7 @@ Sodani Soderlind Solaris Solida +solv solvated solvation someuser @@ -3633,6 +3640,7 @@ timestepping timesteps TiN TiO +Tirado Tirrell Titer Tji diff --git a/examples/PACKAGES/pace/README.md b/examples/PACKAGES/pace/README.md new file mode 100644 index 0000000000..66254b5241 --- /dev/null +++ b/examples/PACKAGES/pace/README.md @@ -0,0 +1,9 @@ +# This folder contains examples for pace in LAMMPS + + +## Compute pace usage +compute/latte_cell_0.data # lammps data file with C-H-O structure +compute/latte_cell_0.xyz # xyz file with C-H-O structure +compute/coupling_coefficients.yace # .yace file containing coupling coefficients (or ACE potential parameters) +compute/in.compute # input file for calling `compute pace` + diff --git a/examples/PACKAGES/pace/compute/coupling_coefficients.yace b/examples/PACKAGES/pace/compute/coupling_coefficients.yace new file mode 100644 index 0000000000..2953222216 --- /dev/null +++ b/examples/PACKAGES/pace/compute/coupling_coefficients.yace @@ -0,0 +1,294 @@ +elements: [H, N, O] +E0: [0.000000, 0.000000, 0.000000] +deltaSplineBins: 0.001000 +embeddings: + 0: {ndensity: 1, FS_parameters: [1.0, 1.0], npoti: FinnisSinclair, rho_core_cutoff: 100000, drho_core_cutoff: 250} + 1: {ndensity: 1, FS_parameters: [1.0, 1.0], npoti: FinnisSinclair, rho_core_cutoff: 100000, drho_core_cutoff: 250} + 2: {ndensity: 1, FS_parameters: [1.0, 1.0], npoti: FinnisSinclair, rho_core_cutoff: 100000, drho_core_cutoff: 250} +bonds: + [0, 0]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.0, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [0, 1]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.5, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [0, 2]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.7, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [1, 0]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.5, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [1, 1]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 4.4, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [1, 2]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.7, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [2, 0]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.7, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [2, 1]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.7, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} + [2, 2]: {nradmax: 2, lmax: 2, nradbasemax: 2, radbasename: ChebExpCos, radparameters: [3.3], radcoefficients: [[[1, 0], [1, 0], [1, 0]], [[0, 1], [0, 1], [0, 1]]], prehc: 0, lambdahc: 3.3, rcut: 5.5, dcut: 0.01, rcut_in: 0.1, dcut_in: 0.01, inner_cutoff_type: distance} +functions: + 0: + - {mu0: 0, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [0], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 0, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [0], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 0, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [1], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 0, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [1], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 0, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [2], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 0, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [2], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 0, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 2, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [2, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 0], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 1], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 1], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 2, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [2, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 0, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 0], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 0, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [2, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + 1: + - {mu0: 1, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [1], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 1, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [1], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 1, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [2], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 1, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [2], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 1, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [0], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 1, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [0], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 2, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 1], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 0], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 1], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [2, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 2, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [2, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 1, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 0], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 1, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [2, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + 2: + - {mu0: 2, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [0], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 2, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [1], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 2, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [0], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 2, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [1], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 2, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [2], ns: [1], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 2, rank: 1, ndensity: 1, num_ms_combs: 1, mus: [2], ns: [2], ls: [0], ms_combs: [0], ctildes: [1.0]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 1], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [2, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 1], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 0], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 1], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [0, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [1, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [1, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 1], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [2, 2], ns: [2, 2], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 0], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [1, 1], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [1, 2], ns: [2, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 3, mus: [1, 2], ns: [2, 1], ls: [1, 1], ms_combs: [-1, 1, 0, 0, 1, -1], ctildes: [0.5773502691896257, -0.5773502691896257, 0.5773502691896257]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [0, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 2, ndensity: 1, num_ms_combs: 5, mus: [2, 2], ns: [1, 2], ls: [2, 2], ms_combs: [-2, 2, -1, 1, 0, 0, 1, -1, 2, -2], ctildes: [0.4472135954999579, -0.4472135954999579, 0.447213595499958, -0.4472135954999579, 0.4472135954999579]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 0], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 2, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 1], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 0, 1], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [2, 2, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [2, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 2], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [0, 1, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 2], ns: [1, 1, 1], ls: [1, 2, 1], ms_combs: [-1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -2, 1, 1, -1, 0, 1, 0, -1], ctildes: [0.10540925533894599, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.21081851067789198, -0.18257418583505536, 0.25819888974716115, -0.18257418583505536, 0.10540925533894599]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 1, 1], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 2, 2], ns: [1, 1, 1], ls: [2, 1, 1], ms_combs: [-2, 1, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 2, -1, -1], ctildes: [0.25819888974716115, -0.18257418583505536, -0.18257418583505536, 0.10540925533894599, 0.21081851067789198, 0.10540925533894599, -0.18257418583505536, -0.18257418583505536, 0.25819888974716115]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 9, mus: [1, 2, 2], ns: [1, 1, 1], ls: [1, 1, 2], ms_combs: [-1, -1, 2, -1, 0, 1, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -2], ctildes: [0.19999999999999998, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.16329931618554522, -0.1414213562373095, 0.08164965809277261, -0.1414213562373095, 0.19999999999999998]} + - {mu0: 2, rank: 3, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1], ns: [1, 1, 1], ls: [2, 2, 2], ms_combs: [-2, 0, 2, -2, 1, 1, -2, 2, 0, -1, -1, 2, -1, 0, 1, -1, 1, 0, -1, 2, -1, 0, -2, 2, 0, -1, 1, 0, 0, 0, 0, 1, -1, 0, 2, -2, 1, -2, 1, 1, -1, 0, 1, 0, -1, 1, 1, -2, 2, -2, 0, 2, -1, -1, 2, 0, -2], ctildes: [0.10690449676496976, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, 0.05345224838248488, -0.10690449676496976, 0.05345224838248488, 0.10690449676496976, -0.1309307341415954, 0.05345224838248488, 0.05345224838248488, -0.1309307341415954, 0.10690449676496976, -0.1309307341415954, 0.10690449676496976]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 0], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 0, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 0, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 1, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [0, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1, 1], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 1, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 1, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [1, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} + - {mu0: 2, rank: 4, ndensity: 1, num_ms_combs: 19, mus: [2, 2, 2, 2], ns: [1, 1, 1, 1], ls: [1, 1, 1, 1], ms_combs: [-1, -1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, -1, 1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 1, -1, -1, 1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 1, 1, -1, -1], ctildes: [0.0, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, -0.3333333333333333, 0.3333333333333333, -0.3333333333333333, 0.0, 0.0, 0.3333333333333333, -0.3333333333333333, 0.3333333333333333, 0.0, 0.0, 0.0]} diff --git a/examples/PACKAGES/pace/compute/in.compute b/examples/PACKAGES/pace/compute/in.compute new file mode 100644 index 0000000000..a0ef25f606 --- /dev/null +++ b/examples/PACKAGES/pace/compute/in.compute @@ -0,0 +1,22 @@ +#info all out log +units metal +atom_style atomic +boundary p p p +atom_modify map hash +boundary p p p +read_data latte_cell_0.data +mass 1 1.00 +mass 2 14.00 +mass 3 15.999 + + # potential settings + +pair_style zero 5.7 +pair_coeff * * + +compute pace all pace coupling_coefficients.yace 1 0 + +thermo 1 +thermo_style custom step temp c_pace[1][183] + +run 0 diff --git a/examples/PACKAGES/pace/compute/latte_cell_0.data b/examples/PACKAGES/pace/compute/latte_cell_0.data new file mode 100644 index 0000000000..b18ec13a4d --- /dev/null +++ b/examples/PACKAGES/pace/compute/latte_cell_0.data @@ -0,0 +1,172 @@ +latte_cell_0.data (written by ASE) + +161 atoms +3 atom types +0.0 12 xlo xhi +0.0 12 ylo yhi +0.0 12 zlo zhi + + +Atoms + + 1 3 1.2688096799999999 2.0079938400000001 2.7446829899999998 + 2 1 1.5343068200000001 2.0638766500000001 3.7105626900000002 + 3 1 1.7848279600000001 2.6755003400000001 2.2268847200000002 + 4 1 1.56251195 1.1089126899999999 2.3978115199999999 + 5 1 11.61728216 5.71881094 2.4732045999999999 + 6 2 6.5501865600000002 4.7439566800000001 3.6526025500000001 + 7 1 6.4564895299999998 4.1571673000000002 2.6975267999999999 + 8 2 2.0835561 1.59406078 8.5498047600000007 + 9 1 1.1041162499999999 1.4971771599999999 8.1507879200000009 + 10 1 2.60115534 2.2945960400000001 7.95374187 + 11 1 1.9817723300000001 2.0194066400000001 9.5128239400000005 + 12 1 0.99333338000000004 3.6983907299999998 8.1903947899999991 + 13 3 4.9484070999999998 5.3645501400000004 9.16152503 + 14 1 9.0716170599999995 9.3748453999999999 4.2276462400000003 + 15 2 0.30864418999999998 7.7136657499999997 2.9274995599999998 + 16 1 0.47661671 10.1807211 3.71160091 + 17 1 1.07465334 7.8226921999999997 3.5771466900000002 + 18 1 0.38402249999999999 8.3770493300000002 2.1748437100000002 + 19 1 11.435413410000001 7.7903735999999997 3.4040245499999999 + 20 3 6.1570384599999999 10.25988474 3.50899568 + 21 1 5.5932224399999999 9.5632944700000007 3.1446559000000001 + 22 2 1.7785569000000001 7.6312579300000003 9.1488452299999992 + 23 1 2.5594048599999999 6.96832838 9.3069700199999996 + 24 1 2.12441551 8.4547986999999996 8.6428622900000001 + 25 1 1.04552782 7.1697722800000001 8.5894244999999998 + 26 1 0.34824445999999998 10.17844028 9.1629463799999993 + 27 3 5.9638830399999998 10.723709400000001 9.4568803900000002 + 28 1 6.5890835699999997 10.926486110000001 8.7981925800000003 + 29 2 7.1065890400000002 1.83029753 3.3452543600000002 + 30 1 6.9229304999999997 1.8465022099999999 4.3089037100000001 + 31 1 8.0780433600000006 1.9303052199999999 3.2089521400000001 + 32 1 5.6795373600000003 10.471831630000001 4.3244390499999996 + 33 1 6.82999417 0.95850113000000003 2.9815288199999999 + 34 2 11.383805349999999 4.6301225199999996 2.5393688399999998 + 35 1 0.37927047000000003 4.1943216300000001 2.59073807 + 36 3 5.2376410099999999 1.91523463 9.7240636400000007 + 37 1 4.7887202499999999 2.7036936499999999 9.5698142300000004 + 38 1 9.8129906699999996 9.2075140700000002 4.08265499 + 39 1 4.7980879500000002 1.1403494700000001 9.6739962800000008 + 40 1 5.4455845600000004 2.0102099999999998 10.620773509999999 + 41 3 0.90954338999999995 4.6240093199999999 8.3108110600000007 + 42 1 11.909735319999999 4.7483814000000004 8.2500624600000005 + 43 2 7.3223424499999998 7.5866457 3.0245226500000002 + 44 1 7.4470362200000002 8.3169646700000008 3.7148003300000001 + 45 1 6.9073805300000002 7.9385021 2.1723768699999999 + 46 1 5.5542868500000004 5.1176065800000003 3.7655251999999999 + 47 1 6.8124309500000004 6.7778811599999997 3.3973232499999999 + 48 2 0.29575823000000001 11.04303794 3.1016142499999999 + 49 1 0.86490721999999998 11.83879228 3.6389974500000002 + 50 3 6.85201686 8.0846369300000003 8.8762878799999996 + 51 1 7.3351430100000004 7.4263498700000001 9.3821674799999997 + 52 1 6.7919613300000004 7.7595477199999996 7.9716174799999999 + 53 1 3.8990487699999998 6.4283490399999996 8.8832409600000002 + 54 1 5.95997296 9.9329723199999993 9.4746654699999997 + 55 3 11.403658979999999 10.371960359999999 9.2766092199999992 + 56 1 10.983666360000001 9.5157199800000001 9.1478757300000009 + 57 3 1.5223279700000001 5.3327331100000004 0.57537605999999997 + 58 1 2.3815113999999999 5.7251991200000001 0.77945295999999997 + 59 1 0.92079957000000001 6.0931282299999996 0.62203253000000003 + 60 3 11.23490924 2.9153355200000002 6.7585064099999999 + 61 1 10.792340190000001 2.9755225099999998 5.9000018399999998 + 62 1 10.751242059999999 2.1896156000000002 7.1807401500000001 + 63 3 11.39027944 7.3462855600000001 6.7258299499999996 + 64 1 10.92025679 6.69831954 7.2776696599999999 + 65 1 11.12238028 7.0632020999999998 5.8394107799999997 + 66 3 8.4684319499999994 10.71736286 10.60018556 + 67 1 8.5672201599999998 11.420466080000001 11.25794033 + 68 1 9.0803109800000001 10.04804949 10.9406517 + 69 3 6.5851757299999996 9.9940623399999993 6.5574614899999997 + 70 1 7.0276325799999997 10.76096604 6.1723333699999996 + 71 1 5.7419327400000002 10.384583920000001 6.8228822999999998 + 72 3 1.7600546399999999 1.01771919 5.4926787700000004 + 73 1 1.9704209100000001 1.01748419 6.4429703700000003 + 74 1 1.42973007 0.11076352 5.3470644900000002 + 75 1 2.61130613 9.7034123700000006 10.450306830000001 + 76 3 3.05086908 10.48131334 10.085189310000001 + 77 1 3.0032693199999998 10.93357295 9.3652121000000008 + 78 3 6.4631532199999997 8.7652058299999993 11.967847969999999 + 79 1 6.4506808400000004 9.6596595300000008 11.588956019999999 + 80 1 5.6611629700000003 8.3535737700000006 11.638443329999999 + 81 3 1.1745999300000001 5.2420690800000003 5.1001449699999997 + 82 1 1.31932881 5.5236392399999996 6.0128966300000002 + 83 1 0.58053834999999998 4.4898134599999997 5.2325565000000003 + 84 3 6.7275549699999999 0.78840874999999999 7.3817280900000002 + 85 1 6.3887965600000003 1.54670982 6.8634520400000003 + 86 1 7.6791783999999996 0.94039024000000004 7.2649461000000004 + 87 3 8.5476657199999995 0.0064750299999999997 5.0450514100000001 + 88 1 8.8736290899999997 11.10484108 4.8601807900000003 + 89 1 8.0477597599999999 0.20198361000000001 4.2357399400000002 + 90 3 1.2895030000000001 8.4280097900000008 11.82038504 + 91 1 1.4766666399999999 8.1087866399999999 10.87290333 + 92 1 2.10220669 8.1947620200000006 0.29510553 + 93 3 9.6797907599999995 6.4207335499999996 4.3469150599999997 + 94 1 8.9271530099999996 6.72940235 3.7974122399999999 + 95 1 10.20024126 5.9167739199999998 3.66976111 + 96 3 3.57411616 6.7041021699999996 3.8825478499999999 + 97 1 2.8894899500000002 6.1560529800000001 4.2980848099999998 + 98 1 4.3613707699999997 6.4304732400000004 4.3804965400000002 + 99 3 4.7506556 11.441853350000001 1.12537088 + 100 1 4.0861192800000001 10.748523670000001 1.1923347099999999 + 101 1 5.5035301600000004 10.965688249999999 0.73651277000000004 + 102 3 9.5254526399999992 4.8994443900000002 8.3732284099999994 + 103 1 8.7885959800000002 4.3508043900000004 8.6632831400000008 + 104 1 9.6149067499999994 4.6084911499999999 7.4540068699999997 + 105 3 4.1970746700000001 1.34592128 3.67401439 + 106 1 4.9437011999999996 0.74406280999999996 3.514068 + 107 1 4.1905534900000001 1.7730376000000001 2.7963049400000002 + 108 3 1.88232618 11.95451227 0.60024434000000004 + 109 1 2.0464587299999999 11.02454723 0.38329541 + 110 1 1.1518493700000001 0.17494340999999999 11.99928285 + 111 3 3.7593842199999998 11.01685511 6.4562050800000002 + 112 1 3.2125414299999999 10.4553747 5.8894917099999997 + 113 1 3.4166026899999999 10.821557670000001 7.3296563900000002 + 114 3 9.7039841399999993 3.95001545 11.894743249999999 + 115 1 10.461666060000001 3.9163117999999999 11.285435229999999 + 116 1 10.09834695 4.4026997400000001 0.68193007999999999 + 117 3 8.5639596400000002 3.5169507499999999 5.6224104199999996 + 118 1 8.3966650299999994 2.6262214699999999 5.2638164300000003 + 119 1 7.9695371399999999 4.0825059799999996 5.0049407400000003 + 120 3 9.6736245000000007 0.48030482000000002 7.9257577799999996 + 121 1 9.6131980400000003 11.883419180000001 7.1680923999999999 + 122 1 9.9784050299999993 11.90238635 8.63894187 + 123 3 3.9424153099999999 6.9650296699999998 11.60258943 + 124 1 4.2767152700000004 6.8460048999999996 10.670225220000001 + 125 1 4.6570638500000001 6.5129461500000003 0.091159879999999999 + 126 3 3.0570173199999999 9.6631958499999993 3.6611250599999998 + 127 1 2.5400490100000002 9.5743355000000001 2.8444047600000002 + 128 1 2.9314874400000002 8.7809807200000005 4.0425234200000002 + 129 3 7.4549612700000001 5.8430850799999998 11.011384720000001 + 130 1 8.1675884100000005 5.4639182799999997 10.47644287 + 131 1 6.7135573700000002 5.8393818399999997 10.361099749999999 + 132 3 9.8029139300000008 7.9578901699999998 10.21404942 + 133 1 10.38910242 8.3400641400000008 10.87949429 + 134 1 9.0637612000000001 7.6392374099999998 10.756928869999999 + 135 3 4.4963435599999997 4.1067935799999997 11.73387805 + 136 1 4.5473727899999998 4.9577970899999997 11.19223377 + 137 1 5.3588818399999996 4.1756111699999998 0.20355936999999999 + 138 3 9.5923448100000002 7.3418014600000001 1.34856172 + 139 1 8.8715593300000002 7.4776837199999999 2.05040471 + 140 1 9.0443221699999992 7.2732200799999998 0.54011714 + 141 3 7.0350963100000001 3.22348773 0.7070824 + 142 1 7.1784470499999999 4.1340314300000003 1.0184109699999999 + 143 1 7.7787854400000001 2.7888888399999998 1.15838887 + 144 3 9.2124107800000008 0.48085899999999998 1.21751966 + 145 1 9.6620436499999993 11.657271079999999 1.45318397 + 146 1 9.9404883900000005 1.11619136 1.18684594 + 147 3 1.19704207 9.5859959200000002 6.6190888899999996 + 148 1 0.25606413 9.6737366500000004 6.8319340899999998 + 149 1 1.2690051899999999 8.6249354900000004 6.5480112500000001 + 150 3 0.78256133999999999 2.6040609300000002 11.453408359999999 + 151 1 0.61502181 3.5607405999999999 11.40300991 + 152 1 1.55655312 2.5457368800000002 10.866733030000001 + 153 3 5.8627936099999998 7.1217054800000001 5.89173203 + 154 1 6.3432410700000004 7.9400136699999999 6.0855840299999997 + 155 1 5.5077296699999998 6.8468306800000001 6.7436875799999996 + 156 3 10.887828150000001 9.9637482500000001 0.51092815999999996 + 157 1 11.78841776 10.322043069999999 0.44704989000000001 + 158 1 11.02688182 9.2051906700000004 1.0976661299999999 + 159 3 3.93073389 4.1645674499999998 5.7137877000000001 + 160 1 4.6884062999999996 3.5788913299999998 5.5644605800000004 + 161 1 4.2956948500000003 4.7644888099999996 6.3801669700000003 diff --git a/examples/PACKAGES/pace/compute/latte_cell_0.xyz b/examples/PACKAGES/pace/compute/latte_cell_0.xyz new file mode 100644 index 0000000000..afe0a27f35 --- /dev/null +++ b/examples/PACKAGES/pace/compute/latte_cell_0.xyz @@ -0,0 +1,163 @@ +161 +Lattice="12.0 0.0 0.0 0.0 12.0 0.0 0.0 0.0 12.0" Properties=species:S:1:pos:R:3 pbc="T T T" +O 1.26880968 2.00799384 2.74468299 +H 1.53430682 2.06387665 3.71056269 +H 1.78482796 2.67550034 2.22688472 +H 1.56251195 1.10891269 2.39781152 +H 11.61728216 5.71881094 2.47320460 +N 6.55018656 4.74395668 3.65260255 +H 6.45648953 4.15716730 2.69752680 +N 2.08355610 1.59406078 8.54980476 +H 1.10411625 1.49717716 8.15078792 +H 2.60115534 2.29459604 7.95374187 +H 1.98177233 2.01940664 9.51282394 +H 0.99333338 3.69839073 8.19039479 +O 4.94840710 5.36455014 9.16152503 +H 9.07161706 9.37484540 4.22764624 +N 0.30864419 7.71366575 2.92749956 +H 0.47661671 10.18072110 3.71160091 +H 1.07465334 7.82269220 3.57714669 +H 0.38402250 8.37704933 2.17484371 +H 11.43541341 7.79037360 3.40402455 +O 6.15703846 10.25988474 3.50899568 +H 5.59322244 9.56329447 3.14465590 +N 1.77855690 7.63125793 9.14884523 +H 2.55940486 6.96832838 9.30697002 +H 2.12441551 8.45479870 8.64286229 +H 1.04552782 7.16977228 8.58942450 +H 0.34824446 10.17844028 9.16294638 +O 5.96388304 10.72370940 9.45688039 +H 6.58908357 10.92648611 8.79819258 +N 7.10658904 1.83029753 3.34525436 +H 6.92293050 1.84650221 4.30890371 +H 8.07804336 1.93030522 3.20895214 +H 5.67953736 10.47183163 4.32443905 +H 6.82999417 0.95850113 2.98152882 +N 11.38380535 4.63012252 2.53936884 +H 0.37927047 4.19432163 2.59073807 +O 5.23764101 1.91523463 9.72406364 +H 4.78872025 2.70369365 9.56981423 +H 9.81299067 9.20751407 4.08265499 +H 4.79808795 1.14034947 9.67399628 +H 5.44558456 2.01021000 10.62077351 +O 0.90954339 4.62400932 8.31081106 +H 11.90973532 4.74838140 8.25006246 +N 7.32234245 7.58664570 3.02452265 +H 7.44703622 8.31696467 3.71480033 +H 6.90738053 7.93850210 2.17237687 +H 5.55428685 5.11760658 3.76552520 +H 6.81243095 6.77788116 3.39732325 +N 0.29575823 11.04303794 3.10161425 +H 0.86490722 11.83879228 3.63899745 +O 6.85201686 8.08463693 8.87628788 +H 7.33514301 7.42634987 9.38216748 +H 6.79196133 7.75954772 7.97161748 +H 3.89904877 6.42834904 8.88324096 +H 5.95997296 9.93297232 9.47466547 +O 11.40365898 10.37196036 9.27660922 +H 10.98366636 9.51571998 9.14787573 +O 1.52232797 5.33273311 0.57537606 +H 2.38151140 5.72519912 0.77945296 +H 0.92079957 6.09312823 0.62203253 +O 11.23490924 2.91533552 6.75850641 +H 10.79234019 2.97552251 5.90000184 +H 10.75124206 2.18961560 7.18074015 +O 11.39027944 7.34628556 6.72582995 +H 10.92025679 6.69831954 7.27766966 +H 11.12238028 7.06320210 5.83941078 +O 8.46843195 10.71736286 10.60018556 +H 8.56722016 11.42046608 11.25794033 +H 9.08031098 10.04804949 10.94065170 +O 6.58517573 9.99406234 6.55746149 +H 7.02763258 10.76096604 6.17233337 +H 5.74193274 10.38458392 6.82288230 +O 1.76005464 1.01771919 5.49267877 +H 1.97042091 1.01748419 6.44297037 +H 1.42973007 0.11076352 5.34706449 +H 2.61130613 9.70341237 10.45030683 +O 3.05086908 10.48131334 10.08518931 +H 3.00326932 10.93357295 9.36521210 +O 6.46315322 8.76520583 11.96784797 +H 6.45068084 9.65965953 11.58895602 +H 5.66116297 8.35357377 11.63844333 +O 1.17459993 5.24206908 5.10014497 +H 1.31932881 5.52363924 6.01289663 +H 0.58053835 4.48981346 5.23255650 +O 6.72755497 0.78840875 7.38172809 +H 6.38879656 1.54670982 6.86345204 +H 7.67917840 0.94039024 7.26494610 +O 8.54766572 0.00647503 5.04505141 +H 8.87362909 11.10484108 4.86018079 +H 8.04775976 0.20198361 4.23573994 +O 1.28950300 8.42800979 11.82038504 +H 1.47666664 8.10878664 10.87290333 +H 2.10220669 8.19476202 0.29510553 +O 9.67979076 6.42073355 4.34691506 +H 8.92715301 6.72940235 3.79741224 +H 10.20024126 5.91677392 3.66976111 +O 3.57411616 6.70410217 3.88254785 +H 2.88948995 6.15605298 4.29808481 +H 4.36137077 6.43047324 4.38049654 +O 4.75065560 11.44185335 1.12537088 +H 4.08611928 10.74852367 1.19233471 +H 5.50353016 10.96568825 0.73651277 +O 9.52545264 4.89944439 8.37322841 +H 8.78859598 4.35080439 8.66328314 +H 9.61490675 4.60849115 7.45400687 +O 4.19707467 1.34592128 3.67401439 +H 4.94370120 0.74406281 3.51406800 +H 4.19055349 1.77303760 2.79630494 +O 1.88232618 11.95451227 0.60024434 +H 2.04645873 11.02454723 0.38329541 +H 1.15184937 0.17494341 11.99928285 +O 3.75938422 11.01685511 6.45620508 +H 3.21254143 10.45537470 5.88949171 +H 3.41660269 10.82155767 7.32965639 +O 9.70398414 3.95001545 11.89474325 +H 10.46166606 3.91631180 11.28543523 +H 10.09834695 4.40269974 0.68193008 +O 8.56395964 3.51695075 5.62241042 +H 8.39666503 2.62622147 5.26381643 +H 7.96953714 4.08250598 5.00494074 +O 9.67362450 0.48030482 7.92575778 +H 9.61319804 11.88341918 7.16809240 +H 9.97840503 11.90238635 8.63894187 +O 3.94241531 6.96502967 11.60258943 +H 4.27671527 6.84600490 10.67022522 +H 4.65706385 6.51294615 0.09115988 +O 3.05701732 9.66319585 3.66112506 +H 2.54004901 9.57433550 2.84440476 +H 2.93148744 8.78098072 4.04252342 +O 7.45496127 5.84308508 11.01138472 +H 8.16758841 5.46391828 10.47644287 +H 6.71355737 5.83938184 10.36109975 +O 9.80291393 7.95789017 10.21404942 +H 10.38910242 8.34006414 10.87949429 +H 9.06376120 7.63923741 10.75692887 +O 4.49634356 4.10679358 11.73387805 +H 4.54737279 4.95779709 11.19223377 +H 5.35888184 4.17561117 0.20355937 +O 9.59234481 7.34180146 1.34856172 +H 8.87155933 7.47768372 2.05040471 +H 9.04432217 7.27322008 0.54011714 +O 7.03509631 3.22348773 0.70708240 +H 7.17844705 4.13403143 1.01841097 +H 7.77878544 2.78888884 1.15838887 +O 9.21241078 0.48085900 1.21751966 +H 9.66204365 11.65727108 1.45318397 +H 9.94048839 1.11619136 1.18684594 +O 1.19704207 9.58599592 6.61908889 +H 0.25606413 9.67373665 6.83193409 +H 1.26900519 8.62493549 6.54801125 +O 0.78256134 2.60406093 11.45340836 +H 0.61502181 3.56074060 11.40300991 +H 1.55655312 2.54573688 10.86673303 +O 5.86279361 7.12170548 5.89173203 +H 6.34324107 7.94001367 6.08558403 +H 5.50772967 6.84683068 6.74368758 +O 10.88782815 9.96374825 0.51092816 +H 11.78841776 10.32204307 0.44704989 +H 11.02688182 9.20519067 1.09766613 +O 3.93073389 4.16456745 5.71378770 +H 4.68840630 3.57889133 5.56446058 +H 4.29569485 4.76448881 6.38016697 diff --git a/examples/PACKAGES/pace/compute/log.5Dec23.compute.g++.1 b/examples/PACKAGES/pace/compute/log.5Dec23.compute.g++.1 new file mode 100644 index 0000000000..e5036cfe5b --- /dev/null +++ b/examples/PACKAGES/pace/compute/log.5Dec23.compute.g++.1 @@ -0,0 +1,81 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +#info all out log +units metal +atom_style atomic +boundary p p p +atom_modify map hash +boundary p p p +read_data latte_cell_0.data +Reading data file ... + orthogonal box = (0 0 0) to (12 12 12) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 161 atoms + read_data CPU = 0.001 seconds +mass 1 1.00 +mass 2 14.00 +mass 3 15.999 + + # potential settings + +pair_style zero 5.7 +pair_coeff * * + +compute pace all pace coupling_coefficients.yace 1 0 + +thermo 1 +thermo_style custom step temp c_pace[1][183] + +run 0 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7.7 + ghost atom cutoff = 7.7 + binsize = 3.85, bins = 4 4 4 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard + (2) compute pace, occasional + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.993 | 6.993 | 6.993 Mbytes + Step Temp c_pace[1][183] + 0 0 8.6885642 +Loop time of 1.217e-06 on 1 procs for 0 steps with 161 atoms + +164.3% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.217e-06 | | |100.00 + +Nlocal: 161 ave 161 max 161 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 1754 ave 1754 max 1754 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 14230 ave 14230 max 14230 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +FullNghs: 28460 ave 28460 max 28460 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 28460 +Ave neighs/atom = 176.77019 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/pace/compute/log.5Dec23.compute.g++.4 b/examples/PACKAGES/pace/compute/log.5Dec23.compute.g++.4 new file mode 100644 index 0000000000..49ca6129b6 --- /dev/null +++ b/examples/PACKAGES/pace/compute/log.5Dec23.compute.g++.4 @@ -0,0 +1,81 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +#info all out log +units metal +atom_style atomic +boundary p p p +atom_modify map hash +boundary p p p +read_data latte_cell_0.data +Reading data file ... + orthogonal box = (0 0 0) to (12 12 12) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 161 atoms + read_data CPU = 0.001 seconds +mass 1 1.00 +mass 2 14.00 +mass 3 15.999 + + # potential settings + +pair_style zero 5.7 +pair_coeff * * + +compute pace all pace coupling_coefficients.yace 1 0 + +thermo 1 +thermo_style custom step temp c_pace[1][183] + +run 0 +WARNING: No fixes with time integration, atoms won't move (src/verlet.cpp:60) +Generated 0 of 3 mixed pair_coeff terms from geometric mixing rule +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 7.7 + ghost atom cutoff = 7.7 + binsize = 3.85, bins = 4 4 4 + 2 neighbor lists, perpetual/occasional/extra = 1 1 0 + (1) pair zero, perpetual + attributes: half, newton on + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard + (2) compute pace, occasional + attributes: full, newton on + pair build: full/bin/atomonly + stencil: full/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 6.97 | 6.97 | 6.971 Mbytes + Step Temp c_pace[1][183] + 0 0 8.6885642 +Loop time of 1.979e-06 on 4 procs for 0 steps with 161 atoms + +164.2% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0 | 0 | 0 | 0.0 | 0.00 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0 | 0 | 0 | 0.0 | 0.00 +Output | 0 | 0 | 0 | 0.0 | 0.00 +Modify | 0 | 0 | 0 | 0.0 | 0.00 +Other | | 1.979e-06 | | |100.00 + +Nlocal: 40.25 ave 44 max 35 min +Histogram: 1 0 0 0 1 0 0 0 1 1 +Nghost: 1134.5 ave 1159 max 1117 min +Histogram: 1 1 0 0 1 0 0 0 0 1 +Neighs: 3557.5 ave 4115 max 3189 min +Histogram: 2 0 0 0 0 1 0 0 0 1 +FullNghs: 7115 ave 7755 max 6158 min +Histogram: 1 0 0 0 1 0 0 0 0 2 + +Total # of neighbors = 28460 +Ave neighs/atom = 176.77019 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/PACKAGES/phonon/2-1D-diatomic/in.Ana b/examples/PACKAGES/phonon/2-1D-diatomic/in.Ana index 6312466e58..ca49cd50c6 100644 --- a/examples/PACKAGES/phonon/2-1D-diatomic/in.Ana +++ b/examples/PACKAGES/phonon/2-1D-diatomic/in.Ana @@ -2,15 +2,15 @@ dimension 2 boundary p f p -units lj -atom_style bond +units lj +atom_style bond atom_modify sort 0 1. bond_style harmonic pair_style none -communicate single cutoff 2.0 +comm_modify cutoff 2.0 # geometry -read_data data.pos +read_data data.pos # neighbor 1.0 nsq @@ -43,4 +43,4 @@ thermo_modify temp MyTemp thermo 100 # -run 2000000 +run 2000000 diff --git a/examples/PACKAGES/qtb/methane_qbmsst/in.methane_qbmsst b/examples/PACKAGES/qtb/methane_qbmsst/in.methane_qbmsst new file mode 100644 index 0000000000..99d60e52d7 --- /dev/null +++ b/examples/PACKAGES/qtb/methane_qbmsst/in.methane_qbmsst @@ -0,0 +1,33 @@ +## This script first uses fix qtb to equilibrate liquid methane to an initial state with quantum nuclear correction and then simulate shock induced chemical reactions through the quantum thermal bath multi-scale shock technique +#The default system size may take a while to run you can change to a smaller size +variable x_rep equal 5 #x-direction replication number +variable y_rep equal 5 #y-direction replication number +variable z_rep equal 10 #z-direction replication number +variable temperature equal 110.0 #Target quantum temperature (K in real units) +variable delta_t equal 0.25 #MD timestep length (fs in real units) +variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) +variable v_msst equal 0.122 #Shock velocity (Angstrom/fs in metal units) +variable q_msst equal 25.0 #Box mass-like parameter in the MSST (mass^2/length^4, where mass=grams/mole and length=Angstrom in real units) +variable mu_msst equal 0.9 #Artificial viscosity in the MSST (mass/length/time, where mass=grams/mole, length=Angstrom and time=fs in real units) +variable tscale_msst equal 0.01 #Temperature reduction parameter in the MSST (unitless) +variable eta_qbmsst equal 1.0 #Coupling constant between the shock and the quantum thermal bath (unitless constant) + + +##The included part first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. +include methane_qtb.mod + + +##Shock compression with quantum nuclear corrections +reset_timestep 0 +fix shock all qbmsst z ${v_msst} q ${q_msst} mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix_modify shock energy yes +variable dhug equal f_shock[1] +variable dray equal f_shock[2] +variable lgr_vel equal f_shock[3] +variable lgr_pos equal f_shock[4] +variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction +thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo 20 +timestep ${delta_t} +#restart 1000 restart +run 500 diff --git a/examples/PACKAGES/qtb/methane_qbmsst/log.30Nov23.methane_qbmsst.g++.1 b/examples/PACKAGES/qtb/methane_qbmsst/log.30Nov23.methane_qbmsst.g++.1 new file mode 100644 index 0000000000..d46e62cfd5 --- /dev/null +++ b/examples/PACKAGES/qtb/methane_qbmsst/log.30Nov23.methane_qbmsst.g++.1 @@ -0,0 +1,280 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +## This script first uses fix qtb to equilibrate liquid methane to an initial state with quantum nuclear correction and then simulate shock induced chemical reactions through the quantum thermal bath multi-scale shock technique +#The default system size may take a while to run you can change to a smaller size +variable x_rep equal 5 #x-direction replication number +variable y_rep equal 5 #y-direction replication number +variable z_rep equal 10 #z-direction replication number +variable temperature equal 110.0 #Target quantum temperature (K in real units) +variable delta_t equal 0.25 #MD timestep length (fs in real units) +variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) +variable v_msst equal 0.122 #Shock velocity (Angstrom/fs in metal units) +variable q_msst equal 25.0 #Box mass-like parameter in the MSST (mass^2/length^4, where mass=grams/mole and length=Angstrom in real units) +variable mu_msst equal 0.9 #Artificial viscosity in the MSST (mass/length/time, where mass=grams/mole, length=Angstrom and time=fs in real units) +variable tscale_msst equal 0.01 #Temperature reduction parameter in the MSST (unitless) +variable eta_qbmsst equal 1.0 #Coupling constant between the shock and the quantum thermal bath (unitless constant) + + +##The included part first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. +include methane_qtb.mod +## This script first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. + + +## This part defines units, methane structure, and atomic information +#General +units real +dimension 3 +boundary p p p +atom_style charge + +#Lattice +lattice custom 1.0 a1 3.9783624 0 0 a2 0 3.9783624 0 a3 0 0 3.9783624 basis 0.5 0.5 0.5 basis 0.663 0.663 0.663 basis 0.337 0.337 0.663 basis 0.663 0.337 0.337 basis 0.337 0.663 0.337 +Lattice spacing in x,y,z = 3.9783624 3.9783624 3.9783624 + +#Computational Cell +region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box +create_box 2 simbox +Created orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box basis 1 1 basis 2 2 basis 3 2 basis 4 2 basis 5 2 +Created 5 atoms + using lattice units in orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + create_atoms CPU = 0.000 seconds +replicate ${x_rep} ${y_rep} ${z_rep} +replicate 5 ${y_rep} ${z_rep} +replicate 5 5 ${z_rep} +replicate 5 5 10 +Replication is creating a 5x5x10 = 250 times larger system... + orthogonal box = (0 0 0) to (19.891812 19.891812 39.783624) + 1 by 1 by 1 MPI processor grid + 1250 atoms + replicate CPU = 0.000 seconds + +#Atomic Information +mass 1 12.011150 +mass 2 1.007970 + + +## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" +#Pair Potentials +pair_style reaxff NULL +pair_coeff * * ffield.reax C H +fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reaxff + +#Neighbor Style +neighbor 2.5 bin +neigh_modify every 10 delay 0 check no + + +## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects +#Initialization +velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all +velocity all create 110 93 dist gaussian sum no mom yes rot yes loop all + +#Setup output +thermo_style custom step temp press etotal vol +thermo 20 + +#Colored thermal bath +fix scapegoat_qtb all nve #NVE does the time integration +fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher +fix methane_qtb all qtb temp 110 damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 +fix methane_qtb all qtb temp 110 damp 200 seed 35082 f_max 0.3 N_f 50 +timestep ${delta_t} +timestep 0.25 +run 500 #500 fs + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12.5 + ghost atom cutoff = 12.5 + binsize = 6.25, bins = 4 4 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 201.3 | 201.3 | 201.3 Mbytes + Step Temp Press TotEng Volume + 0 110 -15717.706 -110869.31 15741.751 + 20 133.92166 8773.5364 -110569.51 15741.751 + 40 184.43244 -12136.835 -110378.92 15741.751 + 60 203.58164 6527.2188 -110190.9 15741.751 + 80 183.0518 -9667.6163 -110095.24 15741.751 + 100 236.07378 4393.5089 -109905.8 15741.751 + 120 226.94599 -5612.6845 -109708.46 15741.751 + 140 249.34156 988.50573 -109631.88 15741.751 + 160 255.08331 -1397.98 -109469.09 15741.751 + 180 281.64743 -1682.598 -109285.53 15741.751 + 200 303.76929 2594.8345 -109206.84 15741.751 + 220 311.6547 -4566.4307 -109053.21 15741.751 + 240 350.68316 5132.0272 -108918.26 15741.751 + 260 347.11102 -6078.5078 -108828.31 15741.751 + 280 366.56298 6373.2426 -108694.64 15741.751 + 300 393.62524 -6438.9321 -108521.5 15741.751 + 320 403.64821 5946.6873 -108487.83 15741.751 + 340 406.12883 -5053.5592 -108331.25 15741.751 + 360 450.60139 4323.0942 -108185.06 15741.751 + 380 429.46056 -3317.8604 -108146.84 15741.751 + 400 448.11876 3264.6165 -108048.01 15741.751 + 420 485.98657 -3047.3542 -107882.88 15741.751 + 440 463.23761 3088.3325 -107853.09 15741.751 + 460 504.27223 -1966.5888 -107689.56 15741.751 + 480 515.66783 2915.6322 -107550.83 15741.751 + 500 516.26369 -1733.2701 -107498.06 15741.751 +Loop time of 41.4818 on 1 procs for 500 steps with 1250 atoms + +Performance: 0.260 ns/day, 92.182 hours/ns, 12.053 timesteps/s, 15.067 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 30.707 | 30.707 | 30.707 | 0.0 | 74.03 +Neigh | 2.2815 | 2.2815 | 2.2815 | 0.0 | 5.50 +Comm | 0.023963 | 0.023963 | 0.023963 | 0.0 | 0.06 +Output | 0.00073327 | 0.00073327 | 0.00073327 | 0.0 | 0.00 +Modify | 8.4653 | 8.4653 | 8.4653 | 0.0 | 20.41 +Other | | 0.00334 | | | 0.01 + +Nlocal: 1250 ave 1250 max 1250 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 8444 ave 8444 max 8444 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 601915 ave 601915 max 601915 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 601915 +Ave neighs/atom = 481.532 +Neighbor list builds = 50 +Dangerous builds not checked +unfix methane_qtb +unfix scapegoat_qtb + + +##Shock compression with quantum nuclear corrections +reset_timestep 0 +fix shock all qbmsst z ${v_msst} q ${q_msst} mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q ${q_msst} mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 f_max 0.3 N_f 50 seed 35082 eta 1 beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 f_max 0.3 N_f 50 seed 35082 eta 1 beta 400 T_init 110 +QBMSST parameters: + Shock in z direction + Cell mass-like parameter qmass (units of mass^2/length^4) = 2.50000e+01 + Shock velocity = 1.22000e-01 + Artificial viscosity (units of mass/length/time) = 9.00000e-01 + Initial pressure calculated on first step + Initial volume calculated on first step + Initial energy calculated on first step +fix_modify shock energy yes +variable dhug equal f_shock[1] +variable dray equal f_shock[2] +variable lgr_vel equal f_shock[3] +variable lgr_pos equal f_shock[4] +variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction +thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo 20 +timestep ${delta_t} +timestep 0.25 +#restart 1000 restart +run 500 +Fix QBMSST v0 = 1.57418e+04 +Fix QBMSST p0 = -3.03801e+03 +Fix QBMSST e0 = to be -1.07498e+05 +Fix QBMSST initial strain rate of -1.02043e-04 established by reducing temperature by factor of 1.00000e-02 +Per MPI rank memory allocation (min/avg/max) = 201.4 | 201.4 | 201.4 Mbytes + Step v_T_qm Press TotEng Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos + 0 110 -1789.091 -107498.06 15741.751 19.891812 19.891812 39.783624 -3095.1546 1.9543098e-12 -57.148468 0 0 + 20 110 313.41128 -107231.57 15733.908 19.891812 19.891812 39.763803 1026.815 -35.805172 3755.1834 6.0783853e-05 -0.60983919 + 40 110 1248.5771 -107106.23 15726.494 19.891812 19.891812 39.745066 -277.53233 -52.672766 2158.1479 0.00011824041 -1.219383 + 60 110 -944.55947 -107017.75 15719.482 19.891812 19.891812 39.727345 1006.8843 -64.550247 3165.7346 0.00017258388 -1.8286479 + 80 110 2164.646 -107053.82 15712.848 19.891812 19.891812 39.710579 686.99949 -59.728513 2583.9345 0.00022399951 -2.4376489 + 100 110 -332.40946 -106996.04 15706.579 19.891812 19.891812 39.694734 1555.274 -67.472889 3204.6947 0.00027258815 -3.0464001 + 120 110 2556.8172 -106828.33 15700.655 19.891812 19.891812 39.679765 -1406.2492 -90.123866 9.330762 0.00031849257 -3.6549157 + 140 110 -649.1633 -106851.95 15695.029 19.891812 19.891812 39.665545 3704.8784 -86.742267 4898.3193 0.00036209988 -4.2632077 + 160 110 2301.4774 -106787.04 15689.738 19.891812 19.891812 39.652174 -893.31294 -95.690383 91.247096 0.00040310452 -4.8712886 + 180 110 -701.59672 -106639.61 15684.711 19.891812 19.891812 39.63947 3211.2065 -115.27944 3997.3199 0.00044206086 -5.47917 + 200 110 3857.6228 -106696.51 15679.975 19.891812 19.891812 39.627501 -1722.9124 -107.93584 -1123.778 0.00047876602 -6.0868625 + 220 110 -1057.1346 -106590.95 15675.462 19.891812 19.891812 39.616094 3285.0876 -121.80821 3706.0326 0.00051374575 -6.6943761 + 240 110 2748.5299 -106428.9 15671.216 19.891812 19.891812 39.605364 172.15717 -143.78629 425.48974 0.00054664912 -7.3017201 + 260 110 64.99143 -106442.23 15667.188 19.891812 19.891812 39.595183 981.21139 -141.94851 1075.4979 0.00057787086 -7.9089043 + 280 110 1612.9607 -106412.77 15663.362 19.891812 19.891812 39.585514 662.48897 -145.93658 605.73218 0.00060752164 -8.5159364 + 300 110 1435.9566 -106307.06 15659.725 19.891812 19.891812 39.576323 759.46794 -160.13403 559.12791 0.00063570794 -9.1228243 + 320 110 -890.72712 -106332.6 15656.258 19.891812 19.891812 39.56756 234.14376 -156.75496 -103.07714 0.00066257852 -9.7295747 + 340 110 4270.0983 -106252.72 15652.976 19.891812 19.891812 39.559265 5411.2268 -167.0427 4944.423 0.00068801647 -10.336194 + 360 110 -2801.0763 -106105.96 15649.905 19.891812 19.891812 39.551504 -3276.3824 -187.5258 -3864.4213 0.00071181569 -10.942691 + 380 110 5566.9116 -106139.88 15646.926 19.891812 19.891812 39.543977 2737.1121 -182.43141 2031.4929 0.00073489745 -11.549071 + 400 110 -4432.9416 -106074.79 15644.09 19.891812 19.891812 39.536808 -4946.1908 -191.90759 -5763.8068 0.00075688314 -12.155339 + 420 52.599535 5582.8126 -105959.96 15641.311 19.891812 19.891812 39.529786 7869.5301 -206.09135 6942.2136 0.00077841805 -12.761497 + 440 52.599535 -2861.6332 -106017.66 15638.758 19.891812 19.891812 39.523335 -1820.4742 -199.30721 -2848.5648 0.00079820063 -13.367553 + 460 52.599535 3942.7505 -105984.45 15636.294 19.891812 19.891812 39.517106 3327.0393 -203.24794 2201.6559 0.00081729985 -13.973511 + 480 52.599535 419.18442 -105827.32 15633.955 19.891812 19.891812 39.511194 -1910.6109 -224.9021 -3128.3482 0.00083542949 -14.579377 + 500 52.599535 117.60016 -105904.83 15631.655 19.891812 19.891812 39.505383 -603.40365 -214.36236 -1911.9203 0.00085325005 -15.185153 +Loop time of 41.8312 on 1 procs for 500 steps with 1250 atoms + +Performance: 0.258 ns/day, 92.958 hours/ns, 11.953 timesteps/s, 14.941 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 31.016 | 31.016 | 31.016 | 0.0 | 74.15 +Neigh | 2.2849 | 2.2849 | 2.2849 | 0.0 | 5.46 +Comm | 0.020391 | 0.020391 | 0.020391 | 0.0 | 0.05 +Output | 0.0019403 | 0.0019403 | 0.0019403 | 0.0 | 0.00 +Modify | 8.505 | 8.505 | 8.505 | 0.0 | 20.33 +Other | | 0.003238 | | | 0.01 + +Nlocal: 1250 ave 1250 max 1250 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 8489 ave 8489 max 8489 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 606382 ave 606382 max 606382 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 606382 +Ave neighs/atom = 485.1056 +Neighbor list builds = 50 +Dangerous builds not checked +Total wall time: 0:01:23 diff --git a/examples/PACKAGES/qtb/methane_qbmsst/log.30Nov23.methane_qbmsst.g++.4 b/examples/PACKAGES/qtb/methane_qbmsst/log.30Nov23.methane_qbmsst.g++.4 new file mode 100644 index 0000000000..357f31a300 --- /dev/null +++ b/examples/PACKAGES/qtb/methane_qbmsst/log.30Nov23.methane_qbmsst.g++.4 @@ -0,0 +1,280 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +## This script first uses fix qtb to equilibrate liquid methane to an initial state with quantum nuclear correction and then simulate shock induced chemical reactions through the quantum thermal bath multi-scale shock technique +#The default system size may take a while to run you can change to a smaller size +variable x_rep equal 5 #x-direction replication number +variable y_rep equal 5 #y-direction replication number +variable z_rep equal 10 #z-direction replication number +variable temperature equal 110.0 #Target quantum temperature (K in real units) +variable delta_t equal 0.25 #MD timestep length (fs in real units) +variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) +variable v_msst equal 0.122 #Shock velocity (Angstrom/fs in metal units) +variable q_msst equal 25.0 #Box mass-like parameter in the MSST (mass^2/length^4, where mass=grams/mole and length=Angstrom in real units) +variable mu_msst equal 0.9 #Artificial viscosity in the MSST (mass/length/time, where mass=grams/mole, length=Angstrom and time=fs in real units) +variable tscale_msst equal 0.01 #Temperature reduction parameter in the MSST (unitless) +variable eta_qbmsst equal 1.0 #Coupling constant between the shock and the quantum thermal bath (unitless constant) + + +##The included part first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. +include methane_qtb.mod +## This script first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. + + +## This part defines units, methane structure, and atomic information +#General +units real +dimension 3 +boundary p p p +atom_style charge + +#Lattice +lattice custom 1.0 a1 3.9783624 0 0 a2 0 3.9783624 0 a3 0 0 3.9783624 basis 0.5 0.5 0.5 basis 0.663 0.663 0.663 basis 0.337 0.337 0.663 basis 0.663 0.337 0.337 basis 0.337 0.663 0.337 +Lattice spacing in x,y,z = 3.9783624 3.9783624 3.9783624 + +#Computational Cell +region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box +create_box 2 simbox +Created orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box basis 1 1 basis 2 2 basis 3 2 basis 4 2 basis 5 2 +Created 5 atoms + using lattice units in orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + create_atoms CPU = 0.000 seconds +replicate ${x_rep} ${y_rep} ${z_rep} +replicate 5 ${y_rep} ${z_rep} +replicate 5 5 ${z_rep} +replicate 5 5 10 +Replication is creating a 5x5x10 = 250 times larger system... + orthogonal box = (0 0 0) to (19.891812 19.891812 39.783624) + 1 by 1 by 4 MPI processor grid + 1250 atoms + replicate CPU = 0.000 seconds + +#Atomic Information +mass 1 12.011150 +mass 2 1.007970 + + +## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" +#Pair Potentials +pair_style reaxff NULL +pair_coeff * * ffield.reax C H +fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reaxff + +#Neighbor Style +neighbor 2.5 bin +neigh_modify every 10 delay 0 check no + + +## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects +#Initialization +velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all +velocity all create 110 93 dist gaussian sum no mom yes rot yes loop all + +#Setup output +thermo_style custom step temp press etotal vol +thermo 20 + +#Colored thermal bath +fix scapegoat_qtb all nve #NVE does the time integration +fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher +fix methane_qtb all qtb temp 110 damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 +fix methane_qtb all qtb temp 110 damp 200 seed 35082 f_max 0.3 N_f 50 +timestep ${delta_t} +timestep 0.25 +run 500 #500 fs + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12.5 + ghost atom cutoff = 12.5 + binsize = 6.25, bins = 4 4 7 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 125.2 | 125.3 | 125.4 Mbytes + Step Temp Press TotEng Volume + 0 110 -15717.706 -110869.31 15741.751 + 20 133.92621 9503.0083 -110548.47 15741.751 + 40 188.1524 -13687.131 -110344.93 15741.751 + 60 205.85747 8421.3906 -110165.58 15741.751 + 80 185.08989 -11337.006 -110026.24 15741.751 + 100 245.36524 5805.0694 -109841.66 15741.751 + 120 218.83661 -7740.8838 -109674.15 15741.751 + 140 254.6075 3396.3936 -109589.89 15741.751 + 160 262.20963 -3574.2575 -109413.81 15741.751 + 180 297.89271 917.40867 -109204.79 15741.751 + 200 315.54026 -371.17448 -109129.45 15741.751 + 220 323.90745 -2811.4367 -108988.12 15741.751 + 240 358.28478 3972.8358 -108848.95 15741.751 + 260 359.12673 -6289.689 -108788.08 15741.751 + 280 376.47656 6851.3186 -108664.07 15741.751 + 300 404.30975 -7805.7238 -108482.75 15741.751 + 320 410.9097 7696.2518 -108421.87 15741.751 + 340 406.19092 -8175.1703 -108311.84 15741.751 + 360 460.37085 7630.6182 -108139.6 15741.751 + 380 413.96355 -7515.2307 -108150.73 15741.751 + 400 452.17428 7148.0954 -108027.39 15741.751 + 420 467.1725 -6662.4113 -107842.71 15741.751 + 440 481.03775 6117.6862 -107759.03 15741.751 + 460 509.03937 -4095.0215 -107648.46 15741.751 + 480 533.22373 2211.9169 -107481.89 15741.751 + 500 517.71195 -214.23969 -107489.48 15741.751 +Loop time of 22.2711 on 4 procs for 500 steps with 1250 atoms + +Performance: 0.485 ns/day, 49.491 hours/ns, 22.451 timesteps/s, 28.063 katom-step/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 13.689 | 15.195 | 16.732 | 27.7 | 68.23 +Neigh | 1.5325 | 1.5496 | 1.5658 | 1.0 | 6.96 +Comm | 0.073366 | 1.6105 | 3.116 | 85.1 | 7.23 +Output | 0.00052192 | 0.00057642 | 0.00073657 | 0.0 | 0.00 +Modify | 3.896 | 3.9129 | 3.9306 | 0.6 | 17.57 +Other | | 0.00241 | | | 0.01 + +Nlocal: 312.5 ave 317 max 308 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Nghost: 4982 ave 4995 max 4967 min +Histogram: 1 0 0 0 0 1 1 0 0 1 +Neighs: 172509 ave 174182 max 170676 min +Histogram: 1 0 0 1 0 0 0 1 0 1 + +Total # of neighbors = 690037 +Ave neighs/atom = 552.0296 +Neighbor list builds = 50 +Dangerous builds not checked +unfix methane_qtb +unfix scapegoat_qtb + + +##Shock compression with quantum nuclear corrections +reset_timestep 0 +fix shock all qbmsst z ${v_msst} q ${q_msst} mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q ${q_msst} mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 f_max 0.3 N_f 50 seed 35082 eta 1 beta 400 T_init ${temperature} +fix shock all qbmsst z 0.122 q 25 mu 0.9 tscale 0.01 damp 200 f_max 0.3 N_f 50 seed 35082 eta 1 beta 400 T_init 110 +QBMSST parameters: + Shock in z direction + Cell mass-like parameter qmass (units of mass^2/length^4) = 2.50000e+01 + Shock velocity = 1.22000e-01 + Artificial viscosity (units of mass/length/time) = 9.00000e-01 + Initial pressure calculated on first step + Initial volume calculated on first step + Initial energy calculated on first step +fix_modify shock energy yes +variable dhug equal f_shock[1] +variable dray equal f_shock[2] +variable lgr_vel equal f_shock[3] +variable lgr_pos equal f_shock[4] +variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction +thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos +thermo 20 +timestep ${delta_t} +timestep 0.25 +#restart 1000 restart +run 500 +Fix QBMSST v0 = 1.57418e+04 +Fix QBMSST p0 = -5.88788e+01 +Fix QBMSST e0 = to be -1.07489e+05 +Fix QBMSST initial strain rate of -1.02186e-04 established by reducing temperature by factor of 1.00000e-02 +Per MPI rank memory allocation (min/avg/max) = 126.1 | 126.1 | 126.1 Mbytes + Step v_T_qm Press TotEng Volume Lx Ly Lz Pzz v_dhug v_dray v_lgr_vel v_lgr_pos + 0 110 -270.21489 -107489.48 15741.751 19.891812 19.891812 39.783624 -118.93551 0 -60.056661 0 0 + 20 110 -2180.5877 -107208.2 15733.847 19.891812 19.891812 39.763648 223.47326 -37.773571 -29.703539 6.1258507e-05 -0.60983836 + 40 110 5004.864 -107109.95 15726.306 19.891812 19.891812 39.744592 3335.6341 -50.920246 2784.77 0.00011969641 -1.2193771 + 60 110 -4549.1199 -106949.22 15719.136 19.891812 19.891812 39.72647 -4461.4212 -72.656651 -5295.3675 0.00017526726 -1.8286321 + 80 110 6695.6833 -106942.12 15712.214 19.891812 19.891812 39.708976 5333.2741 -73.356417 4226.043 0.00022891479 -2.4376137 + 100 110 -5337.7671 -106930.78 15705.644 19.891812 19.891812 39.692373 -2682.4224 -75.129348 -4049.0157 0.00027982924 -3.0463347 + 120 110 6526.5587 -106736.15 15699.334 19.891812 19.891812 39.676424 7038.2375 -100.8809 5422.5046 0.00032873694 -3.6548061 + 140 110 -3284.0472 -106761.36 15693.36 19.891812 19.891812 39.661329 -3999.8116 -97.977739 -5851.3636 0.00037502973 -4.2630401 + 160 110 4792.0537 -106662.24 15687.56 19.891812 19.891812 39.64667 4484.6905 -110.86184 2404.1579 0.00041998006 -4.8710464 + 180 110 -1253.5849 -106532.38 15682.037 19.891812 19.891812 39.632711 -723.78287 -128.58314 -3022.3825 0.00046278801 -5.4788331 + 200 110 3276.2225 -106488.13 15676.725 19.891812 19.891812 39.619286 5117.4749 -134.15782 2609.1518 0.00050395806 -6.0864105 + 220 110 -553.17982 -106421.17 15671.675 19.891812 19.891812 39.606524 -1360.8796 -143.56979 -4068.5641 0.00054309397 -6.6937871 + 240 110 1329.8793 -106309.56 15666.794 19.891812 19.891812 39.594187 775.35326 -158.40869 -2125.0508 0.00058092605 -7.300972 + 260 110 1809.8974 -106360.42 15662.075 19.891812 19.891812 39.582262 3075.2725 -151.39659 -11.4097 0.00061749364 -7.9079706 + 280 110 24.534819 -106310.46 15657.56 19.891812 19.891812 39.570852 1043.8352 -158.25965 -2221.0935 0.00065248454 -8.5147908 + 300 110 2854.2862 -106150.2 15653.217 19.891812 19.891812 39.559874 3727.6844 -179.54521 291.27132 0.00068614803 -9.1214393 + 320 110 -776.61228 -106199.04 15649.041 19.891812 19.891812 39.549322 -1285.3999 -173.42703 -4886.655 0.00071850756 -9.7279234 + 340 110 3778.2238 -106201.03 15644.958 19.891812 19.891812 39.539001 3694.462 -172.6926 -68.017561 0.00075015694 -10.334247 + 360 110 -1505.9413 -106025.15 15641.031 19.891812 19.891812 39.529078 -1491.3768 -196.81063 -5408.8787 0.00078058882 -10.940416 + 380 110 3414.9599 -106071.49 15637.176 19.891812 19.891812 39.519335 4956.6752 -189.93327 886.98409 0.00081046454 -11.546435 + 400 110 -947.2273 -106003.34 15633.49 19.891812 19.891812 39.510021 726.91825 -199.51619 -3488.2795 0.0008390284 -12.152307 + 420 46.681884 1610.2414 -105884.37 15629.905 19.891812 19.891812 39.500961 -1377.8364 -215.72223 -5734.5653 0.00086681188 -12.758039 + 440 46.681884 2290.4653 -105923.83 15626.371 19.891812 19.891812 39.492029 6296.7177 -209.55961 1800.4591 0.00089420243 -13.363632 + 460 46.681884 -2068.0472 -105879.44 15622.969 19.891812 19.891812 39.483432 -5629.8405 -216.88862 -10260.4 0.00092056659 -13.969092 + 480 46.681884 5011.06 -105748.92 15619.556 19.891812 19.891812 39.474805 8649.5097 -232.72756 3884.1859 0.00094702163 -14.574419 + 500 46.681884 -3314.8335 -105829.23 15616.305 19.891812 19.891812 39.46659 -5120.4784 -223.60669 -10014.132 0.00097221364 -15.179618 +Loop time of 26.5748 on 4 procs for 500 steps with 1250 atoms + +Performance: 0.406 ns/day, 59.055 hours/ns, 18.815 timesteps/s, 23.519 katom-step/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 16.259 | 18.109 | 19.999 | 31.1 | 68.14 +Neigh | 1.8265 | 1.8477 | 1.8638 | 1.0 | 6.95 +Comm | 0.045073 | 1.9349 | 3.7845 | 95.1 | 7.28 +Output | 0.0019058 | 0.0019666 | 0.0021202 | 0.2 | 0.01 +Modify | 4.6619 | 4.6782 | 4.699 | 0.6 | 17.60 +Other | | 0.002774 | | | 0.01 + +Nlocal: 312.5 ave 318 max 307 min +Histogram: 1 0 0 0 1 1 0 0 0 1 +Nghost: 5059 ave 5080 max 5039 min +Histogram: 1 0 1 0 0 0 1 0 0 1 +Neighs: 173854 ave 176807 max 170839 min +Histogram: 1 0 0 1 0 0 1 0 0 1 + +Total # of neighbors = 695414 +Ave neighs/atom = 556.3312 +Neighbor list builds = 50 +Dangerous builds not checked +Total wall time: 0:00:49 diff --git a/examples/PACKAGES/qtb/methane_qbmsst/methane_qbmsst.in b/examples/PACKAGES/qtb/methane_qbmsst/methane_qbmsst.in deleted file mode 100644 index 507164a732..0000000000 --- a/examples/PACKAGES/qtb/methane_qbmsst/methane_qbmsst.in +++ /dev/null @@ -1,33 +0,0 @@ -## This script first uses fix qtb to equilibrate liquid methane to an initial state with quantum nuclear correction and then simulate shock induced chemical reactions through the quantum thermal bath multi-scale shock technique -#The default system size may take a while to run you can change to a smaller size -variable x_rep equal 5 #x-direction replication number -variable y_rep equal 5 #y-direction replication number -variable z_rep equal 10 #z-direction replication number -variable temperature equal 110.0 #Target quantum temperature (K in real units) -variable delta_t equal 0.25 #MD timestep length (fs in real units) -variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) -variable v_msst equal 0.122 #Shock velocity (Angstrom/fs in metal units) -variable q_msst equal 25.0 #Box mass-like parameter in the MSST (mass^2/length^4, where mass=grams/mole and length=Angstrom in real units) -variable mu_msst equal 0.9 #Artificial viscosity in the MSST (mass/length/time, where mass=grams/mole, length=Angstrom and time=fs in real units) -variable tscale_msst equal 0.01 #Temperature reduction parameter in the MSST (unitless) -variable eta_qbmsst equal 1.0 #Coupling constant between the shock and the quantum thermal bath (unitless constant) - - -##The included part first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. -include methane_qtb.mod - - -##Shock compression with quantum nuclear corrections -reset_timestep 0 -fix shock all qbmsst z ${v_msst} q ${q_msst} mu ${mu_msst} tscale ${tscale_msst} damp ${damp_qtb} f_max 0.3 N_f 50 seed 35082 eta ${eta_qbmsst} beta 400 T_init ${temperature} -fix_modify shock energy yes -variable dhug equal f_shock[1] -variable dray equal f_shock[2] -variable lgr_vel equal f_shock[3] -variable lgr_pos equal f_shock[4] -variable T_qm equal f_shock[5] #Temperature with quantum nuclear correction -thermo_style custom step v_T_qm press etotal vol lx ly lz pzz v_dhug v_dray v_lgr_vel v_lgr_pos -thermo 100 -timestep ${delta_t} -restart 1000 restart -run 5000 diff --git a/examples/PACKAGES/qtb/methane_qbmsst/methane_qtb.mod b/examples/PACKAGES/qtb/methane_qbmsst/methane_qtb.mod index 65bfc5d7f7..ac1735ca7b 100644 --- a/examples/PACKAGES/qtb/methane_qbmsst/methane_qtb.mod +++ b/examples/PACKAGES/qtb/methane_qbmsst/methane_qtb.mod @@ -3,62 +3,62 @@ ## This part defines units, methane structure, and atomic information #General -units real -dimension 3 -boundary p p p -atom_style charge +units real +dimension 3 +boundary p p p +atom_style charge #Lattice -lattice custom 1.0 & - a1 3.9783624 0 0 & - a2 0 3.9783624 0 & - a3 0 0 3.9783624 & - & - basis 0.5 0.5 0.5 & - basis 0.663 0.663 0.663 & - basis 0.337 0.337 0.663 & - basis 0.663 0.337 0.337 & - basis 0.337 0.663 0.337 +lattice custom 1.0 & + a1 3.9783624 0 0 & + a2 0 3.9783624 0 & + a3 0 0 3.9783624 & + & + basis 0.5 0.5 0.5 & + basis 0.663 0.663 0.663 & + basis 0.337 0.337 0.663 & + basis 0.663 0.337 0.337 & + basis 0.337 0.663 0.337 #Computational Cell -region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box -create_box 2 simbox -create_atoms 1 box & - basis 1 1 & - basis 2 2 & - basis 3 2 & - basis 4 2 & - basis 5 2 -replicate ${x_rep} ${y_rep} ${z_rep} +region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box +create_box 2 simbox +create_atoms 1 box & + basis 1 1 & + basis 2 2 & + basis 3 2 & + basis 4 2 & + basis 5 2 +replicate ${x_rep} ${y_rep} ${z_rep} #Atomic Information -mass 1 12.011150 -mass 2 1.007970 +mass 1 12.011150 +mass 2 1.007970 ## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" #Pair Potentials -pair_style reax/c NULL -pair_coeff * * ffield.reax C H -fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c +pair_style reaxff NULL +pair_coeff * * ffield.reax C H +fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reaxff #Neighbor Style -neighbor 2.5 bin -neigh_modify every 10 delay 0 check no +neighbor 2.5 bin +neigh_modify every 10 delay 0 check no ## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects #Initialization -velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all +velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all #Setup output -thermo_style custom step temp press etotal vol -thermo 100 +thermo_style custom step temp press etotal vol +thermo 20 #Colored thermal bath -fix scapegoat_qtb all nve #NVE does the time integration -fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher -timestep ${delta_t} -run 2000 #500 fs -unfix methane_qtb -unfix scapegoat_qtb +fix scapegoat_qtb all nve #NVE does the time integration +fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher +timestep ${delta_t} +run 500 #500 fs +unfix methane_qtb +unfix scapegoat_qtb diff --git a/examples/PACKAGES/qtb/methane_qtb/in.methane_qtb b/examples/PACKAGES/qtb/methane_qtb/in.methane_qtb new file mode 100644 index 0000000000..bfaa8706c4 --- /dev/null +++ b/examples/PACKAGES/qtb/methane_qtb/in.methane_qtb @@ -0,0 +1,70 @@ +## This script first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. +variable x_rep equal 2 #x-direction replication number +variable y_rep equal 2 #y-direction replication number +variable z_rep equal 2 #z-direction replication number +variable temperature equal 110.0 #Target quantum temperature (K in real units) +variable delta_t equal 0.25 #MD timestep length (fs in real units) +variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) + + +## This part defines units, methane structure, and atomic information +#General +units real +dimension 3 +boundary p p p +atom_style charge + +#Lattice +lattice custom 1.0 & + a1 3.9783624 0 0 & + a2 0 3.9783624 0 & + a3 0 0 3.9783624 & + & + basis 0.5 0.5 0.5 & + basis 0.663 0.663 0.663 & + basis 0.337 0.337 0.663 & + basis 0.663 0.337 0.337 & + basis 0.337 0.663 0.337 + +#Computational Cell +region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box +create_box 2 simbox +create_atoms 1 box & + basis 1 1 & + basis 2 2 & + basis 3 2 & + basis 4 2 & + basis 5 2 +replicate ${x_rep} ${y_rep} ${z_rep} + +#Atomic Information +mass 1 12.011150 +mass 2 1.007970 + + +## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" +#Pair Potentials +pair_style reaxff NULL +pair_coeff * * ffield.reax C H +fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reaxff + +#Neighbor Style +neighbor 2.5 bin +neigh_modify every 10 delay 0 check no + + +## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects +#Initialization +velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all + +#Setup output +thermo_style custom step temp press etotal vol +thermo 50 + +#Colored thermal bath +fix scapegoat_qtb all nve #NVE does the time integration +fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher +timestep ${delta_t} +run 1000 +unfix methane_qtb +unfix scapegoat_qtb diff --git a/examples/PACKAGES/qtb/methane_qtb/log.30Nov23.methane_qtb.g++.1 b/examples/PACKAGES/qtb/methane_qtb/log.30Nov23.methane_qtb.g++.1 new file mode 100644 index 0000000000..b6efdb6360 --- /dev/null +++ b/examples/PACKAGES/qtb/methane_qtb/log.30Nov23.methane_qtb.g++.1 @@ -0,0 +1,174 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +## This script first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. +variable x_rep equal 2 #x-direction replication number +variable y_rep equal 2 #y-direction replication number +variable z_rep equal 2 #z-direction replication number +variable temperature equal 110.0 #Target quantum temperature (K in real units) +variable delta_t equal 0.25 #MD timestep length (fs in real units) +variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) + + +## This part defines units, methane structure, and atomic information +#General +units real +dimension 3 +boundary p p p +atom_style charge + +#Lattice +lattice custom 1.0 a1 3.9783624 0 0 a2 0 3.9783624 0 a3 0 0 3.9783624 basis 0.5 0.5 0.5 basis 0.663 0.663 0.663 basis 0.337 0.337 0.663 basis 0.663 0.337 0.337 basis 0.337 0.663 0.337 +Lattice spacing in x,y,z = 3.9783624 3.9783624 3.9783624 + +#Computational Cell +region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box +create_box 2 simbox +Created orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + 1 by 1 by 1 MPI processor grid +create_atoms 1 box basis 1 1 basis 2 2 basis 3 2 basis 4 2 basis 5 2 +Created 5 atoms + using lattice units in orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + create_atoms CPU = 0.000 seconds +replicate ${x_rep} ${y_rep} ${z_rep} +replicate 2 ${y_rep} ${z_rep} +replicate 2 2 ${z_rep} +replicate 2 2 2 +Replication is creating a 2x2x2 = 8 times larger system... + orthogonal box = (0 0 0) to (7.9567248 7.9567248 7.9567248) + 1 by 1 by 1 MPI processor grid + 40 atoms + replicate CPU = 0.001 seconds + +#Atomic Information +mass 1 12.011150 +mass 2 1.007970 + + +## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" +#Pair Potentials +pair_style reaxff NULL +pair_coeff * * ffield.reax C H +fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reaxff + +#Neighbor Style +neighbor 2.5 bin +neigh_modify every 10 delay 0 check no + + +## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects +#Initialization +velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all +velocity all create 110 93 dist gaussian sum no mom yes rot yes loop all + +#Setup output +thermo_style custom step temp press etotal vol +thermo 50 + +#Colored thermal bath +fix scapegoat_qtb all nve #NVE does the time integration +fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher +fix methane_qtb all qtb temp 110 damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 +fix methane_qtb all qtb temp 110 damp 200 seed 35082 f_max 0.3 N_f 50 +timestep ${delta_t} +timestep 0.25 +run 1000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12.5 + ghost atom cutoff = 12.5 + binsize = 6.25, bins = 2 2 2 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 82.45 | 82.45 | 82.45 Mbytes + Step Temp Press TotEng Volume + 0 110 -15746.508 -3548.1354 503.73603 + 50 191.27715 -7523.7503 -3530.4179 503.73603 + 100 214.09982 12016.892 -3517.4544 503.73603 + 150 317.38272 3098.2254 -3499.5793 503.73603 + 200 338.76362 -4484.9241 -3490.3649 503.73603 + 250 402.05826 3973.0488 -3474.81 503.73603 + 300 340.80076 11193.4 -3470.8029 503.73603 + 350 556.19747 8086.3266 -3451.5937 503.73603 + 400 566.8737 5499.5505 -3439.2335 503.73603 + 450 643.2883 -8270.5736 -3426.0767 503.73603 + 500 613.09742 -12406.229 -3419.8547 503.73603 + 550 669.28891 -9757.601 -3410.7281 503.73603 + 600 600.66922 10407.403 -3408.3776 503.73603 + 650 573.1485 30971.977 -3405.0744 503.73603 + 700 726.22146 29573.798 -3386.3167 503.73603 + 750 777.22659 13265.88 -3378.8462 503.73603 + 800 652.46476 -9231.9331 -3388.7229 503.73603 + 850 679.18414 -19802.254 -3384.6321 503.73603 + 900 711.60594 -18792.396 -3373.2944 503.73603 + 950 865.79013 -2837.6042 -3363.2971 503.73603 + 1000 884.14995 6160.4875 -3360.6295 503.73603 +Loop time of 7.87 on 1 procs for 1000 steps with 40 atoms + +Performance: 2.745 ns/day, 8.744 hours/ns, 127.065 timesteps/s, 5.083 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 6.3662 | 6.3662 | 6.3662 | 0.0 | 80.89 +Neigh | 0.97757 | 0.97757 | 0.97757 | 0.0 | 12.42 +Comm | 0.013653 | 0.013653 | 0.013653 | 0.0 | 0.17 +Output | 0.00042319 | 0.00042319 | 0.00042319 | 0.0 | 0.01 +Modify | 0.50971 | 0.50971 | 0.50971 | 0.0 | 6.48 +Other | | 0.00248 | | | 0.03 + +Nlocal: 40 ave 40 max 40 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2552 ave 2552 max 2552 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 25110 ave 25110 max 25110 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 25110 +Ave neighs/atom = 627.75 +Neighbor list builds = 100 +Dangerous builds not checked +unfix methane_qtb +unfix scapegoat_qtb +Total wall time: 0:00:07 diff --git a/examples/PACKAGES/qtb/methane_qtb/log.30Nov23.methane_qtb.g++.4 b/examples/PACKAGES/qtb/methane_qtb/log.30Nov23.methane_qtb.g++.4 new file mode 100644 index 0000000000..c68935df87 --- /dev/null +++ b/examples/PACKAGES/qtb/methane_qtb/log.30Nov23.methane_qtb.g++.4 @@ -0,0 +1,174 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +## This script first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. +variable x_rep equal 2 #x-direction replication number +variable y_rep equal 2 #y-direction replication number +variable z_rep equal 2 #z-direction replication number +variable temperature equal 110.0 #Target quantum temperature (K in real units) +variable delta_t equal 0.25 #MD timestep length (fs in real units) +variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) + + +## This part defines units, methane structure, and atomic information +#General +units real +dimension 3 +boundary p p p +atom_style charge + +#Lattice +lattice custom 1.0 a1 3.9783624 0 0 a2 0 3.9783624 0 a3 0 0 3.9783624 basis 0.5 0.5 0.5 basis 0.663 0.663 0.663 basis 0.337 0.337 0.663 basis 0.663 0.337 0.337 basis 0.337 0.663 0.337 +Lattice spacing in x,y,z = 3.9783624 3.9783624 3.9783624 + +#Computational Cell +region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box +create_box 2 simbox +Created orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + 1 by 2 by 2 MPI processor grid +create_atoms 1 box basis 1 1 basis 2 2 basis 3 2 basis 4 2 basis 5 2 +Created 5 atoms + using lattice units in orthogonal box = (0 0 0) to (3.9783624 3.9783624 3.9783624) + create_atoms CPU = 0.000 seconds +replicate ${x_rep} ${y_rep} ${z_rep} +replicate 2 ${y_rep} ${z_rep} +replicate 2 2 ${z_rep} +replicate 2 2 2 +Replication is creating a 2x2x2 = 8 times larger system... + orthogonal box = (0 0 0) to (7.9567248 7.9567248 7.9567248) + 1 by 2 by 2 MPI processor grid + 40 atoms + replicate CPU = 0.000 seconds + +#Atomic Information +mass 1 12.011150 +mass 2 1.007970 + + +## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" +#Pair Potentials +pair_style reaxff NULL +pair_coeff * * ffield.reax C H +fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reaxff + +#Neighbor Style +neighbor 2.5 bin +neigh_modify every 10 delay 0 check no + + +## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects +#Initialization +velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all +velocity all create 110 93 dist gaussian sum no mom yes rot yes loop all + +#Setup output +thermo_style custom step temp press etotal vol +thermo 50 + +#Colored thermal bath +fix scapegoat_qtb all nve #NVE does the time integration +fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher +fix methane_qtb all qtb temp 110 damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 +fix methane_qtb all qtb temp 110 damp 200 seed 35082 f_max 0.3 N_f 50 +timestep ${delta_t} +timestep 0.25 +run 1000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12.5 + ghost atom cutoff = 12.5 + binsize = 6.25, bins = 2 2 2 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 72.47 | 72.47 | 72.47 Mbytes + Step Temp Press TotEng Volume + 0 110 -15746.508 -3548.1354 503.73603 + 50 183.74482 -917.59204 -3534.8518 503.73603 + 100 200.96363 16464.403 -3517.1456 503.73603 + 150 255.33305 14801.963 -3507.7299 503.73603 + 200 328.11626 5119.3618 -3498.0388 503.73603 + 250 356.88626 -11306.151 -3485.1746 503.73603 + 300 284.7363 -25276.091 -3479.4732 503.73603 + 350 434.79382 -23326.29 -3471.7491 503.73603 + 400 414.69602 2800.9047 -3465.7225 503.73603 + 450 464.61242 20775.398 -3449.1675 503.73603 + 500 671.43369 15272.581 -3433.9453 503.73603 + 550 534.01157 -8545.4173 -3427.6672 503.73603 + 600 512.69648 -15904.052 -3417.8071 503.73603 + 650 604.62051 -1777.9242 -3419.4324 503.73603 + 700 650.2196 20108.199 -3415.8902 503.73603 + 750 677.45644 21721.335 -3409.1253 503.73603 + 800 707.98295 171.53756 -3413.4048 503.73603 + 850 740.68522 -23846.627 -3384.7024 503.73603 + 900 739.55514 -22742.841 -3377.091 503.73603 + 950 769.44821 -7060.9388 -3389.817 503.73603 + 1000 987.6246 -0.47618437 -3373.9263 503.73603 +Loop time of 6.80367 on 4 procs for 1000 steps with 40 atoms + +Performance: 3.175 ns/day, 7.560 hours/ns, 146.980 timesteps/s, 5.879 katom-step/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.1801 | 5.3491 | 5.5417 | 6.1 | 78.62 +Neigh | 0.76934 | 0.77281 | 0.77567 | 0.3 | 11.36 +Comm | 0.072213 | 0.26492 | 0.4339 | 27.2 | 3.89 +Output | 0.00032365 | 0.00035547 | 0.00044739 | 0.0 | 0.01 +Modify | 0.41139 | 0.41424 | 0.4179 | 0.4 | 6.09 +Other | | 0.00226 | | | 0.03 + +Nlocal: 10 ave 10 max 10 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 1950 ave 1950 max 1950 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 6434.5 ave 6447 max 6427 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 25738 +Ave neighs/atom = 643.45 +Neighbor list builds = 100 +Dangerous builds not checked +unfix methane_qtb +unfix scapegoat_qtb +Total wall time: 0:00:06 diff --git a/examples/PACKAGES/qtb/methane_qtb/methane_qtb.in b/examples/PACKAGES/qtb/methane_qtb/methane_qtb.in deleted file mode 100644 index e31f0695b9..0000000000 --- a/examples/PACKAGES/qtb/methane_qtb/methane_qtb.in +++ /dev/null @@ -1,70 +0,0 @@ -## This script first constructs a liquid methane structure of a given size. It then uses fix qtb to equilibrate the computational cell to the specified temperature and pressure. -variable x_rep equal 2 #x-direction replication number -variable y_rep equal 2 #y-direction replication number -variable z_rep equal 2 #z-direction replication number -variable temperature equal 110.0 #Target quantum temperature (K in real units) -variable delta_t equal 0.25 #MD timestep length (fs in real units) -variable damp_qtb equal 200 #1/gamma where gamma is the friction coefficient in quantum thermal bath (fs in real units) - - -## This part defines units, methane structure, and atomic information -#General -units real -dimension 3 -boundary p p p -atom_style charge - -#Lattice -lattice custom 1.0 & - a1 3.9783624 0 0 & - a2 0 3.9783624 0 & - a3 0 0 3.9783624 & - & - basis 0.5 0.5 0.5 & - basis 0.663 0.663 0.663 & - basis 0.337 0.337 0.663 & - basis 0.663 0.337 0.337 & - basis 0.337 0.663 0.337 - -#Computational Cell -region simbox block 0 3.9783624 0 3.9783624 0 3.9783624 units box -create_box 2 simbox -create_atoms 1 box & - basis 1 1 & - basis 2 2 & - basis 3 2 & - basis 4 2 & - basis 5 2 -replicate ${x_rep} ${y_rep} ${z_rep} - -#Atomic Information -mass 1 12.011150 -mass 2 1.007970 - - -## This part defines the reax pair potential in methane, force field coefficients are specified in "ffield.reax" -#Pair Potentials -pair_style reax/c NULL -pair_coeff * * ffield.reax C H -fix 0 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c - -#Neighbor Style -neighbor 2.5 bin -neigh_modify every 10 delay 0 check no - - -## This part equilibrates liquid methane to a temperature of ${temperature}(unit temperatureture) with quantum nuclear effects -#Initialization -velocity all create ${temperature} 93 dist gaussian sum no mom yes rot yes loop all - -#Setup output -thermo_style custom step temp press etotal vol -thermo 100 - -#Colored thermal bath -fix scapegoat_qtb all nve #NVE does the time integration -fix methane_qtb all qtb temp ${temperature} damp ${damp_qtb} seed 35082 f_max 0.3 N_f 50 #Change f_max if your Debye frequency is higher -timestep ${delta_t} -run 3000 #750 fs -unfix methane_qtb -unfix scapegoat_qtb diff --git a/examples/amoeba/amoeba_ubiquitin.key b/examples/amoeba/amoeba_ubiquitin.key index 2870d071d4..3d63525258 100644 --- a/examples/amoeba/amoeba_ubiquitin.key +++ b/examples/amoeba/amoeba_ubiquitin.key @@ -12,7 +12,8 @@ ewald ewald-alpha 0.4 pewald-alpha 0.5 ewald-cutoff 7.0 -#pme-grid 60 45 45 pme-grid 60 48 48 -pme-order 5 polar-eps 0.00001 +#pme-grid 15 12 12 +#polar-eps 0.0002 +pme-order 5 diff --git a/examples/qeq/in.qeq.reaxc b/examples/qeq/in.qeq.reaxff similarity index 90% rename from examples/qeq/in.qeq.reaxc rename to examples/qeq/in.qeq.reaxff index 5271c74671..a60cca269e 100644 --- a/examples/qeq/in.qeq.reaxc +++ b/examples/qeq/in.qeq.reaxff @@ -1,19 +1,19 @@ -# This example demonstrates the use of various fix qeq variants with pair reax/c +# This example demonstrates the use of various fix qeq variants with pair reaxff # You can comment in/out various versions below # # 1) Fix qeq/shielded generates the same results compared to fix qeq/reax when -# used with pair_style reax/c, provided that the QEq parameters are the same. +# used with pair_style reaxff, provided that the QEq parameters are the same. # # 2) Fix qeq/point and fix qeq/dynamic generate comparable results provided that # the QEq parameters are the same. These two styles can also be used with -# pair_style reax/c. +# pair_style reaxff. units real atom_style charge read_data data.CHO -pair_style reax/c NULL checkqeq no +pair_style reaxff NULL checkqeq no pair_coeff * * ffield.reax.cho H C O neighbor 1 bin diff --git a/examples/qeq/log.27Nov18.qeq.reaxc.g++.1 b/examples/qeq/log.27Nov18.qeq.reaxc.g++.1 deleted file mode 100644 index c88acc39f2..0000000000 --- a/examples/qeq/log.27Nov18.qeq.reaxc.g++.1 +++ /dev/null @@ -1,116 +0,0 @@ -LAMMPS (27 Nov 2018) - using 1 OpenMP thread(s) per MPI task -# This example demonstrates the use of various fix qeq variants with pair reax/c -# You can comment in/out various versions below -# -# 1) Fix qeq/shielded generates the same results compared to fix qeq/reax when -# used with pair_style reax/c, provided that the QEq parameters are the same. -# -# 2) Fix qeq/point and fix qeq/dynamic generate comparable results provided that -# the QEq parameters are the same. These two styles can also be used with -# pair_style reax/c. - -units real -atom_style charge - -read_data data.CHO - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c NULL checkqeq no -pair_coeff * * ffield.reax.cho H C O -Reading potential file ffield.reax.cho with DATE: 2011-02-18 - -neighbor 1 bin -neigh_modify every 1 delay 0 check yes - -group type1 type 1 -60 atoms in group type1 -compute charge1 type1 property/atom q -compute q1 type1 reduce ave c_charge1 -group type2 type 2 -25 atoms in group type2 -compute charge2 type2 property/atom q -compute q2 type2 reduce ave c_charge2 -group type3 type 3 -20 atoms in group type3 -compute charge3 type3 property/atom q -compute q3 type3 reduce ave c_charge3 -variable qtot equal count(type1)*c_q1+count(type2)*c_q2+count(type3)*c_q3 - -thermo_style custom step pe c_q1 c_q2 c_q3 v_qtot -thermo 1 - -velocity all create 300.0 1281937 -fix 1 all nve - -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq.reax -#fix 2 all qeq/shielded 1 10.0 1e-6 400 param.qeq1 -#fix 2 all qeq/point 1 10.0 1e-6 400 param.qeq1 -#fix 2 all qeq/dynamic 1 10.0 1e-3 100 param.qeq1 - -timestep 0.25 - -run 10 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 11 - ghost atom cutoff = 11 - binsize = 5.5, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 16.65 | 16.65 | 16.65 Mbytes -Step PotEng c_q1 c_q2 c_q3 v_qtot - 0 -10226.557 0.095634063 -0.15658793 -0.091167279 4.4408921e-16 - 1 -10225.799 0.095649584 -0.1566219 -0.091171371 7.1054274e-15 - 2 -10223.656 0.095669731 -0.15666714 -0.091175264 -6.4392935e-15 - 3 -10220.276 0.095691257 -0.15671597 -0.091178813 2.6645353e-15 - 4 -10215.894 0.095714363 -0.15676887 -0.091182006 -3.1086245e-15 - 5 -10210.804 0.095733863 -0.15681398 -0.09118412 6.6613381e-16 - 6 -10205.342 0.095751253 -0.15685427 -0.091185918 -1.110223e-15 - 7 -10199.848 0.095762028 -0.1568795 -0.091186707 8.8817842e-15 - 8 -10194.646 0.095767243 -0.15689184 -0.091186932 -2.4424907e-15 - 9 -10190.016 0.095760528 -0.15687664 -0.091185782 -4.4408921e-16 - 10 -10186.168 0.095748006 -0.15684815 -0.09118383 1.110223e-15 -Loop time of 0.0322483 on 1 procs for 10 steps with 105 atoms - -Performance: 6.698 ns/day, 3.583 hours/ns, 310.094 timesteps/s -99.8% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.026229 | 0.026229 | 0.026229 | 0.0 | 81.34 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 5.2214e-05 | 5.2214e-05 | 5.2214e-05 | 0.0 | 0.16 -Output | 0.00027299 | 0.00027299 | 0.00027299 | 0.0 | 0.85 -Modify | 0.0056667 | 0.0056667 | 0.0056667 | 0.0 | 17.57 -Other | | 2.694e-05 | | | 0.08 - -Nlocal: 105 ave 105 max 105 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 512 ave 512 max 512 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 3417 ave 3417 max 3417 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 3417 -Ave neighs/atom = 32.5429 -Neighbor list builds = 0 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:00 diff --git a/examples/qeq/log.27Nov18.qeq.reaxc.g++.4 b/examples/qeq/log.27Nov18.qeq.reaxc.g++.4 deleted file mode 100644 index c54a99577e..0000000000 --- a/examples/qeq/log.27Nov18.qeq.reaxc.g++.4 +++ /dev/null @@ -1,116 +0,0 @@ -LAMMPS (27 Nov 2018) - using 1 OpenMP thread(s) per MPI task -# This example demonstrates the use of various fix qeq variants with pair reax/c -# You can comment in/out various versions below -# -# 1) Fix qeq/shielded generates the same results compared to fix qeq/reax when -# used with pair_style reax/c, provided that the QEq parameters are the same. -# -# 2) Fix qeq/point and fix qeq/dynamic generate comparable results provided that -# the QEq parameters are the same. These two styles can also be used with -# pair_style reax/c. - -units real -atom_style charge - -read_data data.CHO - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c NULL checkqeq no -pair_coeff * * ffield.reax.cho H C O -Reading potential file ffield.reax.cho with DATE: 2011-02-18 - -neighbor 1 bin -neigh_modify every 1 delay 0 check yes - -group type1 type 1 -60 atoms in group type1 -compute charge1 type1 property/atom q -compute q1 type1 reduce ave c_charge1 -group type2 type 2 -25 atoms in group type2 -compute charge2 type2 property/atom q -compute q2 type2 reduce ave c_charge2 -group type3 type 3 -20 atoms in group type3 -compute charge3 type3 property/atom q -compute q3 type3 reduce ave c_charge3 -variable qtot equal count(type1)*c_q1+count(type2)*c_q2+count(type3)*c_q3 - -thermo_style custom step pe c_q1 c_q2 c_q3 v_qtot -thermo 1 - -velocity all create 300.0 1281937 -fix 1 all nve - -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq.reax -#fix 2 all qeq/shielded 1 10.0 1e-6 400 param.qeq1 -#fix 2 all qeq/point 1 10.0 1e-6 400 param.qeq1 -#fix 2 all qeq/dynamic 1 10.0 1e-3 100 param.qeq1 - -timestep 0.25 - -run 10 -Neighbor list info ... - update every 1 steps, delay 0 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 11 - ghost atom cutoff = 11 - binsize = 5.5, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 10.83 | 11.69 | 12.52 Mbytes -Step PotEng c_q1 c_q2 c_q3 v_qtot - 0 -10226.557 0.095633919 -0.15658765 -0.091167194 1.7763568e-15 - 1 -10225.799 0.0956503 -0.15662357 -0.09117143 2.8865799e-15 - 2 -10223.656 0.095669684 -0.15666698 -0.091175327 1.110223e-15 - 3 -10220.276 0.095691296 -0.15671615 -0.091178696 0 - 4 -10215.894 0.09571384 -0.15676787 -0.091181678 8.8817842e-16 - 5 -10210.804 0.095734178 -0.15681468 -0.09118418 1.3322676e-15 - 6 -10205.342 0.095751126 -0.15685409 -0.091185769 4.4408921e-16 - 7 -10199.848 0.095762403 -0.15688037 -0.091186751 0 - 8 -10194.646 0.095766449 -0.15689014 -0.091186673 -4.4408921e-16 - 9 -10190.016 0.095761078 -0.15687818 -0.09118551 -4.4408921e-16 - 10 -10186.168 0.095747223 -0.15684634 -0.091183742 0 -Loop time of 0.0185181 on 4 procs for 10 steps with 105 atoms - -Performance: 11.664 ns/day, 2.058 hours/ns, 540.011 timesteps/s -92.5% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 0.0097179 | 0.01078 | 0.012052 | 0.8 | 58.21 -Neigh | 0 | 0 | 0 | 0.0 | 0.00 -Comm | 0.00041604 | 0.0017492 | 0.0028496 | 2.1 | 9.45 -Output | 0.00041103 | 0.00046283 | 0.00051498 | 0.0 | 2.50 -Modify | 0.0051849 | 0.0052357 | 0.0052917 | 0.1 | 28.27 -Other | | 0.0002902 | | | 1.57 - -Nlocal: 26.25 ave 35 max 15 min -Histogram: 1 0 0 1 0 0 0 0 0 2 -Nghost: 300 ave 357 max 239 min -Histogram: 2 0 0 0 0 0 0 0 0 2 -Neighs: 1025.25 ave 1468 max 405 min -Histogram: 1 0 0 0 1 0 0 0 0 2 - -Total # of neighbors = 4101 -Ave neighs/atom = 39.0571 -Neighbor list builds = 0 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:00 diff --git a/examples/qeq/log.30Nov23.reaxff.g++.1 b/examples/qeq/log.30Nov23.reaxff.g++.1 new file mode 100644 index 0000000000..c79d9fa662 --- /dev/null +++ b/examples/qeq/log.30Nov23.reaxff.g++.1 @@ -0,0 +1,146 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# This example demonstrates the use of various fix qeq variants with pair reaxff +# You can comment in/out various versions below +# +# 1) Fix qeq/shielded generates the same results compared to fix qeq/reax when +# used with pair_style reaxff, provided that the QEq parameters are the same. +# +# 2) Fix qeq/point and fix qeq/dynamic generate comparable results provided that +# the QEq parameters are the same. These two styles can also be used with +# pair_style reaxff. + +units real +atom_style charge + +read_data data.CHO +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff NULL checkqeq no +pair_coeff * * ffield.reax.cho H C O +Reading potential file ffield.reax.cho with DATE: 2011-02-18 + +neighbor 1 bin +neigh_modify every 1 delay 0 check yes + +group type1 type 1 +60 atoms in group type1 +compute charge1 type1 property/atom q +compute q1 type1 reduce ave c_charge1 +group type2 type 2 +25 atoms in group type2 +compute charge2 type2 property/atom q +compute q2 type2 reduce ave c_charge2 +group type3 type 3 +20 atoms in group type3 +compute charge3 type3 property/atom q +compute q3 type3 reduce ave c_charge3 +variable qtot equal count(type1)*c_q1+count(type2)*c_q2+count(type3)*c_q3 + +thermo_style custom step pe c_q1 c_q2 c_q3 v_qtot +thermo 1 + +velocity all create 300.0 1281937 +fix 1 all nve + +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq.reax +#fix 2 all qeq/shielded 1 10.0 1e-6 400 param.qeq1 +#fix 2 all qeq/point 1 10.0 1e-6 400 param.qeq1 +#fix 2 all qeq/dynamic 1 10.0 1e-3 100 param.qeq1 + +timestep 0.25 + +run 10 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 14.54 | 14.54 | 14.54 Mbytes + Step PotEng c_q1 c_q2 c_q3 v_qtot + 0 -10226.557 0.095633909 -0.15658753 -0.091167311 -2.8865799e-15 + 1 -10225.799 0.095650157 -0.15662321 -0.091171465 5.3290705e-15 + 2 -10223.656 0.095669727 -0.15666713 -0.091175264 -2.8865799e-15 + 3 -10220.276 0.095691262 -0.15671593 -0.09117887 4.6629367e-15 + 4 -10215.894 0.095714037 -0.15676816 -0.091181914 4.4408921e-16 + 5 -10210.804 0.095733939 -0.15681378 -0.091184589 -3.9968029e-15 + 6 -10205.342 0.09575102 -0.15685378 -0.091185835 -3.5527137e-15 + 7 -10199.848 0.095762356 -0.1568802 -0.091186815 2.220446e-15 + 8 -10194.646 0.095766731 -0.15689071 -0.091186805 -3.9968029e-15 + 9 -10190.016 0.095761083 -0.15687817 -0.091185537 -2.6645353e-15 + 10 -10186.168 0.095747444 -0.15684695 -0.091183644 -1.5543122e-15 +Loop time of 0.013327 on 1 procs for 10 steps with 105 atoms + +Performance: 16.208 ns/day, 1.481 hours/ns, 750.359 timesteps/s, 78.788 katom-step/s +97.3% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.010565 | 0.010565 | 0.010565 | 0.0 | 79.28 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 2.3272e-05 | 2.3272e-05 | 2.3272e-05 | 0.0 | 0.17 +Output | 0.00023198 | 0.00023198 | 0.00023198 | 0.0 | 1.74 +Modify | 0.0024913 | 0.0024913 | 0.0024913 | 0.0 | 18.69 +Other | | 1.529e-05 | | | 0.11 + +Nlocal: 105 ave 105 max 105 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 512 ave 512 max 512 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3417 ave 3417 max 3417 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3417 +Ave neighs/atom = 32.542857 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/qeq/log.30Nov23.reaxff.g++.4 b/examples/qeq/log.30Nov23.reaxff.g++.4 new file mode 100644 index 0000000000..6f58a13a7f --- /dev/null +++ b/examples/qeq/log.30Nov23.reaxff.g++.4 @@ -0,0 +1,146 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# This example demonstrates the use of various fix qeq variants with pair reaxff +# You can comment in/out various versions below +# +# 1) Fix qeq/shielded generates the same results compared to fix qeq/reax when +# used with pair_style reaxff, provided that the QEq parameters are the same. +# +# 2) Fix qeq/point and fix qeq/dynamic generate comparable results provided that +# the QEq parameters are the same. These two styles can also be used with +# pair_style reaxff. + +units real +atom_style charge + +read_data data.CHO +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.000 seconds + +pair_style reaxff NULL checkqeq no +pair_coeff * * ffield.reax.cho H C O +Reading potential file ffield.reax.cho with DATE: 2011-02-18 + +neighbor 1 bin +neigh_modify every 1 delay 0 check yes + +group type1 type 1 +60 atoms in group type1 +compute charge1 type1 property/atom q +compute q1 type1 reduce ave c_charge1 +group type2 type 2 +25 atoms in group type2 +compute charge2 type2 property/atom q +compute q2 type2 reduce ave c_charge2 +group type3 type 3 +20 atoms in group type3 +compute charge3 type3 property/atom q +compute q3 type3 reduce ave c_charge3 +variable qtot equal count(type1)*c_q1+count(type2)*c_q2+count(type3)*c_q3 + +thermo_style custom step pe c_q1 c_q2 c_q3 v_qtot +thermo 1 + +velocity all create 300.0 1281937 +fix 1 all nve + +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq.reax +#fix 2 all qeq/shielded 1 10.0 1e-6 400 param.qeq1 +#fix 2 all qeq/point 1 10.0 1e-6 400 param.qeq1 +#fix 2 all qeq/dynamic 1 10.0 1e-3 100 param.qeq1 + +timestep 0.25 + +run 10 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 9.845 | 10.57 | 11.28 Mbytes + Step PotEng c_q1 c_q2 c_q3 v_qtot + 0 -10226.557 0.095633904 -0.15658758 -0.091167237 -8.8817842e-16 + 1 -10225.799 0.095650278 -0.1566235 -0.091171458 -1.7763568e-15 + 2 -10223.656 0.095669806 -0.15666728 -0.091175321 0 + 3 -10220.276 0.095691215 -0.15671588 -0.091178792 1.7763568e-15 + 4 -10215.894 0.09571392 -0.15676795 -0.091181826 1.7763568e-15 + 5 -10210.804 0.095734058 -0.15681436 -0.091184227 1.3322676e-15 + 6 -10205.342 0.095751113 -0.15685409 -0.091185731 -4.4408921e-16 + 7 -10199.848 0.095762524 -0.15688062 -0.091186803 -1.3322676e-15 + 8 -10194.646 0.095766647 -0.15689045 -0.091186875 2.8865799e-15 + 9 -10190.016 0.095760978 -0.15687772 -0.09118579 -4.4408921e-16 + 10 -10186.168 0.095747037 -0.15684594 -0.091183687 -1.5543122e-15 +Loop time of 0.00732332 on 4 procs for 10 steps with 105 atoms + +Performance: 29.495 ns/day, 0.814 hours/ns, 1365.500 timesteps/s, 143.378 katom-step/s +99.2% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0033186 | 0.0038166 | 0.0041063 | 0.5 | 52.12 +Neigh | 0 | 0 | 0 | 0.0 | 0.00 +Comm | 0.0002671 | 0.00057126 | 0.0010608 | 0.0 | 7.80 +Output | 0.00019157 | 0.0002237 | 0.00028058 | 0.0 | 3.05 +Modify | 0.0026446 | 0.0026528 | 0.0026604 | 0.0 | 36.22 +Other | | 5.9e-05 | | | 0.81 + +Nlocal: 26.25 ave 35 max 15 min +Histogram: 1 0 0 1 0 0 0 0 0 2 +Nghost: 300 ave 357 max 239 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 1025.25 ave 1468 max 405 min +Histogram: 1 0 0 0 1 0 0 0 0 2 + +Total # of neighbors = 4101 +Ave neighs/atom = 39.057143 +Neighbor list builds = 0 +Dangerous builds = 0 +Total wall time: 0:00:00 diff --git a/examples/reaxff/AB/in.AB b/examples/reaxff/AB/in.AB index 5f19b30b6c..30d96f2622 100644 --- a/examples/reaxff/AB/in.AB +++ b/examples/reaxff/AB/in.AB @@ -1,23 +1,23 @@ # REAX potential for Nitroamines system # ..... -units real +units real -atom_style charge -read_data data.AB +atom_style charge +read_data data.AB -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.AB H B N +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.AB H B N -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 +thermo 100 +#dump 1 all atom 30 dump.reax.ab -#dump 1 all atom 30 dump.reax.ab - -run 3000 +run 2000 diff --git a/examples/reaxff/AB/lmp_control b/examples/reaxff/AB/lmp_control index c5d98968a5..b97ad8a67f 100644 --- a/examples/reaxff/AB/lmp_control +++ b/examples/reaxff/AB/lmp_control @@ -1,17 +1,8 @@ -simulation_name AB_example ! output files will carry this name + their specific ext -tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 +tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A -hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs -thb_cutoff 0.001 ! cutoff value for three body interactions +nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A +hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs +thb_cutoff 0.001 ! cutoff value for three body interactions -write_freq 1 ! write trajectory after so many steps -traj_title AB ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file diff --git a/examples/reaxff/AB/log.30Nov23.AB.g++.1 b/examples/reaxff/AB/log.30Nov23.AB.g++.1 new file mode 100644 index 0000000000..e966977f54 --- /dev/null +++ b/examples/reaxff/AB/log.30Nov23.AB.g++.1 @@ -0,0 +1,131 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for Nitroamines system +# ..... + +units real + +atom_style charge +read_data data.AB +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 104 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.AB H B N +Reading potential file ffield.reax.AB with DATE: 2011-02-18 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 +#dump 1 all atom 30 dump.reax.ab + +run 2000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 16.54 | 16.54 | 16.54 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -8505.1816 0 -8505.1816 -673.36566 + 100 83.873108 -8497.003 0 -8471.252 -609.71138 + 200 125.22992 -8479.8879 0 -8441.4394 -1069.4072 + 300 202.34273 -8479.1321 0 -8417.0081 -707.7946 + 400 260.53055 -8476.7914 0 -8396.8025 221.10403 + 500 282.47043 -8466.8576 0 -8380.1326 -223.61988 + 600 288.72043 -8452.9503 0 -8364.3064 681.87761 + 700 379.03381 -8467.4869 0 -8351.1146 921.82426 + 800 382.0856 -8458.717 0 -8341.4078 253.69164 + 900 380.10802 -8449.5745 0 -8332.8725 1199.5539 + 1000 377.60669 -8440.3419 0 -8324.4078 -365.02585 + 1100 372.89451 -8428.8743 0 -8314.387 -1401.9593 + 1200 392.77958 -8426.3492 0 -8305.7567 -572.78319 + 1300 429.04209 -8430.6839 0 -8298.958 -409.55236 + 1400 471.52489 -8438.2785 0 -8293.5093 -16.649651 + 1500 404.49399 -8411.1192 0 -8286.93 338.99191 + 1600 443.77567 -8418.1237 0 -8281.8741 -774.22575 + 1700 479.8234 -8424.6901 0 -8277.3731 65.260334 + 1800 386.73299 -8390.8969 0 -8272.1608 70.076616 + 1900 431.57275 -8401.0671 0 -8268.5641 30.882406 + 2000 454.96043 -8406.0467 0 -8266.3632 728.1499 +Loop time of 2.35094 on 1 procs for 2000 steps with 104 atoms + +Performance: 18.376 ns/day, 1.306 hours/ns, 850.725 timesteps/s, 88.475 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.9254 | 1.9254 | 1.9254 | 0.0 | 81.90 +Neigh | 0.10479 | 0.10479 | 0.10479 | 0.0 | 4.46 +Comm | 0.0067523 | 0.0067523 | 0.0067523 | 0.0 | 0.29 +Output | 0.0005375 | 0.0005375 | 0.0005375 | 0.0 | 0.02 +Modify | 0.31152 | 0.31152 | 0.31152 | 0.0 | 13.25 +Other | | 0.001934 | | | 0.08 + +Nlocal: 104 ave 104 max 104 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 710 ave 710 max 710 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3076 ave 3076 max 3076 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3076 +Ave neighs/atom = 29.576923 +Neighbor list builds = 200 +Dangerous builds not checked +Total wall time: 0:00:02 diff --git a/examples/reaxff/AB/log.30Nov23.AB.g++.4 b/examples/reaxff/AB/log.30Nov23.AB.g++.4 new file mode 100644 index 0000000000..5b3ae33fbe --- /dev/null +++ b/examples/reaxff/AB/log.30Nov23.AB.g++.4 @@ -0,0 +1,131 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for Nitroamines system +# ..... + +units real + +atom_style charge +read_data data.AB +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 104 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.AB H B N +Reading potential file ffield.reax.AB with DATE: 2011-02-18 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 +#dump 1 all atom 30 dump.reax.ab + +run 2000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 11.06 | 11.68 | 11.96 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -8505.1816 0 -8505.1816 -673.36566 + 100 83.873123 -8497.0031 0 -8471.252 -609.71119 + 200 125.23001 -8479.8879 0 -8441.4394 -1069.4122 + 300 202.34219 -8479.1319 0 -8417.0081 -707.82246 + 400 260.52726 -8476.7906 0 -8396.8026 221.14446 + 500 282.4624 -8466.8556 0 -8380.133 -223.17501 + 600 288.8059 -8452.9729 0 -8364.3028 679.38441 + 700 378.87007 -8467.429 0 -8351.107 920.99401 + 800 382.10004 -8458.7194 0 -8341.4058 256.06383 + 900 379.69698 -8449.4416 0 -8332.8657 1266.1715 + 1000 379.63496 -8440.9584 0 -8324.4015 -604.987 + 1100 372.82256 -8428.7507 0 -8314.2854 -1236.8451 + 1200 397.12809 -8427.4286 0 -8305.501 -356.42394 + 1300 413.36951 -8425.3861 0 -8298.472 -47.619729 + 1400 428.68835 -8424.4328 0 -8292.8154 -812.52975 + 1500 403.59408 -8411.0829 0 -8287.1701 71.054401 + 1600 448.76276 -8419.8186 0 -8282.0379 -339.19148 + 1700 450.87444 -8416.1981 0 -8277.769 -44.043208 + 1800 485.33509 -8421.3776 0 -8272.3684 -848.94941 + 1900 481.36374 -8416.1719 0 -8268.382 -282.62675 + 2000 437.25967 -8398.9233 0 -8264.6743 -217.40762 +Loop time of 1.44368 on 4 procs for 2000 steps with 104 atoms + +Performance: 29.924 ns/day, 0.802 hours/ns, 1385.350 timesteps/s, 144.076 katom-step/s +99.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.77999 | 0.87212 | 0.96576 | 8.1 | 60.41 +Neigh | 0.054058 | 0.059726 | 0.06287 | 1.4 | 4.14 +Comm | 0.031767 | 0.12609 | 0.21802 | 21.3 | 8.73 +Output | 0.00041377 | 0.00045661 | 0.00058001 | 0.0 | 0.03 +Modify | 0.3805 | 0.38348 | 0.3894 | 0.6 | 26.56 +Other | | 0.001808 | | | 0.13 + +Nlocal: 26 ave 34 max 14 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Nghost: 429.25 ave 457 max 386 min +Histogram: 1 0 0 0 0 1 0 0 0 2 +Neighs: 922.5 ave 1238 max 496 min +Histogram: 1 0 0 0 1 0 0 0 1 1 + +Total # of neighbors = 3690 +Ave neighs/atom = 35.480769 +Neighbor list builds = 200 +Dangerous builds not checked +Total wall time: 0:00:01 diff --git a/examples/reaxff/AB/log.8Mar18.AB.g++.1 b/examples/reaxff/AB/log.8Mar18.AB.g++.1 deleted file mode 100644 index 065b1a1e67..0000000000 --- a/examples/reaxff/AB/log.8Mar18.AB.g++.1 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for Nitroamines system -# ..... - -units real - -atom_style charge -read_data data.AB - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 104 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.AB H B N -Reading potential file ffield.reax.AB with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.ab - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 19.3 | 19.3 | 19.3 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -8505.1816 0 -8505.1816 -673.36566 - 3000 478.18595 -8398.4168 0 -8251.6025 1452.6935 -Loop time of 14.3573 on 1 procs for 3000 steps with 104 atoms - -Performance: 4.513 ns/day, 5.318 hours/ns, 208.952 timesteps/s -96.6% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 12.709 | 12.709 | 12.709 | 0.0 | 88.52 -Neigh | 0.36804 | 0.36804 | 0.36804 | 0.0 | 2.56 -Comm | 0.022419 | 0.022419 | 0.022419 | 0.0 | 0.16 -Output | 2.8133e-05 | 2.8133e-05 | 2.8133e-05 | 0.0 | 0.00 -Modify | 1.2513 | 1.2513 | 1.2513 | 0.0 | 8.72 -Other | | 0.006263 | | | 0.04 - -Nlocal: 104 ave 104 max 104 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 694 ave 694 max 694 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2866 ave 2866 max 2866 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2866 -Ave neighs/atom = 27.5577 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:14 diff --git a/examples/reaxff/AB/log.8Mar18.AB.g++.4 b/examples/reaxff/AB/log.8Mar18.AB.g++.4 deleted file mode 100644 index 1e02ec5725..0000000000 --- a/examples/reaxff/AB/log.8Mar18.AB.g++.4 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for Nitroamines system -# ..... - -units real - -atom_style charge -read_data data.AB - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 104 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.AB H B N -Reading potential file ffield.reax.AB with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.ab - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 12.38 | 13.22 | 13.64 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -8505.1816 0 -8505.1816 -673.36566 - 3000 555.17702 -8426.5541 0 -8256.1017 219.26856 -Loop time of 9.03521 on 4 procs for 3000 steps with 104 atoms - -Performance: 7.172 ns/day, 3.346 hours/ns, 332.034 timesteps/s -94.6% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 7.0347 | 7.0652 | 7.1049 | 1.0 | 78.20 -Neigh | 0.18481 | 0.20727 | 0.22108 | 3.0 | 2.29 -Comm | 0.075175 | 0.11496 | 0.14517 | 7.4 | 1.27 -Output | 2.2888e-05 | 2.569e-05 | 3.1948e-05 | 0.0 | 0.00 -Modify | 1.6286 | 1.6421 | 1.6649 | 1.1 | 18.17 -Other | | 0.005646 | | | 0.06 - -Nlocal: 26 ave 35 max 13 min -Histogram: 1 0 0 0 0 1 0 0 1 1 -Nghost: 420.25 ave 454 max 370 min -Histogram: 1 0 0 0 0 1 0 0 1 1 -Neighs: 862.5 ave 1178 max 444 min -Histogram: 1 0 0 0 1 0 0 0 1 1 - -Total # of neighbors = 3450 -Ave neighs/atom = 33.1731 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:09 diff --git a/examples/reaxff/AuO/in.AuO b/examples/reaxff/AuO/in.AuO index 90ae812f7d..4e5162d620 100644 --- a/examples/reaxff/AuO/in.AuO +++ b/examples/reaxff/AuO/in.AuO @@ -1,23 +1,25 @@ # REAX potential for AuO system # ..... -units real +units real -atom_style charge -read_data data.AuO +atom_style charge +read_data data.AuO -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.AuO O Au +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.AuO O Au -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 -#dump 1 all atom 30 dump.reax.auo +thermo 5 -run 100 +#dump 1 all atom 30 dump.reax.auo + +run 100 diff --git a/examples/reaxff/AuO/lmp_control b/examples/reaxff/AuO/lmp_control index d24ae0a055..ecf22940b7 100644 --- a/examples/reaxff/AuO/lmp_control +++ b/examples/reaxff/AuO/lmp_control @@ -1,17 +1,7 @@ -simulation_name AuO_example ! output files will carry this name + their specific ext +tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 +nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A +hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs +thb_cutoff 0.001 ! cutoff value for three body interactions -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A -hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs -thb_cutoff 0.001 ! cutoff value for three body interactions - -write_freq 1 ! write trajectory after so many steps -traj_title AuO ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file diff --git a/examples/reaxff/AuO/log.30Nov23.AuO.g++.1 b/examples/reaxff/AuO/log.30Nov23.AuO.g++.1 new file mode 100644 index 0000000000..8896ef1015 --- /dev/null +++ b/examples/reaxff/AuO/log.30Nov23.AuO.g++.1 @@ -0,0 +1,132 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for AuO system +# ..... + +units real + +atom_style charge +read_data data.AuO +Reading data file ... + orthogonal box = (0 0 0) to (26.15618 21.54252 24.00246) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 960 atoms + read_data CPU = 0.004 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.AuO O Au +Reading potential file ffield.reax.AuO with DATE: 2011-02-18 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 + +thermo 5 + +#dump 1 all atom 30 dump.reax.auo + +run 100 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 4 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 129.2 | 129.2 | 129.2 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -72201.743 0 -72201.743 -166.19508 + 5 6.5398577 -72202.679 0 -72183.984 71.658901 + 10 13.280881 -72204.445 0 -72166.481 515.28836 + 15 19.951637 -72206.24 0 -72149.206 886.438 + 20 26.441301 -72207.78 0 -72132.195 1549.914 + 25 32.580167 -72208.5 0 -72115.367 2309.8004 + 30 38.264935 -72208.14 0 -72098.756 3148.7379 + 35 43.433009 -72206.523 0 -72082.366 3853.4389 + 40 48.028176 -72203.472 0 -72066.178 4830.1846 + 45 52.019459 -72198.85 0 -72050.147 5881.5166 + 50 55.407353 -72192.638 0 -72034.251 6996.89 + 55 58.218407 -72184.89 0 -72018.467 8191.8057 + 60 60.499102 -72175.717 0 -72002.774 9470.0601 + 65 62.309031 -72165.271 0 -71987.155 10831.309 + 70 63.72857 -72153.749 0 -71971.575 12270.345 + 75 64.847533 -72141.43 0 -71956.057 13791.775 + 80 65.755809 -72128.548 0 -71940.579 15397.406 + 85 66.547696 -72115.362 0 -71925.129 17100.883 + 90 67.309412 -72102.119 0 -71909.708 18888.699 + 95 68.120206 -72089.043 0 -71894.315 20757.038 + 100 69.043359 -72076.31 0 -71878.942 22702.463 +Loop time of 5.72003 on 1 procs for 100 steps with 960 atoms + +Performance: 0.378 ns/day, 63.556 hours/ns, 17.482 timesteps/s, 16.783 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.2903 | 4.2903 | 4.2903 | 0.0 | 75.00 +Neigh | 0.31194 | 0.31194 | 0.31194 | 0.0 | 5.45 +Comm | 0.0034139 | 0.0034139 | 0.0034139 | 0.0 | 0.06 +Output | 0.0005041 | 0.0005041 | 0.0005041 | 0.0 | 0.01 +Modify | 1.1134 | 1.1134 | 1.1134 | 0.0 | 19.46 +Other | | 0.0005147 | | | 0.01 + +Nlocal: 960 ave 960 max 960 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 6708 ave 6708 max 6708 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 369128 ave 369128 max 369128 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 369128 +Ave neighs/atom = 384.50833 +Neighbor list builds = 10 +Dangerous builds not checked +Total wall time: 0:00:05 diff --git a/examples/reaxff/AuO/log.30Nov23.AuO.g++.4 b/examples/reaxff/AuO/log.30Nov23.AuO.g++.4 new file mode 100644 index 0000000000..ba3b81ea1b --- /dev/null +++ b/examples/reaxff/AuO/log.30Nov23.AuO.g++.4 @@ -0,0 +1,132 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for AuO system +# ..... + +units real + +atom_style charge +read_data data.AuO +Reading data file ... + orthogonal box = (0 0 0) to (26.15618 21.54252 24.00246) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 960 atoms + read_data CPU = 0.002 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.AuO O Au +Reading potential file ffield.reax.AuO with DATE: 2011-02-18 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 + +thermo 5 + +#dump 1 all atom 30 dump.reax.auo + +run 100 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 4 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 71.65 | 71.65 | 71.65 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -72201.743 0 -72201.743 -166.19214 + 5 6.5398578 -72202.679 0 -72183.984 71.651708 + 10 13.280883 -72204.445 0 -72166.481 515.29601 + 15 19.951639 -72206.24 0 -72149.206 886.53083 + 20 26.441291 -72207.78 0 -72132.195 1550.0745 + 25 32.580153 -72208.5 0 -72115.366 2309.9393 + 30 38.264928 -72208.14 0 -72098.756 3148.6036 + 35 43.432999 -72206.523 0 -72082.365 3853.6963 + 40 48.028158 -72203.472 0 -72066.179 4830.1407 + 45 52.019436 -72198.85 0 -72050.147 5881.1916 + 50 55.407331 -72192.638 0 -72034.251 6996.6661 + 55 58.218406 -72184.89 0 -72018.467 8191.9075 + 60 60.499115 -72175.716 0 -72002.774 9470.4845 + 65 62.309058 -72165.271 0 -71987.154 10831.926 + 70 63.728581 -72153.75 0 -71971.575 12269.823 + 75 64.847544 -72141.431 0 -71956.058 13791.586 + 80 65.755816 -72128.549 0 -71940.579 15396.822 + 85 66.547694 -72115.363 0 -71925.13 17100.27 + 90 67.309401 -72102.119 0 -71909.708 18888.633 + 95 68.120175 -72089.042 0 -71894.314 20757.565 + 100 69.043333 -72076.31 0 -71878.943 22701.953 +Loop time of 2.52972 on 4 procs for 100 steps with 960 atoms + +Performance: 0.854 ns/day, 28.108 hours/ns, 39.530 timesteps/s, 37.949 katom-step/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.9911 | 2.0015 | 2.0084 | 0.5 | 79.12 +Neigh | 0.16044 | 0.16105 | 0.16228 | 0.2 | 6.37 +Comm | 0.018211 | 0.025417 | 0.03612 | 4.2 | 1.00 +Output | 0.00039837 | 0.00043613 | 0.00054664 | 0.0 | 0.02 +Modify | 0.34008 | 0.34101 | 0.34154 | 0.1 | 13.48 +Other | | 0.0003489 | | | 0.01 + +Nlocal: 240 ave 240 max 240 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 3981 ave 3981 max 3981 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 105979 ave 105979 max 105979 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 423916 +Ave neighs/atom = 441.57917 +Neighbor list builds = 10 +Dangerous builds not checked +Total wall time: 0:00:02 diff --git a/examples/reaxff/AuO/log.8Mar18.AuO.g++.1 b/examples/reaxff/AuO/log.8Mar18.AuO.g++.1 deleted file mode 100644 index 3c609ac023..0000000000 --- a/examples/reaxff/AuO/log.8Mar18.AuO.g++.1 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for AuO system -# ..... - -units real - -atom_style charge -read_data data.AuO - orthogonal box = (0 0 0) to (26.1562 21.5425 24.0025) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 960 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.AuO O Au -Reading potential file ffield.reax.AuO with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.auo - -run 100 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 4 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 157.6 | 157.6 | 157.6 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -72201.743 0 -72201.743 -166.19482 - 100 69.043331 -72076.309 0 -71878.942 22702.89 -Loop time of 18.4369 on 1 procs for 100 steps with 960 atoms - -Performance: 0.117 ns/day, 204.854 hours/ns, 5.424 timesteps/s -98.7% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 15.373 | 15.373 | 15.373 | 0.0 | 83.38 -Neigh | 0.58774 | 0.58774 | 0.58774 | 0.0 | 3.19 -Comm | 0.0079026 | 0.0079026 | 0.0079026 | 0.0 | 0.04 -Output | 3.171e-05 | 3.171e-05 | 3.171e-05 | 0.0 | 0.00 -Modify | 2.4665 | 2.4665 | 2.4665 | 0.0 | 13.38 -Other | | 0.001366 | | | 0.01 - -Nlocal: 960 ave 960 max 960 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 6708 ave 6708 max 6708 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 369128 ave 369128 max 369128 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 369128 -Ave neighs/atom = 384.508 -Neighbor list builds = 10 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:18 diff --git a/examples/reaxff/AuO/log.8Mar18.AuO.g++.4 b/examples/reaxff/AuO/log.8Mar18.AuO.g++.4 deleted file mode 100644 index ed98e1f2f4..0000000000 --- a/examples/reaxff/AuO/log.8Mar18.AuO.g++.4 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for AuO system -# ..... - -units real - -atom_style charge -read_data data.AuO - orthogonal box = (0 0 0) to (26.1562 21.5425 24.0025) - 2 by 1 by 2 MPI processor grid - reading atoms ... - 960 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.AuO O Au -Reading potential file ffield.reax.AuO with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.auo - -run 100 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 4 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 87.17 | 87.17 | 87.17 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -72201.743 0 -72201.743 -166.2027 - 100 69.043379 -72076.31 0 -71878.943 22701.771 -Loop time of 8.44797 on 4 procs for 100 steps with 960 atoms - -Performance: 0.256 ns/day, 93.866 hours/ns, 11.837 timesteps/s -96.5% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 7.3702 | 7.3757 | 7.3879 | 0.3 | 87.31 -Neigh | 0.28875 | 0.29449 | 0.29747 | 0.6 | 3.49 -Comm | 0.015008 | 0.027055 | 0.032681 | 4.3 | 0.32 -Output | 2.4319e-05 | 2.8551e-05 | 3.8624e-05 | 0.0 | 0.00 -Modify | 0.74721 | 0.74985 | 0.75539 | 0.4 | 8.88 -Other | | 0.0008975 | | | 0.01 - -Nlocal: 240 ave 240 max 240 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 3981 ave 3981 max 3981 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 105979 ave 105979 max 105979 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 423916 -Ave neighs/atom = 441.579 -Neighbor list builds = 10 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:08 diff --git a/examples/reaxff/CHO/in.CHO b/examples/reaxff/CHO/in.CHO index 668be5eee0..3baa885ae5 100644 --- a/examples/reaxff/CHO/in.CHO +++ b/examples/reaxff/CHO/in.CHO @@ -1,23 +1,24 @@ # REAX potential for CHO system # ..... -units real +units real -atom_style charge -read_data data.CHO +atom_style charge +read_data data.CHO -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.cho H C O +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.cho H C O -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 -#dump 1 all atom 30 dump.reax.cho +thermo 100 +#dump 1 all atom 30 dump.reax.cho -run 3000 +run 3000 diff --git a/examples/reaxff/CHO/lmp_control b/examples/reaxff/CHO/lmp_control index 6db169bf70..b97ad8a67f 100644 --- a/examples/reaxff/CHO/lmp_control +++ b/examples/reaxff/CHO/lmp_control @@ -1,17 +1,8 @@ -simulation_name CHO_example ! output files will carry this name + their specific ext -tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 +tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A -hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs -thb_cutoff 0.001 ! cutoff value for three body interactions +nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A +hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs +thb_cutoff 0.001 ! cutoff value for three body interactions -write_freq 1 ! write trajectory after so many steps -traj_title CHO ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file diff --git a/examples/reaxff/CHO/log.30Nov23.CHO.g++.1 b/examples/reaxff/CHO/log.30Nov23.CHO.g++.1 new file mode 100644 index 0000000000..de8da4edad --- /dev/null +++ b/examples/reaxff/CHO/log.30Nov23.CHO.g++.1 @@ -0,0 +1,141 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for CHO system +# ..... + +units real + +atom_style charge +read_data data.CHO +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.cho H C O +Reading potential file ffield.reax.cho with DATE: 2011-02-18 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 + +thermo 100 +#dump 1 all atom 30 dump.reax.cho + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 16.04 | 16.04 | 16.04 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -10226.557 0 -10226.557 -106.09742 + 100 54.051992 -10207.393 0 -10190.636 -291.38729 + 200 134.81151 -10200.411 0 -10158.619 -1637.1719 + 300 140.9118 -10177.136 0 -10133.452 -1668.5701 + 400 254.70109 -10189.927 0 -10110.969 -2522.3829 + 500 228.22383 -10162.396 0 -10091.646 404.00518 + 600 393.48635 -10197.284 0 -10075.301 394.0729 + 700 305.82675 -10156.708 0 -10061.9 362.69731 + 800 375.9566 -10170.288 0 -10053.74 -664.01093 + 900 361.59639 -10155.849 0 -10043.752 458.54613 + 1000 445.46183 -10176.602 0 -10038.507 251.38181 + 1100 475.46673 -10180.119 0 -10032.723 839.6649 + 1200 406.78262 -10155.498 0 -10029.394 62.559824 + 1300 461.0773 -10167.129 0 -10024.193 266.27742 + 1400 408.15446 -10148.62 0 -10022.091 -1187.1776 + 1500 514.43707 -10178.34 0 -10018.863 -616.2329 + 1600 432.19202 -10151.16 0 -10017.179 -677.67834 + 1700 521.01474 -10175.583 0 -10014.066 97.420991 + 1800 409.79407 -10138.825 0 -10011.787 1883.8131 + 1900 481.84667 -10160.146 0 -10010.772 1059.6448 + 2000 423.61284 -10138.538 0 -10007.216 -434.24008 + 2100 521.01756 -10169.192 0 -10007.674 376.95207 + 2200 477.03314 -10153.033 0 -10005.151 -114.09514 + 2300 477.80526 -10153.294 0 -10005.172 869.97281 + 2400 471.49741 -10149.165 0 -10002.999 689.65295 + 2500 482.38958 -10152.956 0 -10003.413 352.08649 + 2600 505.57503 -10159.507 0 -10002.777 -812.75272 + 2700 498.41415 -10156.448 0 -10001.937 -458.03311 + 2800 534.65278 -10166.893 0 -10001.149 169.20767 + 2900 432.93717 -10134.759 0 -10000.546 -184.75627 + 3000 548.46832 -10170.375 0 -10000.347 41.765546 +Loop time of 3.49376 on 1 procs for 3000 steps with 105 atoms + +Performance: 18.547 ns/day, 1.294 hours/ns, 858.673 timesteps/s, 90.161 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.8082 | 2.8082 | 2.8082 | 0.0 | 80.38 +Neigh | 0.15477 | 0.15477 | 0.15477 | 0.0 | 4.43 +Comm | 0.0097478 | 0.0097478 | 0.0097478 | 0.0 | 0.28 +Output | 0.00081006 | 0.00081006 | 0.00081006 | 0.0 | 0.02 +Modify | 0.51773 | 0.51773 | 0.51773 | 0.0 | 14.82 +Other | | 0.002538 | | | 0.07 + +Nlocal: 105 ave 105 max 105 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 643 ave 643 max 643 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 4237 ave 4237 max 4237 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 4237 +Ave neighs/atom = 40.352381 +Neighbor list builds = 300 +Dangerous builds not checked +Total wall time: 0:00:03 diff --git a/examples/reaxff/CHO/log.30Nov23.CHO.g++.4 b/examples/reaxff/CHO/log.30Nov23.CHO.g++.4 new file mode 100644 index 0000000000..158b1aa657 --- /dev/null +++ b/examples/reaxff/CHO/log.30Nov23.CHO.g++.4 @@ -0,0 +1,141 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for CHO system +# ..... + +units real + +atom_style charge +read_data data.CHO +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.cho H C O +Reading potential file ffield.reax.cho with DATE: 2011-02-18 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 + +thermo 100 +#dump 1 all atom 30 dump.reax.cho + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 10.47 | 11.39 | 12.19 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -10226.557 0 -10226.557 -106.09736 + 100 54.051902 -10207.393 0 -10190.636 -291.39467 + 200 134.81172 -10200.411 0 -10158.619 -1637.1599 + 300 140.91215 -10177.136 0 -10133.452 -1668.5676 + 400 254.70123 -10189.927 0 -10110.968 -2522.3655 + 500 228.22204 -10162.396 0 -10091.646 403.98879 + 600 393.48756 -10197.284 0 -10075.301 394.11243 + 700 305.82625 -10156.707 0 -10061.9 362.73212 + 800 375.95634 -10170.288 0 -10053.74 -664.10079 + 900 361.59143 -10155.847 0 -10043.752 458.52018 + 1000 445.4582 -10176.601 0 -10038.507 251.4509 + 1100 475.47 -10180.12 0 -10032.722 840.09331 + 1200 406.77476 -10155.496 0 -10029.394 62.656622 + 1300 461.06079 -10167.123 0 -10024.192 265.91062 + 1400 408.15869 -10148.621 0 -10022.09 -1187.4869 + 1500 514.43021 -10178.337 0 -10018.862 -616.07216 + 1600 432.22013 -10151.168 0 -10017.178 -678.01121 + 1700 521.0846 -10175.605 0 -10014.067 98.591699 + 1800 409.72383 -10138.803 0 -10011.787 1884.7989 + 1900 481.86369 -10160.152 0 -10010.773 1058.5554 + 2000 423.60058 -10138.532 0 -10007.214 -437.22408 + 2100 520.96555 -10169.169 0 -10007.668 376.18619 + 2200 477.21351 -10153.089 0 -10005.15 -113.43512 + 2300 477.86263 -10153.309 0 -10005.17 868.89369 + 2400 471.46466 -10149.152 0 -10002.996 688.76379 + 2500 482.61616 -10153.025 0 -10003.412 350.03715 + 2600 505.68439 -10159.544 0 -10002.78 -810.94974 + 2700 498.37307 -10156.441 0 -10001.944 -460.12105 + 2800 535.06218 -10167.029 0 -10001.157 152.85379 + 2900 432.98591 -10134.778 0 -10000.55 -170.46638 + 3000 547.92956 -10170.199 0 -10000.339 60.201766 +Loop time of 2.03179 on 4 procs for 3000 steps with 105 atoms + +Performance: 31.893 ns/day, 0.753 hours/ns, 1476.533 timesteps/s, 155.036 katom-step/s +99.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.213 | 1.2396 | 1.2505 | 1.4 | 61.01 +Neigh | 0.074765 | 0.08966 | 0.10323 | 4.3 | 4.41 +Comm | 0.12894 | 0.14116 | 0.16833 | 4.2 | 6.95 +Output | 0.0006079 | 0.00066664 | 0.00083802 | 0.0 | 0.03 +Modify | 0.54589 | 0.55836 | 0.57217 | 1.6 | 27.48 +Other | | 0.002368 | | | 0.12 + +Nlocal: 26.25 ave 45 max 6 min +Histogram: 1 0 1 0 0 0 0 0 1 1 +Nghost: 380.75 ave 495 max 261 min +Histogram: 1 0 1 0 0 0 0 0 1 1 +Neighs: 1269.5 ave 2197 max 179 min +Histogram: 1 0 1 0 0 0 0 0 1 1 + +Total # of neighbors = 5078 +Ave neighs/atom = 48.361905 +Neighbor list builds = 300 +Dangerous builds not checked +Total wall time: 0:00:02 diff --git a/examples/reaxff/CHO/log.8Mar18.CHO.g++.1 b/examples/reaxff/CHO/log.8Mar18.CHO.g++.1 deleted file mode 100644 index 305ccbf3a0..0000000000 --- a/examples/reaxff/CHO/log.8Mar18.CHO.g++.1 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for CHO system -# ..... - -units real - -atom_style charge -read_data data.CHO - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.cho H C O -Reading potential file ffield.reax.cho with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.cho - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 18.68 | 18.68 | 18.68 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -10226.557 0 -10226.557 -106.09755 - 3000 548.5116 -10170.389 0 -10000.348 40.372297 -Loop time of 12.6046 on 1 procs for 3000 steps with 105 atoms - -Performance: 5.141 ns/day, 4.668 hours/ns, 238.008 timesteps/s -98.9% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 10.931 | 10.931 | 10.931 | 0.0 | 86.72 -Neigh | 0.33107 | 0.33107 | 0.33107 | 0.0 | 2.63 -Comm | 0.017975 | 0.017975 | 0.017975 | 0.0 | 0.14 -Output | 2.0742e-05 | 2.0742e-05 | 2.0742e-05 | 0.0 | 0.00 -Modify | 1.3197 | 1.3197 | 1.3197 | 0.0 | 10.47 -Other | | 0.005059 | | | 0.04 - -Nlocal: 105 ave 105 max 105 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 643 ave 643 max 643 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 4237 ave 4237 max 4237 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 4237 -Ave neighs/atom = 40.3524 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:12 diff --git a/examples/reaxff/CHO/log.8Mar18.CHO.g++.4 b/examples/reaxff/CHO/log.8Mar18.CHO.g++.4 deleted file mode 100644 index 2bc19dc789..0000000000 --- a/examples/reaxff/CHO/log.8Mar18.CHO.g++.4 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for CHO system -# ..... - -units real - -atom_style charge -read_data data.CHO - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.cho H C O -Reading potential file ffield.reax.cho with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.cho - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 11.75 | 12.85 | 13.81 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -10226.557 0 -10226.557 -106.09745 - 3000 548.30567 -10170.323 0 -10000.346 47.794514 -Loop time of 7.42367 on 4 procs for 3000 steps with 105 atoms - -Performance: 8.729 ns/day, 2.750 hours/ns, 404.113 timesteps/s -97.7% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 5.3058 | 5.4086 | 5.4922 | 3.1 | 72.86 -Neigh | 0.14791 | 0.17866 | 0.2106 | 6.5 | 2.41 -Comm | 0.080185 | 0.16666 | 0.26933 | 17.7 | 2.24 -Output | 2.5988e-05 | 2.8491e-05 | 3.4571e-05 | 0.0 | 0.00 -Modify | 1.6364 | 1.6658 | 1.6941 | 2.0 | 22.44 -Other | | 0.003964 | | | 0.05 - -Nlocal: 26.25 ave 45 max 6 min -Histogram: 1 0 1 0 0 0 0 0 1 1 -Nghost: 380.75 ave 495 max 261 min -Histogram: 1 0 1 0 0 0 0 0 1 1 -Neighs: 1269.5 ave 2197 max 179 min -Histogram: 1 0 1 0 0 0 0 0 1 1 - -Total # of neighbors = 5078 -Ave neighs/atom = 48.3619 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:07 diff --git a/examples/reaxff/FC/in.FC b/examples/reaxff/FC/in.FC index 3679a9bc19..eaa2b3c444 100644 --- a/examples/reaxff/FC/in.FC +++ b/examples/reaxff/FC/in.FC @@ -3,33 +3,33 @@ dimension 3 boundary p p p -units real +units real -atom_style charge -read_data data.FC +atom_style charge +read_data data.FC -pair_style reax/c NULL -pair_coeff * * ffield.reax.FC C F -neighbor 2. bin -neigh_modify every 10 delay 0 check no -fix 2 all qeq/reax 1 0.0 10.0 1e-6 reax/c +pair_style reaxff NULL +pair_coeff * * ffield.reax.FC C F +neighbor 2. bin +neigh_modify every 10 delay 0 check no +fix 2 all qeq/reax 1 0.0 10.0 1e-6 reaxff # should equilibrate much longer in practice -fix 1 all npt temp 100.0 100.0 10.0 iso 1.0 1. 2000.0 +fix 1 all npt temp 100.0 100.0 10.0 iso 1.0 1. 2000.0 timestep 0.2 thermo_style custom step temp epair etotal press thermo 1 dump 4 all xyz 5000 dumpnpt.xyz -run 10 +run 10 unfix 1 fix 1 all nvt temp 100.0 100.0 100.0 thermo_style custom step temp epair etotal press -timestep 0.2 +timestep 0.2 -#dump 5 all xyz 5000 dumpnvt.xyz +#dump 5 all xyz 5000 dumpnvt.xyz #dump 6 all custom 5000 dumpidtype.dat id type x y z -run 10 +run 10 diff --git a/examples/reaxff/FC/log.30Nov23.FC.g++.1 b/examples/reaxff/FC/log.30Nov23.FC.g++.1 new file mode 100644 index 0000000000..a8f8c0ff83 --- /dev/null +++ b/examples/reaxff/FC/log.30Nov23.FC.g++.1 @@ -0,0 +1,172 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for Nitroamines system +# ..... + +dimension 3 +boundary p p p +units real + +atom_style charge +read_data data.FC +Reading data file ... + orthogonal box = (-82.62 -79.5011 -50) to (82.62 79.5011 50) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 17280 atoms + read_data CPU = 0.025 seconds + +pair_style reaxff NULL +pair_coeff * * ffield.reax.FC C F +Reading potential file ffield.reax.FC with DATE: 2013-06-28 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) +neighbor 2. bin +neigh_modify every 10 delay 0 check no +fix 2 all qeq/reax 1 0.0 10.0 1e-6 reaxff + +# should equilibrate much longer in practice + +fix 1 all npt temp 100.0 100.0 10.0 iso 1.0 1. 2000.0 +timestep 0.2 +thermo_style custom step temp epair etotal press +thermo 1 +dump 4 all xyz 5000 dumpnpt.xyz +run 10 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 28 27 17 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 384.3 | 384.3 | 384.3 Mbytes + Step Temp E_pair TotEng Press + 0 0 -808525.04 -808525.04 58194.694 + 1 4.9935726 -808803.88 -808546.69 58205.825 + 2 19.98696 -809640.53 -808611.1 58239.155 + 3 45.012616 -811035.3 -808716.9 58294.499 + 4 80.103613 -812988.58 -808862.81 58371.548 + 5 125.26228 -815500.68 -809049 58469.872 + 6 180.4316 -818571.56 -809278.36 58588.936 + 7 245.47913 -822200.73 -809557.22 58728.144 + 8 320.17692 -826387.19 -809896.34 58886.879 + 9 404.17073 -831129.38 -810312.4 59064.554 + 10 497.02486 -836425.06 -810825.59 59260.717 +Loop time of 6.13793 on 1 procs for 10 steps with 17280 atoms + +Performance: 0.028 ns/day, 852.491 hours/ns, 1.629 timesteps/s, 28.153 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.1752 | 5.1752 | 5.1752 | 0.0 | 84.31 +Neigh | 0.039453 | 0.039453 | 0.039453 | 0.0 | 0.64 +Comm | 0.00042596 | 0.00042596 | 0.00042596 | 0.0 | 0.01 +Output | 0.00064013 | 0.00064013 | 0.00064013 | 0.0 | 0.01 +Modify | 0.92205 | 0.92205 | 0.92205 | 0.0 | 15.02 +Other | | 0.0002045 | | | 0.00 + +Nlocal: 17280 ave 17280 max 17280 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5352 ave 5352 max 5352 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 2.62136e+06 ave 2.62136e+06 max 2.62136e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2621360 +Ave neighs/atom = 151.69907 +Neighbor list builds = 1 +Dangerous builds not checked + +unfix 1 + +fix 1 all nvt temp 100.0 100.0 100.0 +thermo_style custom step temp epair etotal press +timestep 0.2 + +#dump 5 all xyz 5000 dumpnvt.xyz +#dump 6 all custom 5000 dumpidtype.dat id type x y z + +run 10 +Per MPI rank memory allocation (min/avg/max) = 386.9 | 386.9 | 386.9 Mbytes + Step Temp E_pair TotEng Press + 10 497.02486 -836425.06 -810825.59 59260.717 + 11 601.6514 -841814.09 -810825.78 59489.425 + 12 716.37597 -847724.6 -810827.35 59738.298 + 13 841.27959 -854161.62 -810831.16 60008.164 + 14 976.4666 -861131.68 -810838.36 60300.364 + 15 1122.0668 -868642.96 -810850.45 60616.793 + 16 1278.2373 -876705.43 -810869.28 60959.942 + 17 1445.1655 -885331.03 -810897.18 61332.932 + 18 1623.072 -894533.91 -810936.92 61739.541 + 19 1812.1864 -904337.86 -811000.45 62200.561 + 20 2011.5898 -915379.05 -811771.28 63361.15 +Loop time of 6.11372 on 1 procs for 10 steps with 17280 atoms + +Performance: 0.028 ns/day, 849.127 hours/ns, 1.636 timesteps/s, 28.264 katom-step/s +99.8% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 5.0783 | 5.0783 | 5.0783 | 0.0 | 83.06 +Neigh | 0.03596 | 0.03596 | 0.03596 | 0.0 | 0.59 +Comm | 0.00041578 | 0.00041578 | 0.00041578 | 0.0 | 0.01 +Output | 0.00062133 | 0.00062133 | 0.00062133 | 0.0 | 0.01 +Modify | 0.99825 | 0.99825 | 0.99825 | 0.0 | 16.33 +Other | | 0.0002171 | | | 0.00 + +Nlocal: 17280 ave 17280 max 17280 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 5352 ave 5352 max 5352 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 2.62136e+06 ave 2.62136e+06 max 2.62136e+06 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2621360 +Ave neighs/atom = 151.69907 +Neighbor list builds = 1 +Dangerous builds not checked +Total wall time: 0:00:13 diff --git a/examples/reaxff/FC/log.30Nov23.FC.g++.4 b/examples/reaxff/FC/log.30Nov23.FC.g++.4 new file mode 100644 index 0000000000..1a53bb8c03 --- /dev/null +++ b/examples/reaxff/FC/log.30Nov23.FC.g++.4 @@ -0,0 +1,172 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for Nitroamines system +# ..... + +dimension 3 +boundary p p p +units real + +atom_style charge +read_data data.FC +Reading data file ... + orthogonal box = (-82.62 -79.5011 -50) to (82.62 79.5011 50) + 2 by 2 by 1 MPI processor grid + reading atoms ... + 17280 atoms + read_data CPU = 0.030 seconds + +pair_style reaxff NULL +pair_coeff * * ffield.reax.FC C F +Reading potential file ffield.reax.FC with DATE: 2013-06-28 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) +neighbor 2. bin +neigh_modify every 10 delay 0 check no +fix 2 all qeq/reax 1 0.0 10.0 1e-6 reaxff + +# should equilibrate much longer in practice + +fix 1 all npt temp 100.0 100.0 10.0 iso 1.0 1. 2000.0 +timestep 0.2 +thermo_style custom step temp epair etotal press +thermo 1 +dump 4 all xyz 5000 dumpnpt.xyz +run 10 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 28 27 17 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 121.6 | 121.6 | 121.6 Mbytes + Step Temp E_pair TotEng Press + 0 0 -808525.04 -808525.04 58194.694 + 1 4.9935726 -808803.88 -808546.69 58205.825 + 2 19.98696 -809640.53 -808611.1 58239.155 + 3 45.012616 -811035.3 -808716.9 58294.499 + 4 80.103613 -812988.58 -808862.81 58371.548 + 5 125.26228 -815500.68 -809049 58469.872 + 6 180.4316 -818571.56 -809278.36 58588.936 + 7 245.47913 -822200.73 -809557.22 58728.144 + 8 320.17692 -826387.19 -809896.34 58886.879 + 9 404.17073 -831129.38 -810312.4 59064.554 + 10 497.02486 -836425.06 -810825.59 59260.717 +Loop time of 1.75962 on 4 procs for 10 steps with 17280 atoms + +Performance: 0.098 ns/day, 244.392 hours/ns, 5.683 timesteps/s, 98.203 katom-step/s +99.6% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.402 | 1.4417 | 1.4815 | 3.0 | 81.93 +Neigh | 0.012815 | 0.013047 | 0.01323 | 0.2 | 0.74 +Comm | 0.0006609 | 0.040482 | 0.080149 | 17.9 | 2.30 +Output | 0.00028041 | 0.00029538 | 0.00033093 | 0.0 | 0.02 +Modify | 0.26389 | 0.26407 | 0.26425 | 0.0 | 15.01 +Other | | 7.451e-05 | | | 0.00 + +Nlocal: 4320 ave 4320 max 4320 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 2856 ave 2856 max 2856 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 691892 ave 691892 max 691892 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2767568 +Ave neighs/atom = 160.16019 +Neighbor list builds = 1 +Dangerous builds not checked + +unfix 1 + +fix 1 all nvt temp 100.0 100.0 100.0 +thermo_style custom step temp epair etotal press +timestep 0.2 + +#dump 5 all xyz 5000 dumpnvt.xyz +#dump 6 all custom 5000 dumpidtype.dat id type x y z + +run 10 +Per MPI rank memory allocation (min/avg/max) = 123 | 123 | 123 Mbytes + Step Temp E_pair TotEng Press + 10 497.02486 -836425.06 -810825.59 59260.717 + 11 601.6514 -841814.09 -810825.78 59489.425 + 12 716.37597 -847724.6 -810827.35 59738.298 + 13 841.27959 -854161.62 -810831.16 60008.164 + 14 976.4666 -861131.68 -810838.36 60300.364 + 15 1122.0668 -868642.96 -810850.45 60616.793 + 16 1278.2373 -876705.43 -810869.28 60959.942 + 17 1445.1655 -885331.03 -810897.18 61332.932 + 18 1623.072 -894533.91 -810936.92 61739.541 + 19 1812.1864 -904337.86 -811000.45 62200.561 + 20 2011.5898 -915379.05 -811771.28 63361.15 +Loop time of 1.8322 on 4 procs for 10 steps with 17280 atoms + +Performance: 0.094 ns/day, 254.473 hours/ns, 5.458 timesteps/s, 94.313 katom-step/s +99.5% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.3846 | 1.4468 | 1.524 | 4.2 | 78.96 +Neigh | 0.012048 | 0.012239 | 0.012522 | 0.2 | 0.67 +Comm | 0.00082283 | 0.07804 | 0.14024 | 17.9 | 4.26 +Output | 0.00029695 | 0.00031243 | 0.00035323 | 0.0 | 0.02 +Modify | 0.29449 | 0.29478 | 0.29497 | 0.0 | 16.09 +Other | | 7.342e-05 | | | 0.00 + +Nlocal: 4320 ave 4320 max 4320 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Nghost: 2856 ave 2856 max 2856 min +Histogram: 4 0 0 0 0 0 0 0 0 0 +Neighs: 691892 ave 691892 max 691892 min +Histogram: 4 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 2767568 +Ave neighs/atom = 160.16019 +Neighbor list builds = 1 +Dangerous builds not checked +Total wall time: 0:00:04 diff --git a/examples/reaxff/FC/log.8Mar18.FC.g++.1 b/examples/reaxff/FC/log.8Mar18.FC.g++.1 deleted file mode 100644 index 1e2f723966..0000000000 --- a/examples/reaxff/FC/log.8Mar18.FC.g++.1 +++ /dev/null @@ -1,141 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for Nitroamines system -# ..... - -dimension 3 -boundary p p p -units real - -atom_style charge -read_data data.FC - orthogonal box = (-82.62 -79.5011 -50) to (82.62 79.5011 50) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 17280 atoms - -pair_style reax/c NULL -pair_coeff * * ffield.reax.FC C F -Reading potential file ffield.reax.FC with DATE: 2013-06-28 -neighbor 2. bin -neigh_modify every 10 delay 0 check no -fix 2 all qeq/reax 1 0.0 10.0 1e-6 reax/c - -# should equilibrate much longer in practice - -fix 1 all npt temp 100.0 100.0 10.0 iso 1.0 1. 2000.0 -timestep 0.2 -thermo_style custom step temp epair etotal press -thermo 1 -dump 4 all xyz 5000 dumpnpt.xyz -run 10 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 28 27 17 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 470 | 470 | 470 Mbytes -Step Temp E_pair TotEng Press - 0 0 -808525.04 -808525.04 58194.694 - 1 4.9935726 -808803.89 -808546.69 58205.825 - 2 19.98696 -809640.54 -808611.1 58239.155 - 3 45.012616 -811035.31 -808716.91 58294.499 - 4 80.103613 -812988.6 -808862.83 58371.547 - 5 125.26228 -815500.71 -809049.03 58469.871 - 6 180.4316 -818571.61 -809278.4 58588.935 - 7 245.47913 -822200.79 -809557.28 58728.142 - 8 320.17692 -826387.27 -809896.43 58886.877 - 9 404.17073 -831129.48 -810312.5 59064.551 - 10 497.02486 -836425.19 -810825.72 59260.714 -Loop time of 21.5054 on 1 procs for 10 steps with 17280 atoms - -Performance: 0.008 ns/day, 2986.857 hours/ns, 0.465 timesteps/s -98.8% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 19.008 | 19.008 | 19.008 | 0.0 | 88.39 -Neigh | 0.084401 | 0.084401 | 0.084401 | 0.0 | 0.39 -Comm | 0.00080419 | 0.00080419 | 0.00080419 | 0.0 | 0.00 -Output | 0.00095367 | 0.00095367 | 0.00095367 | 0.0 | 0.00 -Modify | 2.4109 | 2.4109 | 2.4109 | 0.0 | 11.21 -Other | | 0.0004592 | | | 0.00 - -Nlocal: 17280 ave 17280 max 17280 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 5352 ave 5352 max 5352 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2.62136e+06 ave 2.62136e+06 max 2.62136e+06 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2621360 -Ave neighs/atom = 151.699 -Neighbor list builds = 1 -Dangerous builds not checked - -unfix 1 - -fix 1 all nvt temp 100.0 100.0 100.0 -thermo_style custom step temp epair etotal press -timestep 0.2 - -#dump 5 all xyz 5000 dumpnvt.xyz -#dump 6 all custom 5000 dumpidtype.dat id type x y z - -run 10 -Per MPI rank memory allocation (min/avg/max) = 470 | 470 | 470 Mbytes -Step Temp E_pair TotEng Press - 10 497.02486 -836425.19 -810825.72 59260.714 - 11 601.65141 -841814.22 -810825.91 59489.422 - 12 716.37599 -847724.72 -810827.48 59738.295 - 13 841.27961 -854161.75 -810831.29 60008.162 - 14 976.46663 -861131.81 -810838.49 60300.362 - 15 1122.0668 -868643.09 -810850.57 60616.791 - 16 1278.2373 -876705.56 -810869.41 60959.94 - 17 1445.1655 -885331.16 -810897.31 61332.931 - 18 1623.072 -894534.04 -810937.04 61739.541 - 19 1812.1865 -904337.99 -811000.57 62200.561 - 20 2011.5899 -915379.19 -811771.41 63361.151 -Loop time of 21.362 on 1 procs for 10 steps with 17280 atoms - -Performance: 0.008 ns/day, 2966.945 hours/ns, 0.468 timesteps/s -98.9% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 18.793 | 18.793 | 18.793 | 0.0 | 87.97 -Neigh | 0.077047 | 0.077047 | 0.077047 | 0.0 | 0.36 -Comm | 0.00080276 | 0.00080276 | 0.00080276 | 0.0 | 0.00 -Output | 0.0010097 | 0.0010097 | 0.0010097 | 0.0 | 0.00 -Modify | 2.4897 | 2.4897 | 2.4897 | 0.0 | 11.65 -Other | | 0.0004568 | | | 0.00 - -Nlocal: 17280 ave 17280 max 17280 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 5352 ave 5352 max 5352 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 2.62136e+06 ave 2.62136e+06 max 2.62136e+06 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2621360 -Ave neighs/atom = 151.699 -Neighbor list builds = 1 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:47 diff --git a/examples/reaxff/FC/log.8Mar18.FC.g++.4 b/examples/reaxff/FC/log.8Mar18.FC.g++.4 deleted file mode 100644 index 76dcadfb0f..0000000000 --- a/examples/reaxff/FC/log.8Mar18.FC.g++.4 +++ /dev/null @@ -1,141 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for Nitroamines system -# ..... - -dimension 3 -boundary p p p -units real - -atom_style charge -read_data data.FC - orthogonal box = (-82.62 -79.5011 -50) to (82.62 79.5011 50) - 2 by 2 by 1 MPI processor grid - reading atoms ... - 17280 atoms - -pair_style reax/c NULL -pair_coeff * * ffield.reax.FC C F -Reading potential file ffield.reax.FC with DATE: 2013-06-28 -neighbor 2. bin -neigh_modify every 10 delay 0 check no -fix 2 all qeq/reax 1 0.0 10.0 1e-6 reax/c - -# should equilibrate much longer in practice - -fix 1 all npt temp 100.0 100.0 10.0 iso 1.0 1. 2000.0 -timestep 0.2 -thermo_style custom step temp epair etotal press -thermo 1 -dump 4 all xyz 5000 dumpnpt.xyz -run 10 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 28 27 17 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 149.3 | 149.3 | 149.3 Mbytes -Step Temp E_pair TotEng Press - 0 0 -808525.04 -808525.04 58194.694 - 1 4.9935726 -808803.89 -808546.69 58205.825 - 2 19.98696 -809640.54 -808611.1 58239.155 - 3 45.012616 -811035.31 -808716.91 58294.499 - 4 80.103613 -812988.6 -808862.83 58371.547 - 5 125.26228 -815500.71 -809049.03 58469.871 - 6 180.4316 -818571.61 -809278.4 58588.935 - 7 245.47913 -822200.79 -809557.28 58728.142 - 8 320.17692 -826387.27 -809896.43 58886.877 - 9 404.17073 -831129.48 -810312.5 59064.551 - 10 497.02486 -836425.19 -810825.72 59260.714 -Loop time of 6.02109 on 4 procs for 10 steps with 17280 atoms - -Performance: 0.029 ns/day, 836.262 hours/ns, 1.661 timesteps/s -99.0% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.9482 | 5.1186 | 5.3113 | 7.4 | 85.01 -Neigh | 0.024811 | 0.025702 | 0.027556 | 0.7 | 0.43 -Comm | 0.0027421 | 0.19541 | 0.36565 | 38.1 | 3.25 -Output | 0.00053239 | 0.00057119 | 0.00067186 | 0.0 | 0.01 -Modify | 0.67876 | 0.68059 | 0.68165 | 0.1 | 11.30 -Other | | 0.0001779 | | | 0.00 - -Nlocal: 4320 ave 4320 max 4320 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 2856 ave 2856 max 2856 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 691892 ave 691892 max 691892 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2767568 -Ave neighs/atom = 160.16 -Neighbor list builds = 1 -Dangerous builds not checked - -unfix 1 - -fix 1 all nvt temp 100.0 100.0 100.0 -thermo_style custom step temp epair etotal press -timestep 0.2 - -#dump 5 all xyz 5000 dumpnvt.xyz -#dump 6 all custom 5000 dumpidtype.dat id type x y z - -run 10 -Per MPI rank memory allocation (min/avg/max) = 149.3 | 149.3 | 149.3 Mbytes -Step Temp E_pair TotEng Press - 10 497.02486 -836425.19 -810825.72 59260.714 - 11 601.65141 -841814.22 -810825.91 59489.422 - 12 716.37599 -847724.72 -810827.48 59738.295 - 13 841.27961 -854161.75 -810831.29 60008.162 - 14 976.46663 -861131.81 -810838.49 60300.362 - 15 1122.0668 -868643.09 -810850.57 60616.791 - 16 1278.2373 -876705.56 -810869.41 60959.94 - 17 1445.1655 -885331.16 -810897.31 61332.931 - 18 1623.072 -894534.04 -810937.04 61739.541 - 19 1812.1865 -904337.99 -811000.57 62200.561 - 20 2011.5899 -915379.19 -811771.41 63361.151 -Loop time of 6.08805 on 4 procs for 10 steps with 17280 atoms - -Performance: 0.028 ns/day, 845.563 hours/ns, 1.643 timesteps/s -99.2% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.9124 | 5.1008 | 5.3405 | 8.3 | 83.78 -Neigh | 0.023652 | 0.024473 | 0.025996 | 0.6 | 0.40 -Comm | 0.0020971 | 0.24171 | 0.43023 | 38.0 | 3.97 -Output | 0.00056076 | 0.00060701 | 0.00072312 | 0.0 | 0.01 -Modify | 0.71869 | 0.72023 | 0.72107 | 0.1 | 11.83 -Other | | 0.0001827 | | | 0.00 - -Nlocal: 4320 ave 4320 max 4320 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 2856 ave 2856 max 2856 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Neighs: 691892 ave 691892 max 691892 min -Histogram: 4 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 2767568 -Ave neighs/atom = 160.16 -Neighbor list builds = 1 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:13 diff --git a/examples/reaxff/FeOH3/in.FeOH3 b/examples/reaxff/FeOH3/in.FeOH3 index 8b56f2a7d2..72afbe5416 100644 --- a/examples/reaxff/FeOH3/in.FeOH3 +++ b/examples/reaxff/FeOH3/in.FeOH3 @@ -1,23 +1,24 @@ # REAX potential for Fe/O/H system # ..... -units real +units real -atom_style charge -read_data data.FeOH3 +atom_style charge +read_data data.FeOH3 -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.Fe_O_C_H H O Fe +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.Fe_O_C_H H O Fe -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 +thermo 100 -#dump 1 all atom 30 dump.reax.feoh +#dump 1 all atom 30 dump.reax.feoh -run 3000 +run 3000 diff --git a/examples/reaxff/FeOH3/lmp_control b/examples/reaxff/FeOH3/lmp_control index 779c7da7ec..6b26c6427a 100644 --- a/examples/reaxff/FeOH3/lmp_control +++ b/examples/reaxff/FeOH3/lmp_control @@ -1,17 +1,7 @@ -simulation_name FeOH3_example ! output files will carry this name + their specific ext -tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 +tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A -hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs -thb_cutoff 0.001 ! cutoff value for three body interactions - -write_freq 1 ! write trajectory after so many steps -traj_title Fe_OH3 ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file +nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A +hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs +thb_cutoff 0.001 ! cutoff value for three body interactions diff --git a/examples/reaxff/FeOH3/log.30Nov23.FeOH3.g++.1 b/examples/reaxff/FeOH3/log.30Nov23.FeOH3.g++.1 new file mode 100644 index 0000000000..0acb09bdc0 --- /dev/null +++ b/examples/reaxff/FeOH3/log.30Nov23.FeOH3.g++.1 @@ -0,0 +1,141 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for Fe/O/H system +# ..... + +units real + +atom_style charge +read_data data.FeOH3 +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.000 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.Fe_O_C_H H O Fe +Reading potential file ffield.reax.Fe_O_C_H with DATE: 2011-02-18 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 + +#dump 1 all atom 30 dump.reax.feoh + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 15.99 | 15.99 | 15.99 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -9715.3326 0 -9715.3326 -139.61126 + 100 127.38829 -9720.5854 0 -9681.0945 -933.74373 + 200 141.21008 -9696.3143 0 -9652.5386 -831.74241 + 300 176.81083 -9681.3376 0 -9626.5255 -520.30966 + 400 220.75236 -9672.6196 0 -9604.1854 -388.85436 + 500 301.29415 -9678.8463 0 -9585.4438 -545.22735 + 600 320.36877 -9670.3054 0 -9570.9897 -609.44044 + 700 414.53699 -9688.649 0 -9560.1408 -259.51791 + 800 391.93073 -9675.1212 0 -9553.621 77.352757 + 900 413.52476 -9673.7372 0 -9545.5428 369.71918 + 1000 382.03337 -9656.3848 0 -9537.9528 236.61186 + 1100 381.68223 -9647.4372 0 -9529.1141 -432.67374 + 1200 470.68889 -9671.5116 0 -9525.596 448.90781 + 1300 436.34973 -9659.2277 0 -9523.9574 188.12079 + 1400 422.25034 -9651.2639 0 -9520.3645 48.988693 + 1500 363.49223 -9625.6588 0 -9512.9746 -977.83513 + 1600 450.39155 -9646.4742 0 -9506.8509 44.80204 + 1700 461.44884 -9648.1215 0 -9505.0704 -29.381385 + 1800 457.01538 -9644.6842 0 -9503.0075 -29.157643 + 1900 461.56497 -9642.8457 0 -9499.7586 -608.58801 + 2000 491.20199 -9648.6637 0 -9496.389 -99.409356 + 2100 461.60295 -9636.4878 0 -9493.3889 753.00956 + 2200 480.92601 -9640.304 0 -9491.2149 -176.4371 + 2300 450.00958 -9627.8875 0 -9488.3826 -210.21397 + 2400 475.97134 -9634.1577 0 -9486.6046 -364.46797 + 2500 478.0174 -9631.5069 0 -9483.3194 557.79107 + 2600 500.26141 -9636.8606 0 -9481.7774 115.84535 + 2700 455.06433 -9620.0151 0 -9478.9433 -963.22 + 2800 441.50799 -9612.6546 0 -9475.7852 -177.60856 + 2900 471.67031 -9618.9817 0 -9472.7619 -294.38595 + 3000 526.94336 -9635.8664 0 -9472.5117 119.05777 +Loop time of 2.33387 on 1 procs for 3000 steps with 105 atoms + +Performance: 27.765 ns/day, 0.864 hours/ns, 1285.420 timesteps/s, 134.969 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.8409 | 1.8409 | 1.8409 | 0.0 | 78.88 +Neigh | 0.15998 | 0.15998 | 0.15998 | 0.0 | 6.85 +Comm | 0.0090909 | 0.0090909 | 0.0090909 | 0.0 | 0.39 +Output | 0.00069968 | 0.00069968 | 0.00069968 | 0.0 | 0.03 +Modify | 0.32099 | 0.32099 | 0.32099 | 0.0 | 13.75 +Other | | 0.002244 | | | 0.10 + +Nlocal: 105 ave 105 max 105 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 651 ave 651 max 651 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3388 ave 3388 max 3388 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3388 +Ave neighs/atom = 32.266667 +Neighbor list builds = 300 +Dangerous builds not checked +Total wall time: 0:00:02 diff --git a/examples/reaxff/FeOH3/log.30Nov23.FeOH3.g++.4 b/examples/reaxff/FeOH3/log.30Nov23.FeOH3.g++.4 new file mode 100644 index 0000000000..3357947749 --- /dev/null +++ b/examples/reaxff/FeOH3/log.30Nov23.FeOH3.g++.4 @@ -0,0 +1,141 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for Fe/O/H system +# ..... + +units real + +atom_style charge +read_data data.FeOH3 +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.Fe_O_C_H H O Fe +Reading potential file ffield.reax.Fe_O_C_H with DATE: 2011-02-18 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 + +#dump 1 all atom 30 dump.reax.feoh + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 10.56 | 11.55 | 12.17 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -9715.3326 0 -9715.3326 -139.61126 + 100 127.3884 -9720.5854 0 -9681.0945 -933.74975 + 200 141.21023 -9696.3143 0 -9652.5385 -831.74859 + 300 176.81092 -9681.3376 0 -9626.5254 -520.29734 + 400 220.75237 -9672.6195 0 -9604.1853 -388.89122 + 500 301.29434 -9678.8461 0 -9585.4436 -545.24883 + 600 320.36921 -9670.3055 0 -9570.9897 -609.45071 + 700 414.5366 -9688.649 0 -9560.1409 -259.54271 + 800 391.93079 -9675.1212 0 -9553.621 77.314405 + 900 413.52641 -9673.738 0 -9545.5431 369.67477 + 1000 382.02987 -9656.384 0 -9537.9531 236.57634 + 1100 381.6811 -9647.4372 0 -9529.1144 -432.72725 + 1200 470.68578 -9671.511 0 -9525.5964 448.88885 + 1300 436.3616 -9659.2312 0 -9523.9573 188.07625 + 1400 422.26867 -9651.2709 0 -9520.3658 48.829055 + 1500 363.49419 -9625.6611 0 -9512.9764 -977.70396 + 1600 450.39497 -9646.4762 0 -9506.8518 45.000339 + 1700 461.44368 -9648.121 0 -9505.0715 -29.332359 + 1800 457.02327 -9644.687 0 -9503.0078 -29.48478 + 1900 461.60004 -9642.8571 0 -9499.7592 -608.0786 + 2000 491.19069 -9648.6599 0 -9496.3887 -99.479995 + 2100 461.50901 -9636.4581 0 -9493.3884 752.86874 + 2200 480.7646 -9640.2431 0 -9491.204 -175.99562 + 2300 450.00669 -9627.875 0 -9488.3711 -209.83065 + 2400 475.84946 -9634.1191 0 -9486.6038 -366.65233 + 2500 477.75601 -9631.4196 0 -9483.3132 558.18557 + 2600 500.64305 -9636.9676 0 -9481.7661 111.76394 + 2700 455.78826 -9620.2513 0 -9478.955 -962.65771 + 2800 438.72349 -9611.8395 0 -9475.8334 -180.94976 + 2900 471.33135 -9618.8641 0 -9472.7494 -291.14764 + 3000 528.64651 -9636.4232 0 -9472.5405 111.18605 +Loop time of 1.42723 on 4 procs for 3000 steps with 105 atoms + +Performance: 45.403 ns/day, 0.529 hours/ns, 2101.973 timesteps/s, 220.707 katom-step/s +99.2% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.79715 | 0.88663 | 0.96735 | 7.5 | 62.12 +Neigh | 0.083068 | 0.096787 | 0.10679 | 2.8 | 6.78 +Comm | 0.058539 | 0.13831 | 0.22776 | 19.0 | 9.69 +Output | 0.0006518 | 0.00071197 | 0.00088964 | 0.0 | 0.05 +Modify | 0.29308 | 0.30291 | 0.31706 | 1.6 | 21.22 +Other | | 0.001886 | | | 0.13 + +Nlocal: 26.25 ave 34 max 12 min +Histogram: 1 0 0 0 0 0 0 1 1 1 +Nghost: 408 ave 462 max 347 min +Histogram: 1 0 0 0 1 0 1 0 0 1 +Neighs: 1109 ave 1419 max 453 min +Histogram: 1 0 0 0 0 0 0 1 0 2 + +Total # of neighbors = 4436 +Ave neighs/atom = 42.247619 +Neighbor list builds = 300 +Dangerous builds not checked +Total wall time: 0:00:01 diff --git a/examples/reaxff/FeOH3/log.5Oct16.FeOH3.g++.1 b/examples/reaxff/FeOH3/log.5Oct16.FeOH3.g++.1 deleted file mode 100644 index fd9b310bb2..0000000000 --- a/examples/reaxff/FeOH3/log.5Oct16.FeOH3.g++.1 +++ /dev/null @@ -1,70 +0,0 @@ -LAMMPS (5 Oct 2016) -# REAX potential for Fe/O/H system -# ..... - -units real - -atom_style charge -read_data data.FeOH3 - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.Fe_O_C_H H O Fe -Reading potential file ffield.reax.Fe_O_C_H with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.feoh - -run 3000 -Neighbor list info ... - 2 neighbor list requests - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6 -> bins = 5 5 5 -Memory usage per processor = 17.7294 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -9715.3326 0 -9715.3326 -139.61126 - 3000 529.72301 -9636.7144 0 -9472.498 127.52152 -Loop time of 8.40814 on 1 procs for 3000 steps with 105 atoms - -Performance: 7.707 ns/day, 3.114 hours/ns, 356.797 timesteps/s -99.2% CPU use with 1 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 7.3193 | 7.3193 | 7.3193 | 0.0 | 87.05 -Neigh | 0.29032 | 0.29032 | 0.29032 | 0.0 | 3.45 -Comm | 0.016032 | 0.016032 | 0.016032 | 0.0 | 0.19 -Output | 1.2159e-05 | 1.2159e-05 | 1.2159e-05 | 0.0 | 0.00 -Modify | 0.77846 | 0.77846 | 0.77846 | 0.0 | 9.26 -Other | | 0.004053 | | | 0.05 - -Nlocal: 105 ave 105 max 105 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 651 ave 651 max 651 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 3389 ave 3389 max 3389 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 3389 -Ave neighs/atom = 32.2762 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:08 diff --git a/examples/reaxff/FeOH3/log.5Oct16.FeOH3.g++.4 b/examples/reaxff/FeOH3/log.5Oct16.FeOH3.g++.4 deleted file mode 100644 index 399c5dbe3c..0000000000 --- a/examples/reaxff/FeOH3/log.5Oct16.FeOH3.g++.4 +++ /dev/null @@ -1,70 +0,0 @@ -LAMMPS (5 Oct 2016) -# REAX potential for Fe/O/H system -# ..... - -units real - -atom_style charge -read_data data.FeOH3 - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.Fe_O_C_H H O Fe -Reading potential file ffield.reax.Fe_O_C_H with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.feoh - -run 3000 -Neighbor list info ... - 2 neighbor list requests - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6 -> bins = 5 5 5 -Memory usage per processor = 12.3695 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -9715.3326 0 -9715.3326 -139.61126 - 3000 534.48882 -9638.0405 0 -9472.3467 127.47989 -Loop time of 4.78344 on 4 procs for 3000 steps with 105 atoms - -Performance: 13.547 ns/day, 1.772 hours/ns, 627.164 timesteps/s -99.0% CPU use with 4 MPI tasks x no OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 3.7061 | 3.7503 | 3.7853 | 1.5 | 78.40 -Neigh | 0.14361 | 0.16388 | 0.18297 | 3.4 | 3.43 -Comm | 0.062001 | 0.098492 | 0.14111 | 9.0 | 2.06 -Output | 2.0981e-05 | 2.2948e-05 | 2.7895e-05 | 0.1 | 0.00 -Modify | 0.75012 | 0.76764 | 0.78678 | 1.5 | 16.05 -Other | | 0.003105 | | | 0.06 - -Nlocal: 26.25 ave 35 max 12 min -Histogram: 1 0 0 0 0 0 0 2 0 1 -Nghost: 408 ave 462 max 348 min -Histogram: 1 0 0 0 1 0 1 0 0 1 -Neighs: 1107 ave 1428 max 453 min -Histogram: 1 0 0 0 0 0 0 1 0 2 - -Total # of neighbors = 4428 -Ave neighs/atom = 42.1714 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:05 diff --git a/examples/reaxff/HNS/in.reaxc.hns b/examples/reaxff/HNS/in.reaxff.hns similarity index 82% rename from examples/reaxff/HNS/in.reaxc.hns rename to examples/reaxff/HNS/in.reaxff.hns index 5b83698917..0f40814bff 100644 --- a/examples/reaxff/HNS/in.reaxc.hns +++ b/examples/reaxff/HNS/in.reaxff.hns @@ -12,16 +12,15 @@ atom_style charge atom_modify sort 100 0.0 # optional dimension 3 boundary p p p -box tilt large read_data data.hns-equil replicate $x $y $z bbox -pair_style reax/c NULL +pair_style reaxff NULL pair_coeff * * ffield.reax.hns C H O N -compute reax all pair reax/c +compute reax all pair reaxff neighbor 1.0 bin neigh_modify every 20 delay 0 check no @@ -35,6 +34,6 @@ thermo 10 velocity all create 300.0 41279 loop geom fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 reax/c +fix 2 all qeq/reax 1 0.0 10.0 1e-6 reaxff run $t diff --git a/examples/reaxff/HNS/log.30Nov23.reaxff.hns.g++.1 b/examples/reaxff/HNS/log.30Nov23.reaxff.hns.g++.1 new file mode 100644 index 0000000000..b2c9778994 --- /dev/null +++ b/examples/reaxff/HNS/log.30Nov23.reaxff.hns.g++.1 @@ -0,0 +1,149 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# Pure HNS crystal, ReaxFF tests for benchmarking LAMMPS +# See README for more info + +variable x index 2 +variable y index 2 +variable z index 2 +variable t index 100 + + +units real +atom_style charge +atom_modify sort 100 0.0 # optional +dimension 3 +boundary p p p + +read_data data.hns-equil +Reading data file ... + triclinic box = (0 0 0) to (22.326 11.1412 13.778966) with tilt (0 -5.02603 0) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 304 atoms + reading velocities ... + 304 velocities + read_data CPU = 0.005 seconds +replicate $x $y $z bbox +replicate 2 $y $z bbox +replicate 2 2 $z bbox +replicate 2 2 2 bbox +Replication is creating a 2x2x2 = 8 times larger system... + triclinic box = (0 0 0) to (44.652 22.2824 27.557932) with tilt (0 -10.05206 0) + 1 by 1 by 1 MPI processor grid + bounding box image = (0 -1 -1) to (0 1 1) + bounding box extra memory = 0.03 MB + average # of replicas added to proc = 8.00 out of 8 (100.00%) + 2432 atoms + replicate CPU = 0.001 seconds + + +pair_style reaxff NULL +pair_coeff * * ffield.reax.hns C H O N + +compute reax all pair reaxff + +neighbor 1.0 bin +neigh_modify every 20 delay 0 check no + +timestep 0.1 + +thermo_style custom step temp pe press evdwl ecoul vol +thermo_modify norm yes +thermo 10 + +velocity all create 300.0 41279 loop geom + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 reaxff + +run $t +run 100 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 20 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 5 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 215 | 215 | 215 Mbytes + Step Temp PotEng Press E_vdwl E_coul Volume + 0 300 -113.27833 437.52149 -111.57687 -1.7014647 27418.867 + 10 299.38517 -113.27631 1439.2564 -111.57492 -1.7013814 27418.867 + 20 300.27107 -113.27884 3764.4017 -111.57762 -1.7012246 27418.867 + 30 302.21064 -113.28428 7007.6558 -111.58335 -1.7009364 27418.867 + 40 303.52265 -113.28799 9844.8196 -111.58747 -1.7005186 27418.867 + 50 301.8706 -113.28324 9663.08 -111.58318 -1.7000523 27418.867 + 60 296.67808 -113.26777 7273.8875 -111.56815 -1.6996136 27418.867 + 70 292.19999 -113.25435 5533.625 -111.55514 -1.6992157 27418.867 + 80 293.58678 -113.25831 5993.4679 -111.55946 -1.6988532 27418.867 + 90 300.62637 -113.27925 7202.8453 -111.58069 -1.6985592 27418.867 + 100 305.38277 -113.29357 10085.747 -111.59518 -1.6983875 27418.867 +Loop time of 17.6114 on 1 procs for 100 steps with 2432 atoms + +Performance: 0.049 ns/day, 489.205 hours/ns, 5.678 timesteps/s, 13.809 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 13.081 | 13.081 | 13.081 | 0.0 | 74.27 +Neigh | 0.25469 | 0.25469 | 0.25469 | 0.0 | 1.45 +Comm | 0.0061082 | 0.0061082 | 0.0061082 | 0.0 | 0.03 +Output | 0.00035315 | 0.00035315 | 0.00035315 | 0.0 | 0.00 +Modify | 4.2687 | 4.2687 | 4.2687 | 0.0 | 24.24 +Other | | 0.0007784 | | | 0.00 + +Nlocal: 2432 ave 2432 max 2432 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 10685 ave 10685 max 10685 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 823958 ave 823958 max 823958 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 823958 +Ave neighs/atom = 338.79852 +Neighbor list builds = 5 +Dangerous builds not checked +Total wall time: 0:00:17 diff --git a/examples/reaxff/HNS/log.30Nov23.reaxff.hns.g++.4 b/examples/reaxff/HNS/log.30Nov23.reaxff.hns.g++.4 new file mode 100644 index 0000000000..d7c3b76f7a --- /dev/null +++ b/examples/reaxff/HNS/log.30Nov23.reaxff.hns.g++.4 @@ -0,0 +1,149 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# Pure HNS crystal, ReaxFF tests for benchmarking LAMMPS +# See README for more info + +variable x index 2 +variable y index 2 +variable z index 2 +variable t index 100 + + +units real +atom_style charge +atom_modify sort 100 0.0 # optional +dimension 3 +boundary p p p + +read_data data.hns-equil +Reading data file ... + triclinic box = (0 0 0) to (22.326 11.1412 13.778966) with tilt (0 -5.02603 0) + 2 by 1 by 2 MPI processor grid + reading atoms ... + 304 atoms + reading velocities ... + 304 velocities + read_data CPU = 0.003 seconds +replicate $x $y $z bbox +replicate 2 $y $z bbox +replicate 2 2 $z bbox +replicate 2 2 2 bbox +Replication is creating a 2x2x2 = 8 times larger system... + triclinic box = (0 0 0) to (44.652 22.2824 27.557932) with tilt (0 -10.05206 0) + 2 by 1 by 2 MPI processor grid + bounding box image = (0 -1 -1) to (0 1 1) + bounding box extra memory = 0.03 MB + average # of replicas added to proc = 5.00 out of 8 (62.50%) + 2432 atoms + replicate CPU = 0.000 seconds + + +pair_style reaxff NULL +pair_coeff * * ffield.reax.hns C H O N + +compute reax all pair reaxff + +neighbor 1.0 bin +neigh_modify every 20 delay 0 check no + +timestep 0.1 + +thermo_style custom step temp pe press evdwl ecoul vol +thermo_modify norm yes +thermo 10 + +velocity all create 300.0 41279 loop geom + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 reaxff + +run $t +run 100 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 20 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 11 + ghost atom cutoff = 11 + binsize = 5.5, bins = 10 5 6 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 103.8 | 103.8 | 103.8 Mbytes + Step Temp PotEng Press E_vdwl E_coul Volume + 0 300 -113.27833 437.52125 -111.57687 -1.7014647 27418.867 + 10 299.38517 -113.27631 1439.2564 -111.57492 -1.7013814 27418.867 + 20 300.27106 -113.27884 3764.3691 -111.57762 -1.7012246 27418.867 + 30 302.21062 -113.28428 7007.6981 -111.58335 -1.7009363 27418.867 + 40 303.52264 -113.28799 9844.8446 -111.58747 -1.7005186 27418.867 + 50 301.87059 -113.28324 9663.0539 -111.58318 -1.7000523 27418.867 + 60 296.67807 -113.26777 7273.8306 -111.56815 -1.6996136 27418.867 + 70 292.19997 -113.25435 5533.612 -111.55514 -1.6992157 27418.867 + 80 293.58675 -113.25831 5993.4344 -111.55946 -1.6988533 27418.867 + 90 300.62636 -113.27925 7202.8636 -111.58069 -1.6985591 27418.867 + 100 305.38278 -113.29357 10085.719 -111.59518 -1.6983876 27418.867 +Loop time of 6.63333 on 4 procs for 100 steps with 2432 atoms + +Performance: 0.130 ns/day, 184.259 hours/ns, 15.075 timesteps/s, 36.663 katom-step/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.1006 | 4.5745 | 5.0624 | 17.4 | 68.96 +Neigh | 0.11589 | 0.11637 | 0.11669 | 0.1 | 1.75 +Comm | 0.0077297 | 0.49567 | 0.96958 | 52.7 | 7.47 +Output | 0.00027396 | 0.00031049 | 0.00038633 | 0.0 | 0.00 +Modify | 1.4458 | 1.4461 | 1.4465 | 0.0 | 21.80 +Other | | 0.0004201 | | | 0.01 + +Nlocal: 608 ave 612 max 604 min +Histogram: 1 0 0 0 0 2 0 0 0 1 +Nghost: 5737.25 ave 5744 max 5732 min +Histogram: 1 0 1 0 0 1 0 0 0 1 +Neighs: 231539 ave 233090 max 229970 min +Histogram: 1 0 0 0 1 1 0 0 0 1 + +Total # of neighbors = 926155 +Ave neighs/atom = 380.82031 +Neighbor list builds = 5 +Dangerous builds not checked +Total wall time: 0:00:06 diff --git a/examples/reaxff/HNS/log.8Mar18.reaxc.hns.g++.1 b/examples/reaxff/HNS/log.8Mar18.reaxc.hns.g++.1 deleted file mode 100644 index d418d287b1..0000000000 --- a/examples/reaxff/HNS/log.8Mar18.reaxc.hns.g++.1 +++ /dev/null @@ -1,115 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# Pure HNS crystal, ReaxFF tests for benchmarking LAMMPS -# See README for more info - -variable x index 2 -variable y index 2 -variable z index 2 -variable t index 100 - - -units real -atom_style charge -atom_modify sort 100 0.0 # optional -dimension 3 -boundary p p p -box tilt large - -read_data data.hns-equil - triclinic box = (0 0 0) to (22.326 11.1412 13.779) with tilt (0 -5.02603 0) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 304 atoms - reading velocities ... - 304 velocities -replicate $x $y $z bbox -replicate 2 $y $z bbox -replicate 2 2 $z bbox -replicate 2 2 2 bbox - triclinic box = (0 0 0) to (44.652 22.2824 27.5579) with tilt (0 -10.0521 0) - 1 by 1 by 1 MPI processor grid - 2432 atoms - Time spent = 0.000789404 secs - - -pair_style reax/c NULL -pair_coeff * * ffield.reax.hns C H O N - -compute reax all pair reax/c - -neighbor 1.0 bin -neigh_modify every 20 delay 0 check no - -timestep 0.1 - -thermo_style custom step temp pe press evdwl ecoul vol -thermo_modify norm yes -thermo 10 - -velocity all create 300.0 41279 loop geom - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 reax/c - -run 100 -Neighbor list info ... - update every 20 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 11 - ghost atom cutoff = 11 - binsize = 5.5, bins = 10 5 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 262.4 | 262.4 | 262.4 Mbytes -Step Temp PotEng Press E_vdwl E_coul Volume - 0 300 -113.27833 437.52103 -111.57687 -1.7014647 27418.867 - 10 299.87174 -113.27778 2033.6337 -111.57645 -1.7013325 27418.867 - 20 300.81718 -113.28046 4817.5889 -111.57931 -1.7011463 27418.867 - 30 301.8622 -113.28323 8303.0039 -111.58237 -1.7008608 27418.867 - 40 302.4646 -113.28493 10519.459 -111.58446 -1.700467 27418.867 - 50 300.79064 -113.27989 10402.291 -111.57987 -1.7000218 27418.867 - 60 296.11534 -113.26599 7929.1348 -111.5664 -1.6995929 27418.867 - 70 291.73354 -113.25289 5071.5459 -111.5537 -1.6991916 27418.867 - 80 292.189 -113.25399 5667.0962 -111.55519 -1.6987993 27418.867 - 90 298.40792 -113.27253 7513.3806 -111.57409 -1.6984403 27418.867 - 100 303.58246 -113.28809 10017.879 -111.58991 -1.698177 27418.867 -Loop time of 59.5461 on 1 procs for 100 steps with 2432 atoms - -Performance: 0.015 ns/day, 1654.060 hours/ns, 1.679 timesteps/s -97.0% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 49.922 | 49.922 | 49.922 | 0.0 | 83.84 -Neigh | 0.53154 | 0.53154 | 0.53154 | 0.0 | 0.89 -Comm | 0.011399 | 0.011399 | 0.011399 | 0.0 | 0.02 -Output | 0.00064397 | 0.00064397 | 0.00064397 | 0.0 | 0.00 -Modify | 9.0782 | 9.0782 | 9.0782 | 0.0 | 15.25 -Other | | 0.002116 | | | 0.00 - -Nlocal: 2432 ave 2432 max 2432 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 10687 ave 10687 max 10687 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 823977 ave 823977 max 823977 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 823977 -Ave neighs/atom = 338.806 -Neighbor list builds = 5 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:01:00 diff --git a/examples/reaxff/HNS/log.8Mar18.reaxc.hns.g++.4 b/examples/reaxff/HNS/log.8Mar18.reaxc.hns.g++.4 deleted file mode 100644 index aef07f80eb..0000000000 --- a/examples/reaxff/HNS/log.8Mar18.reaxc.hns.g++.4 +++ /dev/null @@ -1,115 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# Pure HNS crystal, ReaxFF tests for benchmarking LAMMPS -# See README for more info - -variable x index 2 -variable y index 2 -variable z index 2 -variable t index 100 - - -units real -atom_style charge -atom_modify sort 100 0.0 # optional -dimension 3 -boundary p p p -box tilt large - -read_data data.hns-equil - triclinic box = (0 0 0) to (22.326 11.1412 13.779) with tilt (0 -5.02603 0) - 2 by 1 by 2 MPI processor grid - reading atoms ... - 304 atoms - reading velocities ... - 304 velocities -replicate $x $y $z bbox -replicate 2 $y $z bbox -replicate 2 2 $z bbox -replicate 2 2 2 bbox - triclinic box = (0 0 0) to (44.652 22.2824 27.5579) with tilt (0 -10.0521 0) - 2 by 1 by 2 MPI processor grid - 2432 atoms - Time spent = 0.000398397 secs - - -pair_style reax/c NULL -pair_coeff * * ffield.reax.hns C H O N - -compute reax all pair reax/c - -neighbor 1.0 bin -neigh_modify every 20 delay 0 check no - -timestep 0.1 - -thermo_style custom step temp pe press evdwl ecoul vol -thermo_modify norm yes -thermo 10 - -velocity all create 300.0 41279 loop geom - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 reax/c - -run 100 -Neighbor list info ... - update every 20 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 11 - ghost atom cutoff = 11 - binsize = 5.5, bins = 10 5 6 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 126.6 | 126.6 | 126.6 Mbytes -Step Temp PotEng Press E_vdwl E_coul Volume - 0 300 -113.27833 437.52112 -111.57687 -1.7014647 27418.867 - 10 299.87174 -113.27778 2033.632 -111.57645 -1.7013325 27418.867 - 20 300.81719 -113.28046 4817.5761 -111.57931 -1.7011463 27418.867 - 30 301.8622 -113.28323 8302.9767 -111.58237 -1.7008609 27418.867 - 40 302.4646 -113.28493 10519.481 -111.58446 -1.700467 27418.867 - 50 300.79064 -113.27989 10402.312 -111.57987 -1.7000217 27418.867 - 60 296.11534 -113.26599 7929.1393 -111.5664 -1.6995929 27418.867 - 70 291.73354 -113.25289 5071.5368 -111.5537 -1.6991916 27418.867 - 80 292.18901 -113.25399 5667.1118 -111.55519 -1.6987993 27418.867 - 90 298.40793 -113.27253 7513.4029 -111.57409 -1.6984403 27418.867 - 100 303.58247 -113.28809 10017.892 -111.58991 -1.698177 27418.867 -Loop time of 21.3933 on 4 procs for 100 steps with 2432 atoms - -Performance: 0.040 ns/day, 594.257 hours/ns, 4.674 timesteps/s -97.6% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 14.863 | 16.367 | 18.027 | 28.6 | 76.51 -Neigh | 0.23943 | 0.2422 | 0.24658 | 0.6 | 1.13 -Comm | 0.024331 | 1.6845 | 3.189 | 89.2 | 7.87 -Output | 0.00051165 | 0.00056899 | 0.00068665 | 0.0 | 0.00 -Modify | 3.0933 | 3.0969 | 3.0999 | 0.1 | 14.48 -Other | | 0.001784 | | | 0.01 - -Nlocal: 608 ave 608 max 608 min -Histogram: 4 0 0 0 0 0 0 0 0 0 -Nghost: 5738.25 ave 5742 max 5734 min -Histogram: 1 1 0 0 0 0 0 0 0 2 -Neighs: 231544 ave 231625 max 231466 min -Histogram: 2 0 0 0 0 0 0 0 0 2 - -Total # of neighbors = 926176 -Ave neighs/atom = 380.829 -Neighbor list builds = 5 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:21 diff --git a/examples/reaxff/RDX/in.RDX b/examples/reaxff/RDX/in.RDX index 67d6145787..a510390a03 100644 --- a/examples/reaxff/RDX/in.RDX +++ b/examples/reaxff/RDX/in.RDX @@ -1,23 +1,23 @@ # REAX potential for high energy CHON systems # ..... -units real +units real -atom_style charge -read_data data.RDX +atom_style charge +read_data data.RDX -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.rdx H C O N +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.rdx H C O N -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 +thermo 100 +#dump 1 all atom 30 dump.reax.rdx -#dump 1 all atom 30 dump.reax.rdx - -run 3000 +run 3000 diff --git a/examples/reaxff/RDX/lmp_control b/examples/reaxff/RDX/lmp_control index c729255b45..b97ad8a67f 100644 --- a/examples/reaxff/RDX/lmp_control +++ b/examples/reaxff/RDX/lmp_control @@ -1,17 +1,8 @@ -simulation_name RDX_example ! output files will carry this name + their specific ext -tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 +tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A -hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs -thb_cutoff 0.001 ! cutoff value for three body interactions +nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A +hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs +thb_cutoff 0.001 ! cutoff value for three body interactions -write_freq 1 ! write trajectory after so many steps -traj_title RDX ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file diff --git a/examples/reaxff/RDX/log.30Nov23.RDX.g++.1 b/examples/reaxff/RDX/log.30Nov23.RDX.g++.1 new file mode 100644 index 0000000000..7d2214a6c8 --- /dev/null +++ b/examples/reaxff/RDX/log.30Nov23.RDX.g++.1 @@ -0,0 +1,140 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for high energy CHON systems +# ..... + +units real + +atom_style charge +read_data data.RDX +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.rdx H C O N +Reading potential file ffield.reax.rdx with DATE: 2010-02-19 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 +#dump 1 all atom 30 dump.reax.rdx + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 16.3 | 16.3 | 16.3 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -10197.932 0 -10197.932 38.347492 + 100 47.478574 -10176.425 0 -10161.706 632.99863 + 200 166.95277 -10181.513 0 -10129.757 -27.107717 + 300 142.53594 -10148.039 0 -10103.853 5120.6794 + 400 322.68495 -10178.868 0 -10078.834 2342.89 + 500 193.81476 -10117.984 0 -10057.901 8412.5289 + 600 300.27155 -10134.473 0 -10041.388 -2801.8661 + 700 272.63426 -10110.146 0 -10025.629 10749.023 + 800 339.99867 -10114.124 0 -10008.723 5122.9966 + 900 231.65547 -10068.587 0 -9996.7728 5306.059 + 1000 329.92918 -10088.776 0 -9986.4964 3190.1697 + 1100 376.60905 -10092.398 0 -9975.6476 2921.9605 + 1200 361.98746 -10076.599 0 -9964.3813 3612.0455 + 1300 358.65631 -10069.365 0 -9958.1802 4339.8435 + 1400 470.15262 -10098.553 0 -9952.8035 -146.0811 + 1500 509.62274 -10106.57 0 -9948.5844 2356.8592 + 1600 417.89364 -10075.274 0 -9945.7249 1760.5655 + 1700 453.21317 -10084.329 0 -9943.8306 -570.32375 + 1800 472.92112 -10087.83 0 -9941.2221 1550.3495 + 1900 507.18794 -10096.441 0 -9939.2102 -460.65809 + 2000 443.55347 -10076.832 0 -9939.3281 -145.14295 + 2100 485.44451 -10088.451 0 -9937.9611 -614.40787 + 2200 507.52411 -10095.157 0 -9937.8226 1308.3869 + 2300 496.44961 -10089.637 0 -9935.7354 206.44147 + 2400 457.99343 -10078.114 0 -9936.1344 810.80538 + 2500 507.88115 -10092.692 0 -9935.2463 -464.87873 + 2600 437.84198 -10069.789 0 -9934.0561 1323.4191 + 2700 503.09017 -10088.945 0 -9932.9853 1133.3561 + 2800 481.73908 -10082.193 0 -9932.852 -27.838881 + 2900 487.56555 -10082.752 0 -9931.6045 1772.2131 + 3000 510.30601 -10091.368 0 -9933.1706 1273.0501 +Loop time of 5.35022 on 1 procs for 3000 steps with 105 atoms + +Performance: 12.112 ns/day, 1.982 hours/ns, 560.725 timesteps/s, 58.876 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.7927 | 4.7927 | 4.7927 | 0.0 | 89.58 +Neigh | 0.15169 | 0.15169 | 0.15169 | 0.0 | 2.84 +Comm | 0.011036 | 0.011036 | 0.011036 | 0.0 | 0.21 +Output | 0.00080628 | 0.00080628 | 0.00080628 | 0.0 | 0.02 +Modify | 0.3906 | 0.3906 | 0.3906 | 0.0 | 7.30 +Other | | 0.003436 | | | 0.06 + +Nlocal: 105 ave 105 max 105 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 645 ave 645 max 645 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3065 ave 3065 max 3065 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3065 +Ave neighs/atom = 29.190476 +Neighbor list builds = 300 +Dangerous builds not checked +Total wall time: 0:00:05 diff --git a/examples/reaxff/RDX/log.30Nov23.RDX.g++.4 b/examples/reaxff/RDX/log.30Nov23.RDX.g++.4 new file mode 100644 index 0000000000..37481acd1b --- /dev/null +++ b/examples/reaxff/RDX/log.30Nov23.RDX.g++.4 @@ -0,0 +1,140 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for high energy CHON systems +# ..... + +units real + +atom_style charge +read_data data.RDX +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.rdx H C O N +Reading potential file ffield.reax.rdx with DATE: 2010-02-19 + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 +#dump 1 all atom 30 dump.reax.rdx + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 10.78 | 11.56 | 12.26 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -10197.932 0 -10197.932 38.347492 + 100 47.47852 -10176.425 0 -10161.706 632.97359 + 200 166.95287 -10181.513 0 -10129.757 -27.146803 + 300 142.53582 -10148.039 0 -10103.852 5120.6397 + 400 322.68523 -10178.868 0 -10078.834 2342.7187 + 500 193.81484 -10117.984 0 -10057.901 8412.4559 + 600 300.27165 -10134.473 0 -10041.388 -2801.9143 + 700 272.63408 -10110.146 0 -10025.629 10749.2 + 800 339.99669 -10114.123 0 -10008.723 5123.2489 + 900 231.65632 -10068.587 0 -9996.7729 5306.0392 + 1000 329.93324 -10088.777 0 -9986.4967 3190.4707 + 1100 376.60924 -10092.398 0 -9975.6478 2920.8475 + 1200 361.98231 -10076.598 0 -9964.3816 3612.0573 + 1300 358.6599 -10069.366 0 -9958.1803 4341.9871 + 1400 470.14856 -10098.552 0 -9952.8036 -146.9069 + 1500 509.6454 -10106.577 0 -9948.5847 2355.4022 + 1600 417.9276 -10075.284 0 -9945.7249 1749.565 + 1700 453.25817 -10084.343 0 -9943.8306 -570.48011 + 1800 472.9517 -10087.84 0 -9941.2226 1532.6424 + 1900 507.14171 -10096.428 0 -9939.212 -404.84948 + 2000 443.62843 -10076.86 0 -9939.3329 -132.17302 + 2100 485.441 -10088.414 0 -9937.925 -609.75758 + 2200 507.23914 -10095.067 0 -9937.8209 1288.5372 + 2300 499.64956 -10090.665 0 -9935.7719 149.06622 + 2400 457.97848 -10078.107 0 -9936.1317 2065.2075 + 2500 510.58254 -10093.537 0 -9935.2543 -559.75965 + 2600 440.97503 -10070.865 0 -9934.1605 1164.1078 + 2700 500.4945 -10088.165 0 -9933.0096 1051.9016 + 2800 485.77814 -10083.543 0 -9932.9498 294.64404 + 2900 487.73983 -10082.939 0 -9931.7373 2208.263 + 3000 504.69717 -10089.803 0 -9933.3447 1723.6386 +Loop time of 2.81192 on 4 procs for 3000 steps with 105 atoms + +Performance: 23.045 ns/day, 1.041 hours/ns, 1066.887 timesteps/s, 112.023 katom-step/s +99.3% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 2.0513 | 2.1567 | 2.2232 | 4.3 | 76.70 +Neigh | 0.072125 | 0.087048 | 0.10214 | 3.7 | 3.10 +Comm | 0.086792 | 0.15326 | 0.25749 | 16.2 | 5.45 +Output | 0.00058533 | 0.00064027 | 0.00080207 | 0.0 | 0.02 +Modify | 0.39587 | 0.41124 | 0.42647 | 1.7 | 14.62 +Other | | 0.003062 | | | 0.11 + +Nlocal: 26.25 ave 46 max 8 min +Histogram: 1 0 0 1 0 1 0 0 0 1 +Nghost: 399.5 ave 512 max 288 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Neighs: 1011.25 ave 1819 max 420 min +Histogram: 1 0 1 1 0 0 0 0 0 1 + +Total # of neighbors = 4045 +Ave neighs/atom = 38.52381 +Neighbor list builds = 300 +Dangerous builds not checked +Total wall time: 0:00:02 diff --git a/examples/reaxff/RDX/log.8Mar18.RDX.g++.1 b/examples/reaxff/RDX/log.8Mar18.RDX.g++.1 deleted file mode 100644 index d0765a97a5..0000000000 --- a/examples/reaxff/RDX/log.8Mar18.RDX.g++.1 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for high energy CHON systems -# ..... - -units real - -atom_style charge -read_data data.RDX - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.rdx H C O N -Reading potential file ffield.reax.rdx with DATE: 2010-02-19 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.rdx - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 19 | 19 | 19 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -10197.932 0 -10197.932 38.347492 - 3000 510.63767 -10091.537 0 -9933.2374 1144.545 -Loop time of 21.2931 on 1 procs for 3000 steps with 105 atoms - -Performance: 3.043 ns/day, 7.886 hours/ns, 140.891 timesteps/s -97.6% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 19.887 | 19.887 | 19.887 | 0.0 | 93.40 -Neigh | 0.33143 | 0.33143 | 0.33143 | 0.0 | 1.56 -Comm | 0.02079 | 0.02079 | 0.02079 | 0.0 | 0.10 -Output | 2.5272e-05 | 2.5272e-05 | 2.5272e-05 | 0.0 | 0.00 -Modify | 1.0478 | 1.0478 | 1.0478 | 0.0 | 4.92 -Other | | 0.006125 | | | 0.03 - -Nlocal: 105 ave 105 max 105 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 645 ave 645 max 645 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 3063 ave 3063 max 3063 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 3063 -Ave neighs/atom = 29.1714 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:21 diff --git a/examples/reaxff/RDX/log.8Mar18.RDX.g++.4 b/examples/reaxff/RDX/log.8Mar18.RDX.g++.4 deleted file mode 100644 index 7082d30636..0000000000 --- a/examples/reaxff/RDX/log.8Mar18.RDX.g++.4 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for high energy CHON systems -# ..... - -units real - -atom_style charge -read_data data.RDX - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.rdx H C O N -Reading potential file ffield.reax.rdx with DATE: 2010-02-19 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.rdx - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 12.14 | 13.04 | 13.9 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -10197.932 0 -10197.932 38.347492 - 3000 509.89257 -10091.36 0 -9933.2916 1406.1215 -Loop time of 10.8858 on 4 procs for 3000 steps with 105 atoms - -Performance: 5.953 ns/day, 4.032 hours/ns, 275.588 timesteps/s -98.1% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 9.3081 | 9.4054 | 9.4994 | 2.6 | 86.40 -Neigh | 0.15541 | 0.18258 | 0.2099 | 4.7 | 1.68 -Comm | 0.070516 | 0.16621 | 0.26541 | 19.7 | 1.53 -Output | 2.2173e-05 | 2.5153e-05 | 3.3855e-05 | 0.0 | 0.00 -Modify | 1.0979 | 1.1272 | 1.1568 | 2.1 | 10.35 -Other | | 0.004379 | | | 0.04 - -Nlocal: 26.25 ave 46 max 8 min -Histogram: 1 0 0 1 0 1 0 0 0 1 -Nghost: 399.5 ave 512 max 288 min -Histogram: 1 0 0 1 0 0 1 0 0 1 -Neighs: 1011.25 ave 1819 max 420 min -Histogram: 1 0 1 1 0 0 0 0 0 1 - -Total # of neighbors = 4045 -Ave neighs/atom = 38.5238 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:11 diff --git a/examples/reaxff/VOH/in.VOH b/examples/reaxff/VOH/in.VOH index 82fa8d1811..3a1047f2c3 100644 --- a/examples/reaxff/VOH/in.VOH +++ b/examples/reaxff/VOH/in.VOH @@ -1,23 +1,23 @@ # REAX potential for VOH system # ..... -units real +units real -atom_style charge -read_data data.VOH +atom_style charge +read_data data.VOH -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.V_O_C_H H C O V +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.V_O_C_H H C O V -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 -#dump 1 all atom 30 dump.reax.voh - -run 3000 +#dump 1 all atom 30 dump.reax.voh +thermo 100 +run 2000 diff --git a/examples/reaxff/VOH/lmp_control b/examples/reaxff/VOH/lmp_control index 735540053f..b97ad8a67f 100644 --- a/examples/reaxff/VOH/lmp_control +++ b/examples/reaxff/VOH/lmp_control @@ -1,17 +1,8 @@ -simulation_name VOH_example ! output files will carry this name + their specific ext -tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 +tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A -hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions -bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs -thb_cutoff 0.001 ! cutoff value for three body interactions +nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A +hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions +bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs +thb_cutoff 0.001 ! cutoff value for three body interactions -write_freq 1 ! write trajectory after so many steps -traj_title VOH ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file diff --git a/examples/reaxff/VOH/log.30Nov23.VOH.g++.1 b/examples/reaxff/VOH/log.30Nov23.VOH.g++.1 new file mode 100644 index 0000000000..d649653444 --- /dev/null +++ b/examples/reaxff/VOH/log.30Nov23.VOH.g++.1 @@ -0,0 +1,131 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for VOH system +# ..... + +units real + +atom_style charge +read_data data.VOH +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 100 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.V_O_C_H H C O V +Reading potential file ffield.reax.V_O_C_H with DATE: 2011-02-18 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 + +#dump 1 all atom 30 dump.reax.voh +thermo 100 +run 2000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 15.34 | 15.34 | 15.34 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -10246.825 0 -10246.825 42.256089 + 100 83.813625 -10238.056 0 -10213.322 -246.37234 + 200 128.47312 -10221.424 0 -10183.511 -896.05588 + 300 199.45833 -10218.343 0 -10159.482 -66.676466 + 400 243.93496 -10211.648 0 -10139.663 -1073.274 + 500 314.81116 -10216.592 0 -10123.692 542.54772 + 600 361.45977 -10217.717 0 -10111.05 205.47425 + 700 392.16954 -10215.815 0 -10100.086 -283.06967 + 800 392.49036 -10206.909 0 -10091.085 953.23712 + 900 426.51015 -10209.352 0 -10083.489 473.9928 + 1000 398.23517 -10195.103 0 -10077.584 243.59494 + 1100 414.05403 -10192.081 0 -10069.893 1063.7609 + 1200 442.70037 -10196.631 0 -10065.99 -1189.773 + 1300 470.32545 -10201.252 0 -10062.459 -132.3016 + 1400 446.97236 -10189.078 0 -10057.176 9.8938187 + 1500 475.7665 -10195.598 0 -10055.199 -877.81691 + 1600 440.45154 -10181.071 0 -10051.093 579.85471 + 1700 517.45211 -10201.067 0 -10048.367 136.58133 + 1800 461.86671 -10182.818 0 -10046.521 -260.09694 + 1900 463.99242 -10181.136 0 -10044.211 1567.8398 + 2000 476.73786 -10184.032 0 -10043.346 -883.50859 +Loop time of 1.94324 on 1 procs for 2000 steps with 100 atoms + +Performance: 22.231 ns/day, 1.080 hours/ns, 1029.207 timesteps/s, 102.921 katom-step/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.5707 | 1.5707 | 1.5707 | 0.0 | 80.83 +Neigh | 0.1054 | 0.1054 | 0.1054 | 0.0 | 5.42 +Comm | 0.005606 | 0.005606 | 0.005606 | 0.0 | 0.29 +Output | 0.00053398 | 0.00053398 | 0.00053398 | 0.0 | 0.03 +Modify | 0.2594 | 0.2594 | 0.2594 | 0.0 | 13.35 +Other | | 0.001603 | | | 0.08 + +Nlocal: 100 ave 100 max 100 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 638 ave 638 max 638 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3434 ave 3434 max 3434 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3434 +Ave neighs/atom = 34.34 +Neighbor list builds = 200 +Dangerous builds not checked +Total wall time: 0:00:01 diff --git a/examples/reaxff/VOH/log.30Nov23.VOH.g++.4 b/examples/reaxff/VOH/log.30Nov23.VOH.g++.4 new file mode 100644 index 0000000000..a7363ee766 --- /dev/null +++ b/examples/reaxff/VOH/log.30Nov23.VOH.g++.4 @@ -0,0 +1,131 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for VOH system +# ..... + +units real + +atom_style charge +read_data data.VOH +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 100 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.V_O_C_H H C O V +Reading potential file ffield.reax.V_O_C_H with DATE: 2011-02-18 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 + +#dump 1 all atom 30 dump.reax.voh +thermo 100 +run 2000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 10.04 | 11.12 | 12.06 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -10246.825 0 -10246.825 42.256092 + 100 83.813732 -10238.056 0 -10213.322 -246.39794 + 200 128.4729 -10221.424 0 -10183.511 -896.07308 + 300 199.45765 -10218.342 0 -10159.482 -66.695871 + 400 243.93632 -10211.649 0 -10139.663 -1073.2779 + 500 314.81228 -10216.592 0 -10123.691 542.5312 + 600 361.46099 -10217.717 0 -10111.05 205.56032 + 700 392.16903 -10215.815 0 -10100.086 -283.00265 + 800 392.48962 -10206.909 0 -10091.085 953.23878 + 900 426.50866 -10209.352 0 -10083.489 474.04312 + 1000 398.23724 -10195.104 0 -10077.584 243.52194 + 1100 414.05514 -10192.081 0 -10069.893 1063.726 + 1200 442.70432 -10196.633 0 -10065.99 -1189.8309 + 1300 470.32067 -10201.251 0 -10062.459 -132.41831 + 1400 447.00366 -10189.087 0 -10057.177 10.168781 + 1500 475.77239 -10195.599 0 -10055.199 -877.85409 + 1600 440.43788 -10181.066 0 -10051.092 580.25473 + 1700 517.37824 -10201.044 0 -10048.366 136.09841 + 1800 461.75464 -10182.78 0 -10046.517 -259.88878 + 1900 464.0812 -10181.158 0 -10044.207 1566.4734 + 2000 476.55134 -10183.975 0 -10043.344 -884.37537 +Loop time of 1.16101 on 4 procs for 2000 steps with 100 atoms + +Performance: 37.209 ns/day, 0.645 hours/ns, 1722.640 timesteps/s, 172.264 katom-step/s +99.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.65447 | 0.69002 | 0.77443 | 6.0 | 59.43 +Neigh | 0.050397 | 0.060259 | 0.06883 | 2.7 | 5.19 +Comm | 0.03061 | 0.1145 | 0.15016 | 14.5 | 9.86 +Output | 0.00039488 | 0.00043537 | 0.00055434 | 0.0 | 0.04 +Modify | 0.28585 | 0.29446 | 0.30467 | 1.2 | 25.36 +Other | | 0.00134 | | | 0.12 + +Nlocal: 25 ave 36 max 10 min +Histogram: 1 0 0 0 0 1 0 0 1 1 +Nghost: 385.75 ave 472 max 299 min +Histogram: 1 0 0 1 0 0 1 0 0 1 +Neighs: 1077 ave 1693 max 379 min +Histogram: 1 0 0 1 0 0 0 0 1 1 + +Total # of neighbors = 4308 +Ave neighs/atom = 43.08 +Neighbor list builds = 200 +Dangerous builds not checked +Total wall time: 0:00:01 diff --git a/examples/reaxff/VOH/log.8Mar18.VOH.g++.1 b/examples/reaxff/VOH/log.8Mar18.VOH.g++.1 deleted file mode 100644 index 924769e570..0000000000 --- a/examples/reaxff/VOH/log.8Mar18.VOH.g++.1 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for VOH system -# ..... - -units real - -atom_style charge -read_data data.VOH - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 100 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.V_O_C_H H C O V -Reading potential file ffield.reax.V_O_C_H with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.voh - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 17.79 | 17.79 | 17.79 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -10246.825 0 -10246.825 42.256089 - 3000 476.73301 -10185.256 0 -10044.572 -694.70737 -Loop time of 11.0577 on 1 procs for 3000 steps with 100 atoms - -Performance: 5.860 ns/day, 4.095 hours/ns, 271.304 timesteps/s -98.9% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 9.6785 | 9.6785 | 9.6785 | 0.0 | 87.53 -Neigh | 0.32599 | 0.32599 | 0.32599 | 0.0 | 2.95 -Comm | 0.017231 | 0.017231 | 0.017231 | 0.0 | 0.16 -Output | 2.5511e-05 | 2.5511e-05 | 2.5511e-05 | 0.0 | 0.00 -Modify | 1.0311 | 1.0311 | 1.0311 | 0.0 | 9.32 -Other | | 0.004857 | | | 0.04 - -Nlocal: 100 ave 100 max 100 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 598 ave 598 max 598 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 3390 ave 3390 max 3390 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 3390 -Ave neighs/atom = 33.9 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:11 diff --git a/examples/reaxff/VOH/log.8Mar18.VOH.g++.4 b/examples/reaxff/VOH/log.8Mar18.VOH.g++.4 deleted file mode 100644 index 0395af6671..0000000000 --- a/examples/reaxff/VOH/log.8Mar18.VOH.g++.4 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for VOH system -# ..... - -units real - -atom_style charge -read_data data.VOH - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 100 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.V_O_C_H H C O V -Reading potential file ffield.reax.V_O_C_H with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.voh - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 11.21 | 12.52 | 13.64 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -10246.825 0 -10246.825 42.256092 - 3000 489.67803 -10188.866 0 -10044.362 -553.7513 -Loop time of 6.49847 on 4 procs for 3000 steps with 100 atoms - -Performance: 9.972 ns/day, 2.407 hours/ns, 461.647 timesteps/s -97.7% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 4.7412 | 4.8453 | 4.9104 | 2.9 | 74.56 -Neigh | 0.1468 | 0.17834 | 0.20151 | 4.7 | 2.74 -Comm | 0.071841 | 0.14037 | 0.24502 | 17.2 | 2.16 -Output | 2.1219e-05 | 2.408e-05 | 3.1948e-05 | 0.0 | 0.00 -Modify | 1.3072 | 1.3308 | 1.3627 | 1.7 | 20.48 -Other | | 0.003713 | | | 0.06 - -Nlocal: 25 ave 38 max 11 min -Histogram: 1 0 0 0 1 0 1 0 0 1 -Nghost: 369.75 ave 453 max 283 min -Histogram: 1 0 0 0 1 1 0 0 0 1 -Neighs: 1082.25 ave 1788 max 417 min -Histogram: 1 0 1 0 0 0 1 0 0 1 - -Total # of neighbors = 4329 -Ave neighs/atom = 43.29 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:06 diff --git a/examples/reaxff/ZnOH2/in.ZnOH2 b/examples/reaxff/ZnOH2/in.ZnOH2 index f39b1a29dd..75a2d05f4b 100644 --- a/examples/reaxff/ZnOH2/in.ZnOH2 +++ b/examples/reaxff/ZnOH2/in.ZnOH2 @@ -1,23 +1,24 @@ # REAX potential for ZnOH2 system # ..... -units real +units real -atom_style charge -read_data data.ZnOH2 +atom_style charge +read_data data.ZnOH2 -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.ZnOH H O Zn +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.ZnOH H O Zn -neighbor 2 bin -neigh_modify every 10 delay 0 check no +neighbor 2 bin +neigh_modify every 10 delay 0 check no -fix 1 all nve +fix 1 all nve fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq fix 3 all temp/berendsen 500.0 500.0 100.0 -timestep 0.25 +timestep 0.25 +thermo 100 -#dump 1 all atom 30 dump.reax.znoh +#dump 1 all atom 30 dump.reax.znoh -run 3000 +run 1000 diff --git a/examples/reaxff/ZnOH2/lmp_control b/examples/reaxff/ZnOH2/lmp_control index 0fb44fe862..10c27d025d 100644 --- a/examples/reaxff/ZnOH2/lmp_control +++ b/examples/reaxff/ZnOH2/lmp_control @@ -1,17 +1,7 @@ -simulation_name ZnOH2_example ! output files will carry this name + their specific ext tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation -energy_update_freq 1 nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs thb_cutoff 0.001 ! cutoff value for three body interactions - -write_freq 1 ! write trajectory after so many steps -traj_title ZnOH2 ! (no white spaces) -atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file -atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file -atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file -bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file -angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file diff --git a/examples/reaxff/ZnOH2/log.30Nov23.ZnOH2.g++.1 b/examples/reaxff/ZnOH2/log.30Nov23.ZnOH2.g++.1 new file mode 100644 index 0000000000..850eeb3f3e --- /dev/null +++ b/examples/reaxff/ZnOH2/log.30Nov23.ZnOH2.g++.1 @@ -0,0 +1,122 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for ZnOH2 system +# ..... + +units real + +atom_style charge +read_data data.ZnOH2 +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.000 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.ZnOH H O Zn +Reading potential file ffield.reax.ZnOH with DATE: 2011-02-18 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 + +#dump 1 all atom 30 dump.reax.znoh + +run 1000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 15.8 | 15.8 | 15.8 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -7900.2668 0 -7900.2668 60.076093 + 100 89.745108 -7892.7937 0 -7864.9724 -359.37879 + 200 151.73431 -7883.2823 0 -7836.244 118.04838 + 300 223.74392 -7881.6513 0 -7812.2898 -97.069674 + 400 293.70909 -7883.7754 0 -7792.7243 -384.10332 + 500 301.22843 -7869.313 0 -7775.9309 76.604433 + 600 317.45476 -7860.4665 0 -7762.0541 40.95095 + 700 335.70939 -7853.865 0 -7749.7937 -173.3119 + 800 380.48725 -7857.8679 0 -7739.9152 -139.88773 + 900 502.93129 -7891.7095 0 -7735.7987 488.40109 + 1000 510.36735 -7894.0653 0 -7735.8493 -222.85193 +Loop time of 0.583996 on 1 procs for 1000 steps with 105 atoms + +Performance: 36.987 ns/day, 0.649 hours/ns, 1712.342 timesteps/s, 179.796 katom-step/s +99.6% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.41526 | 0.41526 | 0.41526 | 0.0 | 71.11 +Neigh | 0.058908 | 0.058908 | 0.058908 | 0.0 | 10.09 +Comm | 0.0028308 | 0.0028308 | 0.0028308 | 0.0 | 0.48 +Output | 0.00021295 | 0.00021295 | 0.00021295 | 0.0 | 0.04 +Modify | 0.1061 | 0.1061 | 0.1061 | 0.0 | 18.17 +Other | | 0.0006844 | | | 0.12 + +Nlocal: 105 ave 105 max 105 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 640 ave 640 max 640 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 3934 ave 3934 max 3934 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 3934 +Ave neighs/atom = 37.466667 +Neighbor list builds = 100 +Dangerous builds not checked +Total wall time: 0:00:00 diff --git a/examples/reaxff/ZnOH2/log.30Nov23.ZnOH2.g++.4 b/examples/reaxff/ZnOH2/log.30Nov23.ZnOH2.g++.4 new file mode 100644 index 0000000000..d98fe1df74 --- /dev/null +++ b/examples/reaxff/ZnOH2/log.30Nov23.ZnOH2.g++.4 @@ -0,0 +1,122 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +# REAX potential for ZnOH2 system +# ..... + +units real + +atom_style charge +read_data data.ZnOH2 +Reading data file ... + orthogonal box = (0 0 0) to (25 25 25) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 105 atoms + read_data CPU = 0.001 seconds + +pair_style reaxff lmp_control +pair_coeff * * ffield.reax.ZnOH H O Zn +Reading potential file ffield.reax.ZnOH with DATE: 2011-02-18 +WARNING: Changed valency_val to valency_boc for X (src/REAXFF/reaxff_ffield.cpp:289) + +neighbor 2 bin +neigh_modify every 10 delay 0 check no + +fix 1 all nve +fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq +fix 3 all temp/berendsen 500.0 500.0 100.0 + +timestep 0.25 +thermo 100 + +#dump 1 all atom 30 dump.reax.znoh + +run 1000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +- fix qeq/reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Neighbor list info ... + update: every = 10 steps, delay = 0 steps, check = no + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 12 + ghost atom cutoff = 12 + binsize = 6, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) fix qeq/reax, perpetual, copy from (1) + attributes: half, newton off + pair build: copy + stencil: none + bin: none +Per MPI rank memory allocation (min/avg/max) = 10.1 | 11.34 | 12.51 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 0 -7900.2668 0 -7900.2668 60.076093 + 100 89.745102 -7892.7938 0 -7864.9724 -359.39279 + 200 151.73402 -7883.2823 0 -7836.2441 118.03582 + 300 223.74416 -7881.6514 0 -7812.2897 -97.060088 + 400 293.70926 -7883.7754 0 -7792.7242 -384.10477 + 500 301.22851 -7869.3129 0 -7775.9308 76.601414 + 600 317.45436 -7860.4664 0 -7762.0542 40.946828 + 700 335.70975 -7853.8651 0 -7749.7936 -173.31084 + 800 380.48744 -7857.868 0 -7739.9153 -139.87915 + 900 502.93034 -7891.7094 0 -7735.7989 488.3973 + 1000 510.36634 -7894.0651 0 -7735.8493 -222.85474 +Loop time of 0.345754 on 4 procs for 1000 steps with 105 atoms + +Performance: 62.472 ns/day, 0.384 hours/ns, 2892.228 timesteps/s, 303.684 katom-step/s +99.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.18043 | 0.18884 | 0.19544 | 1.3 | 54.62 +Neigh | 0.027479 | 0.033519 | 0.039456 | 2.3 | 9.69 +Comm | 0.01673 | 0.023479 | 0.031605 | 3.6 | 6.79 +Output | 0.00019732 | 0.0002106 | 0.00024979 | 0.0 | 0.06 +Modify | 0.093437 | 0.099224 | 0.10519 | 1.3 | 28.70 +Other | | 0.0004842 | | | 0.14 + +Nlocal: 26.25 ave 41 max 11 min +Histogram: 1 0 0 0 1 0 1 0 0 1 +Nghost: 390.25 ave 491 max 286 min +Histogram: 1 0 0 0 1 1 0 0 0 1 +Neighs: 1154 ave 1912 max 445 min +Histogram: 1 0 0 1 0 1 0 0 0 1 + +Total # of neighbors = 4616 +Ave neighs/atom = 43.961905 +Neighbor list builds = 100 +Dangerous builds not checked +Total wall time: 0:00:00 diff --git a/examples/reaxff/ZnOH2/log.8Mar18.ZnOH2.g++.1 b/examples/reaxff/ZnOH2/log.8Mar18.ZnOH2.g++.1 deleted file mode 100644 index 58b1a36719..0000000000 --- a/examples/reaxff/ZnOH2/log.8Mar18.ZnOH2.g++.1 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for ZnOH2 system -# ..... - -units real - -atom_style charge -read_data data.ZnOH2 - orthogonal box = (0 0 0) to (25 25 25) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.ZnOH H O Zn -Reading potential file ffield.reax.ZnOH with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.znoh - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 18.36 | 18.36 | 18.36 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -7900.2668 0 -7900.2668 60.076093 - 3000 535.58577 -7934.7287 0 -7768.6948 -475.46237 -Loop time of 7.29784 on 1 procs for 3000 steps with 105 atoms - -Performance: 8.879 ns/day, 2.703 hours/ns, 411.081 timesteps/s -97.3% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 5.9988 | 5.9988 | 5.9988 | 0.0 | 82.20 -Neigh | 0.37455 | 0.37455 | 0.37455 | 0.0 | 5.13 -Comm | 0.019186 | 0.019186 | 0.019186 | 0.0 | 0.26 -Output | 2.4557e-05 | 2.4557e-05 | 2.4557e-05 | 0.0 | 0.00 -Modify | 0.89915 | 0.89915 | 0.89915 | 0.0 | 12.32 -Other | | 0.006108 | | | 0.08 - -Nlocal: 105 ave 105 max 105 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 649 ave 649 max 649 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 3971 ave 3971 max 3971 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 3971 -Ave neighs/atom = 37.819 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:07 diff --git a/examples/reaxff/ZnOH2/log.8Mar18.ZnOH2.g++.4 b/examples/reaxff/ZnOH2/log.8Mar18.ZnOH2.g++.4 deleted file mode 100644 index 77c5cbe1b7..0000000000 --- a/examples/reaxff/ZnOH2/log.8Mar18.ZnOH2.g++.4 +++ /dev/null @@ -1,81 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -# REAX potential for ZnOH2 system -# ..... - -units real - -atom_style charge -read_data data.ZnOH2 - orthogonal box = (0 0 0) to (25 25 25) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 105 atoms - -pair_style reax/c lmp_control -pair_coeff * * ffield.reax.ZnOH H O Zn -Reading potential file ffield.reax.ZnOH with DATE: 2011-02-18 - -neighbor 2 bin -neigh_modify every 10 delay 0 check no - -fix 1 all nve -fix 2 all qeq/reax 1 0.0 10.0 1e-6 param.qeq -fix 3 all temp/berendsen 500.0 500.0 100.0 - -timestep 0.25 - -#dump 1 all atom 30 dump.reax.znoh - -run 3000 -Neighbor list info ... - update every 10 steps, delay 0 steps, check no - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 12 - ghost atom cutoff = 12 - binsize = 6, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) fix qeq/reax, perpetual, copy from (1) - attributes: half, newton off, ghost - pair build: copy - stencil: none - bin: none -Per MPI rank memory allocation (min/avg/max) = 11.28 | 12.77 | 14.21 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 0 -7900.2668 0 -7900.2668 60.076093 - 3000 538.25796 -7935.6159 0 -7768.7536 -525.47078 -Loop time of 4.48824 on 4 procs for 3000 steps with 105 atoms - -Performance: 14.438 ns/day, 1.662 hours/ns, 668.414 timesteps/s -97.2% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 3.1031 | 3.1698 | 3.2378 | 3.3 | 70.62 -Neigh | 0.16642 | 0.20502 | 0.25003 | 6.6 | 4.57 -Comm | 0.074932 | 0.14224 | 0.21025 | 15.6 | 3.17 -Output | 0.00011349 | 0.00011736 | 0.00012231 | 0.0 | 0.00 -Modify | 0.92089 | 0.96736 | 1.0083 | 3.2 | 21.55 -Other | | 0.003731 | | | 0.08 - -Nlocal: 26.25 ave 45 max 15 min -Histogram: 1 0 2 0 0 0 0 0 0 1 -Nghost: 399 ave 509 max 295 min -Histogram: 1 0 0 0 2 0 0 0 0 1 -Neighs: 1151.5 ave 2066 max 701 min -Histogram: 1 2 0 0 0 0 0 0 0 1 - -Total # of neighbors = 4606 -Ave neighs/atom = 43.8667 -Neighbor list builds = 300 -Dangerous builds not checked - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:04 diff --git a/examples/reaxff/ci-reaxFF/in.ci-reax.CH b/examples/reaxff/ci-reaxFF/in.ci-reax.CH index b3a2406a56..bee76b3eea 100644 --- a/examples/reaxff/ci-reaxFF/in.ci-reax.CH +++ b/examples/reaxff/ci-reaxFF/in.ci-reax.CH @@ -4,8 +4,8 @@ units real read_data CH4.dat -pair_style hybrid/overlay reax/c control checkqeq no table linear 11000 -pair_coeff * * reax/c ffield.ci-reax.CH C H +pair_style hybrid/overlay reaxff control checkqeq no table linear 11000 +pair_coeff * * reaxff ffield.ci-reax.CH C H pair_coeff 1 1 table ci-reaxFF_ZBL.dat CC_cireaxFF pair_coeff 1 2 table ci-reaxFF_ZBL.dat CH_cireaxFF pair_coeff 2 2 table ci-reaxFF_ZBL.dat HH_cireaxFF diff --git a/examples/reaxff/ci-reaxFF/log.30Nov23.ci-reax.CH.g++.1 b/examples/reaxff/ci-reaxFF/log.30Nov23.ci-reax.CH.g++.1 new file mode 100644 index 0000000000..08f2f4b47b --- /dev/null +++ b/examples/reaxff/ci-reaxFF/log.30Nov23.ci-reax.CH.g++.1 @@ -0,0 +1,105 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +#ci-reax potential for CH systems with tabulated ZBL correction +atom_style charge +units real + +read_data CH4.dat +Reading data file ... + orthogonal box = (0 0 0) to (20 20 20) + 1 by 1 by 1 MPI processor grid + reading atoms ... + 315 atoms + reading velocities ... + 315 velocities + read_data CPU = 0.003 seconds + +pair_style hybrid/overlay reaxff control checkqeq no table linear 11000 +pair_coeff * * reaxff ffield.ci-reax.CH C H +Reading potential file ffield.ci-reax.CH with DATE: 2017-11-20 +pair_coeff 1 1 table ci-reaxFF_ZBL.dat CC_cireaxFF +WARNING: 2 of 10000 force values in table CC_cireaxFF are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) +pair_coeff 1 2 table ci-reaxFF_ZBL.dat CH_cireaxFF +WARNING: 2 of 11000 force values in table CH_cireaxFF are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) +pair_coeff 2 2 table ci-reaxFF_ZBL.dat HH_cireaxFF +WARNING: 2 of 6000 force values in table HH_cireaxFF are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.25 +fix 1 all nve +fix 2 all temp/berendsen 500.0 500.0 100.0 + +#dump 1 all atom 30 dump.ci-reax.lammpstrj + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +WARNING: Total cutoff < 2*bond cutoff. May need to use an increased neighbor list skin. (src/REAXFF/pair_reaxff.cpp:365) +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9.5 + ghost atom cutoff = 9.5 + binsize = 4.75, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) pair table, perpetual + attributes: half, newton on, cut 3.1 + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 35.64 | 35.64 | 35.64 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 508.42043 -28736.654 0 -28260.785 1678.3276 + 3000 480.41333 -28707.835 0 -28258.181 -3150.0762 +Loop time of 13.2263 on 1 procs for 3000 steps with 315 atoms + +Performance: 4.899 ns/day, 4.899 hours/ns, 226.821 timesteps/s, 71.449 katom-step/s +99.6% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 13.046 | 13.046 | 13.046 | 0.0 | 98.64 +Neigh | 0.12783 | 0.12783 | 0.12783 | 0.0 | 0.97 +Comm | 0.025611 | 0.025611 | 0.025611 | 0.0 | 0.19 +Output | 2.2361e-05 | 2.2361e-05 | 2.2361e-05 | 0.0 | 0.00 +Modify | 0.017722 | 0.017722 | 0.017722 | 0.0 | 0.13 +Other | | 0.008824 | | | 0.07 + +Nlocal: 315 ave 315 max 315 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2056 ave 2056 max 2056 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 32754 ave 32754 max 32754 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 32754 +Ave neighs/atom = 103.98095 +Neighbor list builds = 37 +Dangerous builds = 0 +Total wall time: 0:00:13 diff --git a/examples/reaxff/ci-reaxFF/log.30Nov23.ci-reax.CH.g++.4 b/examples/reaxff/ci-reaxFF/log.30Nov23.ci-reax.CH.g++.4 new file mode 100644 index 0000000000..cc6c386f03 --- /dev/null +++ b/examples/reaxff/ci-reaxFF/log.30Nov23.ci-reax.CH.g++.4 @@ -0,0 +1,105 @@ +LAMMPS (21 Nov 2023) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98) + using 1 OpenMP thread(s) per MPI task +#ci-reax potential for CH systems with tabulated ZBL correction +atom_style charge +units real + +read_data CH4.dat +Reading data file ... + orthogonal box = (0 0 0) to (20 20 20) + 1 by 2 by 2 MPI processor grid + reading atoms ... + 315 atoms + reading velocities ... + 315 velocities + read_data CPU = 0.002 seconds + +pair_style hybrid/overlay reaxff control checkqeq no table linear 11000 +pair_coeff * * reaxff ffield.ci-reax.CH C H +Reading potential file ffield.ci-reax.CH with DATE: 2017-11-20 +pair_coeff 1 1 table ci-reaxFF_ZBL.dat CC_cireaxFF +WARNING: 2 of 10000 force values in table CC_cireaxFF are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) +pair_coeff 1 2 table ci-reaxFF_ZBL.dat CH_cireaxFF +WARNING: 2 of 11000 force values in table CH_cireaxFF are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) +pair_coeff 2 2 table ci-reaxFF_ZBL.dat HH_cireaxFF +WARNING: 2 of 6000 force values in table HH_cireaxFF are inconsistent with -dE/dr. +WARNING: Should only be flagged at inflection points (src/pair_table.cpp:466) + +timestep 0.25 +fix 1 all nve +fix 2 all temp/berendsen 500.0 500.0 100.0 + +#dump 1 all atom 30 dump.ci-reax.lammpstrj + +run 3000 + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +Your simulation uses code contributions which should be cited: + +- pair reaxff command: doi:10.1016/j.parco.2011.08.005 + +@Article{Aktulga12, + author = {H. M. Aktulga and J. C. Fogarty and S. A. Pandit and A. Y. Grama}, + title = {Parallel Reactive Molecular Dynamics: {N}umerical Methods and Algorithmic Techniques}, + journal = {Parallel Computing}, + year = 2012, + volume = 38, + number = {4--5}, + pages = {245--259} +} + +CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE-CITE + +WARNING: Total cutoff < 2*bond cutoff. May need to use an increased neighbor list skin. (src/REAXFF/pair_reaxff.cpp:365) +Neighbor list info ... + update: every = 1 steps, delay = 0 steps, check = yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 9.5 + ghost atom cutoff = 9.5 + binsize = 4.75, bins = 5 5 5 + 2 neighbor lists, perpetual/occasional/extra = 2 0 0 + (1) pair reaxff, perpetual + attributes: half, newton off, ghost + pair build: half/bin/newtoff/ghost + stencil: full/ghost/bin/3d + bin: standard + (2) pair table, perpetual + attributes: half, newton on, cut 3.1 + pair build: half/bin/atomonly/newton + stencil: half/bin/3d + bin: standard +Per MPI rank memory allocation (min/avg/max) = 20.4 | 21.35 | 22.73 Mbytes + Step Temp E_pair E_mol TotEng Press + 0 508.42043 -28736.654 0 -28260.785 1678.3276 + 3000 480.41333 -28707.835 0 -28258.181 -3150.0762 +Loop time of 8.18251 on 4 procs for 3000 steps with 315 atoms + +Performance: 7.919 ns/day, 3.031 hours/ns, 366.636 timesteps/s, 115.490 katom-step/s +99.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 6.7983 | 7.3808 | 7.9976 | 16.3 | 90.20 +Neigh | 0.062309 | 0.065996 | 0.07006 | 1.4 | 0.81 +Comm | 0.083586 | 0.70629 | 1.2934 | 53.1 | 8.63 +Output | 1.8365e-05 | 2.0853e-05 | 2.7615e-05 | 0.0 | 0.00 +Modify | 0.016829 | 0.019422 | 0.02157 | 1.4 | 0.24 +Other | | 0.01001 | | | 0.12 + +Nlocal: 78.75 ave 96 max 65 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Nghost: 1233 ave 1348 max 1116 min +Histogram: 1 0 1 0 0 0 0 1 0 1 +Neighs: 9467.25 ave 12150 max 7160 min +Histogram: 1 1 0 0 0 0 0 1 0 1 + +Total # of neighbors = 37869 +Ave neighs/atom = 120.21905 +Neighbor list builds = 37 +Dangerous builds = 0 +Total wall time: 0:00:08 diff --git a/examples/reaxff/ci-reaxFF/log.8Mar18.ci-reax.CH.g++.1 b/examples/reaxff/ci-reaxFF/log.8Mar18.ci-reax.CH.g++.1 deleted file mode 100644 index e966fd26b6..0000000000 --- a/examples/reaxff/ci-reaxFF/log.8Mar18.ci-reax.CH.g++.1 +++ /dev/null @@ -1,86 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -#ci-reax potential for CH systems with tabulated ZBL correction -atom_style charge -units real - -read_data CH4.dat - orthogonal box = (0 0 0) to (20 20 20) - 1 by 1 by 1 MPI processor grid - reading atoms ... - 315 atoms - reading velocities ... - 315 velocities - -pair_style hybrid/overlay reax/c control checkqeq no table linear 11000 -pair_coeff * * reax/c ffield.ci-reax.CH C H -Reading potential file ffield.ci-reax.CH with DATE: 2017-11-20 -pair_coeff 1 1 table ci-reaxFF_ZBL.dat CC_cireaxFF -WARNING: 2 of 10000 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (../pair_table.cpp:481) -pair_coeff 1 2 table ci-reaxFF_ZBL.dat CH_cireaxFF -WARNING: 2 of 11000 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (../pair_table.cpp:481) -pair_coeff 2 2 table ci-reaxFF_ZBL.dat HH_cireaxFF -WARNING: 2 of 6000 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (../pair_table.cpp:481) - -timestep 0.25 -fix 1 all nve -fix 2 all temp/berendsen 500.0 500.0 100.0 - -#dump 1 all atom 30 dump.ci-reax.lammpstrj - -run 3000 -WARNING: Total cutoff < 2*bond cutoff. May need to use an increased neighbor list skin. (../pair_reaxc.cpp:392) -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 9.5 - ghost atom cutoff = 9.5 - binsize = 4.75, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) pair table, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 43.46 | 43.46 | 43.46 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 508.42043 -28736.654 0 -28260.785 1678.3276 - 3000 480.41333 -28707.835 0 -28258.181 -3150.0762 -Loop time of 45.3959 on 1 procs for 3000 steps with 315 atoms - -Performance: 1.427 ns/day, 16.813 hours/ns, 66.085 timesteps/s -96.6% CPU use with 1 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 44.955 | 44.955 | 44.955 | 0.0 | 99.03 -Neigh | 0.29903 | 0.29903 | 0.29903 | 0.0 | 0.66 -Comm | 0.056547 | 0.056547 | 0.056547 | 0.0 | 0.12 -Output | 4.8399e-05 | 4.8399e-05 | 4.8399e-05 | 0.0 | 0.00 -Modify | 0.058722 | 0.058722 | 0.058722 | 0.0 | 0.13 -Other | | 0.02632 | | | 0.06 - -Nlocal: 315 ave 315 max 315 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Nghost: 2056 ave 2056 max 2056 min -Histogram: 1 0 0 0 0 0 0 0 0 0 -Neighs: 32754 ave 32754 max 32754 min -Histogram: 1 0 0 0 0 0 0 0 0 0 - -Total # of neighbors = 32754 -Ave neighs/atom = 103.981 -Neighbor list builds = 37 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:45 diff --git a/examples/reaxff/ci-reaxFF/log.8Mar18.ci-reax.CH.g++.4 b/examples/reaxff/ci-reaxFF/log.8Mar18.ci-reax.CH.g++.4 deleted file mode 100644 index ccc87b3536..0000000000 --- a/examples/reaxff/ci-reaxFF/log.8Mar18.ci-reax.CH.g++.4 +++ /dev/null @@ -1,86 +0,0 @@ -LAMMPS (8 Mar 2018) - using 1 OpenMP thread(s) per MPI task -#ci-reax potential for CH systems with tabulated ZBL correction -atom_style charge -units real - -read_data CH4.dat - orthogonal box = (0 0 0) to (20 20 20) - 1 by 2 by 2 MPI processor grid - reading atoms ... - 315 atoms - reading velocities ... - 315 velocities - -pair_style hybrid/overlay reax/c control checkqeq no table linear 11000 -pair_coeff * * reax/c ffield.ci-reax.CH C H -Reading potential file ffield.ci-reax.CH with DATE: 2017-11-20 -pair_coeff 1 1 table ci-reaxFF_ZBL.dat CC_cireaxFF -WARNING: 2 of 10000 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (../pair_table.cpp:481) -pair_coeff 1 2 table ci-reaxFF_ZBL.dat CH_cireaxFF -WARNING: 2 of 11000 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (../pair_table.cpp:481) -pair_coeff 2 2 table ci-reaxFF_ZBL.dat HH_cireaxFF -WARNING: 2 of 6000 force values in table are inconsistent with -dE/dr. - Should only be flagged at inflection points (../pair_table.cpp:481) - -timestep 0.25 -fix 1 all nve -fix 2 all temp/berendsen 500.0 500.0 100.0 - -#dump 1 all atom 30 dump.ci-reax.lammpstrj - -run 3000 -WARNING: Total cutoff < 2*bond cutoff. May need to use an increased neighbor list skin. (../pair_reaxc.cpp:392) -Neighbor list info ... - update every 1 steps, delay 10 steps, check yes - max neighbors/atom: 2000, page size: 100000 - master list distance cutoff = 9.5 - ghost atom cutoff = 9.5 - binsize = 4.75, bins = 5 5 5 - 2 neighbor lists, perpetual/occasional/extra = 2 0 0 - (1) pair reax/c, perpetual - attributes: half, newton off, ghost - pair build: half/bin/newtoff/ghost - stencil: half/ghost/bin/3d/newtoff - bin: standard - (2) pair table, perpetual - attributes: half, newton on - pair build: half/bin/atomonly/newton - stencil: half/bin/3d/newton - bin: standard -Per MPI rank memory allocation (min/avg/max) = 24.48 | 25.61 | 27.27 Mbytes -Step Temp E_pair E_mol TotEng Press - 0 508.42043 -28736.654 0 -28260.785 1678.3276 - 3000 480.41333 -28707.835 0 -28258.181 -3150.0762 -Loop time of 24.7034 on 4 procs for 3000 steps with 315 atoms - -Performance: 2.623 ns/day, 9.149 hours/ns, 121.441 timesteps/s -95.8% CPU use with 4 MPI tasks x 1 OpenMP threads - -MPI task timing breakdown: -Section | min time | avg time | max time |%varavg| %total ---------------------------------------------------------------- -Pair | 18.945 | 21.367 | 24.046 | 39.3 | 86.49 -Neigh | 0.1456 | 0.15254 | 0.16101 | 1.6 | 0.62 -Comm | 0.39168 | 3.0859 | 5.5185 | 103.9 | 12.49 -Output | 3.5763e-05 | 4.065e-05 | 5.2452e-05 | 0.0 | 0.00 -Modify | 0.05831 | 0.068811 | 0.077666 | 2.9 | 0.28 -Other | | 0.0292 | | | 0.12 - -Nlocal: 78.75 ave 96 max 65 min -Histogram: 2 0 0 0 0 0 0 1 0 1 -Nghost: 1233 ave 1348 max 1116 min -Histogram: 1 0 1 0 0 0 0 1 0 1 -Neighs: 9467.25 ave 12150 max 7160 min -Histogram: 1 1 0 0 0 0 0 1 0 1 - -Total # of neighbors = 37869 -Ave neighs/atom = 120.219 -Neighbor list builds = 37 -Dangerous builds = 0 - -Please see the log.cite file for references relevant to this simulation - -Total wall time: 0:00:24 diff --git a/lib/pace/Install.py b/lib/pace/Install.py index 8d31852e44..fcd9497937 100644 --- a/lib/pace/Install.py +++ b/lib/pace/Install.py @@ -18,11 +18,11 @@ from install_helpers import fullpath, geturl, checkmd5sum, getfallback # settings thisdir = fullpath('.') -version ='v.2023.10.04' +version ='v.2023.11.25.fix' # known checksums for different PACE versions. used to validate the download. checksums = { \ - 'v.2023.10.04': '70ff79f4e59af175e55d24f3243ad1ff' + 'v.2023.11.25.fix': 'b45de9a633f42ed65422567e3ce56f9f' } parser = ArgumentParser(prog='Install.py', description="LAMMPS library build wrapper script") diff --git a/src/.gitignore b/src/.gitignore index 5c6891c35e..3b7902303d 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -100,6 +100,8 @@ /lepton_utils.cpp /lepton_utils.h +/compute_pace.cpp +/compute_pace.h /pair_pace.cpp /pair_pace.h /pair_pace_extrapolation.cpp @@ -629,6 +631,8 @@ /compute_pressure_grem.h /compute_ptm_atom.cpp /compute_ptm_atom.h +/compute_rattlers_atom.cpp +/compute_rattlers_atom.h /compute_rigid_local.cpp /compute_rigid_local.h /compute_slcsa_atom.cpp @@ -914,6 +918,8 @@ /fix_nvt_sllod_eff.h /fix_nve_tri.cpp /fix_nve_tri.h +/fix_nonaffine_displacement.cpp +/fix_nonaffine_displacement.h /fix_oneway.cpp /fix_oneway.h /fix_orient_bcc.cpp diff --git a/src/AMOEBA/amoeba_multipole.cpp b/src/AMOEBA/amoeba_multipole.cpp index a1503a91f3..d0ae03401a 100644 --- a/src/AMOEBA/amoeba_multipole.cpp +++ b/src/AMOEBA/amoeba_multipole.cpp @@ -18,6 +18,7 @@ #include "atom.h" #include "comm.h" #include "domain.h" +#include "force.h" #include "math_const.h" #include "math_special.h" #include "neigh_list.h" @@ -1000,3 +1001,61 @@ void PairAmoeba::damppole(double r, int rorder, double alphai, double alphak, } } } + +/* ---------------------------------------------------------------------- + estimate the accuracy of m_kspace solver based on the monopoles + based on Ewald +------------------------------------------------------------------------- */ + +double PairAmoeba::final_accuracy_mpole() +{ + const int nlocal = atom->nlocal; + double qsqsum_local(0.0), qsqsum; + for (int i = 0; i < nlocal; i++) { + qsqsum_local += rpole[i][0]*rpole[i][0]; + } + MPI_Allreduce(&qsqsum_local,&qsqsum,1,MPI_DOUBLE,MPI_SUM,world); + double q2 = qsqsum * force->qqrd2e; + + const double * const prd = domain->prd; + const double xprd = prd[0]; + const double yprd = prd[1]; + const double zprd = prd[2]; + const double slab_volfactor = 1.0; + const double zprd_slab = zprd*slab_volfactor; + bigint natoms = atom->natoms; + + int nx_fft = m_kspace->nx; + int ny_fft = m_kspace->ny; + int nz_fft = m_kspace->nz; + double cutoff = mpolecut; + + double lprx = rms(nx_fft,xprd,natoms,aeewald,q2); + double lpry = rms(ny_fft,yprd,natoms,aeewald,q2); + double lprz = rms(nz_fft,zprd_slab,natoms,aeewald,q2); + double lpr = sqrt(lprx*lprx + lpry*lpry + lprz*lprz) / sqrt(3.0); + double q2_over_sqrt = q2 / sqrt(natoms*cutoff*xprd*yprd*zprd_slab); + double spr = 2.0 *q2_over_sqrt * exp(-aeewald*aeewald*cutoff*cutoff); + double tpr = 0; + double estimated_accuracy = sqrt(lpr*lpr + spr*spr + tpr*tpr); + + two_charge_force = force->qqr2e * + (force->qelectron * force->qelectron) / + (force->angstrom * force->angstrom); + + return estimated_accuracy; +} + +/* ---------------------------------------------------------------------- + compute RMS accuracy for a dimension +------------------------------------------------------------------------- */ + +double PairAmoeba::rms(int km, double prd, bigint natoms, double g_ewald, double q2) +{ + if (natoms == 0) natoms = 1; // avoid division by zero + double value = 2.0*q2*g_ewald/prd * + sqrt(1.0/(MY_PI*km*natoms)) * + exp(-MY_PI*MY_PI*km*km/(g_ewald*g_ewald*prd*prd)); + + return value; +} diff --git a/src/AMOEBA/pair_amoeba.cpp b/src/AMOEBA/pair_amoeba.cpp index 72efa76523..cad9e2b628 100644 --- a/src/AMOEBA/pair_amoeba.cpp +++ b/src/AMOEBA/pair_amoeba.cpp @@ -347,8 +347,6 @@ void PairAmoeba::compute(int eflag, int vflag) } } - first_flag_compute = 0; - // ------------------------------------------------------------------- // end of one-time initializations // ------------------------------------------------------------------- @@ -428,6 +426,12 @@ void PairAmoeba::compute(int eflag, int vflag) else cfstyle = SETUP_HIPPO; comm->forward_comm(this); + // output FF settings to screen and logfile + // delay until here because RMS force accuracy is computed based on rpole + + if (first_flag_compute && (comm->me == 0)) print_settings(); + first_flag_compute = 0; + if (amoeba) pbc_xred(); time1 = platform::walltime(); @@ -978,10 +982,6 @@ void PairAmoeba::init_style() for (int i = 0; i < nlocal; i++) pval[i] = 0.0; } - // output FF settings to screen and logfile - - if (first_flag && (comm->me == 0)) print_settings(); - // all done with one-time initializations first_flag = 0; @@ -1098,9 +1098,13 @@ void PairAmoeba::print_settings() if (use_ewald) { choose(MPOLE_LONG); - mesg += fmt::format(" multipole: cut {} aewald {} bsorder {} FFT {} {} {} " + double estimated_accuracy = final_accuracy_mpole(); + mesg += fmt::format(" multipole: cut {} aewald {} bsorder {} FFT {} {} {}; " + "estimated absolute RMS force accuracy = {:.8g}; " + "estimated relative RMS force accuracy = {:.8g}; " "mscale {} {} {} {}\n", sqrt(off2),aewald,bseorder,nefft1,nefft2,nefft3, + estimated_accuracy,estimated_accuracy/two_charge_force, special_mpole[1],special_mpole[2],special_mpole[3],special_mpole[4]); } else { choose(MPOLE); diff --git a/src/AMOEBA/pair_amoeba.h b/src/AMOEBA/pair_amoeba.h index 1f3a4b799a..648fc86126 100644 --- a/src/AMOEBA/pair_amoeba.h +++ b/src/AMOEBA/pair_amoeba.h @@ -419,6 +419,10 @@ class PairAmoeba : public Pair { double ewaldcof(double); int factorable(int); + double final_accuracy_mpole(); + double rms(int km, double prd, bigint natoms, double g_ewald, double q2); + double two_charge_force; + // debug methods FILE *fp_uind; diff --git a/src/EXTRA-COMPUTE/compute_rattlers_atom.cpp b/src/EXTRA-COMPUTE/compute_rattlers_atom.cpp new file mode 100644 index 0000000000..602923b58a --- /dev/null +++ b/src/EXTRA-COMPUTE/compute_rattlers_atom.cpp @@ -0,0 +1,312 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Joel Clemmer (SNL), Ishan Srivastava (LBNL) +------------------------------------------------------------------------- */ + +#include "compute_rattlers_atom.h" + +#include "atom.h" +#include "comm.h" +#include "error.h" +#include "force.h" +#include "memory.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "pair.h" +#include "update.h" + +#include +#include + +using namespace LAMMPS_NS; + +enum { TYPE, RADIUS }; + +/* ---------------------------------------------------------------------- */ + +ComputeRattlersAtom::ComputeRattlersAtom(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), ncontacts(nullptr), rattler(nullptr) +{ + if (narg != 6) error->all(FLERR, "Illegal compute rattlers/atom command"); + + if (strcmp(arg[3], "type") == 0) + cutstyle = TYPE; + else if (strcmp(arg[3], "radius") == 0) + cutstyle = RADIUS; + else + error->all(FLERR, "Illegal compute rattlers/atom command"); + + if (cutstyle == RADIUS && !atom->radius_flag) + error->all(FLERR, "Compute rattlers/atom radius style requires atom attribute radius"); + + ncontacts_rattler = utils::inumeric(FLERR, arg[4], false, lmp); + max_tries = utils::inumeric(FLERR, arg[5], false, lmp); + + nmax = 0; + invoked_peratom = -1; + + scalar_flag = 1; + extscalar = 1; + peratom_flag = 1; + size_peratom_cols = 0; + comm_forward = 1; + comm_reverse = 1; +} + +/* ---------------------------------------------------------------------- */ + +ComputeRattlersAtom::~ComputeRattlersAtom() +{ + memory->destroy(ncontacts); + memory->destroy(rattler); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeRattlersAtom::init() +{ + if (force->pair == nullptr) error->all(FLERR, "No pair style is defined for compute rattlers"); + + // Cannot calculate distance from radii for JKR/DMT + if (force->pair->beyond_contact) + error->all(FLERR, "Compute rattlers does not currently support pair styles that extend beyond contact"); + + // need an occasional half neighbor list + // set size to same value as request made by force->pair + // this should enable it to always be a copy list (e.g. for granular pstyle) + + auto pairrequest = neighbor->find_request(force->pair); + if (pairrequest && pairrequest->get_size()) + neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_OCCASIONAL); + else + neighbor->add_request(this, NeighConst::REQ_OCCASIONAL); +} + +/* ---------------------------------------------------------------------- */ + +void ComputeRattlersAtom::init_list(int /*id*/, NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- */ + +void ComputeRattlersAtom::compute_peratom() +{ + if (invoked_peratom == update->ntimestep) return; + invoked_peratom = update->ntimestep; + + int i, j, ii, jj, inum, jnum, itype, jtype, tmp_flag; + tagint itag, jtag; + double xtmp, ytmp, ztmp, delx, dely, delz; + double rsq, radsum; + + if (nmax < atom->nmax) { + nmax = atom->nmax; + memory->destroy(ncontacts); + memory->destroy(rattler); + memory->create(ncontacts, nmax, "rattlers:ncontacts"); + memory->create(rattler, nmax, "rattlers:rattler"); + vector_atom = rattler; + } + + for (i = 0; i < nmax; i++) rattler[i] = 0; + + int *ilist, *jlist, *numneigh, **firstneigh; + + double **x = atom->x; + double *radius = atom->radius; + tagint *tag = atom->tag; + int *type = atom->type; + int *mask = atom->mask; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + + // invoke half neighbor list (will copy or build if necessary) + neighbor->build_one(list); + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + Pair *pair = force->pair; + double **cutsq = force->pair->cutsq; + + int change_flag = 1; + int ntry = 0; + while (ntry < max_tries) { + change_flag = 0; + + for (i = 0; i < nmax; i++) ncontacts[i] = 0; + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + if (!(mask[i] & groupbit)) continue; + if (rattler[i] == 1) continue; + + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itag = tag[i]; + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + if (!(mask[j] & groupbit)) continue; + if (rattler[j] == 1) continue; + + // itag = jtag is possible for long cutoffs that include images of self + + if (newton_pair == 0 && j >= nlocal) { + jtag = tag[j]; + if (itag > jtag) { + if ((itag + jtag) % 2 == 0) continue; + } else if (itag < jtag) { + if ((itag + jtag) % 2 == 1) continue; + } else { + if (x[j][2] < ztmp) continue; + if (x[j][2] == ztmp) { + if (x[j][1] < ytmp) continue; + if (x[j][1] == ytmp && x[j][0] < xtmp) continue; + } + } + } + + jtype = type[j]; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + rsq = delx * delx + dely * dely + delz * delz; + + if (cutstyle == TYPE) { + if (rsq >= cutsq[itype][jtype]) continue; + } else { + radsum = radius[i] + radius[j]; + if (rsq >= radsum * radsum) continue; + } + ncontacts[i] += 1; + if (newton_pair || j < nlocal) + ncontacts[j] += 1; + } + } + + // add contributions from ghosts + if (force->newton_pair) comm->reverse_comm(this); + + // Set flags for rattlers + for (i = 0; i < atom->nlocal; i++) { + if (ncontacts[i] < ncontacts_rattler && rattler[i] == 0) { + rattler[i] = 1; + change_flag = 1; + } + } + + comm->forward_comm(this); + + MPI_Allreduce(&change_flag, &tmp_flag, 1, MPI_INT, MPI_MAX, world); + change_flag = tmp_flag; + if (change_flag == 0) break; + + ntry += 1; + } + + if (change_flag == 1) + error->warning(FLERR, "Rattler calculation failed to converge within max tries"); +} + +/* ---------------------------------------------------------------------- */ + +double ComputeRattlersAtom::compute_scalar() +{ + if (invoked_peratom != update->ntimestep) + compute_peratom(); + + invoked_scalar = update->ntimestep; + + double total_rattlers = 0; + for (int i = 0; i < atom->nlocal; i++) { + if (rattler[i] == 1) { + total_rattlers += 1; + } + } + + //Total across processors + MPI_Allreduce(&total_rattlers, &scalar, 1, MPI_DOUBLE, MPI_SUM, world); + return scalar; +} + +/* ---------------------------------------------------------------------- */ + +int ComputeRattlersAtom::pack_reverse_comm(int n, int first, double *buf) +{ + int i, m, last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + buf[m++] = ubuf(ncontacts[i]).d; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void ComputeRattlersAtom::unpack_reverse_comm(int n, int *list, double *buf) +{ + int i, j, m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + ncontacts[j] += (int) ubuf(buf[m++]).i; + } +} + +/* ---------------------------------------------------------------------- */ + +int ComputeRattlersAtom::pack_forward_comm(int n, int *list, double *buf, + int /*pbc_flag*/, int * /*pbc*/) +{ + int i, j, m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = rattler[j]; + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +void ComputeRattlersAtom::unpack_forward_comm(int n, int first, double *buf) +{ + int i, m, last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + rattler[i] = buf[m++]; + } +} diff --git a/src/EXTRA-COMPUTE/compute_rattlers_atom.h b/src/EXTRA-COMPUTE/compute_rattlers_atom.h new file mode 100644 index 0000000000..257bae8374 --- /dev/null +++ b/src/EXTRA-COMPUTE/compute_rattlers_atom.h @@ -0,0 +1,52 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef COMPUTE_CLASS +// clang-format off +ComputeStyle(rattlers/atom,ComputeRattlersAtom); +// clang-format on +#else + +#ifndef LMP_COMPUTE_RATTLERS_ATOM_H +#define LMP_COMPUTE_RATTLERS_ATOM_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputeRattlersAtom : public Compute { + public: + ComputeRattlersAtom(class LAMMPS *, int, char **); + ~ComputeRattlersAtom() override; + void init() override; + void init_list(int, class NeighList *) override; + void compute_peratom() override; + double compute_scalar() override; + int pack_forward_comm(int, int *, double *, int, int *) override; + void unpack_forward_comm(int, int, double *) override; + int pack_reverse_comm(int, int, double *) override; + void unpack_reverse_comm(int, int *, double *) override; + + private: + int pstyle, cutstyle; + int ncontacts_rattler, max_tries, nmax, invoked_peratom; + int *ncontacts; + double *rattler; + class NeighList *list; + +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/EXTRA-FIX/fix_nonaffine_displacement.cpp b/src/EXTRA-FIX/fix_nonaffine_displacement.cpp new file mode 100644 index 0000000000..ef5481601f --- /dev/null +++ b/src/EXTRA-FIX/fix_nonaffine_displacement.cpp @@ -0,0 +1,736 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: Joel Clemmer (SNL), Ishan Srivastava (LBNL) +------------------------------------------------------------------------- */ + +#include "fix_nonaffine_displacement.h" + +#include "atom.h" +#include "citeme.h" +#include "comm.h" +#include "domain.h" +#include "error.h" +#include "fix_store_atom.h" +#include "force.h" +#include "group.h" +#include "math_extra.h" +#include "memory.h" +#include "modify.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "pair.h" +#include "update.h" + +#include + +using namespace LAMMPS_NS; +using namespace FixConst; +using namespace MathExtra; + +enum { TYPE, RADIUS, CUSTOM }; +enum { INTEGRATED, D2MIN }; +enum { FIXED, OFFSET, UPDATE }; + +static const char cite_nonaffine_d2min[] = + "@article{PhysRevE.57.7192,\n" + " title = {Dynamics of viscoplastic deformation in amorphous solids},\n" + " author = {Falk, M. L. and Langer, J. S.},\n" + " journal = {Phys. Rev. E},\n" + " volume = {57},\n" + " issue = {6},\n" + " pages = {7192--7205},\n" + " numpages = {0},\n" + " year = {1998},\n" + " month = {Jun},\n" + " publisher = {American Physical Society},\n" + " doi = {10.1103/PhysRevE.57.7192},\n" + "url = {https://link.aps.org/doi/10.1103/PhysRevE.57.7192}\n" + "}\n\n"; + +/* ---------------------------------------------------------------------- */ + +FixNonaffineDisplacement::FixNonaffineDisplacement(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), id_fix(nullptr), X(nullptr), Y(nullptr), F(nullptr), norm(nullptr) +{ + if (narg < 4) error->all(FLERR,"Illegal fix nonaffine/displacement command"); + + nevery = utils::inumeric(FLERR, arg[3], false, lmp); + if (nevery <= 0) error->all(FLERR,"Illegal nevery value {} in fix nonaffine/displacement", nevery); + + int iarg = 4; + if (strcmp(arg[iarg], "integrated") == 0) { + nad_style = INTEGRATED; + nevery = 1; + iarg += 1; + } else if (strcmp(arg[iarg], "d2min") == 0) { + if (iarg + 1 > narg) error->all(FLERR,"Illegal fix nonaffine/displacement command"); + nad_style = D2MIN; + if (strcmp(arg[iarg + 1], "type") == 0) { + cut_style = TYPE; + } else if (strcmp(arg[iarg + 1], "radius") == 0) { + cut_style = RADIUS; + } else if (strcmp(arg[iarg + 1], "custom") == 0) { + if (iarg + 2 > narg) error->all(FLERR,"Illegal fix nonaffine/displacement command"); + cut_style = CUSTOM; + cutoff_custom = utils::numeric(FLERR, arg[iarg + 2], false, lmp); + cutsq_custom = cutoff_custom * cutoff_custom; + if (cutoff_custom <= 0) + error->all(FLERR, "Illegal custom cutoff length {}", arg[iarg + 2]); + iarg += 1; + } else error->all(FLERR,"Illegal cutoff style {} in fix nonaffine/displacement", arg[iarg + 1]); + iarg += 2; + } else error->all(FLERR,"Illegal nonaffine displacement style {} in fix nonaffine/displacement", arg[iarg]); + + if (iarg + 2 > narg) error->all(FLERR,"Illegal fix nonaffine/displacement command"); + if (strcmp(arg[iarg], "fixed") == 0) { + reference_style = FIXED; + reference_timestep = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + if (update_timestep < 0) + error->all(FLERR, "Illegal reference timestep {} in fix nonaffine/displacement", arg[iarg + 1]); + } else if (strcmp(arg[iarg], "update") == 0) { + reference_style = UPDATE; + update_timestep = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + if (update_timestep < 0) + error->all(FLERR, "Illegal update timestep {} in fix nonaffine/displacement", arg[iarg + 1]); + } else if (strcmp(arg[iarg], "offset") == 0) { + reference_style = OFFSET; + offset_timestep = utils::inumeric(FLERR, arg[iarg + 1], false, lmp); + if ((offset_timestep <= 0) || (offset_timestep > nevery)) + error->all(FLERR, "Illegal offset timestep {} in fix nonaffine/displacement", arg[iarg + 1]); + } else error->all(FLERR,"Illegal reference style {} in fix nonaffine/displacement", arg[iarg]); + + if (nad_style == D2MIN) + if (cut_style == RADIUS && (!atom->radius_flag)) + error->all(FLERR, "Fix nonaffine/displacement radius style requires atom attribute radius"); + + if (nad_style == INTEGRATED && reference_style == OFFSET) + error->all(FLERR, "Fix nonaffine/displacement cannot use the integrated style with an offset reference state"); + + peratom_flag = 1; + peratom_freq = nevery; + nmax = -1; + reference_saved = 0; + restart_global = 1; + + size_peratom_cols = 3; + comm_reverse = 0; + comm_forward = 0; + if (nad_style == D2MIN) { + comm_reverse = 18; + comm_forward = 9; + } + + if (nad_style == D2MIN && lmp->citeme) lmp->citeme->add(cite_nonaffine_d2min); +} + +/* ---------------------------------------------------------------------- */ + +FixNonaffineDisplacement::~FixNonaffineDisplacement() +{ + if (id_fix && modify->nfix) modify->delete_fix(id_fix); + delete[] id_fix; + + if (nad_style == D2MIN) { + memory->destroy(X); + memory->destroy(Y); + memory->destroy(F); + memory->destroy(norm); + memory->destroy(array_atom); + } +} + +/* ---------------------------------------------------------------------- */ + +int FixNonaffineDisplacement::setmask() +{ + int mask = 0; + mask |= POST_FORCE; + return mask; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::post_constructor() +{ + // Create persistent peratom storage for either an integrated velocity or reference position + // Ghost atoms need reference coordinates for D2min + std::string ghost_status = "0"; + if (nad_style == D2MIN) ghost_status = "1"; + + id_fix = utils::strdup(id + std::string("_FIX_PA")); + fix = dynamic_cast(modify->add_fix(fmt::format("{} {} STORE/ATOM 3 0 {} 1", id_fix, group->names[igroup], ghost_status))); + + if (nad_style == INTEGRATED) + array_atom = fix->astore; + + if (nad_style == D2MIN) + grow_arrays(atom->nmax); + + for (int i = 0; i < atom->nlocal; i++) + for (int j = 0; j < 3; j++) array_atom[i][j] = 0.0; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::init() +{ + dtv = update->dt; + + if ((!reference_saved) && (reference_style == FIXED) && (update->ntimestep > reference_timestep)) + error->all(FLERR, "Initial timestep exceeds that of the reference state in fix nonaffine/displacement"); + + if (nad_style == D2MIN) { + if ((!force->pair) && (cut_style == TYPE)) + error->all(FLERR,"Fix nonaffine/displacement D2Min option requires a pair style be defined " + "or cutoff specified"); + + // need an occasional half neighbor list + + if (cut_style == RADIUS) { + auto req = neighbor->add_request(this, NeighConst::REQ_SIZE | NeighConst::REQ_OCCASIONAL); + } else { + auto req = neighbor->add_request(this, NeighConst::REQ_OCCASIONAL); + if (cut_style == CUSTOM) { + double skin = neighbor->skin; + mycutneigh = cutoff_custom + skin; + + double cutghost; // as computed by Neighbor and Comm + if (force->pair) + cutghost = MAX(force->pair->cutforce + skin, comm->cutghostuser); + else + cutghost = comm->cutghostuser; + + if (mycutneigh > cutghost) + error->all(FLERR,"Fix nonaffine/displacement D2Min option cutoff exceeds ghost atom range - use comm_modify cutoff command"); + + req->set_cutoff(mycutneigh); + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::init_list(int /*id*/, NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::setup(int vflag) +{ + post_force(0); // Save state if needed before starting the 1st timestep +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::post_force(int /*vflag*/) +{ + if (reference_saved && (!update->setupflag)) { + if (nad_style == INTEGRATED) { + integrate_velocity(); + } else { + if ((update->ntimestep % nevery) == 0) calculate_D2Min(); + } + } + + if (reference_style == FIXED) + if (update->ntimestep == reference_timestep) + save_reference_state(); + + if (reference_style == UPDATE) + if ((update->ntimestep % update_timestep) == 0) + save_reference_state(); + + if (reference_style == OFFSET) + if (((update->ntimestep + offset_timestep) % nevery) == 0) + save_reference_state(); +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::write_restart(FILE *fp) +{ + if (comm->me == 0) { + int size = sizeof(int); + fwrite(&size, sizeof(int), 1, fp); + fwrite(&reference_saved, sizeof(int), 1, fp); + } +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::restart(char *buf) +{ + reference_saved = (int) ubuf(buf[0]).i; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::integrate_velocity() +{ + int i,n; + dtv = update->dt; + + double **v = atom->v; + + int *mask = atom->mask; + int nlocal = atom->nlocal; + + for (int m = 0; m < 3; m++) { + for (int i = 0; i < nlocal; i++) { + if (mask[i] & groupbit) { + array_atom[i][m] += dtv * v[i][m]; + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::save_reference_state() +{ + int i, n; + double **x = atom->x; + + int *mask = atom->mask; + int nlocal = atom->nlocal; + int nall = nlocal + atom->nghost; + + if (nad_style == D2MIN) { + for (int m = 0; m < 3; m++) { + for (int i = 0; i < nall; i++) { + if (mask[i] & groupbit) array_atom[i][m] = x[i][m]; + } + } + } else { + for (int m = 0; m < 3; m++) { + for (int i = 0; i < nall; i++) { + if (mask[i] & groupbit) array_atom[i][m] = 0.0; + } + } + } + + if (nad_style == D2MIN) { + xprd0 = domain->xprd; + yprd0 = domain->yprd; + zprd0 = domain->zprd; + xprd0_half = domain->xprd_half; + yprd0_half = domain->yprd_half; + zprd0_half = domain->zprd_half; + xy0 = domain->xy; + xz0 = domain->xz; + yz0 = domain->yz; + } + + reference_saved = 1; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::calculate_D2Min() +{ + // invoke half neighbor list (will copy or build if necessary) + neighbor->build_one(list); + + if (atom->nmax > nmax) + grow_arrays(atom->nmax); + + int i, j, k, l, ii, jj, inum, jnum, itype, jtype; + double evol, j2, edev; + double r[3], r0[3], rsq, rsq0, radsum, temp[3]; + double X_tmp[3][3], Y_tmp[3][3], F_tmp[3][3], E[3][3]; + double Y_inv[3][3] = {0.0}; // Zero for 2d since not all entries used + int *ilist, *jlist, *numneigh, **firstneigh; + + double **x = atom->x; + double **x0 = array_atom; + double *radius = atom->radius; + tagint *tag = atom->tag; + int *type = atom->type; + int *mask = atom->mask; + int nlocal = atom->nlocal; + int newton_pair = force->newton_pair; + int dim = domain->dimension; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + + Pair *pair = force->pair; + double **cutsq; + if (pair) cutsq = force->pair->cutsq; + + for (i = 0; i < nmax; i++) { + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l++) { + X[i][k][l] = 0.0; + Y[i][k][l] = 0.0; + } + } + norm[i] = 0; + array_atom[i][0] = 0; + } + + // First loop through neighbors + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + if (!(mask[i] & groupbit)) continue; + + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + if (!(mask[j] & groupbit)) continue; + + jtype = type[j]; + r[0] = x[i][0] - x[j][0]; + r[1] = x[i][1] - x[j][1]; + r[2] = x[i][2] - x[j][2]; + rsq = lensq3(r); + + // Only include contributions from atoms that are CURRENTLY neighbors + if (cut_style == TYPE) { + if (rsq > cutsq[itype][jtype]) continue; + } else if (cut_style == CUSTOM) { + if (rsq > cutsq_custom) continue; + } else { + radsum = radius[i] + radius[j]; + if (rsq > (radsum * radsum)) continue; + } + + r0[0] = x0[i][0] - x0[j][0]; + r0[1] = x0[i][1] - x0[j][1]; + r0[2] = x0[i][2] - x0[j][2]; + minimum_image0(r0); + + // Using notation from Falk & Langer 1998 + outer3(r, r0, X_tmp); + outer3(r0, r0, Y_tmp); + + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l++) { + X[i][k][l] += X_tmp[k][l]; + Y[i][k][l] += Y_tmp[k][l]; + } + } + + if (newton_pair || j < nlocal) { + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l++) { + X[j][k][l] += X_tmp[k][l]; + Y[j][k][l] += Y_tmp[k][l]; + } + } + } + } + } + + comm_flag = 0; + if (newton_pair) comm->reverse_comm(this, 18); + + // Calculate contributions to strain tensor + double denom; + for (i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + for (j = 0; j < 3; j++) { + for (k = 0; k < 3; k++) { + Y_tmp[j][k] = Y[i][j][k]; + X_tmp[j][k] = X[i][j][k]; + } + } + + if (dim == 3) { + invert3(Y_tmp, Y_inv); + } else { + denom = Y_tmp[0][0] * Y_tmp[1][1] - Y_tmp[0][1] * Y_tmp[1][0]; + if (denom != 0.0) denom = 1.0 / denom; + Y_inv[0][0] = Y_tmp[1][1] * denom; + Y_inv[0][1] = -Y_tmp[0][1] * denom; + Y_inv[1][0] = -Y_tmp[1][0] * denom; + Y_inv[1][1] = Y_tmp[0][0] * denom; + } + + times3(X_tmp, Y_inv, F_tmp); + + for (j = 0; j < 3; j++) { + for (k = 0; k < 3; k++) { + F[i][j][k] = F_tmp[j][k]; + } + } + } + + comm->forward_comm(this); + + // Second loop through neighbors + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + if (!(mask[i] & groupbit)) continue; + + itype = type[i]; + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + if (!(mask[j] & groupbit)) continue; + + jtype = type[j]; + r[0] = x[i][0] - x[j][0]; + r[1] = x[i][1] - x[j][1]; + r[2] = x[i][2] - x[j][2]; + rsq = lensq3(r); + + // Only include contributions from atoms that are CURRENTLY neighbors + if (cut_style == TYPE) { + if (rsq >= cutsq[itype][jtype]) continue; + } else if (cut_style == CUSTOM) { + if (rsq >= cutsq_custom) continue; + } else { + radsum = radius[i] + radius[j]; + if (rsq >= radsum * radsum) continue; + } + + r0[0] = x0[i][0] - x0[j][0]; + r0[1] = x0[i][1] - x0[j][1]; + r0[2] = x0[i][2] - x0[j][2]; + minimum_image0(r0); + + // E * r0 + for (k = 0; k < 3; k++) { + temp[k] = 0.0; + for (l = 0; l < 3; l++) + temp[k] += F[i][k][l] * r0[l]; + } + + sub3(r, temp, temp); + array_atom[i][0] += lensq3(temp); + norm[i] += 1; + + if (newton_pair || j < nlocal) { + for (k = 0; k < 3; k++) { + temp[k] = 0.0; + for (l = 0; l < 3; l++) + temp[k] += F[j][k][l] * r0[l]; + } + + sub3(r, temp, temp); + array_atom[j][0] += lensq3(temp); + norm[j] += 1; + } + } + } + + comm_flag = 1; + if (newton_pair) comm->reverse_comm(this, 2); + + for (i = 0; i < nlocal; i++) { + if (!(mask[i] & groupbit)) continue; + + if (norm[i] != 0) + array_atom[i][0] /= norm[i]; + else + array_atom[i][0] = 0.0; + array_atom[i][0] = sqrt(array_atom[i][0]); + + for (j = 0; j < 3; j++) + for (k = 0; k < 3; k++) + F_tmp[j][k] = F[i][j][k]; + + transpose_times3(F_tmp, F_tmp, E); + for (j = 0; j < dim; j++) E[j][j] -= 1.0; + + evol = (E[0][0] + E[1][1] + E[2][2]) / dim; + + // Calculate deviatoric strain + for (j = 0; j < dim; j++) E[j][j] -= evol; + j2 = 0.0; + for (j = 0; j < 3; j++) + for (k = 0; k < 3; k++) + j2 += E[j][k] * E[j][k]; + + edev = sqrt(0.5 * j2); + + array_atom[i][1] = evol; + array_atom[i][2] = edev; + } +} + +/* ---------------------------------------------------------------------- */ + +int FixNonaffineDisplacement::pack_reverse_comm(int n, int first, double *buf) +{ + int i, m, last, k, l; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + if (comm_flag == 0) { + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l++) { + buf[m++] = X[i][k][l]; + buf[m++] = Y[i][k][l]; + } + } + } else { + buf[m++] = array_atom[i][0]; + buf[m++] = ubuf(norm[i]).d; + } + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::unpack_reverse_comm(int n, int *list, double *buf) +{ + int i, j, m, k, l; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + if (comm_flag == 0) { + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l++) { + X[j][k][l] += buf[m++]; + Y[j][k][l] += buf[m++]; + } + } + } else { + array_atom[j][0] += buf[m++]; + norm[j] += (int) ubuf(buf[m++]).i; + } + } +} + +/* ---------------------------------------------------------------------- */ + +int FixNonaffineDisplacement::pack_forward_comm(int n, int *list, double *buf, + int /*pbc_flag*/, int * /*pbc*/) +{ + int i, j, m, k, l; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l ++) { + buf[m++] = F[j][k][l]; + } + } + } + + return m; +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::unpack_forward_comm(int n, int first, double *buf) +{ + int i, m, last, k, l; + + m = 0; + last = first + n; + for (i = first; i < last; i++) { + for (k = 0; k < 3; k++) { + for (l = 0; l < 3; l ++) { + F[i][k][l] = buf[m++]; + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::minimum_image0(double *delta) +{ + if (domain->triclinic == 0) { + if (domain->xperiodic) { + while (fabs(delta[0]) > xprd0_half) { + if (delta[0] < 0.0) delta[0] += xprd0; + else delta[0] -= xprd0; + } + } + if (domain->yperiodic) { + while (fabs(delta[1]) > yprd0_half) { + if (delta[1] < 0.0) delta[1] += yprd0; + else delta[1] -= yprd0; + } + } + if (domain->zperiodic) { + while (fabs(delta[2]) > zprd0_half) { + if (delta[2] < 0.0) delta[2] += zprd0; + else delta[2] -= zprd0; + } + } + + } else { + if (domain->zperiodic) { + while (fabs(delta[2]) > zprd0_half) { + if (delta[2] < 0.0) { + delta[2] += zprd0; + delta[1] += yz0; + delta[0] += xz0; + } else { + delta[2] -= zprd0; + delta[1] -= yz0; + delta[0] -= xz0; + } + } + } + if (domain->yperiodic) { + while (fabs(delta[1]) > yprd0_half) { + if (delta[1] < 0.0) { + delta[1] += yprd0; + delta[0] += xy0; + } else { + delta[1] -= yprd0; + delta[0] -= xy0; + } + } + } + if (domain->xperiodic) { + while (fabs(delta[0]) > xprd0_half) { + if (delta[0] < 0.0) delta[0] += xprd0; + else delta[0] -= xprd0; + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void FixNonaffineDisplacement::grow_arrays(int nmax_new) +{ + nmax = nmax_new; + memory->destroy(X); + memory->destroy(Y); + memory->destroy(F); + memory->destroy(norm); + memory->create(X, nmax, 3, 3, "fix_nonaffine_displacement:X"); + memory->create(Y, nmax, 3, 3, "fix_nonaffine_displacement:Y"); + memory->create(F, nmax, 3, 3, "fix_nonaffine_displacement:F"); + memory->create(norm, nmax, "fix_nonaffine_displacement:norm"); +} diff --git a/src/EXTRA-FIX/fix_nonaffine_displacement.h b/src/EXTRA-FIX/fix_nonaffine_displacement.h new file mode 100644 index 0000000000..0a195dc08e --- /dev/null +++ b/src/EXTRA-FIX/fix_nonaffine_displacement.h @@ -0,0 +1,71 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(nonaffine/displacement,FixNonaffineDisplacement) +// clang-format on +#else + +#ifndef LMP_FIX_NONAFFINE_DISPLACEMENT_H +#define LMP_FIX_NONAFFINE_DISPLACEMENT_H + +#include "fix.h" + +namespace LAMMPS_NS { + +class FixNonaffineDisplacement : public Fix { + public: + FixNonaffineDisplacement(class LAMMPS *, int, char **); + ~FixNonaffineDisplacement() override; + int setmask() override; + void post_constructor() override; + void init() override; + void init_list(int, class NeighList *) override; + void setup(int); + void post_force(int) override; + void write_restart(FILE *fp) override; + void restart(char *buf) override; + int pack_forward_comm(int, int *, double *, int, int *) override; + void unpack_forward_comm(int, int, double *) override; + int pack_reverse_comm(int, int, double *) override; + void unpack_reverse_comm(int, int *, double *) override; + + private: + double dtv; + char *id_fix; + class FixStoreAtom *fix; + int nmax, comm_flag; + int nad_style, cut_style; + int reference_style, offset_timestep, reference_timestep, update_timestep; + int reference_saved; + double cutoff_custom, cutsq_custom, mycutneigh; + double xprd0, yprd0, zprd0, xprd0_half, yprd0_half, zprd0_half, xy0, xz0, yz0; + + double ***X, ***Y, ***F; + int *norm; + + class NeighList *list; // half neighbor list + + + void integrate_velocity(); + void calculate_D2Min(); + void save_reference_state(); + void minimum_image0(double *); + void grow_arrays(int); +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/GRANULAR/compute_fabric.cpp b/src/GRANULAR/compute_fabric.cpp index fb95a8b446..adaf242c92 100644 --- a/src/GRANULAR/compute_fabric.cpp +++ b/src/GRANULAR/compute_fabric.cpp @@ -11,6 +11,10 @@ See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ +/* ---------------------------------------------------------------------- + Contributing authors: Joel Clemmer (SNL), Ishan Srivastava (LBNL) +------------------------------------------------------------------------- */ + #include "compute_fabric.h" #include "atom.h" diff --git a/src/KOKKOS/Install.sh b/src/KOKKOS/Install.sh index 489efc55a0..4be74334c9 100755 --- a/src/KOKKOS/Install.sh +++ b/src/KOKKOS/Install.sh @@ -177,6 +177,10 @@ action fix_shardlow_kokkos.cpp fix_shardlow.cpp action fix_shardlow_kokkos.h fix_shardlow.h action fix_spring_self_kokkos.cpp action fix_spring_self_kokkos.h +action fix_temp_berendsen_kokkos.cpp +action fix_temp_berendsen_kokkos.h +action fix_temp_rescale_kokkos.cpp +action fix_temp_rescale_kokkos.h action fix_viscous_kokkos.cpp action fix_viscous_kokkos.h action fix_wall_gran_kokkos.cpp fix_wall_gran.cpp diff --git a/src/KOKKOS/fix_reaxff_bonds_kokkos.h b/src/KOKKOS/fix_reaxff_bonds_kokkos.h index 29c8d457fd..89eb539ca8 100644 --- a/src/KOKKOS/fix_reaxff_bonds_kokkos.h +++ b/src/KOKKOS/fix_reaxff_bonds_kokkos.h @@ -16,9 +16,6 @@ FixStyle(reaxff/bonds/kk,FixReaxFFBondsKokkos); FixStyle(reaxff/bonds/kk/device,FixReaxFFBondsKokkos); FixStyle(reaxff/bonds/kk/host,FixReaxFFBondsKokkos); -FixStyle(reax/c/bonds/kk,FixReaxFFBondsKokkos); -FixStyle(reax/c/bonds/kk/device,FixReaxFFBondsKokkos); -FixStyle(reax/c/bonds/kk/host,FixReaxFFBondsKokkos); // clang-format on #else diff --git a/src/KOKKOS/fix_reaxff_species_kokkos.h b/src/KOKKOS/fix_reaxff_species_kokkos.h index 1848825a19..0500c6febf 100644 --- a/src/KOKKOS/fix_reaxff_species_kokkos.h +++ b/src/KOKKOS/fix_reaxff_species_kokkos.h @@ -16,9 +16,6 @@ FixStyle(reaxff/species/kk,FixReaxFFSpeciesKokkos); FixStyle(reaxff/species/kk/device,FixReaxFFSpeciesKokkos); FixStyle(reaxff/species/kk/host,FixReaxFFSpeciesKokkos); -FixStyle(reax/c/species/kk,FixReaxFFSpeciesKokkos); -FixStyle(reax/c/species/kk/device,FixReaxFFSpeciesKokkos); -FixStyle(reax/c/species/kk/host,FixReaxFFSpeciesKokkos); // clang-format on #else diff --git a/src/KOKKOS/fix_temp_berendsen_kokkos.cpp b/src/KOKKOS/fix_temp_berendsen_kokkos.cpp new file mode 100644 index 0000000000..b986b3189a --- /dev/null +++ b/src/KOKKOS/fix_temp_berendsen_kokkos.cpp @@ -0,0 +1,135 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "fix_temp_berendsen_kokkos.h" + +#include "atom_kokkos.h" +#include "comm.h" +#include "compute.h" +#include "error.h" +#include "force.h" +#include "group.h" +#include "input.h" +#include "modify.h" +#include "update.h" +#include "variable.h" +#include "atom_masks.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace FixConst; + +enum{NOBIAS,BIAS}; +enum{CONSTANT,EQUAL}; + +/* ---------------------------------------------------------------------- */ + +template +FixTempBerendsenKokkos::FixTempBerendsenKokkos(LAMMPS *lmp, int narg, char **arg) : + FixTempBerendsen(lmp, narg, arg) +{ + kokkosable = 1; + atomKK = (AtomKokkos *)atom; + execution_space = ExecutionSpaceFromDevice::space; + + datamask_read = EMPTY_MASK; + datamask_modify = EMPTY_MASK; +} + +/* ---------------------------------------------------------------------- */ + +template +void FixTempBerendsenKokkos::end_of_step() +{ + atomKK->sync(temperature->execution_space,temperature->datamask_read); + double t_current = temperature->compute_scalar(); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); + + double tdof = temperature->dof; + + // there is nothing to do, if there are no degrees of freedom + + if (tdof < 1) return; + + if (t_current == 0.0) + error->all(FLERR, "Computed current temperature for fix temp/berendsen must not be 0.0"); + + double delta = update->ntimestep - update->beginstep; + if (delta != 0.0) delta /= update->endstep - update->beginstep; + + // set current t_target + // if variable temp, evaluate variable, wrap with clear/add + + if (tstyle == CONSTANT) + t_target = t_start + delta * (t_stop-t_start); + else { + modify->clearstep_compute(); + t_target = input->variable->compute_equal(tvar); + if (t_target < 0.0) + error->one(FLERR, "Fix temp/berendsen variable {} returned negative temperature", + input->variable->names[tvar]); + modify->addstep_compute(update->ntimestep + nevery); + } + + // rescale velocities by lamda + // for BIAS: + // temperature is current, so do not need to re-compute + // OK to not test returned v = 0, since lamda is multiplied by v + + double lamda = sqrt(1.0 + update->dt/t_period*(t_target/t_current - 1.0)); + double efactor = 0.5 * force->boltz * tdof; + energy += t_current * (1.0-lamda*lamda) * efactor; + + auto v = atomKK->k_v.view(); + auto mask = atomKK->k_mask.view(); + int nlocal = atom->nlocal; + auto groupbit = this->groupbit; + + if (which == NOBIAS) { + atomKK->sync(temperature->execution_space,temperature->datamask_read); + temperature->remove_bias_all(); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); + } + + atomKK->sync(execution_space,V_MASK|MASK_MASK); + + Kokkos::parallel_for(Kokkos::RangePolicy(0,nlocal), LAMMPS_LAMBDA(int i) { + if (mask[i] & groupbit) { + v(i,0) *= lamda; + v(i,1) *= lamda; + v(i,2) *= lamda; + } + }); + + atomKK->modified(execution_space,V_MASK); + + if (which == NOBIAS) { + atomKK->sync(temperature->execution_space,temperature->datamask_read); + temperature->restore_bias_all(); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); + } +} +/* ---------------------------------------------------------------------- */ + +namespace LAMMPS_NS { +template class FixTempBerendsenKokkos; +#ifdef LMP_KOKKOS_GPU +template class FixTempBerendsenKokkos; +#endif +} diff --git a/src/KOKKOS/fix_temp_berendsen_kokkos.h b/src/KOKKOS/fix_temp_berendsen_kokkos.h new file mode 100644 index 0000000000..6a0aa5ce98 --- /dev/null +++ b/src/KOKKOS/fix_temp_berendsen_kokkos.h @@ -0,0 +1,44 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(temp/berendsen/kk,FixTempBerendsenKokkos); +FixStyle(temp/berendsen/kk/device,FixTempBerendsenKokkos); +FixStyle(temp/berendsen/kk/host,FixTempBerendsenKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_FIX_TEMP_BERENDSEN_KOKKOS_H +#define LMP_FIX_TEMP_BERENDSEN_KOKKOS_H + +#include "fix_temp_berendsen.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +template +class FixTempBerendsenKokkos : public FixTempBerendsen { + public: + typedef DeviceType device_type; + + FixTempBerendsenKokkos(class LAMMPS *, int, char **); + ~FixTempBerendsenKokkos() override {} + void end_of_step() override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/KOKKOS/fix_temp_rescale_kokkos.cpp b/src/KOKKOS/fix_temp_rescale_kokkos.cpp new file mode 100644 index 0000000000..3a1c6ddd26 --- /dev/null +++ b/src/KOKKOS/fix_temp_rescale_kokkos.cpp @@ -0,0 +1,140 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "fix_temp_rescale_kokkos.h" + +#include "atom_kokkos.h" +#include "comm.h" +#include "compute.h" +#include "error.h" +#include "force.h" +#include "group.h" +#include "input.h" +#include "modify.h" +#include "update.h" +#include "variable.h" +#include "atom_masks.h" + +#include +#include + +using namespace LAMMPS_NS; +using namespace FixConst; + +enum{NOBIAS,BIAS}; +enum{CONSTANT,EQUAL}; + +/* ---------------------------------------------------------------------- */ + +template +FixTempRescaleKokkos::FixTempRescaleKokkos(LAMMPS *lmp, int narg, char **arg) : + FixTempRescale(lmp, narg, arg) +{ + kokkosable = 1; + atomKK = (AtomKokkos *)atom; + execution_space = ExecutionSpaceFromDevice::space; + + datamask_read = EMPTY_MASK; + datamask_modify = EMPTY_MASK; +} + +/* ---------------------------------------------------------------------- */ + +template +void FixTempRescaleKokkos::end_of_step() +{ + atomKK->sync(temperature->execution_space,temperature->datamask_read); + double t_current = temperature->compute_scalar(); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); + + // there is nothing to do, if there are no degrees of freedom + + if (temperature->dof < 1) return; + + // protect against division by zero + + if (t_current == 0.0) + error->all(FLERR,"Computed temperature for fix temp/rescale cannot be 0.0"); + + double delta = update->ntimestep - update->beginstep; + if (delta != 0.0) delta /= update->endstep - update->beginstep; + + // set current t_target + // if variable temp, evaluate variable, wrap with clear/add + + if (tstyle == CONSTANT) + t_target = t_start + delta * (t_stop-t_start); + else { + modify->clearstep_compute(); + t_target = input->variable->compute_equal(tvar); + if (t_target < 0.0) + error->one(FLERR, "Fix temp/rescale variable returned negative temperature"); + modify->addstep_compute(update->ntimestep + nevery); + } + + // rescale velocity of appropriate atoms if outside window + // for BIAS: + // temperature is current, so do not need to re-compute + // OK to not test returned v = 0, since factor is multiplied by v + + if (fabs(t_current-t_target) > t_window) { + t_target = t_current - fraction*(t_current-t_target); + double factor = sqrt(t_target/t_current); + double efactor = 0.5 * force->boltz * temperature->dof; + + energy += (t_current-t_target) * efactor; + + auto v = atomKK->k_v.view(); + auto mask = atomKK->k_mask.view(); + int nlocal = atom->nlocal; + auto groupbit = this->groupbit; + + if (which == NOBIAS) { + atomKK->sync(temperature->execution_space,temperature->datamask_read); + temperature->remove_bias_all(); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); + } + + atomKK->sync(execution_space,V_MASK|MASK_MASK); + + Kokkos::parallel_for(Kokkos::RangePolicy(0,nlocal), LAMMPS_LAMBDA(int i) { + if (mask[i] & groupbit) { + v(i,0) *= factor; + v(i,1) *= factor; + v(i,2) *= factor; + } + }); + + atomKK->modified(execution_space,V_MASK); + + if (which == NOBIAS) { + atomKK->sync(temperature->execution_space,temperature->datamask_read); + temperature->restore_bias_all(); + atomKK->modified(temperature->execution_space,temperature->datamask_modify); + atomKK->sync(execution_space,temperature->datamask_modify); + + } + } +} + +/* ---------------------------------------------------------------------- */ + +namespace LAMMPS_NS { +template class FixTempRescaleKokkos; +#ifdef LMP_KOKKOS_GPU +template class FixTempRescaleKokkos; +#endif +} diff --git a/src/KOKKOS/fix_temp_rescale_kokkos.h b/src/KOKKOS/fix_temp_rescale_kokkos.h new file mode 100644 index 0000000000..7dd3111325 --- /dev/null +++ b/src/KOKKOS/fix_temp_rescale_kokkos.h @@ -0,0 +1,44 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef FIX_CLASS +// clang-format off +FixStyle(temp/rescale/kk,FixTempRescaleKokkos); +FixStyle(temp/rescale/kk/device,FixTempRescaleKokkos); +FixStyle(temp/rescale/kk/host,FixTempRescaleKokkos); +// clang-format on +#else + +// clang-format off +#ifndef LMP_FIX_TEMP_RESCALE_KOKKOS_H +#define LMP_FIX_TEMP_RESCALE_KOKKOS_H + +#include "fix_temp_rescale.h" +#include "kokkos_type.h" + +namespace LAMMPS_NS { + +template +class FixTempRescaleKokkos : public FixTempRescale { + public: + typedef DeviceType device_type; + + FixTempRescaleKokkos(class LAMMPS *, int, char **); + ~FixTempRescaleKokkos() override {} + void end_of_step() override; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/KOKKOS/pair_pace_extrapolation_kokkos.cpp b/src/KOKKOS/pair_pace_extrapolation_kokkos.cpp index 61722bf62d..0980ad776d 100644 --- a/src/KOKKOS/pair_pace_extrapolation_kokkos.cpp +++ b/src/KOKKOS/pair_pace_extrapolation_kokkos.cpp @@ -123,6 +123,10 @@ void PairPACEExtrapolationKokkos::grow(int natom, int maxneigh) // hard-core repulsion MemKK::realloc_kokkos(rho_core, "pace:rho_core", natom); MemKK::realloc_kokkos(dF_drho_core, "pace:dF_drho_core", natom); + MemKK::realloc_kokkos(dF_dfcut, "pace:dF_dfcut", natom); + MemKK::realloc_kokkos(d_d_min, "pace:r_min_pair", natom); + MemKK::realloc_kokkos(d_jj_min, "pace:j_min_pair", natom); + MemKK::realloc_kokkos(d_corerep, "pace:corerep", natom); // per-atom corerep MemKK::realloc_kokkos(dB_flatten, "pace:dB_flatten", natom, idx_ms_combs_max, basis_set->rankmax); @@ -219,6 +223,24 @@ void PairPACEExtrapolationKokkos::copy_pertype() Kokkos::deep_copy(d_wpre, h_wpre); Kokkos::deep_copy(d_mexp, h_mexp); + + + // ZBL core-rep + MemKK::realloc_kokkos(d_cut_in, "pace:d_cut_in", nelements, nelements); + MemKK::realloc_kokkos(d_dcut_in, "pace:d_dcut_in", nelements, nelements); + auto h_cut_in = Kokkos::create_mirror_view(d_cut_in); + auto h_dcut_in = Kokkos::create_mirror_view(d_dcut_in); + + for (int mu_i = 0; mu_i < nelements; ++mu_i) { + for (int mu_j = 0; mu_j < nelements; ++mu_j) { + h_cut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).rcut_in; + h_dcut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).dcut_in; + } + } + Kokkos::deep_copy(d_cut_in, h_cut_in); + Kokkos::deep_copy(d_dcut_in, h_dcut_in); + + is_zbl = basis_set->radial_functions->inner_cutoff_type == "zbl"; } /* ---------------------------------------------------------------------- */ @@ -573,13 +595,20 @@ void PairPACEExtrapolationKokkos::compute(int eflag_in, int vflag_in d_vatom = k_vatom.view(); } - if (gamma_flag && atom->nlocal > nmax) { + if (flag_compute_extrapolation_grade && atom->nlocal > nmax) { memory->destroy(extrapolation_grade_gamma); nmax = atom->nlocal; memory->create(extrapolation_grade_gamma, nmax, "pace/atom:gamma"); //zeroify array memset(extrapolation_grade_gamma, 0, nmax * sizeof(*extrapolation_grade_gamma)); } + if (flag_corerep_factor && atom->nlocal > nmax_corerep) { + memory->destroy(corerep_factor); + nmax_corerep = atom->nlocal; + memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep"); + //zeroify array + memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor)); + } copymode = 1; if (!force->newton_pair) @@ -631,8 +660,13 @@ void PairPACEExtrapolationKokkos::compute(int eflag_in, int vflag_in Kokkos::deep_copy(A_rank1, 0.0); Kokkos::deep_copy(rhos, 0.0); + Kokkos::deep_copy(rho_core, 0.0); + Kokkos::deep_copy(d_d_min, PairPACEExtrapolation::aceimpl->basis_set->cutoffmax); + Kokkos::deep_copy(d_jj_min, -1); + Kokkos::deep_copy(projections, 0.0); Kokkos::deep_copy(d_gamma, 0.0); + Kokkos::deep_copy(d_corerep, 0.0); EV_FLOAT ev_tmp; @@ -696,7 +730,7 @@ void PairPACEExtrapolationKokkos::compute(int eflag_in, int vflag_in } //ComputeGamma - if (gamma_flag) { + if (flag_compute_extrapolation_grade) { typename Kokkos::RangePolicy policy_gamma(0,chunk_size); Kokkos::parallel_for("ComputeGamma",policy_gamma,*this); } @@ -738,12 +772,17 @@ void PairPACEExtrapolationKokkos::compute(int eflag_in, int vflag_in } ev += ev_tmp; - //if gamma_flag - copy current d_gamma to extrapolation_grade_gamma - if (gamma_flag){ + //if flag_compute_extrapolation_grade - copy current d_gamma to extrapolation_grade_gamma + if (flag_compute_extrapolation_grade){ h_gamma = Kokkos::create_mirror_view(d_gamma); Kokkos::deep_copy(h_gamma, d_gamma); memcpy(extrapolation_grade_gamma+chunk_offset, (void *) h_gamma.data(), sizeof(double)*chunk_size); } + if (flag_corerep_factor) { + h_corerep = Kokkos::create_mirror_view(d_corerep); + Kokkos::deep_copy(h_corerep,d_corerep); + memcpy(corerep_factor+chunk_offset, (void *) h_corerep.data(), sizeof(double)*chunk_size); + } chunk_offset += chunk_size; } // end while @@ -799,6 +838,7 @@ void PairPACEExtrapolationKokkos::operator() (TagPairPACEComputeNeig const X_FLOAT ytmp = x(i,1); const X_FLOAT ztmp = x(i,2); const int jnum = d_numneigh[i]; + const int mu_i = d_map(type(i)); // get a pointer to scratch memory // This is used to cache whether or not an atom is within the cutoff @@ -858,6 +898,36 @@ void PairPACEExtrapolationKokkos::operator() (TagPairPACEComputeNeig } offset++; }); + + if (is_zbl) { + //adapted from https://www.osti.gov/servlets/purl/1429450 + if (ncount > 0) { + using minloc_value_type=Kokkos::MinLoc::value_type; + minloc_value_type djjmin; + djjmin.val=1e20; + djjmin.loc=-1; + Kokkos::MinLoc reducer_scalar(djjmin); + // loop over ncount (actual neighbours withing cutoff) rather than jnum (total number of neigh in cutoff+skin) + Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, ncount), + [&](const int offset, minloc_value_type &min_d_dist) { + int j = d_nearest(ii,offset); + j &= NEIGHMASK; + const int jtype = type(j); + auto r = d_rnorms(ii,offset); + const int mu_j = d_map(type(j)); + const F_FLOAT d = r - (d_cut_in(mu_i, mu_j) - d_dcut_in(mu_i, mu_j)); + if (d < min_d_dist.val) { + min_d_dist.val = d; + min_d_dist.loc = offset; + } + }, reducer_scalar); + d_d_min(ii) = djjmin.val; + d_jj_min(ii) = djjmin.loc;// d_jj_min should be NOT in 0..jnum range, but in 0..d_ncount(<=jnum) + } else { + d_d_min(ii) = 1e20; + d_jj_min(ii) = -1; + } + } } /* ---------------------------------------------------------------------- */ @@ -998,7 +1068,7 @@ void PairPACEExtrapolationKokkos::operator() (TagPairPACEComputeRho, //gamma_i - if (gamma_flag) + if (flag_compute_extrapolation_grade) Kokkos::atomic_add(&projections(ii, func_ind), d_gen_cgs(mu_i, idx_ms_comb) * A_cur); } else { // rank > 1 @@ -1037,7 +1107,7 @@ void PairPACEExtrapolationKokkos::operator() (TagPairPACEComputeRho, Kokkos::atomic_add(&rhos(ii, p), B.real_part_product(d_coeffs(mu_i, func_ind, p) * d_gen_cgs(mu_i, idx_ms_comb))); } //gamma_i - if (gamma_flag) + if (flag_compute_extrapolation_grade) Kokkos::atomic_add(&projections(ii, func_ind), B.real_part_product(d_gen_cgs(mu_i, idx_ms_comb))); } } @@ -1056,23 +1126,45 @@ void PairPACEExtrapolationKokkos::operator() (TagPairPACEComputeFS, const int ndensity = d_ndensity(mu_i); double evdwl, fcut, dfcut; + double evdwl_cut; evdwl = fcut = dfcut = 0.0; inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut); FS_values_and_derivatives(ii, evdwl, mu_i); - dF_drho_core(ii) = evdwl * dfcut + 1; + if (is_zbl) { + if (d_jj_min(ii) != -1) { + const int mu_jmin = d_mu(ii,d_jj_min(ii)); + F_FLOAT dcutin = d_dcut_in(mu_i, mu_jmin); + F_FLOAT transition_coordinate = dcutin - d_d_min(ii); // == cutin - r_min + cutoff_func_poly(transition_coordinate, dcutin, dcutin, fcut, dfcut); + dfcut = -dfcut; // invert, because rho_core = cutin - r_min + } else { + // no neighbours + fcut = 1; + dfcut = 0; + } + evdwl_cut = evdwl * fcut + rho_core(ii) * (1 - fcut); // evdwl * fcut + rho_core_uncut - rho_core_uncut* fcut + dF_drho_core(ii) = 1 - fcut; + dF_dfcut(ii) = evdwl * dfcut - rho_core(ii) * dfcut; + } else { + inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut); + dF_drho_core(ii) = evdwl * dfcut + 1; + evdwl_cut = evdwl * fcut + rho_core(ii); + } for (int p = 0; p < ndensity; ++p) dF_drho(ii, p) *= fcut; // tally energy contribution if (eflag) { - double evdwl_cut = evdwl * fcut + rho_core(ii); // E0 shift evdwl_cut += d_E0vals(mu_i); e_atom(ii) = evdwl_cut; } + + if (flag_corerep_factor) + d_corerep(ii) = 1-fcut; } /* ---------------------------------------------------------------------- */ @@ -1240,6 +1332,15 @@ void PairPACEExtrapolationKokkos::operator() (TagPairPACEComputeDeri f_ij(ii, jj, 0) = scale * f_ji[0] + fpair * r_hat[0]; f_ij(ii, jj, 1) = scale * f_ji[1] + fpair * r_hat[1]; f_ij(ii, jj, 2) = scale * f_ji[2] + fpair * r_hat[2]; + + if (is_zbl) { + if (jj==d_jj_min(ii)) { + // DCRU = 1.0 + f_ij(ii, jj, 0) += dF_dfcut(ii) * r_hat[0]; + f_ij(ii, jj, 1) += dF_dfcut(ii) * r_hat[1]; + f_ij(ii, jj, 2) += dF_dfcut(ii) * r_hat[2]; + } + } } /* ---------------------------------------------------------------------- */ @@ -1777,6 +1878,8 @@ double PairPACEExtrapolationKokkos::memory_usage() bytes += MemKK::memory_usage(weights_rank1); bytes += MemKK::memory_usage(rho_core); bytes += MemKK::memory_usage(dF_drho_core); + bytes += MemKK::memory_usage(dF_dfcut); + bytes += MemKK::memory_usage(d_corerep); bytes += MemKK::memory_usage(dB_flatten); bytes += MemKK::memory_usage(fr); bytes += MemKK::memory_usage(dfr); @@ -1794,6 +1897,8 @@ double PairPACEExtrapolationKokkos::memory_usage() bytes += MemKK::memory_usage(d_mu); bytes += MemKK::memory_usage(d_rhats); bytes += MemKK::memory_usage(d_rnorms); + bytes += MemKK::memory_usage(d_d_min); + bytes += MemKK::memory_usage(d_jj_min); bytes += MemKK::memory_usage(d_nearest); bytes += MemKK::memory_usage(f_ij); bytes += MemKK::memory_usage(d_rho_core_cutoff); @@ -1842,9 +1947,10 @@ double PairPACEExtrapolationKokkos::memory_usage() template void *PairPACEExtrapolationKokkos::extract(const char *str, int &dim) { - //check if str=="gamma_flag" then compute extrapolation grades on this iteration dim = 0; - if (strcmp(str, "gamma_flag") == 0) return (void *) &gamma_flag; + //check if str=="flag_compute_extrapolation_grade" then compute extrapolation grades on this iteration + if (strcmp(str, "gamma_flag") == 0) return (void *) &flag_compute_extrapolation_grade; + if (strcmp(str, "corerep_flag") == 0) return (void *) &flag_corerep_factor; dim = 2; if (strcmp(str, "scale") == 0) return (void *) scale; @@ -1867,6 +1973,10 @@ void *PairPACEExtrapolationKokkos::extract_peratom(const char *str, ncol = 0; return (void *) extrapolation_grade_gamma; } + if (strcmp(str, "corerep") == 0) { + ncol = 0; + return (void *) corerep_factor; + } return nullptr; } diff --git a/src/KOKKOS/pair_pace_extrapolation_kokkos.h b/src/KOKKOS/pair_pace_extrapolation_kokkos.h index 55bcf4fead..aa6c49c36d 100644 --- a/src/KOKKOS/pair_pace_extrapolation_kokkos.h +++ b/src/KOKKOS/pair_pace_extrapolation_kokkos.h @@ -106,7 +106,6 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation { protected: int inum, maxneigh, chunk_size, chunk_offset, idx_ms_combs_max, total_num_functions_max; int host_flag; - int gamma_flag; int eflag, vflag; @@ -130,6 +129,7 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation { tdual_fparams k_cutsq, k_scale; typedef Kokkos::View t_fparams; t_fparams d_cutsq, d_scale; + t_fparams d_cut_in, d_dcut_in; // inner cutoff typename AT::t_int_1d d_map; @@ -234,12 +234,16 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation { t_ace_2d rhos; t_ace_2d dF_drho; + t_ace_3c dB_flatten; + // hard-core repulsion t_ace_1d rho_core; - t_ace_3c dB_flatten; t_ace_2d cr; t_ace_2d dcr; t_ace_1d dF_drho_core; + t_ace_1d dF_dfcut; + t_ace_1d d_corerep; + th_ace_1d h_corerep; // radial functions t_ace_4d fr; @@ -282,6 +286,11 @@ class PairPACEExtrapolationKokkos : public PairPACEExtrapolation { t_ace_3d3 d_rhats; t_ace_2i d_nearest; + // for ZBL core-rep implementation + t_ace_1d d_d_min; // [i] -> min-d for atom ii, d=d = r - (cut_in(mu_i, mu_j) - dcut_in(mu_i, mu_j)) + t_ace_1i d_jj_min; // [i] -> jj-index of nearest neigh (by r-(cut_in-dcut_in) criterion) + bool is_zbl; + // per-type t_ace_1i d_ndensity; t_ace_1i d_npoti; diff --git a/src/KOKKOS/pair_pace_kokkos.cpp b/src/KOKKOS/pair_pace_kokkos.cpp index 153a6d0333..805d7f68bb 100644 --- a/src/KOKKOS/pair_pace_kokkos.cpp +++ b/src/KOKKOS/pair_pace_kokkos.cpp @@ -121,6 +121,11 @@ void PairPACEKokkos::grow(int natom, int maxneigh) // hard-core repulsion MemKK::realloc_kokkos(rho_core, "pace:rho_core", natom); MemKK::realloc_kokkos(dF_drho_core, "pace:dF_drho_core", natom); + MemKK::realloc_kokkos(dF_dfcut, "pace:dF_dfcut", natom); + MemKK::realloc_kokkos(d_d_min, "pace:r_min_pair", natom); + MemKK::realloc_kokkos(d_jj_min, "pace:j_min_pair", natom); + MemKK::realloc_kokkos(d_corerep, "pace:corerep", natom); // per-atom corerep + MemKK::realloc_kokkos(dB_flatten, "pace:dB_flatten", natom, idx_rho_max, basis_set->rankmax); } @@ -212,6 +217,23 @@ void PairPACEKokkos::copy_pertype() Kokkos::deep_copy(d_wpre, h_wpre); Kokkos::deep_copy(d_mexp, h_mexp); + + // ZBL core-rep + MemKK::realloc_kokkos(d_cut_in, "pace:d_cut_in", nelements, nelements); + MemKK::realloc_kokkos(d_dcut_in, "pace:d_dcut_in", nelements, nelements); + auto h_cut_in = Kokkos::create_mirror_view(d_cut_in); + auto h_dcut_in = Kokkos::create_mirror_view(d_dcut_in); + + for (int mu_i = 0; mu_i < nelements; ++mu_i) { + for (int mu_j = 0; mu_j < nelements; ++mu_j) { + h_cut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).rcut_in; + h_dcut_in(mu_i,mu_j) = basis_set->map_bond_specifications.at({mu_i,mu_j}).dcut_in; + } + } + Kokkos::deep_copy(d_cut_in, h_cut_in); + Kokkos::deep_copy(d_dcut_in, h_dcut_in); + + is_zbl = basis_set->radial_functions->inner_cutoff_type == "zbl"; } /* ---------------------------------------------------------------------- */ @@ -535,6 +557,13 @@ void PairPACEKokkos::compute(int eflag_in, int vflag_in) memoryKK->create_kokkos(k_vatom,vatom,maxvatom,"pair:vatom"); d_vatom = k_vatom.view(); } + if (flag_corerep_factor && atom->nlocal > nmax_corerep) { + memory->destroy(corerep_factor); + nmax_corerep = atom->nlocal; + memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep"); + //zeroify array + memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor)); + } copymode = 1; if (!force->newton_pair) @@ -588,6 +617,9 @@ void PairPACEKokkos::compute(int eflag_in, int vflag_in) Kokkos::deep_copy(A_rank1, 0.0); Kokkos::deep_copy(rhos, 0.0); Kokkos::deep_copy(rho_core, 0.0); + Kokkos::deep_copy(d_d_min, PairPACE::aceimpl->basis_set->cutoffmax); + Kokkos::deep_copy(d_jj_min, -1); + Kokkos::deep_copy(d_corerep, 0.0); EV_FLOAT ev_tmp; @@ -686,6 +718,13 @@ void PairPACEKokkos::compute(int eflag_in, int vflag_in) } } ev += ev_tmp; + + if (flag_corerep_factor) { + h_corerep = Kokkos::create_mirror_view(d_corerep); + Kokkos::deep_copy(h_corerep,d_corerep); + memcpy(corerep_factor+chunk_offset, (void *) h_corerep.data(), sizeof(double)*chunk_size); + } + chunk_offset += chunk_size; } // end while @@ -741,6 +780,7 @@ void PairPACEKokkos::operator() (TagPairPACEComputeNeigh,const typen const X_FLOAT ytmp = x(i,1); const X_FLOAT ztmp = x(i,2); const int jnum = d_numneigh[i]; + const int mu_i = d_map(type(i)); // get a pointer to scratch memory // This is used to cache whether or not an atom is within the cutoff @@ -800,6 +840,36 @@ void PairPACEKokkos::operator() (TagPairPACEComputeNeigh,const typen } offset++; }); + + if (is_zbl) { + //adapted from https://www.osti.gov/servlets/purl/1429450 + if(ncount>0) { + using minloc_value_type=Kokkos::MinLoc::value_type; + minloc_value_type djjmin; + djjmin.val=1e20; + djjmin.loc=-1; + Kokkos::MinLoc reducer_scalar(djjmin); + // loop over ncount (actual neighbours withing cutoff) rather than jnum (total number of neigh in cutoff+skin) + Kokkos::parallel_reduce(Kokkos::TeamThreadRange(team, ncount), + [&](const int offset, minloc_value_type &min_d_dist) { + int j = d_nearest(ii,offset); + j &= NEIGHMASK; + const int jtype = type(j); + auto r = d_rnorms(ii,offset); + const int mu_j = d_map(type(j)); + const F_FLOAT d = r - (d_cut_in(mu_i, mu_j) - d_dcut_in(mu_i, mu_j)); + if (d < min_d_dist.val) { + min_d_dist.val = d; + min_d_dist.loc = offset; + } + }, reducer_scalar); + d_d_min(ii) = djjmin.val; + d_jj_min(ii) = djjmin.loc;// d_jj_min should be NOT in 0..jnum range, but in 0..d_ncount(<=jnum) + } else { + d_d_min(ii) = 1e20; + d_jj_min(ii) = -1; + } + } } /* ---------------------------------------------------------------------- */ @@ -990,23 +1060,42 @@ void PairPACEKokkos::operator() (TagPairPACEComputeFS, const int& ii const int ndensity = d_ndensity(mu_i); double evdwl, fcut, dfcut; + double evdwl_cut; evdwl = fcut = dfcut = 0.0; - inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut); FS_values_and_derivatives(ii, evdwl, mu_i); - - dF_drho_core(ii) = evdwl * dfcut + 1; + if (is_zbl) { + if (d_jj_min(ii) != -1) { + const int mu_jmin = d_mu(ii,d_jj_min(ii)); + F_FLOAT dcutin = d_dcut_in(mu_i, mu_jmin); + F_FLOAT transition_coordinate = dcutin - d_d_min(ii); // == cutin - r_min + cutoff_func_poly(transition_coordinate, dcutin, dcutin, fcut, dfcut); + dfcut = -dfcut; // invert, because rho_core = cutin - r_min + } else { + // no neighbours + fcut = 1; + dfcut = 0; + } + evdwl_cut = evdwl * fcut + rho_core(ii) * (1 - fcut); // evdwl * fcut + rho_core_uncut - rho_core_uncut* fcut + dF_drho_core(ii) = 1 - fcut; + dF_dfcut(ii) = evdwl * dfcut - rho_core(ii) * dfcut; + } else { + inner_cutoff(rho_core(ii), rho_cut, drho_cut, fcut, dfcut); + dF_drho_core(ii) = evdwl * dfcut + 1; + evdwl_cut = evdwl * fcut + rho_core(ii); + } for (int p = 0; p < ndensity; ++p) - dF_drho(ii, p) *= fcut; - + dF_drho(ii, p) *= fcut; // tally energy contribution if (eflag) { - double evdwl_cut = evdwl * fcut + rho_core(ii); - // E0 shift - evdwl_cut += d_E0vals(mu_i); - e_atom(ii) = evdwl_cut; + // E0 shift + evdwl_cut += d_E0vals(mu_i); + e_atom(ii) = evdwl_cut; } + + if (flag_corerep_factor) + d_corerep(ii) = 1-fcut; } /* ---------------------------------------------------------------------- */ @@ -1146,6 +1235,15 @@ void PairPACEKokkos::operator() (TagPairPACEComputeDerivative, const f_ij(ii, jj, 0) = scale * f_ji[0] + fpair * r_hat[0]; f_ij(ii, jj, 1) = scale * f_ji[1] + fpair * r_hat[1]; f_ij(ii, jj, 2) = scale * f_ji[2] + fpair * r_hat[2]; + + if (is_zbl) { + if (jj==d_jj_min(ii)) { + // DCRU = 1.0 + f_ij(ii, jj, 0) += dF_dfcut(ii) * r_hat[0]; + f_ij(ii, jj, 1) += dF_dfcut(ii) * r_hat[1]; + f_ij(ii, jj, 2) += dF_dfcut(ii) * r_hat[2]; + } + } } /* ---------------------------------------------------------------------- */ @@ -1683,6 +1781,8 @@ double PairPACEKokkos::memory_usage() bytes += MemKK::memory_usage(weights_rank1); bytes += MemKK::memory_usage(rho_core); bytes += MemKK::memory_usage(dF_drho_core); + bytes += MemKK::memory_usage(dF_dfcut); + bytes += MemKK::memory_usage(d_corerep); bytes += MemKK::memory_usage(dB_flatten); bytes += MemKK::memory_usage(fr); bytes += MemKK::memory_usage(dfr); @@ -1700,6 +1800,8 @@ double PairPACEKokkos::memory_usage() bytes += MemKK::memory_usage(d_mu); bytes += MemKK::memory_usage(d_rhats); bytes += MemKK::memory_usage(d_rnorms); + bytes += MemKK::memory_usage(d_d_min); + bytes += MemKK::memory_usage(d_jj_min); bytes += MemKK::memory_usage(d_nearest); bytes += MemKK::memory_usage(f_ij); bytes += MemKK::memory_usage(d_rho_core_cutoff); diff --git a/src/KOKKOS/pair_pace_kokkos.h b/src/KOKKOS/pair_pace_kokkos.h index 39cfd100f8..36486f8628 100644 --- a/src/KOKKOS/pair_pace_kokkos.h +++ b/src/KOKKOS/pair_pace_kokkos.h @@ -121,6 +121,7 @@ class PairPACEKokkos : public PairPACE { tdual_fparams k_cutsq, k_scale; typedef Kokkos::View t_fparams; t_fparams d_cutsq, d_scale; + t_fparams d_cut_in, d_dcut_in; // inner cutoff typename AT::t_int_1d d_map; @@ -209,6 +210,8 @@ class PairPACEKokkos : public PairPACE { typedef Kokkos::View t_ace_4c; typedef Kokkos::View t_ace_4c3; + typedef typename Kokkos::View::HostMirror th_ace_1d; + t_ace_3d A_rank1; t_ace_4c A; @@ -222,12 +225,16 @@ class PairPACEKokkos : public PairPACE { t_ace_2d rhos; t_ace_2d dF_drho; + t_ace_3c dB_flatten; + // hard-core repulsion t_ace_1d rho_core; - t_ace_3c dB_flatten; t_ace_2d cr; t_ace_2d dcr; t_ace_1d dF_drho_core; + t_ace_1d dF_dfcut; + t_ace_1d d_corerep; + th_ace_1d h_corerep; // radial functions t_ace_4d fr; @@ -265,6 +272,11 @@ class PairPACEKokkos : public PairPACE { t_ace_3d3 d_rhats; t_ace_2i d_nearest; + // for ZBL core-rep implementation + t_ace_1d d_d_min; // [i] -> min-d for atom ii, d=d = r - (cut_in(mu_i, mu_j) - dcut_in(mu_i, mu_j)) + t_ace_1i d_jj_min; // [i] -> jj-index of nearest neigh (by r-(cut_in-dcut_in) criterion) + bool is_zbl; + // per-type t_ace_1i d_ndensity; t_ace_1i d_npoti; diff --git a/src/KOKKOS/pair_reaxff_kokkos.h b/src/KOKKOS/pair_reaxff_kokkos.h index 1ad0955a1e..421d704d03 100644 --- a/src/KOKKOS/pair_reaxff_kokkos.h +++ b/src/KOKKOS/pair_reaxff_kokkos.h @@ -16,9 +16,6 @@ PairStyle(reaxff/kk,PairReaxFFKokkos); PairStyle(reaxff/kk/device,PairReaxFFKokkos); PairStyle(reaxff/kk/host,PairReaxFFKokkos); -PairStyle(reax/c/kk,PairReaxFFKokkos); -PairStyle(reax/c/kk/device,PairReaxFFKokkos); -PairStyle(reax/c/kk/host,PairReaxFFKokkos); // clang-format on #else diff --git a/src/KSPACE/fft3d_wrap.cpp b/src/KSPACE/fft3d_wrap.cpp index 478cf6fc9d..7b00543eea 100644 --- a/src/KSPACE/fft3d_wrap.cpp +++ b/src/KSPACE/fft3d_wrap.cpp @@ -27,30 +27,66 @@ FFT3d::FFT3d(LAMMPS *lmp, MPI_Comm comm, int nfast, int nmid, int nslow, int out_klo, int out_khi, int scaled, int permute, int *nbuf, int usecollective) : Pointers(lmp) { + #ifndef FFT_HEFFTE plan = fft_3d_create_plan(comm,nfast,nmid,nslow, in_ilo,in_ihi,in_jlo,in_jhi,in_klo,in_khi, out_ilo,out_ihi,out_jlo,out_jhi,out_klo,out_khi, scaled,permute,nbuf,usecollective); if (plan == nullptr) error->one(FLERR,"Could not create 3d FFT plan"); + #else + heffte::plan_options options = heffte::default_options(); + options.algorithm = (usecollective == 0) ? + heffte::reshape_algorithm::p2p_plined + : heffte::reshape_algorithm::alltoallv; + options.use_reorder = (permute != 0); + hscale = (scaled == 0) ? heffte::scale::none : heffte::scale::full; + + heffte_plan = std::unique_ptr>( + new heffte::fft3d( + heffte::box3d<>({in_ilo,in_jlo,in_klo}, {in_ihi, in_jhi, in_khi}), + heffte::box3d<>({out_ilo,out_jlo,out_klo}, {out_ihi, out_jhi, out_khi}), + comm, options) + ); + *nbuf = heffte_plan->size_workspace(); + heffte_workspace.resize(heffte_plan->size_workspace()); + #endif } /* ---------------------------------------------------------------------- */ FFT3d::~FFT3d() { + #ifndef FFT_HEFFTE fft_3d_destroy_plan(plan); + #endif } /* ---------------------------------------------------------------------- */ void FFT3d::compute(FFT_SCALAR *in, FFT_SCALAR *out, int flag) { + #ifndef FFT_HEFFTE fft_3d((FFT_DATA *) in,(FFT_DATA *) out,flag,plan); + #else + if (flag == 1) + heffte_plan->forward(reinterpret_cast*>(in), + reinterpret_cast*>(out), + reinterpret_cast*>(heffte_workspace.data()) + ); + else + heffte_plan->backward(reinterpret_cast*>(in), + reinterpret_cast*>(out), + reinterpret_cast*>(heffte_workspace.data()), + hscale + ); + #endif } /* ---------------------------------------------------------------------- */ void FFT3d::timing1d(FFT_SCALAR *in, int nsize, int flag) { + #ifndef FFT_HEFFTE fft_1d_only((FFT_DATA *) in,nsize,flag,plan); + #endif } diff --git a/src/KSPACE/fft3d_wrap.h b/src/KSPACE/fft3d_wrap.h index f72cfd4622..04b828b7de 100644 --- a/src/KSPACE/fft3d_wrap.h +++ b/src/KSPACE/fft3d_wrap.h @@ -17,6 +17,19 @@ #include "fft3d.h" // IWYU pragma: export #include "pointers.h" +#ifdef FFT_HEFFTE +#include "heffte.h" +// select the backend +#if defined(FFT_HEFFTE_FFTW) +using heffte_backend = heffte::backend::fftw; +#elif defined(FFT_HEFFTE_MKL) +using heffte_backend = heffte::backend::mkl; +#else +using heffte_backend = heffte::backend::stock; +#endif + +#endif // FFT_HEFFTE + namespace LAMMPS_NS { class FFT3d : protected Pointers { @@ -30,7 +43,14 @@ class FFT3d : protected Pointers { void timing1d(FFT_SCALAR *, int, int); private: + #ifdef FFT_HEFFTE + // the heFFTe plan supersedes the internal fft_plan_3d + std::unique_ptr> heffte_plan; + std::vector> heffte_workspace; + heffte::scale hscale; + #else struct fft_plan_3d *plan; + #endif }; } // namespace LAMMPS_NS diff --git a/src/MDI/fix_mdi_engine.cpp b/src/MDI/fix_mdi_engine.cpp index 0c70678add..0494d08b2d 100644 --- a/src/MDI/fix_mdi_engine.cpp +++ b/src/MDI/fix_mdi_engine.cpp @@ -28,7 +28,8 @@ using namespace FixConst; /* ---------------------------------------------------------------------- */ -FixMDIEngine::FixMDIEngine(LAMMPS *_lmp, int narg, char **arg) : Fix(_lmp, narg, arg) +FixMDIEngine::FixMDIEngine(LAMMPS *_lmp, int narg, char **arg) : + Fix(_lmp, narg, arg), mdi_engine(nullptr) { if (narg != 3) error->all(FLERR, "Illegal fix mdi/engine command"); } diff --git a/src/MDI/fix_mdi_qm.cpp b/src/MDI/fix_mdi_qm.cpp index fd145e08e6..3ff6b22764 100644 --- a/src/MDI/fix_mdi_qm.cpp +++ b/src/MDI/fix_mdi_qm.cpp @@ -35,7 +35,10 @@ static int compare_IDs(const int, const int, void *); /* ---------------------------------------------------------------------- */ -FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), id_mcfix(nullptr), mc_active_ptr(nullptr), exclusion_group_ptr(nullptr), + elements(nullptr), qmIDs(nullptr), qm2owned(nullptr), eqm(nullptr), eqm_mine(nullptr), + tqm(nullptr), tqm_mine(nullptr), xqm(nullptr), xqm_mine(nullptr), fqm(nullptr) { // check requirements for LAMMPS to work with MDI as an engine // atom IDs do not need to be consecutive @@ -58,9 +61,7 @@ FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) addflag = 1; every = 1; connectflag = 1; - elements = nullptr; mcflag = 0; - id_mcfix = nullptr; int iarg = 3; while (iarg < narg) { @@ -178,18 +179,6 @@ FixMDIQM::FixMDIQM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) nqm = nqm_last = max_nqm = 0; nexclude = 0; - qmIDs = nullptr; - qm2owned = nullptr; - - eqm = nullptr; - tqm = nullptr; - xqm = nullptr; - fqm = nullptr; - - eqm_mine = nullptr; - tqm_mine = nullptr; - xqm_mine = nullptr; - // per-atom data nmax = atom->nmax; @@ -999,9 +988,8 @@ void FixMDIQM::send_box() ierr = MDI_Send(qm_cell, 9, MDI_DOUBLE, mdicomm); if (ierr) error->all(FLERR, "MDI: >CELL data"); - } else if (domain->xperiodic == 1 || domain->yperiodic == 1 || - domain->zperiodic == 1) { - error->all(FLERR,"MDI requires fully periodic or fully non-periodic system"); + } else if (domain->xperiodic == 1 || domain->yperiodic == 1 || domain->zperiodic == 1) { + error->all(FLERR, "MDI requires fully periodic or fully non-periodic system"); } } diff --git a/src/MDI/fix_mdi_qmmm.cpp b/src/MDI/fix_mdi_qmmm.cpp index cf92a063d4..8e63a34472 100644 --- a/src/MDI/fix_mdi_qmmm.cpp +++ b/src/MDI/fix_mdi_qmmm.cpp @@ -39,7 +39,11 @@ static int compare_IDs(const int, const int, void *); /* ---------------------------------------------------------------------- */ -FixMDIQMMM::FixMDIQMMM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) +FixMDIQMMM::FixMDIQMMM(LAMMPS *lmp, int narg, char **arg) : + Fix(lmp, narg, arg), elements(nullptr), pair_coul(nullptr), qmIDs(nullptr), qm2owned(nullptr), + eqm(nullptr), eqm_mine(nullptr), tqm(nullptr), tqm_mine(nullptr), xqm(nullptr), + xqm_mine(nullptr), qqm(nullptr), qqm_mine(nullptr), qpotential(nullptr), + qpotential_mine(nullptr), fqm(nullptr), ecoul(nullptr) { // check requirements for LAMMPS to work with MDI for a QMMM engine // atom IDs do not need to be consecutive @@ -69,7 +73,6 @@ FixMDIQMMM::FixMDIQMMM(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) virialflag = 0; connectflag = 1; - elements = nullptr; int iarg = 4; while (iarg < narg) { @@ -1782,9 +1785,8 @@ void FixMDIQMMM::send_box() ierr = MDI_Send(qm_cell, 9, MDI_DOUBLE, mdicomm); if (ierr) error->all(FLERR, "MDI: >CELL data"); - } else if (domain->xperiodic == 1 || domain->yperiodic == 1 || - domain->zperiodic == 1) { - error->all(FLERR,"MDI requires fully periodic or fully non-periodic system"); + } else if (domain->xperiodic == 1 || domain->yperiodic == 1 || domain->zperiodic == 1) { + error->all(FLERR, "MDI requires fully periodic or fully non-periodic system"); } } diff --git a/src/MDI/library_mdi.cpp b/src/MDI/library_mdi.cpp index 2216704e5a..13e318d95f 100644 --- a/src/MDI/library_mdi.cpp +++ b/src/MDI/library_mdi.cpp @@ -67,7 +67,7 @@ int MDI_Plugin_init_lammps(void *plugin_state) // find the -in argument int iarg = 0; - char *filename; + char *filename = nullptr; bool found_filename = false; while (iarg < mdi_argc && !found_filename) { diff --git a/src/MDI/mdi_engine.cpp b/src/MDI/mdi_engine.cpp index 58f750f62a..f7025549cd 100644 --- a/src/MDI/mdi_engine.cpp +++ b/src/MDI/mdi_engine.cpp @@ -103,9 +103,8 @@ MDIEngine::MDIEngine(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp) for (int i = 1; i <= ntypes; i++) { int anum; for (anum = 0; anum < MAXELEMENT; anum++) - if (strcmp(arg[iarg + i],symbols[anum]) == 0) break; - if (anum == MAXELEMENT) - error->all(FLERR,"Invalid chemical element in mdi engine command"); + if (strcmp(arg[iarg + i], symbols[anum]) == 0) break; + if (anum == MAXELEMENT) error->all(FLERR, "Invalid chemical element in mdi engine command"); elements[i] = anum + 1; } iarg += ntypes + 1; diff --git a/src/MDI/mdi_plugin.cpp b/src/MDI/mdi_plugin.cpp index f02ec3bf57..d7805d0cba 100644 --- a/src/MDI/mdi_plugin.cpp +++ b/src/MDI/mdi_plugin.cpp @@ -22,6 +22,7 @@ #include "input.h" #include "modify.h" +#include #include #include @@ -66,11 +67,12 @@ MDIPlugin::MDIPlugin(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp) // do variable substitution in multiple word extra_arg int ncopy = strlen(extra_arg) + 1; - char *copy = utils::strdup(extra_arg); - char *work = new char[ncopy]; + char *copy = (char *) malloc(ncopy); + strncpy(copy, extra_arg, ncopy); + char *work = (char *) malloc(ncopy); int nwork = ncopy; - input->substitute(copy,work,ncopy,nwork,0); - delete[] work; + input->substitute(copy, work, ncopy, nwork, 0); + free(work); extra_arg = copy; iarg += 2; @@ -81,11 +83,12 @@ MDIPlugin::MDIPlugin(LAMMPS *_lmp, int narg, char **arg) : Pointers(_lmp) // do variable substitution in multiple word lammps_command int ncopy = strlen(lammps_command) + 1; - char *copy = utils::strdup(lammps_command); - char *work = new char[ncopy]; + char *copy = (char *) malloc(ncopy); + strncpy(copy, extra_arg, ncopy); + char *work = (char *) malloc(ncopy); int nwork = ncopy; - input->substitute(copy,work,ncopy,nwork,0); - delete[] work; + input->substitute(copy, work, ncopy, nwork, 0); + free(work); lammps_command = copy; iarg += 2; diff --git a/src/ML-PACE/compute_pace.cpp b/src/ML-PACE/compute_pace.cpp new file mode 100644 index 0000000000..cf3be8f47f --- /dev/null +++ b/src/ML-PACE/compute_pace.cpp @@ -0,0 +1,496 @@ +// clang-format off +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS Development team: developers@lammps.org + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#include "compute_pace.h" +#include "ace-evaluator/ace_evaluator.h" +#include "ace-evaluator/ace_c_basis.h" +#include "ace-evaluator/ace_abstract_basis.h" +#include "ace-evaluator/ace_types.h" +#include +#include + +#include "atom.h" +#include "update.h" +#include "modify.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "force.h" +#include "pair.h" +#include "comm.h" +#include "memory.h" +#include "error.h" + +namespace LAMMPS_NS { +struct ACECimpl { + ACECimpl() : basis_set(nullptr), ace(nullptr) {} + ~ACECimpl() + { + delete basis_set; + delete ace; + } + ACECTildeBasisSet *basis_set; + ACECTildeEvaluator *ace; +}; +} + +using namespace LAMMPS_NS; + +enum{SCALAR,VECTOR,ARRAY}; +ComputePACE::ComputePACE(LAMMPS *lmp, int narg, char **arg) : + Compute(lmp, narg, arg), cutsq(nullptr), list(nullptr), pace(nullptr), + paceall(nullptr), pace_peratom(nullptr), map(nullptr), cg(nullptr) +{ + array_flag = 1; + extarray = 0; + bikflag = 0; + dgradflag = 0; + + int ntypes = atom->ntypes; + int nargmin = 4; + + acecimpl = new ACECimpl; + if (narg < nargmin) error->all(FLERR,"Illegal compute pace command"); + + bikflag = utils::inumeric(FLERR, arg[4], false, lmp); + dgradflag = utils::inumeric(FLERR, arg[5], false, lmp); + if (dgradflag && !bikflag) + error->all(FLERR,"Illegal compute pace command: dgradflag=1 requires bikflag=1"); + + memory->create(map,ntypes+1,"pace:map"); + + //read in file with CG coefficients or c_tilde coefficients + + auto potential_file_name = utils::get_potential_file_path(arg[3]); + delete acecimpl -> basis_set; + acecimpl -> basis_set = new ACECTildeBasisSet(potential_file_name); + double cut = acecimpl -> basis_set->cutoffmax; + cutmax = acecimpl -> basis_set->cutoffmax; + double cuti; + double radelemall = 0.5; + + //# of rank 1, rank > 1 functions + + int n_r1, n_rp = 0; + n_r1 = acecimpl -> basis_set->total_basis_size_rank1[0]; + n_rp = acecimpl -> basis_set->total_basis_size[0]; + + int ncoeff = n_r1 + n_rp; + + //int nvalues = ncoeff; + + nvalues = ncoeff; + + //----------------------------------------------------------- + //nperdim = ncoeff; + + ndims_force = 3; + ndims_virial = 6; + bik_rows = 1; + yoffset = nvalues; //nperdim; + zoffset = 2*nvalues; //nperdim; + natoms = atom->natoms; + if (bikflag) bik_rows = natoms; + dgrad_rows = ndims_force*natoms; + size_array_rows = bik_rows+dgrad_rows + ndims_virial; + if (dgradflag) { + size_array_rows = bik_rows + 3*natoms*natoms + 1; + size_array_cols = nvalues + 3; + if (comm->me == 0) + error->warning(FLERR,"dgradflag=1 creates a N^2 array, beware of large systems."); + } else size_array_cols = nvalues*atom->ntypes + 1; + lastcol = size_array_cols-1; + + ndims_peratom = ndims_force; + size_peratom = ndims_peratom*nvalues*atom->ntypes; + + nmax = 0; +} + +/* ---------------------------------------------------------------------- */ + +ComputePACE::~ComputePACE() +{ + delete acecimpl; + memory->destroy(pace); + memory->destroy(paceall); + memory->destroy(cutsq); + memory->destroy(pace_peratom); + memory->destroy(map); +} + +/* ---------------------------------------------------------------------- */ + +void ComputePACE::init() +{ + if (force->pair == nullptr) + error->all(FLERR,"Compute pace requires a pair style be defined"); + + if (cutmax > force->pair->cutforce) + error->all(FLERR,"Compute pace cutoff is longer than pairwise cutoff"); + + // need an occasional full neighbor list + neighbor->add_request(this, NeighConst::REQ_FULL | NeighConst::REQ_OCCASIONAL); + + int count = 0; + for (int i = 0; i < modify->ncompute; i++) + if (strcmp(modify->compute[i]->style,"pace") == 0) count++; + if (count > 1 && comm->me == 0) + error->warning(FLERR,"More than one compute pace"); + + // allocate memory for global array + memory->create(pace,size_array_rows,size_array_cols, "pace:pace"); + memory->create(paceall,size_array_rows,size_array_cols, "pace:paceall"); + array = paceall; + + // find compute for reference energy + + std::string id_pe = std::string("thermo_pe"); + int ipe = modify->find_compute(id_pe); + if (ipe == -1) + error->all(FLERR,"compute thermo_pe does not exist."); + c_pe = modify->compute[ipe]; + + // add compute for reference virial tensor + + std::string id_virial = std::string("pace_press"); + std::string pcmd = id_virial + " all pressure NULL virial"; + modify->add_compute(pcmd); + + int ivirial = modify->find_compute(id_virial); + if (ivirial == -1) + error->all(FLERR,"compute pace_press does not exist."); + c_virial = modify->compute[ivirial]; +} + +/* ---------------------------------------------------------------------- */ + +void ComputePACE::init_list(int /*id*/, NeighList *ptr) +{ + list = ptr; +} + +/* ---------------------------------------------------------------------- */ + +void ComputePACE::compute_array() +{ + int ntotal = atom->nlocal + atom->nghost; + double **f = atom->f; + invoked_array = update->ntimestep; + + // grow pace_peratom array if necessary + + if (atom->nmax > nmax) { + memory->destroy(pace_peratom); + nmax = atom->nmax; + memory->create(pace_peratom,nmax,size_peratom,"pace:pace_peratom"); + } + + // clear global array + + for (int irow = 0; irow < size_array_rows; irow++){ + for (int icoeff = 0; icoeff < size_array_cols; icoeff++){ + pace[irow][icoeff] = 0.0; + } + } + + // clear local peratom array + + for (int i = 0; i < ntotal; i++){ + for (int icoeff = 0; icoeff < size_peratom; icoeff++) { + pace_peratom[i][icoeff] = 0.0; + } + } + + // invoke full neighbor list (will copy or build if necessary) + + neighbor->build_one(list); + SPECIES_TYPE *mus; + NS_TYPE *ns; + LS_TYPE *ls; + + const int inum = list->inum; + const int* const ilist = list->ilist; + const int* const numneigh = list->numneigh; + int** const firstneigh = list->firstneigh; + int * const type = atom->type; + + //determine the maximum number of neighbours + int max_jnum = -1; + int nei = 0; + int jtmp =0; + for (int iitmp = 0; iitmp < list->inum; iitmp++) { + int itmp = ilist[iitmp]; + jtmp = numneigh[itmp]; + nei = nei + jtmp; + if (jtmp > max_jnum){ + max_jnum = jtmp; + } + } + + // compute pace derivatives for each atom in group + // use full neighbor list to count atoms less than cutoff + + double** const x = atom->x; + const int* const mask = atom->mask; + const int ntypes = atom->ntypes; + + for (int ii = 0; ii < inum; ii++) { + int irow = 0; + if (bikflag) irow = atom->tag[ilist[ii] & NEIGHMASK]-1; + const int i = ilist[ii]; + if (mask[i] & groupbit) { + const int itype = type[i]; + const int* const jlist = firstneigh[i]; + const int jnum = numneigh[i]; + const int typeoffset_local = ndims_peratom*nvalues*(itype-1); + const int typeoffset_global = nvalues*(itype-1); + + delete acecimpl -> ace; + acecimpl -> ace = new ACECTildeEvaluator(*acecimpl -> basis_set); + acecimpl -> ace->compute_projections = 1; + acecimpl -> ace->compute_b_grad = 1; + int n_r1, n_rp = 0; + n_r1 = acecimpl -> basis_set->total_basis_size_rank1[0]; + n_rp = acecimpl -> basis_set->total_basis_size[0]; + + int ncoeff = n_r1 + n_rp; + acecimpl -> ace->element_type_mapping.init(ntypes+1); + for (int ik = 1; ik <= ntypes; ik++) { + for(int mu = 0; mu < acecimpl -> basis_set ->nelements; mu++){ + if (mu != -1) { + if (mu == ik - 1) { + map[ik] = mu; + acecimpl -> ace->element_type_mapping(ik) = mu; + } + } + } + } + + + if (dgradflag) { + + // dBi/dRi tags + + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][0] = atom->tag[i]-1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][1] = atom->tag[i]-1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][2] = 0; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][0] = atom->tag[i]-1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][1] = atom->tag[i]-1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][2] = 1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][0] = atom->tag[i]-1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][1] = atom->tag[i]-1; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][2] = 2; + + // dBi/dRj tags + + for (int j=0; jtag[i]-1) + 0][0] = atom->tag[i]-1; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 0][1] = j; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 0][2] = 0; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 1][0] = atom->tag[i]-1; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 1][1] = j; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 1][2] = 1; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 2][0] = atom->tag[i]-1; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 2][1] = j; + pace[bik_rows + ((j)*3*natoms) + 3*(atom->tag[i]-1) + 2][2] = 2; + } + } + + // resize the neighbor cache after setting the basis + acecimpl -> ace->resize_neighbours_cache(max_jnum); + acecimpl -> ace->compute_atom(i, atom->x, atom->type, list->numneigh[i], list->firstneigh[i]); + Array1D Bs = acecimpl -> ace -> projections; + + for (int jj = 0; jj < jnum; jj++) { + const int j = jlist[jj]; + //replace mapping of jj to j + if (!dgradflag) { + double *pacedi = pace_peratom[i]+typeoffset_local; + double *pacedj = pace_peratom[j]+typeoffset_local; + + //force array in (func_ind,neighbour_ind,xyz_ind) format + // dimension: (n_descriptors,max_jnum,3) + //example to access entries for neighbour jj after running compute_atom for atom i: + for (int func_ind =0; func_ind < n_r1 + n_rp; func_ind++){ + DOUBLE_TYPE fx_dB = acecimpl -> ace -> neighbours_dB(func_ind,jj,0); + DOUBLE_TYPE fy_dB = acecimpl -> ace -> neighbours_dB(func_ind,jj,1); + DOUBLE_TYPE fz_dB = acecimpl -> ace -> neighbours_dB(func_ind,jj,2); + pacedi[func_ind] += fx_dB; + pacedi[func_ind+yoffset] += fy_dB; + pacedi[func_ind+zoffset] += fz_dB; + pacedj[func_ind] -= fx_dB; + pacedj[func_ind+yoffset] -= fy_dB; + pacedj[func_ind+zoffset] -= fz_dB; + } + } else { + //printf("inside dBi/dRj logical : ncoeff = %d \n", ncoeff); + for (int iicoeff = 0; iicoeff < ncoeff; iicoeff++) { + + // add to pace array for this proc + //printf("inside dBi/dRj loop\n"); + // dBi/dRj + DOUBLE_TYPE fx_dB = acecimpl -> ace -> neighbours_dB(iicoeff,jj,0); + DOUBLE_TYPE fy_dB = acecimpl -> ace -> neighbours_dB(iicoeff,jj,1); + DOUBLE_TYPE fz_dB = acecimpl -> ace -> neighbours_dB(iicoeff,jj,2); + pace[bik_rows + ((atom->tag[j]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][iicoeff+3] -= fx_dB; + pace[bik_rows + ((atom->tag[j]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][iicoeff+3] -= fy_dB; + pace[bik_rows + ((atom->tag[j]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][iicoeff+3] -= fz_dB; + + // dBi/dRi + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 0][iicoeff+3] += fx_dB; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 1][iicoeff+3] += fy_dB; + pace[bik_rows + ((atom->tag[i]-1)*3*natoms) + 3*(atom->tag[i]-1) + 2][iicoeff+3] += fz_dB; + } + } + } // loop over jj inside + if (!dgradflag) { + + int k = typeoffset_global; + + for (int icoeff = 0; icoeff < ncoeff; icoeff++){ + pace[irow][k++] += Bs(icoeff); + } + } else { + int k = 3; + for (int icoeff = 0; icoeff < ncoeff; icoeff++){ + pace[irow][k++] += Bs(icoeff); + } + } + } //group bit + } // for ii loop + // accumulate force contributions to global array + if (!dgradflag){ + for (int itype = 0; itype < atom->ntypes; itype++) { + const int typeoffset_local = ndims_peratom*nvalues*itype; + const int typeoffset_global = nvalues*itype; + for (int icoeff = 0; icoeff < nvalues; icoeff++) { + for (int i = 0; i < ntotal; i++) { + double *pacedi = pace_peratom[i]+typeoffset_local; + int iglobal = atom->tag[i]; + int irow = 3*(iglobal-1)+1; + pace[irow++][icoeff+typeoffset_global] += pacedi[icoeff]; + pace[irow++][icoeff+typeoffset_global] += pacedi[icoeff+yoffset]; + pace[irow][icoeff+typeoffset_global] += pacedi[icoeff+zoffset]; + } + } + } + } + + if (!dgradflag) { + // accumulate forces to global array + for (int i = 0; i < atom->nlocal; i++) { + int iglobal = atom->tag[i]; + int irow = 3*(iglobal-1)+1; + pace[irow++][lastcol] = atom->f[i][0]; + pace[irow++][lastcol] = atom->f[i][1]; + pace[irow][lastcol] = atom->f[i][2]; + } + } else { + + // for dgradflag=1, put forces at first 3 columns of bik rows + + for (int i=0; inlocal; i++) { + int iglobal = atom->tag[i]; + pace[iglobal-1][0+0] = atom->f[i][0]; + pace[iglobal-1][0+1] = atom->f[i][1]; + pace[iglobal-1][0+2] = atom->f[i][2]; + } + } + + dbdotr_compute(); + + // sum up over all processes + MPI_Allreduce(&pace[0][0],&paceall[0][0],size_array_rows*size_array_cols,MPI_DOUBLE,MPI_SUM,world); + + // assign energy to last column + + if (!dgradflag) { + for (int i = 0; i < bik_rows; i++) paceall[i][lastcol] = 0; + int irow = 0; + double reference_energy = c_pe->compute_scalar(); + paceall[irow][lastcol] = reference_energy; + } else { + + // assign reference energy right after the dgrad rows, first column + + int irow = bik_rows + 3*natoms*natoms; + double reference_energy = c_pe->compute_scalar(); + paceall[irow][0] = reference_energy; + } + + // assign virial stress to last column + // switch to Voigt notation + + if (!dgradflag) { + c_virial->compute_vector(); + int irow = 3*natoms+bik_rows; + paceall[irow++][lastcol] = c_virial->vector[0]; + paceall[irow++][lastcol] = c_virial->vector[1]; + paceall[irow++][lastcol] = c_virial->vector[2]; + paceall[irow++][lastcol] = c_virial->vector[5]; + paceall[irow++][lastcol] = c_virial->vector[4]; + paceall[irow++][lastcol] = c_virial->vector[3]; + } +} + +/* ---------------------------------------------------------------------- + compute global virial contributions via summing r_i.dB^j/dr_i over + own & ghost atoms +------------------------------------------------------------------------- */ +void ComputePACE::dbdotr_compute() +{ + + if (dgradflag) return; + + double **x = atom->x; + int irow0 = bik_rows+ndims_force*natoms; + + // sum over ace contributions to forces + // on all particles including ghosts + + int nall = atom->nlocal + atom->nghost; + for (int i = 0; i < nall; i++) + for (int itype = 0; itype < atom->ntypes; itype++) { + const int typeoffset_local = ndims_peratom*nvalues*itype; + const int typeoffset_global = nvalues*itype; + double *pacedi = pace_peratom[i]+typeoffset_local; + for (int icoeff = 0; icoeff < nvalues; icoeff++) { + double dbdx = pacedi[icoeff]; + double dbdy = pacedi[icoeff+yoffset]; + double dbdz = pacedi[icoeff+zoffset]; + int irow = irow0; + pace[irow++][icoeff+typeoffset_global] += dbdx*x[i][0]; + pace[irow++][icoeff+typeoffset_global] += dbdy*x[i][1]; + pace[irow++][icoeff+typeoffset_global] += dbdz*x[i][2]; + pace[irow++][icoeff+typeoffset_global] += dbdz*x[i][1]; + pace[irow++][icoeff+typeoffset_global] += dbdz*x[i][0]; + pace[irow++][icoeff+typeoffset_global] += dbdy*x[i][0]; + } + } +} + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +double ComputePACE::memory_usage() +{ + + double bytes = (double)size_array_rows*size_array_cols*sizeof(double); // pace + bytes += (double)size_array_rows*size_array_cols*sizeof(double); // paceall + bytes += (double)nmax*size_peratom * sizeof(double); // pace_peratom + int n = atom->ntypes+1; + bytes += (double)n*sizeof(int); // map + + return bytes; +} diff --git a/src/ML-PACE/compute_pace.h b/src/ML-PACE/compute_pace.h new file mode 100644 index 0000000000..2f2f8d7f21 --- /dev/null +++ b/src/ML-PACE/compute_pace.h @@ -0,0 +1,60 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://www.lammps.org/, Sandia National Laboratories + LAMMPS Development team: developers@lammps.org + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifdef COMPUTE_CLASS +// clang-format off +ComputeStyle(pace,ComputePACE); +// clang-format on +#else + +#ifndef LMP_COMPUTE_PACE_H +#define LMP_COMPUTE_PACE_H + +#include "compute.h" + +namespace LAMMPS_NS { + +class ComputePACE : public Compute { + public: + ComputePACE(class LAMMPS *, int, char **); + ~ComputePACE(); + void init(); + void init_list(int, class NeighList *); + void compute_array(); + double memory_usage(); + + private: + int natoms, nmax, size_peratom, lastcol; + int ncoeff, nvalues, nperdim, yoffset, zoffset; + int ndims_peratom, ndims_force, ndims_virial; + double **cutsq; + class NeighList *list; + double **pace, **paceall; + double **pace_peratom; + double rcutfac; + int *map; // map types to [0,nelements) + int nelements, chemflag; + int bikflag, bik_rows, dgradflag, dgrad_rows; + double *cg; + double cutmax; + Compute *c_pe; + Compute *c_virial; + + void dbdotr_compute(); + struct ACECimpl *acecimpl; +}; + +} // namespace LAMMPS_NS + +#endif +#endif diff --git a/src/ML-PACE/pair_pace.cpp b/src/ML-PACE/pair_pace.cpp index 57f12597d1..e9bd25f9d7 100644 --- a/src/ML-PACE/pair_pace.cpp +++ b/src/ML-PACE/pair_pace.cpp @@ -45,6 +45,7 @@ Copyright 2021 Yury Lysogorskiy^1, Cas van der Oord^2, Anton Bochkarev^1, #include "ace-evaluator/ace_evaluator.h" #include "ace-evaluator/ace_recursive.h" #include "ace-evaluator/ace_version.h" +#include "ace/ace_b_basis.h" namespace LAMMPS_NS { struct ACEImpl { @@ -87,6 +88,10 @@ PairPACE::PairPACE(LAMMPS *lmp) : Pair(lmp) one_coeff = 1; manybody_flag = 1; + nmax_corerep = 0; + flag_corerep_factor = 0; + corerep_factor = nullptr; + aceimpl = new ACEImpl; recursive = false; @@ -109,6 +114,7 @@ PairPACE::~PairPACE() memory->destroy(setflag); memory->destroy(cutsq); memory->destroy(scale); + memory->destroy(corerep_factor); } } @@ -143,10 +149,18 @@ void PairPACE::compute(int eflag, int vflag) // the pointer to the list of neighbors of "i" firstneigh = list->firstneigh; + if (flag_corerep_factor && atom->nlocal > nmax_corerep) { + memory->destroy(corerep_factor); + nmax_corerep = atom->nlocal; + memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep_factor"); + //zeroify array + memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor)); + } + //determine the maximum number of neighbours int max_jnum = 0; int nei = 0; - for (ii = 0; ii < list->inum; ii++) { + for (ii = 0; ii < inum; ii++) { i = ilist[ii]; jnum = numneigh[i]; nei = nei + jnum; @@ -156,7 +170,7 @@ void PairPACE::compute(int eflag, int vflag) aceimpl->ace->resize_neighbours_cache(max_jnum); //loop over atoms - for (ii = 0; ii < list->inum; ii++) { + for (ii = 0; ii < inum; ii++) { i = list->ilist[ii]; const int itype = type[i]; @@ -181,6 +195,9 @@ void PairPACE::compute(int eflag, int vflag) error->one(FLERR, e.what()); } + if (flag_corerep_factor) + corerep_factor[i] = 1 - aceimpl->ace->ace_fcut; + // 'compute_atom' will update the `aceimpl->ace->e_atom` and `aceimpl->ace->neighbours_forces(jj, alpha)` arrays for (jj = 0; jj < jnum; jj++) { @@ -287,7 +304,14 @@ void PairPACE::coeff(int narg, char **arg) //load potential file delete aceimpl->basis_set; if (comm->me == 0) utils::logmesg(lmp, "Loading {}\n", potential_file_name); - aceimpl->basis_set = new ACECTildeBasisSet(potential_file_name); + // if potential is in ACEBBasisSet (YAML) format, then convert to ACECTildeBasisSet automatically + if (utils::strmatch(potential_file_name,".*\\.yaml$")) { + ACEBBasisSet bBasisSet = ACEBBasisSet(potential_file_name); + ACECTildeBasisSet cTildeBasisSet = bBasisSet.to_ACECTildeBasisSet(); + aceimpl->basis_set = new ACECTildeBasisSet(cTildeBasisSet); + } else { + aceimpl->basis_set = new ACECTildeBasisSet(potential_file_name); + } if (comm->me == 0) { utils::logmesg(lmp, "Total number of basis functions\n"); @@ -374,7 +398,29 @@ double PairPACE::init_one(int i, int j) ---------------------------------------------------------------------- */ void *PairPACE::extract(const char *str, int &dim) { + dim = 0; + //check if str=="corerep_flag" then compute extrapolation grades on this iteration + if (strcmp(str, "corerep_flag") == 0) return (void *) &flag_corerep_factor; + dim = 2; if (strcmp(str, "scale") == 0) return (void *) scale; return nullptr; } + +/* ---------------------------------------------------------------------- + peratom requests from FixPair + return ptr to requested data + also return ncol = # of quantites per atom + 0 = per-atom vector + 1 or more = # of columns in per-atom array + return NULL if str is not recognized +---------------------------------------------------------------------- */ +void *PairPACE::extract_peratom(const char *str, int &ncol) +{ + if (strcmp(str, "corerep") == 0) { + ncol = 0; + return (void *) corerep_factor; + } + + return nullptr; +} diff --git a/src/ML-PACE/pair_pace.h b/src/ML-PACE/pair_pace.h index 94649ecaab..9b5d2c5480 100644 --- a/src/ML-PACE/pair_pace.h +++ b/src/ML-PACE/pair_pace.h @@ -48,11 +48,15 @@ class PairPACE : public Pair { double init_one(int, int) override; void *extract(const char *, int &) override; + void *extract_peratom(const char *, int &) override; protected: struct ACEImpl *aceimpl; + int nmax_corerep = 0; virtual void allocate(); + double *corerep_factor; //per-atom core-rep factor (= 1 - fcut) + int flag_corerep_factor; double **scale; bool recursive; // "recursive" option for ACERecursiveEvaluator diff --git a/src/ML-PACE/pair_pace_extrapolation.cpp b/src/ML-PACE/pair_pace_extrapolation.cpp index dc0fb1848b..d9b8d3588a 100644 --- a/src/ML-PACE/pair_pace_extrapolation.cpp +++ b/src/ML-PACE/pair_pace_extrapolation.cpp @@ -93,11 +93,14 @@ PairPACEExtrapolation::PairPACEExtrapolation(LAMMPS *lmp) : Pair(lmp) manybody_flag = 1; nmax = 0; + nmax_corerep = 0; aceimpl = new ACEALImpl; scale = nullptr; flag_compute_extrapolation_grade = 0; extrapolation_grade_gamma = nullptr; + flag_corerep_factor = 0; + corerep_factor = nullptr; chunksize = 4096; } @@ -118,6 +121,7 @@ PairPACEExtrapolation::~PairPACEExtrapolation() memory->destroy(scale); memory->destroy(map); memory->destroy(extrapolation_grade_gamma); + memory->destroy(corerep_factor); } } @@ -166,11 +170,18 @@ void PairPACEExtrapolation::compute(int eflag, int vflag) //zeroify array memset(extrapolation_grade_gamma, 0, nmax * sizeof(*extrapolation_grade_gamma)); } + if (flag_corerep_factor && atom->nlocal > nmax_corerep) { + memory->destroy(corerep_factor); + nmax_corerep = atom->nlocal; + memory->create(corerep_factor, nmax_corerep, "pace/atom:corerep_factor"); + //zeroify array + memset(corerep_factor, 0, nmax_corerep * sizeof(*corerep_factor)); + } //determine the maximum number of neighbours int max_jnum = 0; int nei = 0; - for (ii = 0; ii < list->inum; ii++) { + for (ii = 0; ii < inum; ii++) { i = ilist[ii]; jnum = numneigh[i]; nei = nei + jnum; @@ -183,7 +194,7 @@ void PairPACEExtrapolation::compute(int eflag, int vflag) aceimpl->rec_ace->resize_neighbours_cache(max_jnum); //loop over atoms - for (ii = 0; ii < list->inum; ii++) { + for (ii = 0; ii < inum; ii++) { i = list->ilist[ii]; const int itype = type[i]; @@ -216,6 +227,11 @@ void PairPACEExtrapolation::compute(int eflag, int vflag) if (flag_compute_extrapolation_grade) extrapolation_grade_gamma[i] = aceimpl->ace->max_gamma_grade; + if (flag_corerep_factor) { + corerep_factor[i] = 1 - (flag_compute_extrapolation_grade ? aceimpl->ace->ace_fcut + : aceimpl->rec_ace->ace_fcut); + } + Array2D &neighbours_forces = (flag_compute_extrapolation_grade ? aceimpl->ace->neighbours_forces : aceimpl->rec_ace->neighbours_forces); @@ -437,9 +453,11 @@ double PairPACEExtrapolation::init_one(int i, int j) ---------------------------------------------------------------------- */ void *PairPACEExtrapolation::extract(const char *str, int &dim) { - //check if str=="gamma_flag" then compute extrapolation grades on this iteration dim = 0; + //check if str=="gamma_flag" then compute extrapolation grades on this iteration if (strcmp(str, "gamma_flag") == 0) return (void *) &flag_compute_extrapolation_grade; + //check if str=="corerep_flag" then compute extrapolation grades on this iteration + if (strcmp(str, "corerep_flag") == 0) return (void *) &flag_corerep_factor; dim = 2; if (strcmp(str, "scale") == 0) return (void *) scale; @@ -461,5 +479,10 @@ void *PairPACEExtrapolation::extract_peratom(const char *str, int &ncol) return (void *) extrapolation_grade_gamma; } + if (strcmp(str, "corerep") == 0) { + ncol = 0; + return (void *) corerep_factor; + } + return nullptr; } diff --git a/src/ML-PACE/pair_pace_extrapolation.h b/src/ML-PACE/pair_pace_extrapolation.h index 6f7eeb279e..2dcec04d4b 100644 --- a/src/ML-PACE/pair_pace_extrapolation.h +++ b/src/ML-PACE/pair_pace_extrapolation.h @@ -47,13 +47,15 @@ class PairPACEExtrapolation : public Pair { protected: struct ACEALImpl *aceimpl; - int nmax; + int nmax = 0, nmax_corerep = 0; virtual void allocate(); std::vector element_names; // list of elements (used by dump pace/extrapolation) - double *extrapolation_grade_gamma; //per-atom gamma value + double *extrapolation_grade_gamma = nullptr; //per-atom gamma value + double *corerep_factor = nullptr; //per-atom core-rep factor (= 1 - fcut) - int flag_compute_extrapolation_grade; + int flag_compute_extrapolation_grade = 0; + int flag_corerep_factor = 0; double **scale; diff --git a/src/ML-QUIP/pair_quip.cpp b/src/ML-QUIP/pair_quip.cpp index aae008f1b2..a2de4bf38a 100644 --- a/src/ML-QUIP/pair_quip.cpp +++ b/src/ML-QUIP/pair_quip.cpp @@ -38,6 +38,7 @@ using namespace LAMMPS_NS; PairQUIP::PairQUIP(LAMMPS *lmp) : Pair(lmp) { + scale = 1.0; single_enable = 0; restartinfo = 0; one_coeff = 1; @@ -157,35 +158,38 @@ void PairQUIP::compute(int eflag, int vflag) iquip = 0; for (ii = 0; ii < ntotal; ii++) { for (jj = 0; jj < 3; jj++) { - f[ii][jj] += quip_force[iquip]; + f[ii][jj] += scale*quip_force[iquip]; iquip++; } } - if (eflag_global) { eng_vdwl = quip_energy; } + if (eflag_global) { eng_vdwl = scale*quip_energy; } if (eflag_atom) { - for (ii = 0; ii < ntotal; ii++) { eatom[ii] = quip_local_e[ii]; } + for (ii = 0; ii < ntotal; ii++) { + eatom[ii] = scale*quip_local_e[ii]; + } } + if (vflag_global) { - virial[0] = quip_virial[0]; - virial[1] = quip_virial[4]; - virial[2] = quip_virial[8]; - virial[3] = (quip_virial[3] + quip_virial[1]) * 0.5; - virial[4] = (quip_virial[2] + quip_virial[6]) * 0.5; - virial[5] = (quip_virial[5] + quip_virial[7]) * 0.5; + virial[0] = scale*quip_virial[0]; + virial[1] = scale*quip_virial[4]; + virial[2] = scale*quip_virial[8]; + virial[3] = scale*(quip_virial[3] + quip_virial[1]) * 0.5; + virial[4] = scale*(quip_virial[2] + quip_virial[6]) * 0.5; + virial[5] = scale*(quip_virial[5] + quip_virial[7]) * 0.5; } if (vflag_atom) { int iatom = 0; for (ii = 0; ii < ntotal; ii++) { - vatom[ii][0] += quip_local_virial[iatom + 0]; - vatom[ii][1] += quip_local_virial[iatom + 4]; - vatom[ii][2] += quip_local_virial[iatom + 8]; - vatom[ii][3] += (quip_local_virial[iatom + 3] + quip_local_virial[iatom + 1]) * 0.5; - vatom[ii][4] += (quip_local_virial[iatom + 2] + quip_local_virial[iatom + 6]) * 0.5; - vatom[ii][5] += (quip_local_virial[iatom + 5] + quip_local_virial[iatom + 7]) * 0.5; + vatom[ii][0] += scale*quip_local_virial[iatom + 0]; + vatom[ii][1] += scale*quip_local_virial[iatom + 4]; + vatom[ii][2] += scale*quip_local_virial[iatom + 8]; + vatom[ii][3] += scale*(quip_local_virial[iatom + 3] + quip_local_virial[iatom + 1]) * 0.5; + vatom[ii][4] += scale*(quip_local_virial[iatom + 2] + quip_local_virial[iatom + 6]) * 0.5; + vatom[ii][5] += scale*(quip_local_virial[iatom + 5] + quip_local_virial[iatom + 7]) * 0.5; iatom += 9; } } @@ -228,7 +232,6 @@ void PairQUIP::allocate() { allocated = 1; int n = atom->ntypes; - setflag = memory->create(setflag, n + 1, n + 1, "pair:setflag"); cutsq = memory->create(cutsq, n + 1, n + 1, "pair:cutsq"); map = new int[n + 1]; @@ -319,3 +322,13 @@ double PairQUIP::init_one(int /*i*/, int /*j*/) { return cutoff; } + +/* for fix adapt scaling */ + +void *PairQUIP::extract(const char *str, int &dim) +{ + dim = 0; + if (strcmp(str,"scale") == 0) return (void *) &scale; + return nullptr; +} + diff --git a/src/ML-QUIP/pair_quip.h b/src/ML-QUIP/pair_quip.h index 3c0cdabf3b..2cbbcd4af8 100644 --- a/src/ML-QUIP/pair_quip.h +++ b/src/ML-QUIP/pair_quip.h @@ -42,7 +42,9 @@ class PairQUIP : public Pair { void init_style() override; double init_one(int, int) override; void allocate(); - + void *extract(const char *, int &); + protected: + double scale; private: double cutoff; int *quip_potential; diff --git a/src/OPENMP/pair_reaxff_omp.h b/src/OPENMP/pair_reaxff_omp.h index 9ae63a2e3b..3b49575594 100644 --- a/src/OPENMP/pair_reaxff_omp.h +++ b/src/OPENMP/pair_reaxff_omp.h @@ -14,7 +14,6 @@ #ifdef PAIR_CLASS // clang-format off PairStyle(reaxff/omp,PairReaxFFOMP); -PairStyle(reax/c/omp,PairReaxFFOMP); // clang-format on #else diff --git a/src/PYTHON/python_impl.cpp b/src/PYTHON/python_impl.cpp index 57f8ea1cf0..6dd5175621 100644 --- a/src/PYTHON/python_impl.cpp +++ b/src/PYTHON/python_impl.cpp @@ -61,16 +61,19 @@ PythonImpl::PythonImpl(LAMMPS *lmp) : Pointers(lmp) nfunc = 0; pfuncs = nullptr; -#if PY_MAJOR_VERSION >= 3 -#ifndef Py_LIMITED_API +#if PY_MAJOR_VERSION >= 3 && !defined(Py_LIMITED_API) // check for PYTHONUNBUFFERED environment variable const char *PYTHONUNBUFFERED = getenv("PYTHONUNBUFFERED"); + // Force the stdout and stderr streams to be unbuffered. + bool unbuffered = PYTHONUNBUFFERED != nullptr && strcmp(PYTHONUNBUFFERED, "1") == 0; - if (PYTHONUNBUFFERED != nullptr && strcmp(PYTHONUNBUFFERED, "1") == 0) { - // Python Global configuration variable - // Force the stdout and stderr streams to be unbuffered. - Py_UnbufferedStdioFlag = 1; - } +#if PY_VERSION_HEX >= 0x030800f0 + PyConfig config; + PyConfig_InitPythonConfig(&config); + config.buffered_stdio = !unbuffered; +#else + // Python Global configuration variable + Py_UnbufferedStdioFlag = unbuffered; #endif #endif @@ -94,12 +97,17 @@ PythonImpl::PythonImpl(LAMMPS *lmp) : Pointers(lmp) #endif #endif +#if PY_VERSION_HEX >= 0x030800f0 && !defined(Py_LIMITED_API) + Py_InitializeFromConfig(&config); + PyConfig_Clear(&config); +#else Py_Initialize(); +#endif // only needed for Python 2.x and Python 3 < 3.7 // With Python 3.7 this function is now called by Py_Initialize() // Deprecated since version 3.9, will be removed in version 3.11 -#if PY_MAJOR_VERSION < 3 || PY_MINOR_VERSION < 7 +#if PY_VERSION_HEX < 0x030700f0 if (!PyEval_ThreadsInitialized()) { PyEval_InitThreads(); } #endif diff --git a/src/QTB/fix_qbmsst.cpp b/src/QTB/fix_qbmsst.cpp index 4cd2d05760..56d67093fe 100644 --- a/src/QTB/fix_qbmsst.cpp +++ b/src/QTB/fix_qbmsst.cpp @@ -74,6 +74,7 @@ FixQBMSST::FixQBMSST(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, arg) vector_flag = 1; size_vector = 5; ecouple_flag = 1; + energy_global_flag = 1; qmass = 1.0e1; mu = 0.0; diff --git a/src/REAXFF/fix_acks2_reaxff.cpp b/src/REAXFF/fix_acks2_reaxff.cpp index 28733f0fe0..68de1c8ed1 100644 --- a/src/REAXFF/fix_acks2_reaxff.cpp +++ b/src/REAXFF/fix_acks2_reaxff.cpp @@ -124,11 +124,10 @@ void FixACKS2ReaxFF::post_constructor() void FixACKS2ReaxFF::pertype_parameters(char *arg) { - // match either new keyword "reaxff" or old keyword "reax/c" - if (utils::strmatch(arg,"^reax..$")) { + if (utils::strmatch(arg,"^reaxff")) { reaxflag = 1; - Pair *pair = force->pair_match("^reax..",0); - if (!pair) error->all(FLERR,"No reaxff pair style for fix qeq/reaxff"); + Pair *pair = force->pair_match("^reaxff",0); + if (!pair) error->all(FLERR,"No reaxff pair style for fix acks2/reaxff"); int tmp; chi = (double *) pair->extract("chi",tmp); diff --git a/src/REAXFF/fix_qeq_reaxff.cpp b/src/REAXFF/fix_qeq_reaxff.cpp index f0fc7fef99..ab561de0a7 100644 --- a/src/REAXFF/fix_qeq_reaxff.cpp +++ b/src/REAXFF/fix_qeq_reaxff.cpp @@ -205,10 +205,9 @@ int FixQEqReaxFF::setmask() void FixQEqReaxFF::pertype_parameters(char *arg) { - // match either new keyword "reaxff" or old keyword "reax/c" - if (utils::strmatch(arg,"^reax..$")) { + if (utils::strmatch(arg,"^reaxff")) { reaxflag = 1; - Pair *pair = force->pair_match("^reax..",0); + Pair *pair = force->pair_match("^reaxff",0); if (!pair) error->all(FLERR,"No reaxff pair style for fix qeq/reaxff"); int tmp; diff --git a/src/REAXFF/fix_reaxff_bonds.h b/src/REAXFF/fix_reaxff_bonds.h index 659001263f..2316bfe171 100644 --- a/src/REAXFF/fix_reaxff_bonds.h +++ b/src/REAXFF/fix_reaxff_bonds.h @@ -15,7 +15,6 @@ #ifdef FIX_CLASS // clang-format off FixStyle(reaxff/bonds,FixReaxFFBonds); -FixStyle(reax/c/bonds,FixReaxFFBonds); // clang-format on #else diff --git a/src/REAXFF/fix_reaxff_species.h b/src/REAXFF/fix_reaxff_species.h index f711cdeb11..8fcbb131a9 100644 --- a/src/REAXFF/fix_reaxff_species.h +++ b/src/REAXFF/fix_reaxff_species.h @@ -15,7 +15,6 @@ #ifdef FIX_CLASS // clang-format off FixStyle(reaxff/species,FixReaxFFSpecies); -FixStyle(reax/c/species,FixReaxFFSpecies); // clang-format on #else diff --git a/src/REAXFF/pair_reaxff.h b/src/REAXFF/pair_reaxff.h index 926e0060c9..594e7e502d 100644 --- a/src/REAXFF/pair_reaxff.h +++ b/src/REAXFF/pair_reaxff.h @@ -25,7 +25,6 @@ #ifdef PAIR_CLASS // clang-format off PairStyle(reaxff,PairReaxFF); -PairStyle(reax/c,PairReaxFF); // clang-format on #else diff --git a/src/balance.cpp b/src/balance.cpp index 6f28081f13..42463752f9 100644 --- a/src/balance.cpp +++ b/src/balance.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -21,11 +20,10 @@ #include "balance.h" -#include "update.h" #include "atom.h" -#include "neighbor.h" #include "comm.h" #include "domain.h" +#include "error.h" #include "fix_store_atom.h" #include "force.h" #include "imbalance.h" @@ -37,9 +35,10 @@ #include "irregular.h" #include "memory.h" #include "modify.h" +#include "neighbor.h" #include "pair.h" #include "rcb.h" -#include "error.h" +#include "update.h" #include #include @@ -48,17 +47,16 @@ using namespace LAMMPS_NS; double EPSNEIGH = 1.0e-3; -enum{XYZ,SHIFT,BISECTION}; -enum{NONE,UNIFORM,USER}; -enum{X,Y,Z}; +enum { XYZ, SHIFT, BISECTION }; +enum { NONE, UNIFORM, USER }; +enum { X, Y, Z }; + +// clang-format off /* ---------------------------------------------------------------------- */ Balance::Balance(LAMMPS *lmp) : Command(lmp) { - MPI_Comm_rank(world,&me); - MPI_Comm_size(world,&nprocs); - user_xsplit = user_ysplit = user_zsplit = nullptr; shift_allocate = 0; proccost = allproccost = nullptr; @@ -118,7 +116,7 @@ void Balance::command(int narg, char **arg) if (domain->box_exist == 0) error->all(FLERR,"Balance command before simulation box is defined"); - if (me == 0) utils::logmesg(lmp,"Balancing ...\n"); + if (comm->me == 0) utils::logmesg(lmp,"Balancing ...\n"); // parse required arguments @@ -196,10 +194,10 @@ void Balance::command(int narg, char **arg) } else if (strcmp(arg[iarg],"shift") == 0) { if (style != -1) error->all(FLERR,"Illegal balance command"); - if (iarg+4 > narg) error->all(FLERR,"Illegal balance command"); + if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "balance shift", error); style = SHIFT; - if (strlen(arg[iarg+1]) > BSTR_SIZE) error->all(FLERR,"Illegal balance command"); - strncpy(bstr,arg[iarg+1],BSTR_SIZE+1); + bstr = arg[iarg+1]; + if (bstr.size() > BSTR_SIZE) error->all(FLERR,"Illegal balance shift command"); nitermax = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nitermax <= 0) error->all(FLERR,"Illegal balance command"); stopthresh = utils::numeric(FLERR,arg[iarg+3],false,lmp); @@ -235,7 +233,7 @@ void Balance::command(int narg, char **arg) } if (style == SHIFT) { - const int blen=strlen(bstr); + const int blen = bstr.size(); for (int i = 0; i < blen; i++) { if (bstr[i] != 'x' && bstr[i] != 'y' && bstr[i] != 'z') error->all(FLERR,"Balance shift string is invalid"); @@ -336,7 +334,7 @@ void Balance::command(int narg, char **arg) if (style == SHIFT) { comm->layout = Comm::LAYOUT_NONUNIFORM; - shift_setup_static(bstr); + shift_setup_static(bstr.c_str()); niter = shift(); } @@ -393,7 +391,7 @@ void Balance::command(int narg, char **arg) // stats output - if (me == 0) { + if (comm->me == 0) { std::string mesg = fmt::format(" rebalancing time: {:.3f} seconds\n", platform::walltime()-start_time); mesg += fmt::format(" iteration count = {}\n",niter); @@ -571,7 +569,7 @@ double Balance::imbalance_factor(double &maxcost) MPI_Allreduce(&mycost,&totalcost,1,MPI_DOUBLE,MPI_SUM,world); double imbalance = 1.0; - if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs); + if (maxcost > 0.0) imbalance = maxcost / (totalcost / comm->nprocs); return imbalance; } @@ -719,12 +717,12 @@ int *Balance::bisection() set rho = 0 for static balancing ------------------------------------------------------------------------- */ -void Balance::shift_setup_static(char *str) +void Balance::shift_setup_static(const char *str) { shift_allocate = 1; - memory->create(proccost,nprocs,"balance:proccost"); - memory->create(allproccost,nprocs,"balance:allproccost"); + memory->create(proccost,comm->nprocs,"balance:proccost"); + memory->create(allproccost,comm->nprocs,"balance:allproccost"); ndim = strlen(str); bdim = new int[ndim]; @@ -771,7 +769,7 @@ void Balance::shift_setup_static(char *str) set rho = 1 to do dynamic balancing after call to shift_setup_static() ------------------------------------------------------------------------- */ -void Balance::shift_setup(char *str, int nitermax_in, double thresh_in) +void Balance::shift_setup(const char *str, int nitermax_in, double thresh_in) { shift_setup_static(str); nitermax = nitermax_in; @@ -871,7 +869,7 @@ int Balance::shift() // iterate until balanced #ifdef BALANCE_DEBUG - if (me == 0) debug_shift_output(idim,0,np,split); + if (comm->me == 0) debug_shift_output(idim,0,np,split); #endif int doneflag; @@ -882,7 +880,7 @@ int Balance::shift() niter++; #ifdef BALANCE_DEBUG - if (me == 0) debug_shift_output(idim,m+1,np,split); + if (comm->me == 0) debug_shift_output(idim,m+1,np,split); if (outflag) dumpout(update->ntimestep); #endif @@ -1137,7 +1135,7 @@ double Balance::imbalance_splits() int ny = comm->procgrid[1]; int nz = comm->procgrid[2]; - for (int i = 0; i < nprocs; i++) proccost[i] = 0.0; + for (int i = 0; i < comm->nprocs; i++) proccost[i] = 0.0; double **x = atom->x; int nlocal = atom->nlocal; @@ -1162,17 +1160,17 @@ double Balance::imbalance_splits() // one proc's particles may map to many partitions, so must Allreduce - MPI_Allreduce(proccost,allproccost,nprocs,MPI_DOUBLE,MPI_SUM,world); + MPI_Allreduce(proccost,allproccost,comm->nprocs,MPI_DOUBLE,MPI_SUM,world); double maxcost = 0.0; double totalcost = 0.0; - for (int i = 0; i < nprocs; i++) { + for (int i = 0; i < comm->nprocs; i++) { maxcost = MAX(maxcost,allproccost[i]); totalcost += allproccost[i]; } double imbalance = 1.0; - if (maxcost > 0.0) imbalance = maxcost / (totalcost/nprocs); + if (maxcost > 0.0) imbalance = maxcost / (totalcost/comm->nprocs); return imbalance; } @@ -1188,6 +1186,7 @@ void Balance::dumpout(bigint tstep) { int dimension = domain->dimension; int triclinic = domain->triclinic; + int nprocs = comm->nprocs; // Allgather each proc's sub-box // could use Gather, but that requires MPI to alloc memory @@ -1209,7 +1208,7 @@ void Balance::dumpout(bigint tstep) memory->create(boxall,nprocs,6,"balance:dumpout"); MPI_Allgather(box,6,MPI_DOUBLE,&boxall[0][0],6,MPI_DOUBLE,world); - if (me) { + if (comm->me) { memory->destroy(boxall); return; } diff --git a/src/balance.h b/src/balance.h index 669d21e2b5..33fe19d838 100644 --- a/src/balance.h +++ b/src/balance.h @@ -41,7 +41,7 @@ class Balance : public Command { void init_imbalance(int); void set_weights(); double imbalance_factor(double &); - void shift_setup(char *, int, double); + void shift_setup(const char *, int, double); int shift(); int *bisection(); void dumpout(bigint); @@ -49,8 +49,6 @@ class Balance : public Command { static constexpr int BSTR_SIZE = 3; private: - int me, nprocs; - double thresh; // threshold to perform LB int style; // style of LB int xflag, yflag, zflag; // xyz LB flags @@ -59,7 +57,7 @@ class Balance : public Command { int nitermax; // params for shift LB double stopthresh; - char bstr[BSTR_SIZE + 1]; + std::string bstr; int shift_allocate; // 1 if SHIFT vectors have been allocated int ndim; // length of balance string bstr @@ -84,7 +82,7 @@ class Balance : public Command { int firststep; double imbalance_splits(); - void shift_setup_static(char *); + void shift_setup_static(const char *); void tally(int, int, double *); int adjust(int, double *); #ifdef BALANCE_DEBUG diff --git a/src/fix_balance.cpp b/src/fix_balance.cpp index 844ffe474e..7174765f52 100644 --- a/src/fix_balance.cpp +++ b/src/fix_balance.cpp @@ -1,4 +1,3 @@ -// clang-format off /* ---------------------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator https://www.lammps.org/, Sandia National Laboratories @@ -34,7 +33,9 @@ using namespace LAMMPS_NS; using namespace FixConst; -enum{SHIFT,BISECTION}; +enum { SHIFT, BISECTION }; + +// clang-format off /* ---------------------------------------------------------------------- */ @@ -66,10 +67,9 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : int iarg = 5; if (lbstyle == SHIFT) { - if (iarg+4 > narg) error->all(FLERR,"Illegal fix balance command"); - if (strlen(arg[iarg+1]) > Balance::BSTR_SIZE) - error->all(FLERR,"Illegal fix balance command"); - strncpy(bstr,arg[iarg+1], Balance::BSTR_SIZE+1); + if (iarg+4 > narg) utils::missing_cmd_args(FLERR, "fix balance shift", error); + bstr = arg[iarg+1]; + if (bstr.size() > Balance::BSTR_SIZE) error->all(FLERR,"Illegal fix balance shift command"); nitermax = utils::inumeric(FLERR,arg[iarg+2],false,lmp); if (nitermax <= 0) error->all(FLERR,"Illegal fix balance command"); stopthresh = utils::numeric(FLERR,arg[iarg+3],false,lmp); @@ -83,7 +83,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : // error checks if (lbstyle == SHIFT) { - int blen = strlen(bstr); + int blen = bstr.size(); for (int i = 0; i < blen; i++) { if (bstr[i] != 'x' && bstr[i] != 'y' && bstr[i] != 'z') error->all(FLERR,"Fix balance shift string is invalid"); @@ -103,7 +103,7 @@ FixBalance::FixBalance(LAMMPS *lmp, int narg, char **arg) : // process remaining optional args via Balance balance = new Balance(lmp); - if (lbstyle == SHIFT) balance->shift_setup(bstr,nitermax,thresh); + if (lbstyle == SHIFT) balance->shift_setup(bstr.c_str(),nitermax,thresh); balance->options(iarg,narg,arg,0); wtflag = balance->wtflag; sortflag = balance->sortflag; diff --git a/src/fix_balance.h b/src/fix_balance.h index 074548ac0c..964357a634 100644 --- a/src/fix_balance.h +++ b/src/fix_balance.h @@ -42,7 +42,7 @@ class FixBalance : public Fix { private: int nevery, lbstyle, nitermax; double thresh, stopthresh; - char bstr[4]; + std::string bstr; int wtflag; // 1 for weighted balancing int sortflag; // 1 for sorting comm messages diff --git a/src/fix_deprecated.cpp b/src/fix_deprecated.cpp index 89fed1e8cf..cf2d7a3f8b 100644 --- a/src/fix_deprecated.cpp +++ b/src/fix_deprecated.cpp @@ -54,6 +54,12 @@ FixDeprecated::FixDeprecated(LAMMPS *lmp, int narg, char **arg) : Fix(lmp, narg, } else if (my_style == "mscg") { if (lmp->comm->me == 0) utils::logmesg(lmp, "\nThe MSCG package has been removed from LAMMPS.\n\n"); + } else if (utils::strmatch(my_style, "^reax/c/bonds")) { + if (lmp->comm->me == 0) + utils::logmesg(lmp, "\nFix style 'reax/c/bonds' has been renamed to 'reaxff/bonds'.\n\n"); + } else if (utils::strmatch(my_style, "^reax/c/species")) { + if (lmp->comm->me == 0) + utils::logmesg(lmp, "\nFix style 'reax/c/species' has been renamed to 'reaxff/species'.\n\n"); } error->all(FLERR, "This fix style is no longer available"); } diff --git a/src/fix_deprecated.h b/src/fix_deprecated.h index 9e9d369d28..53b7d7a306 100644 --- a/src/fix_deprecated.h +++ b/src/fix_deprecated.h @@ -19,7 +19,8 @@ FixStyle(ave/spatial,FixDeprecated); FixStyle(ave/spatial/sphere,FixDeprecated); FixStyle(lb/pc,FixDeprecated); FixStyle(lb/rigid/pc/sphere,FixDeprecated); -FixStyle(client/md,FixDeprecated); +FixStyle(reax/c/bonds,FixDeprecated); +FixStyle(reax/c/species,FixDeprecated); // clang-format on #else diff --git a/src/fix_temp_berendsen.h b/src/fix_temp_berendsen.h index 78ece2af22..f137830508 100644 --- a/src/fix_temp_berendsen.h +++ b/src/fix_temp_berendsen.h @@ -38,7 +38,7 @@ class FixTempBerendsen : public Fix { void restart(char *buf) override; void *extract(const char *, int &) override; - private: + protected: int which; double t_start, t_stop, t_period, t_target; double energy; diff --git a/src/info.cpp b/src/info.cpp index ec04a6c46c..49b77d60c9 100644 --- a/src/info.cpp +++ b/src/info.cpp @@ -1199,6 +1199,10 @@ bool Info::has_accelerator_feature(const std::string &package, return false; } +#if defined(LMP_INTEL) +#include "intel_preprocess.h" +#endif + std::string Info::get_accelerator_info(const std::string &package) { std::string mesg; @@ -1252,6 +1256,11 @@ std::string Info::get_accelerator_info(const std::string &package) if (has_accelerator_feature("INTEL","precision","single")) mesg += " single"; if (has_accelerator_feature("INTEL","precision","mixed")) mesg += " mixed"; if (has_accelerator_feature("INTEL","precision","double")) mesg += " double"; +#if defined(LMP_SIMD_COMPILER) + mesg += "\nINTEL package SIMD: enabled"; +#else + mesg += "\nINTEL package SIMD: not enabled"; +#endif mesg += "\n"; } return mesg; diff --git a/src/neighbor.cpp b/src/neighbor.cpp index b6f3363b0c..ad509dce7b 100644 --- a/src/neighbor.cpp +++ b/src/neighbor.cpp @@ -495,7 +495,7 @@ void Neighbor::init() if (cut_respa[0]-skin < 0) cut_middle_inside_sq = 0.0; } - restart_check = 0; + must_check = restart_check = 0; if (output->restart_flag) must_check = restart_check = 1; // fixchecklist = other classes that can induce reneighboring in decide() diff --git a/src/pair_deprecated.cpp b/src/pair_deprecated.cpp index db05cd1e06..298fc26fd0 100644 --- a/src/pair_deprecated.cpp +++ b/src/pair_deprecated.cpp @@ -48,6 +48,9 @@ void PairDeprecated::settings(int, char **) utils::logmesg(lmp, "\nPair style 'reax' has been removed from LAMMPS " "after the 12 December 2018 version\n\n"); + } else if (utils::strmatch(my_style, "^reax/c")) { + if (lmp->comm->me == 0) + utils::logmesg(lmp, "\nPair style 'reax/c' has been renamed to 'reaxff'\n\n"); } else if (my_style == "mesont/tpm") { if (lmp->comm->me == 0) utils::logmesg(lmp, diff --git a/src/pair_deprecated.h b/src/pair_deprecated.h index c4753e7bbf..1a705c9051 100644 --- a/src/pair_deprecated.h +++ b/src/pair_deprecated.h @@ -15,6 +15,7 @@ // clang-format off PairStyle(DEPRECATED,PairDeprecated); PairStyle(reax,PairDeprecated); +PairStyle(reax/c,PairDeprecated); PairStyle(mesont/tpm,PairDeprecated); // clang-format on #else diff --git a/src/replicate.cpp b/src/replicate.cpp index 6a4c8bfd74..f5444b9fa8 100644 --- a/src/replicate.cpp +++ b/src/replicate.cpp @@ -22,6 +22,7 @@ #include "error.h" #include "memory.h" #include "special.h" +#include "label_map.h" #include @@ -228,6 +229,15 @@ void Replicate::command(int narg, char **arg) atom->extra_improper_per_atom = old->extra_improper_per_atom; atom->maxspecial = old->maxspecial; + if (old->labelmapflag) { + atom->add_label_map(); + atom->lmap->merge_lmap(old->lmap, Atom::ATOM); + atom->lmap->merge_lmap(old->lmap, Atom::BOND); + atom->lmap->merge_lmap(old->lmap, Atom::ANGLE); + atom->lmap->merge_lmap(old->lmap, Atom::DIHEDRAL); + atom->lmap->merge_lmap(old->lmap, Atom::IMPROPER); + } + // store old simulation box int triclinic = domain->triclinic; diff --git a/tools/moltemplate/README.txt b/tools/moltemplate/README.txt index c33554b14d..d80f7b4edf 100644 --- a/tools/moltemplate/README.txt +++ b/tools/moltemplate/README.txt @@ -28,6 +28,12 @@ Documentation, examples, and supporting code can be downloaded at: http://www.moltemplate.org + +## Tutorial files + +The folder tutorial-files contains the files used in the "Moltemplate Howto" +in the LAMMPS manual. + ## Requirements Moltemplate requires the Bourne-shell, and a recent version of python diff --git a/tools/moltemplate/tutorial-files/PolyNIPAM.lt b/tools/moltemplate/tutorial-files/PolyNIPAM.lt new file mode 100644 index 0000000000..8675c7ac37 --- /dev/null +++ b/tools/moltemplate/tutorial-files/PolyNIPAM.lt @@ -0,0 +1,393 @@ +PolyNIPAM inherits OPLSAA { + + # Charges will be overwritten. + write("Data Atoms") { + $atom:81_1 $mol @atom:81 0.0 -2.357 -0.245 0.629 + $atom:81_2 $mol @atom:81 0.0 -1.194 0.752 0.778 + $atom:85_1 $mol @atom:85 0.0 -2.027 -1.242 0.957 + $atom:177_1 $mol @atom:177 0.0 -1.743 2.168 0.640 + $atom:85_2 $mol @atom:85 0.0 -0.366 0.490 0.103 + $atom:180_1 $mol @atom:180 0.0 -1.147 2.943 -0.274 + $atom:178_1 $mol @atom:178 0.0 -2.700 2.545 1.293 + $atom:171_1 $mol @atom:171 0.0 -1.602 4.322 -0.446 + $atom:183_1 $mol @atom:183 0.0 -0.241 2.724 -0.647 + $atom:80_1 $mol @atom:80 0.0 -2.662 4.430 -1.547 + $atom:80_2 $mol @atom:80 0.0 -0.400 5.227 -0.741 + $atom:85_3 $mol @atom:85 0.0 -2.053 4.672 0.501 + $atom:85_4 $mol @atom:85 0.0 -3.539 3.796 -1.342 + $atom:85_5 $mol @atom:85 0.0 -2.245 4.148 -2.526 + $atom:85_6 $mol @atom:85 0.0 -3.006 5.475 -1.612 + $atom:85_7 $mol @atom:85 0.0 0.080 4.944 -1.690 + $atom:85_8 $mol @atom:85 0.0 0.355 5.185 0.060 + $atom:85_9 $mol @atom:85 0.0 -0.737 6.273 -0.826 + $atom:85_10 $mol @atom:85 0.0 -3.156 0.050 1.336 + $atom:85_11 $mol @atom:85 0.0 -0.808 0.718 1.811 + $atom:81_3 $mol @atom:81 0.0 -4.482 -0.662 -0.732 + $atom:82_1 $mol @atom:82 0.0 -2.984 -0.308 -0.783 + $atom:85_12 $mol @atom:85 0.0 -4.918 0.018 0.014 + $atom:177_2 $mol @atom:177 0.0 -2.344 -1.080 -1.873 + $atom:180_2 $mol @atom:180 0.0 -1.131 -1.604 -1.620 + $atom:178_2 $mol @atom:178 0.0 -2.876 -1.219 -2.965 + $atom:171_2 $mol @atom:171 0.0 -0.391 -2.304 -2.661 + $atom:183_2 $mol @atom:183 0.0 -0.690 -1.494 -0.727 + $atom:80_3 $mol @atom:80 0.0 0.802 -3.029 -2.033 + $atom:80_4 $mol @atom:80 0.0 0.094 -1.373 -3.777 + $atom:85_13 $mol @atom:85 0.0 -1.054 -3.067 -3.111 + $atom:85_14 $mol @atom:85 0.0 0.481 -3.774 -1.288 + $atom:85_15 $mol @atom:85 0.0 1.485 -2.319 -1.542 + $atom:85_16 $mol @atom:85 0.0 1.368 -3.558 -2.817 + $atom:85_17 $mol @atom:85 0.0 0.761 -0.594 -3.382 + $atom:85_18 $mol @atom:85 0.0 -0.738 -0.879 -4.300 + $atom:85_19 $mol @atom:85 0.0 0.653 -1.964 -4.521 + $atom:85_20 $mol @atom:85 0.0 -4.937 -0.363 -1.697 + $atom:85_21 $mol @atom:85 0.0 -2.967 0.717 -1.203 + $atom:81_4 $mol @atom:81 0.0 -6.422 -2.235 -0.754 + $atom:82_2 $mol @atom:82 0.0 -4.928 -2.114 -0.469 + $atom:85_22 $mol @atom:85 0.0 -6.565 -1.832 -1.770 + $atom:177_3 $mol @atom:177 0.0 -4.663 -2.569 0.992 + $atom:180_3 $mol @atom:180 0.0 -3.960 -3.716 1.081 + $atom:178_3 $mol @atom:178 0.0 -4.967 -1.904 1.963 + $atom:171_3 $mol @atom:171 0.0 -3.354 -4.204 2.319 + $atom:183_3 $mol @atom:183 0.0 -4.127 -4.397 0.356 + $atom:80_5 $mol @atom:80 0.0 -4.295 -4.572 3.473 + $atom:80_6 $mol @atom:80 0.0 -2.271 -3.244 2.828 + $atom:85_23 $mol @atom:85 0.0 -2.826 -5.135 2.038 + $atom:85_24 $mol @atom:85 0.0 -4.973 -5.396 3.211 + $atom:85_25 $mol @atom:85 0.0 -4.909 -3.718 3.794 + $atom:85_26 $mol @atom:85 0.0 -3.683 -4.896 4.331 + $atom:85_27 $mol @atom:85 0.0 -2.695 -2.272 3.123 + $atom:85_28 $mol @atom:85 0.0 -1.484 -3.073 2.079 + $atom:85_29 $mol @atom:85 0.0 -1.791 -3.686 3.717 + $atom:85_30 $mol @atom:85 0.0 -6.661 -3.312 -0.799 + $atom:85_31 $mol @atom:85 0.0 -4.422 -2.764 -1.206 + $atom:81_5 $mol @atom:81 0.0 -8.861 -2.101 -0.226 + $atom:82_3 $mol @atom:82 0.0 -7.457 -1.604 0.194 + $atom:85_32 $mol @atom:85 0.0 -8.826 -3.186 -0.048 + $atom:177_4 $mol @atom:177 0.0 -7.425 -0.036 0.256 + $atom:180_4 $mol @atom:180 0.0 -6.870 0.431 1.405 + $atom:178_4 $mol @atom:178 0.0 -8.004 0.653 -0.558 + $atom:171_4 $mol @atom:171 0.0 -7.168 1.765 1.912 + $atom:183_4 $mol @atom:183 0.0 -6.797 -0.317 2.080 + $atom:80_7 $mol @atom:80 0.0 -8.664 2.017 2.147 + $atom:80_8 $mol @atom:80 0.0 -6.545 2.857 1.036 + $atom:85_33 $mol @atom:85 0.0 -6.669 1.831 2.899 + $atom:85_34 $mol @atom:85 0.0 -9.114 1.252 2.800 + $atom:85_35 $mol @atom:85 0.0 -9.236 2.024 1.205 + $atom:85_36 $mol @atom:85 0.0 -8.786 3.001 2.625 + $atom:85_37 $mol @atom:85 0.0 -7.002 2.900 0.037 + $atom:85_38 $mol @atom:85 0.0 -5.460 2.706 0.913 + $atom:85_39 $mol @atom:85 0.0 -6.693 3.836 1.521 + $atom:85_40 $mol @atom:85 0.0 -9.602 -1.708 0.496 + $atom:85_41 $mol @atom:85 0.0 -7.328 -2.030 1.207 + $atom:81_6 $mol @atom:81 0.0 -10.877 -2.392 -1.741 + $atom:82_4 $mol @atom:82 0.0 -9.440 -1.848 -1.636 + $atom:85_42 $mol @atom:85 0.0 -11.441 -2.051 -0.857 + $atom:177_5 $mol @atom:177 0.0 -8.631 -2.553 -2.770 + $atom:180_5 $mol @atom:180 0.0 -8.499 -1.785 -3.863 + $atom:178_5 $mol @atom:178 0.0 -8.181 -3.684 -2.688 + $atom:171_5 $mol @atom:171 0.0 -7.938 -2.258 -5.119 + $atom:183_5 $mol @atom:183 0.0 -9.049 -0.943 -3.902 + $atom:80_9 $mol @atom:80 0.0 -8.792 -3.342 -5.780 + $atom:80_10 $mol @atom:80 0.0 -6.470 -2.687 -5.003 + $atom:85_43 $mol @atom:85 0.0 -7.963 -1.383 -5.795 + $atom:85_44 $mol @atom:85 0.0 -9.825 -2.995 -5.943 + $atom:85_45 $mol @atom:85 0.0 -8.838 -4.264 -5.179 + $atom:85_46 $mol @atom:85 0.0 -8.360 -3.594 -6.761 + $atom:85_47 $mol @atom:85 0.0 -6.361 -3.605 -4.407 + $atom:85_48 $mol @atom:85 0.0 -5.850 -1.903 -4.541 + $atom:85_49 $mol @atom:85 0.0 -6.071 -2.887 -6.011 + $atom:85_50 $mol @atom:85 0.0 -11.356 -1.921 -2.619 + $atom:85_51 $mol @atom:85 0.0 -9.494 -0.756 -1.795 + $atom:81_7 $mol @atom:81 0.0 -12.476 -4.326 -2.296 + $atom:82_5 $mol @atom:82 0.0 -11.042 -3.918 -1.914 + $atom:85_52 $mol @atom:85 0.0 -12.606 -4.028 -3.347 + $atom:177_6 $mol @atom:177 0.0 -10.631 -4.675 -0.614 + $atom:180_6 $mol @atom:180 0.0 -9.796 -5.703 -0.861 + $atom:178_6 $mol @atom:178 0.0 -11.127 -4.453 0.474 + $atom:171_6 $mol @atom:171 0.0 -9.186 -6.529 0.183 + $atom:183_6 $mol @atom:183 0.0 -9.206 -5.554 -1.669 + $atom:80_11 $mol @atom:80 0.0 -10.225 -7.315 0.995 + $atom:80_12 $mol @atom:80 0.0 -8.204 -5.783 1.100 + $atom:85_53 $mol @atom:85 0.0 -8.602 -7.290 -0.368 + $atom:85_54 $mol @atom:85 0.0 -10.889 -7.898 0.339 + $atom:85_55 $mol @atom:85 0.0 -10.843 -6.658 1.625 + $atom:85_56 $mol @atom:85 0.0 -9.699 -8.020 1.659 + $atom:85_57 $mol @atom:85 0.0 -8.739 -5.060 1.735 + $atom:85_58 $mol @atom:85 0.0 -7.431 -5.245 0.530 + $atom:85_59 $mol @atom:85 0.0 -7.700 -6.510 1.757 + $atom:85_60 $mol @atom:85 0.0 -12.525 -5.430 -2.285 + $atom:85_61 $mol @atom:85 0.0 -10.438 -4.244 -2.777 + $atom:81_8 $mol @atom:81 0.0 -14.920 -4.584 -1.600 + $atom:82_6 $mol @atom:82 0.0 -13.632 -3.752 -1.465 + $atom:85_62 $mol @atom:85 0.0 -14.649 -5.586 -1.247 + $atom:177_7 $mol @atom:177 0.0 -13.893 -2.285 -1.914 + $atom:180_7 $mol @atom:180 0.0 -13.965 -1.422 -0.889 + $atom:178_7 $mol @atom:178 0.0 -13.974 -1.956 -3.082 + $atom:171_7 $mol @atom:171 0.0 -14.239 0.001 -1.025 + $atom:183_7 $mol @atom:183 0.0 -13.577 -1.708 -0.004 + $atom:80_13 $mol @atom:80 0.0 -15.680 0.246 -1.480 + $atom:80_14 $mol @atom:80 0.0 -13.267 0.807 -1.893 + $atom:85_63 $mol @atom:85 0.0 -14.156 0.414 -0.002 + $atom:85_64 $mol @atom:85 0.0 -16.408 -0.251 -0.821 + $atom:85_65 $mol @atom:85 0.0 -15.849 -0.114 -2.507 + $atom:85_66 $mol @atom:85 0.0 -15.890 1.327 -1.461 + $atom:85_67 $mol @atom:85 0.0 -13.268 0.469 -2.940 + $atom:85_68 $mol @atom:85 0.0 -12.239 0.760 -1.513 + $atom:85_69 $mol @atom:85 0.0 -13.597 1.859 -1.881 + $atom:85_70 $mol @atom:85 0.0 -15.637 -4.195 -0.859 + $atom:85_71 $mol @atom:85 0.0 -13.362 -3.817 -0.395 + $atom:81_9 $mol @atom:81 0.0 -17.064 -5.395 -2.685 + $atom:82_7 $mol @atom:82 0.0 -15.684 -4.733 -2.934 + $atom:85_72 $mol @atom:85 0.0 -17.540 -4.759 -1.921 + $atom:177_8 $mol @atom:177 0.0 -14.870 -5.540 -3.996 + $atom:180_8 $mol @atom:180 0.0 -14.373 -4.756 -4.977 + $atom:178_8 $mol @atom:178 0.0 -14.748 -6.750 -3.981 + $atom:171_8 $mol @atom:171 0.0 -13.393 -5.268 -5.940 + $atom:183_8 $mol @atom:183 0.0 -14.174 -3.807 -4.679 + $atom:80_15 $mol @atom:80 0.0 -14.106 -6.091 -7.020 + $atom:80_16 $mol @atom:80 0.0 -12.175 -6.042 -5.407 + $atom:85_73 $mol @atom:85 0.0 -12.988 -4.367 -6.439 + $atom:85_74 $mol @atom:85 0.0 -14.926 -5.528 -7.494 + $atom:85_75 $mol @atom:85 0.0 -14.530 -7.019 -6.606 + $atom:85_76 $mol @atom:85 0.0 -13.392 -6.372 -7.812 + $atom:85_77 $mol @atom:85 0.0 -12.467 -7.007 -4.964 + $atom:85_78 $mol @atom:85 0.0 -11.600 -5.477 -4.663 + $atom:85_79 $mol @atom:85 0.0 -11.507 -6.251 -6.259 + $atom:85_80 $mol @atom:85 0.0 -17.675 -5.258 -3.598 + $atom:85_81 $mol @atom:85 0.0 -15.938 -3.724 -3.313 + $atom:81_10 $mol @atom:81 0.0 -18.749 -7.194 -2.096 + $atom:82_8 $mol @atom:82 0.0 -17.248 -6.883 -2.287 + $atom:85_82 $mol @atom:85 0.0 -19.267 -6.796 -2.989 + $atom:177_9 $mol @atom:177 0.0 -16.454 -7.269 -0.999 + $atom:180_9 $mol @atom:180 0.0 -15.335 -7.967 -1.254 + $atom:178_9 $mol @atom:178 0.0 -16.762 -6.899 0.120 + $atom:171_9 $mol @atom:171 0.0 -14.367 -8.387 -0.248 + $atom:183_9 $mol @atom:183 0.0 -15.240 -8.331 -2.192 + $atom:80_17 $mol @atom:80 0.0 -14.904 -9.451 0.715 + $atom:80_18 $mol @atom:80 0.0 -13.725 -7.242 0.549 + $atom:85_83 $mol @atom:85 0.0 -13.545 -8.861 -0.817 + $atom:85_84 $mol @atom:85 0.0 -15.290 -10.333 0.182 + $atom:85_85 $mol @atom:85 0.0 -15.717 -9.064 1.350 + $atom:85_86 $mol @atom:85 0.0 -14.087 -9.788 1.373 + $atom:85_87 $mol @atom:85 0.0 -14.468 -6.647 1.100 + $atom:85_88 $mol @atom:85 0.0 -13.139 -6.565 -0.089 + $atom:85_89 $mol @atom:85 0.0 -13.036 -7.679 1.290 + $atom:85_90 $mol @atom:85 0.0 -18.877 -8.292 -2.150 + $atom:85_91 $mol @atom:85 0.0 -16.939 -7.505 -3.147 + $atom:80_19 $mol @atom:80 0.0 -20.999 -7.206 -1.036 + $atom:82_9 $mol @atom:82 0.0 -19.540 -6.757 -0.843 + $atom:85_92 $mol @atom:85 0.0 -21.046 -8.300 -1.156 + $atom:85_93 $mol @atom:85 0.0 -21.439 -6.747 -1.936 + $atom:177_10 $mol @atom:177 0.0 -19.578 -5.207 -0.628 + $atom:180_10 $mol @atom:180 0.0 -19.061 -4.828 0.557 + $atom:178_10 $mol @atom:178 0.0 -20.185 -4.465 -1.375 + $atom:171_10 $mol @atom:171 0.0 -18.878 -3.426 0.994 + $atom:183_10 $mol @atom:183 0.0 -18.342 -5.450 0.901 + $atom:80_20 $mol @atom:80 0.0 -19.984 -2.451 0.558 + $atom:80_21 $mol @atom:80 0.0 -17.509 -2.857 0.610 + $atom:85_94 $mol @atom:85 0.0 -18.906 -3.470 2.099 + $atom:85_95 $mol @atom:85 0.0 -20.991 -2.887 0.651 + $atom:85_96 $mol @atom:85 0.0 -19.829 -2.132 -0.485 + $atom:85_97 $mol @atom:85 0.0 -19.955 -1.550 1.193 + $atom:85_98 $mol @atom:85 0.0 -17.405 -2.773 -0.482 + $atom:85_99 $mol @atom:85 0.0 -16.684 -3.475 0.993 + $atom:85_100 $mol @atom:85 0.0 -17.407 -1.849 1.043 + $atom:85_101 $mol @atom:85 0.0 -21.621 -6.939 -0.168 + $atom:85_102 $mol @atom:85 0.0 -19.160 -7.294 0.044 + } + + write("Data Bond List") { + $bond:id1 $atom:81_1 $atom:81_2 + $bond:id2 $atom:81_1 $atom:85_1 + $bond:id3 $atom:81_1 $atom:85_10 + $bond:id4 $atom:81_1 $atom:82_1 + $bond:id5 $atom:81_2 $atom:177_1 + $bond:id6 $atom:81_2 $atom:85_2 + $bond:id7 $atom:81_2 $atom:85_11 + $bond:id8 $atom:177_1 $atom:180_1 + $bond:id9 $atom:177_1 $atom:178_1 + $bond:id10 $atom:180_1 $atom:171_1 + $bond:id11 $atom:180_1 $atom:183_1 + $bond:id12 $atom:171_1 $atom:80_1 + $bond:id13 $atom:171_1 $atom:80_2 + $bond:id14 $atom:85_3 $atom:171_1 + $bond:id15 $atom:85_4 $atom:80_1 + $bond:id16 $atom:85_5 $atom:80_1 + $bond:id17 $atom:85_6 $atom:80_1 + $bond:id18 $atom:85_7 $atom:80_2 + $bond:id19 $atom:85_8 $atom:80_2 + $bond:id20 $atom:85_9 $atom:80_2 + $bond:id21 $atom:81_3 $atom:82_1 + $bond:id22 $atom:81_3 $atom:85_12 + $bond:id23 $atom:81_3 $atom:85_20 + $bond:id24 $atom:81_3 $atom:82_2 + $bond:id25 $atom:177_2 $atom:82_1 + $bond:id26 $atom:85_21 $atom:82_1 + $bond:id27 $atom:177_2 $atom:180_2 + $bond:id28 $atom:177_2 $atom:178_2 + $bond:id29 $atom:180_2 $atom:171_2 + $bond:id30 $atom:180_2 $atom:183_2 + $bond:id31 $atom:171_2 $atom:80_3 + $bond:id32 $atom:171_2 $atom:80_4 + $bond:id33 $atom:85_13 $atom:171_2 + $bond:id34 $atom:85_14 $atom:80_3 + $bond:id35 $atom:85_15 $atom:80_3 + $bond:id36 $atom:85_16 $atom:80_3 + $bond:id37 $atom:85_17 $atom:80_4 + $bond:id38 $atom:85_18 $atom:80_4 + $bond:id39 $atom:85_19 $atom:80_4 + $bond:id40 $atom:81_4 $atom:82_2 + $bond:id41 $atom:81_4 $atom:85_22 + $bond:id42 $atom:81_4 $atom:85_30 + $bond:id43 $atom:81_4 $atom:82_3 + $bond:id44 $atom:177_3 $atom:82_2 + $bond:id45 $atom:85_31 $atom:82_2 + $bond:id46 $atom:177_3 $atom:180_3 + $bond:id47 $atom:177_3 $atom:178_3 + $bond:id48 $atom:180_3 $atom:171_3 + $bond:id49 $atom:180_3 $atom:183_3 + $bond:id50 $atom:171_3 $atom:80_5 + $bond:id51 $atom:171_3 $atom:80_6 + $bond:id52 $atom:85_23 $atom:171_3 + $bond:id53 $atom:85_24 $atom:80_5 + $bond:id54 $atom:85_25 $atom:80_5 + $bond:id55 $atom:85_26 $atom:80_5 + $bond:id56 $atom:85_27 $atom:80_6 + $bond:id57 $atom:85_28 $atom:80_6 + $bond:id58 $atom:85_29 $atom:80_6 + $bond:id59 $atom:81_5 $atom:82_3 + $bond:id60 $atom:81_5 $atom:85_32 + $bond:id61 $atom:81_5 $atom:85_40 + $bond:id62 $atom:81_5 $atom:82_4 + $bond:id63 $atom:177_4 $atom:82_3 + $bond:id64 $atom:85_41 $atom:82_3 + $bond:id65 $atom:177_4 $atom:180_4 + $bond:id66 $atom:177_4 $atom:178_4 + $bond:id67 $atom:180_4 $atom:171_4 + $bond:id68 $atom:180_4 $atom:183_4 + $bond:id69 $atom:171_4 $atom:80_7 + $bond:id70 $atom:171_4 $atom:80_8 + $bond:id71 $atom:85_33 $atom:171_4 + $bond:id72 $atom:85_34 $atom:80_7 + $bond:id73 $atom:85_35 $atom:80_7 + $bond:id74 $atom:85_36 $atom:80_7 + $bond:id75 $atom:85_37 $atom:80_8 + $bond:id76 $atom:85_38 $atom:80_8 + $bond:id77 $atom:85_39 $atom:80_8 + $bond:id78 $atom:81_6 $atom:82_4 + $bond:id79 $atom:81_6 $atom:85_42 + $bond:id80 $atom:81_6 $atom:85_50 + $bond:id81 $atom:81_6 $atom:82_5 + $bond:id82 $atom:177_5 $atom:82_4 + $bond:id83 $atom:85_51 $atom:82_4 + $bond:id84 $atom:177_5 $atom:180_5 + $bond:id85 $atom:177_5 $atom:178_5 + $bond:id86 $atom:180_5 $atom:171_5 + $bond:id87 $atom:180_5 $atom:183_5 + $bond:id88 $atom:171_5 $atom:80_9 + $bond:id89 $atom:171_5 $atom:80_10 + $bond:id90 $atom:85_43 $atom:171_5 + $bond:id91 $atom:85_44 $atom:80_9 + $bond:id92 $atom:85_45 $atom:80_9 + $bond:id93 $atom:85_46 $atom:80_9 + $bond:id94 $atom:85_47 $atom:80_10 + $bond:id95 $atom:85_48 $atom:80_10 + $bond:id96 $atom:85_49 $atom:80_10 + $bond:id97 $atom:81_7 $atom:82_5 + $bond:id98 $atom:81_7 $atom:85_52 + $bond:id99 $atom:81_7 $atom:85_60 + $bond:id100 $atom:81_7 $atom:82_6 + $bond:id101 $atom:177_6 $atom:82_5 + $bond:id102 $atom:85_61 $atom:82_5 + $bond:id103 $atom:177_6 $atom:180_6 + $bond:id104 $atom:177_6 $atom:178_6 + $bond:id105 $atom:180_6 $atom:171_6 + $bond:id106 $atom:180_6 $atom:183_6 + $bond:id107 $atom:171_6 $atom:80_11 + $bond:id108 $atom:171_6 $atom:80_12 + $bond:id109 $atom:85_53 $atom:171_6 + $bond:id110 $atom:85_54 $atom:80_11 + $bond:id111 $atom:85_55 $atom:80_11 + $bond:id112 $atom:85_56 $atom:80_11 + $bond:id113 $atom:85_57 $atom:80_12 + $bond:id114 $atom:85_58 $atom:80_12 + $bond:id115 $atom:85_59 $atom:80_12 + $bond:id116 $atom:81_8 $atom:82_6 + $bond:id117 $atom:81_8 $atom:85_62 + $bond:id118 $atom:81_8 $atom:85_70 + $bond:id119 $atom:81_8 $atom:82_7 + $bond:id120 $atom:177_7 $atom:82_6 + $bond:id121 $atom:85_71 $atom:82_6 + $bond:id122 $atom:177_7 $atom:180_7 + $bond:id123 $atom:177_7 $atom:178_7 + $bond:id124 $atom:180_7 $atom:171_7 + $bond:id125 $atom:180_7 $atom:183_7 + $bond:id126 $atom:171_7 $atom:80_13 + $bond:id127 $atom:171_7 $atom:80_14 + $bond:id128 $atom:85_63 $atom:171_7 + $bond:id129 $atom:85_64 $atom:80_13 + $bond:id130 $atom:85_65 $atom:80_13 + $bond:id131 $atom:85_66 $atom:80_13 + $bond:id132 $atom:85_67 $atom:80_14 + $bond:id133 $atom:85_68 $atom:80_14 + $bond:id134 $atom:85_69 $atom:80_14 + $bond:id135 $atom:81_9 $atom:82_7 + $bond:id136 $atom:81_9 $atom:85_72 + $bond:id137 $atom:81_9 $atom:85_80 + $bond:id138 $atom:81_9 $atom:82_8 + $bond:id139 $atom:177_8 $atom:82_7 + $bond:id140 $atom:85_81 $atom:82_7 + $bond:id141 $atom:177_8 $atom:180_8 + $bond:id142 $atom:177_8 $atom:178_8 + $bond:id143 $atom:180_8 $atom:171_8 + $bond:id144 $atom:180_8 $atom:183_8 + $bond:id145 $atom:171_8 $atom:80_15 + $bond:id146 $atom:171_8 $atom:80_16 + $bond:id147 $atom:85_73 $atom:171_8 + $bond:id148 $atom:85_74 $atom:80_15 + $bond:id149 $atom:85_75 $atom:80_15 + $bond:id150 $atom:85_76 $atom:80_15 + $bond:id151 $atom:85_77 $atom:80_16 + $bond:id152 $atom:85_78 $atom:80_16 + $bond:id153 $atom:85_79 $atom:80_16 + $bond:id154 $atom:81_10 $atom:82_8 + $bond:id155 $atom:81_10 $atom:85_82 + $bond:id156 $atom:81_10 $atom:85_90 + $bond:id157 $atom:81_10 $atom:82_9 + $bond:id158 $atom:177_9 $atom:82_8 + $bond:id159 $atom:85_91 $atom:82_8 + $bond:id160 $atom:177_9 $atom:180_9 + $bond:id161 $atom:177_9 $atom:178_9 + $bond:id162 $atom:180_9 $atom:171_9 + $bond:id163 $atom:180_9 $atom:183_9 + $bond:id164 $atom:171_9 $atom:80_17 + $bond:id165 $atom:171_9 $atom:80_18 + $bond:id166 $atom:85_83 $atom:171_9 + $bond:id167 $atom:85_84 $atom:80_17 + $bond:id168 $atom:85_85 $atom:80_17 + $bond:id169 $atom:85_86 $atom:80_17 + $bond:id170 $atom:85_87 $atom:80_18 + $bond:id171 $atom:85_88 $atom:80_18 + $bond:id172 $atom:85_89 $atom:80_18 + $bond:id173 $atom:80_19 $atom:82_9 + $bond:id174 $atom:85_92 $atom:80_19 + $bond:id175 $atom:85_93 $atom:80_19 + $bond:id176 $atom:85_101 $atom:80_19 + $bond:id177 $atom:177_10 $atom:82_9 + $bond:id178 $atom:85_102 $atom:82_9 + $bond:id179 $atom:177_10 $atom:180_10 + $bond:id180 $atom:177_10 $atom:178_10 + $bond:id181 $atom:180_10 $atom:171_10 + $bond:id182 $atom:180_10 $atom:183_10 + $bond:id183 $atom:171_10 $atom:80_20 + $bond:id184 $atom:171_10 $atom:80_21 + $bond:id185 $atom:85_94 $atom:171_10 + $bond:id186 $atom:85_95 $atom:80_20 + $bond:id187 $atom:85_96 $atom:80_20 + $bond:id188 $atom:85_97 $atom:80_20 + $bond:id189 $atom:85_98 $atom:80_21 + $bond:id190 $atom:85_99 $atom:80_21 + $bond:id191 $atom:85_100 $atom:80_21 + } + +} # end of "PolyNIPAM inherits OPLSAA" type definition diff --git a/tools/moltemplate/tutorial-files/formamide.lt b/tools/moltemplate/tutorial-files/formamide.lt new file mode 100644 index 0000000000..f55fce3e52 --- /dev/null +++ b/tools/moltemplate/tutorial-files/formamide.lt @@ -0,0 +1,37 @@ +# The "oplsaa.lt" file contains force-field parameters, atom type definitions, +# partial charges, masses and bond-angle rules for the atoms in your system. + +_FAM inherits OPLSAA { + + # atom-id mol-id atom-type charge X Y Z # comment + + write('Data Atoms') { + $atom:C00 $mol @atom:177 0.00 0.100014490 0.490422099 0.0 + $atom:O01 $mol @atom:178 0.00 1.091153187 -0.250749643 0.0 + $atom:N02 $mol @atom:179 0.00 -1.121616690 -0.181085754 0.0 + $atom:H03 $mol @atom:182 0.00 -2.013715893 0.272535813 0.0 + $atom:H04 $mol @atom:182 0.00 -1.056768463 -1.190185868 0.0 + $atom:H05 $mol @atom:221 0.00 0.144676387 1.570292021 0.0 + } + + # Note: You don't have to specify the charge in this example because we are + # using the OPLSAA force-field which assigns charge according to + # atom-type. Just leave these numbers as 0.00 for now. + # Note: LAMMPS expects an integer in the 2nd column (the Molecule-ID number). + # If we put "$mol" there, moltemplate will generate this integer for you + + # A list of the bonds in the molecule: + # BondID AtomID1 AtomID2 + + write('Data Bond List') { + $bond:C1 $atom:C00 $atom:O01 + $bond:C2 $atom:C00 $atom:H05 + $bond:C3 $atom:C00 $atom:N02 + $bond:C4 $atom:N02 $atom:H03 + $bond:C5 $atom:N02 $atom:H04 + } + + # In the "Data Bond List" section we don't have to specify the bond type. + # The bond-type will be determined by the atom type (according to "oplsaa.lt") + +} diff --git a/tools/moltemplate/tutorial-files/formamide.xyz b/tools/moltemplate/tutorial-files/formamide.xyz new file mode 100644 index 0000000000..f008dc64a0 --- /dev/null +++ b/tools/moltemplate/tutorial-files/formamide.xyz @@ -0,0 +1,8 @@ +6 + +C 0.100014490 0.490422099 0.0 +O 1.091153187 -0.250749643 0.0 +N -1.121616690 -0.181085754 0.0 +H -2.013715893 0.272535813 0.0 +H -1.056768463 -1.190185868 0.0 +H 0.144676387 1.570292021 0.0 diff --git a/tools/moltemplate/tutorial-files/model.pdb b/tools/moltemplate/tutorial-files/model.pdb new file mode 100644 index 0000000000..c5c74346b3 --- /dev/null +++ b/tools/moltemplate/tutorial-files/model.pdb @@ -0,0 +1,1696 @@ +ATOM 1 O MOL D 1 5.901 7.384 1.103 0.00 0.00 DUM +ATOM 2 H MOL D 1 6.047 8.238 0.581 0.00 0.00 DUM +ATOM 3 H MOL D 1 6.188 7.533 2.057 0.00 0.00 DUM +ATOM 4 O MOL D 2 0.253 14.198 8.269 0.00 0.00 DUM +ATOM 5 H MOL D 2 1.061 13.575 8.111 0.00 0.00 DUM +ATOM 6 H MOL D 2 0.663 15.170 8.563 0.00 0.00 DUM +ATOM 7 O MOL D 3 2.119 7.114 9.433 0.00 0.00 DUM +ATOM 8 H MOL D 3 1.181 6.745 9.485 0.00 0.00 DUM +ATOM 9 H MOL D 3 2.442 7.332 10.361 0.00 0.00 DUM +ATOM 10 O MOL D 4 10.086 24.812 10.097 0.00 0.00 DUM +ATOM 11 H MOL D 4 9.202 24.755 9.598 0.00 0.00 DUM +ATOM 12 H MOL D 4 9.891 25.326 10.952 0.00 0.00 DUM +ATOM 13 O MOL D 5 6.173 15.436 15.260 0.00 0.00 DUM +ATOM 14 H MOL D 5 5.275 15.363 14.780 0.00 0.00 DUM +ATOM 15 H MOL D 5 6.616 14.524 15.117 0.00 0.00 DUM +ATOM 16 O MOL D 6 9.602 7.403 4.964 0.00 0.00 DUM +ATOM 17 H MOL D 6 9.104 6.698 4.514 0.00 0.00 DUM +ATOM 18 H MOL D 6 10.167 7.018 5.685 0.00 0.00 DUM +ATOM 19 O MOL D 7 21.548 24.542 2.255 0.00 0.00 DUM +ATOM 20 H MOL D 7 20.679 25.019 2.046 0.00 0.00 DUM +ATOM 21 H MOL D 7 22.275 24.983 1.693 0.00 0.00 DUM +ATOM 22 O MOL D 8 24.025 2.184 19.714 0.00 0.00 DUM +ATOM 23 H MOL D 8 24.488 2.493 20.574 0.00 0.00 DUM +ATOM 24 H MOL D 8 24.000 1.170 19.816 0.00 0.00 DUM +ATOM 25 O MOL D 9 21.937 22.583 14.285 0.00 0.00 DUM +ATOM 26 H MOL D 9 21.739 22.401 13.319 0.00 0.00 DUM +ATOM 27 H MOL D 9 22.946 22.524 14.306 0.00 0.00 DUM +ATOM 28 O MOL D 10 20.738 3.461 8.366 0.00 0.00 DUM +ATOM 29 H MOL D 10 20.168 2.934 7.727 0.00 0.00 DUM +ATOM 30 H MOL D 10 21.524 2.921 8.646 0.00 0.00 DUM +ATOM 31 O MOL D 11 2.327 11.085 22.264 0.00 0.00 DUM +ATOM 32 H MOL D 11 3.125 10.495 22.627 0.00 0.00 DUM +ATOM 33 H MOL D 11 2.415 11.285 21.254 0.00 0.00 DUM +ATOM 34 O MOL D 12 10.714 19.804 1.926 0.00 0.00 DUM +ATOM 35 H MOL D 12 10.196 19.202 2.623 0.00 0.00 DUM +ATOM 36 H MOL D 12 11.605 20.038 2.326 0.00 0.00 DUM +ATOM 37 O MOL D 13 9.435 3.060 10.078 0.00 0.00 DUM +ATOM 38 H MOL D 13 8.511 2.966 9.593 0.00 0.00 DUM +ATOM 39 H MOL D 13 10.032 2.356 9.682 0.00 0.00 DUM +ATOM 40 O MOL D 14 5.115 5.527 7.435 0.00 0.00 DUM +ATOM 41 H MOL D 14 4.557 6.383 7.278 0.00 0.00 DUM +ATOM 42 H MOL D 14 5.047 5.270 8.440 0.00 0.00 DUM +ATOM 43 O MOL D 15 3.878 12.212 6.650 0.00 0.00 DUM +ATOM 44 H MOL D 15 2.966 12.211 7.130 0.00 0.00 DUM +ATOM 45 H MOL D 15 4.462 12.854 7.135 0.00 0.00 DUM +ATOM 46 O MOL D 16 16.631 18.483 13.900 0.00 0.00 DUM +ATOM 47 H MOL D 16 16.704 19.222 13.182 0.00 0.00 DUM +ATOM 48 H MOL D 16 16.716 18.886 14.818 0.00 0.00 DUM +ATOM 49 O MOL D 17 21.326 2.861 23.137 0.00 0.00 DUM +ATOM 50 H MOL D 17 20.991 2.264 23.902 0.00 0.00 DUM +ATOM 51 H MOL D 17 20.988 3.782 23.374 0.00 0.00 DUM +ATOM 52 O MOL D 18 22.979 7.879 13.848 0.00 0.00 DUM +ATOM 53 H MOL D 18 23.062 7.642 14.860 0.00 0.00 DUM +ATOM 54 H MOL D 18 23.522 8.679 13.705 0.00 0.00 DUM +ATOM 55 O MOL D 19 -0.435 11.889 -0.792 0.00 0.00 DUM +ATOM 56 H MOL D 19 -0.062 12.213 0.100 0.00 0.00 DUM +ATOM 57 H MOL D 19 0.347 11.669 -1.417 0.00 0.00 DUM +ATOM 58 O MOL D 20 4.907 21.410 23.911 0.00 0.00 DUM +ATOM 59 H MOL D 20 5.674 21.145 23.327 0.00 0.00 DUM +ATOM 60 H MOL D 20 4.742 20.659 24.557 0.00 0.00 DUM +ATOM 61 O MOL D 21 2.802 14.452 11.325 0.00 0.00 DUM +ATOM 62 H MOL D 21 2.635 13.466 11.171 0.00 0.00 DUM +ATOM 63 H MOL D 21 3.069 14.817 10.423 0.00 0.00 DUM +ATOM 64 O MOL D 22 3.959 19.873 11.863 0.00 0.00 DUM +ATOM 65 H MOL D 22 4.957 19.852 12.091 0.00 0.00 DUM +ATOM 66 H MOL D 22 3.797 19.153 11.172 0.00 0.00 DUM +ATOM 67 O MOL D 23 20.150 24.543 14.230 0.00 0.00 DUM +ATOM 68 H MOL D 23 20.543 25.272 14.821 0.00 0.00 DUM +ATOM 69 H MOL D 23 20.698 23.694 14.381 0.00 0.00 DUM +ATOM 70 O MOL D 24 16.458 16.780 1.154 0.00 0.00 DUM +ATOM 71 H MOL D 24 17.065 16.593 0.336 0.00 0.00 DUM +ATOM 72 H MOL D 24 16.266 17.766 1.282 0.00 0.00 DUM +ATOM 73 O MOL D 25 17.330 13.811 3.388 0.00 0.00 DUM +ATOM 74 H MOL D 25 17.353 13.342 4.276 0.00 0.00 DUM +ATOM 75 H MOL D 25 16.357 14.034 3.111 0.00 0.00 DUM +ATOM 76 O MOL D 26 2.025 -0.334 10.301 0.00 0.00 DUM +ATOM 77 H MOL D 26 2.570 -0.823 10.970 0.00 0.00 DUM +ATOM 78 H MOL D 26 2.421 0.608 10.163 0.00 0.00 DUM +ATOM 79 O MOL D 27 23.341 4.359 3.903 0.00 0.00 DUM +ATOM 80 H MOL D 27 22.406 4.529 3.513 0.00 0.00 DUM +ATOM 81 H MOL D 27 23.904 5.144 3.720 0.00 0.00 DUM +ATOM 82 O MOL D 28 24.988 14.221 21.972 0.00 0.00 DUM +ATOM 83 H MOL D 28 24.717 14.952 22.598 0.00 0.00 DUM +ATOM 84 H MOL D 28 24.283 13.540 22.045 0.00 0.00 DUM +ATOM 85 O MOL D 29 5.777 9.576 20.498 0.00 0.00 DUM +ATOM 86 H MOL D 29 5.468 9.367 19.573 0.00 0.00 DUM +ATOM 87 H MOL D 29 6.736 9.883 20.524 0.00 0.00 DUM +ATOM 88 O MOL D 30 7.348 4.689 22.905 0.00 0.00 DUM +ATOM 89 H MOL D 30 6.883 5.350 22.323 0.00 0.00 DUM +ATOM 90 H MOL D 30 8.359 4.814 22.631 0.00 0.00 DUM +ATOM 91 O MOL D 31 9.975 15.886 18.874 0.00 0.00 DUM +ATOM 92 H MOL D 31 9.741 16.820 18.586 0.00 0.00 DUM +ATOM 93 H MOL D 31 10.438 15.534 18.046 0.00 0.00 DUM +ATOM 94 O MOL D 32 12.017 11.891 17.471 0.00 0.00 DUM +ATOM 95 H MOL D 32 13.026 11.809 17.093 0.00 0.00 DUM +ATOM 96 H MOL D 32 11.808 12.824 17.137 0.00 0.00 DUM +ATOM 97 O MOL D 33 20.041 24.292 4.779 0.00 0.00 DUM +ATOM 98 H MOL D 33 19.964 24.856 5.606 0.00 0.00 DUM +ATOM 99 H MOL D 33 20.671 24.712 4.077 0.00 0.00 DUM +ATOM 100 O MOL D 34 9.057 11.101 24.080 0.00 0.00 DUM +ATOM 101 H MOL D 34 9.939 11.072 24.570 0.00 0.00 DUM +ATOM 102 H MOL D 34 8.958 11.987 23.585 0.00 0.00 DUM +ATOM 103 O MOL D 35 18.701 13.699 24.336 0.00 0.00 DUM +ATOM 104 H MOL D 35 19.144 13.060 24.984 0.00 0.00 DUM +ATOM 105 H MOL D 35 18.038 13.147 23.802 0.00 0.00 DUM +ATOM 106 O MOL D 36 10.268 7.083 24.510 0.00 0.00 DUM +ATOM 107 H MOL D 36 10.589 6.189 24.174 0.00 0.00 DUM +ATOM 108 H MOL D 36 9.914 6.949 25.470 0.00 0.00 DUM +ATOM 109 O MOL D 37 24.176 0.633 17.355 0.00 0.00 DUM +ATOM 110 H MOL D 37 23.644 0.032 17.973 0.00 0.00 DUM +ATOM 111 H MOL D 37 24.273 1.506 17.886 0.00 0.00 DUM +ATOM 112 O MOL D 38 23.209 1.465 8.698 0.00 0.00 DUM +ATOM 113 H MOL D 38 22.701 0.755 8.130 0.00 0.00 DUM +ATOM 114 H MOL D 38 24.186 1.551 8.326 0.00 0.00 DUM +ATOM 115 O MOL D 39 23.276 5.571 12.154 0.00 0.00 DUM +ATOM 116 H MOL D 39 23.157 6.299 12.836 0.00 0.00 DUM +ATOM 117 H MOL D 39 22.805 5.860 11.311 0.00 0.00 DUM +ATOM 118 O MOL D 40 18.870 2.207 17.821 0.00 0.00 DUM +ATOM 119 H MOL D 40 18.089 2.532 18.454 0.00 0.00 DUM +ATOM 120 H MOL D 40 19.684 2.514 18.353 0.00 0.00 DUM +ATOM 121 O MOL D 41 3.298 19.893 16.711 0.00 0.00 DUM +ATOM 122 H MOL D 41 4.143 19.446 16.958 0.00 0.00 DUM +ATOM 123 H MOL D 41 3.411 20.883 16.805 0.00 0.00 DUM +ATOM 124 O MOL D 42 9.122 16.883 15.483 0.00 0.00 DUM +ATOM 125 H MOL D 42 9.577 15.967 15.135 0.00 0.00 DUM +ATOM 126 H MOL D 42 8.172 16.779 15.215 0.00 0.00 DUM +ATOM 127 O MOL D 43 22.548 10.453 2.334 0.00 0.00 DUM +ATOM 128 H MOL D 43 22.322 11.246 2.943 0.00 0.00 DUM +ATOM 129 H MOL D 43 22.793 10.852 1.448 0.00 0.00 DUM +ATOM 130 O MOL D 44 3.560 8.835 14.463 0.00 0.00 DUM +ATOM 131 H MOL D 44 3.456 8.540 15.432 0.00 0.00 DUM +ATOM 132 H MOL D 44 4.061 9.726 14.473 0.00 0.00 DUM +ATOM 133 O MOL D 45 24.380 0.296 14.740 0.00 0.00 DUM +ATOM 134 H MOL D 45 24.302 0.216 15.771 0.00 0.00 DUM +ATOM 135 H MOL D 45 23.592 0.899 14.466 0.00 0.00 DUM +ATOM 136 O MOL D 46 5.622 20.199 3.993 0.00 0.00 DUM +ATOM 137 H MOL D 46 5.030 19.660 3.355 0.00 0.00 DUM +ATOM 138 H MOL D 46 5.616 21.128 3.600 0.00 0.00 DUM +ATOM 139 O MOL D 47 19.780 21.628 4.031 0.00 0.00 DUM +ATOM 140 H MOL D 47 20.008 22.573 4.397 0.00 0.00 DUM +ATOM 141 H MOL D 47 18.840 21.477 4.128 0.00 0.00 DUM +ATOM 142 O MOL D 48 14.763 13.781 13.914 0.00 0.00 DUM +ATOM 143 H MOL D 48 13.748 13.656 13.934 0.00 0.00 DUM +ATOM 144 H MOL D 48 14.994 14.676 13.528 0.00 0.00 DUM +ATOM 145 O MOL D 49 1.909 17.314 4.295 0.00 0.00 DUM +ATOM 146 H MOL D 49 1.717 16.336 3.966 0.00 0.00 DUM +ATOM 147 H MOL D 49 2.727 17.590 3.696 0.00 0.00 DUM +ATOM 148 O MOL D 50 17.204 10.321 13.163 0.00 0.00 DUM +ATOM 149 H MOL D 50 18.088 10.477 13.640 0.00 0.00 DUM +ATOM 150 H MOL D 50 16.665 9.677 13.709 0.00 0.00 DUM +ATOM 151 O MOL D 51 19.068 5.760 13.124 0.00 0.00 DUM +ATOM 152 H MOL D 51 18.305 5.646 13.801 0.00 0.00 DUM +ATOM 153 H MOL D 51 19.677 4.992 13.133 0.00 0.00 DUM +ATOM 154 O MOL D 52 18.410 9.013 4.451 0.00 0.00 DUM +ATOM 155 H MOL D 52 18.521 8.076 3.958 0.00 0.00 DUM +ATOM 156 H MOL D 52 18.112 8.712 5.406 0.00 0.00 DUM +ATOM 157 O MOL D 53 23.286 14.992 0.838 0.00 0.00 DUM +ATOM 158 H MOL D 53 24.262 15.290 0.967 0.00 0.00 DUM +ATOM 159 H MOL D 53 22.741 15.795 1.217 0.00 0.00 DUM +ATOM 160 O MOL D 54 23.721 16.213 4.483 0.00 0.00 DUM +ATOM 161 H MOL D 54 24.345 16.608 5.178 0.00 0.00 DUM +ATOM 162 H MOL D 54 23.063 15.550 4.891 0.00 0.00 DUM +ATOM 163 O MOL D 55 -0.516 7.442 25.979 0.00 0.00 DUM +ATOM 164 H MOL D 55 -0.927 6.447 25.928 0.00 0.00 DUM +ATOM 165 H MOL D 55 0.374 7.375 25.504 0.00 0.00 DUM +ATOM 166 O MOL D 56 25.983 16.323 1.401 0.00 0.00 DUM +ATOM 167 H MOL D 56 26.575 15.878 0.732 0.00 0.00 DUM +ATOM 168 H MOL D 56 26.150 15.904 2.312 0.00 0.00 DUM +ATOM 169 O MOL D 57 4.040 6.554 19.806 0.00 0.00 DUM +ATOM 170 H MOL D 57 3.029 6.635 20.132 0.00 0.00 DUM +ATOM 171 H MOL D 57 4.055 7.053 18.904 0.00 0.00 DUM +ATOM 172 O MOL D 58 18.391 16.463 12.720 0.00 0.00 DUM +ATOM 173 H MOL D 58 17.706 16.913 13.261 0.00 0.00 DUM +ATOM 174 H MOL D 58 19.141 17.067 12.474 0.00 0.00 DUM +ATOM 175 O MOL D 59 15.965 6.372 5.490 0.00 0.00 DUM +ATOM 176 H MOL D 59 16.091 7.313 5.837 0.00 0.00 DUM +ATOM 177 H MOL D 59 16.417 6.232 4.613 0.00 0.00 DUM +ATOM 178 O MOL D 60 21.235 7.966 6.621 0.00 0.00 DUM +ATOM 179 H MOL D 60 20.488 7.841 7.257 0.00 0.00 DUM +ATOM 180 H MOL D 60 21.973 7.337 6.743 0.00 0.00 DUM +ATOM 181 O MOL D 61 16.352 9.777 21.636 0.00 0.00 DUM +ATOM 182 H MOL D 61 17.326 9.973 21.529 0.00 0.00 DUM +ATOM 183 H MOL D 61 16.268 9.099 22.398 0.00 0.00 DUM +ATOM 184 O MOL D 62 0.696 3.718 17.471 0.00 0.00 DUM +ATOM 185 H MOL D 62 0.317 4.070 18.375 0.00 0.00 DUM +ATOM 186 H MOL D 62 0.988 2.760 17.636 0.00 0.00 DUM +ATOM 187 O MOL D 63 26.026 2.256 7.493 0.00 0.00 DUM +ATOM 188 H MOL D 63 26.563 2.939 8.058 0.00 0.00 DUM +ATOM 189 H MOL D 63 25.738 2.685 6.663 0.00 0.00 DUM +ATOM 190 O MOL D 64 4.316 5.381 9.965 0.00 0.00 DUM +ATOM 191 H MOL D 64 4.625 5.329 10.925 0.00 0.00 DUM +ATOM 192 H MOL D 64 3.334 5.067 9.924 0.00 0.00 DUM +ATOM 193 O MOL D 65 6.083 4.446 1.098 0.00 0.00 DUM +ATOM 194 H MOL D 65 6.468 3.929 0.286 0.00 0.00 DUM +ATOM 195 H MOL D 65 6.192 5.414 0.892 0.00 0.00 DUM +ATOM 196 O MOL D 66 1.009 17.190 14.037 0.00 0.00 DUM +ATOM 197 H MOL D 66 1.691 17.927 13.970 0.00 0.00 DUM +ATOM 198 H MOL D 66 0.124 17.595 14.263 0.00 0.00 DUM +ATOM 199 O MOL D 67 14.049 16.878 10.486 0.00 0.00 DUM +ATOM 200 H MOL D 67 14.129 17.907 10.654 0.00 0.00 DUM +ATOM 201 H MOL D 67 14.221 16.380 11.371 0.00 0.00 DUM +ATOM 202 O MOL D 68 0.366 19.802 4.164 0.00 0.00 DUM +ATOM 203 H MOL D 68 0.966 20.603 4.271 0.00 0.00 DUM +ATOM 204 H MOL D 68 0.911 18.973 4.265 0.00 0.00 DUM +ATOM 205 O MOL D 69 2.437 3.766 5.715 0.00 0.00 DUM +ATOM 206 H MOL D 69 1.446 3.678 5.554 0.00 0.00 DUM +ATOM 207 H MOL D 69 2.507 4.787 5.900 0.00 0.00 DUM +ATOM 208 O MOL D 70 1.489 14.860 18.054 0.00 0.00 DUM +ATOM 209 H MOL D 70 2.381 15.218 18.476 0.00 0.00 DUM +ATOM 210 H MOL D 70 1.447 15.185 17.105 0.00 0.00 DUM +ATOM 211 O MOL D 71 23.586 19.588 3.314 0.00 0.00 DUM +ATOM 212 H MOL D 71 24.041 19.247 2.462 0.00 0.00 DUM +ATOM 213 H MOL D 71 24.336 19.424 3.934 0.00 0.00 DUM +ATOM 214 O MOL D 72 18.801 23.222 25.072 0.00 0.00 DUM +ATOM 215 H MOL D 72 18.620 22.262 25.350 0.00 0.00 DUM +ATOM 216 H MOL D 72 19.754 23.361 25.246 0.00 0.00 DUM +ATOM 217 O MOL D 73 8.694 14.215 0.305 0.00 0.00 DUM +ATOM 218 H MOL D 73 8.204 14.032 -0.524 0.00 0.00 DUM +ATOM 219 H MOL D 73 9.694 14.065 0.067 0.00 0.00 DUM +ATOM 220 O MOL D 74 24.602 8.375 10.282 0.00 0.00 DUM +ATOM 221 H MOL D 74 24.364 9.168 10.919 0.00 0.00 DUM +ATOM 222 H MOL D 74 25.068 8.780 9.431 0.00 0.00 DUM +ATOM 223 O MOL D 75 1.216 11.677 12.434 0.00 0.00 DUM +ATOM 224 H MOL D 75 0.640 11.162 13.064 0.00 0.00 DUM +ATOM 225 H MOL D 75 0.546 12.176 11.821 0.00 0.00 DUM +ATOM 226 O MOL D 76 -0.067 3.124 4.615 0.00 0.00 DUM +ATOM 227 H MOL D 76 -0.821 3.752 4.332 0.00 0.00 DUM +ATOM 228 H MOL D 76 0.241 2.518 3.903 0.00 0.00 DUM +ATOM 229 O MOL D 77 17.011 23.679 7.062 0.00 0.00 DUM +ATOM 230 H MOL D 77 17.880 23.260 7.359 0.00 0.00 DUM +ATOM 231 H MOL D 77 17.204 24.618 6.699 0.00 0.00 DUM +ATOM 232 O MOL D 78 17.354 10.175 2.103 0.00 0.00 DUM +ATOM 233 H MOL D 78 17.512 10.044 3.061 0.00 0.00 DUM +ATOM 234 H MOL D 78 17.961 10.972 1.827 0.00 0.00 DUM +ATOM 235 O MOL D 79 13.569 6.592 19.995 0.00 0.00 DUM +ATOM 236 H MOL D 79 13.847 6.536 20.992 0.00 0.00 DUM +ATOM 237 H MOL D 79 12.541 6.463 20.043 0.00 0.00 DUM +ATOM 238 O MOL D 80 2.404 12.895 3.685 0.00 0.00 DUM +ATOM 239 H MOL D 80 3.309 13.401 3.737 0.00 0.00 DUM +ATOM 240 H MOL D 80 2.316 12.137 4.319 0.00 0.00 DUM +ATOM 241 O MOL D 81 12.066 0.749 21.382 0.00 0.00 DUM +ATOM 242 H MOL D 81 12.822 1.405 21.419 0.00 0.00 DUM +ATOM 243 H MOL D 81 11.264 1.181 21.822 0.00 0.00 DUM +ATOM 244 O MOL D 82 2.783 11.907 19.747 0.00 0.00 DUM +ATOM 245 H MOL D 82 3.185 12.080 18.828 0.00 0.00 DUM +ATOM 246 H MOL D 82 1.899 12.456 19.875 0.00 0.00 DUM +ATOM 247 O MOL D 83 20.535 7.478 1.891 0.00 0.00 DUM +ATOM 248 H MOL D 83 20.745 8.466 2.089 0.00 0.00 DUM +ATOM 249 H MOL D 83 19.822 7.106 2.533 0.00 0.00 DUM +ATOM 250 O MOL D 84 6.694 2.159 5.261 0.00 0.00 DUM +ATOM 251 H MOL D 84 7.600 2.390 4.815 0.00 0.00 DUM +ATOM 252 H MOL D 84 6.132 1.832 4.506 0.00 0.00 DUM +ATOM 253 O MOL D 85 7.373 10.933 16.871 0.00 0.00 DUM +ATOM 254 H MOL D 85 7.822 11.217 17.751 0.00 0.00 DUM +ATOM 255 H MOL D 85 6.673 10.254 17.059 0.00 0.00 DUM +ATOM 256 O MOL D 86 13.242 16.403 15.999 0.00 0.00 DUM +ATOM 257 H MOL D 86 13.202 17.349 15.651 0.00 0.00 DUM +ATOM 258 H MOL D 86 14.215 16.191 16.221 0.00 0.00 DUM +ATOM 259 O MOL D 87 8.436 10.341 21.273 0.00 0.00 DUM +ATOM 260 H MOL D 87 8.585 11.011 21.985 0.00 0.00 DUM +ATOM 261 H MOL D 87 8.523 9.405 21.729 0.00 0.00 DUM +ATOM 262 O MOL D 88 16.011 8.116 14.651 0.00 0.00 DUM +ATOM 263 H MOL D 88 15.132 8.249 15.177 0.00 0.00 DUM +ATOM 264 H MOL D 88 16.818 8.320 15.304 0.00 0.00 DUM +ATOM 265 O MOL D 89 17.684 7.805 19.560 0.00 0.00 DUM +ATOM 266 H MOL D 89 17.489 7.167 20.313 0.00 0.00 DUM +ATOM 267 H MOL D 89 18.672 7.870 19.469 0.00 0.00 DUM +ATOM 268 O MOL D 90 4.032 12.419 17.364 0.00 0.00 DUM +ATOM 269 H MOL D 90 3.659 12.415 16.389 0.00 0.00 DUM +ATOM 270 H MOL D 90 4.354 13.235 17.749 0.00 0.00 DUM +ATOM 271 O MOL D 91 8.024 18.148 8.368 0.00 0.00 DUM +ATOM 272 H MOL D 91 7.772 17.979 9.363 0.00 0.00 DUM +ATOM 273 H MOL D 91 7.605 19.068 8.119 0.00 0.00 DUM +ATOM 274 O MOL D 92 17.668 3.844 19.440 0.00 0.00 DUM +ATOM 275 H MOL D 92 18.300 4.355 20.062 0.00 0.00 DUM +ATOM 276 H MOL D 92 16.788 4.386 19.390 0.00 0.00 DUM +ATOM 277 O MOL D 93 14.400 12.228 16.311 0.00 0.00 DUM +ATOM 278 H MOL D 93 14.456 12.477 15.326 0.00 0.00 DUM +ATOM 279 H MOL D 93 15.341 12.470 16.705 0.00 0.00 DUM +ATOM 280 O MOL D 94 24.404 18.529 23.692 0.00 0.00 DUM +ATOM 281 H MOL D 94 23.493 19.020 23.766 0.00 0.00 DUM +ATOM 282 H MOL D 94 24.230 17.516 23.758 0.00 0.00 DUM +ATOM 283 O MOL D 95 22.731 14.031 5.762 0.00 0.00 DUM +ATOM 284 H MOL D 95 23.723 13.807 5.852 0.00 0.00 DUM +ATOM 285 H MOL D 95 22.294 13.811 6.669 0.00 0.00 DUM +ATOM 286 O MOL D 96 17.116 6.475 21.667 0.00 0.00 DUM +ATOM 287 H MOL D 96 16.156 6.616 22.058 0.00 0.00 DUM +ATOM 288 H MOL D 96 17.664 6.435 22.497 0.00 0.00 DUM +ATOM 289 O MOL D 97 1.181 16.515 9.223 0.00 0.00 DUM +ATOM 290 H MOL D 97 1.908 17.190 9.320 0.00 0.00 DUM +ATOM 291 H MOL D 97 0.715 16.433 10.156 0.00 0.00 DUM +ATOM 292 O MOL D 98 9.670 10.106 11.712 0.00 0.00 DUM +ATOM 293 H MOL D 98 10.113 9.619 10.908 0.00 0.00 DUM +ATOM 294 H MOL D 98 10.172 9.684 12.536 0.00 0.00 DUM +ATOM 295 O MOL D 99 23.737 2.615 24.036 0.00 0.00 DUM +ATOM 296 H MOL D 99 23.777 1.575 24.124 0.00 0.00 DUM +ATOM 297 H MOL D 99 22.793 2.833 23.611 0.00 0.00 DUM +ATOM 298 O MOL D 100 24.265 2.543 0.646 0.00 0.00 DUM +ATOM 299 H MOL D 100 23.302 2.642 1.084 0.00 0.00 DUM +ATOM 300 H MOL D 100 24.136 2.515 -0.376 0.00 0.00 DUM +ATOM 301 O MOL D 101 3.331 11.696 10.459 0.00 0.00 DUM +ATOM 302 H MOL D 101 4.208 11.166 10.375 0.00 0.00 DUM +ATOM 303 H MOL D 101 2.773 11.196 11.149 0.00 0.00 DUM +ATOM 304 O MOL D 102 5.140 9.734 23.358 0.00 0.00 DUM +ATOM 305 H MOL D 102 5.863 9.473 24.031 0.00 0.00 DUM +ATOM 306 H MOL D 102 5.258 9.177 22.513 0.00 0.00 DUM +ATOM 307 O MOL D 103 20.060 18.617 9.565 0.00 0.00 DUM +ATOM 308 H MOL D 103 20.753 18.669 8.902 0.00 0.00 DUM +ATOM 309 H MOL D 103 19.488 19.404 9.409 0.00 0.00 DUM +ATOM 310 O MOL D 104 20.405 8.149 12.458 0.00 0.00 DUM +ATOM 311 H MOL D 104 20.148 7.203 12.627 0.00 0.00 DUM +ATOM 312 H MOL D 104 21.308 8.263 12.882 0.00 0.00 DUM +ATOM 313 O MOL D 105 22.704 10.223 20.168 0.00 0.00 DUM +ATOM 314 H MOL D 105 23.472 10.609 19.627 0.00 0.00 DUM +ATOM 315 H MOL D 105 23.177 9.401 20.627 0.00 0.00 DUM +ATOM 316 O MOL D 106 22.948 6.859 24.048 0.00 0.00 DUM +ATOM 317 H MOL D 106 23.479 7.666 24.242 0.00 0.00 DUM +ATOM 318 H MOL D 106 23.033 6.256 24.877 0.00 0.00 DUM +ATOM 319 O MOL D 107 7.276 9.430 25.228 0.00 0.00 DUM +ATOM 320 H MOL D 107 7.873 10.069 24.708 0.00 0.00 DUM +ATOM 321 H MOL D 107 7.866 8.617 25.400 0.00 0.00 DUM +ATOM 322 O MOL D 108 13.078 20.851 2.863 0.00 0.00 DUM +ATOM 323 H MOL D 108 13.848 20.360 3.298 0.00 0.00 DUM +ATOM 324 H MOL D 108 13.537 21.560 2.344 0.00 0.00 DUM +ATOM 325 O MOL D 109 1.561 7.296 2.442 0.00 0.00 DUM +ATOM 326 H MOL D 109 1.682 7.797 1.525 0.00 0.00 DUM +ATOM 327 H MOL D 109 2.138 6.465 2.327 0.00 0.00 DUM +ATOM 328 O MOL D 110 14.358 14.104 8.849 0.00 0.00 DUM +ATOM 329 H MOL D 110 13.873 14.903 9.295 0.00 0.00 DUM +ATOM 330 H MOL D 110 14.904 14.469 8.047 0.00 0.00 DUM +ATOM 331 O MOL D 111 17.442 24.538 22.556 0.00 0.00 DUM +ATOM 332 H MOL D 111 16.541 25.017 22.594 0.00 0.00 DUM +ATOM 333 H MOL D 111 17.797 24.373 23.517 0.00 0.00 DUM +ATOM 334 O MOL D 112 25.273 23.629 9.748 0.00 0.00 DUM +ATOM 335 H MOL D 112 25.791 24.122 9.031 0.00 0.00 DUM +ATOM 336 H MOL D 112 25.005 24.311 10.408 0.00 0.00 DUM +ATOM 337 O MOL D 113 25.621 6.009 8.106 0.00 0.00 DUM +ATOM 338 H MOL D 113 25.898 6.924 7.675 0.00 0.00 DUM +ATOM 339 H MOL D 113 24.632 5.825 8.054 0.00 0.00 DUM +ATOM 340 O MOL D 114 14.873 19.803 4.722 0.00 0.00 DUM +ATOM 341 H MOL D 114 14.769 20.621 5.366 0.00 0.00 DUM +ATOM 342 H MOL D 114 15.822 19.550 4.649 0.00 0.00 DUM +ATOM 343 O MOL D 115 16.216 19.523 1.504 0.00 0.00 DUM +ATOM 344 H MOL D 115 16.397 19.455 2.492 0.00 0.00 DUM +ATOM 345 H MOL D 115 16.112 20.518 1.266 0.00 0.00 DUM +ATOM 346 O MOL D 116 6.608 19.970 12.975 0.00 0.00 DUM +ATOM 347 H MOL D 116 6.654 20.149 13.907 0.00 0.00 DUM +ATOM 348 H MOL D 116 6.895 20.809 12.462 0.00 0.00 DUM +ATOM 349 O MOL D 117 12.477 1.055 12.511 0.00 0.00 DUM +ATOM 350 H MOL D 117 12.785 1.831 13.115 0.00 0.00 DUM +ATOM 351 H MOL D 117 12.905 1.174 11.627 0.00 0.00 DUM +ATOM 352 O MOL D 118 13.638 12.041 4.841 0.00 0.00 DUM +ATOM 353 H MOL D 118 14.093 11.637 4.046 0.00 0.00 DUM +ATOM 354 H MOL D 118 14.372 11.862 5.590 0.00 0.00 DUM +ATOM 355 O MOL D 119 8.392 12.412 10.115 0.00 0.00 DUM +ATOM 356 H MOL D 119 8.807 12.829 9.275 0.00 0.00 DUM +ATOM 357 H MOL D 119 8.803 11.573 10.385 0.00 0.00 DUM +ATOM 358 O MOL D 120 13.210 21.411 9.841 0.00 0.00 DUM +ATOM 359 H MOL D 120 12.476 21.818 9.290 0.00 0.00 DUM +ATOM 360 H MOL D 120 14.092 21.708 9.499 0.00 0.00 DUM +ATOM 361 O MOL D 121 8.047 3.456 12.686 0.00 0.00 DUM +ATOM 362 H MOL D 121 8.349 3.580 11.739 0.00 0.00 DUM +ATOM 363 H MOL D 121 7.316 2.792 12.552 0.00 0.00 DUM +ATOM 364 O MOL D 122 26.732 25.339 5.444 0.00 0.00 DUM +ATOM 365 H MOL D 122 26.428 25.542 6.416 0.00 0.00 DUM +ATOM 366 H MOL D 122 25.901 25.604 4.928 0.00 0.00 DUM +ATOM 367 O MOL D 123 1.282 14.855 15.144 0.00 0.00 DUM +ATOM 368 H MOL D 123 1.378 15.829 14.772 0.00 0.00 DUM +ATOM 369 H MOL D 123 2.085 14.345 14.821 0.00 0.00 DUM +ATOM 370 O MOL D 124 10.184 18.227 -0.385 0.00 0.00 DUM +ATOM 371 H MOL D 124 10.981 17.658 -0.828 0.00 0.00 DUM +ATOM 372 H MOL D 124 10.553 18.636 0.467 0.00 0.00 DUM +ATOM 373 O MOL D 125 20.594 24.920 20.477 0.00 0.00 DUM +ATOM 374 H MOL D 125 20.598 25.916 20.645 0.00 0.00 DUM +ATOM 375 H MOL D 125 19.634 24.607 20.398 0.00 0.00 DUM +ATOM 376 O MOL D 126 16.804 0.680 2.110 0.00 0.00 DUM +ATOM 377 H MOL D 126 17.422 1.310 2.554 0.00 0.00 DUM +ATOM 378 H MOL D 126 16.746 0.995 1.111 0.00 0.00 DUM +ATOM 379 O MOL D 127 12.533 11.710 10.619 0.00 0.00 DUM +ATOM 380 H MOL D 127 13.529 11.846 10.552 0.00 0.00 DUM +ATOM 381 H MOL D 127 12.251 11.954 11.579 0.00 0.00 DUM +ATOM 382 O MOL D 128 10.697 14.158 2.689 0.00 0.00 DUM +ATOM 383 H MOL D 128 11.384 13.911 3.425 0.00 0.00 DUM +ATOM 384 H MOL D 128 10.250 15.036 2.964 0.00 0.00 DUM +ATOM 385 O MOL D 129 14.584 6.628 22.547 0.00 0.00 DUM +ATOM 386 H MOL D 129 14.773 5.834 23.109 0.00 0.00 DUM +ATOM 387 H MOL D 129 14.065 7.239 23.164 0.00 0.00 DUM +ATOM 388 O MOL D 130 11.562 13.593 25.444 0.00 0.00 DUM +ATOM 389 H MOL D 130 11.781 13.290 24.499 0.00 0.00 DUM +ATOM 390 H MOL D 130 12.391 13.374 25.975 0.00 0.00 DUM +ATOM 391 O MOL D 131 0.016 17.177 6.472 0.00 0.00 DUM +ATOM 392 H MOL D 131 0.550 16.937 7.261 0.00 0.00 DUM +ATOM 393 H MOL D 131 0.644 17.120 5.638 0.00 0.00 DUM +ATOM 394 O MOL D 132 15.342 8.367 18.574 0.00 0.00 DUM +ATOM 395 H MOL D 132 14.582 7.872 18.982 0.00 0.00 DUM +ATOM 396 H MOL D 132 16.103 8.303 19.204 0.00 0.00 DUM +ATOM 397 O MOL D 133 1.327 25.752 15.901 0.00 0.00 DUM +ATOM 398 H MOL D 133 0.779 26.418 15.372 0.00 0.00 DUM +ATOM 399 H MOL D 133 1.696 25.029 15.244 0.00 0.00 DUM +ATOM 400 O MOL D 134 3.587 5.588 1.566 0.00 0.00 DUM +ATOM 401 H MOL D 134 4.266 6.293 1.522 0.00 0.00 DUM +ATOM 402 H MOL D 134 4.193 4.728 1.518 0.00 0.00 DUM +ATOM 403 O MOL D 135 13.466 18.779 14.679 0.00 0.00 DUM +ATOM 404 H MOL D 135 13.296 19.004 13.717 0.00 0.00 DUM +ATOM 405 H MOL D 135 13.318 19.651 15.183 0.00 0.00 DUM +ATOM 406 O MOL D 136 20.373 9.038 9.868 0.00 0.00 DUM +ATOM 407 H MOL D 136 19.601 9.515 9.423 0.00 0.00 DUM +ATOM 408 H MOL D 136 20.126 8.953 10.850 0.00 0.00 DUM +ATOM 409 O MOL D 137 1.926 1.273 18.096 0.00 0.00 DUM +ATOM 410 H MOL D 137 2.855 1.139 18.433 0.00 0.00 DUM +ATOM 411 H MOL D 137 1.819 0.671 17.302 0.00 0.00 DUM +ATOM 412 O MOL D 138 4.522 14.881 4.030 0.00 0.00 DUM +ATOM 413 H MOL D 138 4.849 15.316 3.179 0.00 0.00 DUM +ATOM 414 H MOL D 138 5.109 14.080 4.245 0.00 0.00 DUM +ATOM 415 O MOL D 139 25.374 13.469 10.833 0.00 0.00 DUM +ATOM 416 H MOL D 139 25.683 13.685 9.870 0.00 0.00 DUM +ATOM 417 H MOL D 139 24.366 13.350 10.886 0.00 0.00 DUM +ATOM 418 O MOL D 140 1.279 4.228 9.243 0.00 0.00 DUM +ATOM 419 H MOL D 140 0.695 4.849 8.692 0.00 0.00 DUM +ATOM 420 H MOL D 140 1.072 4.447 10.213 0.00 0.00 DUM +ATOM 421 O MOL D 141 16.656 20.096 8.416 0.00 0.00 DUM +ATOM 422 H MOL D 141 16.989 20.250 9.376 0.00 0.00 DUM +ATOM 423 H MOL D 141 16.465 21.020 7.995 0.00 0.00 DUM +ATOM 424 O MOL D 142 18.328 22.409 21.208 0.00 0.00 DUM +ATOM 425 H MOL D 142 17.623 22.371 20.499 0.00 0.00 DUM +ATOM 426 H MOL D 142 18.135 23.276 21.697 0.00 0.00 DUM +ATOM 427 O MOL D 143 6.973 2.411 8.981 0.00 0.00 DUM +ATOM 428 H MOL D 143 7.170 1.474 8.634 0.00 0.00 DUM +ATOM 429 H MOL D 143 6.877 2.934 8.166 0.00 0.00 DUM +ATOM 430 O MOL D 144 22.515 0.090 11.011 0.00 0.00 DUM +ATOM 431 H MOL D 144 21.692 -0.421 10.766 0.00 0.00 DUM +ATOM 432 H MOL D 144 22.784 0.702 10.260 0.00 0.00 DUM +ATOM 433 O MOL D 145 11.794 2.652 3.503 0.00 0.00 DUM +ATOM 434 H MOL D 145 11.373 2.303 4.385 0.00 0.00 DUM +ATOM 435 H MOL D 145 11.287 2.131 2.822 0.00 0.00 DUM +ATOM 436 O MOL D 146 3.617 23.012 25.652 0.00 0.00 DUM +ATOM 437 H MOL D 146 4.059 22.439 24.988 0.00 0.00 DUM +ATOM 438 H MOL D 146 4.144 23.864 25.699 0.00 0.00 DUM +ATOM 439 O MOL D 147 22.207 18.747 6.849 0.00 0.00 DUM +ATOM 440 H MOL D 147 22.097 19.571 6.284 0.00 0.00 DUM +ATOM 441 H MOL D 147 21.343 18.282 6.667 0.00 0.00 DUM +ATOM 442 O MOL D 148 12.137 7.504 16.151 0.00 0.00 DUM +ATOM 443 H MOL D 148 11.514 7.820 15.448 0.00 0.00 DUM +ATOM 444 H MOL D 148 12.718 8.270 16.408 0.00 0.00 DUM +ATOM 445 O MOL D 149 24.207 25.871 24.371 0.00 0.00 DUM +ATOM 446 H MOL D 149 23.804 25.055 24.691 0.00 0.00 DUM +ATOM 447 H MOL D 149 25.006 25.587 23.850 0.00 0.00 DUM +ATOM 448 O MOL D 150 0.584 1.867 2.365 0.00 0.00 DUM +ATOM 449 H MOL D 150 0.981 1.016 1.993 0.00 0.00 DUM +ATOM 450 H MOL D 150 0.038 2.269 1.615 0.00 0.00 DUM +ATOM 451 O MOL D 151 16.903 12.734 17.202 0.00 0.00 DUM +ATOM 452 H MOL D 151 17.567 13.476 17.041 0.00 0.00 DUM +ATOM 453 H MOL D 151 17.361 11.842 16.983 0.00 0.00 DUM +ATOM 454 O MOL D 152 14.457 8.215 10.949 0.00 0.00 DUM +ATOM 455 H MOL D 152 13.716 8.009 10.283 0.00 0.00 DUM +ATOM 456 H MOL D 152 15.081 7.495 10.682 0.00 0.00 DUM +ATOM 457 O MOL D 153 17.842 19.510 3.809 0.00 0.00 DUM +ATOM 458 H MOL D 153 18.229 19.734 4.717 0.00 0.00 DUM +ATOM 459 H MOL D 153 18.213 18.612 3.538 0.00 0.00 DUM +ATOM 460 O MOL D 154 5.240 11.647 13.330 0.00 0.00 DUM +ATOM 461 H MOL D 154 5.706 10.754 13.217 0.00 0.00 DUM +ATOM 462 H MOL D 154 5.676 12.184 12.570 0.00 0.00 DUM +ATOM 463 O MOL D 155 21.340 9.782 24.378 0.00 0.00 DUM +ATOM 464 H MOL D 155 22.295 9.738 24.614 0.00 0.00 DUM +ATOM 465 H MOL D 155 20.893 10.488 25.005 0.00 0.00 DUM +ATOM 466 O MOL D 156 20.631 0.747 24.832 0.00 0.00 DUM +ATOM 467 H MOL D 156 20.299 0.406 25.778 0.00 0.00 DUM +ATOM 468 H MOL D 156 20.946 -0.118 24.414 0.00 0.00 DUM +ATOM 469 O MOL D 157 9.372 15.735 8.722 0.00 0.00 DUM +ATOM 470 H MOL D 157 9.127 16.677 8.534 0.00 0.00 DUM +ATOM 471 H MOL D 157 10.364 15.663 8.616 0.00 0.00 DUM +ATOM 472 O MOL D 158 4.496 13.904 25.842 0.00 0.00 DUM +ATOM 473 H MOL D 158 3.590 13.530 25.752 0.00 0.00 DUM +ATOM 474 H MOL D 158 4.968 13.770 24.919 0.00 0.00 DUM +ATOM 475 O MOL D 159 2.252 23.941 14.067 0.00 0.00 DUM +ATOM 476 H MOL D 159 2.066 23.255 13.410 0.00 0.00 DUM +ATOM 477 H MOL D 159 2.903 23.547 14.757 0.00 0.00 DUM +ATOM 478 O MOL D 160 12.521 8.356 6.977 0.00 0.00 DUM +ATOM 479 H MOL D 160 12.139 7.653 7.603 0.00 0.00 DUM +ATOM 480 H MOL D 160 11.932 9.186 7.115 0.00 0.00 DUM +ATOM 481 O MOL D 161 8.440 5.622 3.195 0.00 0.00 DUM +ATOM 482 H MOL D 161 8.254 4.629 3.241 0.00 0.00 DUM +ATOM 483 H MOL D 161 7.651 6.126 3.568 0.00 0.00 DUM +ATOM 484 O MOL D 162 25.241 10.853 19.178 0.00 0.00 DUM +ATOM 485 H MOL D 162 25.588 11.772 19.355 0.00 0.00 DUM +ATOM 486 H MOL D 162 25.737 10.335 18.474 0.00 0.00 DUM +ATOM 487 O MOL D 163 10.628 16.441 4.116 0.00 0.00 DUM +ATOM 488 H MOL D 163 11.079 17.203 4.598 0.00 0.00 DUM +ATOM 489 H MOL D 163 11.076 15.555 4.453 0.00 0.00 DUM +ATOM 490 O MOL D 164 5.539 3.650 19.836 0.00 0.00 DUM +ATOM 491 H MOL D 164 5.538 4.664 19.489 0.00 0.00 DUM +ATOM 492 H MOL D 164 4.711 3.495 20.437 0.00 0.00 DUM +ATOM 493 O MOL D 165 9.705 1.975 21.864 0.00 0.00 DUM +ATOM 494 H MOL D 165 9.126 1.937 21.037 0.00 0.00 DUM +ATOM 495 H MOL D 165 9.709 2.979 22.127 0.00 0.00 DUM +ATOM 496 O MOL D 166 11.589 22.771 8.138 0.00 0.00 DUM +ATOM 497 H MOL D 166 11.127 22.022 7.642 0.00 0.00 DUM +ATOM 498 H MOL D 166 10.869 23.302 8.628 0.00 0.00 DUM +ATOM 499 O MOL D 167 3.376 10.463 4.775 0.00 0.00 DUM +ATOM 500 H MOL D 167 3.912 9.620 5.001 0.00 0.00 DUM +ATOM 501 H MOL D 167 3.724 11.180 5.409 0.00 0.00 DUM +ATOM 502 O MOL D 168 13.679 4.926 5.722 0.00 0.00 DUM +ATOM 503 H MOL D 168 14.328 5.730 5.676 0.00 0.00 DUM +ATOM 504 H MOL D 168 13.786 4.253 4.964 0.00 0.00 DUM +ATOM 505 O MOL D 169 2.789 8.303 17.260 0.00 0.00 DUM +ATOM 506 H MOL D 169 2.610 7.326 16.964 0.00 0.00 DUM +ATOM 507 H MOL D 169 1.853 8.791 17.305 0.00 0.00 DUM +ATOM 508 O MOL D 170 1.894 17.251 24.014 0.00 0.00 DUM +ATOM 509 H MOL D 170 1.194 17.789 23.560 0.00 0.00 DUM +ATOM 510 H MOL D 170 1.502 16.430 24.517 0.00 0.00 DUM +ATOM 511 O MOL D 171 16.952 4.511 7.433 0.00 0.00 DUM +ATOM 512 H MOL D 171 17.763 5.053 7.819 0.00 0.00 DUM +ATOM 513 H MOL D 171 16.452 5.094 6.771 0.00 0.00 DUM +ATOM 514 O MOL D 172 7.696 20.844 16.027 0.00 0.00 DUM +ATOM 515 H MOL D 172 8.546 21.236 15.643 0.00 0.00 DUM +ATOM 516 H MOL D 172 7.838 20.438 16.957 0.00 0.00 DUM +ATOM 517 O MOL D 173 14.995 2.353 21.355 0.00 0.00 DUM +ATOM 518 H MOL D 173 15.925 2.195 21.733 0.00 0.00 DUM +ATOM 519 H MOL D 173 15.144 2.214 20.338 0.00 0.00 DUM +ATOM 520 O MOL D 174 15.193 4.907 10.509 0.00 0.00 DUM +ATOM 521 H MOL D 174 15.118 4.062 9.973 0.00 0.00 DUM +ATOM 522 H MOL D 174 16.142 4.966 10.787 0.00 0.00 DUM +ATOM 523 O MOL D 175 6.357 7.145 3.683 0.00 0.00 DUM +ATOM 524 H MOL D 175 5.999 7.959 4.219 0.00 0.00 DUM +ATOM 525 H MOL D 175 5.877 6.230 3.981 0.00 0.00 DUM +ATOM 526 O MOL D 176 21.503 13.644 8.110 0.00 0.00 DUM +ATOM 527 H MOL D 176 20.522 13.860 8.352 0.00 0.00 DUM +ATOM 528 H MOL D 176 22.077 14.066 8.841 0.00 0.00 DUM +ATOM 529 O MOL D 177 21.156 5.141 20.193 0.00 0.00 DUM +ATOM 530 H MOL D 177 22.074 5.209 20.567 0.00 0.00 DUM +ATOM 531 H MOL D 177 21.174 4.565 19.360 0.00 0.00 DUM +ATOM 532 O MOL D 178 16.118 10.971 5.793 0.00 0.00 DUM +ATOM 533 H MOL D 178 17.047 11.168 6.138 0.00 0.00 DUM +ATOM 534 H MOL D 178 15.840 10.201 6.378 0.00 0.00 DUM +ATOM 535 O MOL D 179 18.655 6.493 3.443 0.00 0.00 DUM +ATOM 536 H MOL D 179 19.026 6.119 4.281 0.00 0.00 DUM +ATOM 537 H MOL D 179 18.171 5.779 2.927 0.00 0.00 DUM +ATOM 538 O MOL D 180 13.538 16.626 5.872 0.00 0.00 DUM +ATOM 539 H MOL D 180 14.533 16.819 5.612 0.00 0.00 DUM +ATOM 540 H MOL D 180 12.967 17.464 5.840 0.00 0.00 DUM +ATOM 541 O MOL D 181 6.738 6.740 11.378 0.00 0.00 DUM +ATOM 542 H MOL D 181 6.587 6.073 10.660 0.00 0.00 DUM +ATOM 543 H MOL D 181 7.757 6.752 11.527 0.00 0.00 DUM +ATOM 544 O MOL D 182 16.246 25.796 4.800 0.00 0.00 DUM +ATOM 545 H MOL D 182 16.280 26.009 3.842 0.00 0.00 DUM +ATOM 546 H MOL D 182 16.621 26.538 5.364 0.00 0.00 DUM +ATOM 547 O MOL D 183 13.167 19.356 11.821 0.00 0.00 DUM +ATOM 548 H MOL D 183 13.291 20.239 11.295 0.00 0.00 DUM +ATOM 549 H MOL D 183 12.156 19.161 11.886 0.00 0.00 DUM +ATOM 550 O MOL D 184 13.035 7.738 13.266 0.00 0.00 DUM +ATOM 551 H MOL D 184 13.129 6.776 13.455 0.00 0.00 DUM +ATOM 552 H MOL D 184 13.553 7.903 12.438 0.00 0.00 DUM +ATOM 553 O MOL D 185 24.945 25.544 11.961 0.00 0.00 DUM +ATOM 554 H MOL D 185 24.700 25.983 12.802 0.00 0.00 DUM +ATOM 555 H MOL D 185 23.995 25.629 11.434 0.00 0.00 DUM +ATOM 556 O MOL D 186 0.462 25.503 8.047 0.00 0.00 DUM +ATOM 557 H MOL D 186 1.105 25.502 8.852 0.00 0.00 DUM +ATOM 558 H MOL D 186 0.167 26.461 7.934 0.00 0.00 DUM +ATOM 559 O MOL D 187 3.411 24.214 7.007 0.00 0.00 DUM +ATOM 560 H MOL D 187 3.698 24.551 6.098 0.00 0.00 DUM +ATOM 561 H MOL D 187 2.662 24.846 7.324 0.00 0.00 DUM +ATOM 562 O MOL D 188 9.190 18.339 17.618 0.00 0.00 DUM +ATOM 563 H MOL D 188 9.159 17.871 16.683 0.00 0.00 DUM +ATOM 564 H MOL D 188 9.627 19.219 17.485 0.00 0.00 DUM +ATOM 565 O MOL D 189 16.585 12.203 23.458 0.00 0.00 DUM +ATOM 566 H MOL D 189 16.874 11.661 22.648 0.00 0.00 DUM +ATOM 567 H MOL D 189 16.553 11.581 24.203 0.00 0.00 DUM +ATOM 568 O MOL D 190 6.748 22.615 11.441 0.00 0.00 DUM +ATOM 569 H MOL D 190 7.277 23.336 11.955 0.00 0.00 DUM +ATOM 570 H MOL D 190 6.071 22.955 10.825 0.00 0.00 DUM +ATOM 571 O MOL D 191 24.597 18.436 14.308 0.00 0.00 DUM +ATOM 572 H MOL D 191 24.015 17.992 13.653 0.00 0.00 DUM +ATOM 573 H MOL D 191 24.993 19.241 13.796 0.00 0.00 DUM +ATOM 574 O MOL D 192 8.759 13.850 20.292 0.00 0.00 DUM +ATOM 575 H MOL D 192 8.770 13.108 19.560 0.00 0.00 DUM +ATOM 576 H MOL D 192 9.047 14.717 19.880 0.00 0.00 DUM +ATOM 577 O MOL D 193 22.351 24.873 7.745 0.00 0.00 DUM +ATOM 578 H MOL D 193 22.021 24.680 6.855 0.00 0.00 DUM +ATOM 579 H MOL D 193 22.447 23.963 8.240 0.00 0.00 DUM +ATOM 580 O MOL D 194 13.634 6.642 2.412 0.00 0.00 DUM +ATOM 581 H MOL D 194 13.626 7.476 2.975 0.00 0.00 DUM +ATOM 582 H MOL D 194 12.833 6.062 2.725 0.00 0.00 DUM +ATOM 583 O MOL D 195 8.251 24.790 25.655 0.00 0.00 DUM +ATOM 584 H MOL D 195 8.550 25.732 25.625 0.00 0.00 DUM +ATOM 585 H MOL D 195 9.036 24.150 25.767 0.00 0.00 DUM +ATOM 586 O MOL D 196 8.637 4.209 15.226 0.00 0.00 DUM +ATOM 587 H MOL D 196 8.467 3.860 14.303 0.00 0.00 DUM +ATOM 588 H MOL D 196 7.877 4.884 15.363 0.00 0.00 DUM +ATOM 589 O MOL D 197 22.757 12.520 25.992 0.00 0.00 DUM +ATOM 590 H MOL D 197 23.464 12.397 25.295 0.00 0.00 DUM +ATOM 591 H MOL D 197 22.821 13.454 26.443 0.00 0.00 DUM +ATOM 592 O MOL D 198 20.281 4.242 4.569 0.00 0.00 DUM +ATOM 593 H MOL D 198 21.124 4.375 5.118 0.00 0.00 DUM +ATOM 594 H MOL D 198 19.851 3.382 4.987 0.00 0.00 DUM +ATOM 595 O MOL D 199 20.829 5.141 26.721 0.00 0.00 DUM +ATOM 596 H MOL D 199 20.728 6.085 27.148 0.00 0.00 DUM +ATOM 597 H MOL D 199 20.205 5.095 25.948 0.00 0.00 DUM +ATOM 598 O MOL D 200 17.356 1.647 25.745 0.00 0.00 DUM +ATOM 599 H MOL D 200 18.274 1.987 25.591 0.00 0.00 DUM +ATOM 600 H MOL D 200 16.807 2.475 25.695 0.00 0.00 DUM +ATOM 601 O MOL D 201 7.635 24.934 12.322 0.00 0.00 DUM +ATOM 602 H MOL D 201 6.841 25.540 12.174 0.00 0.00 DUM +ATOM 603 H MOL D 201 8.396 25.527 12.575 0.00 0.00 DUM +ATOM 604 O MOL D 202 20.304 21.599 1.427 0.00 0.00 DUM +ATOM 605 H MOL D 202 20.178 21.798 2.440 0.00 0.00 DUM +ATOM 606 H MOL D 202 19.665 20.927 1.121 0.00 0.00 DUM +ATOM 607 O MOL D 203 5.193 25.003 0.556 0.00 0.00 DUM +ATOM 608 H MOL D 203 5.386 25.540 1.438 0.00 0.00 DUM +ATOM 609 H MOL D 203 6.078 24.576 0.326 0.00 0.00 DUM +ATOM 610 O MOL D 204 14.378 2.567 14.211 0.00 0.00 DUM +ATOM 611 H MOL D 204 14.430 1.965 15.047 0.00 0.00 DUM +ATOM 612 H MOL D 204 15.306 2.600 13.718 0.00 0.00 DUM +ATOM 613 O MOL D 205 3.763 5.881 23.772 0.00 0.00 DUM +ATOM 614 H MOL D 205 3.218 5.057 23.663 0.00 0.00 DUM +ATOM 615 H MOL D 205 4.703 5.563 23.799 0.00 0.00 DUM +ATOM 616 O MOL D 206 20.816 12.198 11.606 0.00 0.00 DUM +ATOM 617 H MOL D 206 20.391 11.779 12.437 0.00 0.00 DUM +ATOM 618 H MOL D 206 20.151 12.349 10.896 0.00 0.00 DUM +ATOM 619 O MOL D 207 17.769 8.038 6.869 0.00 0.00 DUM +ATOM 620 H MOL D 207 18.263 7.421 7.549 0.00 0.00 DUM +ATOM 621 H MOL D 207 17.045 8.553 7.349 0.00 0.00 DUM +ATOM 622 O MOL D 208 25.129 11.102 15.077 0.00 0.00 DUM +ATOM 623 H MOL D 208 25.523 10.675 15.881 0.00 0.00 DUM +ATOM 624 H MOL D 208 24.957 12.078 15.218 0.00 0.00 DUM +ATOM 625 O MOL D 209 5.400 4.707 4.706 0.00 0.00 DUM +ATOM 626 H MOL D 209 5.690 3.722 4.861 0.00 0.00 DUM +ATOM 627 H MOL D 209 5.271 5.046 5.644 0.00 0.00 DUM +ATOM 628 O MOL D 210 13.860 24.728 19.089 0.00 0.00 DUM +ATOM 629 H MOL D 210 14.117 25.603 18.601 0.00 0.00 DUM +ATOM 630 H MOL D 210 12.835 24.819 19.271 0.00 0.00 DUM +ATOM 631 O MOL D 211 4.549 15.742 9.034 0.00 0.00 DUM +ATOM 632 H MOL D 211 3.920 15.889 8.221 0.00 0.00 DUM +ATOM 633 H MOL D 211 5.065 14.941 8.842 0.00 0.00 DUM +ATOM 634 O MOL D 212 26.243 4.919 19.765 0.00 0.00 DUM +ATOM 635 H MOL D 212 25.967 4.309 20.613 0.00 0.00 DUM +ATOM 636 H MOL D 212 26.936 5.593 20.153 0.00 0.00 DUM +ATOM 637 O MOL D 213 17.902 9.878 9.281 0.00 0.00 DUM +ATOM 638 H MOL D 213 17.769 10.347 8.354 0.00 0.00 DUM +ATOM 639 H MOL D 213 17.310 10.280 9.951 0.00 0.00 DUM +ATOM 640 O MOL D 214 13.372 9.839 22.117 0.00 0.00 DUM +ATOM 641 H MOL D 214 14.351 9.796 22.011 0.00 0.00 DUM +ATOM 642 H MOL D 214 13.049 10.286 21.309 0.00 0.00 DUM +ATOM 643 O MOL D 215 16.572 4.122 26.099 0.00 0.00 DUM +ATOM 644 H MOL D 215 16.548 4.553 27.024 0.00 0.00 DUM +ATOM 645 H MOL D 215 15.772 4.516 25.634 0.00 0.00 DUM +ATOM 646 O MOL D 216 4.279 9.913 2.124 0.00 0.00 DUM +ATOM 647 H MOL D 216 3.818 10.258 2.981 0.00 0.00 DUM +ATOM 648 H MOL D 216 5.282 10.017 2.212 0.00 0.00 DUM +ATOM 649 O MOL D 217 14.028 5.186 15.892 0.00 0.00 DUM +ATOM 650 H MOL D 217 13.165 4.608 15.979 0.00 0.00 DUM +ATOM 651 H MOL D 217 13.684 6.111 16.025 0.00 0.00 DUM +ATOM 652 O MOL D 218 4.070 18.224 2.479 0.00 0.00 DUM +ATOM 653 H MOL D 218 4.635 17.440 2.277 0.00 0.00 DUM +ATOM 654 H MOL D 218 4.035 18.678 1.546 0.00 0.00 DUM +ATOM 655 O MOL D 219 22.690 15.504 9.813 0.00 0.00 DUM +ATOM 656 H MOL D 219 21.907 15.866 10.273 0.00 0.00 DUM +ATOM 657 H MOL D 219 23.116 16.197 9.243 0.00 0.00 DUM +ATOM 658 O MOL D 220 3.408 16.718 6.712 0.00 0.00 DUM +ATOM 659 H MOL D 220 3.658 17.647 6.860 0.00 0.00 DUM +ATOM 660 H MOL D 220 3.315 16.578 5.687 0.00 0.00 DUM +ATOM 661 O MOL D 221 3.325 7.441 6.956 0.00 0.00 DUM +ATOM 662 H MOL D 221 2.793 7.327 7.848 0.00 0.00 DUM +ATOM 663 H MOL D 221 2.647 7.690 6.193 0.00 0.00 DUM +ATOM 664 O MOL D 222 4.413 19.524 7.165 0.00 0.00 DUM +ATOM 665 H MOL D 222 4.023 20.459 7.029 0.00 0.00 DUM +ATOM 666 H MOL D 222 5.144 19.422 6.483 0.00 0.00 DUM +ATOM 667 O MOL D 223 17.884 16.250 24.718 0.00 0.00 DUM +ATOM 668 H MOL D 223 18.226 15.317 24.444 0.00 0.00 DUM +ATOM 669 H MOL D 223 17.144 16.496 24.095 0.00 0.00 DUM +ATOM 670 O MOL D 224 1.796 12.469 1.034 0.00 0.00 DUM +ATOM 671 H MOL D 224 2.021 12.670 2.022 0.00 0.00 DUM +ATOM 672 H MOL D 224 2.266 11.615 0.763 0.00 0.00 DUM +ATOM 673 O MOL D 225 23.383 21.695 10.803 0.00 0.00 DUM +ATOM 674 H MOL D 225 23.938 21.254 11.562 0.00 0.00 DUM +ATOM 675 H MOL D 225 24.109 22.256 10.381 0.00 0.00 DUM +ATOM 676 O MOL D 226 22.025 24.286 24.196 0.00 0.00 DUM +ATOM 677 H MOL D 226 21.855 23.862 23.292 0.00 0.00 DUM +ATOM 678 H MOL D 226 22.105 23.467 24.811 0.00 0.00 DUM +ATOM 679 O MOL D 227 20.023 1.459 5.215 0.00 0.00 DUM +ATOM 680 H MOL D 227 19.880 0.824 5.990 0.00 0.00 DUM +ATOM 681 H MOL D 227 21.064 1.537 5.095 0.00 0.00 DUM +ATOM 682 O MOL D 228 9.095 7.286 0.882 0.00 0.00 DUM +ATOM 683 H MOL D 228 8.644 6.662 1.537 0.00 0.00 DUM +ATOM 684 H MOL D 228 9.511 8.042 1.398 0.00 0.00 DUM +ATOM 685 O MOL D 229 14.947 16.456 12.968 0.00 0.00 DUM +ATOM 686 H MOL D 229 14.086 16.777 13.462 0.00 0.00 DUM +ATOM 687 H MOL D 229 15.676 17.064 13.185 0.00 0.00 DUM +ATOM 688 O MOL D 230 23.743 15.792 24.154 0.00 0.00 DUM +ATOM 689 H MOL D 230 23.002 15.240 23.726 0.00 0.00 DUM +ATOM 690 H MOL D 230 23.752 15.564 25.163 0.00 0.00 DUM +ATOM 691 O MOL D 231 0.526 1.915 12.022 0.00 0.00 DUM +ATOM 692 H MOL D 231 0.259 0.927 11.787 0.00 0.00 DUM +ATOM 693 H MOL D 231 0.152 2.542 11.310 0.00 0.00 DUM +ATOM 694 O MOL D 232 19.166 9.836 22.068 0.00 0.00 DUM +ATOM 695 H MOL D 232 19.670 10.248 21.296 0.00 0.00 DUM +ATOM 696 H MOL D 232 19.801 9.829 22.838 0.00 0.00 DUM +ATOM 697 O MOL D 233 25.820 4.749 11.337 0.00 0.00 DUM +ATOM 698 H MOL D 233 26.319 5.142 12.096 0.00 0.00 DUM +ATOM 699 H MOL D 233 24.855 4.846 11.510 0.00 0.00 DUM +ATOM 700 O MOL D 234 17.935 13.923 11.529 0.00 0.00 DUM +ATOM 701 H MOL D 234 18.068 14.861 11.931 0.00 0.00 DUM +ATOM 702 H MOL D 234 17.082 13.467 11.905 0.00 0.00 DUM +ATOM 703 O MOL D 235 16.362 5.362 14.213 0.00 0.00 DUM +ATOM 704 H MOL D 235 16.336 6.390 14.316 0.00 0.00 DUM +ATOM 705 H MOL D 235 15.583 5.039 14.785 0.00 0.00 DUM +ATOM 706 O MOL D 236 11.361 4.135 15.670 0.00 0.00 DUM +ATOM 707 H MOL D 236 10.454 4.490 15.396 0.00 0.00 DUM +ATOM 708 H MOL D 236 11.668 3.579 14.859 0.00 0.00 DUM +ATOM 709 O MOL D 237 18.959 4.070 24.592 0.00 0.00 DUM +ATOM 710 H MOL D 237 19.409 4.737 24.007 0.00 0.00 DUM +ATOM 711 H MOL D 237 18.160 4.534 24.973 0.00 0.00 DUM +ATOM 712 O MOL D 238 6.375 13.339 11.635 0.00 0.00 DUM +ATOM 713 H MOL D 238 6.286 14.346 11.590 0.00 0.00 DUM +ATOM 714 H MOL D 238 7.194 13.097 11.100 0.00 0.00 DUM +ATOM 715 O MOL D 239 10.119 20.552 6.703 0.00 0.00 DUM +ATOM 716 H MOL D 239 9.268 20.718 6.141 0.00 0.00 DUM +ATOM 717 H MOL D 239 9.865 20.176 7.616 0.00 0.00 DUM +ATOM 718 O MOL D 240 12.712 6.630 9.494 0.00 0.00 DUM +ATOM 719 H MOL D 240 13.095 5.891 8.910 0.00 0.00 DUM +ATOM 720 H MOL D 240 11.985 6.275 10.098 0.00 0.00 DUM +ATOM 721 O MOL D 241 18.572 20.346 25.645 0.00 0.00 DUM +ATOM 722 H MOL D 241 17.853 19.717 25.962 0.00 0.00 DUM +ATOM 723 H MOL D 241 19.080 19.968 24.852 0.00 0.00 DUM +ATOM 724 O MOL D 242 20.658 0.628 16.003 0.00 0.00 DUM +ATOM 725 H MOL D 242 19.737 0.993 16.232 0.00 0.00 DUM +ATOM 726 H MOL D 242 21.400 0.956 16.651 0.00 0.00 DUM +ATOM 727 O MOL D 243 26.143 7.512 12.474 0.00 0.00 DUM +ATOM 728 H MOL D 243 27.175 7.634 12.452 0.00 0.00 DUM +ATOM 729 H MOL D 243 25.693 7.697 11.546 0.00 0.00 DUM +ATOM 730 O MOL D 244 10.842 18.552 9.413 0.00 0.00 DUM +ATOM 731 H MOL D 244 9.884 18.248 9.326 0.00 0.00 DUM +ATOM 732 H MOL D 244 11.472 17.837 9.012 0.00 0.00 DUM +ATOM 733 O MOL D 245 25.018 13.797 15.599 0.00 0.00 DUM +ATOM 734 H MOL D 245 25.898 14.204 15.316 0.00 0.00 DUM +ATOM 735 H MOL D 245 24.810 14.031 16.562 0.00 0.00 DUM +ATOM 736 O MOL D 246 21.689 4.517 16.403 0.00 0.00 DUM +ATOM 737 H MOL D 246 20.909 4.310 15.768 0.00 0.00 DUM +ATOM 738 H MOL D 246 22.511 4.354 15.870 0.00 0.00 DUM +ATOM 739 O MOL D 247 22.982 25.279 19.151 0.00 0.00 DUM +ATOM 740 H MOL D 247 23.453 24.627 19.743 0.00 0.00 DUM +ATOM 741 H MOL D 247 22.017 25.212 19.503 0.00 0.00 DUM +ATOM 742 O MOL D 248 10.608 6.518 20.565 0.00 0.00 DUM +ATOM 743 H MOL D 248 10.617 6.261 19.561 0.00 0.00 DUM +ATOM 744 H MOL D 248 9.804 7.162 20.572 0.00 0.00 DUM +ATOM 745 O MOL D 249 11.981 24.202 22.750 0.00 0.00 DUM +ATOM 746 H MOL D 249 12.043 25.046 22.180 0.00 0.00 DUM +ATOM 747 H MOL D 249 12.348 23.369 22.274 0.00 0.00 DUM +ATOM 748 O MOL D 250 15.003 22.218 6.050 0.00 0.00 DUM +ATOM 749 H MOL D 250 15.825 22.708 6.533 0.00 0.00 DUM +ATOM 750 H MOL D 250 14.105 22.724 6.125 0.00 0.00 DUM +ATOM 751 O MOL D 251 26.297 20.568 23.133 0.00 0.00 DUM +ATOM 752 H MOL D 251 25.891 20.730 22.197 0.00 0.00 DUM +ATOM 753 H MOL D 251 25.870 19.705 23.456 0.00 0.00 DUM +ATOM 754 O MOL D 252 18.760 11.415 6.854 0.00 0.00 DUM +ATOM 755 H MOL D 252 19.004 12.224 7.465 0.00 0.00 DUM +ATOM 756 H MOL D 252 19.535 10.965 6.504 0.00 0.00 DUM +ATOM 757 O MOL D 253 18.551 21.061 10.029 0.00 0.00 DUM +ATOM 758 H MOL D 253 18.609 21.823 9.348 0.00 0.00 DUM +ATOM 759 H MOL D 253 19.294 21.171 10.774 0.00 0.00 DUM +ATOM 760 O MOL D 254 22.454 7.292 16.574 0.00 0.00 DUM +ATOM 761 H MOL D 254 22.220 6.294 16.404 0.00 0.00 DUM +ATOM 762 H MOL D 254 23.141 7.325 17.263 0.00 0.00 DUM +ATOM 763 O MOL D 255 17.897 -0.499 20.076 0.00 0.00 DUM +ATOM 764 H MOL D 255 18.121 0.477 19.958 0.00 0.00 DUM +ATOM 765 H MOL D 255 17.465 -0.672 20.986 0.00 0.00 DUM +ATOM 766 O MOL D 256 5.198 26.504 3.105 0.00 0.00 DUM +ATOM 767 H MOL D 256 4.595 25.769 3.472 0.00 0.00 DUM +ATOM 768 H MOL D 256 4.586 27.287 2.927 0.00 0.00 DUM +ATOM 769 O MOL D 257 15.819 24.270 11.785 0.00 0.00 DUM +ATOM 770 H MOL D 257 15.115 24.216 12.463 0.00 0.00 DUM +ATOM 771 H MOL D 257 16.215 25.204 11.819 0.00 0.00 DUM +ATOM 772 O MOL D 258 4.211 1.161 25.064 0.00 0.00 DUM +ATOM 773 H MOL D 258 4.968 1.853 24.807 0.00 0.00 DUM +ATOM 774 H MOL D 258 4.690 0.442 25.579 0.00 0.00 DUM +ATOM 775 O MOL D 259 12.645 4.253 8.017 0.00 0.00 DUM +ATOM 776 H MOL D 259 12.927 4.505 7.061 0.00 0.00 DUM +ATOM 777 H MOL D 259 13.074 3.431 8.344 0.00 0.00 DUM +ATOM 778 O MOL D 260 23.100 11.662 10.458 0.00 0.00 DUM +ATOM 779 H MOL D 260 22.917 11.294 9.542 0.00 0.00 DUM +ATOM 780 H MOL D 260 22.211 11.847 10.881 0.00 0.00 DUM +ATOM 781 O MOL D 261 22.053 1.470 13.794 0.00 0.00 DUM +ATOM 782 H MOL D 261 22.116 0.824 13.048 0.00 0.00 DUM +ATOM 783 H MOL D 261 21.397 1.084 14.466 0.00 0.00 DUM +ATOM 784 O MOL D 262 25.968 9.026 16.855 0.00 0.00 DUM +ATOM 785 H MOL D 262 25.318 8.722 17.531 0.00 0.00 DUM +ATOM 786 H MOL D 262 25.851 8.544 15.977 0.00 0.00 DUM +ATOM 787 O MOL D 263 14.872 15.185 2.615 0.00 0.00 DUM +ATOM 788 H MOL D 263 15.254 15.696 1.852 0.00 0.00 DUM +ATOM 789 H MOL D 263 14.336 14.427 2.189 0.00 0.00 DUM +ATOM 790 O MOL D 264 18.739 3.852 15.745 0.00 0.00 DUM +ATOM 791 H MOL D 264 18.780 3.077 16.452 0.00 0.00 DUM +ATOM 792 H MOL D 264 17.779 4.211 15.566 0.00 0.00 DUM +ATOM 793 O MOL D 265 14.118 6.785 -0.502 0.00 0.00 DUM +ATOM 794 H MOL D 265 14.231 7.814 -0.543 0.00 0.00 DUM +ATOM 795 H MOL D 265 13.895 6.539 0.488 0.00 0.00 DUM +ATOM 796 O MOL D 266 16.862 1.707 7.061 0.00 0.00 DUM +ATOM 797 H MOL D 266 16.028 1.689 7.647 0.00 0.00 DUM +ATOM 798 H MOL D 266 17.014 2.719 7.128 0.00 0.00 DUM +ATOM 799 O MOL D 267 0.318 9.114 22.894 0.00 0.00 DUM +ATOM 800 H MOL D 267 0.858 8.538 23.537 0.00 0.00 DUM +ATOM 801 H MOL D 267 0.860 9.962 22.678 0.00 0.00 DUM +ATOM 802 O MOL D 268 16.320 22.372 1.481 0.00 0.00 DUM +ATOM 803 H MOL D 268 16.607 22.756 2.400 0.00 0.00 DUM +ATOM 804 H MOL D 268 17.098 22.465 0.794 0.00 0.00 DUM +ATOM 805 O MOL D 269 4.938 22.488 2.732 0.00 0.00 DUM +ATOM 806 H MOL D 269 5.878 22.837 2.590 0.00 0.00 DUM +ATOM 807 H MOL D 269 4.437 23.236 3.200 0.00 0.00 DUM +ATOM 808 O MOL D 270 21.785 2.793 1.367 0.00 0.00 DUM +ATOM 809 H MOL D 270 21.165 2.032 1.563 0.00 0.00 DUM +ATOM 810 H MOL D 270 21.178 3.572 1.169 0.00 0.00 DUM +ATOM 811 O MOL D 271 5.952 15.954 11.532 0.00 0.00 DUM +ATOM 812 H MOL D 271 5.494 16.047 10.641 0.00 0.00 DUM +ATOM 813 H MOL D 271 5.270 15.965 12.276 0.00 0.00 DUM +ATOM 814 O MOL D 272 17.947 7.049 10.761 0.00 0.00 DUM +ATOM 815 H MOL D 272 17.822 8.017 10.582 0.00 0.00 DUM +ATOM 816 H MOL D 272 18.491 6.854 11.606 0.00 0.00 DUM +ATOM 817 O MOL D 273 8.732 13.666 23.072 0.00 0.00 DUM +ATOM 818 H MOL D 273 9.530 14.203 23.339 0.00 0.00 DUM +ATOM 819 H MOL D 273 8.725 13.765 22.129 0.00 0.00 DUM +ATOM 820 O MOL D 274 3.619 18.361 9.483 0.00 0.00 DUM +ATOM 821 H MOL D 274 4.144 17.515 9.303 0.00 0.00 DUM +ATOM 822 H MOL D 274 3.519 18.925 8.650 0.00 0.00 DUM +ATOM 823 O MOL D 275 12.111 17.165 24.017 0.00 0.00 DUM +ATOM 824 H MOL D 275 12.484 16.355 24.473 0.00 0.00 DUM +ATOM 825 H MOL D 275 11.657 16.977 23.162 0.00 0.00 DUM +ATOM 826 O MOL D 276 11.915 18.786 5.633 0.00 0.00 DUM +ATOM 827 H MOL D 276 12.687 19.324 5.215 0.00 0.00 DUM +ATOM 828 H MOL D 276 11.313 19.445 6.110 0.00 0.00 DUM +ATOM 829 O MOL D 277 12.856 9.464 3.095 0.00 0.00 DUM +ATOM 830 H MOL D 277 12.414 8.970 3.875 0.00 0.00 DUM +ATOM 831 H MOL D 277 12.237 9.331 2.331 0.00 0.00 DUM +ATOM 832 O MOL D 278 17.463 9.093 16.726 0.00 0.00 DUM +ATOM 833 H MOL D 278 18.408 9.185 16.997 0.00 0.00 DUM +ATOM 834 H MOL D 278 16.914 8.720 17.560 0.00 0.00 DUM +ATOM 835 O MOL D 279 20.915 21.478 11.614 0.00 0.00 DUM +ATOM 836 H MOL D 279 21.890 21.573 11.298 0.00 0.00 DUM +ATOM 837 H MOL D 279 20.805 20.521 11.903 0.00 0.00 DUM +ATOM 838 O MOL D 280 1.397 13.680 22.869 0.00 0.00 DUM +ATOM 839 H MOL D 280 1.895 12.807 22.632 0.00 0.00 DUM +ATOM 840 H MOL D 280 0.507 13.703 22.394 0.00 0.00 DUM +ATOM 841 O MOL D 281 11.216 25.261 19.087 0.00 0.00 DUM +ATOM 842 H MOL D 281 10.588 25.812 18.536 0.00 0.00 DUM +ATOM 843 H MOL D 281 11.526 25.839 19.841 0.00 0.00 DUM +ATOM 844 O MOL D 282 7.988 14.189 3.873 0.00 0.00 DUM +ATOM 845 H MOL D 282 8.210 14.821 3.171 0.00 0.00 DUM +ATOM 846 H MOL D 282 7.316 13.485 3.519 0.00 0.00 DUM +ATOM 847 O MOL D 283 7.982 21.314 5.065 0.00 0.00 DUM +ATOM 848 H MOL D 283 7.013 20.923 4.895 0.00 0.00 DUM +ATOM 849 H MOL D 283 8.383 21.546 4.134 0.00 0.00 DUM +ATOM 850 O MOL D 284 8.046 13.581 6.456 0.00 0.00 DUM +ATOM 851 H MOL D 284 7.945 13.953 5.491 0.00 0.00 DUM +ATOM 852 H MOL D 284 8.705 14.223 7.003 0.00 0.00 DUM +ATOM 853 O MOL D 285 3.622 2.626 2.904 0.00 0.00 DUM +ATOM 854 H MOL D 285 2.809 2.504 2.306 0.00 0.00 DUM +ATOM 855 H MOL D 285 3.362 3.289 3.563 0.00 0.00 DUM +ATOM 856 O MOL D 286 8.885 18.873 3.674 0.00 0.00 DUM +ATOM 857 H MOL D 286 8.604 17.906 3.787 0.00 0.00 DUM +ATOM 858 H MOL D 286 8.644 19.263 4.610 0.00 0.00 DUM +ATOM 859 O MOL D 287 3.057 2.067 9.370 0.00 0.00 DUM +ATOM 860 H MOL D 287 2.478 2.860 9.030 0.00 0.00 DUM +ATOM 861 H MOL D 287 3.437 1.616 8.544 0.00 0.00 DUM +ATOM 862 O MOL D 288 11.628 14.305 16.598 0.00 0.00 DUM +ATOM 863 H MOL D 288 12.269 14.991 16.178 0.00 0.00 DUM +ATOM 864 H MOL D 288 10.916 14.277 15.932 0.00 0.00 DUM +ATOM 865 O MOL D 289 19.294 22.069 7.752 0.00 0.00 DUM +ATOM 866 H MOL D 289 20.332 22.170 7.778 0.00 0.00 DUM +ATOM 867 H MOL D 289 19.174 21.128 7.310 0.00 0.00 DUM +ATOM 868 O MOL D 290 11.217 5.386 3.140 0.00 0.00 DUM +ATOM 869 H MOL D 290 11.136 4.605 3.784 0.00 0.00 DUM +ATOM 870 H MOL D 290 10.277 5.723 3.036 0.00 0.00 DUM +ATOM 871 O MOL D 291 11.225 5.240 11.246 0.00 0.00 DUM +ATOM 872 H MOL D 291 10.884 4.401 10.786 0.00 0.00 DUM +ATOM 873 H MOL D 291 12.034 4.935 11.775 0.00 0.00 DUM +ATOM 874 O MOL D 292 0.523 13.159 19.927 0.00 0.00 DUM +ATOM 875 H MOL D 292 0.331 13.690 20.774 0.00 0.00 DUM +ATOM 876 H MOL D 292 0.651 13.804 19.097 0.00 0.00 DUM +ATOM 877 O MOL D 293 4.319 1.837 6.913 0.00 0.00 DUM +ATOM 878 H MOL D 293 3.613 2.418 6.552 0.00 0.00 DUM +ATOM 879 H MOL D 293 5.194 2.245 6.662 0.00 0.00 DUM +ATOM 880 O MOL D 294 1.964 21.878 12.207 0.00 0.00 DUM +ATOM 881 H MOL D 294 2.807 21.250 12.098 0.00 0.00 DUM +ATOM 882 H MOL D 294 1.524 21.958 11.260 0.00 0.00 DUM +ATOM 883 O MOL D 295 10.938 23.378 25.393 0.00 0.00 DUM +ATOM 884 H MOL D 295 11.238 23.607 24.462 0.00 0.00 DUM +ATOM 885 H MOL D 295 10.444 22.508 25.391 0.00 0.00 DUM +ATOM 886 O MOL D 296 21.634 12.406 3.837 0.00 0.00 DUM +ATOM 887 H MOL D 296 21.238 11.654 4.393 0.00 0.00 DUM +ATOM 888 H MOL D 296 22.087 13.070 4.484 0.00 0.00 DUM +ATOM 889 O MOL D 297 14.948 24.864 1.117 0.00 0.00 DUM +ATOM 890 H MOL D 297 15.175 23.908 1.318 0.00 0.00 DUM +ATOM 891 H MOL D 297 15.553 25.493 1.665 0.00 0.00 DUM +ATOM 892 O MOL D 298 5.912 13.098 23.633 0.00 0.00 DUM +ATOM 893 H MOL D 298 5.376 12.769 22.816 0.00 0.00 DUM +ATOM 894 H MOL D 298 6.865 13.145 23.362 0.00 0.00 DUM +ATOM 895 O MOL D 299 20.459 5.456 22.799 0.00 0.00 DUM +ATOM 896 H MOL D 299 20.475 5.139 21.811 0.00 0.00 DUM +ATOM 897 H MOL D 299 21.097 6.211 22.869 0.00 0.00 DUM +ATOM 898 O MOL D 300 24.062 9.119 4.305 0.00 0.00 DUM +ATOM 899 H MOL D 300 23.509 9.642 3.641 0.00 0.00 DUM +ATOM 900 H MOL D 300 24.232 8.195 3.819 0.00 0.00 DUM +ATOM 901 O MOL D 301 8.977 2.525 17.274 0.00 0.00 DUM +ATOM 902 H MOL D 301 8.994 1.669 16.713 0.00 0.00 DUM +ATOM 903 H MOL D 301 8.881 3.295 16.617 0.00 0.00 DUM +ATOM 904 O MOL D 302 1.278 0.276 20.651 0.00 0.00 DUM +ATOM 905 H MOL D 302 1.355 0.594 19.706 0.00 0.00 DUM +ATOM 906 H MOL D 302 1.895 0.836 21.191 0.00 0.00 DUM +ATOM 907 O MOL D 303 1.093 21.437 9.679 0.00 0.00 DUM +ATOM 908 H MOL D 303 0.525 22.302 9.675 0.00 0.00 DUM +ATOM 909 H MOL D 303 0.465 20.660 9.399 0.00 0.00 DUM +ATOM 910 O MOL D 304 15.115 1.759 18.579 0.00 0.00 DUM +ATOM 911 H MOL D 304 14.991 1.359 17.652 0.00 0.00 DUM +ATOM 912 H MOL D 304 15.008 2.806 18.472 0.00 0.00 DUM +ATOM 913 O MOL D 305 14.324 26.535 25.037 0.00 0.00 DUM +ATOM 914 H MOL D 305 14.783 26.218 24.198 0.00 0.00 DUM +ATOM 915 H MOL D 305 14.596 25.876 25.763 0.00 0.00 DUM +ATOM 916 O MOL D 306 15.935 4.980 2.797 0.00 0.00 DUM +ATOM 917 H MOL D 306 15.137 5.593 2.731 0.00 0.00 DUM +ATOM 918 H MOL D 306 15.505 4.054 2.864 0.00 0.00 DUM +ATOM 919 O MOL D 307 14.116 3.135 24.035 0.00 0.00 DUM +ATOM 920 H MOL D 307 14.558 2.904 23.147 0.00 0.00 DUM +ATOM 921 H MOL D 307 14.274 2.373 24.693 0.00 0.00 DUM +ATOM 922 O MOL D 308 7.253 6.675 14.608 0.00 0.00 DUM +ATOM 923 H MOL D 308 7.737 6.313 13.803 0.00 0.00 DUM +ATOM 924 H MOL D 308 6.864 7.574 14.410 0.00 0.00 DUM +ATOM 925 O MOL D 309 23.081 12.043 22.392 0.00 0.00 DUM +ATOM 926 H MOL D 309 22.924 11.758 21.463 0.00 0.00 DUM +ATOM 927 H MOL D 309 23.131 11.196 22.941 0.00 0.00 DUM +ATOM 928 O MOL D 310 9.979 3.688 0.782 0.00 0.00 DUM +ATOM 929 H MOL D 310 10.159 2.924 1.427 0.00 0.00 DUM +ATOM 930 H MOL D 310 10.312 4.539 1.244 0.00 0.00 DUM +ATOM 931 O MOL D 311 6.957 9.538 12.590 0.00 0.00 DUM +ATOM 932 H MOL D 311 7.778 10.148 12.342 0.00 0.00 DUM +ATOM 933 H MOL D 311 7.151 8.608 12.294 0.00 0.00 DUM +ATOM 934 O MOL D 312 8.599 9.777 4.866 0.00 0.00 DUM +ATOM 935 H MOL D 312 8.897 8.848 4.525 0.00 0.00 DUM +ATOM 936 H MOL D 312 9.435 10.339 5.087 0.00 0.00 DUM +ATOM 937 O MOL D 313 16.746 8.884 -0.404 0.00 0.00 DUM +ATOM 938 H MOL D 313 17.159 9.191 0.484 0.00 0.00 DUM +ATOM 939 H MOL D 313 15.755 9.254 -0.441 0.00 0.00 DUM +ATOM 940 O MOL D 314 24.869 22.928 0.247 0.00 0.00 DUM +ATOM 941 H MOL D 314 24.544 23.660 0.852 0.00 0.00 DUM +ATOM 942 H MOL D 314 23.998 22.439 0.001 0.00 0.00 DUM +ATOM 943 O MOL D 315 13.543 24.988 13.743 0.00 0.00 DUM +ATOM 944 H MOL D 315 13.172 25.817 13.267 0.00 0.00 DUM +ATOM 945 H MOL D 315 12.916 24.207 13.603 0.00 0.00 DUM +ATOM 946 O MOL D 316 24.213 25.793 4.229 0.00 0.00 DUM +ATOM 947 H MOL D 316 23.937 24.814 4.343 0.00 0.00 DUM +ATOM 948 H MOL D 316 24.140 25.961 3.186 0.00 0.00 DUM +ATOM 949 O MOL D 317 10.350 4.613 22.329 0.00 0.00 DUM +ATOM 950 H MOL D 317 11.205 4.757 22.833 0.00 0.00 DUM +ATOM 951 H MOL D 317 10.427 5.242 21.548 0.00 0.00 DUM +ATOM 952 O MOL D 318 1.552 1.406 24.756 0.00 0.00 DUM +ATOM 953 H MOL D 318 1.183 0.489 24.955 0.00 0.00 DUM +ATOM 954 H MOL D 318 2.536 1.283 24.752 0.00 0.00 DUM +ATOM 955 O MOL D 319 7.096 24.295 3.388 0.00 0.00 DUM +ATOM 956 H MOL D 319 6.851 25.282 3.319 0.00 0.00 DUM +ATOM 957 H MOL D 319 8.091 24.278 3.314 0.00 0.00 DUM +ATOM 958 O MOL D 320 20.118 17.809 24.963 0.00 0.00 DUM +ATOM 959 H MOL D 320 19.391 17.152 24.712 0.00 0.00 DUM +ATOM 960 H MOL D 320 20.650 17.340 25.674 0.00 0.00 DUM +ATOM 961 O MOL D 321 17.385 2.204 22.851 0.00 0.00 DUM +ATOM 962 H MOL D 321 17.863 2.620 23.622 0.00 0.00 DUM +ATOM 963 H MOL D 321 18.109 1.613 22.448 0.00 0.00 DUM +ATOM 964 O MOL D 322 7.303 10.957 6.932 0.00 0.00 DUM +ATOM 965 H MOL D 322 7.513 11.970 6.981 0.00 0.00 DUM +ATOM 966 H MOL D 322 7.804 10.715 6.035 0.00 0.00 DUM +ATOM 967 O MOL D 323 24.007 17.309 8.263 0.00 0.00 DUM +ATOM 968 H MOL D 323 24.840 17.405 7.706 0.00 0.00 DUM +ATOM 969 H MOL D 323 23.276 17.717 7.617 0.00 0.00 DUM +ATOM 970 O MOL D 324 15.596 17.112 23.523 0.00 0.00 DUM +ATOM 971 H MOL D 324 15.385 17.244 22.545 0.00 0.00 DUM +ATOM 972 H MOL D 324 14.977 17.720 24.038 0.00 0.00 DUM +ATOM 973 O MOL D 325 8.883 21.906 2.388 0.00 0.00 DUM +ATOM 974 H MOL D 325 9.501 22.747 2.308 0.00 0.00 DUM +ATOM 975 H MOL D 325 9.460 21.110 2.266 0.00 0.00 DUM +ATOM 976 O MOL D 326 12.533 23.673 1.660 0.00 0.00 DUM +ATOM 977 H MOL D 326 11.990 23.454 0.788 0.00 0.00 DUM +ATOM 978 H MOL D 326 13.223 24.387 1.366 0.00 0.00 DUM +ATOM 979 O MOL D 327 19.901 24.103 11.420 0.00 0.00 DUM +ATOM 980 H MOL D 327 20.230 23.119 11.443 0.00 0.00 DUM +ATOM 981 H MOL D 327 19.830 24.451 12.383 0.00 0.00 DUM +ATOM 982 O MOL D 328 6.437 17.463 17.097 0.00 0.00 DUM +ATOM 983 H MOL D 328 7.452 17.546 17.124 0.00 0.00 DUM +ATOM 984 H MOL D 328 6.223 16.659 16.430 0.00 0.00 DUM +ATOM 985 O MOL D 329 23.384 16.844 12.405 0.00 0.00 DUM +ATOM 986 H MOL D 329 24.232 16.543 12.002 0.00 0.00 DUM +ATOM 987 H MOL D 329 22.700 16.080 12.359 0.00 0.00 DUM +ATOM 988 O MOL D 330 19.681 7.354 25.402 0.00 0.00 DUM +ATOM 989 H MOL D 330 20.275 8.014 24.855 0.00 0.00 DUM +ATOM 990 H MOL D 330 20.067 7.481 26.329 0.00 0.00 DUM +ATOM 991 O MOL D 331 15.101 9.072 7.569 0.00 0.00 DUM +ATOM 992 H MOL D 331 14.830 9.965 8.000 0.00 0.00 DUM +ATOM 993 H MOL D 331 14.265 8.586 7.272 0.00 0.00 DUM +ATOM 994 O MOL D 332 1.915 7.615 24.649 0.00 0.00 DUM +ATOM 995 H MOL D 332 2.492 8.432 24.899 0.00 0.00 DUM +ATOM 996 H MOL D 332 2.626 6.875 24.583 0.00 0.00 DUM +ATOM 997 O MOL D 333 10.208 5.693 7.315 0.00 0.00 DUM +ATOM 998 H MOL D 333 10.848 4.930 7.370 0.00 0.00 DUM +ATOM 999 H MOL D 333 9.333 5.552 7.826 0.00 0.00 DUM +ATOM 1000 O MOL D 334 22.951 5.549 7.940 0.00 0.00 DUM +ATOM 1001 H MOL D 334 22.400 4.708 8.039 0.00 0.00 DUM +ATOM 1002 H MOL D 334 22.778 6.129 8.757 0.00 0.00 DUM +ATOM 1003 O MOL D 335 14.880 4.323 18.207 0.00 0.00 DUM +ATOM 1004 H MOL D 335 14.669 4.739 17.303 0.00 0.00 DUM +ATOM 1005 H MOL D 335 14.772 5.128 18.840 0.00 0.00 DUM +ATOM 1006 O MOL D 336 3.390 24.728 3.977 0.00 0.00 DUM +ATOM 1007 H MOL D 336 2.753 24.577 3.197 0.00 0.00 DUM +ATOM 1008 H MOL D 336 2.770 25.068 4.714 0.00 0.00 DUM +ATOM 1009 O MOL D 337 6.058 2.939 24.455 0.00 0.00 DUM +ATOM 1010 H MOL D 337 6.421 3.623 23.826 0.00 0.00 DUM +ATOM 1011 H MOL D 337 6.866 2.459 24.847 0.00 0.00 DUM +ATOM 1012 O MOL D 338 21.615 22.781 21.730 0.00 0.00 DUM +ATOM 1013 H MOL D 338 21.313 23.691 21.378 0.00 0.00 DUM +ATOM 1014 H MOL D 338 20.886 22.068 21.606 0.00 0.00 DUM +ATOM 1015 O MOL D 339 21.024 18.668 12.519 0.00 0.00 DUM +ATOM 1016 H MOL D 339 20.531 18.448 11.613 0.00 0.00 DUM +ATOM 1017 H MOL D 339 21.790 18.042 12.707 0.00 0.00 DUM +ATOM 1018 O MOL D 340 17.150 3.326 12.438 0.00 0.00 DUM +ATOM 1019 H MOL D 340 18.108 3.018 12.614 0.00 0.00 DUM +ATOM 1020 H MOL D 340 17.056 4.188 13.022 0.00 0.00 DUM +ATOM 1021 O MOL D 341 12.138 13.429 22.848 0.00 0.00 DUM +ATOM 1022 H MOL D 341 13.152 13.712 23.128 0.00 0.00 DUM +ATOM 1023 H MOL D 341 12.190 12.536 22.293 0.00 0.00 DUM +ATOM 1024 O MOL D 342 2.343 22.002 2.486 0.00 0.00 DUM +ATOM 1025 H MOL D 342 3.383 22.130 2.387 0.00 0.00 DUM +ATOM 1026 H MOL D 342 2.006 22.253 3.387 0.00 0.00 DUM +ATOM 1027 O MOL D 343 5.396 8.742 5.650 0.00 0.00 DUM +ATOM 1028 H MOL D 343 5.764 9.523 6.178 0.00 0.00 DUM +ATOM 1029 H MOL D 343 4.867 8.150 6.316 0.00 0.00 DUM +ATOM 1030 O MOL D 344 8.758 23.698 7.232 0.00 0.00 DUM +ATOM 1031 H MOL D 344 9.694 23.903 6.923 0.00 0.00 DUM +ATOM 1032 H MOL D 344 8.263 23.119 6.603 0.00 0.00 DUM +ATOM 1033 O MOL D 345 14.100 0.648 16.001 0.00 0.00 DUM +ATOM 1034 H MOL D 345 14.073 -0.195 15.434 0.00 0.00 DUM +ATOM 1035 H MOL D 345 13.153 0.961 16.224 0.00 0.00 DUM +ATOM 1036 O MOL D 346 12.136 16.313 8.436 0.00 0.00 DUM +ATOM 1037 H MOL D 346 12.705 16.345 7.554 0.00 0.00 DUM +ATOM 1038 H MOL D 346 12.714 16.567 9.259 0.00 0.00 DUM +ATOM 1039 O MOL D 347 15.156 11.568 8.682 0.00 0.00 DUM +ATOM 1040 H MOL D 347 15.253 11.107 9.580 0.00 0.00 DUM +ATOM 1041 H MOL D 347 14.934 12.566 8.860 0.00 0.00 DUM +ATOM 1042 O MOL D 348 8.563 1.695 25.521 0.00 0.00 DUM +ATOM 1043 H MOL D 348 9.233 2.408 25.807 0.00 0.00 DUM +ATOM 1044 H MOL D 348 8.497 1.683 24.558 0.00 0.00 DUM +ATOM 1045 O MOL D 349 26.633 14.964 3.629 0.00 0.00 DUM +ATOM 1046 H MOL D 349 25.888 14.882 4.278 0.00 0.00 DUM +ATOM 1047 H MOL D 349 27.146 14.088 3.650 0.00 0.00 DUM +ATOM 1048 O MOL D 350 3.030 18.995 14.185 0.00 0.00 DUM +ATOM 1049 H MOL D 350 3.340 19.264 15.123 0.00 0.00 DUM +ATOM 1050 H MOL D 350 3.415 19.620 13.505 0.00 0.00 DUM +ATOM 1051 O MOL D 351 -0.165 24.790 22.368 0.00 0.00 DUM +ATOM 1052 H MOL D 351 -0.768 24.385 21.690 0.00 0.00 DUM +ATOM 1053 H MOL D 351 0.413 25.428 21.827 0.00 0.00 DUM +ATOM 1054 O MOL D 352 8.413 7.936 22.420 0.00 0.00 DUM +ATOM 1055 H MOL D 352 8.514 7.431 23.302 0.00 0.00 DUM +ATOM 1056 H MOL D 352 7.637 7.462 21.945 0.00 0.00 DUM +ATOM 1057 O MOL D 353 24.011 9.684 25.074 0.00 0.00 DUM +ATOM 1058 H MOL D 353 24.408 8.941 25.601 0.00 0.00 DUM +ATOM 1059 H MOL D 353 24.726 10.436 25.150 0.00 0.00 DUM +ATOM 1060 O MOL D 354 24.801 21.085 6.544 0.00 0.00 DUM +ATOM 1061 H MOL D 354 25.287 20.467 5.830 0.00 0.00 DUM +ATOM 1062 H MOL D 354 25.189 21.985 6.366 0.00 0.00 DUM +ATOM 1063 O MOL D 355 6.647 6.370 21.022 0.00 0.00 DUM +ATOM 1064 H MOL D 355 7.179 6.322 20.155 0.00 0.00 DUM +ATOM 1065 H MOL D 355 5.712 6.604 20.691 0.00 0.00 DUM +ATOM 1066 O MOL D 356 24.078 10.122 12.562 0.00 0.00 DUM +ATOM 1067 H MOL D 356 24.356 10.473 13.431 0.00 0.00 DUM +ATOM 1068 H MOL D 356 23.774 10.949 12.040 0.00 0.00 DUM +ATOM 1069 O MOL D 357 4.701 9.226 10.895 0.00 0.00 DUM +ATOM 1070 H MOL D 357 5.417 9.532 11.514 0.00 0.00 DUM +ATOM 1071 H MOL D 357 5.016 8.507 10.223 0.00 0.00 DUM +ATOM 1072 O MOL D 358 12.028 13.669 13.087 0.00 0.00 DUM +ATOM 1073 H MOL D 358 11.513 14.013 13.836 0.00 0.00 DUM +ATOM 1074 H MOL D 358 11.595 13.938 12.299 0.00 0.00 DUM +ATOM 1075 O MOL D 359 7.522 25.771 8.744 0.00 0.00 DUM +ATOM 1076 H MOL D 359 7.865 25.077 8.066 0.00 0.00 DUM +ATOM 1077 H MOL D 359 6.681 25.392 9.136 0.00 0.00 DUM +ATOM 1078 O MOL D 360 8.769 20.954 9.211 0.00 0.00 DUM +ATOM 1079 H MOL D 360 8.148 21.433 9.808 0.00 0.00 DUM +ATOM 1080 H MOL D 360 9.454 20.567 9.853 0.00 0.00 DUM +ATOM 1081 O MOL D 361 10.214 24.806 3.224 0.00 0.00 DUM +ATOM 1082 H MOL D 361 11.057 24.348 2.853 0.00 0.00 DUM +ATOM 1083 H MOL D 361 10.412 25.022 4.158 0.00 0.00 DUM +ATOM 1084 O MOL D 362 18.986 5.728 8.464 0.00 0.00 DUM +ATOM 1085 H MOL D 362 19.718 4.987 8.658 0.00 0.00 DUM +ATOM 1086 H MOL D 362 18.774 6.181 9.408 0.00 0.00 DUM +ATOM 1087 O MOL D 363 19.017 0.040 9.756 0.00 0.00 DUM +ATOM 1088 H MOL D 363 19.277 -0.605 10.490 0.00 0.00 DUM +ATOM 1089 H MOL D 363 18.226 0.590 10.142 0.00 0.00 DUM +ATOM 1090 O MOL D 364 9.776 20.690 24.781 0.00 0.00 DUM +ATOM 1091 H MOL D 364 10.233 20.474 23.879 0.00 0.00 DUM +ATOM 1092 H MOL D 364 9.806 19.851 25.372 0.00 0.00 DUM +ATOM 1093 O MOL D 365 21.480 3.013 18.581 0.00 0.00 DUM +ATOM 1094 H MOL D 365 21.696 3.508 17.690 0.00 0.00 DUM +ATOM 1095 H MOL D 365 22.372 2.808 19.003 0.00 0.00 DUM +ATOM 1096 O MOL D 366 20.465 7.962 19.473 0.00 0.00 DUM +ATOM 1097 H MOL D 366 21.208 8.406 19.998 0.00 0.00 DUM +ATOM 1098 H MOL D 366 20.512 7.017 19.735 0.00 0.00 DUM +ATOM 1099 O MOL D 367 11.147 1.217 8.934 0.00 0.00 DUM +ATOM 1100 H MOL D 367 12.137 1.400 9.093 0.00 0.00 DUM +ATOM 1101 H MOL D 367 10.914 0.410 9.404 0.00 0.00 DUM +ATOM 1102 O MOL D 368 20.065 20.613 22.290 0.00 0.00 DUM +ATOM 1103 H MOL D 368 19.184 21.093 21.997 0.00 0.00 DUM +ATOM 1104 H MOL D 368 20.479 20.160 21.442 0.00 0.00 DUM +ATOM 1105 O MOL D 369 9.273 14.631 11.493 0.00 0.00 DUM +ATOM 1106 H MOL D 369 8.938 13.768 11.081 0.00 0.00 DUM +ATOM 1107 H MOL D 369 8.978 15.429 10.981 0.00 0.00 DUM +ATOM 1108 O MOL D 370 4.035 16.111 13.229 0.00 0.00 DUM +ATOM 1109 H MOL D 370 3.433 16.817 13.614 0.00 0.00 DUM +ATOM 1110 H MOL D 370 3.426 15.399 12.769 0.00 0.00 DUM +ATOM 1111 O MOL D 371 10.346 10.538 15.726 0.00 0.00 DUM +ATOM 1112 H MOL D 371 9.355 10.721 15.892 0.00 0.00 DUM +ATOM 1113 H MOL D 371 10.893 11.133 16.358 0.00 0.00 DUM +ATOM 1114 O MOL D 372 4.242 24.266 12.091 0.00 0.00 DUM +ATOM 1115 H MOL D 372 3.648 24.116 12.877 0.00 0.00 DUM +ATOM 1116 H MOL D 372 5.171 24.400 12.542 0.00 0.00 DUM +ATOM 1117 O MOL D 373 24.639 6.967 2.825 0.00 0.00 DUM +ATOM 1118 H MOL D 373 24.326 7.135 1.843 0.00 0.00 DUM +ATOM 1119 H MOL D 373 25.659 6.955 2.816 0.00 0.00 DUM +ATOM 1120 O MOL D 374 5.738 12.721 2.068 0.00 0.00 DUM +ATOM 1121 H MOL D 374 6.212 11.850 1.883 0.00 0.00 DUM +ATOM 1122 H MOL D 374 5.272 13.022 1.213 0.00 0.00 DUM +ATOM 1123 O MOL D 375 0.513 4.016 14.226 0.00 0.00 DUM +ATOM 1124 H MOL D 375 0.535 3.175 13.702 0.00 0.00 DUM +ATOM 1125 H MOL D 375 0.794 3.834 15.185 0.00 0.00 DUM +ATOM 1126 O MOL D 376 12.275 14.293 5.082 0.00 0.00 DUM +ATOM 1127 H MOL D 376 12.816 15.027 5.500 0.00 0.00 DUM +ATOM 1128 H MOL D 376 12.753 13.363 5.116 0.00 0.00 DUM +ATOM 1129 O MOL D 377 22.106 16.925 2.405 0.00 0.00 DUM +ATOM 1130 H MOL D 377 22.204 17.931 2.443 0.00 0.00 DUM +ATOM 1131 H MOL D 377 22.665 16.542 3.136 0.00 0.00 DUM +ATOM 1132 O MOL D 378 5.077 9.725 17.539 0.00 0.00 DUM +ATOM 1133 H MOL D 378 4.305 9.106 17.344 0.00 0.00 DUM +ATOM 1134 H MOL D 378 4.655 10.659 17.391 0.00 0.00 DUM +ATOM 1135 O MOL D 379 22.160 22.046 8.205 0.00 0.00 DUM +ATOM 1136 H MOL D 379 22.806 21.679 7.511 0.00 0.00 DUM +ATOM 1137 H MOL D 379 22.403 21.610 9.083 0.00 0.00 DUM +ATOM 1138 O MOL D 380 14.304 2.859 2.744 0.00 0.00 DUM +ATOM 1139 H MOL D 380 14.216 1.925 2.490 0.00 0.00 DUM +ATOM 1140 H MOL D 380 13.379 3.047 3.136 0.00 0.00 DUM +ATOM 1141 O MOL D 381 9.232 11.877 1.591 0.00 0.00 DUM +ATOM 1142 H MOL D 381 9.728 12.486 2.204 0.00 0.00 DUM +ATOM 1143 H MOL D 381 8.710 12.478 0.971 0.00 0.00 DUM +ATOM 1144 O MOL D 382 25.995 20.655 1.496 0.00 0.00 DUM +ATOM 1145 H MOL D 382 26.208 20.334 2.468 0.00 0.00 DUM +ATOM 1146 H MOL D 382 25.181 20.125 1.308 0.00 0.00 DUM +ATOM 1147 O MOL D 383 20.024 17.176 6.346 0.00 0.00 DUM +ATOM 1148 H MOL D 383 19.625 16.518 6.913 0.00 0.00 DUM +ATOM 1149 H MOL D 383 19.733 17.055 5.366 0.00 0.00 DUM +ATOM 1150 O MOL D 384 25.485 6.876 15.089 0.00 0.00 DUM +ATOM 1151 H MOL D 384 25.326 5.903 15.030 0.00 0.00 DUM +ATOM 1152 H MOL D 384 25.466 7.162 14.124 0.00 0.00 DUM +ATOM 1153 O MOL D 385 15.835 22.742 9.498 0.00 0.00 DUM +ATOM 1154 H MOL D 385 15.700 23.239 10.352 0.00 0.00 DUM +ATOM 1155 H MOL D 385 16.288 23.303 8.803 0.00 0.00 DUM +ATOM 1156 O MOL D 386 6.429 5.362 16.758 0.00 0.00 DUM +ATOM 1157 H MOL D 386 5.625 4.868 16.273 0.00 0.00 DUM +ATOM 1158 H MOL D 386 6.798 6.093 16.134 0.00 0.00 DUM +ATOM 1159 O MOL D 387 7.815 18.135 11.171 0.00 0.00 DUM +ATOM 1160 H MOL D 387 7.290 18.776 11.762 0.00 0.00 DUM +ATOM 1161 H MOL D 387 7.420 17.177 11.211 0.00 0.00 DUM +ATOM 1162 O MOL D 388 13.954 9.382 16.624 0.00 0.00 DUM +ATOM 1163 H MOL D 388 14.303 10.295 16.377 0.00 0.00 DUM +ATOM 1164 H MOL D 388 14.488 9.045 17.390 0.00 0.00 DUM +ATOM 1165 O MOL D 389 25.658 19.404 9.026 0.00 0.00 DUM +ATOM 1166 H MOL D 389 25.254 19.703 8.128 0.00 0.00 DUM +ATOM 1167 H MOL D 389 25.171 18.578 9.259 0.00 0.00 DUM +ATOM 1168 O MOL D 390 11.114 15.769 21.687 0.00 0.00 DUM +ATOM 1169 H MOL D 390 10.683 15.767 20.788 0.00 0.00 DUM +ATOM 1170 H MOL D 390 11.440 14.757 21.861 0.00 0.00 DUM +ATOM 1171 O MOL D 391 7.308 13.042 14.958 0.00 0.00 DUM +ATOM 1172 H MOL D 391 7.491 12.520 15.817 0.00 0.00 DUM +ATOM 1173 H MOL D 391 6.652 12.487 14.359 0.00 0.00 DUM +ATOM 1174 O MOL D 392 19.236 17.090 3.429 0.00 0.00 DUM +ATOM 1175 H MOL D 392 18.907 16.155 3.335 0.00 0.00 DUM +ATOM 1176 H MOL D 392 20.177 17.102 3.013 0.00 0.00 DUM +ATOM 1177 O MOL D 393 16.432 23.328 19.418 0.00 0.00 DUM +ATOM 1178 H MOL D 393 15.440 23.589 19.542 0.00 0.00 DUM +ATOM 1179 H MOL D 393 16.949 24.158 19.406 0.00 0.00 DUM +ATOM 1180 O MOL D 394 16.968 21.129 12.268 0.00 0.00 DUM +ATOM 1181 H MOL D 394 16.423 21.907 12.194 0.00 0.00 DUM +ATOM 1182 H MOL D 394 17.451 20.960 11.369 0.00 0.00 DUM +ATOM 1183 O MOL D 395 13.454 4.716 12.656 0.00 0.00 DUM +ATOM 1184 H MOL D 395 14.076 4.740 11.863 0.00 0.00 DUM +ATOM 1185 H MOL D 395 13.990 4.349 13.378 0.00 0.00 DUM +ATOM 1186 O MOL D 396 24.204 23.489 20.622 0.00 0.00 DUM +ATOM 1187 H MOL D 396 23.578 22.961 21.147 0.00 0.00 DUM +ATOM 1188 H MOL D 396 24.774 22.856 20.054 0.00 0.00 DUM +ATOM 1189 O MOL D 397 19.226 12.410 2.349 0.00 0.00 DUM +ATOM 1190 H MOL D 397 20.090 12.890 2.621 0.00 0.00 DUM +ATOM 1191 H MOL D 397 18.540 13.060 2.629 0.00 0.00 DUM +ATOM 1192 O MOL D 398 18.931 19.607 6.817 0.00 0.00 DUM +ATOM 1193 H MOL D 398 19.353 18.646 6.727 0.00 0.00 DUM +ATOM 1194 H MOL D 398 18.151 19.483 7.470 0.00 0.00 DUM +ATOM 1195 O MOL D 399 22.535 1.832 4.576 0.00 0.00 DUM +ATOM 1196 H MOL D 399 23.016 2.683 4.240 0.00 0.00 DUM +ATOM 1197 H MOL D 399 23.265 1.107 4.635 0.00 0.00 DUM +ATOM 1198 O MOL D 400 8.301 6.000 18.926 0.00 0.00 DUM +ATOM 1199 H MOL D 400 7.772 5.397 18.395 0.00 0.00 DUM +ATOM 1200 H MOL D 400 9.254 5.933 18.644 0.00 0.00 DUM +ATOM 1201 O MOL D 401 20.733 10.262 5.306 0.00 0.00 DUM +ATOM 1202 H MOL D 401 21.005 9.355 5.629 0.00 0.00 DUM +ATOM 1203 H MOL D 401 19.924 10.041 4.748 0.00 0.00 DUM +ATOM 1204 O MOL D 402 3.164 10.280 -0.298 0.00 0.00 DUM +ATOM 1205 H MOL D 402 3.679 10.132 0.606 0.00 0.00 DUM +ATOM 1206 H MOL D 402 3.864 10.401 -1.011 0.00 0.00 DUM +ATOM 1207 O MOL D 403 11.911 22.263 4.924 0.00 0.00 DUM +ATOM 1208 H MOL D 403 11.297 21.492 5.182 0.00 0.00 DUM +ATOM 1209 H MOL D 403 12.467 21.924 4.091 0.00 0.00 DUM +ATOM 1210 O MOL D 404 1.119 22.976 24.021 0.00 0.00 DUM +ATOM 1211 H MOL D 404 0.922 22.073 23.643 0.00 0.00 DUM +ATOM 1212 H MOL D 404 0.767 23.629 23.363 0.00 0.00 DUM +ATOM 1213 O MOL D 405 22.399 21.698 25.648 0.00 0.00 DUM +ATOM 1214 H MOL D 405 22.415 20.819 25.123 0.00 0.00 DUM +ATOM 1215 H MOL D 405 21.779 21.607 26.455 0.00 0.00 DUM +ATOM 1216 O MOL D 406 5.014 12.017 21.325 0.00 0.00 DUM +ATOM 1217 H MOL D 406 4.174 12.013 20.820 0.00 0.00 DUM +ATOM 1218 H MOL D 406 5.392 11.048 21.204 0.00 0.00 DUM +ATOM 1219 O MOL D 407 1.137 22.261 4.954 0.00 0.00 DUM +ATOM 1220 H MOL D 407 1.655 22.023 5.812 0.00 0.00 DUM +ATOM 1221 H MOL D 407 0.863 23.254 4.952 0.00 0.00 DUM +ATOM 1222 O MOL D 408 25.245 13.462 5.821 0.00 0.00 DUM +ATOM 1223 H MOL D 408 25.199 12.453 5.804 0.00 0.00 DUM +ATOM 1224 H MOL D 408 25.633 13.773 6.729 0.00 0.00 DUM +ATOM 1225 O MOL D 409 19.909 10.473 13.957 0.00 0.00 DUM +ATOM 1226 H MOL D 409 19.855 9.611 13.427 0.00 0.00 DUM +ATOM 1227 H MOL D 409 20.299 10.283 14.886 0.00 0.00 DUM +ATOM 1228 O MOL D 410 1.359 5.014 0.095 0.00 0.00 DUM +ATOM 1229 H MOL D 410 0.909 4.562 0.854 0.00 0.00 DUM +ATOM 1230 H MOL D 410 2.257 5.164 0.543 0.00 0.00 DUM +ATOM 1231 O MOL D 411 13.933 25.243 6.540 0.00 0.00 DUM +ATOM 1232 H MOL D 411 14.612 25.703 5.871 0.00 0.00 DUM +ATOM 1233 H MOL D 411 13.939 25.747 7.414 0.00 0.00 DUM +ATOM 1234 O MOL D 412 22.098 19.517 23.855 0.00 0.00 DUM +ATOM 1235 H MOL D 412 21.524 18.901 24.414 0.00 0.00 DUM +ATOM 1236 H MOL D 412 21.472 20.087 23.279 0.00 0.00 DUM +ATOM 1237 O MOL D 413 14.613 14.303 23.668 0.00 0.00 DUM +ATOM 1238 H MOL D 413 15.120 15.179 23.515 0.00 0.00 DUM +ATOM 1239 H MOL D 413 15.316 13.520 23.719 0.00 0.00 DUM +ATOM 1240 O MOL D 414 1.934 5.921 16.619 0.00 0.00 DUM +ATOM 1241 H MOL D 414 1.617 5.001 16.889 0.00 0.00 DUM +ATOM 1242 H MOL D 414 1.199 6.451 16.138 0.00 0.00 DUM +ATOM 1243 O MOL D 415 21.080 15.129 12.264 0.00 0.00 DUM +ATOM 1244 H MOL D 415 21.316 14.143 12.467 0.00 0.00 DUM +ATOM 1245 H MOL D 415 20.271 15.338 12.842 0.00 0.00 DUM +ATOM 1246 O MOL D 416 23.083 23.370 4.458 0.00 0.00 DUM +ATOM 1247 H MOL D 416 22.430 23.480 3.708 0.00 0.00 DUM +ATOM 1248 H MOL D 416 22.683 22.629 4.989 0.00 0.00 DUM +ATOM 1249 O MOL D 417 4.720 5.200 12.636 0.00 0.00 DUM +ATOM 1250 H MOL D 417 5.063 4.846 13.491 0.00 0.00 DUM +ATOM 1251 H MOL D 417 5.414 5.868 12.261 0.00 0.00 DUM +ATOM 1252 O MOL D 418 5.938 13.353 8.295 0.00 0.00 DUM +ATOM 1253 H MOL D 418 6.287 12.546 8.813 0.00 0.00 DUM +ATOM 1254 H MOL D 418 6.731 13.610 7.761 0.00 0.00 DUM +ATOM 1255 O MOL D 419 7.980 2.063 19.746 0.00 0.00 DUM +ATOM 1256 H MOL D 419 8.205 2.311 18.788 0.00 0.00 DUM +ATOM 1257 H MOL D 419 7.152 2.588 20.033 0.00 0.00 DUM +ATOM 1258 O MOL D 420 9.090 11.893 18.629 0.00 0.00 DUM +ATOM 1259 H MOL D 420 10.002 12.240 18.428 0.00 0.00 DUM +ATOM 1260 H MOL D 420 9.265 11.119 19.280 0.00 0.00 DUM +ATOM 1261 O MOL D 421 20.289 11.770 25.783 0.00 0.00 DUM +ATOM 1262 H MOL D 421 21.289 12.041 25.723 0.00 0.00 DUM +ATOM 1263 H MOL D 421 20.029 11.756 26.755 0.00 0.00 DUM +ATOM 1264 O MOL D 422 1.898 20.527 25.236 0.00 0.00 DUM +ATOM 1265 H MOL D 422 1.451 20.338 24.342 0.00 0.00 DUM +ATOM 1266 H MOL D 422 2.557 19.796 25.442 0.00 0.00 DUM +ATOM 1267 O MOL D 423 -0.097 16.064 11.595 0.00 0.00 DUM +ATOM 1268 H MOL D 423 -0.375 15.095 11.491 0.00 0.00 DUM +ATOM 1269 H MOL D 423 0.639 16.166 12.309 0.00 0.00 DUM +ATOM 1270 O MOL D 424 7.935 2.962 2.775 0.00 0.00 DUM +ATOM 1271 H MOL D 424 7.081 3.351 2.420 0.00 0.00 DUM +ATOM 1272 H MOL D 424 8.147 2.193 2.147 0.00 0.00 DUM +ATOM 1273 O MOL D 425 10.726 2.245 5.976 0.00 0.00 DUM +ATOM 1274 H MOL D 425 11.207 2.305 6.891 0.00 0.00 DUM +ATOM 1275 H MOL D 425 10.089 1.440 6.036 0.00 0.00 DUM +ATOM 1276 O MOL D 426 4.454 1.101 18.888 0.00 0.00 DUM +ATOM 1277 H MOL D 426 5.002 1.907 19.221 0.00 0.00 DUM +ATOM 1278 H MOL D 426 4.964 0.245 19.081 0.00 0.00 DUM +ATOM 1279 O MOL D 427 23.542 5.338 0.215 0.00 0.00 DUM +ATOM 1280 H MOL D 427 23.901 4.442 0.498 0.00 0.00 DUM +ATOM 1281 H MOL D 427 22.516 5.297 0.319 0.00 0.00 DUM +ATOM 1282 O MOL D 428 10.262 1.143 1.992 0.00 0.00 DUM +ATOM 1283 H MOL D 428 10.421 0.751 1.098 0.00 0.00 DUM +ATOM 1284 H MOL D 428 10.027 0.378 2.613 0.00 0.00 DUM +ATOM 1285 O MOL D 429 0.339 8.399 6.916 0.00 0.00 DUM +ATOM 1286 H MOL D 429 0.765 8.450 5.986 0.00 0.00 DUM +ATOM 1287 H MOL D 429 -0.009 9.369 6.919 0.00 0.00 DUM +ATOM 1288 O MOL D 430 21.721 14.416 23.274 0.00 0.00 DUM +ATOM 1289 H MOL D 430 20.734 14.278 23.277 0.00 0.00 DUM +ATOM 1290 H MOL D 430 22.114 13.533 22.940 0.00 0.00 DUM +ATOM 1291 O MOL D 431 24.475 23.246 13.516 0.00 0.00 DUM +ATOM 1292 H MOL D 431 24.711 23.790 12.730 0.00 0.00 DUM +ATOM 1293 H MOL D 431 24.460 23.938 14.246 0.00 0.00 DUM +ATOM 1294 O MOL D 432 17.439 15.621 7.224 0.00 0.00 DUM +ATOM 1295 H MOL D 432 16.982 16.033 6.437 0.00 0.00 DUM +ATOM 1296 H MOL D 432 17.115 16.145 8.029 0.00 0.00 DUM +ATOM 1297 O MOL D 433 11.758 1.512 16.728 0.00 0.00 DUM +ATOM 1298 H MOL D 433 11.603 1.397 17.703 0.00 0.00 DUM +ATOM 1299 H MOL D 433 11.397 2.390 16.464 0.00 0.00 DUM +ATOM 1300 O MOL D 434 10.830 9.836 1.154 0.00 0.00 DUM +ATOM 1301 H MOL D 434 11.213 10.221 0.318 0.00 0.00 DUM +ATOM 1302 H MOL D 434 10.300 10.626 1.570 0.00 0.00 DUM +ATOM 1303 O MOL D 435 23.427 5.427 21.942 0.00 0.00 DUM +ATOM 1304 H MOL D 435 23.281 5.740 22.885 0.00 0.00 DUM +ATOM 1305 H MOL D 435 23.988 4.565 22.051 0.00 0.00 DUM +ATOM 1306 O MOL D 436 4.270 4.433 15.475 0.00 0.00 DUM +ATOM 1307 H MOL D 436 3.784 4.873 16.213 0.00 0.00 DUM +ATOM 1308 H MOL D 436 3.518 3.924 15.029 0.00 0.00 DUM +ATOM 1309 O MOL D 437 13.474 13.242 1.131 0.00 0.00 DUM +ATOM 1310 H MOL D 437 12.530 13.185 1.487 0.00 0.00 DUM +ATOM 1311 H MOL D 437 13.909 12.398 1.412 0.00 0.00 DUM +ATOM 1312 O MOL D 438 11.443 0.104 25.651 0.00 0.00 DUM +ATOM 1313 H MOL D 438 11.349 -0.904 25.545 0.00 0.00 DUM +ATOM 1314 H MOL D 438 12.408 0.406 25.403 0.00 0.00 DUM +ATOM 1315 O MOL D 439 14.953 -0.238 22.421 0.00 0.00 DUM +ATOM 1316 H MOL D 439 14.408 -1.033 22.072 0.00 0.00 DUM +ATOM 1317 H MOL D 439 14.675 0.577 21.887 0.00 0.00 DUM +ATOM 1318 O MOL D 440 10.820 11.211 5.815 0.00 0.00 DUM +ATOM 1319 H MOL D 440 11.771 11.287 5.495 0.00 0.00 DUM +ATOM 1320 H MOL D 440 10.706 11.985 6.455 0.00 0.00 DUM +ATOM 1321 O MOL D 441 1.389 14.836 25.592 0.00 0.00 DUM +ATOM 1322 H MOL D 441 1.519 13.923 26.094 0.00 0.00 DUM +ATOM 1323 H MOL D 441 1.304 14.608 24.630 0.00 0.00 DUM +ATOM 1324 O MOL D 442 5.065 24.551 9.572 0.00 0.00 DUM +ATOM 1325 H MOL D 442 4.456 24.286 10.378 0.00 0.00 DUM +ATOM 1326 H MOL D 442 4.667 24.324 8.683 0.00 0.00 DUM +ATOM 1327 O MOL D 443 24.333 18.469 26.985 0.00 0.00 DUM +ATOM 1328 H MOL D 443 23.967 18.409 25.998 0.00 0.00 DUM +ATOM 1329 H MOL D 443 25.005 17.674 27.144 0.00 0.00 DUM +ATOM 1330 O MOL D 444 5.563 16.012 1.717 0.00 0.00 DUM +ATOM 1331 H MOL D 444 6.339 16.606 1.381 0.00 0.00 DUM +ATOM 1332 H MOL D 444 5.258 15.448 0.917 0.00 0.00 DUM +ATOM 1333 O MOL D 445 6.965 10.007 2.728 0.00 0.00 DUM +ATOM 1334 H MOL D 445 7.305 9.691 3.633 0.00 0.00 DUM +ATOM 1335 H MOL D 445 7.726 10.539 2.289 0.00 0.00 DUM +ATOM 1336 O MOL D 446 6.078 13.808 19.781 0.00 0.00 DUM +ATOM 1337 H MOL D 446 7.101 13.988 19.945 0.00 0.00 DUM +ATOM 1338 H MOL D 446 5.708 13.101 20.394 0.00 0.00 DUM +ATOM 1339 O MOL D 447 10.670 9.038 9.648 0.00 0.00 DUM +ATOM 1340 H MOL D 447 9.949 9.024 8.890 0.00 0.00 DUM +ATOM 1341 H MOL D 447 11.451 8.482 9.361 0.00 0.00 DUM +ATOM 1342 O MOL D 448 1.891 8.377 4.863 0.00 0.00 DUM +ATOM 1343 H MOL D 448 1.975 9.332 4.762 0.00 0.00 DUM +ATOM 1344 H MOL D 448 1.709 7.959 3.941 0.00 0.00 DUM +ATOM 1345 O MOL D 449 3.409 2.388 12.467 0.00 0.00 DUM +ATOM 1346 H MOL D 449 3.422 3.372 12.214 0.00 0.00 DUM +ATOM 1347 H MOL D 449 2.516 1.906 12.280 0.00 0.00 DUM +ATOM 1348 O MOL D 450 19.806 26.504 1.381 0.00 0.00 DUM +ATOM 1349 H MOL D 450 18.990 25.875 1.319 0.00 0.00 DUM +ATOM 1350 H MOL D 450 19.401 27.226 1.900 0.00 0.00 DUM +ATOM 1351 O MOL D 451 9.756 14.408 14.492 0.00 0.00 DUM +ATOM 1352 H MOL D 451 9.678 14.558 13.498 0.00 0.00 DUM +ATOM 1353 H MOL D 451 9.010 13.772 14.853 0.00 0.00 DUM +ATOM 1354 O MOL D 452 1.737 6.688 21.126 0.00 0.00 DUM +ATOM 1355 H MOL D 452 2.350 6.512 21.959 0.00 0.00 DUM +ATOM 1356 H MOL D 452 1.157 7.512 21.361 0.00 0.00 DUM +ATOM 1357 O MOL D 453 12.449 10.727 19.851 0.00 0.00 DUM +ATOM 1358 H MOL D 453 12.637 11.163 18.961 0.00 0.00 DUM +ATOM 1359 H MOL D 453 12.129 9.779 19.607 0.00 0.00 DUM +ATOM 1360 O MOL D 454 14.780 11.184 2.281 0.00 0.00 DUM +ATOM 1361 H MOL D 454 14.345 10.312 2.646 0.00 0.00 DUM +ATOM 1362 H MOL D 454 15.778 10.904 2.270 0.00 0.00 DUM +ATOM 1363 O MOL D 455 11.101 12.681 8.443 0.00 0.00 DUM +ATOM 1364 H MOL D 455 11.539 12.112 9.201 0.00 0.00 DUM +ATOM 1365 H MOL D 455 11.595 13.556 8.427 0.00 0.00 DUM +ATOM 1366 O MOL D 456 18.944 25.773 7.090 0.00 0.00 DUM +ATOM 1367 H MOL D 456 19.028 25.724 8.059 0.00 0.00 DUM +ATOM 1368 H MOL D 456 18.220 26.412 6.918 0.00 0.00 DUM +ATOM 1369 O MOL D 457 9.820 0.648 12.121 0.00 0.00 DUM +ATOM 1370 H MOL D 457 10.815 0.787 12.335 0.00 0.00 DUM +ATOM 1371 H MOL D 457 9.504 1.572 11.910 0.00 0.00 DUM +ATOM 1372 O MOL D 458 23.869 4.309 14.741 0.00 0.00 DUM +ATOM 1373 H MOL D 458 23.588 4.682 13.831 0.00 0.00 DUM +ATOM 1374 H MOL D 458 24.825 3.981 14.708 0.00 0.00 DUM +ATOM 1375 O MOL D 459 2.740 7.989 12.055 0.00 0.00 DUM +ATOM 1376 H MOL D 459 3.443 8.586 11.684 0.00 0.00 DUM +ATOM 1377 H MOL D 459 2.884 8.166 13.026 0.00 0.00 DUM +ATOM 1378 O MOL D 460 24.856 10.524 6.476 0.00 0.00 DUM +ATOM 1379 H MOL D 460 24.607 9.999 5.626 0.00 0.00 DUM +ATOM 1380 H MOL D 460 24.058 10.598 7.068 0.00 0.00 DUM +ATOM 1381 O MOL D 461 9.212 7.038 12.254 0.00 0.00 DUM +ATOM 1382 H MOL D 461 9.658 7.669 12.900 0.00 0.00 DUM +ATOM 1383 H MOL D 461 9.932 6.450 11.840 0.00 0.00 DUM +ATOM 1384 O MOL D 462 22.290 10.998 7.932 0.00 0.00 DUM +ATOM 1385 H MOL D 462 21.951 11.944 8.021 0.00 0.00 DUM +ATOM 1386 H MOL D 462 21.614 10.534 7.338 0.00 0.00 DUM +ATOM 1387 O MOL D 463 16.819 23.279 3.845 0.00 0.00 DUM +ATOM 1388 H MOL D 463 16.132 22.801 4.394 0.00 0.00 DUM +ATOM 1389 H MOL D 463 17.015 24.172 4.224 0.00 0.00 DUM +ATOM 1390 O MOL D 464 16.110 16.264 4.930 0.00 0.00 DUM +ATOM 1391 H MOL D 464 15.634 15.727 4.215 0.00 0.00 DUM +ATOM 1392 H MOL D 464 16.713 16.820 4.483 0.00 0.00 DUM +ATOM 1393 O MOL D 465 24.229 8.214 21.485 0.00 0.00 DUM +ATOM 1394 H MOL D 465 24.904 8.678 22.107 0.00 0.00 DUM +ATOM 1395 H MOL D 465 24.036 7.276 21.821 0.00 0.00 DUM +ATOM 1396 O MOL D 466 6.386 18.954 26.171 0.00 0.00 DUM +ATOM 1397 H MOL D 466 7.064 19.661 26.341 0.00 0.00 DUM +ATOM 1398 H MOL D 466 6.918 18.118 25.973 0.00 0.00 DUM +ATOM 1399 O MOL D 467 6.191 1.635 11.771 0.00 0.00 DUM +ATOM 1400 H MOL D 467 6.353 1.807 10.772 0.00 0.00 DUM +ATOM 1401 H MOL D 467 5.219 1.855 11.957 0.00 0.00 DUM +ATOM 1402 O MOL D 468 15.676 17.326 8.300 0.00 0.00 DUM +ATOM 1403 H MOL D 468 15.166 17.057 9.103 0.00 0.00 DUM +ATOM 1404 H MOL D 468 15.818 18.357 8.262 0.00 0.00 DUM +ATOM 1405 O MOL D 469 2.622 21.651 7.052 0.00 0.00 DUM +ATOM 1406 H MOL D 469 2.173 21.478 7.994 0.00 0.00 DUM +ATOM 1407 H MOL D 469 3.216 22.474 7.132 0.00 0.00 DUM +ATOM 1408 O MOL D 470 24.019 -0.274 1.391 0.00 0.00 DUM +ATOM 1409 H MOL D 470 23.869 0.497 0.733 0.00 0.00 DUM +ATOM 1410 H MOL D 470 25.084 -0.428 1.403 0.00 0.00 DUM +ATOM 1411 O MOL D 471 3.120 12.509 14.511 0.00 0.00 DUM +ATOM 1412 H MOL D 471 2.364 12.294 13.910 0.00 0.00 DUM +ATOM 1413 H MOL D 471 4.017 12.279 14.022 0.00 0.00 DUM +ATOM 1414 O MOL D 472 11.413 24.754 5.661 0.00 0.00 DUM +ATOM 1415 H MOL D 472 12.303 25.191 6.062 0.00 0.00 DUM +ATOM 1416 H MOL D 472 11.567 23.787 5.504 0.00 0.00 DUM +ATOM 1417 O MOL D 473 20.309 1.588 21.075 0.00 0.00 DUM +ATOM 1418 H MOL D 473 20.618 1.993 21.931 0.00 0.00 DUM +ATOM 1419 H MOL D 473 20.509 2.284 20.384 0.00 0.00 DUM +ATOM 1420 O MOL D 474 10.875 5.843 17.884 0.00 0.00 DUM +ATOM 1421 H MOL D 474 10.839 4.977 17.302 0.00 0.00 DUM +ATOM 1422 H MOL D 474 11.268 6.501 17.186 0.00 0.00 DUM +ATOM 1423 O MOL D 475 25.325 20.787 13.002 0.00 0.00 DUM +ATOM 1424 H MOL D 475 26.321 20.863 12.842 0.00 0.00 DUM +ATOM 1425 H MOL D 475 24.950 21.634 13.432 0.00 0.00 DUM +ATOM 1426 O MOL D 476 10.741 8.606 13.944 0.00 0.00 DUM +ATOM 1427 H MOL D 476 11.662 8.276 13.694 0.00 0.00 DUM +ATOM 1428 H MOL D 476 10.756 9.339 14.668 0.00 0.00 DUM +ATOM 1429 O MOL D 477 1.712 3.835 23.734 0.00 0.00 DUM +ATOM 1430 H MOL D 477 1.538 4.441 24.548 0.00 0.00 DUM +ATOM 1431 H MOL D 477 1.576 2.932 24.187 0.00 0.00 DUM +ATOM 1432 O MOL D 478 17.389 6.588 24.511 0.00 0.00 DUM +ATOM 1433 H MOL D 478 16.781 7.424 24.660 0.00 0.00 DUM +ATOM 1434 H MOL D 478 18.285 6.789 24.954 0.00 0.00 DUM +ATOM 1435 O MOL D 479 24.418 6.633 18.779 0.00 0.00 DUM +ATOM 1436 H MOL D 479 24.897 5.752 18.895 0.00 0.00 DUM +ATOM 1437 H MOL D 479 24.390 7.025 19.688 0.00 0.00 DUM +ATOM 1438 O MOL D 480 11.681 9.689 24.420 0.00 0.00 DUM +ATOM 1439 H MOL D 480 12.191 9.549 23.573 0.00 0.00 DUM +ATOM 1440 H MOL D 480 10.954 8.966 24.333 0.00 0.00 DUM +ATOM 1441 O MOL D 481 15.974 15.624 16.208 0.00 0.00 DUM +ATOM 1442 H MOL D 481 15.706 14.722 15.829 0.00 0.00 DUM +ATOM 1443 H MOL D 481 16.828 16.002 15.814 0.00 0.00 DUM +ATOM 1444 O MOL D 482 1.591 11.635 8.339 0.00 0.00 DUM +ATOM 1445 H MOL D 482 1.051 10.794 8.461 0.00 0.00 DUM +ATOM 1446 H MOL D 482 2.341 11.614 9.040 0.00 0.00 DUM +ATOM 1447 O MOL D 483 21.969 20.870 5.262 0.00 0.00 DUM +ATOM 1448 H MOL D 483 22.606 20.613 4.516 0.00 0.00 DUM +ATOM 1449 H MOL D 483 21.151 21.201 4.817 0.00 0.00 DUM +ATOM 1450 O MOL D 484 15.313 10.605 11.221 0.00 0.00 DUM +ATOM 1451 H MOL D 484 15.794 10.637 12.099 0.00 0.00 DUM +ATOM 1452 H MOL D 484 14.902 9.629 11.157 0.00 0.00 DUM +ATOM 1453 O MOL D 485 16.741 0.759 10.877 0.00 0.00 DUM +ATOM 1454 H MOL D 485 16.063 0.923 10.152 0.00 0.00 DUM +ATOM 1455 H MOL D 485 16.958 1.608 11.319 0.00 0.00 DUM +ATOM 1456 O MOL D 486 7.992 16.692 26.368 0.00 0.00 DUM +ATOM 1457 H MOL D 486 8.148 15.709 26.513 0.00 0.00 DUM +ATOM 1458 H MOL D 486 8.864 17.043 25.949 0.00 0.00 DUM +ATOM 1459 O MOL D 487 3.903 15.743 19.077 0.00 0.00 DUM +ATOM 1460 H MOL D 487 4.201 16.637 18.777 0.00 0.00 DUM +ATOM 1461 H MOL D 487 4.708 15.216 19.282 0.00 0.00 DUM +ATOM 1462 O MOL D 488 14.100 9.727 -0.265 0.00 0.00 DUM +ATOM 1463 H MOL D 488 13.952 10.114 0.676 0.00 0.00 DUM +ATOM 1464 H MOL D 488 13.197 9.835 -0.749 0.00 0.00 DUM +ATOM 1465 O MOL D 489 8.714 8.681 7.654 0.00 0.00 DUM +ATOM 1466 H MOL D 489 8.177 9.553 7.479 0.00 0.00 DUM +ATOM 1467 H MOL D 489 8.733 8.293 6.761 0.00 0.00 DUM +ATOM 1468 O MOL D 490 23.410 16.131 16.036 0.00 0.00 DUM +ATOM 1469 H MOL D 490 23.627 15.283 15.509 0.00 0.00 DUM +ATOM 1470 H MOL D 490 23.864 16.883 15.623 0.00 0.00 DUM +ATOM 1471 O MOL D 491 22.043 6.803 10.115 0.00 0.00 DUM +ATOM 1472 H MOL D 491 22.944 7.325 10.145 0.00 0.00 DUM +ATOM 1473 H MOL D 491 21.316 7.530 9.996 0.00 0.00 DUM +ATOM 1474 O MOL D 492 3.797 2.907 22.002 0.00 0.00 DUM +ATOM 1475 H MOL D 492 4.249 2.301 22.649 0.00 0.00 DUM +ATOM 1476 H MOL D 492 2.902 3.171 22.434 0.00 0.00 DUM +ATOM 1477 O MOL D 493 19.006 2.356 3.013 0.00 0.00 DUM +ATOM 1478 H MOL D 493 19.390 3.305 3.124 0.00 0.00 DUM +ATOM 1479 H MOL D 493 19.274 1.995 3.951 0.00 0.00 DUM +ATOM 1480 O MOL D 494 18.840 13.541 8.583 0.00 0.00 DUM +ATOM 1481 H MOL D 494 18.341 14.310 8.128 0.00 0.00 DUM +ATOM 1482 H MOL D 494 18.590 13.656 9.548 0.00 0.00 DUM +ATOM 1483 O MOL D 495 12.124 23.521 11.486 0.00 0.00 DUM +ATOM 1484 H MOL D 495 11.505 23.799 10.753 0.00 0.00 DUM +ATOM 1485 H MOL D 495 12.838 22.919 11.054 0.00 0.00 DUM +ATOM 1486 O MOL D 496 21.071 3.623 12.698 0.00 0.00 DUM +ATOM 1487 H MOL D 496 21.528 2.860 13.157 0.00 0.00 DUM +ATOM 1488 H MOL D 496 21.663 4.198 12.111 0.00 0.00 DUM +ATOM 1489 O MOL D 497 3.818 18.778 25.485 0.00 0.00 DUM +ATOM 1490 H MOL D 497 4.859 18.772 25.686 0.00 0.00 DUM +ATOM 1491 H MOL D 497 3.579 17.885 25.081 0.00 0.00 DUM +ATOM 1492 O MOL D 498 20.502 9.503 16.667 0.00 0.00 DUM +ATOM 1493 H MOL D 498 21.173 8.971 16.196 0.00 0.00 DUM +ATOM 1494 H MOL D 498 20.590 9.267 17.661 0.00 0.00 DUM +ATOM 1495 O MOL D 499 12.550 5.275 23.977 0.00 0.00 DUM +ATOM 1496 H MOL D 499 13.046 4.386 24.086 0.00 0.00 DUM +ATOM 1497 H MOL D 499 13.155 5.976 24.478 0.00 0.00 DUM +ATOM 1498 O MOL D 500 -0.530 3.527 22.024 0.00 0.00 DUM +ATOM 1499 H MOL D 500 -1.160 3.093 22.753 0.00 0.00 DUM +ATOM 1500 H MOL D 500 0.263 3.967 22.486 0.00 0.00 DUM +ATOM 1501 C C6 D 1 18.733 17.973 16.799 0.00 0.00 DUM +ATOM 1502 C C6 D 1 19.867 16.988 16.293 0.00 0.00 DUM +ATOM 1503 H C6 D 1 18.864 18.832 16.180 0.00 0.00 DUM +ATOM 1504 C C6 D 1 19.666 15.499 16.489 0.00 0.00 DUM +ATOM 1505 H C6 D 1 20.928 17.239 16.503 0.00 0.00 DUM +ATOM 1506 N C6 D 1 20.751 14.780 16.661 0.00 0.00 DUM +ATOM 1507 O C6 D 1 18.573 15.035 16.447 0.00 0.00 DUM +ATOM 1508 C C6 D 1 20.755 13.342 16.776 0.00 0.00 DUM +ATOM 1509 H C6 D 1 21.712 15.144 16.757 0.00 0.00 DUM +ATOM 1510 C C6 D 1 20.719 12.821 18.188 0.00 0.00 DUM +ATOM 1511 C C6 D 1 22.048 12.793 16.132 0.00 0.00 DUM +ATOM 1512 H C6 D 1 19.884 12.870 16.221 0.00 0.00 DUM +ATOM 1513 H C6 D 1 21.621 12.987 18.745 0.00 0.00 DUM +ATOM 1514 H C6 D 1 20.459 11.743 18.194 0.00 0.00 DUM +ATOM 1515 H C6 D 1 19.977 13.355 18.775 0.00 0.00 DUM +ATOM 1516 H C6 D 1 22.025 11.714 15.958 0.00 0.00 DUM +ATOM 1517 H C6 D 1 22.951 12.967 16.844 0.00 0.00 DUM +ATOM 1518 H C6 D 1 22.097 13.211 15.141 0.00 0.00 DUM +ATOM 1519 H C6 D 1 17.812 17.599 16.434 0.00 0.00 DUM +ATOM 1520 H C6 D 1 19.847 17.106 15.209 0.00 0.00 DUM +ATOM 1521 C C6 D 2 17.290 18.517 18.770 0.00 0.00 DUM +ATOM 1522 C C6 D 2 18.672 18.103 18.320 0.00 0.00 DUM +ATOM 1523 H C6 D 2 16.576 17.802 18.421 0.00 0.00 DUM +ATOM 1524 C C6 D 2 19.851 18.931 18.844 0.00 0.00 DUM +ATOM 1525 N C6 D 2 20.611 19.671 17.953 0.00 0.00 DUM +ATOM 1526 O C6 D 2 20.194 18.930 20.028 0.00 0.00 DUM +ATOM 1527 C C6 D 2 21.652 20.554 18.386 0.00 0.00 DUM +ATOM 1528 H C6 D 2 20.317 19.745 16.953 0.00 0.00 DUM +ATOM 1529 C C6 D 2 21.318 21.929 18.091 0.00 0.00 DUM +ATOM 1530 C C6 D 2 22.916 20.010 17.654 0.00 0.00 DUM +ATOM 1531 H C6 D 2 21.823 20.508 19.455 0.00 0.00 DUM +ATOM 1532 H C6 D 2 22.129 22.599 18.201 0.00 0.00 DUM +ATOM 1533 H C6 D 2 20.534 22.243 18.679 0.00 0.00 DUM +ATOM 1534 H C6 D 2 20.994 22.022 17.019 0.00 0.00 DUM +ATOM 1535 H C6 D 2 22.771 19.898 16.600 0.00 0.00 DUM +ATOM 1536 H C6 D 2 23.251 18.997 17.946 0.00 0.00 DUM +ATOM 1537 H C6 D 2 23.751 20.729 17.779 0.00 0.00 DUM +ATOM 1538 H C6 D 2 17.284 18.361 19.844 0.00 0.00 DUM +ATOM 1539 H C6 D 2 18.877 17.087 18.707 0.00 0.00 DUM +ATOM 1540 C C6 D 2 15.339 20.230 19.226 0.00 0.00 DUM +ATOM 1541 C C6 D 2 16.758 19.942 18.534 0.00 0.00 DUM +ATOM 1542 H C6 D 2 15.473 20.438 20.322 0.00 0.00 DUM +ATOM 1543 C C6 D 2 16.757 20.477 17.087 0.00 0.00 DUM +ATOM 1544 N C6 D 2 17.362 21.623 16.940 0.00 0.00 DUM +ATOM 1545 O C6 D 2 16.230 19.829 16.223 0.00 0.00 DUM +ATOM 1546 C C6 D 2 17.482 22.439 15.741 0.00 0.00 DUM +ATOM 1547 H C6 D 2 17.542 22.101 17.845 0.00 0.00 DUM +ATOM 1548 C C6 D 2 16.090 22.755 15.134 0.00 0.00 DUM +ATOM 1549 C C6 D 2 18.484 21.918 14.830 0.00 0.00 DUM +ATOM 1550 H C6 D 2 17.832 23.442 16.030 0.00 0.00 DUM +ATOM 1551 H C6 D 2 16.204 23.275 14.246 0.00 0.00 DUM +ATOM 1552 H C6 D 2 15.393 23.259 15.766 0.00 0.00 DUM +ATOM 1553 H C6 D 2 15.742 21.799 14.771 0.00 0.00 DUM +ATOM 1554 H C6 D 2 18.299 20.881 14.477 0.00 0.00 DUM +ATOM 1555 H C6 D 2 19.507 21.876 15.161 0.00 0.00 DUM +ATOM 1556 H C6 D 2 18.509 22.480 13.891 0.00 0.00 DUM +ATOM 1557 H C6 D 2 14.988 21.206 18.853 0.00 0.00 DUM +ATOM 1558 H C6 D 2 17.384 20.705 19.006 0.00 0.00 DUM +ATOM 1559 C C6 D 2 12.738 19.994 19.110 0.00 0.00 DUM +ATOM 1560 C C6 D 2 14.149 19.252 18.976 0.00 0.00 DUM +ATOM 1561 H C6 D 2 12.962 21.053 18.850 0.00 0.00 DUM +ATOM 1562 C C6 D 2 14.288 18.025 19.809 0.00 0.00 DUM +ATOM 1563 N C6 D 2 14.319 16.766 19.314 0.00 0.00 DUM +ATOM 1564 O C6 D 2 14.385 18.192 21.048 0.00 0.00 DUM +ATOM 1565 C C6 D 2 14.617 15.546 20.163 0.00 0.00 DUM +ATOM 1566 H C6 D 2 14.295 16.527 18.319 0.00 0.00 DUM +ATOM 1567 C C6 D 2 16.092 15.446 20.377 0.00 0.00 DUM +ATOM 1568 C C6 D 2 14.008 14.238 19.570 0.00 0.00 DUM +ATOM 1569 H C6 D 2 14.023 15.831 21.049 0.00 0.00 DUM +ATOM 1570 H C6 D 2 16.279 16.348 20.948 0.00 0.00 DUM +ATOM 1571 H C6 D 2 16.625 15.439 19.422 0.00 0.00 DUM +ATOM 1572 H C6 D 2 16.476 14.586 20.876 0.00 0.00 DUM +ATOM 1573 H C6 D 2 14.266 14.058 18.545 0.00 0.00 DUM +ATOM 1574 H C6 D 2 12.905 14.192 19.563 0.00 0.00 DUM +ATOM 1575 H C6 D 2 14.417 13.452 20.187 0.00 0.00 DUM +ATOM 1576 H C6 D 2 12.099 19.552 18.392 0.00 0.00 DUM +ATOM 1577 H C6 D 2 14.324 18.875 17.934 0.00 0.00 DUM +ATOM 1578 C C6 D 2 10.586 20.484 20.334 0.00 0.00 DUM +ATOM 1579 C C6 D 2 12.063 20.090 20.477 0.00 0.00 DUM +ATOM 1580 H C6 D 2 10.147 19.632 19.788 0.00 0.00 DUM +ATOM 1581 C C6 D 2 12.776 20.987 21.488 0.00 0.00 DUM +ATOM 1582 N C6 D 2 13.110 20.438 22.631 0.00 0.00 DUM +ATOM 1583 O C6 D 2 12.986 22.145 21.281 0.00 0.00 DUM +ATOM 1584 C C6 D 2 13.814 21.040 23.775 0.00 0.00 DUM +ATOM 1585 H C6 D 2 12.904 19.465 22.830 0.00 0.00 DUM +ATOM 1586 C C6 D 2 15.322 20.754 23.606 0.00 0.00 DUM +ATOM 1587 C C6 D 2 13.324 20.386 25.133 0.00 0.00 DUM +ATOM 1588 H C6 D 2 13.669 22.130 23.759 0.00 0.00 DUM +ATOM 1589 H C6 D 2 15.711 21.326 22.711 0.00 0.00 DUM +ATOM 1590 H C6 D 2 15.558 19.756 23.485 0.00 0.00 DUM +ATOM 1591 H C6 D 2 15.924 21.172 24.344 0.00 0.00 DUM +ATOM 1592 H C6 D 2 13.663 19.320 25.141 0.00 0.00 DUM +ATOM 1593 H C6 D 2 12.248 20.368 25.036 0.00 0.00 DUM +ATOM 1594 H C6 D 2 13.690 21.064 25.972 0.00 0.00 DUM +ATOM 1595 H C6 D 2 10.152 20.416 21.334 0.00 0.00 DUM +ATOM 1596 H C6 D 2 12.010 19.130 20.940 0.00 0.00 DUM +ATOM 1597 C C6 D 2 8.631 22.203 19.896 0.00 0.00 DUM +ATOM 1598 C C6 D 2 10.103 21.811 19.666 0.00 0.00 DUM +ATOM 1599 H C6 D 2 8.501 22.564 20.871 0.00 0.00 DUM +ATOM 1600 C C6 D 2 10.340 21.750 18.169 0.00 0.00 DUM +ATOM 1601 N C6 D 2 10.905 22.753 17.484 0.00 0.00 DUM +ATOM 1602 O C6 D 2 10.034 20.737 17.527 0.00 0.00 DUM +ATOM 1603 C C6 D 2 11.514 22.820 16.137 0.00 0.00 DUM +ATOM 1604 H C6 D 2 11.041 23.573 18.016 0.00 0.00 DUM +ATOM 1605 C C6 D 2 10.635 22.242 15.036 0.00 0.00 DUM +ATOM 1606 C C6 D 2 12.921 22.042 16.200 0.00 0.00 DUM +ATOM 1607 H C6 D 2 11.889 23.805 15.990 0.00 0.00 DUM +ATOM 1608 H C6 D 2 9.677 22.709 15.137 0.00 0.00 DUM +ATOM 1609 H C6 D 2 10.498 21.184 14.947 0.00 0.00 DUM +ATOM 1610 H C6 D 2 11.029 22.460 14.051 0.00 0.00 DUM +ATOM 1611 H C6 D 2 13.028 20.982 16.513 0.00 0.00 DUM +ATOM 1612 H C6 D 2 13.566 22.592 16.867 0.00 0.00 DUM +ATOM 1613 H C6 D 2 13.312 22.256 15.221 0.00 0.00 DUM +ATOM 1614 H C6 D 2 8.450 23.041 19.274 0.00 0.00 DUM +ATOM 1615 H C6 D 2 10.758 22.531 20.100 0.00 0.00 DUM +ATOM 1616 C C6 D 2 6.240 21.658 18.978 0.00 0.00 DUM +ATOM 1617 C C6 D 2 7.554 21.079 19.597 0.00 0.00 DUM +ATOM 1618 H C6 D 2 6.380 22.437 18.172 0.00 0.00 DUM +ATOM 1619 C C6 D 2 7.349 20.179 20.776 0.00 0.00 DUM +ATOM 1620 N C6 D 2 7.660 18.897 20.561 0.00 0.00 DUM +ATOM 1621 O C6 D 2 6.925 20.498 21.866 0.00 0.00 DUM +ATOM 1622 C C6 D 2 7.724 17.725 21.339 0.00 0.00 DUM +ATOM 1623 H C6 D 2 7.886 18.674 19.578 0.00 0.00 DUM +ATOM 1624 C C6 D 2 6.189 17.312 21.685 0.00 0.00 DUM +ATOM 1625 C C6 D 2 8.607 17.842 22.530 0.00 0.00 DUM +ATOM 1626 H C6 D 2 8.146 17.079 20.574 0.00 0.00 DUM +ATOM 1627 H C6 D 2 5.565 17.114 20.775 0.00 0.00 DUM +ATOM 1628 H C6 D 2 5.826 18.124 22.300 0.00 0.00 DUM +ATOM 1629 H C6 D 2 6.013 16.503 22.440 0.00 0.00 DUM +ATOM 1630 H C6 D 2 8.193 18.452 23.331 0.00 0.00 DUM +ATOM 1631 H C6 D 2 9.653 18.144 22.247 0.00 0.00 DUM +ATOM 1632 H C6 D 2 8.636 16.886 23.018 0.00 0.00 DUM +ATOM 1633 H C6 D 2 5.754 20.801 18.446 0.00 0.00 DUM +ATOM 1634 H C6 D 2 7.896 20.481 18.759 0.00 0.00 DUM +ATOM 1635 C C6 D 2 3.792 22.207 19.476 0.00 0.00 DUM +ATOM 1636 C C6 D 2 5.213 22.303 19.982 0.00 0.00 DUM +ATOM 1637 H C6 D 2 3.663 21.173 19.108 0.00 0.00 DUM +ATOM 1638 C C6 D 2 5.725 23.679 20.464 0.00 0.00 DUM +ATOM 1639 N C6 D 2 5.906 23.794 21.783 0.00 0.00 DUM +ATOM 1640 O C6 D 2 5.810 24.609 19.660 0.00 0.00 DUM +ATOM 1641 C C6 D 2 6.470 24.880 22.548 0.00 0.00 DUM +ATOM 1642 H C6 D 2 5.709 23.019 22.365 0.00 0.00 DUM +ATOM 1643 C C6 D 2 5.897 26.219 22.186 0.00 0.00 DUM +ATOM 1644 C C6 D 2 7.953 24.825 22.424 0.00 0.00 DUM +ATOM 1645 H C6 D 2 6.159 24.661 23.579 0.00 0.00 DUM +ATOM 1646 H C6 D 2 6.225 26.781 23.024 0.00 0.00 DUM +ATOM 1647 H C6 D 2 4.760 26.164 22.305 0.00 0.00 DUM +ATOM 1648 H C6 D 2 6.362 26.725 21.271 0.00 0.00 DUM +ATOM 1649 H C6 D 2 8.262 23.883 22.855 0.00 0.00 DUM +ATOM 1650 H C6 D 2 8.354 25.530 23.106 0.00 0.00 DUM +ATOM 1651 H C6 D 2 8.433 24.994 21.439 0.00 0.00 DUM +ATOM 1652 H C6 D 2 3.117 22.091 20.325 0.00 0.00 DUM +ATOM 1653 H C6 D 2 5.147 21.726 20.897 0.00 0.00 DUM +ATOM 1654 C C6 D 2 1.639 23.405 18.499 0.00 0.00 DUM +ATOM 1655 C C6 D 2 3.206 23.402 18.569 0.00 0.00 DUM +ATOM 1656 H C6 D 2 1.258 23.575 19.494 0.00 0.00 DUM +ATOM 1657 C C6 D 2 3.912 23.542 17.133 0.00 0.00 DUM +ATOM 1658 N C6 D 2 4.679 24.599 16.838 0.00 0.00 DUM +ATOM 1659 O C6 D 2 3.683 22.605 16.328 0.00 0.00 DUM +ATOM 1660 C C6 D 2 5.444 24.758 15.598 0.00 0.00 DUM +ATOM 1661 H C6 D 2 4.536 25.405 17.469 0.00 0.00 DUM +ATOM 1662 C C6 D 2 6.950 24.757 15.902 0.00 0.00 DUM +ATOM 1663 C C6 D 2 5.028 26.146 15.027 0.00 0.00 DUM +ATOM 1664 H C6 D 2 5.094 23.985 14.928 0.00 0.00 DUM +ATOM 1665 H C6 D 2 7.279 23.896 16.486 0.00 0.00 DUM +ATOM 1666 H C6 D 2 7.156 25.667 16.489 0.00 0.00 DUM +ATOM 1667 H C6 D 2 7.520 24.785 14.931 0.00 0.00 DUM +ATOM 1668 H C6 D 2 4.728 26.773 15.825 0.00 0.00 DUM +ATOM 1669 H C6 D 2 4.187 26.099 14.357 0.00 0.00 DUM +ATOM 1670 H C6 D 2 5.847 26.548 14.505 0.00 0.00 DUM +ATOM 1671 H C6 D 2 1.381 24.304 17.880 0.00 0.00 DUM +ATOM 1672 H C6 D 2 3.357 24.210 19.216 0.00 0.00 DUM +ATOM 1673 C C6 D 3 -0.342 22.410 17.116 0.00 0.00 DUM +ATOM 1674 C C6 D 3 0.926 22.035 17.846 0.00 0.00 DUM +ATOM 1675 H C6 D 3 -1.163 22.604 17.823 0.00 0.00 DUM +ATOM 1676 H C6 D 3 -0.770 21.629 16.543 0.00 0.00 DUM +ATOM 1677 C C6 D 3 0.562 20.888 18.871 0.00 0.00 DUM +ATOM 1678 N C6 D 3 0.983 19.639 18.589 0.00 0.00 DUM +ATOM 1679 O C6 D 3 -0.108 21.134 19.889 0.00 0.00 DUM +ATOM 1680 C C6 D 3 0.889 18.299 19.162 0.00 0.00 DUM +ATOM 1681 H C6 D 3 1.521 19.668 17.688 0.00 0.00 DUM +ATOM 1682 C C6 D 3 -0.496 17.967 19.739 0.00 0.00 DUM +ATOM 1683 C C6 D 3 1.980 18.077 20.178 0.00 0.00 DUM +ATOM 1684 H C6 D 3 0.998 17.672 18.297 0.00 0.00 DUM +ATOM 1685 H C6 D 3 -1.184 17.492 19.045 0.00 0.00 DUM +ATOM 1686 H C6 D 3 -0.959 18.852 20.189 0.00 0.00 DUM +ATOM 1687 H C6 D 3 -0.375 17.226 20.558 0.00 0.00 DUM +ATOM 1688 H C6 D 3 2.033 18.954 20.876 0.00 0.00 DUM +ATOM 1689 H C6 D 3 2.841 17.933 19.614 0.00 0.00 DUM +ATOM 1690 H C6 D 3 1.877 17.259 20.860 0.00 0.00 DUM +ATOM 1691 H C6 D 3 -0.289 23.188 16.360 0.00 0.00 DUM +ATOM 1692 H C6 D 3 1.480 21.553 17.109 0.00 0.00 DUM +ATOM 1693 Ca MOL D 1 1.327 22.434 0.274 0.00 0.00 DUM +ATOM 1694 Cl MOL D 1 1.099 24.928 1.367 0.00 0.00 DUM +ATOM 1695 Cl MOL D 2 14.330 1.883 9.206 0.00 0.00 DUM +END diff --git a/tools/moltemplate/tutorial-files/model.psf b/tools/moltemplate/tutorial-files/model.psf new file mode 100644 index 0000000000..a1df73c59a --- /dev/null +++ b/tools/moltemplate/tutorial-files/model.psf @@ -0,0 +1,2800 @@ +PSF + + 1 !NTITLE + REMARKS VMD-generated NAMD/X-Plor PSF structure file + + 1695 !NATOM + 1 DUM 1 MOL O O 0.000000 15.9994 0 + 2 DUM 1 MOL H H 0.000000 1.0079 0 + 3 DUM 1 MOL H H 0.000000 1.0079 0 + 4 DUM 2 MOL O O 0.000000 15.9994 0 + 5 DUM 2 MOL H H 0.000000 1.0079 0 + 6 DUM 2 MOL H H 0.000000 1.0079 0 + 7 DUM 3 MOL O O 0.000000 15.9994 0 + 8 DUM 3 MOL H H 0.000000 1.0079 0 + 9 DUM 3 MOL H H 0.000000 1.0079 0 + 10 DUM 4 MOL O O 0.000000 15.9994 0 + 11 DUM 4 MOL H H 0.000000 1.0079 0 + 12 DUM 4 MOL H H 0.000000 1.0079 0 + 13 DUM 5 MOL O O 0.000000 15.9994 0 + 14 DUM 5 MOL H H 0.000000 1.0079 0 + 15 DUM 5 MOL H H 0.000000 1.0079 0 + 16 DUM 6 MOL O O 0.000000 15.9994 0 + 17 DUM 6 MOL H H 0.000000 1.0079 0 + 18 DUM 6 MOL H H 0.000000 1.0079 0 + 19 DUM 7 MOL O O 0.000000 15.9994 0 + 20 DUM 7 MOL H H 0.000000 1.0079 0 + 21 DUM 7 MOL H H 0.000000 1.0079 0 + 22 DUM 8 MOL O O 0.000000 15.9994 0 + 23 DUM 8 MOL H H 0.000000 1.0079 0 + 24 DUM 8 MOL H H 0.000000 1.0079 0 + 25 DUM 9 MOL O O 0.000000 15.9994 0 + 26 DUM 9 MOL H H 0.000000 1.0079 0 + 27 DUM 9 MOL H H 0.000000 1.0079 0 + 28 DUM 10 MOL O O 0.000000 15.9994 0 + 29 DUM 10 MOL H H 0.000000 1.0079 0 + 30 DUM 10 MOL H H 0.000000 1.0079 0 + 31 DUM 11 MOL O O 0.000000 15.9994 0 + 32 DUM 11 MOL H H 0.000000 1.0079 0 + 33 DUM 11 MOL H H 0.000000 1.0079 0 + 34 DUM 12 MOL O O 0.000000 15.9994 0 + 35 DUM 12 MOL H H 0.000000 1.0079 0 + 36 DUM 12 MOL H H 0.000000 1.0079 0 + 37 DUM 13 MOL O O 0.000000 15.9994 0 + 38 DUM 13 MOL H H 0.000000 1.0079 0 + 39 DUM 13 MOL H H 0.000000 1.0079 0 + 40 DUM 14 MOL O O 0.000000 15.9994 0 + 41 DUM 14 MOL H H 0.000000 1.0079 0 + 42 DUM 14 MOL H H 0.000000 1.0079 0 + 43 DUM 15 MOL O O 0.000000 15.9994 0 + 44 DUM 15 MOL H H 0.000000 1.0079 0 + 45 DUM 15 MOL H H 0.000000 1.0079 0 + 46 DUM 16 MOL O O 0.000000 15.9994 0 + 47 DUM 16 MOL H H 0.000000 1.0079 0 + 48 DUM 16 MOL H H 0.000000 1.0079 0 + 49 DUM 17 MOL O O 0.000000 15.9994 0 + 50 DUM 17 MOL H H 0.000000 1.0079 0 + 51 DUM 17 MOL H H 0.000000 1.0079 0 + 52 DUM 18 MOL O O 0.000000 15.9994 0 + 53 DUM 18 MOL H H 0.000000 1.0079 0 + 54 DUM 18 MOL H H 0.000000 1.0079 0 + 55 DUM 19 MOL O O 0.000000 15.9994 0 + 56 DUM 19 MOL H H 0.000000 1.0079 0 + 57 DUM 19 MOL H H 0.000000 1.0079 0 + 58 DUM 20 MOL O O 0.000000 15.9994 0 + 59 DUM 20 MOL H H 0.000000 1.0079 0 + 60 DUM 20 MOL H H 0.000000 1.0079 0 + 61 DUM 21 MOL O O 0.000000 15.9994 0 + 62 DUM 21 MOL H H 0.000000 1.0079 0 + 63 DUM 21 MOL H H 0.000000 1.0079 0 + 64 DUM 22 MOL O O 0.000000 15.9994 0 + 65 DUM 22 MOL H H 0.000000 1.0079 0 + 66 DUM 22 MOL H H 0.000000 1.0079 0 + 67 DUM 23 MOL O O 0.000000 15.9994 0 + 68 DUM 23 MOL H H 0.000000 1.0079 0 + 69 DUM 23 MOL H H 0.000000 1.0079 0 + 70 DUM 24 MOL O O 0.000000 15.9994 0 + 71 DUM 24 MOL H H 0.000000 1.0079 0 + 72 DUM 24 MOL H H 0.000000 1.0079 0 + 73 DUM 25 MOL O O 0.000000 15.9994 0 + 74 DUM 25 MOL H H 0.000000 1.0079 0 + 75 DUM 25 MOL H H 0.000000 1.0079 0 + 76 DUM 26 MOL O O 0.000000 15.9994 0 + 77 DUM 26 MOL H H 0.000000 1.0079 0 + 78 DUM 26 MOL H H 0.000000 1.0079 0 + 79 DUM 27 MOL O O 0.000000 15.9994 0 + 80 DUM 27 MOL H H 0.000000 1.0079 0 + 81 DUM 27 MOL H H 0.000000 1.0079 0 + 82 DUM 28 MOL O O 0.000000 15.9994 0 + 83 DUM 28 MOL H H 0.000000 1.0079 0 + 84 DUM 28 MOL H H 0.000000 1.0079 0 + 85 DUM 29 MOL O O 0.000000 15.9994 0 + 86 DUM 29 MOL H H 0.000000 1.0079 0 + 87 DUM 29 MOL H H 0.000000 1.0079 0 + 88 DUM 30 MOL O O 0.000000 15.9994 0 + 89 DUM 30 MOL H H 0.000000 1.0079 0 + 90 DUM 30 MOL H H 0.000000 1.0079 0 + 91 DUM 31 MOL O O 0.000000 15.9994 0 + 92 DUM 31 MOL H H 0.000000 1.0079 0 + 93 DUM 31 MOL H H 0.000000 1.0079 0 + 94 DUM 32 MOL O O 0.000000 15.9994 0 + 95 DUM 32 MOL H H 0.000000 1.0079 0 + 96 DUM 32 MOL H H 0.000000 1.0079 0 + 97 DUM 33 MOL O O 0.000000 15.9994 0 + 98 DUM 33 MOL H H 0.000000 1.0079 0 + 99 DUM 33 MOL H H 0.000000 1.0079 0 + 100 DUM 34 MOL O O 0.000000 15.9994 0 + 101 DUM 34 MOL H H 0.000000 1.0079 0 + 102 DUM 34 MOL H H 0.000000 1.0079 0 + 103 DUM 35 MOL O O 0.000000 15.9994 0 + 104 DUM 35 MOL H H 0.000000 1.0079 0 + 105 DUM 35 MOL H H 0.000000 1.0079 0 + 106 DUM 36 MOL O O 0.000000 15.9994 0 + 107 DUM 36 MOL H H 0.000000 1.0079 0 + 108 DUM 36 MOL H H 0.000000 1.0079 0 + 109 DUM 37 MOL O O 0.000000 15.9994 0 + 110 DUM 37 MOL H H 0.000000 1.0079 0 + 111 DUM 37 MOL H H 0.000000 1.0079 0 + 112 DUM 38 MOL O O 0.000000 15.9994 0 + 113 DUM 38 MOL H H 0.000000 1.0079 0 + 114 DUM 38 MOL H H 0.000000 1.0079 0 + 115 DUM 39 MOL O O 0.000000 15.9994 0 + 116 DUM 39 MOL H H 0.000000 1.0079 0 + 117 DUM 39 MOL H H 0.000000 1.0079 0 + 118 DUM 40 MOL O O 0.000000 15.9994 0 + 119 DUM 40 MOL H H 0.000000 1.0079 0 + 120 DUM 40 MOL H H 0.000000 1.0079 0 + 121 DUM 41 MOL O O 0.000000 15.9994 0 + 122 DUM 41 MOL H H 0.000000 1.0079 0 + 123 DUM 41 MOL H H 0.000000 1.0079 0 + 124 DUM 42 MOL O O 0.000000 15.9994 0 + 125 DUM 42 MOL H H 0.000000 1.0079 0 + 126 DUM 42 MOL H H 0.000000 1.0079 0 + 127 DUM 43 MOL O O 0.000000 15.9994 0 + 128 DUM 43 MOL H H 0.000000 1.0079 0 + 129 DUM 43 MOL H H 0.000000 1.0079 0 + 130 DUM 44 MOL O O 0.000000 15.9994 0 + 131 DUM 44 MOL H H 0.000000 1.0079 0 + 132 DUM 44 MOL H H 0.000000 1.0079 0 + 133 DUM 45 MOL O O 0.000000 15.9994 0 + 134 DUM 45 MOL H H 0.000000 1.0079 0 + 135 DUM 45 MOL H H 0.000000 1.0079 0 + 136 DUM 46 MOL O O 0.000000 15.9994 0 + 137 DUM 46 MOL H H 0.000000 1.0079 0 + 138 DUM 46 MOL H H 0.000000 1.0079 0 + 139 DUM 47 MOL O O 0.000000 15.9994 0 + 140 DUM 47 MOL H H 0.000000 1.0079 0 + 141 DUM 47 MOL H H 0.000000 1.0079 0 + 142 DUM 48 MOL O O 0.000000 15.9994 0 + 143 DUM 48 MOL H H 0.000000 1.0079 0 + 144 DUM 48 MOL H H 0.000000 1.0079 0 + 145 DUM 49 MOL O O 0.000000 15.9994 0 + 146 DUM 49 MOL H H 0.000000 1.0079 0 + 147 DUM 49 MOL H H 0.000000 1.0079 0 + 148 DUM 50 MOL O O 0.000000 15.9994 0 + 149 DUM 50 MOL H H 0.000000 1.0079 0 + 150 DUM 50 MOL H H 0.000000 1.0079 0 + 151 DUM 51 MOL O O 0.000000 15.9994 0 + 152 DUM 51 MOL H H 0.000000 1.0079 0 + 153 DUM 51 MOL H H 0.000000 1.0079 0 + 154 DUM 52 MOL O O 0.000000 15.9994 0 + 155 DUM 52 MOL H H 0.000000 1.0079 0 + 156 DUM 52 MOL H H 0.000000 1.0079 0 + 157 DUM 53 MOL O O 0.000000 15.9994 0 + 158 DUM 53 MOL H H 0.000000 1.0079 0 + 159 DUM 53 MOL H H 0.000000 1.0079 0 + 160 DUM 54 MOL O O 0.000000 15.9994 0 + 161 DUM 54 MOL H H 0.000000 1.0079 0 + 162 DUM 54 MOL H H 0.000000 1.0079 0 + 163 DUM 55 MOL O O 0.000000 15.9994 0 + 164 DUM 55 MOL H H 0.000000 1.0079 0 + 165 DUM 55 MOL H H 0.000000 1.0079 0 + 166 DUM 56 MOL O O 0.000000 15.9994 0 + 167 DUM 56 MOL H H 0.000000 1.0079 0 + 168 DUM 56 MOL H H 0.000000 1.0079 0 + 169 DUM 57 MOL O O 0.000000 15.9994 0 + 170 DUM 57 MOL H H 0.000000 1.0079 0 + 171 DUM 57 MOL H H 0.000000 1.0079 0 + 172 DUM 58 MOL O O 0.000000 15.9994 0 + 173 DUM 58 MOL H H 0.000000 1.0079 0 + 174 DUM 58 MOL H H 0.000000 1.0079 0 + 175 DUM 59 MOL O O 0.000000 15.9994 0 + 176 DUM 59 MOL H H 0.000000 1.0079 0 + 177 DUM 59 MOL H H 0.000000 1.0079 0 + 178 DUM 60 MOL O O 0.000000 15.9994 0 + 179 DUM 60 MOL H H 0.000000 1.0079 0 + 180 DUM 60 MOL H H 0.000000 1.0079 0 + 181 DUM 61 MOL O O 0.000000 15.9994 0 + 182 DUM 61 MOL H H 0.000000 1.0079 0 + 183 DUM 61 MOL H H 0.000000 1.0079 0 + 184 DUM 62 MOL O O 0.000000 15.9994 0 + 185 DUM 62 MOL H H 0.000000 1.0079 0 + 186 DUM 62 MOL H H 0.000000 1.0079 0 + 187 DUM 63 MOL O O 0.000000 15.9994 0 + 188 DUM 63 MOL H H 0.000000 1.0079 0 + 189 DUM 63 MOL H H 0.000000 1.0079 0 + 190 DUM 64 MOL O O 0.000000 15.9994 0 + 191 DUM 64 MOL H H 0.000000 1.0079 0 + 192 DUM 64 MOL H H 0.000000 1.0079 0 + 193 DUM 65 MOL O O 0.000000 15.9994 0 + 194 DUM 65 MOL H H 0.000000 1.0079 0 + 195 DUM 65 MOL H H 0.000000 1.0079 0 + 196 DUM 66 MOL O O 0.000000 15.9994 0 + 197 DUM 66 MOL H H 0.000000 1.0079 0 + 198 DUM 66 MOL H H 0.000000 1.0079 0 + 199 DUM 67 MOL O O 0.000000 15.9994 0 + 200 DUM 67 MOL H H 0.000000 1.0079 0 + 201 DUM 67 MOL H H 0.000000 1.0079 0 + 202 DUM 68 MOL O O 0.000000 15.9994 0 + 203 DUM 68 MOL H H 0.000000 1.0079 0 + 204 DUM 68 MOL H H 0.000000 1.0079 0 + 205 DUM 69 MOL O O 0.000000 15.9994 0 + 206 DUM 69 MOL H H 0.000000 1.0079 0 + 207 DUM 69 MOL H H 0.000000 1.0079 0 + 208 DUM 70 MOL O O 0.000000 15.9994 0 + 209 DUM 70 MOL H H 0.000000 1.0079 0 + 210 DUM 70 MOL H H 0.000000 1.0079 0 + 211 DUM 71 MOL O O 0.000000 15.9994 0 + 212 DUM 71 MOL H H 0.000000 1.0079 0 + 213 DUM 71 MOL H H 0.000000 1.0079 0 + 214 DUM 72 MOL O O 0.000000 15.9994 0 + 215 DUM 72 MOL H H 0.000000 1.0079 0 + 216 DUM 72 MOL H H 0.000000 1.0079 0 + 217 DUM 73 MOL O O 0.000000 15.9994 0 + 218 DUM 73 MOL H H 0.000000 1.0079 0 + 219 DUM 73 MOL H H 0.000000 1.0079 0 + 220 DUM 74 MOL O O 0.000000 15.9994 0 + 221 DUM 74 MOL H H 0.000000 1.0079 0 + 222 DUM 74 MOL H H 0.000000 1.0079 0 + 223 DUM 75 MOL O O 0.000000 15.9994 0 + 224 DUM 75 MOL H H 0.000000 1.0079 0 + 225 DUM 75 MOL H H 0.000000 1.0079 0 + 226 DUM 76 MOL O O 0.000000 15.9994 0 + 227 DUM 76 MOL H H 0.000000 1.0079 0 + 228 DUM 76 MOL H H 0.000000 1.0079 0 + 229 DUM 77 MOL O O 0.000000 15.9994 0 + 230 DUM 77 MOL H H 0.000000 1.0079 0 + 231 DUM 77 MOL H H 0.000000 1.0079 0 + 232 DUM 78 MOL O O 0.000000 15.9994 0 + 233 DUM 78 MOL H H 0.000000 1.0079 0 + 234 DUM 78 MOL H H 0.000000 1.0079 0 + 235 DUM 79 MOL O O 0.000000 15.9994 0 + 236 DUM 79 MOL H H 0.000000 1.0079 0 + 237 DUM 79 MOL H H 0.000000 1.0079 0 + 238 DUM 80 MOL O O 0.000000 15.9994 0 + 239 DUM 80 MOL H H 0.000000 1.0079 0 + 240 DUM 80 MOL H H 0.000000 1.0079 0 + 241 DUM 81 MOL O O 0.000000 15.9994 0 + 242 DUM 81 MOL H H 0.000000 1.0079 0 + 243 DUM 81 MOL H H 0.000000 1.0079 0 + 244 DUM 82 MOL O O 0.000000 15.9994 0 + 245 DUM 82 MOL H H 0.000000 1.0079 0 + 246 DUM 82 MOL H H 0.000000 1.0079 0 + 247 DUM 83 MOL O O 0.000000 15.9994 0 + 248 DUM 83 MOL H H 0.000000 1.0079 0 + 249 DUM 83 MOL H H 0.000000 1.0079 0 + 250 DUM 84 MOL O O 0.000000 15.9994 0 + 251 DUM 84 MOL H H 0.000000 1.0079 0 + 252 DUM 84 MOL H H 0.000000 1.0079 0 + 253 DUM 85 MOL O O 0.000000 15.9994 0 + 254 DUM 85 MOL H H 0.000000 1.0079 0 + 255 DUM 85 MOL H H 0.000000 1.0079 0 + 256 DUM 86 MOL O O 0.000000 15.9994 0 + 257 DUM 86 MOL H H 0.000000 1.0079 0 + 258 DUM 86 MOL H H 0.000000 1.0079 0 + 259 DUM 87 MOL O O 0.000000 15.9994 0 + 260 DUM 87 MOL H H 0.000000 1.0079 0 + 261 DUM 87 MOL H H 0.000000 1.0079 0 + 262 DUM 88 MOL O O 0.000000 15.9994 0 + 263 DUM 88 MOL H H 0.000000 1.0079 0 + 264 DUM 88 MOL H H 0.000000 1.0079 0 + 265 DUM 89 MOL O O 0.000000 15.9994 0 + 266 DUM 89 MOL H H 0.000000 1.0079 0 + 267 DUM 89 MOL H H 0.000000 1.0079 0 + 268 DUM 90 MOL O O 0.000000 15.9994 0 + 269 DUM 90 MOL H H 0.000000 1.0079 0 + 270 DUM 90 MOL H H 0.000000 1.0079 0 + 271 DUM 91 MOL O O 0.000000 15.9994 0 + 272 DUM 91 MOL H H 0.000000 1.0079 0 + 273 DUM 91 MOL H H 0.000000 1.0079 0 + 274 DUM 92 MOL O O 0.000000 15.9994 0 + 275 DUM 92 MOL H H 0.000000 1.0079 0 + 276 DUM 92 MOL H H 0.000000 1.0079 0 + 277 DUM 93 MOL O O 0.000000 15.9994 0 + 278 DUM 93 MOL H H 0.000000 1.0079 0 + 279 DUM 93 MOL H H 0.000000 1.0079 0 + 280 DUM 94 MOL O O 0.000000 15.9994 0 + 281 DUM 94 MOL H H 0.000000 1.0079 0 + 282 DUM 94 MOL H H 0.000000 1.0079 0 + 283 DUM 95 MOL O O 0.000000 15.9994 0 + 284 DUM 95 MOL H H 0.000000 1.0079 0 + 285 DUM 95 MOL H H 0.000000 1.0079 0 + 286 DUM 96 MOL O O 0.000000 15.9994 0 + 287 DUM 96 MOL H H 0.000000 1.0079 0 + 288 DUM 96 MOL H H 0.000000 1.0079 0 + 289 DUM 97 MOL O O 0.000000 15.9994 0 + 290 DUM 97 MOL H H 0.000000 1.0079 0 + 291 DUM 97 MOL H H 0.000000 1.0079 0 + 292 DUM 98 MOL O O 0.000000 15.9994 0 + 293 DUM 98 MOL H H 0.000000 1.0079 0 + 294 DUM 98 MOL H H 0.000000 1.0079 0 + 295 DUM 99 MOL O O 0.000000 15.9994 0 + 296 DUM 99 MOL H H 0.000000 1.0079 0 + 297 DUM 99 MOL H H 0.000000 1.0079 0 + 298 DUM 100 MOL O O 0.000000 15.9994 0 + 299 DUM 100 MOL H H 0.000000 1.0079 0 + 300 DUM 100 MOL H H 0.000000 1.0079 0 + 301 DUM 101 MOL O O 0.000000 15.9994 0 + 302 DUM 101 MOL H H 0.000000 1.0079 0 + 303 DUM 101 MOL H H 0.000000 1.0079 0 + 304 DUM 102 MOL O O 0.000000 15.9994 0 + 305 DUM 102 MOL H H 0.000000 1.0079 0 + 306 DUM 102 MOL H H 0.000000 1.0079 0 + 307 DUM 103 MOL O O 0.000000 15.9994 0 + 308 DUM 103 MOL H H 0.000000 1.0079 0 + 309 DUM 103 MOL H H 0.000000 1.0079 0 + 310 DUM 104 MOL O O 0.000000 15.9994 0 + 311 DUM 104 MOL H H 0.000000 1.0079 0 + 312 DUM 104 MOL H H 0.000000 1.0079 0 + 313 DUM 105 MOL O O 0.000000 15.9994 0 + 314 DUM 105 MOL H H 0.000000 1.0079 0 + 315 DUM 105 MOL H H 0.000000 1.0079 0 + 316 DUM 106 MOL O O 0.000000 15.9994 0 + 317 DUM 106 MOL H H 0.000000 1.0079 0 + 318 DUM 106 MOL H H 0.000000 1.0079 0 + 319 DUM 107 MOL O O 0.000000 15.9994 0 + 320 DUM 107 MOL H H 0.000000 1.0079 0 + 321 DUM 107 MOL H H 0.000000 1.0079 0 + 322 DUM 108 MOL O O 0.000000 15.9994 0 + 323 DUM 108 MOL H H 0.000000 1.0079 0 + 324 DUM 108 MOL H H 0.000000 1.0079 0 + 325 DUM 109 MOL O O 0.000000 15.9994 0 + 326 DUM 109 MOL H H 0.000000 1.0079 0 + 327 DUM 109 MOL H H 0.000000 1.0079 0 + 328 DUM 110 MOL O O 0.000000 15.9994 0 + 329 DUM 110 MOL H H 0.000000 1.0079 0 + 330 DUM 110 MOL H H 0.000000 1.0079 0 + 331 DUM 111 MOL O O 0.000000 15.9994 0 + 332 DUM 111 MOL H H 0.000000 1.0079 0 + 333 DUM 111 MOL H H 0.000000 1.0079 0 + 334 DUM 112 MOL O O 0.000000 15.9994 0 + 335 DUM 112 MOL H H 0.000000 1.0079 0 + 336 DUM 112 MOL H H 0.000000 1.0079 0 + 337 DUM 113 MOL O O 0.000000 15.9994 0 + 338 DUM 113 MOL H H 0.000000 1.0079 0 + 339 DUM 113 MOL H H 0.000000 1.0079 0 + 340 DUM 114 MOL O O 0.000000 15.9994 0 + 341 DUM 114 MOL H H 0.000000 1.0079 0 + 342 DUM 114 MOL H H 0.000000 1.0079 0 + 343 DUM 115 MOL O O 0.000000 15.9994 0 + 344 DUM 115 MOL H H 0.000000 1.0079 0 + 345 DUM 115 MOL H H 0.000000 1.0079 0 + 346 DUM 116 MOL O O 0.000000 15.9994 0 + 347 DUM 116 MOL H H 0.000000 1.0079 0 + 348 DUM 116 MOL H H 0.000000 1.0079 0 + 349 DUM 117 MOL O O 0.000000 15.9994 0 + 350 DUM 117 MOL H H 0.000000 1.0079 0 + 351 DUM 117 MOL H H 0.000000 1.0079 0 + 352 DUM 118 MOL O O 0.000000 15.9994 0 + 353 DUM 118 MOL H H 0.000000 1.0079 0 + 354 DUM 118 MOL H H 0.000000 1.0079 0 + 355 DUM 119 MOL O O 0.000000 15.9994 0 + 356 DUM 119 MOL H H 0.000000 1.0079 0 + 357 DUM 119 MOL H H 0.000000 1.0079 0 + 358 DUM 120 MOL O O 0.000000 15.9994 0 + 359 DUM 120 MOL H H 0.000000 1.0079 0 + 360 DUM 120 MOL H H 0.000000 1.0079 0 + 361 DUM 121 MOL O O 0.000000 15.9994 0 + 362 DUM 121 MOL H H 0.000000 1.0079 0 + 363 DUM 121 MOL H H 0.000000 1.0079 0 + 364 DUM 122 MOL O O 0.000000 15.9994 0 + 365 DUM 122 MOL H H 0.000000 1.0079 0 + 366 DUM 122 MOL H H 0.000000 1.0079 0 + 367 DUM 123 MOL O O 0.000000 15.9994 0 + 368 DUM 123 MOL H H 0.000000 1.0079 0 + 369 DUM 123 MOL H H 0.000000 1.0079 0 + 370 DUM 124 MOL O O 0.000000 15.9994 0 + 371 DUM 124 MOL H H 0.000000 1.0079 0 + 372 DUM 124 MOL H H 0.000000 1.0079 0 + 373 DUM 125 MOL O O 0.000000 15.9994 0 + 374 DUM 125 MOL H H 0.000000 1.0079 0 + 375 DUM 125 MOL H H 0.000000 1.0079 0 + 376 DUM 126 MOL O O 0.000000 15.9994 0 + 377 DUM 126 MOL H H 0.000000 1.0079 0 + 378 DUM 126 MOL H H 0.000000 1.0079 0 + 379 DUM 127 MOL O O 0.000000 15.9994 0 + 380 DUM 127 MOL H H 0.000000 1.0079 0 + 381 DUM 127 MOL H H 0.000000 1.0079 0 + 382 DUM 128 MOL O O 0.000000 15.9994 0 + 383 DUM 128 MOL H H 0.000000 1.0079 0 + 384 DUM 128 MOL H H 0.000000 1.0079 0 + 385 DUM 129 MOL O O 0.000000 15.9994 0 + 386 DUM 129 MOL H H 0.000000 1.0079 0 + 387 DUM 129 MOL H H 0.000000 1.0079 0 + 388 DUM 130 MOL O O 0.000000 15.9994 0 + 389 DUM 130 MOL H H 0.000000 1.0079 0 + 390 DUM 130 MOL H H 0.000000 1.0079 0 + 391 DUM 131 MOL O O 0.000000 15.9994 0 + 392 DUM 131 MOL H H 0.000000 1.0079 0 + 393 DUM 131 MOL H H 0.000000 1.0079 0 + 394 DUM 132 MOL O O 0.000000 15.9994 0 + 395 DUM 132 MOL H H 0.000000 1.0079 0 + 396 DUM 132 MOL H H 0.000000 1.0079 0 + 397 DUM 133 MOL O O 0.000000 15.9994 0 + 398 DUM 133 MOL H H 0.000000 1.0079 0 + 399 DUM 133 MOL H H 0.000000 1.0079 0 + 400 DUM 134 MOL O O 0.000000 15.9994 0 + 401 DUM 134 MOL H H 0.000000 1.0079 0 + 402 DUM 134 MOL H H 0.000000 1.0079 0 + 403 DUM 135 MOL O O 0.000000 15.9994 0 + 404 DUM 135 MOL H H 0.000000 1.0079 0 + 405 DUM 135 MOL H H 0.000000 1.0079 0 + 406 DUM 136 MOL O O 0.000000 15.9994 0 + 407 DUM 136 MOL H H 0.000000 1.0079 0 + 408 DUM 136 MOL H H 0.000000 1.0079 0 + 409 DUM 137 MOL O O 0.000000 15.9994 0 + 410 DUM 137 MOL H H 0.000000 1.0079 0 + 411 DUM 137 MOL H H 0.000000 1.0079 0 + 412 DUM 138 MOL O O 0.000000 15.9994 0 + 413 DUM 138 MOL H H 0.000000 1.0079 0 + 414 DUM 138 MOL H H 0.000000 1.0079 0 + 415 DUM 139 MOL O O 0.000000 15.9994 0 + 416 DUM 139 MOL H H 0.000000 1.0079 0 + 417 DUM 139 MOL H H 0.000000 1.0079 0 + 418 DUM 140 MOL O O 0.000000 15.9994 0 + 419 DUM 140 MOL H H 0.000000 1.0079 0 + 420 DUM 140 MOL H H 0.000000 1.0079 0 + 421 DUM 141 MOL O O 0.000000 15.9994 0 + 422 DUM 141 MOL H H 0.000000 1.0079 0 + 423 DUM 141 MOL H H 0.000000 1.0079 0 + 424 DUM 142 MOL O O 0.000000 15.9994 0 + 425 DUM 142 MOL H H 0.000000 1.0079 0 + 426 DUM 142 MOL H H 0.000000 1.0079 0 + 427 DUM 143 MOL O O 0.000000 15.9994 0 + 428 DUM 143 MOL H H 0.000000 1.0079 0 + 429 DUM 143 MOL H H 0.000000 1.0079 0 + 430 DUM 144 MOL O O 0.000000 15.9994 0 + 431 DUM 144 MOL H H 0.000000 1.0079 0 + 432 DUM 144 MOL H H 0.000000 1.0079 0 + 433 DUM 145 MOL O O 0.000000 15.9994 0 + 434 DUM 145 MOL H H 0.000000 1.0079 0 + 435 DUM 145 MOL H H 0.000000 1.0079 0 + 436 DUM 146 MOL O O 0.000000 15.9994 0 + 437 DUM 146 MOL H H 0.000000 1.0079 0 + 438 DUM 146 MOL H H 0.000000 1.0079 0 + 439 DUM 147 MOL O O 0.000000 15.9994 0 + 440 DUM 147 MOL H H 0.000000 1.0079 0 + 441 DUM 147 MOL H H 0.000000 1.0079 0 + 442 DUM 148 MOL O O 0.000000 15.9994 0 + 443 DUM 148 MOL H H 0.000000 1.0079 0 + 444 DUM 148 MOL H H 0.000000 1.0079 0 + 445 DUM 149 MOL O O 0.000000 15.9994 0 + 446 DUM 149 MOL H H 0.000000 1.0079 0 + 447 DUM 149 MOL H H 0.000000 1.0079 0 + 448 DUM 150 MOL O O 0.000000 15.9994 0 + 449 DUM 150 MOL H H 0.000000 1.0079 0 + 450 DUM 150 MOL H H 0.000000 1.0079 0 + 451 DUM 151 MOL O O 0.000000 15.9994 0 + 452 DUM 151 MOL H H 0.000000 1.0079 0 + 453 DUM 151 MOL H H 0.000000 1.0079 0 + 454 DUM 152 MOL O O 0.000000 15.9994 0 + 455 DUM 152 MOL H H 0.000000 1.0079 0 + 456 DUM 152 MOL H H 0.000000 1.0079 0 + 457 DUM 153 MOL O O 0.000000 15.9994 0 + 458 DUM 153 MOL H H 0.000000 1.0079 0 + 459 DUM 153 MOL H H 0.000000 1.0079 0 + 460 DUM 154 MOL O O 0.000000 15.9994 0 + 461 DUM 154 MOL H H 0.000000 1.0079 0 + 462 DUM 154 MOL H H 0.000000 1.0079 0 + 463 DUM 155 MOL O O 0.000000 15.9994 0 + 464 DUM 155 MOL H H 0.000000 1.0079 0 + 465 DUM 155 MOL H H 0.000000 1.0079 0 + 466 DUM 156 MOL O O 0.000000 15.9994 0 + 467 DUM 156 MOL H H 0.000000 1.0079 0 + 468 DUM 156 MOL H H 0.000000 1.0079 0 + 469 DUM 157 MOL O O 0.000000 15.9994 0 + 470 DUM 157 MOL H H 0.000000 1.0079 0 + 471 DUM 157 MOL H H 0.000000 1.0079 0 + 472 DUM 158 MOL O O 0.000000 15.9994 0 + 473 DUM 158 MOL H H 0.000000 1.0079 0 + 474 DUM 158 MOL H H 0.000000 1.0079 0 + 475 DUM 159 MOL O O 0.000000 15.9994 0 + 476 DUM 159 MOL H H 0.000000 1.0079 0 + 477 DUM 159 MOL H H 0.000000 1.0079 0 + 478 DUM 160 MOL O O 0.000000 15.9994 0 + 479 DUM 160 MOL H H 0.000000 1.0079 0 + 480 DUM 160 MOL H H 0.000000 1.0079 0 + 481 DUM 161 MOL O O 0.000000 15.9994 0 + 482 DUM 161 MOL H H 0.000000 1.0079 0 + 483 DUM 161 MOL H H 0.000000 1.0079 0 + 484 DUM 162 MOL O O 0.000000 15.9994 0 + 485 DUM 162 MOL H H 0.000000 1.0079 0 + 486 DUM 162 MOL H H 0.000000 1.0079 0 + 487 DUM 163 MOL O O 0.000000 15.9994 0 + 488 DUM 163 MOL H H 0.000000 1.0079 0 + 489 DUM 163 MOL H H 0.000000 1.0079 0 + 490 DUM 164 MOL O O 0.000000 15.9994 0 + 491 DUM 164 MOL H H 0.000000 1.0079 0 + 492 DUM 164 MOL H H 0.000000 1.0079 0 + 493 DUM 165 MOL O O 0.000000 15.9994 0 + 494 DUM 165 MOL H H 0.000000 1.0079 0 + 495 DUM 165 MOL H H 0.000000 1.0079 0 + 496 DUM 166 MOL O O 0.000000 15.9994 0 + 497 DUM 166 MOL H H 0.000000 1.0079 0 + 498 DUM 166 MOL H H 0.000000 1.0079 0 + 499 DUM 167 MOL O O 0.000000 15.9994 0 + 500 DUM 167 MOL H H 0.000000 1.0079 0 + 501 DUM 167 MOL H H 0.000000 1.0079 0 + 502 DUM 168 MOL O O 0.000000 15.9994 0 + 503 DUM 168 MOL H H 0.000000 1.0079 0 + 504 DUM 168 MOL H H 0.000000 1.0079 0 + 505 DUM 169 MOL O O 0.000000 15.9994 0 + 506 DUM 169 MOL H H 0.000000 1.0079 0 + 507 DUM 169 MOL H H 0.000000 1.0079 0 + 508 DUM 170 MOL O O 0.000000 15.9994 0 + 509 DUM 170 MOL H H 0.000000 1.0079 0 + 510 DUM 170 MOL H H 0.000000 1.0079 0 + 511 DUM 171 MOL O O 0.000000 15.9994 0 + 512 DUM 171 MOL H H 0.000000 1.0079 0 + 513 DUM 171 MOL H H 0.000000 1.0079 0 + 514 DUM 172 MOL O O 0.000000 15.9994 0 + 515 DUM 172 MOL H H 0.000000 1.0079 0 + 516 DUM 172 MOL H H 0.000000 1.0079 0 + 517 DUM 173 MOL O O 0.000000 15.9994 0 + 518 DUM 173 MOL H H 0.000000 1.0079 0 + 519 DUM 173 MOL H H 0.000000 1.0079 0 + 520 DUM 174 MOL O O 0.000000 15.9994 0 + 521 DUM 174 MOL H H 0.000000 1.0079 0 + 522 DUM 174 MOL H H 0.000000 1.0079 0 + 523 DUM 175 MOL O O 0.000000 15.9994 0 + 524 DUM 175 MOL H H 0.000000 1.0079 0 + 525 DUM 175 MOL H H 0.000000 1.0079 0 + 526 DUM 176 MOL O O 0.000000 15.9994 0 + 527 DUM 176 MOL H H 0.000000 1.0079 0 + 528 DUM 176 MOL H H 0.000000 1.0079 0 + 529 DUM 177 MOL O O 0.000000 15.9994 0 + 530 DUM 177 MOL H H 0.000000 1.0079 0 + 531 DUM 177 MOL H H 0.000000 1.0079 0 + 532 DUM 178 MOL O O 0.000000 15.9994 0 + 533 DUM 178 MOL H H 0.000000 1.0079 0 + 534 DUM 178 MOL H H 0.000000 1.0079 0 + 535 DUM 179 MOL O O 0.000000 15.9994 0 + 536 DUM 179 MOL H H 0.000000 1.0079 0 + 537 DUM 179 MOL H H 0.000000 1.0079 0 + 538 DUM 180 MOL O O 0.000000 15.9994 0 + 539 DUM 180 MOL H H 0.000000 1.0079 0 + 540 DUM 180 MOL H H 0.000000 1.0079 0 + 541 DUM 181 MOL O O 0.000000 15.9994 0 + 542 DUM 181 MOL H H 0.000000 1.0079 0 + 543 DUM 181 MOL H H 0.000000 1.0079 0 + 544 DUM 182 MOL O O 0.000000 15.9994 0 + 545 DUM 182 MOL H H 0.000000 1.0079 0 + 546 DUM 182 MOL H H 0.000000 1.0079 0 + 547 DUM 183 MOL O O 0.000000 15.9994 0 + 548 DUM 183 MOL H H 0.000000 1.0079 0 + 549 DUM 183 MOL H H 0.000000 1.0079 0 + 550 DUM 184 MOL O O 0.000000 15.9994 0 + 551 DUM 184 MOL H H 0.000000 1.0079 0 + 552 DUM 184 MOL H H 0.000000 1.0079 0 + 553 DUM 185 MOL O O 0.000000 15.9994 0 + 554 DUM 185 MOL H H 0.000000 1.0079 0 + 555 DUM 185 MOL H H 0.000000 1.0079 0 + 556 DUM 186 MOL O O 0.000000 15.9994 0 + 557 DUM 186 MOL H H 0.000000 1.0079 0 + 558 DUM 186 MOL H H 0.000000 1.0079 0 + 559 DUM 187 MOL O O 0.000000 15.9994 0 + 560 DUM 187 MOL H H 0.000000 1.0079 0 + 561 DUM 187 MOL H H 0.000000 1.0079 0 + 562 DUM 188 MOL O O 0.000000 15.9994 0 + 563 DUM 188 MOL H H 0.000000 1.0079 0 + 564 DUM 188 MOL H H 0.000000 1.0079 0 + 565 DUM 189 MOL O O 0.000000 15.9994 0 + 566 DUM 189 MOL H H 0.000000 1.0079 0 + 567 DUM 189 MOL H H 0.000000 1.0079 0 + 568 DUM 190 MOL O O 0.000000 15.9994 0 + 569 DUM 190 MOL H H 0.000000 1.0079 0 + 570 DUM 190 MOL H H 0.000000 1.0079 0 + 571 DUM 191 MOL O O 0.000000 15.9994 0 + 572 DUM 191 MOL H H 0.000000 1.0079 0 + 573 DUM 191 MOL H H 0.000000 1.0079 0 + 574 DUM 192 MOL O O 0.000000 15.9994 0 + 575 DUM 192 MOL H H 0.000000 1.0079 0 + 576 DUM 192 MOL H H 0.000000 1.0079 0 + 577 DUM 193 MOL O O 0.000000 15.9994 0 + 578 DUM 193 MOL H H 0.000000 1.0079 0 + 579 DUM 193 MOL H H 0.000000 1.0079 0 + 580 DUM 194 MOL O O 0.000000 15.9994 0 + 581 DUM 194 MOL H H 0.000000 1.0079 0 + 582 DUM 194 MOL H H 0.000000 1.0079 0 + 583 DUM 195 MOL O O 0.000000 15.9994 0 + 584 DUM 195 MOL H H 0.000000 1.0079 0 + 585 DUM 195 MOL H H 0.000000 1.0079 0 + 586 DUM 196 MOL O O 0.000000 15.9994 0 + 587 DUM 196 MOL H H 0.000000 1.0079 0 + 588 DUM 196 MOL H H 0.000000 1.0079 0 + 589 DUM 197 MOL O O 0.000000 15.9994 0 + 590 DUM 197 MOL H H 0.000000 1.0079 0 + 591 DUM 197 MOL H H 0.000000 1.0079 0 + 592 DUM 198 MOL O O 0.000000 15.9994 0 + 593 DUM 198 MOL H H 0.000000 1.0079 0 + 594 DUM 198 MOL H H 0.000000 1.0079 0 + 595 DUM 199 MOL O O 0.000000 15.9994 0 + 596 DUM 199 MOL H H 0.000000 1.0079 0 + 597 DUM 199 MOL H H 0.000000 1.0079 0 + 598 DUM 200 MOL O O 0.000000 15.9994 0 + 599 DUM 200 MOL H H 0.000000 1.0079 0 + 600 DUM 200 MOL H H 0.000000 1.0079 0 + 601 DUM 201 MOL O O 0.000000 15.9994 0 + 602 DUM 201 MOL H H 0.000000 1.0079 0 + 603 DUM 201 MOL H H 0.000000 1.0079 0 + 604 DUM 202 MOL O O 0.000000 15.9994 0 + 605 DUM 202 MOL H H 0.000000 1.0079 0 + 606 DUM 202 MOL H H 0.000000 1.0079 0 + 607 DUM 203 MOL O O 0.000000 15.9994 0 + 608 DUM 203 MOL H H 0.000000 1.0079 0 + 609 DUM 203 MOL H H 0.000000 1.0079 0 + 610 DUM 204 MOL O O 0.000000 15.9994 0 + 611 DUM 204 MOL H H 0.000000 1.0079 0 + 612 DUM 204 MOL H H 0.000000 1.0079 0 + 613 DUM 205 MOL O O 0.000000 15.9994 0 + 614 DUM 205 MOL H H 0.000000 1.0079 0 + 615 DUM 205 MOL H H 0.000000 1.0079 0 + 616 DUM 206 MOL O O 0.000000 15.9994 0 + 617 DUM 206 MOL H H 0.000000 1.0079 0 + 618 DUM 206 MOL H H 0.000000 1.0079 0 + 619 DUM 207 MOL O O 0.000000 15.9994 0 + 620 DUM 207 MOL H H 0.000000 1.0079 0 + 621 DUM 207 MOL H H 0.000000 1.0079 0 + 622 DUM 208 MOL O O 0.000000 15.9994 0 + 623 DUM 208 MOL H H 0.000000 1.0079 0 + 624 DUM 208 MOL H H 0.000000 1.0079 0 + 625 DUM 209 MOL O O 0.000000 15.9994 0 + 626 DUM 209 MOL H H 0.000000 1.0079 0 + 627 DUM 209 MOL H H 0.000000 1.0079 0 + 628 DUM 210 MOL O O 0.000000 15.9994 0 + 629 DUM 210 MOL H H 0.000000 1.0079 0 + 630 DUM 210 MOL H H 0.000000 1.0079 0 + 631 DUM 211 MOL O O 0.000000 15.9994 0 + 632 DUM 211 MOL H H 0.000000 1.0079 0 + 633 DUM 211 MOL H H 0.000000 1.0079 0 + 634 DUM 212 MOL O O 0.000000 15.9994 0 + 635 DUM 212 MOL H H 0.000000 1.0079 0 + 636 DUM 212 MOL H H 0.000000 1.0079 0 + 637 DUM 213 MOL O O 0.000000 15.9994 0 + 638 DUM 213 MOL H H 0.000000 1.0079 0 + 639 DUM 213 MOL H H 0.000000 1.0079 0 + 640 DUM 214 MOL O O 0.000000 15.9994 0 + 641 DUM 214 MOL H H 0.000000 1.0079 0 + 642 DUM 214 MOL H H 0.000000 1.0079 0 + 643 DUM 215 MOL O O 0.000000 15.9994 0 + 644 DUM 215 MOL H H 0.000000 1.0079 0 + 645 DUM 215 MOL H H 0.000000 1.0079 0 + 646 DUM 216 MOL O O 0.000000 15.9994 0 + 647 DUM 216 MOL H H 0.000000 1.0079 0 + 648 DUM 216 MOL H H 0.000000 1.0079 0 + 649 DUM 217 MOL O O 0.000000 15.9994 0 + 650 DUM 217 MOL H H 0.000000 1.0079 0 + 651 DUM 217 MOL H H 0.000000 1.0079 0 + 652 DUM 218 MOL O O 0.000000 15.9994 0 + 653 DUM 218 MOL H H 0.000000 1.0079 0 + 654 DUM 218 MOL H H 0.000000 1.0079 0 + 655 DUM 219 MOL O O 0.000000 15.9994 0 + 656 DUM 219 MOL H H 0.000000 1.0079 0 + 657 DUM 219 MOL H H 0.000000 1.0079 0 + 658 DUM 220 MOL O O 0.000000 15.9994 0 + 659 DUM 220 MOL H H 0.000000 1.0079 0 + 660 DUM 220 MOL H H 0.000000 1.0079 0 + 661 DUM 221 MOL O O 0.000000 15.9994 0 + 662 DUM 221 MOL H H 0.000000 1.0079 0 + 663 DUM 221 MOL H H 0.000000 1.0079 0 + 664 DUM 222 MOL O O 0.000000 15.9994 0 + 665 DUM 222 MOL H H 0.000000 1.0079 0 + 666 DUM 222 MOL H H 0.000000 1.0079 0 + 667 DUM 223 MOL O O 0.000000 15.9994 0 + 668 DUM 223 MOL H H 0.000000 1.0079 0 + 669 DUM 223 MOL H H 0.000000 1.0079 0 + 670 DUM 224 MOL O O 0.000000 15.9994 0 + 671 DUM 224 MOL H H 0.000000 1.0079 0 + 672 DUM 224 MOL H H 0.000000 1.0079 0 + 673 DUM 225 MOL O O 0.000000 15.9994 0 + 674 DUM 225 MOL H H 0.000000 1.0079 0 + 675 DUM 225 MOL H H 0.000000 1.0079 0 + 676 DUM 226 MOL O O 0.000000 15.9994 0 + 677 DUM 226 MOL H H 0.000000 1.0079 0 + 678 DUM 226 MOL H H 0.000000 1.0079 0 + 679 DUM 227 MOL O O 0.000000 15.9994 0 + 680 DUM 227 MOL H H 0.000000 1.0079 0 + 681 DUM 227 MOL H H 0.000000 1.0079 0 + 682 DUM 228 MOL O O 0.000000 15.9994 0 + 683 DUM 228 MOL H H 0.000000 1.0079 0 + 684 DUM 228 MOL H H 0.000000 1.0079 0 + 685 DUM 229 MOL O O 0.000000 15.9994 0 + 686 DUM 229 MOL H H 0.000000 1.0079 0 + 687 DUM 229 MOL H H 0.000000 1.0079 0 + 688 DUM 230 MOL O O 0.000000 15.9994 0 + 689 DUM 230 MOL H H 0.000000 1.0079 0 + 690 DUM 230 MOL H H 0.000000 1.0079 0 + 691 DUM 231 MOL O O 0.000000 15.9994 0 + 692 DUM 231 MOL H H 0.000000 1.0079 0 + 693 DUM 231 MOL H H 0.000000 1.0079 0 + 694 DUM 232 MOL O O 0.000000 15.9994 0 + 695 DUM 232 MOL H H 0.000000 1.0079 0 + 696 DUM 232 MOL H H 0.000000 1.0079 0 + 697 DUM 233 MOL O O 0.000000 15.9994 0 + 698 DUM 233 MOL H H 0.000000 1.0079 0 + 699 DUM 233 MOL H H 0.000000 1.0079 0 + 700 DUM 234 MOL O O 0.000000 15.9994 0 + 701 DUM 234 MOL H H 0.000000 1.0079 0 + 702 DUM 234 MOL H H 0.000000 1.0079 0 + 703 DUM 235 MOL O O 0.000000 15.9994 0 + 704 DUM 235 MOL H H 0.000000 1.0079 0 + 705 DUM 235 MOL H H 0.000000 1.0079 0 + 706 DUM 236 MOL O O 0.000000 15.9994 0 + 707 DUM 236 MOL H H 0.000000 1.0079 0 + 708 DUM 236 MOL H H 0.000000 1.0079 0 + 709 DUM 237 MOL O O 0.000000 15.9994 0 + 710 DUM 237 MOL H H 0.000000 1.0079 0 + 711 DUM 237 MOL H H 0.000000 1.0079 0 + 712 DUM 238 MOL O O 0.000000 15.9994 0 + 713 DUM 238 MOL H H 0.000000 1.0079 0 + 714 DUM 238 MOL H H 0.000000 1.0079 0 + 715 DUM 239 MOL O O 0.000000 15.9994 0 + 716 DUM 239 MOL H H 0.000000 1.0079 0 + 717 DUM 239 MOL H H 0.000000 1.0079 0 + 718 DUM 240 MOL O O 0.000000 15.9994 0 + 719 DUM 240 MOL H H 0.000000 1.0079 0 + 720 DUM 240 MOL H H 0.000000 1.0079 0 + 721 DUM 241 MOL O O 0.000000 15.9994 0 + 722 DUM 241 MOL H H 0.000000 1.0079 0 + 723 DUM 241 MOL H H 0.000000 1.0079 0 + 724 DUM 242 MOL O O 0.000000 15.9994 0 + 725 DUM 242 MOL H H 0.000000 1.0079 0 + 726 DUM 242 MOL H H 0.000000 1.0079 0 + 727 DUM 243 MOL O O 0.000000 15.9994 0 + 728 DUM 243 MOL H H 0.000000 1.0079 0 + 729 DUM 243 MOL H H 0.000000 1.0079 0 + 730 DUM 244 MOL O O 0.000000 15.9994 0 + 731 DUM 244 MOL H H 0.000000 1.0079 0 + 732 DUM 244 MOL H H 0.000000 1.0079 0 + 733 DUM 245 MOL O O 0.000000 15.9994 0 + 734 DUM 245 MOL H H 0.000000 1.0079 0 + 735 DUM 245 MOL H H 0.000000 1.0079 0 + 736 DUM 246 MOL O O 0.000000 15.9994 0 + 737 DUM 246 MOL H H 0.000000 1.0079 0 + 738 DUM 246 MOL H H 0.000000 1.0079 0 + 739 DUM 247 MOL O O 0.000000 15.9994 0 + 740 DUM 247 MOL H H 0.000000 1.0079 0 + 741 DUM 247 MOL H H 0.000000 1.0079 0 + 742 DUM 248 MOL O O 0.000000 15.9994 0 + 743 DUM 248 MOL H H 0.000000 1.0079 0 + 744 DUM 248 MOL H H 0.000000 1.0079 0 + 745 DUM 249 MOL O O 0.000000 15.9994 0 + 746 DUM 249 MOL H H 0.000000 1.0079 0 + 747 DUM 249 MOL H H 0.000000 1.0079 0 + 748 DUM 250 MOL O O 0.000000 15.9994 0 + 749 DUM 250 MOL H H 0.000000 1.0079 0 + 750 DUM 250 MOL H H 0.000000 1.0079 0 + 751 DUM 251 MOL O O 0.000000 15.9994 0 + 752 DUM 251 MOL H H 0.000000 1.0079 0 + 753 DUM 251 MOL H H 0.000000 1.0079 0 + 754 DUM 252 MOL O O 0.000000 15.9994 0 + 755 DUM 252 MOL H H 0.000000 1.0079 0 + 756 DUM 252 MOL H H 0.000000 1.0079 0 + 757 DUM 253 MOL O O 0.000000 15.9994 0 + 758 DUM 253 MOL H H 0.000000 1.0079 0 + 759 DUM 253 MOL H H 0.000000 1.0079 0 + 760 DUM 254 MOL O O 0.000000 15.9994 0 + 761 DUM 254 MOL H H 0.000000 1.0079 0 + 762 DUM 254 MOL H H 0.000000 1.0079 0 + 763 DUM 255 MOL O O 0.000000 15.9994 0 + 764 DUM 255 MOL H H 0.000000 1.0079 0 + 765 DUM 255 MOL H H 0.000000 1.0079 0 + 766 DUM 256 MOL O O 0.000000 15.9994 0 + 767 DUM 256 MOL H H 0.000000 1.0079 0 + 768 DUM 256 MOL H H 0.000000 1.0079 0 + 769 DUM 257 MOL O O 0.000000 15.9994 0 + 770 DUM 257 MOL H H 0.000000 1.0079 0 + 771 DUM 257 MOL H H 0.000000 1.0079 0 + 772 DUM 258 MOL O O 0.000000 15.9994 0 + 773 DUM 258 MOL H H 0.000000 1.0079 0 + 774 DUM 258 MOL H H 0.000000 1.0079 0 + 775 DUM 259 MOL O O 0.000000 15.9994 0 + 776 DUM 259 MOL H H 0.000000 1.0079 0 + 777 DUM 259 MOL H H 0.000000 1.0079 0 + 778 DUM 260 MOL O O 0.000000 15.9994 0 + 779 DUM 260 MOL H H 0.000000 1.0079 0 + 780 DUM 260 MOL H H 0.000000 1.0079 0 + 781 DUM 261 MOL O O 0.000000 15.9994 0 + 782 DUM 261 MOL H H 0.000000 1.0079 0 + 783 DUM 261 MOL H H 0.000000 1.0079 0 + 784 DUM 262 MOL O O 0.000000 15.9994 0 + 785 DUM 262 MOL H H 0.000000 1.0079 0 + 786 DUM 262 MOL H H 0.000000 1.0079 0 + 787 DUM 263 MOL O O 0.000000 15.9994 0 + 788 DUM 263 MOL H H 0.000000 1.0079 0 + 789 DUM 263 MOL H H 0.000000 1.0079 0 + 790 DUM 264 MOL O O 0.000000 15.9994 0 + 791 DUM 264 MOL H H 0.000000 1.0079 0 + 792 DUM 264 MOL H H 0.000000 1.0079 0 + 793 DUM 265 MOL O O 0.000000 15.9994 0 + 794 DUM 265 MOL H H 0.000000 1.0079 0 + 795 DUM 265 MOL H H 0.000000 1.0079 0 + 796 DUM 266 MOL O O 0.000000 15.9994 0 + 797 DUM 266 MOL H H 0.000000 1.0079 0 + 798 DUM 266 MOL H H 0.000000 1.0079 0 + 799 DUM 267 MOL O O 0.000000 15.9994 0 + 800 DUM 267 MOL H H 0.000000 1.0079 0 + 801 DUM 267 MOL H H 0.000000 1.0079 0 + 802 DUM 268 MOL O O 0.000000 15.9994 0 + 803 DUM 268 MOL H H 0.000000 1.0079 0 + 804 DUM 268 MOL H H 0.000000 1.0079 0 + 805 DUM 269 MOL O O 0.000000 15.9994 0 + 806 DUM 269 MOL H H 0.000000 1.0079 0 + 807 DUM 269 MOL H H 0.000000 1.0079 0 + 808 DUM 270 MOL O O 0.000000 15.9994 0 + 809 DUM 270 MOL H H 0.000000 1.0079 0 + 810 DUM 270 MOL H H 0.000000 1.0079 0 + 811 DUM 271 MOL O O 0.000000 15.9994 0 + 812 DUM 271 MOL H H 0.000000 1.0079 0 + 813 DUM 271 MOL H H 0.000000 1.0079 0 + 814 DUM 272 MOL O O 0.000000 15.9994 0 + 815 DUM 272 MOL H H 0.000000 1.0079 0 + 816 DUM 272 MOL H H 0.000000 1.0079 0 + 817 DUM 273 MOL O O 0.000000 15.9994 0 + 818 DUM 273 MOL H H 0.000000 1.0079 0 + 819 DUM 273 MOL H H 0.000000 1.0079 0 + 820 DUM 274 MOL O O 0.000000 15.9994 0 + 821 DUM 274 MOL H H 0.000000 1.0079 0 + 822 DUM 274 MOL H H 0.000000 1.0079 0 + 823 DUM 275 MOL O O 0.000000 15.9994 0 + 824 DUM 275 MOL H H 0.000000 1.0079 0 + 825 DUM 275 MOL H H 0.000000 1.0079 0 + 826 DUM 276 MOL O O 0.000000 15.9994 0 + 827 DUM 276 MOL H H 0.000000 1.0079 0 + 828 DUM 276 MOL H H 0.000000 1.0079 0 + 829 DUM 277 MOL O O 0.000000 15.9994 0 + 830 DUM 277 MOL H H 0.000000 1.0079 0 + 831 DUM 277 MOL H H 0.000000 1.0079 0 + 832 DUM 278 MOL O O 0.000000 15.9994 0 + 833 DUM 278 MOL H H 0.000000 1.0079 0 + 834 DUM 278 MOL H H 0.000000 1.0079 0 + 835 DUM 279 MOL O O 0.000000 15.9994 0 + 836 DUM 279 MOL H H 0.000000 1.0079 0 + 837 DUM 279 MOL H H 0.000000 1.0079 0 + 838 DUM 280 MOL O O 0.000000 15.9994 0 + 839 DUM 280 MOL H H 0.000000 1.0079 0 + 840 DUM 280 MOL H H 0.000000 1.0079 0 + 841 DUM 281 MOL O O 0.000000 15.9994 0 + 842 DUM 281 MOL H H 0.000000 1.0079 0 + 843 DUM 281 MOL H H 0.000000 1.0079 0 + 844 DUM 282 MOL O O 0.000000 15.9994 0 + 845 DUM 282 MOL H H 0.000000 1.0079 0 + 846 DUM 282 MOL H H 0.000000 1.0079 0 + 847 DUM 283 MOL O O 0.000000 15.9994 0 + 848 DUM 283 MOL H H 0.000000 1.0079 0 + 849 DUM 283 MOL H H 0.000000 1.0079 0 + 850 DUM 284 MOL O O 0.000000 15.9994 0 + 851 DUM 284 MOL H H 0.000000 1.0079 0 + 852 DUM 284 MOL H H 0.000000 1.0079 0 + 853 DUM 285 MOL O O 0.000000 15.9994 0 + 854 DUM 285 MOL H H 0.000000 1.0079 0 + 855 DUM 285 MOL H H 0.000000 1.0079 0 + 856 DUM 286 MOL O O 0.000000 15.9994 0 + 857 DUM 286 MOL H H 0.000000 1.0079 0 + 858 DUM 286 MOL H H 0.000000 1.0079 0 + 859 DUM 287 MOL O O 0.000000 15.9994 0 + 860 DUM 287 MOL H H 0.000000 1.0079 0 + 861 DUM 287 MOL H H 0.000000 1.0079 0 + 862 DUM 288 MOL O O 0.000000 15.9994 0 + 863 DUM 288 MOL H H 0.000000 1.0079 0 + 864 DUM 288 MOL H H 0.000000 1.0079 0 + 865 DUM 289 MOL O O 0.000000 15.9994 0 + 866 DUM 289 MOL H H 0.000000 1.0079 0 + 867 DUM 289 MOL H H 0.000000 1.0079 0 + 868 DUM 290 MOL O O 0.000000 15.9994 0 + 869 DUM 290 MOL H H 0.000000 1.0079 0 + 870 DUM 290 MOL H H 0.000000 1.0079 0 + 871 DUM 291 MOL O O 0.000000 15.9994 0 + 872 DUM 291 MOL H H 0.000000 1.0079 0 + 873 DUM 291 MOL H H 0.000000 1.0079 0 + 874 DUM 292 MOL O O 0.000000 15.9994 0 + 875 DUM 292 MOL H H 0.000000 1.0079 0 + 876 DUM 292 MOL H H 0.000000 1.0079 0 + 877 DUM 293 MOL O O 0.000000 15.9994 0 + 878 DUM 293 MOL H H 0.000000 1.0079 0 + 879 DUM 293 MOL H H 0.000000 1.0079 0 + 880 DUM 294 MOL O O 0.000000 15.9994 0 + 881 DUM 294 MOL H H 0.000000 1.0079 0 + 882 DUM 294 MOL H H 0.000000 1.0079 0 + 883 DUM 295 MOL O O 0.000000 15.9994 0 + 884 DUM 295 MOL H H 0.000000 1.0079 0 + 885 DUM 295 MOL H H 0.000000 1.0079 0 + 886 DUM 296 MOL O O 0.000000 15.9994 0 + 887 DUM 296 MOL H H 0.000000 1.0079 0 + 888 DUM 296 MOL H H 0.000000 1.0079 0 + 889 DUM 297 MOL O O 0.000000 15.9994 0 + 890 DUM 297 MOL H H 0.000000 1.0079 0 + 891 DUM 297 MOL H H 0.000000 1.0079 0 + 892 DUM 298 MOL O O 0.000000 15.9994 0 + 893 DUM 298 MOL H H 0.000000 1.0079 0 + 894 DUM 298 MOL H H 0.000000 1.0079 0 + 895 DUM 299 MOL O O 0.000000 15.9994 0 + 896 DUM 299 MOL H H 0.000000 1.0079 0 + 897 DUM 299 MOL H H 0.000000 1.0079 0 + 898 DUM 300 MOL O O 0.000000 15.9994 0 + 899 DUM 300 MOL H H 0.000000 1.0079 0 + 900 DUM 300 MOL H H 0.000000 1.0079 0 + 901 DUM 301 MOL O O 0.000000 15.9994 0 + 902 DUM 301 MOL H H 0.000000 1.0079 0 + 903 DUM 301 MOL H H 0.000000 1.0079 0 + 904 DUM 302 MOL O O 0.000000 15.9994 0 + 905 DUM 302 MOL H H 0.000000 1.0079 0 + 906 DUM 302 MOL H H 0.000000 1.0079 0 + 907 DUM 303 MOL O O 0.000000 15.9994 0 + 908 DUM 303 MOL H H 0.000000 1.0079 0 + 909 DUM 303 MOL H H 0.000000 1.0079 0 + 910 DUM 304 MOL O O 0.000000 15.9994 0 + 911 DUM 304 MOL H H 0.000000 1.0079 0 + 912 DUM 304 MOL H H 0.000000 1.0079 0 + 913 DUM 305 MOL O O 0.000000 15.9994 0 + 914 DUM 305 MOL H H 0.000000 1.0079 0 + 915 DUM 305 MOL H H 0.000000 1.0079 0 + 916 DUM 306 MOL O O 0.000000 15.9994 0 + 917 DUM 306 MOL H H 0.000000 1.0079 0 + 918 DUM 306 MOL H H 0.000000 1.0079 0 + 919 DUM 307 MOL O O 0.000000 15.9994 0 + 920 DUM 307 MOL H H 0.000000 1.0079 0 + 921 DUM 307 MOL H H 0.000000 1.0079 0 + 922 DUM 308 MOL O O 0.000000 15.9994 0 + 923 DUM 308 MOL H H 0.000000 1.0079 0 + 924 DUM 308 MOL H H 0.000000 1.0079 0 + 925 DUM 309 MOL O O 0.000000 15.9994 0 + 926 DUM 309 MOL H H 0.000000 1.0079 0 + 927 DUM 309 MOL H H 0.000000 1.0079 0 + 928 DUM 310 MOL O O 0.000000 15.9994 0 + 929 DUM 310 MOL H H 0.000000 1.0079 0 + 930 DUM 310 MOL H H 0.000000 1.0079 0 + 931 DUM 311 MOL O O 0.000000 15.9994 0 + 932 DUM 311 MOL H H 0.000000 1.0079 0 + 933 DUM 311 MOL H H 0.000000 1.0079 0 + 934 DUM 312 MOL O O 0.000000 15.9994 0 + 935 DUM 312 MOL H H 0.000000 1.0079 0 + 936 DUM 312 MOL H H 0.000000 1.0079 0 + 937 DUM 313 MOL O O 0.000000 15.9994 0 + 938 DUM 313 MOL H H 0.000000 1.0079 0 + 939 DUM 313 MOL H H 0.000000 1.0079 0 + 940 DUM 314 MOL O O 0.000000 15.9994 0 + 941 DUM 314 MOL H H 0.000000 1.0079 0 + 942 DUM 314 MOL H H 0.000000 1.0079 0 + 943 DUM 315 MOL O O 0.000000 15.9994 0 + 944 DUM 315 MOL H H 0.000000 1.0079 0 + 945 DUM 315 MOL H H 0.000000 1.0079 0 + 946 DUM 316 MOL O O 0.000000 15.9994 0 + 947 DUM 316 MOL H H 0.000000 1.0079 0 + 948 DUM 316 MOL H H 0.000000 1.0079 0 + 949 DUM 317 MOL O O 0.000000 15.9994 0 + 950 DUM 317 MOL H H 0.000000 1.0079 0 + 951 DUM 317 MOL H H 0.000000 1.0079 0 + 952 DUM 318 MOL O O 0.000000 15.9994 0 + 953 DUM 318 MOL H H 0.000000 1.0079 0 + 954 DUM 318 MOL H H 0.000000 1.0079 0 + 955 DUM 319 MOL O O 0.000000 15.9994 0 + 956 DUM 319 MOL H H 0.000000 1.0079 0 + 957 DUM 319 MOL H H 0.000000 1.0079 0 + 958 DUM 320 MOL O O 0.000000 15.9994 0 + 959 DUM 320 MOL H H 0.000000 1.0079 0 + 960 DUM 320 MOL H H 0.000000 1.0079 0 + 961 DUM 321 MOL O O 0.000000 15.9994 0 + 962 DUM 321 MOL H H 0.000000 1.0079 0 + 963 DUM 321 MOL H H 0.000000 1.0079 0 + 964 DUM 322 MOL O O 0.000000 15.9994 0 + 965 DUM 322 MOL H H 0.000000 1.0079 0 + 966 DUM 322 MOL H H 0.000000 1.0079 0 + 967 DUM 323 MOL O O 0.000000 15.9994 0 + 968 DUM 323 MOL H H 0.000000 1.0079 0 + 969 DUM 323 MOL H H 0.000000 1.0079 0 + 970 DUM 324 MOL O O 0.000000 15.9994 0 + 971 DUM 324 MOL H H 0.000000 1.0079 0 + 972 DUM 324 MOL H H 0.000000 1.0079 0 + 973 DUM 325 MOL O O 0.000000 15.9994 0 + 974 DUM 325 MOL H H 0.000000 1.0079 0 + 975 DUM 325 MOL H H 0.000000 1.0079 0 + 976 DUM 326 MOL O O 0.000000 15.9994 0 + 977 DUM 326 MOL H H 0.000000 1.0079 0 + 978 DUM 326 MOL H H 0.000000 1.0079 0 + 979 DUM 327 MOL O O 0.000000 15.9994 0 + 980 DUM 327 MOL H H 0.000000 1.0079 0 + 981 DUM 327 MOL H H 0.000000 1.0079 0 + 982 DUM 328 MOL O O 0.000000 15.9994 0 + 983 DUM 328 MOL H H 0.000000 1.0079 0 + 984 DUM 328 MOL H H 0.000000 1.0079 0 + 985 DUM 329 MOL O O 0.000000 15.9994 0 + 986 DUM 329 MOL H H 0.000000 1.0079 0 + 987 DUM 329 MOL H H 0.000000 1.0079 0 + 988 DUM 330 MOL O O 0.000000 15.9994 0 + 989 DUM 330 MOL H H 0.000000 1.0079 0 + 990 DUM 330 MOL H H 0.000000 1.0079 0 + 991 DUM 331 MOL O O 0.000000 15.9994 0 + 992 DUM 331 MOL H H 0.000000 1.0079 0 + 993 DUM 331 MOL H H 0.000000 1.0079 0 + 994 DUM 332 MOL O O 0.000000 15.9994 0 + 995 DUM 332 MOL H H 0.000000 1.0079 0 + 996 DUM 332 MOL H H 0.000000 1.0079 0 + 997 DUM 333 MOL O O 0.000000 15.9994 0 + 998 DUM 333 MOL H H 0.000000 1.0079 0 + 999 DUM 333 MOL H H 0.000000 1.0079 0 + 1000 DUM 334 MOL O O 0.000000 15.9994 0 + 1001 DUM 334 MOL H H 0.000000 1.0079 0 + 1002 DUM 334 MOL H H 0.000000 1.0079 0 + 1003 DUM 335 MOL O O 0.000000 15.9994 0 + 1004 DUM 335 MOL H H 0.000000 1.0079 0 + 1005 DUM 335 MOL H H 0.000000 1.0079 0 + 1006 DUM 336 MOL O O 0.000000 15.9994 0 + 1007 DUM 336 MOL H H 0.000000 1.0079 0 + 1008 DUM 336 MOL H H 0.000000 1.0079 0 + 1009 DUM 337 MOL O O 0.000000 15.9994 0 + 1010 DUM 337 MOL H H 0.000000 1.0079 0 + 1011 DUM 337 MOL H H 0.000000 1.0079 0 + 1012 DUM 338 MOL O O 0.000000 15.9994 0 + 1013 DUM 338 MOL H H 0.000000 1.0079 0 + 1014 DUM 338 MOL H H 0.000000 1.0079 0 + 1015 DUM 339 MOL O O 0.000000 15.9994 0 + 1016 DUM 339 MOL H H 0.000000 1.0079 0 + 1017 DUM 339 MOL H H 0.000000 1.0079 0 + 1018 DUM 340 MOL O O 0.000000 15.9994 0 + 1019 DUM 340 MOL H H 0.000000 1.0079 0 + 1020 DUM 340 MOL H H 0.000000 1.0079 0 + 1021 DUM 341 MOL O O 0.000000 15.9994 0 + 1022 DUM 341 MOL H H 0.000000 1.0079 0 + 1023 DUM 341 MOL H H 0.000000 1.0079 0 + 1024 DUM 342 MOL O O 0.000000 15.9994 0 + 1025 DUM 342 MOL H H 0.000000 1.0079 0 + 1026 DUM 342 MOL H H 0.000000 1.0079 0 + 1027 DUM 343 MOL O O 0.000000 15.9994 0 + 1028 DUM 343 MOL H H 0.000000 1.0079 0 + 1029 DUM 343 MOL H H 0.000000 1.0079 0 + 1030 DUM 344 MOL O O 0.000000 15.9994 0 + 1031 DUM 344 MOL H H 0.000000 1.0079 0 + 1032 DUM 344 MOL H H 0.000000 1.0079 0 + 1033 DUM 345 MOL O O 0.000000 15.9994 0 + 1034 DUM 345 MOL H H 0.000000 1.0079 0 + 1035 DUM 345 MOL H H 0.000000 1.0079 0 + 1036 DUM 346 MOL O O 0.000000 15.9994 0 + 1037 DUM 346 MOL H H 0.000000 1.0079 0 + 1038 DUM 346 MOL H H 0.000000 1.0079 0 + 1039 DUM 347 MOL O O 0.000000 15.9994 0 + 1040 DUM 347 MOL H H 0.000000 1.0079 0 + 1041 DUM 347 MOL H H 0.000000 1.0079 0 + 1042 DUM 348 MOL O O 0.000000 15.9994 0 + 1043 DUM 348 MOL H H 0.000000 1.0079 0 + 1044 DUM 348 MOL H H 0.000000 1.0079 0 + 1045 DUM 349 MOL O O 0.000000 15.9994 0 + 1046 DUM 349 MOL H H 0.000000 1.0079 0 + 1047 DUM 349 MOL H H 0.000000 1.0079 0 + 1048 DUM 350 MOL O O 0.000000 15.9994 0 + 1049 DUM 350 MOL H H 0.000000 1.0079 0 + 1050 DUM 350 MOL H H 0.000000 1.0079 0 + 1051 DUM 351 MOL O O 0.000000 15.9994 0 + 1052 DUM 351 MOL H H 0.000000 1.0079 0 + 1053 DUM 351 MOL H H 0.000000 1.0079 0 + 1054 DUM 352 MOL O O 0.000000 15.9994 0 + 1055 DUM 352 MOL H H 0.000000 1.0079 0 + 1056 DUM 352 MOL H H 0.000000 1.0079 0 + 1057 DUM 353 MOL O O 0.000000 15.9994 0 + 1058 DUM 353 MOL H H 0.000000 1.0079 0 + 1059 DUM 353 MOL H H 0.000000 1.0079 0 + 1060 DUM 354 MOL O O 0.000000 15.9994 0 + 1061 DUM 354 MOL H H 0.000000 1.0079 0 + 1062 DUM 354 MOL H H 0.000000 1.0079 0 + 1063 DUM 355 MOL O O 0.000000 15.9994 0 + 1064 DUM 355 MOL H H 0.000000 1.0079 0 + 1065 DUM 355 MOL H H 0.000000 1.0079 0 + 1066 DUM 356 MOL O O 0.000000 15.9994 0 + 1067 DUM 356 MOL H H 0.000000 1.0079 0 + 1068 DUM 356 MOL H H 0.000000 1.0079 0 + 1069 DUM 357 MOL O O 0.000000 15.9994 0 + 1070 DUM 357 MOL H H 0.000000 1.0079 0 + 1071 DUM 357 MOL H H 0.000000 1.0079 0 + 1072 DUM 358 MOL O O 0.000000 15.9994 0 + 1073 DUM 358 MOL H H 0.000000 1.0079 0 + 1074 DUM 358 MOL H H 0.000000 1.0079 0 + 1075 DUM 359 MOL O O 0.000000 15.9994 0 + 1076 DUM 359 MOL H H 0.000000 1.0079 0 + 1077 DUM 359 MOL H H 0.000000 1.0079 0 + 1078 DUM 360 MOL O O 0.000000 15.9994 0 + 1079 DUM 360 MOL H H 0.000000 1.0079 0 + 1080 DUM 360 MOL H H 0.000000 1.0079 0 + 1081 DUM 361 MOL O O 0.000000 15.9994 0 + 1082 DUM 361 MOL H H 0.000000 1.0079 0 + 1083 DUM 361 MOL H H 0.000000 1.0079 0 + 1084 DUM 362 MOL O O 0.000000 15.9994 0 + 1085 DUM 362 MOL H H 0.000000 1.0079 0 + 1086 DUM 362 MOL H H 0.000000 1.0079 0 + 1087 DUM 363 MOL O O 0.000000 15.9994 0 + 1088 DUM 363 MOL H H 0.000000 1.0079 0 + 1089 DUM 363 MOL H H 0.000000 1.0079 0 + 1090 DUM 364 MOL O O 0.000000 15.9994 0 + 1091 DUM 364 MOL H H 0.000000 1.0079 0 + 1092 DUM 364 MOL H H 0.000000 1.0079 0 + 1093 DUM 365 MOL O O 0.000000 15.9994 0 + 1094 DUM 365 MOL H H 0.000000 1.0079 0 + 1095 DUM 365 MOL H H 0.000000 1.0079 0 + 1096 DUM 366 MOL O O 0.000000 15.9994 0 + 1097 DUM 366 MOL H H 0.000000 1.0079 0 + 1098 DUM 366 MOL H H 0.000000 1.0079 0 + 1099 DUM 367 MOL O O 0.000000 15.9994 0 + 1100 DUM 367 MOL H H 0.000000 1.0079 0 + 1101 DUM 367 MOL H H 0.000000 1.0079 0 + 1102 DUM 368 MOL O O 0.000000 15.9994 0 + 1103 DUM 368 MOL H H 0.000000 1.0079 0 + 1104 DUM 368 MOL H H 0.000000 1.0079 0 + 1105 DUM 369 MOL O O 0.000000 15.9994 0 + 1106 DUM 369 MOL H H 0.000000 1.0079 0 + 1107 DUM 369 MOL H H 0.000000 1.0079 0 + 1108 DUM 370 MOL O O 0.000000 15.9994 0 + 1109 DUM 370 MOL H H 0.000000 1.0079 0 + 1110 DUM 370 MOL H H 0.000000 1.0079 0 + 1111 DUM 371 MOL O O 0.000000 15.9994 0 + 1112 DUM 371 MOL H H 0.000000 1.0079 0 + 1113 DUM 371 MOL H H 0.000000 1.0079 0 + 1114 DUM 372 MOL O O 0.000000 15.9994 0 + 1115 DUM 372 MOL H H 0.000000 1.0079 0 + 1116 DUM 372 MOL H H 0.000000 1.0079 0 + 1117 DUM 373 MOL O O 0.000000 15.9994 0 + 1118 DUM 373 MOL H H 0.000000 1.0079 0 + 1119 DUM 373 MOL H H 0.000000 1.0079 0 + 1120 DUM 374 MOL O O 0.000000 15.9994 0 + 1121 DUM 374 MOL H H 0.000000 1.0079 0 + 1122 DUM 374 MOL H H 0.000000 1.0079 0 + 1123 DUM 375 MOL O O 0.000000 15.9994 0 + 1124 DUM 375 MOL H H 0.000000 1.0079 0 + 1125 DUM 375 MOL H H 0.000000 1.0079 0 + 1126 DUM 376 MOL O O 0.000000 15.9994 0 + 1127 DUM 376 MOL H H 0.000000 1.0079 0 + 1128 DUM 376 MOL H H 0.000000 1.0079 0 + 1129 DUM 377 MOL O O 0.000000 15.9994 0 + 1130 DUM 377 MOL H H 0.000000 1.0079 0 + 1131 DUM 377 MOL H H 0.000000 1.0079 0 + 1132 DUM 378 MOL O O 0.000000 15.9994 0 + 1133 DUM 378 MOL H H 0.000000 1.0079 0 + 1134 DUM 378 MOL H H 0.000000 1.0079 0 + 1135 DUM 379 MOL O O 0.000000 15.9994 0 + 1136 DUM 379 MOL H H 0.000000 1.0079 0 + 1137 DUM 379 MOL H H 0.000000 1.0079 0 + 1138 DUM 380 MOL O O 0.000000 15.9994 0 + 1139 DUM 380 MOL H H 0.000000 1.0079 0 + 1140 DUM 380 MOL H H 0.000000 1.0079 0 + 1141 DUM 381 MOL O O 0.000000 15.9994 0 + 1142 DUM 381 MOL H H 0.000000 1.0079 0 + 1143 DUM 381 MOL H H 0.000000 1.0079 0 + 1144 DUM 382 MOL O O 0.000000 15.9994 0 + 1145 DUM 382 MOL H H 0.000000 1.0079 0 + 1146 DUM 382 MOL H H 0.000000 1.0079 0 + 1147 DUM 383 MOL O O 0.000000 15.9994 0 + 1148 DUM 383 MOL H H 0.000000 1.0079 0 + 1149 DUM 383 MOL H H 0.000000 1.0079 0 + 1150 DUM 384 MOL O O 0.000000 15.9994 0 + 1151 DUM 384 MOL H H 0.000000 1.0079 0 + 1152 DUM 384 MOL H H 0.000000 1.0079 0 + 1153 DUM 385 MOL O O 0.000000 15.9994 0 + 1154 DUM 385 MOL H H 0.000000 1.0079 0 + 1155 DUM 385 MOL H H 0.000000 1.0079 0 + 1156 DUM 386 MOL O O 0.000000 15.9994 0 + 1157 DUM 386 MOL H H 0.000000 1.0079 0 + 1158 DUM 386 MOL H H 0.000000 1.0079 0 + 1159 DUM 387 MOL O O 0.000000 15.9994 0 + 1160 DUM 387 MOL H H 0.000000 1.0079 0 + 1161 DUM 387 MOL H H 0.000000 1.0079 0 + 1162 DUM 388 MOL O O 0.000000 15.9994 0 + 1163 DUM 388 MOL H H 0.000000 1.0079 0 + 1164 DUM 388 MOL H H 0.000000 1.0079 0 + 1165 DUM 389 MOL O O 0.000000 15.9994 0 + 1166 DUM 389 MOL H H 0.000000 1.0079 0 + 1167 DUM 389 MOL H H 0.000000 1.0079 0 + 1168 DUM 390 MOL O O 0.000000 15.9994 0 + 1169 DUM 390 MOL H H 0.000000 1.0079 0 + 1170 DUM 390 MOL H H 0.000000 1.0079 0 + 1171 DUM 391 MOL O O 0.000000 15.9994 0 + 1172 DUM 391 MOL H H 0.000000 1.0079 0 + 1173 DUM 391 MOL H H 0.000000 1.0079 0 + 1174 DUM 392 MOL O O 0.000000 15.9994 0 + 1175 DUM 392 MOL H H 0.000000 1.0079 0 + 1176 DUM 392 MOL H H 0.000000 1.0079 0 + 1177 DUM 393 MOL O O 0.000000 15.9994 0 + 1178 DUM 393 MOL H H 0.000000 1.0079 0 + 1179 DUM 393 MOL H H 0.000000 1.0079 0 + 1180 DUM 394 MOL O O 0.000000 15.9994 0 + 1181 DUM 394 MOL H H 0.000000 1.0079 0 + 1182 DUM 394 MOL H H 0.000000 1.0079 0 + 1183 DUM 395 MOL O O 0.000000 15.9994 0 + 1184 DUM 395 MOL H H 0.000000 1.0079 0 + 1185 DUM 395 MOL H H 0.000000 1.0079 0 + 1186 DUM 396 MOL O O 0.000000 15.9994 0 + 1187 DUM 396 MOL H H 0.000000 1.0079 0 + 1188 DUM 396 MOL H H 0.000000 1.0079 0 + 1189 DUM 397 MOL O O 0.000000 15.9994 0 + 1190 DUM 397 MOL H H 0.000000 1.0079 0 + 1191 DUM 397 MOL H H 0.000000 1.0079 0 + 1192 DUM 398 MOL O O 0.000000 15.9994 0 + 1193 DUM 398 MOL H H 0.000000 1.0079 0 + 1194 DUM 398 MOL H H 0.000000 1.0079 0 + 1195 DUM 399 MOL O O 0.000000 15.9994 0 + 1196 DUM 399 MOL H H 0.000000 1.0079 0 + 1197 DUM 399 MOL H H 0.000000 1.0079 0 + 1198 DUM 400 MOL O O 0.000000 15.9994 0 + 1199 DUM 400 MOL H H 0.000000 1.0079 0 + 1200 DUM 400 MOL H H 0.000000 1.0079 0 + 1201 DUM 401 MOL O O 0.000000 15.9994 0 + 1202 DUM 401 MOL H H 0.000000 1.0079 0 + 1203 DUM 401 MOL H H 0.000000 1.0079 0 + 1204 DUM 402 MOL O O 0.000000 15.9994 0 + 1205 DUM 402 MOL H H 0.000000 1.0079 0 + 1206 DUM 402 MOL H H 0.000000 1.0079 0 + 1207 DUM 403 MOL O O 0.000000 15.9994 0 + 1208 DUM 403 MOL H H 0.000000 1.0079 0 + 1209 DUM 403 MOL H H 0.000000 1.0079 0 + 1210 DUM 404 MOL O O 0.000000 15.9994 0 + 1211 DUM 404 MOL H H 0.000000 1.0079 0 + 1212 DUM 404 MOL H H 0.000000 1.0079 0 + 1213 DUM 405 MOL O O 0.000000 15.9994 0 + 1214 DUM 405 MOL H H 0.000000 1.0079 0 + 1215 DUM 405 MOL H H 0.000000 1.0079 0 + 1216 DUM 406 MOL O O 0.000000 15.9994 0 + 1217 DUM 406 MOL H H 0.000000 1.0079 0 + 1218 DUM 406 MOL H H 0.000000 1.0079 0 + 1219 DUM 407 MOL O O 0.000000 15.9994 0 + 1220 DUM 407 MOL H H 0.000000 1.0079 0 + 1221 DUM 407 MOL H H 0.000000 1.0079 0 + 1222 DUM 408 MOL O O 0.000000 15.9994 0 + 1223 DUM 408 MOL H H 0.000000 1.0079 0 + 1224 DUM 408 MOL H H 0.000000 1.0079 0 + 1225 DUM 409 MOL O O 0.000000 15.9994 0 + 1226 DUM 409 MOL H H 0.000000 1.0079 0 + 1227 DUM 409 MOL H H 0.000000 1.0079 0 + 1228 DUM 410 MOL O O 0.000000 15.9994 0 + 1229 DUM 410 MOL H H 0.000000 1.0079 0 + 1230 DUM 410 MOL H H 0.000000 1.0079 0 + 1231 DUM 411 MOL O O 0.000000 15.9994 0 + 1232 DUM 411 MOL H H 0.000000 1.0079 0 + 1233 DUM 411 MOL H H 0.000000 1.0079 0 + 1234 DUM 412 MOL O O 0.000000 15.9994 0 + 1235 DUM 412 MOL H H 0.000000 1.0079 0 + 1236 DUM 412 MOL H H 0.000000 1.0079 0 + 1237 DUM 413 MOL O O 0.000000 15.9994 0 + 1238 DUM 413 MOL H H 0.000000 1.0079 0 + 1239 DUM 413 MOL H H 0.000000 1.0079 0 + 1240 DUM 414 MOL O O 0.000000 15.9994 0 + 1241 DUM 414 MOL H H 0.000000 1.0079 0 + 1242 DUM 414 MOL H H 0.000000 1.0079 0 + 1243 DUM 415 MOL O O 0.000000 15.9994 0 + 1244 DUM 415 MOL H H 0.000000 1.0079 0 + 1245 DUM 415 MOL H H 0.000000 1.0079 0 + 1246 DUM 416 MOL O O 0.000000 15.9994 0 + 1247 DUM 416 MOL H H 0.000000 1.0079 0 + 1248 DUM 416 MOL H H 0.000000 1.0079 0 + 1249 DUM 417 MOL O O 0.000000 15.9994 0 + 1250 DUM 417 MOL H H 0.000000 1.0079 0 + 1251 DUM 417 MOL H H 0.000000 1.0079 0 + 1252 DUM 418 MOL O O 0.000000 15.9994 0 + 1253 DUM 418 MOL H H 0.000000 1.0079 0 + 1254 DUM 418 MOL H H 0.000000 1.0079 0 + 1255 DUM 419 MOL O O 0.000000 15.9994 0 + 1256 DUM 419 MOL H H 0.000000 1.0079 0 + 1257 DUM 419 MOL H H 0.000000 1.0079 0 + 1258 DUM 420 MOL O O 0.000000 15.9994 0 + 1259 DUM 420 MOL H H 0.000000 1.0079 0 + 1260 DUM 420 MOL H H 0.000000 1.0079 0 + 1261 DUM 421 MOL O O 0.000000 15.9994 0 + 1262 DUM 421 MOL H H 0.000000 1.0079 0 + 1263 DUM 421 MOL H H 0.000000 1.0079 0 + 1264 DUM 422 MOL O O 0.000000 15.9994 0 + 1265 DUM 422 MOL H H 0.000000 1.0079 0 + 1266 DUM 422 MOL H H 0.000000 1.0079 0 + 1267 DUM 423 MOL O O 0.000000 15.9994 0 + 1268 DUM 423 MOL H H 0.000000 1.0079 0 + 1269 DUM 423 MOL H H 0.000000 1.0079 0 + 1270 DUM 424 MOL O O 0.000000 15.9994 0 + 1271 DUM 424 MOL H H 0.000000 1.0079 0 + 1272 DUM 424 MOL H H 0.000000 1.0079 0 + 1273 DUM 425 MOL O O 0.000000 15.9994 0 + 1274 DUM 425 MOL H H 0.000000 1.0079 0 + 1275 DUM 425 MOL H H 0.000000 1.0079 0 + 1276 DUM 426 MOL O O 0.000000 15.9994 0 + 1277 DUM 426 MOL H H 0.000000 1.0079 0 + 1278 DUM 426 MOL H H 0.000000 1.0079 0 + 1279 DUM 427 MOL O O 0.000000 15.9994 0 + 1280 DUM 427 MOL H H 0.000000 1.0079 0 + 1281 DUM 427 MOL H H 0.000000 1.0079 0 + 1282 DUM 428 MOL O O 0.000000 15.9994 0 + 1283 DUM 428 MOL H H 0.000000 1.0079 0 + 1284 DUM 428 MOL H H 0.000000 1.0079 0 + 1285 DUM 429 MOL O O 0.000000 15.9994 0 + 1286 DUM 429 MOL H H 0.000000 1.0079 0 + 1287 DUM 429 MOL H H 0.000000 1.0079 0 + 1288 DUM 430 MOL O O 0.000000 15.9994 0 + 1289 DUM 430 MOL H H 0.000000 1.0079 0 + 1290 DUM 430 MOL H H 0.000000 1.0079 0 + 1291 DUM 431 MOL O O 0.000000 15.9994 0 + 1292 DUM 431 MOL H H 0.000000 1.0079 0 + 1293 DUM 431 MOL H H 0.000000 1.0079 0 + 1294 DUM 432 MOL O O 0.000000 15.9994 0 + 1295 DUM 432 MOL H H 0.000000 1.0079 0 + 1296 DUM 432 MOL H H 0.000000 1.0079 0 + 1297 DUM 433 MOL O O 0.000000 15.9994 0 + 1298 DUM 433 MOL H H 0.000000 1.0079 0 + 1299 DUM 433 MOL H H 0.000000 1.0079 0 + 1300 DUM 434 MOL O O 0.000000 15.9994 0 + 1301 DUM 434 MOL H H 0.000000 1.0079 0 + 1302 DUM 434 MOL H H 0.000000 1.0079 0 + 1303 DUM 435 MOL O O 0.000000 15.9994 0 + 1304 DUM 435 MOL H H 0.000000 1.0079 0 + 1305 DUM 435 MOL H H 0.000000 1.0079 0 + 1306 DUM 436 MOL O O 0.000000 15.9994 0 + 1307 DUM 436 MOL H H 0.000000 1.0079 0 + 1308 DUM 436 MOL H H 0.000000 1.0079 0 + 1309 DUM 437 MOL O O 0.000000 15.9994 0 + 1310 DUM 437 MOL H H 0.000000 1.0079 0 + 1311 DUM 437 MOL H H 0.000000 1.0079 0 + 1312 DUM 438 MOL O O 0.000000 15.9994 0 + 1313 DUM 438 MOL H H 0.000000 1.0079 0 + 1314 DUM 438 MOL H H 0.000000 1.0079 0 + 1315 DUM 439 MOL O O 0.000000 15.9994 0 + 1316 DUM 439 MOL H H 0.000000 1.0079 0 + 1317 DUM 439 MOL H H 0.000000 1.0079 0 + 1318 DUM 440 MOL O O 0.000000 15.9994 0 + 1319 DUM 440 MOL H H 0.000000 1.0079 0 + 1320 DUM 440 MOL H H 0.000000 1.0079 0 + 1321 DUM 441 MOL O O 0.000000 15.9994 0 + 1322 DUM 441 MOL H H 0.000000 1.0079 0 + 1323 DUM 441 MOL H H 0.000000 1.0079 0 + 1324 DUM 442 MOL O O 0.000000 15.9994 0 + 1325 DUM 442 MOL H H 0.000000 1.0079 0 + 1326 DUM 442 MOL H H 0.000000 1.0079 0 + 1327 DUM 443 MOL O O 0.000000 15.9994 0 + 1328 DUM 443 MOL H H 0.000000 1.0079 0 + 1329 DUM 443 MOL H H 0.000000 1.0079 0 + 1330 DUM 444 MOL O O 0.000000 15.9994 0 + 1331 DUM 444 MOL H H 0.000000 1.0079 0 + 1332 DUM 444 MOL H H 0.000000 1.0079 0 + 1333 DUM 445 MOL O O 0.000000 15.9994 0 + 1334 DUM 445 MOL H H 0.000000 1.0079 0 + 1335 DUM 445 MOL H H 0.000000 1.0079 0 + 1336 DUM 446 MOL O O 0.000000 15.9994 0 + 1337 DUM 446 MOL H H 0.000000 1.0079 0 + 1338 DUM 446 MOL H H 0.000000 1.0079 0 + 1339 DUM 447 MOL O O 0.000000 15.9994 0 + 1340 DUM 447 MOL H H 0.000000 1.0079 0 + 1341 DUM 447 MOL H H 0.000000 1.0079 0 + 1342 DUM 448 MOL O O 0.000000 15.9994 0 + 1343 DUM 448 MOL H H 0.000000 1.0079 0 + 1344 DUM 448 MOL H H 0.000000 1.0079 0 + 1345 DUM 449 MOL O O 0.000000 15.9994 0 + 1346 DUM 449 MOL H H 0.000000 1.0079 0 + 1347 DUM 449 MOL H H 0.000000 1.0079 0 + 1348 DUM 450 MOL O O 0.000000 15.9994 0 + 1349 DUM 450 MOL H H 0.000000 1.0079 0 + 1350 DUM 450 MOL H H 0.000000 1.0079 0 + 1351 DUM 451 MOL O O 0.000000 15.9994 0 + 1352 DUM 451 MOL H H 0.000000 1.0079 0 + 1353 DUM 451 MOL H H 0.000000 1.0079 0 + 1354 DUM 452 MOL O O 0.000000 15.9994 0 + 1355 DUM 452 MOL H H 0.000000 1.0079 0 + 1356 DUM 452 MOL H H 0.000000 1.0079 0 + 1357 DUM 453 MOL O O 0.000000 15.9994 0 + 1358 DUM 453 MOL H H 0.000000 1.0079 0 + 1359 DUM 453 MOL H H 0.000000 1.0079 0 + 1360 DUM 454 MOL O O 0.000000 15.9994 0 + 1361 DUM 454 MOL H H 0.000000 1.0079 0 + 1362 DUM 454 MOL H H 0.000000 1.0079 0 + 1363 DUM 455 MOL O O 0.000000 15.9994 0 + 1364 DUM 455 MOL H H 0.000000 1.0079 0 + 1365 DUM 455 MOL H H 0.000000 1.0079 0 + 1366 DUM 456 MOL O O 0.000000 15.9994 0 + 1367 DUM 456 MOL H H 0.000000 1.0079 0 + 1368 DUM 456 MOL H H 0.000000 1.0079 0 + 1369 DUM 457 MOL O O 0.000000 15.9994 0 + 1370 DUM 457 MOL H H 0.000000 1.0079 0 + 1371 DUM 457 MOL H H 0.000000 1.0079 0 + 1372 DUM 458 MOL O O 0.000000 15.9994 0 + 1373 DUM 458 MOL H H 0.000000 1.0079 0 + 1374 DUM 458 MOL H H 0.000000 1.0079 0 + 1375 DUM 459 MOL O O 0.000000 15.9994 0 + 1376 DUM 459 MOL H H 0.000000 1.0079 0 + 1377 DUM 459 MOL H H 0.000000 1.0079 0 + 1378 DUM 460 MOL O O 0.000000 15.9994 0 + 1379 DUM 460 MOL H H 0.000000 1.0079 0 + 1380 DUM 460 MOL H H 0.000000 1.0079 0 + 1381 DUM 461 MOL O O 0.000000 15.9994 0 + 1382 DUM 461 MOL H H 0.000000 1.0079 0 + 1383 DUM 461 MOL H H 0.000000 1.0079 0 + 1384 DUM 462 MOL O O 0.000000 15.9994 0 + 1385 DUM 462 MOL H H 0.000000 1.0079 0 + 1386 DUM 462 MOL H H 0.000000 1.0079 0 + 1387 DUM 463 MOL O O 0.000000 15.9994 0 + 1388 DUM 463 MOL H H 0.000000 1.0079 0 + 1389 DUM 463 MOL H H 0.000000 1.0079 0 + 1390 DUM 464 MOL O O 0.000000 15.9994 0 + 1391 DUM 464 MOL H H 0.000000 1.0079 0 + 1392 DUM 464 MOL H H 0.000000 1.0079 0 + 1393 DUM 465 MOL O O 0.000000 15.9994 0 + 1394 DUM 465 MOL H H 0.000000 1.0079 0 + 1395 DUM 465 MOL H H 0.000000 1.0079 0 + 1396 DUM 466 MOL O O 0.000000 15.9994 0 + 1397 DUM 466 MOL H H 0.000000 1.0079 0 + 1398 DUM 466 MOL H H 0.000000 1.0079 0 + 1399 DUM 467 MOL O O 0.000000 15.9994 0 + 1400 DUM 467 MOL H H 0.000000 1.0079 0 + 1401 DUM 467 MOL H H 0.000000 1.0079 0 + 1402 DUM 468 MOL O O 0.000000 15.9994 0 + 1403 DUM 468 MOL H H 0.000000 1.0079 0 + 1404 DUM 468 MOL H H 0.000000 1.0079 0 + 1405 DUM 469 MOL O O 0.000000 15.9994 0 + 1406 DUM 469 MOL H H 0.000000 1.0079 0 + 1407 DUM 469 MOL H H 0.000000 1.0079 0 + 1408 DUM 470 MOL O O 0.000000 15.9994 0 + 1409 DUM 470 MOL H H 0.000000 1.0079 0 + 1410 DUM 470 MOL H H 0.000000 1.0079 0 + 1411 DUM 471 MOL O O 0.000000 15.9994 0 + 1412 DUM 471 MOL H H 0.000000 1.0079 0 + 1413 DUM 471 MOL H H 0.000000 1.0079 0 + 1414 DUM 472 MOL O O 0.000000 15.9994 0 + 1415 DUM 472 MOL H H 0.000000 1.0079 0 + 1416 DUM 472 MOL H H 0.000000 1.0079 0 + 1417 DUM 473 MOL O O 0.000000 15.9994 0 + 1418 DUM 473 MOL H H 0.000000 1.0079 0 + 1419 DUM 473 MOL H H 0.000000 1.0079 0 + 1420 DUM 474 MOL O O 0.000000 15.9994 0 + 1421 DUM 474 MOL H H 0.000000 1.0079 0 + 1422 DUM 474 MOL H H 0.000000 1.0079 0 + 1423 DUM 475 MOL O O 0.000000 15.9994 0 + 1424 DUM 475 MOL H H 0.000000 1.0079 0 + 1425 DUM 475 MOL H H 0.000000 1.0079 0 + 1426 DUM 476 MOL O O 0.000000 15.9994 0 + 1427 DUM 476 MOL H H 0.000000 1.0079 0 + 1428 DUM 476 MOL H H 0.000000 1.0079 0 + 1429 DUM 477 MOL O O 0.000000 15.9994 0 + 1430 DUM 477 MOL H H 0.000000 1.0079 0 + 1431 DUM 477 MOL H H 0.000000 1.0079 0 + 1432 DUM 478 MOL O O 0.000000 15.9994 0 + 1433 DUM 478 MOL H H 0.000000 1.0079 0 + 1434 DUM 478 MOL H H 0.000000 1.0079 0 + 1435 DUM 479 MOL O O 0.000000 15.9994 0 + 1436 DUM 479 MOL H H 0.000000 1.0079 0 + 1437 DUM 479 MOL H H 0.000000 1.0079 0 + 1438 DUM 480 MOL O O 0.000000 15.9994 0 + 1439 DUM 480 MOL H H 0.000000 1.0079 0 + 1440 DUM 480 MOL H H 0.000000 1.0079 0 + 1441 DUM 481 MOL O O 0.000000 15.9994 0 + 1442 DUM 481 MOL H H 0.000000 1.0079 0 + 1443 DUM 481 MOL H H 0.000000 1.0079 0 + 1444 DUM 482 MOL O O 0.000000 15.9994 0 + 1445 DUM 482 MOL H H 0.000000 1.0079 0 + 1446 DUM 482 MOL H H 0.000000 1.0079 0 + 1447 DUM 483 MOL O O 0.000000 15.9994 0 + 1448 DUM 483 MOL H H 0.000000 1.0079 0 + 1449 DUM 483 MOL H H 0.000000 1.0079 0 + 1450 DUM 484 MOL O O 0.000000 15.9994 0 + 1451 DUM 484 MOL H H 0.000000 1.0079 0 + 1452 DUM 484 MOL H H 0.000000 1.0079 0 + 1453 DUM 485 MOL O O 0.000000 15.9994 0 + 1454 DUM 485 MOL H H 0.000000 1.0079 0 + 1455 DUM 485 MOL H H 0.000000 1.0079 0 + 1456 DUM 486 MOL O O 0.000000 15.9994 0 + 1457 DUM 486 MOL H H 0.000000 1.0079 0 + 1458 DUM 486 MOL H H 0.000000 1.0079 0 + 1459 DUM 487 MOL O O 0.000000 15.9994 0 + 1460 DUM 487 MOL H H 0.000000 1.0079 0 + 1461 DUM 487 MOL H H 0.000000 1.0079 0 + 1462 DUM 488 MOL O O 0.000000 15.9994 0 + 1463 DUM 488 MOL H H 0.000000 1.0079 0 + 1464 DUM 488 MOL H H 0.000000 1.0079 0 + 1465 DUM 489 MOL O O 0.000000 15.9994 0 + 1466 DUM 489 MOL H H 0.000000 1.0079 0 + 1467 DUM 489 MOL H H 0.000000 1.0079 0 + 1468 DUM 490 MOL O O 0.000000 15.9994 0 + 1469 DUM 490 MOL H H 0.000000 1.0079 0 + 1470 DUM 490 MOL H H 0.000000 1.0079 0 + 1471 DUM 491 MOL O O 0.000000 15.9994 0 + 1472 DUM 491 MOL H H 0.000000 1.0079 0 + 1473 DUM 491 MOL H H 0.000000 1.0079 0 + 1474 DUM 492 MOL O O 0.000000 15.9994 0 + 1475 DUM 492 MOL H H 0.000000 1.0079 0 + 1476 DUM 492 MOL H H 0.000000 1.0079 0 + 1477 DUM 493 MOL O O 0.000000 15.9994 0 + 1478 DUM 493 MOL H H 0.000000 1.0079 0 + 1479 DUM 493 MOL H H 0.000000 1.0079 0 + 1480 DUM 494 MOL O O 0.000000 15.9994 0 + 1481 DUM 494 MOL H H 0.000000 1.0079 0 + 1482 DUM 494 MOL H H 0.000000 1.0079 0 + 1483 DUM 495 MOL O O 0.000000 15.9994 0 + 1484 DUM 495 MOL H H 0.000000 1.0079 0 + 1485 DUM 495 MOL H H 0.000000 1.0079 0 + 1486 DUM 496 MOL O O 0.000000 15.9994 0 + 1487 DUM 496 MOL H H 0.000000 1.0079 0 + 1488 DUM 496 MOL H H 0.000000 1.0079 0 + 1489 DUM 497 MOL O O 0.000000 15.9994 0 + 1490 DUM 497 MOL H H 0.000000 1.0079 0 + 1491 DUM 497 MOL H H 0.000000 1.0079 0 + 1492 DUM 498 MOL O O 0.000000 15.9994 0 + 1493 DUM 498 MOL H H 0.000000 1.0079 0 + 1494 DUM 498 MOL H H 0.000000 1.0079 0 + 1495 DUM 499 MOL O O 0.000000 15.9994 0 + 1496 DUM 499 MOL H H 0.000000 1.0079 0 + 1497 DUM 499 MOL H H 0.000000 1.0079 0 + 1498 DUM 500 MOL O O 0.000000 15.9994 0 + 1499 DUM 500 MOL H H 0.000000 1.0079 0 + 1500 DUM 500 MOL H H 0.000000 1.0079 0 + 1501 DUM 1 C6 C C 0.000000 12.0107 0 + 1502 DUM 1 C6 C C 0.000000 12.0107 0 + 1503 DUM 1 C6 H H 0.000000 1.0079 0 + 1504 DUM 1 C6 C C 0.000000 12.0107 0 + 1505 DUM 1 C6 H H 0.000000 1.0079 0 + 1506 DUM 1 C6 N N 0.000000 14.0067 0 + 1507 DUM 1 C6 O O 0.000000 15.9994 0 + 1508 DUM 1 C6 C C 0.000000 12.0107 0 + 1509 DUM 1 C6 H H 0.000000 1.0079 0 + 1510 DUM 1 C6 C C 0.000000 12.0107 0 + 1511 DUM 1 C6 C C 0.000000 12.0107 0 + 1512 DUM 1 C6 H H 0.000000 1.0079 0 + 1513 DUM 1 C6 H H 0.000000 1.0079 0 + 1514 DUM 1 C6 H H 0.000000 1.0079 0 + 1515 DUM 1 C6 H H 0.000000 1.0079 0 + 1516 DUM 1 C6 H H 0.000000 1.0079 0 + 1517 DUM 1 C6 H H 0.000000 1.0079 0 + 1518 DUM 1 C6 H H 0.000000 1.0079 0 + 1519 DUM 1 C6 H H 0.000000 1.0079 0 + 1520 DUM 1 C6 H H 0.000000 1.0079 0 + 1521 DUM 2 C6 C C 0.000000 12.0107 0 + 1522 DUM 2 C6 C C 0.000000 12.0107 0 + 1523 DUM 2 C6 H H 0.000000 1.0079 0 + 1524 DUM 2 C6 C C 0.000000 12.0107 0 + 1525 DUM 2 C6 N N 0.000000 14.0067 0 + 1526 DUM 2 C6 O O 0.000000 15.9994 0 + 1527 DUM 2 C6 C C 0.000000 12.0107 0 + 1528 DUM 2 C6 H H 0.000000 1.0079 0 + 1529 DUM 2 C6 C C 0.000000 12.0107 0 + 1530 DUM 2 C6 C C 0.000000 12.0107 0 + 1531 DUM 2 C6 H H 0.000000 1.0079 0 + 1532 DUM 2 C6 H H 0.000000 1.0079 0 + 1533 DUM 2 C6 H H 0.000000 1.0079 0 + 1534 DUM 2 C6 H H 0.000000 1.0079 0 + 1535 DUM 2 C6 H H 0.000000 1.0079 0 + 1536 DUM 2 C6 H H 0.000000 1.0079 0 + 1537 DUM 2 C6 H H 0.000000 1.0079 0 + 1538 DUM 2 C6 H H 0.000000 1.0079 0 + 1539 DUM 2 C6 H H 0.000000 1.0079 0 + 1540 DUM 2 C6 C C 0.000000 12.0107 0 + 1541 DUM 2 C6 C C 0.000000 12.0107 0 + 1542 DUM 2 C6 H H 0.000000 1.0079 0 + 1543 DUM 2 C6 C C 0.000000 12.0107 0 + 1544 DUM 2 C6 N N 0.000000 14.0067 0 + 1545 DUM 2 C6 O O 0.000000 15.9994 0 + 1546 DUM 2 C6 C C 0.000000 12.0107 0 + 1547 DUM 2 C6 H H 0.000000 1.0079 0 + 1548 DUM 2 C6 C C 0.000000 12.0107 0 + 1549 DUM 2 C6 C C 0.000000 12.0107 0 + 1550 DUM 2 C6 H H 0.000000 1.0079 0 + 1551 DUM 2 C6 H H 0.000000 1.0079 0 + 1552 DUM 2 C6 H H 0.000000 1.0079 0 + 1553 DUM 2 C6 H H 0.000000 1.0079 0 + 1554 DUM 2 C6 H H 0.000000 1.0079 0 + 1555 DUM 2 C6 H H 0.000000 1.0079 0 + 1556 DUM 2 C6 H H 0.000000 1.0079 0 + 1557 DUM 2 C6 H H 0.000000 1.0079 0 + 1558 DUM 2 C6 H H 0.000000 1.0079 0 + 1559 DUM 2 C6 C C 0.000000 12.0107 0 + 1560 DUM 2 C6 C C 0.000000 12.0107 0 + 1561 DUM 2 C6 H H 0.000000 1.0079 0 + 1562 DUM 2 C6 C C 0.000000 12.0107 0 + 1563 DUM 2 C6 N N 0.000000 14.0067 0 + 1564 DUM 2 C6 O O 0.000000 15.9994 0 + 1565 DUM 2 C6 C C 0.000000 12.0107 0 + 1566 DUM 2 C6 H H 0.000000 1.0079 0 + 1567 DUM 2 C6 C C 0.000000 12.0107 0 + 1568 DUM 2 C6 C C 0.000000 12.0107 0 + 1569 DUM 2 C6 H H 0.000000 1.0079 0 + 1570 DUM 2 C6 H H 0.000000 1.0079 0 + 1571 DUM 2 C6 H H 0.000000 1.0079 0 + 1572 DUM 2 C6 H H 0.000000 1.0079 0 + 1573 DUM 2 C6 H H 0.000000 1.0079 0 + 1574 DUM 2 C6 H H 0.000000 1.0079 0 + 1575 DUM 2 C6 H H 0.000000 1.0079 0 + 1576 DUM 2 C6 H H 0.000000 1.0079 0 + 1577 DUM 2 C6 H H 0.000000 1.0079 0 + 1578 DUM 2 C6 C C 0.000000 12.0107 0 + 1579 DUM 2 C6 C C 0.000000 12.0107 0 + 1580 DUM 2 C6 H H 0.000000 1.0079 0 + 1581 DUM 2 C6 C C 0.000000 12.0107 0 + 1582 DUM 2 C6 N N 0.000000 14.0067 0 + 1583 DUM 2 C6 O O 0.000000 15.9994 0 + 1584 DUM 2 C6 C C 0.000000 12.0107 0 + 1585 DUM 2 C6 H H 0.000000 1.0079 0 + 1586 DUM 2 C6 C C 0.000000 12.0107 0 + 1587 DUM 2 C6 C C 0.000000 12.0107 0 + 1588 DUM 2 C6 H H 0.000000 1.0079 0 + 1589 DUM 2 C6 H H 0.000000 1.0079 0 + 1590 DUM 2 C6 H H 0.000000 1.0079 0 + 1591 DUM 2 C6 H H 0.000000 1.0079 0 + 1592 DUM 2 C6 H H 0.000000 1.0079 0 + 1593 DUM 2 C6 H H 0.000000 1.0079 0 + 1594 DUM 2 C6 H H 0.000000 1.0079 0 + 1595 DUM 2 C6 H H 0.000000 1.0079 0 + 1596 DUM 2 C6 H H 0.000000 1.0079 0 + 1597 DUM 2 C6 C C 0.000000 12.0107 0 + 1598 DUM 2 C6 C C 0.000000 12.0107 0 + 1599 DUM 2 C6 H H 0.000000 1.0079 0 + 1600 DUM 2 C6 C C 0.000000 12.0107 0 + 1601 DUM 2 C6 N N 0.000000 14.0067 0 + 1602 DUM 2 C6 O O 0.000000 15.9994 0 + 1603 DUM 2 C6 C C 0.000000 12.0107 0 + 1604 DUM 2 C6 H H 0.000000 1.0079 0 + 1605 DUM 2 C6 C C 0.000000 12.0107 0 + 1606 DUM 2 C6 C C 0.000000 12.0107 0 + 1607 DUM 2 C6 H H 0.000000 1.0079 0 + 1608 DUM 2 C6 H H 0.000000 1.0079 0 + 1609 DUM 2 C6 H H 0.000000 1.0079 0 + 1610 DUM 2 C6 H H 0.000000 1.0079 0 + 1611 DUM 2 C6 H H 0.000000 1.0079 0 + 1612 DUM 2 C6 H H 0.000000 1.0079 0 + 1613 DUM 2 C6 H H 0.000000 1.0079 0 + 1614 DUM 2 C6 H H 0.000000 1.0079 0 + 1615 DUM 2 C6 H H 0.000000 1.0079 0 + 1616 DUM 2 C6 C C 0.000000 12.0107 0 + 1617 DUM 2 C6 C C 0.000000 12.0107 0 + 1618 DUM 2 C6 H H 0.000000 1.0079 0 + 1619 DUM 2 C6 C C 0.000000 12.0107 0 + 1620 DUM 2 C6 N N 0.000000 14.0067 0 + 1621 DUM 2 C6 O O 0.000000 15.9994 0 + 1622 DUM 2 C6 C C 0.000000 12.0107 0 + 1623 DUM 2 C6 H H 0.000000 1.0079 0 + 1624 DUM 2 C6 C C 0.000000 12.0107 0 + 1625 DUM 2 C6 C C 0.000000 12.0107 0 + 1626 DUM 2 C6 H H 0.000000 1.0079 0 + 1627 DUM 2 C6 H H 0.000000 1.0079 0 + 1628 DUM 2 C6 H H 0.000000 1.0079 0 + 1629 DUM 2 C6 H H 0.000000 1.0079 0 + 1630 DUM 2 C6 H H 0.000000 1.0079 0 + 1631 DUM 2 C6 H H 0.000000 1.0079 0 + 1632 DUM 2 C6 H H 0.000000 1.0079 0 + 1633 DUM 2 C6 H H 0.000000 1.0079 0 + 1634 DUM 2 C6 H H 0.000000 1.0079 0 + 1635 DUM 2 C6 C C 0.000000 12.0107 0 + 1636 DUM 2 C6 C C 0.000000 12.0107 0 + 1637 DUM 2 C6 H H 0.000000 1.0079 0 + 1638 DUM 2 C6 C C 0.000000 12.0107 0 + 1639 DUM 2 C6 N N 0.000000 14.0067 0 + 1640 DUM 2 C6 O O 0.000000 15.9994 0 + 1641 DUM 2 C6 C C 0.000000 12.0107 0 + 1642 DUM 2 C6 H H 0.000000 1.0079 0 + 1643 DUM 2 C6 C C 0.000000 12.0107 0 + 1644 DUM 2 C6 C C 0.000000 12.0107 0 + 1645 DUM 2 C6 H H 0.000000 1.0079 0 + 1646 DUM 2 C6 H H 0.000000 1.0079 0 + 1647 DUM 2 C6 H H 0.000000 1.0079 0 + 1648 DUM 2 C6 H H 0.000000 1.0079 0 + 1649 DUM 2 C6 H H 0.000000 1.0079 0 + 1650 DUM 2 C6 H H 0.000000 1.0079 0 + 1651 DUM 2 C6 H H 0.000000 1.0079 0 + 1652 DUM 2 C6 H H 0.000000 1.0079 0 + 1653 DUM 2 C6 H H 0.000000 1.0079 0 + 1654 DUM 2 C6 C C 0.000000 12.0107 0 + 1655 DUM 2 C6 C C 0.000000 12.0107 0 + 1656 DUM 2 C6 H H 0.000000 1.0079 0 + 1657 DUM 2 C6 C C 0.000000 12.0107 0 + 1658 DUM 2 C6 N N 0.000000 14.0067 0 + 1659 DUM 2 C6 O O 0.000000 15.9994 0 + 1660 DUM 2 C6 C C 0.000000 12.0107 0 + 1661 DUM 2 C6 H H 0.000000 1.0079 0 + 1662 DUM 2 C6 C C 0.000000 12.0107 0 + 1663 DUM 2 C6 C C 0.000000 12.0107 0 + 1664 DUM 2 C6 H H 0.000000 1.0079 0 + 1665 DUM 2 C6 H H 0.000000 1.0079 0 + 1666 DUM 2 C6 H H 0.000000 1.0079 0 + 1667 DUM 2 C6 H H 0.000000 1.0079 0 + 1668 DUM 2 C6 H H 0.000000 1.0079 0 + 1669 DUM 2 C6 H H 0.000000 1.0079 0 + 1670 DUM 2 C6 H H 0.000000 1.0079 0 + 1671 DUM 2 C6 H H 0.000000 1.0079 0 + 1672 DUM 2 C6 H H 0.000000 1.0079 0 + 1673 DUM 3 C6 C C 0.000000 12.0107 0 + 1674 DUM 3 C6 C C 0.000000 12.0107 0 + 1675 DUM 3 C6 H H 0.000000 1.0079 0 + 1676 DUM 3 C6 H H 0.000000 1.0079 0 + 1677 DUM 3 C6 C C 0.000000 12.0107 0 + 1678 DUM 3 C6 N N 0.000000 14.0067 0 + 1679 DUM 3 C6 O O 0.000000 15.9994 0 + 1680 DUM 3 C6 C C 0.000000 12.0107 0 + 1681 DUM 3 C6 H H 0.000000 1.0079 0 + 1682 DUM 3 C6 C C 0.000000 12.0107 0 + 1683 DUM 3 C6 C C 0.000000 12.0107 0 + 1684 DUM 3 C6 H H 0.000000 1.0079 0 + 1685 DUM 3 C6 H H 0.000000 1.0079 0 + 1686 DUM 3 C6 H H 0.000000 1.0079 0 + 1687 DUM 3 C6 H H 0.000000 1.0079 0 + 1688 DUM 3 C6 H H 0.000000 1.0079 0 + 1689 DUM 3 C6 H H 0.000000 1.0079 0 + 1690 DUM 3 C6 H H 0.000000 1.0079 0 + 1691 DUM 3 C6 H H 0.000000 1.0079 0 + 1692 DUM 3 C6 H H 0.000000 1.0079 0 + 1693 DUM 1 MOL Ca Ca 0.000000 40.0780 0 + 1694 DUM 1 MOL Cl Cl 0.000000 35.4530 0 + 1695 DUM 2 MOL Cl Cl 0.000000 35.4530 0 + + 1191 !NBOND: bonds + 1 2 1 3 4 5 4 6 + 7 8 7 9 10 11 10 12 + 13 14 13 15 16 17 16 18 + 19 20 19 21 22 23 22 24 + 25 26 25 27 28 29 28 30 + 31 32 31 33 34 35 34 36 + 37 38 37 39 40 41 40 42 + 43 44 43 45 46 47 46 48 + 49 50 49 51 52 53 52 54 + 55 56 55 57 58 59 58 60 + 61 62 61 63 64 65 64 66 + 67 68 67 69 70 71 70 72 + 73 74 73 75 76 77 76 78 + 79 80 79 81 82 83 82 84 + 85 86 85 87 88 89 88 90 + 91 92 91 93 94 95 94 96 + 97 98 97 99 100 101 100 102 + 103 104 103 105 106 107 106 108 + 109 110 109 111 112 113 112 114 + 115 116 115 117 118 119 118 120 + 121 122 121 123 124 125 124 126 + 127 128 127 129 130 131 130 132 + 133 134 133 135 136 137 136 138 + 139 140 139 141 142 143 142 144 + 145 146 145 147 148 149 148 150 + 151 152 151 153 154 155 154 156 + 157 158 157 159 160 161 160 162 + 163 164 163 165 166 167 166 168 + 169 170 169 171 172 173 172 174 + 175 176 175 177 178 179 178 180 + 181 182 181 183 184 185 184 186 + 187 188 187 189 190 191 190 192 + 193 194 193 195 196 197 196 198 + 199 200 199 201 202 203 202 204 + 205 206 205 207 208 209 208 210 + 211 212 211 213 214 215 214 216 + 217 218 217 219 220 221 220 222 + 223 224 223 225 226 227 226 228 + 229 230 229 231 232 233 232 234 + 235 236 235 237 238 239 238 240 + 241 242 241 243 244 245 244 246 + 247 248 247 249 250 251 250 252 + 253 254 253 255 256 257 256 258 + 259 260 259 261 262 263 262 264 + 265 266 265 267 268 269 268 270 + 271 272 271 273 274 275 274 276 + 277 278 277 279 280 281 280 282 + 283 284 283 285 286 287 286 288 + 289 290 289 291 292 293 292 294 + 295 296 295 297 298 299 298 300 + 301 302 301 303 304 305 304 306 + 307 308 307 309 310 311 310 312 + 313 314 313 315 316 317 316 318 + 319 320 319 321 322 323 322 324 + 325 326 325 327 328 329 328 330 + 331 332 331 333 334 335 334 336 + 337 338 337 339 340 341 340 342 + 343 344 343 345 346 347 346 348 + 349 350 349 351 352 353 352 354 + 355 356 355 357 358 359 358 360 + 361 362 361 363 364 365 364 366 + 367 368 367 369 370 371 370 372 + 373 374 373 375 376 377 376 378 + 379 380 379 381 382 383 382 384 + 385 386 385 387 388 389 388 390 + 391 392 391 393 394 395 394 396 + 397 398 397 399 400 401 400 402 + 403 404 403 405 406 407 406 408 + 409 410 409 411 412 413 412 414 + 415 416 415 417 418 419 418 420 + 421 422 421 423 424 425 424 426 + 427 428 427 429 430 431 430 432 + 433 434 433 435 436 437 436 438 + 439 440 439 441 442 443 442 444 + 445 446 445 447 448 449 448 450 + 451 452 451 453 454 455 454 456 + 457 458 457 459 460 461 460 462 + 463 464 463 465 466 467 466 468 + 469 470 469 471 472 473 472 474 + 475 476 475 477 478 479 478 480 + 481 482 481 483 484 485 484 486 + 487 488 487 489 490 491 490 492 + 493 494 493 495 496 497 496 498 + 499 500 499 501 502 503 502 504 + 505 506 505 507 508 509 508 510 + 511 512 511 513 514 515 514 516 + 517 518 517 519 520 521 520 522 + 523 524 523 525 526 527 526 528 + 529 530 529 531 532 533 532 534 + 535 536 535 537 538 539 538 540 + 541 542 541 543 544 545 544 546 + 547 548 547 549 550 551 550 552 + 553 554 553 555 556 557 556 558 + 559 560 559 561 562 563 562 564 + 565 566 565 567 568 569 568 570 + 571 572 571 573 574 575 574 576 + 577 578 577 579 580 581 580 582 + 583 584 583 585 586 587 586 588 + 589 590 589 591 592 593 592 594 + 595 596 595 597 598 599 598 600 + 601 602 601 603 604 605 604 606 + 607 608 607 609 610 611 610 612 + 613 614 613 615 616 617 616 618 + 619 620 619 621 622 623 622 624 + 625 626 625 627 628 629 628 630 + 631 632 631 633 634 635 634 636 + 637 638 637 639 640 641 640 642 + 643 644 643 645 646 647 646 648 + 649 650 649 651 652 653 652 654 + 655 656 655 657 658 659 658 660 + 661 662 661 663 664 665 664 666 + 667 668 667 669 670 671 670 672 + 673 674 673 675 676 677 676 678 + 679 680 679 681 682 683 682 684 + 685 686 685 687 688 689 688 690 + 691 692 691 693 694 695 694 696 + 697 698 697 699 700 701 700 702 + 703 704 703 705 706 707 706 708 + 709 710 709 711 712 713 712 714 + 715 716 715 717 718 719 718 720 + 721 722 721 723 724 725 724 726 + 727 728 727 729 730 731 730 732 + 733 734 733 735 736 737 736 738 + 739 740 739 741 742 743 742 744 + 745 746 745 747 748 749 748 750 + 751 752 751 753 754 755 754 756 + 757 758 757 759 760 761 760 762 + 763 764 763 765 766 767 766 768 + 769 770 769 771 772 773 772 774 + 775 776 775 777 778 779 778 780 + 781 782 781 783 784 785 784 786 + 787 788 787 789 790 791 790 792 + 793 794 793 795 796 797 796 798 + 799 800 799 801 802 803 802 804 + 805 806 805 807 808 809 808 810 + 811 812 811 813 814 815 814 816 + 817 818 817 819 820 821 820 822 + 823 824 823 825 826 827 826 828 + 829 830 829 831 832 833 832 834 + 835 836 835 837 838 839 838 840 + 841 842 841 843 844 845 844 846 + 847 848 847 849 850 851 850 852 + 853 854 853 855 856 857 856 858 + 859 860 859 861 862 863 862 864 + 865 866 865 867 868 869 868 870 + 871 872 871 873 874 875 874 876 + 877 878 877 879 880 881 880 882 + 883 884 883 885 886 887 886 888 + 889 890 889 891 892 893 892 894 + 895 896 895 897 898 899 898 900 + 901 902 901 903 904 905 904 906 + 907 908 907 909 910 911 910 912 + 913 914 913 915 916 917 916 918 + 919 920 919 921 922 923 922 924 + 925 926 925 927 928 929 928 930 + 931 932 931 933 934 935 934 936 + 937 938 937 939 940 941 940 942 + 943 944 943 945 946 947 946 948 + 949 950 949 951 952 953 952 954 + 955 956 955 957 958 959 958 960 + 961 962 961 963 964 965 964 966 + 967 968 967 969 970 971 970 972 + 973 974 973 975 976 977 976 978 + 979 980 979 981 982 983 982 984 + 985 986 985 987 988 989 988 990 + 991 992 991 993 994 995 994 996 + 997 998 997 999 1000 1001 1000 1002 + 1003 1004 1003 1005 1006 1007 1006 1008 + 1009 1010 1009 1011 1012 1013 1012 1014 + 1015 1016 1015 1017 1018 1019 1018 1020 + 1021 1022 1021 1023 1024 1025 1024 1026 + 1027 1028 1027 1029 1030 1031 1030 1032 + 1033 1034 1033 1035 1036 1037 1036 1038 + 1039 1040 1039 1041 1042 1043 1042 1044 + 1045 1046 1045 1047 1048 1049 1048 1050 + 1051 1052 1051 1053 1054 1055 1054 1056 + 1057 1058 1057 1059 1060 1061 1060 1062 + 1063 1064 1063 1065 1066 1067 1066 1068 + 1069 1070 1069 1071 1072 1073 1072 1074 + 1075 1076 1075 1077 1078 1079 1078 1080 + 1081 1082 1081 1083 1084 1085 1084 1086 + 1087 1088 1087 1089 1090 1091 1090 1092 + 1093 1094 1093 1095 1096 1097 1096 1098 + 1099 1100 1099 1101 1102 1103 1102 1104 + 1105 1106 1105 1107 1108 1109 1108 1110 + 1111 1112 1111 1113 1114 1115 1114 1116 + 1117 1118 1117 1119 1120 1121 1120 1122 + 1123 1124 1123 1125 1126 1127 1126 1128 + 1129 1130 1129 1131 1132 1133 1132 1134 + 1135 1136 1135 1137 1138 1139 1138 1140 + 1141 1142 1141 1143 1144 1145 1144 1146 + 1147 1148 1147 1149 1150 1151 1150 1152 + 1153 1154 1153 1155 1156 1157 1156 1158 + 1159 1160 1159 1161 1162 1163 1162 1164 + 1165 1166 1165 1167 1168 1169 1168 1170 + 1171 1172 1171 1173 1174 1175 1174 1176 + 1177 1178 1177 1179 1180 1181 1180 1182 + 1183 1184 1183 1185 1186 1187 1186 1188 + 1189 1190 1189 1191 1192 1193 1192 1194 + 1195 1196 1195 1197 1198 1199 1198 1200 + 1201 1202 1201 1203 1204 1205 1204 1206 + 1207 1208 1207 1209 1210 1211 1210 1212 + 1213 1214 1213 1215 1216 1217 1216 1218 + 1219 1220 1219 1221 1222 1223 1222 1224 + 1225 1226 1225 1227 1228 1229 1228 1230 + 1231 1232 1231 1233 1234 1235 1234 1236 + 1237 1238 1237 1239 1240 1241 1240 1242 + 1243 1244 1243 1245 1246 1247 1246 1248 + 1249 1250 1249 1251 1252 1253 1252 1254 + 1255 1256 1255 1257 1258 1259 1258 1260 + 1261 1262 1261 1263 1264 1265 1264 1266 + 1267 1268 1267 1269 1270 1271 1270 1272 + 1273 1274 1273 1275 1276 1277 1276 1278 + 1279 1280 1279 1281 1282 1283 1282 1284 + 1285 1286 1285 1287 1288 1289 1288 1290 + 1291 1292 1291 1293 1294 1295 1294 1296 + 1297 1298 1297 1299 1300 1301 1300 1302 + 1303 1304 1303 1305 1306 1307 1306 1308 + 1309 1310 1309 1311 1312 1313 1312 1314 + 1315 1316 1315 1317 1318 1319 1318 1320 + 1321 1322 1321 1323 1324 1325 1324 1326 + 1327 1328 1327 1329 1330 1331 1330 1332 + 1333 1334 1333 1335 1336 1337 1336 1338 + 1339 1340 1339 1341 1342 1343 1342 1344 + 1345 1346 1345 1347 1348 1349 1348 1350 + 1351 1352 1351 1353 1354 1355 1354 1356 + 1357 1358 1357 1359 1360 1361 1360 1362 + 1363 1364 1363 1365 1366 1367 1366 1368 + 1369 1370 1369 1371 1372 1373 1372 1374 + 1375 1376 1375 1377 1378 1379 1378 1380 + 1381 1382 1381 1383 1384 1385 1384 1386 + 1387 1388 1387 1389 1390 1391 1390 1392 + 1393 1394 1393 1395 1396 1397 1396 1398 + 1399 1400 1399 1401 1402 1403 1402 1404 + 1405 1406 1405 1407 1408 1409 1408 1410 + 1411 1412 1411 1413 1414 1415 1414 1416 + 1417 1418 1417 1419 1420 1421 1420 1422 + 1423 1424 1423 1425 1426 1427 1426 1428 + 1429 1430 1429 1431 1432 1433 1432 1434 + 1435 1436 1435 1437 1438 1439 1438 1440 + 1441 1442 1441 1443 1444 1445 1444 1446 + 1447 1448 1447 1449 1450 1451 1450 1452 + 1453 1454 1453 1455 1456 1457 1456 1458 + 1459 1460 1459 1461 1462 1463 1462 1464 + 1465 1466 1465 1467 1468 1469 1468 1470 + 1471 1472 1471 1473 1474 1475 1474 1476 + 1477 1478 1477 1479 1480 1481 1480 1482 + 1483 1484 1483 1485 1486 1487 1486 1488 + 1489 1490 1489 1491 1492 1493 1492 1494 + 1495 1496 1495 1497 1498 1499 1498 1500 + 1501 1502 1501 1503 1501 1519 1501 1522 + 1502 1504 1502 1505 1502 1520 1504 1506 + 1504 1507 1506 1508 1506 1509 1508 1510 + 1508 1511 1508 1512 1510 1513 1510 1514 + 1510 1515 1511 1516 1511 1517 1511 1518 + 1521 1522 1521 1523 1521 1538 1521 1541 + 1522 1524 1522 1539 1524 1525 1524 1526 + 1525 1527 1525 1528 1527 1529 1527 1530 + 1527 1531 1529 1532 1529 1533 1529 1534 + 1530 1535 1530 1536 1530 1537 1540 1541 + 1540 1542 1540 1557 1540 1560 1541 1543 + 1541 1558 1543 1544 1543 1545 1544 1546 + 1544 1547 1546 1548 1546 1549 1546 1550 + 1548 1551 1548 1552 1548 1553 1549 1554 + 1549 1555 1549 1556 1559 1560 1559 1561 + 1559 1576 1559 1579 1560 1562 1560 1577 + 1562 1563 1562 1564 1563 1565 1563 1566 + 1565 1567 1565 1568 1565 1569 1567 1570 + 1567 1571 1567 1572 1568 1573 1568 1574 + 1568 1575 1578 1579 1578 1580 1578 1595 + 1578 1598 1579 1581 1579 1596 1581 1582 + 1581 1583 1582 1584 1582 1585 1584 1586 + 1584 1587 1584 1588 1586 1589 1586 1590 + 1586 1591 1587 1592 1587 1593 1587 1594 + 1597 1598 1597 1599 1597 1614 1597 1617 + 1598 1600 1598 1615 1600 1601 1600 1602 + 1601 1603 1601 1604 1603 1605 1603 1606 + 1603 1607 1605 1608 1605 1609 1605 1610 + 1606 1611 1606 1612 1606 1613 1616 1617 + 1616 1618 1616 1633 1616 1636 1617 1619 + 1617 1634 1619 1620 1619 1621 1620 1622 + 1620 1623 1622 1624 1622 1625 1622 1626 + 1624 1627 1624 1628 1624 1629 1625 1630 + 1625 1631 1625 1632 1635 1636 1635 1637 + 1635 1652 1635 1655 1636 1638 1636 1653 + 1638 1639 1638 1640 1639 1641 1639 1642 + 1641 1643 1641 1644 1641 1645 1643 1646 + 1643 1647 1643 1648 1644 1649 1644 1650 + 1644 1651 1654 1655 1654 1656 1654 1671 + 1654 1674 1655 1657 1655 1672 1657 1658 + 1657 1659 1658 1660 1658 1661 1660 1662 + 1660 1663 1660 1664 1662 1665 1662 1666 + 1662 1667 1663 1668 1663 1669 1663 1670 + 1673 1674 1673 1675 1673 1676 1673 1691 + 1674 1677 1674 1692 1677 1678 1677 1679 + 1678 1680 1678 1681 1680 1682 1680 1683 + 1680 1684 1682 1685 1682 1686 1682 1687 + 1683 1688 1683 1689 1683 1690 + + 860 !NTHETA: angles + 1502 1504 1507 1522 1524 1526 1541 1543 1545 + 1560 1562 1564 1579 1581 1583 1598 1600 1602 + 1617 1619 1621 1636 1638 1640 1655 1657 1659 + 1674 1677 1679 1502 1504 1506 1522 1524 1525 + 1541 1543 1544 1560 1562 1563 1579 1581 1582 + 1598 1600 1601 1617 1619 1620 1636 1638 1639 + 1655 1657 1658 1674 1677 1678 1506 1504 1507 + 1525 1524 1526 1544 1543 1545 1563 1562 1564 + 1582 1581 1583 1601 1600 1602 1620 1619 1621 + 1639 1638 1640 1658 1657 1659 1678 1677 1679 + 1501 1522 1521 1521 1541 1540 1540 1560 1559 + 1559 1579 1578 1578 1598 1597 1597 1617 1616 + 1616 1636 1635 1635 1655 1654 1502 1501 1522 + 1510 1508 1511 1529 1527 1530 1548 1546 1549 + 1567 1565 1568 1586 1584 1587 1605 1603 1606 + 1624 1622 1625 1643 1641 1644 1662 1660 1663 + 1682 1680 1683 1522 1521 1541 1541 1540 1560 + 1560 1559 1579 1579 1578 1598 1598 1597 1617 + 1617 1616 1636 1636 1635 1655 1655 1654 1674 + 1654 1674 1673 1501 1502 1504 1501 1522 1524 + 1521 1522 1524 1521 1541 1543 1540 1541 1543 + 1540 1560 1562 1559 1560 1562 1559 1579 1581 + 1578 1579 1581 1578 1598 1600 1597 1598 1600 + 1597 1617 1619 1616 1617 1619 1616 1636 1638 + 1635 1636 1638 1635 1655 1657 1654 1655 1657 + 1654 1674 1677 1673 1674 1677 1506 1508 1510 + 1506 1508 1511 1525 1527 1529 1525 1527 1530 + 1544 1546 1548 1544 1546 1549 1563 1565 1567 + 1563 1565 1568 1582 1584 1586 1582 1584 1587 + 1601 1603 1605 1601 1603 1606 1620 1622 1624 + 1620 1622 1625 1639 1641 1643 1639 1641 1644 + 1658 1660 1662 1658 1660 1663 1678 1680 1682 + 1678 1680 1683 1503 1501 1519 1505 1502 1520 + 1523 1521 1538 1542 1540 1557 1561 1559 1576 + 1580 1578 1595 1599 1597 1614 1618 1616 1633 + 1637 1635 1652 1656 1654 1671 1513 1510 1514 + 1513 1510 1515 1514 1510 1515 1516 1511 1517 + 1516 1511 1518 1517 1511 1518 1532 1529 1533 + 1532 1529 1534 1533 1529 1534 1535 1530 1536 + 1535 1530 1537 1536 1530 1537 1551 1548 1552 + 1551 1548 1553 1552 1548 1553 1554 1549 1555 + 1554 1549 1556 1555 1549 1556 1570 1567 1571 + 1570 1567 1572 1571 1567 1572 1573 1568 1574 + 1573 1568 1575 1574 1568 1575 1589 1586 1590 + 1589 1586 1591 1590 1586 1591 1592 1587 1593 + 1592 1587 1594 1593 1587 1594 1608 1605 1609 + 1608 1605 1610 1609 1605 1610 1611 1606 1612 + 1611 1606 1613 1612 1606 1613 1627 1624 1628 + 1627 1624 1629 1628 1624 1629 1630 1625 1631 + 1630 1625 1632 1631 1625 1632 1646 1643 1647 + 1646 1643 1648 1647 1643 1648 1649 1644 1650 + 1649 1644 1651 1650 1644 1651 1665 1662 1666 + 1665 1662 1667 1666 1662 1667 1668 1663 1669 + 1668 1663 1670 1669 1663 1670 1675 1673 1676 + 1675 1673 1691 1676 1673 1691 1685 1682 1686 + 1685 1682 1687 1686 1682 1687 1688 1683 1689 + 1688 1683 1690 1689 1683 1690 1504 1502 1505 + 1504 1502 1520 1524 1522 1539 1543 1541 1558 + 1562 1560 1577 1581 1579 1596 1600 1598 1615 + 1619 1617 1634 1638 1636 1653 1657 1655 1672 + 1677 1674 1692 1506 1508 1512 1525 1527 1531 + 1544 1546 1550 1563 1565 1569 1582 1584 1588 + 1601 1603 1607 1620 1622 1626 1639 1641 1645 + 1658 1660 1664 1678 1680 1684 1501 1502 1505 + 1501 1502 1520 1502 1501 1503 1502 1501 1519 + 1501 1522 1539 1521 1522 1539 1521 1541 1558 + 1540 1541 1558 1540 1560 1577 1559 1560 1577 + 1559 1579 1596 1578 1579 1596 1578 1598 1615 + 1597 1598 1615 1597 1617 1634 1616 1617 1634 + 1616 1636 1653 1635 1636 1653 1635 1655 1672 + 1654 1655 1672 1654 1674 1692 1508 1510 1513 + 1508 1510 1514 1508 1510 1515 1508 1511 1516 + 1508 1511 1517 1508 1511 1518 1527 1529 1532 + 1527 1529 1533 1527 1529 1534 1527 1530 1535 + 1527 1530 1536 1527 1530 1537 1546 1548 1551 + 1546 1548 1552 1546 1548 1553 1546 1549 1554 + 1546 1549 1555 1546 1549 1556 1565 1567 1570 + 1565 1567 1571 1565 1567 1572 1565 1568 1573 + 1565 1568 1574 1565 1568 1575 1584 1586 1589 + 1584 1586 1590 1584 1586 1591 1584 1587 1592 + 1584 1587 1593 1584 1587 1594 1603 1605 1608 + 1603 1605 1609 1603 1605 1610 1603 1606 1611 + 1603 1606 1612 1603 1606 1613 1622 1624 1627 + 1622 1624 1628 1622 1624 1629 1622 1625 1630 + 1622 1625 1631 1622 1625 1632 1641 1643 1646 + 1641 1643 1647 1641 1643 1648 1641 1644 1649 + 1641 1644 1650 1641 1644 1651 1660 1662 1665 + 1660 1662 1666 1660 1662 1667 1660 1663 1668 + 1660 1663 1669 1660 1663 1670 1680 1682 1685 + 1680 1682 1686 1680 1682 1687 1680 1683 1688 + 1680 1683 1689 1680 1683 1690 1510 1508 1512 + 1511 1508 1512 1529 1527 1531 1530 1527 1531 + 1548 1546 1550 1549 1546 1550 1567 1565 1569 + 1568 1565 1569 1586 1584 1588 1587 1584 1588 + 1605 1603 1607 1606 1603 1607 1624 1622 1626 + 1625 1622 1626 1643 1641 1645 1644 1641 1645 + 1662 1660 1664 1663 1660 1664 1682 1680 1684 + 1683 1680 1684 1503 1501 1522 1519 1501 1522 + 1522 1521 1523 1522 1521 1538 1523 1521 1541 + 1538 1521 1541 1541 1540 1542 1541 1540 1557 + 1542 1540 1560 1557 1540 1560 1560 1559 1561 + 1560 1559 1576 1561 1559 1579 1576 1559 1579 + 1579 1578 1580 1579 1578 1595 1580 1578 1598 + 1595 1578 1598 1598 1597 1599 1598 1597 1614 + 1599 1597 1617 1614 1597 1617 1617 1616 1618 + 1617 1616 1633 1618 1616 1636 1633 1616 1636 + 1636 1635 1637 1636 1635 1652 1637 1635 1655 + 1652 1635 1655 1655 1654 1656 1655 1654 1671 + 1656 1654 1674 1671 1654 1674 1673 1674 1692 + 1674 1673 1675 1674 1673 1676 1674 1673 1691 + 1504 1506 1508 1524 1525 1527 1543 1544 1546 + 1562 1563 1565 1581 1582 1584 1600 1601 1603 + 1619 1620 1622 1638 1639 1641 1657 1658 1660 + 1677 1678 1680 1504 1506 1509 1524 1525 1528 + 1543 1544 1547 1562 1563 1566 1581 1582 1585 + 1600 1601 1604 1619 1620 1623 1638 1639 1642 + 1657 1658 1661 1677 1678 1681 1508 1506 1509 + 1527 1525 1528 1546 1544 1547 1565 1563 1566 + 1584 1582 1585 1603 1601 1604 1622 1620 1623 + 1641 1639 1642 1660 1658 1661 1680 1678 1681 + 2 1 3 5 4 6 8 7 9 + 11 10 12 14 13 15 17 16 18 + 20 19 21 23 22 24 26 25 27 + 29 28 30 32 31 33 35 34 36 + 38 37 39 41 40 42 44 43 45 + 47 46 48 50 49 51 53 52 54 + 56 55 57 59 58 60 62 61 63 + 65 64 66 68 67 69 71 70 72 + 74 73 75 77 76 78 80 79 81 + 83 82 84 86 85 87 89 88 90 + 92 91 93 95 94 96 98 97 99 + 101 100 102 104 103 105 107 106 108 + 110 109 111 113 112 114 116 115 117 + 119 118 120 122 121 123 125 124 126 + 128 127 129 131 130 132 134 133 135 + 137 136 138 140 139 141 143 142 144 + 146 145 147 149 148 150 152 151 153 + 155 154 156 158 157 159 161 160 162 + 164 163 165 167 166 168 170 169 171 + 173 172 174 176 175 177 179 178 180 + 182 181 183 185 184 186 188 187 189 + 191 190 192 194 193 195 197 196 198 + 200 199 201 203 202 204 206 205 207 + 209 208 210 212 211 213 215 214 216 + 218 217 219 221 220 222 224 223 225 + 227 226 228 230 229 231 233 232 234 + 236 235 237 239 238 240 242 241 243 + 245 244 246 248 247 249 251 250 252 + 254 253 255 257 256 258 260 259 261 + 263 262 264 266 265 267 269 268 270 + 272 271 273 275 274 276 278 277 279 + 281 280 282 284 283 285 287 286 288 + 290 289 291 293 292 294 296 295 297 + 299 298 300 302 301 303 305 304 306 + 308 307 309 311 310 312 314 313 315 + 317 316 318 320 319 321 323 322 324 + 326 325 327 329 328 330 332 331 333 + 335 334 336 338 337 339 341 340 342 + 344 343 345 347 346 348 350 349 351 + 353 352 354 356 355 357 359 358 360 + 362 361 363 365 364 366 368 367 369 + 371 370 372 374 373 375 377 376 378 + 380 379 381 383 382 384 386 385 387 + 389 388 390 392 391 393 395 394 396 + 398 397 399 401 400 402 404 403 405 + 407 406 408 410 409 411 413 412 414 + 416 415 417 419 418 420 422 421 423 + 425 424 426 428 427 429 431 430 432 + 434 433 435 437 436 438 440 439 441 + 443 442 444 446 445 447 449 448 450 + 452 451 453 455 454 456 458 457 459 + 461 460 462 464 463 465 467 466 468 + 470 469 471 473 472 474 476 475 477 + 479 478 480 482 481 483 485 484 486 + 488 487 489 491 490 492 494 493 495 + 497 496 498 500 499 501 503 502 504 + 506 505 507 509 508 510 512 511 513 + 515 514 516 518 517 519 521 520 522 + 524 523 525 527 526 528 530 529 531 + 533 532 534 536 535 537 539 538 540 + 542 541 543 545 544 546 548 547 549 + 551 550 552 554 553 555 557 556 558 + 560 559 561 563 562 564 566 565 567 + 569 568 570 572 571 573 575 574 576 + 578 577 579 581 580 582 584 583 585 + 587 586 588 590 589 591 593 592 594 + 596 595 597 599 598 600 602 601 603 + 605 604 606 608 607 609 611 610 612 + 614 613 615 617 616 618 620 619 621 + 623 622 624 626 625 627 629 628 630 + 632 631 633 635 634 636 638 637 639 + 641 640 642 644 643 645 647 646 648 + 650 649 651 653 652 654 656 655 657 + 659 658 660 662 661 663 665 664 666 + 668 667 669 671 670 672 674 673 675 + 677 676 678 680 679 681 683 682 684 + 686 685 687 689 688 690 692 691 693 + 695 694 696 698 697 699 701 700 702 + 704 703 705 707 706 708 710 709 711 + 713 712 714 716 715 717 719 718 720 + 722 721 723 725 724 726 728 727 729 + 731 730 732 734 733 735 737 736 738 + 740 739 741 743 742 744 746 745 747 + 749 748 750 752 751 753 755 754 756 + 758 757 759 761 760 762 764 763 765 + 767 766 768 770 769 771 773 772 774 + 776 775 777 779 778 780 782 781 783 + 785 784 786 788 787 789 791 790 792 + 794 793 795 797 796 798 800 799 801 + 803 802 804 806 805 807 809 808 810 + 812 811 813 815 814 816 818 817 819 + 821 820 822 824 823 825 827 826 828 + 830 829 831 833 832 834 836 835 837 + 839 838 840 842 841 843 845 844 846 + 848 847 849 851 850 852 854 853 855 + 857 856 858 860 859 861 863 862 864 + 866 865 867 869 868 870 872 871 873 + 875 874 876 878 877 879 881 880 882 + 884 883 885 887 886 888 890 889 891 + 893 892 894 896 895 897 899 898 900 + 902 901 903 905 904 906 908 907 909 + 911 910 912 914 913 915 917 916 918 + 920 919 921 923 922 924 926 925 927 + 929 928 930 932 931 933 935 934 936 + 938 937 939 941 940 942 944 943 945 + 947 946 948 950 949 951 953 952 954 + 956 955 957 959 958 960 962 961 963 + 965 964 966 968 967 969 971 970 972 + 974 973 975 977 976 978 980 979 981 + 983 982 984 986 985 987 989 988 990 + 992 991 993 995 994 996 998 997 999 + 1001 1000 1002 1004 1003 1005 1007 1006 1008 + 1010 1009 1011 1013 1012 1014 1016 1015 1017 + 1019 1018 1020 1022 1021 1023 1025 1024 1026 + 1028 1027 1029 1031 1030 1032 1034 1033 1035 + 1037 1036 1038 1040 1039 1041 1043 1042 1044 + 1046 1045 1047 1049 1048 1050 1052 1051 1053 + 1055 1054 1056 1058 1057 1059 1061 1060 1062 + 1064 1063 1065 1067 1066 1068 1070 1069 1071 + 1073 1072 1074 1076 1075 1077 1079 1078 1080 + 1082 1081 1083 1085 1084 1086 1088 1087 1089 + 1091 1090 1092 1094 1093 1095 1097 1096 1098 + 1100 1099 1101 1103 1102 1104 1106 1105 1107 + 1109 1108 1110 1112 1111 1113 1115 1114 1116 + 1118 1117 1119 1121 1120 1122 1124 1123 1125 + 1127 1126 1128 1130 1129 1131 1133 1132 1134 + 1136 1135 1137 1139 1138 1140 1142 1141 1143 + 1145 1144 1146 1148 1147 1149 1151 1150 1152 + 1154 1153 1155 1157 1156 1158 1160 1159 1161 + 1163 1162 1164 1166 1165 1167 1169 1168 1170 + 1172 1171 1173 1175 1174 1176 1178 1177 1179 + 1181 1180 1182 1184 1183 1185 1187 1186 1188 + 1190 1189 1191 1193 1192 1194 1196 1195 1197 + 1199 1198 1200 1202 1201 1203 1205 1204 1206 + 1208 1207 1209 1211 1210 1212 1214 1213 1215 + 1217 1216 1218 1220 1219 1221 1223 1222 1224 + 1226 1225 1227 1229 1228 1230 1232 1231 1233 + 1235 1234 1236 1238 1237 1239 1241 1240 1242 + 1244 1243 1245 1247 1246 1248 1250 1249 1251 + 1253 1252 1254 1256 1255 1257 1259 1258 1260 + 1262 1261 1263 1265 1264 1266 1268 1267 1269 + 1271 1270 1272 1274 1273 1275 1277 1276 1278 + 1280 1279 1281 1283 1282 1284 1286 1285 1287 + 1289 1288 1290 1292 1291 1293 1295 1294 1296 + 1298 1297 1299 1301 1300 1302 1304 1303 1305 + 1307 1306 1308 1310 1309 1311 1313 1312 1314 + 1316 1315 1317 1319 1318 1320 1322 1321 1323 + 1325 1324 1326 1328 1327 1329 1331 1330 1332 + 1334 1333 1335 1337 1336 1338 1340 1339 1341 + 1343 1342 1344 1346 1345 1347 1349 1348 1350 + 1352 1351 1353 1355 1354 1356 1358 1357 1359 + 1361 1360 1362 1364 1363 1365 1367 1366 1368 + 1370 1369 1371 1373 1372 1374 1376 1375 1377 + 1379 1378 1380 1382 1381 1383 1385 1384 1386 + 1388 1387 1389 1391 1390 1392 1394 1393 1395 + 1397 1396 1398 1400 1399 1401 1403 1402 1404 + 1406 1405 1407 1409 1408 1410 1412 1411 1413 + 1415 1414 1416 1418 1417 1419 1421 1420 1422 + 1424 1423 1425 1427 1426 1428 1430 1429 1431 + 1433 1432 1434 1436 1435 1437 1439 1438 1440 + 1442 1441 1443 1445 1444 1446 1448 1447 1449 + 1451 1450 1452 1454 1453 1455 1457 1456 1458 + 1460 1459 1461 1463 1462 1464 1466 1465 1467 + 1469 1468 1470 1472 1471 1473 1475 1474 1476 + 1478 1477 1479 1481 1480 1482 1484 1483 1485 + 1487 1486 1488 1490 1489 1491 1493 1492 1494 + 1496 1495 1497 1499 1498 1500 + + 511 !NPHI: dihedrals + 1501 1502 1504 1507 1501 1522 1524 1526 + 1521 1522 1524 1526 1521 1541 1543 1545 + 1540 1541 1543 1545 1540 1560 1562 1564 + 1559 1560 1562 1564 1559 1579 1581 1583 + 1578 1579 1581 1583 1578 1598 1600 1602 + 1597 1598 1600 1602 1597 1617 1619 1621 + 1616 1617 1619 1621 1616 1636 1638 1640 + 1635 1636 1638 1640 1635 1655 1657 1659 + 1654 1655 1657 1659 1654 1674 1677 1679 + 1673 1674 1677 1679 1505 1502 1504 1507 + 1520 1502 1504 1507 1539 1522 1524 1526 + 1558 1541 1543 1545 1577 1560 1562 1564 + 1596 1579 1581 1583 1615 1598 1600 1602 + 1634 1617 1619 1621 1653 1636 1638 1640 + 1672 1655 1657 1659 1692 1674 1677 1679 + 1501 1502 1504 1506 1501 1522 1524 1525 + 1521 1522 1524 1525 1521 1541 1543 1544 + 1540 1541 1543 1544 1540 1560 1562 1563 + 1559 1560 1562 1563 1559 1579 1581 1582 + 1578 1579 1581 1582 1578 1598 1600 1601 + 1597 1598 1600 1601 1597 1617 1619 1620 + 1616 1617 1619 1620 1616 1636 1638 1639 + 1635 1636 1638 1639 1635 1655 1657 1658 + 1654 1655 1657 1658 1654 1674 1677 1678 + 1673 1674 1677 1678 1505 1502 1504 1506 + 1520 1502 1504 1506 1539 1522 1524 1525 + 1558 1541 1543 1544 1577 1560 1562 1563 + 1596 1579 1581 1582 1615 1598 1600 1601 + 1634 1617 1619 1620 1653 1636 1638 1639 + 1672 1655 1657 1658 1692 1674 1677 1678 + 1507 1504 1506 1508 1526 1524 1525 1527 + 1545 1543 1544 1546 1564 1562 1563 1565 + 1583 1581 1582 1584 1602 1600 1601 1603 + 1621 1619 1620 1622 1640 1638 1639 1641 + 1659 1657 1658 1660 1679 1677 1678 1680 + 1507 1504 1506 1509 1526 1524 1525 1528 + 1545 1543 1544 1547 1564 1562 1563 1566 + 1583 1581 1582 1585 1602 1600 1601 1604 + 1621 1619 1620 1623 1640 1638 1639 1642 + 1659 1657 1658 1661 1679 1677 1678 1681 + 1502 1504 1506 1508 1522 1524 1525 1527 + 1541 1543 1544 1546 1560 1562 1563 1565 + 1579 1581 1582 1584 1598 1600 1601 1603 + 1617 1619 1620 1622 1636 1638 1639 1641 + 1655 1657 1658 1660 1674 1677 1678 1680 + 1502 1504 1506 1509 1522 1524 1525 1528 + 1541 1543 1544 1547 1560 1562 1563 1566 + 1579 1581 1582 1585 1598 1600 1601 1604 + 1617 1619 1620 1623 1636 1638 1639 1642 + 1655 1657 1658 1661 1674 1677 1678 1681 + 1522 1501 1502 1504 1502 1501 1522 1524 + 1541 1521 1522 1524 1522 1521 1541 1543 + 1560 1540 1541 1543 1541 1540 1560 1562 + 1579 1559 1560 1562 1560 1559 1579 1581 + 1598 1578 1579 1581 1579 1578 1598 1600 + 1617 1597 1598 1600 1598 1597 1617 1619 + 1636 1616 1617 1619 1617 1616 1636 1638 + 1655 1635 1636 1638 1636 1635 1655 1657 + 1674 1654 1655 1657 1655 1654 1674 1677 + 1503 1501 1502 1504 1519 1501 1502 1504 + 1503 1501 1522 1524 1519 1501 1522 1524 + 1523 1521 1522 1524 1538 1521 1522 1524 + 1523 1521 1541 1543 1538 1521 1541 1543 + 1542 1540 1541 1543 1557 1540 1541 1543 + 1542 1540 1560 1562 1557 1540 1560 1562 + 1561 1559 1560 1562 1576 1559 1560 1562 + 1561 1559 1579 1581 1576 1559 1579 1581 + 1580 1578 1579 1581 1595 1578 1579 1581 + 1580 1578 1598 1600 1595 1578 1598 1600 + 1599 1597 1598 1600 1614 1597 1598 1600 + 1599 1597 1617 1619 1614 1597 1617 1619 + 1618 1616 1617 1619 1633 1616 1617 1619 + 1618 1616 1636 1638 1633 1616 1636 1638 + 1637 1635 1636 1638 1652 1635 1636 1638 + 1637 1635 1655 1657 1652 1635 1655 1657 + 1656 1654 1655 1657 1671 1654 1655 1657 + 1656 1654 1674 1677 1671 1654 1674 1677 + 1675 1673 1674 1677 1676 1673 1674 1677 + 1691 1673 1674 1677 1541 1521 1522 1501 + 1560 1540 1541 1521 1522 1521 1541 1540 + 1579 1559 1560 1540 1541 1540 1560 1559 + 1598 1578 1579 1559 1560 1559 1579 1578 + 1617 1597 1598 1578 1579 1578 1598 1597 + 1636 1616 1617 1597 1598 1597 1617 1616 + 1655 1635 1636 1616 1617 1616 1636 1635 + 1674 1654 1655 1635 1636 1635 1655 1654 + 1502 1501 1522 1521 1655 1654 1674 1673 + 1523 1521 1522 1501 1538 1521 1522 1501 + 1503 1501 1522 1521 1519 1501 1522 1521 + 1542 1540 1541 1521 1557 1540 1541 1521 + 1523 1521 1541 1540 1538 1521 1541 1540 + 1561 1559 1560 1540 1576 1559 1560 1540 + 1542 1540 1560 1559 1557 1540 1560 1559 + 1580 1578 1579 1559 1595 1578 1579 1559 + 1561 1559 1579 1578 1576 1559 1579 1578 + 1599 1597 1598 1578 1614 1597 1598 1578 + 1580 1578 1598 1597 1595 1578 1598 1597 + 1618 1616 1617 1597 1633 1616 1617 1597 + 1599 1597 1617 1616 1614 1597 1617 1616 + 1637 1635 1636 1616 1652 1635 1636 1616 + 1618 1616 1636 1635 1633 1616 1636 1635 + 1656 1654 1655 1635 1671 1654 1655 1635 + 1637 1635 1655 1654 1652 1635 1655 1654 + 1502 1501 1522 1539 1510 1508 1511 1516 + 1510 1508 1511 1517 1510 1508 1511 1518 + 1511 1508 1510 1513 1511 1508 1510 1514 + 1511 1508 1510 1515 1529 1527 1530 1535 + 1529 1527 1530 1536 1529 1527 1530 1537 + 1530 1527 1529 1532 1530 1527 1529 1533 + 1530 1527 1529 1534 1548 1546 1549 1554 + 1548 1546 1549 1555 1548 1546 1549 1556 + 1549 1546 1548 1551 1549 1546 1548 1552 + 1549 1546 1548 1553 1567 1565 1568 1573 + 1567 1565 1568 1574 1567 1565 1568 1575 + 1568 1565 1567 1570 1568 1565 1567 1571 + 1568 1565 1567 1572 1586 1584 1587 1592 + 1586 1584 1587 1593 1586 1584 1587 1594 + 1587 1584 1586 1589 1587 1584 1586 1590 + 1587 1584 1586 1591 1605 1603 1606 1611 + 1605 1603 1606 1612 1605 1603 1606 1613 + 1606 1603 1605 1608 1606 1603 1605 1609 + 1606 1603 1605 1610 1624 1622 1625 1630 + 1624 1622 1625 1631 1624 1622 1625 1632 + 1625 1622 1624 1627 1625 1622 1624 1628 + 1625 1622 1624 1629 1643 1641 1644 1649 + 1643 1641 1644 1650 1643 1641 1644 1651 + 1644 1641 1643 1646 1644 1641 1643 1647 + 1644 1641 1643 1648 1662 1660 1663 1668 + 1662 1660 1663 1669 1662 1660 1663 1670 + 1663 1660 1662 1665 1663 1660 1662 1666 + 1663 1660 1662 1667 1682 1680 1683 1688 + 1682 1680 1683 1689 1682 1680 1683 1690 + 1683 1680 1682 1685 1683 1680 1682 1686 + 1683 1680 1682 1687 1522 1501 1502 1505 + 1522 1501 1502 1520 1522 1521 1541 1558 + 1541 1521 1522 1539 1541 1540 1560 1577 + 1560 1540 1541 1558 1560 1559 1579 1596 + 1579 1559 1560 1577 1579 1578 1598 1615 + 1598 1578 1579 1596 1598 1597 1617 1634 + 1617 1597 1598 1615 1617 1616 1636 1653 + 1636 1616 1617 1634 1636 1635 1655 1672 + 1655 1635 1636 1653 1655 1654 1674 1692 + 1674 1654 1655 1672 1675 1673 1674 1654 + 1676 1673 1674 1654 1691 1673 1674 1654 + 1656 1654 1674 1673 1671 1654 1674 1673 + 1506 1508 1510 1513 1506 1508 1510 1514 + 1506 1508 1510 1515 1506 1508 1511 1516 + 1506 1508 1511 1517 1506 1508 1511 1518 + 1525 1527 1529 1532 1525 1527 1529 1533 + 1525 1527 1529 1534 1525 1527 1530 1535 + 1525 1527 1530 1536 1525 1527 1530 1537 + 1544 1546 1548 1551 1544 1546 1548 1552 + 1544 1546 1548 1553 1544 1546 1549 1554 + 1544 1546 1549 1555 1544 1546 1549 1556 + 1563 1565 1567 1570 1563 1565 1567 1571 + 1563 1565 1567 1572 1563 1565 1568 1573 + 1563 1565 1568 1574 1563 1565 1568 1575 + 1582 1584 1586 1589 1582 1584 1586 1590 + 1582 1584 1586 1591 1582 1584 1587 1592 + 1582 1584 1587 1593 1582 1584 1587 1594 + 1601 1603 1605 1608 1601 1603 1605 1609 + 1601 1603 1605 1610 1601 1603 1606 1611 + 1601 1603 1606 1612 1601 1603 1606 1613 + 1620 1622 1624 1627 1620 1622 1624 1628 + 1620 1622 1624 1629 1620 1622 1625 1630 + 1620 1622 1625 1631 1620 1622 1625 1632 + 1639 1641 1643 1646 1639 1641 1643 1647 + 1639 1641 1643 1648 1639 1641 1644 1649 + 1639 1641 1644 1650 1639 1641 1644 1651 + 1658 1660 1662 1665 1658 1660 1662 1666 + 1658 1660 1662 1667 1658 1660 1663 1668 + 1658 1660 1663 1669 1658 1660 1663 1670 + 1678 1680 1682 1685 1678 1680 1682 1686 + 1678 1680 1682 1687 1678 1680 1683 1688 + 1678 1680 1683 1689 1678 1680 1683 1690 + 1503 1501 1502 1505 1503 1501 1502 1520 + 1519 1501 1502 1505 1519 1501 1502 1520 + 1503 1501 1522 1539 1519 1501 1522 1539 + 1523 1521 1522 1539 1523 1521 1541 1558 + 1538 1521 1522 1539 1538 1521 1541 1558 + 1542 1540 1541 1558 1542 1540 1560 1577 + 1557 1540 1541 1558 1557 1540 1560 1577 + 1561 1559 1560 1577 1561 1559 1579 1596 + 1576 1559 1560 1577 1576 1559 1579 1596 + 1580 1578 1579 1596 1580 1578 1598 1615 + 1595 1578 1579 1596 1595 1578 1598 1615 + 1599 1597 1598 1615 1599 1597 1617 1634 + 1614 1597 1598 1615 1614 1597 1617 1634 + 1618 1616 1617 1634 1618 1616 1636 1653 + 1633 1616 1617 1634 1633 1616 1636 1653 + 1637 1635 1636 1653 1637 1635 1655 1672 + 1652 1635 1636 1653 1652 1635 1655 1672 + 1656 1654 1655 1672 1656 1654 1674 1692 + 1671 1654 1655 1672 1671 1654 1674 1692 + 1512 1508 1510 1513 1512 1508 1510 1514 + 1512 1508 1510 1515 1512 1508 1511 1516 + 1512 1508 1511 1517 1512 1508 1511 1518 + 1531 1527 1529 1532 1531 1527 1529 1533 + 1531 1527 1529 1534 1531 1527 1530 1535 + 1531 1527 1530 1536 1531 1527 1530 1537 + 1550 1546 1548 1551 1550 1546 1548 1552 + 1550 1546 1548 1553 1550 1546 1549 1554 + 1550 1546 1549 1555 1550 1546 1549 1556 + 1569 1565 1567 1570 1569 1565 1567 1571 + 1569 1565 1567 1572 1569 1565 1568 1573 + 1569 1565 1568 1574 1569 1565 1568 1575 + 1588 1584 1586 1589 1588 1584 1586 1590 + 1588 1584 1586 1591 1588 1584 1587 1592 + 1588 1584 1587 1593 1588 1584 1587 1594 + 1607 1603 1605 1608 1607 1603 1605 1609 + 1607 1603 1605 1610 1607 1603 1606 1611 + 1607 1603 1606 1612 1607 1603 1606 1613 + 1626 1622 1624 1627 1626 1622 1624 1628 + 1626 1622 1624 1629 1626 1622 1625 1630 + 1626 1622 1625 1631 1626 1622 1625 1632 + 1645 1641 1643 1646 1645 1641 1643 1647 + 1645 1641 1643 1648 1645 1641 1644 1649 + 1645 1641 1644 1650 1645 1641 1644 1651 + 1664 1660 1662 1665 1664 1660 1662 1666 + 1664 1660 1662 1667 1664 1660 1663 1668 + 1664 1660 1663 1669 1664 1660 1663 1670 + 1684 1680 1682 1685 1684 1680 1682 1686 + 1684 1680 1682 1687 1684 1680 1683 1688 + 1684 1680 1683 1689 1684 1680 1683 1690 + 1675 1673 1674 1692 1676 1673 1674 1692 + 1691 1673 1674 1692 1504 1506 1508 1510 + 1504 1506 1508 1511 1524 1525 1527 1529 + 1524 1525 1527 1530 1543 1544 1546 1548 + 1543 1544 1546 1549 1562 1563 1565 1567 + 1562 1563 1565 1568 1581 1582 1584 1586 + 1581 1582 1584 1587 1600 1601 1603 1605 + 1600 1601 1603 1606 1619 1620 1622 1624 + 1619 1620 1622 1625 1638 1639 1641 1643 + 1638 1639 1641 1644 1657 1658 1660 1662 + 1657 1658 1660 1663 1677 1678 1680 1682 + 1677 1678 1680 1683 1509 1506 1508 1510 + 1509 1506 1508 1511 1528 1525 1527 1529 + 1528 1525 1527 1530 1547 1544 1546 1548 + 1547 1544 1546 1549 1566 1563 1565 1567 + 1566 1563 1565 1568 1585 1582 1584 1586 + 1585 1582 1584 1587 1604 1601 1603 1605 + 1604 1601 1603 1606 1623 1620 1622 1624 + 1623 1620 1622 1625 1642 1639 1641 1643 + 1642 1639 1641 1644 1661 1658 1660 1662 + 1661 1658 1660 1663 1681 1678 1680 1682 + 1681 1678 1680 1683 1504 1506 1508 1512 + 1524 1525 1527 1531 1543 1544 1546 1550 + 1562 1563 1565 1569 1581 1582 1584 1588 + 1600 1601 1603 1607 1619 1620 1622 1626 + 1638 1639 1641 1645 1657 1658 1660 1664 + 1677 1678 1680 1684 1509 1506 1508 1512 + 1528 1525 1527 1531 1547 1544 1546 1550 + 1566 1563 1565 1569 1585 1582 1584 1588 + 1604 1601 1603 1607 1623 1620 1622 1626 + 1642 1639 1641 1645 1661 1658 1660 1664 + 1681 1678 1680 1684 + + 50 !NIMPHI: impropers + 1507 1504 1506 1502 1506 1502 1504 1507 + 1526 1524 1525 1522 1545 1543 1544 1541 + 1564 1562 1563 1560 1583 1581 1582 1579 + 1602 1600 1601 1598 1621 1619 1620 1617 + 1640 1638 1639 1636 1659 1657 1658 1655 + 1679 1677 1678 1674 1525 1522 1524 1526 + 1544 1541 1543 1545 1563 1560 1562 1564 + 1582 1579 1581 1583 1601 1598 1600 1602 + 1620 1617 1619 1621 1639 1636 1638 1640 + 1658 1655 1657 1659 1678 1674 1677 1679 + 1509 1506 1508 1504 1528 1525 1527 1524 + 1547 1544 1546 1543 1566 1563 1565 1562 + 1585 1582 1584 1581 1604 1601 1603 1600 + 1623 1620 1622 1619 1642 1639 1641 1638 + 1661 1658 1660 1657 1681 1678 1680 1677 + 1508 1506 1509 1504 1527 1525 1528 1524 + 1546 1544 1547 1543 1565 1563 1566 1562 + 1584 1582 1585 1581 1603 1601 1604 1600 + 1622 1620 1623 1619 1641 1639 1642 1638 + 1660 1658 1661 1657 1680 1678 1681 1677 + 1508 1504 1506 1509 1527 1524 1525 1528 + 1546 1543 1544 1547 1565 1562 1563 1566 + 1584 1581 1582 1585 1603 1600 1601 1604 + 1622 1619 1620 1623 1641 1638 1639 1642 + 1660 1657 1658 1661 1680 1677 1678 1681 + + 0 !NDON: donors + + + 0 !NACC: acceptors + + + 0 !NNB + + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 + + 1 0 !NGRP + 0 0 0 + diff --git a/tools/moltemplate/tutorial-files/sample01.lt b/tools/moltemplate/tutorial-files/sample01.lt new file mode 100644 index 0000000000..fc5eb3ff5b --- /dev/null +++ b/tools/moltemplate/tutorial-files/sample01.lt @@ -0,0 +1,78 @@ +# 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 +} diff --git a/tools/moltemplate/tutorial-files/solv_01.lt b/tools/moltemplate/tutorial-files/solv_01.lt new file mode 100644 index 0000000000..02816a90f7 --- /dev/null +++ b/tools/moltemplate/tutorial-files/solv_01.lt @@ -0,0 +1,61 @@ +# Import the force field. +import /usr/local/moltemplate/moltemplate/force_fields/oplsaa.lt +import formamide.lt # after oplsaa.lt, as it depends on it. + +# Create the input sample. +solv = new _FAM [5].move( 4.6, 0, 0) + [5].move( 0, 4.6, 0) + [5].move( 0, 0, 4.6) +solv[*][*][*].move(-11.5, -11.5, -11.5) + +# Set the simulation box. +write_once("Data Boundary") { + -11.5 11.5 xlo xhi + -11.5 11.5 ylo yhi + -11.5 11.5 zlo zhi +} + +# Create an input deck for LAMMPS. +write_once("In Init"){ + # Input variables. + variable run string solv_01 # output name + variable ts equal 1 # timestep + variable temp equal 300 # equilibrium temperature + variable p equal 1. # equilibrium pressure + variable d equal 1000 # output frequency + variable equi equal 5000 # Equilibration steps + variable prod equal 30000 # Production steps + + # PBC (set them before the creation of the box). + boundary p p p +} + +# Run an NPT simulation. +write_once("In Run"){ + # Derived variables. + variable tcouple equal \$\{ts\}*100 + variable pcouple equal \$\{ts\}*1000 + + # Output. + thermo \$d + thermo_style custom step etotal evdwl ecoul elong ebond eangle edihed eimp & + ke pe temp press vol density cpu + thermo_modify flush yes + + # Trajectory. + dump TRJ all dcd \$d \$\{run\}.dcd + dump_modify TRJ unwrap yes + + # Thermalisation and relaxation, NPT ensemble. + timestep \$\{ts\} + fix NPT all npt temp \$\{temp\} \$\{temp\} \$\{tcouple\} iso \$p \$p \$\{pcouple\} + velocity all create \$\{temp\} 858096 dist gaussian + # Short runs to update the PPPM settings as the box shinks. + run \$\{equi\} post no + run \$\{equi\} post no + run \$\{equi\} post no + run \$\{equi\} + # From now on, the density shouldn't change too much. + run \$\{prod\} + unfix NPT +} diff --git a/tools/msi2lmp/src/InitializeItems.c b/tools/msi2lmp/src/InitializeItems.c index 1e33636913..561e0056f6 100644 --- a/tools/msi2lmp/src/InitializeItems.c +++ b/tools/msi2lmp/src/InitializeItems.c @@ -1,8 +1,8 @@ /* -* This function fills in the keyword field, the number of members for each -* item and the number of parameters for each item -* -*/ + * This function fills in the keyword field, the number of members for each + * item and the number of parameters for each item + * + */ #include "msi2lmp.h" #include "Forcefield.h" diff --git a/tools/msi2lmp/src/ReadCarFile.c b/tools/msi2lmp/src/ReadCarFile.c index 7cde0914c4..df2c86a064 100644 --- a/tools/msi2lmp/src/ReadCarFile.c +++ b/tools/msi2lmp/src/ReadCarFile.c @@ -1,7 +1,7 @@ /* -* This function opens the .car file and extracts coordinate information -* into the atoms Atom structure -*/ + * This function opens the .car file and extracts coordinate information + * into the atoms Atom structure + */ #include "msi2lmp.h" @@ -127,12 +127,15 @@ void ReadCarFile(void) /* First pass through file -- Count molecules */ - while(fgets(line,MAX_LINE_LENGTH,CarF) != NULL ) - if( strncmp(line,"end",3) == 0 ) + while (fgets(line,MAX_LINE_LENGTH,CarF) != NULL ) + if (strncmp(line,"end",3) == 0 ) no_molecules++; /* Allocate space to keep track of the number of atoms within a molecule */ - + if (no_molecules < 1) { + fprintf(stderr, "No molecules in system"); + exit(32); + } no_atoms = (int *) calloc(no_molecules,sizeof(int)); if ( no_atoms == NULL ) { printf("Could not allocate memory for no_atoms\n"); diff --git a/tools/msi2lmp/src/ReadFrcFile.c b/tools/msi2lmp/src/ReadFrcFile.c index c85b947d00..5d7ab9ea5d 100644 --- a/tools/msi2lmp/src/ReadFrcFile.c +++ b/tools/msi2lmp/src/ReadFrcFile.c @@ -1,9 +1,8 @@ /* -* This routine reads the data from a .frc forcefield file and stores it in -* dynamically allocated memory. This allows for fast searches of the -* file. -* -*/ + * This routine reads the data from a .frc forcefield file and stores it in + * dynamically allocated memory. This allows for fast searches of the + * file. + */ #include "msi2lmp.h" #include "Forcefield.h" diff --git a/tools/msi2lmp/src/ReadMdfFile.c b/tools/msi2lmp/src/ReadMdfFile.c index 0a0c240cf4..96a6a01ab2 100644 --- a/tools/msi2lmp/src/ReadMdfFile.c +++ b/tools/msi2lmp/src/ReadMdfFile.c @@ -1,10 +1,9 @@ /****************************** -* -* This function opens the .mdf file and extracts connectivity information -* into the atoms Atom structure. It also updates the charge from the .car -* file because the charge in the .mdf file has more significant figures. -* -*/ + * + * This function opens the .mdf file and extracts connectivity information + * into the atoms Atom structure. It also updates the charge from the .car + * file because the charge in the .mdf file has more significant figures. + */ #include "msi2lmp.h" diff --git a/tools/msi2lmp/src/SearchAndFill.c b/tools/msi2lmp/src/SearchAndFill.c index f195e739c9..7a7a1032ea 100644 --- a/tools/msi2lmp/src/SearchAndFill.c +++ b/tools/msi2lmp/src/SearchAndFill.c @@ -12,6 +12,7 @@ #include #include #include +#include #if defined(_WIN32) #define strdup(x) _strdup(x) @@ -91,10 +92,14 @@ void SearchAndFill(struct FrcFieldItem *item) } file_pos = ftell(FrcF); + if (file_pos < 0) { + fprintf(stderr, "Could not obtain file stream position: ", strerror(errno)); + exit(2); + } /* Count the number of lines until next item is found */ - while( strncmp(fgets(line,MAX_LINE_LENGTH,FrcF), "#", 1) != 0 ) + while (strncmp(fgets(line,MAX_LINE_LENGTH,FrcF), "#", 1) != 0 ) ctr++; /* Allocate the memory using calloc */ @@ -110,7 +115,10 @@ void SearchAndFill(struct FrcFieldItem *item) /* Read lines until keyword is found */ - fseek(FrcF,file_pos,SEEK_SET); + if (fseek(FrcF,file_pos,SEEK_SET) < 0) { + fprintf(stderr, "Resetting file stream failed: ", strerror(errno)); + exit(2); + } strcpy(line,"empty"); /* Read lines until data starts (when !--- is found) */ diff --git a/tools/msi2lmp/src/WriteDataFile.c b/tools/msi2lmp/src/WriteDataFile.c index 63224db0f1..e9bec78da3 100644 --- a/tools/msi2lmp/src/WriteDataFile.c +++ b/tools/msi2lmp/src/WriteDataFile.c @@ -1,6 +1,6 @@ /* -* This function creates and writes the data file to be used with LAMMPS -*/ + * This function creates and writes the data file to be used with LAMMPS + */ #include "msi2lmp.h" diff --git a/tools/phonon/timer.cpp b/tools/phonon/timer.cpp index b94bed40b1..9ae4e94441 100644 --- a/tools/phonon/timer.cpp +++ b/tools/phonon/timer.cpp @@ -42,7 +42,7 @@ void Timer::print() { if ( (flag&3) != 3) return; - cpu_time_used = ((double) (t2 - t1)) / CLOCKS_PER_SEC; + double cpu_time_used = ((double) (t2 - t1)) / CLOCKS_PER_SEC; printf("Total CPU time used: %g seconds.\n", cpu_time_used); return; diff --git a/tools/phonon/timer.h b/tools/phonon/timer.h index 993a33f9f3..b2a4e4fd9b 100644 --- a/tools/phonon/timer.h +++ b/tools/phonon/timer.h @@ -14,8 +14,6 @@ public: private: clock_t t1, t2; - double cpu_time_used; - int flag; };