Merge branch 'master' of https://github.com/charlessievers/lammps into fix_numerical_differentiation
This commit is contained in:
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -73,7 +73,7 @@ Here is a checklist of steps you need to follow to submit a single file or user
|
||||
* If you want your contribution to be added as a user-contributed feature, and it is a single file (actually a `<name>.cpp` and `<name>.h` file) it can be rapidly added to the USER-MISC directory. Include the one-line entry to add to the USER-MISC/README file in that directory, along with the 2 source files. You can do this multiple times if you wish to contribute several individual features.
|
||||
* If you want your contribution to be added as a user-contribution and it is several related features, it is probably best to make it a user package directory with a name like USER-FOO. In addition to your new files, the directory should contain a README text file. The README should contain your name and contact information and a brief description of what your new package does. If your files depend on other LAMMPS style files also being installed (e.g. because your file is a derived class from the other LAMMPS class), then an Install.sh file is also needed to check for those dependencies. See other README and Install.sh files in other USER directories as examples. Send us a tarball of this USER-FOO directory.
|
||||
* Your new source files need to have the LAMMPS copyright, GPL notice, and your name and email address at the top, like other user-contributed LAMMPS source files. They need to create a class that is inside the LAMMPS namespace. If the file is for one of the USER packages, including USER-MISC, then we are not as picky about the coding style (see above). I.e. the files do not need to be in the same stylistic format and syntax as other LAMMPS files, though that would be nice for developers as well as users who try to read your code.
|
||||
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are files in the [reStructuredText](https://docutils.sourceforge.io/rst.html) markup language, that are then converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.rst` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. An introduction to reStructuredText can be found at [https://docutils.sourceforge.io/docs/user/rst/quickstart.html](https://docutils.sourceforge.io/docs/user/rst/quickstart.html). As appropriate, the text files can include mathematical expressions in MathJAX markup or links to equations (see doc/Eqs/*.tex for examples, we auto-create the associated JPG files), or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.rst for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or USER-FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv. Please run at least `make html` and `make spelling` and carefully inspect and proofread the resulting HTML format doc page as well as the output produced to the screen. Make sure that all spelling errors are fixed or the necessary false positives are added to the `doc/utils/sphinx-config/false_positives.txt` file. For new styles, those usually also need to be added to lists on the respective overview pages. This can be checked for also with `make style_check`.
|
||||
* You **must** also create or extend a documentation file for each new command or style you are adding to LAMMPS. For simplicity and convenience, the documentation of groups of closely related commands or styles may be combined into a single file. This will be one file for a single-file feature. For a package, it might be several files. These are files in the [reStructuredText](https://docutils.sourceforge.io/rst.html) markup language, that are then converted to HTML and PDF. The tools for this conversion are included in the source distribution, and the translation can be as simple as doing "make html pdf" in the doc folder. Thus the documentation source files must be in the same format and style as other `<name>.rst` files in the lammps/doc/src directory for similar commands and styles; use one or more of them as a starting point. An introduction to reStructuredText can be found at [https://docutils.sourceforge.io/docs/user/rst/quickstart.html](https://docutils.sourceforge.io/docs/user/rst/quickstart.html). The text files can include mathematical expressions and symbol in ".. math::" sections or ":math:" expressions or figures (see doc/JPG for examples), or even additional PDF files with further details (see doc/PDF for examples). The doc page should also include literature citations as appropriate; see the bottom of doc/fix_nh.rst for examples and the earlier part of the same file for how to format the cite itself. The "Restrictions" section of the doc page should indicate that your command is only available if LAMMPS is built with the appropriate USER-MISC or USER-FOO package. See other user package doc files for examples of how to do this. The prerequisite for building the HTML format files are Python 3.x and virtualenv. Please run at least `make html`, `make pdf` and `make spelling` and carefully inspect and proofread the resulting HTML format doc page as well as the output produced to the screen. Make sure that all spelling errors are fixed or the necessary false positives are added to the `doc/utils/sphinx-config/false_positives.txt` file. For new styles, those usually also need to be added to lists on the respective overview pages. This can be checked for also with `make style_check`.
|
||||
* For a new package (or even a single command) you should include one or more example scripts demonstrating its use. These should run in no more than a couple minutes, even on a single processor, and not require large data files as input. See directories under examples/USER for examples of input scripts other users provided for their packages. These example inputs are also required for validating memory accesses and testing for memory leaks with valgrind
|
||||
* If there is a paper of yours describing your feature (either the algorithm/science behind the feature itself, or its initial usage, or its implementation in LAMMPS), you can add the citation to the *.cpp source file. See src/USER-EFF/atom_vec_electron.cpp for an example. A LaTeX citation is stored in a variable at the top of the file and a single line of code that references the variable is added to the constructor of the class. Whenever a user invokes your feature from their input script, this will cause LAMMPS to output the citation to a log.cite file and prompt the user to examine the file. Note that you should only use this for a paper you or your group authored. E.g. adding a cite in the code for a paper by Nose and Hoover if you write a fix that implements their integrator is not the intended usage. That kind of citation should just be in the doc page you provide.
|
||||
|
||||
|
||||
@ -52,7 +52,13 @@ include(CheckCCompilerFlag)
|
||||
include(CheckIncludeFileCXX)
|
||||
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict -std=c++11")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -restrict")
|
||||
endif()
|
||||
|
||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
|
||||
if(NOT ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug"))
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math -ftree-vectorize -fexpensive-optimizations")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# we require C++11
|
||||
@ -125,12 +131,12 @@ set(LAMMPS_API_DEFINES)
|
||||
set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
|
||||
GRANULAR KSPACE LATTE MANYBODY MC MESSAGE MISC MOLECULE PERI POEMS QEQ
|
||||
REPLICA RIGID SHOCK SPIN SNAP SRD KIM PYTHON MSCG MPIIO VORONOI
|
||||
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO USER-CGSDK USER-COLVARS
|
||||
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESODPD USER-CGSDK USER-COLVARS
|
||||
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-LB
|
||||
USER-MANIFOLD USER-MEAMC USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE
|
||||
USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REAXC
|
||||
USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY USER-UEF
|
||||
USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
|
||||
USER-NETCDF USER-PHONON USER-PLUMED USER-PTM USER-QTB USER-REACTION
|
||||
USER-REAXC USER-SCAFACOS USER-SDPD USER-SMD USER-SMTBQ USER-SPH USER-TALLY
|
||||
USER-UEF USER-VTK USER-QUIP USER-QMMM USER-YAFF USER-ADIOS)
|
||||
set(ACCEL_PACKAGES USER-OMP KOKKOS OPT USER-INTEL GPU)
|
||||
foreach(PKG ${DEFAULT_PACKAGES} ${ACCEL_PACKAGES})
|
||||
option(PKG_${PKG} "Build ${PKG} Package" OFF)
|
||||
@ -175,6 +181,7 @@ option(BUILD_MPI "Build MPI version" ${MPI_FOUND})
|
||||
if(BUILD_MPI)
|
||||
find_package(MPI REQUIRED)
|
||||
include_directories(${MPI_CXX_INCLUDE_PATH})
|
||||
add_definitions(-DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1)
|
||||
list(APPEND LAMMPS_LINK_LIBS ${MPI_CXX_LIBRARIES})
|
||||
option(LAMMPS_LONGLONG_TO_LONG "Workaround if your system or MPI version does not recognize 'long long' data types" OFF)
|
||||
if(LAMMPS_LONGLONG_TO_LONG)
|
||||
|
||||
@ -95,7 +95,7 @@ OPT.
|
||||
* :doc:`eam/fs (gikot) <pair_eam>`
|
||||
* :doc:`edip (o) <pair_edip>`
|
||||
* :doc:`edip/multi <pair_edip>`
|
||||
* :doc:`edpd <pair_meso>`
|
||||
* :doc:`edpd <pair_mesodpd>`
|
||||
* :doc:`eff/cut <pair_eff>`
|
||||
* :doc:`eim (o) <pair_eim>`
|
||||
* :doc:`exp6/rx (k) <pair_exp6_rx>`
|
||||
@ -171,8 +171,8 @@ OPT.
|
||||
* :doc:`lubricate/poly (o) <pair_lubricate>`
|
||||
* :doc:`lubricateU <pair_lubricateU>`
|
||||
* :doc:`lubricateU/poly <pair_lubricateU>`
|
||||
* :doc:`mdpd <pair_meso>`
|
||||
* :doc:`mdpd/rhosum <pair_meso>`
|
||||
* :doc:`mdpd <pair_mesodpd>`
|
||||
* :doc:`mdpd/rhosum <pair_mesodpd>`
|
||||
* :doc:`meam/c <pair_meamc>`
|
||||
* :doc:`meam/spline (o) <pair_meam_spline>`
|
||||
* :doc:`meam/sw/spline <pair_meam_sw_spline>`
|
||||
@ -242,7 +242,7 @@ OPT.
|
||||
* :doc:`sw (giko) <pair_sw>`
|
||||
* :doc:`table (gko) <pair_table>`
|
||||
* :doc:`table/rx (k) <pair_table_rx>`
|
||||
* :doc:`tdpd <pair_meso>`
|
||||
* :doc:`tdpd <pair_mesodpd>`
|
||||
* :doc:`tersoff (giko) <pair_tersoff>`
|
||||
* :doc:`tersoff/mod (gko) <pair_tersoff_mod>`
|
||||
* :doc:`tersoff/mod/c (o) <pair_tersoff_mod>`
|
||||
|
||||
@ -509,14 +509,14 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
|
||||
|
||||
*Bond/react: Atom affected by reaction too close to template edge*
|
||||
This means an atom which changes type or connectivity during the
|
||||
reaction is too close to an 'edge' atom defined in the superimpose
|
||||
reaction is too close to an 'edge' atom defined in the map
|
||||
file. This could cause incorrect assignment of bonds, angle, etc.
|
||||
Generally, this means you must include more atoms in your templates,
|
||||
such that there are at least two atoms between each atom involved in
|
||||
the reaction and an edge atom.
|
||||
|
||||
*Bond/react: Fix bond/react needs ghost atoms from farther away*
|
||||
This is because a processor needs to superimpose the entire unreacted
|
||||
This is because a processor needs to map the entire unreacted
|
||||
molecule template onto simulation atoms it knows about. The
|
||||
comm\_modify cutoff command can be used to extend the communication
|
||||
range.
|
||||
|
||||
@ -1,22 +1,28 @@
|
||||
Building the LAMMPS manual
|
||||
**************************
|
||||
|
||||
Depending on how you obtained LAMMPS, the doc directory has 2 or 3
|
||||
sub-directories and optionally 2 PDF files and 2 e-book format files:
|
||||
Depending on how you obtained LAMMPS, the doc directory has up
|
||||
to 6 sub-directories, 2 Nroff files, and optionally 2 PDF files
|
||||
plus 2 e-book format files:
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
src # content files for LAMMPS documentation
|
||||
html # HTML version of the LAMMPS manual (see html/Manual.html)
|
||||
tools # tools and settings for building the documentation
|
||||
utils # tools and settings for building the documentation
|
||||
docenv # virtualenv for processing the manual sources
|
||||
doctrees # temporary data from processing the manual
|
||||
mathjax # code and fonts for rendering math in html
|
||||
Manual.pdf # large PDF version of entire manual
|
||||
Developer.pdf # small PDF with info about how LAMMPS is structured
|
||||
LAMMPS.epub # Manual in ePUB e-book format
|
||||
LAMMPS.mobi # Manual in MOBI e-book format
|
||||
lammps.1 # man page for the lammps command
|
||||
msi2lmp.1 # man page for the msi2lmp command
|
||||
|
||||
If you downloaded LAMMPS as a tarball from the web site, all these
|
||||
directories and files should be included.
|
||||
If you downloaded LAMMPS as a tarball from the web site, the html folder
|
||||
and the PDF files should be included.
|
||||
|
||||
If you downloaded LAMMPS from the public git repository, then the HTML
|
||||
and PDF files are not included. Instead you need to create them, in one
|
||||
|
||||
@ -140,8 +140,7 @@ packages in the src directory for examples. If you are uncertain, please ask.
|
||||
and your name and email address at the top, like other
|
||||
user-contributed LAMMPS source files. They need to create a class
|
||||
that is inside the LAMMPS namespace. If the file is for one of the
|
||||
|
||||
* USER packages, including USER-MISC, then we are not as picky about the
|
||||
USER packages, including USER-MISC, then we are not as picky about the
|
||||
coding style (see above). I.e. the files do not need to be in the
|
||||
same stylistic format and syntax as other LAMMPS files, though that
|
||||
would be nice for developers as well as users who try to read your
|
||||
|
||||
@ -81,7 +81,7 @@ page gives those details.
|
||||
* :ref:`USER-LB <PKG-USER-LB>`
|
||||
* :ref:`USER-MANIFOLD <PKG-USER-MANIFOLD>`
|
||||
* :ref:`USER-MEAMC <PKG-USER-MEAMC>`
|
||||
* :ref:`USER-MESO <PKG-USER-MESO>`
|
||||
* :ref:`USER-MESODPD <PKG-USER-MESODPD>`
|
||||
* :ref:`USER-MGPT <PKG-USER-MGPT>`
|
||||
* :ref:`USER-MISC <PKG-USER-MISC>`
|
||||
* :ref:`USER-MOFFF <PKG-USER-MOFFF>`
|
||||
@ -94,6 +94,7 @@ page gives those details.
|
||||
* :ref:`USER-QMMM <PKG-USER-QMMM>`
|
||||
* :ref:`USER-QTB <PKG-USER-QTB>`
|
||||
* :ref:`USER-QUIP <PKG-USER-QUIP>`
|
||||
* :ref:`USER-REACTION <PKG-USER-REACTION>`
|
||||
* :ref:`USER-REAXC <PKG-USER-REAXC>`
|
||||
* :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>`
|
||||
* :ref:`USER-SDPD <PKG-USER-SDPD>`
|
||||
@ -1792,10 +1793,10 @@ Sandia.
|
||||
----------
|
||||
|
||||
|
||||
.. _PKG-USER-MESO:
|
||||
.. _PKG-USER-MESODPD:
|
||||
|
||||
USER-MESO package
|
||||
-----------------
|
||||
USER-MESODPD package
|
||||
--------------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
@ -1811,14 +1812,14 @@ algorithm.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/USER-MESO: filenames -> commands
|
||||
* src/USER-MESO/README
|
||||
* src/USER-MESODPD: filenames -> commands
|
||||
* src/USER-MESODPD/README
|
||||
* :doc:`atom_style edpd <atom_style>`
|
||||
* :doc:`pair_style edpd <pair_meso>`
|
||||
* :doc:`pair_style mdpd <pair_meso>`
|
||||
* :doc:`pair_style tdpd <pair_meso>`
|
||||
* :doc:`pair_style edpd <pair_mesodpd>`
|
||||
* :doc:`pair_style mdpd <pair_mesodpd>`
|
||||
* :doc:`pair_style tdpd <pair_mesodpd>`
|
||||
* :doc:`fix mvv/dpd <fix_mvv_dpd>`
|
||||
* examples/USER/meso
|
||||
* examples/USER/mesodpd
|
||||
* http://lammps.sandia.gov/movies.html#mesodpd
|
||||
|
||||
|
||||
@ -2180,6 +2181,39 @@ This package has :ref:`specific installation instructions <user-quip>` on the :d
|
||||
----------
|
||||
|
||||
|
||||
.. _PKG-USER-REACTION:
|
||||
|
||||
USER-REACTION package
|
||||
---------------------
|
||||
|
||||
**Contents:**
|
||||
|
||||
This package allows for complex bond topology changes (reactions)
|
||||
during a running MD simulation, when using classical force fields.
|
||||
Topology changes are defined in pre- and post-reaction molecule
|
||||
templates and can include creation and deletion of bonds, angles,
|
||||
dihedrals, impropers, atom types, bond types, angle types, dihedral
|
||||
types, improper types, and/or atomic charges. Other options currently
|
||||
available include reaction constraints (e.g. angle and Arrhenius
|
||||
constraints), deletion of reaction byproducts or other small
|
||||
molecules, and chiral-sensitive reactions.
|
||||
|
||||
**Author:** Jacob R. Gissinger (CU Boulder) while at NASA Langley Research Center.
|
||||
|
||||
**Supporting info:**
|
||||
|
||||
* src/USER-REACTION: filenames -> commands
|
||||
* src/USER-REACTION/README
|
||||
* :doc:`fix bond/react <fix_bond_react>`
|
||||
* examples/USER/reaction
|
||||
* `2017 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug17/pdf/gissinger.pdf>`_
|
||||
* `2019 LAMMPS Workshop <https://lammps.sandia.gov/workshops/Aug19/talk_gissinger.pdf>`_
|
||||
* disarmmd.org
|
||||
|
||||
|
||||
----------
|
||||
|
||||
|
||||
.. _PKG-USER-REAXC:
|
||||
|
||||
USER-REAXC package
|
||||
|
||||
@ -65,7 +65,7 @@ package:
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-MEAMC <PKG-USER-MEAMC>` | modified EAM potential (C++) | :doc:`pair_style meam/c <pair_meamc>` | meamc | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-MESO <PKG-USER-MESO>` | mesoscale DPD models | :doc:`pair_style edpd <pair_meso>` | USER/meso | no |
|
||||
| :ref:`USER-MESODPD <PKG-USER-MESODPD>` | mesoscale DPD models | :doc:`pair_style edpd <pair_mesodpd>` | USER/mesodpd | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-MGPT <PKG-USER-MGPT>` | fast MGPT multi-ion potentials | :doc:`pair_style mgpt <pair_mgpt>` | USER/mgpt | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
@ -91,6 +91,8 @@ package:
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-QUIP <PKG-USER-QUIP>` | QUIP/libatoms interface | :doc:`pair_style quip <pair_quip>` | USER/quip | ext |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-REACTION <PKG-USER-REACTION>` | chemical reactions in classical MD | :doc:`fix bond/react <fix_bond_react>` | USER/reaction | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-REAXC <PKG-USER-REAXC>` | ReaxFF potential (C/C++) | :doc:`pair_style reaxc <pair_reaxc>` | reax | no |
|
||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+-----------------------------------------------------+---------+
|
||||
| :ref:`USER-SCAFACOS <PKG-USER-SCAFACOS>` | wrapper on ScaFaCoS solver | :doc:`kspace_style scafacos <kspace_style>` | USER/scafacos | ext |
|
||||
|
||||
@ -338,7 +338,7 @@ The *electron* style is part of the USER-EFF package for :doc:`electronic force
|
||||
The *dpd* style is part of the USER-DPD package for dissipative
|
||||
particle dynamics (DPD).
|
||||
|
||||
The *edpd*\ , *mdpd*\ , and *tdpd* styles are part of the USER-MESO package
|
||||
The *edpd*\ , *mdpd*\ , and *tdpd* styles are part of the USER-MESODPD package
|
||||
for energy-conserving dissipative particle dynamics (eDPD), many-body
|
||||
dissipative particle dynamics (mDPD), and transport dissipative particle
|
||||
dynamics (tDPD), respectively.
|
||||
|
||||
@ -46,13 +46,13 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
This compute is part of the USER-MESO package. It is only enabled if
|
||||
This compute is part of the USER-MESODPD package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_style edpd <pair_meso>`
|
||||
:doc:`pair_style edpd <pair_mesodpd>`
|
||||
|
||||
**Default:** none
|
||||
|
||||
|
||||
@ -48,13 +48,13 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
This compute is part of the USER-MESO package. It is only enabled if
|
||||
This compute is part of the USER-MESODPD package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_style tdpd <pair_meso>`
|
||||
:doc:`pair_style tdpd <pair_mesodpd>`
|
||||
|
||||
**Default:** none
|
||||
|
||||
|
||||
@ -60,7 +60,7 @@ Syntax
|
||||
Examples
|
||||
""""""""
|
||||
|
||||
For unabridged example scripts and files, see examples/USER/misc/bond\_react.
|
||||
For unabridged example scripts and files, see examples/USER/reaction.
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
@ -149,10 +149,9 @@ constant-topology parts of your system separately. The dynamic group
|
||||
contains only atoms not involved in a reaction at a given timestep,
|
||||
and therefore should be used by a subsequent system-wide time
|
||||
integrator such as nvt, npt, or nve, as shown in the second example
|
||||
above (full examples can be found at examples/USER/misc/bond\_react).
|
||||
The time integration command should be placed after the fix bond/react
|
||||
command due to the internal dynamic grouping performed by fix
|
||||
bond/react.
|
||||
above (full examples can be found at examples/USER/reaction). The time
|
||||
integration command should be placed after the fix bond/react command
|
||||
due to the internal dynamic grouping performed by fix bond/react.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -295,7 +294,7 @@ either 'none' or 'charges.' Further details are provided in the
|
||||
discussion of the 'update\_edges' keyword. The fifth optional section
|
||||
begins with the keyword 'Constraints' and lists additional criteria
|
||||
that must be satisfied in order for the reaction to occur. Currently,
|
||||
there are three types of constraints available, as discussed below.
|
||||
there are four types of constraints available, as discussed below.
|
||||
|
||||
A sample map file is given below:
|
||||
|
||||
@ -371,6 +370,24 @@ the central atom). Angles must be specified in degrees. This
|
||||
constraint can be used to enforce a certain orientation between
|
||||
reacting molecules.
|
||||
|
||||
The constraint of type 'dihedral' has the following syntax:
|
||||
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
dihedral *ID1* *ID2* *ID3* *ID4* *amin* *amax* *amin2* *amax2*
|
||||
|
||||
where 'dihedral' is the required keyword, and *ID1*\ , *ID2*\ , *ID3*
|
||||
and *ID4* are pre-reaction atom IDs. Dihedral angles are calculated in
|
||||
the interval (-180,180]. Refer to the :doc:`dihedral style <dihedral_style>`
|
||||
documentation for further details on convention. If *amin* is less
|
||||
than *amax*, these four atoms must form a dihedral angle greater than
|
||||
*amin* **and** less than *amax* for the reaction to occur. If *amin*
|
||||
is greater than *amax*, these four atoms must form a dihedral angle
|
||||
greater than *amin* **or** less than *amax* for the reaction to occur.
|
||||
Angles must be specified in degrees. Optionally, a second range of
|
||||
permissible angles *amin2*-*amax2* can be specified.
|
||||
|
||||
The constraint of type 'arrhenius' imposes an additional reaction
|
||||
probability according to the temperature-dependent Arrhenius equation:
|
||||
|
||||
@ -516,7 +533,7 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
This fix is part of the USER-MISC package. It is only enabled if
|
||||
This fix is part of the USER-REACTION package. It is only enabled if
|
||||
LAMMPS was built with that package. See the
|
||||
:doc:`Build package <Build_package>` doc page for more info.
|
||||
|
||||
|
||||
@ -82,16 +82,16 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
This fix is part of the USER-MESO package. It is only enabled if
|
||||
This fix is part of the USER-MESODPD package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
||||
|
||||
Fix *edpd/source* must be used with the :doc:`pair_style edpd <pair_meso>` command. Fix *tdpd/source* must be used with the
|
||||
:doc:`pair_style tdpd <pair_meso>` command.
|
||||
Fix *edpd/source* must be used with the :doc:`pair_style edpd <pair_mesodpd>` command. Fix *tdpd/source* must be used with the
|
||||
:doc:`pair_style tdpd <pair_mesodpd>` command.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_style edpd <pair_meso>`, :doc:`pair_style tdpd <pair_meso>`,
|
||||
:doc:`pair_style edpd <pair_mesodpd>`, :doc:`pair_style tdpd <pair_mesodpd>`,
|
||||
:doc:`compute edpd/temp/atom <compute_edpd_temp_atom>`, :doc:`compute tdpd/cc/atom <compute_tdpd_cc_atom>`
|
||||
|
||||
**Default:** none
|
||||
|
||||
@ -66,15 +66,15 @@ standard velocity-Verlet (VV) scheme. For more details, see
|
||||
:ref:`Groot <Groot2>`.
|
||||
|
||||
Fix *mvv/dpd* updates the position and velocity of each atom. It can
|
||||
be used with the :doc:`pair_style mdpd <pair_meso>` command or other
|
||||
be used with the :doc:`pair_style mdpd <pair_mesodpd>` command or other
|
||||
pair styles such as :doc:`pair dpd <pair_dpd>`.
|
||||
|
||||
Fix *mvv/edpd* updates the per-atom temperature, in addition to
|
||||
position and velocity, and must be used with the :doc:`pair_style edpd <pair_meso>` command.
|
||||
position and velocity, and must be used with the :doc:`pair_style edpd <pair_mesodpd>` command.
|
||||
|
||||
Fix *mvv/tdpd* updates the per-atom chemical concentration, in
|
||||
addition to position and velocity, and must be used with the
|
||||
:doc:`pair_style tdpd <pair_meso>` command.
|
||||
:doc:`pair_style tdpd <pair_mesodpd>` command.
|
||||
|
||||
|
||||
----------
|
||||
@ -92,14 +92,14 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
|
||||
This fix is part of the USER-MESO package. It is only enabled if
|
||||
This fix is part of the USER-MESODPD package. It is only enabled if
|
||||
LAMMPS was built with that package. See the :doc:`Build package <Build_package>` doc page for more info.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
:doc:`pair_style mdpd <pair_meso>`, :doc:`pair_style edpd <pair_meso>`,
|
||||
:doc:`pair_style tdpd <pair_meso>`
|
||||
:doc:`pair_style mdpd <pair_mesodpd>`, :doc:`pair_style edpd <pair_mesodpd>`,
|
||||
:doc:`pair_style tdpd <pair_mesodpd>`
|
||||
|
||||
Default
|
||||
"""""""
|
||||
|
||||
@ -182,4 +182,4 @@ Jonsson, Mills, Jacobsen.
|
||||
.. _Guenole:
|
||||
|
||||
**(Guenole)** Guenole, Noehring, Vaid, Houlle, Xie, Prakash, Bitzek,
|
||||
Comput Mater Sci, (2020), in press (arXiv:190802038).
|
||||
Comput Mater Sci, 175, 109584 (2020).
|
||||
|
||||
@ -297,7 +297,7 @@ Restrictions
|
||||
""""""""""""
|
||||
|
||||
The pair styles *edpd*\ , *mdpd*\ , *mdpd/rhosum* and *tdpd* are part of
|
||||
the USER-MESO package. It is only enabled if LAMMPS was built with
|
||||
the USER-MESODPD package. It is only enabled if LAMMPS was built with
|
||||
that package. See the :doc:`Build package <Build_package>` doc page for
|
||||
more info.
|
||||
|
||||
@ -162,7 +162,7 @@ accelerated styles exist.
|
||||
* :doc:`eam/fs <pair_eam>` - Finnis-Sinclair EAM
|
||||
* :doc:`edip <pair_edip>` - three-body EDIP potential
|
||||
* :doc:`edip/multi <pair_edip>` - multi-element EDIP potential
|
||||
* :doc:`edpd <pair_meso>` - eDPD particle interactions
|
||||
* :doc:`edpd <pair_mesodpd>` - eDPD particle interactions
|
||||
* :doc:`eff/cut <pair_eff>` - electron force field with a cutoff
|
||||
* :doc:`eim <pair_eim>` - embedded ion method (EIM)
|
||||
* :doc:`exp6/rx <pair_exp6_rx>` - reactive DPD potential
|
||||
@ -239,8 +239,8 @@ accelerated styles exist.
|
||||
* :doc:`lubricate/poly <pair_lubricate>` - hydrodynamic lubrication forces with polydispersity
|
||||
* :doc:`lubricateU <pair_lubricateU>` - hydrodynamic lubrication forces for Fast Lubrication Dynamics
|
||||
* :doc:`lubricateU/poly <pair_lubricateU>` - hydrodynamic lubrication forces for Fast Lubrication with polydispersity
|
||||
* :doc:`mdpd <pair_meso>` - mDPD particle interactions
|
||||
* :doc:`mdpd/rhosum <pair_meso>` - mDPD particle interactions for mass density
|
||||
* :doc:`mdpd <pair_mesodpd>` - mDPD particle interactions
|
||||
* :doc:`mdpd/rhosum <pair_mesodpd>` - mDPD particle interactions for mass density
|
||||
* :doc:`meam/c <pair_meamc>` - modified embedded atom method (MEAM) in C
|
||||
* :doc:`meam/spline <pair_meam_spline>` - splined version of MEAM
|
||||
* :doc:`meam/sw/spline <pair_meam_sw_spline>` - splined version of MEAM with a Stillinger-Weber term
|
||||
@ -309,7 +309,7 @@ accelerated styles exist.
|
||||
* :doc:`sw <pair_sw>` - Stillinger-Weber 3-body potential
|
||||
* :doc:`table <pair_table>` - tabulated pair potential
|
||||
* :doc:`table/rx <pair_table_rx>` -
|
||||
* :doc:`tdpd <pair_meso>` - tDPD particle interactions
|
||||
* :doc:`tdpd <pair_mesodpd>` - tDPD particle interactions
|
||||
* :doc:`tersoff <pair_tersoff>` - Tersoff 3-body potential
|
||||
* :doc:`tersoff/mod <pair_tersoff_mod>` - modified Tersoff 3-body potential
|
||||
* :doc:`tersoff/mod/c <pair_tersoff_mod>` -
|
||||
|
||||
@ -462,13 +462,13 @@ value >= 0.0, the internal temperature is set to that value. If it is
|
||||
temperature is set to that value.
|
||||
|
||||
Keywords *edpd/temp* and *edpd/cv* set the temperature and volumetric
|
||||
heat capacity of an eDPD particle as defined by the USER-MESO package.
|
||||
heat capacity of an eDPD particle as defined by the USER-MESODPD package.
|
||||
Currently, only :doc:`atom_style edpd <atom_style>` defines particles
|
||||
with these attributes. The values for the temperature and heat
|
||||
capacity must be positive.
|
||||
|
||||
Keyword *cc* sets the chemical concentration of a tDPD particle for a
|
||||
specified species as defined by the USER-MESO package. Currently, only
|
||||
specified species as defined by the USER-MESODPD package. Currently, only
|
||||
:doc:`atom_style tdpd <atom_style>` defines particles with this
|
||||
attribute. An integer for "index" selects a chemical species (1 to
|
||||
Nspecies) where Nspecies is set by the atom\_style command. The value
|
||||
|
||||
@ -615,6 +615,7 @@ dipolar
|
||||
dir
|
||||
Direc
|
||||
dirname
|
||||
disarmmd
|
||||
discoverable
|
||||
discretization
|
||||
discretized
|
||||
@ -1704,6 +1705,8 @@ Merz
|
||||
meshless
|
||||
meso
|
||||
mesocnt
|
||||
MESODPD
|
||||
mesodpd
|
||||
mesoparticle
|
||||
mesoscale
|
||||
mesoscopic
|
||||
@ -2017,6 +2020,7 @@ Nrecompute
|
||||
Nrepeat
|
||||
nreset
|
||||
Nrho
|
||||
Nroff
|
||||
nrun
|
||||
Ns
|
||||
Nsample
|
||||
|
||||
Binary file not shown.
49
examples/USER/reaction/tiny_epoxy/in.tiny_epoxy.stabilized
Normal file
49
examples/USER/reaction/tiny_epoxy/in.tiny_epoxy.stabilized
Normal file
@ -0,0 +1,49 @@
|
||||
# two molecules DGEBA (diepoxy) and one DETA (linker)
|
||||
# two crosslinking reactions
|
||||
|
||||
units real
|
||||
|
||||
boundary p p p
|
||||
|
||||
atom_style full
|
||||
|
||||
pair_style lj/class2 8
|
||||
|
||||
angle_style class2
|
||||
|
||||
bond_style class2
|
||||
|
||||
dihedral_style class2
|
||||
|
||||
improper_style class2
|
||||
|
||||
read_data tiny_epoxy.data
|
||||
|
||||
velocity all create 300.0 4928459 dist gaussian
|
||||
|
||||
molecule mol1 rxn1_stp1_pre.data_template
|
||||
molecule mol2 rxn1_stp1_post.data_template
|
||||
molecule mol3 rxn1_stp2_post.data_template
|
||||
molecule mol4 rxn2_stp1_pre.data_template
|
||||
molecule mol5 rxn2_stp1_post.data_template
|
||||
molecule mol6 rxn2_stp2_post.data_template
|
||||
|
||||
thermo 50
|
||||
|
||||
# dump 1 all xyz 1 test_vis.xyz
|
||||
|
||||
fix rxns all bond/react stabilization yes statted_grp .03 &
|
||||
react rxn1_stp1 all 1 0.0 5 mol1 mol2 rxn1_stp1.map &
|
||||
react rxn1_stp2 all 1 0.0 5 mol2 mol3 rxn1_stp2.map &
|
||||
react rxn2_stp1 all 1 0.0 5 mol4 mol5 rxn2_stp1.map &
|
||||
react rxn2_stp2 all 1 0.0 5 mol5 mol6 rxn2_stp2.map
|
||||
|
||||
|
||||
fix 1 statted_grp_REACT nvt temp 300 300 100
|
||||
|
||||
thermo_style custom step temp f_rxns[1] f_rxns[2] f_rxns[3] f_rxns[4]
|
||||
|
||||
run 2000
|
||||
|
||||
# write_restart restart_longrun
|
||||
# write_data restart_longrun.data nofix
|
||||
@ -0,0 +1,172 @@
|
||||
LAMMPS (20 Nov 2019)
|
||||
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
This LAMMPS executable was compiled using C++98 compatibility.
|
||||
Please report the compiler info below at https://github.com/lammps/lammps/issues/1659
|
||||
GNU C++ 4.8.5
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
|
||||
Reading data file ...
|
||||
orthogonal box = (10 -10 -15) to (30 20 10)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
118 atoms
|
||||
scanning bonds ...
|
||||
4 = max bonds/atom
|
||||
scanning angles ...
|
||||
6 = max angles/atom
|
||||
scanning dihedrals ...
|
||||
18 = max dihedrals/atom
|
||||
scanning impropers ...
|
||||
4 = max impropers/atom
|
||||
reading bonds ...
|
||||
123 bonds
|
||||
reading angles ...
|
||||
221 angles
|
||||
reading dihedrals ...
|
||||
302 dihedrals
|
||||
reading impropers ...
|
||||
115 impropers
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
4 = max # of 1-2 neighbors
|
||||
10 = max # of 1-3 neighbors
|
||||
19 = max # of 1-4 neighbors
|
||||
22 = max # of special neighbors
|
||||
special bonds CPU = 0.000286808 secs
|
||||
read_data CPU = 0.00724107 secs
|
||||
Read molecule mol1:
|
||||
31 atoms with max type 10
|
||||
30 bonds with max type 15
|
||||
53 angles with max type 29
|
||||
66 dihedrals with max type 39
|
||||
31 impropers with max type 5
|
||||
Read molecule mol2:
|
||||
31 atoms with max type 10
|
||||
30 bonds with max type 17
|
||||
55 angles with max type 36
|
||||
75 dihedrals with max type 51
|
||||
34 impropers with max type 5
|
||||
Read molecule mol3:
|
||||
31 atoms with max type 11
|
||||
30 bonds with max type 18
|
||||
53 angles with max type 37
|
||||
72 dihedrals with max type 53
|
||||
31 impropers with max type 5
|
||||
Read molecule mol4:
|
||||
42 atoms with max type 11
|
||||
41 bonds with max type 18
|
||||
73 angles with max type 41
|
||||
96 dihedrals with max type 54
|
||||
43 impropers with max type 5
|
||||
Read molecule mol5:
|
||||
42 atoms with max type 11
|
||||
41 bonds with max type 18
|
||||
75 angles with max type 37
|
||||
108 dihedrals with max type 53
|
||||
46 impropers with max type 5
|
||||
Read molecule mol6:
|
||||
42 atoms with max type 11
|
||||
41 bonds with max type 19
|
||||
73 angles with max type 50
|
||||
102 dihedrals with max type 66
|
||||
43 impropers with max type 22
|
||||
dynamic group bond_react_MASTER_group defined
|
||||
dynamic group statted_grp_REACT defined
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10
|
||||
ghost atom cutoff = 10
|
||||
binsize = 5, bins = 4 6 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/class2, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) fix bond/react, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Setting up Verlet run ...
|
||||
Unit style : real
|
||||
Current step : 0
|
||||
Time step : 1
|
||||
Per MPI rank memory allocation (min/avg/max) = 17.28 | 17.28 | 17.28 Mbytes
|
||||
Step Temp f_rxns[1] f_rxns[2] f_rxns[3] f_rxns[4]
|
||||
0 300 0 0 0 0
|
||||
50 391.52956 1 0 0 0
|
||||
100 475.26826 1 1 0 0
|
||||
150 605.26215 1 1 1 0
|
||||
200 545.7485 1 1 1 0
|
||||
250 461.64929 1 1 1 1
|
||||
300 452.10611 1 1 1 1
|
||||
350 379.61671 1 1 1 1
|
||||
400 331.22444 1 1 1 1
|
||||
450 275.63969 1 1 1 1
|
||||
500 316.63407 1 1 1 1
|
||||
550 261.39841 1 1 1 1
|
||||
600 313.70928 1 1 1 1
|
||||
650 294.24011 1 1 1 1
|
||||
700 285.81736 1 1 1 1
|
||||
750 340.37496 1 1 1 1
|
||||
800 333.2496 1 1 1 1
|
||||
850 307.40826 1 1 1 1
|
||||
900 304.68718 1 1 1 1
|
||||
950 328.0289 1 1 1 1
|
||||
1000 290.22808 1 1 1 1
|
||||
1050 272.78518 1 1 1 1
|
||||
1100 291.30546 1 1 1 1
|
||||
1150 320.33992 1 1 1 1
|
||||
1200 330.57057 1 1 1 1
|
||||
1250 300.51008 1 1 1 1
|
||||
1300 293.6209 1 1 1 1
|
||||
1350 324.36604 1 1 1 1
|
||||
1400 331.15408 1 1 1 1
|
||||
1450 302.23396 1 1 1 1
|
||||
1500 297.55562 1 1 1 1
|
||||
1550 277.3187 1 1 1 1
|
||||
1600 289.66052 1 1 1 1
|
||||
1650 281.85404 1 1 1 1
|
||||
1700 293.4999 1 1 1 1
|
||||
1750 306.21866 1 1 1 1
|
||||
1800 283.22696 1 1 1 1
|
||||
1850 295.10473 1 1 1 1
|
||||
1900 317.3843 1 1 1 1
|
||||
1950 305.14825 1 1 1 1
|
||||
2000 289.00911 1 1 1 1
|
||||
Loop time of 1.87066 on 1 procs for 2000 steps with 118 atoms
|
||||
|
||||
Performance: 92.374 ns/day, 0.260 hours/ns, 1069.141 timesteps/s
|
||||
98.4% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.12832 | 0.12832 | 0.12832 | 0.0 | 6.86
|
||||
Bond | 0.77458 | 0.77458 | 0.77458 | 0.0 | 41.41
|
||||
Neigh | 0.45068 | 0.45068 | 0.45068 | 0.0 | 24.09
|
||||
Comm | 0.029785 | 0.029785 | 0.029785 | 0.0 | 1.59
|
||||
Output | 0.31635 | 0.31635 | 0.31635 | 0.0 | 16.91
|
||||
Modify | 0.16657 | 0.16657 | 0.16657 | 0.0 | 8.90
|
||||
Other | | 0.004368 | | | 0.23
|
||||
|
||||
Nlocal: 118 ave 118 max 118 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 332 ave 332 max 332 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 4338 ave 4338 max 4338 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 4338
|
||||
Ave neighs/atom = 36.7627
|
||||
Ave special neighs/atom = 10.5763
|
||||
Neighbor list builds = 2000
|
||||
Dangerous builds = 0
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
Total wall time: 0:00:02
|
||||
@ -0,0 +1,172 @@
|
||||
LAMMPS (20 Nov 2019)
|
||||
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
This LAMMPS executable was compiled using C++98 compatibility.
|
||||
Please report the compiler info below at https://github.com/lammps/lammps/issues/1659
|
||||
GNU C++ 4.8.5
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
|
||||
Reading data file ...
|
||||
orthogonal box = (10 -10 -15) to (30 20 10)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
118 atoms
|
||||
scanning bonds ...
|
||||
4 = max bonds/atom
|
||||
scanning angles ...
|
||||
6 = max angles/atom
|
||||
scanning dihedrals ...
|
||||
18 = max dihedrals/atom
|
||||
scanning impropers ...
|
||||
4 = max impropers/atom
|
||||
reading bonds ...
|
||||
123 bonds
|
||||
reading angles ...
|
||||
221 angles
|
||||
reading dihedrals ...
|
||||
302 dihedrals
|
||||
reading impropers ...
|
||||
115 impropers
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
4 = max # of 1-2 neighbors
|
||||
10 = max # of 1-3 neighbors
|
||||
19 = max # of 1-4 neighbors
|
||||
22 = max # of special neighbors
|
||||
special bonds CPU = 0.000239905 secs
|
||||
read_data CPU = 0.0080783 secs
|
||||
Read molecule mol1:
|
||||
31 atoms with max type 10
|
||||
30 bonds with max type 15
|
||||
53 angles with max type 29
|
||||
66 dihedrals with max type 39
|
||||
31 impropers with max type 5
|
||||
Read molecule mol2:
|
||||
31 atoms with max type 10
|
||||
30 bonds with max type 17
|
||||
55 angles with max type 36
|
||||
75 dihedrals with max type 51
|
||||
34 impropers with max type 5
|
||||
Read molecule mol3:
|
||||
31 atoms with max type 11
|
||||
30 bonds with max type 18
|
||||
53 angles with max type 37
|
||||
72 dihedrals with max type 53
|
||||
31 impropers with max type 5
|
||||
Read molecule mol4:
|
||||
42 atoms with max type 11
|
||||
41 bonds with max type 18
|
||||
73 angles with max type 41
|
||||
96 dihedrals with max type 54
|
||||
43 impropers with max type 5
|
||||
Read molecule mol5:
|
||||
42 atoms with max type 11
|
||||
41 bonds with max type 18
|
||||
75 angles with max type 37
|
||||
108 dihedrals with max type 53
|
||||
46 impropers with max type 5
|
||||
Read molecule mol6:
|
||||
42 atoms with max type 11
|
||||
41 bonds with max type 19
|
||||
73 angles with max type 50
|
||||
102 dihedrals with max type 66
|
||||
43 impropers with max type 22
|
||||
dynamic group bond_react_MASTER_group defined
|
||||
dynamic group statted_grp_REACT defined
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10
|
||||
ghost atom cutoff = 10
|
||||
binsize = 5, bins = 4 6 5
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/class2, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) fix bond/react, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Setting up Verlet run ...
|
||||
Unit style : real
|
||||
Current step : 0
|
||||
Time step : 1
|
||||
Per MPI rank memory allocation (min/avg/max) = 16.26 | 16.45 | 16.63 Mbytes
|
||||
Step Temp f_rxns[1] f_rxns[2] f_rxns[3] f_rxns[4]
|
||||
0 300 0 0 0 0
|
||||
50 391.52956 1 0 0 0
|
||||
100 475.26826 1 1 0 0
|
||||
150 605.26215 1 1 1 0
|
||||
200 545.7485 1 1 1 0
|
||||
250 461.64929 1 1 1 1
|
||||
300 452.10611 1 1 1 1
|
||||
350 379.61671 1 1 1 1
|
||||
400 331.22444 1 1 1 1
|
||||
450 275.63969 1 1 1 1
|
||||
500 316.63407 1 1 1 1
|
||||
550 261.39841 1 1 1 1
|
||||
600 313.70928 1 1 1 1
|
||||
650 294.24011 1 1 1 1
|
||||
700 285.81736 1 1 1 1
|
||||
750 340.37496 1 1 1 1
|
||||
800 333.2496 1 1 1 1
|
||||
850 307.40826 1 1 1 1
|
||||
900 304.68718 1 1 1 1
|
||||
950 328.0289 1 1 1 1
|
||||
1000 290.22808 1 1 1 1
|
||||
1050 272.78518 1 1 1 1
|
||||
1100 291.30546 1 1 1 1
|
||||
1150 320.33992 1 1 1 1
|
||||
1200 330.57057 1 1 1 1
|
||||
1250 300.51008 1 1 1 1
|
||||
1300 293.6209 1 1 1 1
|
||||
1350 324.36604 1 1 1 1
|
||||
1400 331.15408 1 1 1 1
|
||||
1450 302.23396 1 1 1 1
|
||||
1500 297.55562 1 1 1 1
|
||||
1550 277.3187 1 1 1 1
|
||||
1600 289.66052 1 1 1 1
|
||||
1650 281.85404 1 1 1 1
|
||||
1700 293.4999 1 1 1 1
|
||||
1750 306.21866 1 1 1 1
|
||||
1800 283.22695 1 1 1 1
|
||||
1850 295.10472 1 1 1 1
|
||||
1900 317.38431 1 1 1 1
|
||||
1950 305.14824 1 1 1 1
|
||||
2000 289.00909 1 1 1 1
|
||||
Loop time of 0.689125 on 4 procs for 2000 steps with 118 atoms
|
||||
|
||||
Performance: 250.753 ns/day, 0.096 hours/ns, 2902.231 timesteps/s
|
||||
100.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 | 0.02002 | 0.030617 | 0.053133 | 7.7 | 4.44
|
||||
Bond | 0.10356 | 0.18908 | 0.22691 | 11.6 | 27.44
|
||||
Neigh | 0.16721 | 0.17002 | 0.17247 | 0.5 | 24.67
|
||||
Comm | 0.057286 | 0.12002 | 0.21612 | 17.0 | 17.42
|
||||
Output | 0.00028991 | 0.00034121 | 0.00049323 | 0.0 | 0.05
|
||||
Modify | 0.17626 | 0.17675 | 0.17721 | 0.1 | 25.65
|
||||
Other | | 0.002287 | | | 0.33
|
||||
|
||||
Nlocal: 29.5 ave 41 max 18 min
|
||||
Histogram: 1 0 0 1 0 0 1 0 0 1
|
||||
Nghost: 306 ave 349 max 269 min
|
||||
Histogram: 1 1 0 0 0 0 1 0 0 1
|
||||
Neighs: 1084.5 ave 2154 max 397 min
|
||||
Histogram: 1 0 1 1 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 4338
|
||||
Ave neighs/atom = 36.7627
|
||||
Ave special neighs/atom = 10.5763
|
||||
Neighbor list builds = 2000
|
||||
Dangerous builds = 0
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
Total wall time: 0:00:01
|
||||
47
examples/USER/reaction/tiny_epoxy/rxn1_stp1.map
Normal file
47
examples/USER/reaction/tiny_epoxy/rxn1_stp1.map
Normal file
@ -0,0 +1,47 @@
|
||||
this is a map file
|
||||
|
||||
1 edgeIDs
|
||||
31 equivalences
|
||||
|
||||
BondingIDs
|
||||
|
||||
15
|
||||
1
|
||||
|
||||
EdgeIDs
|
||||
|
||||
5
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
315
examples/USER/reaction/tiny_epoxy/rxn1_stp1_post.data_template
Normal file
315
examples/USER/reaction/tiny_epoxy/rxn1_stp1_post.data_template
Normal file
@ -0,0 +1,315 @@
|
||||
rxn1_stp1_post
|
||||
|
||||
31 atoms
|
||||
30 bonds
|
||||
55 angles
|
||||
75 dihedrals
|
||||
34 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 6
|
||||
3 1
|
||||
4 7
|
||||
5 4
|
||||
6 7
|
||||
7 8
|
||||
8 8
|
||||
9 8
|
||||
10 8
|
||||
11 8
|
||||
12 9
|
||||
13 1
|
||||
14 1
|
||||
15 9
|
||||
16 9
|
||||
17 1
|
||||
18 1
|
||||
19 10
|
||||
20 8
|
||||
21 8
|
||||
22 8
|
||||
23 8
|
||||
24 10
|
||||
25 10
|
||||
26 10
|
||||
27 10
|
||||
28 8
|
||||
29 8
|
||||
30 8
|
||||
31 8
|
||||
|
||||
Charges
|
||||
|
||||
1 0.000000
|
||||
2 0.000000
|
||||
3 0.000000
|
||||
4 0.100000
|
||||
5 0.000000
|
||||
6 0.000000
|
||||
7 0.000000
|
||||
8 0.000000
|
||||
9 0.000000
|
||||
10 0.000000
|
||||
11 0.000000
|
||||
12 0.000000
|
||||
13 0.000000
|
||||
14 0.000000
|
||||
15 -0.025000
|
||||
16 -0.025000
|
||||
17 0.000000
|
||||
18 0.000000
|
||||
19 0.000000
|
||||
20 0.000000
|
||||
21 0.000000
|
||||
22 0.000000
|
||||
23 0.000000
|
||||
24 0.000000
|
||||
25 0.000000
|
||||
26 0.000000
|
||||
27 0.000000
|
||||
28 0.000000
|
||||
29 0.000000
|
||||
30 0.000000
|
||||
31 0.000000
|
||||
|
||||
Coords
|
||||
|
||||
1 22.582573 10.988183 -5.014054
|
||||
2 23.904713 10.750493 -4.202215
|
||||
3 23.989172 9.487042 -3.323374
|
||||
4 24.067001 11.723383 -4.037435
|
||||
5 24.627851 7.325302 -3.319944
|
||||
6 24.554632 8.418972 -4.080365
|
||||
7 22.667763 11.445703 -5.999605
|
||||
8 21.787441 10.247643 -4.916974
|
||||
9 24.964962 10.712683 -4.449374
|
||||
10 24.616703 9.689913 -2.456034
|
||||
11 22.989313 9.208153 -2.991455
|
||||
12 18.808882 13.758042 -3.958724
|
||||
13 19.293213 12.549683 -3.196594
|
||||
14 20.810543 12.417832 -3.417504
|
||||
15 21.090193 12.251203 -4.891234
|
||||
16 17.657042 16.437199 -3.985224
|
||||
17 19.126713 16.210239 -4.245154
|
||||
18 19.589151 14.957593 -3.479565
|
||||
19 19.000433 13.609432 -5.041715
|
||||
20 18.761223 11.614392 -3.573184
|
||||
21 19.082903 12.688992 -2.085145
|
||||
22 21.202852 11.511562 -2.848624
|
||||
23 21.328482 13.360252 -3.038924
|
||||
24 19.949852 12.199403 -5.680355
|
||||
25 21.477343 13.247442 -5.445915
|
||||
26 17.080341 15.555528 -4.334374
|
||||
27 17.319832 17.341927 -4.532204
|
||||
28 19.720472 17.115158 -3.887564
|
||||
29 19.298622 16.058659 -5.361685
|
||||
30 19.410772 15.105113 -2.363724
|
||||
31 20.700163 14.782252 -3.666344
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 8
|
||||
2 16 1 2
|
||||
3 1 1 7
|
||||
4 13 1 15
|
||||
5 16 3 2
|
||||
6 12 2 9
|
||||
7 17 2 4
|
||||
8 3 3 6
|
||||
9 1 3 10
|
||||
10 1 3 11
|
||||
11 8 6 5
|
||||
12 13 13 12
|
||||
13 13 18 12
|
||||
14 14 12 19
|
||||
15 15 13 14
|
||||
16 1 13 20
|
||||
17 1 13 21
|
||||
18 13 14 15
|
||||
19 1 14 22
|
||||
20 1 14 23
|
||||
21 14 15 24
|
||||
22 14 15 25
|
||||
23 13 17 16
|
||||
24 14 16 26
|
||||
25 14 16 27
|
||||
26 15 17 18
|
||||
27 1 17 28
|
||||
28 1 17 29
|
||||
29 1 18 30
|
||||
30 1 18 31
|
||||
|
||||
Angles
|
||||
|
||||
1 30 2 1 8
|
||||
2 2 8 1 7
|
||||
3 26 8 1 15
|
||||
4 30 2 1 7
|
||||
5 31 2 1 15
|
||||
6 26 7 1 15
|
||||
7 32 1 2 3
|
||||
8 33 1 2 9
|
||||
9 34 1 2 4
|
||||
10 33 3 2 9
|
||||
11 34 3 2 4
|
||||
12 35 4 2 9
|
||||
13 36 2 3 6
|
||||
14 30 2 3 10
|
||||
15 30 2 3 11
|
||||
16 3 6 3 10
|
||||
17 3 6 3 11
|
||||
18 2 10 3 11
|
||||
19 22 3 6 5
|
||||
20 23 13 12 18
|
||||
21 24 13 12 19
|
||||
22 24 18 12 19
|
||||
23 25 14 13 12
|
||||
24 26 20 13 12
|
||||
25 26 21 13 12
|
||||
26 27 14 13 20
|
||||
27 27 14 13 21
|
||||
28 2 20 13 21
|
||||
29 25 13 14 15
|
||||
30 27 13 14 22
|
||||
31 27 13 14 23
|
||||
32 26 22 14 15
|
||||
33 26 23 14 15
|
||||
34 2 22 14 23
|
||||
35 23 1 15 14
|
||||
36 24 1 15 24
|
||||
37 24 1 15 25
|
||||
38 24 14 15 24
|
||||
39 24 14 15 25
|
||||
40 28 24 15 25
|
||||
41 24 17 16 26
|
||||
42 24 17 16 27
|
||||
43 28 26 16 27
|
||||
44 25 18 17 16
|
||||
45 26 28 17 16
|
||||
46 26 29 17 16
|
||||
47 27 18 17 28
|
||||
48 27 18 17 29
|
||||
49 2 28 17 29
|
||||
50 25 17 18 12
|
||||
51 26 30 18 12
|
||||
52 26 31 18 12
|
||||
53 27 17 18 30
|
||||
54 27 17 18 31
|
||||
55 2 30 18 31
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 40 8 1 2 3
|
||||
2 41 8 1 2 9
|
||||
3 42 8 1 2 4
|
||||
4 40 7 1 2 3
|
||||
5 41 7 1 2 9
|
||||
6 42 7 1 2 4
|
||||
7 43 15 1 2 3
|
||||
8 44 15 1 2 9
|
||||
9 45 15 1 2 4
|
||||
10 28 8 1 15 14
|
||||
11 30 8 1 15 24
|
||||
12 30 8 1 15 25
|
||||
13 46 2 1 15 14
|
||||
14 47 2 1 15 24
|
||||
15 47 2 1 15 25
|
||||
16 28 7 1 15 14
|
||||
17 30 7 1 15 24
|
||||
18 30 7 1 15 25
|
||||
19 48 6 3 2 1
|
||||
20 40 10 3 2 1
|
||||
21 40 11 3 2 1
|
||||
22 49 6 3 2 9
|
||||
23 41 10 3 2 9
|
||||
24 41 11 3 2 9
|
||||
25 50 6 3 2 4
|
||||
26 42 10 3 2 4
|
||||
27 42 11 3 2 4
|
||||
28 51 2 3 6 5
|
||||
29 7 10 3 6 5
|
||||
30 7 11 3 6 5
|
||||
31 27 14 13 12 18
|
||||
32 28 20 13 12 18
|
||||
33 28 21 13 12 18
|
||||
34 29 14 13 12 19
|
||||
35 30 20 13 12 19
|
||||
36 30 21 13 12 19
|
||||
37 27 17 18 12 13
|
||||
38 28 30 18 12 13
|
||||
39 28 31 18 12 13
|
||||
40 29 17 18 12 19
|
||||
41 30 30 18 12 19
|
||||
42 30 31 18 12 19
|
||||
43 31 12 13 14 15
|
||||
44 32 22 14 13 12
|
||||
45 32 23 14 13 12
|
||||
46 32 20 13 14 15
|
||||
47 33 20 13 14 22
|
||||
48 33 20 13 14 23
|
||||
49 32 21 13 14 15
|
||||
50 33 21 13 14 22
|
||||
51 33 21 13 14 23
|
||||
52 27 13 14 15 1
|
||||
53 29 13 14 15 24
|
||||
54 29 13 14 15 25
|
||||
55 28 22 14 15 1
|
||||
56 30 22 14 15 24
|
||||
57 30 22 14 15 25
|
||||
58 28 23 14 15 1
|
||||
59 30 23 14 15 24
|
||||
60 30 23 14 15 25
|
||||
61 29 18 17 16 26
|
||||
62 30 28 17 16 26
|
||||
63 30 29 17 16 26
|
||||
64 29 18 17 16 27
|
||||
65 30 28 17 16 27
|
||||
66 30 29 17 16 27
|
||||
67 31 16 17 18 12
|
||||
68 32 30 18 17 16
|
||||
69 32 31 18 17 16
|
||||
70 32 28 17 18 12
|
||||
71 33 28 17 18 30
|
||||
72 33 28 17 18 31
|
||||
73 32 29 17 18 12
|
||||
74 33 29 17 18 30
|
||||
75 33 29 17 18 31
|
||||
|
||||
Impropers
|
||||
|
||||
1 4 13 12 18 19
|
||||
2 5 17 16 26 27
|
||||
3 1 2 1 8 7
|
||||
4 1 2 1 8 15
|
||||
5 1 8 1 7 15
|
||||
6 1 2 1 7 15
|
||||
7 1 1 2 3 9
|
||||
8 1 1 2 3 4
|
||||
9 1 1 2 4 9
|
||||
10 1 3 2 4 9
|
||||
11 1 2 3 6 10
|
||||
12 1 2 3 6 11
|
||||
13 1 2 3 10 11
|
||||
14 1 6 3 10 11
|
||||
15 1 14 13 20 12
|
||||
16 1 14 13 21 12
|
||||
17 1 20 13 21 12
|
||||
18 1 14 13 20 21
|
||||
19 1 13 14 22 15
|
||||
20 1 13 14 23 15
|
||||
21 1 13 14 22 23
|
||||
22 1 22 14 23 15
|
||||
23 1 1 15 14 24
|
||||
24 1 1 15 14 25
|
||||
25 1 1 15 24 25
|
||||
26 1 14 15 24 25
|
||||
27 1 18 17 28 16
|
||||
28 1 18 17 29 16
|
||||
29 1 28 17 29 16
|
||||
30 1 18 17 28 29
|
||||
31 1 17 18 30 12
|
||||
32 1 17 18 31 12
|
||||
33 1 30 18 31 12
|
||||
34 1 17 18 30 31
|
||||
301
examples/USER/reaction/tiny_epoxy/rxn1_stp1_pre.data_template
Normal file
301
examples/USER/reaction/tiny_epoxy/rxn1_stp1_pre.data_template
Normal file
@ -0,0 +1,301 @@
|
||||
rxn1_stp1_pre
|
||||
|
||||
31 atoms
|
||||
30 bonds
|
||||
53 angles
|
||||
66 dihedrals
|
||||
31 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 2
|
||||
2 2
|
||||
3 1
|
||||
4 3
|
||||
5 4
|
||||
6 7
|
||||
7 8
|
||||
8 8
|
||||
9 8
|
||||
10 8
|
||||
11 8
|
||||
12 9
|
||||
13 1
|
||||
14 1
|
||||
15 9
|
||||
16 9
|
||||
17 1
|
||||
18 1
|
||||
19 10
|
||||
20 8
|
||||
21 8
|
||||
22 8
|
||||
23 8
|
||||
24 10
|
||||
25 10
|
||||
26 10
|
||||
27 10
|
||||
28 8
|
||||
29 8
|
||||
30 8
|
||||
31 8
|
||||
|
||||
Charges
|
||||
|
||||
1 0.000000
|
||||
2 0.000000
|
||||
3 0.000000
|
||||
4 0.100000
|
||||
5 0.000000
|
||||
6 0.000000
|
||||
7 0.000000
|
||||
8 0.000000
|
||||
9 0.000000
|
||||
10 0.000000
|
||||
11 0.000000
|
||||
12 0.000000
|
||||
13 0.000000
|
||||
14 0.000000
|
||||
15 -0.025000
|
||||
16 -0.025000
|
||||
17 0.000000
|
||||
18 0.000000
|
||||
19 0.000000
|
||||
20 0.000000
|
||||
21 0.000000
|
||||
22 0.000000
|
||||
23 0.000000
|
||||
24 0.000000
|
||||
25 0.000000
|
||||
26 0.000000
|
||||
27 0.000000
|
||||
28 0.000000
|
||||
29 0.000000
|
||||
30 0.000000
|
||||
31 0.000000
|
||||
|
||||
Coords
|
||||
|
||||
1 19.846882 9.569666 -1.229588
|
||||
2 21.168802 9.331466 -0.418038
|
||||
3 21.253012 8.067936 0.460722
|
||||
4 20.170443 10.460656 0.020692
|
||||
5 21.891691 5.906196 0.464152
|
||||
6 21.818472 6.999866 -0.296268
|
||||
7 19.932211 10.027435 -2.215008
|
||||
8 19.051722 8.829116 -1.132808
|
||||
9 22.229073 9.293536 -0.665088
|
||||
10 21.880442 8.270676 1.328162
|
||||
11 20.253073 7.789126 0.792482
|
||||
12 16.072590 12.338870 -0.174330
|
||||
13 16.557261 11.130320 0.587290
|
||||
14 18.074570 10.998810 0.366080
|
||||
15 18.353970 10.832370 -1.107720
|
||||
16 14.920720 15.017820 -0.200530
|
||||
17 16.390430 14.791100 -0.460440
|
||||
18 16.852980 13.538320 0.304870
|
||||
19 16.263750 12.190560 -1.257430
|
||||
20 16.025360 10.195070 0.210470
|
||||
21 16.347120 11.269210 1.698830
|
||||
22 18.467180 10.092570 0.934800
|
||||
23 18.592390 11.941300 0.744640
|
||||
24 17.843861 9.919930 -1.479780
|
||||
25 19.448191 10.736480 -1.267520
|
||||
26 14.344120 14.136250 -0.550130
|
||||
27 14.583470 15.922760 -0.747140
|
||||
28 16.984060 15.696010 -0.102600
|
||||
29 16.562420 14.639820 -1.577000
|
||||
30 16.674820 13.685670 1.420760
|
||||
31 17.963949 13.362980 0.117850
|
||||
|
||||
Bonds
|
||||
|
||||
1 6 1 8
|
||||
2 4 1 4
|
||||
3 5 1 2
|
||||
4 6 1 7
|
||||
5 4 2 4
|
||||
6 2 2 3
|
||||
7 6 2 9
|
||||
8 3 3 6
|
||||
9 1 3 10
|
||||
10 1 3 11
|
||||
11 8 5 6
|
||||
12 13 13 12
|
||||
13 13 18 12
|
||||
14 14 12 19
|
||||
15 15 13 14
|
||||
16 1 13 20
|
||||
17 1 13 21
|
||||
18 13 14 15
|
||||
19 1 14 22
|
||||
20 1 14 23
|
||||
21 14 15 24
|
||||
22 14 15 25
|
||||
23 13 17 16
|
||||
24 14 16 26
|
||||
25 14 16 27
|
||||
26 15 17 18
|
||||
27 1 17 28
|
||||
28 1 17 29
|
||||
29 1 18 30
|
||||
30 1 18 31
|
||||
|
||||
Angles
|
||||
|
||||
1 9 4 1 8
|
||||
2 10 2 1 8
|
||||
3 11 8 1 7
|
||||
4 8 2 1 4
|
||||
5 9 4 1 7
|
||||
6 10 2 1 7
|
||||
7 8 1 2 4
|
||||
8 29 1 2 3
|
||||
9 10 1 2 9
|
||||
10 5 3 2 4
|
||||
11 9 4 2 9
|
||||
12 7 3 2 9
|
||||
13 4 2 3 6
|
||||
14 1 2 3 10
|
||||
15 1 2 3 11
|
||||
16 3 6 3 10
|
||||
17 3 6 3 11
|
||||
18 2 10 3 11
|
||||
19 12 1 4 2
|
||||
20 22 3 6 5
|
||||
21 23 13 12 18
|
||||
22 24 13 12 19
|
||||
23 24 18 12 19
|
||||
24 25 14 13 12
|
||||
25 26 20 13 12
|
||||
26 26 21 13 12
|
||||
27 27 14 13 20
|
||||
28 27 14 13 21
|
||||
29 2 20 13 21
|
||||
30 25 13 14 15
|
||||
31 27 13 14 22
|
||||
32 27 13 14 23
|
||||
33 26 22 14 15
|
||||
34 26 23 14 15
|
||||
35 2 22 14 23
|
||||
36 24 14 15 24
|
||||
37 24 14 15 25
|
||||
38 28 24 15 25
|
||||
39 24 17 16 26
|
||||
40 24 17 16 27
|
||||
41 28 26 16 27
|
||||
42 25 18 17 16
|
||||
43 26 28 17 16
|
||||
44 26 29 17 16
|
||||
45 27 18 17 28
|
||||
46 27 18 17 29
|
||||
47 2 28 17 29
|
||||
48 25 17 18 12
|
||||
49 26 30 18 12
|
||||
50 26 31 18 12
|
||||
51 27 17 18 30
|
||||
52 27 17 18 31
|
||||
53 2 30 18 31
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 10 8 1 4 2
|
||||
2 10 7 1 4 2
|
||||
3 13 4 2 1 8
|
||||
4 12 3 2 1 8
|
||||
5 14 8 1 2 9
|
||||
6 11 3 2 1 4
|
||||
7 13 4 1 2 9
|
||||
8 13 4 2 1 7
|
||||
9 12 3 2 1 7
|
||||
10 14 7 1 2 9
|
||||
11 9 3 2 4 1
|
||||
12 10 9 2 4 1
|
||||
13 34 1 2 3 6
|
||||
14 35 1 2 3 10
|
||||
15 35 1 2 3 11
|
||||
16 36 4 2 3 6
|
||||
17 37 4 2 3 10
|
||||
18 37 4 2 3 11
|
||||
19 38 9 2 3 6
|
||||
20 39 9 2 3 10
|
||||
21 39 9 2 3 11
|
||||
22 8 2 3 6 5
|
||||
23 7 10 3 6 5
|
||||
24 7 11 3 6 5
|
||||
25 27 14 13 12 18
|
||||
26 28 20 13 12 18
|
||||
27 28 21 13 12 18
|
||||
28 29 14 13 12 19
|
||||
29 30 20 13 12 19
|
||||
30 30 21 13 12 19
|
||||
31 27 17 18 12 13
|
||||
32 28 30 18 12 13
|
||||
33 28 31 18 12 13
|
||||
34 29 17 18 12 19
|
||||
35 30 30 18 12 19
|
||||
36 30 31 18 12 19
|
||||
37 31 12 13 14 15
|
||||
38 32 22 14 13 12
|
||||
39 32 23 14 13 12
|
||||
40 32 20 13 14 15
|
||||
41 33 20 13 14 22
|
||||
42 33 20 13 14 23
|
||||
43 32 21 13 14 15
|
||||
44 33 21 13 14 22
|
||||
45 33 21 13 14 23
|
||||
46 29 13 14 15 24
|
||||
47 29 13 14 15 25
|
||||
48 30 22 14 15 24
|
||||
49 30 22 14 15 25
|
||||
50 30 23 14 15 24
|
||||
51 30 23 14 15 25
|
||||
52 29 18 17 16 26
|
||||
53 30 28 17 16 26
|
||||
54 30 29 17 16 26
|
||||
55 29 18 17 16 27
|
||||
56 30 28 17 16 27
|
||||
57 30 29 17 16 27
|
||||
58 31 16 17 18 12
|
||||
59 32 30 18 17 16
|
||||
60 32 31 18 17 16
|
||||
61 32 28 17 18 12
|
||||
62 33 28 17 18 30
|
||||
63 33 28 17 18 31
|
||||
64 32 29 17 18 12
|
||||
65 33 29 17 18 30
|
||||
66 33 29 17 18 31
|
||||
|
||||
Impropers
|
||||
|
||||
1 4 13 12 18 19
|
||||
2 5 14 15 24 25
|
||||
3 5 17 16 26 27
|
||||
4 1 2 1 4 8
|
||||
5 1 4 1 8 7
|
||||
6 1 2 1 8 7
|
||||
7 1 2 1 4 7
|
||||
8 1 1 2 3 4
|
||||
9 1 1 2 4 9
|
||||
10 1 1 2 3 9
|
||||
11 1 3 2 4 9
|
||||
12 1 2 3 6 10
|
||||
13 1 2 3 6 11
|
||||
14 1 2 3 10 11
|
||||
15 1 6 3 10 11
|
||||
16 1 14 13 20 12
|
||||
17 1 14 13 21 12
|
||||
18 1 20 13 21 12
|
||||
19 1 14 13 20 21
|
||||
20 1 13 14 22 15
|
||||
21 1 13 14 23 15
|
||||
22 1 13 14 22 23
|
||||
23 1 22 14 23 15
|
||||
24 1 18 17 28 16
|
||||
25 1 18 17 29 16
|
||||
26 1 28 17 29 16
|
||||
27 1 18 17 28 29
|
||||
28 1 17 18 30 12
|
||||
29 1 17 18 31 12
|
||||
30 1 30 18 31 12
|
||||
31 1 17 18 30 31
|
||||
47
examples/USER/reaction/tiny_epoxy/rxn1_stp2.map
Normal file
47
examples/USER/reaction/tiny_epoxy/rxn1_stp2.map
Normal file
@ -0,0 +1,47 @@
|
||||
this is a map file
|
||||
|
||||
1 edgeIDs
|
||||
31 equivalences
|
||||
|
||||
BondingIDs
|
||||
|
||||
4
|
||||
25
|
||||
|
||||
EdgeIDs
|
||||
|
||||
5
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
307
examples/USER/reaction/tiny_epoxy/rxn1_stp2_post.data_template
Normal file
307
examples/USER/reaction/tiny_epoxy/rxn1_stp2_post.data_template
Normal file
@ -0,0 +1,307 @@
|
||||
rxn1_stp2_post
|
||||
|
||||
31 atoms
|
||||
30 bonds
|
||||
53 angles
|
||||
72 dihedrals
|
||||
31 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 6
|
||||
3 1
|
||||
4 7
|
||||
5 4
|
||||
6 7
|
||||
7 8
|
||||
8 8
|
||||
9 8
|
||||
10 8
|
||||
11 8
|
||||
12 9
|
||||
13 1
|
||||
14 1
|
||||
15 9
|
||||
16 9
|
||||
17 1
|
||||
18 1
|
||||
19 10
|
||||
20 8
|
||||
21 8
|
||||
22 8
|
||||
23 8
|
||||
24 10
|
||||
25 11
|
||||
26 10
|
||||
27 10
|
||||
28 8
|
||||
29 8
|
||||
30 8
|
||||
31 8
|
||||
|
||||
Charges
|
||||
|
||||
1 0.000000
|
||||
2 0.000000
|
||||
3 0.000000
|
||||
4 0.100000
|
||||
5 0.000000
|
||||
6 0.000000
|
||||
7 0.000000
|
||||
8 0.000000
|
||||
9 0.000000
|
||||
10 0.000000
|
||||
11 0.000000
|
||||
12 0.000000
|
||||
13 0.000000
|
||||
14 0.000000
|
||||
15 -0.025000
|
||||
16 -0.025000
|
||||
17 0.000000
|
||||
18 0.000000
|
||||
19 0.000000
|
||||
20 0.000000
|
||||
21 0.000000
|
||||
22 0.000000
|
||||
23 0.000000
|
||||
24 0.000000
|
||||
25 0.000000
|
||||
26 0.000000
|
||||
27 0.000000
|
||||
28 0.000000
|
||||
29 0.000000
|
||||
30 0.000000
|
||||
31 0.000000
|
||||
|
||||
Coords
|
||||
|
||||
1 19.846411 9.569080 -1.229960
|
||||
2 21.168550 9.331390 -0.418120
|
||||
3 21.253010 8.067940 0.460720
|
||||
4 21.330839 10.304280 -0.253340
|
||||
5 21.891689 5.906200 0.464150
|
||||
6 21.818470 6.999870 -0.296270
|
||||
7 19.931601 10.026600 -2.215510
|
||||
8 19.051279 8.828540 -1.132880
|
||||
9 22.228800 9.293580 -0.665280
|
||||
10 21.880541 8.270810 1.328060
|
||||
11 20.253151 7.789050 0.792640
|
||||
12 16.072720 12.338940 -0.174630
|
||||
13 16.557051 11.130580 0.587500
|
||||
14 18.074381 10.998730 0.366590
|
||||
15 18.354031 10.832100 -1.107140
|
||||
16 14.920880 15.018100 -0.201130
|
||||
17 16.390551 14.791140 -0.461060
|
||||
18 16.852989 13.538490 0.304530
|
||||
19 16.264271 12.190330 -1.257620
|
||||
20 16.025061 10.195290 0.210910
|
||||
21 16.346741 11.269890 1.698950
|
||||
22 18.466690 10.092460 0.935470
|
||||
23 18.592319 11.941150 0.745170
|
||||
24 17.213690 10.780300 -1.896260
|
||||
25 20.881861 11.302060 -0.773030
|
||||
26 14.344180 14.136430 -0.550280
|
||||
27 14.583670 15.922830 -0.748110
|
||||
28 16.984310 15.696060 -0.103470
|
||||
29 16.562460 14.639560 -1.577590
|
||||
30 16.674610 13.686010 1.420370
|
||||
31 17.964001 13.363150 0.117750
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 8
|
||||
2 16 1 2
|
||||
3 1 1 7
|
||||
4 13 1 15
|
||||
5 16 3 2
|
||||
6 12 2 9
|
||||
7 17 2 4
|
||||
8 3 3 6
|
||||
9 1 3 10
|
||||
10 1 3 11
|
||||
11 18 4 25
|
||||
12 8 6 5
|
||||
13 13 13 12
|
||||
14 13 18 12
|
||||
15 14 12 19
|
||||
16 15 13 14
|
||||
17 1 13 20
|
||||
18 1 13 21
|
||||
19 13 14 15
|
||||
20 1 14 22
|
||||
21 1 14 23
|
||||
22 14 15 24
|
||||
23 13 17 16
|
||||
24 14 16 26
|
||||
25 14 16 27
|
||||
26 15 17 18
|
||||
27 1 17 28
|
||||
28 1 17 29
|
||||
29 1 18 30
|
||||
30 1 18 31
|
||||
|
||||
Angles
|
||||
|
||||
1 30 2 1 8
|
||||
2 2 8 1 7
|
||||
3 26 8 1 15
|
||||
4 30 2 1 7
|
||||
5 31 2 1 15
|
||||
6 26 7 1 15
|
||||
7 32 1 2 3
|
||||
8 33 1 2 9
|
||||
9 34 1 2 4
|
||||
10 33 3 2 9
|
||||
11 34 3 2 4
|
||||
12 35 4 2 9
|
||||
13 36 2 3 6
|
||||
14 30 2 3 10
|
||||
15 30 2 3 11
|
||||
16 3 6 3 10
|
||||
17 3 6 3 11
|
||||
18 2 10 3 11
|
||||
19 37 2 4 25
|
||||
20 22 3 6 5
|
||||
21 23 13 12 18
|
||||
22 24 13 12 19
|
||||
23 24 18 12 19
|
||||
24 25 14 13 12
|
||||
25 26 20 13 12
|
||||
26 26 21 13 12
|
||||
27 27 14 13 20
|
||||
28 27 14 13 21
|
||||
29 2 20 13 21
|
||||
30 25 13 14 15
|
||||
31 27 13 14 22
|
||||
32 27 13 14 23
|
||||
33 26 22 14 15
|
||||
34 26 23 14 15
|
||||
35 2 22 14 23
|
||||
36 23 1 15 14
|
||||
37 24 1 15 24
|
||||
38 24 14 15 24
|
||||
39 24 17 16 26
|
||||
40 24 17 16 27
|
||||
41 28 26 16 27
|
||||
42 25 18 17 16
|
||||
43 26 28 17 16
|
||||
44 26 29 17 16
|
||||
45 27 18 17 28
|
||||
46 27 18 17 29
|
||||
47 2 28 17 29
|
||||
48 25 17 18 12
|
||||
49 26 30 18 12
|
||||
50 26 31 18 12
|
||||
51 27 17 18 30
|
||||
52 27 17 18 31
|
||||
53 2 30 18 31
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 40 8 1 2 3
|
||||
2 41 8 1 2 9
|
||||
3 42 8 1 2 4
|
||||
4 40 7 1 2 3
|
||||
5 41 7 1 2 9
|
||||
6 42 7 1 2 4
|
||||
7 43 15 1 2 3
|
||||
8 44 15 1 2 9
|
||||
9 45 15 1 2 4
|
||||
10 28 8 1 15 14
|
||||
11 30 8 1 15 24
|
||||
12 46 2 1 15 14
|
||||
13 47 2 1 15 24
|
||||
14 28 7 1 15 14
|
||||
15 30 7 1 15 24
|
||||
16 48 6 3 2 1
|
||||
17 40 10 3 2 1
|
||||
18 40 11 3 2 1
|
||||
19 49 6 3 2 9
|
||||
20 41 10 3 2 9
|
||||
21 41 11 3 2 9
|
||||
22 50 6 3 2 4
|
||||
23 42 10 3 2 4
|
||||
24 42 11 3 2 4
|
||||
25 52 1 2 4 25
|
||||
26 52 3 2 4 25
|
||||
27 53 9 2 4 25
|
||||
28 51 2 3 6 5
|
||||
29 7 10 3 6 5
|
||||
30 7 11 3 6 5
|
||||
31 27 14 13 12 18
|
||||
32 28 20 13 12 18
|
||||
33 28 21 13 12 18
|
||||
34 29 14 13 12 19
|
||||
35 30 20 13 12 19
|
||||
36 30 21 13 12 19
|
||||
37 27 17 18 12 13
|
||||
38 28 30 18 12 13
|
||||
39 28 31 18 12 13
|
||||
40 29 17 18 12 19
|
||||
41 30 30 18 12 19
|
||||
42 30 31 18 12 19
|
||||
43 31 12 13 14 15
|
||||
44 32 22 14 13 12
|
||||
45 32 23 14 13 12
|
||||
46 32 20 13 14 15
|
||||
47 33 20 13 14 22
|
||||
48 33 20 13 14 23
|
||||
49 32 21 13 14 15
|
||||
50 33 21 13 14 22
|
||||
51 33 21 13 14 23
|
||||
52 27 13 14 15 1
|
||||
53 29 13 14 15 24
|
||||
54 28 22 14 15 1
|
||||
55 30 22 14 15 24
|
||||
56 28 23 14 15 1
|
||||
57 30 23 14 15 24
|
||||
58 29 18 17 16 26
|
||||
59 30 28 17 16 26
|
||||
60 30 29 17 16 26
|
||||
61 29 18 17 16 27
|
||||
62 30 28 17 16 27
|
||||
63 30 29 17 16 27
|
||||
64 31 16 17 18 12
|
||||
65 32 30 18 17 16
|
||||
66 32 31 18 17 16
|
||||
67 32 28 17 18 12
|
||||
68 33 28 17 18 30
|
||||
69 33 28 17 18 31
|
||||
70 32 29 17 18 12
|
||||
71 33 29 17 18 30
|
||||
72 33 29 17 18 31
|
||||
|
||||
Impropers
|
||||
|
||||
1 4 13 12 18 19
|
||||
2 4 1 15 14 24
|
||||
3 5 17 16 26 27
|
||||
4 1 2 1 8 7
|
||||
5 1 2 1 8 15
|
||||
6 1 8 1 7 15
|
||||
7 1 2 1 7 15
|
||||
8 1 1 2 3 9
|
||||
9 1 1 2 3 4
|
||||
10 1 1 2 4 9
|
||||
11 1 3 2 4 9
|
||||
12 1 2 3 6 10
|
||||
13 1 2 3 6 11
|
||||
14 1 2 3 10 11
|
||||
15 1 6 3 10 11
|
||||
16 1 14 13 20 12
|
||||
17 1 14 13 21 12
|
||||
18 1 20 13 21 12
|
||||
19 1 14 13 20 21
|
||||
20 1 13 14 22 15
|
||||
21 1 13 14 23 15
|
||||
22 1 13 14 22 23
|
||||
23 1 22 14 23 15
|
||||
24 1 18 17 28 16
|
||||
25 1 18 17 29 16
|
||||
26 1 28 17 29 16
|
||||
27 1 18 17 28 29
|
||||
28 1 17 18 30 12
|
||||
29 1 17 18 31 12
|
||||
30 1 30 18 31 12
|
||||
31 1 17 18 30 31
|
||||
59
examples/USER/reaction/tiny_epoxy/rxn2_stp1.map
Normal file
59
examples/USER/reaction/tiny_epoxy/rxn2_stp1.map
Normal file
@ -0,0 +1,59 @@
|
||||
this is a map file
|
||||
|
||||
2 edgeIDs
|
||||
42 equivalences
|
||||
|
||||
BondingIDs
|
||||
|
||||
15
|
||||
32
|
||||
|
||||
EdgeIDs
|
||||
|
||||
5
|
||||
36
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
32 32
|
||||
33 33
|
||||
34 34
|
||||
35 35
|
||||
36 36
|
||||
37 37
|
||||
38 38
|
||||
39 39
|
||||
40 40
|
||||
41 41
|
||||
42 42
|
||||
424
examples/USER/reaction/tiny_epoxy/rxn2_stp1_post.data_template
Normal file
424
examples/USER/reaction/tiny_epoxy/rxn2_stp1_post.data_template
Normal file
@ -0,0 +1,424 @@
|
||||
rxn2_stp1_post
|
||||
|
||||
42 atoms
|
||||
41 bonds
|
||||
75 angles
|
||||
108 dihedrals
|
||||
46 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 6
|
||||
3 1
|
||||
4 7
|
||||
5 4
|
||||
6 7
|
||||
7 8
|
||||
8 8
|
||||
9 8
|
||||
10 8
|
||||
11 8
|
||||
12 9
|
||||
13 1
|
||||
14 1
|
||||
15 9
|
||||
16 9
|
||||
17 1
|
||||
18 1
|
||||
19 10
|
||||
20 8
|
||||
21 8
|
||||
22 8
|
||||
23 8
|
||||
24 10
|
||||
25 11
|
||||
26 10
|
||||
27 10
|
||||
28 8
|
||||
29 8
|
||||
30 8
|
||||
31 8
|
||||
32 1
|
||||
33 6
|
||||
34 1
|
||||
35 7
|
||||
36 4
|
||||
37 7
|
||||
38 8
|
||||
39 8
|
||||
40 8
|
||||
41 8
|
||||
42 8
|
||||
|
||||
Charges
|
||||
|
||||
1 0.000000
|
||||
2 0.000000
|
||||
3 0.000000
|
||||
4 0.100000
|
||||
5 0.000000
|
||||
6 0.000000
|
||||
7 0.000000
|
||||
8 0.000000
|
||||
9 0.000000
|
||||
10 0.000000
|
||||
11 0.000000
|
||||
12 0.000000
|
||||
13 0.000000
|
||||
14 0.000000
|
||||
15 -0.025000
|
||||
16 -0.025000
|
||||
17 0.000000
|
||||
18 0.000000
|
||||
19 0.000000
|
||||
20 0.000000
|
||||
21 0.000000
|
||||
22 0.000000
|
||||
23 0.000000
|
||||
24 0.000000
|
||||
25 0.000000
|
||||
26 0.000000
|
||||
27 0.000000
|
||||
28 0.000000
|
||||
29 0.000000
|
||||
30 0.000000
|
||||
31 0.000000
|
||||
32 0.000000
|
||||
33 0.000000
|
||||
34 0.000000
|
||||
35 0.100000
|
||||
36 0.000000
|
||||
37 0.000000
|
||||
38 0.000000
|
||||
39 0.000000
|
||||
40 0.000000
|
||||
41 0.000000
|
||||
42 0.000000
|
||||
|
||||
Coords
|
||||
|
||||
1 19.846411 9.569080 -1.229960
|
||||
2 21.168550 9.331390 -0.418120
|
||||
3 21.253010 8.067940 0.460720
|
||||
4 21.330839 10.304280 -0.253340
|
||||
5 21.891689 5.906200 0.464150
|
||||
6 21.818470 6.999870 -0.296270
|
||||
7 19.931601 10.026600 -2.215510
|
||||
8 19.051279 8.828540 -1.132880
|
||||
9 22.228800 9.293580 -0.665280
|
||||
10 21.880541 8.270810 1.328060
|
||||
11 20.253151 7.789050 0.792640
|
||||
12 16.072720 12.338940 -0.174630
|
||||
13 16.557051 11.130580 0.587500
|
||||
14 18.074381 10.998730 0.366590
|
||||
15 18.354031 10.832100 -1.107140
|
||||
16 14.920880 15.018100 -0.201130
|
||||
17 16.390551 14.791140 -0.461060
|
||||
18 16.852989 13.538490 0.304530
|
||||
19 16.264271 12.190330 -1.257620
|
||||
20 16.025061 10.195290 0.210910
|
||||
21 16.346741 11.269890 1.698950
|
||||
22 18.466690 10.092460 0.935470
|
||||
23 18.592319 11.941150 0.745170
|
||||
24 17.213690 10.780300 -1.896260
|
||||
25 20.881861 11.302060 -0.773030
|
||||
26 14.344180 14.136430 -0.550280
|
||||
27 14.583670 15.922830 -0.748110
|
||||
28 16.984310 15.696060 -0.103470
|
||||
29 16.562460 14.639560 -1.577590
|
||||
30 16.674610 13.686010 1.420370
|
||||
31 17.964001 13.363150 0.117750
|
||||
32 18.680189 9.134390 -4.183100
|
||||
33 18.099751 8.263650 -5.343000
|
||||
34 19.081829 7.609610 -6.334180
|
||||
35 17.971729 9.827680 -5.367080
|
||||
36 20.263880 5.733600 -6.736780
|
||||
37 19.414030 6.299980 -5.878960
|
||||
38 18.194740 9.091640 -3.210950
|
||||
39 19.788940 9.208560 -4.119640
|
||||
40 17.399309 7.432220 -5.407800
|
||||
41 18.616249 7.545570 -7.316910
|
||||
42 19.987049 8.212500 -6.399400
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 8
|
||||
2 16 1 2
|
||||
3 1 1 7
|
||||
4 13 1 15
|
||||
5 16 3 2
|
||||
6 12 2 9
|
||||
7 17 2 4
|
||||
8 3 3 6
|
||||
9 1 3 10
|
||||
10 1 3 11
|
||||
11 18 4 25
|
||||
12 8 6 5
|
||||
13 13 13 12
|
||||
14 13 18 12
|
||||
15 14 12 19
|
||||
16 15 13 14
|
||||
17 1 13 20
|
||||
18 1 13 21
|
||||
19 13 14 15
|
||||
20 1 14 22
|
||||
21 1 14 23
|
||||
22 14 15 24
|
||||
23 13 32 15
|
||||
24 13 17 16
|
||||
25 14 16 26
|
||||
26 14 16 27
|
||||
27 15 17 18
|
||||
28 1 17 28
|
||||
29 1 17 29
|
||||
30 1 18 30
|
||||
31 1 18 31
|
||||
32 1 32 39
|
||||
33 16 32 33
|
||||
34 1 32 38
|
||||
35 17 33 35
|
||||
36 16 34 33
|
||||
37 12 33 40
|
||||
38 3 34 37
|
||||
39 1 34 41
|
||||
40 1 34 42
|
||||
41 8 37 36
|
||||
|
||||
Angles
|
||||
|
||||
1 30 2 1 8
|
||||
2 2 8 1 7
|
||||
3 26 8 1 15
|
||||
4 30 2 1 7
|
||||
5 31 2 1 15
|
||||
6 26 7 1 15
|
||||
7 32 1 2 3
|
||||
8 33 1 2 9
|
||||
9 34 1 2 4
|
||||
10 33 3 2 9
|
||||
11 34 3 2 4
|
||||
12 35 4 2 9
|
||||
13 36 2 3 6
|
||||
14 30 2 3 10
|
||||
15 30 2 3 11
|
||||
16 3 6 3 10
|
||||
17 3 6 3 11
|
||||
18 2 10 3 11
|
||||
19 37 2 4 25
|
||||
20 22 3 6 5
|
||||
21 23 13 12 18
|
||||
22 24 13 12 19
|
||||
23 24 18 12 19
|
||||
24 25 14 13 12
|
||||
25 26 20 13 12
|
||||
26 26 21 13 12
|
||||
27 27 14 13 20
|
||||
28 27 14 13 21
|
||||
29 2 20 13 21
|
||||
30 25 13 14 15
|
||||
31 27 13 14 22
|
||||
32 27 13 14 23
|
||||
33 26 22 14 15
|
||||
34 26 23 14 15
|
||||
35 2 22 14 23
|
||||
36 23 1 15 14
|
||||
37 24 1 15 24
|
||||
38 23 1 15 32
|
||||
39 24 14 15 24
|
||||
40 23 14 15 32
|
||||
41 24 32 15 24
|
||||
42 24 17 16 26
|
||||
43 24 17 16 27
|
||||
44 28 26 16 27
|
||||
45 25 18 17 16
|
||||
46 26 28 17 16
|
||||
47 26 29 17 16
|
||||
48 27 18 17 28
|
||||
49 27 18 17 29
|
||||
50 2 28 17 29
|
||||
51 25 17 18 12
|
||||
52 26 30 18 12
|
||||
53 26 31 18 12
|
||||
54 27 17 18 30
|
||||
55 27 17 18 31
|
||||
56 2 30 18 31
|
||||
57 26 39 32 15
|
||||
58 31 33 32 15
|
||||
59 26 38 32 15
|
||||
60 30 33 32 39
|
||||
61 2 39 32 38
|
||||
62 30 33 32 38
|
||||
63 34 32 33 35
|
||||
64 32 32 33 34
|
||||
65 33 32 33 40
|
||||
66 34 34 33 35
|
||||
67 35 35 33 40
|
||||
68 33 34 33 40
|
||||
69 36 33 34 37
|
||||
70 30 33 34 41
|
||||
71 30 33 34 42
|
||||
72 3 37 34 41
|
||||
73 3 37 34 42
|
||||
74 2 41 34 42
|
||||
75 22 34 37 36
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 40 8 1 2 3
|
||||
2 41 8 1 2 9
|
||||
3 42 8 1 2 4
|
||||
4 40 7 1 2 3
|
||||
5 41 7 1 2 9
|
||||
6 42 7 1 2 4
|
||||
7 43 15 1 2 3
|
||||
8 44 15 1 2 9
|
||||
9 45 15 1 2 4
|
||||
10 28 8 1 15 14
|
||||
11 30 8 1 15 24
|
||||
12 28 8 1 15 32
|
||||
13 46 2 1 15 14
|
||||
14 47 2 1 15 24
|
||||
15 46 2 1 15 32
|
||||
16 28 7 1 15 14
|
||||
17 30 7 1 15 24
|
||||
18 28 7 1 15 32
|
||||
19 48 6 3 2 1
|
||||
20 40 10 3 2 1
|
||||
21 40 11 3 2 1
|
||||
22 49 6 3 2 9
|
||||
23 41 10 3 2 9
|
||||
24 41 11 3 2 9
|
||||
25 50 6 3 2 4
|
||||
26 42 10 3 2 4
|
||||
27 42 11 3 2 4
|
||||
28 52 1 2 4 25
|
||||
29 52 3 2 4 25
|
||||
30 53 9 2 4 25
|
||||
31 51 2 3 6 5
|
||||
32 7 10 3 6 5
|
||||
33 7 11 3 6 5
|
||||
34 27 14 13 12 18
|
||||
35 28 20 13 12 18
|
||||
36 28 21 13 12 18
|
||||
37 29 14 13 12 19
|
||||
38 30 20 13 12 19
|
||||
39 30 21 13 12 19
|
||||
40 27 17 18 12 13
|
||||
41 28 30 18 12 13
|
||||
42 28 31 18 12 13
|
||||
43 29 17 18 12 19
|
||||
44 30 30 18 12 19
|
||||
45 30 31 18 12 19
|
||||
46 31 12 13 14 15
|
||||
47 32 22 14 13 12
|
||||
48 32 23 14 13 12
|
||||
49 32 20 13 14 15
|
||||
50 33 20 13 14 22
|
||||
51 33 20 13 14 23
|
||||
52 32 21 13 14 15
|
||||
53 33 21 13 14 22
|
||||
54 33 21 13 14 23
|
||||
55 27 13 14 15 1
|
||||
56 29 13 14 15 24
|
||||
57 27 13 14 15 32
|
||||
58 28 22 14 15 1
|
||||
59 30 22 14 15 24
|
||||
60 28 22 14 15 32
|
||||
61 28 23 14 15 1
|
||||
62 30 23 14 15 24
|
||||
63 28 23 14 15 32
|
||||
64 28 39 32 15 1
|
||||
65 46 33 32 15 1
|
||||
66 28 38 32 15 1
|
||||
67 28 39 32 15 14
|
||||
68 46 33 32 15 14
|
||||
69 28 38 32 15 14
|
||||
70 30 39 32 15 24
|
||||
71 47 33 32 15 24
|
||||
72 30 38 32 15 24
|
||||
73 29 18 17 16 26
|
||||
74 30 28 17 16 26
|
||||
75 30 29 17 16 26
|
||||
76 29 18 17 16 27
|
||||
77 30 28 17 16 27
|
||||
78 30 29 17 16 27
|
||||
79 31 16 17 18 12
|
||||
80 32 30 18 17 16
|
||||
81 32 31 18 17 16
|
||||
82 32 28 17 18 12
|
||||
83 33 28 17 18 30
|
||||
84 33 28 17 18 31
|
||||
85 32 29 17 18 12
|
||||
86 33 29 17 18 30
|
||||
87 33 29 17 18 31
|
||||
88 45 15 32 33 35
|
||||
89 43 15 32 33 34
|
||||
90 44 15 32 33 40
|
||||
91 42 39 32 33 35
|
||||
92 40 39 32 33 34
|
||||
93 41 39 32 33 40
|
||||
94 42 38 32 33 35
|
||||
95 40 38 32 33 34
|
||||
96 41 38 32 33 40
|
||||
97 48 37 34 33 32
|
||||
98 40 41 34 33 32
|
||||
99 40 42 34 33 32
|
||||
100 50 37 34 33 35
|
||||
101 42 41 34 33 35
|
||||
102 42 42 34 33 35
|
||||
103 49 37 34 33 40
|
||||
104 41 41 34 33 40
|
||||
105 41 42 34 33 40
|
||||
106 51 33 34 37 36
|
||||
107 7 41 34 37 36
|
||||
108 7 42 34 37 36
|
||||
|
||||
Impropers
|
||||
|
||||
1 4 13 12 18 19
|
||||
2 5 17 16 26 27
|
||||
3 1 2 1 8 7
|
||||
4 1 2 1 8 15
|
||||
5 1 8 1 7 15
|
||||
6 1 2 1 7 15
|
||||
7 1 1 2 3 9
|
||||
8 1 1 2 3 4
|
||||
9 1 1 2 4 9
|
||||
10 1 3 2 4 9
|
||||
11 1 2 3 6 10
|
||||
12 1 2 3 6 11
|
||||
13 1 2 3 10 11
|
||||
14 1 6 3 10 11
|
||||
15 1 14 13 20 12
|
||||
16 1 14 13 21 12
|
||||
17 1 20 13 21 12
|
||||
18 1 14 13 20 21
|
||||
19 1 13 14 22 15
|
||||
20 1 13 14 23 15
|
||||
21 1 13 14 22 23
|
||||
22 1 22 14 23 15
|
||||
23 1 1 15 14 24
|
||||
24 1 1 15 14 32
|
||||
25 1 1 15 32 24
|
||||
26 1 14 15 32 24
|
||||
27 1 18 17 28 16
|
||||
28 1 18 17 29 16
|
||||
29 1 28 17 29 16
|
||||
30 1 18 17 28 29
|
||||
31 1 17 18 30 12
|
||||
32 1 17 18 31 12
|
||||
33 1 30 18 31 12
|
||||
34 1 17 18 30 31
|
||||
35 1 33 32 39 15
|
||||
36 1 39 32 38 15
|
||||
37 1 33 32 38 15
|
||||
38 1 33 32 39 38
|
||||
39 1 32 33 34 35
|
||||
40 1 32 33 35 40
|
||||
41 1 32 33 34 40
|
||||
42 1 34 33 35 40
|
||||
43 1 33 34 37 41
|
||||
44 1 33 34 37 42
|
||||
45 1 33 34 41 42
|
||||
46 1 37 34 41 42
|
||||
407
examples/USER/reaction/tiny_epoxy/rxn2_stp1_pre.data_template
Normal file
407
examples/USER/reaction/tiny_epoxy/rxn2_stp1_pre.data_template
Normal file
@ -0,0 +1,407 @@
|
||||
rxn2_stp1_pre
|
||||
|
||||
42 atoms
|
||||
41 bonds
|
||||
73 angles
|
||||
96 dihedrals
|
||||
43 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 6
|
||||
3 1
|
||||
4 7
|
||||
5 4
|
||||
6 7
|
||||
7 8
|
||||
8 8
|
||||
9 8
|
||||
10 8
|
||||
11 8
|
||||
12 9
|
||||
13 1
|
||||
14 1
|
||||
15 9
|
||||
16 9
|
||||
17 1
|
||||
18 1
|
||||
19 10
|
||||
20 8
|
||||
21 8
|
||||
22 8
|
||||
23 8
|
||||
24 10
|
||||
25 11
|
||||
26 10
|
||||
27 10
|
||||
28 8
|
||||
29 8
|
||||
30 8
|
||||
31 8
|
||||
32 2
|
||||
33 2
|
||||
34 1
|
||||
35 3
|
||||
36 4
|
||||
37 7
|
||||
38 8
|
||||
39 8
|
||||
40 8
|
||||
41 8
|
||||
42 8
|
||||
|
||||
Charges
|
||||
|
||||
1 0.000000
|
||||
2 0.000000
|
||||
3 0.000000
|
||||
4 0.100000
|
||||
5 0.000000
|
||||
6 0.000000
|
||||
7 0.000000
|
||||
8 0.000000
|
||||
9 0.000000
|
||||
10 0.000000
|
||||
11 0.000000
|
||||
12 0.000000
|
||||
13 0.000000
|
||||
14 0.000000
|
||||
15 -0.025000
|
||||
16 -0.025000
|
||||
17 0.000000
|
||||
18 0.000000
|
||||
19 0.000000
|
||||
20 0.000000
|
||||
21 0.000000
|
||||
22 0.000000
|
||||
23 0.000000
|
||||
24 0.000000
|
||||
25 0.000000
|
||||
26 0.000000
|
||||
27 0.000000
|
||||
28 0.000000
|
||||
29 0.000000
|
||||
30 0.000000
|
||||
31 0.000000
|
||||
32 0.000000
|
||||
33 0.000000
|
||||
34 0.000000
|
||||
35 0.100000
|
||||
36 0.000000
|
||||
37 0.000000
|
||||
38 0.000000
|
||||
39 0.000000
|
||||
40 0.000000
|
||||
41 0.000000
|
||||
42 0.000000
|
||||
|
||||
Coords
|
||||
|
||||
1 19.846411 9.569080 -1.229960
|
||||
2 21.168550 9.331390 -0.418120
|
||||
3 21.253010 8.067940 0.460720
|
||||
4 21.330839 10.304280 -0.253340
|
||||
5 21.891689 5.906200 0.464150
|
||||
6 21.818470 6.999870 -0.296270
|
||||
7 19.931601 10.026600 -2.215510
|
||||
8 19.051279 8.828540 -1.132880
|
||||
9 22.228800 9.293580 -0.665280
|
||||
10 21.880541 8.270810 1.328060
|
||||
11 20.253151 7.789050 0.792640
|
||||
12 16.072720 12.338940 -0.174630
|
||||
13 16.557051 11.130580 0.587500
|
||||
14 18.074381 10.998730 0.366590
|
||||
15 18.354031 10.832100 -1.107140
|
||||
16 14.920880 15.018100 -0.201130
|
||||
17 16.390551 14.791140 -0.461060
|
||||
18 16.852989 13.538490 0.304530
|
||||
19 16.264271 12.190330 -1.257620
|
||||
20 16.025061 10.195290 0.210910
|
||||
21 16.346741 11.269890 1.698950
|
||||
22 18.466690 10.092460 0.935470
|
||||
23 18.592319 11.941150 0.745170
|
||||
24 17.213690 10.780300 -1.896260
|
||||
25 20.881861 11.302060 -0.773030
|
||||
26 14.344180 14.136430 -0.550280
|
||||
27 14.583670 15.922830 -0.748110
|
||||
28 16.984310 15.696060 -0.103470
|
||||
29 16.562460 14.639560 -1.577590
|
||||
30 16.674610 13.686010 1.420370
|
||||
31 17.964001 13.363150 0.117750
|
||||
32 18.703360 9.118830 -4.174240
|
||||
33 18.099751 8.263650 -5.343000
|
||||
34 19.081829 7.609610 -6.334180
|
||||
35 17.971729 9.827680 -5.367080
|
||||
36 20.263880 5.733600 -6.736780
|
||||
37 19.414030 6.299980 -5.878960
|
||||
38 18.194740 9.091640 -3.210950
|
||||
39 19.788940 9.208560 -4.119640
|
||||
40 17.399309 7.432220 -5.407800
|
||||
41 18.616249 7.545570 -7.316910
|
||||
42 19.987049 8.212500 -6.399400
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 8
|
||||
2 16 1 2
|
||||
3 1 1 7
|
||||
4 13 1 15
|
||||
5 16 3 2
|
||||
6 12 2 9
|
||||
7 17 2 4
|
||||
8 3 3 6
|
||||
9 1 3 10
|
||||
10 1 3 11
|
||||
11 18 4 25
|
||||
12 8 6 5
|
||||
13 13 13 12
|
||||
14 13 18 12
|
||||
15 14 12 19
|
||||
16 15 13 14
|
||||
17 1 13 20
|
||||
18 1 13 21
|
||||
19 13 14 15
|
||||
20 1 14 22
|
||||
21 1 14 23
|
||||
22 14 15 24
|
||||
23 13 17 16
|
||||
24 14 16 26
|
||||
25 14 16 27
|
||||
26 15 17 18
|
||||
27 1 17 28
|
||||
28 1 17 29
|
||||
29 1 18 30
|
||||
30 1 18 31
|
||||
31 6 39 32
|
||||
32 4 32 35
|
||||
33 5 32 33
|
||||
34 6 38 32
|
||||
35 4 33 35
|
||||
36 2 34 33
|
||||
37 6 40 33
|
||||
38 3 34 37
|
||||
39 1 34 41
|
||||
40 1 34 42
|
||||
41 8 37 36
|
||||
|
||||
Angles
|
||||
|
||||
1 30 2 1 8
|
||||
2 2 8 1 7
|
||||
3 26 8 1 15
|
||||
4 30 2 1 7
|
||||
5 31 2 1 15
|
||||
6 26 7 1 15
|
||||
7 32 1 2 3
|
||||
8 33 1 2 9
|
||||
9 34 1 2 4
|
||||
10 33 3 2 9
|
||||
11 34 3 2 4
|
||||
12 35 4 2 9
|
||||
13 36 2 3 6
|
||||
14 30 2 3 10
|
||||
15 30 2 3 11
|
||||
16 3 6 3 10
|
||||
17 3 6 3 11
|
||||
18 2 10 3 11
|
||||
19 37 2 4 25
|
||||
20 22 3 6 5
|
||||
21 23 13 12 18
|
||||
22 24 13 12 19
|
||||
23 24 18 12 19
|
||||
24 25 14 13 12
|
||||
25 26 20 13 12
|
||||
26 26 21 13 12
|
||||
27 27 14 13 20
|
||||
28 27 14 13 21
|
||||
29 2 20 13 21
|
||||
30 25 13 14 15
|
||||
31 27 13 14 22
|
||||
32 27 13 14 23
|
||||
33 26 22 14 15
|
||||
34 26 23 14 15
|
||||
35 2 22 14 23
|
||||
36 23 1 15 14
|
||||
37 24 1 15 24
|
||||
38 24 14 15 24
|
||||
39 24 17 16 26
|
||||
40 24 17 16 27
|
||||
41 28 26 16 27
|
||||
42 25 18 17 16
|
||||
43 26 28 17 16
|
||||
44 26 29 17 16
|
||||
45 27 18 17 28
|
||||
46 27 18 17 29
|
||||
47 2 28 17 29
|
||||
48 25 17 18 12
|
||||
49 26 30 18 12
|
||||
50 26 31 18 12
|
||||
51 27 17 18 30
|
||||
52 27 17 18 31
|
||||
53 2 30 18 31
|
||||
54 38 39 32 35
|
||||
55 39 39 32 33
|
||||
56 11 39 32 38
|
||||
57 8 33 32 35
|
||||
58 38 38 32 35
|
||||
59 39 38 32 33
|
||||
60 8 32 33 35
|
||||
61 6 34 33 32
|
||||
62 39 40 33 32
|
||||
63 5 34 33 35
|
||||
64 38 40 33 35
|
||||
65 7 34 33 40
|
||||
66 40 37 34 33
|
||||
67 41 41 34 33
|
||||
68 41 42 34 33
|
||||
69 3 37 34 41
|
||||
70 3 37 34 42
|
||||
71 2 41 34 42
|
||||
72 12 32 35 33
|
||||
73 22 34 37 36
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 40 8 1 2 3
|
||||
2 41 8 1 2 9
|
||||
3 42 8 1 2 4
|
||||
4 40 7 1 2 3
|
||||
5 41 7 1 2 9
|
||||
6 42 7 1 2 4
|
||||
7 43 15 1 2 3
|
||||
8 44 15 1 2 9
|
||||
9 45 15 1 2 4
|
||||
10 28 8 1 15 14
|
||||
11 30 8 1 15 24
|
||||
12 46 2 1 15 14
|
||||
13 47 2 1 15 24
|
||||
14 28 7 1 15 14
|
||||
15 30 7 1 15 24
|
||||
16 48 6 3 2 1
|
||||
17 40 10 3 2 1
|
||||
18 40 11 3 2 1
|
||||
19 49 6 3 2 9
|
||||
20 41 10 3 2 9
|
||||
21 41 11 3 2 9
|
||||
22 50 6 3 2 4
|
||||
23 42 10 3 2 4
|
||||
24 42 11 3 2 4
|
||||
25 52 1 2 4 25
|
||||
26 52 3 2 4 25
|
||||
27 53 9 2 4 25
|
||||
28 51 2 3 6 5
|
||||
29 7 10 3 6 5
|
||||
30 7 11 3 6 5
|
||||
31 27 14 13 12 18
|
||||
32 28 20 13 12 18
|
||||
33 28 21 13 12 18
|
||||
34 29 14 13 12 19
|
||||
35 30 20 13 12 19
|
||||
36 30 21 13 12 19
|
||||
37 27 17 18 12 13
|
||||
38 28 30 18 12 13
|
||||
39 28 31 18 12 13
|
||||
40 29 17 18 12 19
|
||||
41 30 30 18 12 19
|
||||
42 30 31 18 12 19
|
||||
43 31 12 13 14 15
|
||||
44 32 22 14 13 12
|
||||
45 32 23 14 13 12
|
||||
46 32 20 13 14 15
|
||||
47 33 20 13 14 22
|
||||
48 33 20 13 14 23
|
||||
49 32 21 13 14 15
|
||||
50 33 21 13 14 22
|
||||
51 33 21 13 14 23
|
||||
52 27 13 14 15 1
|
||||
53 29 13 14 15 24
|
||||
54 28 22 14 15 1
|
||||
55 30 22 14 15 24
|
||||
56 28 23 14 15 1
|
||||
57 30 23 14 15 24
|
||||
58 29 18 17 16 26
|
||||
59 30 28 17 16 26
|
||||
60 30 29 17 16 26
|
||||
61 29 18 17 16 27
|
||||
62 30 28 17 16 27
|
||||
63 30 29 17 16 27
|
||||
64 31 16 17 18 12
|
||||
65 32 30 18 17 16
|
||||
66 32 31 18 17 16
|
||||
67 32 28 17 18 12
|
||||
68 33 28 17 18 30
|
||||
69 33 28 17 18 31
|
||||
70 32 29 17 18 12
|
||||
71 33 29 17 18 30
|
||||
72 33 29 17 18 31
|
||||
73 10 39 32 35 33
|
||||
74 10 38 32 35 33
|
||||
75 54 39 32 33 35
|
||||
76 12 34 33 32 39
|
||||
77 14 39 32 33 40
|
||||
78 11 34 33 32 35
|
||||
79 54 40 33 32 35
|
||||
80 54 38 32 33 35
|
||||
81 12 34 33 32 38
|
||||
82 14 38 32 33 40
|
||||
83 9 34 33 35 32
|
||||
84 10 40 33 35 32
|
||||
85 5 37 34 33 32
|
||||
86 2 41 34 33 32
|
||||
87 2 42 34 33 32
|
||||
88 4 37 34 33 35
|
||||
89 1 41 34 33 35
|
||||
90 1 42 34 33 35
|
||||
91 6 37 34 33 40
|
||||
92 3 41 34 33 40
|
||||
93 3 42 34 33 40
|
||||
94 8 33 34 37 36
|
||||
95 7 41 34 37 36
|
||||
96 7 42 34 37 36
|
||||
|
||||
Impropers
|
||||
|
||||
1 4 13 12 18 19
|
||||
2 4 1 15 14 24
|
||||
3 5 17 16 26 27
|
||||
4 1 2 1 8 7
|
||||
5 1 2 1 8 15
|
||||
6 1 8 1 7 15
|
||||
7 1 2 1 7 15
|
||||
8 1 1 2 3 9
|
||||
9 1 1 2 3 4
|
||||
10 1 1 2 4 9
|
||||
11 1 3 2 4 9
|
||||
12 1 2 3 6 10
|
||||
13 1 2 3 6 11
|
||||
14 1 2 3 10 11
|
||||
15 1 6 3 10 11
|
||||
16 1 14 13 20 12
|
||||
17 1 14 13 21 12
|
||||
18 1 20 13 21 12
|
||||
19 1 14 13 20 21
|
||||
20 1 13 14 22 15
|
||||
21 1 13 14 23 15
|
||||
22 1 13 14 22 23
|
||||
23 1 22 14 23 15
|
||||
24 1 18 17 28 16
|
||||
25 1 18 17 29 16
|
||||
26 1 28 17 29 16
|
||||
27 1 18 17 28 29
|
||||
28 1 17 18 30 12
|
||||
29 1 17 18 31 12
|
||||
30 1 30 18 31 12
|
||||
31 1 17 18 30 31
|
||||
32 1 39 32 33 35
|
||||
33 1 39 32 38 35
|
||||
34 1 39 32 38 33
|
||||
35 1 38 32 33 35
|
||||
36 1 34 33 32 35
|
||||
37 1 40 33 32 35
|
||||
38 1 34 33 40 32
|
||||
39 1 34 33 40 35
|
||||
40 1 37 34 41 33
|
||||
41 1 37 34 42 33
|
||||
42 1 41 34 42 33
|
||||
43 1 37 34 41 42
|
||||
59
examples/USER/reaction/tiny_epoxy/rxn2_stp2.map
Normal file
59
examples/USER/reaction/tiny_epoxy/rxn2_stp2.map
Normal file
@ -0,0 +1,59 @@
|
||||
this is a map file
|
||||
|
||||
2 edgeIDs
|
||||
42 equivalences
|
||||
|
||||
BondingIDs
|
||||
|
||||
35
|
||||
24
|
||||
|
||||
EdgeIDs
|
||||
|
||||
5
|
||||
36
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
32 32
|
||||
33 33
|
||||
34 34
|
||||
35 35
|
||||
36 36
|
||||
37 37
|
||||
38 38
|
||||
39 39
|
||||
40 40
|
||||
41 41
|
||||
42 42
|
||||
413
examples/USER/reaction/tiny_epoxy/rxn2_stp2_post.data_template
Normal file
413
examples/USER/reaction/tiny_epoxy/rxn2_stp2_post.data_template
Normal file
@ -0,0 +1,413 @@
|
||||
rxn2_stp2_post
|
||||
|
||||
42 atoms
|
||||
41 bonds
|
||||
73 angles
|
||||
102 dihedrals
|
||||
43 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 7
|
||||
5 4
|
||||
6 7
|
||||
7 8
|
||||
8 8
|
||||
9 8
|
||||
10 8
|
||||
11 8
|
||||
12 9
|
||||
13 1
|
||||
14 1
|
||||
15 9
|
||||
16 9
|
||||
17 1
|
||||
18 1
|
||||
19 10
|
||||
20 8
|
||||
21 8
|
||||
22 8
|
||||
23 8
|
||||
24 11
|
||||
25 11
|
||||
26 10
|
||||
27 10
|
||||
28 8
|
||||
29 8
|
||||
30 8
|
||||
31 8
|
||||
32 1
|
||||
33 6
|
||||
34 1
|
||||
35 7
|
||||
36 4
|
||||
37 7
|
||||
38 8
|
||||
39 8
|
||||
40 8
|
||||
41 8
|
||||
42 8
|
||||
|
||||
Charges
|
||||
|
||||
1 0.000000
|
||||
2 0.000000
|
||||
3 0.000000
|
||||
4 0.100000
|
||||
5 0.000000
|
||||
6 0.000000
|
||||
7 0.000000
|
||||
8 0.000000
|
||||
9 0.000000
|
||||
10 0.000000
|
||||
11 0.000000
|
||||
12 0.000000
|
||||
13 0.000000
|
||||
14 0.000000
|
||||
15 -0.025000
|
||||
16 -0.025000
|
||||
17 0.000000
|
||||
18 0.000000
|
||||
19 0.000000
|
||||
20 0.000000
|
||||
21 0.000000
|
||||
22 0.000000
|
||||
23 0.000000
|
||||
24 0.000000
|
||||
25 0.000000
|
||||
26 0.000000
|
||||
27 0.000000
|
||||
28 0.000000
|
||||
29 0.000000
|
||||
30 0.000000
|
||||
31 0.000000
|
||||
32 0.000000
|
||||
33 0.000000
|
||||
34 0.000000
|
||||
35 0.100000
|
||||
36 0.000000
|
||||
37 0.000000
|
||||
38 0.000000
|
||||
39 0.000000
|
||||
40 0.000000
|
||||
41 0.000000
|
||||
42 0.000000
|
||||
|
||||
Coords
|
||||
|
||||
1 19.846411 9.569080 -1.229960
|
||||
2 21.168550 9.331390 -0.418120
|
||||
3 21.253010 8.067940 0.460720
|
||||
4 21.330839 10.304280 -0.253340
|
||||
5 21.891689 5.906200 0.464150
|
||||
6 21.818470 6.999870 -0.296270
|
||||
7 19.931601 10.026600 -2.215510
|
||||
8 19.051279 8.828540 -1.132880
|
||||
9 22.228800 9.293580 -0.665280
|
||||
10 21.880541 8.270810 1.328060
|
||||
11 20.253151 7.789050 0.792640
|
||||
12 16.072720 12.338940 -0.174630
|
||||
13 16.557051 11.130580 0.587500
|
||||
14 18.074381 10.998730 0.366590
|
||||
15 18.354031 10.832100 -1.107140
|
||||
16 14.920880 15.018100 -0.201130
|
||||
17 16.390551 14.791140 -0.461060
|
||||
18 16.852989 13.538490 0.304530
|
||||
19 16.264271 12.190330 -1.257620
|
||||
20 16.025061 10.195290 0.210910
|
||||
21 16.346741 11.269890 1.698950
|
||||
22 18.466690 10.092460 0.935470
|
||||
23 18.592319 11.941150 0.745170
|
||||
24 16.017490 9.805710 -4.329880
|
||||
25 20.881861 11.302060 -0.773030
|
||||
26 14.344180 14.136430 -0.550280
|
||||
27 14.583670 15.922830 -0.748110
|
||||
28 16.984310 15.696060 -0.103470
|
||||
29 16.562460 14.639560 -1.577590
|
||||
30 16.674610 13.686010 1.420370
|
||||
31 17.964001 13.363150 0.117750
|
||||
32 18.680189 9.134390 -4.183100
|
||||
33 18.099751 8.263650 -5.343000
|
||||
34 19.081829 7.609610 -6.334180
|
||||
35 17.971729 9.827680 -5.367080
|
||||
36 20.263880 5.733600 -6.736780
|
||||
37 19.414030 6.299980 -5.878960
|
||||
38 18.194740 9.091640 -3.210950
|
||||
39 19.788940 9.208560 -4.119640
|
||||
40 17.399309 7.432220 -5.407800
|
||||
41 18.616249 7.545570 -7.316910
|
||||
42 19.987049 8.212500 -6.399400
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 8
|
||||
2 2 1 2
|
||||
3 1 1 7
|
||||
4 13 1 15
|
||||
5 2 3 2
|
||||
6 6 2 9
|
||||
7 19 2 4
|
||||
8 3 3 6
|
||||
9 1 3 10
|
||||
10 1 3 11
|
||||
11 18 4 25
|
||||
12 8 6 5
|
||||
13 13 13 12
|
||||
14 13 18 12
|
||||
15 14 12 19
|
||||
16 15 13 14
|
||||
17 1 13 20
|
||||
18 1 13 21
|
||||
19 13 14 15
|
||||
20 1 14 22
|
||||
21 1 14 23
|
||||
22 13 32 15
|
||||
23 13 17 16
|
||||
24 14 16 26
|
||||
25 14 16 27
|
||||
26 15 17 18
|
||||
27 1 17 28
|
||||
28 1 17 29
|
||||
29 1 18 30
|
||||
30 1 18 31
|
||||
31 18 35 24
|
||||
32 1 32 39
|
||||
33 16 32 33
|
||||
34 1 32 38
|
||||
35 17 35 33
|
||||
36 16 34 33
|
||||
37 12 40 33
|
||||
38 3 34 37
|
||||
39 1 34 41
|
||||
40 1 34 42
|
||||
41 8 37 36
|
||||
|
||||
Angles
|
||||
|
||||
1 1 2 1 8
|
||||
2 2 8 1 7
|
||||
3 26 8 1 15
|
||||
4 1 2 1 7
|
||||
5 42 2 1 15
|
||||
6 26 7 1 15
|
||||
7 43 1 2 3
|
||||
8 7 1 2 9
|
||||
9 44 1 2 4
|
||||
10 7 3 2 9
|
||||
11 44 3 2 4
|
||||
12 45 4 2 9
|
||||
13 4 2 3 6
|
||||
14 1 2 3 10
|
||||
15 1 2 3 11
|
||||
16 3 6 3 10
|
||||
17 3 6 3 11
|
||||
18 2 10 3 11
|
||||
19 46 2 4 25
|
||||
20 22 3 6 5
|
||||
21 23 13 12 18
|
||||
22 24 13 12 19
|
||||
23 24 18 12 19
|
||||
24 25 14 13 12
|
||||
25 26 20 13 12
|
||||
26 26 21 13 12
|
||||
27 27 14 13 20
|
||||
28 27 14 13 21
|
||||
29 2 20 13 21
|
||||
30 25 13 14 15
|
||||
31 27 13 14 22
|
||||
32 27 13 14 23
|
||||
33 26 22 14 15
|
||||
34 26 23 14 15
|
||||
35 2 22 14 23
|
||||
36 23 1 15 14
|
||||
37 23 1 15 32
|
||||
38 23 14 15 32
|
||||
39 24 17 16 26
|
||||
40 24 17 16 27
|
||||
41 28 26 16 27
|
||||
42 25 18 17 16
|
||||
43 26 28 17 16
|
||||
44 26 29 17 16
|
||||
45 27 18 17 28
|
||||
46 27 18 17 29
|
||||
47 2 28 17 29
|
||||
48 25 17 18 12
|
||||
49 26 30 18 12
|
||||
50 26 31 18 12
|
||||
51 27 17 18 30
|
||||
52 27 17 18 31
|
||||
53 2 30 18 31
|
||||
54 26 39 32 15
|
||||
55 47 15 32 33
|
||||
56 26 38 32 15
|
||||
57 48 39 32 33
|
||||
58 2 39 32 38
|
||||
59 48 38 32 33
|
||||
60 34 32 33 35
|
||||
61 32 32 33 34
|
||||
62 33 32 33 40
|
||||
63 34 34 33 35
|
||||
64 35 35 33 40
|
||||
65 33 34 33 40
|
||||
66 49 37 34 33
|
||||
67 48 41 34 33
|
||||
68 48 42 34 33
|
||||
69 3 37 34 41
|
||||
70 3 37 34 42
|
||||
71 2 41 34 42
|
||||
72 50 24 35 33
|
||||
73 22 34 37 36
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 55 8 1 2 3
|
||||
2 3 8 1 2 9
|
||||
3 56 8 1 2 4
|
||||
4 55 7 1 2 3
|
||||
5 3 7 1 2 9
|
||||
6 56 7 1 2 4
|
||||
7 57 15 1 2 3
|
||||
8 58 15 1 2 9
|
||||
9 59 15 1 2 4
|
||||
10 28 8 1 15 14
|
||||
11 28 8 1 15 32
|
||||
12 60 2 1 15 14
|
||||
13 60 2 1 15 32
|
||||
14 28 7 1 15 14
|
||||
15 28 7 1 15 32
|
||||
16 61 6 3 2 1
|
||||
17 55 10 3 2 1
|
||||
18 55 11 3 2 1
|
||||
19 6 6 3 2 9
|
||||
20 3 10 3 2 9
|
||||
21 3 11 3 2 9
|
||||
22 62 6 3 2 4
|
||||
23 56 10 3 2 4
|
||||
24 56 11 3 2 4
|
||||
25 63 1 2 4 25
|
||||
26 63 3 2 4 25
|
||||
27 64 9 2 4 25
|
||||
28 8 2 3 6 5
|
||||
29 7 10 3 6 5
|
||||
30 7 11 3 6 5
|
||||
31 27 14 13 12 18
|
||||
32 28 20 13 12 18
|
||||
33 28 21 13 12 18
|
||||
34 29 14 13 12 19
|
||||
35 30 20 13 12 19
|
||||
36 30 21 13 12 19
|
||||
37 27 17 18 12 13
|
||||
38 28 30 18 12 13
|
||||
39 28 31 18 12 13
|
||||
40 29 17 18 12 19
|
||||
41 30 30 18 12 19
|
||||
42 30 31 18 12 19
|
||||
43 31 12 13 14 15
|
||||
44 32 22 14 13 12
|
||||
45 32 23 14 13 12
|
||||
46 32 20 13 14 15
|
||||
47 33 20 13 14 22
|
||||
48 33 20 13 14 23
|
||||
49 32 21 13 14 15
|
||||
50 33 21 13 14 22
|
||||
51 33 21 13 14 23
|
||||
52 27 13 14 15 1
|
||||
53 27 13 14 15 32
|
||||
54 28 22 14 15 1
|
||||
55 28 22 14 15 32
|
||||
56 28 23 14 15 1
|
||||
57 28 23 14 15 32
|
||||
58 28 39 32 15 1
|
||||
59 46 33 32 15 1
|
||||
60 28 38 32 15 1
|
||||
61 28 39 32 15 14
|
||||
62 46 33 32 15 14
|
||||
63 28 38 32 15 14
|
||||
64 29 18 17 16 26
|
||||
65 30 28 17 16 26
|
||||
66 30 29 17 16 26
|
||||
67 29 18 17 16 27
|
||||
68 30 28 17 16 27
|
||||
69 30 29 17 16 27
|
||||
70 31 16 17 18 12
|
||||
71 32 30 18 17 16
|
||||
72 32 31 18 17 16
|
||||
73 32 28 17 18 12
|
||||
74 33 28 17 18 30
|
||||
75 33 28 17 18 31
|
||||
76 32 29 17 18 12
|
||||
77 33 29 17 18 30
|
||||
78 33 29 17 18 31
|
||||
79 45 15 32 33 35
|
||||
80 43 15 32 33 34
|
||||
81 44 15 32 33 40
|
||||
82 42 39 32 33 35
|
||||
83 40 39 32 33 34
|
||||
84 41 39 32 33 40
|
||||
85 42 38 32 33 35
|
||||
86 40 38 32 33 34
|
||||
87 41 38 32 33 40
|
||||
88 65 24 35 33 32
|
||||
89 65 24 35 33 34
|
||||
90 66 24 35 33 40
|
||||
91 48 37 34 33 32
|
||||
92 40 41 34 33 32
|
||||
93 40 42 34 33 32
|
||||
94 50 37 34 33 35
|
||||
95 42 41 34 33 35
|
||||
96 42 42 34 33 35
|
||||
97 49 37 34 33 40
|
||||
98 41 41 34 33 40
|
||||
99 41 42 34 33 40
|
||||
100 51 33 34 37 36
|
||||
101 7 41 34 37 36
|
||||
102 7 42 34 37 36
|
||||
|
||||
Impropers
|
||||
|
||||
1 4 13 12 18 19
|
||||
2 22 1 15 14 32
|
||||
3 5 17 16 26 27
|
||||
4 1 2 1 8 7
|
||||
5 1 2 1 8 15
|
||||
6 1 8 1 7 15
|
||||
7 1 2 1 7 15
|
||||
8 1 1 2 3 9
|
||||
9 1 1 2 3 4
|
||||
10 1 1 2 4 9
|
||||
11 1 3 2 4 9
|
||||
12 1 2 3 6 10
|
||||
13 1 2 3 6 11
|
||||
14 1 2 3 10 11
|
||||
15 1 6 3 10 11
|
||||
16 1 14 13 20 12
|
||||
17 1 14 13 21 12
|
||||
18 1 20 13 21 12
|
||||
19 1 14 13 20 21
|
||||
20 1 13 14 22 15
|
||||
21 1 13 14 23 15
|
||||
22 1 13 14 22 23
|
||||
23 1 22 14 23 15
|
||||
24 1 18 17 28 16
|
||||
25 1 18 17 29 16
|
||||
26 1 28 17 29 16
|
||||
27 1 18 17 28 29
|
||||
28 1 17 18 30 12
|
||||
29 1 17 18 31 12
|
||||
30 1 30 18 31 12
|
||||
31 1 17 18 30 31
|
||||
32 1 39 32 15 33
|
||||
33 1 39 32 38 15
|
||||
34 1 38 32 15 33
|
||||
35 1 39 32 38 33
|
||||
36 1 32 33 34 35
|
||||
37 1 32 33 35 40
|
||||
38 1 32 33 34 40
|
||||
39 1 34 33 35 40
|
||||
40 1 37 34 41 33
|
||||
41 1 37 34 42 33
|
||||
42 1 41 34 42 33
|
||||
43 1 37 34 41 42
|
||||
1582
examples/USER/reaction/tiny_epoxy/tiny_epoxy.data
Normal file
1582
examples/USER/reaction/tiny_epoxy/tiny_epoxy.data
Normal file
File diff suppressed because it is too large
Load Diff
44
examples/USER/reaction/tiny_polystyrene/2styrene_map
Normal file
44
examples/USER/reaction/tiny_polystyrene/2styrene_map
Normal file
@ -0,0 +1,44 @@
|
||||
this is a map file
|
||||
|
||||
0 edgeIDs
|
||||
32 equivalences
|
||||
|
||||
BondingIDs
|
||||
|
||||
4
|
||||
30
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
32 32
|
||||
@ -0,0 +1,312 @@
|
||||
2styrene_reacted
|
||||
|
||||
32 atoms
|
||||
33 bonds
|
||||
54 angles
|
||||
79 dihedrals
|
||||
22 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 5
|
||||
5 1
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 1
|
||||
10 2
|
||||
11 1
|
||||
12 2
|
||||
13 2
|
||||
14 6
|
||||
15 2
|
||||
16 2
|
||||
17 1
|
||||
18 2
|
||||
19 1
|
||||
20 5
|
||||
21 1
|
||||
22 2
|
||||
23 1
|
||||
24 2
|
||||
25 1
|
||||
26 2
|
||||
27 1
|
||||
28 2
|
||||
29 2
|
||||
30 6
|
||||
31 2
|
||||
32 2
|
||||
|
||||
Charges
|
||||
|
||||
1 -0.129000
|
||||
2 0.123700
|
||||
3 0.026600
|
||||
4 -0.018200
|
||||
5 -0.129000
|
||||
6 0.123700
|
||||
7 -0.173400
|
||||
8 0.140300
|
||||
9 -0.113400
|
||||
10 0.128800
|
||||
11 -0.173400
|
||||
12 0.140300
|
||||
13 0.051600
|
||||
14 -0.069600
|
||||
15 0.035400
|
||||
16 0.035400
|
||||
17 -0.129000
|
||||
18 0.123700
|
||||
19 0.026600
|
||||
20 -0.018200
|
||||
21 -0.129000
|
||||
22 0.123700
|
||||
23 -0.173400
|
||||
24 0.140300
|
||||
25 -0.113400
|
||||
26 0.128800
|
||||
27 -0.173400
|
||||
28 0.140300
|
||||
29 0.051600
|
||||
30 -0.069600
|
||||
31 0.035400
|
||||
32 0.035400
|
||||
|
||||
Coords
|
||||
|
||||
1 13.465810 0.682530 -1.658940
|
||||
2 14.397820 1.221530 -1.658940
|
||||
3 12.235820 1.392530 -1.658940
|
||||
4 12.235820 2.892530 -1.658940
|
||||
5 11.005820 0.682530 -1.658940
|
||||
6 10.073820 1.221530 -1.658940
|
||||
7 11.005820 -0.737470 -1.658940
|
||||
8 10.073820 -1.276460 -1.658940
|
||||
9 12.235820 -1.447460 -1.658940
|
||||
10 12.235820 -2.524470 -1.658940
|
||||
11 13.465810 -0.737470 -1.658940
|
||||
12 14.397820 -1.276460 -1.658940
|
||||
13 13.101820 3.297530 -1.301940
|
||||
14 10.957820 3.441530 -2.220940
|
||||
15 11.007810 4.183540 -2.319940
|
||||
16 10.314820 2.618530 -2.514940
|
||||
17 18.663521 0.855480 -1.372130
|
||||
18 19.595510 1.394480 -1.372130
|
||||
19 17.433510 1.565480 -1.372130
|
||||
20 17.433510 3.065480 -1.372130
|
||||
21 16.203510 0.855480 -1.372130
|
||||
22 15.271510 1.394480 -1.372130
|
||||
23 16.203510 -0.564520 -1.372130
|
||||
24 15.271510 -1.103520 -1.372130
|
||||
25 17.433510 -1.274520 -1.372130
|
||||
26 17.433510 -2.351520 -1.372130
|
||||
27 18.663521 -0.564520 -1.372130
|
||||
28 19.595510 -1.103520 -1.372130
|
||||
29 18.299509 3.470480 -1.015130
|
||||
30 16.155510 3.614480 -1.934130
|
||||
31 16.205509 4.356480 -2.033130
|
||||
32 15.512510 2.791480 -2.228130
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 2 1 3
|
||||
3 2 1 11
|
||||
4 7 3 4
|
||||
5 2 3 5
|
||||
6 8 13 4
|
||||
7 9 4 14
|
||||
8 9 4 30
|
||||
9 1 5 6
|
||||
10 2 5 7
|
||||
11 1 7 8
|
||||
12 2 7 9
|
||||
13 1 9 10
|
||||
14 2 9 11
|
||||
15 1 11 12
|
||||
16 10 15 14
|
||||
17 10 16 14
|
||||
18 1 17 18
|
||||
19 2 17 19
|
||||
20 2 17 27
|
||||
21 7 19 20
|
||||
22 2 19 21
|
||||
23 8 29 20
|
||||
24 9 20 30
|
||||
25 1 21 22
|
||||
26 2 21 23
|
||||
27 1 23 24
|
||||
28 2 23 25
|
||||
29 1 25 26
|
||||
30 2 25 27
|
||||
31 1 27 28
|
||||
32 10 31 30
|
||||
33 10 32 30
|
||||
|
||||
Angles
|
||||
|
||||
1 1 3 1 2
|
||||
2 1 11 1 2
|
||||
3 2 3 1 11
|
||||
4 9 1 3 4
|
||||
5 2 1 3 5
|
||||
6 9 5 3 4
|
||||
7 10 3 4 13
|
||||
8 11 3 4 14
|
||||
9 11 3 4 30
|
||||
10 12 13 4 14
|
||||
11 12 13 4 30
|
||||
12 13 14 4 30
|
||||
13 1 3 5 6
|
||||
14 2 3 5 7
|
||||
15 1 7 5 6
|
||||
16 1 5 7 8
|
||||
17 2 5 7 9
|
||||
18 1 9 7 8
|
||||
19 1 7 9 10
|
||||
20 2 7 9 11
|
||||
21 1 11 9 10
|
||||
22 2 1 11 9
|
||||
23 1 1 11 12
|
||||
24 1 9 11 12
|
||||
25 14 15 14 4
|
||||
26 14 16 14 4
|
||||
27 15 15 14 16
|
||||
28 1 19 17 18
|
||||
29 1 27 17 18
|
||||
30 2 19 17 27
|
||||
31 9 17 19 20
|
||||
32 2 17 19 21
|
||||
33 9 21 19 20
|
||||
34 10 19 20 29
|
||||
35 11 19 20 30
|
||||
36 12 29 20 30
|
||||
37 1 19 21 22
|
||||
38 2 19 21 23
|
||||
39 1 23 21 22
|
||||
40 1 21 23 24
|
||||
41 2 21 23 25
|
||||
42 1 25 23 24
|
||||
43 1 23 25 26
|
||||
44 2 23 25 27
|
||||
45 1 27 25 26
|
||||
46 2 17 27 25
|
||||
47 1 17 27 28
|
||||
48 1 25 27 28
|
||||
49 16 4 30 20
|
||||
50 14 31 30 4
|
||||
51 14 32 30 4
|
||||
52 14 31 30 20
|
||||
53 14 32 30 20
|
||||
54 15 31 30 32
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 10 2 1 3 4
|
||||
2 2 5 3 1 2
|
||||
3 11 11 1 3 4
|
||||
4 4 11 1 3 5
|
||||
5 2 9 11 1 2
|
||||
6 5 2 1 11 12
|
||||
7 4 3 1 11 9
|
||||
8 2 3 1 11 12
|
||||
9 12 1 3 4 13
|
||||
10 13 1 3 4 14
|
||||
11 13 1 3 4 30
|
||||
12 12 5 3 4 13
|
||||
13 13 5 3 4 14
|
||||
14 13 5 3 4 30
|
||||
15 2 1 3 5 6
|
||||
16 4 1 3 5 7
|
||||
17 10 6 5 3 4
|
||||
18 11 7 5 3 4
|
||||
19 14 3 4 14 15
|
||||
20 14 3 4 14 16
|
||||
21 15 13 4 14 15
|
||||
22 15 13 4 14 16
|
||||
23 16 30 4 14 15
|
||||
24 16 30 4 14 16
|
||||
25 17 3 4 30 20
|
||||
26 14 3 4 30 31
|
||||
27 14 3 4 30 32
|
||||
28 18 13 4 30 20
|
||||
29 15 13 4 30 31
|
||||
30 15 13 4 30 32
|
||||
31 19 14 4 30 20
|
||||
32 16 14 4 30 31
|
||||
33 16 14 4 30 32
|
||||
34 2 3 5 7 8
|
||||
35 4 3 5 7 9
|
||||
36 5 6 5 7 8
|
||||
37 2 9 7 5 6
|
||||
38 2 5 7 9 10
|
||||
39 4 5 7 9 11
|
||||
40 5 8 7 9 10
|
||||
41 2 11 9 7 8
|
||||
42 4 7 9 11 1
|
||||
43 2 7 9 11 12
|
||||
44 2 1 11 9 10
|
||||
45 5 10 9 11 12
|
||||
46 10 18 17 19 20
|
||||
47 2 21 19 17 18
|
||||
48 11 27 17 19 20
|
||||
49 4 27 17 19 21
|
||||
50 2 25 27 17 18
|
||||
51 5 18 17 27 28
|
||||
52 4 19 17 27 25
|
||||
53 2 19 17 27 28
|
||||
54 12 17 19 20 29
|
||||
55 13 17 19 20 30
|
||||
56 12 21 19 20 29
|
||||
57 13 21 19 20 30
|
||||
58 2 17 19 21 22
|
||||
59 4 17 19 21 23
|
||||
60 10 22 21 19 20
|
||||
61 11 23 21 19 20
|
||||
62 17 19 20 30 4
|
||||
63 14 19 20 30 31
|
||||
64 14 19 20 30 32
|
||||
65 18 29 20 30 4
|
||||
66 15 29 20 30 31
|
||||
67 15 29 20 30 32
|
||||
68 2 19 21 23 24
|
||||
69 4 19 21 23 25
|
||||
70 5 22 21 23 24
|
||||
71 2 25 23 21 22
|
||||
72 2 21 23 25 26
|
||||
73 4 21 23 25 27
|
||||
74 5 24 23 25 26
|
||||
75 2 27 25 23 24
|
||||
76 4 23 25 27 17
|
||||
77 2 23 25 27 28
|
||||
78 2 17 27 25 26
|
||||
79 5 26 25 27 28
|
||||
|
||||
Impropers
|
||||
|
||||
1 1 3 1 11 2
|
||||
2 5 1 3 5 4
|
||||
3 1 3 5 7 6
|
||||
4 1 5 7 9 8
|
||||
5 1 7 9 11 10
|
||||
6 1 1 11 9 12
|
||||
7 6 15 14 16 4
|
||||
8 1 19 17 27 18
|
||||
9 5 17 19 21 20
|
||||
10 7 19 20 29 30
|
||||
11 1 19 21 23 22
|
||||
12 1 21 23 25 24
|
||||
13 1 23 25 27 26
|
||||
14 1 17 27 25 28
|
||||
15 1 3 4 13 14
|
||||
16 1 3 4 13 30
|
||||
17 1 3 4 14 30
|
||||
18 1 13 4 14 30
|
||||
19 1 31 30 20 4
|
||||
20 1 32 30 20 4
|
||||
21 1 31 30 32 4
|
||||
22 1 31 30 32 20
|
||||
@ -0,0 +1,284 @@
|
||||
2styrene_unreacted
|
||||
|
||||
32 atoms
|
||||
32 bonds
|
||||
48 angles
|
||||
64 dihedrals
|
||||
16 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 3
|
||||
5 1
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 1
|
||||
10 2
|
||||
11 1
|
||||
12 2
|
||||
13 2
|
||||
14 4
|
||||
15 2
|
||||
16 2
|
||||
17 1
|
||||
18 2
|
||||
19 1
|
||||
20 3
|
||||
21 1
|
||||
22 2
|
||||
23 1
|
||||
24 2
|
||||
25 1
|
||||
26 2
|
||||
27 1
|
||||
28 2
|
||||
29 2
|
||||
30 4
|
||||
31 2
|
||||
32 2
|
||||
|
||||
Charges
|
||||
|
||||
1 -0.129000
|
||||
2 0.123700
|
||||
3 0.026600
|
||||
4 -0.018200
|
||||
5 -0.129000
|
||||
6 0.123700
|
||||
7 -0.173400
|
||||
8 0.140300
|
||||
9 -0.113400
|
||||
10 0.128800
|
||||
11 -0.173400
|
||||
12 0.140300
|
||||
13 0.051600
|
||||
14 -0.069600
|
||||
15 0.035400
|
||||
16 0.035400
|
||||
17 -0.129000
|
||||
18 0.123700
|
||||
19 0.026600
|
||||
20 -0.018200
|
||||
21 -0.129000
|
||||
22 0.123700
|
||||
23 -0.173400
|
||||
24 0.140300
|
||||
25 -0.113400
|
||||
26 0.128800
|
||||
27 -0.173400
|
||||
28 0.140300
|
||||
29 0.051600
|
||||
30 -0.069600
|
||||
31 0.035400
|
||||
32 0.035400
|
||||
|
||||
Coords
|
||||
|
||||
1 13.465815 0.682534 -1.658941
|
||||
2 14.397816 1.221534 -1.658941
|
||||
3 12.235815 1.392534 -1.658941
|
||||
4 12.235815 2.892534 -1.658941
|
||||
5 11.005816 0.682534 -1.658941
|
||||
6 10.073815 1.221534 -1.658941
|
||||
7 11.005816 -0.737466 -1.658941
|
||||
8 10.073815 -1.276465 -1.658941
|
||||
9 12.235815 -1.447465 -1.658941
|
||||
10 12.235815 -2.524465 -1.658941
|
||||
11 13.465815 -0.737466 -1.658941
|
||||
12 14.397816 -1.276465 -1.658941
|
||||
13 13.101815 3.297535 -1.301941
|
||||
14 10.957815 3.441535 -2.220941
|
||||
15 11.007814 4.183536 -2.319941
|
||||
16 10.314816 2.618534 -2.514940
|
||||
17 18.663515 0.855482 -1.372128
|
||||
18 19.595514 1.394482 -1.372128
|
||||
19 17.433512 1.565481 -1.372128
|
||||
20 17.433512 3.065482 -1.372128
|
||||
21 16.203512 0.855482 -1.372128
|
||||
22 15.271511 1.394482 -1.372128
|
||||
23 16.203512 -0.564518 -1.372128
|
||||
24 15.271511 -1.103518 -1.372128
|
||||
25 17.433512 -1.274518 -1.372128
|
||||
26 17.433512 -2.351518 -1.372128
|
||||
27 18.663515 -0.564518 -1.372128
|
||||
28 19.595514 -1.103518 -1.372128
|
||||
29 18.299513 3.470482 -1.015128
|
||||
30 16.155512 3.614482 -1.934128
|
||||
31 16.205513 4.356482 -2.033128
|
||||
32 15.512512 2.791482 -2.228127
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 2 1 3
|
||||
3 2 1 11
|
||||
4 3 3 4
|
||||
5 2 3 5
|
||||
6 4 13 4
|
||||
7 5 4 14
|
||||
8 1 5 6
|
||||
9 2 5 7
|
||||
10 1 7 8
|
||||
11 2 7 9
|
||||
12 1 9 10
|
||||
13 2 9 11
|
||||
14 1 11 12
|
||||
15 6 15 14
|
||||
16 6 16 14
|
||||
17 1 17 18
|
||||
18 2 17 19
|
||||
19 2 17 27
|
||||
20 3 19 20
|
||||
21 2 19 21
|
||||
22 4 29 20
|
||||
23 5 20 30
|
||||
24 1 21 22
|
||||
25 2 21 23
|
||||
26 1 23 24
|
||||
27 2 23 25
|
||||
28 1 25 26
|
||||
29 2 25 27
|
||||
30 1 27 28
|
||||
31 6 31 30
|
||||
32 6 32 30
|
||||
|
||||
Angles
|
||||
|
||||
1 1 3 1 2
|
||||
2 1 11 1 2
|
||||
3 2 3 1 11
|
||||
4 3 1 3 4
|
||||
5 2 1 3 5
|
||||
6 3 5 3 4
|
||||
7 4 3 4 13
|
||||
8 5 3 4 14
|
||||
9 6 13 4 14
|
||||
10 1 3 5 6
|
||||
11 2 3 5 7
|
||||
12 1 7 5 6
|
||||
13 1 5 7 8
|
||||
14 2 5 7 9
|
||||
15 1 9 7 8
|
||||
16 1 7 9 10
|
||||
17 2 7 9 11
|
||||
18 1 11 9 10
|
||||
19 2 1 11 9
|
||||
20 1 1 11 12
|
||||
21 1 9 11 12
|
||||
22 7 15 14 4
|
||||
23 7 16 14 4
|
||||
24 8 15 14 16
|
||||
25 1 19 17 18
|
||||
26 1 27 17 18
|
||||
27 2 19 17 27
|
||||
28 3 17 19 20
|
||||
29 2 17 19 21
|
||||
30 3 21 19 20
|
||||
31 4 19 20 29
|
||||
32 5 19 20 30
|
||||
33 6 29 20 30
|
||||
34 1 19 21 22
|
||||
35 2 19 21 23
|
||||
36 1 23 21 22
|
||||
37 1 21 23 24
|
||||
38 2 21 23 25
|
||||
39 1 25 23 24
|
||||
40 1 23 25 26
|
||||
41 2 23 25 27
|
||||
42 1 27 25 26
|
||||
43 2 17 27 25
|
||||
44 1 17 27 28
|
||||
45 1 25 27 28
|
||||
46 7 31 30 20
|
||||
47 7 32 30 20
|
||||
48 8 31 30 32
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 1 2 1 3 4
|
||||
2 2 5 3 1 2
|
||||
3 3 11 1 3 4
|
||||
4 4 11 1 3 5
|
||||
5 2 9 11 1 2
|
||||
6 5 2 1 11 12
|
||||
7 4 3 1 11 9
|
||||
8 2 3 1 11 12
|
||||
9 6 1 3 4 13
|
||||
10 7 1 3 4 14
|
||||
11 6 5 3 4 13
|
||||
12 7 5 3 4 14
|
||||
13 2 1 3 5 6
|
||||
14 4 1 3 5 7
|
||||
15 1 6 5 3 4
|
||||
16 3 7 5 3 4
|
||||
17 8 3 4 14 15
|
||||
18 8 3 4 14 16
|
||||
19 9 13 4 14 15
|
||||
20 9 13 4 14 16
|
||||
21 2 3 5 7 8
|
||||
22 4 3 5 7 9
|
||||
23 5 6 5 7 8
|
||||
24 2 9 7 5 6
|
||||
25 2 5 7 9 10
|
||||
26 4 5 7 9 11
|
||||
27 5 8 7 9 10
|
||||
28 2 11 9 7 8
|
||||
29 4 7 9 11 1
|
||||
30 2 7 9 11 12
|
||||
31 2 1 11 9 10
|
||||
32 5 10 9 11 12
|
||||
33 1 18 17 19 20
|
||||
34 2 21 19 17 18
|
||||
35 3 27 17 19 20
|
||||
36 4 27 17 19 21
|
||||
37 2 25 27 17 18
|
||||
38 5 18 17 27 28
|
||||
39 4 19 17 27 25
|
||||
40 2 19 17 27 28
|
||||
41 6 17 19 20 29
|
||||
42 7 17 19 20 30
|
||||
43 6 21 19 20 29
|
||||
44 7 21 19 20 30
|
||||
45 2 17 19 21 22
|
||||
46 4 17 19 21 23
|
||||
47 1 22 21 19 20
|
||||
48 3 23 21 19 20
|
||||
49 8 19 20 30 31
|
||||
50 8 19 20 30 32
|
||||
51 9 29 20 30 31
|
||||
52 9 29 20 30 32
|
||||
53 2 19 21 23 24
|
||||
54 4 19 21 23 25
|
||||
55 5 22 21 23 24
|
||||
56 2 25 23 21 22
|
||||
57 2 21 23 25 26
|
||||
58 4 21 23 25 27
|
||||
59 5 24 23 25 26
|
||||
60 2 27 25 23 24
|
||||
61 4 23 25 27 17
|
||||
62 2 23 25 27 28
|
||||
63 2 17 27 25 26
|
||||
64 5 26 25 27 28
|
||||
|
||||
Impropers
|
||||
|
||||
1 1 3 1 11 2
|
||||
2 2 1 3 5 4
|
||||
3 3 3 4 13 14
|
||||
4 1 3 5 7 6
|
||||
5 1 5 7 9 8
|
||||
6 1 7 9 11 10
|
||||
7 1 1 11 9 12
|
||||
8 4 15 14 16 4
|
||||
9 1 19 17 27 18
|
||||
10 2 17 19 21 20
|
||||
11 3 19 20 29 30
|
||||
12 1 19 21 23 22
|
||||
13 1 21 23 25 24
|
||||
14 1 23 25 27 26
|
||||
15 1 17 27 25 28
|
||||
16 4 31 30 32 20
|
||||
67
examples/USER/reaction/tiny_polystyrene/chain_chain_map
Normal file
67
examples/USER/reaction/tiny_polystyrene/chain_chain_map
Normal file
@ -0,0 +1,67 @@
|
||||
this is a map file
|
||||
|
||||
2 edgeIDs
|
||||
50 equivalences
|
||||
|
||||
EdgeIDs
|
||||
|
||||
17
|
||||
34
|
||||
|
||||
BondingIDs
|
||||
|
||||
14
|
||||
38
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
32 32
|
||||
33 33
|
||||
34 34
|
||||
35 35
|
||||
36 36
|
||||
37 37
|
||||
38 38
|
||||
39 39
|
||||
40 40
|
||||
41 41
|
||||
42 42
|
||||
43 43
|
||||
44 44
|
||||
45 45
|
||||
46 46
|
||||
47 47
|
||||
48 48
|
||||
49 49
|
||||
50 50
|
||||
@ -0,0 +1,497 @@
|
||||
chain_chain_reacted
|
||||
|
||||
50 atoms
|
||||
52 bonds
|
||||
90 angles
|
||||
135 dihedrals
|
||||
42 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 5
|
||||
5 1
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 1
|
||||
10 2
|
||||
11 1
|
||||
12 2
|
||||
13 2
|
||||
14 6
|
||||
15 2
|
||||
16 2
|
||||
17 5
|
||||
18 6
|
||||
19 2
|
||||
20 2
|
||||
21 1
|
||||
22 2
|
||||
23 1
|
||||
24 5
|
||||
25 1
|
||||
26 2
|
||||
27 1
|
||||
28 2
|
||||
29 1
|
||||
30 2
|
||||
31 1
|
||||
32 2
|
||||
33 2
|
||||
34 6
|
||||
35 1
|
||||
36 2
|
||||
37 1
|
||||
38 5
|
||||
39 1
|
||||
40 2
|
||||
41 1
|
||||
42 2
|
||||
43 1
|
||||
44 2
|
||||
45 1
|
||||
46 2
|
||||
47 2
|
||||
48 6
|
||||
49 2
|
||||
50 2
|
||||
|
||||
Charges
|
||||
|
||||
1 -0.129000
|
||||
2 0.123700
|
||||
3 0.026600
|
||||
4 -0.018200
|
||||
5 -0.129000
|
||||
6 0.123700
|
||||
7 -0.173400
|
||||
8 0.140300
|
||||
9 -0.113400
|
||||
10 0.128800
|
||||
11 -0.173400
|
||||
12 0.140300
|
||||
13 0.051600
|
||||
14 -0.069600
|
||||
15 0.035400
|
||||
16 0.035400
|
||||
17 -0.018200
|
||||
18 -0.069600
|
||||
19 0.035400
|
||||
20 0.035400
|
||||
21 -0.129000
|
||||
22 0.123700
|
||||
23 0.026600
|
||||
24 -0.018200
|
||||
25 -0.129000
|
||||
26 0.123700
|
||||
27 -0.173400
|
||||
28 0.140300
|
||||
29 -0.113400
|
||||
30 0.128800
|
||||
31 -0.173400
|
||||
32 0.140300
|
||||
33 0.051600
|
||||
34 -0.069600
|
||||
35 -0.129000
|
||||
36 0.123700
|
||||
37 0.026600
|
||||
38 -0.018200
|
||||
39 -0.129000
|
||||
40 0.123700
|
||||
41 -0.173400
|
||||
42 0.140300
|
||||
43 -0.113400
|
||||
44 0.128800
|
||||
45 -0.173400
|
||||
46 0.140300
|
||||
47 0.051600
|
||||
48 -0.069600
|
||||
49 0.035400
|
||||
50 0.035400
|
||||
|
||||
Coords
|
||||
|
||||
1 24.391510 0.871570 -1.658940
|
||||
2 25.323530 1.410570 -1.658940
|
||||
3 23.161520 1.581570 -1.658940
|
||||
4 23.161520 3.081570 -1.658940
|
||||
5 21.931530 0.871570 -1.658940
|
||||
6 20.999531 1.410570 -1.658940
|
||||
7 21.931530 -0.548430 -1.658940
|
||||
8 20.999531 -1.087420 -1.658940
|
||||
9 23.161520 -1.258420 -1.658940
|
||||
10 23.161520 -2.335430 -1.658940
|
||||
11 24.391510 -0.548430 -1.658940
|
||||
12 25.323530 -1.087420 -1.658940
|
||||
13 24.027519 3.486570 -1.301940
|
||||
14 21.883520 3.630570 -2.220940
|
||||
15 21.933510 4.372580 -2.319940
|
||||
16 21.240520 2.807570 -2.514940
|
||||
17 28.359209 3.254520 -1.372130
|
||||
18 27.081209 3.803520 -1.934130
|
||||
19 27.131210 4.545520 -2.033130
|
||||
20 26.438219 2.980520 -2.228130
|
||||
21 13.465810 0.682530 -1.658940
|
||||
22 14.397820 1.221530 -1.658940
|
||||
23 12.235820 1.392530 -1.658940
|
||||
24 12.235820 2.892530 -1.658940
|
||||
25 11.005820 0.682530 -1.658940
|
||||
26 10.073820 1.221530 -1.658940
|
||||
27 11.005820 -0.737470 -1.658940
|
||||
28 10.073820 -1.276460 -1.658940
|
||||
29 12.235820 -1.447460 -1.658940
|
||||
30 12.235820 -2.524470 -1.658940
|
||||
31 13.465810 -0.737470 -1.658940
|
||||
32 14.397820 -1.276460 -1.658940
|
||||
33 13.101820 3.297530 -1.301940
|
||||
34 10.957820 3.441530 -2.220940
|
||||
35 18.663521 0.855480 -1.372130
|
||||
36 19.595510 1.394480 -1.372130
|
||||
37 17.433510 1.565480 -1.372130
|
||||
38 17.433510 3.065480 -1.372130
|
||||
39 16.203510 0.855480 -1.372130
|
||||
40 15.271510 1.394480 -1.372130
|
||||
41 16.203510 -0.564520 -1.372130
|
||||
42 15.271510 -1.103520 -1.372130
|
||||
43 17.433510 -1.274520 -1.372130
|
||||
44 17.433510 -2.351520 -1.372130
|
||||
45 18.663521 -0.564520 -1.372130
|
||||
46 19.595510 -1.103520 -1.372130
|
||||
47 18.299509 3.470480 -1.015130
|
||||
48 16.155510 3.614480 -1.934130
|
||||
49 16.205509 4.356480 -2.033130
|
||||
50 15.512510 2.791480 -2.228130
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 2 1 3
|
||||
3 2 1 11
|
||||
4 7 3 4
|
||||
5 2 3 5
|
||||
6 8 13 4
|
||||
7 9 4 14
|
||||
8 9 4 18
|
||||
9 1 5 6
|
||||
10 2 5 7
|
||||
11 1 7 8
|
||||
12 2 7 9
|
||||
13 1 9 10
|
||||
14 2 9 11
|
||||
15 1 11 12
|
||||
16 10 15 14
|
||||
17 10 16 14
|
||||
18 9 38 14
|
||||
19 9 17 18
|
||||
20 10 19 18
|
||||
21 10 20 18
|
||||
22 1 21 22
|
||||
23 2 21 23
|
||||
24 2 21 31
|
||||
25 7 23 24
|
||||
26 2 23 25
|
||||
27 8 33 24
|
||||
28 9 24 34
|
||||
29 9 24 48
|
||||
30 1 25 26
|
||||
31 2 25 27
|
||||
32 1 27 28
|
||||
33 2 27 29
|
||||
34 1 29 30
|
||||
35 2 29 31
|
||||
36 1 31 32
|
||||
37 1 35 36
|
||||
38 2 35 37
|
||||
39 2 35 45
|
||||
40 7 37 38
|
||||
41 2 37 39
|
||||
42 8 47 38
|
||||
43 9 38 48
|
||||
44 1 39 40
|
||||
45 2 39 41
|
||||
46 1 41 42
|
||||
47 2 41 43
|
||||
48 1 43 44
|
||||
49 2 43 45
|
||||
50 1 45 46
|
||||
51 10 49 48
|
||||
52 10 50 48
|
||||
|
||||
Angles
|
||||
|
||||
1 1 3 1 2
|
||||
2 1 11 1 2
|
||||
3 2 3 1 11
|
||||
4 9 1 3 4
|
||||
5 2 1 3 5
|
||||
6 9 5 3 4
|
||||
7 10 3 4 13
|
||||
8 11 3 4 14
|
||||
9 11 3 4 18
|
||||
10 12 13 4 14
|
||||
11 12 13 4 18
|
||||
12 13 14 4 18
|
||||
13 1 3 5 6
|
||||
14 2 3 5 7
|
||||
15 1 7 5 6
|
||||
16 1 5 7 8
|
||||
17 2 5 7 9
|
||||
18 1 9 7 8
|
||||
19 1 7 9 10
|
||||
20 2 7 9 11
|
||||
21 1 11 9 10
|
||||
22 2 1 11 9
|
||||
23 1 1 11 12
|
||||
24 1 9 11 12
|
||||
25 14 15 14 4
|
||||
26 14 16 14 4
|
||||
27 16 4 14 38
|
||||
28 15 15 14 16
|
||||
29 14 15 14 38
|
||||
30 14 16 14 38
|
||||
31 16 4 18 17
|
||||
32 14 19 18 4
|
||||
33 14 20 18 4
|
||||
34 14 19 18 17
|
||||
35 14 20 18 17
|
||||
36 15 19 18 20
|
||||
37 1 23 21 22
|
||||
38 1 31 21 22
|
||||
39 2 23 21 31
|
||||
40 9 21 23 24
|
||||
41 2 21 23 25
|
||||
42 9 25 23 24
|
||||
43 10 23 24 33
|
||||
44 11 23 24 34
|
||||
45 11 23 24 48
|
||||
46 12 33 24 34
|
||||
47 12 33 24 48
|
||||
48 13 34 24 48
|
||||
49 1 23 25 26
|
||||
50 2 23 25 27
|
||||
51 1 27 25 26
|
||||
52 1 25 27 28
|
||||
53 2 25 27 29
|
||||
54 1 29 27 28
|
||||
55 1 27 29 30
|
||||
56 2 27 29 31
|
||||
57 1 31 29 30
|
||||
58 2 21 31 29
|
||||
59 1 21 31 32
|
||||
60 1 29 31 32
|
||||
61 1 37 35 36
|
||||
62 1 45 35 36
|
||||
63 2 37 35 45
|
||||
64 9 35 37 38
|
||||
65 2 35 37 39
|
||||
66 9 39 37 38
|
||||
67 11 37 38 14
|
||||
68 12 47 38 14
|
||||
69 13 14 38 48
|
||||
70 10 37 38 47
|
||||
71 11 37 38 48
|
||||
72 12 47 38 48
|
||||
73 1 37 39 40
|
||||
74 2 37 39 41
|
||||
75 1 41 39 40
|
||||
76 1 39 41 42
|
||||
77 2 39 41 43
|
||||
78 1 43 41 42
|
||||
79 1 41 43 44
|
||||
80 2 41 43 45
|
||||
81 1 45 43 44
|
||||
82 2 35 45 43
|
||||
83 1 35 45 46
|
||||
84 1 43 45 46
|
||||
85 16 24 48 38
|
||||
86 14 49 48 24
|
||||
87 14 50 48 24
|
||||
88 14 49 48 38
|
||||
89 14 50 48 38
|
||||
90 15 49 48 50
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 10 2 1 3 4
|
||||
2 2 5 3 1 2
|
||||
3 11 11 1 3 4
|
||||
4 4 11 1 3 5
|
||||
5 2 9 11 1 2
|
||||
6 5 2 1 11 12
|
||||
7 4 3 1 11 9
|
||||
8 2 3 1 11 12
|
||||
9 12 1 3 4 13
|
||||
10 13 1 3 4 14
|
||||
11 13 1 3 4 18
|
||||
12 12 5 3 4 13
|
||||
13 13 5 3 4 14
|
||||
14 13 5 3 4 18
|
||||
15 2 1 3 5 6
|
||||
16 4 1 3 5 7
|
||||
17 10 6 5 3 4
|
||||
18 11 7 5 3 4
|
||||
19 14 3 4 14 15
|
||||
20 14 3 4 14 16
|
||||
21 17 3 4 14 38
|
||||
22 15 13 4 14 15
|
||||
23 15 13 4 14 16
|
||||
24 18 13 4 14 38
|
||||
25 16 18 4 14 15
|
||||
26 16 18 4 14 16
|
||||
27 19 18 4 14 38
|
||||
28 17 3 4 18 17
|
||||
29 14 3 4 18 19
|
||||
30 14 3 4 18 20
|
||||
31 18 13 4 18 17
|
||||
32 15 13 4 18 19
|
||||
33 15 13 4 18 20
|
||||
34 19 14 4 18 17
|
||||
35 16 14 4 18 19
|
||||
36 16 14 4 18 20
|
||||
37 2 3 5 7 8
|
||||
38 4 3 5 7 9
|
||||
39 5 6 5 7 8
|
||||
40 2 9 7 5 6
|
||||
41 2 5 7 9 10
|
||||
42 4 5 7 9 11
|
||||
43 5 8 7 9 10
|
||||
44 2 11 9 7 8
|
||||
45 4 7 9 11 1
|
||||
46 2 7 9 11 12
|
||||
47 2 1 11 9 10
|
||||
48 5 10 9 11 12
|
||||
49 17 37 38 14 4
|
||||
50 18 47 38 14 4
|
||||
51 19 48 38 14 4
|
||||
52 14 37 38 14 15
|
||||
53 15 47 38 14 15
|
||||
54 16 48 38 14 15
|
||||
55 14 37 38 14 16
|
||||
56 15 47 38 14 16
|
||||
57 16 48 38 14 16
|
||||
58 10 22 21 23 24
|
||||
59 2 25 23 21 22
|
||||
60 11 31 21 23 24
|
||||
61 4 31 21 23 25
|
||||
62 2 29 31 21 22
|
||||
63 5 22 21 31 32
|
||||
64 4 23 21 31 29
|
||||
65 2 23 21 31 32
|
||||
66 12 21 23 24 33
|
||||
67 13 21 23 24 34
|
||||
68 13 21 23 24 48
|
||||
69 12 25 23 24 33
|
||||
70 13 25 23 24 34
|
||||
71 13 25 23 24 48
|
||||
72 2 21 23 25 26
|
||||
73 4 21 23 25 27
|
||||
74 10 26 25 23 24
|
||||
75 11 27 25 23 24
|
||||
76 17 23 24 48 38
|
||||
77 14 23 24 48 49
|
||||
78 14 23 24 48 50
|
||||
79 18 33 24 48 38
|
||||
80 15 33 24 48 49
|
||||
81 15 33 24 48 50
|
||||
82 19 34 24 48 38
|
||||
83 16 34 24 48 49
|
||||
84 16 34 24 48 50
|
||||
85 2 23 25 27 28
|
||||
86 4 23 25 27 29
|
||||
87 5 26 25 27 28
|
||||
88 2 29 27 25 26
|
||||
89 2 25 27 29 30
|
||||
90 4 25 27 29 31
|
||||
91 5 28 27 29 30
|
||||
92 2 31 29 27 28
|
||||
93 4 27 29 31 21
|
||||
94 2 27 29 31 32
|
||||
95 2 21 31 29 30
|
||||
96 5 30 29 31 32
|
||||
97 10 36 35 37 38
|
||||
98 2 39 37 35 36
|
||||
99 11 45 35 37 38
|
||||
100 4 45 35 37 39
|
||||
101 2 43 45 35 36
|
||||
102 5 36 35 45 46
|
||||
103 4 37 35 45 43
|
||||
104 2 37 35 45 46
|
||||
105 13 35 37 38 14
|
||||
106 12 35 37 38 47
|
||||
107 13 35 37 38 48
|
||||
108 13 39 37 38 14
|
||||
109 12 39 37 38 47
|
||||
110 13 39 37 38 48
|
||||
111 2 35 37 39 40
|
||||
112 4 35 37 39 41
|
||||
113 10 40 39 37 38
|
||||
114 11 41 39 37 38
|
||||
115 19 14 38 48 24
|
||||
116 16 14 38 48 49
|
||||
117 16 14 38 48 50
|
||||
118 17 37 38 48 24
|
||||
119 14 37 38 48 49
|
||||
120 14 37 38 48 50
|
||||
121 18 47 38 48 24
|
||||
122 15 47 38 48 49
|
||||
123 15 47 38 48 50
|
||||
124 2 37 39 41 42
|
||||
125 4 37 39 41 43
|
||||
126 5 40 39 41 42
|
||||
127 2 43 41 39 40
|
||||
128 2 39 41 43 44
|
||||
129 4 39 41 43 45
|
||||
130 5 42 41 43 44
|
||||
131 2 45 43 41 42
|
||||
132 4 41 43 45 35
|
||||
133 2 41 43 45 46
|
||||
134 2 35 45 43 44
|
||||
135 5 44 43 45 46
|
||||
|
||||
Impropers
|
||||
|
||||
1 1 3 1 11 2
|
||||
2 5 1 3 5 4
|
||||
3 1 3 5 7 6
|
||||
4 1 5 7 9 8
|
||||
5 1 7 9 11 10
|
||||
6 1 1 11 9 12
|
||||
7 1 23 21 31 22
|
||||
8 5 21 23 25 24
|
||||
9 1 23 25 27 26
|
||||
10 1 25 27 29 28
|
||||
11 1 27 29 31 30
|
||||
12 1 21 31 29 32
|
||||
13 1 37 35 45 36
|
||||
14 5 35 37 39 38
|
||||
15 1 37 39 41 40
|
||||
16 1 39 41 43 42
|
||||
17 1 41 43 45 44
|
||||
18 1 35 45 43 46
|
||||
19 1 3 4 13 14
|
||||
20 1 3 4 13 18
|
||||
21 1 3 4 14 18
|
||||
22 1 13 4 14 18
|
||||
23 1 15 14 16 4
|
||||
24 1 15 14 4 38
|
||||
25 1 16 14 4 38
|
||||
26 1 15 14 16 38
|
||||
27 1 19 18 17 4
|
||||
28 1 20 18 17 4
|
||||
29 1 19 18 20 4
|
||||
30 1 19 18 20 17
|
||||
31 1 23 24 33 34
|
||||
32 1 23 24 33 48
|
||||
33 1 23 24 34 48
|
||||
34 1 33 24 34 48
|
||||
35 1 37 38 47 14
|
||||
36 1 37 38 14 48
|
||||
37 1 47 38 14 48
|
||||
38 1 37 38 47 48
|
||||
39 1 49 48 38 24
|
||||
40 1 50 48 38 24
|
||||
41 1 49 48 50 24
|
||||
42 1 49 48 50 38
|
||||
@ -0,0 +1,467 @@
|
||||
chain_chain_unreacted
|
||||
|
||||
50 atoms
|
||||
51 bonds
|
||||
84 angles
|
||||
118 dihedrals
|
||||
36 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 5
|
||||
5 1
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 1
|
||||
10 2
|
||||
11 1
|
||||
12 2
|
||||
13 2
|
||||
14 6
|
||||
15 2
|
||||
16 2
|
||||
17 5
|
||||
18 6
|
||||
19 2
|
||||
20 2
|
||||
21 1
|
||||
22 2
|
||||
23 1
|
||||
24 5
|
||||
25 1
|
||||
26 2
|
||||
27 1
|
||||
28 2
|
||||
29 1
|
||||
30 2
|
||||
31 1
|
||||
32 2
|
||||
33 2
|
||||
34 6
|
||||
35 1
|
||||
36 2
|
||||
37 1
|
||||
38 5
|
||||
39 1
|
||||
40 2
|
||||
41 1
|
||||
42 2
|
||||
43 1
|
||||
44 2
|
||||
45 1
|
||||
46 2
|
||||
47 2
|
||||
48 6
|
||||
49 2
|
||||
50 2
|
||||
|
||||
Charges
|
||||
|
||||
1 -0.129000
|
||||
2 0.123700
|
||||
3 0.026600
|
||||
4 -0.018200
|
||||
5 -0.129000
|
||||
6 0.123700
|
||||
7 -0.173400
|
||||
8 0.140300
|
||||
9 -0.113400
|
||||
10 0.128800
|
||||
11 -0.173400
|
||||
12 0.140300
|
||||
13 0.051600
|
||||
14 -0.069600
|
||||
15 0.035400
|
||||
16 0.035400
|
||||
17 -0.018200
|
||||
18 -0.069600
|
||||
19 0.035400
|
||||
20 0.035400
|
||||
21 -0.129000
|
||||
22 0.123700
|
||||
23 0.026600
|
||||
24 -0.018200
|
||||
25 -0.129000
|
||||
26 0.123700
|
||||
27 -0.173400
|
||||
28 0.140300
|
||||
29 -0.113400
|
||||
30 0.128800
|
||||
31 -0.173400
|
||||
32 0.140300
|
||||
33 0.051600
|
||||
34 -0.069600
|
||||
35 -0.129000
|
||||
36 0.123700
|
||||
37 0.026600
|
||||
38 -0.018200
|
||||
39 -0.129000
|
||||
40 0.123700
|
||||
41 -0.173400
|
||||
42 0.140300
|
||||
43 -0.113400
|
||||
44 0.128800
|
||||
45 -0.173400
|
||||
46 0.140300
|
||||
47 0.051600
|
||||
48 -0.069600
|
||||
49 0.035400
|
||||
50 0.035400
|
||||
|
||||
Coords
|
||||
|
||||
1 24.391510 0.871570 -1.658940
|
||||
2 25.323530 1.410570 -1.658940
|
||||
3 23.161520 1.581570 -1.658940
|
||||
4 23.161520 3.081570 -1.658940
|
||||
5 21.931530 0.871570 -1.658940
|
||||
6 20.999531 1.410570 -1.658940
|
||||
7 21.931530 -0.548430 -1.658940
|
||||
8 20.999531 -1.087420 -1.658940
|
||||
9 23.161520 -1.258420 -1.658940
|
||||
10 23.161520 -2.335430 -1.658940
|
||||
11 24.391510 -0.548430 -1.658940
|
||||
12 25.323530 -1.087420 -1.658940
|
||||
13 24.027519 3.486570 -1.301940
|
||||
14 21.883520 3.630570 -2.220940
|
||||
15 21.933510 4.372580 -2.319940
|
||||
16 21.240520 2.807570 -2.514940
|
||||
17 28.359209 3.254520 -1.372130
|
||||
18 27.081209 3.803520 -1.934130
|
||||
19 27.131210 4.545520 -2.033130
|
||||
20 26.438219 2.980520 -2.228130
|
||||
21 13.465810 0.682530 -1.658940
|
||||
22 14.397820 1.221530 -1.658940
|
||||
23 12.235820 1.392530 -1.658940
|
||||
24 12.235820 2.892530 -1.658940
|
||||
25 11.005820 0.682530 -1.658940
|
||||
26 10.073820 1.221530 -1.658940
|
||||
27 11.005820 -0.737470 -1.658940
|
||||
28 10.073820 -1.276460 -1.658940
|
||||
29 12.235820 -1.447460 -1.658940
|
||||
30 12.235820 -2.524470 -1.658940
|
||||
31 13.465810 -0.737470 -1.658940
|
||||
32 14.397820 -1.276460 -1.658940
|
||||
33 13.101820 3.297530 -1.301940
|
||||
34 10.957820 3.441530 -2.220940
|
||||
35 18.663521 0.855480 -1.372130
|
||||
36 19.595510 1.394480 -1.372130
|
||||
37 17.433510 1.565480 -1.372130
|
||||
38 17.433510 3.065480 -1.372130
|
||||
39 16.203510 0.855480 -1.372130
|
||||
40 15.271510 1.394480 -1.372130
|
||||
41 16.203510 -0.564520 -1.372130
|
||||
42 15.271510 -1.103520 -1.372130
|
||||
43 17.433510 -1.274520 -1.372130
|
||||
44 17.433510 -2.351520 -1.372130
|
||||
45 18.663521 -0.564520 -1.372130
|
||||
46 19.595510 -1.103520 -1.372130
|
||||
47 18.299509 3.470480 -1.015130
|
||||
48 16.155510 3.614480 -1.934130
|
||||
49 16.205509 4.356480 -2.033130
|
||||
50 15.512510 2.791480 -2.228130
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 2 1 3
|
||||
3 2 1 11
|
||||
4 7 3 4
|
||||
5 2 3 5
|
||||
6 8 13 4
|
||||
7 9 4 14
|
||||
8 9 4 18
|
||||
9 1 5 6
|
||||
10 2 5 7
|
||||
11 1 7 8
|
||||
12 2 7 9
|
||||
13 1 9 10
|
||||
14 2 9 11
|
||||
15 1 11 12
|
||||
16 10 15 14
|
||||
17 10 16 14
|
||||
18 9 17 18
|
||||
19 10 19 18
|
||||
20 10 20 18
|
||||
21 1 21 22
|
||||
22 2 21 23
|
||||
23 2 21 31
|
||||
24 7 23 24
|
||||
25 2 23 25
|
||||
26 8 33 24
|
||||
27 9 24 34
|
||||
28 9 24 48
|
||||
29 1 25 26
|
||||
30 2 25 27
|
||||
31 1 27 28
|
||||
32 2 27 29
|
||||
33 1 29 30
|
||||
34 2 29 31
|
||||
35 1 31 32
|
||||
36 1 35 36
|
||||
37 2 35 37
|
||||
38 2 35 45
|
||||
39 7 37 38
|
||||
40 2 37 39
|
||||
41 8 47 38
|
||||
42 9 38 48
|
||||
43 1 39 40
|
||||
44 2 39 41
|
||||
45 1 41 42
|
||||
46 2 41 43
|
||||
47 1 43 44
|
||||
48 2 43 45
|
||||
49 1 45 46
|
||||
50 10 49 48
|
||||
51 10 50 48
|
||||
|
||||
Angles
|
||||
|
||||
1 1 3 1 2
|
||||
2 1 11 1 2
|
||||
3 2 3 1 11
|
||||
4 9 1 3 4
|
||||
5 2 1 3 5
|
||||
6 9 5 3 4
|
||||
7 10 3 4 13
|
||||
8 11 3 4 14
|
||||
9 11 3 4 18
|
||||
10 12 13 4 14
|
||||
11 12 13 4 18
|
||||
12 13 14 4 18
|
||||
13 1 3 5 6
|
||||
14 2 3 5 7
|
||||
15 1 7 5 6
|
||||
16 1 5 7 8
|
||||
17 2 5 7 9
|
||||
18 1 9 7 8
|
||||
19 1 7 9 10
|
||||
20 2 7 9 11
|
||||
21 1 11 9 10
|
||||
22 2 1 11 9
|
||||
23 1 1 11 12
|
||||
24 1 9 11 12
|
||||
25 14 15 14 4
|
||||
26 14 16 14 4
|
||||
27 15 15 14 16
|
||||
28 16 4 18 17
|
||||
29 14 19 18 4
|
||||
30 14 20 18 4
|
||||
31 14 19 18 17
|
||||
32 14 20 18 17
|
||||
33 15 19 18 20
|
||||
34 1 23 21 22
|
||||
35 1 31 21 22
|
||||
36 2 23 21 31
|
||||
37 9 21 23 24
|
||||
38 2 21 23 25
|
||||
39 9 25 23 24
|
||||
40 10 23 24 33
|
||||
41 11 23 24 34
|
||||
42 11 23 24 48
|
||||
43 12 33 24 34
|
||||
44 12 33 24 48
|
||||
45 13 34 24 48
|
||||
46 1 23 25 26
|
||||
47 2 23 25 27
|
||||
48 1 27 25 26
|
||||
49 1 25 27 28
|
||||
50 2 25 27 29
|
||||
51 1 29 27 28
|
||||
52 1 27 29 30
|
||||
53 2 27 29 31
|
||||
54 1 31 29 30
|
||||
55 2 21 31 29
|
||||
56 1 21 31 32
|
||||
57 1 29 31 32
|
||||
58 1 37 35 36
|
||||
59 1 45 35 36
|
||||
60 2 37 35 45
|
||||
61 9 35 37 38
|
||||
62 2 35 37 39
|
||||
63 9 39 37 38
|
||||
64 10 37 38 47
|
||||
65 11 37 38 48
|
||||
66 12 47 38 48
|
||||
67 1 37 39 40
|
||||
68 2 37 39 41
|
||||
69 1 41 39 40
|
||||
70 1 39 41 42
|
||||
71 2 39 41 43
|
||||
72 1 43 41 42
|
||||
73 1 41 43 44
|
||||
74 2 41 43 45
|
||||
75 1 45 43 44
|
||||
76 2 35 45 43
|
||||
77 1 35 45 46
|
||||
78 1 43 45 46
|
||||
79 16 24 48 38
|
||||
80 14 49 48 24
|
||||
81 14 50 48 24
|
||||
82 14 49 48 38
|
||||
83 14 50 48 38
|
||||
84 15 49 48 50
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 10 2 1 3 4
|
||||
2 2 5 3 1 2
|
||||
3 11 11 1 3 4
|
||||
4 4 11 1 3 5
|
||||
5 2 9 11 1 2
|
||||
6 5 2 1 11 12
|
||||
7 4 3 1 11 9
|
||||
8 2 3 1 11 12
|
||||
9 12 1 3 4 13
|
||||
10 13 1 3 4 14
|
||||
11 13 1 3 4 18
|
||||
12 12 5 3 4 13
|
||||
13 13 5 3 4 14
|
||||
14 13 5 3 4 18
|
||||
15 2 1 3 5 6
|
||||
16 4 1 3 5 7
|
||||
17 10 6 5 3 4
|
||||
18 11 7 5 3 4
|
||||
19 14 3 4 14 15
|
||||
20 14 3 4 14 16
|
||||
21 15 13 4 14 15
|
||||
22 15 13 4 14 16
|
||||
23 16 18 4 14 15
|
||||
24 16 18 4 14 16
|
||||
25 17 3 4 18 17
|
||||
26 14 3 4 18 19
|
||||
27 14 3 4 18 20
|
||||
28 18 13 4 18 17
|
||||
29 15 13 4 18 19
|
||||
30 15 13 4 18 20
|
||||
31 19 14 4 18 17
|
||||
32 16 14 4 18 19
|
||||
33 16 14 4 18 20
|
||||
34 2 3 5 7 8
|
||||
35 4 3 5 7 9
|
||||
36 5 6 5 7 8
|
||||
37 2 9 7 5 6
|
||||
38 2 5 7 9 10
|
||||
39 4 5 7 9 11
|
||||
40 5 8 7 9 10
|
||||
41 2 11 9 7 8
|
||||
42 4 7 9 11 1
|
||||
43 2 7 9 11 12
|
||||
44 2 1 11 9 10
|
||||
45 5 10 9 11 12
|
||||
46 10 22 21 23 24
|
||||
47 2 25 23 21 22
|
||||
48 11 31 21 23 24
|
||||
49 4 31 21 23 25
|
||||
50 2 29 31 21 22
|
||||
51 5 22 21 31 32
|
||||
52 4 23 21 31 29
|
||||
53 2 23 21 31 32
|
||||
54 12 21 23 24 33
|
||||
55 13 21 23 24 34
|
||||
56 13 21 23 24 48
|
||||
57 12 25 23 24 33
|
||||
58 13 25 23 24 34
|
||||
59 13 25 23 24 48
|
||||
60 2 21 23 25 26
|
||||
61 4 21 23 25 27
|
||||
62 10 26 25 23 24
|
||||
63 11 27 25 23 24
|
||||
64 17 23 24 48 38
|
||||
65 14 23 24 48 49
|
||||
66 14 23 24 48 50
|
||||
67 18 33 24 48 38
|
||||
68 15 33 24 48 49
|
||||
69 15 33 24 48 50
|
||||
70 19 34 24 48 38
|
||||
71 16 34 24 48 49
|
||||
72 16 34 24 48 50
|
||||
73 2 23 25 27 28
|
||||
74 4 23 25 27 29
|
||||
75 5 26 25 27 28
|
||||
76 2 29 27 25 26
|
||||
77 2 25 27 29 30
|
||||
78 4 25 27 29 31
|
||||
79 5 28 27 29 30
|
||||
80 2 31 29 27 28
|
||||
81 4 27 29 31 21
|
||||
82 2 27 29 31 32
|
||||
83 2 21 31 29 30
|
||||
84 5 30 29 31 32
|
||||
85 10 36 35 37 38
|
||||
86 2 39 37 35 36
|
||||
87 11 45 35 37 38
|
||||
88 4 45 35 37 39
|
||||
89 2 43 45 35 36
|
||||
90 5 36 35 45 46
|
||||
91 4 37 35 45 43
|
||||
92 2 37 35 45 46
|
||||
93 12 35 37 38 47
|
||||
94 13 35 37 38 48
|
||||
95 12 39 37 38 47
|
||||
96 13 39 37 38 48
|
||||
97 2 35 37 39 40
|
||||
98 4 35 37 39 41
|
||||
99 10 40 39 37 38
|
||||
100 11 41 39 37 38
|
||||
101 17 37 38 48 24
|
||||
102 14 37 38 48 49
|
||||
103 14 37 38 48 50
|
||||
104 18 47 38 48 24
|
||||
105 15 47 38 48 49
|
||||
106 15 47 38 48 50
|
||||
107 2 37 39 41 42
|
||||
108 4 37 39 41 43
|
||||
109 5 40 39 41 42
|
||||
110 2 43 41 39 40
|
||||
111 2 39 41 43 44
|
||||
112 4 39 41 43 45
|
||||
113 5 42 41 43 44
|
||||
114 2 45 43 41 42
|
||||
115 4 41 43 45 35
|
||||
116 2 41 43 45 46
|
||||
117 2 35 45 43 44
|
||||
118 5 44 43 45 46
|
||||
|
||||
Impropers
|
||||
|
||||
1 1 3 1 11 2
|
||||
2 5 1 3 5 4
|
||||
3 1 3 5 7 6
|
||||
4 1 5 7 9 8
|
||||
5 1 7 9 11 10
|
||||
6 1 1 11 9 12
|
||||
7 6 15 14 16 4
|
||||
8 1 23 21 31 22
|
||||
9 5 21 23 25 24
|
||||
10 1 23 25 27 26
|
||||
11 1 25 27 29 28
|
||||
12 1 27 29 31 30
|
||||
13 1 21 31 29 32
|
||||
14 1 37 35 45 36
|
||||
15 5 35 37 39 38
|
||||
16 7 37 38 47 48
|
||||
17 1 37 39 41 40
|
||||
18 1 39 41 43 42
|
||||
19 1 41 43 45 44
|
||||
20 1 35 45 43 46
|
||||
21 1 3 4 13 14
|
||||
22 1 3 4 13 18
|
||||
23 1 3 4 14 18
|
||||
24 1 13 4 14 18
|
||||
25 1 19 18 17 4
|
||||
26 1 20 18 17 4
|
||||
27 1 19 18 20 4
|
||||
28 1 19 18 20 17
|
||||
29 1 23 24 33 34
|
||||
30 1 23 24 33 48
|
||||
31 1 23 24 34 48
|
||||
32 1 33 24 34 48
|
||||
33 1 49 48 38 24
|
||||
34 1 50 48 38 24
|
||||
35 1 49 48 50 24
|
||||
36 1 49 48 50 38
|
||||
@ -0,0 +1,62 @@
|
||||
this is a map file
|
||||
|
||||
1 edgeIDs
|
||||
46 equivalences
|
||||
|
||||
EdgeIDs
|
||||
|
||||
30
|
||||
|
||||
BondingIDs
|
||||
|
||||
14
|
||||
34
|
||||
|
||||
Equivalences
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 6
|
||||
7 7
|
||||
8 8
|
||||
9 9
|
||||
10 10
|
||||
11 11
|
||||
12 12
|
||||
13 13
|
||||
14 14
|
||||
15 15
|
||||
16 16
|
||||
17 17
|
||||
18 18
|
||||
19 19
|
||||
20 20
|
||||
21 21
|
||||
22 22
|
||||
23 23
|
||||
24 24
|
||||
25 25
|
||||
26 26
|
||||
27 27
|
||||
28 28
|
||||
29 29
|
||||
30 30
|
||||
31 31
|
||||
32 32
|
||||
33 33
|
||||
34 34
|
||||
35 35
|
||||
36 36
|
||||
37 37
|
||||
38 38
|
||||
39 39
|
||||
40 40
|
||||
41 41
|
||||
42 42
|
||||
43 43
|
||||
44 44
|
||||
45 45
|
||||
46 46
|
||||
@ -0,0 +1,451 @@
|
||||
chain_plus_styrene_reacted
|
||||
|
||||
46 atoms
|
||||
48 bonds
|
||||
81 angles
|
||||
121 dihedrals
|
||||
35 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 5
|
||||
5 1
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 1
|
||||
10 2
|
||||
11 1
|
||||
12 2
|
||||
13 2
|
||||
14 6
|
||||
15 2
|
||||
16 2
|
||||
17 1
|
||||
18 2
|
||||
19 1
|
||||
20 5
|
||||
21 1
|
||||
22 2
|
||||
23 1
|
||||
24 2
|
||||
25 1
|
||||
26 2
|
||||
27 1
|
||||
28 2
|
||||
29 2
|
||||
30 6
|
||||
31 1
|
||||
32 2
|
||||
33 1
|
||||
34 5
|
||||
35 1
|
||||
36 2
|
||||
37 1
|
||||
38 2
|
||||
39 1
|
||||
40 2
|
||||
41 1
|
||||
42 2
|
||||
43 2
|
||||
44 6
|
||||
45 2
|
||||
46 2
|
||||
|
||||
Charges
|
||||
|
||||
1 -0.129000
|
||||
2 0.123700
|
||||
3 0.026600
|
||||
4 -0.018200
|
||||
5 -0.129000
|
||||
6 0.123700
|
||||
7 -0.173400
|
||||
8 0.140300
|
||||
9 -0.113400
|
||||
10 0.128800
|
||||
11 -0.173400
|
||||
12 0.140300
|
||||
13 0.051600
|
||||
14 -0.069600
|
||||
15 0.035400
|
||||
16 0.035400
|
||||
17 -0.129000
|
||||
18 0.123700
|
||||
19 0.026600
|
||||
20 -0.018200
|
||||
21 -0.129000
|
||||
22 0.123700
|
||||
23 -0.173400
|
||||
24 0.140300
|
||||
25 -0.113400
|
||||
26 0.128800
|
||||
27 -0.173400
|
||||
28 0.140300
|
||||
29 0.051600
|
||||
30 -0.069600
|
||||
31 -0.129000
|
||||
32 0.123700
|
||||
33 0.026600
|
||||
34 -0.018200
|
||||
35 -0.129000
|
||||
36 0.123700
|
||||
37 -0.173400
|
||||
38 0.140300
|
||||
39 -0.113400
|
||||
40 0.128800
|
||||
41 -0.173400
|
||||
42 0.140300
|
||||
43 0.051600
|
||||
44 -0.069600
|
||||
45 0.035400
|
||||
46 0.035400
|
||||
|
||||
Coords
|
||||
|
||||
1 24.130699 1.043900 -1.309300
|
||||
2 25.062700 1.582900 -1.309300
|
||||
3 22.900700 1.753900 -1.309300
|
||||
4 22.900700 3.253900 -1.309300
|
||||
5 21.670700 1.043900 -1.309300
|
||||
6 20.738701 1.582900 -1.309300
|
||||
7 21.670700 -0.376100 -1.309300
|
||||
8 20.738701 -0.915100 -1.309300
|
||||
9 22.900700 -1.086100 -1.309300
|
||||
10 22.900700 -2.163100 -1.309300
|
||||
11 24.130699 -0.376100 -1.309300
|
||||
12 25.062700 -0.915100 -1.309300
|
||||
13 23.766701 3.658900 -0.952300
|
||||
14 21.622700 3.802900 -1.871300
|
||||
15 21.672701 4.544900 -1.970300
|
||||
16 20.979700 2.979900 -2.165300
|
||||
17 13.465800 0.682500 -1.658900
|
||||
18 14.397800 1.221500 -1.658900
|
||||
19 12.235800 1.392500 -1.658900
|
||||
20 12.235800 2.892500 -1.658900
|
||||
21 11.005800 0.682500 -1.658900
|
||||
22 10.073800 1.221500 -1.658900
|
||||
23 11.005800 -0.737500 -1.658900
|
||||
24 10.073800 -1.276500 -1.658900
|
||||
25 12.235800 -1.447500 -1.658900
|
||||
26 12.235800 -2.524500 -1.658900
|
||||
27 13.465800 -0.737500 -1.658900
|
||||
28 14.397800 -1.276500 -1.658900
|
||||
29 13.101800 3.297500 -1.301900
|
||||
30 10.957800 3.441500 -2.220900
|
||||
31 18.663500 0.855500 -1.372100
|
||||
32 19.595501 1.394500 -1.372100
|
||||
33 17.433500 1.565500 -1.372100
|
||||
34 17.433500 3.065500 -1.372100
|
||||
35 16.203501 0.855500 -1.372100
|
||||
36 15.271500 1.394500 -1.372100
|
||||
37 16.203501 -0.564500 -1.372100
|
||||
38 15.271500 -1.103500 -1.372100
|
||||
39 17.433500 -1.274500 -1.372100
|
||||
40 17.433500 -2.351500 -1.372100
|
||||
41 18.663500 -0.564500 -1.372100
|
||||
42 19.595501 -1.103500 -1.372100
|
||||
43 18.299500 3.470500 -1.015100
|
||||
44 16.155500 3.614500 -1.934100
|
||||
45 16.205500 4.356500 -2.033100
|
||||
46 15.512500 2.791500 -2.228100
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 2 1 3
|
||||
3 2 1 11
|
||||
4 11 3 4
|
||||
5 2 3 5
|
||||
6 12 13 4
|
||||
7 13 4 14
|
||||
8 1 5 6
|
||||
9 2 5 7
|
||||
10 1 7 8
|
||||
11 2 7 9
|
||||
12 1 9 10
|
||||
13 2 9 11
|
||||
14 1 11 12
|
||||
15 10 15 14
|
||||
16 10 16 14
|
||||
17 9 14 34
|
||||
18 1 17 18
|
||||
19 2 17 19
|
||||
20 2 17 27
|
||||
21 7 19 20
|
||||
22 2 19 21
|
||||
23 8 29 20
|
||||
24 9 30 20
|
||||
25 9 44 20
|
||||
26 1 21 22
|
||||
27 2 21 23
|
||||
28 1 23 24
|
||||
29 2 23 25
|
||||
30 1 25 26
|
||||
31 2 25 27
|
||||
32 1 27 28
|
||||
33 1 31 32
|
||||
34 2 31 33
|
||||
35 2 31 41
|
||||
36 7 33 34
|
||||
37 2 33 35
|
||||
38 8 43 34
|
||||
39 9 44 34
|
||||
40 1 35 36
|
||||
41 2 35 37
|
||||
42 1 37 38
|
||||
43 2 37 39
|
||||
44 1 39 40
|
||||
45 2 39 41
|
||||
46 1 41 42
|
||||
47 10 45 44
|
||||
48 10 46 44
|
||||
|
||||
Angles
|
||||
|
||||
1 1 3 1 2
|
||||
2 1 11 1 2
|
||||
3 2 3 1 11
|
||||
4 17 1 3 4
|
||||
5 2 1 3 5
|
||||
6 17 5 3 4
|
||||
7 18 3 4 13
|
||||
8 19 3 4 14
|
||||
9 20 13 4 14
|
||||
10 1 3 5 6
|
||||
11 2 3 5 7
|
||||
12 1 7 5 6
|
||||
13 1 5 7 8
|
||||
14 2 5 7 9
|
||||
15 1 9 7 8
|
||||
16 1 7 9 10
|
||||
17 2 7 9 11
|
||||
18 1 11 9 10
|
||||
19 2 1 11 9
|
||||
20 1 1 11 12
|
||||
21 1 9 11 12
|
||||
22 21 15 14 4
|
||||
23 21 16 14 4
|
||||
24 22 4 14 34
|
||||
25 15 15 14 16
|
||||
26 14 15 14 34
|
||||
27 14 16 14 34
|
||||
28 1 19 17 18
|
||||
29 1 27 17 18
|
||||
30 2 19 17 27
|
||||
31 9 17 19 20
|
||||
32 2 17 19 21
|
||||
33 9 21 19 20
|
||||
34 10 19 20 29
|
||||
35 11 19 20 30
|
||||
36 11 19 20 44
|
||||
37 12 29 20 30
|
||||
38 12 29 20 44
|
||||
39 13 30 20 44
|
||||
40 1 19 21 22
|
||||
41 2 19 21 23
|
||||
42 1 23 21 22
|
||||
43 1 21 23 24
|
||||
44 2 21 23 25
|
||||
45 1 25 23 24
|
||||
46 1 23 25 26
|
||||
47 2 23 25 27
|
||||
48 1 27 25 26
|
||||
49 2 17 27 25
|
||||
50 1 17 27 28
|
||||
51 1 25 27 28
|
||||
52 1 33 31 32
|
||||
53 1 41 31 32
|
||||
54 2 33 31 41
|
||||
55 9 31 33 34
|
||||
56 2 31 33 35
|
||||
57 9 35 33 34
|
||||
58 11 33 34 14
|
||||
59 12 43 34 14
|
||||
60 13 14 34 44
|
||||
61 10 33 34 43
|
||||
62 11 33 34 44
|
||||
63 12 43 34 44
|
||||
64 1 33 35 36
|
||||
65 2 33 35 37
|
||||
66 1 37 35 36
|
||||
67 1 35 37 38
|
||||
68 2 35 37 39
|
||||
69 1 39 37 38
|
||||
70 1 37 39 40
|
||||
71 2 37 39 41
|
||||
72 1 41 39 40
|
||||
73 2 31 41 39
|
||||
74 1 31 41 42
|
||||
75 1 39 41 42
|
||||
76 16 20 44 34
|
||||
77 14 45 44 20
|
||||
78 14 46 44 20
|
||||
79 14 45 44 34
|
||||
80 14 46 44 34
|
||||
81 15 45 44 46
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 20 2 1 3 4
|
||||
2 2 5 3 1 2
|
||||
3 21 11 1 3 4
|
||||
4 4 11 1 3 5
|
||||
5 2 9 11 1 2
|
||||
6 5 2 1 11 12
|
||||
7 4 3 1 11 9
|
||||
8 2 3 1 11 12
|
||||
9 22 1 3 4 13
|
||||
10 23 1 3 4 14
|
||||
11 22 5 3 4 13
|
||||
12 23 5 3 4 14
|
||||
13 2 1 3 5 6
|
||||
14 4 1 3 5 7
|
||||
15 20 6 5 3 4
|
||||
16 21 7 5 3 4
|
||||
17 24 3 4 14 15
|
||||
18 24 3 4 14 16
|
||||
19 25 3 4 14 34
|
||||
20 26 13 4 14 15
|
||||
21 26 13 4 14 16
|
||||
22 27 13 4 14 34
|
||||
23 2 3 5 7 8
|
||||
24 4 3 5 7 9
|
||||
25 5 6 5 7 8
|
||||
26 2 9 7 5 6
|
||||
27 2 5 7 9 10
|
||||
28 4 5 7 9 11
|
||||
29 5 8 7 9 10
|
||||
30 2 11 9 7 8
|
||||
31 4 7 9 11 1
|
||||
32 2 7 9 11 12
|
||||
33 2 1 11 9 10
|
||||
34 5 10 9 11 12
|
||||
35 28 4 14 34 33
|
||||
36 29 4 14 34 43
|
||||
37 30 4 14 34 44
|
||||
38 31 15 14 34 33
|
||||
39 32 15 14 34 43
|
||||
40 33 15 14 34 44
|
||||
41 31 16 14 34 33
|
||||
42 32 16 14 34 43
|
||||
43 33 16 14 34 44
|
||||
44 10 18 17 19 20
|
||||
45 2 21 19 17 18
|
||||
46 11 27 17 19 20
|
||||
47 4 27 17 19 21
|
||||
48 2 25 27 17 18
|
||||
49 5 18 17 27 28
|
||||
50 4 19 17 27 25
|
||||
51 2 19 17 27 28
|
||||
52 12 17 19 20 29
|
||||
53 13 17 19 20 30
|
||||
54 13 17 19 20 44
|
||||
55 12 21 19 20 29
|
||||
56 13 21 19 20 30
|
||||
57 13 21 19 20 44
|
||||
58 2 17 19 21 22
|
||||
59 4 17 19 21 23
|
||||
60 10 22 21 19 20
|
||||
61 11 23 21 19 20
|
||||
62 34 34 44 20 19
|
||||
63 31 45 44 20 19
|
||||
64 31 46 44 20 19
|
||||
65 35 34 44 20 29
|
||||
66 32 45 44 20 29
|
||||
67 32 46 44 20 29
|
||||
68 36 34 44 20 30
|
||||
69 33 45 44 20 30
|
||||
70 33 46 44 20 30
|
||||
71 2 19 21 23 24
|
||||
72 4 19 21 23 25
|
||||
73 5 22 21 23 24
|
||||
74 2 25 23 21 22
|
||||
75 2 21 23 25 26
|
||||
76 4 21 23 25 27
|
||||
77 5 24 23 25 26
|
||||
78 2 27 25 23 24
|
||||
79 4 23 25 27 17
|
||||
80 2 23 25 27 28
|
||||
81 2 17 27 25 26
|
||||
82 5 26 25 27 28
|
||||
83 10 32 31 33 34
|
||||
84 2 35 33 31 32
|
||||
85 11 41 31 33 34
|
||||
86 4 41 31 33 35
|
||||
87 2 39 41 31 32
|
||||
88 5 32 31 41 42
|
||||
89 4 33 31 41 39
|
||||
90 2 33 31 41 42
|
||||
91 13 31 33 34 14
|
||||
92 12 31 33 34 43
|
||||
93 13 31 33 34 44
|
||||
94 13 35 33 34 14
|
||||
95 12 35 33 34 43
|
||||
96 13 35 33 34 44
|
||||
97 2 31 33 35 36
|
||||
98 4 31 33 35 37
|
||||
99 10 36 35 33 34
|
||||
100 11 37 35 33 34
|
||||
101 36 20 44 34 14
|
||||
102 33 45 44 34 14
|
||||
103 33 46 44 34 14
|
||||
104 34 20 44 34 33
|
||||
105 31 45 44 34 33
|
||||
106 31 46 44 34 33
|
||||
107 35 20 44 34 43
|
||||
108 32 45 44 34 43
|
||||
109 32 46 44 34 43
|
||||
110 2 33 35 37 38
|
||||
111 4 33 35 37 39
|
||||
112 5 36 35 37 38
|
||||
113 2 39 37 35 36
|
||||
114 2 35 37 39 40
|
||||
115 4 35 37 39 41
|
||||
116 5 38 37 39 40
|
||||
117 2 41 39 37 38
|
||||
118 4 37 39 41 31
|
||||
119 2 37 39 41 42
|
||||
120 2 31 41 39 40
|
||||
121 5 40 39 41 42
|
||||
|
||||
Impropers
|
||||
|
||||
1 1 3 1 11 2
|
||||
2 8 1 3 5 4
|
||||
3 9 3 4 13 14
|
||||
4 1 3 5 7 6
|
||||
5 1 5 7 9 8
|
||||
6 1 7 9 11 10
|
||||
7 1 1 11 9 12
|
||||
8 1 19 17 27 18
|
||||
9 5 17 19 21 20
|
||||
10 1 19 21 23 22
|
||||
11 1 21 23 25 24
|
||||
12 1 23 25 27 26
|
||||
13 1 17 27 25 28
|
||||
14 1 33 31 41 32
|
||||
15 5 31 33 35 34
|
||||
16 1 33 35 37 36
|
||||
17 1 35 37 39 38
|
||||
18 1 37 39 41 40
|
||||
19 1 31 41 39 42
|
||||
20 1 15 14 16 4
|
||||
21 1 15 14 4 34
|
||||
22 1 16 14 4 34
|
||||
23 1 15 14 16 34
|
||||
24 1 19 20 29 30
|
||||
25 1 19 20 29 44
|
||||
26 1 19 20 30 44
|
||||
27 1 29 20 30 44
|
||||
28 1 33 34 43 14
|
||||
29 1 33 34 14 44
|
||||
30 1 43 34 14 44
|
||||
31 1 33 34 43 44
|
||||
32 1 45 44 34 20
|
||||
33 1 46 44 34 20
|
||||
34 1 45 44 46 20
|
||||
35 1 45 44 46 34
|
||||
@ -0,0 +1,422 @@
|
||||
chain_plus_styrene_unreacted
|
||||
|
||||
46 atoms
|
||||
47 bonds
|
||||
75 angles
|
||||
105 dihedrals
|
||||
29 impropers
|
||||
|
||||
Types
|
||||
|
||||
1 1
|
||||
2 2
|
||||
3 1
|
||||
4 3
|
||||
5 1
|
||||
6 2
|
||||
7 1
|
||||
8 2
|
||||
9 1
|
||||
10 2
|
||||
11 1
|
||||
12 2
|
||||
13 2
|
||||
14 4
|
||||
15 2
|
||||
16 2
|
||||
17 1
|
||||
18 2
|
||||
19 1
|
||||
20 5
|
||||
21 1
|
||||
22 2
|
||||
23 1
|
||||
24 2
|
||||
25 1
|
||||
26 2
|
||||
27 1
|
||||
28 2
|
||||
29 2
|
||||
30 6
|
||||
31 1
|
||||
32 2
|
||||
33 1
|
||||
34 5
|
||||
35 1
|
||||
36 2
|
||||
37 1
|
||||
38 2
|
||||
39 1
|
||||
40 2
|
||||
41 1
|
||||
42 2
|
||||
43 2
|
||||
44 6
|
||||
45 2
|
||||
46 2
|
||||
|
||||
Charges
|
||||
|
||||
1 -0.129000
|
||||
2 0.123700
|
||||
3 0.026600
|
||||
4 -0.018200
|
||||
5 -0.129000
|
||||
6 0.123700
|
||||
7 -0.173400
|
||||
8 0.140300
|
||||
9 -0.113400
|
||||
10 0.128800
|
||||
11 -0.173400
|
||||
12 0.140300
|
||||
13 0.051600
|
||||
14 -0.069600
|
||||
15 0.035400
|
||||
16 0.035400
|
||||
17 -0.129000
|
||||
18 0.123700
|
||||
19 0.026600
|
||||
20 -0.018200
|
||||
21 -0.129000
|
||||
22 0.123700
|
||||
23 -0.173400
|
||||
24 0.140300
|
||||
25 -0.113400
|
||||
26 0.128800
|
||||
27 -0.173400
|
||||
28 0.140300
|
||||
29 0.051600
|
||||
30 -0.069600
|
||||
31 -0.129000
|
||||
32 0.123700
|
||||
33 0.026600
|
||||
34 -0.018200
|
||||
35 -0.129000
|
||||
36 0.123700
|
||||
37 -0.173400
|
||||
38 0.140300
|
||||
39 -0.113400
|
||||
40 0.128800
|
||||
41 -0.173400
|
||||
42 0.140300
|
||||
43 0.051600
|
||||
44 -0.069600
|
||||
45 0.035400
|
||||
46 0.035400
|
||||
|
||||
Coords
|
||||
|
||||
1 24.130699 1.043900 -1.309300
|
||||
2 25.062700 1.582900 -1.309300
|
||||
3 22.900700 1.753900 -1.309300
|
||||
4 22.900700 3.253900 -1.309300
|
||||
5 21.670700 1.043900 -1.309300
|
||||
6 20.738701 1.582900 -1.309300
|
||||
7 21.670700 -0.376100 -1.309300
|
||||
8 20.738701 -0.915100 -1.309300
|
||||
9 22.900700 -1.086100 -1.309300
|
||||
10 22.900700 -2.163100 -1.309300
|
||||
11 24.130699 -0.376100 -1.309300
|
||||
12 25.062700 -0.915100 -1.309300
|
||||
13 23.766701 3.658900 -0.952300
|
||||
14 21.622700 3.802900 -1.871300
|
||||
15 21.672701 4.544900 -1.970300
|
||||
16 20.979700 2.979900 -2.165300
|
||||
17 13.465800 0.682500 -1.658900
|
||||
18 14.397800 1.221500 -1.658900
|
||||
19 12.235800 1.392500 -1.658900
|
||||
20 12.235800 2.892500 -1.658900
|
||||
21 11.005800 0.682500 -1.658900
|
||||
22 10.073800 1.221500 -1.658900
|
||||
23 11.005800 -0.737500 -1.658900
|
||||
24 10.073800 -1.276500 -1.658900
|
||||
25 12.235800 -1.447500 -1.658900
|
||||
26 12.235800 -2.524500 -1.658900
|
||||
27 13.465800 -0.737500 -1.658900
|
||||
28 14.397800 -1.276500 -1.658900
|
||||
29 13.101800 3.297500 -1.301900
|
||||
30 10.957800 3.441500 -2.220900
|
||||
31 18.663500 0.855500 -1.372100
|
||||
32 19.595501 1.394500 -1.372100
|
||||
33 17.433500 1.565500 -1.372100
|
||||
34 17.433500 3.065500 -1.372100
|
||||
35 16.203501 0.855500 -1.372100
|
||||
36 15.271500 1.394500 -1.372100
|
||||
37 16.203501 -0.564500 -1.372100
|
||||
38 15.271500 -1.103500 -1.372100
|
||||
39 17.433500 -1.274500 -1.372100
|
||||
40 17.433500 -2.351500 -1.372100
|
||||
41 18.663500 -0.564500 -1.372100
|
||||
42 19.595501 -1.103500 -1.372100
|
||||
43 18.299500 3.470500 -1.015100
|
||||
44 16.155500 3.614500 -1.934100
|
||||
45 16.205500 4.356500 -2.033100
|
||||
46 15.512500 2.791500 -2.228100
|
||||
|
||||
Bonds
|
||||
|
||||
1 1 1 2
|
||||
2 2 1 3
|
||||
3 2 1 11
|
||||
4 3 3 4
|
||||
5 2 3 5
|
||||
6 4 13 4
|
||||
7 5 4 14
|
||||
8 1 5 6
|
||||
9 2 5 7
|
||||
10 1 7 8
|
||||
11 2 7 9
|
||||
12 1 9 10
|
||||
13 2 9 11
|
||||
14 1 11 12
|
||||
15 6 15 14
|
||||
16 6 16 14
|
||||
17 1 17 18
|
||||
18 2 17 19
|
||||
19 2 17 27
|
||||
20 7 19 20
|
||||
21 2 19 21
|
||||
22 8 29 20
|
||||
23 9 20 30
|
||||
24 9 20 44
|
||||
25 1 21 22
|
||||
26 2 21 23
|
||||
27 1 23 24
|
||||
28 2 23 25
|
||||
29 1 25 26
|
||||
30 2 25 27
|
||||
31 1 27 28
|
||||
32 1 31 32
|
||||
33 2 31 33
|
||||
34 2 31 41
|
||||
35 7 33 34
|
||||
36 2 33 35
|
||||
37 8 43 34
|
||||
38 9 34 44
|
||||
39 1 35 36
|
||||
40 2 35 37
|
||||
41 1 37 38
|
||||
42 2 37 39
|
||||
43 1 39 40
|
||||
44 2 39 41
|
||||
45 1 41 42
|
||||
46 10 45 44
|
||||
47 10 46 44
|
||||
|
||||
Angles
|
||||
|
||||
1 1 3 1 2
|
||||
2 1 11 1 2
|
||||
3 2 3 1 11
|
||||
4 3 1 3 4
|
||||
5 2 1 3 5
|
||||
6 3 5 3 4
|
||||
7 4 3 4 13
|
||||
8 5 3 4 14
|
||||
9 6 13 4 14
|
||||
10 1 3 5 6
|
||||
11 2 3 5 7
|
||||
12 1 7 5 6
|
||||
13 1 5 7 8
|
||||
14 2 5 7 9
|
||||
15 1 9 7 8
|
||||
16 1 7 9 10
|
||||
17 2 7 9 11
|
||||
18 1 11 9 10
|
||||
19 2 1 11 9
|
||||
20 1 1 11 12
|
||||
21 1 9 11 12
|
||||
22 7 15 14 4
|
||||
23 7 16 14 4
|
||||
24 8 15 14 16
|
||||
25 1 19 17 18
|
||||
26 1 27 17 18
|
||||
27 2 19 17 27
|
||||
28 9 17 19 20
|
||||
29 2 17 19 21
|
||||
30 9 21 19 20
|
||||
31 10 19 20 29
|
||||
32 11 19 20 30
|
||||
33 11 19 20 44
|
||||
34 12 29 20 30
|
||||
35 12 29 20 44
|
||||
36 13 30 20 44
|
||||
37 1 19 21 22
|
||||
38 2 19 21 23
|
||||
39 1 23 21 22
|
||||
40 1 21 23 24
|
||||
41 2 21 23 25
|
||||
42 1 25 23 24
|
||||
43 1 23 25 26
|
||||
44 2 23 25 27
|
||||
45 1 27 25 26
|
||||
46 2 17 27 25
|
||||
47 1 17 27 28
|
||||
48 1 25 27 28
|
||||
49 1 33 31 32
|
||||
50 1 41 31 32
|
||||
51 2 33 31 41
|
||||
52 9 31 33 34
|
||||
53 2 31 33 35
|
||||
54 9 35 33 34
|
||||
55 10 33 34 43
|
||||
56 11 33 34 44
|
||||
57 12 43 34 44
|
||||
58 1 33 35 36
|
||||
59 2 33 35 37
|
||||
60 1 37 35 36
|
||||
61 1 35 37 38
|
||||
62 2 35 37 39
|
||||
63 1 39 37 38
|
||||
64 1 37 39 40
|
||||
65 2 37 39 41
|
||||
66 1 41 39 40
|
||||
67 2 31 41 39
|
||||
68 1 31 41 42
|
||||
69 1 39 41 42
|
||||
70 16 20 44 34
|
||||
71 14 45 44 20
|
||||
72 14 46 44 20
|
||||
73 14 45 44 34
|
||||
74 14 46 44 34
|
||||
75 15 45 44 46
|
||||
|
||||
Dihedrals
|
||||
|
||||
1 1 2 1 3 4
|
||||
2 2 5 3 1 2
|
||||
3 3 11 1 3 4
|
||||
4 4 11 1 3 5
|
||||
5 2 9 11 1 2
|
||||
6 5 2 1 11 12
|
||||
7 4 3 1 11 9
|
||||
8 2 3 1 11 12
|
||||
9 6 1 3 4 13
|
||||
10 7 1 3 4 14
|
||||
11 6 5 3 4 13
|
||||
12 7 5 3 4 14
|
||||
13 2 1 3 5 6
|
||||
14 4 1 3 5 7
|
||||
15 1 6 5 3 4
|
||||
16 3 7 5 3 4
|
||||
17 8 3 4 14 15
|
||||
18 8 3 4 14 16
|
||||
19 9 13 4 14 15
|
||||
20 9 13 4 14 16
|
||||
21 2 3 5 7 8
|
||||
22 4 3 5 7 9
|
||||
23 5 6 5 7 8
|
||||
24 2 9 7 5 6
|
||||
25 2 5 7 9 10
|
||||
26 4 5 7 9 11
|
||||
27 5 8 7 9 10
|
||||
28 2 11 9 7 8
|
||||
29 4 7 9 11 1
|
||||
30 2 7 9 11 12
|
||||
31 2 1 11 9 10
|
||||
32 5 10 9 11 12
|
||||
33 10 18 17 19 20
|
||||
34 2 21 19 17 18
|
||||
35 11 27 17 19 20
|
||||
36 4 27 17 19 21
|
||||
37 2 25 27 17 18
|
||||
38 5 18 17 27 28
|
||||
39 4 19 17 27 25
|
||||
40 2 19 17 27 28
|
||||
41 12 17 19 20 29
|
||||
42 13 17 19 20 30
|
||||
43 13 17 19 20 44
|
||||
44 12 21 19 20 29
|
||||
45 13 21 19 20 30
|
||||
46 13 21 19 20 44
|
||||
47 2 17 19 21 22
|
||||
48 4 17 19 21 23
|
||||
49 10 22 21 19 20
|
||||
50 11 23 21 19 20
|
||||
51 17 19 20 44 34
|
||||
52 14 19 20 44 45
|
||||
53 14 19 20 44 46
|
||||
54 18 29 20 44 34
|
||||
55 15 29 20 44 45
|
||||
56 15 29 20 44 46
|
||||
57 19 30 20 44 34
|
||||
58 16 30 20 44 45
|
||||
59 16 30 20 44 46
|
||||
60 2 19 21 23 24
|
||||
61 4 19 21 23 25
|
||||
62 5 22 21 23 24
|
||||
63 2 25 23 21 22
|
||||
64 2 21 23 25 26
|
||||
65 4 21 23 25 27
|
||||
66 5 24 23 25 26
|
||||
67 2 27 25 23 24
|
||||
68 4 23 25 27 17
|
||||
69 2 23 25 27 28
|
||||
70 2 17 27 25 26
|
||||
71 5 26 25 27 28
|
||||
72 10 32 31 33 34
|
||||
73 2 35 33 31 32
|
||||
74 11 41 31 33 34
|
||||
75 4 41 31 33 35
|
||||
76 2 39 41 31 32
|
||||
77 5 32 31 41 42
|
||||
78 4 33 31 41 39
|
||||
79 2 33 31 41 42
|
||||
80 12 31 33 34 43
|
||||
81 13 31 33 34 44
|
||||
82 12 35 33 34 43
|
||||
83 13 35 33 34 44
|
||||
84 2 31 33 35 36
|
||||
85 4 31 33 35 37
|
||||
86 10 36 35 33 34
|
||||
87 11 37 35 33 34
|
||||
88 17 33 34 44 20
|
||||
89 14 33 34 44 45
|
||||
90 14 33 34 44 46
|
||||
91 18 43 34 44 20
|
||||
92 15 43 34 44 45
|
||||
93 15 43 34 44 46
|
||||
94 2 33 35 37 38
|
||||
95 4 33 35 37 39
|
||||
96 5 36 35 37 38
|
||||
97 2 39 37 35 36
|
||||
98 2 35 37 39 40
|
||||
99 4 35 37 39 41
|
||||
100 5 38 37 39 40
|
||||
101 2 41 39 37 38
|
||||
102 4 37 39 41 31
|
||||
103 2 37 39 41 42
|
||||
104 2 31 41 39 40
|
||||
105 5 40 39 41 42
|
||||
|
||||
Impropers
|
||||
|
||||
1 1 3 1 11 2
|
||||
2 2 1 3 5 4
|
||||
3 3 3 4 13 14
|
||||
4 1 3 5 7 6
|
||||
5 1 5 7 9 8
|
||||
6 1 7 9 11 10
|
||||
7 1 1 11 9 12
|
||||
8 4 15 14 16 4
|
||||
9 1 19 17 27 18
|
||||
10 5 17 19 21 20
|
||||
11 1 19 21 23 22
|
||||
12 1 21 23 25 24
|
||||
13 1 23 25 27 26
|
||||
14 1 17 27 25 28
|
||||
15 1 33 31 41 32
|
||||
16 5 31 33 35 34
|
||||
17 7 33 34 43 44
|
||||
18 1 33 35 37 36
|
||||
19 1 35 37 39 38
|
||||
20 1 37 39 41 40
|
||||
21 1 31 41 39 42
|
||||
22 1 19 20 29 30
|
||||
23 1 19 20 29 44
|
||||
24 1 19 20 30 44
|
||||
25 1 29 20 30 44
|
||||
26 1 45 44 34 20
|
||||
27 1 46 44 34 20
|
||||
28 1 45 44 46 20
|
||||
29 1 45 44 46 34
|
||||
@ -0,0 +1,56 @@
|
||||
# 20 styrene molecules
|
||||
# three reactions defined
|
||||
|
||||
units real
|
||||
|
||||
boundary p p p
|
||||
|
||||
atom_style full
|
||||
|
||||
kspace_style pppm 1.0e-4
|
||||
|
||||
pair_style lj/class2/coul/long 8.5
|
||||
|
||||
angle_style class2
|
||||
|
||||
bond_style class2
|
||||
|
||||
dihedral_style class2
|
||||
|
||||
improper_style class2
|
||||
|
||||
variable T equal 530
|
||||
|
||||
read_data tiny_polystyrene.data &
|
||||
extra/bond/per/atom 5 &
|
||||
extra/angle/per/atom 15 &
|
||||
extra/dihedral/per/atom 15 &
|
||||
extra/improper/per/atom 25 &
|
||||
extra/special/per/atom 25
|
||||
|
||||
molecule mol1 2styrene_unreacted.data_template
|
||||
molecule mol2 2styrene_reacted.data_template
|
||||
molecule mol3 chain_plus_styrene_unreacted.data_template
|
||||
molecule mol4 chain_plus_styrene_reacted.data_template
|
||||
molecule mol5 chain_chain_unreacted.data_template
|
||||
molecule mol6 chain_chain_reacted.data_template
|
||||
|
||||
thermo 100
|
||||
|
||||
# dump 1 all xyz 5 test_vis.xyz
|
||||
|
||||
fix rxn1 all bond/react stabilization yes statted_grp .03 &
|
||||
react rxn1 all 1 0 3.0 mol1 mol2 2styrene_map stabilize_steps 100 &
|
||||
react rxn2 all 1 0 3.0 mol3 mol4 chain_plus_styrene_map stabilize_steps 100 &
|
||||
react rxn3 all 1 0 5.0 mol5 mol6 chain_chain_map stabilize_steps 100
|
||||
|
||||
fix 1 statted_grp_REACT nvt temp $T $T 100
|
||||
|
||||
fix 4 bond_react_MASTER_group temp/rescale 1 $T $T 1 1
|
||||
|
||||
thermo_style custom step temp press density f_rxn1[1] f_rxn1[2] f_rxn1[3]
|
||||
|
||||
run 10000
|
||||
|
||||
# write_restart restart_longrun nofix
|
||||
# write_data restart_longrun.data
|
||||
@ -0,0 +1,245 @@
|
||||
LAMMPS (20 Nov 2019)
|
||||
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
This LAMMPS executable was compiled using C++98 compatibility.
|
||||
Please report the compiler info below at https://github.com/lammps/lammps/issues/1659
|
||||
GNU C++ 4.8.5
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
|
||||
Reading data file ...
|
||||
orthogonal box = (1.74267 1.74267 1.74267) to (18.2573 18.2573 18.2573)
|
||||
1 by 1 by 1 MPI processor grid
|
||||
reading atoms ...
|
||||
320 atoms
|
||||
reading velocities ...
|
||||
320 velocities
|
||||
scanning bonds ...
|
||||
8 = max bonds/atom
|
||||
scanning angles ...
|
||||
18 = max angles/atom
|
||||
scanning dihedrals ...
|
||||
22 = max dihedrals/atom
|
||||
scanning impropers ...
|
||||
26 = max impropers/atom
|
||||
reading bonds ...
|
||||
320 bonds
|
||||
reading angles ...
|
||||
480 angles
|
||||
reading dihedrals ...
|
||||
640 dihedrals
|
||||
reading impropers ...
|
||||
160 impropers
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
3 = max # of 1-2 neighbors
|
||||
6 = max # of 1-3 neighbors
|
||||
12 = max # of 1-4 neighbors
|
||||
39 = max # of special neighbors
|
||||
special bonds CPU = 0.000929056 secs
|
||||
read_data CPU = 0.00930568 secs
|
||||
Read molecule mol1:
|
||||
32 atoms with max type 4
|
||||
32 bonds with max type 6
|
||||
48 angles with max type 8
|
||||
64 dihedrals with max type 9
|
||||
16 impropers with max type 4
|
||||
Read molecule mol2:
|
||||
32 atoms with max type 6
|
||||
33 bonds with max type 10
|
||||
54 angles with max type 16
|
||||
79 dihedrals with max type 19
|
||||
22 impropers with max type 7
|
||||
Read molecule mol3:
|
||||
46 atoms with max type 6
|
||||
47 bonds with max type 10
|
||||
75 angles with max type 16
|
||||
105 dihedrals with max type 19
|
||||
29 impropers with max type 7
|
||||
Read molecule mol4:
|
||||
46 atoms with max type 6
|
||||
48 bonds with max type 13
|
||||
81 angles with max type 22
|
||||
121 dihedrals with max type 36
|
||||
35 impropers with max type 9
|
||||
Read molecule mol5:
|
||||
50 atoms with max type 6
|
||||
51 bonds with max type 10
|
||||
84 angles with max type 16
|
||||
118 dihedrals with max type 19
|
||||
36 impropers with max type 7
|
||||
Read molecule mol6:
|
||||
50 atoms with max type 6
|
||||
52 bonds with max type 10
|
||||
90 angles with max type 16
|
||||
135 dihedrals with max type 19
|
||||
42 impropers with max type 5
|
||||
dynamic group bond_react_MASTER_group defined
|
||||
dynamic group statted_grp_REACT defined
|
||||
PPPM initialization ...
|
||||
WARNING: System is not charge neutral, net charge = -0.004 (../kspace.cpp:304)
|
||||
using 12-bit tables for long-range coulomb (../kspace.cpp:323)
|
||||
G vector (1/distance) = 0.255611
|
||||
grid = 6 6 6
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.00974692
|
||||
estimated relative force accuracy = 2.93525e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 1331 216
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10.5
|
||||
ghost atom cutoff = 10.5
|
||||
binsize = 5.25, bins = 4 4 4
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/class2/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) fix bond/react, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Setting up Verlet run ...
|
||||
Unit style : real
|
||||
Current step : 0
|
||||
Time step : 1
|
||||
Per MPI rank memory allocation (min/avg/max) = 31.14 | 31.14 | 31.14 Mbytes
|
||||
Step Temp Press Density f_rxn1[1] f_rxn1[2] f_rxn1[3]
|
||||
0 320.13638 -376.0844 0.76796752 0 0 0
|
||||
100 520.00782 3952.7008 0.76796752 8 0 0
|
||||
200 499.9174 2360.8219 0.76796752 8 3 1
|
||||
300 583.93895 2453.7374 0.76796752 8 3 2
|
||||
400 560.65536 -2243.3464 0.76796752 8 3 3
|
||||
500 556.27995 3598.7044 0.76796752 8 3 3
|
||||
600 570.8397 -3340.1826 0.76796752 8 4 4
|
||||
700 456.89894 -1087.8081 0.76796752 8 4 4
|
||||
800 572.91817 -776.19188 0.76796752 8 4 4
|
||||
900 530.13621 -246734.46 0.76796752 8 4 5
|
||||
1000 542.34698 1044.0793 0.76796752 8 4 5
|
||||
1100 562.86339 1207.1715 0.76796752 8 4 5
|
||||
1200 520.1559 2725.6523 0.76796752 8 4 5
|
||||
1300 534.01667 951.0972 0.76796752 8 4 5
|
||||
1400 478.68681 1184.9224 0.76796752 8 4 5
|
||||
1500 509.05445 2020.5224 0.76796752 8 4 5
|
||||
1600 549.5382 810.17577 0.76796752 8 4 5
|
||||
1700 549.46882 -6349.7751 0.76796752 8 4 5
|
||||
1800 496.77334 3953.1043 0.76796752 8 4 5
|
||||
1900 522.28719 -2271.7599 0.76796752 8 4 6
|
||||
2000 569.95975 5633.4352 0.76796752 8 4 6
|
||||
2100 590.8418 2355.8447 0.76796752 8 4 6
|
||||
2200 537.64787 6459.6743 0.76796752 8 4 6
|
||||
2300 548.38487 -1566.3528 0.76796752 8 4 6
|
||||
2400 533.50353 6755.664 0.76796752 8 4 6
|
||||
2500 512.57053 325.30968 0.76796752 8 4 6
|
||||
2600 498.4597 -2468.1165 0.76796752 8 4 6
|
||||
2700 559.03937 2428.3446 0.76796752 8 4 6
|
||||
2800 585.85721 -2896.3607 0.76796752 8 4 6
|
||||
2900 523.18635 1391.254 0.76796752 8 4 6
|
||||
3000 524.62076 375.02973 0.76796752 8 4 6
|
||||
3100 534.65688 -1522.7879 0.76796752 8 4 6
|
||||
3200 499.42665 3725.5476 0.76796752 8 4 6
|
||||
3300 514.36972 1725.8329 0.76796752 8 4 6
|
||||
3400 482.52662 4648.5013 0.76796752 8 4 6
|
||||
3500 495.36836 967.3482 0.76796752 8 4 6
|
||||
3600 583.28736 745.21794 0.76796752 8 4 6
|
||||
3700 531.99717 -804.39572 0.76796752 8 4 6
|
||||
3800 555.08359 -2381.363 0.76796752 8 4 6
|
||||
3900 520.1818 -547.34169 0.76796752 8 4 6
|
||||
4000 444.38804 -2488.7881 0.76796752 8 4 6
|
||||
4100 518.65622 -3135.9573 0.76796752 8 4 6
|
||||
4200 484.15227 -1040.2447 0.76796752 8 4 6
|
||||
4300 514.58006 550.14626 0.76796752 8 4 6
|
||||
4400 579.81405 -849.81454 0.76796752 8 4 6
|
||||
4500 522.8698 5222.654 0.76796752 8 4 6
|
||||
4600 490.78275 3251.2892 0.76796752 8 4 6
|
||||
4700 492.64299 3785.3482 0.76796752 8 4 6
|
||||
4800 500.11059 4441.8978 0.76796752 8 4 6
|
||||
4900 536.80009 965.33724 0.76796752 8 4 6
|
||||
5000 516.98575 -3794.4213 0.76796752 8 4 6
|
||||
5100 516.76648 -3593.9106 0.76796752 8 4 6
|
||||
5200 521.6379 -6532.7773 0.76796752 8 4 6
|
||||
5300 535.64798 2931.412 0.76796752 8 4 6
|
||||
5400 559.83266 7628.1659 0.76796752 8 4 6
|
||||
5500 538.91756 2841.6746 0.76796752 8 4 6
|
||||
5600 539.13999 10445.173 0.76796752 8 4 6
|
||||
5700 501.56603 -2106.3309 0.76796752 8 4 6
|
||||
5800 496.72952 -4831.0565 0.76796752 8 4 6
|
||||
5900 536.12979 -3916.8197 0.76796752 8 4 6
|
||||
6000 553.10092 3142.6871 0.76796752 8 4 6
|
||||
6100 558.09546 3154.584 0.76796752 8 4 6
|
||||
6200 523.48472 9807.0034 0.76796752 8 4 6
|
||||
6300 551.80343 -3608.2078 0.76796752 8 4 6
|
||||
6400 484.28359 2255.4675 0.76796752 8 4 6
|
||||
6500 560.68443 -4826.4868 0.76796752 8 4 6
|
||||
6600 604.50797 402.32183 0.76796752 8 4 6
|
||||
6700 538.84714 -7670.3312 0.76796752 8 4 6
|
||||
6800 528.82853 -380.32058 0.76796752 8 4 6
|
||||
6900 579.30919 4438.4574 0.76796752 8 4 6
|
||||
7000 540.3406 3738.0524 0.76796752 8 4 6
|
||||
7100 519.53645 -1825.5563 0.76796752 8 4 6
|
||||
7200 474.136 1657.3863 0.76796752 8 4 6
|
||||
7300 485.55159 -221.84939 0.76796752 8 4 6
|
||||
7400 527.38494 1037.1777 0.76796752 8 4 6
|
||||
7500 517.14767 -2313.5823 0.76796752 8 4 6
|
||||
7600 517.95967 -4763.4709 0.76796752 8 4 6
|
||||
7700 513.63507 4819.0253 0.76796752 8 4 6
|
||||
7800 503.56828 1295.1212 0.76796752 8 4 6
|
||||
7900 520.87804 1506.9417 0.76796752 8 4 6
|
||||
8000 509.46453 -5800.0971 0.76796752 8 4 6
|
||||
8100 566.67059 6065.4607 0.76796752 8 4 6
|
||||
8200 592.53068 1097.2277 0.76796752 8 4 6
|
||||
8300 529.55235 -580.81757 0.76796752 8 4 6
|
||||
8400 518.22587 560.45589 0.76796752 8 4 6
|
||||
8500 521.94561 5325.9459 0.76796752 8 4 6
|
||||
8600 510.54416 -1929.1967 0.76796752 8 4 6
|
||||
8700 562.71252 -629.90392 0.76796752 8 4 6
|
||||
8800 540.23123 -3484.3893 0.76796752 8 4 6
|
||||
8900 513.82411 -5227.152 0.76796752 8 4 6
|
||||
9000 534.3307 -3299.088 0.76796752 8 4 6
|
||||
9100 509.24467 -5676.2775 0.76796752 8 4 6
|
||||
9200 506.3216 -7043.8493 0.76796752 8 4 7
|
||||
9300 480.37682 2380.4696 0.76796752 8 4 7
|
||||
9400 546.15532 1831.0103 0.76796752 8 4 7
|
||||
9500 567.18341 3839.9843 0.76796752 8 4 7
|
||||
9600 536.14883 4258.5304 0.76796752 8 4 7
|
||||
9700 496.04153 3321.3561 0.76796752 8 4 7
|
||||
9800 531.78927 3124.9156 0.76796752 8 4 7
|
||||
9900 530.91395 38.987859 0.76796752 8 4 7
|
||||
10000 551.22761 1027.5706 0.76796752 8 4 7
|
||||
Loop time of 57.7096 on 1 procs for 10000 steps with 320 atoms
|
||||
|
||||
Performance: 14.972 ns/day, 1.603 hours/ns, 173.281 timesteps/s
|
||||
99.9% CPU use with 1 MPI tasks x no OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 11.621 | 11.621 | 11.621 | 0.0 | 20.14
|
||||
Bond | 11.151 | 11.151 | 11.151 | 0.0 | 19.32
|
||||
Kspace | 2.2403 | 2.2403 | 2.2403 | 0.0 | 3.88
|
||||
Neigh | 25.467 | 25.467 | 25.467 | 0.0 | 44.13
|
||||
Comm | 0.90467 | 0.90467 | 0.90467 | 0.0 | 1.57
|
||||
Output | 0.0017984 | 0.0017984 | 0.0017984 | 0.0 | 0.00
|
||||
Modify | 6.2622 | 6.2622 | 6.2622 | 0.0 | 10.85
|
||||
Other | | 0.06192 | | | 0.11
|
||||
|
||||
Nlocal: 320 ave 320 max 320 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 3240 ave 3240 max 3240 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 54336 ave 54336 max 54336 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 54336
|
||||
Ave neighs/atom = 169.8
|
||||
Ave special neighs/atom = 11.3063
|
||||
Neighbor list builds = 10000
|
||||
Dangerous builds = 0
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
Total wall time: 0:00:58
|
||||
@ -0,0 +1,255 @@
|
||||
LAMMPS (20 Nov 2019)
|
||||
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
This LAMMPS executable was compiled using C++98 compatibility.
|
||||
Please report the compiler info below at https://github.com/lammps/lammps/issues/1659
|
||||
GNU C++ 4.8.5
|
||||
WARNING-WARNING-WARNING-WARNING-WARNING
|
||||
|
||||
Reading data file ...
|
||||
orthogonal box = (1.74267 1.74267 1.74267) to (18.2573 18.2573 18.2573)
|
||||
1 by 2 by 2 MPI processor grid
|
||||
reading atoms ...
|
||||
320 atoms
|
||||
reading velocities ...
|
||||
320 velocities
|
||||
scanning bonds ...
|
||||
8 = max bonds/atom
|
||||
scanning angles ...
|
||||
18 = max angles/atom
|
||||
scanning dihedrals ...
|
||||
22 = max dihedrals/atom
|
||||
scanning impropers ...
|
||||
26 = max impropers/atom
|
||||
reading bonds ...
|
||||
320 bonds
|
||||
reading angles ...
|
||||
480 angles
|
||||
reading dihedrals ...
|
||||
640 dihedrals
|
||||
reading impropers ...
|
||||
160 impropers
|
||||
Finding 1-2 1-3 1-4 neighbors ...
|
||||
special bond factors lj: 0 0 0
|
||||
special bond factors coul: 0 0 0
|
||||
3 = max # of 1-2 neighbors
|
||||
6 = max # of 1-3 neighbors
|
||||
12 = max # of 1-4 neighbors
|
||||
39 = max # of special neighbors
|
||||
special bonds CPU = 0.000751222 secs
|
||||
read_data CPU = 0.0268223 secs
|
||||
Read molecule mol1:
|
||||
32 atoms with max type 4
|
||||
32 bonds with max type 6
|
||||
48 angles with max type 8
|
||||
64 dihedrals with max type 9
|
||||
16 impropers with max type 4
|
||||
Read molecule mol2:
|
||||
32 atoms with max type 6
|
||||
33 bonds with max type 10
|
||||
54 angles with max type 16
|
||||
79 dihedrals with max type 19
|
||||
22 impropers with max type 7
|
||||
Read molecule mol3:
|
||||
46 atoms with max type 6
|
||||
47 bonds with max type 10
|
||||
75 angles with max type 16
|
||||
105 dihedrals with max type 19
|
||||
29 impropers with max type 7
|
||||
Read molecule mol4:
|
||||
46 atoms with max type 6
|
||||
48 bonds with max type 13
|
||||
81 angles with max type 22
|
||||
121 dihedrals with max type 36
|
||||
35 impropers with max type 9
|
||||
Read molecule mol5:
|
||||
50 atoms with max type 6
|
||||
51 bonds with max type 10
|
||||
84 angles with max type 16
|
||||
118 dihedrals with max type 19
|
||||
36 impropers with max type 7
|
||||
Read molecule mol6:
|
||||
50 atoms with max type 6
|
||||
52 bonds with max type 10
|
||||
90 angles with max type 16
|
||||
135 dihedrals with max type 19
|
||||
42 impropers with max type 5
|
||||
dynamic group bond_react_MASTER_group defined
|
||||
dynamic group statted_grp_REACT defined
|
||||
PPPM initialization ...
|
||||
WARNING: System is not charge neutral, net charge = -0.004 (../kspace.cpp:304)
|
||||
using 12-bit tables for long-range coulomb (../kspace.cpp:323)
|
||||
G vector (1/distance) = 0.255611
|
||||
grid = 6 6 6
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.00974692
|
||||
estimated relative force accuracy = 2.93525e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 704 72
|
||||
Neighbor list info ...
|
||||
update every 1 steps, delay 10 steps, check yes
|
||||
max neighbors/atom: 2000, page size: 100000
|
||||
master list distance cutoff = 10.5
|
||||
ghost atom cutoff = 10.5
|
||||
binsize = 5.25, bins = 4 4 4
|
||||
2 neighbor lists, perpetual/occasional/extra = 1 1 0
|
||||
(1) pair lj/class2/coul/long, perpetual
|
||||
attributes: half, newton on
|
||||
pair build: half/bin/newton
|
||||
stencil: half/bin/3d/newton
|
||||
bin: standard
|
||||
(2) fix bond/react, occasional, copy from (1)
|
||||
attributes: half, newton on
|
||||
pair build: copy
|
||||
stencil: none
|
||||
bin: none
|
||||
Setting up Verlet run ...
|
||||
Unit style : real
|
||||
Current step : 0
|
||||
Time step : 1
|
||||
Per MPI rank memory allocation (min/avg/max) = 30.66 | 30.68 | 30.69 Mbytes
|
||||
Step Temp Press Density f_rxn1[1] f_rxn1[2] f_rxn1[3]
|
||||
0 320.13638 -376.0844 0.76796752 0 0 0
|
||||
100 522.71544 6623.0579 0.76796752 8 0 0
|
||||
200 500.86716 -9439.5519 0.76796752 8 3 2
|
||||
300 594.60588 6714.1323 0.76796752 8 3 3
|
||||
400 598.68768 683.70457 0.76796752 8 3 3
|
||||
500 563.1011 3576.6857 0.76796752 8 3 4
|
||||
600 510.29713 -196148.37 0.76796752 8 3 5
|
||||
700 494.14346 -118517.45 0.76796752 8 3 6
|
||||
800 565.62849 7678.1235 0.76796752 8 3 6
|
||||
900 515.74468 554.84571 0.76796752 8 3 6
|
||||
1000 500.64636 450.15932 0.76796752 8 3 6
|
||||
1100 463.34973 6023.8346 0.76796752 8 3 6
|
||||
1200 529.88483 2748.185 0.76796752 8 3 6
|
||||
1300 546.84049 1353.4891 0.76796752 8 3 6
|
||||
1400 552.27356 1446.5807 0.76796752 8 3 6
|
||||
1500 557.70874 -2745.1523 0.76796752 8 3 6
|
||||
1600 572.0005 629.36722 0.76796752 8 3 6
|
||||
1700 503.96569 5937.0231 0.76796752 8 3 6
|
||||
1800 491.34262 -1175.8104 0.76796752 8 3 6
|
||||
1900 538.24798 -81.197397 0.76796752 8 3 6
|
||||
2000 523.89324 2857.2466 0.76796752 8 3 6
|
||||
2100 515.1424 2288.2405 0.76796752 8 3 6
|
||||
2200 546.80854 3807.1038 0.76796752 8 3 6
|
||||
2300 500.31231 -135.33933 0.76796752 8 4 6
|
||||
2400 497.16354 5516.857 0.76796752 8 4 6
|
||||
2500 545.34187 3485.5645 0.76796752 8 4 6
|
||||
2600 522.70122 3114.1284 0.76796752 8 4 6
|
||||
2700 531.76604 6633.5518 0.76796752 8 4 6
|
||||
2800 521.97643 -279.83682 0.76796752 8 4 6
|
||||
2900 497.29575 7052.9409 0.76796752 8 4 6
|
||||
3000 524.5942 2284.8918 0.76796752 8 4 6
|
||||
3100 567.61329 -3667.4557 0.76796752 8 4 6
|
||||
3200 506.82452 -2934.4936 0.76796752 8 4 6
|
||||
3300 510.8521 313.36263 0.76796752 8 4 6
|
||||
3400 516.70206 3671.1899 0.76796752 8 4 6
|
||||
3500 535.12788 2645.2564 0.76796752 8 4 6
|
||||
3600 580.14214 2604.3079 0.76796752 8 4 6
|
||||
3700 529.77869 2684.0812 0.76796752 8 4 6
|
||||
3800 502.93191 2838.6698 0.76796752 8 4 6
|
||||
3900 585.91492 5308.0828 0.76796752 8 4 6
|
||||
4000 548.89917 5262.5775 0.76796752 8 4 6
|
||||
4100 550.7662 -1066.6807 0.76796752 8 4 6
|
||||
4200 519.19198 2777.5276 0.76796752 8 4 6
|
||||
4300 521.46332 -3429.7171 0.76796752 8 4 6
|
||||
4400 532.64173 2301.3135 0.76796752 8 4 6
|
||||
4500 528.96107 1369.0991 0.76796752 8 4 6
|
||||
4600 564.66443 9687.2531 0.76796752 8 4 6
|
||||
4700 558.49446 2322.6085 0.76796752 8 4 6
|
||||
4800 497.78614 -442.45053 0.76796752 8 4 6
|
||||
4900 511.09435 -10251.159 0.76796752 8 4 6
|
||||
5000 525.6642 -1202.0584 0.76796752 8 4 6
|
||||
5100 521.76974 1821.7811 0.76796752 8 4 6
|
||||
5200 555.9859 7256.9632 0.76796752 8 4 6
|
||||
5300 551.51971 -122893.16 0.76796752 8 4 7
|
||||
5400 524.34705 2905.1033 0.76796752 8 4 7
|
||||
5500 567.09396 2896.4824 0.76796752 8 4 7
|
||||
5600 487.57746 1417.1715 0.76796752 8 4 7
|
||||
5700 547.37304 3900.8734 0.76796752 8 4 7
|
||||
5800 536.17647 -4048.7522 0.76796752 8 4 7
|
||||
5900 536.85051 4497.9847 0.76796752 8 4 7
|
||||
6000 548.58212 -4880.4979 0.76796752 8 4 7
|
||||
6100 500.94692 6004.2105 0.76796752 8 4 7
|
||||
6200 486.82494 402.5875 0.76796752 8 4 7
|
||||
6300 478.09381 6600.767 0.76796752 8 4 7
|
||||
6400 559.90398 2868.0805 0.76796752 8 4 7
|
||||
6500 526.01866 -3398.4788 0.76796752 8 4 7
|
||||
6600 539.68471 -1202.0012 0.76796752 8 4 7
|
||||
6700 507.51217 -378.71164 0.76796752 8 4 7
|
||||
6800 526.15958 -4536.9888 0.76796752 8 4 7
|
||||
6900 511.37134 -2522.3553 0.76796752 8 4 7
|
||||
7000 538.86918 -2028.0323 0.76796752 8 4 7
|
||||
7100 523.25566 2911.9962 0.76796752 8 4 7
|
||||
7200 513.28464 -1000.4758 0.76796752 8 4 7
|
||||
7300 510.19826 5181.7976 0.76796752 8 4 7
|
||||
7400 493.46528 -1166.3996 0.76796752 8 4 7
|
||||
7500 491.51305 5669.2213 0.76796752 8 4 7
|
||||
7600 506.72032 -2840.301 0.76796752 8 4 7
|
||||
7700 513.4319 2802.1719 0.76796752 8 4 7
|
||||
7800 543.7658 -7477.3623 0.76796752 8 4 7
|
||||
7900 527.35619 -3182.3155 0.76796752 8 4 7
|
||||
8000 533.50993 613.16561 0.76796752 8 4 7
|
||||
8100 512.44958 -5037.3414 0.76796752 8 4 7
|
||||
8200 494.88981 1799.3513 0.76796752 8 4 7
|
||||
8300 554.81474 -2436.0507 0.76796752 8 4 7
|
||||
8400 523.22917 364.30593 0.76796752 8 4 7
|
||||
8500 515.12395 525.24581 0.76796752 8 4 7
|
||||
8600 511.6321 -1679.8669 0.76796752 8 4 7
|
||||
8700 531.6327 -1168.1215 0.76796752 8 4 7
|
||||
8800 548.14438 -5222.7573 0.76796752 8 4 7
|
||||
8900 517.72579 2073.9695 0.76796752 8 4 7
|
||||
9000 543.11894 -5307.0759 0.76796752 8 4 7
|
||||
9100 521.13747 -5546.8552 0.76796752 8 4 7
|
||||
9200 509.66142 -1584.019 0.76796752 8 4 7
|
||||
9300 488.73821 -277.85847 0.76796752 8 4 7
|
||||
9400 513.67282 989.60653 0.76796752 8 4 7
|
||||
9500 509.98833 -1754.8786 0.76796752 8 4 7
|
||||
9600 558.72497 5616.6969 0.76796752 8 4 7
|
||||
9700 533.74988 811.48871 0.76796752 8 4 7
|
||||
9800 510.94641 -3136.5876 0.76796752 8 4 7
|
||||
9900 517.80127 -1962.0837 0.76796752 8 4 7
|
||||
10000 477.50428 -3768.1653 0.76796752 8 4 7
|
||||
Loop time of 20.9963 on 4 procs for 10000 steps with 320 atoms
|
||||
|
||||
Performance: 41.150 ns/day, 0.583 hours/ns, 476.276 timesteps/s
|
||||
100.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 | 2.4968 | 3.0329 | 3.3607 | 18.6 | 14.45
|
||||
Bond | 2.3164 | 2.8835 | 3.456 | 26.0 | 13.73
|
||||
Kspace | 1.3332 | 2.2082 | 3.285 | 48.0 | 10.52
|
||||
Neigh | 7.4831 | 7.4922 | 7.5012 | 0.3 | 35.68
|
||||
Comm | 1.2809 | 1.3121 | 1.3297 | 1.6 | 6.25
|
||||
Output | 0.0012138 | 0.0013506 | 0.0017552 | 0.6 | 0.01
|
||||
Modify | 4.0269 | 4.0301 | 4.0335 | 0.1 | 19.19
|
||||
Other | | 0.03583 | | | 0.17
|
||||
|
||||
Nlocal: 80 ave 94 max 66 min
|
||||
Histogram: 2 0 0 0 0 0 0 0 0 2
|
||||
Nghost: 2243.75 ave 2260 max 2221 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 0 2
|
||||
Neighs: 13658.5 ave 17096 max 9421 min
|
||||
Histogram: 1 0 0 0 0 1 1 0 0 1
|
||||
|
||||
Total # of neighbors = 54634
|
||||
Ave neighs/atom = 170.731
|
||||
Ave special neighs/atom = 11.3063
|
||||
Neighbor list builds = 10000
|
||||
Dangerous builds = 0
|
||||
System init for write_data ...
|
||||
PPPM initialization ...
|
||||
using 12-bit tables for long-range coulomb (../kspace.cpp:323)
|
||||
G vector (1/distance) = 0.255611
|
||||
grid = 6 6 6
|
||||
stencil order = 5
|
||||
estimated absolute RMS force accuracy = 0.00974692
|
||||
estimated relative force accuracy = 2.93525e-05
|
||||
using double precision FFTs
|
||||
3d grid and FFT values/proc = 704 72
|
||||
|
||||
Please see the log.cite file for references relevant to this simulation
|
||||
|
||||
Total wall time: 0:00:21
|
||||
2643
examples/USER/reaction/tiny_polystyrene/tiny_polystyrene.data
Normal file
2643
examples/USER/reaction/tiny_polystyrene/tiny_polystyrene.data
Normal file
File diff suppressed because it is too large
Load Diff
@ -8,16 +8,7 @@
|
||||
// in the root directory of this source distribution.
|
||||
// -------------------------------------------------------------
|
||||
#include "cudpp_maximal_launch.h"
|
||||
|
||||
inline size_t min(size_t x, size_t y)
|
||||
{
|
||||
return (x <= y) ? x : y;
|
||||
}
|
||||
|
||||
inline size_t max(size_t x, size_t y)
|
||||
{
|
||||
return (x >= y) ? x : y;
|
||||
}
|
||||
#include <algorithm>
|
||||
|
||||
// computes next highest multiple of f from x
|
||||
inline size_t multiple(size_t x, size_t f)
|
||||
@ -65,7 +56,7 @@ size_t maxBlocks(cudaFuncAttributes &attribs,
|
||||
size_t ctaLimitSMem = smemPerCTA > 0 ? devprop.sharedMemPerBlock / smemPerCTA : maxBlocksPerSM;
|
||||
size_t ctaLimitThreads = maxThreadsPerSM / threadsPerBlock;
|
||||
|
||||
return devprop.multiProcessorCount * min(ctaLimitRegs, min(ctaLimitSMem, min(ctaLimitThreads, maxBlocksPerSM)));
|
||||
return devprop.multiProcessorCount * std::min(ctaLimitRegs, std::min(ctaLimitSMem, std::min(ctaLimitThreads, (size_t)maxBlocksPerSM)));
|
||||
}
|
||||
|
||||
extern "C"
|
||||
@ -80,15 +71,15 @@ size_t maxBlocksFromPointer(void* kernel,
|
||||
{
|
||||
err = cudaGetDeviceProperties(&devprop, deviceID);
|
||||
if (err != cudaSuccess)
|
||||
return -1;
|
||||
return (size_t)-1;
|
||||
|
||||
cudaFuncAttributes attr;
|
||||
err = cudaFuncGetAttributes(&attr, (const char*)kernel);
|
||||
if (err != cudaSuccess)
|
||||
return -1;
|
||||
return (size_t)-1;
|
||||
|
||||
return maxBlocks(attr, devprop, bytesDynamicSharedMem, threadsPerBlock);
|
||||
}
|
||||
|
||||
return -1;
|
||||
return (size_t)-1;
|
||||
}
|
||||
|
||||
@ -244,7 +244,7 @@ class UCL_Kernel {
|
||||
template <class dtype>
|
||||
inline void add_arg(const dtype* const arg) {
|
||||
#if CUDA_VERSION >= 4000
|
||||
_kernel_args[_num_args]=const_cast<dtype * const>(arg);
|
||||
_kernel_args[_num_args]=const_cast<dtype *>(arg);
|
||||
#else
|
||||
_param_size = (_param_size+__alignof(dtype)-1) & ~(__alignof(dtype)-1);
|
||||
CU_SAFE_CALL(cuParamSetv(_kernel,_param_size,(void*)arg,sizeof(dtype)));
|
||||
|
||||
@ -37,12 +37,16 @@ struct TagPairSNAPBeta{};
|
||||
struct TagPairSNAPComputeNeigh{};
|
||||
struct TagPairSNAPPreUi{};
|
||||
struct TagPairSNAPComputeUi{};
|
||||
struct TagPairSNAPComputeUiTot{}; // accumulate ulist into ulisttot separately
|
||||
struct TagPairSNAPComputeUiCPU{};
|
||||
struct TagPairSNAPComputeZi{};
|
||||
struct TagPairSNAPComputeBi{};
|
||||
struct TagPairSNAPZeroYi{};
|
||||
struct TagPairSNAPComputeYi{};
|
||||
struct TagPairSNAPComputeDuidrj{};
|
||||
struct TagPairSNAPComputeDuidrjCPU{};
|
||||
struct TagPairSNAPComputeDeidrj{};
|
||||
struct TagPairSNAPComputeDeidrjCPU{};
|
||||
|
||||
template<class DeviceType>
|
||||
class PairSNAPKokkos : public PairSNAP {
|
||||
@ -74,11 +78,17 @@ public:
|
||||
void operator() (TagPairSNAPComputeNeigh,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeNeigh>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPPreUi,const int& ii) const;
|
||||
void operator() (TagPairSNAPPreUi,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPPreUi>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeUi,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUi>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeUiTot,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiTot>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeUiCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiCPU>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeZi,const int& ii) const;
|
||||
|
||||
@ -86,7 +96,7 @@ public:
|
||||
void operator() (TagPairSNAPComputeBi,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeBi>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPZeroYi,const int& ii) const;
|
||||
void operator() (TagPairSNAPZeroYi,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPZeroYi>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeYi,const int& ii) const;
|
||||
@ -94,9 +104,15 @@ public:
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeDuidrj,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDuidrj>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeDuidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDuidrjCPU>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeDeidrj,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrj>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPComputeDeidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrjCPU>::member_type& team) const;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void operator() (TagPairSNAPBeta,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPBeta>::member_type& team) const;
|
||||
|
||||
|
||||
@ -12,7 +12,8 @@
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
Contributing authors: Christian Trott (SNL), Stan Moore (SNL)
|
||||
Contributing authors: Christian Trott (SNL), Stan Moore (SNL),
|
||||
Evan Weinberg (NVIDIA)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <cmath>
|
||||
@ -29,6 +30,7 @@
|
||||
#include "kokkos.h"
|
||||
#include "sna.h"
|
||||
|
||||
|
||||
#define MAXLINE 1024
|
||||
#define MAXWORD 3
|
||||
|
||||
@ -194,7 +196,7 @@ void PairSNAPKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
|
||||
if (beta_max < inum) {
|
||||
beta_max = inum;
|
||||
d_beta = Kokkos::View<F_FLOAT**, DeviceType>("PairSNAPKokkos:beta",inum,ncoeff);
|
||||
d_beta = Kokkos::View<F_FLOAT**, DeviceType>("PairSNAPKokkos:beta",ncoeff,inum);
|
||||
d_ninside = Kokkos::View<int*, DeviceType>("PairSNAPKokkos:ninside",inum);
|
||||
}
|
||||
|
||||
@ -205,6 +207,8 @@ void PairSNAPKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
|
||||
EV_FLOAT ev;
|
||||
|
||||
int idxu_max = snaKK.idxu_max;
|
||||
|
||||
while (chunk_offset < inum) { // chunk up loop to prevent running out of memory
|
||||
|
||||
EV_FLOAT ev_tmp;
|
||||
@ -217,15 +221,62 @@ void PairSNAPKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
Kokkos::parallel_for("ComputeNeigh",policy_neigh,*this);
|
||||
|
||||
//PreUi
|
||||
typename Kokkos::RangePolicy<DeviceType, TagPairSNAPPreUi> policy_preui(0,chunk_size);
|
||||
{
|
||||
int vector_length = 1;
|
||||
int team_size = 1;
|
||||
if (lmp->kokkos->ngpus != 0) {
|
||||
vector_length = 32;
|
||||
team_size = 32;//max_neighs;
|
||||
int team_size_max = Kokkos::TeamPolicy<DeviceType, TagPairSNAPPreUi>::team_size_max(*this);
|
||||
if (team_size*vector_length > team_size_max)
|
||||
team_size = team_size_max/vector_length;
|
||||
}
|
||||
typename Kokkos::TeamPolicy<DeviceType,TagPairSNAPPreUi> policy_preui((chunk_size+team_size-1)/team_size,team_size,vector_length);
|
||||
Kokkos::parallel_for("PreUi",policy_preui,*this);
|
||||
}
|
||||
|
||||
// ComputeUI
|
||||
if (lmp->kokkos->ngpus == 0) { // CPU
|
||||
// Run a fused calculation of ulist and accumulation into ulisttot using atomics
|
||||
int vector_length = 1;
|
||||
int team_size = 1;
|
||||
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiCPU> policy_ui_cpu(((chunk_size+team_size-1)/team_size)*max_neighs,team_size,vector_length);
|
||||
|
||||
Kokkos::parallel_for("ComputeUiCPU",policy_ui_cpu,*this);
|
||||
} else { // GPU, vector parallelism, shared memory, separate ulist and ulisttot to avoid atomics
|
||||
|
||||
// ComputeUi
|
||||
int vector_length = 32;
|
||||
int team_size = 4; // need to cap b/c of shared memory reqs
|
||||
int team_size_max = Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUi>::team_size_max(*this);
|
||||
if (team_size*vector_length > team_size_max)
|
||||
team_size = team_size_max/vector_length;
|
||||
|
||||
// scratch size: 2 * team_size * (twojmax+1)^2, to cover all `m1`,`m2` values
|
||||
// 2 is for double buffer
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUi> policy_ui(((chunk_size+team_size-1)/team_size)*max_neighs,team_size,vector_length);
|
||||
|
||||
typedef Kokkos::View< SNAcomplex*,
|
||||
Kokkos::DefaultExecutionSpace::scratch_memory_space,
|
||||
Kokkos::MemoryTraits<Kokkos::Unmanaged> >
|
||||
ScratchViewType;
|
||||
int scratch_size = ScratchViewType::shmem_size( 2 * team_size * (twojmax+1)*(twojmax+1));
|
||||
policy_ui = policy_ui.set_scratch_size(0, Kokkos::PerTeam( scratch_size ));
|
||||
|
||||
Kokkos::parallel_for("ComputeUi",policy_ui,*this);
|
||||
|
||||
//Ulisttot transpose
|
||||
snaKK.transpose_ulisttot();
|
||||
// ComputeUitot
|
||||
vector_length = 1;
|
||||
team_size = 128;
|
||||
team_size_max = Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiTot>::team_size_max(*this);
|
||||
if (team_size*vector_length > team_size_max)
|
||||
team_size = team_size_max/vector_length;
|
||||
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiTot> policy_ui_tot(((idxu_max+team_size-1)/team_size)*chunk_size,team_size,vector_length);
|
||||
Kokkos::parallel_for("ComputeUiTot",policy_ui_tot,*this);
|
||||
}
|
||||
|
||||
|
||||
//Compute bispectrum
|
||||
if (quadraticflag || eflag) {
|
||||
@ -237,15 +288,28 @@ void PairSNAPKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
//ComputeBi
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeBi> policy_bi(chunk_size,team_size,vector_length);
|
||||
Kokkos::parallel_for("ComputeBi",policy_bi,*this);
|
||||
|
||||
}
|
||||
|
||||
//Compute beta = dE_i/dB_i for all i in list
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPBeta> policy_beta(chunk_size,team_size,vector_length);
|
||||
Kokkos::parallel_for("ComputeBeta",policy_beta,*this);
|
||||
|
||||
//ComputeYi
|
||||
typename Kokkos::RangePolicy<DeviceType, TagPairSNAPZeroYi> policy_zero_yi(0,chunk_size);
|
||||
//ZeroYi
|
||||
{
|
||||
int vector_length = 1;
|
||||
int team_size = 1;
|
||||
int team_size_max = Kokkos::TeamPolicy<DeviceType, TagPairSNAPZeroYi>::team_size_max(*this);
|
||||
|
||||
#ifdef KOKKOS_ENABLE_CUDA
|
||||
team_size = 128;
|
||||
if (team_size*vector_length > team_size_max)
|
||||
team_size = team_size_max/vector_length;
|
||||
#endif
|
||||
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPZeroYi> policy_zero_yi(((idxu_max+team_size-1)/team_size)*chunk_size,team_size,vector_length);
|
||||
Kokkos::parallel_for("ZeroYi",policy_zero_yi,*this);
|
||||
}
|
||||
|
||||
//ComputeYi
|
||||
int idxz_max = snaKK.idxz_max;
|
||||
@ -253,12 +317,59 @@ void PairSNAPKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
Kokkos::parallel_for("ComputeYi",policy_yi,*this);
|
||||
|
||||
//ComputeDuidrj
|
||||
if (lmp->kokkos->ngpus == 0) { // CPU
|
||||
int vector_length = 1;
|
||||
int team_size = 1;
|
||||
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDuidrjCPU> policy_duidrj_cpu(((chunk_size+team_size-1)/team_size)*max_neighs,team_size,vector_length);
|
||||
snaKK.set_dir(-1); // technically doesn't do anything
|
||||
Kokkos::parallel_for("ComputeDuidrjCPU",policy_duidrj_cpu,*this);
|
||||
} else { // GPU, utilize scratch memory and splitting over dimensions
|
||||
|
||||
int team_size_max = Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDuidrj>::team_size_max(*this);
|
||||
int vector_length = 32;
|
||||
int team_size = 2; // need to cap b/c of shared memory reqs
|
||||
if (team_size*vector_length > team_size_max)
|
||||
team_size = team_size_max/vector_length;
|
||||
|
||||
// scratch size: 2 * 2 * team_size * (twojmax+1)^2, to cover all `m1`,`m2` values
|
||||
// 2 is for double buffer
|
||||
typedef Kokkos::View< SNAcomplex*,
|
||||
Kokkos::DefaultExecutionSpace::scratch_memory_space,
|
||||
Kokkos::MemoryTraits<Kokkos::Unmanaged> >
|
||||
ScratchViewType;
|
||||
|
||||
int scratch_size = ScratchViewType::shmem_size( 4 * team_size * (twojmax+1)*(twojmax+1));
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDuidrj> policy_duidrj(((chunk_size+team_size-1)/team_size)*max_neighs,team_size,vector_length);
|
||||
policy_duidrj = policy_duidrj.set_scratch_size(0, Kokkos::PerTeam( scratch_size ));
|
||||
// Need to call three times, once for each direction
|
||||
for (int k = 0; k < 3; k++) {
|
||||
snaKK.set_dir(k);
|
||||
Kokkos::parallel_for("ComputeDuidrj",policy_duidrj,*this);
|
||||
}
|
||||
}
|
||||
|
||||
//ComputeDeidrj
|
||||
if (lmp->kokkos->ngpus == 0) { // CPU
|
||||
int vector_length = 1;
|
||||
int team_size = 1;
|
||||
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrjCPU> policy_deidrj_cpu(((chunk_size+team_size-1)/team_size)*max_neighs,team_size,vector_length);
|
||||
|
||||
Kokkos::parallel_for("ComputeDeidrjCPU",policy_deidrj_cpu,*this);
|
||||
|
||||
} else { // GPU, different loop strategy internally
|
||||
|
||||
int team_size_max = Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrj>::team_size_max(*this);
|
||||
int vector_length = 32; // coalescing disaster right now, will fix later
|
||||
int team_size = 8;
|
||||
if (team_size*vector_length > team_size_max)
|
||||
team_size = team_size_max/vector_length;
|
||||
|
||||
typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrj> policy_deidrj(((chunk_size+team_size-1)/team_size)*max_neighs,team_size,vector_length);
|
||||
|
||||
Kokkos::parallel_for("ComputeDeidrj",policy_deidrj,*this);
|
||||
}
|
||||
|
||||
//ComputeForce
|
||||
if (eflag) {
|
||||
@ -284,6 +395,7 @@ void PairSNAPKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
|
||||
}
|
||||
ev += ev_tmp;
|
||||
chunk_offset += chunk_size;
|
||||
|
||||
} // end while
|
||||
|
||||
if (need_dup)
|
||||
@ -341,18 +453,18 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPBeta,const typename Kokk
|
||||
d_coeffi(d_coeffelem,ielem,Kokkos::ALL);
|
||||
|
||||
for (int icoeff = 0; icoeff < ncoeff; icoeff++)
|
||||
d_beta(ii,icoeff) = d_coeffi[icoeff+1];
|
||||
d_beta(icoeff,ii) = d_coeffi[icoeff+1];
|
||||
|
||||
if (quadraticflag) {
|
||||
int k = ncoeff+1;
|
||||
for (int icoeff = 0; icoeff < ncoeff; icoeff++) {
|
||||
double bveci = my_sna.blist(ii,icoeff);
|
||||
d_beta(ii,icoeff) += d_coeffi[k]*bveci;
|
||||
double bveci = my_sna.blist(icoeff,ii);
|
||||
d_beta(icoeff,ii) += d_coeffi[k]*bveci;
|
||||
k++;
|
||||
for (int jcoeff = icoeff+1; jcoeff < ncoeff; jcoeff++) {
|
||||
double bvecj = my_sna.blist(ii,jcoeff);
|
||||
d_beta(ii,icoeff) += d_coeffi[k]*bvecj;
|
||||
d_beta(ii,jcoeff) += d_coeffi[k]*bveci;
|
||||
double bvecj = my_sna.blist(jcoeff,ii);
|
||||
d_beta(icoeff,ii) += d_coeffi[k]*bvecj;
|
||||
d_beta(jcoeff,ii) += d_coeffi[k]*bveci;
|
||||
k++;
|
||||
}
|
||||
}
|
||||
@ -503,9 +615,14 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeNeigh,const typen
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPPreUi,const int& ii) const {
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPPreUi,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPPreUi>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
my_sna.pre_ui(ii);
|
||||
|
||||
// Extract the atom number
|
||||
const int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
my_sna.pre_ui(team,ii);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
@ -514,8 +631,7 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeUi,const typename
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the atom number
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() %
|
||||
((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the neighbor number
|
||||
@ -528,9 +644,54 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeUi,const typename
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPZeroYi,const int& ii) const {
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeUiTot,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiTot>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
my_sna.zero_yi(ii);
|
||||
|
||||
// Extract the quantum number
|
||||
const int idx = team.team_rank() + team.team_size() * (team.league_rank() % ((my_sna.idxu_max+team.team_size()-1)/team.team_size()));
|
||||
if (idx >= my_sna.idxu_max) return;
|
||||
|
||||
// Extract the atomic index
|
||||
const int ii = team.league_rank() / ((my_sna.idxu_max+team.team_size()-1)/team.team_size());
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the number of neighbors neighbor number
|
||||
const int ninside = d_ninside(ii);
|
||||
|
||||
my_sna.compute_uitot(team,idx,ii,ninside);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeUiCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeUiCPU>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the atom number
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the neighbor number
|
||||
const int jj = team.league_rank() / ((chunk_size+team.team_size()-1)/team.team_size());
|
||||
const int ninside = d_ninside(ii);
|
||||
if (jj >= ninside) return;
|
||||
|
||||
my_sna.compute_ui_cpu(team,ii,jj);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPZeroYi,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPZeroYi>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the quantum number
|
||||
const int idx = team.team_rank() + team.team_size() * (team.league_rank() % ((my_sna.idxu_max+team.team_size()-1)/team.team_size()));
|
||||
if (idx >= my_sna.idxu_max) return;
|
||||
|
||||
// Extract the atomic index
|
||||
const int ii = team.league_rank() / ((my_sna.idxu_max+team.team_size()-1)/team.team_size());
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
my_sna.zero_yi(idx,ii);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
@ -561,8 +722,7 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeDuidrj,const type
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the atom number
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() %
|
||||
((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the neighbor number
|
||||
@ -573,14 +733,31 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeDuidrj,const type
|
||||
my_sna.compute_duidrj(team,ii,jj);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeDuidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDuidrjCPU>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the atom number
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the neighbor number
|
||||
const int jj = team.league_rank() / ((chunk_size+team.team_size()-1)/team.team_size());
|
||||
const int ninside = d_ninside(ii);
|
||||
if (jj >= ninside) return;
|
||||
|
||||
my_sna.compute_duidrj_cpu(team,ii,jj);
|
||||
}
|
||||
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeDeidrj,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrj>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the atom number
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() %
|
||||
((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the neighbor number
|
||||
@ -591,6 +768,23 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeDeidrj,const type
|
||||
my_sna.compute_deidrj(team,ii,jj);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeDeidrjCPU,const typename Kokkos::TeamPolicy<DeviceType, TagPairSNAPComputeDeidrjCPU>::member_type& team) const {
|
||||
SNAKokkos<DeviceType> my_sna = snaKK;
|
||||
|
||||
// Extract the atom number
|
||||
int ii = team.team_rank() + team.team_size() * (team.league_rank() % ((chunk_size+team.team_size()-1)/team.team_size()));
|
||||
if (ii >= chunk_size) return;
|
||||
|
||||
// Extract the neighbor number
|
||||
const int jj = team.league_rank() / ((chunk_size+team.team_size()-1)/team.team_size());
|
||||
const int ninside = d_ninside(ii);
|
||||
if (jj >= ninside) return;
|
||||
|
||||
my_sna.compute_deidrj_cpu(team,ii,jj);
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
template<int NEIGHFLAG, int EVFLAG>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
@ -658,17 +852,17 @@ void PairSNAPKokkos<DeviceType>::operator() (TagPairSNAPComputeForce<NEIGHFLAG,E
|
||||
// linear contributions
|
||||
|
||||
for (int icoeff = 0; icoeff < ncoeff; icoeff++)
|
||||
evdwl += d_coeffi[icoeff+1]*my_sna.blist(ii,icoeff);
|
||||
evdwl += d_coeffi[icoeff+1]*my_sna.blist(icoeff,ii);
|
||||
|
||||
// quadratic contributions
|
||||
|
||||
if (quadraticflag) {
|
||||
int k = ncoeff+1;
|
||||
for (int icoeff = 0; icoeff < ncoeff; icoeff++) {
|
||||
double bveci = my_sna.blist(ii,icoeff);
|
||||
double bveci = my_sna.blist(icoeff,ii);
|
||||
evdwl += 0.5*d_coeffi[k++]*bveci*bveci;
|
||||
for (int jcoeff = icoeff+1; jcoeff < ncoeff; jcoeff++) {
|
||||
double bvecj = my_sna.blist(ii,jcoeff);
|
||||
double bvecj = my_sna.blist(jcoeff,ii);
|
||||
evdwl += d_coeffi[k++]*bveci*bvecj;
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,19 +28,53 @@ namespace LAMMPS_NS {
|
||||
typedef double SNAreal;
|
||||
|
||||
//typedef struct { SNAreal re, im; } SNAcomplex;
|
||||
struct alignas(2*sizeof(SNAreal)) SNAcomplex{
|
||||
SNAreal re, im;
|
||||
template <typename real>
|
||||
struct alignas(2*sizeof(real)) SNAComplex
|
||||
{
|
||||
real re,im;
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
SNAcomplex() : re(0),im(0)
|
||||
{}
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex() = default;
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex(real re)
|
||||
: re(re), im(static_cast<real>(0.)) { ; }
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex(real re, real im)
|
||||
: re(re), im(im) { ; }
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex(const SNAComplex& other)
|
||||
: re(other.re), im(other.im) { ; }
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator=(const SNAComplex& other) {
|
||||
re = other.re; im = other.im;
|
||||
return *this;
|
||||
}
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex(SNAComplex&& other)
|
||||
: re(other.re), im(other.im) { ; }
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator=(SNAComplex&& other) {
|
||||
re = other.re; im = other.im;
|
||||
return *this;
|
||||
}
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex operator+(SNAComplex const& other) {
|
||||
return SNAComplex(re + other.re, im + other.im);
|
||||
}
|
||||
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex& operator+=(SNAComplex const& other) {
|
||||
re += other.re; im += other.im;
|
||||
return *this;
|
||||
}
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
SNAcomplex(SNAreal real_in, SNAreal imag_in)
|
||||
:re(real_in),im(imag_in)
|
||||
{}
|
||||
};
|
||||
|
||||
template <typename real>
|
||||
KOKKOS_FORCEINLINE_FUNCTION SNAComplex<real> operator*(const real& r, const SNAComplex<real>& self) {
|
||||
return SNAComplex<real>(r*self.re, r*self.im);
|
||||
}
|
||||
|
||||
typedef SNAComplex<SNAreal> SNAcomplex;
|
||||
|
||||
//struct SNAKK_ZINDICES {
|
||||
// int j1, j2, j, ma1min, ma2max, mb1min, mb2max, na, nb, jju;
|
||||
//};
|
||||
@ -58,6 +92,7 @@ public:
|
||||
typedef Kokkos::View<double*, DeviceType, Kokkos::MemoryTraits<Kokkos::Atomic> > t_sna_1d_atomic;
|
||||
typedef Kokkos::View<int**, DeviceType> t_sna_2i;
|
||||
typedef Kokkos::View<double**, DeviceType> t_sna_2d;
|
||||
typedef Kokkos::View<double**, Kokkos::LayoutLeft, DeviceType> t_sna_2d_ll;
|
||||
typedef Kokkos::View<double***, DeviceType> t_sna_3d;
|
||||
typedef Kokkos::View<double***[3], DeviceType> t_sna_4d;
|
||||
typedef Kokkos::View<double**[3], DeviceType> t_sna_3d3;
|
||||
@ -66,32 +101,15 @@ public:
|
||||
typedef Kokkos::View<SNAcomplex*, DeviceType> t_sna_1c;
|
||||
typedef Kokkos::View<SNAcomplex*, DeviceType, Kokkos::MemoryTraits<Kokkos::Atomic> > t_sna_1c_atomic;
|
||||
typedef Kokkos::View<SNAcomplex**, DeviceType> t_sna_2c;
|
||||
typedef Kokkos::View<SNAcomplex**, Kokkos::LayoutLeft, DeviceType> t_sna_2c_ll;
|
||||
typedef Kokkos::View<SNAcomplex**, Kokkos::LayoutRight, DeviceType> t_sna_2c_lr;
|
||||
typedef Kokkos::View<SNAcomplex***, DeviceType> t_sna_3c;
|
||||
typedef Kokkos::View<SNAcomplex***, Kokkos::LayoutLeft, DeviceType> t_sna_3c_ll;
|
||||
typedef Kokkos::View<SNAcomplex***[3], DeviceType> t_sna_4c;
|
||||
typedef Kokkos::View<SNAcomplex***[3], Kokkos::LayoutLeft, DeviceType> t_sna_4c_ll;
|
||||
typedef Kokkos::View<SNAcomplex**[3], DeviceType> t_sna_3c3;
|
||||
typedef Kokkos::View<SNAcomplex*****, DeviceType> t_sna_5c;
|
||||
|
||||
// Helper class to get ulisttot_r
|
||||
|
||||
template<typename DeviceLayout, typename T1, typename T2>
|
||||
class UlisttotHelper {
|
||||
public:
|
||||
inline
|
||||
static void transpose(T1 &ulisttot_lr, const T2 &ulisttot) {
|
||||
Kokkos::deep_copy(ulisttot_lr,ulisttot);
|
||||
}
|
||||
};
|
||||
|
||||
template<typename T1, typename T2>
|
||||
class UlisttotHelper<Kokkos::LayoutRight,T1,T2> {
|
||||
public:
|
||||
inline
|
||||
static void transpose(T1 &ulisttot_lr, const T2 &ulisttot) {
|
||||
ulisttot_lr = ulisttot;
|
||||
}
|
||||
};
|
||||
|
||||
inline
|
||||
SNAKokkos() {};
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
@ -113,20 +131,21 @@ inline
|
||||
|
||||
int ncoeff;
|
||||
|
||||
inline
|
||||
void transpose_ulisttot();
|
||||
|
||||
// functions for bispectrum coefficients
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void pre_ui(const int&); // ForceSNAP
|
||||
void pre_ui(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team,const int&); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_ui(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_ui_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_ui_orig(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_uitot(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int, int); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_zi(const int&); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void zero_yi(const int&);
|
||||
void zero_yi(const int&,const int&); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_yi(int,
|
||||
const Kokkos::View<F_FLOAT**, DeviceType> &beta); // ForceSNAP
|
||||
@ -138,12 +157,29 @@ inline
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_duidrj(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); //ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_duidrj_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); //ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_deidrj(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_deidrj_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int); // ForceSNAP
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
double compute_sfac(double, double); // add_uarraytot, compute_duarray
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
double compute_dsfac(double, double); // compute_duarray
|
||||
|
||||
// efficient complex FMA
|
||||
// efficient caxpy (i.e., y += a x)
|
||||
static KOKKOS_FORCEINLINE_FUNCTION
|
||||
void caxpy(const SNAcomplex& a, const SNAcomplex& x, SNAcomplex& y);
|
||||
|
||||
// efficient complex FMA, conjugate of scalar
|
||||
static KOKKOS_FORCEINLINE_FUNCTION
|
||||
void caconjxpy(const SNAcomplex& a, const SNAcomplex& x, SNAcomplex& y);
|
||||
|
||||
// Set the direction for split ComputeDuidrj
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void set_dir(int);
|
||||
|
||||
#ifdef TIMING_INFO
|
||||
double* timers;
|
||||
timespec starttime, endtime;
|
||||
@ -166,16 +202,15 @@ inline
|
||||
|
||||
int twojmax, diagonalstyle;
|
||||
|
||||
t_sna_2d blist;
|
||||
t_sna_2c ulisttot;
|
||||
t_sna_2c_lr ulisttot_lr;
|
||||
t_sna_2c zlist;
|
||||
t_sna_2d_ll blist;
|
||||
t_sna_2c_ll ulisttot;
|
||||
t_sna_2c_ll zlist;
|
||||
|
||||
t_sna_3c ulist;
|
||||
t_sna_2c_lr ylist;
|
||||
t_sna_3c_ll ulist;
|
||||
t_sna_2c_ll ylist;
|
||||
|
||||
// derivatives of data
|
||||
t_sna_4c dulist;
|
||||
t_sna_4c_ll dulist;
|
||||
|
||||
int idxcg_max, idxu_max, idxz_max, idxb_max;
|
||||
|
||||
@ -212,10 +247,7 @@ inline
|
||||
|
||||
inline
|
||||
void init_rootpqarray(); // init()
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void zero_uarraytot(const int&); // compute_ui
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void addself_uarraytot(const int&, const double&); // compute_ui
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void add_uarraytot(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int, double, double, double); // compute_ui
|
||||
|
||||
@ -223,6 +255,12 @@ inline
|
||||
void compute_uarray(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int,
|
||||
double, double, double,
|
||||
double, double); // compute_ui
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_uarray_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int,
|
||||
double, double, double,
|
||||
double, double); // compute_ui_cpu
|
||||
|
||||
|
||||
inline
|
||||
double deltacg(int, int, int); // init_clebsch_gordan
|
||||
|
||||
@ -232,6 +270,10 @@ inline
|
||||
void compute_duarray(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int,
|
||||
double, double, double, // compute_duidrj
|
||||
double, double, double, double, double);
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void compute_duarray_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int, int,
|
||||
double, double, double, // compute_duidrj
|
||||
double, double, double, double, double);
|
||||
|
||||
// Sets the style for the switching function
|
||||
// 0 = none
|
||||
@ -243,6 +285,9 @@ inline
|
||||
|
||||
int bzero_flag; // 1 if bzero subtracted from barray
|
||||
Kokkos::View<double*, DeviceType> bzero; // array of B values for isolated atoms
|
||||
|
||||
// for per-direction dulist calculation, specify the direction.
|
||||
int dir;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@ -224,16 +224,19 @@ void SNAKokkos<DeviceType>::grow_rij(int newnatom, int newnmax)
|
||||
rcutij = t_sna_2d("sna:rcutij",natom,nmax);
|
||||
dedr = t_sna_3d("sna:dedr",natom,nmax,3);
|
||||
|
||||
blist = t_sna_2d("sna:blist",natom,idxb_max);
|
||||
ulisttot = t_sna_2c("sna:ulisttot",natom,idxu_max);
|
||||
if (!Kokkos::Impl::is_same<typename DeviceType::array_layout,Kokkos::LayoutRight>::value)
|
||||
ulisttot_lr = t_sna_2c_lr("sna:ulisttot_lr",natom,idxu_max);
|
||||
zlist = t_sna_2c("sna:zlist",natom,idxz_max);
|
||||
blist = t_sna_2d_ll("sna:blist",idxb_max,natom);
|
||||
//ulisttot = t_sna_2c("sna:ulisttot",natom,idxu_max);
|
||||
ulisttot = t_sna_2c_ll("sna:ulisttot",idxu_max,natom);
|
||||
|
||||
ulist = t_sna_3c("sna:ulist",natom,nmax,idxu_max);
|
||||
ylist = t_sna_2c_lr("sna:ylist",natom,idxu_max);
|
||||
zlist = t_sna_2c_ll("sna:zlist",idxz_max,natom);
|
||||
|
||||
dulist = t_sna_4c("sna:dulist",natom,nmax,idxu_max);
|
||||
//ulist = t_sna_3c("sna:ulist",natom,nmax,idxu_max);
|
||||
ulist = t_sna_3c_ll("sna:ulist",idxu_max,natom,nmax);
|
||||
//ylist = t_sna_2c_lr("sna:ylist",natom,idxu_max);
|
||||
ylist = t_sna_2c_ll("sna:ylist",idxu_max,natom);
|
||||
|
||||
//dulist = t_sna_4c("sna:dulist",natom,nmax,idxu_max);
|
||||
dulist = t_sna_4c_ll("sna:dulist",idxu_max,natom,nmax);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
@ -242,19 +245,31 @@ void SNAKokkos<DeviceType>::grow_rij(int newnatom, int newnmax)
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::pre_ui(const int& iatom)
|
||||
void SNAKokkos<DeviceType>::pre_ui(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, const int& iatom)
|
||||
{
|
||||
//if(team.team_rank() == 0) {
|
||||
zero_uarraytot(iatom);
|
||||
//Kokkos::single(Kokkos::PerThread(team), [&] (){
|
||||
addself_uarraytot(iatom,wself);
|
||||
//});
|
||||
//}
|
||||
//team.team_barrier();
|
||||
for (int j = 0; j <= twojmax; j++) {
|
||||
const int jju = idxu_block(j);
|
||||
|
||||
// Only diagonal elements get initialized
|
||||
// for (int m = 0; m < (j+1)*(j+1); m++)
|
||||
Kokkos::parallel_for(Kokkos::ThreadVectorRange(team, (j+1)*(j+1)),
|
||||
[&] (const int m) {
|
||||
|
||||
const int jjup = jju + m;
|
||||
|
||||
// if m is on the "diagonal", initialize it with the self energy.
|
||||
// Otherwise zero it out
|
||||
SNAcomplex init = {0., 0.};
|
||||
if (m % (j+2) == 0) { init = {wself, 0.0}; }
|
||||
|
||||
ulisttot(jjup, iatom) = init;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
compute Ui by summing over neighbors j
|
||||
compute Ui by summing over bispectrum components
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
@ -280,11 +295,72 @@ void SNAKokkos<DeviceType>::compute_ui(const typename Kokkos::TeamPolicy<DeviceT
|
||||
z0 = r / tan(theta0);
|
||||
|
||||
compute_uarray(team, iatom, jnbor, x, y, z, z0, r);
|
||||
|
||||
// if we're on the GPU, accumulating into uarraytot is done in a separate kernel.
|
||||
// if we're not, it's more efficient to include it in compute_uarray.
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_ui_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor)
|
||||
{
|
||||
double rsq, r, x, y, z, z0, theta0;
|
||||
|
||||
// utot(j,ma,mb) = 0 for all j,ma,ma
|
||||
// utot(j,ma,ma) = 1 for all j,ma
|
||||
// for j in neighbors of i:
|
||||
// compute r0 = (x,y,z,z0)
|
||||
// utot(j,ma,mb) += u(r0;j,ma,mb) for all j,ma,mb
|
||||
|
||||
x = rij(iatom,jnbor,0);
|
||||
y = rij(iatom,jnbor,1);
|
||||
z = rij(iatom,jnbor,2);
|
||||
rsq = x * x + y * y + z * z;
|
||||
r = sqrt(rsq);
|
||||
|
||||
theta0 = (r - rmin0) * rfac0 * MY_PI / (rcutij(iatom,jnbor) - rmin0);
|
||||
// theta0 = (r - rmin0) * rscale0;
|
||||
z0 = r / tan(theta0);
|
||||
|
||||
compute_uarray_cpu(team, iatom, jnbor, x, y, z, z0, r);
|
||||
add_uarraytot(team, iatom, jnbor, r, wj(iatom,jnbor), rcutij(iatom,jnbor));
|
||||
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
compute UiTot by summing over neighbors
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_uitot(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int idx, int iatom, int ninside)
|
||||
{
|
||||
// fuse initialize in, avoid this load?
|
||||
SNAcomplex utot = ulisttot(idx, iatom);
|
||||
for (int jnbor = 0; jnbor < ninside; jnbor++) {
|
||||
|
||||
const auto x = rij(iatom,jnbor,0);
|
||||
const auto y = rij(iatom,jnbor,1);
|
||||
const auto z = rij(iatom,jnbor,2);
|
||||
const auto rsq = x * x + y * y + z * z;
|
||||
const auto r = sqrt(rsq);
|
||||
|
||||
const double wj_local = wj(iatom, jnbor);
|
||||
const double rcut = rcutij(iatom, jnbor);
|
||||
const double sfac = compute_sfac(r, rcut) * wj_local;
|
||||
|
||||
auto ulist_local = ulist(idx, iatom, jnbor);
|
||||
utot.re += sfac * ulist_local.re;
|
||||
utot.im += sfac * ulist_local.im;
|
||||
}
|
||||
|
||||
ulisttot(idx, iatom) = utot;
|
||||
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
compute Zi by summing over products of Ui
|
||||
not updated yet
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
@ -306,8 +382,8 @@ void SNAKokkos<DeviceType>::compute_zi(const int& iter)
|
||||
|
||||
const double* cgblock = cglist.data() + idxcg_block(j1,j2,j);
|
||||
|
||||
zlist(iatom,jjz).re = 0.0;
|
||||
zlist(iatom,jjz).im = 0.0;
|
||||
zlist(jjz,iatom).re = 0.0;
|
||||
zlist(jjz,iatom).im = 0.0;
|
||||
|
||||
int jju1 = idxu_block[j1] + (j1+1)*mb1min;
|
||||
int jju2 = idxu_block[j2] + (j2+1)*mb2max;
|
||||
@ -321,15 +397,15 @@ void SNAKokkos<DeviceType>::compute_zi(const int& iter)
|
||||
int ma2 = ma2max;
|
||||
int icga = ma1min*(j2+1) + ma2max;
|
||||
for(int ia = 0; ia < na; ia++) {
|
||||
suma1_r += cgblock[icga] * (ulisttot(iatom,jju1+ma1).re * ulisttot(iatom,jju2+ma2).re - ulisttot(iatom,jju1+ma1).im * ulisttot(iatom,jju2+ma2).im);
|
||||
suma1_i += cgblock[icga] * (ulisttot(iatom,jju1+ma1).re * ulisttot(iatom,jju2+ma2).im + ulisttot(iatom,jju1+ma1).im * ulisttot(iatom,jju2+ma2).re);
|
||||
suma1_r += cgblock[icga] * (ulisttot(jju1+ma1,iatom).re * ulisttot(jju2+ma2,iatom).re - ulisttot(jju1+ma1,iatom).im * ulisttot(jju2+ma2,iatom).im);
|
||||
suma1_i += cgblock[icga] * (ulisttot(jju1+ma1,iatom).re * ulisttot(jju2+ma2,iatom).im + ulisttot(jju1+ma1,iatom).im * ulisttot(jju2+ma2,iatom).re);
|
||||
ma1++;
|
||||
ma2--;
|
||||
icga += j2;
|
||||
} // end loop over ia
|
||||
|
||||
zlist(iatom,jjz).re += cgblock[icgb] * suma1_r;
|
||||
zlist(iatom,jjz).im += cgblock[icgb] * suma1_i;
|
||||
zlist(jjz,iatom).re += cgblock[icgb] * suma1_r;
|
||||
zlist(jjz,iatom).im += cgblock[icgb] * suma1_i;
|
||||
|
||||
jju1 += j1+1;
|
||||
jju2 -= j2+1;
|
||||
@ -343,10 +419,9 @@ void SNAKokkos<DeviceType>::compute_zi(const int& iter)
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::zero_yi(const int& iatom)
|
||||
void SNAKokkos<DeviceType>::zero_yi(const int& idx, const int& iatom)
|
||||
{
|
||||
for (int j = 0; j < idxu_max; j++)
|
||||
ylist(iatom,j) = {0.0,0.0};
|
||||
ylist(idx,iatom) = {0.0, 0.0};
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
@ -393,8 +468,8 @@ void SNAKokkos<DeviceType>::compute_yi(int iter,
|
||||
int icga = ma1min*(j2+1) + ma2max;
|
||||
|
||||
for(int ia = 0; ia < na; ia++) {
|
||||
suma1_r += cgblock[icga] * (ulisttot_lr(iatom,jju1+ma1).re * ulisttot_lr(iatom,jju2+ma2).re - ulisttot_lr(iatom,jju1+ma1).im * ulisttot_lr(iatom,jju2+ma2).im);
|
||||
suma1_i += cgblock[icga] * (ulisttot_lr(iatom,jju1+ma1).re * ulisttot_lr(iatom,jju2+ma2).im + ulisttot_lr(iatom,jju1+ma1).im * ulisttot_lr(iatom,jju2+ma2).re);
|
||||
suma1_r += cgblock[icga] * (ulisttot(jju1+ma1,iatom).re * ulisttot(jju2+ma2,iatom).re - ulisttot(jju1+ma1,iatom).im * ulisttot(jju2+ma2,iatom).im);
|
||||
suma1_i += cgblock[icga] * (ulisttot(jju1+ma1,iatom).re * ulisttot(jju2+ma2,iatom).im + ulisttot(jju1+ma1,iatom).im * ulisttot(jju2+ma2,iatom).re);
|
||||
ma1++;
|
||||
ma2--;
|
||||
icga += j2;
|
||||
@ -417,20 +492,20 @@ void SNAKokkos<DeviceType>::compute_yi(int iter,
|
||||
if (j >= j1) {
|
||||
const int jjb = idxb_block(j1,j2,j);
|
||||
if (j1 == j) {
|
||||
if (j2 == j) betaj = 3*beta(iatom,jjb);
|
||||
else betaj = 2*beta(iatom,jjb);
|
||||
} else betaj = beta(iatom,jjb);
|
||||
if (j2 == j) betaj = 3*beta(jjb,iatom);
|
||||
else betaj = 2*beta(jjb,iatom);
|
||||
} else betaj = beta(jjb,iatom);
|
||||
} else if (j >= j2) {
|
||||
const int jjb = idxb_block(j,j2,j1);
|
||||
if (j2 == j) betaj = 2*beta(iatom,jjb)*(j1+1)/(j+1.0);
|
||||
else betaj = beta(iatom,jjb)*(j1+1)/(j+1.0);
|
||||
if (j2 == j) betaj = 2*beta(jjb,iatom)*(j1+1)/(j+1.0);
|
||||
else betaj = beta(jjb,iatom)*(j1+1)/(j+1.0);
|
||||
} else {
|
||||
const int jjb = idxb_block(j2,j,j1);
|
||||
betaj = beta(iatom,jjb)*(j1+1)/(j+1.0);
|
||||
betaj = beta(jjb,iatom)*(j1+1)/(j+1.0);
|
||||
}
|
||||
|
||||
Kokkos::atomic_add(&(ylist(iatom,jju).re), betaj*ztmp_r);
|
||||
Kokkos::atomic_add(&(ylist(iatom,jju).im), betaj*ztmp_i);
|
||||
Kokkos::atomic_add(&(ylist(jju,iatom).re), betaj*ztmp_r);
|
||||
Kokkos::atomic_add(&(ylist(jju,iatom).im), betaj*ztmp_i);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
@ -441,18 +516,81 @@ template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_deidrj(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor)
|
||||
{
|
||||
t_scalar3<double> final_sum;
|
||||
|
||||
// Like in ComputeUi/ComputeDuidrj, regular loop over j.
|
||||
for (int j = 0; j <= twojmax; j++) {
|
||||
int jju = idxu_block(j);
|
||||
|
||||
// Flatten loop over ma, mb, reduce w/in
|
||||
|
||||
const int n_ma = j+1;
|
||||
// for (int mb = 0; 2*mb <= j; mb++)
|
||||
const int n_mb = j/2+1;
|
||||
|
||||
const int total_iters = n_ma * n_mb;
|
||||
|
||||
t_scalar3<double> sum;
|
||||
|
||||
//for (int m = 0; m < total_iters; m++) {
|
||||
Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team, total_iters),
|
||||
[&] (const int m, t_scalar3<double>& sum_tmp) {
|
||||
|
||||
// ma fast, mb slow
|
||||
int ma = m % n_ma;
|
||||
int mb = m / n_ma;
|
||||
|
||||
// get index
|
||||
const int jju_index = jju+mb+mb*j+ma;
|
||||
|
||||
// get ylist, rescale last element by 0.5
|
||||
SNAcomplex y_local = ylist(jju_index,iatom);
|
||||
|
||||
const SNAcomplex du_x = dulist(jju_index,iatom,jnbor,0);
|
||||
const SNAcomplex du_y = dulist(jju_index,iatom,jnbor,1);
|
||||
const SNAcomplex du_z = dulist(jju_index,iatom,jnbor,2);
|
||||
|
||||
if (j % 2 == 0 && 2*mb == j) {
|
||||
if (ma == mb) { y_local = 0.5*y_local; }
|
||||
else if (ma > mb) { y_local = { 0., 0. }; }
|
||||
// else the ma < mb gets "double counted", cancelling the 0.5.
|
||||
}
|
||||
|
||||
sum_tmp.x += du_x.re * y_local.re + du_x.im * y_local.im;
|
||||
sum_tmp.y += du_y.re * y_local.re + du_y.im * y_local.im;
|
||||
sum_tmp.z += du_z.re * y_local.re + du_z.im * y_local.im;
|
||||
|
||||
}, sum); // end loop over flattened ma,mb
|
||||
|
||||
final_sum.x += sum.x;
|
||||
final_sum.y += sum.y;
|
||||
final_sum.z += sum.z;
|
||||
}
|
||||
|
||||
Kokkos::single(Kokkos::PerThread(team), [&] () {
|
||||
dedr(iatom,jnbor,0) = final_sum.x*2.0;
|
||||
dedr(iatom,jnbor,1) = final_sum.y*2.0;
|
||||
dedr(iatom,jnbor,2) = final_sum.z*2.0;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_deidrj_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor)
|
||||
{
|
||||
t_scalar3<double> final_sum;
|
||||
|
||||
//for(int j = 0; j <= twojmax; j++) {
|
||||
Kokkos::parallel_reduce(Kokkos::ThreadVectorRange(team,twojmax+1),
|
||||
[&] (const int& j, t_scalar3<double>& sum_tmp) {
|
||||
//for(int j = 0; j <= twojmax; j++) {
|
||||
int jju = idxu_block[j];
|
||||
|
||||
for(int mb = 0; 2*mb < j; mb++)
|
||||
for(int ma = 0; ma <= j; ma++) {
|
||||
sum_tmp.x += dulist(iatom,jnbor,jju,0).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,0).im * ylist(iatom,jju).im;
|
||||
sum_tmp.y += dulist(iatom,jnbor,jju,1).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,1).im * ylist(iatom,jju).im;
|
||||
sum_tmp.z += dulist(iatom,jnbor,jju,2).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,2).im * ylist(iatom,jju).im;
|
||||
sum_tmp.x += dulist(jju,iatom,jnbor,0).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,0).im * ylist(jju,iatom).im;
|
||||
sum_tmp.y += dulist(jju,iatom,jnbor,1).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,1).im * ylist(jju,iatom).im;
|
||||
sum_tmp.z += dulist(jju,iatom,jnbor,2).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,2).im * ylist(jju,iatom).im;
|
||||
jju++;
|
||||
} //end loop over ma mb
|
||||
|
||||
@ -462,25 +600,24 @@ void SNAKokkos<DeviceType>::compute_deidrj(const typename Kokkos::TeamPolicy<Dev
|
||||
|
||||
int mb = j/2;
|
||||
for(int ma = 0; ma < mb; ma++) {
|
||||
sum_tmp.x += dulist(iatom,jnbor,jju,0).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,0).im * ylist(iatom,jju).im;
|
||||
sum_tmp.y += dulist(iatom,jnbor,jju,1).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,1).im * ylist(iatom,jju).im;
|
||||
sum_tmp.z += dulist(iatom,jnbor,jju,2).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,2).im * ylist(iatom,jju).im;
|
||||
sum_tmp.x += dulist(jju,iatom,jnbor,0).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,0).im * ylist(jju,iatom).im;
|
||||
sum_tmp.y += dulist(jju,iatom,jnbor,1).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,1).im * ylist(jju,iatom).im;
|
||||
sum_tmp.z += dulist(jju,iatom,jnbor,2).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,2).im * ylist(jju,iatom).im;
|
||||
jju++;
|
||||
}
|
||||
|
||||
//int ma = mb;
|
||||
sum_tmp.x += (dulist(iatom,jnbor,jju,0).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,0).im * ylist(iatom,jju).im)*0.5;
|
||||
sum_tmp.y += (dulist(iatom,jnbor,jju,1).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,1).im * ylist(iatom,jju).im)*0.5;
|
||||
sum_tmp.z += (dulist(iatom,jnbor,jju,2).re * ylist(iatom,jju).re + dulist(iatom,jnbor,jju,2).im * ylist(iatom,jju).im)*0.5;
|
||||
sum_tmp.x += (dulist(jju,iatom,jnbor,0).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,0).im * ylist(jju,iatom).im)*0.5;
|
||||
sum_tmp.y += (dulist(jju,iatom,jnbor,1).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,1).im * ylist(jju,iatom).im)*0.5;
|
||||
sum_tmp.z += (dulist(jju,iatom,jnbor,2).re * ylist(jju,iatom).re + dulist(jju,iatom,jnbor,2).im * ylist(jju,iatom).im)*0.5;
|
||||
} // end if jeven
|
||||
|
||||
},sum); // end loop over j
|
||||
//}
|
||||
},final_sum); // end loop over j
|
||||
|
||||
Kokkos::single(Kokkos::PerThread(team), [&] () {
|
||||
dedr(iatom,jnbor,0) = sum.x*2.0;
|
||||
dedr(iatom,jnbor,1) = sum.y*2.0;
|
||||
dedr(iatom,jnbor,2) = sum.z*2.0;
|
||||
dedr(iatom,jnbor,0) = final_sum.x*2.0;
|
||||
dedr(iatom,jnbor,1) = final_sum.y*2.0;
|
||||
dedr(iatom,jnbor,2) = final_sum.z*2.0;
|
||||
});
|
||||
|
||||
}
|
||||
@ -524,8 +661,8 @@ void SNAKokkos<DeviceType>::compute_bi(const typename Kokkos::TeamPolicy<DeviceT
|
||||
const int jjz_index = jjz+mb*(j+1)+ma;
|
||||
if (2*mb == j) return;
|
||||
sum +=
|
||||
ulisttot(iatom,jju_index).re * zlist(iatom,jjz_index).re +
|
||||
ulisttot(iatom,jju_index).im * zlist(iatom,jjz_index).im;
|
||||
ulisttot(jju_index,iatom).re * zlist(jjz_index,iatom).re +
|
||||
ulisttot(jju_index,iatom).im * zlist(jjz_index,iatom).im;
|
||||
},sumzu_temp); // end loop over ma, mb
|
||||
sumzu += sumzu_temp;
|
||||
|
||||
@ -539,8 +676,8 @@ void SNAKokkos<DeviceType>::compute_bi(const typename Kokkos::TeamPolicy<DeviceT
|
||||
const int jju_index = jju+(mb-1)*(j+1)+(j+1)+ma;
|
||||
const int jjz_index = jjz+(mb-1)*(j+1)+(j+1)+ma;
|
||||
sum +=
|
||||
ulisttot(iatom,jju_index).re * zlist(iatom,jjz_index).re +
|
||||
ulisttot(iatom,jju_index).im * zlist(iatom,jjz_index).im;
|
||||
ulisttot(jju_index,iatom).re * zlist(jjz_index,iatom).re +
|
||||
ulisttot(jju_index,iatom).im * zlist(jjz_index,iatom).im;
|
||||
},sumzu_temp); // end loop over ma
|
||||
sumzu += sumzu_temp;
|
||||
|
||||
@ -548,8 +685,8 @@ void SNAKokkos<DeviceType>::compute_bi(const typename Kokkos::TeamPolicy<DeviceT
|
||||
const int jju_index = jju+(mb-1)*(j+1)+(j+1)+ma;
|
||||
const int jjz_index = jjz+(mb-1)*(j+1)+(j+1)+ma;
|
||||
sumzu += 0.5*
|
||||
(ulisttot(iatom,jju_index).re * zlist(iatom,jjz_index).re +
|
||||
ulisttot(iatom,jju_index).im * zlist(iatom,jjz_index).im);
|
||||
(ulisttot(jju_index,iatom).re * zlist(jjz_index,iatom).re +
|
||||
ulisttot(jju_index,iatom).im * zlist(jjz_index,iatom).im);
|
||||
} // end if jeven
|
||||
|
||||
Kokkos::single(Kokkos::PerThread(team), [&] () {
|
||||
@ -560,7 +697,7 @@ void SNAKokkos<DeviceType>::compute_bi(const typename Kokkos::TeamPolicy<DeviceT
|
||||
if (bzero_flag)
|
||||
sumzu -= bzero[j];
|
||||
|
||||
blist(iatom,jjb) = sumzu;
|
||||
blist(jjb,iatom) = sumzu;
|
||||
});
|
||||
});
|
||||
//} // end loop over j
|
||||
@ -593,39 +730,26 @@ void SNAKokkos<DeviceType>::compute_duidrj(const typename Kokkos::TeamPolicy<Dev
|
||||
compute_duarray(team, iatom, jnbor, x, y, z, z0, r, dz0dr, wj(iatom,jnbor), rcutij(iatom,jnbor));
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::zero_uarraytot(const int& iatom)
|
||||
void SNAKokkos<DeviceType>::compute_duidrj_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor)
|
||||
{
|
||||
{
|
||||
//Kokkos::parallel_for(Kokkos::ThreadVectorRange(team,ulisttot.extent(1)),
|
||||
// [&] (const int& i) {
|
||||
for (int i = 0; i < ulisttot.extent(1); i++) {
|
||||
ulisttot(iatom,i).re = 0.0;
|
||||
ulisttot(iatom,i).im = 0.0;
|
||||
}
|
||||
//});
|
||||
}
|
||||
}
|
||||
double rsq, r, x, y, z, z0, theta0, cs, sn;
|
||||
double dz0dr;
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
x = rij(iatom,jnbor,0);
|
||||
y = rij(iatom,jnbor,1);
|
||||
z = rij(iatom,jnbor,2);
|
||||
rsq = x * x + y * y + z * z;
|
||||
r = sqrt(rsq);
|
||||
double rscale0 = rfac0 * MY_PI / (rcutij(iatom,jnbor) - rmin0);
|
||||
theta0 = (r - rmin0) * rscale0;
|
||||
cs = cos(theta0);
|
||||
sn = sin(theta0);
|
||||
z0 = r * cs / sn;
|
||||
dz0dr = z0 / r - (r*rscale0) * (rsq + z0 * z0) / rsq;
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::addself_uarraytot(const int& iatom, const double& wself_in)
|
||||
{
|
||||
//Kokkos::parallel_for(Kokkos::ThreadVectorRange(team,twojmax+1),
|
||||
// [&] (const int& j) {
|
||||
for (int j = 0; j <= twojmax; j++) {
|
||||
int jju = idxu_block[j];
|
||||
for (int ma = 0; ma <= j; ma++) {
|
||||
ulisttot(iatom,jju).re = wself_in;
|
||||
ulisttot(iatom,jju).im = 0.0;
|
||||
jju += j+2;
|
||||
}
|
||||
}//});
|
||||
compute_duarray_cpu(team, iatom, jnbor, x, y, z, z0, r, dz0dr, wj(iatom,jnbor), rcutij(iatom,jnbor));
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
@ -639,10 +763,10 @@ void SNAKokkos<DeviceType>::add_uarraytot(const typename Kokkos::TeamPolicy<Devi
|
||||
{
|
||||
const double sfac = compute_sfac(r, rcut) * wj;
|
||||
|
||||
Kokkos::parallel_for(Kokkos::ThreadVectorRange(team,ulisttot.extent(1)),
|
||||
Kokkos::parallel_for(Kokkos::ThreadVectorRange(team,ulisttot.extent(0)),
|
||||
[&] (const int& i) {
|
||||
Kokkos::atomic_add(&(ulisttot(iatom,i).re), sfac * ulist(iatom,jnbor,i).re);
|
||||
Kokkos::atomic_add(&(ulisttot(iatom,i).im), sfac * ulist(iatom,jnbor,i).im);
|
||||
Kokkos::atomic_add(&(ulisttot(i,iatom).re), sfac * ulist(i,iatom,jnbor).re);
|
||||
Kokkos::atomic_add(&(ulisttot(i,iatom).im), sfac * ulist(i,iatom,jnbor).im);
|
||||
});
|
||||
}
|
||||
|
||||
@ -655,6 +779,119 @@ KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_uarray(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor,
|
||||
double x, double y, double z,
|
||||
double z0, double r)
|
||||
{
|
||||
// define size of scratch memory buffer
|
||||
const int max_m_tile = (twojmax+1)*(twojmax+1);
|
||||
const int team_rank = team.team_rank();
|
||||
|
||||
// get scratch memory double buffer
|
||||
SNAcomplex* buf1 = (SNAcomplex*)team.team_shmem( ).get_shmem(team.team_size()*max_m_tile*sizeof(SNAcomplex), 0);
|
||||
SNAcomplex* buf2 = (SNAcomplex*)team.team_shmem( ).get_shmem(team.team_size()*max_m_tile*sizeof(SNAcomplex), 0);
|
||||
|
||||
// compute Cayley-Klein parameters for unit quaternion,
|
||||
// pack into complex number
|
||||
double r0inv = 1.0 / sqrt(r * r + z0 * z0);
|
||||
SNAcomplex a = { r0inv * z0, -r0inv * z };
|
||||
SNAcomplex b = { r0inv * y, -r0inv * x };
|
||||
|
||||
// VMK Section 4.8.2
|
||||
|
||||
// All writes go to global memory and shared memory
|
||||
// so we can avoid all global memory reads
|
||||
Kokkos::single(Kokkos::PerThread(team), [=]() {
|
||||
ulist(0,iatom,jnbor) = { 1.0, 0.0 };
|
||||
buf1[max_m_tile*team_rank] = {1.,0.};
|
||||
});
|
||||
|
||||
for (int j = 1; j <= twojmax; j++) {
|
||||
const int jju = idxu_block[j];
|
||||
int jjup = idxu_block[j-1];
|
||||
|
||||
// fill in left side of matrix layer from previous layer
|
||||
|
||||
// Flatten loop over ma, mb, need to figure out total
|
||||
// number of iterations
|
||||
|
||||
// for (int ma = 0; ma <= j; ma++)
|
||||
const int n_ma = j+1;
|
||||
// for (int mb = 0; 2*mb <= j; mb++)
|
||||
const int n_mb = j/2+1;
|
||||
|
||||
const int total_iters = n_ma * n_mb;
|
||||
|
||||
//for (int m = 0; m < total_iters; m++) {
|
||||
Kokkos::parallel_for(Kokkos::ThreadVectorRange(team, total_iters),
|
||||
[&] (const int m) {
|
||||
|
||||
// ma fast, mb slow
|
||||
int ma = m % n_ma;
|
||||
int mb = m / n_ma;
|
||||
|
||||
// index into global memory array
|
||||
const int jju_index = jju+mb+mb*j+ma;
|
||||
|
||||
// index into shared memory buffer for previous level
|
||||
const int jju_shared_idx = max_m_tile*team_rank+mb+mb*j+ma;
|
||||
|
||||
// index into shared memory buffer for next level
|
||||
const int jjup_shared_idx = max_m_tile*team_rank+mb*j+ma;
|
||||
|
||||
SNAcomplex u_accum = {0., 0.};
|
||||
|
||||
// VMK recursion relation: grab contribution which is multiplied by a*
|
||||
const double rootpq1 = rootpqarray(j - ma, j - mb);
|
||||
const SNAcomplex u_up1 = (ma < j)?rootpq1*buf1[jjup_shared_idx]:SNAcomplex(0.,0.);
|
||||
caconjxpy(a, u_up1, u_accum);
|
||||
|
||||
// VMK recursion relation: grab contribution which is multiplied by b*
|
||||
const double rootpq2 = -rootpqarray(ma, j - mb);
|
||||
const SNAcomplex u_up2 = (ma > 0)?rootpq2*buf1[jjup_shared_idx-1]:SNAcomplex(0.,0.);
|
||||
caconjxpy(b, u_up2, u_accum);
|
||||
|
||||
ulist(jju_index,iatom,jnbor) = u_accum;
|
||||
|
||||
// We no longer accumulate into ulisttot in this kernel.
|
||||
// Instead, we have a separate kernel which avoids atomics.
|
||||
// Running two separate kernels is net faster.
|
||||
|
||||
// back up into shared memory for next iter
|
||||
if (j != twojmax) buf2[jju_shared_idx] = u_accum;
|
||||
|
||||
// copy left side to right side with inversion symmetry VMK 4.4(2)
|
||||
// u[ma-j,mb-j] = (-1)^(ma-mb)*Conj([u[ma,mb))
|
||||
// We can avoid this if we're on the last row for an integer j
|
||||
if (!(n_ma % 2 == 1 && (mb+1) == n_mb)) {
|
||||
|
||||
int sign_factor = ((ma%2==0)?1:-1)*(mb%2==0?1:-1);
|
||||
const int jjup_flip = jju+(j+1-mb)*(j+1)-(ma+1);
|
||||
const int jju_shared_flip = max_m_tile*team_rank+(j+1-mb)*(j+1)-(ma+1);
|
||||
|
||||
if (sign_factor == 1) {
|
||||
u_accum.im = -u_accum.im;
|
||||
} else {
|
||||
u_accum.re = -u_accum.re;
|
||||
}
|
||||
ulist(jjup_flip,iatom,jnbor) = u_accum;
|
||||
if (j != twojmax) buf2[jju_shared_flip] = u_accum;
|
||||
}
|
||||
});
|
||||
// In CUDA backend,
|
||||
// ThreadVectorRange has a __syncwarp (appropriately masked for
|
||||
// vector lengths < 32) implict at the end
|
||||
|
||||
// swap double buffers
|
||||
auto tmp = buf1; buf1 = buf2; buf2 = tmp;
|
||||
//std::swap(buf1, buf2); // throws warnings
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// CPU version
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_uarray_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor,
|
||||
double x, double y, double z,
|
||||
double z0, double r)
|
||||
{
|
||||
double r0inv;
|
||||
double a_r, b_r, a_i, b_i;
|
||||
@ -670,8 +907,8 @@ void SNAKokkos<DeviceType>::compute_uarray(const typename Kokkos::TeamPolicy<Dev
|
||||
|
||||
// VMK Section 4.8.2
|
||||
|
||||
ulist(iatom,jnbor,0).re = 1.0;
|
||||
ulist(iatom,jnbor,0).im = 0.0;
|
||||
ulist(0,iatom,jnbor).re = 1.0;
|
||||
ulist(0,iatom,jnbor).im = 0.0;
|
||||
|
||||
for (int j = 1; j <= twojmax; j++) {
|
||||
int jju = idxu_block[j];
|
||||
@ -683,31 +920,31 @@ void SNAKokkos<DeviceType>::compute_uarray(const typename Kokkos::TeamPolicy<Dev
|
||||
[&] (const int& mb) {
|
||||
//for (int mb = 0; 2*mb <= j; mb++) {
|
||||
const int jju_index = jju+mb+mb*j;
|
||||
ulist(iatom,jnbor,jju_index).re = 0.0;
|
||||
ulist(iatom,jnbor,jju_index).im = 0.0;
|
||||
ulist(jju_index,iatom,jnbor).re = 0.0;
|
||||
ulist(jju_index,iatom,jnbor).im = 0.0;
|
||||
|
||||
for (int ma = 0; ma < j; ma++) {
|
||||
const int jju_index = jju+mb+mb*j+ma;
|
||||
const int jjup_index = jjup+mb*j+ma;
|
||||
rootpq = rootpqarray(j - ma,j - mb);
|
||||
ulist(iatom,jnbor,jju_index).re +=
|
||||
ulist(jju_index,iatom,jnbor,jju).re +=
|
||||
rootpq *
|
||||
(a_r * ulist(iatom,jnbor,jjup_index).re +
|
||||
a_i * ulist(iatom,jnbor,jjup_index).im);
|
||||
ulist(iatom,jnbor,jju_index).im +=
|
||||
(a_r * ulist(jjup_index,iatom,jnbor).re +
|
||||
a_i * ulist(jjup_index,iatom,jnbor).im);
|
||||
ulist(jju_index,iatom,jnbor).im +=
|
||||
rootpq *
|
||||
(a_r * ulist(iatom,jnbor,jjup_index).im -
|
||||
a_i * ulist(iatom,jnbor,jjup_index).re);
|
||||
(a_r * ulist(jjup_index,iatom,jnbor).im -
|
||||
a_i * ulist(jjup_index,iatom,jnbor).re);
|
||||
|
||||
rootpq = rootpqarray(ma + 1,j - mb);
|
||||
ulist(iatom,jnbor,jju_index+1).re =
|
||||
ulist(jju_index+1,iatom,jnbor).re =
|
||||
-rootpq *
|
||||
(b_r * ulist(iatom,jnbor,jjup_index).re +
|
||||
b_i * ulist(iatom,jnbor,jjup_index).im);
|
||||
ulist(iatom,jnbor,jju_index+1).im =
|
||||
(b_r * ulist(jjup_index,iatom,jnbor).re +
|
||||
b_i * ulist(jjup_index,iatom,jnbor).im);
|
||||
ulist(jju_index+1,iatom,jnbor).im =
|
||||
-rootpq *
|
||||
(b_r * ulist(iatom,jnbor,jjup_index).im -
|
||||
b_i * ulist(iatom,jnbor,jjup_index).re);
|
||||
(b_r * ulist(jjup_index,iatom,jnbor).im -
|
||||
b_i * ulist(jjup_index,iatom,jnbor).re);
|
||||
}
|
||||
});
|
||||
|
||||
@ -725,11 +962,11 @@ void SNAKokkos<DeviceType>::compute_uarray(const typename Kokkos::TeamPolicy<Dev
|
||||
const int jju_index = jju+mb*(j+1)+ma;
|
||||
const int jjup_index = jjup-mb*(j+1)-ma;
|
||||
if (mapar == 1) {
|
||||
ulist(iatom,jnbor,jjup_index).re = ulist(iatom,jnbor,jju_index).re;
|
||||
ulist(iatom,jnbor,jjup_index).im = -ulist(iatom,jnbor,jju_index).im;
|
||||
ulist(jjup_index,iatom,jnbor).re = ulist(jju_index,iatom,jnbor).re;
|
||||
ulist(jjup_index,iatom,jnbor).im = -ulist(jju_index,iatom,jnbor).im;
|
||||
} else {
|
||||
ulist(iatom,jnbor,jjup_index).re = -ulist(iatom,jnbor,jju_index).re;
|
||||
ulist(iatom,jnbor,jjup_index).im = ulist(iatom,jnbor,jju_index).im;
|
||||
ulist(jjup_index,iatom,jnbor).re = -ulist(jju_index,iatom,jnbor).re;
|
||||
ulist(jjup_index,iatom,jnbor).im = ulist(jju_index,iatom,jnbor).im;
|
||||
}
|
||||
mapar = -mapar;
|
||||
}
|
||||
@ -737,12 +974,6 @@ void SNAKokkos<DeviceType>::compute_uarray(const typename Kokkos::TeamPolicy<Dev
|
||||
}
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
void SNAKokkos<DeviceType>::transpose_ulisttot()
|
||||
{
|
||||
UlisttotHelper<typename DeviceType::array_layout,decltype(ulisttot_lr),decltype(ulisttot)>::transpose(ulisttot_lr,ulisttot);
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
compute derivatives of Wigner U-functions for one neighbor
|
||||
see comments in compute_uarray()
|
||||
@ -755,6 +986,149 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
|
||||
double z0, double r, double dz0dr,
|
||||
double wj, double rcut)
|
||||
{
|
||||
|
||||
// get shared memory offset
|
||||
const int max_m_tile = (twojmax+1)*(twojmax+1);
|
||||
const int team_rank = team.team_rank();
|
||||
|
||||
// double buffer for ulist
|
||||
SNAcomplex* ulist_buf1 = (SNAcomplex*)team.team_shmem( ).get_shmem(team.team_size()*max_m_tile*sizeof(SNAcomplex), 0);
|
||||
SNAcomplex* ulist_buf2 = (SNAcomplex*)team.team_shmem( ).get_shmem(team.team_size()*max_m_tile*sizeof(SNAcomplex), 0);
|
||||
|
||||
// double buffer for dulist
|
||||
SNAcomplex* dulist_buf1 = (SNAcomplex*)team.team_shmem( ).get_shmem(team.team_size()*max_m_tile*sizeof(SNAcomplex), 0);
|
||||
SNAcomplex* dulist_buf2 = (SNAcomplex*)team.team_shmem( ).get_shmem(team.team_size()*max_m_tile*sizeof(SNAcomplex), 0);
|
||||
|
||||
const double sfac = wj * compute_sfac(r, rcut);
|
||||
const double dsfac = wj * compute_dsfac(r, rcut);
|
||||
|
||||
const double rinv = 1.0 / r;
|
||||
|
||||
// extract a single unit vector
|
||||
const double u = (dir == 0 ? x * rinv : dir == 1 ? y * rinv : z * rinv);
|
||||
|
||||
// Compute Cayley-Klein parameters for unit quaternion
|
||||
|
||||
const double r0inv = 1.0 / sqrt(r * r + z0 * z0);
|
||||
|
||||
const SNAcomplex a = { r0inv * z0, -r0inv * z };
|
||||
const SNAcomplex b = { r0inv * y, -r0inv * x };
|
||||
|
||||
const double dr0invdr = -r0inv * r0inv * r0inv * (r + z0 * dz0dr);
|
||||
const double dr0inv = dr0invdr * u;
|
||||
const double dz0 = dz0dr * u;
|
||||
|
||||
const SNAcomplex da = { dz0 * r0inv + z0 * dr0inv,
|
||||
- z * dr0inv + (dir == 2 ? - r0inv : 0.) };
|
||||
|
||||
const SNAcomplex db = { y * dr0inv + (dir==1?r0inv:0.),
|
||||
-x * dr0inv + (dir==0?-r0inv:0.) };
|
||||
|
||||
// single has a warp barrier at the end
|
||||
Kokkos::single(Kokkos::PerThread(team), [=]() {
|
||||
dulist(0,iatom,jnbor,dir) = { dsfac * u, 0. }; // fold in chain rule here
|
||||
ulist_buf1[max_m_tile*team_rank] = {1., 0.};
|
||||
dulist_buf1[max_m_tile*team_rank] = {0., 0.};
|
||||
});
|
||||
|
||||
|
||||
for (int j = 1; j <= twojmax; j++) {
|
||||
int jju = idxu_block[j];
|
||||
int jjup = idxu_block[j-1];
|
||||
|
||||
// flatten the loop over ma,mb
|
||||
|
||||
// for (int ma = 0; ma <= j; ma++)
|
||||
const int n_ma = j+1;
|
||||
// for (int mb = 0; 2*mb <= j; mb++)
|
||||
const int n_mb = j/2+1;
|
||||
|
||||
const int total_iters = n_ma * n_mb;
|
||||
|
||||
//for (int m = 0; m < total_iters; m++) {
|
||||
Kokkos::parallel_for(Kokkos::ThreadVectorRange(team, total_iters),
|
||||
[&] (const int m) {
|
||||
|
||||
// ma fast, mb slow
|
||||
int ma = m % n_ma;
|
||||
int mb = m / n_ma;
|
||||
|
||||
const int jju_index = jju+mb+mb*j+ma;
|
||||
|
||||
// index into shared memory
|
||||
const int jju_shared_idx = max_m_tile*team_rank+mb+mb*j+ma;
|
||||
const int jjup_shared_idx = max_m_tile*team_rank+mb*j+ma;
|
||||
|
||||
// Need to compute and accumulate both u and du (mayhaps, we could probably
|
||||
// balance some read and compute by reading u each time).
|
||||
SNAcomplex u_accum = { 0., 0. };
|
||||
SNAcomplex du_accum = { 0., 0. };
|
||||
|
||||
const double rootpq1 = rootpqarray(j - ma, j - mb);
|
||||
const SNAcomplex u_up1 = (ma < j)?rootpq1*ulist_buf1[jjup_shared_idx]:SNAcomplex(0.,0.);
|
||||
caconjxpy(a, u_up1, u_accum);
|
||||
|
||||
const double rootpq2 = -rootpqarray(ma, j - mb);
|
||||
const SNAcomplex u_up2 = (ma > 0)?rootpq2*ulist_buf1[jjup_shared_idx-1]:SNAcomplex(0.,0.);
|
||||
caconjxpy(b, u_up2, u_accum);
|
||||
|
||||
// No need to save u_accum to global memory
|
||||
if (j != twojmax) ulist_buf2[jju_shared_idx] = u_accum;
|
||||
|
||||
// Next, spin up du_accum
|
||||
const SNAcomplex du_up1 = (ma < j) ? rootpq1*dulist_buf1[jjup_shared_idx] : SNAcomplex(0.,0.);
|
||||
caconjxpy(da, u_up1, du_accum);
|
||||
caconjxpy(a, du_up1, du_accum);
|
||||
|
||||
const SNAcomplex du_up2 = (ma > 0) ? rootpq2*dulist_buf1[jjup_shared_idx-1] : SNAcomplex(0.,0.);
|
||||
caconjxpy(db, u_up2, du_accum);
|
||||
caconjxpy(b, du_up2, du_accum);
|
||||
|
||||
dulist(jju_index,iatom,jnbor,dir) = ((dsfac * u)*u_accum) + (sfac*du_accum);
|
||||
|
||||
if (j != twojmax) dulist_buf2[jju_shared_idx] = du_accum;
|
||||
|
||||
// copy left side to right side with inversion symmetry VMK 4.4(2)
|
||||
// u[ma-j][mb-j] = (-1)^(ma-mb)*Conj([u[ma][mb])
|
||||
|
||||
int sign_factor = ((ma%2==0)?1:-1)*(mb%2==0?1:-1);
|
||||
const int jjup_flip = jju+(j+1-mb)*(j+1)-(ma+1);
|
||||
const int jju_shared_flip = max_m_tile*team_rank+(j+1-mb)*(j+1)-(ma+1);
|
||||
|
||||
if (sign_factor == 1) {
|
||||
//ulist_alt(iatom,jnbor,jjup_flip).re = u_accum.re;
|
||||
//ulist_alt(iatom,jnbor,jjup_flip).im = -u_accum.im;
|
||||
u_accum.im = -u_accum.im;
|
||||
du_accum.im = -du_accum.im;
|
||||
} else {
|
||||
//ulist_alt(iatom,jnbor,jjup_flip).re = -u_accum.re;
|
||||
//ulist_alt(iatom,jnbor,jjup_flip).im = u_accum.im;
|
||||
u_accum.re = -u_accum.re;
|
||||
du_accum.re = -du_accum.re;
|
||||
}
|
||||
|
||||
dulist(jjup_flip,iatom,jnbor,dir) = ((dsfac * u)*u_accum) + (sfac*du_accum);
|
||||
|
||||
if (j != twojmax) {
|
||||
ulist_buf2[jju_shared_flip] = u_accum;
|
||||
dulist_buf2[jju_shared_flip] = du_accum;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// swap buffers
|
||||
auto tmp = ulist_buf1; ulist_buf1 = ulist_buf2; ulist_buf2 = tmp;
|
||||
tmp = dulist_buf1; dulist_buf1 = dulist_buf2; dulist_buf2 = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
template<class DeviceType>
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::compute_duarray_cpu(const typename Kokkos::TeamPolicy<DeviceType>::member_type& team, int iatom, int jnbor,
|
||||
double x, double y, double z,
|
||||
double z0, double r, double dz0dr,
|
||||
double wj, double rcut)
|
||||
{
|
||||
double r0inv;
|
||||
double a_r, a_i, b_r, b_i;
|
||||
double da_r[3], da_i[3], db_r[3], db_i[3];
|
||||
@ -772,7 +1146,7 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
|
||||
b_r = y * r0inv;
|
||||
b_i = -x * r0inv;
|
||||
|
||||
dr0invdr = -pow(r0inv, 3.0) * (r + z0 * dz0dr);
|
||||
dr0invdr = -r0inv * r0inv * r0inv * (r + z0 * dz0dr);
|
||||
|
||||
dr0inv[0] = dr0invdr * ux;
|
||||
dr0inv[1] = dr0invdr * uy;
|
||||
@ -797,12 +1171,12 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
|
||||
db_i[0] += -r0inv;
|
||||
db_r[1] += r0inv;
|
||||
|
||||
dulist(iatom,jnbor,0,0).re = 0.0;
|
||||
dulist(iatom,jnbor,0,1).re = 0.0;
|
||||
dulist(iatom,jnbor,0,2).re = 0.0;
|
||||
dulist(iatom,jnbor,0,0).im = 0.0;
|
||||
dulist(iatom,jnbor,0,1).im = 0.0;
|
||||
dulist(iatom,jnbor,0,2).im = 0.0;
|
||||
dulist(0,iatom,jnbor,0).re = 0.0;
|
||||
dulist(0,iatom,jnbor,1).re = 0.0;
|
||||
dulist(0,iatom,jnbor,2).re = 0.0;
|
||||
dulist(0,iatom,jnbor,0).im = 0.0;
|
||||
dulist(0,iatom,jnbor,1).im = 0.0;
|
||||
dulist(0,iatom,jnbor,2).im = 0.0;
|
||||
|
||||
for (int j = 1; j <= twojmax; j++) {
|
||||
int jju = idxu_block[j];
|
||||
@ -811,42 +1185,42 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
|
||||
[&] (const int& mb) {
|
||||
//for (int mb = 0; 2*mb <= j; mb++) {
|
||||
const int jju_index = jju+mb+mb*j;
|
||||
dulist(iatom,jnbor,jju_index,0).re = 0.0;
|
||||
dulist(iatom,jnbor,jju_index,1).re = 0.0;
|
||||
dulist(iatom,jnbor,jju_index,2).re = 0.0;
|
||||
dulist(iatom,jnbor,jju_index,0).im = 0.0;
|
||||
dulist(iatom,jnbor,jju_index,1).im = 0.0;
|
||||
dulist(iatom,jnbor,jju_index,2).im = 0.0;
|
||||
dulist(jju_index,iatom,jnbor,0).re = 0.0;
|
||||
dulist(jju_index,iatom,jnbor,1).re = 0.0;
|
||||
dulist(jju_index,iatom,jnbor,2).re = 0.0;
|
||||
dulist(jju_index,iatom,jnbor,0).im = 0.0;
|
||||
dulist(jju_index,iatom,jnbor,1).im = 0.0;
|
||||
dulist(jju_index,iatom,jnbor,2).im = 0.0;
|
||||
|
||||
for (int ma = 0; ma < j; ma++) {
|
||||
const int jju_index = jju+mb+mb*j+ma;
|
||||
const int jjup_index = jjup+mb*j+ma;
|
||||
rootpq = rootpqarray(j - ma,j - mb);
|
||||
for (int k = 0; k < 3; k++) {
|
||||
dulist(iatom,jnbor,jju_index,k).re +=
|
||||
rootpq * (da_r[k] * ulist(iatom,jnbor,jjup_index).re +
|
||||
da_i[k] * ulist(iatom,jnbor,jjup_index).im +
|
||||
a_r * dulist(iatom,jnbor,jjup_index,k).re +
|
||||
a_i * dulist(iatom,jnbor,jjup_index,k).im);
|
||||
dulist(iatom,jnbor,jju_index,k).im +=
|
||||
rootpq * (da_r[k] * ulist(iatom,jnbor,jjup_index).im -
|
||||
da_i[k] * ulist(iatom,jnbor,jjup_index).re +
|
||||
a_r * dulist(iatom,jnbor,jjup_index,k).im -
|
||||
a_i * dulist(iatom,jnbor,jjup_index,k).re);
|
||||
dulist(jju_index,iatom,jnbor,k).re +=
|
||||
rootpq * (da_r[k] * ulist(jjup_index,iatom,jnbor).re +
|
||||
da_i[k] * ulist(jjup_index,iatom,jnbor).im +
|
||||
a_r * dulist(jjup_index,iatom,jnbor,k).re +
|
||||
a_i * dulist(jjup_index,iatom,jnbor,k).im);
|
||||
dulist(jju_index,iatom,jnbor,k).im +=
|
||||
rootpq * (da_r[k] * ulist(jjup_index,iatom,jnbor).im -
|
||||
da_i[k] * ulist(jjup_index,iatom,jnbor).re +
|
||||
a_r * dulist(jjup_index,iatom,jnbor,k).im -
|
||||
a_i * dulist(jjup_index,iatom,jnbor,k).re);
|
||||
}
|
||||
|
||||
rootpq = rootpqarray(ma + 1,j - mb);
|
||||
for (int k = 0; k < 3; k++) {
|
||||
dulist(iatom,jnbor,jju_index+1,k).re =
|
||||
-rootpq * (db_r[k] * ulist(iatom,jnbor,jjup_index).re +
|
||||
db_i[k] * ulist(iatom,jnbor,jjup_index).im +
|
||||
b_r * dulist(iatom,jnbor,jjup_index,k).re +
|
||||
b_i * dulist(iatom,jnbor,jjup_index,k).im);
|
||||
dulist(iatom,jnbor,jju_index+1,k).im =
|
||||
-rootpq * (db_r[k] * ulist(iatom,jnbor,jjup_index).im -
|
||||
db_i[k] * ulist(iatom,jnbor,jjup_index).re +
|
||||
b_r * dulist(iatom,jnbor,jjup_index,k).im -
|
||||
b_i * dulist(iatom,jnbor,jjup_index,k).re);
|
||||
dulist(jju_index+1,iatom,jnbor,k).re =
|
||||
-rootpq * (db_r[k] * ulist(jjup_index,iatom,jnbor).re +
|
||||
db_i[k] * ulist(jjup_index,iatom,jnbor).im +
|
||||
b_r * dulist(jjup_index,iatom,jnbor,k).re +
|
||||
b_i * dulist(jjup_index,iatom,jnbor,k).im);
|
||||
dulist(jju_index+1,iatom,jnbor,k).im =
|
||||
-rootpq * (db_r[k] * ulist(jjup_index,iatom,jnbor).im -
|
||||
db_i[k] * ulist(jjup_index,iatom,jnbor).re +
|
||||
b_r * dulist(jjup_index,iatom,jnbor,k).im -
|
||||
b_i * dulist(jjup_index,iatom,jnbor,k).re);
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -866,13 +1240,13 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
|
||||
const int jjup_index = jjup-mb*(j+1)-ma;
|
||||
if (mapar == 1) {
|
||||
for (int k = 0; k < 3; k++) {
|
||||
dulist(iatom,jnbor,jjup_index,k).re = dulist(iatom,jnbor,jju_index,k).re;
|
||||
dulist(iatom,jnbor,jjup_index,k).im = -dulist(iatom,jnbor,jju_index,k).im;
|
||||
dulist(jjup_index,iatom,jnbor,k).re = dulist(jju_index,iatom,jnbor,k).re;
|
||||
dulist(jjup_index,iatom,jnbor,k).im = -dulist(jju_index,iatom,jnbor,k).im;
|
||||
}
|
||||
} else {
|
||||
for (int k = 0; k < 3; k++) {
|
||||
dulist(iatom,jnbor,jjup_index,k).re = -dulist(iatom,jnbor,jju_index,k).re;
|
||||
dulist(iatom,jnbor,jjup_index,k).im = dulist(iatom,jnbor,jju_index,k).im;
|
||||
dulist(jjup_index,iatom,jnbor,k).re = -dulist(jju_index,iatom,jnbor,k).re;
|
||||
dulist(jjup_index,iatom,jnbor,k).im = dulist(jju_index,iatom,jnbor,k).im;
|
||||
}
|
||||
}
|
||||
mapar = -mapar;
|
||||
@ -890,18 +1264,18 @@ void SNAKokkos<DeviceType>::compute_duarray(const typename Kokkos::TeamPolicy<De
|
||||
int jju = idxu_block[j];
|
||||
for (int mb = 0; 2*mb <= j; mb++)
|
||||
for (int ma = 0; ma <= j; ma++) {
|
||||
dulist(iatom,jnbor,jju,0).re = dsfac * ulist(iatom,jnbor,jju).re * ux +
|
||||
sfac * dulist(iatom,jnbor,jju,0).re;
|
||||
dulist(iatom,jnbor,jju,0).im = dsfac * ulist(iatom,jnbor,jju).im * ux +
|
||||
sfac * dulist(iatom,jnbor,jju,0).im;
|
||||
dulist(iatom,jnbor,jju,1).re = dsfac * ulist(iatom,jnbor,jju).re * uy +
|
||||
sfac * dulist(iatom,jnbor,jju,1).re;
|
||||
dulist(iatom,jnbor,jju,1).im = dsfac * ulist(iatom,jnbor,jju).im * uy +
|
||||
sfac * dulist(iatom,jnbor,jju,1).im;
|
||||
dulist(iatom,jnbor,jju,2).re = dsfac * ulist(iatom,jnbor,jju).re * uz +
|
||||
sfac * dulist(iatom,jnbor,jju,2).re;
|
||||
dulist(iatom,jnbor,jju,2).im = dsfac * ulist(iatom,jnbor,jju).im * uz +
|
||||
sfac * dulist(iatom,jnbor,jju,2).im;
|
||||
dulist(jju,iatom,jnbor,0).re = dsfac * ulist(jju,iatom,jnbor).re * ux +
|
||||
sfac * dulist(jju,iatom,jnbor,0).re;
|
||||
dulist(jju,iatom,jnbor,0).im = dsfac * ulist(jju,iatom,jnbor).im * ux +
|
||||
sfac * dulist(jju,iatom,jnbor,0).im;
|
||||
dulist(jju,iatom,jnbor,1).re = dsfac * ulist(jju,iatom,jnbor).re * uy +
|
||||
sfac * dulist(jju,iatom,jnbor,1).re;
|
||||
dulist(jju,iatom,jnbor,1).im = dsfac * ulist(jju,iatom,jnbor).im * uy +
|
||||
sfac * dulist(jju,iatom,jnbor,1).im;
|
||||
dulist(jju,iatom,jnbor,2).re = dsfac * ulist(jju,iatom,jnbor).re * uz +
|
||||
sfac * dulist(jju,iatom,jnbor,2).re;
|
||||
dulist(jju,iatom,jnbor,2).im = dsfac * ulist(jju,iatom,jnbor).im * uz +
|
||||
sfac * dulist(jju,iatom,jnbor,2).im;
|
||||
|
||||
jju++;
|
||||
}
|
||||
@ -1257,6 +1631,39 @@ double SNAKokkos<DeviceType>::compute_dsfac(double r, double rcut)
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
// efficient complex FMA (i.e., y += a x)
|
||||
template<class DeviceType>
|
||||
KOKKOS_FORCEINLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::caxpy(const SNAcomplex& a, const SNAcomplex& x, SNAcomplex& y) {
|
||||
y.re += a.re * x.re;
|
||||
y.re -= a.im * x.im;
|
||||
y.im += a.im * x.re;
|
||||
y.im += a.re * x.im;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
// efficient complex FMA, conjugate of scalar (i.e.) y += (a.re - i a.im) x)
|
||||
template<class DeviceType>
|
||||
KOKKOS_FORCEINLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::caconjxpy(const SNAcomplex& a, const SNAcomplex& x, SNAcomplex& y) {
|
||||
y.re += a.re * x.re;
|
||||
y.re += a.im * x.im;
|
||||
y.im -= a.im * x.re;
|
||||
y.im += a.re * x.im;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
// set direction of batched Duidrj
|
||||
template<class DeviceType>
|
||||
KOKKOS_FORCEINLINE_FUNCTION
|
||||
void SNAKokkos<DeviceType>::set_dir(int dir_) {
|
||||
dir = dir_;
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------------
|
||||
memory usage of arrays
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
@ -927,7 +927,7 @@ void PairADP::grab(FILE *fp, char *filename, int n, double *list)
|
||||
while (i < n) {
|
||||
utils::sfgets(FLERR,line,MAXLINE,fp,filename,error);
|
||||
ptr = strtok(line," \t\n\r\f");
|
||||
list[i++] = atof(ptr);
|
||||
if (ptr) list[i++] = atof(ptr);
|
||||
while ((ptr = strtok(NULL," \t\n\r\f"))) list[i++] = atof(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -797,7 +797,7 @@ void PairEAM::grab(FILE *fptr, int n, double *list)
|
||||
while (i < n) {
|
||||
utils::sfgets(FLERR,line,MAXLINE,fptr,NULL,error);
|
||||
ptr = strtok(line," \t\n\r\f");
|
||||
list[i++] = atof(ptr);
|
||||
if (ptr) list[i++] = atof(ptr);
|
||||
while ((ptr = strtok(NULL," \t\n\r\f"))) list[i++] = atof(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,10 +60,10 @@ PACKAGE = asphere body class2 colloid compress coreshell dipole gpu \
|
||||
|
||||
PACKUSER = user-adios user-atc user-awpmd user-bocs user-cgdna user-cgsdk user-colvars \
|
||||
user-diffraction user-dpd user-drude user-eff user-fep user-h5md \
|
||||
user-intel user-lb user-manifold user-meamc user-meso \
|
||||
user-intel user-lb user-manifold user-meamc user-mesodpd \
|
||||
user-mgpt user-misc user-mofff user-molfile \
|
||||
user-netcdf user-omp user-phonon user-plumed user-ptm user-qmmm \
|
||||
user-qtb user-quip user-reaxc user-scafacos user-smd user-smtbq \
|
||||
user-qtb user-quip user-reaction user-reaxc user-scafacos user-smd user-smtbq \
|
||||
user-sdpd user-sph user-tally user-uef user-vtk user-yaff
|
||||
|
||||
PACKLIB = compress gpu kim kokkos latte message mpiio mscg poems \
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user