forked from lijiext/lammps
commit
2d321a602c
Binary file not shown.
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -0,0 +1,356 @@
|
|||
"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 template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
|
||||
react react-ID react-group-ID Nevery Rmin template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
|
||||
react react-ID react-group-ID Nevery Rmin 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"_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 separated by less than Rmin can 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 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 3.25 mol1 mol2 map_file_rxn1.txt prob 0.50 12345 &
|
||||
react myrxn2 all 1 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 necessary
|
||||
to place the time integration command after the fix bond/react command
|
||||
due to the internal dynamic grouping performed by fix bond/react.
|
||||
|
||||
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 be within a distance Rmin of each other. The atom
|
||||
types typei and typej are specified in the pre- and post-reaction
|
||||
templates. The distance calculation uses the pair neighbor list,
|
||||
therefore bonded neighbor exclusions may prevent a reaction between
|
||||
1st, 2nd or 3rd bonded neighbor atoms. If multiple bonding atom pairs
|
||||
are identified for an atom, the closest bonding atom partner is set as
|
||||
its "nearest" bonding partner. 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 between the
|
||||
bonding atom pairs specified in the pre-reacted molecule template,
|
||||
this is not required.
|
||||
|
||||
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 reaction steps.
|
||||
|
||||
Computationally, each timestep this fix operates, it loops over
|
||||
neighbor lists and computes distances between pairs of atoms in the
|
||||
list. It also communicates between neighboring processors to
|
||||
coordinate which bonds are created. 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).
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ Fixes :h1
|
|||
fix_bond_break
|
||||
fix_bond_create
|
||||
fix_bond_swap
|
||||
fix_bond_react
|
||||
fix_box_relax
|
||||
fix_cmap
|
||||
fix_colvars
|
||||
|
|
|
@ -137,6 +137,7 @@ fix_aveforce.html
|
|||
fix_balance.html
|
||||
fix_bond_break.html
|
||||
fix_bond_create.html
|
||||
fix_bond_react.html
|
||||
fix_bond_swap.html
|
||||
fix_box_relax.html
|
||||
fix_cmap.html
|
||||
|
|
|
@ -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 2.9 mol1 mol2 rxn1_stp1_map &
|
||||
react rxn2 all 1 5 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
|
Binary file not shown.
|
@ -0,0 +1,170 @@
|
|||
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 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 5 mol3 mol4 rxn1_stp2_map
|
||||
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 693.69241 -4696.4359 0.80366765 57 22
|
||||
150 715.44689 -14740.892 0.80366765 77 50
|
||||
200 721.16898 -1411.95 0.80366765 84 66
|
||||
Loop time of 107.389 on 1 procs for 200 steps with 35200 atoms
|
||||
|
||||
Performance: 0.161 ns/day, 149.151 hours/ns, 1.862 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.191 | 27.191 | 27.191 | 0.0 | 25.32
|
||||
Bond | 11.46 | 11.46 | 11.46 | 0.0 | 10.67
|
||||
Kspace | 4.2507 | 4.2507 | 4.2507 | 0.0 | 3.96
|
||||
Neigh | 55.544 | 55.544 | 55.544 | 0.0 | 51.72
|
||||
Comm | 0.41715 | 0.41715 | 0.41715 | 0.0 | 0.39
|
||||
Output | 0.0011044 | 0.0011044 | 0.0011044 | 0.0 | 0.00
|
||||
Modify | 8.4756 | 8.4756 | 8.4756 | 0.0 | 7.89
|
||||
Other | | 0.04897 | | | 0.05
|
||||
|
||||
Nlocal: 35200 ave 35200 max 35200 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 38406 ave 38406 max 38406 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 6.92787e+06 ave 6.92787e+06 max 6.92787e+06 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 6927872
|
||||
Ave neighs/atom = 196.815
|
||||
Ave special neighs/atom = 9.83489
|
||||
Neighbor list builds = 200
|
||||
Dangerous builds = 0
|
||||
|
||||
# write_restart restart_longrun
|
||||
# write_data restart_longrun.data
|
||||
Total wall time: 0:01:48
|
|
@ -0,0 +1,170 @@
|
|||
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 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 5 mol3 mol4 rxn1_stp2_map
|
||||
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 693.69241 -4696.4359 0.80366765 57 22
|
||||
150 715.43654 -14742.205 0.80366765 77 50
|
||||
200 721.1906 -1411.4303 0.80366765 84 66
|
||||
Loop time of 56.2311 on 4 procs for 200 steps with 35200 atoms
|
||||
|
||||
Performance: 0.307 ns/day, 78.099 hours/ns, 3.557 timesteps/s
|
||||
99.1% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 13.86 | 14.034 | 14.406 | 5.8 | 24.96
|
||||
Bond | 5.5592 | 5.5952 | 5.6492 | 1.4 | 9.95
|
||||
Kspace | 2.3969 | 2.7523 | 2.9203 | 12.5 | 4.89
|
||||
Neigh | 27.265 | 27.268 | 27.271 | 0.0 | 48.49
|
||||
Comm | 0.75523 | 0.77355 | 0.79381 | 1.7 | 1.38
|
||||
Output | 0.00051904 | 0.0007363 | 0.0013669 | 0.0 | 0.00
|
||||
Modify | 5.7629 | 5.7634 | 5.7641 | 0.0 | 10.25
|
||||
Other | | 0.04441 | | | 0.08
|
||||
|
||||
Nlocal: 8800 ave 8912 max 8666 min
|
||||
Histogram: 1 0 0 1 0 0 0 0 1 1
|
||||
Nghost: 18358.8 ave 18432 max 18189 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 1 2
|
||||
Neighs: 1.73197e+06 ave 1.77209e+06 max 1.68475e+06 min
|
||||
Histogram: 1 0 1 0 0 0 0 0 0 2
|
||||
|
||||
Total # of neighbors = 6927873
|
||||
Ave neighs/atom = 196.815
|
||||
Ave special neighs/atom = 9.83489
|
||||
Neighbor list builds = 200
|
||||
Dangerous builds = 0
|
||||
|
||||
# write_restart restart_longrun
|
||||
# write_data restart_longrun.data
|
||||
Total wall time: 0:00:57
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 2.9 mol1 mol2 rxn1_stp1_map &
|
||||
react rxn2 all 1 5 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
|
|
@ -0,0 +1,365 @@
|
|||
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 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 5 mol3 mol4 rxn1_stp2_map
|
||||
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 275.26011 39.120329 0.0034851739 1 1
|
||||
150 438.68516 35.257539 0.0034851739 1 1
|
||||
200 394.48971 15.444537 0.0034851739 1 1
|
||||
250 356.00369 50.185792 0.0034851739 1 1
|
||||
300 301.25816 -26.891497 0.0034851739 1 1
|
||||
350 279.17264 12.694513 0.0034851739 1 1
|
||||
400 248.71641 10.684558 0.0034851739 1 1
|
||||
450 240.30602 12.963034 0.0034851739 1 1
|
||||
500 252.71279 0.91620356 0.0034851739 1 1
|
||||
550 300.56824 18.541436 0.0034851739 1 1
|
||||
600 306.46441 -1.9736081 0.0034851739 1 1
|
||||
650 336.4537 21.474831 0.0034851739 1 1
|
||||
700 323.46217 8.486376 0.0034851739 1 1
|
||||
750 271.87146 5.9615231 0.0034851739 1 1
|
||||
800 268.43041 36.676068 0.0034851739 1 1
|
||||
850 269.02683 7.6295416 0.0034851739 1 1
|
||||
900 282.03605 -1.4688833 0.0034851739 1 1
|
||||
950 243.69136 -22.771489 0.0034851739 1 1
|
||||
1000 285.01348 17.925748 0.0034851739 1 1
|
||||
1050 383.47985 0.70536985 0.0034851739 1 1
|
||||
1100 368.97167 -4.3046933 0.0034851739 1 1
|
||||
1150 373.64459 6.3491837 0.0034851739 1 1
|
||||
1200 332.90575 -36.501095 0.0034851739 1 1
|
||||
1250 314.04078 -13.382767 0.0034851739 1 1
|
||||
1300 305.84166 4.7713641 0.0034851739 1 1
|
||||
1350 286.22145 37.621803 0.0034851739 1 1
|
||||
1400 265.52855 23.621002 0.0034851739 1 1
|
||||
1450 281.807 -31.266828 0.0034851739 1 1
|
||||
1500 275.33855 33.495565 0.0034851739 1 1
|
||||
1550 273.04973 -22.913871 0.0034851739 1 1
|
||||
1600 308.18478 -17.98151 0.0034851739 1 1
|
||||
1650 333.27664 28.987529 0.0034851739 1 1
|
||||
1700 296.16091 -1.1440455 0.0034851739 1 1
|
||||
1750 365.75611 34.574845 0.0034851739 1 1
|
||||
1800 292.83503 -33.199654 0.0034851739 1 1
|
||||
1850 261.50282 42.608703 0.0034851739 1 1
|
||||
1900 315.14188 -31.058803 0.0034851739 1 1
|
||||
1950 335.12895 12.40597 0.0034851739 1 1
|
||||
2000 278.08586 -5.3178633 0.0034851739 1 1
|
||||
2050 283.23847 -3.3974302 0.0034851739 1 1
|
||||
2100 281.38904 0.70263324 0.0034851739 1 1
|
||||
2150 302.23197 23.372316 0.0034851739 1 1
|
||||
2200 337.49259 -4.8716803 0.0034851739 1 1
|
||||
2250 409.64134 -12.043721 0.0034851739 1 1
|
||||
2300 309.21764 -21.824645 0.0034851739 1 1
|
||||
2350 290.97879 18.690281 0.0034851739 1 1
|
||||
2400 341.816 -16.967741 0.0034851739 1 1
|
||||
2450 310.28034 27.375518 0.0034851739 1 1
|
||||
2500 248.89429 17.061192 0.0034851739 1 1
|
||||
2550 273.10927 0.10481657 0.0034851739 1 1
|
||||
2600 289.56101 -9.7239939 0.0034851739 1 1
|
||||
2650 298.99719 -33.140576 0.0034851739 1 1
|
||||
2700 326.05198 -24.509827 0.0034851739 1 1
|
||||
2750 319.20612 24.305526 0.0034851739 1 1
|
||||
2800 304.8715 -15.076941 0.0034851739 1 1
|
||||
2850 374.38923 2.0874883 0.0034851739 1 1
|
||||
2900 354.01554 -20.595102 0.0034851739 1 1
|
||||
2950 289.89296 48.39731 0.0034851739 1 1
|
||||
3000 312.10013 -8.5105997 0.0034851739 1 1
|
||||
3050 296.97004 -31.008446 0.0034851739 1 1
|
||||
3100 251.72228 35.710197 0.0034851739 1 1
|
||||
3150 315.35895 -43.331536 0.0034851739 1 1
|
||||
3200 334.67773 13.331058 0.0034851739 1 1
|
||||
3250 308.1669 37.236121 0.0034851739 1 1
|
||||
3300 329.47601 30.798598 0.0034851739 1 1
|
||||
3350 299.40055 2.0785585 0.0034851739 1 1
|
||||
3400 272.41031 32.744922 0.0034851739 1 1
|
||||
3450 279.34594 -26.181793 0.0034851739 1 1
|
||||
3500 288.89969 8.935052 0.0034851739 1 1
|
||||
3550 253.4967 9.7244709 0.0034851739 1 1
|
||||
3600 294.83266 19.33305 0.0034851739 1 1
|
||||
3650 290.23794 -5.4939069 0.0034851739 1 1
|
||||
3700 332.5222 -29.834229 0.0034851739 1 1
|
||||
3750 364.63024 20.706191 0.0034851739 1 1
|
||||
3800 295.3842 -6.9434004 0.0034851739 1 1
|
||||
3850 346.84424 37.796066 0.0034851739 1 1
|
||||
3900 265.67286 -0.31628068 0.0034851739 1 1
|
||||
3950 260.455 -2.2571902 0.0034851739 1 1
|
||||
4000 259.82636 -2.2286205 0.0034851739 1 1
|
||||
4050 257.79848 24.520293 0.0034851739 1 1
|
||||
4100 295.58626 -0.42318936 0.0034851739 1 1
|
||||
4150 265.81353 -49.092436 0.0034851739 1 1
|
||||
4200 302.10333 51.715259 0.0034851739 1 1
|
||||
4250 258.98448 -4.8516655 0.0034851739 1 1
|
||||
4300 327.83401 33.717282 0.0034851739 1 1
|
||||
4350 311.59571 23.580382 0.0034851739 1 1
|
||||
4400 300.64237 -31.866661 0.0034851739 1 1
|
||||
4450 294.15643 -0.11927421 0.0034851739 1 1
|
||||
4500 299.83605 -17.560873 0.0034851739 1 1
|
||||
4550 326.83265 32.818482 0.0034851739 1 1
|
||||
4600 260.39068 -8.0567902 0.0034851739 1 1
|
||||
4650 247.93553 19.462991 0.0034851739 1 1
|
||||
4700 214.22252 -34.118303 0.0034851739 1 1
|
||||
4750 203.15329 27.356205 0.0034851739 1 1
|
||||
4800 257.761 -10.407989 0.0034851739 1 1
|
||||
4850 307.1923 11.71101 0.0034851739 1 1
|
||||
4900 319.00942 4.7808306 0.0034851739 1 1
|
||||
4950 282.23989 24.996151 0.0034851739 1 1
|
||||
5000 311.53284 -3.0012665 0.0034851739 1 1
|
||||
5050 317.58212 32.567832 0.0034851739 1 1
|
||||
5100 267.51501 -47.695087 0.0034851739 1 1
|
||||
5150 260.19048 29.046388 0.0034851739 1 1
|
||||
5200 239.83552 -5.4890385 0.0034851739 1 1
|
||||
5250 234.8852 -18.172633 0.0034851739 1 1
|
||||
5300 236.43277 -39.06212 0.0034851739 1 1
|
||||
5350 280.90079 -2.6932923 0.0034851739 1 1
|
||||
5400 316.65266 23.071362 0.0034851739 1 1
|
||||
5450 345.63226 19.573323 0.0034851739 1 1
|
||||
5500 384.57334 41.507217 0.0034851739 1 1
|
||||
5550 317.14278 9.6992897 0.0034851739 1 1
|
||||
5600 279.93243 -12.076895 0.0034851739 1 1
|
||||
5650 268.06471 1.6196401 0.0034851739 1 1
|
||||
5700 271.85714 -40.378455 0.0034851739 1 1
|
||||
5750 313.88363 10.722639 0.0034851739 1 1
|
||||
5800 281.54495 31.914889 0.0034851739 1 1
|
||||
5850 293.34821 -8.3154922 0.0034851739 1 1
|
||||
5900 249.25216 -17.307353 0.0034851739 1 1
|
||||
5950 268.18639 -4.7222512 0.0034851739 1 1
|
||||
6000 302.99398 -52.615528 0.0034851739 1 1
|
||||
6050 314.57931 34.51318 0.0034851739 1 1
|
||||
6100 345.70348 30.334721 0.0034851739 1 1
|
||||
6150 316.59329 31.862519 0.0034851739 1 1
|
||||
6200 317.85346 -32.235221 0.0034851739 1 1
|
||||
6250 282.97676 0.2936745 0.0034851739 1 1
|
||||
6300 267.91814 19.265567 0.0034851739 1 1
|
||||
6350 226.20967 -13.093547 0.0034851739 1 1
|
||||
6400 307.73316 17.439598 0.0034851739 1 1
|
||||
6450 292.16253 -23.275163 0.0034851739 1 1
|
||||
6500 335.05939 26.936463 0.0034851739 1 1
|
||||
6550 380.73546 19.532416 0.0034851739 1 1
|
||||
6600 373.0103 30.879532 0.0034851739 1 1
|
||||
6650 335.37975 -2.1762828 0.0034851739 1 1
|
||||
6700 298.94272 -10.578587 0.0034851739 1 1
|
||||
6750 255.11531 -50.576215 0.0034851739 1 1
|
||||
6800 222.87459 3.0499548 0.0034851739 1 1
|
||||
6850 268.57213 -43.675945 0.0034851739 1 1
|
||||
6900 260.3024 4.7483005 0.0034851739 1 1
|
||||
6950 289.15855 31.62106 0.0034851739 1 1
|
||||
7000 289.11874 21.635533 0.0034851739 1 1
|
||||
7050 361.08776 22.445996 0.0034851739 1 1
|
||||
7100 368.95003 4.8383881 0.0034851739 1 1
|
||||
7150 331.47448 -36.200495 0.0034851739 1 1
|
||||
7200 304.7251 13.982693 0.0034851739 1 1
|
||||
7250 284.09747 0.53758275 0.0034851739 1 1
|
||||
7300 269.17023 -41.571482 0.0034851739 1 1
|
||||
7350 222.07071 25.564662 0.0034851739 1 1
|
||||
7400 304.09598 15.482955 0.0034851739 1 1
|
||||
7450 298.78752 -7.4335841 0.0034851739 1 1
|
||||
7500 328.78697 14.666097 0.0034851739 1 1
|
||||
7550 347.07038 -37.165295 0.0034851739 1 1
|
||||
7600 362.85673 20.52268 0.0034851739 1 1
|
||||
7650 347.15141 2.3383775 0.0034851739 1 1
|
||||
7700 262.10132 33.898374 0.0034851739 1 1
|
||||
7750 275.84724 -33.534813 0.0034851739 1 1
|
||||
7800 281.14075 -18.284372 0.0034851739 1 1
|
||||
7850 264.83337 -30.580199 0.0034851739 1 1
|
||||
7900 257.35275 -35.080567 0.0034851739 1 1
|
||||
7950 286.32446 26.594779 0.0034851739 1 1
|
||||
8000 248.36889 15.605894 0.0034851739 1 1
|
||||
8050 292.55015 28.811985 0.0034851739 1 1
|
||||
8100 312.47888 0.83990451 0.0034851739 1 1
|
||||
8150 285.58532 -15.258185 0.0034851739 1 1
|
||||
8200 292.22819 -38.233195 0.0034851739 1 1
|
||||
8250 321.6208 -19.052143 0.0034851739 1 1
|
||||
8300 319.41332 54.97437 0.0034851739 1 1
|
||||
8350 307.95647 32.009591 0.0034851739 1 1
|
||||
8400 345.58105 8.8535539 0.0034851739 1 1
|
||||
8450 357.75168 12.416896 0.0034851739 1 1
|
||||
8500 370.049 4.3288665 0.0034851739 1 1
|
||||
8550 360.62882 12.618614 0.0034851739 1 1
|
||||
8600 290.10834 -4.8081765 0.0034851739 1 1
|
||||
8650 297.7575 -5.1976816 0.0034851739 1 1
|
||||
8700 286.57505 -31.469549 0.0034851739 1 1
|
||||
8750 307.77059 19.338001 0.0034851739 1 1
|
||||
8800 231.68316 12.159459 0.0034851739 1 1
|
||||
8850 329.13623 -8.7262592 0.0034851739 1 1
|
||||
8900 286.40715 10.326025 0.0034851739 1 1
|
||||
8950 339.43101 2.7809618 0.0034851739 1 1
|
||||
9000 402.53799 19.481869 0.0034851739 1 1
|
||||
9050 349.56449 -4.8450179 0.0034851739 1 1
|
||||
9100 307.64739 16.889327 0.0034851739 1 1
|
||||
9150 276.54451 -34.808372 0.0034851739 1 1
|
||||
9200 233.18668 4.9409791 0.0034851739 1 1
|
||||
9250 266.48384 -19.850366 0.0034851739 1 1
|
||||
9300 289.14808 13.520201 0.0034851739 1 1
|
||||
9350 295.08335 17.156468 0.0034851739 1 1
|
||||
9400 338.08757 -31.112278 0.0034851739 1 1
|
||||
9450 336.64739 -25.697747 0.0034851739 1 1
|
||||
9500 338.10622 1.9241797 0.0034851739 1 1
|
||||
9550 294.82158 -12.043972 0.0034851739 1 1
|
||||
9600 268.9836 12.235553 0.0034851739 1 1
|
||||
9650 279.6269 28.710734 0.0034851739 1 1
|
||||
9700 279.88562 -10.865604 0.0034851739 1 1
|
||||
9750 287.56565 12.975819 0.0034851739 1 1
|
||||
9800 278.39949 4.2088595 0.0034851739 1 1
|
||||
9850 307.61259 9.341169 0.0034851739 1 1
|
||||
9900 317.53581 2.3948493 0.0034851739 1 1
|
||||
9950 332.52938 -14.809185 0.0034851739 1 1
|
||||
10000 401.93365 -7.637581 0.0034851739 1 1
|
||||
Loop time of 1.94139 on 1 procs for 10000 steps with 44 atoms
|
||||
|
||||
Performance: 445.042 ns/day, 0.054 hours/ns, 5150.945 timesteps/s
|
||||
99.3% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.26479 | 0.26479 | 0.26479 | 0.0 | 13.64
|
||||
Bond | 0.76875 | 0.76875 | 0.76875 | 0.0 | 39.60
|
||||
Kspace | 0.32111 | 0.32111 | 0.32111 | 0.0 | 16.54
|
||||
Neigh | 0.41333 | 0.41333 | 0.41333 | 0.0 | 21.29
|
||||
Comm | 0.025956 | 0.025956 | 0.025956 | 0.0 | 1.34
|
||||
Output | 0.0043445 | 0.0043445 | 0.0043445 | 0.0 | 0.22
|
||||
Modify | 0.12526 | 0.12526 | 0.12526 | 0.0 | 6.45
|
||||
Other | | 0.01786 | | | 0.92
|
||||
|
||||
Nlocal: 44 ave 44 max 44 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Nghost: 62 ave 62 max 62 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
Neighs: 812 ave 812 max 812 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||
|
||||
Total # of neighbors = 812
|
||||
Ave neighs/atom = 18.4545
|
||||
Ave special neighs/atom = 9.77273
|
||||
Neighbor list builds = 10000
|
||||
Dangerous builds = 0
|
||||
|
||||
# write_restart restart_longrun
|
||||
# write_data restart_longrun.data
|
||||
Total wall time: 0:00:01
|
|
@ -0,0 +1,365 @@
|
|||
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 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 5 mol3 mol4 rxn1_stp2_map
|
||||
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 275.26011 39.120329 0.0034851739 1 1
|
||||
150 438.68516 35.257539 0.0034851739 1 1
|
||||
200 394.48971 15.444537 0.0034851739 1 1
|
||||
250 356.00369 50.185792 0.0034851739 1 1
|
||||
300 301.25816 -26.891497 0.0034851739 1 1
|
||||
350 279.17264 12.694513 0.0034851739 1 1
|
||||
400 248.71641 10.684558 0.0034851739 1 1
|
||||
450 240.30602 12.963034 0.0034851739 1 1
|
||||
500 252.71279 0.91620356 0.0034851739 1 1
|
||||
550 300.56824 18.541436 0.0034851739 1 1
|
||||
600 306.46441 -1.9736081 0.0034851739 1 1
|
||||
650 336.4537 21.474831 0.0034851739 1 1
|
||||
700 323.46217 8.486376 0.0034851739 1 1
|
||||
750 271.87146 5.9615231 0.0034851739 1 1
|
||||
800 268.43041 36.676068 0.0034851739 1 1
|
||||
850 269.02683 7.6295416 0.0034851739 1 1
|
||||
900 282.03605 -1.4688833 0.0034851739 1 1
|
||||
950 243.69136 -22.771489 0.0034851739 1 1
|
||||
1000 285.01348 17.925748 0.0034851739 1 1
|
||||
1050 383.47985 0.70536985 0.0034851739 1 1
|
||||
1100 368.97167 -4.3046933 0.0034851739 1 1
|
||||
1150 373.64459 6.3491837 0.0034851739 1 1
|
||||
1200 332.90575 -36.501095 0.0034851739 1 1
|
||||
1250 314.04078 -13.382767 0.0034851739 1 1
|
||||
1300 305.84166 4.7713641 0.0034851739 1 1
|
||||
1350 286.22145 37.621803 0.0034851739 1 1
|
||||
1400 265.52855 23.621002 0.0034851739 1 1
|
||||
1450 281.807 -31.266828 0.0034851739 1 1
|
||||
1500 275.33855 33.495565 0.0034851739 1 1
|
||||
1550 273.04973 -22.913871 0.0034851739 1 1
|
||||
1600 308.18478 -17.98151 0.0034851739 1 1
|
||||
1650 333.27664 28.987529 0.0034851739 1 1
|
||||
1700 296.16091 -1.1440455 0.0034851739 1 1
|
||||
1750 365.75611 34.574845 0.0034851739 1 1
|
||||
1800 292.83503 -33.199654 0.0034851739 1 1
|
||||
1850 261.50282 42.608703 0.0034851739 1 1
|
||||
1900 315.14188 -31.058803 0.0034851739 1 1
|
||||
1950 335.12895 12.40597 0.0034851739 1 1
|
||||
2000 278.08586 -5.3178633 0.0034851739 1 1
|
||||
2050 283.23847 -3.3974302 0.0034851739 1 1
|
||||
2100 281.38904 0.70263324 0.0034851739 1 1
|
||||
2150 302.23197 23.372316 0.0034851739 1 1
|
||||
2200 337.49259 -4.8716803 0.0034851739 1 1
|
||||
2250 409.64134 -12.043721 0.0034851739 1 1
|
||||
2300 309.21764 -21.824645 0.0034851739 1 1
|
||||
2350 290.97879 18.690281 0.0034851739 1 1
|
||||
2400 341.816 -16.967741 0.0034851739 1 1
|
||||
2450 310.28034 27.375518 0.0034851739 1 1
|
||||
2500 248.89429 17.061192 0.0034851739 1 1
|
||||
2550 273.10927 0.1048166 0.0034851739 1 1
|
||||
2600 289.56101 -9.7239939 0.0034851739 1 1
|
||||
2650 298.99719 -33.140576 0.0034851739 1 1
|
||||
2700 326.05198 -24.509827 0.0034851739 1 1
|
||||
2750 319.20612 24.305526 0.0034851739 1 1
|
||||
2800 304.8715 -15.076941 0.0034851739 1 1
|
||||
2850 374.38923 2.0874883 0.0034851739 1 1
|
||||
2900 354.01554 -20.595102 0.0034851739 1 1
|
||||
2950 289.89296 48.39731 0.0034851739 1 1
|
||||
3000 312.10013 -8.5105996 0.0034851739 1 1
|
||||
3050 296.97004 -31.008446 0.0034851739 1 1
|
||||
3100 251.72228 35.710197 0.0034851739 1 1
|
||||
3150 315.35895 -43.331536 0.0034851739 1 1
|
||||
3200 334.67773 13.331058 0.0034851739 1 1
|
||||
3250 308.1669 37.236121 0.0034851739 1 1
|
||||
3300 329.47601 30.798598 0.0034851739 1 1
|
||||
3350 299.40055 2.0785585 0.0034851739 1 1
|
||||
3400 272.41031 32.744921 0.0034851739 1 1
|
||||
3450 279.34594 -26.181793 0.0034851739 1 1
|
||||
3500 288.89969 8.935052 0.0034851739 1 1
|
||||
3550 253.4967 9.724471 0.0034851739 1 1
|
||||
3600 294.83266 19.33305 0.0034851739 1 1
|
||||
3650 290.23794 -5.493907 0.0034851739 1 1
|
||||
3700 332.5222 -29.83423 0.0034851739 1 1
|
||||
3750 364.63024 20.706191 0.0034851739 1 1
|
||||
3800 295.3842 -6.9434003 0.0034851739 1 1
|
||||
3850 346.84424 37.796066 0.0034851739 1 1
|
||||
3900 265.67286 -0.3162804 0.0034851739 1 1
|
||||
3950 260.455 -2.2571901 0.0034851739 1 1
|
||||
4000 259.82636 -2.2286207 0.0034851739 1 1
|
||||
4050 257.79848 24.520293 0.0034851739 1 1
|
||||
4100 295.58626 -0.42318895 0.0034851739 1 1
|
||||
4150 265.81352 -49.092436 0.0034851739 1 1
|
||||
4200 302.10333 51.715258 0.0034851739 1 1
|
||||
4250 258.98448 -4.8516657 0.0034851739 1 1
|
||||
4300 327.83401 33.717283 0.0034851739 1 1
|
||||
4350 311.59571 23.580382 0.0034851739 1 1
|
||||
4400 300.64237 -31.866661 0.0034851739 1 1
|
||||
4450 294.15642 -0.11927262 0.0034851739 1 1
|
||||
4500 299.83605 -17.560872 0.0034851739 1 1
|
||||
4550 326.83265 32.818481 0.0034851739 1 1
|
||||
4600 260.39068 -8.0567907 0.0034851739 1 1
|
||||
4650 247.93553 19.462991 0.0034851739 1 1
|
||||
4700 214.22252 -34.118304 0.0034851739 1 1
|
||||
4750 203.15329 27.356204 0.0034851739 1 1
|
||||
4800 257.761 -10.407986 0.0034851739 1 1
|
||||
4850 307.1923 11.711008 0.0034851739 1 1
|
||||
4900 319.00942 4.7808342 0.0034851739 1 1
|
||||
4950 282.2399 24.996151 0.0034851739 1 1
|
||||
5000 311.53284 -3.0012669 0.0034851739 1 1
|
||||
5050 317.58213 32.56782 0.0034851739 1 1
|
||||
5100 267.51502 -47.695103 0.0034851739 1 1
|
||||
5150 260.19047 29.046394 0.0034851739 1 1
|
||||
5200 239.8355 -5.4890372 0.0034851739 1 1
|
||||
5250 234.88522 -18.172649 0.0034851739 1 1
|
||||
5300 236.43278 -39.062111 0.0034851739 1 1
|
||||
5350 280.90083 -2.6932604 0.0034851739 1 1
|
||||
5400 316.65269 23.071363 0.0034851739 1 1
|
||||
5450 345.6322 19.573305 0.0034851739 1 1
|
||||
5500 384.57334 41.50729 0.0034851739 1 1
|
||||
5550 317.14286 9.6992981 0.0034851739 1 1
|
||||
5600 279.93246 -12.076859 0.0034851739 1 1
|
||||
5650 268.06471 1.6196502 0.0034851739 1 1
|
||||
5700 271.85714 -40.378489 0.0034851739 1 1
|
||||
5750 313.88361 10.722652 0.0034851739 1 1
|
||||
5800 281.54499 31.914883 0.0034851739 1 1
|
||||
5850 293.34819 -8.3155887 0.0034851739 1 1
|
||||
5900 249.25215 -17.307228 0.0034851739 1 1
|
||||
5950 268.18645 -4.7223601 0.0034851739 1 1
|
||||
6000 302.99402 -52.615432 0.0034851739 1 1
|
||||
6050 314.57946 34.513152 0.0034851739 1 1
|
||||
6100 345.70342 30.33474 0.0034851739 1 1
|
||||
6150 316.59329 31.862566 0.0034851739 1 1
|
||||
6200 317.85341 -32.23511 0.0034851739 1 1
|
||||
6250 282.97674 0.29367434 0.0034851739 1 1
|
||||
6300 267.91823 19.265617 0.0034851739 1 1
|
||||
6350 226.2098 -13.093573 0.0034851739 1 1
|
||||
6400 307.73307 17.439662 0.0034851739 1 1
|
||||
6450 292.16311 -23.275251 0.0034851739 1 1
|
||||
6500 335.05972 26.936588 0.0034851739 1 1
|
||||
6550 380.7351 19.532324 0.0034851739 1 1
|
||||
6600 373.01041 30.879146 0.0034851739 1 1
|
||||
6650 335.37897 -2.1766711 0.0034851739 1 1
|
||||
6700 298.94275 -10.578361 0.0034851739 1 1
|
||||
6750 255.11449 -50.575851 0.0034851739 1 1
|
||||
6800 222.87598 3.0488985 0.0034851739 1 1
|
||||
6850 268.57268 -43.676136 0.0034851739 1 1
|
||||
6900 260.30442 4.7484508 0.0034851739 1 1
|
||||
6950 289.15739 31.622589 0.0034851739 1 1
|
||||
7000 289.11733 21.636361 0.0034851739 1 1
|
||||
7050 361.08905 22.442487 0.0034851739 1 1
|
||||
7100 368.95006 4.8393179 0.0034851739 1 1
|
||||
7150 331.47878 -36.202032 0.0034851739 1 1
|
||||
7200 304.72518 13.982604 0.0034851739 1 1
|
||||
7250 284.0996 0.53900966 0.0034851739 1 1
|
||||
7300 269.17156 -41.572215 0.0034851739 1 1
|
||||
7350 222.06563 25.56579 0.0034851739 1 1
|
||||
7400 304.09479 15.48238 0.0034851739 1 1
|
||||
7450 298.79046 -7.4369454 0.0034851739 1 1
|
||||
7500 328.78217 14.672853 0.0034851739 1 1
|
||||
7550 347.06589 -37.168123 0.0034851739 1 1
|
||||
7600 362.84157 20.514912 0.0034851739 1 1
|
||||
7650 347.15916 2.3477485 0.0034851739 1 1
|
||||
7700 262.09822 33.901831 0.0034851739 1 1
|
||||
7750 275.85921 -33.536059 0.0034851739 1 1
|
||||
7800 281.16159 -18.288414 0.0034851739 1 1
|
||||
7850 264.83553 -30.566284 0.0034851739 1 1
|
||||
7900 257.35224 -35.087067 0.0034851739 1 1
|
||||
7950 286.30756 26.586163 0.0034851739 1 1
|
||||
8000 248.38175 15.601961 0.0034851739 1 1
|
||||
8050 292.59171 28.784541 0.0034851739 1 1
|
||||
8100 312.52852 0.87995053 0.0034851739 1 1
|
||||
8150 285.62346 -15.337252 0.0034851739 1 1
|
||||
8200 292.24175 -38.192576 0.0034851739 1 1
|
||||
8250 321.61618 -19.030398 0.0034851739 1 1
|
||||
8300 319.42189 55.078305 0.0034851739 1 1
|
||||
8350 308.00357 32.050518 0.0034851739 1 1
|
||||
8400 345.68186 8.7983733 0.0034851739 1 1
|
||||
8450 358.00849 12.434592 0.0034851739 1 1
|
||||
8500 370.14359 4.2184721 0.0034851739 1 1
|
||||
8550 360.6511 12.580836 0.0034851739 1 1
|
||||
8600 290.04938 -4.8422589 0.0034851739 1 1
|
||||
8650 297.95745 -5.3185591 0.0034851739 1 1
|
||||
8700 286.54284 -31.490479 0.0034851739 1 1
|
||||
8750 308.08791 19.24417 0.0034851739 1 1
|
||||
8800 231.72534 12.262217 0.0034851739 1 1
|
||||
8850 329.2349 -8.9133933 0.0034851739 1 1
|
||||
8900 287.64023 10.525164 0.0034851739 1 1
|
||||
8950 341.08296 2.80127 0.0034851739 1 1
|
||||
9000 403.71266 17.88418 0.0034851739 1 1
|
||||
9050 348.95132 -4.5813611 0.0034851739 1 1
|
||||
9100 307.98322 16.707575 0.0034851739 1 1
|
||||
9150 276.75719 -35.563923 0.0034851739 1 1
|
||||
9200 230.15547 3.8091656 0.0034851739 1 1
|
||||
9250 264.64479 -20.97438 0.0034851739 1 1
|
||||
9300 285.70467 13.881735 0.0034851739 1 1
|
||||
9350 297.515 13.599319 0.0034851739 1 1
|
||||
9400 341.45203 -28.494544 0.0034851739 1 1
|
||||
9450 319.29703 -27.907344 0.0034851739 1 1
|
||||
9500 332.50473 4.9891138 0.0034851739 1 1
|
||||
9550 293.10499 -8.3244772 0.0034851739 1 1
|
||||
9600 255.31174 2.2568315 0.0034851739 1 1
|
||||
9650 250.01932 5.7005159 0.0034851739 1 1
|
||||
9700 278.37409 -8.5970424 0.0034851739 1 1
|
||||
9750 294.86737 17.686447 0.0034851739 1 1
|
||||
9800 277.07345 -2.0856886 0.0034851739 1 1
|
||||
9850 295.54707 2.8365471 0.0034851739 1 1
|
||||
9900 311.51074 29.885116 0.0034851739 1 1
|
||||
9950 296.01363 12.206068 0.0034851739 1 1
|
||||
10000 341.35187 -3.0045464 0.0034851739 1 1
|
||||
Loop time of 3.64332 on 4 procs for 10000 steps with 44 atoms
|
||||
|
||||
Performance: 237.146 ns/day, 0.101 hours/ns, 2744.751 timesteps/s
|
||||
94.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||
|
||||
MPI task timing breakdown:
|
||||
Section | min time | avg time | max time |%varavg| %total
|
||||
---------------------------------------------------------------
|
||||
Pair | 0.0029962 | 0.10426 | 0.34564 | 43.9 | 2.86
|
||||
Bond | 0.005929 | 0.29803 | 0.95305 | 71.2 | 8.18
|
||||
Kspace | 0.83969 | 1.5992 | 1.9344 | 35.6 | 43.89
|
||||
Neigh | 0.65468 | 0.66443 | 0.67431 | 0.9 | 18.24
|
||||
Comm | 0.1727 | 0.23754 | 0.2745 | 8.0 | 6.52
|
||||
Output | 0.0048738 | 0.010774 | 0.028434 | 9.8 | 0.30
|
||||
Modify | 0.62478 | 0.70376 | 0.779 | 6.5 | 19.32
|
||||
Other | | 0.02531 | | | 0.69
|
||||
|
||||
Nlocal: 11 ave 40 max 0 min
|
||||
Histogram: 2 1 0 0 0 0 0 0 0 1
|
||||
Nghost: 36 ave 47 max 7 min
|
||||
Histogram: 1 0 0 0 0 0 0 0 0 3
|
||||
Neighs: 203 ave 809 max 0 min
|
||||
Histogram: 3 0 0 0 0 0 0 0 0 1
|
||||
|
||||
Total # of neighbors = 812
|
||||
Ave neighs/atom = 18.4545
|
||||
Ave special neighs/atom = 9.77273
|
||||
Neighbor list builds = 10000
|
||||
Dangerous builds = 0
|
||||
|
||||
# write_restart restart_longrun
|
||||
# write_data restart_longrun.data
|
||||
Total wall time: 0:00:03
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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+
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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,40 +33,47 @@ 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");
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <mpi.h>
|
||||
#include <string.h>
|
||||
#include <cstring>
|
||||
#include "compute_temp_asphere.h"
|
||||
#include "math_extra.h"
|
||||
#include "atom.h"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <mpi.h>
|
||||
#include <string.h>
|
||||
#include <cstring>
|
||||
#include "compute_temp_body.h"
|
||||
#include "math_extra.h"
|
||||
#include "atom.h"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 "improper_class2.h"
|
||||
#include "atom.h"
|
||||
#include "neighbor.h"
|
||||
|
|
|
@ -20,7 +20,7 @@ ImproperStyle(class2,ImproperClass2)
|
|||
#ifndef LMP_IMPROPER_CLASS2_H
|
||||
#define LMP_IMPROPER_CLASS2_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <cstdio>
|
||||
#include "improper.h"
|
||||
|
||||
namespace LAMMPS_NS {
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include "pair_lj_class2.h"
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
See the README file in the top-level LAMMPS directory.
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include "pair_lj_class2_coul_cut.h"
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
|
|
|
@ -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_lj_class2_coul_long.h"
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
Contributing authors: Jeremy Lechman (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstring>
|
||||
#include "fix_wall_colloid.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
Contributing authors: Amit Kumar and Michael Bybee (UIUC)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_brownian.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
Dave Heine (Corning), polydispersity
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_brownian_poly.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
Contributing author: Pieter in 't Veld (SNL)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_colloid.h"
|
||||
#include "atom.h"
|
||||
#include "comm.h"
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
Amit Kumar and Michael Bybee (UIUC)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_lubricate.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <mpi.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_lubricateU.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -18,10 +18,10 @@
|
|||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <mpi.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_lubricateU_poly.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
Dave Heine (Corning), polydispersity
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include "pair_lubricate_poly.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
Contributing authors: Randy Schunk (Sandia)
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <cmath>
|
||||
#include <cstdlib>
|
||||
#include "pair_yukawa_colloid.h"
|
||||
#include "atom.h"
|
||||
#include "atom_vec.h"
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include "error.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <cstring>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "error.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <cstring>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
#define UNWRAPEXPAND 10.0
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include "error.h"
|
||||
#include "update.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <cstring>
|
||||
|
||||
using namespace LAMMPS_NS;
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue