Merge branch 'master' into kk_dep

This commit is contained in:
Stan Moore
2018-05-07 13:42:33 -06:00
1406 changed files with 18851 additions and 4055 deletions

36
.github/CODEOWNERS vendored
View File

@ -9,13 +9,37 @@ lib/kokkos/* @stanmoore1
lib/molfile/* @akohlmey
lib/qmmm/* @akohlmey
lib/vtk/* @rbberger
lib/kim/* @ellio167
# packages
src/KOKKOS @stanmoore1
src/USER-CGSDK @akohlmey
src/USER-COLVARS @giacomofiorin
src/USER-OMP @akohlmey
src/USER-QMMM @akohlmey
# whole packages
src/COMPRESS/* @akohlmey
src/GPU/* @ndtrung81
src/KOKKOS/* @stanmoore1
src/KIM/* @ellio167
src/USER-CGDNA/* @ohenrich
src/USER-CGSDK/* @akohlmey
src/USER-COLVARS/* @giacomofiorin
src/USER-DPD/* @timattox
src/USER-INTEL/* @wmbrownintel
src/USER-MANIFOLD/* @Pakketeretet2
src/USER-MEAMC/* @martok
src/USER-MOFFF/* @hheenen
src/USER-MOLFILE/* @akohlmey
src/USER-NETCDF/* @pastewka
src/USER-PHONON/* @lingtikong
src/USER-OMP/* @akohlmey
src/USER-QMMM/* @akohlmey
src/USER-REAXC/* @hasanmetin
src/USER-TALLY/* @akohlmey
src/USER-UEF/* @danicholson
src/USER-VTK/* @rbberger
# individual files in packages
src/GPU/pair_vashishta_gpu.* @andeplane
src/KOKKOS/pair_vashishta_kokkos.* @andeplane
src/MANYBODY/pair_vashishta_table.* @andeplane
src/USER-MISC/fix_bond_react.* @jrgissing
src/USER-MISC/*_grem.* @dstelter92
# tools
tools/msi2lmp/* @akohlmey

View File

@ -101,7 +101,7 @@ set(DEFAULT_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GRANU
KSPACE MANYBODY MC MEAM MISC MOLECULE PERI QEQ
REAX REPLICA RIGID SHOCK SNAP SRD)
set(OTHER_PACKAGES KIM PYTHON MSCG MPIIO VORONOI POEMS LATTE
USER-ATC USER-AWPMD USER-CGDNA USER-MESO
USER-ATC USER-AWPMD USER-BOCS USER-CGDNA USER-MESO
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-QTB USER-REAXC USER-SMD

View File

@ -684,6 +684,7 @@ package"_Section_start.html#start_3.
"addtorque"_fix_addtorque.html,
"atc"_fix_atc.html,
"ave/correlate/long"_fix_ave_correlate_long.html,
"bond/react"_fix_bond_react.html,
"colvars"_fix_colvars.html,
"dpd/energy (k)"_fix_dpd_energy.html,
"drude"_fix_drude.html,

View File

@ -122,6 +122,7 @@ Package, Description, Doc page, Example, Library
Package, Description, Doc page, Example, Library
"USER-ATC"_#USER-ATC, atom-to-continuum coupling, "fix atc"_fix_atc.html, USER/atc, int
"USER-AWPMD"_#USER-AWPMD, wave-packet MD, "pair_style awpmd/cut"_pair_awpmd.html, USER/awpmd, int
"USER-BOCS"_#USER-BOCS, BOCS bottom up coarse graining, "fix bocs"_fix_bocs.html, USER/bocs, -
"USER-CGDNA"_#USER-CGDNA, coarse-grained DNA force fields, src/USER-CGDNA/README, USER/cgdna, -
"USER-CGSDK"_#USER-CGSDK, SDK coarse-graining model, "pair_style lj/sdk"_pair_sdk.html, USER/cgsdk, -
"USER-COLVARS"_#USER-COLVARS, collective variables library, "fix colvars"_fix_colvars.html, USER/colvars, int
@ -1625,6 +1626,43 @@ examples/USER/awpmd :ul
:line
USER-BOCS package :link(USER-BOCS),h4
[Contents:]
This package provides "fix bocs"_fix_bocs.html, a modified version
of "fix npt"_fix_nh.html which includes the pressure correction to
the barostat as outlined in:
N. J. H. Dunn and W. G. Noid, "Bottom-up coarse-grained models that
accurately describe the structure, pressure, and compressibility of
molecular liquids," J. Chem. Phys. 143, 243148 (2015).
[Authors:] Nicholas J. H. Dunn and Michael R. DeLyser (The Pennsylvania State University)
[Install or un-install:]
make yes-user-bocs
make machine :pre
make no-user-bocs
make machine :pre
[Supporting info:]
The USER-BOCS user package for LAMMPS is part of the BOCS software package:
"https://github.com/noid-group/BOCS"_https://github.com/noid-group/BOCS
See the following reference for information about the entire package:
Dunn, NJH; Lebold, KM; DeLyser, MR; Rudzinski, JF; Noid, WG.
"BOCS: Bottom-Up Open-Source Coarse-Graining Software."
J. Phys. Chem. B. 122, 13, 3363-3377 (2018).
Example inputs are in the examples/USER/bocs folder.
:line
USER-CGDNA package :link(USER-CGDNA),h4
[Contents:]

View File

@ -10,19 +10,29 @@ compute ackland/atom command :h3
[Syntax:]
compute ID group-ID ackland/atom :pre
compute ID group-ID ackland/atom keyword/value :pre
ID, group-ID are documented in "compute"_compute.html command
ackland/atom = style name of this compute command :ul
ID, group-ID are documented in "compute"_compute.html command :ulb,l
ackland/atom = style name of this compute command :l
zero or more keyword/value pairs may be appended :l
keyword = {legacy} :l
{legacy} yes/no = use ({yes}) or do not use ({no}) legacy ackland algorithm implementation :pre
:ule
[Examples:]
compute 1 all ackland/atom :pre
compute 1 all ackland/atom
compute 1 all ackland/atom legacy yes :pre
[Description:]
Defines a computation that calculates the local lattice structure
according to the formulation given in "(Ackland)"_#Ackland.
Historically, LAMMPS had two, slightly different implementations of
the algorithm from the paper. With the {legacy} keyword, it is
possible to switch between the pre-2015 ({legacy yes}) and post-2015
implemention ({legacy no}). The post-2015 variant is the default.
In contrast to the "centro-symmetry
parameter"_compute_centro_atom.html this method is stable against
@ -66,7 +76,8 @@ integers defined above.
"compute centro/atom"_compute_centro_atom.html
[Default:] none
[Default:]
The keyword {legacy} defaults to {no}.
:line

View File

@ -15,7 +15,7 @@ compute ID group-ID displace/atom :pre
ID, group-ID are documented in "compute"_compute.html command :ulb,l
displace/atom = style name of this compute command :l
zero or more keyword/arg pairs may be appended :l
keyword = {refresh} :
keyword = {refresh} :l
{replace} arg = name of per-atom variable :pre
:ule

View File

@ -161,9 +161,9 @@ function.
The keyword {bzeroflag} determines whether or not {B0}, the bispectrum
components of an atom with no neighbors, are subtracted from
the calculated bispectrum components. This optional keyword is only
available for compute {sna/atom}, as {snad/atom} and {snav/atom}
are unaffected by the removal of constant terms.
the calculated bispectrum components. This optional keyword
normally only affects compute {sna/atom}. However, when
{quadraticflag} is on, it also affects {snad/atom} and {snav/atom}.
The keyword {quadraticflag} determines whether or not the
quadratic analogs to the bispectrum quantities are generated.
@ -230,13 +230,18 @@ are 30, 90, and 180, respectively. With {quadratic} value=1,
the numbers of columns are 930, 2790, and 5580, respectively.
If the {quadratic} keyword value is set to 1, then additional
columns are appended to each per-atom array, corresponding to
columns are generated, corresponding to
the products of all distinct pairs of bispectrum components. If the
number of bispectrum components is {K}, then the number of distinct pairs
is {K}({K}+1)/2. These are output in subblocks of {K}({K}+1)/2 columns, using the same
ordering of sub-blocks as was used for the bispectrum
components. Within each sub-block, the ordering is upper-triangular,
(1,1),(1,2)...(1,{K}),(2,1)...({K}-1,{K}-1),({K}-1,{K}),({K},{K})
is {K}({K}+1)/2.
For compute {sna/atom} these columns are appended to existing {K} columns.
The ordering of quadratic terms is upper-triangular,
(1,1),(1,2)...(1,{K}),(2,1)...({K}-1,{K}-1),({K}-1,{K}),({K},{K}).
For computes {snad/atom} and {snav/atom} each set of {K}({K}+1)/2
additional columns is inserted directly after each of sub-block
of linear terms i.e. linear and quadratic terms are contiguous.
So the nesting order from inside to outside is bispectrum component,
linear then quadratic, vector/tensor component, type.
These values can be accessed by any command that uses per-atom values
from a compute as input. See "Section

112
doc/src/fix_bocs.txt Normal file
View File

@ -0,0 +1,112 @@
<"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix bocs command :h3
[Syntax:]
fix ID group-ID bocs keyword values ... :pre
keyword = {temp} or {cgiso} or {analytic} or {linear_spline} or {cubic_spline}
{temp} values = Tstart Tstop Tdamp
{cgiso} values = Pstart Pstop Pdamp
{basis set}
{analytic} values = V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N
{linear_spline} values = input_filename
{cubic_spline} values = input_filename :pre
:ule
[Examples:]
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20 :pre
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 cubic_spline input_Fv.dat :pre
thermo_modify press 1_press :pre
[Description:]
These commands incorporate a pressure correction as described by
Dunn and Noid in "(Dunn1)"_#bocs-Dunn1 to the standard MTTK
barostat by Martyna et. al. in "(Martyna)"_#bocs-Martyna .
The first half of the command mimics a standard fix npt command:
fix 1 all bocs temp Tstart Tstop Tcoupl cgiso Pstart Pstop Pdamp :pre
The two differences are replacing {npt} with {bocs}, and replacing
{iso}/{aniso}/{etc} with {cgiso}.
The rest of the command details what form you would like to use for
the pressure correction equation. The choices are: {analytic}, {linear_spline},
or {cubic_spline}.
With either spline method, the only argument that needs to follow it
is the name of a file that contains the desired pressure correction
as a function of volume. The file should be formatted so each line has:
Volume_i, PressureCorrection_i :pre
Note both the COMMA and the SPACE separating the volume's
value and its corresponding pressure correction. The volumes in the file
should be uniformly spaced. Both the volumes and the pressure corrections
should be provided in the proper units, e.g. if you are using {units real},
the volumes should all be in cubic angstroms, and the pressure corrections
should all be in atomspheres. Furthermore, the table should start/end at a
volume considerably smaller/larger than you expect your system to sample
during the simulation. If the system ever reaches a volume outside of the
range provided, the simulation will stop.
With the {analytic} option, the arguments are as follows:
... analytic V_avg N_particles N_coeff Coeff_1 Coeff_2 ... Coeff_N :pre
Note that {V_avg} and {Coeff_i} should all be in the proper units, e.g. if you
are using {units real}, {V_avg} should be in cubic angstroms, and the
coefficients should all be in atmospheres * cubic angstroms.
[Restrictions:]
As this is computing a (modified) pressure, group-ID should be {all}.
The pressure correction has only been tested for use with an isotropic
pressure coupling in 3 dimensions.
By default, LAMMPS will still report the normal value for the pressure
if the pressure is printed via a {thermo} command, or if the pressures
are written to a file every so often. In order to have LAMMPS report the
modified pressure, you must include the {thermo_modify} command given in
the examples. For the last argument in the command, you should put
XXXX_press, where XXXX is the ID given to the fix bocs command (in the
example, the ID of the fix bocs command is 1 ).
This fix is part of the USER-BOCS package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
[Related:]
For more details about the pressure correction and the entire BOCS software
package, visit the "BOCS package on github"_bocsgithub and read the release
paper by Dunn et. al. "(Dunn2)"_#bocs-Dunn2 .
:link(bocsgithub,https://github.com/noid-group/BOCS)
:line
:link(bocs-Dunn1)
[(Dunn1)] Dunn and Noid, J Chem Phys, 143, 243148 (2015).
:link(bocs-Martyna)
[(Martyna)] Martyna, Tobias, and Klein, J Chem Phys, 101, 4177 (1994).
:link(bocs-Dunn2)
[(Dunn2)] Dunn, Lebold, DeLyser, Rudzinski, and Noid, J. Phys. Chem. B, 122, 3363 (2018).

363
doc/src/fix_bond_react.txt Normal file
View File

@ -0,0 +1,363 @@
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
fix bond/react command :h3
[Syntax:]
fix ID group-ID bond/react common_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
react react-ID react-group-ID Nevery Rmin Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
... :pre
ID, group-ID are documented in "fix"_fix.html command. Group-ID is ignored. :ulb,l
bond/react = style name of this fix command :l
zero or more common keyword/value pairs may be appended directly after 'bond/react' :l
these apply to all reaction specifications (below) :l
common_keyword = {stabilization}
{stabilization} values = group-ID xmax
group-ID = user-assigned ID of an internally-created dynamic group that excludes reacting atoms, and can be used by a subsequent time integration fix such as nvt, npt, or nve (cannot be 'all')
{xmax} value = distance
distance = xmax value that is used by an internally created "nve/limit"_fix_nve_limit.html integrator
react = mandatory argument indicating new reaction specification
react-ID = user-assigned name for the reaction
react-group-ID = only atoms in this group are available for the reaction
Nevery = attempt reaction every this many steps :l
Rmin = bonding pair atoms must be separated by more than Rmin to initiate reaction (distance units) :l
Rmax = bonding pair atoms must be separated by less than Rmax to initiate reaction (distance units) :l
template-ID(pre-reacted) = ID of a molecule template containing pre-reaction topology :l
template-ID(post-reacted) = ID of a molecule template containing post-reaction topology :l
map_file = name of file specifying corresponding atomIDs in the pre- and post-reacted templates :l
zero or more individual keyword/value pairs may be appended to each react argument :l
individual_keyword = {prob} or {stabilize_steps} :l
{prob} values = fraction seed
fraction = initiate reaction with this probability if otherwise eligible
seed = random number seed (positive integer)
{stabilize_steps} value = timesteps
timesteps = number of timesteps to apply internally created nve/limit.html :pre
:ule
[Examples:]
molecule mol1 pre_reacted_topology.txt
molecule mol2 post_reacted_topology.txt
fix 5 all bond/react stabilization no react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt
molecule mol1 pre_reacted_rxn1.txt
molecule mol2 post_reacted_rxn1.txt
molecule mol3 pre_reacted_rxn2.txt
molecule mol4 post_reacted_rxn2.txt
fix 5 all bond/react stabilization yes nvt_grp .03 &
react myrxn1 all 1 0 3.25 mol1 mol2 map_file_rxn1.txt prob 0.50 12345 &
react myrxn2 all 1 0 2.75 mol3 mol4 map_file_rxn2.txt prob 0.25 12345
fix 6 nvt_grp nvt temp 300 300 100 # system-wide thermostat must be defined after bond/react :pre
[Description:]
Initiate complex covalent bonding (topology) changes. These topology
changes will be referred to as "reactions" throughout this
documentation. Topology changes are defined in pre- and post-reaction
molecule templates and can include creation and deletion of bonds,
angles, dihedrals, impropers, bond-types, angle-types, dihedral-types,
atom-types, or atomic charges.
Fix bond/react does not use quantum mechanical (eg. fix qmmm) or
pairwise bond-order potential (eg. Tersoff or AIREBO) methods to
determine bonding changes a priori. Rather, it uses a distance-based
probabilistic criteria to effect predetermined topology changes in
simulations using standard force fields.
This fix was created to facilitate the dynamic creation of polymeric,
amorphous or highly-crosslinked systems. A suggested workflow for
using this fix is: 1) identify a reaction to be simulated 2) build a
molecule template of the reaction site before the reaction has
occurred 3) build a molecule template of the reaction site after the
reaction has occurred 4) create a map that relates the
template-atom-IDs of each atom between pre- and post-reaction molecule
templates 5) fill a simulation box with molecules and run a simulation
with fix/bond react.
Only one 'fix bond/react' command can be used at a time. Multiple
reactions can be simultaneously applied by specifying multiple 'react'
arguments to a single 'fix bond/react' command. This syntax is
necessary because the 'common keywords' are applied to all reactions.
The {stabilization} keyword enables reaction site stabilization.
Reaction site stabilization is performed by including reacting atoms
in an internally created fix "nve/limit"_fix_nve_limit.html time
integrator for a set number of timesteps given by the
{stabilize_steps} keyword. While reacting atoms are being time
integrated by the internal nve/limit, they are prevented from being
involved in any new reactions. The {xmax} value keyword should
typically be set to the maximum distance that non-reacting atoms move
during the simulation.
The group-ID set using the {stabilization} keyword should be a
previously unused group-ID. The fix bond/react command creates a
"dynamic group"_group.html of this name that excludes reacting atoms.
This dynamic group-ID should then be used by a subsequent system-wide
time integrator, as shown in the second example above. It is currently
necessary to place the time integration command after the fix
bond/react command due to the internal dynamic grouping performed by
fix bond/react.
NOTE: The internally created group currently applies to all atoms in
the system, i.e. you should generally not have a separate thermostat
which acts on the 'all' group.
The following comments pertain to each 'react' argument:
A check for possible new reaction sites is performed every Nevery
timesteps.
Two conditions must be met for a reaction to occur. First a bonding
atom pair must be identified. Second, the topology surrounding the
bonding atom pair must match the topology of the pre-reaction
template. If both these conditions are met, the reaction site is
modified to match the post-reaction template.
A bonding atom pair will be identified if several conditions are met.
First, a pair of atoms within the specified react-group-ID of type
typei and typej must separated by a distance between Rmin and Rmax. It
is possible that multiple bonding atom pairs are identified: if the
bonding atoms in the pre-reacted template are not 1-2, 1-3, or 1-4
neighbors, the closest bonding atom partner is set as its bonding
partner; otherwise, the farthest potential partner is chosen. Then, if
both an atomi and atomj have each other as their nearest bonding
partners, these two atoms are identified as the bonding atom pair of
the reaction site. Once this unique bonding atom pair is identified
for each reaction, there could two or more reactions that involve a
given atom on the same timestep. If this is the case, only one such
reaction is permitted to occur. This reaction is chosen randomly from
all potential reactions. This capability allows e.g. for different
reaction pathways to proceed from identical reaction sites with
user-specified probabilities.
The pre-reacted molecule template is specified by a molecule command.
This molecule template file contains a sample reaction site and its
surrounding topology. As described below, the bonding atom pairs of
the pre-reacted template are specified by atom ID in the map file. The
pre-reacted molecule template should contain as few atoms as possible
while still completely describing the topology of all atoms affected
by the reaction. For example, if the force field contains dihedrals,
the pre-reacted template should contain any atom within three bonds of
reacting atoms.
Some atoms in the pre-reacted template that are not reacting may have
missing topology with respect to the simulation. For example, the
pre-reacted template may contain an atom that would connect to the
rest of a long polymer chain. These are referred to as edge atoms, and
are also specified in the map file.
Note that some care must be taken when a building a molecule template
for a given simulation. All atom types in the pre-reacted template
must be the same as those of a potential reaction site in the
simulation. A detailed discussion of matching molecule template atom
types with the simulation is provided on the "molecule"_molecule.html
command page.
The post-reacted molecule template contains a sample of the reaction
site and its surrounding topology after the reaction has occurred. It
must contain the same number of atoms as the pre-reacted template. A
one-to-one correspondence between the atom IDs in the pre- and
post-reacted templates is specified in the map file as described
below. Note that during a reaction, an atom, bond, etc. type may
change to one that was previously not present in the simulation. These
new types must also be defined during the setup of a given simulation.
A discussion of correctly handling this is also provided on the
"molecule"_molecule.html command page.
The map file is a text document with the following format:
Format of the map file
A map file has a header and a body. The header appears first. The
first line of the header is always skipped; it typically contains a
description of the file. Lines can have a trailing comment starting
with '#' that is ignored. If the line is blank (only whitespace after
comment is deleted), it is skipped. If the line contains a header
keyword, the corresponding value(s) is read from the line. If it
doesn't contain a header keyword, the line begins the body of the
file.
The header contains one mandatory keyword and one optional keyword.
The mandatory keyword is 'equivalences' and the optional keyword is
'edgeIDs.' These specify the number of atoms in the pre- and
post-reacted templates and the number of edge atoms in pre-reacted
template, respectively.
The body contains two mandatory sections and one optional section. The
first section begins with the keyword 'BondingIDs' and lists the atom
IDs of the bonding atom pair in the pre-reacted molecule template. The
second mandatory section begins with the keyword 'Equivalences' and
lists a one-to-one correspondence between atom IDs of the pre- and
post-reacted templates. The optional section begins with the keyword
'EdgeIDs' and list the atom IDs of edge atoms in the pre-reacted
molecule template.
Format of the header of the map file
These are the recognized header keywords. Header lines can come in any
order. The value(s) are read from the beginning of the line. Thus the
keyword 'equivalences' should be in a line like "25 equivalences."
equivalences = # of atoms in the pre- and post-reacted molecule
templates edgeIDs = # of edge atoms in the pre-reacted molecule template :pre
The edgeIDs keyword is optional.
Format of the body of the map file
These are the section keywords for the body of the file.
BondingIDs, EdgeIDs = list of atom IDs of bonding and edge atoms in
the pre-reacted molecule template
Equivalences = a two column list where the first column is an atom ID
of the pre-reacted molecule template, and the second column is the
corresponding atom ID of the post-reacted molecule template
The bondingIDs section will always contain two atom IDs, corresponding
to the bonding atom pairs of the pre-reacted map file. The
Equivalences section will contain as many rows as there are atoms in
the pre- and post-reacted molecule templates. The edgeIDs section is
optional, but would contain an atom ID for each edge atom in the
pre-reacted molecule template.
A sample map file is given below:
:line
# This is a map file :pre
2 edgeIDs
7 equivalences :pre
BondingIDs :pre
3 5 :pre
EdgeIDs :pre
1 7 :pre
Equivalences :pre
1 1
2 2
3 3
4 4
5 5
6 6
7 7 :pre
:line
Once a reaction site has been successfully identified, data structures
within LAMMPS that store bond topology are updated to reflect the
post-reacted molecule template. All force fields with fixed bonds,
angles, dihedrals or impropers are supported.
A few capabilities to note: 1) You may specify as many 'react'
arguments as desired. For example, you could break down a complicated
reaction mechanism into several reaction steps, each defined by its
own 'react' argument. 2) While typically a bond is formed or removed
between the bonding atom pairs specified in the pre-reacted molecule
template, this is not required. 3) By reversing the order of the pre-
and post- reacted molecule templates in another 'react' argument, you
can allow for the possibility of one or more reverse reactions.
The optional keywords deal with the probability of a given reaction
occurring as well as the stable equilibration of each reaction site as
it occurs.
The {prob} keyword can affect whether an eligible reaction actually
occurs. The fraction setting must be a value between 0.0 and 1.0. A
uniform random number between 0.0 and 1.0 is generated and the
eligible reaction only occurs if the random number is less than the
fraction.
The {stabilize_steps} keyword allows for the specification of how many
timesteps a reaction site is stabilized before being returned to the
overall system thermostat.
In order to produce the most physical behavior, this 'reaction site
equilibration time' should be tuned to be as small as possible while
retaining stability for a given system or reaction step. After a
limited number of case studies, this number has been set to a default
of 60 timesteps. Ideally, it should be individually tuned for each fix
reaction step. Note that in some situations, decreasing rather than
increasing this parameter will result in an increase in stability.
A few other considerations:
It may be beneficial to ensure reacting atoms are at a certain
temperature before being released to the overall thermostat. For this,
you can use the internally-created dynamic group named
"bond_react_MASTER_group." For example, adding the following command
would thermostat the group of all atoms currently involved in a
reaction:
fix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1
NOTE: This command must be added after the fix bond/react command, and
will apply to all reactions.
Computationally, each timestep this fix operates, it loops over
neighbor lists (for bond-forming reactions) and computes distances
between pairs of atoms in the list. It also communicates between
neighboring processors to coordinate which bonds are created and/or
removed. All of these operations increase the cost of a timestep. Thus
you should be cautious about invoking this fix too frequently.
You can dump out snapshots of the current bond topology via the dump
local command.
:line
[Restart, fix_modify, output, run start/stop, minimize info:]
No information about this fix is written to "binary restart
files"_restart.html. None of the "fix_modify"_fix_modify.html options
are relevant to this fix.
This fix computes one statistic for each 'react' argument that it
stores in a global vector, of length 'number of react arguments', that
can be accessed by various "output
commands"_Section_howto.html#howto_15. The vector values calculated by
this fix are "intensive".
These is 1 quantity for each react argument:
(1) cumulative # of reactions occurred :ul
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command. This fix is not invoked during "energy
minimization"_minimize.html.
[Restrictions:]
This fix is part of the USER-MISC package. It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.
[Related commands:]
"fix bond/create"_fix_bond_create.html, "fix
bond/break"_fix_bond_break.html, "fix bond/swap"_fix_bond_swap.html,
"dump local"_dump.html, "special_bonds"_special_bonds.html
[Default:]
The option defaults are stabilization = no, stabilize_steps = 60
:line
:link(Gissinger) [(Gissinger)] Gissinger, Jensen and Wise, Polymer,
128, 211 (2017).

View File

@ -154,7 +154,7 @@ Note: The temperature thermostating the core-Drude particle pairs
should be chosen low enough, so as to mimic as closely as possible the
self-consistent minimization. It must however be high enough, so that
the dipoles can follow the local electric field exerted by the
neighbouring atoms. The optimal value probably depends on the
neighboring atoms. The optimal value probably depends on the
temperature of the centers of mass and on the mass of the Drude
particles.

View File

@ -34,6 +34,8 @@ written to {filename} on timesteps that are multiples of {Nevery},
including timestep 0. For time-averaged chemical species analysis,
please see the "fix reaxc/c/species"_fix_reaxc_species.html command.
The specified group-ID is ignored by this fix.
The format of the output file should be reasonably self-explanatory.
The meaning of the column header abbreviations is as follows:

View File

@ -24,10 +24,12 @@ keyword = {bond} or {angle} or {dihedral} :l
atom1,atom2,atom3 = IDs of 3 atoms in angle, atom2 = middle atom
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
theta0 = equilibrium angle theta (degrees)
{dihedral} args = atom1 atom2 atom3 atom4 Kstart Kstop phi0
{dihedral} args = atom1 atom2 atom3 atom4 Kstart Kstop phi0 keyword/value
atom1,atom2,atom3,atom4 = IDs of 4 atoms in dihedral in linear order
Kstart,Kstop = restraint coefficients at start/end of run (energy units)
phi0 = equilibrium dihedral angle phi (degrees) :pre
phi0 = equilibrium dihedral angle phi (degrees)
keyword/value = optional keyword value pairs. supported keyword/value pairs:
{mult} n = dihedral multiplicity n (integer >= 0, default = 1) :pre
:ule
[Examples:]
@ -155,11 +157,13 @@ associated with the restraint is
with the following coefficients:
K (energy)
n = 1
n (multiplicity, >= 0)
d (degrees) = phi0 + 180 :ul
K and phi0 are specified with the fix. Note that the value of n is
hard-wired to 1. Also note that the energy will be a minimum when the
K and phi0 are specified with the fix. Note that the value of the
dihedral multiplicity {n} is set by default to 1. You can use the
optional {mult} keyword to set it to a different positive integer.
Also note that the energy will be a minimum when the
current dihedral angle phi is equal to phi0.
:line

View File

@ -20,9 +20,11 @@ Fixes :h1
fix_ave_time
fix_aveforce
fix_balance
fix_bocs
fix_bond_break
fix_bond_create
fix_bond_swap
fix_bond_react
fix_box_relax
fix_cmap
fix_colvars

View File

@ -135,8 +135,10 @@ fix_ave_histo.html
fix_ave_time.html
fix_aveforce.html
fix_balance.html
fix_bocs.html
fix_bond_break.html
fix_bond_create.html
fix_bond_react.html
fix_bond_swap.html
fix_box_relax.html
fix_cmap.html

View File

@ -38,7 +38,7 @@ This shift is achieved by the last term in the equation for {Vij} above.
This potential is intended for interactions between two layers of graphene.
Therefore, to avoid interaction between layers in multi-layered materials,
each layer should have a separate atom type and interactions should only
be computed between atom types of neighbouring layers.
be computed between atom types of neighboring layers.
The parameter file (e.g. CC.KC), is intended for use with metal
"units"_units.html, with energies in meV. An additional parameter, {S},

View File

@ -0,0 +1,6 @@
This folder contains the files to run a NPT simulation of 1 site CG methanol
while employing a correction to the barostat.
The pair force was computed via the Multi-Scale Coarse-Graining method.
The resulting model was then iteratively pressure matched.
The model accurately reproduces both structural (RDF) and thermodynamic
(Pressure-Volume EoS) properties of the underlying OPLS-AA model of methanol.

View File

@ -0,0 +1,69 @@
units real
dimension 3
boundary p p p
atom_style atomic
newton on
timestep 1.0
read_data methanol.data
velocity all create 300.0 16802 dist gaussian
pair_style table spline 15000
pair_coeff 1 1 lammps_nb_MET-MET.table nb_METMET 12.0
neigh_modify delay 0 every 1 check yes one 10000
neighbor 12.0 bin
thermo 500
thermo_style custom step temp pe etotal press vol
variable STEP equal step
variable TEMP equal temp
## volume from cubic angstroms to cubic nm
variable VOL equal vol/1000.0
## pressure from atm to bar
variable PRESS equal press*1.01325
variable PXX equal pxx*1.01325
variable PYY equal pyy*1.01325
variable PZZ equal pzz*1.01325
variable PXY equal pxy*1.01325
variable PXZ equal pxz*1.01325
variable PYZ equal pyz*1.01325
## energy from kcal/mol to kJ/mol
variable KE equal ke*4.184
variable PE equal pe*4.184
variable UVDW equal evdwl*4.184
##### SPECIAL COMMANDS FOR FIX_BOCS #####
# ID group-ID style_name thermostat T_init T_end T_couple barostat P_start P_end P_couple pmatch_basis avg_vol N_sites N_coeffs coeff1 coeff2
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20
# Report the modified pressure
thermo_modify press 1_press
## Uncomment to save some data from simulation to files
#fix print_temp all print 500 "${STEP} ${TEMP}" file temp.dat screen no
#fix print_vol all print 500 "${STEP} ${VOL}" file vol.dat screen no
#fix print_press all print 500 "${STEP} ${PRESS}" file press.dat screen no
#fix print_ke all print 500 "${STEP} ${KE}" file kinetic_E.dat screen no
#fix print_pe all print 500 "${STEP} ${PE}" file potential_E.dat screen no
#fix print_ve all print 500 "${STEP} ${UVDW}" file vdw_E.dat screen no
#fix print_press_tens all print 500 "${STEP} ${PXX} ${PYY} ${PZZ} ${PXY} ${PXZ} ${PYZ}" file press_tens.dat screen no
#fix print_PV_eos all print 500 "${VOL} ${PRESS}" file pv_eos.dat screen no
## Prints a configuration to dump.txt every 500 steps
#dump 1 all custom 500 dump.txt id type x y z fx fy fz
# Write restart files to continue simulations
#restart 10000 state1.restart state2.restart
## Run for this many steps
run_style verlet
run 10000

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,143 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
units real
dimension 3
boundary p p p
atom_style atomic
newton on
timestep 1.0
read_data methanol.data
orthogonal box = (0 0 0) to (40.4635 40.4635 40.4635)
1 by 1 by 1 MPI processor grid
reading atoms ...
968 atoms
velocity all create 300.0 16802 dist gaussian
pair_style table spline 15000
pair_coeff 1 1 lammps_nb_MET-MET.table nb_METMET 12.0
WARNING: 78 of 2500 force values in table are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:481)
neigh_modify delay 0 every 1 check yes one 10000
neighbor 12.0 bin
thermo 500
thermo_style custom step temp pe etotal press vol
variable STEP equal step
variable TEMP equal temp
## volume from cubic angstroms to cubic nm
variable VOL equal vol/1000.0
## pressure from atm to bar
variable PRESS equal press*1.01325
variable PXX equal pxx*1.01325
variable PYY equal pyy*1.01325
variable PZZ equal pzz*1.01325
variable PXY equal pxy*1.01325
variable PXZ equal pxz*1.01325
variable PYZ equal pyz*1.01325
## energy from kcal/mol to kJ/mol
variable KE equal ke*4.184
variable PE equal pe*4.184
variable UVDW equal evdwl*4.184
##### SPECIAL COMMANDS FOR FIX_BOCS #####
# ID group-ID style_name thermostat T_init T_end T_couple barostat P_start P_end P_couple pmatch_basis avg_vol N_sites N_coeffs coeff1 coeff2
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20
# Report the modified pressure
thermo_modify press 1_press
## Uncomment to save some data from simulation to files
#fix print_temp all print 500 "${STEP} ${TEMP}" file temp.dat screen no
#fix print_vol all print 500 "${STEP} ${VOL}" file vol.dat screen no
#fix print_press all print 500 "${STEP} ${PRESS}" file press.dat screen no
#fix print_ke all print 500 "${STEP} ${KE}" file kinetic_E.dat screen no
#fix print_pe all print 500 "${STEP} ${PE}" file potential_E.dat screen no
#fix print_ve all print 500 "${STEP} ${UVDW}" file vdw_E.dat screen no
#fix print_press_tens all print 500 "${STEP} ${PXX} ${PYY} ${PZZ} ${PXY} ${PXZ} ${PYZ}" file press_tens.dat screen no
#fix print_PV_eos all print 500 "${VOL} ${PRESS}" file pv_eos.dat screen no
## Prints a configuration to dump.txt every 500 steps
#dump 1 all custom 500 dump.txt id type x y z fx fy fz
# Write restart files to continue simulations
#restart 10000 state1.restart state2.restart
## Run for this many steps
run_style verlet
run 10000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 10000, page size: 100000
master list distance cutoff = 24
ghost atom cutoff = 24
binsize = 12, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair table, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.691 | 4.691 | 4.691 Mbytes
Step Temp PotEng TotEng Press Volume
0 300 1061.5961 1926.3291 107.006 66250.679
500 314.54728 1034.1091 1940.7738 194.42689 65660.282
1000 301.41603 1030.7027 1899.5173 -91.966709 66262.543
1500 298.8308 1014.8276 1876.1905 -80.178606 67053.605
2000 294.78476 1046.8207 1896.521 50.592942 66316.735
2500 301.18564 1033.9214 1902.0719 40.48255 66607.667
3000 301.06632 1022.0381 1889.8447 47.582344 66341.947
3500 297.98361 989.80983 1848.7307 -204.69879 67462.078
4000 299.03493 1034.6571 1896.6083 89.188888 66457.385
4500 306.03351 985.4121 1867.5363 -51.102407 67519.446
5000 305.6903 1013.8613 1894.9963 -141.13704 67240.467
5500 292.23444 1029.5558 1871.905 20.764579 66683.876
6000 287.87735 1017.7325 1847.5226 -35.288049 66630.031
6500 305.26461 960.08118 1839.9891 -352.42596 67612.317
7000 300.34449 1055.0664 1920.7923 22.04027 66187.27
7500 305.48612 1038.6651 1919.2115 17.807254 66324.168
8000 316.03232 1034.6809 1945.6262 27.482857 66502.198
8500 294.28636 1038.8213 1887.085 -72.840559 66851.661
9000 316.69029 1065.7481 1978.5899 245.61677 65678.385
9500 297.46127 1034.5547 1891.97 54.23428 66892.627
10000 301.24799 1036.5432 1904.8735 7.7134029 66150.506
Loop time of 34.426 on 1 procs for 10000 steps with 968 atoms
Performance: 25.097 ns/day, 0.956 hours/ns, 290.478 timesteps/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 33.324 | 33.324 | 33.324 | 0.0 | 96.80
Neigh | 0.12198 | 0.12198 | 0.12198 | 0.0 | 0.35
Comm | 0.42865 | 0.42865 | 0.42865 | 0.0 | 1.25
Output | 0.00059938 | 0.00059938 | 0.00059938 | 0.0 | 0.00
Modify | 0.42553 | 0.42553 | 0.42553 | 0.0 | 1.24
Other | | 0.1252 | | | 0.36
Nlocal: 968 ave 968 max 968 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 9112 ave 9112 max 9112 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 404392 ave 404392 max 404392 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 404392
Ave neighs/atom = 417.76
Neighbor list builds = 13
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:34

View File

@ -0,0 +1,143 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
units real
dimension 3
boundary p p p
atom_style atomic
newton on
timestep 1.0
read_data methanol.data
orthogonal box = (0 0 0) to (40.4635 40.4635 40.4635)
1 by 2 by 2 MPI processor grid
reading atoms ...
968 atoms
velocity all create 300.0 16802 dist gaussian
pair_style table spline 15000
pair_coeff 1 1 lammps_nb_MET-MET.table nb_METMET 12.0
WARNING: 78 of 2500 force values in table are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:481)
neigh_modify delay 0 every 1 check yes one 10000
neighbor 12.0 bin
thermo 500
thermo_style custom step temp pe etotal press vol
variable STEP equal step
variable TEMP equal temp
## volume from cubic angstroms to cubic nm
variable VOL equal vol/1000.0
## pressure from atm to bar
variable PRESS equal press*1.01325
variable PXX equal pxx*1.01325
variable PYY equal pyy*1.01325
variable PZZ equal pzz*1.01325
variable PXY equal pxy*1.01325
variable PXZ equal pxz*1.01325
variable PYZ equal pyz*1.01325
## energy from kcal/mol to kJ/mol
variable KE equal ke*4.184
variable PE equal pe*4.184
variable UVDW equal evdwl*4.184
##### SPECIAL COMMANDS FOR FIX_BOCS #####
# ID group-ID style_name thermostat T_init T_end T_couple barostat P_start P_end P_couple pmatch_basis avg_vol N_sites N_coeffs coeff1 coeff2
fix 1 all bocs temp 300.0 300.0 100.0 cgiso 0.986 0.986 1000.0 analytic 66476.015 968 2 245030.10 8962.20
# Report the modified pressure
thermo_modify press 1_press
## Uncomment to save some data from simulation to files
#fix print_temp all print 500 "${STEP} ${TEMP}" file temp.dat screen no
#fix print_vol all print 500 "${STEP} ${VOL}" file vol.dat screen no
#fix print_press all print 500 "${STEP} ${PRESS}" file press.dat screen no
#fix print_ke all print 500 "${STEP} ${KE}" file kinetic_E.dat screen no
#fix print_pe all print 500 "${STEP} ${PE}" file potential_E.dat screen no
#fix print_ve all print 500 "${STEP} ${UVDW}" file vdw_E.dat screen no
#fix print_press_tens all print 500 "${STEP} ${PXX} ${PYY} ${PZZ} ${PXY} ${PXZ} ${PYZ}" file press_tens.dat screen no
#fix print_PV_eos all print 500 "${VOL} ${PRESS}" file pv_eos.dat screen no
## Prints a configuration to dump.txt every 500 steps
#dump 1 all custom 500 dump.txt id type x y z fx fy fz
# Write restart files to continue simulations
#restart 10000 state1.restart state2.restart
## Run for this many steps
run_style verlet
run 10000
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 10000, page size: 100000
master list distance cutoff = 24
ghost atom cutoff = 24
binsize = 12, bins = 4 4 4
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair table, perpetual
attributes: half, newton on
pair build: half/bin/atomonly/newton
stencil: half/bin/3d/newton
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.37 | 3.37 | 3.371 Mbytes
Step Temp PotEng TotEng Press Volume
0 300 1061.5961 1926.3291 107.006 66250.679
500 314.54728 1034.1091 1940.7738 194.42689 65660.282
1000 301.41603 1030.7027 1899.5173 -91.966709 66262.543
1500 298.8308 1014.8276 1876.1905 -80.178606 67053.605
2000 294.78476 1046.8207 1896.521 50.592942 66316.735
2500 301.18564 1033.9214 1902.0719 40.482557 66607.667
3000 301.06631 1022.0381 1889.8447 47.582403 66341.947
3500 297.98353 989.81011 1848.7308 -204.69823 67462.076
4000 299.03465 1034.6603 1896.6108 89.196235 66457.338
4500 306.04532 985.37017 1867.5285 -51.094929 67519.735
5000 304.72903 1014.9543 1893.3184 -127.04402 67238.517
5500 292.52622 1025.6599 1868.8502 -19.753932 66716.551
6000 296.82719 1031.5184 1887.1059 -1.2609328 66368.611
6500 298.63312 1018.4299 1879.2229 -24.75835 66524.898
7000 303.25389 1005.9283 1880.0404 -96.273504 67349.674
7500 292.45089 1068.2863 1911.2595 103.23295 65778.08
8000 301.22765 1040.6294 1908.9011 -0.83635353 66831.038
8500 300.19765 1047.5856 1912.8883 -31.582343 66316.305
9000 295.1108 1023.8234 1874.4635 -88.165532 67192.344
9500 302.1087 1003.6348 1874.4459 -18.707065 66369.361
10000 296.3083 1004.126 1858.2178 -28.293045 66862.576
Loop time of 28.8053 on 4 procs for 10000 steps with 968 atoms
Performance: 29.994 ns/day, 0.800 hours/ns, 347.159 timesteps/s
95.2% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 19.929 | 21.765 | 23.391 | 27.8 | 75.56
Neigh | 0.067397 | 0.071231 | 0.077313 | 1.5 | 0.25
Comm | 3.9226 | 5.5183 | 7.3214 | 53.7 | 19.16
Output | 0.00069928 | 0.0016099 | 0.0043275 | 3.9 | 0.01
Modify | 1.0874 | 1.1376 | 1.1888 | 4.2 | 3.95
Other | | 0.3112 | | | 1.08
Nlocal: 242 ave 244 max 239 min
Histogram: 1 0 0 0 0 0 1 0 1 1
Nghost: 5718.5 ave 5736 max 5702 min
Histogram: 1 0 0 0 1 1 0 0 0 1
Neighs: 100703 ave 108064 max 93454 min
Histogram: 1 0 0 1 0 0 1 0 0 1
Total # of neighbors = 402813
Ave neighs/atom = 416.129
Neighbor list builds = 14
Dangerous builds = 0
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:28

View File

@ -0,0 +1,991 @@
LAMMPS Description
968 atoms
0 bonds
0 angles
0 dihedrals
0 impropers
1 atom types
0 bond types
0 angle types
0 dihedral types
0 40.4635 xlo xhi
0 40.4635 ylo yhi
0 40.4635 zlo zhi
Masses
1 32.0424
Atoms
1 1 36.39 8.05 27.55
2 1 18.38 15.72 26.03
3 1 3.52 1.77 23.57
4 1 31.09 11.38 12.17
5 1 13.3 34.8 2.89
6 1 1.72 38.55 10.36
7 1 38.6 23.16 6.19
8 1 0.74 33.21 0.17
9 1 26.97 9.53 11.24
10 1 31.68 12.19 17.04
11 1 15.19 9.06 0.2
12 1 34.39 20.63 35.71
13 1 21.79 4.93 6.49
14 1 28.08 33.01 24.51
15 1 37.03 20.52 32.9
16 1 32.69 20 30.11
17 1 23.77 38.59 18.79
18 1 16.01 2.31 20.15
19 1 5.65 15.5 28.5
20 1 8.35 17.35 20.48
21 1 31.24 24.68 27.4
22 1 29.41 16.64 19.79
23 1 37.42 31.93 26.68
24 1 18.76 39.06 30.68
25 1 22.97 35 20.81
26 1 39.47 18.28 29.6
27 1 34.37 19.4 0.17
28 1 5.94 9.53 10.95
29 1 11.45 38.44 14.64
30 1 39.57 11.04 1.57
31 1 25.91 20.97 12.79
32 1 36.3 22.1 1.68
33 1 21.87 22.49 3.43
34 1 5.77 18.66 3.97
35 1 7 7.59 18.42
36 1 39.76 27.63 17.98
37 1 10.26 23.18 5.11
38 1 23.23 21.37 17.38
39 1 7.47 37.37 5.57
40 1 0.73 21.6 14.78
41 1 2.27 30.22 14.93
42 1 7.39 28.22 14.88
43 1 27.48 1.11 25.02
44 1 8.37 13.19 14.64
45 1 7.11 33.57 0.65
46 1 34.19 35.11 3.17
47 1 7.52 3.2 20.33
48 1 1.02 17.69 37.85
49 1 8.59 6.21 10.26
50 1 2.89 16.81 30.02
51 1 27.05 9.07 32.8
52 1 12.32 14.79 21.11
53 1 26.63 22.69 16.75
54 1 31.6 2.79 20.45
55 1 35.11 0.74 12.16
56 1 29.71 31.23 37.63
57 1 38.22 19.02 18.12
58 1 10.95 17.4 0.39
59 1 1.65 19.87 6.67
60 1 5.15 1.94 14.61
61 1 8.2 31.43 15.72
62 1 0.55 20.85 2.45
63 1 15.27 31.74 0.33
64 1 17.9 9.84 23.87
65 1 1.46 8.39 19.24
66 1 37.79 25.11 12.24
67 1 14.11 27.19 30.7
68 1 29.39 24.12 38.92
69 1 39.15 20.32 39.86
70 1 11.79 11.38 30.6
71 1 29.87 30.18 32.5
72 1 11.06 37.8 30.18
73 1 20.11 4.59 35.57
74 1 37.19 27.23 1.44
75 1 18.83 26.13 35.26
76 1 29.27 7.86 36.75
77 1 34.83 29.59 37.82
78 1 22.16 34.68 25.27
79 1 5.95 14.65 25.55
80 1 -0.04 3.48 29.91
81 1 14.69 6.75 38.06
82 1 16.8 23.69 3.14
83 1 14.52 38.72 21.61
84 1 37.36 15.13 27.98
85 1 29.79 17.03 27.55
86 1 21.01 0.39 0.9
87 1 35.3 6.45 14.41
88 1 13.74 34.69 10.01
89 1 13.83 7.92 31.88
90 1 26.88 37.81 22.36
91 1 31.76 7.34 10.03
92 1 11.98 37.49 19.61
93 1 29.19 31.74 20.69
94 1 39.15 10.97 21.06
95 1 1.47 5 22.21
96 1 -0.1 1.33 16.26
97 1 34.74 34.78 30.66
98 1 22.09 26.78 2.27
99 1 36.58 34.8 16.19
100 1 19.09 24.88 15.75
101 1 2.21 31.42 38.32
102 1 28.02 8.18 29.77
103 1 15.99 16.78 17.61
104 1 32.43 12.2 35.3
105 1 26.54 38.8 30.88
106 1 35.58 22.23 18.31
107 1 28.3 30.81 2.96
108 1 8.95 32.9 9.02
109 1 28.51 30.02 29.39
110 1 13 5.35 34.26
111 1 37.9 36.79 1.37
112 1 12.78 1.99 40.66
113 1 21.19 34.55 17.45
114 1 10.5 20 5.07
115 1 16.19 21.64 18.49
116 1 14.62 26.41 19.88
117 1 27.97 2.89 28.03
118 1 29.44 14.35 39.04
119 1 2.29 24.16 33.8
120 1 39.22 15.81 32.02
121 1 7.31 19.66 18.18
122 1 27.67 7.98 15.53
123 1 31.23 4.04 33
124 1 29.52 39.44 28.71
125 1 30.86 20.28 15.84
126 1 32.25 7.44 19.79
127 1 34.68 15.68 1.18
128 1 16.58 27.98 27.97
129 1 32.27 24.24 15.82
130 1 3.86 6.57 39.8
131 1 9.1 2.88 13.12
132 1 17.84 27.8 11.79
133 1 4.77 10.88 6.75
134 1 16.58 24.21 24.5
135 1 10.17 19.31 38.32
136 1 6.27 7.81 36.44
137 1 34.76 37.89 29.76
138 1 40.99 38.22 35.21
139 1 25.04 21.79 36.88
140 1 4.78 15.35 16.44
141 1 19.24 5.77 40.18
142 1 13.59 11.27 37.14
143 1 1.61 23.83 39.61
144 1 6.02 33.07 3.77
145 1 0.85 7.4 35.42
146 1 6.47 40.34 4.65
147 1 16.45 36.52 15.44
148 1 19.58 9.5 1.64
149 1 1.36 1.72 35.53
150 1 11.74 5.48 4.98
151 1 25.45 40.36 15.44
152 1 19.09 0.74 36.18
153 1 31.78 37.98 1.84
154 1 23.26 18.47 38.56
155 1 7.29 22.87 25.86
156 1 2.36 7.83 8.78
157 1 39.61 25.94 21.12
158 1 7.78 18.97 25.29
159 1 36.56 19.61 26.7
160 1 4.64 12.06 19.9
161 1 21.05 33.08 0.87
162 1 33.93 22.87 39.71
163 1 33.62 29.48 20.83
164 1 0.64 18.79 9.52
165 1 27.53 16.7 22.51
166 1 17.66 9.84 14.61
167 1 31.23 22.44 24.98
168 1 39.3 34.88 11.03
169 1 24.01 10.56 0.09
170 1 15.81 33.44 18.52
171 1 19.92 30.61 19.25
172 1 16.49 3.95 38.28
173 1 18.6 38.87 24.98
174 1 33.04 25.55 8.57
175 1 16.9 35.09 22.94
176 1 15.18 6.74 2.33
177 1 40.54 12.58 31.65
178 1 21.21 37.62 14.35
179 1 33.52 38.19 14.89
180 1 22.06 12.49 29.81
181 1 19.49 29.03 2.52
182 1 26.97 18.55 38.45
183 1 24.1 11.86 17.22
184 1 12.02 0.55 10.39
185 1 3.8 35.94 19.94
186 1 8.31 14.31 37.4
187 1 29.03 8.28 22.92
188 1 18.92 0.22 27.87
189 1 26.79 24.9 24.62
190 1 36.59 18.86 21.13
191 1 33.06 13.58 30.17
192 1 32.37 2.02 39.69
193 1 22.65 25.97 32.59
194 1 21.81 38.04 33.85
195 1 36.82 37.68 19.22
196 1 32.48 31.43 33.66
197 1 8.75 36.66 20.34
198 1 14.88 15.11 28.76
199 1 22.83 28.55 29.5
200 1 2.98 12.06 2.88
201 1 3.01 37 6.91
202 1 14.79 16.69 3.66
203 1 12.62 38.28 0.97
204 1 40.07 21.27 25.25
205 1 34.58 6.14 39.48
206 1 11.51 30.52 33.53
207 1 32.22 9.28 30.52
208 1 0.7 4.01 38.87
209 1 32.66 39.86 36.84
210 1 27.34 34.57 21.76
211 1 13.7 23.12 8.34
212 1 28 9.71 6.29
213 1 31.69 26.39 38.19
214 1 2.04 20.93 36.95
215 1 30.31 26.61 12.31
216 1 25.37 20.63 9.4
217 1 16.29 5.62 14.04
218 1 1.36 1.95 4.97
219 1 38.75 26.8 5.62
220 1 40.28 29.89 12.27
221 1 0.52 31.22 7.58
222 1 15.64 21.64 14.71
223 1 10.11 28.8 9.67
224 1 19.03 37.3 38.87
225 1 12.07 6.46 19.25
226 1 36.22 21.11 15.02
227 1 12.49 15.69 7.21
228 1 25.2 30.8 19.71
229 1 8.24 35.22 23.02
230 1 9.94 4.1 1.86
231 1 4.31 19.07 26.23
232 1 22.03 19.99 14.19
233 1 30.84 5.24 2.75
234 1 35.51 30.52 32.3
235 1 3.88 20.41 39.48
236 1 30.86 0.39 31.56
237 1 25.91 27.12 39.04
238 1 33.39 5.37 4.51
239 1 20.58 28.33 37.53
240 1 11.83 21.81 39.11
241 1 39.94 5.2 5.73
242 1 29.89 33.21 15.44
243 1 23.42 15.38 30.98
244 1 28.66 11.56 16.13
245 1 16.74 20.43 21.72
246 1 9.31 0.26 22.42
247 1 4.38 37.78 14.12
248 1 13.86 4.65 16.99
249 1 6.72 27.43 8.14
250 1 33.45 18.74 19.98
251 1 17.34 14.55 35.57
252 1 14.21 37.39 28.76
253 1 26.29 29.06 22.26
254 1 36.52 26.18 15.62
255 1 17.6 8.81 10.14
256 1 21.95 25.19 17.69
257 1 17.4 7.46 18.59
258 1 6.15 29.7 35.99
259 1 9.73 37.39 24.96
260 1 28.58 28.21 36.19
261 1 8.24 13.72 32.2
262 1 13.25 34.6 22.71
263 1 38.58 7.98 10.3
264 1 18.29 29.75 23.51
265 1 3.74 13.22 31.05
266 1 30.78 0.7 24.57
267 1 24.5 12.94 10.81
268 1 33.88 26.44 1.96
269 1 29.92 22.6 9.59
270 1 15.87 21.94 33.44
271 1 23.63 8.41 10.95
272 1 26.53 0.01 7.58
273 1 33.88 8.73 2.52
274 1 39.74 31.46 36.87
275 1 13.28 39.54 37
276 1 24.74 35.41 32.14
277 1 17.3 34.32 6.85
278 1 24.43 13.36 5.63
279 1 31.23 17.12 7.11
280 1 15.58 37.85 34.06
281 1 25.93 38.17 3.13
282 1 31.84 34.34 39.67
283 1 14.41 17.74 14.43
284 1 9.4 1.78 29.53
285 1 8.29 29.61 6.81
286 1 7.13 17.36 -0.19
287 1 38.04 19.52 11.25
288 1 34.87 32.77 38.75
289 1 27.18 22.49 5.69
290 1 29.69 27.11 20.29
291 1 25.23 2.22 39.75
292 1 35.8 17.1 36.09
293 1 20.53 17.67 35.47
294 1 23.41 31.36 2.24
295 1 25.17 20.09 29.2
296 1 0.32 9.28 39.74
297 1 22.49 18.77 29.89
298 1 38.64 0.85 39.43
299 1 18.55 5.87 9.15
300 1 35.21 28.69 25.76
301 1 39.24 15.68 6.36
302 1 5.91 13.29 3.92
303 1 0.5 21.25 21.62
304 1 34.39 9.43 18.59
305 1 22.7 1.03 8.79
306 1 40.15 16.25 24.87
307 1 16.52 13.69 10.25
308 1 6.88 36.77 39.57
309 1 11.95 37.1 7.59
310 1 19.49 26.66 9.76
311 1 36.34 29.89 29.31
312 1 18.76 35.75 12.72
313 1 23.15 38.68 4.96
314 1 10.78 17.11 34.38
315 1 13.58 14.89 0.34
316 1 4.73 33.88 32.41
317 1 12.68 29.51 17.07
318 1 9.45 27 4.98
319 1 29.02 19.27 6.45
320 1 19.09 36.35 19.84
321 1 23.13 6.75 19.78
322 1 8.02 34.1 26.95
323 1 26.03 14.18 1.57
324 1 15.01 34.16 28.32
325 1 28.71 36.53 15.08
326 1 9.64 13.94 24.05
327 1 1.24 36.96 30.41
328 1 15.44 31.39 4.77
329 1 25.72 14.42 38.01
330 1 7.35 31.84 12.61
331 1 32.33 16.79 3.07
332 1 15.86 0.39 8.39
333 1 27.69 7.32 25.74
334 1 27.77 1.17 4.96
335 1 29.38 26.68 23.48
336 1 14.95 3.41 2.13
337 1 2.45 38.8 17.54
338 1 9.18 27.58 31.12
339 1 36.62 15.23 23.66
340 1 12.23 30.74 10.85
341 1 12.87 0.23 24.05
342 1 33.85 35.75 19.95
343 1 36.36 30.35 13.94
344 1 38.11 8.15 5.49
345 1 15.58 1.29 29.89
346 1 25.95 30.47 39.19
347 1 27.69 15.5 13.37
348 1 25.48 13.7 25.29
349 1 0.72 39.53 4.41
350 1 8.75 15.21 5.79
351 1 10.49 26.46 27.25
352 1 16.9 20.08 26.58
353 1 3.95 4.33 20.25
354 1 18.03 7.66 31.87
355 1 21.35 2.88 17.26
356 1 32.92 22.68 6.56
357 1 21.72 4.62 12.02
358 1 37.6 6.04 25.2
359 1 22.22 23.78 7.36
360 1 12.53 19.53 10.6
361 1 17.87 26.05 19.32
362 1 20.94 30.75 31.23
363 1 22.33 11.87 35.79
364 1 28.54 6.88 10.52
365 1 29.58 26.13 8.56
366 1 19.06 24.2 21.73
367 1 25.05 38.41 26.91
368 1 18.66 40.35 4.69
369 1 11.87 6.75 12.72
370 1 17.99 11.82 37.79
371 1 8.97 24.7 0.61
372 1 26.89 1.52 31.33
373 1 6.88 22.51 14.06
374 1 29.51 3.87 13.35
375 1 0.95 14.53 10
376 1 26.43 31.54 11.63
377 1 6.1 35.16 11.28
378 1 10.2 15.91 28.7
379 1 13.24 25.67 24.3
380 1 34.5 3.91 20.22
381 1 22.48 2.17 5.2
382 1 24.26 16.15 11.3
383 1 20.63 32.57 27.3
384 1 39.95 6.81 1.05
385 1 24.38 34.78 38.27
386 1 4.63 23.56 0.55
387 1 33.5 8.38 36.97
388 1 5.76 27.14 12.06
389 1 37.45 26.58 32.25
390 1 2.8 8.96 32.35
391 1 5.29 39.84 30.1
392 1 29.2 26.49 31.18
393 1 33.91 27.39 12.89
394 1 3.37 14.19 39.34
395 1 30.68 28.7 27
396 1 2.59 18.45 19.38
397 1 13.55 0.75 27.35
398 1 3.82 20.12 16.1
399 1 37.72 0.72 34.29
400 1 23.85 3.32 19.46
401 1 4.78 0.67 38.23
402 1 22.78 23.26 38.6
403 1 11.56 39.29 4.23
404 1 21.38 32.45 5.39
405 1 8.32 19.42 9.52
406 1 28.43 31.07 17.8
407 1 11.02 5.75 39.84
408 1 27.36 36.71 7.62
409 1 34.22 16.74 27.88
410 1 3.22 22.01 27.42
411 1 29.2 15.76 32.33
412 1 25.29 23.44 2.2
413 1 10.8 32.43 39.96
414 1 32.2 1.41 4.44
415 1 32.94 15.59 37.21
416 1 6.8 8.08 0.84
417 1 10.42 9.91 37.73
418 1 1.18 31.39 3.93
419 1 10.1 36.38 38.57
420 1 32.89 26.96 35.07
421 1 28.12 11.93 25.96
422 1 4.9 29.15 -0.25
423 1 2.21 27.99 3.72
424 1 11.33 3.94 25.55
425 1 3.3 30.26 10.78
426 1 11.57 27.26 19.31
427 1 21.79 32.67 13.3
428 1 4.96 26.53 33.78
429 1 33.41 32.87 18.46
430 1 13.92 30.37 20.3
431 1 16.91 3.5 11.57
432 1 -0.06 4.42 34.05
433 1 7.04 24.33 16.85
434 1 28.66 11.93 19.73
435 1 30.21 1.75 36.36
436 1 3.91 6.2 6.26
437 1 7.01 25.6 27.34
438 1 34 1.06 18.12
439 1 29.14 8.5 3.09
440 1 40.13 23.52 16.94
441 1 21.69 22.38 26.78
442 1 18.44 32.85 39.84
443 1 38.87 1.99 27.63
444 1 10.47 12.02 33.68
445 1 9.65 19.94 21.88
446 1 25.04 8.12 27.89
447 1 12.18 16.78 31.09
448 1 38.31 8.2 30.6
449 1 0.11 5.21 18.12
450 1 23.48 7.88 38.7
451 1 7.9 11.99 7.04
452 1 2.09 34.5 8.64
453 1 19 18.3 0.42
454 1 37.94 18.06 15.21
455 1 25.05 33.33 29.55
456 1 33.74 37.88 34.54
457 1 36.07 29.5 17.47
458 1 27.7 13.54 10.46
459 1 27.18 23.18 21.06
460 1 17.49 2.04 23.22
461 1 23.84 26.31 36.76
462 1 31.08 32.24 24.92
463 1 17.7 28.73 16.66
464 1 1.59 15.5 18.04
465 1 33.49 18.99 8.75
466 1 1.19 8.43 28.01
467 1 5.43 20.26 22.25
468 1 23.3 5.31 15.05
469 1 27.09 4.47 21.96
470 1 26.61 27.48 28.83
471 1 13 3.18 13.4
472 1 36.09 34.56 10.58
473 1 19.09 15.33 7.48
474 1 12.94 18.16 22.07
475 1 38.8 16.16 36.73
476 1 16.73 39.94 -0.46
477 1 3.64 12.56 9.42
478 1 27.64 3.31 18.29
479 1 15.58 12.36 4.52
480 1 15.37 11.18 18.19
481 1 37.52 11.23 14.94
482 1 37.16 2.3 10.01
483 1 36.19 9.86 21.99
484 1 36.38 21.09 4.76
485 1 38.15 12.94 25.35
486 1 15.1 29.65 24.64
487 1 16.54 29.12 38.85
488 1 33.86 11.39 14.4
489 1 27.99 18.55 9.87
490 1 0.66 1.26 8.28
491 1 29.89 33.84 29.75
492 1 6.64 33.3 6.74
493 1 31.47 0.39 11.25
494 1 8.76 15.96 10.74
495 1 39.6 15.8 21.04
496 1 22.38 28.55 19.85
497 1 25.87 6.23 5.4
498 1 36.24 26.67 38.61
499 1 23.05 8.79 7.01
500 1 32.05 4.16 8.87
501 1 35.3 13.36 38.03
502 1 39.91 25.91 36.45
503 1 32.17 17.27 31.82
504 1 29.99 21.54 20.57
505 1 9.39 0.57 34.17
506 1 22.12 17.22 13.03
507 1 15.23 16.27 24.39
508 1 26.32 25.89 13.26
509 1 39.25 3.46 1.34
510 1 32.56 10.28 7.96
511 1 25.76 14.8 34.79
512 1 32.12 5.38 36.94
513 1 17.74 15.37 14.87
514 1 21.93 3.26 25.26
515 1 24.05 0.48 36.27
516 1 8.2 19.02 33.92
517 1 33.07 25.88 24.79
518 1 12.54 0.52 32.8
519 1 18.5 6.34 23.21
520 1 35.93 10.26 34.79
521 1 19.33 11.86 6.94
522 1 1.63 5.31 25.43
523 1 30.62 36.78 30.77
524 1 12.25 26.79 13.74
525 1 21 1.47 13.99
526 1 22.24 29.36 34.11
527 1 29.05 1.74 0.24
528 1 19.34 25.14 39.77
529 1 12.9 25.42 35.42
530 1 4.1 20.69 33.31
531 1 35.38 5.64 9.17
532 1 5.01 34.03 23.36
533 1 15.7 10.01 7.1
534 1 25.95 19.48 24.73
535 1 11.15 4.16 21.43
536 1 1.47 3.23 13.72
537 1 26.54 36.76 17.48
538 1 7.65 30.6 27.73
539 1 18.59 3.05 3.32
540 1 6.92 36.14 15.67
541 1 12.72 36.21 32.72
542 1 16.33 26.24 14.35
543 1 21.66 12.61 26.18
544 1 15.72 32.37 10.71
545 1 27.57 15.75 4.97
546 1 20.18 39.13 18.44
547 1 18.77 17.09 4.74
548 1 12.75 14.08 17.89
549 1 10.71 37.26 35.13
550 1 20.88 32.12 9.94
551 1 8.69 0.06 9.54
552 1 1.58 12.61 26.42
553 1 10.29 22.73 13.14
554 1 23.31 25.7 4.97
555 1 36.7 30.78 5.26
556 1 5.6 28.71 23.76
557 1 13.04 7.91 15.46
558 1 40.24 33.53 34.5
559 1 39.7 18.36 34.25
560 1 23.52 22.84 21.14
561 1 32.82 27.9 5.02
562 1 1.52 33.77 27.04
563 1 31.48 18.68 13.1
564 1 34 24.07 34.55
565 1 34.72 25.03 30.45
566 1 18.92 5.7 16.54
567 1 15.26 40.2 16.97
568 1 24.55 16.8 26.26
569 1 17.59 18.03 31.75
570 1 12.08 27.38 38.42
571 1 31.42 21.91 35.27
572 1 9.68 6.93 36.96
573 1 22.93 15.19 2.53
574 1 11.83 24.38 2.24
575 1 16.02 12.44 31.42
576 1 20.24 10.7 20.15
577 1 37.38 17.37 40.63
578 1 3.74 17.41 22.49
579 1 23.21 9.86 23.99
580 1 2.49 36.56 38
581 1 20.51 1.54 22.62
582 1 8.23 33.44 33.15
583 1 30.93 8.12 14.85
584 1 36.35 3.92 37.65
585 1 5.57 10.63 28.64
586 1 30.24 22.84 4.6
587 1 3.24 15.97 7.43
588 1 22.64 0.7 27.09
589 1 1.64 40.37 27.74
590 1 30.53 35.28 3.5
591 1 25.55 4.7 2.53
592 1 22.04 29.56 12.29
593 1 3.42 8.76 2.28
594 1 16.37 37.65 7.87
595 1 20.65 12.75 2.9
596 1 8.07 20.49 2.6
597 1 20.04 24.72 28.2
598 1 29.75 0.33 16.1
599 1 31.36 33.09 8.02
600 1 8.6 10.56 2.65
601 1 20.55 33.93 33.71
602 1 23.11 -0.42 31.7
603 1 27.07 6.69 18.5
604 1 15.65 23.71 11.8
605 1 23.88 24.17 30.1
606 1 0.79 32.46 16.99
607 1 25.96 20.19 2.43
608 1 35.16 12.33 4.73
609 1 16.53 17.12 10.45
610 1 19.74 35.94 8.62
611 1 -0.24 28.29 28.3
612 1 33.15 4.39 12.64
613 1 24.27 18.59 33.59
614 1 0.3 9.61 23.54
615 1 5.52 10.89 34.71
616 1 9.85 26.26 34.42
617 1 25.54 37.74 39.13
618 1 4.11 29.65 5.81
619 1 30.86 22.72 31.07
620 1 39.54 34.54 23.24
621 1 15.03 9.34 12.11
622 1 21.93 38.49 9.53
623 1 18.21 19.2 16.65
624 1 38.71 32.83 14.49
625 1 37.74 36.38 31.43
626 1 7.57 2.2 1.07
627 1 12.27 10.05 1.53
628 1 18.32 19.55 12.51
629 1 12.49 24.81 16.57
630 1 35.07 31.62 22.85
631 1 4.91 19.68 30.45
632 1 11.36 2.92 36.19
633 1 26.76 35.53 1.29
634 1 1.13 14.55 14.77
635 1 8.2 25.14 37.83
636 1 -0.5 0.85 23.08
637 1 17.95 18.01 37.61
638 1 2.44 37.75 0.71
639 1 3.77 23.41 17.91
640 1 3.34 14.41 35.96
641 1 14.89 31.42 31.76
642 1 15.72 22.91 30.66
643 1 37.42 3.13 5.51
644 1 1.51 38.14 20.78
645 1 12.55 18.16 25.81
646 1 18.98 15.88 29.21
647 1 17.33 32.04 27.87
648 1 31.21 37.38 22.84
649 1 11.88 32.4 31
650 1 25.1 2.19 12.69
651 1 38.85 39.1 27.87
652 1 5.9 16.14 33.34
653 1 6.3 17.5 36.46
654 1 2.28 25.02 12.53
655 1 19.33 25.49 6.78
656 1 8.57 37.22 8.4
657 1 22 38.61 24.14
658 1 35.63 3.23 2.15
659 1 37.35 22.64 9.99
660 1 25.46 28.22 33.18
661 1 13.99 4.21 9.07
662 1 9.04 40.64 37.59
663 1 17.46 6.49 27.93
664 1 1.42 6.14 30.2
665 1 25.82 28.28 10.33
666 1 30.71 30.2 -0.02
667 1 8.05 29.32 0.62
668 1 6.49 3.17 6.65
669 1 7.77 39.88 26.03
670 1 28.53 12.14 30.96
671 1 6.25 12.64 39.55
672 1 3.78 7.96 25.83
673 1 28.69 29.58 6.61
674 1 5.32 18.55 8.6
675 1 5.3 11.44 14.19
676 1 39 12.03 36.99
677 1 11.08 32.51 19.12
678 1 38.48 1.03 20.34
679 1 38.47 11.31 10.12
680 1 3.65 20.3 11.99
681 1 27.18 11.39 3.4
682 1 29.61 20.72 38.86
683 1 31.88 4.82 24.75
684 1 14.52 36.61 25.66
685 1 21.68 19.96 24.58
686 1 1.2 13.59 23.16
687 1 37.71 5.97 35.28
688 1 19.81 22.04 37.54
689 1 40.67 27.07 10.14
690 1 38.57 13.96 13.75
691 1 18.15 17.19 21.63
692 1 3.76 27.51 30.32
693 1 11.39 25.09 7.96
694 1 28.95 22.02 13.33
695 1 31.72 35.46 35.33
696 1 15.17 6.03 23.94
697 1 9.63 9.42 22.18
698 1 27.76 4.1 38.61
699 1 27.37 37.46 11.07
700 1 35.69 15.24 6.39
701 1 21.92 33.09 36.84
702 1 4.79 15.51 13.28
703 1 9.31 26.44 22.8
704 1 30.14 38.31 6.98
705 1 4.33 6.66 13.77
706 1 3.66 27.15 37.83
707 1 0.44 24.06 29.62
708 1 35.4 9.59 9.8
709 1 33.77 39.44 21.41
710 1 29.2 18.74 24.38
711 1 34.14 30 7.36
712 1 16.02 4.37 6.43
713 1 35.75 39.41 40.58
714 1 15.32 11.84 23.24
715 1 32.52 24.39 20.97
716 1 11.45 2.9 7.16
717 1 7.07 34.28 36.04
718 1 11.41 8.83 7.57
719 1 29.29 27.79 16.55
720 1 2.41 9.16 16.14
721 1 13.14 38.07 12.01
722 1 37.45 14.26 18.3
723 1 34.64 18.37 16.65
724 1 29.26 34.28 33.46
725 1 13.67 19.83 3.04
726 1 19.64 2.6 32.95
727 1 23.61 23.55 11.34
728 1 6.87 22.5 36.5
729 1 36.78 28.34 22.96
730 1 11.3 13.98 9.84
731 1 20.82 19.73 9.16
732 1 12.65 12.61 6.16
733 1 9.25 7.81 25.28
734 1 25.4 29.36 5.84
735 1 17.86 9.06 4.45
736 1 35.84 40.51 26.06
737 1 26.97 21.28 31.59
738 1 39.94 38.14 24.86
739 1 3.16 17.07 2.49
740 1 14.08 15.4 36.99
741 1 26.1 13.88 29.68
742 1 26.36 20 20.56
743 1 12.02 6.35 27.65
744 1 11.21 19.14 15.27
745 1 35.86 22.93 26.81
746 1 32.26 12.62 2.68
747 1 29.36 4.91 6.86
748 1 20.14 7.97 29.32
749 1 25.53 11.2 36.18
750 1 30.36 14.25 24.79
751 1 29.84 38.37 39.29
752 1 15.79 36.4 4.26
753 1 32.59 14.17 10.29
754 1 13.89 34.54 15.42
755 1 12.13 33.62 7.27
756 1 25.86 23.81 33.97
757 1 18.4 31.27 34.96
758 1 6.58 40.49 17.57
759 1 5.64 39.86 23.05
760 1 25.32 33 16.24
761 1 0.98 10.99 12.21
762 1 32.86 23.75 12.41
763 1 32.91 1.3 26.94
764 1 9.46 8.66 31.47
765 1 17.49 15.53 1.82
766 1 8.17 18.16 15.3
767 1 4.84 30.63 26.32
768 1 6.75 37.1 30.8
769 1 7.16 5.72 15.74
770 1 20.09 17.82 19.18
771 1 1.02 27.99 32.54
772 1 21.44 1.28 38.4
773 1 21.06 14.62 37.08
774 1 27.82 18.99 15.96
775 1 33.51 21.46 22.82
776 1 8.29 2.79 17.09
777 1 18.14 11.41 28.62
778 1 17.94 28.54 32.73
779 1 36.1 9.54 40.1
780 1 36.55 2.62 22.97
781 1 27.29 10.41 39.35
782 1 22.04 37.76 2.02
783 1 23.01 30.08 16.58
784 1 6.34 15.31 21.61
785 1 7.3 22.39 7.74
786 1 38 5.77 21.04
787 1 32.93 12.85 26.58
788 1 22.43 15.36 16.72
789 1 18.54 2.38 8.35
790 1 0.62 31.88 23.84
791 1 39.56 30.3 21.7
792 1 7.56 11.78 25.2
793 1 16.05 3.98 26.72
794 1 24.33 36.16 13.16
795 1 26.38 31.24 35.77
796 1 14.94 26.46 -0.44
797 1 3.53 28 19.79
798 1 11.94 32.27 25.88
799 1 34.59 15.06 19.23
800 1 3.51 10.62 24.22
801 1 13.18 21.59 35.52
802 1 19.95 13.15 16.23
803 1 24.48 9.63 19.58
804 1 37.7 34.42 19.19
805 1 22.84 19.59 5.52
806 1 34.62 36.75 12.26
807 1 10.33 21.85 25.15
808 1 21.51 29.7 7.23
809 1 34.05 3 30.58
810 1 12.43 29.67 5.59
811 1 18.94 21.82 29.31
812 1 39.21 17.7 4
813 1 7.04 2.97 37.09
814 1 30.87 10.8 22.09
815 1 33.54 7.16 23.15
816 1 32.82 32.27 11.47
817 1 21.8 14.54 21.61
818 1 38.83 6.69 13.68
819 1 30.37 39.05 18.66
820 1 31.21 15.08 13.79
821 1 1.07 11.97 35.04
822 1 26.02 35.8 35.47
823 1 27.64 33.32 8.04
824 1 39.57 36.88 4.39
825 1 14.48 30.97 36.87
826 1 36.86 27.04 8.96
827 1 34.73 26.27 19.55
828 1 29.24 29.12 10.86
829 1 8.35 39.9 13.92
830 1 5.43 5.1 31.85
831 1 18.36 22.31 5.89
832 1 2.46 27.35 16.36
833 1 21.76 37.05 27.45
834 1 29.32 17.11 2.28
835 1 3.58 21.98 3.09
836 1 10.61 9.17 10.69
837 1 25.15 17.54 6.05
838 1 3.4 22.81 7.03
839 1 16.12 23.66 38.29
840 1 8.67 4.79 31.8
841 1 27.82 0.02 20.45
842 1 4.46 2.44 29.46
843 1 39.11 22.69 36.33
844 1 4.26 2.45 34.43
845 1 13.47 3.5 30.9
846 1 26.92 22.55 26.54
847 1 5.66 30.07 30.65
848 1 31.58 35.68 25.46
849 1 31.23 5.65 27.78
850 1 8.76 19.49 28.61
851 1 24.13 8.02 2.3
852 1 8.27 6.8 4.93
853 1 15.31 34.36 37.63
854 1 3.96 35.82 26.97
855 1 24.95 4.01 29.96
856 1 26.54 25.95 19.15
857 1 17.76 29.23 5.35
858 1 16.95 21.79 0.78
859 1 17.52 39.02 13.01
860 1 20.5 22.86 10.41
861 1 27.67 27.07 2.78
862 1 37.1 31.02 2.03
863 1 37.17 2.24 16.34
864 1 24.51 34.69 10.28
865 1 17.38 13.41 21.4
866 1 38 9.37 17.94
867 1 35.67 25.27 5.3
868 1 22.66 4.47 0.97
869 1 20.06 28.17 27.42
870 1 27.33 2.38 9.79
871 1 36.4 10.73 31.42
872 1 0.53 9.45 6.96
873 1 12.89 9.03 25.13
874 1 37.5 23.54 21.33
875 1 7.19 28.87 19.11
876 1 21.45 32.81 22.71
877 1 8.76 8.3 13.51
878 1 10.24 31.46 3.73
879 1 15.93 9.7 35.82
880 1 14.92 19.46 39.91
881 1 13.02 22.03 27.3
882 1 34.57 1.59 34.73
883 1 0.5 21.04 30.77
884 1 24.84 32.67 4.97
885 1 30.96 4.24 17.34
886 1 23.63 8.84 32.7
887 1 6.84 3.83 26.13
888 1 31.57 9.23 27.06
889 1 14.99 35.15 0.07
890 1 36.29 40.01 8.22
891 1 18 36.86 35.66
892 1 11.5 29.22 0.37
893 1 35.18 36.03 24.88
894 1 14.49 9.41 27.73
895 1 10.12 12.91 0.99
896 1 11.91 29.4 27.3
897 1 25.51 28.68 14.56
898 1 29.32 12.95 35.59
899 1 2.96 0.59 0.53
900 1 5.47 5.35 9.88
901 1 8.93 39.33 1.78
902 1 39.68 38.49 12.33
903 1 3.78 1.24 11.85
904 1 29.54 33.76 11.99
905 1 7.48 6.16 28.8
906 1 10.83 33.63 36.96
907 1 22.03 19.06 21.39
908 1 31.68 31 3.71
909 1 35.32 0.3 30.88
910 1 9.93 35.42 14.85
911 1 21.01 10.66 12.97
912 1 22.54 21.62 33.81
913 1 12.48 12.46 25.15
914 1 0.64 27.93 39.01
915 1 13.88 27.29 3.8
916 1 13.03 20.93 19.25
917 1 5.7 37.48 34.09
918 1 2.27 35.08 14.29
919 1 21.75 26.44 13.48
920 1 10.66 11.35 17.49
921 1 36.67 34.72 27.69
922 1 8.23 22.8 33.36
923 1 4.79 4.05 3.48
924 1 35.61 35 35.21
925 1 31.38 37.67 10.06
926 1 26.44 35.58 27.52
927 1 25.53 4.47 8.03
928 1 38.81 33.08 31.55
929 1 29.62 39.68 34.32
930 1 0.76 3.88 10.61
931 1 24.06 30.13 24.84
932 1 18.77 8.38 37.02
933 1 2.81 24.14 24.45
934 1 11.33 1.25 19.69
935 1 1.61 26.53 6.48
936 1 9.52 29.81 35.98
937 1 7.83 31.75 20.77
938 1 9.67 23.93 20.57
939 1 33.96 16.95 24.79
940 1 37.55 37.31 37.17
941 1 6.2 24.19 31.13
942 1 17.79 4.35 30.56
943 1 13.51 20.25 30.45
944 1 14.76 12.48 13.13
945 1 32.56 27.52 30.41
946 1 35.81 40.1 4.85
947 1 39.01 25.43 27.07
948 1 22.8 5.53 32.22
949 1 2.35 39.55 32.5
950 1 3.31 31.51 34.19
951 1 40.63 37.01 15.9
952 1 18.43 35.86 30.77
953 1 37.01 39.18 15.57
954 1 6.74 6.26 21.64
955 1 5.22 24.94 22.53
956 1 25.2 11.08 13.98
957 1 14.66 -0.14 5
958 1 14.96 8.38 20.32
959 1 1.89 23.03 10.1
960 1 33.01 11.23 39.32
961 1 32.68 6.79 32.04
962 1 6.25 25.81 3.82
963 1 18.37 31.97 14.57
964 1 9.74 30.21 22.71
965 1 3.09 1.52 19.38
966 1 33.98 37.34 5.63
967 1 32.19 28.35 15.8
968 1 24.4 15.49 19.39

View File

@ -0,0 +1,52 @@
# 35,000 atom nylon melt example
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
read_data large_nylon_melt.data.gz
velocity all create 800.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
molecule mol2 rxn1_stp1_reacted.data_template
molecule mol3 rxn1_stp2_unreacted.data_template
molecule mol4 rxn1_stp2_reacted.data_template
thermo 50
# dump 1 all xyz 100 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 &
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
# stable at 800K
fix 1 statted_grp nvt temp 800 800 100
# in order to customize behavior of reacting atoms,
# you can use the internally created 'bond_react_MASTER_group', like so:
# fix 2 bond_react_MASTER_group temp/rescale 1 800 800 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2] # cumulative reaction counts
# restart 100 restart1 restart2
run 200
# write_restart restart_longrun
# write_data restart_longrun.data

View File

@ -0,0 +1,175 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# 35,000 atom nylon melt example
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
read_data large_nylon_melt.data.gz
orthogonal box = (-2.68344 -2.06791 -2.21988) to (73.4552 73.2448 73.4065)
1 by 1 by 1 MPI processor grid
reading atoms ...
35200 atoms
reading velocities ...
35200 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
31 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
33600 bonds
reading angles ...
59200 angles
reading dihedrals ...
80000 dihedrals
reading impropers ...
35200 impropers
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
velocity all create 800.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 12
25 angles with max type 24
23 dihedrals with max type 33
14 impropers with max type 9
molecule mol2 rxn1_stp1_reacted.data_template
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 11
31 angles with max type 23
39 dihedrals with max type 30
20 impropers with max type 1
molecule mol3 rxn1_stp2_unreacted.data_template
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 11
25 angles with max type 23
30 dihedrals with max type 30
16 impropers with max type 1
molecule mol4 rxn1_stp2_reacted.data_template
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 13
19 angles with max type 25
16 dihedrals with max type 29
10 impropers with max type 11
thermo 50
# dump 1 all xyz 100 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
# stable at 800K
fix 1 statted_grp nvt temp 800 800 100
# in order to customize behavior of reacting atoms,
# you can use the internally created 'bond_react_MASTER_group', like so:
# fix 2 bond_react_MASTER_group temp/rescale 1 800 800 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2] # cumulative reaction counts
# restart 100 restart1 restart2
run 200
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.20765
grid = 18 18 18
stencil order = 5
estimated absolute RMS force accuracy = 0.0333156
estimated relative force accuracy = 0.000100329
using double precision FFTs
3d grid and FFT values/proc = 12167 5832
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 = 15 15 15
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
Per MPI rank memory allocation (min/avg/max) = 209.1 | 209.1 | 209.1 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 800 3666.3948 0.80366765 0 0
50 673.95238 -9670.9169 0.80366765 31 0
100 697.22819 -4624.0512 0.80366765 57 22
150 723.60507 -17175.571 0.80366765 76 48
200 736.71277 -12961.963 0.80366765 84 64
Loop time of 102.825 on 1 procs for 200 steps with 35200 atoms
Performance: 0.168 ns/day, 142.812 hours/ns, 1.945 timesteps/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 27.193 | 27.193 | 27.193 | 0.0 | 26.45
Bond | 11.324 | 11.324 | 11.324 | 0.0 | 11.01
Kspace | 4.1878 | 4.1878 | 4.1878 | 0.0 | 4.07
Neigh | 54.724 | 54.724 | 54.724 | 0.0 | 53.22
Comm | 0.40662 | 0.40662 | 0.40662 | 0.0 | 0.40
Output | 0.0011101 | 0.0011101 | 0.0011101 | 0.0 | 0.00
Modify | 4.9422 | 4.9422 | 4.9422 | 0.0 | 4.81
Other | | 0.04545 | | | 0.04
Nlocal: 35200 ave 35200 max 35200 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 38403 ave 38403 max 38403 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 6.9281e+06 ave 6.9281e+06 max 6.9281e+06 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 6928101
Ave neighs/atom = 196.821
Ave special neighs/atom = 9.83727
Neighbor list builds = 200
Dangerous builds = 0
# write_restart restart_longrun
# write_data restart_longrun.data
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:01:43

View File

@ -0,0 +1,175 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# 35,000 atom nylon melt example
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
read_data large_nylon_melt.data.gz
orthogonal box = (-2.68344 -2.06791 -2.21988) to (73.4552 73.2448 73.4065)
2 by 1 by 2 MPI processor grid
reading atoms ...
35200 atoms
reading velocities ...
35200 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
31 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
33600 bonds
reading angles ...
59200 angles
reading dihedrals ...
80000 dihedrals
reading impropers ...
35200 impropers
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
velocity all create 800.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 12
25 angles with max type 24
23 dihedrals with max type 33
14 impropers with max type 9
molecule mol2 rxn1_stp1_reacted.data_template
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 11
31 angles with max type 23
39 dihedrals with max type 30
20 impropers with max type 1
molecule mol3 rxn1_stp2_unreacted.data_template
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 11
25 angles with max type 23
30 dihedrals with max type 30
16 impropers with max type 1
molecule mol4 rxn1_stp2_reacted.data_template
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 13
19 angles with max type 25
16 dihedrals with max type 29
10 impropers with max type 11
thermo 50
# dump 1 all xyz 100 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
# stable at 800K
fix 1 statted_grp nvt temp 800 800 100
# in order to customize behavior of reacting atoms,
# you can use the internally created 'bond_react_MASTER_group', like so:
# fix 2 bond_react_MASTER_group temp/rescale 1 800 800 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2] # cumulative reaction counts
# restart 100 restart1 restart2
run 200
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.20765
grid = 18 18 18
stencil order = 5
estimated absolute RMS force accuracy = 0.0333156
estimated relative force accuracy = 0.000100329
using double precision FFTs
3d grid and FFT values/proc = 4508 1620
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 = 15 15 15
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
Per MPI rank memory allocation (min/avg/max) = 81.11 | 81.13 | 81.15 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 800 3666.3948 0.80366765 0 0
50 673.95238 -9670.9169 0.80366765 31 0
100 697.22819 -4624.0512 0.80366765 57 22
150 724.40407 -17166.729 0.80366765 76 49
200 737.28582 -12968.224 0.80366765 84 65
Loop time of 51.171 on 4 procs for 200 steps with 35200 atoms
Performance: 0.338 ns/day, 71.071 hours/ns, 3.908 timesteps/s
98.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 12.926 | 13.247 | 13.493 | 6.7 | 25.89
Bond | 5.2132 | 5.2733 | 5.3367 | 1.9 | 10.31
Kspace | 2.3601 | 2.6534 | 3.0067 | 16.0 | 5.19
Neigh | 25.93 | 25.934 | 25.937 | 0.1 | 50.68
Comm | 0.73273 | 0.75464 | 0.78505 | 2.3 | 1.47
Output | 0.00045228 | 0.00067407 | 0.0013323 | 0.0 | 0.00
Modify | 3.2682 | 3.2686 | 3.2692 | 0.0 | 6.39
Other | | 0.03995 | | | 0.08
Nlocal: 8800 ave 8913 max 8652 min
Histogram: 1 0 0 0 1 0 0 0 1 1
Nghost: 18366 ave 18461 max 18190 min
Histogram: 1 0 0 0 0 0 0 1 1 1
Neighs: 1.73203e+06 ave 1.77261e+06 max 1.68165e+06 min
Histogram: 1 0 1 0 0 0 0 0 0 2
Total # of neighbors = 6928132
Ave neighs/atom = 196.822
Ave special neighs/atom = 9.83608
Neighbor list builds = 200
Dangerous builds = 0
# write_restart restart_longrun
# write_data restart_longrun.data
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:52

View File

@ -0,0 +1,35 @@
this is a nominal superimpose file
2 edgeIDs
18 equivalences
BondingIDs
10
1
EdgeIDs
16
8
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

View File

@ -0,0 +1,189 @@
this is a molecule template for: initial nylon crosslink, post-reacting
18 atoms
17 bonds
31 angles
39 dihedrals
20 impropers
Types
1 9
2 1
3 1
4 4
5 4
6 3
7 3
8 1
9 1
10 5
11 8
12 6
13 3
14 3
15 7
16 1
17 3
18 3
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 0.000000
13 0.000000
14 0.000000
15 0.000000
16 0.000000
17 0.000000
18 0.000000
Coords
1 -5.522237 -0.752722 1.631158
2 -5.170398 -0.545733 0.178130
3 -6.469695 -0.553072 -0.648889
4 -6.052076 -1.721152 1.744648
5 -6.183059 0.071387 1.971497
6 -4.489340 -1.389197 -0.173156
7 -4.637591 0.453703 0.051252
8 -5.618658 0.138919 4.386107
9 -4.669492 -0.989819 3.943591
10 -4.270194 -0.766405 2.474102
11 -3.348470 -1.875393 2.024289
12 -3.569794 0.564183 2.345995
13 -5.201079 -1.993301 4.044219
14 -3.736682 -0.984819 4.598305
15 -4.255402 1.370923 2.679069
16 -6.136394 -0.339866 -2.136775
17 -6.996331 -1.555519 -0.517408
18 -7.153308 0.284949 -0.289930
Bonds
1 9 1 2
2 10 1 4
3 10 1 5
4 11 1 10
5 1 2 3
6 2 2 6
7 2 2 7
8 1 3 16
9 2 3 17
10 2 3 18
11 1 8 9
12 6 9 10
13 2 9 13
14 2 9 14
15 7 10 11
16 5 10 12
17 8 12 15
Angles
1 14 2 1 4
2 14 2 1 5
3 15 2 1 10
4 16 4 1 5
5 17 4 1 10
6 17 5 1 10
7 18 1 2 3
8 19 1 2 6
9 19 1 2 7
10 1 3 2 6
11 1 3 2 7
12 3 6 2 7
13 2 2 3 16
14 1 2 3 17
15 1 2 3 18
16 1 16 3 17
17 1 16 3 18
18 3 17 3 18
19 12 8 9 10
20 1 8 9 13
21 1 8 9 14
22 13 13 9 10
23 13 14 9 10
24 3 13 9 14
25 10 9 10 11
26 8 9 10 12
27 20 1 10 9
28 21 11 10 12
29 22 1 10 11
30 23 1 10 12
31 11 10 12 15
Dihedrals
1 16 4 1 2 3
2 17 4 1 2 6
3 17 4 1 2 7
4 16 5 1 2 3
5 17 5 1 2 6
6 17 5 1 2 7
7 18 10 1 2 3
8 19 10 1 2 6
9 19 10 1 2 7
10 20 2 1 10 9
11 21 2 1 10 11
12 22 2 1 10 12
13 23 4 1 10 9
14 24 4 1 10 11
15 25 4 1 10 12
16 23 5 1 10 9
17 24 5 1 10 11
18 25 5 1 10 12
19 26 1 2 3 16
20 27 1 2 3 17
21 27 1 2 3 18
22 4 16 3 2 6
23 2 6 2 3 17
24 2 6 2 3 18
25 4 16 3 2 7
26 2 7 2 3 17
27 2 7 2 3 18
28 14 8 9 10 11
29 12 8 9 10 12
30 28 8 9 10 1
31 15 13 9 10 11
32 13 13 9 10 12
33 29 13 9 10 1
34 15 14 9 10 11
35 13 14 9 10 12
36 29 14 9 10 1
37 10 9 10 12 15
38 11 11 10 12 15
39 30 1 10 12 15
Impropers
1 1 2 1 4 5
2 1 2 1 4 10
3 1 2 1 5 10
4 1 4 1 5 10
5 1 1 2 3 6
6 1 1 2 3 7
7 1 1 2 6 7
8 1 3 2 6 7
9 1 2 3 16 17
10 1 2 3 16 18
11 1 2 3 17 18
12 1 16 3 17 18
13 1 8 9 13 10
14 1 8 9 14 10
15 1 8 9 13 14
16 1 13 9 14 10
17 1 9 10 11 12
18 1 1 10 9 11
19 1 1 10 9 12
20 1 1 10 11 12

View File

@ -0,0 +1,160 @@
this is a molecule template for: initial nylon crosslink, pre-reacting
18 atoms
16 bonds
25 angles
23 dihedrals
14 impropers
Types
1 2
2 1
3 1
4 4
5 4
6 3
7 3
8 1
9 1
10 5
11 8
12 6
13 3
14 3
15 7
16 1
17 3
18 3
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 0.000000
13 0.000000
14 0.000000
15 0.000000
16 0.000000
17 0.000000
18 0.000000
Coords
1 -4.922858 -0.946982 1.146055
2 -5.047195 -0.935267 -0.358173
3 -6.526281 -0.755366 -0.743523
4 -5.282604 0.020447 1.552710
5 -3.860697 -1.095850 1.428305
6 -4.662382 -1.920900 -0.781524
7 -4.433977 -0.072765 -0.784071
8 -5.506279 0.202610 4.825816
9 -4.449177 -0.844592 4.423366
10 -4.103916 -0.749629 2.925195
11 -3.376249 -1.886171 2.245643
12 -4.493235 0.477214 2.137199
13 -4.849053 -1.888877 4.663994
14 -3.491823 -0.662913 5.018510
15 -5.020777 1.189745 2.805427
16 -3.964987 2.900602 -1.551341
17 -4.460694 2.836102 0.668882
18 -4.828494 3.219656 -0.122111
Bonds
1 12 1 2
2 4 1 4
3 4 1 5
4 1 2 3
5 2 2 6
6 2 2 7
7 1 3 16
8 2 3 17
9 2 3 18
10 1 8 9
11 6 9 10
12 2 9 13
13 2 9 14
14 7 10 11
15 5 10 12
16 8 12 15
Angles
1 6 2 1 4
2 6 2 1 5
3 7 4 1 5
4 24 1 2 3
5 5 1 2 6
6 5 1 2 7
7 1 3 2 6
8 1 3 2 7
9 3 6 2 7
10 2 2 3 16
11 1 2 3 17
12 1 2 3 18
13 1 16 3 17
14 1 16 3 18
15 3 17 3 18
16 12 8 9 10
17 1 8 9 13
18 1 8 9 14
19 13 13 9 10
20 13 14 9 10
21 3 13 9 14
22 10 9 10 11
23 8 9 10 12
24 21 11 10 12
25 11 10 12 15
Dihedrals
1 31 4 1 2 3
2 32 4 1 2 6
3 32 4 1 2 7
4 31 5 1 2 3
5 32 5 1 2 6
6 32 5 1 2 7
7 33 1 2 3 16
8 1 1 2 3 17
9 1 1 2 3 18
10 4 16 3 2 6
11 2 6 2 3 17
12 2 6 2 3 18
13 4 16 3 2 7
14 2 7 2 3 17
15 2 7 2 3 18
16 14 8 9 10 11
17 12 8 9 10 12
18 15 13 9 10 11
19 13 13 9 10 12
20 15 14 9 10 11
21 13 14 9 10 12
22 10 9 10 12 15
23 11 11 10 12 15
Impropers
1 1 2 1 4 5
2 9 9 10 11 12
3 1 1 2 3 6
4 1 1 2 3 7
5 1 1 2 6 7
6 1 3 2 6 7
7 1 2 3 16 17
8 1 2 3 16 18
9 1 2 3 17 18
10 1 16 3 17 18
11 1 8 9 13 10
12 1 8 9 14 10
13 1 8 9 13 14
14 1 13 9 14 10

View File

@ -0,0 +1,32 @@
this is a nominal superimpose file
2 edgeIDs
15 equivalences
BondingIDs
4
12
EdgeIDs
8
3
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

View File

@ -0,0 +1,131 @@
this is a molecule template for: water condensation, post-reacting
15 atoms
13 bonds
19 angles
16 dihedrals
10 impropers
Types
1 9
2 1
3 1
4 10
5 4
6 3
7 3
8 1
9 1
10 5
11 8
12 11
13 3
14 3
15 10
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.410000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 -0.820000
13 0.000000
14 0.000000
15 0.410000
Coords
1 -4.856280 -1.050468 1.432625
2 -5.047195 -0.935267 -0.358173
3 -6.526281 -0.755366 -0.743523
4 -5.282604 0.020447 1.552710
5 -3.860697 -1.095850 1.428305
6 -4.662382 -1.920900 -0.781524
7 -4.433977 -0.072765 -0.784071
8 -5.506279 0.202610 4.825816
9 -4.449177 -0.844592 4.423366
10 -4.103916 -0.749629 2.925195
11 -3.376249 -1.886171 2.245643
12 -4.493235 0.477214 2.137199
13 -4.849053 -1.888877 4.663994
14 -3.491823 -0.662913 5.018510
15 -5.020777 1.189745 2.805427
Bonds
1 9 1 2
2 10 1 5
3 11 1 10
4 1 2 3
5 2 2 6
6 2 2 7
7 13 4 12
8 1 8 9
9 6 9 10
10 2 9 13
11 2 9 14
12 7 10 11
13 13 15 12
Angles
1 14 2 1 5
2 15 2 1 10
3 17 5 1 10
4 18 1 2 3
5 19 1 2 6
6 19 1 2 7
7 1 3 2 6
8 1 3 2 7
9 3 6 2 7
10 12 8 9 10
11 1 8 9 13
12 1 8 9 14
13 13 13 9 10
14 13 14 9 10
15 3 13 9 14
16 10 9 10 11
17 20 1 10 9
18 22 1 10 11
19 25 15 12 4
Dihedrals
1 16 5 1 2 3
2 17 5 1 2 6
3 17 5 1 2 7
4 18 10 1 2 3
5 19 10 1 2 6
6 19 10 1 2 7
7 20 2 1 10 9
8 21 2 1 10 11
9 23 5 1 10 9
10 24 5 1 10 11
11 14 8 9 10 11
12 28 8 9 10 1
13 15 13 9 10 11
14 29 13 9 10 1
15 15 14 9 10 11
16 29 14 9 10 1
Impropers
1 10 2 1 5 10
2 11 1 10 9 11
3 1 1 2 3 6
4 1 1 2 3 7
5 1 1 2 6 7
6 1 3 2 6 7
7 1 8 9 13 10
8 1 8 9 14 10
9 1 8 9 13 14
10 1 13 9 14 10

View File

@ -0,0 +1,158 @@
this is a molecule template for: water condensation, pre-reacting
15 atoms
14 bonds
25 angles
30 dihedrals
16 impropers
Types
1 9
2 1
3 1
4 4
5 4
6 3
7 3
8 1
9 1
10 5
11 8
12 6
13 3
14 3
15 7
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 0.000000
13 0.000000
14 0.000000
15 0.000000
Coords
1 -4.922858 -0.946982 1.146055
2 -5.047195 -0.935267 -0.358173
3 -6.526281 -0.755366 -0.743523
4 -5.282604 0.020447 1.552710
5 -3.860697 -1.095850 1.428305
6 -4.662382 -1.920900 -0.781524
7 -4.433977 -0.072765 -0.784071
8 -5.506279 0.202610 4.825816
9 -4.449177 -0.844592 4.423366
10 -4.103916 -0.749629 2.925195
11 -3.376249 -1.886171 2.245643
12 -4.493235 0.477214 2.137199
13 -4.849053 -1.888877 4.663994
14 -3.491823 -0.662913 5.018510
15 -5.020777 1.189745 2.805427
Bonds
1 9 1 2
2 10 1 4
3 10 1 5
4 11 1 10
5 1 2 3
6 2 2 6
7 2 2 7
8 1 8 9
9 6 9 10
10 2 9 13
11 2 9 14
12 7 10 11
13 5 10 12
14 8 12 15
Angles
1 14 2 1 4
2 14 2 1 5
3 15 2 1 10
4 16 4 1 5
5 17 4 1 10
6 17 5 1 10
7 18 1 2 3
8 19 1 2 6
9 19 1 2 7
10 1 3 2 6
11 1 3 2 7
12 3 6 2 7
13 12 8 9 10
14 1 8 9 13
15 1 8 9 14
16 13 13 9 10
17 13 14 9 10
18 3 13 9 14
19 10 9 10 11
20 8 9 10 12
21 20 1 10 9
22 21 11 10 12
23 22 1 10 11
24 23 1 10 12
25 11 10 12 15
Dihedrals
1 16 4 1 2 3
2 17 4 1 2 6
3 17 4 1 2 7
4 16 5 1 2 3
5 17 5 1 2 6
6 17 5 1 2 7
7 18 10 1 2 3
8 19 10 1 2 6
9 19 10 1 2 7
10 20 2 1 10 9
11 21 2 1 10 11
12 22 2 1 10 12
13 23 4 1 10 9
14 24 4 1 10 11
15 25 4 1 10 12
16 23 5 1 10 9
17 24 5 1 10 11
18 25 5 1 10 12
19 14 8 9 10 11
20 12 8 9 10 12
21 28 8 9 10 1
22 15 13 9 10 11
23 13 13 9 10 12
24 29 13 9 10 1
25 15 14 9 10 11
26 13 14 9 10 12
27 29 14 9 10 1
28 10 9 10 12 15
29 11 11 10 12 15
30 30 1 10 12 15
Impropers
1 1 2 1 4 5
2 1 2 1 4 10
3 1 2 1 5 10
4 1 4 1 5 10
5 1 1 2 3 6
6 1 1 2 3 7
7 1 1 2 6 7
8 1 3 2 6 7
9 1 8 9 13 10
10 1 8 9 14 10
11 1 8 9 13 14
12 1 13 9 14 10
13 1 9 10 11 12
14 1 1 10 9 11
15 1 1 10 9 12
16 1 1 10 11 12

View File

@ -0,0 +1,50 @@
# two monomer nylon example
# reaction produces a condensed water molecule
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
read_data tiny_nylon.data
velocity all create 300.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
molecule mol2 rxn1_stp1_reacted.data_template
molecule mol3 rxn1_stp2_unreacted.data_template
molecule mol4 rxn1_stp2_reacted.data_template
thermo 50
# dump 1 all xyz 1 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 &
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
fix 1 statted_grp nvt temp 300 300 100
fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]
# restart 100 restart1 restart2
run 10000
# write_restart restart_longrun
# write_data restart_longrun.data

View File

@ -0,0 +1,370 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# two monomer nylon example
# reaction produces a condensed water molecule
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
read_data tiny_nylon.data
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 1 by 1 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
velocity all create 300.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
molecule mol2 rxn1_stp1_reacted.data_template
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
molecule mol3 rxn1_stp2_unreacted.data_template
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
molecule mol4 rxn1_stp2_reacted.data_template
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
thermo 50
# dump 1 all xyz 1 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
fix 1 statted_grp nvt temp 300 300 100
fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]
# restart 100 restart1 restart2
run 10000
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 343 8
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 = 10 10 10
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
WARNING: Inconsistent image flags (../domain.cpp:786)
Per MPI rank memory allocation (min/avg/max) = 33.34 | 33.34 | 33.34 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 296.70408 -51.30066 0.0034851739 1 0
100 274.25324 46.715512 0.0034851739 1 1
150 471.61579 31.321598 0.0034851739 1 1
200 362.87766 42.061118 0.0034851739 1 1
250 367.58058 65.303109 0.0034851739 1 1
300 372.38236 -52.421725 0.0034851739 1 1
350 297.69957 17.869945 0.0034851739 1 1
400 258.30433 49.19156 0.0034851739 1 1
450 253.34384 -5.8162637 0.0034851739 1 1
500 269.96465 -43.337517 0.0034851739 1 1
550 303.23718 10.180246 0.0034851739 1 1
600 329.59579 -48.97461 0.0034851739 1 1
650 350.42568 50.983183 0.0034851739 1 1
700 342.03272 35.43465 0.0034851739 1 1
750 269.23405 -41.873166 0.0034851739 1 1
800 245.15025 13.953092 0.0034851739 1 1
850 257.85421 -3.1492141 0.0034851739 1 1
900 316.15644 7.7798301 0.0034851739 1 1
950 299.9124 -15.77014 0.0034851739 1 1
1000 302.89968 -17.049693 0.0034851739 1 1
1050 308.91651 71.84632 0.0034851739 1 1
1100 348.43932 -18.742012 0.0034851739 1 1
1150 309.03036 50.536311 0.0034851739 1 1
1200 318.9761 -16.905746 0.0034851739 1 1
1250 320.42806 -0.057975092 0.0034851739 1 1
1300 289.7824 18.200772 0.0034851739 1 1
1350 284.79836 -9.1978427 0.0034851739 1 1
1400 325.43292 42.082833 0.0034851739 1 1
1450 261.5041 -37.823325 0.0034851739 1 1
1500 298.88723 -5.1647385 0.0034851739 1 1
1550 291.37403 -7.7764201 0.0034851739 1 1
1600 293.83475 22.2458 0.0034851739 1 1
1650 293.80611 24.202512 0.0034851739 1 1
1700 291.70205 -23.397884 0.0034851739 1 1
1750 292.32437 -10.671214 0.0034851739 1 1
1800 302.01367 -11.671025 0.0034851739 1 1
1850 322.1651 24.438331 0.0034851739 1 1
1900 310.45076 45.343592 0.0034851739 1 1
1950 325.91745 -19.847809 0.0034851739 1 1
2000 276.89662 63.387098 0.0034851739 1 1
2050 311.33783 -24.683247 0.0034851739 1 1
2100 346.2336 -27.526891 0.0034851739 1 1
2150 345.30604 -15.722411 0.0034851739 1 1
2200 346.7718 -17.857633 0.0034851739 1 1
2250 304.28676 -1.9965581 0.0034851739 1 1
2300 322.56372 -31.786868 0.0034851739 1 1
2350 282.64326 6.1982735 0.0034851739 1 1
2400 286.65759 -63.207781 0.0034851739 1 1
2450 257.05528 32.931491 0.0034851739 1 1
2500 283.64386 26.912373 0.0034851739 1 1
2550 299.54005 27.277039 0.0034851739 1 1
2600 283.92503 14.660972 0.0034851739 1 1
2650 321.93453 -18.977358 0.0034851739 1 1
2700 376.7189 31.826935 0.0034851739 1 1
2750 372.20075 -32.821697 0.0034851739 1 1
2800 361.40604 83.035183 0.0034851739 1 1
2850 332.27269 -23.927452 0.0034851739 1 1
2900 331.14638 -0.12328446 0.0034851739 1 1
2950 303.67489 -24.078857 0.0034851739 1 1
3000 311.40462 21.563537 0.0034851739 1 1
3050 284.72849 -23.849667 0.0034851739 1 1
3100 303.48477 39.347763 0.0034851739 1 1
3150 264.2739 -0.22299879 0.0034851739 1 1
3200 300.03351 31.545323 0.0034851739 1 1
3250 288.56663 5.7225228 0.0034851739 1 1
3300 200.13238 -31.239655 0.0034851739 1 1
3350 231.32512 16.631728 0.0034851739 1 1
3400 260.57402 2.1717992 0.0034851739 1 1
3450 301.47128 -42.210623 0.0034851739 1 1
3500 321.77414 40.074365 0.0034851739 1 1
3550 353.21858 28.387783 0.0034851739 1 1
3600 331.45989 -57.800858 0.0034851739 1 1
3650 303.88123 44.86596 0.0034851739 1 1
3700 329.73833 -0.80615652 0.0034851739 1 1
3750 297.55588 -0.49626039 0.0034851739 1 1
3800 286.38794 -10.010003 0.0034851739 1 1
3850 290.17417 -43.51187 0.0034851739 1 1
3900 247.88933 51.23735 0.0034851739 1 1
3950 332.31324 -18.194985 0.0034851739 1 1
4000 325.56802 18.402825 0.0034851739 1 1
4050 338.37593 36.430977 0.0034851739 1 1
4100 370.95478 39.290285 0.0034851739 1 1
4150 348.47859 -7.0779678 0.0034851739 1 1
4200 241.30632 -33.371788 0.0034851739 1 1
4250 242.17258 -9.986197 0.0034851739 1 1
4300 300.85311 -7.9244294 0.0034851739 1 1
4350 273.15684 -21.257283 0.0034851739 1 1
4400 305.77463 -5.8720722 0.0034851739 1 1
4450 314.97697 45.0373 0.0034851739 1 1
4500 310.77723 16.958773 0.0034851739 1 1
4550 302.1742 12.156862 0.0034851739 1 1
4600 319.74799 6.84889 0.0034851739 1 1
4650 270.86805 -13.767905 0.0034851739 1 1
4700 249.81731 -31.197487 0.0034851739 1 1
4750 285.86481 -9.8916364 0.0034851739 1 1
4800 233.98321 7.1338571 0.0034851739 1 1
4850 302.60551 49.262889 0.0034851739 1 1
4900 316.55056 34.663247 0.0034851739 1 1
4950 357.32741 11.583006 0.0034851739 1 1
5000 400.21045 -8.1781061 0.0034851739 1 1
5050 390.01845 -20.490275 0.0034851739 1 1
5100 378.84247 -41.328757 0.0034851739 1 1
5150 324.02038 -15.023862 0.0034851739 1 1
5200 262.08429 10.937354 0.0034851739 1 1
5250 255.75508 16.381455 0.0034851739 1 1
5300 277.84989 40.68232 0.0034851739 1 1
5350 302.92832 9.1989494 0.0034851739 1 1
5400 283.7196 -1.6584671 0.0034851739 1 1
5450 300.71266 -4.7030295 0.0034851739 1 1
5500 343.5499 -0.30550044 0.0034851739 1 1
5550 369.51271 21.691649 0.0034851739 1 1
5600 372.69789 -38.67994 0.0034851739 1 1
5650 327.41266 11.352137 0.0034851739 1 1
5700 278.98614 -23.827304 0.0034851739 1 1
5750 308.30054 -20.756187 0.0034851739 1 1
5800 341.45594 28.058441 0.0034851739 1 1
5850 322.97844 -10.731921 0.0034851739 1 1
5900 304.53591 32.825279 0.0034851739 1 1
5950 287.1752 -36.780091 0.0034851739 1 1
6000 296.52681 18.781896 0.0034851739 1 1
6050 314.25442 15.992829 0.0034851739 1 1
6100 313.86576 3.4342714 0.0034851739 1 1
6150 325.64196 32.392039 0.0034851739 1 1
6200 367.42931 -27.160706 0.0034851739 1 1
6250 369.30798 39.020934 0.0034851739 1 1
6300 328.92285 -23.175157 0.0034851739 1 1
6350 305.63077 4.9024453 0.0034851739 1 1
6400 241.70341 -13.676629 0.0034851739 1 1
6450 265.66717 2.40612 0.0034851739 1 1
6500 249.36037 13.420255 0.0034851739 1 1
6550 294.53814 10.853462 0.0034851739 1 1
6600 308.2025 18.995308 0.0034851739 1 1
6650 305.43797 -49.56785 0.0034851739 1 1
6700 320.27344 11.336281 0.0034851739 1 1
6750 321.78666 -23.463899 0.0034851739 1 1
6800 303.40388 7.6224553 0.0034851739 1 1
6850 297.18966 51.52256 0.0034851739 1 1
6900 284.18909 -8.4947203 0.0034851739 1 1
6950 331.03663 13.233655 0.0034851739 1 1
7000 311.37928 -43.265479 0.0034851739 1 1
7050 286.81661 -14.174683 0.0034851739 1 1
7100 302.84119 12.048954 0.0034851739 1 1
7150 297.19357 -43.111968 0.0034851739 1 1
7200 332.47359 26.048249 0.0034851739 1 1
7250 262.70677 41.176242 0.0034851739 1 1
7300 250.61405 -23.413982 0.0034851739 1 1
7350 296.91117 35.88133 0.0034851739 1 1
7400 245.09229 -13.447194 0.0034851739 1 1
7450 272.28131 -23.322585 0.0034851739 1 1
7500 209.04985 13.871239 0.0034851739 1 1
7550 255.00955 4.9325621 0.0034851739 1 1
7600 312.30937 -37.368274 0.0034851739 1 1
7650 305.65903 55.245496 0.0034851739 1 1
7700 325.09504 -18.347711 0.0034851739 1 1
7750 363.28282 -22.479686 0.0034851739 1 1
7800 350.17429 26.849547 0.0034851739 1 1
7850 271.70853 -17.764575 0.0034851739 1 1
7900 272.66484 -11.701967 0.0034851739 1 1
7950 298.60202 -12.765675 0.0034851739 1 1
8000 274.58852 49.641532 0.0034851739 1 1
8050 304.72347 -0.55414183 0.0034851739 1 1
8100 328.30757 -39.861301 0.0034851739 1 1
8150 406.67601 2.8999409 0.0034851739 1 1
8200 332.20083 -51.217399 0.0034851739 1 1
8250 354.50609 53.128769 0.0034851739 1 1
8300 337.2758 20.68562 0.0034851739 1 1
8350 361.89708 -54.185869 0.0034851739 1 1
8400 305.63496 24.058529 0.0034851739 1 1
8450 303.27461 4.304683 0.0034851739 1 1
8500 253.53694 -10.909021 0.0034851739 1 1
8550 277.03017 23.241479 0.0034851739 1 1
8600 291.41844 -22.240665 0.0034851739 1 1
8650 307.85368 31.919587 0.0034851739 1 1
8700 309.19724 0.53529642 0.0034851739 1 1
8750 354.6583 11.565515 0.0034851739 1 1
8800 329.78598 19.5996 0.0034851739 1 1
8850 240.79198 21.803515 0.0034851739 1 1
8900 318.40749 -59.816923 0.0034851739 1 1
8950 308.47211 -57.808635 0.0034851739 1 1
9000 271.51207 50.943482 0.0034851739 1 1
9050 249.4005 6.7529187 0.0034851739 1 1
9100 221.8772 47.196092 0.0034851739 1 1
9150 297.9351 4.0058184 0.0034851739 1 1
9200 274.85051 -24.774393 0.0034851739 1 1
9250 336.04757 5.3799028 0.0034851739 1 1
9300 380.44956 -22.389381 0.0034851739 1 1
9350 336.9824 23.050616 0.0034851739 1 1
9400 304.46425 32.530218 0.0034851739 1 1
9450 317.55591 -22.265425 0.0034851739 1 1
9500 323.70901 -7.0159787 0.0034851739 1 1
9550 316.07308 28.062131 0.0034851739 1 1
9600 262.74608 -0.78519192 0.0034851739 1 1
9650 271.55045 -21.430123 0.0034851739 1 1
9700 239.6022 14.483637 0.0034851739 1 1
9750 338.1437 -0.72765302 0.0034851739 1 1
9800 334.50189 19.495144 0.0034851739 1 1
9850 354.87554 19.272719 0.0034851739 1 1
9900 334.02141 -22.393457 0.0034851739 1 1
9950 293.63651 19.178873 0.0034851739 1 1
10000 319.81736 21.904414 0.0034851739 1 1
Loop time of 1.84987 on 1 procs for 10000 steps with 44 atoms
Performance: 467.059 ns/day, 0.051 hours/ns, 5405.774 timesteps/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.26152 | 0.26152 | 0.26152 | 0.0 | 14.14
Bond | 0.74069 | 0.74069 | 0.74069 | 0.0 | 40.04
Kspace | 0.30505 | 0.30505 | 0.30505 | 0.0 | 16.49
Neigh | 0.39991 | 0.39991 | 0.39991 | 0.0 | 21.62
Comm | 0.02261 | 0.02261 | 0.02261 | 0.0 | 1.22
Output | 0.0034585 | 0.0034585 | 0.0034585 | 0.0 | 0.19
Modify | 0.099979 | 0.099979 | 0.099979 | 0.0 | 5.40
Other | | 0.01666 | | | 0.90
Nlocal: 44 ave 44 max 44 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 44 ave 44 max 44 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 823 ave 823 max 823 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 823
Ave neighs/atom = 18.7045
Ave special neighs/atom = 9.77273
Neighbor list builds = 10000
Dangerous builds = 0
# write_restart restart_longrun
# write_data restart_longrun.data
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:01

View File

@ -0,0 +1,370 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# two monomer nylon example
# reaction produces a condensed water molecule
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
read_data tiny_nylon.data
orthogonal box = (-25 -25 -25) to (25 25 25)
1 by 2 by 2 MPI processor grid
reading atoms ...
44 atoms
reading velocities ...
44 velocities
scanning bonds ...
9 = max bonds/atom
scanning angles ...
21 = max angles/atom
scanning dihedrals ...
29 = max dihedrals/atom
scanning impropers ...
29 = max impropers/atom
reading bonds ...
42 bonds
reading angles ...
74 angles
reading dihedrals ...
100 dihedrals
reading impropers ...
44 impropers
4 = max # of 1-2 neighbors
6 = max # of 1-3 neighbors
12 = max # of 1-4 neighbors
41 = max # of special neighbors
velocity all create 300.0 4928459 dist gaussian
molecule mol1 rxn1_stp1_unreacted.data_template
Read molecule mol1:
18 atoms with max type 8
16 bonds with max type 14
25 angles with max type 28
23 dihedrals with max type 36
14 impropers with max type 11
molecule mol2 rxn1_stp1_reacted.data_template
Read molecule mol2:
18 atoms with max type 9
17 bonds with max type 13
31 angles with max type 27
39 dihedrals with max type 33
20 impropers with max type 1
molecule mol3 rxn1_stp2_unreacted.data_template
Read molecule mol3:
15 atoms with max type 9
14 bonds with max type 13
25 angles with max type 27
30 dihedrals with max type 33
16 impropers with max type 1
molecule mol4 rxn1_stp2_reacted.data_template
Read molecule mol4:
15 atoms with max type 11
13 bonds with max type 15
19 angles with max type 29
16 dihedrals with max type 32
10 impropers with max type 13
thermo 50
# dump 1 all xyz 1 test_vis.xyz
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
dynamic group bond_react_MASTER_group defined
dynamic group statted_grp defined
fix 1 statted_grp nvt temp 300 300 100
fix 4 bond_react_MASTER_group temp/rescale 1 300 300 10 1
thermo_style custom step temp press density f_myrxns[1] f_myrxns[2]
# restart 100 restart1 restart2
run 10000
PPPM initialization ...
using 12-bit tables for long-range coulomb (../kspace.cpp:321)
G vector (1/distance) = 0.0534597
grid = 2 2 2
stencil order = 5
estimated absolute RMS force accuracy = 0.0402256
estimated relative force accuracy = 0.000121138
using double precision FFTs
3d grid and FFT values/proc = 252 2
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 = 10 10 10
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
WARNING: Inconsistent image flags (../domain.cpp:786)
Per MPI rank memory allocation (min/avg/max) = 33.34 | 33.69 | 34.37 Mbytes
Step Temp Press Density f_myrxns[1] f_myrxns[2]
0 300 346.78165 0.0034851739 0 0
50 296.70408 -51.30066 0.0034851739 1 0
100 274.25324 46.715512 0.0034851739 1 1
150 471.61579 31.321598 0.0034851739 1 1
200 362.87766 42.061118 0.0034851739 1 1
250 367.58058 65.303109 0.0034851739 1 1
300 372.38236 -52.421725 0.0034851739 1 1
350 297.69957 17.869945 0.0034851739 1 1
400 258.30433 49.19156 0.0034851739 1 1
450 253.34384 -5.8162637 0.0034851739 1 1
500 269.96465 -43.337517 0.0034851739 1 1
550 303.23718 10.180246 0.0034851739 1 1
600 329.59579 -48.97461 0.0034851739 1 1
650 350.42568 50.983183 0.0034851739 1 1
700 342.03272 35.43465 0.0034851739 1 1
750 269.23405 -41.873166 0.0034851739 1 1
800 245.15025 13.953092 0.0034851739 1 1
850 257.85421 -3.1492141 0.0034851739 1 1
900 316.15644 7.7798301 0.0034851739 1 1
950 299.9124 -15.77014 0.0034851739 1 1
1000 302.89968 -17.049693 0.0034851739 1 1
1050 308.91651 71.84632 0.0034851739 1 1
1100 348.43932 -18.742012 0.0034851739 1 1
1150 309.03036 50.536311 0.0034851739 1 1
1200 318.9761 -16.905746 0.0034851739 1 1
1250 320.42806 -0.057975092 0.0034851739 1 1
1300 289.7824 18.200772 0.0034851739 1 1
1350 284.79836 -9.1978427 0.0034851739 1 1
1400 325.43292 42.082833 0.0034851739 1 1
1450 261.5041 -37.823325 0.0034851739 1 1
1500 298.88723 -5.1647385 0.0034851739 1 1
1550 291.37403 -7.7764201 0.0034851739 1 1
1600 293.83475 22.2458 0.0034851739 1 1
1650 293.80611 24.202512 0.0034851739 1 1
1700 291.70205 -23.397884 0.0034851739 1 1
1750 292.32437 -10.671214 0.0034851739 1 1
1800 302.01367 -11.671025 0.0034851739 1 1
1850 322.1651 24.438331 0.0034851739 1 1
1900 310.45076 45.343592 0.0034851739 1 1
1950 325.91745 -19.847809 0.0034851739 1 1
2000 276.89662 63.387098 0.0034851739 1 1
2050 311.33783 -24.683247 0.0034851739 1 1
2100 346.2336 -27.526891 0.0034851739 1 1
2150 345.30604 -15.722411 0.0034851739 1 1
2200 346.7718 -17.857633 0.0034851739 1 1
2250 304.28676 -1.9965581 0.0034851739 1 1
2300 322.56372 -31.786868 0.0034851739 1 1
2350 282.64326 6.1982735 0.0034851739 1 1
2400 286.65759 -63.207781 0.0034851739 1 1
2450 257.05528 32.931491 0.0034851739 1 1
2500 283.64386 26.912373 0.0034851739 1 1
2550 299.54005 27.277039 0.0034851739 1 1
2600 283.92503 14.660972 0.0034851739 1 1
2650 321.93453 -18.977358 0.0034851739 1 1
2700 376.7189 31.826935 0.0034851739 1 1
2750 372.20075 -32.821697 0.0034851739 1 1
2800 361.40604 83.035183 0.0034851739 1 1
2850 332.27269 -23.927452 0.0034851739 1 1
2900 331.14638 -0.12328446 0.0034851739 1 1
2950 303.67489 -24.078857 0.0034851739 1 1
3000 311.40462 21.563537 0.0034851739 1 1
3050 284.72849 -23.849667 0.0034851739 1 1
3100 303.48477 39.347763 0.0034851739 1 1
3150 264.2739 -0.22299878 0.0034851739 1 1
3200 300.03351 31.545323 0.0034851739 1 1
3250 288.56663 5.7225229 0.0034851739 1 1
3300 200.13238 -31.239655 0.0034851739 1 1
3350 231.32512 16.631728 0.0034851739 1 1
3400 260.57402 2.1717992 0.0034851739 1 1
3450 301.47128 -42.210623 0.0034851739 1 1
3500 321.77414 40.074365 0.0034851739 1 1
3550 353.21858 28.387783 0.0034851739 1 1
3600 331.45989 -57.800858 0.0034851739 1 1
3650 303.88123 44.86596 0.0034851739 1 1
3700 329.73833 -0.8061567 0.0034851739 1 1
3750 297.55588 -0.49626022 0.0034851739 1 1
3800 286.38794 -10.010003 0.0034851739 1 1
3850 290.17417 -43.51187 0.0034851739 1 1
3900 247.88933 51.23735 0.0034851739 1 1
3950 332.31324 -18.194985 0.0034851739 1 1
4000 325.56802 18.402825 0.0034851739 1 1
4050 338.37594 36.430977 0.0034851739 1 1
4100 370.95478 39.290285 0.0034851739 1 1
4150 348.47859 -7.0779683 0.0034851739 1 1
4200 241.30632 -33.371789 0.0034851739 1 1
4250 242.17258 -9.9861962 0.0034851739 1 1
4300 300.85311 -7.924429 0.0034851739 1 1
4350 273.15684 -21.257282 0.0034851739 1 1
4400 305.77464 -5.8720712 0.0034851739 1 1
4450 314.97697 45.037299 0.0034851739 1 1
4500 310.77723 16.958771 0.0034851739 1 1
4550 302.17421 12.156862 0.0034851739 1 1
4600 319.74799 6.8488914 0.0034851739 1 1
4650 270.86805 -13.767907 0.0034851739 1 1
4700 249.81731 -31.197484 0.0034851739 1 1
4750 285.86481 -9.8916332 0.0034851739 1 1
4800 233.98321 7.1338518 0.0034851739 1 1
4850 302.60551 49.262886 0.0034851739 1 1
4900 316.55055 34.663238 0.0034851739 1 1
4950 357.32741 11.583013 0.0034851739 1 1
5000 400.21044 -8.1780861 0.0034851739 1 1
5050 390.01845 -20.490268 0.0034851739 1 1
5100 378.84249 -41.328772 0.0034851739 1 1
5150 324.02039 -15.023852 0.0034851739 1 1
5200 262.08427 10.937367 0.0034851739 1 1
5250 255.75506 16.381495 0.0034851739 1 1
5300 277.84991 40.682283 0.0034851739 1 1
5350 302.92834 9.1989644 0.0034851739 1 1
5400 283.71964 -1.6583895 0.0034851739 1 1
5450 300.71261 -4.703054 0.0034851739 1 1
5500 343.54987 -0.30546396 0.0034851739 1 1
5550 369.51272 21.691639 0.0034851739 1 1
5600 372.69786 -38.679919 0.0034851739 1 1
5650 327.41256 11.352201 0.0034851739 1 1
5700 278.9861 -23.82728 0.0034851739 1 1
5750 308.30037 -20.756238 0.0034851739 1 1
5800 341.4559 28.058314 0.0034851739 1 1
5850 322.9786 -10.731862 0.0034851739 1 1
5900 304.53598 32.825105 0.0034851739 1 1
5950 287.17515 -36.780057 0.0034851739 1 1
6000 296.52688 18.782156 0.0034851739 1 1
6050 314.25411 15.99272 0.0034851739 1 1
6100 313.86572 3.4344108 0.0034851739 1 1
6150 325.64197 32.39212 0.0034851739 1 1
6200 367.4298 -27.161154 0.0034851739 1 1
6250 369.30937 39.020881 0.0034851739 1 1
6300 328.92245 -23.175612 0.0034851739 1 1
6350 305.6293 4.9011587 0.0034851739 1 1
6400 241.70456 -13.675247 0.0034851739 1 1
6450 265.66574 2.4049735 0.0034851739 1 1
6500 249.3592 13.420453 0.0034851739 1 1
6550 294.5367 10.856753 0.0034851739 1 1
6600 308.20246 18.992923 0.0034851739 1 1
6650 305.43756 -49.57151 0.0034851739 1 1
6700 320.27395 11.339101 0.0034851739 1 1
6750 321.7875 -23.463361 0.0034851739 1 1
6800 303.40316 7.6256997 0.0034851739 1 1
6850 297.18652 51.52186 0.0034851739 1 1
6900 284.19084 -8.496294 0.0034851739 1 1
6950 331.04173 13.227745 0.0034851739 1 1
7000 311.38027 -43.26105 0.0034851739 1 1
7050 286.82046 -14.171194 0.0034851739 1 1
7100 302.81691 12.058085 0.0034851739 1 1
7150 297.18018 -43.110658 0.0034851739 1 1
7200 332.46131 26.051496 0.0034851739 1 1
7250 262.72288 41.161451 0.0034851739 1 1
7300 250.62739 -23.440907 0.0034851739 1 1
7350 296.92141 35.869216 0.0034851739 1 1
7400 245.06807 -13.467896 0.0034851739 1 1
7450 272.2659 -23.292836 0.0034851739 1 1
7500 209.05776 13.888665 0.0034851739 1 1
7550 255.03716 4.9662624 0.0034851739 1 1
7600 312.26011 -37.350427 0.0034851739 1 1
7650 305.5823 55.208039 0.0034851739 1 1
7700 325.13382 -18.370791 0.0034851739 1 1
7750 363.24898 -22.473126 0.0034851739 1 1
7800 350.19254 26.792307 0.0034851739 1 1
7850 271.76418 -17.843445 0.0034851739 1 1
7900 272.70301 -11.709349 0.0034851739 1 1
7950 298.5993 -12.736235 0.0034851739 1 1
8000 274.52611 49.657345 0.0034851739 1 1
8050 304.73711 -0.52485689 0.0034851739 1 1
8100 328.29239 -39.901891 0.0034851739 1 1
8150 406.52096 2.8669076 0.0034851739 1 1
8200 332.17309 -51.168754 0.0034851739 1 1
8250 354.68419 53.003157 0.0034851739 1 1
8300 337.28934 20.766408 0.0034851739 1 1
8350 361.81133 -54.159227 0.0034851739 1 1
8400 305.59597 24.011667 0.0034851739 1 1
8450 303.25823 4.423341 0.0034851739 1 1
8500 253.50747 -11.026949 0.0034851739 1 1
8550 277.13504 23.204625 0.0034851739 1 1
8600 291.40211 -22.253861 0.0034851739 1 1
8650 307.93765 32.14162 0.0034851739 1 1
8700 309.1529 0.36279434 0.0034851739 1 1
8750 355.10326 11.677219 0.0034851739 1 1
8800 330.21328 19.235269 0.0034851739 1 1
8850 241.29109 21.707386 0.0034851739 1 1
8900 319.15363 -60.010115 0.0034851739 1 1
8950 308.88552 -57.637014 0.0034851739 1 1
9000 272.22373 51.15837 0.0034851739 1 1
9050 248.84947 7.3390565 0.0034851739 1 1
9100 221.91564 48.387079 0.0034851739 1 1
9150 298.03506 2.9058639 0.0034851739 1 1
9200 274.25114 -24.597819 0.0034851739 1 1
9250 334.08373 5.1079577 0.0034851739 1 1
9300 383.07285 -23.274763 0.0034851739 1 1
9350 335.00581 20.94212 0.0034851739 1 1
9400 309.23862 34.074744 0.0034851739 1 1
9450 312.62262 -28.468057 0.0034851739 1 1
9500 324.54274 2.851136 0.0034851739 1 1
9550 313.32781 22.468182 0.0034851739 1 1
9600 269.04372 4.064934 0.0034851739 1 1
9650 270.98476 -21.520127 0.0034851739 1 1
9700 236.8736 16.250728 0.0034851739 1 1
9750 333.94686 1.6864148 0.0034851739 1 1
9800 330.91875 12.150018 0.0034851739 1 1
9850 343.8603 25.338853 0.0034851739 1 1
9900 330.93364 -28.292992 0.0034851739 1 1
9950 291.25518 25.795948 0.0034851739 1 1
10000 319.25565 25.323846 0.0034851739 1 1
Loop time of 3.55353 on 4 procs for 10000 steps with 44 atoms
Performance: 243.139 ns/day, 0.099 hours/ns, 2814.105 timesteps/s
93.4% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.0030422 | 0.10454 | 0.35211 | 44.8 | 2.94
Bond | 0.0063896 | 0.29222 | 0.94356 | 71.3 | 8.22
Kspace | 0.88508 | 1.6486 | 1.979 | 35.1 | 46.39
Neigh | 0.61154 | 0.62212 | 0.63307 | 1.0 | 17.51
Comm | 0.18944 | 0.24549 | 0.29196 | 7.9 | 6.91
Output | 0.0050066 | 0.011804 | 0.032134 | 10.8 | 0.33
Modify | 0.52282 | 0.60522 | 0.69588 | 7.9 | 17.03
Other | | 0.02359 | | | 0.66
Nlocal: 11 ave 44 max 0 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Nghost: 33 ave 44 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 3
Neighs: 205.75 ave 823 max 0 min
Histogram: 3 0 0 0 0 0 0 0 0 1
Total # of neighbors = 823
Ave neighs/atom = 18.7045
Ave special neighs/atom = 9.77273
Neighbor list builds = 10000
Dangerous builds = 0
# write_restart restart_longrun
# write_data restart_longrun.data
Please see the log.cite file for references relevant to this simulation
Total wall time: 0:00:03

View File

@ -0,0 +1,35 @@
this is a nominal superimpose file
2 edgeIDs
18 equivalences
BondingIDs
10
1
EdgeIDs
16
8
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

View File

@ -0,0 +1,189 @@
this is a molecule template for: initial nylon crosslink, post-reacting
18 atoms
17 bonds
31 angles
39 dihedrals
20 impropers
Types
1 9
2 1
3 1
4 8
5 8
6 4
7 4
8 1
9 1
10 2
11 6
12 3
13 4
14 4
15 5
16 1
17 4
18 4
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 0.000000
13 0.000000
14 0.000000
15 0.000000
16 0.000000
17 0.000000
18 0.000000
Coords
1 -5.522237 -0.752722 1.631158
2 -5.170398 -0.545733 0.178130
3 -6.469695 -0.553072 -0.648889
4 -6.052076 -1.721152 1.744648
5 -6.183059 0.071387 1.971497
6 -4.489340 -1.389197 -0.173156
7 -4.637591 0.453703 0.051252
8 -5.618658 0.138919 4.386107
9 -4.669492 -0.989819 3.943591
10 -4.270194 -0.766405 2.474102
11 -3.348470 -1.875393 2.024289
12 -3.569794 0.564183 2.345995
13 -5.201079 -1.993301 4.044219
14 -3.736682 -0.984819 4.598305
15 -4.255402 1.370923 2.679069
16 -6.136394 -0.339866 -2.136775
17 -6.996331 -1.555519 -0.517408
18 -7.153308 0.284949 -0.289930
Bonds
1 11 1 2
2 12 1 4
3 12 1 5
4 13 1 10
5 2 2 3
6 1 2 6
7 1 2 7
8 2 3 16
9 1 3 17
10 1 3 18
11 2 8 9
12 4 9 10
13 1 9 13
14 1 9 14
15 5 10 11
16 3 10 12
17 6 12 15
Angles
1 17 2 1 4
2 17 2 1 5
3 18 2 1 10
4 19 4 1 5
5 20 4 1 10
6 20 5 1 10
7 21 1 2 3
8 22 1 2 6
9 22 1 2 7
10 2 3 2 6
11 2 3 2 7
12 1 6 2 7
13 3 2 3 16
14 2 2 3 17
15 2 2 3 18
16 2 16 3 17
17 2 16 3 18
18 1 17 3 18
19 8 8 9 10
20 2 8 9 13
21 2 8 9 14
22 23 13 9 10
23 23 14 9 10
24 1 13 9 14
25 6 9 10 11
26 4 9 10 12
27 24 1 10 9
28 25 11 10 12
29 26 1 10 11
30 27 1 10 12
31 7 10 12 15
Dihedrals
1 19 4 1 2 3
2 20 4 1 2 6
3 20 4 1 2 7
4 19 5 1 2 3
5 20 5 1 2 6
6 20 5 1 2 7
7 21 10 1 2 3
8 22 10 1 2 6
9 22 10 1 2 7
10 23 2 1 10 9
11 24 2 1 10 11
12 25 2 1 10 12
13 26 4 1 10 9
14 27 4 1 10 11
15 28 4 1 10 12
16 26 5 1 10 9
17 27 5 1 10 11
18 28 5 1 10 12
19 29 1 2 3 16
20 30 1 2 3 17
21 30 1 2 3 18
22 4 16 3 2 6
23 2 6 2 3 17
24 2 6 2 3 18
25 4 16 3 2 7
26 2 7 2 3 17
27 2 7 2 3 18
28 10 8 9 10 11
29 8 8 9 10 12
30 31 8 9 10 1
31 11 13 9 10 11
32 9 13 9 10 12
33 32 13 9 10 1
34 11 14 9 10 11
35 9 14 9 10 12
36 32 14 9 10 1
37 6 9 10 12 15
38 7 11 10 12 15
39 33 1 10 12 15
Impropers
1 1 2 1 4 5
2 1 2 1 4 10
3 1 2 1 5 10
4 1 4 1 5 10
5 1 1 2 3 6
6 1 1 2 3 7
7 1 1 2 6 7
8 1 3 2 6 7
9 1 2 3 16 17
10 1 2 3 16 18
11 1 2 3 17 18
12 1 16 3 17 18
13 1 8 9 13 10
14 1 8 9 14 10
15 1 8 9 13 14
16 1 13 9 14 10
17 1 9 10 11 12
18 1 1 10 9 11
19 1 1 10 9 12
20 1 1 10 11 12

View File

@ -0,0 +1,160 @@
this is a molecule template for: initial nylon crosslink, pre-reacting
18 atoms
16 bonds
25 angles
23 dihedrals
14 impropers
Types
1 7
2 1
3 1
4 8
5 8
6 4
7 4
8 1
9 1
10 2
11 6
12 3
13 4
14 4
15 5
16 1
17 4
18 4
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 0.000000
13 0.000000
14 0.000000
15 0.000000
16 0.000000
17 0.000000
18 0.000000
Coords
1 -4.922858 -0.946982 1.146055
2 -5.047195 -0.935267 -0.358173
3 -6.526281 -0.755366 -0.743523
4 -5.282604 0.020447 1.552710
5 -3.860697 -1.095850 1.428305
6 -4.662382 -1.920900 -0.781524
7 -4.433977 -0.072765 -0.784071
8 -5.506279 0.202610 4.825816
9 -4.449177 -0.844592 4.423366
10 -4.103916 -0.749629 2.925195
11 -3.376249 -1.886171 2.245643
12 -4.493235 0.477214 2.137199
13 -4.849053 -1.888877 4.663994
14 -3.491823 -0.662913 5.018510
15 -5.020777 1.189745 2.805427
16 -3.964987 2.900602 -1.551341
17 -4.460694 2.836102 0.668882
18 -4.828494 3.219656 -0.122111
Bonds
1 14 1 2
2 10 1 4
3 10 1 5
4 2 2 3
5 1 2 6
6 1 2 7
7 2 3 16
8 1 3 17
9 1 3 18
10 2 8 9
11 4 9 10
12 1 9 13
13 1 9 14
14 5 10 11
15 3 10 12
16 6 12 15
Angles
1 15 2 1 4
2 15 2 1 5
3 16 4 1 5
4 28 1 2 3
5 14 1 2 6
6 14 1 2 7
7 2 3 2 6
8 2 3 2 7
9 1 6 2 7
10 3 2 3 16
11 2 2 3 17
12 2 2 3 18
13 2 16 3 17
14 2 16 3 18
15 1 17 3 18
16 8 8 9 10
17 2 8 9 13
18 2 8 9 14
19 23 13 9 10
20 23 14 9 10
21 1 13 9 14
22 6 9 10 11
23 4 9 10 12
24 25 11 10 12
25 7 10 12 15
Dihedrals
1 34 4 1 2 3
2 35 4 1 2 6
3 35 4 1 2 7
4 34 5 1 2 3
5 35 5 1 2 6
6 35 5 1 2 7
7 36 1 2 3 16
8 12 1 2 3 17
9 12 1 2 3 18
10 4 16 3 2 6
11 2 6 2 3 17
12 2 6 2 3 18
13 4 16 3 2 7
14 2 7 2 3 17
15 2 7 2 3 18
16 10 8 9 10 11
17 8 8 9 10 12
18 11 13 9 10 11
19 9 13 9 10 12
20 11 14 9 10 11
21 9 14 9 10 12
22 6 9 10 12 15
23 7 11 10 12 15
Impropers
1 6 2 1 4 5
2 11 9 10 11 12
3 1 1 2 3 6
4 1 1 2 3 7
5 1 1 2 6 7
6 1 3 2 6 7
7 1 2 3 16 17
8 1 2 3 16 18
9 1 2 3 17 18
10 1 16 3 17 18
11 1 8 9 13 10
12 1 8 9 14 10
13 1 8 9 13 14
14 1 13 9 14 10

View File

@ -0,0 +1,32 @@
this is a nominal superimpose file
2 edgeIDs
15 equivalences
BondingIDs
4
12
EdgeIDs
8
3
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

View File

@ -0,0 +1,131 @@
this is a molecule template for: water condensation, post-reacting
15 atoms
13 bonds
19 angles
16 dihedrals
10 impropers
Types
1 9
2 1
3 1
4 10
5 8
6 4
7 4
8 1
9 1
10 2
11 6
12 11
13 4
14 4
15 10
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.410000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 -0.820000
13 0.000000
14 0.000000
15 0.410000
Coords
1 -4.856280 -1.050468 1.432625
2 -5.047195 -0.935267 -0.358173
3 -6.526281 -0.755366 -0.743523
4 -5.282604 0.020447 1.552710
5 -3.860697 -1.095850 1.428305
6 -4.662382 -1.920900 -0.781524
7 -4.433977 -0.072765 -0.784071
8 -5.506279 0.202610 4.825816
9 -4.449177 -0.844592 4.423366
10 -4.103916 -0.749629 2.925195
11 -3.376249 -1.886171 2.245643
12 -4.493235 0.477214 2.137199
13 -4.849053 -1.888877 4.663994
14 -3.491823 -0.662913 5.018510
15 -5.020777 1.189745 2.805427
Bonds
1 11 1 2
2 12 1 5
3 13 1 10
4 2 2 3
5 1 2 6
6 1 2 7
7 15 4 12
8 2 8 9
9 4 9 10
10 1 9 13
11 1 9 14
12 5 10 11
13 15 15 12
Angles
1 17 2 1 5
2 18 2 1 10
3 20 5 1 10
4 21 1 2 3
5 22 1 2 6
6 22 1 2 7
7 2 3 2 6
8 2 3 2 7
9 1 6 2 7
10 8 8 9 10
11 2 8 9 13
12 2 8 9 14
13 23 13 9 10
14 23 14 9 10
15 1 13 9 14
16 6 9 10 11
17 24 1 10 9
18 26 1 10 11
19 29 15 12 4
Dihedrals
1 19 5 1 2 3
2 20 5 1 2 6
3 20 5 1 2 7
4 21 10 1 2 3
5 22 10 1 2 6
6 22 10 1 2 7
7 23 2 1 10 9
8 24 2 1 10 11
9 26 5 1 10 9
10 27 5 1 10 11
11 10 8 9 10 11
12 31 8 9 10 1
13 11 13 9 10 11
14 32 13 9 10 1
15 11 14 9 10 11
16 32 14 9 10 1
Impropers
1 12 2 1 5 10
2 13 1 10 9 11
3 1 1 2 3 6
4 1 1 2 3 7
5 1 1 2 6 7
6 1 3 2 6 7
7 1 8 9 13 10
8 1 8 9 14 10
9 1 8 9 13 14
10 1 13 9 14 10

View File

@ -0,0 +1,158 @@
this is a molecule template for: water condensation, pre-reacting
15 atoms
14 bonds
25 angles
30 dihedrals
16 impropers
Types
1 9
2 1
3 1
4 8
5 8
6 4
7 4
8 1
9 1
10 2
11 6
12 3
13 4
14 4
15 5
Charges
1 -0.300000
2 0.000000
3 0.000000
4 0.000000
5 0.000000
6 0.000000
7 0.000000
8 0.000000
9 0.000000
10 0.300000
11 0.000000
12 0.000000
13 0.000000
14 0.000000
15 0.000000
Coords
1 -4.922858 -0.946982 1.146055
2 -5.047195 -0.935267 -0.358173
3 -6.526281 -0.755366 -0.743523
4 -5.282604 0.020447 1.552710
5 -3.860697 -1.095850 1.428305
6 -4.662382 -1.920900 -0.781524
7 -4.433977 -0.072765 -0.784071
8 -5.506279 0.202610 4.825816
9 -4.449177 -0.844592 4.423366
10 -4.103916 -0.749629 2.925195
11 -3.376249 -1.886171 2.245643
12 -4.493235 0.477214 2.137199
13 -4.849053 -1.888877 4.663994
14 -3.491823 -0.662913 5.018510
15 -5.020777 1.189745 2.805427
Bonds
1 11 1 2
2 12 1 4
3 12 1 5
4 13 1 10
5 2 2 3
6 1 2 6
7 1 2 7
8 2 8 9
9 4 9 10
10 1 9 13
11 1 9 14
12 5 10 11
13 3 10 12
14 6 12 15
Angles
1 17 2 1 4
2 17 2 1 5
3 18 2 1 10
4 19 4 1 5
5 20 4 1 10
6 20 5 1 10
7 21 1 2 3
8 22 1 2 6
9 22 1 2 7
10 2 3 2 6
11 2 3 2 7
12 1 6 2 7
13 8 8 9 10
14 2 8 9 13
15 2 8 9 14
16 23 13 9 10
17 23 14 9 10
18 1 13 9 14
19 6 9 10 11
20 4 9 10 12
21 24 1 10 9
22 25 11 10 12
23 26 1 10 11
24 27 1 10 12
25 7 10 12 15
Dihedrals
1 19 4 1 2 3
2 20 4 1 2 6
3 20 4 1 2 7
4 19 5 1 2 3
5 20 5 1 2 6
6 20 5 1 2 7
7 21 10 1 2 3
8 22 10 1 2 6
9 22 10 1 2 7
10 23 2 1 10 9
11 24 2 1 10 11
12 25 2 1 10 12
13 26 4 1 10 9
14 27 4 1 10 11
15 28 4 1 10 12
16 26 5 1 10 9
17 27 5 1 10 11
18 28 5 1 10 12
19 10 8 9 10 11
20 8 8 9 10 12
21 31 8 9 10 1
22 11 13 9 10 11
23 9 13 9 10 12
24 32 13 9 10 1
25 11 14 9 10 11
26 9 14 9 10 12
27 32 14 9 10 1
28 6 9 10 12 15
29 7 11 10 12 15
30 33 1 10 12 15
Impropers
1 1 2 1 4 5
2 1 2 1 4 10
3 1 2 1 5 10
4 1 4 1 5 10
5 1 1 2 3 6
6 1 1 2 3 7
7 1 1 2 6 7
8 1 3 2 6 7
9 1 8 9 13 10
10 1 8 9 14 10
11 1 8 9 13 14
12 1 13 9 14 10
13 1 9 10 11 12
14 1 1 10 9 11
15 1 1 10 9 12
16 1 1 10 11 12

View File

@ -0,0 +1,795 @@
this is LAMMPS data file containing two nylon monomers
44 atoms
11 atom types
42 bonds
15 bond types
74 angles
29 angle types
100 dihedrals
36 dihedral types
44 impropers
13 improper types
5 extra bond per atom
15 extra angle per atom
15 extra dihedral per atom
25 extra improper per atom
25 extra special per atom
-25 25 xlo xhi
-25 25 ylo yhi
-25 25 zlo zhi
Masses
1 12.0112
2 12.0112
3 15.9994
4 1.00797
5 1.00797
6 15.9994
7 14.0067
8 1.00797
9 14.0067
10 1.00797
11 15.9994
Pair Coeffs # lj/class2/coul/cut
1 0.054 4.01
2 0.12 3.81
3 0.24 3.535
4 0.02 2.7
5 0.013 1.098
6 0.267 3.3
7 0.065 4.07
8 0.013 1.098
9 0.106 4.07
10 0.013 1.098
11 0.26 3.61
Bond Coeffs # class2
1 1.101 345 -691.89 844.6
2 1.53 299.67 -501.77 679.81
3 1.3649 368.731 -832.478 1274.02
4 1.5202 253.707 -423.037 396.9
5 1.202 851.14 -1918.49 2160.77
6 0.965 532.506 -1282.9 2004.77
7 1.53 299.67 -501.77 679.81
8 1.101 345 -691.89 844.6
9 1.457 365.805 -699.637 998.484
10 1.006 466.74 -1073.6 1251.11
11 1.452 327.166 -547.899 526.5
12 1.01 462.75 -1053.63 1545.76
13 1.416 359.159 -558.473 1146.38
14 1.457 365.805 -699.637 998.484
15 0.97 563.28 -1428.22 1902.12
Angle Coeffs # class2
1 107.66 39.641 -12.921 -2.4318
2 110.77 41.453 -10.604 5.129
3 112.67 39.516 -7.443 -9.5583
4 123.145 55.5431 -17.2123 0.1348
5 118.986 98.6813 -22.2485 10.3673
6 123.145 55.5431 -17.2123 0.1348
7 111.254 53.5303 -11.8454 -11.5405
8 108.53 51.9747 -9.4851 -10.9985
9 107.734 40.6099 -28.8121 0
10 110.77 41.453 -10.604 5.129
11 112.67 39.516 -7.443 -9.5583
12 107.66 39.641 -12.921 -2.4318
13 111.91 60.7147 -13.3366 -13.0785
14 110.62 51.3137 -6.7198 -2.6003
15 110.954 50.8652 -4.4522 -10.0298
16 107.067 45.252 -7.5558 -9.512
17 113.868 45.9271 -20.0824 0
18 111.037 31.8958 -6.6942 -6.837
19 116.94 37.5749 -8.6676 0
20 117.961 37.4964 -8.1837 0
21 114.302 42.6589 -10.5464 -9.3243
22 108.937 57.401 2.9374 0
23 107.734 40.6099 -28.8121 0
24 116.926 39.4193 -10.9945 -8.7733
25 118.986 98.6813 -22.2485 10.3673
26 125.542 92.572 -34.48 -11.1871
27 0 0 0 0
28 111.91 60.7147 -13.3366 -13.0785
29 103.7 49.84 -11.6 -8
BondBond Coeffs
1 5.3316 1.101 1.101
2 3.3872 1.53 1.101
3 0 1.53 1.53
4 0 1.5202 1.3649
5 0 1.3649 1.202
6 46.0685 1.5202 1.202
7 0 1.3649 0.965
8 5.4199 1.53 1.5202
9 0.7115 1.5202 1.101
10 3.3872 1.53 1.101
11 0 1.53 1.53
12 5.3316 1.101 1.101
13 4.6217 1.53 1.457
14 12.426 1.457 1.101
15 -6.4168 1.457 1.006
16 -1.8749 1.006 1.006
17 -3.471 1.452 1.01
18 12.1186 1.452 1.416
19 -0.5655 1.01 1.01
20 -4.3126 1.01 1.416
21 3.5446 1.452 1.53
22 15.2994 1.452 1.101
23 0.7115 1.101 1.5202
24 0 1.416 1.5202
25 0 1.202 1.3649
26 138.495 1.416 1.202
27 0 1.416 1.3649
28 4.6217 1.457 1.53
29 -9.5 0.97 0.97
BondAngle Coeffs
1 18.103 18.103 1.101 1.101
2 20.754 11.421 1.53 1.101
3 8.016 8.016 1.53 1.53
4 0 0 1.5202 1.3649
5 0 0 1.3649 1.202
6 34.9982 37.1298 1.5202 1.202
7 0 0 1.3649 0.965
8 18.1678 15.8758 1.53 1.5202
9 12.4632 9.1765 1.5202 1.101
10 20.754 11.421 1.53 1.101
11 8.016 8.016 1.53 1.53
12 18.103 18.103 1.101 1.101
13 6.0876 16.5702 1.53 1.457
14 42.4332 13.4582 1.457 1.101
15 31.8096 20.5799 1.457 1.006
16 28.0322 28.0322 1.006 1.006
17 11.8828 5.9339 1.452 1.01
18 3.7812 14.8633 1.452 1.416
19 19.8125 19.8125 1.01 1.01
20 10.8422 29.5743 1.01 1.416
21 4.6031 -5.479 1.452 1.53
22 34.8907 10.6917 1.452 1.101
23 9.1765 12.4632 1.101 1.5202
24 0 0 1.416 1.5202
25 0 0 1.202 1.3649
26 62.7124 52.4045 1.416 1.202
27 0 0 1.416 1.3649
28 16.5702 6.0876 1.457 1.53
29 22.35 22.35 0.97 0.97
Dihedral Coeffs # class2
1 -0.0228 0 0.028 0 -0.1863 0
2 -0.1432 0 0.0617 0 -0.1083 0
3 0.0972 0 0.0722 0 -0.2581 0
4 0 0 0.0316 0 -0.1681 0
5 0 0 0.0514 0 -0.143 0
6 0 0 0 0 0 0
7 -2.7332 0 2.9646 0 -0.0155 0
8 0 0 0 0 0 0
9 0 0 0 0 0 0
10 0.0442 0 0.0292 0 0.0562 0
11 -0.1804 0 0.0012 0 0.0371 0
12 -0.2428 0 0.4065 0 -0.3079 0
13 -0.1432 0 0.0617 0 -0.1083 0
14 0.1764 0 0.1766 0 -0.5206 0
15 0 0 0.0316 0 -0.1681 0
16 0 0 0.0514 0 -0.143 0
17 -1.1506 0 -0.6344 0 -0.1845 0
18 -0.5187 0 -0.4837 0 -0.1692 0
19 -0.0483 0 -0.0077 0 -0.0014 0
20 -0.0148 0 -0.0791 0 -0.0148 0
21 0.0143 0 -0.0132 0 0.0091 0
22 0.0219 0 -0.026 0 0.0714 0
23 -0.7532 0 2.7392 0 0.0907 0
24 0.8297 0 3.7234 0 -0.0495 0
25 0 0 0 0 0 0
26 0 0 0 0 0 0
27 -1.6938 0 2.7386 0 -0.336 0
28 0 0 0 0 0 0
29 0.0972 0 0.0722 0 -0.2581 0
30 -0.0228 0 0.028 0 -0.1863 0
31 0.1693 0 -0.009 0 -0.0687 0
32 0.1693 0 -0.009 0 -0.0687 0
33 0 0 0 0 0 0
34 -1.1506 0 -0.6344 0 -0.1845 0
35 -0.5187 0 -0.4837 0 -0.1692 0
36 0.1764 0 0.1766 0 -0.5206 0
AngleAngleTorsion Coeffs
1 -5.3624 108.53 110.77
2 -12.564 110.77 110.77
3 -0.3801 112.67 108.53
4 -16.164 112.67 110.77
5 -22.045 112.67 112.67
6 0 0 111.254
7 0 118.985 111.254
8 0 108.53 0
9 0 107.734 0
10 -8.019 108.53 123.145
11 -15.3496 107.734 123.145
12 -15.7572 111.91 110.77
13 -12.564 110.77 110.77
14 -27.3953 112.67 111.91
15 -16.164 112.67 110.77
16 -22.045 112.67 112.67
17 -7.5499 111.91 110.954
18 -10.4258 110.62 110.954
19 -4.6337 113.868 114.302
20 -6.659 113.868 108.937
21 -7.4314 111.037 114.302
22 -8.1335 111.037 108.937
23 -6.5335 111.037 116.926
24 -15.5547 111.037 125.542
25 0 111.037 0
26 -1.3234 117.961 116.926
27 -7.3186 117.961 125.542
28 0 117.961 0
29 -1.0631 114.302 112.67
30 -12.7974 114.302 110.77
31 -5.4514 108.53 116.926
32 -12.2417 107.734 116.926
33 0 0 111.254
34 -7.5499 110.954 111.91
35 -10.4258 110.954 110.62
36 -27.3953 111.91 112.67
EndBondTorsion Coeffs
1 -0.0204 0.3628 -0.4426 -0.0097 -0.0315 -0.0755 1.5202 1.101
2 0.213 0.312 0.0777 0.213 0.312 0.0777 1.101 1.101
3 0.0062 -0.0002 0.0036 0.0055 0.006 -0.0009 1.53 1.5202
4 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.53 1.101
5 -0.0732 0 0 -0.0732 0 0 1.53 1.53
6 0 0 0 0 0 0 1.5202 0.965
7 0 0 0 0 0 0 1.202 0.965
8 0 0 0 0 0 0 1.53 1.3649
9 0 0 0 0 0 0 1.101 1.3649
10 0.2654 0.0503 0.1046 -0.281 0.0816 -0.1522 1.53 1.202
11 1.2143 0.2831 0.3916 -0.2298 0.0354 0.3853 1.101 1.202
12 0.1022 0.209 0.6433 0.196 0.7056 0.112 1.457 1.101
13 0.213 0.312 0.0777 0.213 0.312 0.0777 1.101 1.101
14 0.1032 0.5896 -0.4836 0.0579 -0.0043 -0.1906 1.53 1.457
15 0.2486 0.2422 -0.0925 0.0814 0.0591 0.2219 1.53 1.101
16 -0.0732 0 0 -0.0732 0 0 1.53 1.53
17 -0.9466 0.9356 -0.5542 0.057 0.0625 0.4112 1.53 1.006
18 -1.1685 0.9266 -0.0993 0.085 0.3061 0.2104 1.101 1.006
19 -0.0992 -0.0727 -0.4139 0.132 0.0015 0.1324 1.01 1.53
20 -0.4894 0.1644 0.3105 -0.8983 0.2826 0.0881 1.01 1.101
21 -0.1245 -0.9369 0.7781 -0.2033 0.0035 0.056 1.416 1.53
22 0.2292 1.1732 -0.058 -0.3667 0.8197 0.1335 1.416 1.101
23 0.2299 -0.1141 -0.1424 0.0933 -0.4631 0.2883 1.452 1.5202
24 0.1598 0.7253 -0.1007 0.1226 -2.1326 0.5581 1.452 1.202
25 0 0 0 0 0 0 1.452 1.3649
26 0.6413 0.1676 0.144 -0.6979 0.5619 0.4212 1.01 1.5202
27 0.1214 0.1936 0.0816 -0.7604 -2.6431 1.2467 1.01 1.202
28 0 0 0 0 0 0 1.01 1.3649
29 -0.0797 -0.0406 0.0255 0.0742 0.0105 0.0518 1.452 1.53
30 0.3022 0.2513 0.4641 -0.0601 -0.3763 -0.1876 1.452 1.101
31 -0.2631 -0.0076 -0.1145 -0.2751 -0.3058 -0.1767 1.53 1.416
32 -0.0268 0.7836 0.0035 0.3552 -0.2685 0.5834 1.101 1.416
33 0 0 0 0 0 0 1.416 0.965
34 0.057 0.0625 0.4112 -0.9466 0.9356 -0.5542 1.006 1.53
35 0.085 0.3061 0.2104 -1.1685 0.9266 -0.0993 1.006 1.101
36 0.0579 -0.0043 -0.1906 0.1032 0.5896 -0.4836 1.457 1.53
MiddleBondTorsion Coeffs
1 -3.5039 1.2458 -0.761 1.53
2 -14.261 -0.5322 -0.4864 1.53
3 -1.5945 0.2267 -0.6911 1.53
4 -14.879 -3.6581 -0.3138 1.53
5 -17.787 -7.1877 0 1.53
6 0 0 0 1.3649
7 0 0 0 1.3649
8 0 0 0 1.5202
9 0 0 0 1.5202
10 0.3388 -0.1096 0.1219 1.5202
11 0.2359 0.9139 0.9594 1.5202
12 -10.4959 -0.7647 -0.0545 1.53
13 -14.261 -0.5322 -0.4864 1.53
14 -15.4174 -7.3055 -1.0749 1.53
15 -14.879 -3.6581 -0.3138 1.53
16 -17.787 -7.1877 0 1.53
17 -2.2208 0.5479 -0.3527 1.457
18 -3.4611 1.6996 -0.6007 1.457
19 -3.5406 -3.3866 0.0352 1.452
20 -1.1752 2.8058 0.8083 1.452
21 -3.9501 -0.4002 -0.6798 1.452
22 -0.6899 -2.2646 1.1579 1.452
23 0 0 0 1.416
24 -8.8301 14.3079 -1.7716 1.416
25 0 0 0 1.416
26 0 0 0 1.416
27 -0.9084 6.1447 -0.4852 1.416
28 0 0 0 1.416
29 -4.2324 -3.3023 -1.3244 1.53
30 -4.1028 -0.5941 -0.047 1.53
31 0 0 0 1.5202
32 0 0 0 1.5202
33 0 0 0 1.3649
34 -2.2208 0.5479 -0.3527 1.457
35 -3.4611 1.6996 -0.6007 1.457
36 -15.4174 -7.3055 -1.0749 1.53
BondBond13 Coeffs
1 0 1.5202 1.101
2 0 1.101 1.101
3 0 1.53 1.5202
4 0 1.53 1.101
5 0 1.53 1.53
6 0 1.5202 0.965
7 0 1.202 0.965
8 0 1.53 1.3649
9 0 1.101 1.3649
10 0 1.53 1.202
11 0 1.101 1.202
12 0 1.457 1.101
13 0 1.101 1.101
14 0 1.53 1.457
15 0 1.53 1.101
16 0 1.53 1.53
17 0 1.53 1.006
18 0 1.101 1.006
19 0 1.01 1.53
20 0 1.01 1.101
21 0 1.416 1.53
22 0 1.416 1.101
23 0 1.452 1.5202
24 0 1.452 1.202
25 0 1.452 1.3649
26 0 1.01 1.5202
27 0 1.01 1.202
28 0 1.01 1.3649
29 0 1.452 1.53
30 0 1.452 1.101
31 0 1.53 1.416
32 0 1.101 1.416
33 0 1.416 0.965
34 0 1.006 1.53
35 0 1.006 1.101
36 0 1.457 1.53
AngleTorsion Coeffs
1 -0.7466 -0.9448 -0.6321 0.0162 1.4211 -1.4092 108.53 110.77
2 -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.77 110.77
3 -0.2607 0.3203 -0.2283 0.0515 -0.0674 -0.0474 112.67 108.53
4 -0.2454 0 -0.1136 0.3113 0.4516 -0.1988 112.67 110.77
5 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.67 112.67
6 0 0 0 0 0 0 0 111.254
7 0 0 0 0 0 0 118.985 111.254
8 0 0 0 0 0 0 108.53 0
9 0 0 0 0 0 0 107.734 0
10 0.0885 -1.3703 -0.5452 0.675 0.5965 0.6725 108.53 123.145
11 9.1299 -0.4847 0.3582 -1.4946 0.7308 -0.2083 107.734 123.145
12 -1.1075 0.282 0.8318 0.5111 1.6328 -1.0155 111.91 110.77
13 -0.8085 0.5569 -0.2466 -0.8085 0.5569 -0.2466 110.77 110.77
14 -1.9225 -1.345 0.221 2.0125 0.944 -2.7612 112.67 111.91
15 -0.2454 0 -0.1136 0.3113 0.4516 -0.1988 112.67 110.77
16 0.3886 -0.3139 0.1389 0.3886 -0.3139 0.1389 112.67 112.67
17 -3.343 4.4558 -0.0346 0.2873 -0.8072 -0.096 111.91 110.954
18 -3.9582 2.0063 0.3213 -0.4294 -0.4442 -0.6141 110.62 110.954
19 -0.5807 0.2041 -0.1384 -2.8967 2.7084 -0.0375 113.868 114.302
20 -0.3868 0.2041 0.0445 -3.7022 1.3876 0.2393 113.868 108.937
21 -1.523 1.1296 0.7167 -0.7555 0.0564 1.2177 111.037 114.302
22 0.0372 -0.3418 -0.0775 -1.5157 2.0781 0.5364 111.037 108.937
23 5.916 1.7856 0.4052 4.2133 2.9302 3.2903 111.037 116.926
24 7.4427 2.1505 -0.2206 4.4466 4.0317 1.7129 111.037 125.542
25 0 0 0 0 0 0 111.037 0
26 1.9306 0.2105 0.0557 -2.2134 1.2909 0.9726 117.961 116.926
27 2.3848 0.703 0.1399 -2.6238 0.3606 0.5474 117.961 125.542
28 0 0 0 0 0 0 117.961 0
29 0.2039 0.1602 -0.7946 -0.5501 -1.6982 0.2485 114.302 112.67
30 -1.982 0.2325 -0.3928 -1.2469 1.6933 -1.2081 114.302 110.77
31 2.1802 -0.0335 -1.3816 2.1221 0.5032 -0.0767 108.53 116.926
32 7.095 0.0075 0.691 2.0013 0.5068 0.8406 107.734 116.926
33 0 0 0 0 0 0 0 111.254
34 0.2873 -0.8072 -0.096 -3.343 4.4558 -0.0346 110.954 111.91
35 -0.4294 -0.4442 -0.6141 -3.9582 2.0063 0.3213 110.954 110.62
36 2.0125 0.944 -2.7612 -1.9225 -1.345 0.221 111.91 112.67
Improper Coeffs # class2
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
11 0 0
12 0 0
13 24.3329 0
AngleAngle Coeffs
1 0 0 0 0 118.985 123.145
2 0.2738 -0.4825 0.2738 110.77 107.66 110.77
3 -1.3199 -1.3199 0.1184 112.67 110.77 110.77
4 2.0403 -1.8202 1.0827 108.53 107.734 110.77
5 -3.3867 -3.4976 -3.3867 107.734 107.66 107.734
6 0 0 0 110.954 107.067 110.954
7 0.2738 -0.4825 0.2738 110.77 107.66 110.77
8 -1.3199 -1.3199 0.1184 112.67 110.77 110.77
9 -2.5301 0.5381 2.4286 111.91 110.62 110.77
10 2.4321 -3.5496 2.4321 110.62 107.66 110.62
11 0 0 0 123.145 118.985 0
12 0 0 0 113.868 117.961 111.037
13 0 0 0 116.926 123.145 125.542
Atoms # full
1 1 1 0.0000000000000000e+00 12.288168 0.738732 4.374280 0 0 0
2 1 2 2.9999999999999999e-01 13.959928 -0.883144 5.090597 0 0 0
3 1 3 0.0000000000000000e+00 14.411288 -1.994419 5.682160 0 0 0
4 1 4 0.0000000000000000e+00 12.881083 0.872503 3.506176 0 0 0
5 1 4 0.0000000000000000e+00 11.232775 0.801641 3.998777 0 0 0
6 1 5 0.0000000000000000e+00 13.704366 -2.470396 6.130105 0 0 0
7 1 1 0.0000000000000000e+00 12.489752 -0.793693 4.710639 0 0 0
8 1 1 0.0000000000000000e+00 12.455071 1.866388 5.385870 0 0 0
9 1 1 0.0000000000000000e+00 11.248961 1.901849 6.347664 0 0 0
10 1 2 2.9999999999999999e-01 10.005971 2.466710 5.772840 -1 1 0
11 1 6 0.0000000000000000e+00 14.795360 -0.034436 4.807367 0 0 0
12 1 6 0.0000000000000000e+00 9.115239 1.654547 5.617002 -1 0 0
13 1 3 0.0000000000000000e+00 9.745096 3.807654 5.573585 -1 1 0
14 1 4 0.0000000000000000e+00 12.248215 -1.371492 3.808598 0 0 0
15 1 4 0.0000000000000000e+00 11.715755 -1.036825 5.500449 0 0 0
16 1 4 0.0000000000000000e+00 12.559724 2.807687 4.858452 0 1 0
17 1 4 0.0000000000000000e+00 13.299968 1.616570 6.123781 0 0 0
18 1 4 0.0000000000000000e+00 11.650505 2.330454 7.282410 0 1 0
19 1 4 0.0000000000000000e+00 10.888420 0.913219 6.637162 -1 0 0
20 1 5 0.0000000000000000e+00 10.550073 4.294209 5.758192 -1 1 0
21 2 1 0.0000000000000000e+00 5.851425 1.929552 6.038335 0 0 0
22 2 1 0.0000000000000000e+00 6.741509 3.160751 6.233074 0 0 0
23 2 7 -2.9999999999999999e-01 7.957761 3.121780 5.252257 1 0 0
24 2 7 -2.9999999999999999e-01 2.599653 -2.258940 5.985863 0 -1 0
25 2 1 0.0000000000000000e+00 3.834337 -1.907078 5.441528 0 -1 0
26 2 1 0.0000000000000000e+00 4.810793 -1.083699 6.310184 0 -1 0
27 2 4 0.0000000000000000e+00 6.505912 1.182799 5.449104 0 0 0
28 2 4 0.0000000000000000e+00 5.156429 2.256468 5.348423 0 0 0
29 2 4 0.0000000000000000e+00 7.232782 3.178785 7.181911 0 0 0
30 2 4 0.0000000000000000e+00 6.251671 4.103621 6.222913 0 0 0
31 2 8 0.0000000000000000e+00 8.249909 4.070668 4.881297 1 0 0
32 2 8 0.0000000000000000e+00 7.813025 2.623184 4.400744 1 0 0
33 2 8 0.0000000000000000e+00 2.626695 -2.857547 6.817247 0 -1 0
34 2 8 0.0000000000000000e+00 1.955281 -2.684319 5.328460 0 -1 0
35 2 4 0.0000000000000000e+00 3.637708 -1.322842 4.469265 0 -1 0
36 2 4 0.0000000000000000e+00 4.415570 -2.739689 4.997336 0 -1 0
37 2 4 0.0000000000000000e+00 5.710714 -1.010014 5.642798 0 -1 0
38 2 4 0.0000000000000000e+00 5.103831 -1.696423 7.160345 0 -1 0
39 2 1 0.0000000000000000e+00 5.270763 1.286629 7.308822 0 0 0
40 2 4 0.0000000000000000e+00 4.834381 2.168531 7.931687 0 0 1
41 2 4 0.0000000000000000e+00 6.118354 0.786724 7.794709 0 0 1
42 2 1 0.0000000000000000e+00 4.273849 0.167695 6.957862 0 -1 0
43 2 4 0.0000000000000000e+00 3.792544 -0.081782 7.904418 0 -1 1
44 2 4 0.0000000000000000e+00 3.527495 0.674238 6.348869 0 0 0
Velocities
1 -2.4626989626218821e-03 -1.5920230003311222e-03 -3.0621927786115238e-03
2 9.5082416704385837e-03 -6.9903166167507250e-03 1.3702671335945608e-02
3 2.3431518493187576e-03 -2.9261683108242173e-03 1.4269399726982105e-03
4 -1.8184451408256214e-02 3.1103803691687960e-02 -1.3358827768357973e-02
5 2.6084132471017967e-02 -1.0819576493517332e-02 3.0403384454794881e-02
6 -4.7312115958218744e-03 -1.9111462399478338e-02 -3.6793354156497558e-02
7 -7.5068797595949869e-03 6.5661422055962489e-03 1.3226575122695422e-03
8 3.3807881380161281e-03 3.0458732663557089e-03 2.2368826795446284e-03
9 -3.1113905793879316e-03 8.2908867720754773e-03 -1.7561238039496530e-03
10 2.4685206571693056e-03 1.3194776209841030e-03 -2.8041877032800441e-03
11 -3.4945605770565296e-03 3.2323777135621814e-03 1.6223017668450866e-03
12 -6.1153483612847778e-03 -5.1534857074262185e-03 1.7735747357354274e-03
13 2.1384296781859011e-04 -4.5398902942729667e-03 6.1649769894413760e-03
14 2.5004619864373401e-03 -1.5709184283264888e-03 2.0837548254667757e-02
15 6.0547939205643532e-03 -1.2650704436910937e-02 -5.4430753266962190e-03
16 -1.0374605775698001e-02 9.1408658463889240e-03 -1.1306875858287088e-02
17 -1.2736499128987409e-02 -9.1726811852506501e-03 5.1136502685461254e-03
18 7.6741778607048112e-03 1.8629856635459279e-02 -1.1300096447670932e-02
19 -1.8616138775281121e-02 1.0848388547730185e-03 -5.7118433687798576e-03
20 5.4137572241479059e-03 -1.4564578166395727e-02 -1.2618420441909540e-02
21 5.8473521452312256e-03 -4.0595286000332086e-03 -6.2517801580146415e-03
22 3.6402033824753104e-03 -1.4629540504663154e-03 -4.0030712318898046e-03
23 9.0266305019107689e-03 -2.7511425384659687e-03 4.5576402565437142e-03
24 -1.3102302415548614e-02 -4.7286703965305791e-03 -1.8966887841189517e-03
25 7.8621682621103171e-03 -4.2046313540949568e-03 9.6887957374751301e-04
26 -4.7380176438337968e-03 9.6090441940775827e-03 -8.7592431387039336e-03
27 5.4311658811632517e-03 2.0032224663495989e-02 -9.4952076489808503e-03
28 -2.9056381493904374e-03 3.3317109723156875e-03 1.6650350064426677e-02
29 -6.4569944033489122e-03 2.8423983541959541e-03 -2.6066912906505167e-02
30 -2.2173867823429387e-02 1.4628839880961319e-02 -2.3330833961402380e-02
31 9.1925713381983114e-03 -2.5697556639281928e-03 -1.2822203161488303e-02
32 -8.3206975051927905e-03 -2.2538429924858707e-03 7.7620244118580314e-03
33 1.9920685674825727e-02 5.0317764848494097e-03 -2.1106672824976403e-02
34 1.4118463330250982e-02 1.7455545466840316e-02 -1.2482101375598437e-02
35 -6.1116505640437966e-03 1.3353021777303568e-02 -2.5492434283827668e-02
36 9.1001521565859649e-03 5.5737774505222404e-03 1.4573768978939985e-02
37 1.6523593470528035e-03 -2.2107518020000917e-02 2.0311423445130115e-02
38 -1.0346275393471860e-02 1.6055856586351790e-02 5.5489127019262424e-03
39 -3.2054811383248638e-03 1.6779208962376315e-03 2.9390509537535661e-03
40 1.9649219364916443e-02 4.0815776523222859e-03 -9.8422441166041274e-03
41 5.6961697588160361e-04 7.1361132234741477e-04 4.6335764220256257e-03
42 2.2221300208006252e-03 3.6217319632558197e-03 -6.3299398503455151e-03
43 2.5710172734841170e-03 8.0029179814482924e-03 1.9992986928468189e-02
44 -6.0827581822674656e-03 -1.1834273655641976e-02 2.0526923045885208e-02
Bonds
1 1 1 5
2 1 1 4
3 2 1 7
4 2 1 8
5 3 2 3
6 5 2 11
7 6 3 6
8 4 7 2
9 1 7 14
10 1 7 15
11 2 8 9
12 1 8 16
13 1 8 17
14 4 9 10
15 1 9 18
16 1 9 19
17 5 10 12
18 3 10 13
19 6 13 20
20 7 21 22
21 8 21 27
22 8 21 28
23 7 21 39
24 9 22 23
25 8 22 29
26 8 22 30
27 10 23 31
28 10 23 32
29 10 24 33
30 10 24 34
31 9 25 24
32 7 25 26
33 8 25 35
34 8 25 36
35 8 26 37
36 8 26 38
37 7 26 42
38 8 39 40
39 8 39 41
40 7 39 42
41 8 42 43
42 8 42 44
Angles
1 1 5 1 4
2 2 7 1 5
3 2 8 1 5
4 2 7 1 4
5 2 8 1 4
6 3 7 1 8
7 4 7 2 3
8 5 3 2 11
9 6 7 2 11
10 7 2 3 6
11 8 1 7 2
12 2 1 7 14
13 2 1 7 15
14 9 2 7 14
15 9 2 7 15
16 1 14 7 15
17 3 1 8 9
18 2 1 8 16
19 2 1 8 17
20 2 9 8 16
21 2 9 8 17
22 1 16 8 17
23 8 8 9 10
24 2 8 9 18
25 2 8 9 19
26 9 10 9 18
27 9 10 9 19
28 1 18 9 19
29 6 9 10 12
30 4 9 10 13
31 5 13 10 12
32 7 10 13 20
33 10 22 21 27
34 10 22 21 28
35 11 22 21 39
36 12 27 21 28
37 10 39 21 27
38 10 39 21 28
39 13 21 22 23
40 10 21 22 29
41 10 21 22 30
42 14 23 22 29
43 14 23 22 30
44 12 29 22 30
45 15 22 23 31
46 15 22 23 32
47 16 31 23 32
48 15 25 24 33
49 15 25 24 34
50 16 33 24 34
51 13 26 25 24
52 14 24 25 35
53 14 24 25 36
54 10 26 25 35
55 10 26 25 36
56 12 35 25 36
57 10 25 26 37
58 10 25 26 38
59 11 25 26 42
60 12 37 26 38
61 10 42 26 37
62 10 42 26 38
63 10 21 39 40
64 10 21 39 41
65 11 21 39 42
66 12 40 39 41
67 10 42 39 40
68 10 42 39 41
69 11 26 42 39
70 10 26 42 43
71 10 26 42 44
72 10 39 42 43
73 10 39 42 44
74 12 43 42 44
Dihedrals
1 2 5 1 7 14
2 2 5 1 7 15
3 2 4 1 7 14
4 2 4 1 7 15
5 3 8 1 7 2
6 4 8 1 7 14
7 4 8 1 7 15
8 2 5 1 8 16
9 2 5 1 8 17
10 2 4 1 8 16
11 2 4 1 8 17
12 5 7 1 8 9
13 4 7 1 8 16
14 4 7 1 8 17
15 6 7 2 3 6
16 7 11 2 3 6
17 1 2 7 1 5
18 1 2 7 1 4
19 8 1 7 2 3
20 9 14 7 2 3
21 9 15 7 2 3
22 10 1 7 2 11
23 11 14 7 2 11
24 11 15 7 2 11
25 4 9 8 1 5
26 4 9 8 1 4
27 3 1 8 9 10
28 4 1 8 9 18
29 4 1 8 9 19
30 2 16 8 9 18
31 2 16 8 9 19
32 2 17 8 9 18
33 2 17 8 9 19
34 1 10 9 8 16
35 1 10 9 8 17
36 10 8 9 10 12
37 8 8 9 10 13
38 11 18 9 10 12
39 9 18 9 10 13
40 11 19 9 10 12
41 9 19 9 10 13
42 6 9 10 13 20
43 7 12 10 13 20
44 13 27 21 22 29
45 13 27 21 22 30
46 13 28 21 22 29
47 13 28 21 22 30
48 14 39 21 22 23
49 15 39 21 22 29
50 15 39 21 22 30
51 15 22 21 39 40
52 15 22 21 39 41
53 16 22 21 39 42
54 13 27 21 39 40
55 13 27 21 39 41
56 13 28 21 39 40
57 13 28 21 39 41
58 12 23 22 21 27
59 12 23 22 21 28
60 17 21 22 23 31
61 17 21 22 23 32
62 18 29 22 23 31
63 18 29 22 23 32
64 18 30 22 23 31
65 18 30 22 23 32
66 17 26 25 24 33
67 18 35 25 24 33
68 18 36 25 24 33
69 17 26 25 24 34
70 18 35 25 24 34
71 18 36 25 24 34
72 12 24 25 26 37
73 12 24 25 26 38
74 13 35 25 26 37
75 13 35 25 26 38
76 13 36 25 26 37
77 13 36 25 26 38
78 14 42 26 25 24
79 15 42 26 25 35
80 15 42 26 25 36
81 16 25 26 42 39
82 15 25 26 42 43
83 15 25 26 42 44
84 13 37 26 42 43
85 13 37 26 42 44
86 13 38 26 42 43
87 13 38 26 42 44
88 15 42 39 21 27
89 15 42 39 21 28
90 16 21 39 42 26
91 15 21 39 42 43
92 15 21 39 42 44
93 13 40 39 42 43
94 13 40 39 42 44
95 13 41 39 42 43
96 13 41 39 42 44
97 15 39 42 26 37
98 15 39 42 26 38
99 15 26 42 39 40
100 15 26 42 39 41
Impropers
1 2 7 1 4 5
2 2 8 1 4 5
3 3 7 1 8 5
4 3 7 1 8 4
5 1 7 2 3 11
6 4 1 7 2 14
7 4 1 7 2 15
8 2 1 7 14 15
9 5 2 7 14 15
10 3 1 8 9 16
11 3 1 8 9 17
12 2 1 8 16 17
13 2 9 8 16 17
14 4 8 9 10 18
15 4 8 9 10 19
16 2 8 9 18 19
17 5 10 9 18 19
18 1 9 10 13 12
19 7 22 21 27 28
20 8 22 21 39 27
21 8 22 21 39 28
22 7 39 21 28 27
23 9 21 22 23 29
24 9 21 22 23 30
25 7 21 22 29 30
26 10 23 22 29 30
27 6 22 23 31 32
28 6 25 24 33 34
29 9 26 25 24 35
30 9 26 25 24 36
31 10 24 25 35 36
32 7 26 25 35 36
33 7 25 26 37 38
34 8 25 26 42 37
35 8 25 26 42 38
36 7 42 26 38 37
37 7 21 39 40 41
38 8 21 39 42 40
39 8 21 39 42 41
40 7 42 39 41 40
41 8 26 42 39 43
42 8 26 42 39 44
43 7 26 42 43 44
44 7 39 42 43 44

View File

@ -0,0 +1,127 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.160
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.16
Lattice spacing in x,y,z = 3.16 3.16 3.16
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (12.64 12.64 12.64)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000223637 secs
mass 1 183.84
# choose potential
include Mo_Chen_PRM2017.snap
# DATE: 2017-09-18 CONTRIBUTOR: Chi Chen <chc273@eng.ucsd.edu> CITATION: C. Chen, Z. Deng, R. Tran, H. Tang, I.-H. Chu, S. P. Ong, "Accurate force field for molybdenum by machine learning large materials data" Physical Review Materials 1, 04 3603 (2017)
# Generated by Materials Virtual Lab
# Definition of SNAP potential.
pair_style snap
pair_coeff * * Mo_Chen_PRM2017.snapcoeff Mo Mo_Chen_PRM2017.snapparam Mo
Reading potential file Mo_Chen_PRM2017.snapcoeff with DATE: 2017-09-18
SNAP Element = Mo, Radius 0.5, Weight 1
Reading potential file Mo_Chen_PRM2017.snapparam with DATE: 2017-09-18
SNAP keyword rcutfac 4.615858
SNAP keyword twojmax 6
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.61586
ghost atom cutoff = 5.61586
binsize = 2.80793, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair snap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.507 | 3.507 | 3.507 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -22.405975 0 -22.3675 2575.7657
10 294.77555 -22.405305 0 -22.3675 2756.6894
20 279.53011 -22.40335 0 -22.3675 3285.8272
30 255.52174 -22.40027 0 -22.3675 4122.8933
40 224.7299 -22.396321 0 -22.367499 5204.3499
50 189.67529 -22.391825 0 -22.367499 6449.1308
60 153.18862 -22.387145 0 -22.367499 7765.911
70 118.14998 -22.382652 0 -22.367499 9061.1616
80 87.224916 -22.378685 0 -22.367499 10247.68
90 62.623892 -22.37553 0 -22.367498 11250.067
100 45.9103 -22.373386 0 -22.367498 12011.726
Loop time of 3.3917 on 1 procs for 100 steps with 128 atoms
Performance: 1.274 ns/day, 18.843 hours/ns, 29.484 timesteps/s
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.3906 | 3.3906 | 3.3906 | 0.0 | 99.97
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00039721 | 0.00039721 | 0.00039721 | 0.0 | 0.01
Output | 0.00023007 | 0.00023007 | 0.00023007 | 0.0 | 0.01
Modify | 0.00021887 | 0.00021887 | 0.00021887 | 0.0 | 0.01
Other | | 0.0002868 | | | 0.01
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Nghost: 727 ave 727 max 727 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 1 0 0 0 0 0 0 0 0 0
FullNghs: 7424 ave 7424 max 7424 min
Histogram: 1 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:03

View File

@ -0,0 +1,127 @@
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
variable nsteps index 100
variable nrep equal 4
variable a equal 3.160
units metal
# generate the box and atom positions using a BCC lattice
variable nx equal ${nrep}
variable nx equal 4
variable ny equal ${nrep}
variable ny equal 4
variable nz equal ${nrep}
variable nz equal 4
boundary p p p
lattice bcc $a
lattice bcc 3.16
Lattice spacing in x,y,z = 3.16 3.16 3.16
region box block 0 ${nx} 0 ${ny} 0 ${nz}
region box block 0 4 0 ${ny} 0 ${nz}
region box block 0 4 0 4 0 ${nz}
region box block 0 4 0 4 0 4
create_box 1 box
Created orthogonal box = (0 0 0) to (12.64 12.64 12.64)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000277281 secs
mass 1 183.84
# choose potential
include Mo_Chen_PRM2017.snap
# DATE: 2017-09-18 CONTRIBUTOR: Chi Chen <chc273@eng.ucsd.edu> CITATION: C. Chen, Z. Deng, R. Tran, H. Tang, I.-H. Chu, S. P. Ong, "Accurate force field for molybdenum by machine learning large materials data" Physical Review Materials 1, 04 3603 (2017)
# Generated by Materials Virtual Lab
# Definition of SNAP potential.
pair_style snap
pair_coeff * * Mo_Chen_PRM2017.snapcoeff Mo Mo_Chen_PRM2017.snapparam Mo
Reading potential file Mo_Chen_PRM2017.snapcoeff with DATE: 2017-09-18
SNAP Element = Mo, Radius 0.5, Weight 1
Reading potential file Mo_Chen_PRM2017.snapparam with DATE: 2017-09-18
SNAP keyword rcutfac 4.615858
SNAP keyword twojmax 6
# Setup output
thermo 10
thermo_modify norm yes
# Set up NVE run
timestep 0.5e-3
neighbor 1.0 bin
neigh_modify once no every 1 delay 0 check yes
# Run MD
velocity all create 300.0 4928459
fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.61586
ghost atom cutoff = 5.61586
binsize = 2.80793, bins = 5 5 5
1 neighbor lists, perpetual/occasional/extra = 1 0 0
(1) pair snap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 3.486 | 3.486 | 3.486 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -22.405975 0 -22.3675 2575.7657
10 294.63153 -22.405286 0 -22.3675 2753.4662
20 278.98535 -22.40328 0 -22.3675 3272.416
30 254.38916 -22.400125 0 -22.3675 4091.8933
40 222.91191 -22.396088 0 -22.367499 5148.5505
50 187.16984 -22.391504 0 -22.367499 6362.2454
60 150.08253 -22.386747 0 -22.367499 7643.2732
70 114.60307 -22.382197 0 -22.367499 8900.2448
80 83.449257 -22.378201 0 -22.367499 10047.619
90 58.862643 -22.375048 0 -22.367498 11012.233
100 42.41931 -22.372939 0 -22.367498 11740.641
Loop time of 1.91636 on 4 procs for 100 steps with 128 atoms
Performance: 2.254 ns/day, 10.646 hours/ns, 52.182 timesteps/s
97.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 1.8147 | 1.8411 | 1.8875 | 2.1 | 96.07
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.022276 | 0.069629 | 0.095057 | 10.7 | 3.63
Output | 0.00032496 | 0.00065821 | 0.0016179 | 0.0 | 0.03
Modify | 0.00019503 | 0.00020915 | 0.00023341 | 0.0 | 0.01
Other | | 0.00481 | | | 0.25
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Nghost: 431 ave 431 max 431 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Neighs: 0 ave 0 max 0 min
Histogram: 4 0 0 0 0 0 0 0 0 0
FullNghs: 1856 ave 1856 max 1856 min
Histogram: 4 0 0 0 0 0 0 0 0 0
Total # of neighbors = 7424
Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:01

View File

@ -1,4 +1,6 @@
LAMMPS (5 Oct 2016)
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
@ -31,12 +33,13 @@ Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000328064 secs
mass 1 180.88
# choose potential
include Ta06A_pot.snap
include Ta06A.snap
# DATE: 2014-09-05 CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# Definition of SNAP potential Ta_Cand06A
@ -48,10 +51,9 @@ variable zblz equal 73
# Specify hybrid with SNAP, ZBL
pair_style hybrid/overlay snap zbl ${zblcutinner} ${zblcutouter}
pair_style hybrid/overlay snap zbl 4 ${zblcutouter}
pair_style hybrid/overlay snap zbl 4 4.8
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 4.8 snap
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 73 ${zblz}
pair_coeff 1 1 zbl 73 73
@ -61,10 +63,11 @@ SNAP Element = Ta, Radius 0.5, Weight 1
Reading potential file Ta06A.snapparam with DATE: 2014-09-05
SNAP keyword rcutfac 4.67637
SNAP keyword twojmax 6
SNAP keyword gamma 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword diagonalstyle 3
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
# Setup output
@ -85,13 +88,23 @@ fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
2 neighbor list requests
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.8
ghost atom cutoff = 5.8
binsize = 2.9 -> bins = 5 5 5
Memory usage per processor = 2.92823 Mbytes
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair snap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.138 | 4.138 | 4.138 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.85157 0 -11.813095 2717.1661
10 295.96579 -11.851053 0 -11.813095 2696.1559
@ -104,20 +117,20 @@ Step Temp E_pair E_mol TotEng Press
80 124.04276 -11.829003 0 -11.813094 1537.703
90 97.37622 -11.825582 0 -11.813094 1734.9662
100 75.007873 -11.822714 0 -11.813094 1930.8005
Loop time of 3.43062 on 1 procs for 100 steps with 128 atoms
Loop time of 2.53266 on 1 procs for 100 steps with 128 atoms
Performance: 1.259 ns/day, 19.059 hours/ns, 29.149 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads
Performance: 1.706 ns/day, 14.070 hours/ns, 39.484 timesteps/s
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 3.4295 | 3.4295 | 3.4295 | 0.0 | 99.97
Pair | 2.5313 | 2.5313 | 2.5313 | 0.0 | 99.95
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00043988 | 0.00043988 | 0.00043988 | 0.0 | 0.01
Output | 0.00010014 | 0.00010014 | 0.00010014 | 0.0 | 0.00
Modify | 0.00024533 | 0.00024533 | 0.00024533 | 0.0 | 0.01
Other | | 0.0002978 | | | 0.01
Comm | 0.00051379 | 0.00051379 | 0.00051379 | 0.0 | 0.02
Output | 0.00023317 | 0.00023317 | 0.00023317 | 0.0 | 0.01
Modify | 0.00023675 | 0.00023675 | 0.00023675 | 0.0 | 0.01
Other | | 0.0003583 | | | 0.01
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
@ -133,4 +146,4 @@ Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:03
Total wall time: 0:00:02

View File

@ -1,4 +1,6 @@
LAMMPS (5 Oct 2016)
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
@ -31,12 +33,13 @@ Created orthogonal box = (0 0 0) to (13.264 13.264 13.264)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000288486 secs
mass 1 180.88
# choose potential
include Ta06A_pot.snap
include Ta06A.snap
# DATE: 2014-09-05 CONTRIBUTOR: Aidan Thompson athomps@sandia.gov CITATION: Thompson, Swiler, Trott, Foiles and Tucker, arxiv.org, 1409.3880 (2014)
# Definition of SNAP potential Ta_Cand06A
@ -48,10 +51,9 @@ variable zblz equal 73
# Specify hybrid with SNAP, ZBL
pair_style hybrid/overlay snap zbl ${zblcutinner} ${zblcutouter}
pair_style hybrid/overlay snap zbl 4 ${zblcutouter}
pair_style hybrid/overlay snap zbl 4 4.8
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 4.8 snap
pair_coeff 1 1 zbl ${zblz} ${zblz}
pair_coeff 1 1 zbl 73 ${zblz}
pair_coeff 1 1 zbl 73 73
@ -61,10 +63,11 @@ SNAP Element = Ta, Radius 0.5, Weight 1
Reading potential file Ta06A.snapparam with DATE: 2014-09-05
SNAP keyword rcutfac 4.67637
SNAP keyword twojmax 6
SNAP keyword gamma 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword diagonalstyle 3
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
# Setup output
@ -85,13 +88,23 @@ fix 1 all nve
run ${nsteps}
run 100
Neighbor list info ...
2 neighbor list requests
update every 1 steps, delay 0 steps, check yes
max neighbors/atom: 2000, page size: 100000
master list distance cutoff = 5.8
ghost atom cutoff = 5.8
binsize = 2.9 -> bins = 5 5 5
Memory usage per processor = 2.91109 Mbytes
binsize = 2.9, bins = 5 5 5
2 neighbor lists, perpetual/occasional/extra = 2 0 0
(1) pair zbl, perpetual, half/full from (2)
attributes: half, newton on
pair build: halffull/newton
stencil: none
bin: none
(2) pair snap, perpetual
attributes: full, newton on
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Per MPI rank memory allocation (min/avg/max) = 4.118 | 4.118 | 4.118 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.85157 0 -11.813095 2717.1661
10 295.8664 -11.85104 0 -11.813095 2702.935
@ -104,20 +117,20 @@ Step Temp E_pair E_mol TotEng Press
80 121.80051 -11.828715 0 -11.813094 1627.6911
90 95.262635 -11.825311 0 -11.813094 1812.9327
100 73.194645 -11.822481 0 -11.813094 1995.2199
Loop time of 0.89193 on 4 procs for 100 steps with 128 atoms
Loop time of 1.3621 on 4 procs for 100 steps with 128 atoms
Performance: 4.843 ns/day, 4.955 hours/ns, 112.116 timesteps/s
99.9% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 3.172 ns/day, 7.567 hours/ns, 73.416 timesteps/s
98.7% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 0.84444 | 0.86772 | 0.88108 | 1.6 | 97.29
Pair | 1.2867 | 1.309 | 1.35 | 2.1 | 96.10
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.009577 | 0.023049 | 0.046417 | 9.8 | 2.58
Output | 0.00024009 | 0.00026137 | 0.00027895 | 0.1 | 0.03
Modify | 8.2493e-05 | 9.352e-05 | 0.00010061 | 0.1 | 0.01
Other | | 0.0008071 | | | 0.09
Comm | 0.0096083 | 0.050652 | 0.072999 | 10.9 | 3.72
Output | 0.00031447 | 0.00060236 | 0.0014303 | 0.0 | 0.04
Modify | 0.00014234 | 0.00016212 | 0.00018811 | 0.0 | 0.01
Other | | 0.001728 | | | 0.13
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
@ -133,4 +146,4 @@ Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:00
Total wall time: 0:00:01

View File

@ -1,4 +1,6 @@
LAMMPS (13 Feb 2017)
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
@ -31,20 +33,21 @@ Created orthogonal box = (0 0 0) to (12.7212 12.7212 12.7212)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000190258 secs
mass 1 183.84
# choose potential
include W_2940_2017_2.pot.snap
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. to appear in arxiv Feb2017
include W_2940_2017_2.snap
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. "Quantum-Accurate Molecular Dynamics Potential for Tungsten" arXiv:1702.07042 [physics.comp-ph]
#
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP, ZBL, and long-range Coulomb
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap
@ -58,10 +61,11 @@ SNAP Element = W, Radius 0.5, Weight 1
Reading potential file W_2940_2017_2.snapparam with DATE: 2017-02-20
SNAP keyword rcutfac 4.73442
SNAP keyword twojmax 8
SNAP keyword gamma 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword diagonalstyle 3
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
#Nomenclature on the snap files are Element_DakotaID_Year_Month
@ -99,7 +103,7 @@ Neighbor list info ...
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 5.14696 Mbytes
Per MPI rank memory allocation (min/avg/max) = 5.15 | 5.15 | 5.15 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.028325 0 -10.98985 3010.497
10 293.40666 -11.027479 0 -10.989849 3246.0559
@ -112,20 +116,20 @@ Step Temp E_pair E_mol TotEng Press
80 58.605244 -10.997364 0 -10.989848 11289.914
90 39.754503 -10.994946 0 -10.989848 11824.945
100 32.524085 -10.994019 0 -10.989848 11932.118
Loop time of 11.8271 on 1 procs for 100 steps with 128 atoms
Loop time of 9.69738 on 1 procs for 100 steps with 128 atoms
Performance: 0.365 ns/day, 65.706 hours/ns, 8.455 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads
Performance: 0.445 ns/day, 53.874 hours/ns, 10.312 timesteps/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 11.826 | 11.826 | 11.826 | 0.0 | 99.99
Pair | 9.6961 | 9.6961 | 9.6961 | 0.0 | 99.99
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.00044084 | 0.00044084 | 0.00044084 | 0.0 | 0.00
Output | 0.00013232 | 0.00013232 | 0.00013232 | 0.0 | 0.00
Modify | 0.00021887 | 0.00021887 | 0.00021887 | 0.0 | 0.00
Other | | 0.0002718 | | | 0.00
Comm | 0.00044036 | 0.00044036 | 0.00044036 | 0.0 | 0.00
Output | 0.00024843 | 0.00024843 | 0.00024843 | 0.0 | 0.00
Modify | 0.00023937 | 0.00023937 | 0.00023937 | 0.0 | 0.00
Other | | 0.0003347 | | | 0.00
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
@ -141,4 +145,4 @@ Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:11
Total wall time: 0:00:09

View File

@ -1,4 +1,6 @@
LAMMPS (13 Feb 2017)
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
@ -31,20 +33,21 @@ Created orthogonal box = (0 0 0) to (12.7212 12.7212 12.7212)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000309944 secs
mass 1 183.84
# choose potential
include W_2940_2017_2.pot.snap
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. to appear in arxiv Feb2017
include W_2940_2017_2.snap
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. "Quantum-Accurate Molecular Dynamics Potential for Tungsten" arXiv:1702.07042 [physics.comp-ph]
#
# Definition of SNAP+ZBL potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP, ZBL, and long-range Coulomb
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap
@ -58,10 +61,11 @@ SNAP Element = W, Radius 0.5, Weight 1
Reading potential file W_2940_2017_2.snapparam with DATE: 2017-02-20
SNAP keyword rcutfac 4.73442
SNAP keyword twojmax 8
SNAP keyword gamma 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword diagonalstyle 3
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
#Nomenclature on the snap files are Element_DakotaID_Year_Month
@ -99,7 +103,7 @@ Neighbor list info ...
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 5.12833 Mbytes
Per MPI rank memory allocation (min/avg/max) = 5.13 | 5.13 | 5.13 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -11.028325 0 -10.98985 3010.497
10 293.22504 -11.027456 0 -10.989849 3258.275
@ -112,20 +116,20 @@ Step Temp E_pair E_mol TotEng Press
80 56.127265 -10.997046 0 -10.989848 11551.687
90 38.025013 -10.994724 0 -10.989847 12069.936
100 31.768127 -10.993922 0 -10.989847 12145.648
Loop time of 3.03545 on 4 procs for 100 steps with 128 atoms
Loop time of 5.15615 on 4 procs for 100 steps with 128 atoms
Performance: 1.423 ns/day, 16.864 hours/ns, 32.944 timesteps/s
99.9% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 0.838 ns/day, 28.645 hours/ns, 19.394 timesteps/s
98.9% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.9594 | 2.9866 | 3.0319 | 1.6 | 98.39
Pair | 5.0497 | 5.0762 | 5.092 | 0.8 | 98.45
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.0024238 | 0.047825 | 0.075032 | 12.5 | 1.58
Output | 0.00021601 | 0.00024045 | 0.00027442 | 0.0 | 0.01
Modify | 9.6798e-05 | 0.00011188 | 0.00011802 | 0.0 | 0.00
Other | | 0.000698 | | | 0.02
Comm | 0.060802 | 0.07661 | 0.10305 | 6.1 | 1.49
Output | 0.00040722 | 0.00078458 | 0.0018959 | 0.0 | 0.02
Modify | 0.0002389 | 0.00024962 | 0.00027442 | 0.0 | 0.00
Other | | 0.002315 | | | 0.04
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
@ -141,4 +145,4 @@ Ave neighs/atom = 58
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:03
Total wall time: 0:00:05

View File

@ -1,4 +1,6 @@
LAMMPS (13 Feb 2017)
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
@ -31,6 +33,7 @@ Created orthogonal box = (0 0 0) to (12.7212 12.7212 12.7212)
1 by 1 by 1 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000431538 secs
mass 1 183.84
mass 2 4.0026
@ -42,15 +45,15 @@ group helium type 2
5 atoms in group helium
# choose potential
include W.SNAP_HePair.pot
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. to appear in arxiv Feb2017, W-He and He-He from Juslin, N. and Wirth, B. D. Journal of Nuclear Materials, 423, (2013) p61-63
include W_2940_2017_2_He_JW2013.snap
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. "Quantum-Accurate Molecular Dynamics Potential for Tungsten" arXiv:1702.07042 [physics.comp-ph]
#
# Definition of SNAP+ZBL+Tabulated potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP, ZBL, and long-range Coulomb
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap table spline 10000 table spline 10000
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap table spline 10000 table spline 10000
@ -64,18 +67,19 @@ SNAP Element = W, Radius 0.5, Weight 1
Reading potential file W_2940_2017_2.snapparam with DATE: 2017-02-20
SNAP keyword rcutfac 4.73442
SNAP keyword twojmax 8
SNAP keyword gamma 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword diagonalstyle 3
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
pair_coeff 2 2 table 1 He_He_JW2013.table HeHe
Reading potential file He_He_JW2013.table with DATE: 2017-02-20
WARNING: 1 of 4999 force values in table are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:476)
Should only be flagged at inflection points (../pair_table.cpp:481)
pair_coeff 1 2 table 2 W_He_JW2013.table WHe
Reading potential file W_He_JW2013.table with DATE: 2017-02-20
WARNING: 3 of 325 force values in table are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:476)
Should only be flagged at inflection points (../pair_table.cpp:481)
#Hybrid/overlay will take all pair styles and add their contributions equally, order of pair_coeff doesnt matter here
#This is not the case for pair_style hybrid ... where only one pair_coeff is read for each type combination, order matters here.
@ -134,7 +138,7 @@ Neighbor list info ...
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 7.6729 Mbytes
Per MPI rank memory allocation (min/avg/max) = 7.676 | 7.676 | 7.676 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -10.438105 0 -10.39963 -5445.2808
10 290.48923 -10.436885 0 -10.399629 -5646.4813
@ -147,20 +151,20 @@ Step Temp E_pair E_mol TotEng Press
80 85.903126 -10.410645 0 -10.399628 857.74986
90 65.223651 -10.407993 0 -10.399628 1494.2746
100 59.833542 -10.407302 0 -10.399628 1938.9164
Loop time of 11.0736 on 1 procs for 100 steps with 128 atoms
Loop time of 8.902 on 1 procs for 100 steps with 128 atoms
Performance: 0.390 ns/day, 61.520 hours/ns, 9.030 timesteps/s
99.9% CPU use with 1 MPI tasks x no OpenMP threads
Performance: 0.485 ns/day, 49.456 hours/ns, 11.233 timesteps/s
99.8% CPU use with 1 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 11.072 | 11.072 | 11.072 | 0.0 | 99.99
Neigh | 0.00041604 | 0.00041604 | 0.00041604 | 0.0 | 0.00
Comm | 0.00046253 | 0.00046253 | 0.00046253 | 0.0 | 0.00
Output | 0.0001657 | 0.0001657 | 0.0001657 | 0.0 | 0.00
Modify | 0.0002265 | 0.0002265 | 0.0002265 | 0.0 | 0.00
Other | | 0.0003119 | | | 0.00
Pair | 8.9002 | 8.9002 | 8.9002 | 0.0 | 99.98
Neigh | 0.00043058 | 0.00043058 | 0.00043058 | 0.0 | 0.00
Comm | 0.00045776 | 0.00045776 | 0.00045776 | 0.0 | 0.01
Output | 0.00025344 | 0.00025344 | 0.00025344 | 0.0 | 0.00
Modify | 0.00022483 | 0.00022483 | 0.00022483 | 0.0 | 0.00
Other | | 0.0003953 | | | 0.00
Nlocal: 128 ave 128 max 128 min
Histogram: 1 0 0 0 0 0 0 0 0 0
@ -176,4 +180,4 @@ Ave neighs/atom = 53.5156
Neighbor list builds = 1
Dangerous builds = 0
Total wall time: 0:00:11
Total wall time: 0:00:09

View File

@ -1,4 +1,6 @@
LAMMPS (13 Feb 2017)
LAMMPS (20 Apr 2018)
OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:90)
using 1 OpenMP thread(s) per MPI task
# Demonstrate SNAP Ta potential
# Initialize simulation
@ -31,6 +33,7 @@ Created orthogonal box = (0 0 0) to (12.7212 12.7212 12.7212)
1 by 2 by 2 MPI processor grid
create_atoms 1 box
Created 128 atoms
Time spent = 0.000274658 secs
mass 1 183.84
mass 2 4.0026
@ -42,15 +45,15 @@ group helium type 2
5 atoms in group helium
# choose potential
include W.SNAP_HePair.pot
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. to appear in arxiv Feb2017, W-He and He-He from Juslin, N. and Wirth, B. D. Journal of Nuclear Materials, 423, (2013) p61-63
include W_2940_2017_2_He_JW2013.snap
# DATE: 2017-02-20 CONTRIBUTOR: Mitchell Wood mitwood@sandia.gov CITATION: Wood, M. A. and Thompson, A. P. "Quantum-Accurate Molecular Dynamics Potential for Tungsten" arXiv:1702.07042 [physics.comp-ph]
#
# Definition of SNAP+ZBL+Tabulated potential.
variable zblcutinner equal 4
variable zblcutouter equal 4.8
variable zblz equal 74
# Specify hybrid with SNAP, ZBL, and long-range Coulomb
# Specify hybrid with SNAP and ZBL
pair_style hybrid/overlay zbl ${zblcutinner} ${zblcutouter} snap table spline 10000 table spline 10000
pair_style hybrid/overlay zbl 4 ${zblcutouter} snap table spline 10000 table spline 10000
@ -64,18 +67,19 @@ SNAP Element = W, Radius 0.5, Weight 1
Reading potential file W_2940_2017_2.snapparam with DATE: 2017-02-20
SNAP keyword rcutfac 4.73442
SNAP keyword twojmax 8
SNAP keyword gamma 1
SNAP keyword rfac0 0.99363
SNAP keyword rmin0 0
SNAP keyword diagonalstyle 3
SNAP keyword bzeroflag 0
SNAP keyword quadraticflag 0
pair_coeff 2 2 table 1 He_He_JW2013.table HeHe
Reading potential file He_He_JW2013.table with DATE: 2017-02-20
WARNING: 1 of 4999 force values in table are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:476)
Should only be flagged at inflection points (../pair_table.cpp:481)
pair_coeff 1 2 table 2 W_He_JW2013.table WHe
Reading potential file W_He_JW2013.table with DATE: 2017-02-20
WARNING: 3 of 325 force values in table are inconsistent with -dE/dr.
Should only be flagged at inflection points (../pair_table.cpp:476)
Should only be flagged at inflection points (../pair_table.cpp:481)
#Hybrid/overlay will take all pair styles and add their contributions equally, order of pair_coeff doesnt matter here
#This is not the case for pair_style hybrid ... where only one pair_coeff is read for each type combination, order matters here.
@ -134,7 +138,7 @@ Neighbor list info ...
pair build: full/bin/atomonly
stencil: full/bin/3d
bin: standard
Memory usage per processor = 7.65426 Mbytes
Per MPI rank memory allocation (min/avg/max) = 7.656 | 7.656 | 7.656 Mbytes
Step Temp E_pair E_mol TotEng Press
0 300 -10.438105 0 -10.39963 -5445.2808
10 292.13979 -10.437097 0 -10.39963 -5516.3963
@ -147,20 +151,20 @@ Step Temp E_pair E_mol TotEng Press
80 79.985938 -10.409886 0 -10.399628 2392.1106
90 62.568933 -10.407652 0 -10.399628 3141.7027
100 56.697933 -10.406899 0 -10.399628 3583.9538
Loop time of 2.8757 on 4 procs for 100 steps with 128 atoms
Loop time of 4.82103 on 4 procs for 100 steps with 128 atoms
Performance: 1.502 ns/day, 15.976 hours/ns, 34.774 timesteps/s
99.9% CPU use with 4 MPI tasks x no OpenMP threads
Performance: 0.896 ns/day, 26.783 hours/ns, 20.742 timesteps/s
99.0% CPU use with 4 MPI tasks x 1 OpenMP threads
MPI task timing breakdown:
Section | min time | avg time | max time |%varavg| %total
---------------------------------------------------------------
Pair | 2.7363 | 2.8122 | 2.8636 | 2.9 | 97.79
Pair | 4.4837 | 4.6734 | 4.7605 | 5.2 | 96.94
Neigh | 0 | 0 | 0 | 0.0 | 0.00
Comm | 0.011014 | 0.062439 | 0.13842 | 19.3 | 2.17
Output | 0.00023842 | 0.00025076 | 0.0002861 | 0.0 | 0.01
Modify | 9.2506e-05 | 9.9301e-05 | 0.00010395 | 0.0 | 0.00
Other | | 0.0006654 | | | 0.02
Comm | 0.057389 | 0.14453 | 0.33421 | 29.4 | 3.00
Output | 0.00038719 | 0.00073916 | 0.0017841 | 0.0 | 0.02
Modify | 0.00018716 | 0.00022203 | 0.00026417 | 0.0 | 0.00
Other | | 0.002119 | | | 0.04
Nlocal: 32 ave 32 max 32 min
Histogram: 4 0 0 0 0 0 0 0 0 0
@ -176,4 +180,4 @@ Ave neighs/atom = 53.5156
Neighbor list builds = 0
Dangerous builds = 0
Total wall time: 0:00:02
Total wall time: 0:00:04

View File

@ -1,9 +1,9 @@
$(COLVARS_OBJ_DIR)colvaratoms.o: colvaratoms.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvarvalue.h colvartypes.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \
colvarparse.h colvaratoms.h colvardeps.h
$(COLVARS_OBJ_DIR)colvarbias_abf.o: colvarbias_abf.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvarvalue.h colvartypes.h colvar.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h colvar.h \
colvarparse.h colvardeps.h lepton/include/Lepton.h \
lepton/include/lepton/CompiledExpression.h \
lepton/include/lepton/ExpressionTreeNode.h \
@ -29,7 +29,7 @@ $(COLVARS_OBJ_DIR)colvarbias_alb.o: colvarbias_alb.cpp colvarmodule.h \
lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \
colvarbias_alb.h
$(COLVARS_OBJ_DIR)colvarbias.o: colvarbias.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvarvalue.h colvartypes.h colvarbias.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h colvarbias.h \
colvar.h colvarparse.h colvardeps.h lepton/include/Lepton.h \
lepton/include/lepton/CompiledExpression.h \
lepton/include/lepton/ExpressionTreeNode.h \
@ -42,8 +42,8 @@ $(COLVARS_OBJ_DIR)colvarbias.o: colvarbias.cpp colvarmodule.h \
lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \
colvargrid.h
$(COLVARS_OBJ_DIR)colvarbias_histogram.o: colvarbias_histogram.cpp \
colvarmodule.h colvars_version.h colvarproxy.h colvarvalue.h \
colvartypes.h colvar.h colvarparse.h colvardeps.h \
colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \
colvarvalue.h colvar.h colvarparse.h colvardeps.h \
lepton/include/Lepton.h lepton/include/lepton/CompiledExpression.h \
lepton/include/lepton/ExpressionTreeNode.h \
lepton/include/lepton/windowsIncludes.h \
@ -55,7 +55,7 @@ $(COLVARS_OBJ_DIR)colvarbias_histogram.o: colvarbias_histogram.cpp \
lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \
colvarbias_histogram.h colvarbias.h colvargrid.h
$(COLVARS_OBJ_DIR)colvarbias_meta.o: colvarbias_meta.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvarvalue.h colvartypes.h colvar.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h colvar.h \
colvarparse.h colvardeps.h lepton/include/Lepton.h \
lepton/include/lepton/CompiledExpression.h \
lepton/include/lepton/ExpressionTreeNode.h \
@ -68,8 +68,8 @@ $(COLVARS_OBJ_DIR)colvarbias_meta.o: colvarbias_meta.cpp colvarmodule.h \
lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \
colvarbias_meta.h colvarbias.h colvargrid.h
$(COLVARS_OBJ_DIR)colvarbias_restraint.o: colvarbias_restraint.cpp \
colvarmodule.h colvars_version.h colvarproxy.h colvarvalue.h \
colvartypes.h colvarbias_restraint.h colvarbias.h colvar.h colvarparse.h \
colvarmodule.h colvars_version.h colvarproxy.h colvartypes.h \
colvarvalue.h colvarbias_restraint.h colvarbias.h colvar.h colvarparse.h \
colvardeps.h lepton/include/Lepton.h \
lepton/include/lepton/CompiledExpression.h \
lepton/include/lepton/ExpressionTreeNode.h \
@ -171,7 +171,7 @@ $(COLVARS_OBJ_DIR)colvar.o: colvar.cpp colvarmodule.h colvars_version.h \
lepton/include/lepton/ParsedExpression.h lepton/include/lepton/Parser.h \
colvarcomp.h colvaratoms.h colvarproxy.h colvarscript.h colvarbias.h
$(COLVARS_OBJ_DIR)colvardeps.o: colvardeps.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvarvalue.h colvartypes.h colvardeps.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h colvardeps.h \
colvarparse.h
$(COLVARS_OBJ_DIR)colvargrid.o: colvargrid.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparse.h colvar.h \
@ -204,7 +204,7 @@ $(COLVARS_OBJ_DIR)colvarmodule.o: colvarmodule.cpp colvarmodule.h \
$(COLVARS_OBJ_DIR)colvarparse.o: colvarparse.cpp colvarmodule.h \
colvars_version.h colvarvalue.h colvartypes.h colvarparse.h
$(COLVARS_OBJ_DIR)colvarproxy.o: colvarproxy.cpp colvarmodule.h \
colvars_version.h colvarproxy.h colvarvalue.h colvartypes.h \
colvars_version.h colvarproxy.h colvartypes.h colvarvalue.h \
colvarscript.h colvarbias.h colvar.h colvarparse.h colvardeps.h \
lepton/include/Lepton.h lepton/include/lepton/CompiledExpression.h \
lepton/include/lepton/ExpressionTreeNode.h \

View File

@ -7,6 +7,10 @@
// If you wish to distribute your changes, please submit them to the
// Colvars repository at GitHub.
#include <list>
#include <vector>
#include <algorithm>
#include "colvarmodule.h"
#include "colvarvalue.h"
#include "colvarparse.h"
@ -14,15 +18,6 @@
#include "colvarcomp.h"
#include "colvarscript.h"
// used in build_atom_list()
#include <algorithm>
/// Compare two cvcs using their names
/// Used to sort CVC array in scripted coordinates
bool compare(colvar::cvc *i, colvar::cvc *j) {
return i->name < j->name;
}
colvar::colvar()
@ -34,6 +29,15 @@ colvar::colvar()
}
namespace {
/// Compare two cvcs using their names
/// Used to sort CVC array in scripted coordinates
bool compare(colvar::cvc *i, colvar::cvc *j)
{
return i->name < j->name;
}
}
int colvar::init(std::string const &conf)
{
cvm::log("Initializing a new collective variable.\n");
@ -143,6 +147,9 @@ int colvar::init(std::string const &conf)
x.type(cvc_value);
x_reported.type(cvc_value);
}
set_enabled(f_cv_scalar, (value().type() == colvarvalue::type_scalar));
// If using scripted biases, any colvar may receive bias forces
// and will need its gradient
if (cvm::scripted_forces()) {
@ -198,6 +205,7 @@ int colvar::init(std::string const &conf)
if (is_enabled(f_cv_homogeneous) && cvcs[0]->b_periodic) { // TODO make this a CVC feature
bool b_periodic = true;
period = cvcs[0]->period;
wrap_center = cvcs[0]->wrap_center;
for (i = 1; i < cvcs.size(); i++) {
if (!cvcs[i]->b_periodic || cvcs[i]->period != period) {
b_periodic = false;
@ -211,6 +219,14 @@ int colvar::init(std::string const &conf)
set_enabled(f_cv_periodic, b_periodic);
}
// Allow scripted/custom functions to be defined as periodic
if ( (is_enabled(f_cv_scripted) || is_enabled(f_cv_custom_function)) && is_enabled(f_cv_scalar) ) {
if (get_keyval(conf, "period", period, 0.)) {
set_enabled(f_cv_periodic, true);
get_keyval(conf, "wrapAround", wrap_center, 0.);
}
}
// check that cvcs are compatible
for (i = 0; i < cvcs.size(); i++) {
@ -443,8 +459,6 @@ int colvar::init_grid_parameters(std::string const &conf)
upper_boundary.type(value());
upper_wall.type(value());
set_enabled(f_cv_scalar, (value().type() == colvarvalue::type_scalar));
if (is_enabled(f_cv_scalar)) {
if (get_keyval(conf, "lowerBoundary", lower_boundary, lower_boundary)) {
@ -1503,7 +1517,7 @@ cvm::real colvar::update_forces_energy()
vr += (0.5 * dt) * f_ext / ext_mass;
xr += dt * vr;
xr.apply_constraints();
if (this->is_enabled(f_cv_periodic)) this->wrap(xr);
this->wrap(xr);
}
// Now adding the force on the actual colvar (for those biases that
@ -1714,9 +1728,18 @@ colvarvalue colvar::dist2_rgrad(colvarvalue const &x1,
void colvar::wrap(colvarvalue &x) const
{
if (is_enabled(f_cv_homogeneous)) {
(cvcs[0])->wrap(x);
if ( !is_enabled(f_cv_periodic) ) {
return;
}
if ( is_enabled(f_cv_scripted) || is_enabled(f_cv_custom_function) ) {
// Scripted functions do their own wrapping, as cvcs might not be periodic
cvm::real shift = std::floor((x.real_value - wrap_center) / period + 0.5);
x.real_value -= shift * period;
} else {
cvcs[0]->wrap(x);
}
return;
}
@ -2244,7 +2267,7 @@ void colvar::calc_runave()
runave.type(value().type());
runave.reset();
// first-step operations
// first-step operationsf
if (cvm::debug())
cvm::log("Colvar \""+this->name+

View File

@ -216,6 +216,7 @@ public:
/// Period, if this variable is periodic
cvm::real period;
cvm::real wrap_center;
/// \brief Expand the boundaries of multiples of width, to keep the

View File

@ -7,6 +7,10 @@
// If you wish to distribute your changes, please submit them to the
// Colvars repository at GitHub.
#include <list>
#include <vector>
#include <algorithm>
#include "colvarmodule.h"
#include "colvarproxy.h"
#include "colvarparse.h"
@ -436,7 +440,7 @@ int cvm::atom_group::parse(std::string const &group_conf)
}
bool b_print_atom_ids = false;
get_keyval(group_conf, "printAtomIDs", b_print_atom_ids, false, colvarparse::parse_silent);
get_keyval(group_conf, "printAtomIDs", b_print_atom_ids, false);
// Calculate all required properties (such as total mass)
setup();
@ -715,13 +719,10 @@ int cvm::atom_group::parse_fitting_options(std::string const &group_conf)
"if provided, must be non-zero.\n", INPUT_ERROR);
return COLVARS_ERROR;
}
} else {
// if not, rely on existing atom indices for the group
group_for_fit->create_sorted_ids();
ref_pos.resize(group_for_fit->size());
}
cvm::load_coords(ref_pos_file.c_str(), ref_pos, group_for_fit->sorted_ids,
ref_pos.resize(group_for_fit->size());
cvm::load_coords(ref_pos_file.c_str(), &ref_pos, group_for_fit,
ref_pos_col, ref_pos_col_value);
}
@ -789,33 +790,39 @@ void cvm::atom_group::do_feature_side_effects(int id)
}
int cvm::atom_group::create_sorted_ids(void)
int cvm::atom_group::create_sorted_ids()
{
// Only do the work if the vector is not yet populated
if (sorted_ids.size())
if (sorted_atoms_ids.size())
return COLVARS_OK;
std::list<int> temp_id_list;
for (cvm::atom_iter ai = this->begin(); ai != this->end(); ai++) {
temp_id_list.push_back(ai->id);
// Sort the internal IDs
std::list<int> sorted_atoms_ids_list;
for (size_t i = 0; i < this->size(); i++) {
sorted_atoms_ids_list.push_back(atoms_ids[i]);
}
temp_id_list.sort();
temp_id_list.unique();
if (temp_id_list.size() != this->size()) {
cvm::error("Error: duplicate atom IDs in atom group? (found " +
cvm::to_str(temp_id_list.size()) +
" unique atom IDs instead of" +
cvm::to_str(this->size()) + ").\n");
return COLVARS_ERROR;
sorted_atoms_ids_list.sort();
sorted_atoms_ids_list.unique();
if (sorted_atoms_ids_list.size() != this->size()) {
return cvm::error("Error: duplicate atom IDs in atom group? (found " +
cvm::to_str(sorted_atoms_ids_list.size()) +
" unique atom IDs instead of " +
cvm::to_str(this->size()) + ").\n", BUG_ERROR);
}
sorted_ids = std::vector<int> (temp_id_list.size());
unsigned int id_i = 0;
std::list<int>::iterator li;
for (li = temp_id_list.begin(); li != temp_id_list.end(); ++li) {
sorted_ids[id_i] = *li;
id_i++;
// Compute map between sorted and unsorted elements
sorted_atoms_ids.resize(this->size());
sorted_atoms_ids_map.resize(this->size());
std::list<int>::iterator lsii = sorted_atoms_ids_list.begin();
size_t ii = 0;
for ( ; ii < this->size(); lsii++, ii++) {
sorted_atoms_ids[ii] = *lsii;
size_t const pos = std::find(atoms_ids.begin(), atoms_ids.end(), *lsii) -
atoms_ids.begin();
sorted_atoms_ids_map[ii] = pos;
}
return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK);
return COLVARS_OK;
}

View File

@ -227,9 +227,16 @@ protected:
/// \brief Array of atom objects
std::vector<cvm::atom> atoms;
/// \brief Array of atom identifiers for the MD program (0-based)
/// \brief Internal atom IDs for host code
std::vector<int> atoms_ids;
/// Sorted list of internal atom IDs (populated on-demand by
/// create_sorted_ids); used to read coordinate files
std::vector<int> sorted_atoms_ids;
/// Map entries of sorted_atoms_ids onto the original positions in the group
std::vector<int> sorted_atoms_ids_map;
/// \brief Dummy atom position
cvm::atom_pos dummy_atom_pos;
@ -273,19 +280,34 @@ public:
return atoms.size();
}
std::string const print_atom_ids() const;
/// \brief If this option is on, this group merely acts as a wrapper
/// for a fixed position; any calls to atoms within or to
/// functions that return disaggregated data will fail
bool b_dummy;
/// Sorted list of zero-based (internal) atom ids
/// (populated on-demand by create_sorted_ids)
std::vector<int> sorted_ids;
/// Internal atom IDs (populated during initialization)
inline std::vector<int> const &ids() const
{
return atoms_ids;
}
/// Allocates and populates the sorted list of atom ids
int create_sorted_ids(void);
std::string const print_atom_ids() const;
/// Allocates and populates sorted_ids and sorted_ids_map
int create_sorted_ids();
/// Sorted internal atom IDs (populated on-demand by create_sorted_ids);
/// used to read coordinate files
inline std::vector<int> const &sorted_ids() const
{
return sorted_atoms_ids;
}
/// Map entries of sorted_atoms_ids onto the original positions in the group
inline std::vector<int> const &sorted_ids_map() const
{
return sorted_atoms_ids_map;
}
/// Detect whether two groups share atoms
/// If yes, returns 1-based number of a common atom; else, returns 0

View File

@ -17,17 +17,17 @@ colvarbias_abf::colvarbias_abf(char const *key)
: colvarbias(key),
b_UI_estimator(false),
b_CZAR_estimator(false),
pabf_freq(0),
system_force(NULL),
gradients(NULL),
pmf(NULL),
samples(NULL),
pmf(NULL),
z_gradients(NULL),
z_samples(NULL),
czar_gradients(NULL),
czar_pmf(NULL),
last_gradients(NULL),
last_samples(NULL),
pabf_freq(0)
last_samples(NULL)
{
}
@ -315,8 +315,6 @@ colvarbias_abf::~colvarbias_abf()
int colvarbias_abf::update()
{
int iter;
if (cvm::debug()) cvm::log("Updating ABF bias " + this->name);
size_t i;
@ -368,7 +366,12 @@ int colvarbias_abf::update()
if ( b_integrate ) {
if ( pabf_freq && cvm::step_relative() % pabf_freq == 0 ) {
cvm::real err;
iter = pmf->integrate(integrate_steps, integrate_tol, err);
int iter = pmf->integrate(integrate_steps, integrate_tol, err);
if ( iter == integrate_steps ) {
cvm::log("Warning: PMF integration did not converge to " + cvm::to_str(integrate_tol)
+ " in " + cvm::to_str(integrate_steps)
+ " steps. Residual error: " + cvm::to_str(err));
}
pmf->set_zero_minimum(); // TODO: do this only when necessary
}
}
@ -485,7 +488,6 @@ int colvarbias_abf::update()
int colvarbias_abf::replica_share() {
int p;
if ( !cvm::replica_enabled() ) {
cvm::error("Error: shared ABF: No replicas.\n");
@ -507,6 +509,7 @@ int colvarbias_abf::replica_share() {
char* msg_data = new char[msg_total];
if (cvm::replica_index() == 0) {
int p;
// Replica 0 collects the delta gradient and count from the others.
for (p = 1; p < cvm::replica_num(); p++) {
// Receive the deltas.

View File

@ -21,6 +21,9 @@ colvar::cvc::cvc()
b_try_scalable(true)
{
init_cvc_requires();
sup_coeff = 1.0;
period = 0.0;
wrap_center = 0.0;
}
@ -30,43 +33,52 @@ colvar::cvc::cvc(std::string const &conf)
b_periodic(false),
b_try_scalable(true)
{
init_cvc_requires();
sup_coeff = 1.0;
period = 0.0;
wrap_center = 0.0;
init(conf);
}
int colvar::cvc::init(std::string const &conf)
{
int error_code = COLVARS_OK;
if (cvm::debug())
cvm::log("Initializing cvc base object.\n");
init_cvc_requires();
if (get_keyval(conf, "name", this->name, std::string(""), parse_silent)) {
get_keyval(conf, "name", this->name, this->name);
if (name.size() > 0) {
// Temporary description until child object is initialized
description = "cvc " + name;
} else {
description = "uninitialized cvc";
}
get_keyval(conf, "componentCoeff", sup_coeff, 1.0);
get_keyval(conf, "componentExp", sup_np, 1);
get_keyval(conf, "componentCoeff", sup_coeff, sup_coeff);
get_keyval(conf, "componentExp", sup_np, sup_np);
get_keyval(conf, "period", period, 0.0);
get_keyval(conf, "wrapAround", wrap_center, 0.0);
get_keyval(conf, "period", period, period);
get_keyval(conf, "wrapAround", wrap_center, wrap_center);
get_keyval_feature((colvarparse *)this, conf, "debugGradients",
get_keyval_feature(dynamic_cast<colvarparse *>(this), conf, "debugGradients",
f_cvc_debug_gradient, false, parse_silent);
{
bool b_no_PBC = false;
get_keyval(conf, "forceNoPBC", b_no_PBC, false);
if (b_no_PBC) {
disable(f_cvc_pbc_minimum_image);
} else {
enable(f_cvc_pbc_minimum_image);
}
// this does not use get_keyval_feature() only for backward compatibility
bool b_no_PBC = !is_enabled(f_cvc_pbc_minimum_image); // Enabled by default
get_keyval(conf, "forceNoPBC", b_no_PBC, b_no_PBC);
if (b_no_PBC) {
disable(f_cvc_pbc_minimum_image);
} else {
enable(f_cvc_pbc_minimum_image);
}
// Attempt scalable calculations when in parallel? (By default yes, if available)
get_keyval(conf, "scalable", b_try_scalable, true);
get_keyval(conf, "scalable", b_try_scalable, b_try_scalable);
if (cvm::debug())
cvm::log("Done initializing cvc base object.\n");
return error_code;
}

View File

@ -98,12 +98,14 @@ public:
/// \brief Constructor
///
/// At least one constructor which reads a string should be defined
/// for every class inheriting from cvc \param conf Contents
/// of the configuration file pertaining to this \link cvc
/// \endlink
/// Calls the init() function of the class
cvc(std::string const &conf);
/// An init function should be defined for every class inheriting from cvc
/// \param conf Contents of the configuration file pertaining to this \link
/// cvc \endlink
virtual int init(std::string const &conf);
/// \brief Within the constructor, make a group parse its own
/// options from the provided configuration string
/// Returns reference to new group
@ -231,7 +233,7 @@ public:
virtual colvarvalue dist2_rgrad(colvarvalue const &x1,
colvarvalue const &x2) const;
/// \brief Wrapp value (for periodic/symmetric cvcs)
/// \brief Wrap value (for periodic/symmetric cvcs)
virtual void wrap(colvarvalue &x) const;
/// \brief Pointers to all atom groups, to let colvars collect info

View File

@ -148,7 +148,7 @@ void colvar::distance_vec::apply_force(colvarvalue const &force)
cvm::real colvar::distance_vec::dist2(colvarvalue const &x1,
colvarvalue const &x2) const
{
return cvm::position_dist2(x1.rvector_value, x2.rvector_value);
return (cvm::position_distance(x1.rvector_value, x2.rvector_value)).norm2();
}
@ -192,7 +192,7 @@ colvar::distance_z::distance_z(std::string const &conf)
// this group is optional
ref2 = parse_group(conf, "ref2", true);
if (ref2 && ref2->size()) {
if ( ref2 ) {
cvm::log("Using axis joining the centers of mass of groups \"ref\" and \"ref2\"");
fixed_axis = false;
if (key_lookup(conf, "axis"))
@ -306,7 +306,7 @@ void colvar::distance_z::apply_force(colvarvalue const &force)
if (!ref1->noforce)
ref1->apply_colvar_force(force.real_value);
if (ref2 && ref2->size() && !ref2->noforce)
if (ref2 && !ref2->noforce)
ref2->apply_colvar_force(force.real_value);
if (!main->noforce)
@ -464,7 +464,7 @@ void colvar::distance_xy::apply_force(colvarvalue const &force)
if (!ref1->noforce)
ref1->apply_colvar_force(force.real_value);
if (ref2 && ref2->size() && !ref2->noforce)
if (ref2 && !ref2->noforce)
ref2->apply_colvar_force(force.real_value);
if (!main->noforce)
@ -979,14 +979,12 @@ colvar::rmsd::rmsd(std::string const &conf)
"if provided, must be non-zero.\n");
return;
}
} else {
// if not, rely on existing atom indices for the group
atoms->create_sorted_ids();
ref_pos.resize(atoms->size());
}
cvm::load_coords(ref_pos_file.c_str(), ref_pos, atoms->sorted_ids,
ref_pos_col, ref_pos_col_value);
ref_pos.resize(atoms->size());
cvm::load_coords(ref_pos_file.c_str(), &ref_pos, atoms,
ref_pos_col, ref_pos_col_value);
}
}
@ -1172,13 +1170,11 @@ colvar::eigenvector::eigenvector(std::string const &conf)
"if provided, must be non-zero.\n");
return;
}
} else {
// if not, use atom indices
atoms->create_sorted_ids();
}
ref_pos.resize(atoms->size());
cvm::load_coords(file_name.c_str(), ref_pos, atoms->sorted_ids, file_col, file_col_value);
cvm::load_coords(file_name.c_str(), &ref_pos, atoms,
file_col, file_col_value);
}
}
@ -1249,13 +1245,11 @@ colvar::eigenvector::eigenvector(std::string const &conf)
cvm::error("Error: vectorColValue, if provided, must be non-zero.\n");
return;
}
} else {
// if not, use atom indices
atoms->create_sorted_ids();
}
eigenvec.resize(atoms->size());
cvm::load_coords(file_name.c_str(), eigenvec, atoms->sorted_ids, file_col, file_col_value);
cvm::load_coords(file_name.c_str(), &eigenvec, atoms,
file_col, file_col_value);
}
}

View File

@ -50,12 +50,11 @@ colvar::orientation::orientation(std::string const &conf)
"if provided, must be non-zero.\n");
return;
}
} else {
// if not, use atom indices
atoms->create_sorted_ids();
}
ref_pos.resize(atoms->size());
cvm::load_coords(file_name.c_str(), ref_pos, atoms->sorted_ids, file_col, file_col_value);
cvm::load_coords(file_name.c_str(), &ref_pos, atoms,
file_col, file_col_value);
}
}

View File

@ -549,7 +549,7 @@ void colvardeps::init_cv_requires() {
f_req_exclude(f_cv_custom_function, f_cv_scripted);
init_feature(f_cv_periodic, "periodic", f_type_static);
f_req_self(f_cv_periodic, f_cv_homogeneous);
f_req_self(f_cv_periodic, f_cv_scalar);
init_feature(f_cv_scalar, "scalar", f_type_static);
init_feature(f_cv_linear, "linear", f_type_static);
init_feature(f_cv_homogeneous, "homogeneous", f_type_static);

View File

@ -329,7 +329,6 @@ void integrate_potential::update_div_local(const std::vector<int> &ix0)
const int linear_index = address(ix0);
int i, j, k;
std::vector<int> ix = ix0;
const cvm::real * g;
if (nd == 2) {
// gradients at grid points surrounding the current scalar grid point
@ -783,7 +782,7 @@ void integrate_potential::atimes(const std::vector<cvm::real> &A, std::vector<cv
/// Inversion of preconditioner matrix (e.g. diagonal of the Laplacian)
void integrate_potential::asolve(const std::vector<cvm::real> &b, std::vector<cvm::real> &x)
{
for (size_t i=0; i<nt; i++) {
for (size_t i=0; i<int(nt); i++) {
x[i] = b[i] * inv_lap_diag[i]; // Jacobi preconditioner - little benefit in tests so far
}
return;
@ -803,7 +802,7 @@ void integrate_potential::nr_linbcg_sym(const std::vector<cvm::real> &b, std::ve
iter=0;
atimes(x,r);
for (j=0;j<nt;j++) {
for (j=0;j<int(nt);j++) {
r[j]=b[j]-r[j];
}
bnrm=l2norm(b);
@ -814,26 +813,26 @@ void integrate_potential::nr_linbcg_sym(const std::vector<cvm::real> &b, std::ve
bkden = 1.0;
while (iter < itmax) {
++iter;
for (bknum=0.0,j=0;j<nt;j++) {
for (bknum=0.0,j=0;j<int(nt);j++) {
bknum += r[j]*r[j]; // precon: z[j]*r[j]
}
if (iter == 1) {
for (j=0;j<nt;j++) {
for (j=0;j<int(nt);j++) {
p[j] = r[j]; // precon: p[j] = z[j]
}
} else {
bk=bknum/bkden;
for (j=0;j<nt;j++) {
for (j=0;j<int(nt);j++) {
p[j] = bk*p[j] + r[j]; // precon: bk*p[j] + z[j]
}
}
bkden = bknum;
atimes(p,z);
for (akden=0.0,j=0;j<nt;j++) {
for (akden=0.0,j=0;j<int(nt);j++) {
akden += z[j]*p[j];
}
ak = bknum/akden;
for (j=0;j<nt;j++) {
for (j=0;j<int(nt);j++) {
x[j] += ak*p[j];
r[j] -= ak*z[j];
}

View File

@ -30,10 +30,10 @@ colvarmodule::colvarmodule(colvarproxy *proxy_in)
depth_s = 0;
cv_traj_os = NULL;
// pointer to the proxy object
if (proxy == NULL) {
proxy = proxy_in;
parse = new colvarparse();
proxy = proxy_in; // Pointer to the proxy object
parse = new colvarparse(); // Parsing object for global options
version_int = proxy->get_version_from_string(COLVARS_VERSION);
} else {
// TODO relax this error to handle multiple molecules in VMD
// once the module is not static anymore
@ -58,22 +58,24 @@ colvarmodule::colvarmodule(colvarproxy *proxy_in)
// "it_restart" will be set by the input state file, if any;
// "it" should be updated by the proxy
colvarmodule::it = colvarmodule::it_restart = 0;
colvarmodule::it_restart_from_state_file = true;
colvarmodule::use_scripted_forces = false;
use_scripted_forces = false;
scripting_after_biases = false;
colvarmodule::b_analysis = false;
b_analysis = false;
colvarmodule::debug_gradients_step_size = 1.0e-07;
colvarmodule::rotation::monitor_crossings = false;
colvarmodule::rotation::crossing_threshold = 1.0e-02;
colvarmodule::cv_traj_freq = 100;
colvarmodule::restart_out_freq = proxy->restart_frequency();
cv_traj_freq = 100;
restart_out_freq = proxy->restart_frequency();
// by default overwrite the existing trajectory file
colvarmodule::cv_traj_append = false;
cv_traj_append = false;
cv_traj_write_labels = true;
}
@ -189,26 +191,27 @@ int colvarmodule::parse_config(std::string &conf)
{
extra_conf.clear();
// parse global options
// Parse global options
if (catch_input_errors(parse_global_params(conf))) {
return get_error();
}
// parse the options for collective variables
// Parse the options for collective variables
if (catch_input_errors(parse_colvars(conf))) {
return get_error();
}
// parse the options for biases
// Parse the options for biases
if (catch_input_errors(parse_biases(conf))) {
return get_error();
}
// done parsing known keywords, check that all keywords found were valid ones
// Done parsing known keywords, check that all keywords found were valid ones
if (catch_input_errors(parse->check_keywords(conf, "colvarmodule"))) {
return get_error();
}
// Parse auto-generated configuration (e.g. for back-compatibility)
if (extra_conf.size()) {
catch_input_errors(parse_global_params(extra_conf));
catch_input_errors(parse_colvars(extra_conf));
@ -222,13 +225,11 @@ int colvarmodule::parse_config(std::string &conf)
cvm::log("Collective variables module (re)initialized.\n");
cvm::log(cvm::line_marker);
// update any necessary proxy data
// Update any necessary proxy data
proxy->setup();
if (cv_traj_os != NULL) {
// configuration might have changed, better redo the labels
write_traj_label(*cv_traj_os);
}
// configuration might have changed, better redo the labels
cv_traj_write_labels = true;
return get_error();
}
@ -279,15 +280,18 @@ int colvarmodule::parse_global_params(std::string const &conf)
parse->get_keyval(conf, "colvarsTrajAppend",
cv_traj_append, cv_traj_append, colvarparse::parse_silent);
parse->get_keyval(conf, "scriptedColvarForces", use_scripted_forces, false);
parse->get_keyval(conf, "scriptedColvarForces",
use_scripted_forces, use_scripted_forces);
parse->get_keyval(conf, "scriptingAfterBiases", scripting_after_biases, true);
parse->get_keyval(conf, "scriptingAfterBiases",
scripting_after_biases, scripting_after_biases);
if (use_scripted_forces && !proxy->force_script_defined) {
cvm::error("User script for scripted colvar forces not found.", INPUT_ERROR);
return cvm::error("User script for scripted colvar forces not found.",
INPUT_ERROR);
}
return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK);
return cvm::get_error();
}
@ -432,13 +436,13 @@ int colvarmodule::parse_biases(std::string const &conf)
}
int colvarmodule::num_variables() const
size_t colvarmodule::num_variables() const
{
return colvars.size();
}
int colvarmodule::num_variables_feature(int feature_id) const
size_t colvarmodule::num_variables_feature(int feature_id) const
{
size_t n = 0;
for (std::vector<colvar *>::const_iterator cvi = colvars.begin();
@ -452,13 +456,13 @@ int colvarmodule::num_variables_feature(int feature_id) const
}
int colvarmodule::num_biases() const
size_t colvarmodule::num_biases() const
{
return biases.size();
}
int colvarmodule::num_biases_feature(int feature_id) const
size_t colvarmodule::num_biases_feature(int feature_id) const
{
size_t n = 0;
for (std::vector<colvarbias *>::const_iterator bi = biases.begin();
@ -472,7 +476,7 @@ int colvarmodule::num_biases_feature(int feature_id) const
}
int colvarmodule::num_biases_type(std::string const &type) const
size_t colvarmodule::num_biases_type(std::string const &type) const
{
size_t n = 0;
for (std::vector<colvarbias *>::const_iterator bi = biases.begin();
@ -971,13 +975,20 @@ int colvarmodule::write_restart_file(std::string const &out_name)
int colvarmodule::write_traj_files()
{
if (cv_traj_os == NULL) {
open_traj_file(cv_traj_name);
if (open_traj_file(cv_traj_name) != COLVARS_OK) {
return cvm::get_error();
} else {
cv_traj_write_labels = true;
}
}
// write labels in the traj file every 1000 lines and at first timestep
if ((cvm::step_absolute() % (cv_traj_freq * 1000)) == 0 || cvm::step_relative() == 0) {
if ((cvm::step_absolute() % (cv_traj_freq * 1000)) == 0 ||
cvm::step_relative() == 0 ||
cv_traj_write_labels) {
write_traj_label(*cv_traj_os);
}
cv_traj_write_labels = false;
if ((cvm::step_absolute() % cv_traj_freq) == 0) {
write_traj(*cv_traj_os);
@ -1064,7 +1075,7 @@ int colvarmodule::reset()
{
parse->init();
cvm::log("Resetting the Collective Variables Module.\n");
cvm::log("Resetting the Collective Variables module.\n");
// Iterate backwards because we are deleting the elements as we go
for (std::vector<colvarbias *>::reverse_iterator bi = biases.rbegin();
@ -1073,6 +1084,7 @@ int colvarmodule::reset()
delete *bi; // the bias destructor updates the biases array
}
biases.clear();
biases_active_.clear();
// Iterate backwards because we are deleting the elements as we go
for (std::vector<colvar *>::reverse_iterator cvi = colvars.rbegin();
@ -1088,7 +1100,7 @@ int colvarmodule::reset()
proxy->reset();
if (cv_traj_os != NULL) {
// Do not close file here, as we might not be done with it yet.
// Do not close traj file here, as we might not be done with it yet.
proxy->flush_output_stream(cv_traj_os);
}
@ -1188,12 +1200,10 @@ std::istream & colvarmodule::read_restart(std::istream &is)
// read global restart information
std::string restart_conf;
if (is >> colvarparse::read_block("configuration", restart_conf)) {
if (it_restart_from_state_file) {
parse->get_keyval(restart_conf, "step",
it_restart, (size_t) 0,
colvarparse::parse_silent);
parse->get_keyval(restart_conf, "step",
it_restart, (size_t) 0,
colvarparse::parse_silent);
it = it_restart;
}
std::string restart_version;
parse->get_keyval(restart_conf, "version",
restart_version, std::string(""),
@ -1688,40 +1698,59 @@ int cvm::read_index_file(char const *filename)
return (cvm::get_error() ? COLVARS_ERROR : COLVARS_OK);
}
int cvm::load_atoms(char const *file_name,
cvm::atom_group &atoms,
std::string const &pdb_field,
double const pdb_field_value)
double pdb_field_value)
{
return proxy->load_atoms(file_name, atoms, pdb_field, pdb_field_value);
}
int cvm::load_coords(char const *file_name,
std::vector<cvm::atom_pos> &pos,
const std::vector<int> &indices,
std::string const &pdb_field,
double const pdb_field_value)
{
// Differentiate between PDB and XYZ files
// for XYZ files, use CVM internal parser
// otherwise call proxy function for PDB
std::string const ext(strlen(file_name) > 4 ? (file_name + (strlen(file_name) - 4)) : file_name);
int cvm::load_coords(char const *file_name,
std::vector<cvm::rvector> *pos,
cvm::atom_group *atoms,
std::string const &pdb_field,
double pdb_field_value)
{
int error_code = COLVARS_OK;
std::string const ext(strlen(file_name) > 4 ?
(file_name + (strlen(file_name) - 4)) :
file_name);
atoms->create_sorted_ids();
std::vector<cvm::rvector> sorted_pos(atoms->size(), cvm::rvector(0.0));
// Differentiate between PDB and XYZ files
if (colvarparse::to_lower_cppstr(ext) == std::string(".xyz")) {
if ( pdb_field.size() > 0 ) {
cvm::error("Error: PDB column may not be specified for XYZ coordinate file.\n", INPUT_ERROR);
return COLVARS_ERROR;
if (pdb_field.size() > 0) {
return cvm::error("Error: PDB column may not be specified "
"for XYZ coordinate files.\n", INPUT_ERROR);
}
return cvm::load_coords_xyz(file_name, pos, indices);
// For XYZ files, use internal parser
error_code |= cvm::load_coords_xyz(file_name, &sorted_pos, atoms);
} else {
return proxy->load_coords(file_name, pos, indices, pdb_field, pdb_field_value);
// Otherwise, call proxy function for PDB
error_code |= proxy->load_coords(file_name,
sorted_pos, atoms->sorted_ids(),
pdb_field, pdb_field_value);
}
std::vector<int> const &map = atoms->sorted_ids_map();
for (size_t i = 0; i < atoms->size(); i++) {
(*pos)[map[i]] = sorted_pos[i];
}
return error_code;
}
int cvm::load_coords_xyz(char const *filename,
std::vector<atom_pos> &pos,
const std::vector<int> &indices)
std::vector<rvector> *pos,
cvm::atom_group *atoms)
{
std::ifstream xyz_is(filename);
unsigned int natoms;
@ -1736,12 +1765,12 @@ int cvm::load_coords_xyz(char const *filename,
cvm::getline(xyz_is, line);
cvm::getline(xyz_is, line);
xyz_is.width(255);
std::vector<atom_pos>::iterator pos_i = pos.begin();
std::vector<atom_pos>::iterator pos_i = pos->begin();
if (pos.size() != natoms) { // Use specified indices
if (pos->size() != natoms) { // Use specified indices
int next = 0; // indices are zero-based
std::vector<int>::const_iterator index = indices.begin();
for ( ; pos_i != pos.end() ; pos_i++, index++) {
std::vector<int>::const_iterator index = atoms->sorted_ids().begin();
for ( ; pos_i != pos->end() ; pos_i++, index++) {
while ( next < *index ) {
cvm::getline(xyz_is, line);
@ -1751,7 +1780,7 @@ int cvm::load_coords_xyz(char const *filename,
xyz_is >> (*pos_i)[0] >> (*pos_i)[1] >> (*pos_i)[2];
}
} else { // Use all positions
for ( ; pos_i != pos.end() ; pos_i++) {
for ( ; pos_i != pos->end() ; pos_i++) {
xyz_is >> symbol;
xyz_is >> (*pos_i)[0] >> (*pos_i)[1] >> (*pos_i)[2];
}
@ -1792,17 +1821,13 @@ void cvm::request_total_force()
proxy->request_total_force(true);
}
cvm::rvector cvm::position_distance(atom_pos const &pos1,
atom_pos const &pos2)
cvm::rvector cvm::position_distance(cvm::atom_pos const &pos1,
cvm::atom_pos const &pos2)
{
return proxy->position_distance(pos1, pos2);
}
cvm::real cvm::position_dist2(cvm::atom_pos const &pos1,
cvm::atom_pos const &pos2)
{
return proxy->position_dist2(pos1, pos2);
}
cvm::real cvm::rand_gaussian(void)
{

View File

@ -73,8 +73,17 @@ private:
/// Impossible to initialize the main object without arguments
colvarmodule();
/// Integer representing the version string (allows comparisons)
int version_int;
public:
/// Get the version number (higher = more recent)
int version_number() const
{
return version_int;
}
friend class colvarproxy;
// TODO colvarscript should be unaware of colvarmodule's internals
friend class colvarscript;
@ -158,10 +167,6 @@ public:
return it;
}
/// If true, get it_restart from the state file; if set to false,
/// the MD program is providing it
bool it_restart_from_state_file;
/// \brief Finite difference step size (if there is no dynamics, or
/// if gradients need to be tested independently from the size of
/// dt)
@ -306,19 +311,19 @@ private:
public:
/// Return how many variables are defined
int num_variables() const;
size_t num_variables() const;
/// Return how many variables have this feature enabled
int num_variables_feature(int feature_id) const;
size_t num_variables_feature(int feature_id) const;
/// Return how many biases are defined
int num_biases() const;
size_t num_biases() const;
/// Return how many biases have this feature enabled
int num_biases_feature(int feature_id) const;
size_t num_biases_feature(int feature_id) const;
/// Return how many biases of this type are defined
int num_biases_type(std::string const &type) const;
size_t num_biases_type(std::string const &type) const;
/// Return the names of time-dependent biases with forces enabled (ABF,
/// metadynamics, etc)
@ -479,9 +484,6 @@ public:
/// Print a message to the main log and set global error code
static int error(std::string const &message, int code = COLVARS_ERROR);
/// Print a message to the main log and exit normally
static void exit(std::string const &message);
// Replica exchange commands.
static bool replica_enabled();
static int replica_index();
@ -495,15 +497,6 @@ public:
static rvector position_distance(atom_pos const &pos1,
atom_pos const &pos2);
/// \brief Get the square distance between two positions (with
/// periodic boundary conditions handled transparently)
///
/// Note: in the case of periodic boundary conditions, this provides
/// an analytical square distance (while taking the square of
/// position_distance() would produce leads to a cusp)
static real position_dist2(atom_pos const &pos1,
atom_pos const &pos2);
/// \brief Names of groups from a Gromacs .ndx file to be read at startup
std::list<std::string> index_group_names;
@ -513,29 +506,36 @@ public:
/// \brief Read a Gromacs .ndx file
int read_index_file(char const *filename);
/// \brief Create atoms from a file \param filename name of the file
/// (usually a PDB) \param atoms array of the atoms to be allocated
/// \param pdb_field (optiona) if "filename" is a PDB file, use this
/// field to determine which are the atoms to be set
/// \brief Select atom IDs from a file (usually PDB) \param filename name of
/// the file \param atoms array into which atoms read from "filename" will be
/// appended \param pdb_field (optional) if the file is a PDB and this
/// string is non-empty, select atoms for which this field is non-zero
/// \param pdb_field_value (optional) if non-zero, select only atoms whose
/// pdb_field equals this
static int load_atoms(char const *filename,
atom_group &atoms,
std::string const &pdb_field,
double const pdb_field_value = 0.0);
double pdb_field_value = 0.0);
/// \brief Load the coordinates for a group of atoms from a file
/// (PDB or XYZ)
/// \brief Load coordinates for a group of atoms from a file (PDB or XYZ);
/// if "pos" is already allocated, the number of its elements must match the
/// number of entries in "filename" \param filename name of the file \param
/// pos array of coordinates \param atoms group containing the atoms (used
/// to obtain internal IDs) \param pdb_field (optional) if the file is a PDB
/// and this string is non-empty, select atoms for which this field is
/// non-zero \param pdb_field_value (optional) if non-zero, select only
/// atoms whose pdb_field equals this
static int load_coords(char const *filename,
std::vector<atom_pos> &pos,
const std::vector<int> &indices,
std::vector<rvector> *pos,
atom_group *atoms,
std::string const &pdb_field,
double const pdb_field_value = 0.0);
double pdb_field_value = 0.0);
/// \brief Load the coordinates for a group of atoms from an
/// XYZ file
static int load_coords_xyz(char const *filename,
std::vector<atom_pos> &pos,
const std::vector<int> &indices);
std::vector<rvector> *pos,
atom_group *atoms);
/// Frequency for collective variables trajectory output
static size_t cv_traj_freq;
@ -568,6 +568,9 @@ protected:
/// Appending to the existing trajectory file?
bool cv_traj_append;
/// Write labels at the next iteration
bool cv_traj_write_labels;
private:
/// Counter for the current depth in the object hierarchy (useg e.g. in output)

View File

@ -26,7 +26,10 @@
colvarproxy_system::colvarproxy_system() {}
colvarproxy_system::colvarproxy_system()
{
reset_pbc_lattice();
}
colvarproxy_system::~colvarproxy_system() {}
@ -55,10 +58,73 @@ bool colvarproxy_system::total_forces_same_step() const
}
cvm::real colvarproxy_system::position_dist2(cvm::atom_pos const &pos1,
cvm::atom_pos const &pos2)
inline int round_to_integer(cvm::real x)
{
return (position_distance(pos1, pos2)).norm2();
return std::floor(x+0.5);
}
void colvarproxy_system::update_pbc_lattice()
{
// Periodicity is assumed in all directions
if (boundaries_type == boundaries_unsupported ||
boundaries_type == boundaries_non_periodic) {
cvm::error("Error: setting PBC lattice with unsupported boundaries.\n",
BUG_ERROR);
return;
}
{
cvm::rvector const v = cvm::rvector::outer(unit_cell_y, unit_cell_z);
reciprocal_cell_x = v/(v*unit_cell_x);
}
{
cvm::rvector const v = cvm::rvector::outer(unit_cell_z, unit_cell_x);
reciprocal_cell_y = v/(v*unit_cell_y);
}
{
cvm::rvector const v = cvm::rvector::outer(unit_cell_x, unit_cell_y);
reciprocal_cell_z = v/(v*unit_cell_z);
}
}
void colvarproxy_system::reset_pbc_lattice()
{
unit_cell_x.reset();
unit_cell_y.reset();
unit_cell_z.reset();
reciprocal_cell_x.reset();
reciprocal_cell_y.reset();
reciprocal_cell_z.reset();
}
cvm::rvector colvarproxy_system::position_distance(cvm::atom_pos const &pos1,
cvm::atom_pos const &pos2)
const
{
if (boundaries_type == boundaries_unsupported) {
cvm::error("Error: unsupported boundary conditions.\n", INPUT_ERROR);
}
cvm::rvector diff = (pos2 - pos1);
if (boundaries_type == boundaries_non_periodic) return diff;
cvm::real const x_shift = round_to_integer(reciprocal_cell_x*diff);
cvm::real const y_shift = round_to_integer(reciprocal_cell_y*diff);
cvm::real const z_shift = round_to_integer(reciprocal_cell_z*diff);
diff.x -= x_shift*unit_cell_x.x + y_shift*unit_cell_y.x +
z_shift*unit_cell_z.x;
diff.y -= x_shift*unit_cell_x.y + y_shift*unit_cell_y.y +
z_shift*unit_cell_z.y;
diff.z -= x_shift*unit_cell_x.z + y_shift*unit_cell_y.z +
z_shift*unit_cell_z.z;
return diff;
}
@ -132,7 +198,7 @@ void colvarproxy_atoms::clear_atom(int index)
int colvarproxy_atoms::load_atoms(char const *filename,
cvm::atom_group &atoms,
std::string const &pdb_field,
double const)
double)
{
return cvm::error("Error: loading atom identifiers from a file "
"is currently not implemented.\n",
@ -142,9 +208,9 @@ int colvarproxy_atoms::load_atoms(char const *filename,
int colvarproxy_atoms::load_coords(char const *filename,
std::vector<cvm::atom_pos> &pos,
const std::vector<int> &indices,
std::vector<int> const &sorted_ids,
std::string const &pdb_field,
double const)
double)
{
return cvm::error("Error: loading atomic coordinates from a file "
"is currently not implemented.\n",
@ -661,6 +727,7 @@ int colvarproxy_io::close_output_stream(std::string const &output_name)
for ( ; osi != output_files.end(); osi++, osni++) {
if (*osni == output_name) {
((std::ofstream *) (*osi))->close();
delete *osi;
output_files.erase(osi);
output_stream_names.erase(osni);
return COLVARS_OK;
@ -729,3 +796,13 @@ size_t colvarproxy::restart_frequency()
return 0;
}
int colvarproxy::get_version_from_string(char const *version_string)
{
std::string const v(version_string);
std::istringstream is(v.substr(0, 4) + v.substr(5, 2) + v.substr(8, 2));
int newint;
is >> newint;
return newint;
}

View File

@ -14,6 +14,7 @@
#include <list>
#include "colvarmodule.h"
#include "colvartypes.h"
#include "colvarvalue.h"
@ -29,7 +30,7 @@
/// To interface to a new MD engine, the simplest solution is to derive a new
/// class from \link colvarproxy \endlink. Currently implemented are: \link
/// colvarproxy_lammps, \endlink, \link colvarproxy_namd, \endlink, \link
/// colvarproxy_vmd, \endlink.
/// colvarproxy_vmd \endlink.
// forward declarations
@ -68,14 +69,16 @@ public:
/// \brief Get the PBC-aware distance vector between two positions
virtual cvm::rvector position_distance(cvm::atom_pos const &pos1,
cvm::atom_pos const &pos2) = 0;
cvm::atom_pos const &pos2) const;
/// \brief Get the PBC-aware square distance between two positions;
/// may need to be reimplemented independently from position_distance() for optimization purposes
virtual cvm::real position_dist2(cvm::atom_pos const &pos1,
cvm::atom_pos const &pos2);
/// Recompute PBC reciprocal lattice (assumes XYZ periodicity)
void update_pbc_lattice();
/// Tell the proxy whether total forces are needed (may not always be available)
/// Set the lattice vectors to zero
void reset_pbc_lattice();
/// \brief Tell the proxy whether total forces are needed (they may not
/// always be available)
virtual void request_total_force(bool yesno);
/// Are total forces being used?
@ -83,6 +86,29 @@ public:
/// Are total forces from the current step available?
virtual bool total_forces_same_step() const;
protected:
/// \brief Type of boundary conditions
///
/// Orthogonal and triclinic cells are made available to objects.
/// For any other conditions (mixed periodicity, triclinic cells in LAMMPS)
/// minimum-image distances are computed by the host engine regardless.
enum Boundaries_type {
boundaries_non_periodic,
boundaries_pbc_ortho,
boundaries_pbc_triclinic,
boundaries_unsupported
};
/// Type of boundary conditions
Boundaries_type boundaries_type;
/// Bravais lattice vectors
cvm::rvector unit_cell_x, unit_cell_y, unit_cell_z;
/// Reciprocal lattice vectors
cvm::rvector reciprocal_cell_x, reciprocal_cell_y, reciprocal_cell_z;
};
@ -121,24 +147,30 @@ public:
/// (costly) set the corresponding atoms_ncopies to zero
virtual void clear_atom(int index);
/// \brief Read atom identifiers from a file \param filename name of
/// the file (usually a PDB) \param atoms array to which atoms read
/// from "filename" will be appended \param pdb_field (optiona) if
/// "filename" is a PDB file, use this field to determine which are
/// the atoms to be set
/// \brief Select atom IDs from a file (usually PDB) \param filename name of
/// the file \param atoms array to which atoms read from "filename" will be
/// appended \param pdb_field (optional) if the file is a PDB and this
/// string is non-empty, select atoms for which this field is non-zero
/// \param pdb_field_value (optional) if non-zero, select only atoms whose
/// pdb_field equals this
virtual int load_atoms(char const *filename,
cvm::atom_group &atoms,
std::string const &pdb_field,
double const pdb_field_value = 0.0);
double pdb_field_value = 0.0);
/// \brief Load the coordinates for a group of atoms from a file
/// (usually a PDB); if "pos" is already allocated, the number of its
/// elements must match the number of atoms in "filename"
/// \brief Load a set of coordinates from a file (usually PDB); if "pos" is
/// already allocated, the number of its elements must match the number of
/// entries in "filename" \param filename name of the file \param pos array
/// of coordinates \param sorted_ids array of sorted internal IDs, used to
/// loop through the file only once \param pdb_field (optional) if the file
/// is a PDB and this string is non-empty, select atoms for which this field
/// is non-zero \param pdb_field_value (optional) if non-zero, select only
/// atoms whose pdb_field equals this
virtual int load_coords(char const *filename,
std::vector<cvm::atom_pos> &pos,
const std::vector<int> &indices,
std::vector<int> const &sorted_ids,
std::string const &pdb_field,
double const pdb_field_value = 0.0);
double pdb_field_value = 0.0);
/// Clear atomic data
int reset();
@ -636,6 +668,15 @@ public:
return b_simulation_running;
}
/// Convert a version string "YYYY-MM-DD" into an integer
int get_version_from_string(char const *version_string);
/// Get the version number (higher = more recent)
int version_number() const
{
return version_int;
}
protected:
/// Whether a simulation is running (warn against irrecovarable errors)
@ -644,6 +685,9 @@ protected:
/// Whether the entire module should be deallocated by the host engine
bool b_delete_requested;
/// Integer representing the version string (allows comparisons)
int version_int;
};

View File

@ -1,5 +1,5 @@
#ifndef COLVARS_VERSION
#define COLVARS_VERSION "2018-01-17"
#define COLVARS_VERSION "2018-04-29"
// This file is part of the Collective Variables module (Colvars).
// The original version of Colvars and its updates are located at:
// https://github.com/colvars/colvars

View File

@ -130,7 +130,7 @@ public:
}
}
inline void operator *= (cvm::real const &a)
inline void operator *= (cvm::real a)
{
size_t i;
for (i = 0; i < this->size(); i++) {
@ -138,7 +138,7 @@ public:
}
}
inline void operator /= (cvm::real const &a)
inline void operator /= (cvm::real a)
{
size_t i;
for (i = 0; i < this->size(); i++) {
@ -146,7 +146,8 @@ public:
}
}
inline friend vector1d<T> operator + (vector1d<T> const &v1, vector1d<T> const &v2)
inline friend vector1d<T> operator + (vector1d<T> const &v1,
vector1d<T> const &v2)
{
check_sizes(v1.size(), v2.size());
vector1d<T> result(v1.size());
@ -157,7 +158,8 @@ public:
return result;
}
inline friend vector1d<T> operator - (vector1d<T> const &v1, vector1d<T> const &v2)
inline friend vector1d<T> operator - (vector1d<T> const &v1,
vector1d<T> const &v2)
{
check_sizes(v1.size(), v2.size());
vector1d<T> result(v1.size());
@ -168,7 +170,7 @@ public:
return result;
}
inline friend vector1d<T> operator * (vector1d<T> const &v, cvm::real const &a)
inline friend vector1d<T> operator * (vector1d<T> const &v, cvm::real a)
{
vector1d<T> result(v.size());
size_t i;
@ -178,12 +180,12 @@ public:
return result;
}
inline friend vector1d<T> operator * (cvm::real const &a, vector1d<T> const &v)
inline friend vector1d<T> operator * (cvm::real a, vector1d<T> const &v)
{
return v * a;
}
inline friend vector1d<T> operator / (vector1d<T> const &v, cvm::real const &a)
inline friend vector1d<T> operator / (vector1d<T> const &v, cvm::real a)
{
vector1d<T> result(v.size());
size_t i;
@ -246,7 +248,8 @@ public:
}
/// Assign a vector to a slice of this vector
inline void sliceassign(size_t const i1, size_t const i2, vector1d<T> const &v)
inline void sliceassign(size_t const i1, size_t const i2,
vector1d<T> const &v)
{
if ((i2 < i1) || (i2 >= this->size())) {
cvm::error("Error: trying to slice a vector using incorrect boundaries.\n");
@ -259,12 +262,13 @@ public:
/// Formatted output
inline size_t output_width(size_t const &real_width) const
inline size_t output_width(size_t real_width) const
{
return real_width*(this->size()) + 3*(this->size()-1) + 4;
}
inline friend std::istream & operator >> (std::istream &is, cvm::vector1d<T> &v)
inline friend std::istream & operator >> (std::istream &is,
cvm::vector1d<T> &v)
{
if (v.size() == 0) return is;
size_t const start_pos = is.tellg();
@ -288,7 +292,8 @@ public:
return is;
}
inline friend std::ostream & operator << (std::ostream &os, cvm::vector1d<T> const &v)
inline friend std::ostream & operator << (std::ostream &os,
cvm::vector1d<T> const &v)
{
std::streamsize const w = os.width();
std::streamsize const p = os.precision();
@ -377,6 +382,15 @@ protected:
{
return vector1d<T>(length, data);
}
inline int set(cvm::vector1d<T> const &v) const
{
if (v.size() != length) {
return cvm::error("Error: setting a matrix row from a vector of "
"incompatible size.\n", BUG_ERROR);
}
for (size_t i = 0; i < length; i++) data[i] = v[i];
return COLVARS_OK;
}
};
std::vector<T> data;
@ -515,9 +529,12 @@ public:
{
if ((m1.outer_length != m2.outer_length) ||
(m1.inner_length != m2.inner_length)) {
cvm::error("Error: trying to perform an operation between matrices of different sizes, "+
cvm::to_str(m1.outer_length)+"x"+cvm::to_str(m1.inner_length)+" and "+
cvm::to_str(m2.outer_length)+"x"+cvm::to_str(m2.inner_length)+".\n");
cvm::error("Error: trying to perform an operation between "
"matrices of different sizes, "+
cvm::to_str(m1.outer_length)+"x"+
cvm::to_str(m1.inner_length)+" and "+
cvm::to_str(m2.outer_length)+"x"+
cvm::to_str(m2.inner_length)+".\n");
}
}
@ -539,7 +556,7 @@ public:
}
}
inline void operator *= (cvm::real const &a)
inline void operator *= (cvm::real a)
{
size_t i;
for (i = 0; i < data.size(); i++) {
@ -547,7 +564,7 @@ public:
}
}
inline void operator /= (cvm::real const &a)
inline void operator /= (cvm::real a)
{
size_t i;
for (i = 0; i < data.size(); i++) {
@ -555,7 +572,8 @@ public:
}
}
inline friend matrix2d<T> operator + (matrix2d<T> const &m1, matrix2d<T> const &m2)
inline friend matrix2d<T> operator + (matrix2d<T> const &m1,
matrix2d<T> const &m2)
{
check_sizes(m1, m2);
matrix2d<T> result(m1.outer_length, m1.inner_length);
@ -566,7 +584,8 @@ public:
return result;
}
inline friend matrix2d<T> operator - (matrix2d<T> const &m1, matrix2d<T> const &m2)
inline friend matrix2d<T> operator - (matrix2d<T> const &m1,
matrix2d<T> const &m2)
{
check_sizes(m1, m2);
matrix2d<T> result(m1.outer_length, m1.inner_length);
@ -577,7 +596,7 @@ public:
return result;
}
inline friend matrix2d<T> operator * (matrix2d<T> const &m, cvm::real const &a)
inline friend matrix2d<T> operator * (matrix2d<T> const &m, cvm::real a)
{
matrix2d<T> result(m.outer_length, m.inner_length);
size_t i;
@ -587,12 +606,12 @@ public:
return result;
}
inline friend matrix2d<T> operator * (cvm::real const &a, matrix2d<T> const &m)
inline friend matrix2d<T> operator * (cvm::real a, matrix2d<T> const &m)
{
return m * a;
}
inline friend matrix2d<T> operator / (matrix2d<T> const &m, cvm::real const &a)
inline friend matrix2d<T> operator / (matrix2d<T> const &m, cvm::real a)
{
matrix2d<T> result(m.outer_length, m.inner_length);
size_t i;
@ -602,34 +621,17 @@ public:
return result;
}
/// Matrix multiplication
// inline friend matrix2d<T> const & operator * (matrix2d<T> const &m1, matrix2d<T> const &m2)
// {
// matrix2d<T> result(m1.outer_length, m2.inner_length);
// if (m1.inner_length != m2.outer_length) {
// cvm::error("Error: trying to multiply two matrices of incompatible sizes, "+
// cvm::to_str(m1.outer_length)+"x"+cvm::to_str(m1.inner_length)+" and "+
// cvm::to_str(m2.outer_length)+"x"+cvm::to_str(m2.inner_length)+".\n");
// } else {
// size_t i, j, k;
// for (i = 0; i < m1.outer_length; i++) {
// for (j = 0; j < m2.inner_length; j++) {
// for (k = 0; k < m1.inner_length; k++) {
// result[i][j] += m1[i][k] * m2[k][j];
// }
// }
// }
// }
// return result;
// }
/// vector-matrix multiplication
inline friend vector1d<T> operator * (vector1d<T> const &v, matrix2d<T> const &m)
inline friend vector1d<T> operator * (vector1d<T> const &v,
matrix2d<T> const &m)
{
vector1d<T> result(m.inner_length);
if (m.outer_length != v.size()) {
cvm::error("Error: trying to multiply a vector and a matrix of incompatible sizes, "+
cvm::to_str(v.size()) + " and " + cvm::to_str(m.outer_length)+"x"+cvm::to_str(m.inner_length) + ".\n");
cvm::error("Error: trying to multiply a vector and a matrix "
"of incompatible sizes, "+
cvm::to_str(v.size()) + " and " +
cvm::to_str(m.outer_length)+"x"+cvm::to_str(m.inner_length) +
".\n");
} else {
size_t i, k;
for (i = 0; i < m.inner_length; i++) {
@ -641,25 +643,6 @@ public:
return result;
}
// /// matrix-vector multiplication (unused for now)
// inline friend vector1d<T> const & operator * (matrix2d<T> const &m, vector1d<T> const &v)
// {
// vector1d<T> result(m.outer_length);
// if (m.inner_length != v.size()) {
// cvm::error("Error: trying to multiply a matrix and a vector of incompatible sizes, "+
// cvm::to_str(m.outer_length)+"x"+cvm::to_str(m.inner_length)
// + " and " + cvm::to_str(v.length) + ".\n");
// } else {
// size_t i, k;
// for (i = 0; i < m.outer_length; i++) {
// for (k = 0; k < m.inner_length; k++) {
// result[i] += m[i][k] * v[k];
// }
// }
// }
// return result;
// }
/// Formatted output
friend std::ostream & operator << (std::ostream &os,
matrix2d<T> const &m)
@ -725,49 +708,52 @@ public:
cvm::real x, y, z;
inline rvector()
: x(0.0), y(0.0), z(0.0)
{}
{
reset();
}
inline rvector(cvm::real const &x_i,
cvm::real const &y_i,
cvm::real const &z_i)
: x(x_i), y(y_i), z(z_i)
{}
/// \brief Set all components to zero
inline void reset()
{
set(0.0);
}
inline rvector(cvm::real x_i, cvm::real y_i, cvm::real z_i)
{
set(x_i, y_i, z_i);
}
inline rvector(cvm::vector1d<cvm::real> const &v)
: x(v[0]), y(v[1]), z(v[2])
{}
{
set(v[0], v[1], v[2]);
}
inline rvector(cvm::real t)
: x(t), y(t), z(t)
{}
{
set(t);
}
/// \brief Set all components to a scalar value
inline void set(cvm::real const &value) {
/// \brief Set all components to a scalar
inline void set(cvm::real value)
{
x = y = z = value;
}
/// \brief Assign all components
inline void set(cvm::real const &x_i,
cvm::real const &y_i,
cvm::real const &z_i) {
inline void set(cvm::real x_i, cvm::real y_i, cvm::real z_i)
{
x = x_i;
y = y_i;
z = z_i;
}
/// \brief Set all components to zero
inline void reset() {
x = y = z = 0.0;
}
/// \brief Access cartesian components by index
inline cvm::real & operator [] (int const &i) {
inline cvm::real & operator [] (int i) {
return (i == 0) ? x : (i == 1) ? y : (i == 2) ? z : x;
}
/// \brief Access cartesian components by index
inline cvm::real const & operator [] (int const &i) const {
inline cvm::real operator [] (int i) const {
return (i == 0) ? x : (i == 1) ? y : (i == 2) ? z : x;
}
@ -780,14 +766,6 @@ public:
return result;
}
inline cvm::rvector & operator = (cvm::real const &v)
{
x = v;
y = v;
z = v;
return *this;
}
inline void operator += (cvm::rvector const &v)
{
x += v.x;
@ -802,7 +780,7 @@ public:
z -= v.z;
}
inline void operator *= (cvm::real const &v)
inline void operator *= (cvm::real v)
{
x *= v;
y *= v;
@ -832,13 +810,14 @@ public:
return (n > 0. ? cvm::rvector(x, y, z)/n : cvm::rvector(1., 0., 0.));
}
static inline size_t output_width(size_t const &real_width)
static inline size_t output_width(size_t real_width)
{
return 3*real_width + 10;
}
static inline cvm::rvector outer(cvm::rvector const &v1, cvm::rvector const &v2)
static inline cvm::rvector outer(cvm::rvector const &v1,
cvm::rvector const &v2)
{
return cvm::rvector( v1.y*v2.z - v2.y*v1.z,
-v1.x*v2.z + v2.x*v1.z,
@ -850,41 +829,35 @@ public:
return cvm::rvector(-v.x, -v.y, -v.z);
}
friend inline int operator == (cvm::rvector const &v1, cvm::rvector const &v2)
{
return (v1.x == v2.x) && (v1.y == v2.y) && (v1.z == v2.z);
}
friend inline int operator != (cvm::rvector const &v1, cvm::rvector const &v2)
{
return (v1.x != v2.x) || (v1.y != v2.y) || (v1.z != v2.z);
}
friend inline cvm::rvector operator + (cvm::rvector const &v1, cvm::rvector const &v2)
friend inline cvm::rvector operator + (cvm::rvector const &v1,
cvm::rvector const &v2)
{
return cvm::rvector(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
}
friend inline cvm::rvector operator - (cvm::rvector const &v1, cvm::rvector const &v2)
friend inline cvm::rvector operator - (cvm::rvector const &v1,
cvm::rvector const &v2)
{
return cvm::rvector(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z);
}
friend inline cvm::real operator * (cvm::rvector const &v1, cvm::rvector const &v2)
/// Inner (dot) product
friend inline cvm::real operator * (cvm::rvector const &v1,
cvm::rvector const &v2)
{
return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z;
}
friend inline cvm::rvector operator * (cvm::real const &a, cvm::rvector const &v)
friend inline cvm::rvector operator * (cvm::real a, cvm::rvector const &v)
{
return cvm::rvector(a*v.x, a*v.y, a*v.z);
}
friend inline cvm::rvector operator * (cvm::rvector const &v, cvm::real const &a)
friend inline cvm::rvector operator * (cvm::rvector const &v, cvm::real a)
{
return cvm::rvector(a*v.x, a*v.y, a*v.z);
}
friend inline cvm::rvector operator / (cvm::rvector const &v, cvm::real const &a)
friend inline cvm::rvector operator / (cvm::rvector const &v, cvm::real a)
{
return cvm::rvector(v.x/a, v.y/a, v.z/a);
}
@ -946,15 +919,9 @@ public:
{}
/// Constructor component by component
inline rmatrix(cvm::real const &xxi,
cvm::real const &xyi,
cvm::real const &xzi,
cvm::real const &yxi,
cvm::real const &yyi,
cvm::real const &yzi,
cvm::real const &zxi,
cvm::real const &zyi,
cvm::real const &zzi)
inline rmatrix(cvm::real xxi, cvm::real xyi, cvm::real xzi,
cvm::real yxi, cvm::real yyi, cvm::real yzi,
cvm::real zxi, cvm::real zyi, cvm::real zzi)
: cvm::matrix2d<cvm::real>(3, 3)
{
this->xx() = xxi;
@ -983,31 +950,13 @@ public:
inline cvm::rmatrix transpose() const
{
return cvm::rmatrix(this->xx(),
this->yx(),
this->zx(),
this->xy(),
this->yy(),
this->zy(),
this->xz(),
this->yz(),
this->zz());
return cvm::rmatrix(this->xx(), this->yx(), this->zx(),
this->xy(), this->yy(), this->zy(),
this->xz(), this->yz(), this->zz());
}
friend cvm::rvector operator * (cvm::rmatrix const &m, cvm::rvector const &r);
// friend inline cvm::rmatrix const operator * (cvm::rmatrix const &m1, cvm::rmatrix const &m2) {
// return cvm::rmatrix (m1.xx()*m2.xx() + m1.xy()*m2.yx() + m1.xz()*m2.yz(),
// m1.xx()*m2.xy() + m1.xy()*m2.yy() + m1.xz()*m2.zy(),
// m1.xx()*m2.xz() + m1.xy()*m2.yz() + m1.xz()*m2.zz(),
// m1.yx()*m2.xx() + m1.yy()*m2.yx() + m1.yz()*m2.yz(),
// m1.yx()*m2.xy() + m1.yy()*m2.yy() + m1.yz()*m2.yy(),
// m1.yx()*m2.xz() + m1.yy()*m2.yz() + m1.yz()*m2.yz(),
// m1.zx()*m2.xx() + m1.zy()*m2.yx() + m1.zz()*m2.yz(),
// m1.zx()*m2.xy() + m1.zy()*m2.yy() + m1.zz()*m2.yy(),
// m1.zx()*m2.xz() + m1.zy()*m2.yz() + m1.zz()*m2.yz());
// }
};
@ -1031,7 +980,7 @@ public:
cvm::real q0, q1, q2, q3;
/// Constructor from a 3-d vector
inline quaternion(cvm::real const &x, cvm::real const &y, cvm::real const &z)
inline quaternion(cvm::real x, cvm::real y, cvm::real z)
: q0(0.0), q1(x), q2(y), q3(z)
{}
@ -1041,10 +990,10 @@ public:
{}
/// Constructor component by component
inline quaternion(cvm::real const &q0i,
cvm::real const &q1i,
cvm::real const &q2i,
cvm::real const &q3i)
inline quaternion(cvm::real q0i,
cvm::real q1i,
cvm::real q2i,
cvm::real q3i)
: q0(q0i), q1(q1i), q2(q2i), q3(q3i)
{}
@ -1055,9 +1004,9 @@ public:
/// "Constructor" after Euler angles (in radians)
///
/// http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles
inline void set_from_euler_angles(cvm::real const &phi_in,
cvm::real const &theta_in,
cvm::real const &psi_in)
inline void set_from_euler_angles(cvm::real phi_in,
cvm::real theta_in,
cvm::real psi_in)
{
q0 = ( (std::cos(phi_in/2.0)) * (std::cos(theta_in/2.0)) * (std::cos(psi_in/2.0)) +
(std::sin(phi_in/2.0)) * (std::sin(theta_in/2.0)) * (std::sin(psi_in/2.0)) );
@ -1079,7 +1028,7 @@ public:
}
/// \brief Set all components to a scalar
inline void set(cvm::real const &value = 0.0)
inline void set(cvm::real value)
{
q0 = q1 = q2 = q3 = value;
}
@ -1087,7 +1036,7 @@ public:
/// \brief Set all components to zero (null quaternion)
inline void reset()
{
q0 = q1 = q2 = q3 = 0.0;
set(0.0);
}
/// \brief Set the q0 component to 1 and the others to 0 (quaternion
@ -1099,7 +1048,7 @@ public:
}
/// Tell the number of characters required to print a quaternion, given that of a real number
static inline size_t output_width(size_t const &real_width)
static inline size_t output_width(size_t real_width)
{
return 4*real_width + 13;
}
@ -1113,7 +1062,7 @@ public:
friend std::istream & operator >> (std::istream &is, cvm::quaternion &q);
/// Access the quaternion as a 4-d array (return a reference)
inline cvm::real & operator [] (int const &i) {
inline cvm::real & operator [] (int i) {
switch (i) {
case 0:
return this->q0;
@ -1130,7 +1079,7 @@ public:
}
/// Access the quaternion as a 4-d array (return a value)
inline cvm::real operator [] (int const &i) const {
inline cvm::real operator [] (int i) const {
switch (i) {
case 0:
return this->q0;
@ -1175,12 +1124,12 @@ public:
return cvm::quaternion(q0, -q1, -q2, -q3);
}
inline void operator *= (cvm::real const &a)
inline void operator *= (cvm::real a)
{
q0 *= a; q1 *= a; q2 *= a; q3 *= a;
}
inline void operator /= (cvm::real const &a)
inline void operator /= (cvm::real a)
{
q0 /= a; q1 /= a; q2 /= a; q3 /= a;
}
@ -1215,19 +1164,22 @@ public:
}
friend inline cvm::quaternion operator + (cvm::quaternion const &h, cvm::quaternion const &q)
friend inline cvm::quaternion operator + (cvm::quaternion const &h,
cvm::quaternion const &q)
{
return cvm::quaternion(h.q0+q.q0, h.q1+q.q1, h.q2+q.q2, h.q3+q.q3);
}
friend inline cvm::quaternion operator - (cvm::quaternion const &h, cvm::quaternion const &q)
friend inline cvm::quaternion operator - (cvm::quaternion const &h,
cvm::quaternion const &q)
{
return cvm::quaternion(h.q0-q.q0, h.q1-q.q1, h.q2-q.q2, h.q3-q.q3);
}
/// \brief Provides the quaternion product. \b NOTE: for the inner
/// product use: \code h.inner (q); \endcode
friend inline cvm::quaternion operator * (cvm::quaternion const &h, cvm::quaternion const &q)
friend inline cvm::quaternion operator * (cvm::quaternion const &h,
cvm::quaternion const &q)
{
return cvm::quaternion(h.q0*q.q0 - h.q1*q.q1 - h.q2*q.q2 - h.q3*q.q3,
h.q0*q.q1 + h.q1*q.q0 + h.q2*q.q3 - h.q3*q.q2,
@ -1235,18 +1187,18 @@ public:
h.q0*q.q3 + h.q3*q.q0 + h.q1*q.q2 - h.q2*q.q1);
}
friend inline cvm::quaternion operator * (cvm::real const &c,
friend inline cvm::quaternion operator * (cvm::real c,
cvm::quaternion const &q)
{
return cvm::quaternion(c*q.q0, c*q.q1, c*q.q2, c*q.q3);
}
friend inline cvm::quaternion operator * (cvm::quaternion const &q,
cvm::real const &c)
cvm::real c)
{
return cvm::quaternion(q.q0*c, q.q1*c, q.q2*c, q.q3*c);
}
friend inline cvm::quaternion operator / (cvm::quaternion const &q,
cvm::real const &c)
cvm::real c)
{
return cvm::quaternion(q.q0/c, q.q1/c, q.q2/c, q.q3/c);
}
@ -1407,7 +1359,7 @@ public:
std::vector< cvm::vector1d<cvm::rvector> > dQ0_1, dQ0_2;
/// Allocate space for the derivatives of the rotation
inline void request_group1_gradients(size_t const &n)
inline void request_group1_gradients(size_t n)
{
dS_1.resize(n, cvm::matrix2d<cvm::rvector>(4, 4));
dL0_1.resize(n, cvm::rvector(0.0, 0.0, 0.0));
@ -1415,7 +1367,7 @@ public:
}
/// Allocate space for the derivatives of the rotation
inline void request_group2_gradients(size_t const &n)
inline void request_group2_gradients(size_t n)
{
dS_2.resize(n, cvm::matrix2d<cvm::rvector>(4, 4));
dL0_2.resize(n, cvm::rvector(0.0, 0.0, 0.0));
@ -1448,7 +1400,7 @@ public:
}
/// Constructor after an axis of rotation and an angle (in radians)
inline rotation(cvm::real const &angle, cvm::rvector const &axis)
inline rotation(cvm::real angle, cvm::rvector const &axis)
: b_debug_gradients(false)
{
cvm::rvector const axis_n = axis.unit();
@ -1500,20 +1452,18 @@ public:
if (q.q0 != 0.0) {
// cvm::real const x = iprod/q.q0;
cvm::real const dspindx =
(180.0/PI) * 2.0 * (1.0 / (1.0 + (iprod*iprod)/(q.q0*q.q0)));
cvm::real const dspindx = (180.0/PI) * 2.0 * (1.0 / (1.0 + (iprod*iprod)/(q.q0*q.q0)));
return
cvm::quaternion( dspindx * (iprod * (-1.0) / (q.q0*q.q0)),
dspindx * ((1.0/q.q0) * axis.x),
dspindx * ((1.0/q.q0) * axis.y),
dspindx * ((1.0/q.q0) * axis.z));
return cvm::quaternion( dspindx * (iprod * (-1.0) / (q.q0*q.q0)),
dspindx * ((1.0/q.q0) * axis.x),
dspindx * ((1.0/q.q0) * axis.y),
dspindx * ((1.0/q.q0) * axis.z));
} else {
// (1/(1+x^2)) ~ (1/x)^2
return
cvm::quaternion((180.0/PI) * 2.0 * ((-1.0)/iprod), 0.0, 0.0, 0.0);
// XX TODO: What if iprod == 0? XX
// The documentation of spinAngle discourages its use when q_vec and
// axis are not close
return cvm::quaternion((180.0/PI) * 2.0 * ((-1.0)/iprod), 0.0, 0.0, 0.0);
}
}

View File

@ -2,4 +2,4 @@
/filelink
/liblink
/includelink
/LATTE-master
/LATTE-*

View File

@ -0,0 +1,8 @@
# Settings that the LAMMPS build will import when this package library is used
# settings for VTK 7.1.1 on Fedora 28. This seems to work with Fedora versions going back to at least 23 and VTK version 6.x.
# You need to install vtk-devel and all its dependencies using "dnf install vtk-devel"
vtk_SYSINC = -I/usr/include/vtk
vtk_SYSLIB = -lvtkCommonCore -lvtkIOCore -lvtkCommonDataModel -lvtkIOXML -lvtkIOLegacy -lvtkIOParallelXML
vtk_SYSPATH = -L/usr/lib64/vtk

View File

@ -5,7 +5,7 @@
#
# Copyright (2003) Sandia Corporation. Under the terms of Contract
# DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
# certain rights in this software. This software is distributed under
# certain rights in this software. This software is distributed under
# the GNU General Public License.
#
# See the README file in the top-level LAMMPS directory.
@ -37,7 +37,7 @@ def get_ctypes_int(size):
return c_int32
elif size == 8:
return c_int64
return c_int
return c_int
class MPIAbortException(Exception):
def __init__(self, message):
@ -47,7 +47,7 @@ class MPIAbortException(Exception):
return repr(self.message)
class lammps(object):
# detect if Python is using version of mpi4py that can pass a communicator
has_mpi4py = False
@ -71,7 +71,7 @@ class lammps(object):
# if a pointer to a LAMMPS object is handed in,
# all symbols should already be available
try:
if ptr: self.lib = CDLL("",RTLD_GLOBAL)
except:
@ -84,7 +84,7 @@ class lammps(object):
# so that LD_LIBRARY_PATH does not need to be set for regular install
# fall back to loading with a relative path,
# typically requires LD_LIBRARY_PATH to be set appropriately
if not self.lib:
try:
if not name: self.lib = CDLL(join(modpath,"liblammps.so"),RTLD_GLOBAL)
@ -110,15 +110,15 @@ class lammps(object):
self.lib.lammps_gather_atoms.argtypes = \
[c_void_p,c_char_p,c_int,c_int,c_void_p]
self.lib.lammps_gather_atoms.restype = None
self.lib.lammps_gather_atoms_concat.argtypes = \
[c_void_p,c_char_p,c_int,c_int,c_void_p]
self.lib.lammps_gather_atoms_concat.restype = None
self.lib.lammps_gather_atoms_subset.argtypes = \
[c_void_p,c_char_p,c_int,c_int,c_int,POINTER(c_int),c_void_p]
self.lib.lammps_gather_atoms_subset.restype = None
self.lib.lammps_scatter_atoms.argtypes = \
[c_void_p,c_char_p,c_int,c_int,c_void_p]
self.lib.lammps_scatter_atoms.restype = None
@ -137,7 +137,7 @@ class lammps(object):
# just convert it to ctypes ptr and store in self.lmp
if not ptr:
# with mpi4py v2, can pass MPI communicator to LAMMPS
# need to adjust for type of MPI communicator object
# allow for int (like MPICH) or void* (like OpenMPI)
@ -211,7 +211,7 @@ class lammps(object):
self.c_imageint = get_ctypes_int(self.extract_setting("imageint"))
# shut-down LAMMPS instance
def __del__(self):
if self.lmp and self.opened:
self.lib.lammps_close(self.lmp)
@ -230,7 +230,7 @@ class lammps(object):
self.lib.lammps_file(self.lmp,file)
# send a single command
def command(self,cmd):
if cmd: cmd = cmd.encode()
self.lib.lammps_command(self.lmp,cmd)
@ -250,13 +250,13 @@ class lammps(object):
cmds = [x.encode() for x in cmdlist if type(x) is str]
args = (c_char_p * len(cmdlist))(*cmds)
self.lib.lammps_commands_list(self.lmp,len(cmdlist),args)
# send a string of commands
def commands_string(self,multicmd):
if type(multicmd) is str: multicmd = multicmd.encode()
self.lib.lammps_commands_string(self.lmp,c_char_p(multicmd))
# extract lammps type byte sizes
def extract_setting(self, name):
@ -265,7 +265,7 @@ class lammps(object):
return int(self.lib.lammps_extract_setting(self.lmp,name))
# extract global info
def extract_global(self,name,type):
if name: name = name.encode()
if type == 0:
@ -277,7 +277,7 @@ class lammps(object):
return ptr[0]
# extract global info
def extract_box(self):
boxlo = (3*c_double)()
boxhi = (3*c_double)()
@ -286,11 +286,11 @@ class lammps(object):
xz = c_double()
periodicity = (3*c_int)()
box_change = c_int()
self.lib.lammps_extract_box(self.lmp,boxlo,boxhi,
byref(xy),byref(yz),byref(xz),
periodicity,byref(box_change))
boxlo = boxlo[:3]
boxhi = boxhi[:3]
xy = xy.value
@ -298,9 +298,9 @@ class lammps(object):
xz = xz.value
periodicity = periodicity[:3]
box_change = box_change.value
return boxlo,boxhi,xy,yz,xz,periodicity,box_change
# extract per-atom info
# NOTE: need to insure are converting to/from correct Python type
# e.g. for Python list or NumPy or ctypes
@ -318,7 +318,7 @@ class lammps(object):
else: return None
ptr = self.lib.lammps_extract_atom(self.lmp,name)
return ptr
@property
def numpy(self):
if not self._numpy:
@ -371,7 +371,7 @@ class lammps(object):
return self._numpy
# extract compute info
def extract_compute(self,id,style,type):
if id: id = id.encode()
if type == 0:
@ -384,9 +384,14 @@ class lammps(object):
ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type)
return ptr
if type == 2:
self.lib.lammps_extract_compute.restype = POINTER(POINTER(c_double))
ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type)
return ptr
if style == 0:
self.lib.lammps_extract_compute.restype = POINTER(c_int)
ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type)
return ptr[0]
else:
self.lib.lammps_extract_compute.restype = POINTER(POINTER(c_double))
ptr = self.lib.lammps_extract_compute(self.lmp,id,style,type)
return ptr
return None
# extract fix info
@ -466,7 +471,7 @@ class lammps(object):
cboxlo = (3*c_double)(*boxlo)
cboxhi = (3*c_double)(*boxhi)
self.lib.lammps_reset_box(self.lmp,cboxlo,cboxhi,xy,yz,xz)
# return vector of atom properties gathered across procs
# 3 variants to match src/library.cpp
# name = atom property recognized by LAMMPS in atom->extract()
@ -475,7 +480,7 @@ class lammps(object):
# returned data is a 1d vector - doc how it is ordered?
# NOTE: need to insure are converting to/from correct Python type
# e.g. for Python list or NumPy or ctypes
def gather_atoms(self,name,type,count):
if name: name = name.encode()
natoms = self.lib.lammps_get_natoms(self.lmp)
@ -487,7 +492,7 @@ class lammps(object):
self.lib.lammps_gather_atoms(self.lmp,name,type,count,data)
else: return None
return data
def gather_atoms_concat(self,name,type,count):
if name: name = name.encode()
natoms = self.lib.lammps_get_natoms(self.lmp)
@ -519,7 +524,7 @@ class lammps(object):
# assume data is of correct type and length, as created by gather_atoms()
# NOTE: need to insure are converting to/from correct Python type
# e.g. for Python list or NumPy or ctypes
def scatter_atoms(self,name,type,count,data):
if name: name = name.encode()
self.lib.lammps_scatter_atoms(self.lmp,name,type,count,data)

4
src/.gitignore vendored
View File

@ -374,6 +374,8 @@
/fix_bond_break.h
/fix_bond_create.cpp
/fix_bond_create.h
/fix_bond_react.cpp
/fix_bond_react.h
/fix_bond_swap.cpp
/fix_bond_swap.h
/fix_cmap.cpp
@ -732,6 +734,8 @@
/pair_hbond_dreiding_morse.h
/pair_ilp_graphene_hbn.cpp
/pair_ilp_graphene_hbn.h
/pair_kim.cpp
/pair_kim.h
/pair_kolmogorov_crespi_full.cpp
/pair_kolmogorov_crespi_full.h
/pair_kolmogorov_crespi_z.cpp

View File

@ -16,7 +16,7 @@
------------------------------------------------------------------------- */
#include <mpi.h>
#include <string.h>
#include <cstring>
#include "compute_temp_asphere.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -15,9 +15,9 @@
Contributing author: Mike Brown (SNL)
------------------------------------------------------------------------- */
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include "math_extra.h"
#include "fix_nh_asphere.h"
#include "atom.h"

View File

@ -11,7 +11,7 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <string.h>
#include <cstring>
#include "fix_nph_asphere.h"
#include "modify.h"
#include "error.h"

View File

@ -11,7 +11,7 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <string.h>
#include <cstring>
#include "fix_npt_asphere.h"
#include "modify.h"
#include "error.h"

View File

@ -15,9 +15,9 @@
Contributing author: Mike Brown (SNL)
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstring>
#include "fix_nve_asphere.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -11,9 +11,9 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include "fix_nve_asphere_noforce.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -11,9 +11,9 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstring>
#include "fix_nve_line.h"
#include "atom.h"
#include "atom_vec_line.h"

View File

@ -11,9 +11,9 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstring>
#include "fix_nve_tri.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -11,7 +11,7 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <string.h>
#include <cstring>
#include "fix_nvt_asphere.h"
#include "group.h"
#include "modify.h"

View File

@ -15,10 +15,10 @@
Contributing author: Mike Brown (SNL)
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_gayberne.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -11,10 +11,10 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_line_lj.h"
#include "atom.h"
#include "atom_vec_line.h"

View File

@ -15,10 +15,10 @@
Contributing author: Mike Brown (SNL)
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_resquared.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -11,10 +11,10 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_tri_lj.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -11,7 +11,7 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <stdlib.h>
#include <cstdlib>
#include "body_nparticle.h"
#include "math_extra.h"
#include "atom_vec_body.h"

View File

@ -11,8 +11,8 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <string.h>
#include <cmath>
#include <cstring>
#include "compute_body_local.h"
#include "atom.h"
#include "atom_vec_body.h"

View File

@ -17,7 +17,7 @@
------------------------------------------------------------------------- */
#include <mpi.h>
#include <string.h>
#include <cstring>
#include "compute_temp_body.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -16,9 +16,9 @@
based on FixNHAsphere
------------------------------------------------------------------------- */
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include "math_extra.h"
#include "fix_nh_body.h"
#include "atom.h"

View File

@ -15,7 +15,7 @@
Contributing author: Trung Dac Nguyen (ndactrung@gmail.com)
------------------------------------------------------------------------- */
#include <string.h>
#include <cstring>
#include "fix_nph_body.h"
#include "modify.h"
#include "error.h"

View File

@ -15,7 +15,7 @@
Contributing author: Trung Dac Nguyen (ndactrung@gmail.com)
------------------------------------------------------------------------- */
#include <string.h>
#include <cstring>
#include "fix_npt_body.h"
#include "modify.h"
#include "error.h"

View File

@ -11,9 +11,9 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstring>
#include "fix_nve_body.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -15,7 +15,7 @@
Contributing author: Trung Dac Nguyen (ndactrung@gmail.com)
------------------------------------------------------------------------- */
#include <string.h>
#include <cstring>
#include "fix_nvt_body.h"
#include "group.h"
#include "modify.h"

View File

@ -11,10 +11,10 @@
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "pair_body.h"
#include "math_extra.h"
#include "atom.h"

View File

@ -15,9 +15,9 @@
Contributing author: Eric Simon (Cray)
------------------------------------------------------------------------- */
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include "angle_class2.h"
#include "atom.h"
#include "neighbor.h"

View File

@ -20,7 +20,7 @@ AngleStyle(class2,AngleClass2)
#ifndef LMP_ANGLE_CLASS2_H
#define LMP_ANGLE_CLASS2_H
#include <stdio.h>
#include <cstdio>
#include "angle.h"
namespace LAMMPS_NS {

View File

@ -15,8 +15,8 @@
Contributing author: Eric Simon (Cray)
------------------------------------------------------------------------- */
#include <math.h>
#include <stdlib.h>
#include <cmath>
#include <cstdlib>
#include "bond_class2.h"
#include "atom.h"
#include "neighbor.h"

View File

@ -20,7 +20,7 @@ BondStyle(class2,BondClass2)
#ifndef LMP_BOND_CLASS2_H
#define LMP_BOND_CLASS2_H
#include <stdio.h>
#include <cstdio>
#include "bond.h"
namespace LAMMPS_NS {

View File

@ -15,9 +15,9 @@
Contributing author: Eric Simon (Cray)
------------------------------------------------------------------------- */
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include "dihedral_class2.h"
#include "atom.h"
#include "neighbor.h"

View File

@ -20,7 +20,7 @@ DihedralStyle(class2,DihedralClass2)
#ifndef LMP_DIHEDRAL_CLASS2_H
#define LMP_DIHEDRAL_CLASS2_H
#include <stdio.h>
#include <cstdio>
#include "dihedral.h"
namespace LAMMPS_NS {

Some files were not shown because too many files have changed in this diff Show More