forked from lijiext/lammps
Merge pull request #890 from jrgissing/bond_react_final_touches
bond/react final touches
This commit is contained in:
commit
a7c9418629
|
@ -11,9 +11,9 @@ fix bond/react command :h3
|
||||||
[Syntax:]
|
[Syntax:]
|
||||||
|
|
||||||
fix ID group-ID bond/react common_keyword values ...
|
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 Rmax 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 Rmax 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 Rmax template-ID(pre-reacted) template-ID(post-reacted) map_file individual_keyword values ...
|
||||||
... :pre
|
... :pre
|
||||||
|
|
||||||
ID, group-ID are documented in "fix"_fix.html command. Group-ID is ignored. :ulb,l
|
ID, group-ID are documented in "fix"_fix.html command. Group-ID is ignored. :ulb,l
|
||||||
|
@ -24,12 +24,13 @@ common_keyword = {stabilization}
|
||||||
{stabilization} values = group-ID xmax
|
{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')
|
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
|
{xmax} value = distance
|
||||||
distance = xmax value that is used by an internally created "nve/limit"_nve_limit.html integrator
|
distance = xmax value that is used by an internally created "nve/limit"_fix_nve_limit.html integrator
|
||||||
react = mandatory argument indicating new reaction specification
|
react = mandatory argument indicating new reaction specification
|
||||||
react-ID = user-assigned name for the reaction
|
react-ID = user-assigned name for the reaction
|
||||||
react-group-ID = only atoms in this group are available for the reaction
|
react-group-ID = only atoms in this group are available for the reaction
|
||||||
Nevery = attempt reaction every this many steps :l
|
Nevery = attempt reaction every this many steps :l
|
||||||
Rmin = bonding pair atoms separated by less than Rmin can initiate reaction (distance units) :l
|
Rmin = bonding pair atoms must be separated by more than Rmin to initiate reaction (distance units) :l
|
||||||
|
Rmax = bonding pair atoms must be separated by less than Rmax to initiate reaction (distance units) :l
|
||||||
template-ID(pre-reacted) = ID of a molecule template containing pre-reaction topology :l
|
template-ID(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
|
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
|
map_file = name of file specifying corresponding atomIDs in the pre- and post-reacted templates :l
|
||||||
|
@ -46,15 +47,15 @@ react = mandatory argument indicating new reaction specification
|
||||||
|
|
||||||
molecule mol1 pre_reacted_topology.txt
|
molecule mol1 pre_reacted_topology.txt
|
||||||
molecule mol2 post_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
|
fix 5 all bond/react stabilization no react myrxn1 all 1 0 3.25 mol1 mol2 map_file.txt
|
||||||
|
|
||||||
molecule mol1 pre_reacted_rxn1.txt
|
molecule mol1 pre_reacted_rxn1.txt
|
||||||
molecule mol2 post_reacted_rxn1.txt
|
molecule mol2 post_reacted_rxn1.txt
|
||||||
molecule mol3 pre_reacted_rxn2.txt
|
molecule mol3 pre_reacted_rxn2.txt
|
||||||
molecule mol4 post_reacted_rxn2.txt
|
molecule mol4 post_reacted_rxn2.txt
|
||||||
fix 5 all bond/react stabilization yes nvt_grp .03 &
|
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 myrxn1 all 1 0 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
|
react myrxn2 all 1 0 2.75 mol3 mol4 map_file_rxn2.txt prob 0.25 12345
|
||||||
fix 6 nvt_grp nvt temp 300 300 100 # system-wide thermostat must be defined after bond/react :pre
|
fix 6 nvt_grp nvt temp 300 300 100 # system-wide thermostat must be defined after bond/react :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
@ -101,9 +102,14 @@ The group-ID set using the {stabilization} keyword should be a
|
||||||
previously unused group-ID. The fix bond/react command creates a
|
previously unused group-ID. The fix bond/react command creates a
|
||||||
"dynamic group"_group.html of this name that excludes reacting atoms.
|
"dynamic group"_group.html of this name that excludes reacting atoms.
|
||||||
This dynamic group-ID should then be used by a subsequent system-wide
|
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
|
time integrator, as shown in the second example above. It is currently
|
||||||
to place the time integration command after the fix bond/react command
|
necessary to place the time integration command after the fix
|
||||||
due to the internal dynamic grouping performed by fix bond/react.
|
bond/react command due to the internal dynamic grouping performed by
|
||||||
|
fix bond/react.
|
||||||
|
|
||||||
|
NOTE: The internally created group currently applies to all atoms in
|
||||||
|
the system, i.e. you should generally not have a separate thermostat
|
||||||
|
which acts on the 'all' group.
|
||||||
|
|
||||||
The following comments pertain to each 'react' argument:
|
The following comments pertain to each 'react' argument:
|
||||||
|
|
||||||
|
@ -118,21 +124,20 @@ modified to match the post-reaction template.
|
||||||
|
|
||||||
A bonding atom pair will be identified if several conditions are met.
|
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
|
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
|
typei and typej must separated by a distance between Rmin and Rmax. It
|
||||||
types typei and typej are specified in the pre- and post-reaction
|
is possible that multiple bonding atom pairs are identified: if the
|
||||||
templates. The distance calculation uses the pair neighbor list,
|
bonding atoms in the pre-reacted template are not 1-2, 1-3, or 1-4
|
||||||
therefore bonded neighbor exclusions may prevent a reaction between
|
neighbors, the closest bonding atom partner is set as its bonding
|
||||||
1st, 2nd or 3rd bonded neighbor atoms. If multiple bonding atom pairs
|
partner; otherwise, the farthest potential partner is chosen. Then, if
|
||||||
are identified for an atom, the closest bonding atom partner is set as
|
both an atomi and atomj have each other as their nearest bonding
|
||||||
its "nearest" bonding partner. Then, if both an atomi and atomj have
|
partners, these two atoms are identified as the bonding atom pair of
|
||||||
each other as their nearest bonding partners, these two atoms are
|
the reaction site. Once this unique bonding atom pair is identified
|
||||||
identified as the bonding atom pair of the reaction site. Once this
|
for each reaction, there could two or more reactions that involve a
|
||||||
unique bonding atom pair is identified for each reaction, there could
|
given atom on the same timestep. If this is the case, only one such
|
||||||
two or more reactions that involve a given atom on the same timestep.
|
reaction is permitted to occur. This reaction is chosen randomly from
|
||||||
If this is the case, only one such reaction is permitted to occur.
|
all potential reactions. This capability allows e.g. for different
|
||||||
This reaction is chosen randomly from all potential reactions. This
|
reaction pathways to proceed from identical reaction sites with
|
||||||
capability allows e.g. for different reaction pathways to proceed from
|
user-specified probabilities.
|
||||||
identical reaction sites with user-specified probabilities.
|
|
||||||
|
|
||||||
The pre-reacted molecule template is specified by a molecule command.
|
The pre-reacted molecule template is specified by a molecule command.
|
||||||
This molecule template file contains a sample reaction site and its
|
This molecule template file contains a sample reaction site and its
|
||||||
|
@ -262,9 +267,11 @@ angles, dihedrals or impropers are supported.
|
||||||
A few capabilities to note: 1) You may specify as many 'react'
|
A few capabilities to note: 1) You may specify as many 'react'
|
||||||
arguments as desired. For example, you could break down a complicated
|
arguments as desired. For example, you could break down a complicated
|
||||||
reaction mechanism into several reaction steps, each defined by its
|
reaction mechanism into several reaction steps, each defined by its
|
||||||
own 'react' argument. 2) While typically a bond is formed between the
|
own 'react' argument. 2) While typically a bond is formed or removed
|
||||||
bonding atom pairs specified in the pre-reacted molecule template,
|
between the bonding atom pairs specified in the pre-reacted molecule
|
||||||
this is not required.
|
template, this is not required. 3) By reversing the order of the pre-
|
||||||
|
and post- reacted molecule templates in another 'react' argument, you
|
||||||
|
can allow for the possibility of one or more reverse reactions.
|
||||||
|
|
||||||
The optional keywords deal with the probability of a given reaction
|
The optional keywords deal with the probability of a given reaction
|
||||||
occurring as well as the stable equilibration of each reaction site as
|
occurring as well as the stable equilibration of each reaction site as
|
||||||
|
@ -300,14 +307,14 @@ reaction:
|
||||||
fix 1 bond_react_MASTER_group temp/rescale 1 300 300 10 1
|
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
|
NOTE: This command must be added after the fix bond/react command, and
|
||||||
will apply to all reaction steps.
|
will apply to all reactions.
|
||||||
|
|
||||||
Computationally, each timestep this fix operates, it loops over
|
Computationally, each timestep this fix operates, it loops over
|
||||||
neighbor lists and computes distances between pairs of atoms in the
|
neighbor lists (for bond-forming reactions) and computes distances
|
||||||
list. It also communicates between neighboring processors to
|
between pairs of atoms in the list. It also communicates between
|
||||||
coordinate which bonds are created. All of these operations increase
|
neighboring processors to coordinate which bonds are created and/or
|
||||||
the cost of a timestep. Thus you should be cautious about invoking
|
removed. All of these operations increase the cost of a timestep. Thus
|
||||||
this fix too frequently.
|
you should be cautious about invoking this fix too frequently.
|
||||||
|
|
||||||
You can dump out snapshots of the current bond topology via the dump
|
You can dump out snapshots of the current bond topology via the dump
|
||||||
local command.
|
local command.
|
||||||
|
|
|
@ -32,8 +32,8 @@ thermo 50
|
||||||
# dump 1 all xyz 100 test_vis.xyz
|
# dump 1 all xyz 100 test_vis.xyz
|
||||||
|
|
||||||
fix myrxns all bond/react stabilization yes statted_grp .03 &
|
fix myrxns all bond/react stabilization yes statted_grp .03 &
|
||||||
react rxn1 all 1 2.9 mol1 mol2 rxn1_stp1_map &
|
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
|
||||||
react rxn2 all 1 5 mol3 mol4 rxn1_stp2_map
|
react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
|
||||||
|
|
||||||
# stable at 800K
|
# stable at 800K
|
||||||
fix 1 statted_grp nvt temp 800 800 100
|
fix 1 statted_grp nvt temp 800 800 100
|
||||||
|
|
|
@ -84,7 +84,9 @@ thermo 50
|
||||||
|
|
||||||
# dump 1 all xyz 100 test_vis.xyz
|
# 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
|
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
|
||||||
|
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
|
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
dynamic group statted_grp defined
|
dynamic group statted_grp defined
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
|
@ -132,39 +134,42 @@ 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]
|
Step Temp Press Density f_myrxns[1] f_myrxns[2]
|
||||||
0 800 3666.3948 0.80366765 0 0
|
0 800 3666.3948 0.80366765 0 0
|
||||||
50 673.95238 -9670.9169 0.80366765 31 0
|
50 673.95238 -9670.9169 0.80366765 31 0
|
||||||
100 693.69241 -4696.4359 0.80366765 57 22
|
100 697.22819 -4624.0512 0.80366765 57 22
|
||||||
150 715.44689 -14740.892 0.80366765 77 50
|
150 723.60507 -17175.571 0.80366765 76 48
|
||||||
200 721.16898 -1411.95 0.80366765 84 66
|
200 736.71277 -12961.963 0.80366765 84 64
|
||||||
Loop time of 107.389 on 1 procs for 200 steps with 35200 atoms
|
Loop time of 102.825 on 1 procs for 200 steps with 35200 atoms
|
||||||
|
|
||||||
Performance: 0.161 ns/day, 149.151 hours/ns, 1.862 timesteps/s
|
Performance: 0.168 ns/day, 142.812 hours/ns, 1.945 timesteps/s
|
||||||
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
|
99.7% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 27.191 | 27.191 | 27.191 | 0.0 | 25.32
|
Pair | 27.193 | 27.193 | 27.193 | 0.0 | 26.45
|
||||||
Bond | 11.46 | 11.46 | 11.46 | 0.0 | 10.67
|
Bond | 11.324 | 11.324 | 11.324 | 0.0 | 11.01
|
||||||
Kspace | 4.2507 | 4.2507 | 4.2507 | 0.0 | 3.96
|
Kspace | 4.1878 | 4.1878 | 4.1878 | 0.0 | 4.07
|
||||||
Neigh | 55.544 | 55.544 | 55.544 | 0.0 | 51.72
|
Neigh | 54.724 | 54.724 | 54.724 | 0.0 | 53.22
|
||||||
Comm | 0.41715 | 0.41715 | 0.41715 | 0.0 | 0.39
|
Comm | 0.40662 | 0.40662 | 0.40662 | 0.0 | 0.40
|
||||||
Output | 0.0011044 | 0.0011044 | 0.0011044 | 0.0 | 0.00
|
Output | 0.0011101 | 0.0011101 | 0.0011101 | 0.0 | 0.00
|
||||||
Modify | 8.4756 | 8.4756 | 8.4756 | 0.0 | 7.89
|
Modify | 4.9422 | 4.9422 | 4.9422 | 0.0 | 4.81
|
||||||
Other | | 0.04897 | | | 0.05
|
Other | | 0.04545 | | | 0.04
|
||||||
|
|
||||||
Nlocal: 35200 ave 35200 max 35200 min
|
Nlocal: 35200 ave 35200 max 35200 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
Nghost: 38406 ave 38406 max 38406 min
|
Nghost: 38403 ave 38403 max 38403 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
Neighs: 6.92787e+06 ave 6.92787e+06 max 6.92787e+06 min
|
Neighs: 6.9281e+06 ave 6.9281e+06 max 6.9281e+06 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
Total # of neighbors = 6927872
|
Total # of neighbors = 6928101
|
||||||
Ave neighs/atom = 196.815
|
Ave neighs/atom = 196.821
|
||||||
Ave special neighs/atom = 9.83489
|
Ave special neighs/atom = 9.83727
|
||||||
Neighbor list builds = 200
|
Neighbor list builds = 200
|
||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
|
|
||||||
# write_restart restart_longrun
|
# write_restart restart_longrun
|
||||||
# write_data restart_longrun.data
|
# write_data restart_longrun.data
|
||||||
Total wall time: 0:01:48
|
|
||||||
|
Please see the log.cite file for references relevant to this simulation
|
||||||
|
|
||||||
|
Total wall time: 0:01:43
|
||||||
|
|
|
@ -84,7 +84,9 @@ thermo 50
|
||||||
|
|
||||||
# dump 1 all xyz 100 test_vis.xyz
|
# 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
|
fix myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
|
||||||
|
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
|
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
dynamic group statted_grp defined
|
dynamic group statted_grp defined
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
|
@ -132,39 +134,42 @@ 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]
|
Step Temp Press Density f_myrxns[1] f_myrxns[2]
|
||||||
0 800 3666.3948 0.80366765 0 0
|
0 800 3666.3948 0.80366765 0 0
|
||||||
50 673.95238 -9670.9169 0.80366765 31 0
|
50 673.95238 -9670.9169 0.80366765 31 0
|
||||||
100 693.69241 -4696.4359 0.80366765 57 22
|
100 697.22819 -4624.0512 0.80366765 57 22
|
||||||
150 715.43654 -14742.205 0.80366765 77 50
|
150 724.40407 -17166.729 0.80366765 76 49
|
||||||
200 721.1906 -1411.4303 0.80366765 84 66
|
200 737.28582 -12968.224 0.80366765 84 65
|
||||||
Loop time of 56.2311 on 4 procs for 200 steps with 35200 atoms
|
Loop time of 51.171 on 4 procs for 200 steps with 35200 atoms
|
||||||
|
|
||||||
Performance: 0.307 ns/day, 78.099 hours/ns, 3.557 timesteps/s
|
Performance: 0.338 ns/day, 71.071 hours/ns, 3.908 timesteps/s
|
||||||
99.1% CPU use with 4 MPI tasks x 1 OpenMP threads
|
98.4% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 13.86 | 14.034 | 14.406 | 5.8 | 24.96
|
Pair | 12.926 | 13.247 | 13.493 | 6.7 | 25.89
|
||||||
Bond | 5.5592 | 5.5952 | 5.6492 | 1.4 | 9.95
|
Bond | 5.2132 | 5.2733 | 5.3367 | 1.9 | 10.31
|
||||||
Kspace | 2.3969 | 2.7523 | 2.9203 | 12.5 | 4.89
|
Kspace | 2.3601 | 2.6534 | 3.0067 | 16.0 | 5.19
|
||||||
Neigh | 27.265 | 27.268 | 27.271 | 0.0 | 48.49
|
Neigh | 25.93 | 25.934 | 25.937 | 0.1 | 50.68
|
||||||
Comm | 0.75523 | 0.77355 | 0.79381 | 1.7 | 1.38
|
Comm | 0.73273 | 0.75464 | 0.78505 | 2.3 | 1.47
|
||||||
Output | 0.00051904 | 0.0007363 | 0.0013669 | 0.0 | 0.00
|
Output | 0.00045228 | 0.00067407 | 0.0013323 | 0.0 | 0.00
|
||||||
Modify | 5.7629 | 5.7634 | 5.7641 | 0.0 | 10.25
|
Modify | 3.2682 | 3.2686 | 3.2692 | 0.0 | 6.39
|
||||||
Other | | 0.04441 | | | 0.08
|
Other | | 0.03995 | | | 0.08
|
||||||
|
|
||||||
Nlocal: 8800 ave 8912 max 8666 min
|
Nlocal: 8800 ave 8913 max 8652 min
|
||||||
Histogram: 1 0 0 1 0 0 0 0 1 1
|
Histogram: 1 0 0 0 1 0 0 0 1 1
|
||||||
Nghost: 18358.8 ave 18432 max 18189 min
|
Nghost: 18366 ave 18461 max 18190 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 1 2
|
Histogram: 1 0 0 0 0 0 0 1 1 1
|
||||||
Neighs: 1.73197e+06 ave 1.77209e+06 max 1.68475e+06 min
|
Neighs: 1.73203e+06 ave 1.77261e+06 max 1.68165e+06 min
|
||||||
Histogram: 1 0 1 0 0 0 0 0 0 2
|
Histogram: 1 0 1 0 0 0 0 0 0 2
|
||||||
|
|
||||||
Total # of neighbors = 6927873
|
Total # of neighbors = 6928132
|
||||||
Ave neighs/atom = 196.815
|
Ave neighs/atom = 196.822
|
||||||
Ave special neighs/atom = 9.83489
|
Ave special neighs/atom = 9.83608
|
||||||
Neighbor list builds = 200
|
Neighbor list builds = 200
|
||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
|
|
||||||
# write_restart restart_longrun
|
# write_restart restart_longrun
|
||||||
# write_data restart_longrun.data
|
# write_data restart_longrun.data
|
||||||
Total wall time: 0:00:57
|
|
||||||
|
Please see the log.cite file for references relevant to this simulation
|
||||||
|
|
||||||
|
Total wall time: 0:00:52
|
||||||
|
|
|
@ -33,8 +33,8 @@ thermo 50
|
||||||
# dump 1 all xyz 1 test_vis.xyz
|
# dump 1 all xyz 1 test_vis.xyz
|
||||||
|
|
||||||
fix myrxns all bond/react stabilization yes statted_grp .03 &
|
fix myrxns all bond/react stabilization yes statted_grp .03 &
|
||||||
react rxn1 all 1 2.9 mol1 mol2 rxn1_stp1_map &
|
react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map &
|
||||||
react rxn2 all 1 5 mol3 mol4 rxn1_stp2_map
|
react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
|
||||||
|
|
||||||
fix 1 statted_grp nvt temp 300 300 100
|
fix 1 statted_grp nvt temp 300 300 100
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,9 @@ thermo 50
|
||||||
|
|
||||||
# dump 1 all xyz 1 test_vis.xyz
|
# 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 myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
|
||||||
|
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
|
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
dynamic group statted_grp defined
|
dynamic group statted_grp defined
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
|
@ -131,235 +133,238 @@ 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]
|
Step Temp Press Density f_myrxns[1] f_myrxns[2]
|
||||||
0 300 346.78165 0.0034851739 0 0
|
0 300 346.78165 0.0034851739 0 0
|
||||||
50 296.70408 -51.30066 0.0034851739 1 0
|
50 296.70408 -51.30066 0.0034851739 1 0
|
||||||
100 275.26011 39.120329 0.0034851739 1 1
|
100 274.25324 46.715512 0.0034851739 1 1
|
||||||
150 438.68516 35.257539 0.0034851739 1 1
|
150 471.61579 31.321598 0.0034851739 1 1
|
||||||
200 394.48971 15.444537 0.0034851739 1 1
|
200 362.87766 42.061118 0.0034851739 1 1
|
||||||
250 356.00369 50.185792 0.0034851739 1 1
|
250 367.58058 65.303109 0.0034851739 1 1
|
||||||
300 301.25816 -26.891497 0.0034851739 1 1
|
300 372.38236 -52.421725 0.0034851739 1 1
|
||||||
350 279.17264 12.694513 0.0034851739 1 1
|
350 297.69957 17.869945 0.0034851739 1 1
|
||||||
400 248.71641 10.684558 0.0034851739 1 1
|
400 258.30433 49.19156 0.0034851739 1 1
|
||||||
450 240.30602 12.963034 0.0034851739 1 1
|
450 253.34384 -5.8162637 0.0034851739 1 1
|
||||||
500 252.71279 0.91620356 0.0034851739 1 1
|
500 269.96465 -43.337517 0.0034851739 1 1
|
||||||
550 300.56824 18.541436 0.0034851739 1 1
|
550 303.23718 10.180246 0.0034851739 1 1
|
||||||
600 306.46441 -1.9736081 0.0034851739 1 1
|
600 329.59579 -48.97461 0.0034851739 1 1
|
||||||
650 336.4537 21.474831 0.0034851739 1 1
|
650 350.42568 50.983183 0.0034851739 1 1
|
||||||
700 323.46217 8.486376 0.0034851739 1 1
|
700 342.03272 35.43465 0.0034851739 1 1
|
||||||
750 271.87146 5.9615231 0.0034851739 1 1
|
750 269.23405 -41.873166 0.0034851739 1 1
|
||||||
800 268.43041 36.676068 0.0034851739 1 1
|
800 245.15025 13.953092 0.0034851739 1 1
|
||||||
850 269.02683 7.6295416 0.0034851739 1 1
|
850 257.85421 -3.1492141 0.0034851739 1 1
|
||||||
900 282.03605 -1.4688833 0.0034851739 1 1
|
900 316.15644 7.7798301 0.0034851739 1 1
|
||||||
950 243.69136 -22.771489 0.0034851739 1 1
|
950 299.9124 -15.77014 0.0034851739 1 1
|
||||||
1000 285.01348 17.925748 0.0034851739 1 1
|
1000 302.89968 -17.049693 0.0034851739 1 1
|
||||||
1050 383.47985 0.70536985 0.0034851739 1 1
|
1050 308.91651 71.84632 0.0034851739 1 1
|
||||||
1100 368.97167 -4.3046933 0.0034851739 1 1
|
1100 348.43932 -18.742012 0.0034851739 1 1
|
||||||
1150 373.64459 6.3491837 0.0034851739 1 1
|
1150 309.03036 50.536311 0.0034851739 1 1
|
||||||
1200 332.90575 -36.501095 0.0034851739 1 1
|
1200 318.9761 -16.905746 0.0034851739 1 1
|
||||||
1250 314.04078 -13.382767 0.0034851739 1 1
|
1250 320.42806 -0.057975092 0.0034851739 1 1
|
||||||
1300 305.84166 4.7713641 0.0034851739 1 1
|
1300 289.7824 18.200772 0.0034851739 1 1
|
||||||
1350 286.22145 37.621803 0.0034851739 1 1
|
1350 284.79836 -9.1978427 0.0034851739 1 1
|
||||||
1400 265.52855 23.621002 0.0034851739 1 1
|
1400 325.43292 42.082833 0.0034851739 1 1
|
||||||
1450 281.807 -31.266828 0.0034851739 1 1
|
1450 261.5041 -37.823325 0.0034851739 1 1
|
||||||
1500 275.33855 33.495565 0.0034851739 1 1
|
1500 298.88723 -5.1647385 0.0034851739 1 1
|
||||||
1550 273.04973 -22.913871 0.0034851739 1 1
|
1550 291.37403 -7.7764201 0.0034851739 1 1
|
||||||
1600 308.18478 -17.98151 0.0034851739 1 1
|
1600 293.83475 22.2458 0.0034851739 1 1
|
||||||
1650 333.27664 28.987529 0.0034851739 1 1
|
1650 293.80611 24.202512 0.0034851739 1 1
|
||||||
1700 296.16091 -1.1440455 0.0034851739 1 1
|
1700 291.70205 -23.397884 0.0034851739 1 1
|
||||||
1750 365.75611 34.574845 0.0034851739 1 1
|
1750 292.32437 -10.671214 0.0034851739 1 1
|
||||||
1800 292.83503 -33.199654 0.0034851739 1 1
|
1800 302.01367 -11.671025 0.0034851739 1 1
|
||||||
1850 261.50282 42.608703 0.0034851739 1 1
|
1850 322.1651 24.438331 0.0034851739 1 1
|
||||||
1900 315.14188 -31.058803 0.0034851739 1 1
|
1900 310.45076 45.343592 0.0034851739 1 1
|
||||||
1950 335.12895 12.40597 0.0034851739 1 1
|
1950 325.91745 -19.847809 0.0034851739 1 1
|
||||||
2000 278.08586 -5.3178633 0.0034851739 1 1
|
2000 276.89662 63.387098 0.0034851739 1 1
|
||||||
2050 283.23847 -3.3974302 0.0034851739 1 1
|
2050 311.33783 -24.683247 0.0034851739 1 1
|
||||||
2100 281.38904 0.70263324 0.0034851739 1 1
|
2100 346.2336 -27.526891 0.0034851739 1 1
|
||||||
2150 302.23197 23.372316 0.0034851739 1 1
|
2150 345.30604 -15.722411 0.0034851739 1 1
|
||||||
2200 337.49259 -4.8716803 0.0034851739 1 1
|
2200 346.7718 -17.857633 0.0034851739 1 1
|
||||||
2250 409.64134 -12.043721 0.0034851739 1 1
|
2250 304.28676 -1.9965581 0.0034851739 1 1
|
||||||
2300 309.21764 -21.824645 0.0034851739 1 1
|
2300 322.56372 -31.786868 0.0034851739 1 1
|
||||||
2350 290.97879 18.690281 0.0034851739 1 1
|
2350 282.64326 6.1982735 0.0034851739 1 1
|
||||||
2400 341.816 -16.967741 0.0034851739 1 1
|
2400 286.65759 -63.207781 0.0034851739 1 1
|
||||||
2450 310.28034 27.375518 0.0034851739 1 1
|
2450 257.05528 32.931491 0.0034851739 1 1
|
||||||
2500 248.89429 17.061192 0.0034851739 1 1
|
2500 283.64386 26.912373 0.0034851739 1 1
|
||||||
2550 273.10927 0.10481657 0.0034851739 1 1
|
2550 299.54005 27.277039 0.0034851739 1 1
|
||||||
2600 289.56101 -9.7239939 0.0034851739 1 1
|
2600 283.92503 14.660972 0.0034851739 1 1
|
||||||
2650 298.99719 -33.140576 0.0034851739 1 1
|
2650 321.93453 -18.977358 0.0034851739 1 1
|
||||||
2700 326.05198 -24.509827 0.0034851739 1 1
|
2700 376.7189 31.826935 0.0034851739 1 1
|
||||||
2750 319.20612 24.305526 0.0034851739 1 1
|
2750 372.20075 -32.821697 0.0034851739 1 1
|
||||||
2800 304.8715 -15.076941 0.0034851739 1 1
|
2800 361.40604 83.035183 0.0034851739 1 1
|
||||||
2850 374.38923 2.0874883 0.0034851739 1 1
|
2850 332.27269 -23.927452 0.0034851739 1 1
|
||||||
2900 354.01554 -20.595102 0.0034851739 1 1
|
2900 331.14638 -0.12328446 0.0034851739 1 1
|
||||||
2950 289.89296 48.39731 0.0034851739 1 1
|
2950 303.67489 -24.078857 0.0034851739 1 1
|
||||||
3000 312.10013 -8.5105997 0.0034851739 1 1
|
3000 311.40462 21.563537 0.0034851739 1 1
|
||||||
3050 296.97004 -31.008446 0.0034851739 1 1
|
3050 284.72849 -23.849667 0.0034851739 1 1
|
||||||
3100 251.72228 35.710197 0.0034851739 1 1
|
3100 303.48477 39.347763 0.0034851739 1 1
|
||||||
3150 315.35895 -43.331536 0.0034851739 1 1
|
3150 264.2739 -0.22299879 0.0034851739 1 1
|
||||||
3200 334.67773 13.331058 0.0034851739 1 1
|
3200 300.03351 31.545323 0.0034851739 1 1
|
||||||
3250 308.1669 37.236121 0.0034851739 1 1
|
3250 288.56663 5.7225228 0.0034851739 1 1
|
||||||
3300 329.47601 30.798598 0.0034851739 1 1
|
3300 200.13238 -31.239655 0.0034851739 1 1
|
||||||
3350 299.40055 2.0785585 0.0034851739 1 1
|
3350 231.32512 16.631728 0.0034851739 1 1
|
||||||
3400 272.41031 32.744922 0.0034851739 1 1
|
3400 260.57402 2.1717992 0.0034851739 1 1
|
||||||
3450 279.34594 -26.181793 0.0034851739 1 1
|
3450 301.47128 -42.210623 0.0034851739 1 1
|
||||||
3500 288.89969 8.935052 0.0034851739 1 1
|
3500 321.77414 40.074365 0.0034851739 1 1
|
||||||
3550 253.4967 9.7244709 0.0034851739 1 1
|
3550 353.21858 28.387783 0.0034851739 1 1
|
||||||
3600 294.83266 19.33305 0.0034851739 1 1
|
3600 331.45989 -57.800858 0.0034851739 1 1
|
||||||
3650 290.23794 -5.4939069 0.0034851739 1 1
|
3650 303.88123 44.86596 0.0034851739 1 1
|
||||||
3700 332.5222 -29.834229 0.0034851739 1 1
|
3700 329.73833 -0.80615652 0.0034851739 1 1
|
||||||
3750 364.63024 20.706191 0.0034851739 1 1
|
3750 297.55588 -0.49626039 0.0034851739 1 1
|
||||||
3800 295.3842 -6.9434004 0.0034851739 1 1
|
3800 286.38794 -10.010003 0.0034851739 1 1
|
||||||
3850 346.84424 37.796066 0.0034851739 1 1
|
3850 290.17417 -43.51187 0.0034851739 1 1
|
||||||
3900 265.67286 -0.31628068 0.0034851739 1 1
|
3900 247.88933 51.23735 0.0034851739 1 1
|
||||||
3950 260.455 -2.2571902 0.0034851739 1 1
|
3950 332.31324 -18.194985 0.0034851739 1 1
|
||||||
4000 259.82636 -2.2286205 0.0034851739 1 1
|
4000 325.56802 18.402825 0.0034851739 1 1
|
||||||
4050 257.79848 24.520293 0.0034851739 1 1
|
4050 338.37593 36.430977 0.0034851739 1 1
|
||||||
4100 295.58626 -0.42318936 0.0034851739 1 1
|
4100 370.95478 39.290285 0.0034851739 1 1
|
||||||
4150 265.81353 -49.092436 0.0034851739 1 1
|
4150 348.47859 -7.0779678 0.0034851739 1 1
|
||||||
4200 302.10333 51.715259 0.0034851739 1 1
|
4200 241.30632 -33.371788 0.0034851739 1 1
|
||||||
4250 258.98448 -4.8516655 0.0034851739 1 1
|
4250 242.17258 -9.986197 0.0034851739 1 1
|
||||||
4300 327.83401 33.717282 0.0034851739 1 1
|
4300 300.85311 -7.9244294 0.0034851739 1 1
|
||||||
4350 311.59571 23.580382 0.0034851739 1 1
|
4350 273.15684 -21.257283 0.0034851739 1 1
|
||||||
4400 300.64237 -31.866661 0.0034851739 1 1
|
4400 305.77463 -5.8720722 0.0034851739 1 1
|
||||||
4450 294.15643 -0.11927421 0.0034851739 1 1
|
4450 314.97697 45.0373 0.0034851739 1 1
|
||||||
4500 299.83605 -17.560873 0.0034851739 1 1
|
4500 310.77723 16.958773 0.0034851739 1 1
|
||||||
4550 326.83265 32.818482 0.0034851739 1 1
|
4550 302.1742 12.156862 0.0034851739 1 1
|
||||||
4600 260.39068 -8.0567902 0.0034851739 1 1
|
4600 319.74799 6.84889 0.0034851739 1 1
|
||||||
4650 247.93553 19.462991 0.0034851739 1 1
|
4650 270.86805 -13.767905 0.0034851739 1 1
|
||||||
4700 214.22252 -34.118303 0.0034851739 1 1
|
4700 249.81731 -31.197487 0.0034851739 1 1
|
||||||
4750 203.15329 27.356205 0.0034851739 1 1
|
4750 285.86481 -9.8916364 0.0034851739 1 1
|
||||||
4800 257.761 -10.407989 0.0034851739 1 1
|
4800 233.98321 7.1338571 0.0034851739 1 1
|
||||||
4850 307.1923 11.71101 0.0034851739 1 1
|
4850 302.60551 49.262889 0.0034851739 1 1
|
||||||
4900 319.00942 4.7808306 0.0034851739 1 1
|
4900 316.55056 34.663247 0.0034851739 1 1
|
||||||
4950 282.23989 24.996151 0.0034851739 1 1
|
4950 357.32741 11.583006 0.0034851739 1 1
|
||||||
5000 311.53284 -3.0012665 0.0034851739 1 1
|
5000 400.21045 -8.1781061 0.0034851739 1 1
|
||||||
5050 317.58212 32.567832 0.0034851739 1 1
|
5050 390.01845 -20.490275 0.0034851739 1 1
|
||||||
5100 267.51501 -47.695087 0.0034851739 1 1
|
5100 378.84247 -41.328757 0.0034851739 1 1
|
||||||
5150 260.19048 29.046388 0.0034851739 1 1
|
5150 324.02038 -15.023862 0.0034851739 1 1
|
||||||
5200 239.83552 -5.4890385 0.0034851739 1 1
|
5200 262.08429 10.937354 0.0034851739 1 1
|
||||||
5250 234.8852 -18.172633 0.0034851739 1 1
|
5250 255.75508 16.381455 0.0034851739 1 1
|
||||||
5300 236.43277 -39.06212 0.0034851739 1 1
|
5300 277.84989 40.68232 0.0034851739 1 1
|
||||||
5350 280.90079 -2.6932923 0.0034851739 1 1
|
5350 302.92832 9.1989494 0.0034851739 1 1
|
||||||
5400 316.65266 23.071362 0.0034851739 1 1
|
5400 283.7196 -1.6584671 0.0034851739 1 1
|
||||||
5450 345.63226 19.573323 0.0034851739 1 1
|
5450 300.71266 -4.7030295 0.0034851739 1 1
|
||||||
5500 384.57334 41.507217 0.0034851739 1 1
|
5500 343.5499 -0.30550044 0.0034851739 1 1
|
||||||
5550 317.14278 9.6992897 0.0034851739 1 1
|
5550 369.51271 21.691649 0.0034851739 1 1
|
||||||
5600 279.93243 -12.076895 0.0034851739 1 1
|
5600 372.69789 -38.67994 0.0034851739 1 1
|
||||||
5650 268.06471 1.6196401 0.0034851739 1 1
|
5650 327.41266 11.352137 0.0034851739 1 1
|
||||||
5700 271.85714 -40.378455 0.0034851739 1 1
|
5700 278.98614 -23.827304 0.0034851739 1 1
|
||||||
5750 313.88363 10.722639 0.0034851739 1 1
|
5750 308.30054 -20.756187 0.0034851739 1 1
|
||||||
5800 281.54495 31.914889 0.0034851739 1 1
|
5800 341.45594 28.058441 0.0034851739 1 1
|
||||||
5850 293.34821 -8.3154922 0.0034851739 1 1
|
5850 322.97844 -10.731921 0.0034851739 1 1
|
||||||
5900 249.25216 -17.307353 0.0034851739 1 1
|
5900 304.53591 32.825279 0.0034851739 1 1
|
||||||
5950 268.18639 -4.7222512 0.0034851739 1 1
|
5950 287.1752 -36.780091 0.0034851739 1 1
|
||||||
6000 302.99398 -52.615528 0.0034851739 1 1
|
6000 296.52681 18.781896 0.0034851739 1 1
|
||||||
6050 314.57931 34.51318 0.0034851739 1 1
|
6050 314.25442 15.992829 0.0034851739 1 1
|
||||||
6100 345.70348 30.334721 0.0034851739 1 1
|
6100 313.86576 3.4342714 0.0034851739 1 1
|
||||||
6150 316.59329 31.862519 0.0034851739 1 1
|
6150 325.64196 32.392039 0.0034851739 1 1
|
||||||
6200 317.85346 -32.235221 0.0034851739 1 1
|
6200 367.42931 -27.160706 0.0034851739 1 1
|
||||||
6250 282.97676 0.2936745 0.0034851739 1 1
|
6250 369.30798 39.020934 0.0034851739 1 1
|
||||||
6300 267.91814 19.265567 0.0034851739 1 1
|
6300 328.92285 -23.175157 0.0034851739 1 1
|
||||||
6350 226.20967 -13.093547 0.0034851739 1 1
|
6350 305.63077 4.9024453 0.0034851739 1 1
|
||||||
6400 307.73316 17.439598 0.0034851739 1 1
|
6400 241.70341 -13.676629 0.0034851739 1 1
|
||||||
6450 292.16253 -23.275163 0.0034851739 1 1
|
6450 265.66717 2.40612 0.0034851739 1 1
|
||||||
6500 335.05939 26.936463 0.0034851739 1 1
|
6500 249.36037 13.420255 0.0034851739 1 1
|
||||||
6550 380.73546 19.532416 0.0034851739 1 1
|
6550 294.53814 10.853462 0.0034851739 1 1
|
||||||
6600 373.0103 30.879532 0.0034851739 1 1
|
6600 308.2025 18.995308 0.0034851739 1 1
|
||||||
6650 335.37975 -2.1762828 0.0034851739 1 1
|
6650 305.43797 -49.56785 0.0034851739 1 1
|
||||||
6700 298.94272 -10.578587 0.0034851739 1 1
|
6700 320.27344 11.336281 0.0034851739 1 1
|
||||||
6750 255.11531 -50.576215 0.0034851739 1 1
|
6750 321.78666 -23.463899 0.0034851739 1 1
|
||||||
6800 222.87459 3.0499548 0.0034851739 1 1
|
6800 303.40388 7.6224553 0.0034851739 1 1
|
||||||
6850 268.57213 -43.675945 0.0034851739 1 1
|
6850 297.18966 51.52256 0.0034851739 1 1
|
||||||
6900 260.3024 4.7483005 0.0034851739 1 1
|
6900 284.18909 -8.4947203 0.0034851739 1 1
|
||||||
6950 289.15855 31.62106 0.0034851739 1 1
|
6950 331.03663 13.233655 0.0034851739 1 1
|
||||||
7000 289.11874 21.635533 0.0034851739 1 1
|
7000 311.37928 -43.265479 0.0034851739 1 1
|
||||||
7050 361.08776 22.445996 0.0034851739 1 1
|
7050 286.81661 -14.174683 0.0034851739 1 1
|
||||||
7100 368.95003 4.8383881 0.0034851739 1 1
|
7100 302.84119 12.048954 0.0034851739 1 1
|
||||||
7150 331.47448 -36.200495 0.0034851739 1 1
|
7150 297.19357 -43.111968 0.0034851739 1 1
|
||||||
7200 304.7251 13.982693 0.0034851739 1 1
|
7200 332.47359 26.048249 0.0034851739 1 1
|
||||||
7250 284.09747 0.53758275 0.0034851739 1 1
|
7250 262.70677 41.176242 0.0034851739 1 1
|
||||||
7300 269.17023 -41.571482 0.0034851739 1 1
|
7300 250.61405 -23.413982 0.0034851739 1 1
|
||||||
7350 222.07071 25.564662 0.0034851739 1 1
|
7350 296.91117 35.88133 0.0034851739 1 1
|
||||||
7400 304.09598 15.482955 0.0034851739 1 1
|
7400 245.09229 -13.447194 0.0034851739 1 1
|
||||||
7450 298.78752 -7.4335841 0.0034851739 1 1
|
7450 272.28131 -23.322585 0.0034851739 1 1
|
||||||
7500 328.78697 14.666097 0.0034851739 1 1
|
7500 209.04985 13.871239 0.0034851739 1 1
|
||||||
7550 347.07038 -37.165295 0.0034851739 1 1
|
7550 255.00955 4.9325621 0.0034851739 1 1
|
||||||
7600 362.85673 20.52268 0.0034851739 1 1
|
7600 312.30937 -37.368274 0.0034851739 1 1
|
||||||
7650 347.15141 2.3383775 0.0034851739 1 1
|
7650 305.65903 55.245496 0.0034851739 1 1
|
||||||
7700 262.10132 33.898374 0.0034851739 1 1
|
7700 325.09504 -18.347711 0.0034851739 1 1
|
||||||
7750 275.84724 -33.534813 0.0034851739 1 1
|
7750 363.28282 -22.479686 0.0034851739 1 1
|
||||||
7800 281.14075 -18.284372 0.0034851739 1 1
|
7800 350.17429 26.849547 0.0034851739 1 1
|
||||||
7850 264.83337 -30.580199 0.0034851739 1 1
|
7850 271.70853 -17.764575 0.0034851739 1 1
|
||||||
7900 257.35275 -35.080567 0.0034851739 1 1
|
7900 272.66484 -11.701967 0.0034851739 1 1
|
||||||
7950 286.32446 26.594779 0.0034851739 1 1
|
7950 298.60202 -12.765675 0.0034851739 1 1
|
||||||
8000 248.36889 15.605894 0.0034851739 1 1
|
8000 274.58852 49.641532 0.0034851739 1 1
|
||||||
8050 292.55015 28.811985 0.0034851739 1 1
|
8050 304.72347 -0.55414183 0.0034851739 1 1
|
||||||
8100 312.47888 0.83990451 0.0034851739 1 1
|
8100 328.30757 -39.861301 0.0034851739 1 1
|
||||||
8150 285.58532 -15.258185 0.0034851739 1 1
|
8150 406.67601 2.8999409 0.0034851739 1 1
|
||||||
8200 292.22819 -38.233195 0.0034851739 1 1
|
8200 332.20083 -51.217399 0.0034851739 1 1
|
||||||
8250 321.6208 -19.052143 0.0034851739 1 1
|
8250 354.50609 53.128769 0.0034851739 1 1
|
||||||
8300 319.41332 54.97437 0.0034851739 1 1
|
8300 337.2758 20.68562 0.0034851739 1 1
|
||||||
8350 307.95647 32.009591 0.0034851739 1 1
|
8350 361.89708 -54.185869 0.0034851739 1 1
|
||||||
8400 345.58105 8.8535539 0.0034851739 1 1
|
8400 305.63496 24.058529 0.0034851739 1 1
|
||||||
8450 357.75168 12.416896 0.0034851739 1 1
|
8450 303.27461 4.304683 0.0034851739 1 1
|
||||||
8500 370.049 4.3288665 0.0034851739 1 1
|
8500 253.53694 -10.909021 0.0034851739 1 1
|
||||||
8550 360.62882 12.618614 0.0034851739 1 1
|
8550 277.03017 23.241479 0.0034851739 1 1
|
||||||
8600 290.10834 -4.8081765 0.0034851739 1 1
|
8600 291.41844 -22.240665 0.0034851739 1 1
|
||||||
8650 297.7575 -5.1976816 0.0034851739 1 1
|
8650 307.85368 31.919587 0.0034851739 1 1
|
||||||
8700 286.57505 -31.469549 0.0034851739 1 1
|
8700 309.19724 0.53529642 0.0034851739 1 1
|
||||||
8750 307.77059 19.338001 0.0034851739 1 1
|
8750 354.6583 11.565515 0.0034851739 1 1
|
||||||
8800 231.68316 12.159459 0.0034851739 1 1
|
8800 329.78598 19.5996 0.0034851739 1 1
|
||||||
8850 329.13623 -8.7262592 0.0034851739 1 1
|
8850 240.79198 21.803515 0.0034851739 1 1
|
||||||
8900 286.40715 10.326025 0.0034851739 1 1
|
8900 318.40749 -59.816923 0.0034851739 1 1
|
||||||
8950 339.43101 2.7809618 0.0034851739 1 1
|
8950 308.47211 -57.808635 0.0034851739 1 1
|
||||||
9000 402.53799 19.481869 0.0034851739 1 1
|
9000 271.51207 50.943482 0.0034851739 1 1
|
||||||
9050 349.56449 -4.8450179 0.0034851739 1 1
|
9050 249.4005 6.7529187 0.0034851739 1 1
|
||||||
9100 307.64739 16.889327 0.0034851739 1 1
|
9100 221.8772 47.196092 0.0034851739 1 1
|
||||||
9150 276.54451 -34.808372 0.0034851739 1 1
|
9150 297.9351 4.0058184 0.0034851739 1 1
|
||||||
9200 233.18668 4.9409791 0.0034851739 1 1
|
9200 274.85051 -24.774393 0.0034851739 1 1
|
||||||
9250 266.48384 -19.850366 0.0034851739 1 1
|
9250 336.04757 5.3799028 0.0034851739 1 1
|
||||||
9300 289.14808 13.520201 0.0034851739 1 1
|
9300 380.44956 -22.389381 0.0034851739 1 1
|
||||||
9350 295.08335 17.156468 0.0034851739 1 1
|
9350 336.9824 23.050616 0.0034851739 1 1
|
||||||
9400 338.08757 -31.112278 0.0034851739 1 1
|
9400 304.46425 32.530218 0.0034851739 1 1
|
||||||
9450 336.64739 -25.697747 0.0034851739 1 1
|
9450 317.55591 -22.265425 0.0034851739 1 1
|
||||||
9500 338.10622 1.9241797 0.0034851739 1 1
|
9500 323.70901 -7.0159787 0.0034851739 1 1
|
||||||
9550 294.82158 -12.043972 0.0034851739 1 1
|
9550 316.07308 28.062131 0.0034851739 1 1
|
||||||
9600 268.9836 12.235553 0.0034851739 1 1
|
9600 262.74608 -0.78519192 0.0034851739 1 1
|
||||||
9650 279.6269 28.710734 0.0034851739 1 1
|
9650 271.55045 -21.430123 0.0034851739 1 1
|
||||||
9700 279.88562 -10.865604 0.0034851739 1 1
|
9700 239.6022 14.483637 0.0034851739 1 1
|
||||||
9750 287.56565 12.975819 0.0034851739 1 1
|
9750 338.1437 -0.72765302 0.0034851739 1 1
|
||||||
9800 278.39949 4.2088595 0.0034851739 1 1
|
9800 334.50189 19.495144 0.0034851739 1 1
|
||||||
9850 307.61259 9.341169 0.0034851739 1 1
|
9850 354.87554 19.272719 0.0034851739 1 1
|
||||||
9900 317.53581 2.3948493 0.0034851739 1 1
|
9900 334.02141 -22.393457 0.0034851739 1 1
|
||||||
9950 332.52938 -14.809185 0.0034851739 1 1
|
9950 293.63651 19.178873 0.0034851739 1 1
|
||||||
10000 401.93365 -7.637581 0.0034851739 1 1
|
10000 319.81736 21.904414 0.0034851739 1 1
|
||||||
Loop time of 1.94139 on 1 procs for 10000 steps with 44 atoms
|
Loop time of 1.84987 on 1 procs for 10000 steps with 44 atoms
|
||||||
|
|
||||||
Performance: 445.042 ns/day, 0.054 hours/ns, 5150.945 timesteps/s
|
Performance: 467.059 ns/day, 0.051 hours/ns, 5405.774 timesteps/s
|
||||||
99.3% CPU use with 1 MPI tasks x 1 OpenMP threads
|
99.5% CPU use with 1 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 0.26479 | 0.26479 | 0.26479 | 0.0 | 13.64
|
Pair | 0.26152 | 0.26152 | 0.26152 | 0.0 | 14.14
|
||||||
Bond | 0.76875 | 0.76875 | 0.76875 | 0.0 | 39.60
|
Bond | 0.74069 | 0.74069 | 0.74069 | 0.0 | 40.04
|
||||||
Kspace | 0.32111 | 0.32111 | 0.32111 | 0.0 | 16.54
|
Kspace | 0.30505 | 0.30505 | 0.30505 | 0.0 | 16.49
|
||||||
Neigh | 0.41333 | 0.41333 | 0.41333 | 0.0 | 21.29
|
Neigh | 0.39991 | 0.39991 | 0.39991 | 0.0 | 21.62
|
||||||
Comm | 0.025956 | 0.025956 | 0.025956 | 0.0 | 1.34
|
Comm | 0.02261 | 0.02261 | 0.02261 | 0.0 | 1.22
|
||||||
Output | 0.0043445 | 0.0043445 | 0.0043445 | 0.0 | 0.22
|
Output | 0.0034585 | 0.0034585 | 0.0034585 | 0.0 | 0.19
|
||||||
Modify | 0.12526 | 0.12526 | 0.12526 | 0.0 | 6.45
|
Modify | 0.099979 | 0.099979 | 0.099979 | 0.0 | 5.40
|
||||||
Other | | 0.01786 | | | 0.92
|
Other | | 0.01666 | | | 0.90
|
||||||
|
|
||||||
Nlocal: 44 ave 44 max 44 min
|
Nlocal: 44 ave 44 max 44 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
Nghost: 62 ave 62 max 62 min
|
Nghost: 44 ave 44 max 44 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
Neighs: 812 ave 812 max 812 min
|
Neighs: 823 ave 823 max 823 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 0
|
Histogram: 1 0 0 0 0 0 0 0 0 0
|
||||||
|
|
||||||
Total # of neighbors = 812
|
Total # of neighbors = 823
|
||||||
Ave neighs/atom = 18.4545
|
Ave neighs/atom = 18.7045
|
||||||
Ave special neighs/atom = 9.77273
|
Ave special neighs/atom = 9.77273
|
||||||
Neighbor list builds = 10000
|
Neighbor list builds = 10000
|
||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
|
|
||||||
# write_restart restart_longrun
|
# write_restart restart_longrun
|
||||||
# write_data restart_longrun.data
|
# write_data restart_longrun.data
|
||||||
|
|
||||||
|
Please see the log.cite file for references relevant to this simulation
|
||||||
|
|
||||||
Total wall time: 0:00:01
|
Total wall time: 0:00:01
|
||||||
|
|
|
@ -85,7 +85,9 @@ thermo 50
|
||||||
|
|
||||||
# dump 1 all xyz 1 test_vis.xyz
|
# 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 myrxns all bond/react stabilization yes statted_grp .03 react rxn1 all 1 0.0 2.9 mol1 mol2 rxn1_stp1_map react rxn2 all 1 0.0 5.0 mol3 mol4 rxn1_stp2_map
|
||||||
|
WARNING: An atom in 'react #1' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
|
WARNING: An atom in 'react #2' changes bond connectivity but not atom type (../fix_bond_react.cpp:1489)
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
dynamic group statted_grp defined
|
dynamic group statted_grp defined
|
||||||
dynamic group bond_react_MASTER_group defined
|
dynamic group bond_react_MASTER_group defined
|
||||||
|
@ -131,235 +133,238 @@ 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]
|
Step Temp Press Density f_myrxns[1] f_myrxns[2]
|
||||||
0 300 346.78165 0.0034851739 0 0
|
0 300 346.78165 0.0034851739 0 0
|
||||||
50 296.70408 -51.30066 0.0034851739 1 0
|
50 296.70408 -51.30066 0.0034851739 1 0
|
||||||
100 275.26011 39.120329 0.0034851739 1 1
|
100 274.25324 46.715512 0.0034851739 1 1
|
||||||
150 438.68516 35.257539 0.0034851739 1 1
|
150 471.61579 31.321598 0.0034851739 1 1
|
||||||
200 394.48971 15.444537 0.0034851739 1 1
|
200 362.87766 42.061118 0.0034851739 1 1
|
||||||
250 356.00369 50.185792 0.0034851739 1 1
|
250 367.58058 65.303109 0.0034851739 1 1
|
||||||
300 301.25816 -26.891497 0.0034851739 1 1
|
300 372.38236 -52.421725 0.0034851739 1 1
|
||||||
350 279.17264 12.694513 0.0034851739 1 1
|
350 297.69957 17.869945 0.0034851739 1 1
|
||||||
400 248.71641 10.684558 0.0034851739 1 1
|
400 258.30433 49.19156 0.0034851739 1 1
|
||||||
450 240.30602 12.963034 0.0034851739 1 1
|
450 253.34384 -5.8162637 0.0034851739 1 1
|
||||||
500 252.71279 0.91620356 0.0034851739 1 1
|
500 269.96465 -43.337517 0.0034851739 1 1
|
||||||
550 300.56824 18.541436 0.0034851739 1 1
|
550 303.23718 10.180246 0.0034851739 1 1
|
||||||
600 306.46441 -1.9736081 0.0034851739 1 1
|
600 329.59579 -48.97461 0.0034851739 1 1
|
||||||
650 336.4537 21.474831 0.0034851739 1 1
|
650 350.42568 50.983183 0.0034851739 1 1
|
||||||
700 323.46217 8.486376 0.0034851739 1 1
|
700 342.03272 35.43465 0.0034851739 1 1
|
||||||
750 271.87146 5.9615231 0.0034851739 1 1
|
750 269.23405 -41.873166 0.0034851739 1 1
|
||||||
800 268.43041 36.676068 0.0034851739 1 1
|
800 245.15025 13.953092 0.0034851739 1 1
|
||||||
850 269.02683 7.6295416 0.0034851739 1 1
|
850 257.85421 -3.1492141 0.0034851739 1 1
|
||||||
900 282.03605 -1.4688833 0.0034851739 1 1
|
900 316.15644 7.7798301 0.0034851739 1 1
|
||||||
950 243.69136 -22.771489 0.0034851739 1 1
|
950 299.9124 -15.77014 0.0034851739 1 1
|
||||||
1000 285.01348 17.925748 0.0034851739 1 1
|
1000 302.89968 -17.049693 0.0034851739 1 1
|
||||||
1050 383.47985 0.70536985 0.0034851739 1 1
|
1050 308.91651 71.84632 0.0034851739 1 1
|
||||||
1100 368.97167 -4.3046933 0.0034851739 1 1
|
1100 348.43932 -18.742012 0.0034851739 1 1
|
||||||
1150 373.64459 6.3491837 0.0034851739 1 1
|
1150 309.03036 50.536311 0.0034851739 1 1
|
||||||
1200 332.90575 -36.501095 0.0034851739 1 1
|
1200 318.9761 -16.905746 0.0034851739 1 1
|
||||||
1250 314.04078 -13.382767 0.0034851739 1 1
|
1250 320.42806 -0.057975092 0.0034851739 1 1
|
||||||
1300 305.84166 4.7713641 0.0034851739 1 1
|
1300 289.7824 18.200772 0.0034851739 1 1
|
||||||
1350 286.22145 37.621803 0.0034851739 1 1
|
1350 284.79836 -9.1978427 0.0034851739 1 1
|
||||||
1400 265.52855 23.621002 0.0034851739 1 1
|
1400 325.43292 42.082833 0.0034851739 1 1
|
||||||
1450 281.807 -31.266828 0.0034851739 1 1
|
1450 261.5041 -37.823325 0.0034851739 1 1
|
||||||
1500 275.33855 33.495565 0.0034851739 1 1
|
1500 298.88723 -5.1647385 0.0034851739 1 1
|
||||||
1550 273.04973 -22.913871 0.0034851739 1 1
|
1550 291.37403 -7.7764201 0.0034851739 1 1
|
||||||
1600 308.18478 -17.98151 0.0034851739 1 1
|
1600 293.83475 22.2458 0.0034851739 1 1
|
||||||
1650 333.27664 28.987529 0.0034851739 1 1
|
1650 293.80611 24.202512 0.0034851739 1 1
|
||||||
1700 296.16091 -1.1440455 0.0034851739 1 1
|
1700 291.70205 -23.397884 0.0034851739 1 1
|
||||||
1750 365.75611 34.574845 0.0034851739 1 1
|
1750 292.32437 -10.671214 0.0034851739 1 1
|
||||||
1800 292.83503 -33.199654 0.0034851739 1 1
|
1800 302.01367 -11.671025 0.0034851739 1 1
|
||||||
1850 261.50282 42.608703 0.0034851739 1 1
|
1850 322.1651 24.438331 0.0034851739 1 1
|
||||||
1900 315.14188 -31.058803 0.0034851739 1 1
|
1900 310.45076 45.343592 0.0034851739 1 1
|
||||||
1950 335.12895 12.40597 0.0034851739 1 1
|
1950 325.91745 -19.847809 0.0034851739 1 1
|
||||||
2000 278.08586 -5.3178633 0.0034851739 1 1
|
2000 276.89662 63.387098 0.0034851739 1 1
|
||||||
2050 283.23847 -3.3974302 0.0034851739 1 1
|
2050 311.33783 -24.683247 0.0034851739 1 1
|
||||||
2100 281.38904 0.70263324 0.0034851739 1 1
|
2100 346.2336 -27.526891 0.0034851739 1 1
|
||||||
2150 302.23197 23.372316 0.0034851739 1 1
|
2150 345.30604 -15.722411 0.0034851739 1 1
|
||||||
2200 337.49259 -4.8716803 0.0034851739 1 1
|
2200 346.7718 -17.857633 0.0034851739 1 1
|
||||||
2250 409.64134 -12.043721 0.0034851739 1 1
|
2250 304.28676 -1.9965581 0.0034851739 1 1
|
||||||
2300 309.21764 -21.824645 0.0034851739 1 1
|
2300 322.56372 -31.786868 0.0034851739 1 1
|
||||||
2350 290.97879 18.690281 0.0034851739 1 1
|
2350 282.64326 6.1982735 0.0034851739 1 1
|
||||||
2400 341.816 -16.967741 0.0034851739 1 1
|
2400 286.65759 -63.207781 0.0034851739 1 1
|
||||||
2450 310.28034 27.375518 0.0034851739 1 1
|
2450 257.05528 32.931491 0.0034851739 1 1
|
||||||
2500 248.89429 17.061192 0.0034851739 1 1
|
2500 283.64386 26.912373 0.0034851739 1 1
|
||||||
2550 273.10927 0.1048166 0.0034851739 1 1
|
2550 299.54005 27.277039 0.0034851739 1 1
|
||||||
2600 289.56101 -9.7239939 0.0034851739 1 1
|
2600 283.92503 14.660972 0.0034851739 1 1
|
||||||
2650 298.99719 -33.140576 0.0034851739 1 1
|
2650 321.93453 -18.977358 0.0034851739 1 1
|
||||||
2700 326.05198 -24.509827 0.0034851739 1 1
|
2700 376.7189 31.826935 0.0034851739 1 1
|
||||||
2750 319.20612 24.305526 0.0034851739 1 1
|
2750 372.20075 -32.821697 0.0034851739 1 1
|
||||||
2800 304.8715 -15.076941 0.0034851739 1 1
|
2800 361.40604 83.035183 0.0034851739 1 1
|
||||||
2850 374.38923 2.0874883 0.0034851739 1 1
|
2850 332.27269 -23.927452 0.0034851739 1 1
|
||||||
2900 354.01554 -20.595102 0.0034851739 1 1
|
2900 331.14638 -0.12328446 0.0034851739 1 1
|
||||||
2950 289.89296 48.39731 0.0034851739 1 1
|
2950 303.67489 -24.078857 0.0034851739 1 1
|
||||||
3000 312.10013 -8.5105996 0.0034851739 1 1
|
3000 311.40462 21.563537 0.0034851739 1 1
|
||||||
3050 296.97004 -31.008446 0.0034851739 1 1
|
3050 284.72849 -23.849667 0.0034851739 1 1
|
||||||
3100 251.72228 35.710197 0.0034851739 1 1
|
3100 303.48477 39.347763 0.0034851739 1 1
|
||||||
3150 315.35895 -43.331536 0.0034851739 1 1
|
3150 264.2739 -0.22299878 0.0034851739 1 1
|
||||||
3200 334.67773 13.331058 0.0034851739 1 1
|
3200 300.03351 31.545323 0.0034851739 1 1
|
||||||
3250 308.1669 37.236121 0.0034851739 1 1
|
3250 288.56663 5.7225229 0.0034851739 1 1
|
||||||
3300 329.47601 30.798598 0.0034851739 1 1
|
3300 200.13238 -31.239655 0.0034851739 1 1
|
||||||
3350 299.40055 2.0785585 0.0034851739 1 1
|
3350 231.32512 16.631728 0.0034851739 1 1
|
||||||
3400 272.41031 32.744921 0.0034851739 1 1
|
3400 260.57402 2.1717992 0.0034851739 1 1
|
||||||
3450 279.34594 -26.181793 0.0034851739 1 1
|
3450 301.47128 -42.210623 0.0034851739 1 1
|
||||||
3500 288.89969 8.935052 0.0034851739 1 1
|
3500 321.77414 40.074365 0.0034851739 1 1
|
||||||
3550 253.4967 9.724471 0.0034851739 1 1
|
3550 353.21858 28.387783 0.0034851739 1 1
|
||||||
3600 294.83266 19.33305 0.0034851739 1 1
|
3600 331.45989 -57.800858 0.0034851739 1 1
|
||||||
3650 290.23794 -5.493907 0.0034851739 1 1
|
3650 303.88123 44.86596 0.0034851739 1 1
|
||||||
3700 332.5222 -29.83423 0.0034851739 1 1
|
3700 329.73833 -0.8061567 0.0034851739 1 1
|
||||||
3750 364.63024 20.706191 0.0034851739 1 1
|
3750 297.55588 -0.49626022 0.0034851739 1 1
|
||||||
3800 295.3842 -6.9434003 0.0034851739 1 1
|
3800 286.38794 -10.010003 0.0034851739 1 1
|
||||||
3850 346.84424 37.796066 0.0034851739 1 1
|
3850 290.17417 -43.51187 0.0034851739 1 1
|
||||||
3900 265.67286 -0.3162804 0.0034851739 1 1
|
3900 247.88933 51.23735 0.0034851739 1 1
|
||||||
3950 260.455 -2.2571901 0.0034851739 1 1
|
3950 332.31324 -18.194985 0.0034851739 1 1
|
||||||
4000 259.82636 -2.2286207 0.0034851739 1 1
|
4000 325.56802 18.402825 0.0034851739 1 1
|
||||||
4050 257.79848 24.520293 0.0034851739 1 1
|
4050 338.37594 36.430977 0.0034851739 1 1
|
||||||
4100 295.58626 -0.42318895 0.0034851739 1 1
|
4100 370.95478 39.290285 0.0034851739 1 1
|
||||||
4150 265.81352 -49.092436 0.0034851739 1 1
|
4150 348.47859 -7.0779683 0.0034851739 1 1
|
||||||
4200 302.10333 51.715258 0.0034851739 1 1
|
4200 241.30632 -33.371789 0.0034851739 1 1
|
||||||
4250 258.98448 -4.8516657 0.0034851739 1 1
|
4250 242.17258 -9.9861962 0.0034851739 1 1
|
||||||
4300 327.83401 33.717283 0.0034851739 1 1
|
4300 300.85311 -7.924429 0.0034851739 1 1
|
||||||
4350 311.59571 23.580382 0.0034851739 1 1
|
4350 273.15684 -21.257282 0.0034851739 1 1
|
||||||
4400 300.64237 -31.866661 0.0034851739 1 1
|
4400 305.77464 -5.8720712 0.0034851739 1 1
|
||||||
4450 294.15642 -0.11927262 0.0034851739 1 1
|
4450 314.97697 45.037299 0.0034851739 1 1
|
||||||
4500 299.83605 -17.560872 0.0034851739 1 1
|
4500 310.77723 16.958771 0.0034851739 1 1
|
||||||
4550 326.83265 32.818481 0.0034851739 1 1
|
4550 302.17421 12.156862 0.0034851739 1 1
|
||||||
4600 260.39068 -8.0567907 0.0034851739 1 1
|
4600 319.74799 6.8488914 0.0034851739 1 1
|
||||||
4650 247.93553 19.462991 0.0034851739 1 1
|
4650 270.86805 -13.767907 0.0034851739 1 1
|
||||||
4700 214.22252 -34.118304 0.0034851739 1 1
|
4700 249.81731 -31.197484 0.0034851739 1 1
|
||||||
4750 203.15329 27.356204 0.0034851739 1 1
|
4750 285.86481 -9.8916332 0.0034851739 1 1
|
||||||
4800 257.761 -10.407986 0.0034851739 1 1
|
4800 233.98321 7.1338518 0.0034851739 1 1
|
||||||
4850 307.1923 11.711008 0.0034851739 1 1
|
4850 302.60551 49.262886 0.0034851739 1 1
|
||||||
4900 319.00942 4.7808342 0.0034851739 1 1
|
4900 316.55055 34.663238 0.0034851739 1 1
|
||||||
4950 282.2399 24.996151 0.0034851739 1 1
|
4950 357.32741 11.583013 0.0034851739 1 1
|
||||||
5000 311.53284 -3.0012669 0.0034851739 1 1
|
5000 400.21044 -8.1780861 0.0034851739 1 1
|
||||||
5050 317.58213 32.56782 0.0034851739 1 1
|
5050 390.01845 -20.490268 0.0034851739 1 1
|
||||||
5100 267.51502 -47.695103 0.0034851739 1 1
|
5100 378.84249 -41.328772 0.0034851739 1 1
|
||||||
5150 260.19047 29.046394 0.0034851739 1 1
|
5150 324.02039 -15.023852 0.0034851739 1 1
|
||||||
5200 239.8355 -5.4890372 0.0034851739 1 1
|
5200 262.08427 10.937367 0.0034851739 1 1
|
||||||
5250 234.88522 -18.172649 0.0034851739 1 1
|
5250 255.75506 16.381495 0.0034851739 1 1
|
||||||
5300 236.43278 -39.062111 0.0034851739 1 1
|
5300 277.84991 40.682283 0.0034851739 1 1
|
||||||
5350 280.90083 -2.6932604 0.0034851739 1 1
|
5350 302.92834 9.1989644 0.0034851739 1 1
|
||||||
5400 316.65269 23.071363 0.0034851739 1 1
|
5400 283.71964 -1.6583895 0.0034851739 1 1
|
||||||
5450 345.6322 19.573305 0.0034851739 1 1
|
5450 300.71261 -4.703054 0.0034851739 1 1
|
||||||
5500 384.57334 41.50729 0.0034851739 1 1
|
5500 343.54987 -0.30546396 0.0034851739 1 1
|
||||||
5550 317.14286 9.6992981 0.0034851739 1 1
|
5550 369.51272 21.691639 0.0034851739 1 1
|
||||||
5600 279.93246 -12.076859 0.0034851739 1 1
|
5600 372.69786 -38.679919 0.0034851739 1 1
|
||||||
5650 268.06471 1.6196502 0.0034851739 1 1
|
5650 327.41256 11.352201 0.0034851739 1 1
|
||||||
5700 271.85714 -40.378489 0.0034851739 1 1
|
5700 278.9861 -23.82728 0.0034851739 1 1
|
||||||
5750 313.88361 10.722652 0.0034851739 1 1
|
5750 308.30037 -20.756238 0.0034851739 1 1
|
||||||
5800 281.54499 31.914883 0.0034851739 1 1
|
5800 341.4559 28.058314 0.0034851739 1 1
|
||||||
5850 293.34819 -8.3155887 0.0034851739 1 1
|
5850 322.9786 -10.731862 0.0034851739 1 1
|
||||||
5900 249.25215 -17.307228 0.0034851739 1 1
|
5900 304.53598 32.825105 0.0034851739 1 1
|
||||||
5950 268.18645 -4.7223601 0.0034851739 1 1
|
5950 287.17515 -36.780057 0.0034851739 1 1
|
||||||
6000 302.99402 -52.615432 0.0034851739 1 1
|
6000 296.52688 18.782156 0.0034851739 1 1
|
||||||
6050 314.57946 34.513152 0.0034851739 1 1
|
6050 314.25411 15.99272 0.0034851739 1 1
|
||||||
6100 345.70342 30.33474 0.0034851739 1 1
|
6100 313.86572 3.4344108 0.0034851739 1 1
|
||||||
6150 316.59329 31.862566 0.0034851739 1 1
|
6150 325.64197 32.39212 0.0034851739 1 1
|
||||||
6200 317.85341 -32.23511 0.0034851739 1 1
|
6200 367.4298 -27.161154 0.0034851739 1 1
|
||||||
6250 282.97674 0.29367434 0.0034851739 1 1
|
6250 369.30937 39.020881 0.0034851739 1 1
|
||||||
6300 267.91823 19.265617 0.0034851739 1 1
|
6300 328.92245 -23.175612 0.0034851739 1 1
|
||||||
6350 226.2098 -13.093573 0.0034851739 1 1
|
6350 305.6293 4.9011587 0.0034851739 1 1
|
||||||
6400 307.73307 17.439662 0.0034851739 1 1
|
6400 241.70456 -13.675247 0.0034851739 1 1
|
||||||
6450 292.16311 -23.275251 0.0034851739 1 1
|
6450 265.66574 2.4049735 0.0034851739 1 1
|
||||||
6500 335.05972 26.936588 0.0034851739 1 1
|
6500 249.3592 13.420453 0.0034851739 1 1
|
||||||
6550 380.7351 19.532324 0.0034851739 1 1
|
6550 294.5367 10.856753 0.0034851739 1 1
|
||||||
6600 373.01041 30.879146 0.0034851739 1 1
|
6600 308.20246 18.992923 0.0034851739 1 1
|
||||||
6650 335.37897 -2.1766711 0.0034851739 1 1
|
6650 305.43756 -49.57151 0.0034851739 1 1
|
||||||
6700 298.94275 -10.578361 0.0034851739 1 1
|
6700 320.27395 11.339101 0.0034851739 1 1
|
||||||
6750 255.11449 -50.575851 0.0034851739 1 1
|
6750 321.7875 -23.463361 0.0034851739 1 1
|
||||||
6800 222.87598 3.0488985 0.0034851739 1 1
|
6800 303.40316 7.6256997 0.0034851739 1 1
|
||||||
6850 268.57268 -43.676136 0.0034851739 1 1
|
6850 297.18652 51.52186 0.0034851739 1 1
|
||||||
6900 260.30442 4.7484508 0.0034851739 1 1
|
6900 284.19084 -8.496294 0.0034851739 1 1
|
||||||
6950 289.15739 31.622589 0.0034851739 1 1
|
6950 331.04173 13.227745 0.0034851739 1 1
|
||||||
7000 289.11733 21.636361 0.0034851739 1 1
|
7000 311.38027 -43.26105 0.0034851739 1 1
|
||||||
7050 361.08905 22.442487 0.0034851739 1 1
|
7050 286.82046 -14.171194 0.0034851739 1 1
|
||||||
7100 368.95006 4.8393179 0.0034851739 1 1
|
7100 302.81691 12.058085 0.0034851739 1 1
|
||||||
7150 331.47878 -36.202032 0.0034851739 1 1
|
7150 297.18018 -43.110658 0.0034851739 1 1
|
||||||
7200 304.72518 13.982604 0.0034851739 1 1
|
7200 332.46131 26.051496 0.0034851739 1 1
|
||||||
7250 284.0996 0.53900966 0.0034851739 1 1
|
7250 262.72288 41.161451 0.0034851739 1 1
|
||||||
7300 269.17156 -41.572215 0.0034851739 1 1
|
7300 250.62739 -23.440907 0.0034851739 1 1
|
||||||
7350 222.06563 25.56579 0.0034851739 1 1
|
7350 296.92141 35.869216 0.0034851739 1 1
|
||||||
7400 304.09479 15.48238 0.0034851739 1 1
|
7400 245.06807 -13.467896 0.0034851739 1 1
|
||||||
7450 298.79046 -7.4369454 0.0034851739 1 1
|
7450 272.2659 -23.292836 0.0034851739 1 1
|
||||||
7500 328.78217 14.672853 0.0034851739 1 1
|
7500 209.05776 13.888665 0.0034851739 1 1
|
||||||
7550 347.06589 -37.168123 0.0034851739 1 1
|
7550 255.03716 4.9662624 0.0034851739 1 1
|
||||||
7600 362.84157 20.514912 0.0034851739 1 1
|
7600 312.26011 -37.350427 0.0034851739 1 1
|
||||||
7650 347.15916 2.3477485 0.0034851739 1 1
|
7650 305.5823 55.208039 0.0034851739 1 1
|
||||||
7700 262.09822 33.901831 0.0034851739 1 1
|
7700 325.13382 -18.370791 0.0034851739 1 1
|
||||||
7750 275.85921 -33.536059 0.0034851739 1 1
|
7750 363.24898 -22.473126 0.0034851739 1 1
|
||||||
7800 281.16159 -18.288414 0.0034851739 1 1
|
7800 350.19254 26.792307 0.0034851739 1 1
|
||||||
7850 264.83553 -30.566284 0.0034851739 1 1
|
7850 271.76418 -17.843445 0.0034851739 1 1
|
||||||
7900 257.35224 -35.087067 0.0034851739 1 1
|
7900 272.70301 -11.709349 0.0034851739 1 1
|
||||||
7950 286.30756 26.586163 0.0034851739 1 1
|
7950 298.5993 -12.736235 0.0034851739 1 1
|
||||||
8000 248.38175 15.601961 0.0034851739 1 1
|
8000 274.52611 49.657345 0.0034851739 1 1
|
||||||
8050 292.59171 28.784541 0.0034851739 1 1
|
8050 304.73711 -0.52485689 0.0034851739 1 1
|
||||||
8100 312.52852 0.87995053 0.0034851739 1 1
|
8100 328.29239 -39.901891 0.0034851739 1 1
|
||||||
8150 285.62346 -15.337252 0.0034851739 1 1
|
8150 406.52096 2.8669076 0.0034851739 1 1
|
||||||
8200 292.24175 -38.192576 0.0034851739 1 1
|
8200 332.17309 -51.168754 0.0034851739 1 1
|
||||||
8250 321.61618 -19.030398 0.0034851739 1 1
|
8250 354.68419 53.003157 0.0034851739 1 1
|
||||||
8300 319.42189 55.078305 0.0034851739 1 1
|
8300 337.28934 20.766408 0.0034851739 1 1
|
||||||
8350 308.00357 32.050518 0.0034851739 1 1
|
8350 361.81133 -54.159227 0.0034851739 1 1
|
||||||
8400 345.68186 8.7983733 0.0034851739 1 1
|
8400 305.59597 24.011667 0.0034851739 1 1
|
||||||
8450 358.00849 12.434592 0.0034851739 1 1
|
8450 303.25823 4.423341 0.0034851739 1 1
|
||||||
8500 370.14359 4.2184721 0.0034851739 1 1
|
8500 253.50747 -11.026949 0.0034851739 1 1
|
||||||
8550 360.6511 12.580836 0.0034851739 1 1
|
8550 277.13504 23.204625 0.0034851739 1 1
|
||||||
8600 290.04938 -4.8422589 0.0034851739 1 1
|
8600 291.40211 -22.253861 0.0034851739 1 1
|
||||||
8650 297.95745 -5.3185591 0.0034851739 1 1
|
8650 307.93765 32.14162 0.0034851739 1 1
|
||||||
8700 286.54284 -31.490479 0.0034851739 1 1
|
8700 309.1529 0.36279434 0.0034851739 1 1
|
||||||
8750 308.08791 19.24417 0.0034851739 1 1
|
8750 355.10326 11.677219 0.0034851739 1 1
|
||||||
8800 231.72534 12.262217 0.0034851739 1 1
|
8800 330.21328 19.235269 0.0034851739 1 1
|
||||||
8850 329.2349 -8.9133933 0.0034851739 1 1
|
8850 241.29109 21.707386 0.0034851739 1 1
|
||||||
8900 287.64023 10.525164 0.0034851739 1 1
|
8900 319.15363 -60.010115 0.0034851739 1 1
|
||||||
8950 341.08296 2.80127 0.0034851739 1 1
|
8950 308.88552 -57.637014 0.0034851739 1 1
|
||||||
9000 403.71266 17.88418 0.0034851739 1 1
|
9000 272.22373 51.15837 0.0034851739 1 1
|
||||||
9050 348.95132 -4.5813611 0.0034851739 1 1
|
9050 248.84947 7.3390565 0.0034851739 1 1
|
||||||
9100 307.98322 16.707575 0.0034851739 1 1
|
9100 221.91564 48.387079 0.0034851739 1 1
|
||||||
9150 276.75719 -35.563923 0.0034851739 1 1
|
9150 298.03506 2.9058639 0.0034851739 1 1
|
||||||
9200 230.15547 3.8091656 0.0034851739 1 1
|
9200 274.25114 -24.597819 0.0034851739 1 1
|
||||||
9250 264.64479 -20.97438 0.0034851739 1 1
|
9250 334.08373 5.1079577 0.0034851739 1 1
|
||||||
9300 285.70467 13.881735 0.0034851739 1 1
|
9300 383.07285 -23.274763 0.0034851739 1 1
|
||||||
9350 297.515 13.599319 0.0034851739 1 1
|
9350 335.00581 20.94212 0.0034851739 1 1
|
||||||
9400 341.45203 -28.494544 0.0034851739 1 1
|
9400 309.23862 34.074744 0.0034851739 1 1
|
||||||
9450 319.29703 -27.907344 0.0034851739 1 1
|
9450 312.62262 -28.468057 0.0034851739 1 1
|
||||||
9500 332.50473 4.9891138 0.0034851739 1 1
|
9500 324.54274 2.851136 0.0034851739 1 1
|
||||||
9550 293.10499 -8.3244772 0.0034851739 1 1
|
9550 313.32781 22.468182 0.0034851739 1 1
|
||||||
9600 255.31174 2.2568315 0.0034851739 1 1
|
9600 269.04372 4.064934 0.0034851739 1 1
|
||||||
9650 250.01932 5.7005159 0.0034851739 1 1
|
9650 270.98476 -21.520127 0.0034851739 1 1
|
||||||
9700 278.37409 -8.5970424 0.0034851739 1 1
|
9700 236.8736 16.250728 0.0034851739 1 1
|
||||||
9750 294.86737 17.686447 0.0034851739 1 1
|
9750 333.94686 1.6864148 0.0034851739 1 1
|
||||||
9800 277.07345 -2.0856886 0.0034851739 1 1
|
9800 330.91875 12.150018 0.0034851739 1 1
|
||||||
9850 295.54707 2.8365471 0.0034851739 1 1
|
9850 343.8603 25.338853 0.0034851739 1 1
|
||||||
9900 311.51074 29.885116 0.0034851739 1 1
|
9900 330.93364 -28.292992 0.0034851739 1 1
|
||||||
9950 296.01363 12.206068 0.0034851739 1 1
|
9950 291.25518 25.795948 0.0034851739 1 1
|
||||||
10000 341.35187 -3.0045464 0.0034851739 1 1
|
10000 319.25565 25.323846 0.0034851739 1 1
|
||||||
Loop time of 3.64332 on 4 procs for 10000 steps with 44 atoms
|
Loop time of 3.55353 on 4 procs for 10000 steps with 44 atoms
|
||||||
|
|
||||||
Performance: 237.146 ns/day, 0.101 hours/ns, 2744.751 timesteps/s
|
Performance: 243.139 ns/day, 0.099 hours/ns, 2814.105 timesteps/s
|
||||||
94.5% CPU use with 4 MPI tasks x 1 OpenMP threads
|
93.4% CPU use with 4 MPI tasks x 1 OpenMP threads
|
||||||
|
|
||||||
MPI task timing breakdown:
|
MPI task timing breakdown:
|
||||||
Section | min time | avg time | max time |%varavg| %total
|
Section | min time | avg time | max time |%varavg| %total
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
Pair | 0.0029962 | 0.10426 | 0.34564 | 43.9 | 2.86
|
Pair | 0.0030422 | 0.10454 | 0.35211 | 44.8 | 2.94
|
||||||
Bond | 0.005929 | 0.29803 | 0.95305 | 71.2 | 8.18
|
Bond | 0.0063896 | 0.29222 | 0.94356 | 71.3 | 8.22
|
||||||
Kspace | 0.83969 | 1.5992 | 1.9344 | 35.6 | 43.89
|
Kspace | 0.88508 | 1.6486 | 1.979 | 35.1 | 46.39
|
||||||
Neigh | 0.65468 | 0.66443 | 0.67431 | 0.9 | 18.24
|
Neigh | 0.61154 | 0.62212 | 0.63307 | 1.0 | 17.51
|
||||||
Comm | 0.1727 | 0.23754 | 0.2745 | 8.0 | 6.52
|
Comm | 0.18944 | 0.24549 | 0.29196 | 7.9 | 6.91
|
||||||
Output | 0.0048738 | 0.010774 | 0.028434 | 9.8 | 0.30
|
Output | 0.0050066 | 0.011804 | 0.032134 | 10.8 | 0.33
|
||||||
Modify | 0.62478 | 0.70376 | 0.779 | 6.5 | 19.32
|
Modify | 0.52282 | 0.60522 | 0.69588 | 7.9 | 17.03
|
||||||
Other | | 0.02531 | | | 0.69
|
Other | | 0.02359 | | | 0.66
|
||||||
|
|
||||||
Nlocal: 11 ave 40 max 0 min
|
Nlocal: 11 ave 44 max 0 min
|
||||||
Histogram: 2 1 0 0 0 0 0 0 0 1
|
Histogram: 3 0 0 0 0 0 0 0 0 1
|
||||||
Nghost: 36 ave 47 max 7 min
|
Nghost: 33 ave 44 max 0 min
|
||||||
Histogram: 1 0 0 0 0 0 0 0 0 3
|
Histogram: 1 0 0 0 0 0 0 0 0 3
|
||||||
Neighs: 203 ave 809 max 0 min
|
Neighs: 205.75 ave 823 max 0 min
|
||||||
Histogram: 3 0 0 0 0 0 0 0 0 1
|
Histogram: 3 0 0 0 0 0 0 0 0 1
|
||||||
|
|
||||||
Total # of neighbors = 812
|
Total # of neighbors = 823
|
||||||
Ave neighs/atom = 18.4545
|
Ave neighs/atom = 18.7045
|
||||||
Ave special neighs/atom = 9.77273
|
Ave special neighs/atom = 9.77273
|
||||||
Neighbor list builds = 10000
|
Neighbor list builds = 10000
|
||||||
Dangerous builds = 0
|
Dangerous builds = 0
|
||||||
|
|
||||||
# write_restart restart_longrun
|
# write_restart restart_longrun
|
||||||
# write_data restart_longrun.data
|
# write_data restart_longrun.data
|
||||||
|
|
||||||
|
Please see the log.cite file for references relevant to this simulation
|
||||||
|
|
||||||
Total wall time: 0:00:03
|
Total wall time: 0:00:03
|
||||||
|
|
|
@ -43,6 +43,17 @@ Contributing Author: Jacob Gissinger (jacob.gissinger@colorado.edu)
|
||||||
using namespace LAMMPS_NS;
|
using namespace LAMMPS_NS;
|
||||||
using namespace FixConst;
|
using namespace FixConst;
|
||||||
|
|
||||||
|
static const char cite_fix_bond_react[] =
|
||||||
|
"fix bond/react:\n\n"
|
||||||
|
"@Article{Gissinger17,\n"
|
||||||
|
" author = {J. R. Gissinger, B. D. Jensen, K. E. Wise},\n"
|
||||||
|
" title = {Modeling chemical reactions in classical molecular dynamics simulations},\n"
|
||||||
|
" journal = {Polymer},\n"
|
||||||
|
" year = 2017,\n"
|
||||||
|
" volume = 128,\n"
|
||||||
|
" pages = {211--217}\n"
|
||||||
|
"}\n\n";
|
||||||
|
|
||||||
#define BIG 1.0e20
|
#define BIG 1.0e20
|
||||||
#define DELTA 16
|
#define DELTA 16
|
||||||
#define MAXLINE 256
|
#define MAXLINE 256
|
||||||
|
@ -62,6 +73,8 @@ enum{ACCEPT,REJECT,PROCEED,CONTINUE,GUESSFAIL,RESTORE};
|
||||||
FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
Fix(lmp, narg, arg)
|
Fix(lmp, narg, arg)
|
||||||
{
|
{
|
||||||
|
if (lmp->citeme) lmp->citeme->add(cite_fix_bond_react);
|
||||||
|
|
||||||
fix1 = NULL;
|
fix1 = NULL;
|
||||||
fix2 = NULL;
|
fix2 = NULL;
|
||||||
|
|
||||||
|
@ -71,7 +84,6 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
MPI_Comm_size(world,&nprocs);
|
MPI_Comm_size(world,&nprocs);
|
||||||
|
|
||||||
attempted_rxn = 0;
|
attempted_rxn = 0;
|
||||||
ghostcheck_flag = 0;
|
|
||||||
force_reneighbor = 1;
|
force_reneighbor = 1;
|
||||||
next_reneighbor = -1;
|
next_reneighbor = -1;
|
||||||
vector_flag = 1;
|
vector_flag = 1;
|
||||||
|
@ -127,7 +139,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
// this looks excessive
|
// this looks excessive
|
||||||
// the price of vectorization (all reactions in one command)?
|
// the price of vectorization (all reactions in one command)?
|
||||||
memory->create(nevery,nreacts,"bond/react:nevery");
|
memory->create(nevery,nreacts,"bond/react:nevery");
|
||||||
memory->create(cutsq,nreacts,"bond/react:cutsq");
|
memory->create(cutsq,nreacts,2,"bond/react:cutsq");
|
||||||
memory->create(unreacted_mol,nreacts,"bond/react:unreacted_mol");
|
memory->create(unreacted_mol,nreacts,"bond/react:unreacted_mol");
|
||||||
memory->create(reacted_mol,nreacts,"bond/react:reacted_mol");
|
memory->create(reacted_mol,nreacts,"bond/react:reacted_mol");
|
||||||
memory->create(fraction,nreacts,"bond/react:fraction");
|
memory->create(fraction,nreacts,"bond/react:fraction");
|
||||||
|
@ -138,6 +150,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
memory->create(jatomtype,nreacts,"bond/react:jatomtype");
|
memory->create(jatomtype,nreacts,"bond/react:jatomtype");
|
||||||
memory->create(ibonding,nreacts,"bond/react:ibonding");
|
memory->create(ibonding,nreacts,"bond/react:ibonding");
|
||||||
memory->create(jbonding,nreacts,"bond/react:jbonding");
|
memory->create(jbonding,nreacts,"bond/react:jbonding");
|
||||||
|
memory->create(closeneigh,nreacts,"bond/react:closeneigh");
|
||||||
memory->create(groupbits,nreacts,"bond/react:groupbits");
|
memory->create(groupbits,nreacts,"bond/react:groupbits");
|
||||||
memory->create(reaction_count,nreacts,"bond/react:reaction_count");
|
memory->create(reaction_count,nreacts,"bond/react:reaction_count");
|
||||||
memory->create(local_rxn_count,nreacts,"bond/react:local_rxn_count");
|
memory->create(local_rxn_count,nreacts,"bond/react:local_rxn_count");
|
||||||
|
@ -176,7 +189,11 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
|
|
||||||
double cutoff = force->numeric(FLERR,arg[iarg++]);
|
double cutoff = force->numeric(FLERR,arg[iarg++]);
|
||||||
if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command 0.5");
|
if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command 0.5");
|
||||||
cutsq[rxn] = cutoff*cutoff;
|
cutsq[rxn][0] = cutoff*cutoff;
|
||||||
|
|
||||||
|
cutoff = force->numeric(FLERR,arg[iarg++]);
|
||||||
|
if (cutoff < 0.0) error->all(FLERR,"Illegal fix bond/react command 0.55");
|
||||||
|
cutsq[rxn][1] = cutoff*cutoff;
|
||||||
|
|
||||||
unreacted_mol[rxn] = atom->find_molecule(arg[iarg++]);
|
unreacted_mol[rxn] = atom->find_molecule(arg[iarg++]);
|
||||||
if (unreacted_mol[rxn] == -1) error->all(FLERR,"Unreacted molecule template ID for "
|
if (unreacted_mol[rxn] == -1) error->all(FLERR,"Unreacted molecule template ID for "
|
||||||
|
@ -241,6 +258,23 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
if (atom->molecular != 1)
|
if (atom->molecular != 1)
|
||||||
error->all(FLERR,"Cannot use fix bond/react with non-molecular systems");
|
error->all(FLERR,"Cannot use fix bond/react with non-molecular systems");
|
||||||
|
|
||||||
|
// check if bonding atoms are 1-2, 1-3, or 1-4 bonded neighbors
|
||||||
|
// if so, we don't need non-bonded neighbor list
|
||||||
|
for (int myrxn = 0; myrxn < nreacts; myrxn++) {
|
||||||
|
closeneigh[myrxn] = -1; // indicates will search non-bonded neighbors
|
||||||
|
onemol = atom->molecules[unreacted_mol[myrxn]];
|
||||||
|
for (int k = 0; k < onemol->nspecial[ibonding[myrxn]-1][2]; k++) {
|
||||||
|
if (onemol->special[ibonding[myrxn]-1][k] == jbonding[myrxn]) {
|
||||||
|
closeneigh[myrxn] = 2; // index for 1-4 neighbor
|
||||||
|
if (k < onemol->nspecial[ibonding[myrxn]-1][1])
|
||||||
|
closeneigh[myrxn] = 1; // index for 1-3 neighbor
|
||||||
|
if (k < onemol->nspecial[ibonding[myrxn]-1][0])
|
||||||
|
closeneigh[myrxn] = 0; // index for 1-2 neighbor
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// initialize Marsaglia RNG with processor-unique seed
|
// initialize Marsaglia RNG with processor-unique seed
|
||||||
|
|
||||||
random = new class RanMars*[nreacts];
|
random = new class RanMars*[nreacts];
|
||||||
|
@ -259,6 +293,7 @@ FixBondReact::FixBondReact(LAMMPS *lmp, int narg, char **arg) :
|
||||||
nmax = 0;
|
nmax = 0;
|
||||||
partner = finalpartner = NULL;
|
partner = finalpartner = NULL;
|
||||||
distsq = NULL;
|
distsq = NULL;
|
||||||
|
probability = NULL;
|
||||||
maxcreate = 0;
|
maxcreate = 0;
|
||||||
created = NULL;
|
created = NULL;
|
||||||
local_ncreate = NULL;
|
local_ncreate = NULL;
|
||||||
|
@ -302,6 +337,7 @@ FixBondReact::~FixBondReact()
|
||||||
memory->destroy(local_ncreate);
|
memory->destroy(local_ncreate);
|
||||||
memory->destroy(ncreate);
|
memory->destroy(ncreate);
|
||||||
memory->destroy(distsq);
|
memory->destroy(distsq);
|
||||||
|
memory->destroy(probability);
|
||||||
memory->destroy(created);
|
memory->destroy(created);
|
||||||
memory->destroy(edge);
|
memory->destroy(edge);
|
||||||
memory->destroy(equivalences);
|
memory->destroy(equivalences);
|
||||||
|
@ -320,6 +356,7 @@ FixBondReact::~FixBondReact()
|
||||||
memory->destroy(jatomtype);
|
memory->destroy(jatomtype);
|
||||||
memory->destroy(ibonding);
|
memory->destroy(ibonding);
|
||||||
memory->destroy(jbonding);
|
memory->destroy(jbonding);
|
||||||
|
memory->destroy(closeneigh);
|
||||||
memory->destroy(groupbits);
|
memory->destroy(groupbits);
|
||||||
memory->destroy(reaction_count);
|
memory->destroy(reaction_count);
|
||||||
memory->destroy(local_rxn_count);
|
memory->destroy(local_rxn_count);
|
||||||
|
@ -372,7 +409,7 @@ it will have the name 'i_limit_tags' and will be intitialized to 0 (not in group
|
||||||
|
|
||||||
void FixBondReact::post_constructor()
|
void FixBondReact::post_constructor()
|
||||||
{
|
{
|
||||||
//let's add the limit_tags per-atom property fix
|
// let's add the limit_tags per-atom property fix
|
||||||
int len = strlen("per_atom_props") + 1;
|
int len = strlen("per_atom_props") + 1;
|
||||||
id_fix2 = new char[len];
|
id_fix2 = new char[len];
|
||||||
strcpy(id_fix2,"per_atom_props");
|
strcpy(id_fix2,"per_atom_props");
|
||||||
|
@ -521,7 +558,7 @@ void FixBondReact::init()
|
||||||
|
|
||||||
// check cutoff for iatomtype,jatomtype
|
// check cutoff for iatomtype,jatomtype
|
||||||
for (int i = 0; i < nreacts; i++) {
|
for (int i = 0; i < nreacts; i++) {
|
||||||
if (force->pair == NULL || cutsq[i] > force->pair->cutsq[iatomtype[i]][jatomtype[i]])
|
if (force->pair == NULL || cutsq[i][1] > force->pair->cutsq[iatomtype[i]][jatomtype[i]])
|
||||||
error->all(FLERR,"Fix bond/react cutoff is longer than pairwise cutoff");
|
error->all(FLERR,"Fix bond/react cutoff is longer than pairwise cutoff");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -548,10 +585,6 @@ void FixBondReact::init_list(int id, NeighList *ptr)
|
||||||
|
|
||||||
void FixBondReact::post_integrate()
|
void FixBondReact::post_integrate()
|
||||||
{
|
{
|
||||||
int inum,jnum,itype,jtype,possible;
|
|
||||||
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
|
||||||
int *ilist,*jlist,*numneigh,**firstneigh;
|
|
||||||
|
|
||||||
// check if any reactions could occur on this timestep
|
// check if any reactions could occur on this timestep
|
||||||
int nevery_check = 1;
|
int nevery_check = 1;
|
||||||
for (int i = 0; i < nreacts; i++) {
|
for (int i = 0; i < nreacts; i++) {
|
||||||
|
@ -578,7 +611,6 @@ void FixBondReact::post_integrate()
|
||||||
comm->forward_comm();
|
comm->forward_comm();
|
||||||
|
|
||||||
// resize bond partner list and initialize it
|
// resize bond partner list and initialize it
|
||||||
// probability array overlays distsq array
|
|
||||||
// needs to be atom->nmax in length
|
// needs to be atom->nmax in length
|
||||||
|
|
||||||
if (atom->nmax > nmax) {
|
if (atom->nmax > nmax) {
|
||||||
|
@ -587,13 +619,14 @@ void FixBondReact::post_integrate()
|
||||||
memory->destroy(distsq);
|
memory->destroy(distsq);
|
||||||
memory->destroy(local_ncreate);
|
memory->destroy(local_ncreate);
|
||||||
memory->destroy(ncreate);
|
memory->destroy(ncreate);
|
||||||
|
memory->destroy(probability);
|
||||||
nmax = atom->nmax;
|
nmax = atom->nmax;
|
||||||
memory->create(partner,nmax,"bond/react:partner");
|
memory->create(partner,nmax,"bond/react:partner");
|
||||||
memory->create(finalpartner,nmax,"bond/react:finalpartner");
|
memory->create(finalpartner,nmax,"bond/react:finalpartner");
|
||||||
memory->create(distsq,nmax,"bond/react:distsq");
|
memory->create(distsq,nmax,2,"bond/react:distsq");
|
||||||
memory->create(local_ncreate,nreacts,"bond/react:local_ncreate");
|
memory->create(local_ncreate,nreacts,"bond/react:local_ncreate");
|
||||||
memory->create(ncreate,nreacts,"bond/react:ncreate");
|
memory->create(ncreate,nreacts,"bond/react:ncreate");
|
||||||
probability = distsq;
|
memory->create(probability,nmax,"bond/react:probability");
|
||||||
}
|
}
|
||||||
|
|
||||||
// reset create counts
|
// reset create counts
|
||||||
|
@ -605,129 +638,28 @@ void FixBondReact::post_integrate()
|
||||||
int nlocal = atom->nlocal;
|
int nlocal = atom->nlocal;
|
||||||
int nall = atom->nlocal + atom->nghost;
|
int nall = atom->nlocal + atom->nghost;
|
||||||
|
|
||||||
// NOTE: this might be faster if we remembered neighbor distances from
|
|
||||||
// previous timestep and used those --JG
|
|
||||||
|
|
||||||
// loop over neighbors of my atoms
|
// loop over neighbors of my atoms
|
||||||
// each atom sets one closest eligible partner atom ID to bond with
|
// each atom sets one closest eligible partner atom ID to bond with
|
||||||
|
|
||||||
double **x = atom->x;
|
|
||||||
tagint *tag = atom->tag;
|
tagint *tag = atom->tag;
|
||||||
int **nspecial = atom->nspecial;
|
|
||||||
tagint **special = atom->special;
|
|
||||||
int *mask = atom->mask;
|
|
||||||
int *type = atom->type;
|
int *type = atom->type;
|
||||||
|
|
||||||
neighbor->build_one(list,1);
|
neighbor->build_one(list,1);
|
||||||
inum = list->inum;
|
|
||||||
ilist = list->ilist;
|
|
||||||
numneigh = list->numneigh;
|
|
||||||
firstneigh = list->firstneigh;
|
|
||||||
|
|
||||||
// per-atom property indicating if in bond/react master group
|
int j;
|
||||||
int flag;
|
|
||||||
int index1 = atom->find_custom("limit_tags",flag);
|
|
||||||
int *i_limit_tags = atom->ivector[index1];
|
|
||||||
|
|
||||||
int i,j;
|
for (rxnID = 0; rxnID < nreacts; rxnID++) {
|
||||||
|
|
||||||
for (int myrxn = 0; myrxn < nreacts; myrxn++) {
|
|
||||||
|
|
||||||
for (int ii = 0; ii < nall; ii++) {
|
for (int ii = 0; ii < nall; ii++) {
|
||||||
partner[ii] = 0;
|
partner[ii] = 0;
|
||||||
finalpartner[ii] = 0;
|
finalpartner[ii] = 0;
|
||||||
distsq[ii] = BIG;
|
distsq[ii][0] = 0.0;
|
||||||
|
distsq[ii][1] = BIG;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int ii = 0; ii < inum; ii++) { // inum vs nlocal
|
// fork between far and close_partner here
|
||||||
i = ilist[ii];
|
if (closeneigh[rxnID] < 0) far_partner();
|
||||||
if (!(mask[i] & groupbits[myrxn])) continue;
|
else close_partner();
|
||||||
if (i_limit_tags[i] != 0) continue;
|
|
||||||
itype = type[i];
|
|
||||||
xtmp = x[i][0];
|
|
||||||
ytmp = x[i][1];
|
|
||||||
ztmp = x[i][2];
|
|
||||||
jlist = firstneigh[i];
|
|
||||||
jnum = numneigh[i];
|
|
||||||
|
|
||||||
for (int jj = 0; jj < jnum; jj++) {
|
|
||||||
j = jlist[jj];
|
|
||||||
j &= NEIGHMASK;
|
|
||||||
|
|
||||||
if (!(mask[j] & groupbits[myrxn])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i_limit_tags[j] != 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
jtype = type[j];
|
|
||||||
possible = 0;
|
|
||||||
|
|
||||||
if (itype == iatomtype[myrxn] && jtype == jatomtype[myrxn]) {
|
|
||||||
possible = 1;
|
|
||||||
} else if (itype == jatomtype[myrxn] && jtype == iatomtype[myrxn]) {
|
|
||||||
possible = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (possible == 0) continue;
|
|
||||||
|
|
||||||
for (int k = 0; k < nspecial[i][0]; k++)
|
|
||||||
if (special[i][k] == tag[j]) possible = 0;
|
|
||||||
if (!possible) continue;
|
|
||||||
|
|
||||||
// NOTE(for below): certain neighbor list settings prevent 3-cycles anyway!
|
|
||||||
// e.g., in my examples, must use kspace command to include 1-3 neighbors for consideration here
|
|
||||||
|
|
||||||
// do not allow a three-membered ring to be created (by the new bond)
|
|
||||||
// check 1-3 neighbors of atom I
|
|
||||||
for (int k = nspecial[i][0]; k < nspecial[i][1]; k++)
|
|
||||||
if (special[i][k] == tag[j]) possible = 0;
|
|
||||||
if (possible == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// do not allow a four-membered ring to be created (by the new bond)
|
|
||||||
// check 1-4 neighbors of atom I -> probably make an option
|
|
||||||
|
|
||||||
/*
|
|
||||||
for (k = nspecial[i][1]; k < nspecial[i][2]; k++)
|
|
||||||
if (special[i][k] == tag[j]) {
|
|
||||||
possible = 0;
|
|
||||||
}
|
|
||||||
if (possible == 0) continue;
|
|
||||||
*/
|
|
||||||
|
|
||||||
// do not allow 5 membered rings -> probably make this an option
|
|
||||||
|
|
||||||
/*
|
|
||||||
for (k = nspecial[i][1]; k < nspecial[i][2]; k++) {
|
|
||||||
for (m = nspecial[atom->map(special[i][k])][1]; m < nspecial[atom->map(special[i][k])][2]; m++) {
|
|
||||||
if (special[atom->map(special[i][k])][m] == tag[j]) possible = 0;
|
|
||||||
/ }
|
|
||||||
}
|
|
||||||
if (possible == 0) continue;
|
|
||||||
*/
|
|
||||||
|
|
||||||
delx = xtmp - x[j][0];
|
|
||||||
dely = ytmp - x[j][1];
|
|
||||||
delz = ztmp - x[j][2];
|
|
||||||
rsq = delx*delx + dely*dely + delz*delz;
|
|
||||||
|
|
||||||
if (rsq >= cutsq[myrxn]) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (rsq < distsq[i]) {
|
|
||||||
partner[i] = tag[j];
|
|
||||||
distsq[i] = rsq;
|
|
||||||
}
|
|
||||||
if (rsq < distsq[j]) {
|
|
||||||
partner[j] = tag[i];
|
|
||||||
distsq[j] = rsq;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// reverse comm of distsq and partner
|
// reverse comm of distsq and partner
|
||||||
// not needed if newton_pair off since I,J pair was seen by both procs
|
// not needed if newton_pair off since I,J pair was seen by both procs
|
||||||
|
@ -739,9 +671,9 @@ void FixBondReact::post_integrate()
|
||||||
// for prob check, generate random value for each atom with a bond partner
|
// for prob check, generate random value for each atom with a bond partner
|
||||||
// forward comm of partner and random value, so ghosts have it
|
// forward comm of partner and random value, so ghosts have it
|
||||||
|
|
||||||
if (fraction[myrxn] < 1.0) {
|
if (fraction[rxnID] < 1.0) {
|
||||||
for (int i = 0; i < nlocal; i++)
|
for (int i = 0; i < nlocal; i++)
|
||||||
if (partner[i]) probability[i] = random[myrxn]->uniform();
|
if (partner[i]) probability[i] = random[rxnID]->uniform();
|
||||||
}
|
}
|
||||||
|
|
||||||
commflag = 2;
|
commflag = 2;
|
||||||
|
@ -764,11 +696,11 @@ void FixBondReact::post_integrate()
|
||||||
|
|
||||||
// apply probability constraint using RN for atom with smallest ID
|
// apply probability constraint using RN for atom with smallest ID
|
||||||
|
|
||||||
if (fraction[myrxn] < 1.0) {
|
if (fraction[rxnID] < 1.0) {
|
||||||
if (tag[i] < tag[j]) {
|
if (tag[i] < tag[j]) {
|
||||||
if (probability[i] >= fraction[myrxn]) continue;
|
if (probability[i] >= fraction[rxnID]) continue;
|
||||||
} else {
|
} else {
|
||||||
if (probability[j] >= fraction[myrxn]) continue;
|
if (probability[j] >= fraction[rxnID]) continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -780,31 +712,17 @@ void FixBondReact::post_integrate()
|
||||||
if (tag[i] < tag[j]) temp_ncreate++;
|
if (tag[i] < tag[j]) temp_ncreate++;
|
||||||
}
|
}
|
||||||
|
|
||||||
local_ncreate[myrxn] = temp_ncreate;
|
local_ncreate[rxnID] = temp_ncreate;
|
||||||
// break loop if no even eligible bonding atoms were found (on any proc)
|
// break loop if no even eligible bonding atoms were found (on any proc)
|
||||||
int some_chance;
|
int some_chance;
|
||||||
MPI_Allreduce(&temp_ncreate,&some_chance,1,MPI_INT,MPI_SUM,world);
|
MPI_Allreduce(&temp_ncreate,&some_chance,1,MPI_INT,MPI_SUM,world);
|
||||||
if (!some_chance) {
|
if (!some_chance) continue;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// communicate final partner
|
// communicate final partner
|
||||||
|
|
||||||
commflag = 3;
|
commflag = 3;
|
||||||
comm->forward_comm_fix(this);
|
comm->forward_comm_fix(this);
|
||||||
|
|
||||||
//obsolete comment block
|
|
||||||
/*
|
|
||||||
// I think this also simplifies for bond/react.
|
|
||||||
// but currently unsure how to adapt it - JG
|
|
||||||
// create list of created bonds that influence my owned atoms
|
|
||||||
// even if between owned-ghost or ghost-ghost atoms
|
|
||||||
// finalpartner is now set for owned and ghost atoms so loop over nall
|
|
||||||
// OK if duplicates in created list due to ghosts duplicating owned atoms
|
|
||||||
// check J < 0 to insure a created bond to unknown atom is included
|
|
||||||
// i.e. a bond partner outside of skin length
|
|
||||||
*/
|
|
||||||
|
|
||||||
// add instance to 'created' only if this processor
|
// add instance to 'created' only if this processor
|
||||||
// owns the atoms with smaller global ID
|
// owns the atoms with smaller global ID
|
||||||
// NOTE: we no longer care about ghost-ghost instances as bond/create did
|
// NOTE: we no longer care about ghost-ghost instances as bond/create did
|
||||||
|
@ -816,21 +734,21 @@ void FixBondReact::post_integrate()
|
||||||
j = atom->map(finalpartner[i]);
|
j = atom->map(finalpartner[i]);
|
||||||
// if (j < 0 || tag[i] < tag[j]) {
|
// if (j < 0 || tag[i] < tag[j]) {
|
||||||
if (tag[i] < tag[j]) { //atom->map(std::min(tag[i],tag[j])) <= nlocal &&
|
if (tag[i] < tag[j]) { //atom->map(std::min(tag[i],tag[j])) <= nlocal &&
|
||||||
if (ncreate[myrxn] == maxcreate) {
|
if (ncreate[rxnID] == maxcreate) {
|
||||||
maxcreate += DELTA;
|
maxcreate += DELTA;
|
||||||
// third column of 'created': bond/react integer ID
|
// third column of 'created': bond/react integer ID
|
||||||
memory->grow(created,maxcreate,2,nreacts,"bond/react:created");
|
memory->grow(created,maxcreate,2,nreacts,"bond/react:created");
|
||||||
}
|
}
|
||||||
// to ensure types remain in same order
|
// to ensure types remain in same order
|
||||||
// unnecessary now taken from reaction map file
|
// unnecessary now taken from reaction map file
|
||||||
if (iatomtype[myrxn] == type[i]) {
|
if (iatomtype[rxnID] == type[i]) {
|
||||||
created[ncreate[myrxn]][0][myrxn] = tag[i];
|
created[ncreate[rxnID]][0][rxnID] = tag[i];
|
||||||
created[ncreate[myrxn]][1][myrxn] = finalpartner[i];
|
created[ncreate[rxnID]][1][rxnID] = finalpartner[i];
|
||||||
} else {
|
} else {
|
||||||
created[ncreate[myrxn]][0][myrxn] = finalpartner[i];
|
created[ncreate[rxnID]][0][rxnID] = finalpartner[i];
|
||||||
created[ncreate[myrxn]][1][myrxn] = tag[i];
|
created[ncreate[rxnID]][1][rxnID] = tag[i];
|
||||||
}
|
}
|
||||||
ncreate[myrxn]++;
|
ncreate[rxnID]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unlimit_bond(); //free atoms that have been relaxed
|
unlimit_bond(); //free atoms that have been relaxed
|
||||||
|
@ -854,7 +772,152 @@ void FixBondReact::post_integrate()
|
||||||
superimpose_algorithm();
|
superimpose_algorithm();
|
||||||
// free atoms that have been limited after reacting
|
// free atoms that have been limited after reacting
|
||||||
unlimit_bond();
|
unlimit_bond();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
Search non-bonded neighbor lists if bonding atoms are not in special list
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void FixBondReact::far_partner()
|
||||||
|
{
|
||||||
|
int inum,jnum,itype,jtype,possible;
|
||||||
|
double xtmp,ytmp,ztmp,delx,dely,delz,rsq;
|
||||||
|
int *ilist,*jlist,*numneigh,**firstneigh;
|
||||||
|
|
||||||
|
// loop over neighbors of my atoms
|
||||||
|
// each atom sets one closest eligible partner atom ID to bond with
|
||||||
|
|
||||||
|
double **x = atom->x;
|
||||||
|
tagint *tag = atom->tag;
|
||||||
|
int **nspecial = atom->nspecial;
|
||||||
|
tagint **special = atom->special;
|
||||||
|
int *mask = atom->mask;
|
||||||
|
int *type = atom->type;
|
||||||
|
|
||||||
|
inum = list->inum;
|
||||||
|
ilist = list->ilist;
|
||||||
|
numneigh = list->numneigh;
|
||||||
|
firstneigh = list->firstneigh;
|
||||||
|
|
||||||
|
// per-atom property indicating if in bond/react master group
|
||||||
|
int flag;
|
||||||
|
int index1 = atom->find_custom("limit_tags",flag);
|
||||||
|
int *i_limit_tags = atom->ivector[index1];
|
||||||
|
|
||||||
|
int i,j;
|
||||||
|
|
||||||
|
for (int ii = 0; ii < inum; ii++) {
|
||||||
|
i = ilist[ii];
|
||||||
|
if (!(mask[i] & groupbits[rxnID])) continue;
|
||||||
|
if (i_limit_tags[i] != 0) continue;
|
||||||
|
itype = type[i];
|
||||||
|
xtmp = x[i][0];
|
||||||
|
ytmp = x[i][1];
|
||||||
|
ztmp = x[i][2];
|
||||||
|
jlist = firstneigh[i];
|
||||||
|
jnum = numneigh[i];
|
||||||
|
|
||||||
|
for (int jj = 0; jj < jnum; jj++) {
|
||||||
|
j = jlist[jj];
|
||||||
|
j &= NEIGHMASK;
|
||||||
|
|
||||||
|
if (!(mask[j] & groupbits[rxnID])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (i_limit_tags[j] != 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
jtype = type[j];
|
||||||
|
possible = 0;
|
||||||
|
|
||||||
|
if (itype == iatomtype[rxnID] && jtype == jatomtype[rxnID]) {
|
||||||
|
possible = 1;
|
||||||
|
} else if (itype == jatomtype[rxnID] && jtype == iatomtype[rxnID]) {
|
||||||
|
possible = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (possible == 0) continue;
|
||||||
|
|
||||||
|
// do not allow bonding atoms within special list
|
||||||
|
for (int k = 0; k < nspecial[i][2]; k++)
|
||||||
|
if (special[i][k] == tag[j]) possible = 0;
|
||||||
|
if (!possible) continue;
|
||||||
|
|
||||||
|
delx = xtmp - x[j][0];
|
||||||
|
dely = ytmp - x[j][1];
|
||||||
|
delz = ztmp - x[j][2];
|
||||||
|
rsq = delx*delx + dely*dely + delz*delz;
|
||||||
|
|
||||||
|
if (rsq >= cutsq[rxnID][1] || rsq <= cutsq[rxnID][0]) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (rsq < distsq[i][1]) {
|
||||||
|
partner[i] = tag[j];
|
||||||
|
distsq[i][1] = rsq;
|
||||||
|
}
|
||||||
|
if (rsq < distsq[j][1]) {
|
||||||
|
partner[j] = tag[i];
|
||||||
|
distsq[j][1] = rsq;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------
|
||||||
|
Slightly simpler to find bonding partner when a close neighbor
|
||||||
|
------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void FixBondReact::close_partner()
|
||||||
|
{
|
||||||
|
int n,i1,i2,itype,jtype;
|
||||||
|
double delx,dely,delz,rsq;
|
||||||
|
|
||||||
|
double **x = atom->x;
|
||||||
|
tagint *tag = atom->tag;
|
||||||
|
int *type = atom->type;
|
||||||
|
int *mask = atom->mask;
|
||||||
|
int **nspecial = atom->nspecial;
|
||||||
|
tagint **special = atom->special;
|
||||||
|
|
||||||
|
// per-atom property indicating if in bond/react master group
|
||||||
|
int flag;
|
||||||
|
int index1 = atom->find_custom("limit_tags",flag);
|
||||||
|
int *i_limit_tags = atom->ivector[index1];
|
||||||
|
|
||||||
|
// loop over special list
|
||||||
|
for (int ii = 0; ii < atom->nlocal; ii++) {
|
||||||
|
itype = type[ii];
|
||||||
|
n = 0;
|
||||||
|
if (closeneigh[rxnID] != 0)
|
||||||
|
n = nspecial[ii][closeneigh[rxnID]-1];
|
||||||
|
for (; n < nspecial[ii][closeneigh[rxnID]]; n++) {
|
||||||
|
i1 = ii;
|
||||||
|
i2 = atom->map(special[ii][n]);
|
||||||
|
jtype = type[i2];
|
||||||
|
if (!(mask[i1] & groupbits[rxnID])) continue;
|
||||||
|
if (!(mask[i2] & groupbits[rxnID])) continue;
|
||||||
|
if (i_limit_tags[i1] != 0) continue;
|
||||||
|
if (i_limit_tags[i2] != 0) continue;
|
||||||
|
if (itype != iatomtype[rxnID] || jtype != jatomtype[rxnID]) continue;
|
||||||
|
|
||||||
|
delx = x[i1][0] - x[i2][0];
|
||||||
|
dely = x[i1][1] - x[i2][1];
|
||||||
|
delz = x[i1][2] - x[i2][2];
|
||||||
|
rsq = delx*delx + dely*dely + delz*delz;
|
||||||
|
if (rsq >= cutsq[rxnID][1] || rsq <= cutsq[rxnID][0]) continue;
|
||||||
|
|
||||||
|
if (rsq > distsq[i1][0]) {
|
||||||
|
partner[i1] = tag[i2];
|
||||||
|
distsq[i1][0] = rsq;
|
||||||
|
}
|
||||||
|
if (rsq > distsq[i2][0]) {
|
||||||
|
partner[i2] = tag[i1];
|
||||||
|
distsq[i2][0] = rsq;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
@ -1076,8 +1139,8 @@ void FixBondReact::make_a_guess()
|
||||||
if (assigned_count == nfirst_neighs) status = GUESSFAIL;
|
if (assigned_count == nfirst_neighs) status = GUESSFAIL;
|
||||||
|
|
||||||
// check if all neigh atom types are the same between simulation and unreacted mol
|
// check if all neigh atom types are the same between simulation and unreacted mol
|
||||||
int mol_ntypes[atom->ntypes];
|
int *mol_ntypes = new int[atom->ntypes];
|
||||||
int lcl_ntypes[atom->ntypes];
|
int *lcl_ntypes = new int[atom->ntypes];
|
||||||
|
|
||||||
for (int i = 0; i < atom->ntypes; i++) {
|
for (int i = 0; i < atom->ntypes; i++) {
|
||||||
mol_ntypes[i] = 0;
|
mol_ntypes[i] = 0;
|
||||||
|
@ -1096,6 +1159,9 @@ void FixBondReact::make_a_guess()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete [] mol_ntypes;
|
||||||
|
delete [] lcl_ntypes;
|
||||||
|
|
||||||
// okay everything seems to be in order. let's assign some ID pairs!!!
|
// okay everything seems to be in order. let's assign some ID pairs!!!
|
||||||
neighbor_loop();
|
neighbor_loop();
|
||||||
}
|
}
|
||||||
|
@ -1384,7 +1450,7 @@ void FixBondReact::find_landlocked_atoms(int myrxn)
|
||||||
// if no edge atoms (small reacting molecule), all atoms are landlocked
|
// if no edge atoms (small reacting molecule), all atoms are landlocked
|
||||||
// we can delete all current topology of landlocked atoms and replace
|
// we can delete all current topology of landlocked atoms and replace
|
||||||
|
|
||||||
// alwasy remove edge atoms from landlocked list
|
// always remove edge atoms from landlocked list
|
||||||
for (int i = 0; i < twomol->natoms; i++) {
|
for (int i = 0; i < twomol->natoms; i++) {
|
||||||
if (edge[equivalences[i][1][myrxn]-1][myrxn] == 1) landlocked_atoms[i][myrxn] = 0;
|
if (edge[equivalences[i][1][myrxn]-1][myrxn] == 1) landlocked_atoms[i][myrxn] = 0;
|
||||||
else landlocked_atoms[i][myrxn] = 1;
|
else landlocked_atoms[i][myrxn] = 1;
|
||||||
|
@ -1395,7 +1461,6 @@ void FixBondReact::find_landlocked_atoms(int myrxn)
|
||||||
if ((force->dihedral && twomol->dihedralflag) ||
|
if ((force->dihedral && twomol->dihedralflag) ||
|
||||||
(force->improper && twomol->improperflag)) nspecial_limit = 1;
|
(force->improper && twomol->improperflag)) nspecial_limit = 1;
|
||||||
|
|
||||||
|
|
||||||
if (nspecial_limit != -1) {
|
if (nspecial_limit != -1) {
|
||||||
for (int i = 0; i < twomol->natoms; i++) {
|
for (int i = 0; i < twomol->natoms; i++) {
|
||||||
for (int j = 0; j < twomol->nspecial[i][nspecial_limit]; j++) {
|
for (int j = 0; j < twomol->nspecial[i][nspecial_limit]; j++) {
|
||||||
|
@ -1410,11 +1475,21 @@ void FixBondReact::find_landlocked_atoms(int myrxn)
|
||||||
|
|
||||||
// bad molecule templates check
|
// bad molecule templates check
|
||||||
// if atoms change types, but aren't landlocked, that's bad
|
// if atoms change types, but aren't landlocked, that's bad
|
||||||
|
|
||||||
for (int i = 0; i < twomol->natoms; i++) {
|
for (int i = 0; i < twomol->natoms; i++) {
|
||||||
if (twomol->type[i] != onemol->type[equivalences[i][1][myrxn]-1] && landlocked_atoms[i][myrxn] == 0)
|
if (twomol->type[i] != onemol->type[equivalences[i][1][myrxn]-1] && landlocked_atoms[i][myrxn] == 0)
|
||||||
error->one(FLERR,"Atom affected by reaction too close to template edge");
|
error->one(FLERR,"Atom affected by reaction too close to template edge");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// also, if atoms change number of bonds, but aren't landlocked, that could be bad
|
||||||
|
if (me == 0)
|
||||||
|
for (int i = 0; i < twomol->natoms; i++) {
|
||||||
|
if (twomol->nspecial[i][0] != onemol->nspecial[equivalences[i][1][myrxn]-1][0] && landlocked_atoms[i][myrxn] == 0) {
|
||||||
|
char str[128];
|
||||||
|
sprintf(str,"An atom in 'react #%d' changes bond connectivity but not atom type",myrxn+1);
|
||||||
|
error->warning(FLERR,str);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
@ -1438,7 +1513,8 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode)
|
||||||
dedup_size = global_megasize;
|
dedup_size = global_megasize;
|
||||||
}
|
}
|
||||||
|
|
||||||
tagint dedup_glove[max_natoms+1][dedup_size];
|
tagint **dedup_glove;
|
||||||
|
memory->create(dedup_glove,max_natoms+1,dedup_size,"bond/react:dedup_glove");
|
||||||
|
|
||||||
if (dedup_mode == 0) {
|
if (dedup_mode == 0) {
|
||||||
for (int i = 0; i < dedup_size; i++) {
|
for (int i = 0; i < dedup_size; i++) {
|
||||||
|
@ -1456,8 +1532,8 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode)
|
||||||
|
|
||||||
// dedup_mask is size dedup_size and filters reactions that have been deleted
|
// dedup_mask is size dedup_size and filters reactions that have been deleted
|
||||||
// a value of 1 means this reaction instance has been deleted
|
// a value of 1 means this reaction instance has been deleted
|
||||||
int dedup_mask[dedup_size];
|
int *dedup_mask = new int[dedup_size];
|
||||||
int dup_list[dedup_size];
|
int *dup_list = new int[dedup_size];
|
||||||
|
|
||||||
for (int i = 0; i < dedup_size; i++) {
|
for (int i = 0; i < dedup_size; i++) {
|
||||||
dedup_mask[i] = 0;
|
dedup_mask[i] = 0;
|
||||||
|
@ -1467,14 +1543,12 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode)
|
||||||
// let's randomly mix up our reaction instances first
|
// let's randomly mix up our reaction instances first
|
||||||
// then we can feel okay about ignoring ones we've already deleted (or accepted)
|
// then we can feel okay about ignoring ones we've already deleted (or accepted)
|
||||||
// based off std::shuffle
|
// based off std::shuffle
|
||||||
// will produce same 'random' sequences on different processors.
|
int *temp_rxn = new int[max_natoms+1];
|
||||||
// not really an issue, as reaction lists are independent
|
|
||||||
for (int i = dedup_size-1; i > 0; --i) { //dedup_size
|
for (int i = dedup_size-1; i > 0; --i) { //dedup_size
|
||||||
//choose random entry to swap current one with
|
// choose random entry to swap current one with
|
||||||
int k = rand() % (i+1);
|
int k = floor(random[0]->uniform()*(i+1));
|
||||||
|
|
||||||
// swap entries
|
// swap entries
|
||||||
int temp_rxn[max_natoms+1];
|
|
||||||
for (int j = 0; j < max_natoms+1; j++)
|
for (int j = 0; j < max_natoms+1; j++)
|
||||||
temp_rxn[j] = dedup_glove[j][i];
|
temp_rxn[j] = dedup_glove[j][i];
|
||||||
|
|
||||||
|
@ -1483,6 +1557,7 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode)
|
||||||
dedup_glove[j][k] = temp_rxn[j];
|
dedup_glove[j][k] = temp_rxn[j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
delete [] temp_rxn;
|
||||||
|
|
||||||
for (int i = 0; i < dedup_size; i++) {
|
for (int i = 0; i < dedup_size; i++) {
|
||||||
if (dedup_mask[i] == 0) {
|
if (dedup_mask[i] == 0) {
|
||||||
|
@ -1557,6 +1632,10 @@ void FixBondReact::dedup_mega_gloves(int dedup_mode)
|
||||||
}
|
}
|
||||||
global_megasize = new_global_megasize;
|
global_megasize = new_global_megasize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memory->destroy(dedup_glove);
|
||||||
|
delete [] dedup_mask;
|
||||||
|
delete [] dup_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
|
@ -1743,9 +1822,6 @@ void FixBondReact::ghost_glovecast()
|
||||||
for (int j = 0; j < global_megasize; j++)
|
for (int j = 0; j < global_megasize; j++)
|
||||||
global_mega_glove[i][j] = 0;
|
global_mega_glove[i][j] = 0;
|
||||||
|
|
||||||
|
|
||||||
ghostcheck_flag = 1;
|
|
||||||
|
|
||||||
if (ghostly_num_mega > 0) {
|
if (ghostly_num_mega > 0) {
|
||||||
for (int i = 0; i < max_natoms+1; i++) {
|
for (int i = 0; i < max_natoms+1; i++) {
|
||||||
for (int j = 0; j < ghostly_num_mega; j++) {
|
for (int j = 0; j < ghostly_num_mega; j++) {
|
||||||
|
@ -1806,7 +1882,8 @@ void FixBondReact::update_everything()
|
||||||
// add check for local atoms as well
|
// add check for local atoms as well
|
||||||
|
|
||||||
int update_num_mega;
|
int update_num_mega;
|
||||||
tagint update_mega_glove[max_natoms+1][MAX(local_num_mega,global_megasize)];
|
tagint **update_mega_glove;
|
||||||
|
memory->create(update_mega_glove,max_natoms+1,MAX(local_num_mega,global_megasize),"bond/react:update_mega_glove");
|
||||||
|
|
||||||
for (int pass = 0; pass < 2; pass++) {
|
for (int pass = 0; pass < 2; pass++) {
|
||||||
|
|
||||||
|
@ -2217,6 +2294,9 @@ void FixBondReact::update_everything()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memory->destroy(update_mega_glove);
|
||||||
|
|
||||||
// something to think about: this could done much more concisely if
|
// something to think about: this could done much more concisely if
|
||||||
// all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG
|
// all atom-level info (bond,angles, etc...) were kinda inherited from a common data struct --JG
|
||||||
|
|
||||||
|
@ -2522,7 +2602,10 @@ int FixBondReact::pack_reverse_comm(int n, int first, double *buf)
|
||||||
|
|
||||||
for (i = first; i < last; i++) {
|
for (i = first; i < last; i++) {
|
||||||
buf[m++] = ubuf(partner[i]).d;
|
buf[m++] = ubuf(partner[i]).d;
|
||||||
buf[m++] = distsq[i];
|
if (closeneigh[rxnID] < 0)
|
||||||
|
buf[m++] = distsq[i][1];
|
||||||
|
else
|
||||||
|
buf[m++] = distsq[i][0];
|
||||||
}
|
}
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
@ -2538,10 +2621,16 @@ void FixBondReact::unpack_reverse_comm(int n, int *list, double *buf)
|
||||||
if (commflag != 1) {
|
if (commflag != 1) {
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
j = list[i];
|
j = list[i];
|
||||||
if (buf[m+1] < distsq[j]) {
|
if (closeneigh[rxnID] < 0)
|
||||||
|
if (buf[m+1] < distsq[j][1]) {
|
||||||
partner[j] = (tagint) ubuf(buf[m++]).i;
|
partner[j] = (tagint) ubuf(buf[m++]).i;
|
||||||
distsq[j] = buf[m++];
|
distsq[j][1] = buf[m++];
|
||||||
} else m += 2;
|
} else m += 2;
|
||||||
|
else
|
||||||
|
if (buf[m+1] > distsq[j][0]) {
|
||||||
|
partner[j] = (tagint) ubuf(buf[m++]).i;
|
||||||
|
distsq[j][0] = buf[m++];
|
||||||
|
} else m += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ class FixBondReact : public Fix {
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int *iatomtype,*jatomtype;
|
int *iatomtype,*jatomtype;
|
||||||
int *seed;
|
int *seed;
|
||||||
double *cutsq,*fraction;
|
double **cutsq,*fraction;
|
||||||
tagint lastcheck;
|
tagint lastcheck;
|
||||||
int stabilization_flag;
|
int stabilization_flag;
|
||||||
int *stabilize_steps_flag;
|
int *stabilize_steps_flag;
|
||||||
|
@ -66,7 +66,7 @@ class FixBondReact : public Fix {
|
||||||
int nmax; // max num local atoms
|
int nmax; // max num local atoms
|
||||||
int max_natoms; // max natoms in a molecule template
|
int max_natoms; // max natoms in a molecule template
|
||||||
tagint *partner,*finalpartner;
|
tagint *partner,*finalpartner;
|
||||||
double *distsq,*probability;
|
double **distsq,*probability;
|
||||||
int *ncreate;
|
int *ncreate;
|
||||||
int maxcreate;
|
int maxcreate;
|
||||||
int allncreate;
|
int allncreate;
|
||||||
|
@ -96,10 +96,9 @@ class FixBondReact : public Fix {
|
||||||
void superimpose_algorithm(); // main function of the superimpose algorithm
|
void superimpose_algorithm(); // main function of the superimpose algorithm
|
||||||
|
|
||||||
int *ibonding,*jbonding;
|
int *ibonding,*jbonding;
|
||||||
|
int *closeneigh; // indicates if bonding atoms of a rxn are 1-2, 1-3, or 1-4 neighbors
|
||||||
int nedge,nequivalent; // number of edge, equivalent atoms in mapping file
|
int nedge,nequivalent; // number of edge, equivalent atoms in mapping file
|
||||||
int attempted_rxn; // there was an attempt!
|
int attempted_rxn; // there was an attempt!
|
||||||
int ghostcheck_flag; // idicates whether a reaction instances contains a nonlocal atom
|
|
||||||
int this_rxn_count; // num of local reaction occurrences
|
|
||||||
int *local_rxn_count;
|
int *local_rxn_count;
|
||||||
int *ghostly_rxn_count;
|
int *ghostly_rxn_count;
|
||||||
int avail_guesses; // num of restore points available
|
int avail_guesses; // num of restore points available
|
||||||
|
@ -143,6 +142,8 @@ class FixBondReact : public Fix {
|
||||||
void skip_lines(int, char *);
|
void skip_lines(int, char *);
|
||||||
int parse(char *, char **, int);
|
int parse(char *, char **, int);
|
||||||
|
|
||||||
|
void far_partner();
|
||||||
|
void close_partner();
|
||||||
void find_landlocked_atoms(int);
|
void find_landlocked_atoms(int);
|
||||||
void glove_ghostcheck();
|
void glove_ghostcheck();
|
||||||
void ghost_glovecast();
|
void ghost_glovecast();
|
||||||
|
|
Loading…
Reference in New Issue