mirror of https://github.com/lammps/lammps.git
Merge pull request #452 from akohlmey/small-fixes-and-updates
Small fixes and updates
This commit is contained in:
commit
dcc5472cba
|
@ -11171,6 +11171,12 @@ Self-explanatory. :dd
|
||||||
If the fix changes the timestep, the dump dcd file will not
|
If the fix changes the timestep, the dump dcd file will not
|
||||||
reflect the change. :dd
|
reflect the change. :dd
|
||||||
|
|
||||||
|
{Energy due to X extra global DOFs will be included in minimizer energies} :dt
|
||||||
|
|
||||||
|
When using fixes like box/relax, the potential energy used by the minimizer
|
||||||
|
is augmented by an additional energy provided by the fix. Thus the printed
|
||||||
|
converged energy may be different from the total potential energy. :dd
|
||||||
|
|
||||||
{Energy tally does not account for 'zero yes'} :dt
|
{Energy tally does not account for 'zero yes'} :dt
|
||||||
|
|
||||||
The energy removed by using the 'zero yes' flag is not accounted
|
The energy removed by using the 'zero yes' flag is not accounted
|
||||||
|
|
|
@ -369,15 +369,18 @@ supports it. It has its own WWW page at
|
||||||
|
|
||||||
msi2lmp tool :h4,link(msi)
|
msi2lmp tool :h4,link(msi)
|
||||||
|
|
||||||
The msi2lmp sub-directory contains a tool for creating LAMMPS input
|
The msi2lmp sub-directory contains a tool for creating LAMMPS template
|
||||||
data files from BIOVIA's Materias Studio files (formerly Accelrys'
|
input and data files from BIOVIA's Materias Studio files (formerly Accelrys'
|
||||||
Insight MD code, formerly MSI/Biosym and its Discover MD code).
|
Insight MD code, formerly MSI/Biosym and its Discover MD code).
|
||||||
|
|
||||||
This tool was written by John Carpenter (Cray), Michael Peachey
|
This tool was written by John Carpenter (Cray), Michael Peachey
|
||||||
(Cray), and Steve Lustig (Dupont). Several people contributed changes
|
(Cray), and Steve Lustig (Dupont). Several people contributed changes
|
||||||
to remove bugs and adapt its output to changes in LAMMPS.
|
to remove bugs and adapt its output to changes in LAMMPS.
|
||||||
|
|
||||||
See the README file for more information.
|
This tool has several known limitations and is no longer under active
|
||||||
|
development, so there are no changes except for the occasional bugfix.
|
||||||
|
|
||||||
|
See the README file in the tools/msi2lmp folder for more information.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ Bond Styles :h1
|
||||||
bond_none
|
bond_none
|
||||||
bond_nonlinear
|
bond_nonlinear
|
||||||
bond_oxdna
|
bond_oxdna
|
||||||
bond_oxdna2
|
|
||||||
bond_quartic
|
bond_quartic
|
||||||
bond_table
|
bond_table
|
||||||
bond_zero
|
bond_zero
|
||||||
|
|
|
@ -67,9 +67,10 @@ target value as the {Tstart} and {Tstop} arguments, so that the diffusion
|
||||||
matrix that gives canonical sampling for a given A is computed automatically.
|
matrix that gives canonical sampling for a given A is computed automatically.
|
||||||
However, the GLE framework also allow for non-equilibrium sampling, that
|
However, the GLE framework also allow for non-equilibrium sampling, that
|
||||||
can be used for instance to model inexpensively zero-point energy
|
can be used for instance to model inexpensively zero-point energy
|
||||||
effects "(Ceriotti2)"_#Ceriotti2. This is achieved specifying the
|
effects "(Ceriotti2)"_#Ceriotti2. This is achieved specifying the {noneq}
|
||||||
{noneq} keyword followed by the name of the file that contains the
|
keyword followed by the name of the file that contains the static covariance
|
||||||
static covariance matrix for the non-equilibrium dynamics.
|
matrix for the non-equilibrium dynamics. Please note, that the covariance
|
||||||
|
matrix is expected to be given in [temperature units].
|
||||||
|
|
||||||
Since integrating GLE dynamics can be costly when used together with
|
Since integrating GLE dynamics can be costly when used together with
|
||||||
simple potentials, one can use the {every} optional keyword to
|
simple potentials, one can use the {every} optional keyword to
|
||||||
|
@ -148,7 +149,7 @@ dpd/tstat"_pair_dpd.html, "fix gld"_fix_gld.html
|
||||||
1170-80 (2010)
|
1170-80 (2010)
|
||||||
|
|
||||||
:link(GLE4MD)
|
:link(GLE4MD)
|
||||||
[(GLE4MD)] "http://epfl-cosmo.github.io/gle4md/"_http://epfl-cosmo.github.io/gle4md/
|
[(GLE4MD)] "http://gle4md.org/"_http://gle4md.org/
|
||||||
|
|
||||||
:link(Ceriotti2)
|
:link(Ceriotti2)
|
||||||
[(Ceriotti2)] Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,
|
[(Ceriotti2)] Ceriotti, Bussi and Parrinello, Phys Rev Lett 103,
|
||||||
|
|
|
@ -45,12 +45,9 @@ above, or in the data file or restart files read by the
|
||||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||||
commands:
|
commands:
|
||||||
|
|
||||||
K (energy/radian^2)
|
K (energy)
|
||||||
X0 (degrees) :ul
|
X0 (degrees) :ul
|
||||||
|
|
||||||
X0 is specified in degrees, but LAMMPS converts it to radians
|
|
||||||
internally; hence the units of K are in energy/radian^2.
|
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||||
|
|
|
@ -49,12 +49,9 @@ above, or in the data file or restart files read by the
|
||||||
"read_data"_read_data.html or "read_restart"_read_restart.html
|
"read_data"_read_data.html or "read_restart"_read_restart.html
|
||||||
commands:
|
commands:
|
||||||
|
|
||||||
K (energy/radian^2)
|
K (energy)
|
||||||
theta0 (degrees) :ul
|
theta0 (degrees) :ul
|
||||||
|
|
||||||
theta0 is specified in degrees, but LAMMPS converts it to radians
|
|
||||||
internally; hence the units of K are in energy/radian^2.
|
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
Styles with a {gpu}, {intel}, {kk}, {omp}, or {opt} suffix are
|
||||||
|
|
|
@ -225,6 +225,12 @@ special_bonds lj/coul 1e-20 1e-20 0.5
|
||||||
pair_hybrid tersoff lj/cut/coul/long 12.0
|
pair_hybrid tersoff lj/cut/coul/long 12.0
|
||||||
pair_modify pair tersoff special lj/coul 1.0 1.0 1.0 :pre
|
pair_modify pair tersoff special lj/coul 1.0 1.0 1.0 :pre
|
||||||
|
|
||||||
|
For use with the various "compute */tally"_compute_tally.html
|
||||||
|
computes, the "pair_modify compute/tally"_pair_modify.html
|
||||||
|
command can be used to selectively turn off processing of
|
||||||
|
the compute tally styles, for example, if those pair styles
|
||||||
|
(e.g. manybody styles) do not support this feature.
|
||||||
|
|
||||||
See the "pair_modify"_pair_modify.html doc page for details on
|
See the "pair_modify"_pair_modify.html doc page for details on
|
||||||
the specific syntax, requirements and restrictions.
|
the specific syntax, requirements and restrictions.
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,13 @@ pair_modify keyword values ... :pre
|
||||||
one or more keyword/value pairs may be listed :ulb,l
|
one or more keyword/value pairs may be listed :ulb,l
|
||||||
keyword = {pair} or {shift} or {mix} or {table} or {table/disp} or {tabinner} or {tabinner/disp} or {tail} or {compute} :l
|
keyword = {pair} or {shift} or {mix} or {table} or {table/disp} or {tabinner} or {tabinner/disp} or {tail} or {compute} :l
|
||||||
{pair} values = sub-style N {special} which wt1 wt2 wt3
|
{pair} values = sub-style N {special} which wt1 wt2 wt3
|
||||||
|
or sub-style N {compute/tally} flag
|
||||||
sub-style = sub-style of "pair hybrid"_pair_hybrid.html
|
sub-style = sub-style of "pair hybrid"_pair_hybrid.html
|
||||||
N = which instance of sub-style (only if sub-style is used multiple times)
|
N = which instance of sub-style (only if sub-style is used multiple times)
|
||||||
{special} which wt1 wt2 wt3 = override {special_bonds} settings (optional)
|
{special} which wt1 wt2 wt3 = override {special_bonds} settings (optional)
|
||||||
which = {lj/coul} or {lj} or {coul}
|
which = {lj/coul} or {lj} or {coul}
|
||||||
w1,w2,w3 = 1-2, 1-3, and 1-4 weights from 0.0 to 1.0 inclusive
|
w1,w2,w3 = 1-2, 1-3, and 1-4 weights from 0.0 to 1.0 inclusive
|
||||||
|
{compute/tally} flag = {yes} or {no}
|
||||||
{mix} value = {geometric} or {arithmetic} or {sixthpower}
|
{mix} value = {geometric} or {arithmetic} or {sixthpower}
|
||||||
{shift} value = {yes} or {no}
|
{shift} value = {yes} or {no}
|
||||||
{table} value = N
|
{table} value = N
|
||||||
|
@ -40,6 +42,7 @@ pair_modify shift yes mix geometric
|
||||||
pair_modify tail yes
|
pair_modify tail yes
|
||||||
pair_modify table 12
|
pair_modify table 12
|
||||||
pair_modify pair lj/cut compute no
|
pair_modify pair lj/cut compute no
|
||||||
|
pair_modify pair tersoff compute/tally no
|
||||||
pair_modify pair lj/cut/coul/long 1 special lj/coul 0.0 0.0 0.0 :pre
|
pair_modify pair lj/cut/coul/long 1 special lj/coul 0.0 0.0 0.0 :pre
|
||||||
|
|
||||||
[Description:]
|
[Description:]
|
||||||
|
@ -60,9 +63,12 @@ keywords will be applied to. Note that if the {pair} keyword is not
|
||||||
used, and the pair style is {hybrid} or {hybrid/overlay}, then all the
|
used, and the pair style is {hybrid} or {hybrid/overlay}, then all the
|
||||||
specified keywords will be applied to all sub-styles.
|
specified keywords will be applied to all sub-styles.
|
||||||
|
|
||||||
The {special} keyword can only be used in conjunction with the {pair}
|
The {special} and {compute/tally} keywords can [only] be used in
|
||||||
keyword and must directly follow it. It allows to override the
|
conjunction with the {pair} keyword and must directly follow it.
|
||||||
|
{special} allows to override the
|
||||||
"special_bonds"_special_bonds.html settings for the specified sub-style.
|
"special_bonds"_special_bonds.html settings for the specified sub-style.
|
||||||
|
{compute/tally} allows to disable or enable registering
|
||||||
|
"compute */tally"_compute_tally.html computes for a given sub-style.
|
||||||
More details are given below.
|
More details are given below.
|
||||||
|
|
||||||
The {mix} keyword affects pair coefficients for interactions between
|
The {mix} keyword affects pair coefficients for interactions between
|
||||||
|
@ -231,6 +237,14 @@ setting. Substituting 1.0e-10 for 0.0 and 0.9999999999 for 1.0 is
|
||||||
usually a sufficient workaround in this case without causing a
|
usually a sufficient workaround in this case without causing a
|
||||||
significant error.
|
significant error.
|
||||||
|
|
||||||
|
The {compute/tally} keyword takes exactly 1 argument ({no} or {yes}),
|
||||||
|
and allows to selectively disable or enable processing of the various
|
||||||
|
"compute */tally"_compute_tally.html styles for a given
|
||||||
|
"pair hybrid or hybrid/overlay"_pair_hybrid.html sub-style.
|
||||||
|
|
||||||
|
NOTE: Any "pair_modify pair compute/tally" command must be issued
|
||||||
|
[before] the corresponding compute style is defined.
|
||||||
|
|
||||||
:line
|
:line
|
||||||
|
|
||||||
[Restrictions:] none
|
[Restrictions:] none
|
||||||
|
@ -240,8 +254,9 @@ conflicting options. You cannot use {tail} yes with 2d simulations.
|
||||||
|
|
||||||
[Related commands:]
|
[Related commands:]
|
||||||
|
|
||||||
"pair_style"_pair_style.html, "pair_coeff"_pair_coeff.html,
|
"pair_style"_pair_style.html, "pair_style hybrid"_pair_hybrid.html,
|
||||||
"thermo_style"_thermo_style.html
|
pair_coeff"_pair_coeff.html, "thermo_style"_thermo_style.html,
|
||||||
|
"compute */tally"_compute_tally.html
|
||||||
|
|
||||||
[Default:]
|
[Default:]
|
||||||
|
|
||||||
|
|
|
@ -150,6 +150,8 @@ hybrid"_pair_hybrid.html.
|
||||||
This pair style requires the "newton"_newton.html command to be {on}
|
This pair style requires the "newton"_newton.html command to be {on}
|
||||||
for non-bonded interactions.
|
for non-bonded interactions.
|
||||||
|
|
||||||
|
This pair style is not compatible with "rigid body integrators"_fix_rigid.html
|
||||||
|
|
||||||
[Related commands:]
|
[Related commands:]
|
||||||
|
|
||||||
"pair_style hybrid"_pair_hybrid.html, "pair_coeff"_pair_coeff.html,
|
"pair_style hybrid"_pair_hybrid.html, "pair_coeff"_pair_coeff.html,
|
||||||
|
|
|
@ -310,7 +310,7 @@ which corresponds to SELF in the python command. The first line of
|
||||||
the function imports the Python module lammps.py in the python dir of
|
the function imports the Python module lammps.py in the python dir of
|
||||||
the distribution. The second line creates a Python object "lmp" which
|
the distribution. The second line creates a Python object "lmp" which
|
||||||
wraps the instance of LAMMPS that called the function. The
|
wraps the instance of LAMMPS that called the function. The
|
||||||
"ptr=lmpptr" argument is what makes that happen. The thrid line
|
"ptr=lmpptr" argument is what makes that happen. The third line
|
||||||
invokes the command() function in the LAMMPS library interface. It
|
invokes the command() function in the LAMMPS library interface. It
|
||||||
takes a single string argument which is a LAMMPS input script command
|
takes a single string argument which is a LAMMPS input script command
|
||||||
for LAMMPS to execute, the same as if it appeared in your input
|
for LAMMPS to execute, the same as if it appeared in your input
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
# When you build LAMMPS with the USER-MOLFILE package installed, it will
|
# When you build LAMMPS with the USER-MOLFILE package installed, it will
|
||||||
# use the 3 settings in this file. They should be set as follows.
|
# use the 3 settings in this file. They should be set as follows.
|
||||||
#
|
#
|
||||||
|
# The molfile_SYSINC setting is to point to the folder with the VMD
|
||||||
|
# plugin headers. By default it points to bundled headers in this folder
|
||||||
|
#
|
||||||
# The molfile_SYSLIB setting is for a system dynamic loading library
|
# The molfile_SYSLIB setting is for a system dynamic loading library
|
||||||
# that will be used to load the molfile plugins. It contains functions
|
# that will be used to load the molfile plugins. It contains functions
|
||||||
# like dlopen(), dlsym() and so on for dynamic linking of executable
|
# like dlopen(), dlsym() and so on for dynamic linking of executable
|
||||||
|
@ -24,7 +27,10 @@
|
||||||
|
|
||||||
# Settings that the LAMMPS build will import when this package is installed
|
# Settings that the LAMMPS build will import when this package is installed
|
||||||
|
|
||||||
molfile_SYSINC =
|
# change this to -I/path/to/your/lib/vmd/plugins/include if the bundled
|
||||||
|
# header files are incompatible with your VMD plugsins
|
||||||
|
molfile_SYSINC =-I../../lib/molfile
|
||||||
|
#
|
||||||
ifneq ($(LIBOBJDIR),/Obj_mingw32)
|
ifneq ($(LIBOBJDIR),/Obj_mingw32)
|
||||||
ifneq ($(LIBOBJDIR),/Obj_mingw64)
|
ifneq ($(LIBOBJDIR),/Obj_mingw64)
|
||||||
ifneq ($(LIBOBJDIR),/Obj_mingw32-mpi)
|
ifneq ($(LIBOBJDIR),/Obj_mingw32-mpi)
|
||||||
|
|
|
@ -6,17 +6,30 @@ and write_dump commands in a LAMMPS input script.
|
||||||
More information about the VMD molfile plugins can be found at
|
More information about the VMD molfile plugins can be found at
|
||||||
http://www.ks.uiuc.edu/Research/vmd/plugins/molfile.
|
http://www.ks.uiuc.edu/Research/vmd/plugins/molfile.
|
||||||
|
|
||||||
More specifically, to be able to dynamically load and execute the
|
NOTE: while the programming interface (API) of the VMD molfile plugins
|
||||||
plugins from inside LAMMPS, you need to link with a system library
|
is backward compatible (i.e. you can expect to be able to compile this
|
||||||
containing functions like dlopen(), dlsym() and so on for dynamic
|
package for plugins from newer VMD packages), the binary interface
|
||||||
linking of executable code into an executable. This library is
|
(ABI) is not. So it is necessary to compile this package with the
|
||||||
defined by setting the molfile_SYSLIB variable in the Makefile.lammps
|
VMD molfile plugin header files (vmdplugin.h and molfile_plugin.h)
|
||||||
file in this dir.
|
matching VMD installation that the (binary) plugin files are taken from.
|
||||||
|
These header files can be found inside the VMD installation tree under
|
||||||
|
"plugins/include". For convenience, this package includes a set of
|
||||||
|
header files that is compatible with VMD 1.9.3 (the current version
|
||||||
|
in April 2017). You need to adjust the molfile_SYSINC variable in the
|
||||||
|
Makefile.lammps file in this directory, in case you want to use VMD
|
||||||
|
molfile plugins from a different version. The interface is compatible
|
||||||
|
with plugins starting from VMD version 1.8.4.
|
||||||
|
|
||||||
|
In order to be able to dynamically load and execute the plugins from
|
||||||
|
inside LAMMPS, you need to link with a system library containing functions
|
||||||
|
like dlopen(), dlsym() and so on for dynamic linking of executable code
|
||||||
|
into an executable. This library is defined by setting the molfile_SYSLIB
|
||||||
|
variable in the Makefile.lammps file in this dir.
|
||||||
|
|
||||||
For Linux and most current unix-like operating systems, this can be
|
For Linux and most current unix-like operating systems, this can be
|
||||||
kept at the default setting of "-ldl" (on some platforms this library
|
kept at the default setting of "-ldl" (on some platforms this library
|
||||||
is called "-ldld"). For compilation on Windows, a slightly different
|
is called "-ldld"). For compilation on Windows, a slightly different
|
||||||
mechanism is used that is part of the Windows programming environment
|
mechanism is used that is part of the Windows programming environment
|
||||||
and this library is not needed.
|
and this kind of library is not needed.
|
||||||
|
|
||||||
See the header of Makefile.lammps for more info.
|
See the header of Makefile.lammps for more info.
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
*
|
*
|
||||||
* $RCSfile: molfile_plugin.h,v $
|
* $RCSfile: molfile_plugin.h,v $
|
||||||
* $Author: johns $ $Locker: $ $State: Exp $
|
* $Author: johns $ $Locker: $ $State: Exp $
|
||||||
* $Revision: 1.103 $ $Date: 2011/03/05 03:56:11 $
|
* $Revision: 1.108 $ $Date: 2016/02/26 03:17:01 $
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
@ -60,6 +60,21 @@ typedef ssize_t molfile_ssize_t; /**< for frame counts */
|
||||||
#define MOLFILE_MAXWAVEPERTS 25 /**< maximum number of wavefunctions
|
#define MOLFILE_MAXWAVEPERTS 25 /**< maximum number of wavefunctions
|
||||||
* per timestep */
|
* per timestep */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hard-coded direct-I/O page size constants for use by both VMD
|
||||||
|
* and the plugins that want to use direct, unbuffered I/O for high
|
||||||
|
* performance with SSDs etc. We use two constants to define the
|
||||||
|
* range of hardware page sizes that we can support, so that we can
|
||||||
|
* add support for larger 8KB or 16KB page sizes in the future
|
||||||
|
* as they become more prevalent in high-end storage systems.
|
||||||
|
*
|
||||||
|
* At present, VMD uses a hard-coded 4KB page size to reduce memory
|
||||||
|
* fragmentation, but these constants will make it easier to enable the
|
||||||
|
* use of larger page sizes in the future if it becomes necessary.
|
||||||
|
*/
|
||||||
|
#define MOLFILE_DIRECTIO_MIN_BLOCK_SIZE 4096
|
||||||
|
#define MOLFILE_DIRECTIO_MAX_BLOCK_SIZE 4096
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* File level comments, origin information, and annotations.
|
* File level comments, origin information, and annotations.
|
||||||
|
@ -96,8 +111,17 @@ typedef struct {
|
||||||
char resname[8]; /**< required residue name string */
|
char resname[8]; /**< required residue name string */
|
||||||
int resid; /**< required integer residue ID */
|
int resid; /**< required integer residue ID */
|
||||||
char segid[8]; /**< required segment name string, or "" */
|
char segid[8]; /**< required segment name string, or "" */
|
||||||
|
#if 0 && vmdplugin_ABIVERSION > 17
|
||||||
|
/* The new PDB file formats allows for much larger structures, */
|
||||||
|
/* which can therefore require longer chain ID strings. The */
|
||||||
|
/* new PDBx/mmCIF file formats do not have length limits on */
|
||||||
|
/* fields, so PDB chains could be arbitrarily long strings */
|
||||||
|
/* in such files. At present, we know we need at least 3-char */
|
||||||
|
/* chains for existing PDBx/mmCIF files. */
|
||||||
|
char chain[4]; /**< required chain name, or "" */
|
||||||
|
#else
|
||||||
char chain[2]; /**< required chain name, or "" */
|
char chain[2]; /**< required chain name, or "" */
|
||||||
|
#endif
|
||||||
/* rest are optional; use optflags to specify what's present */
|
/* rest are optional; use optflags to specify what's present */
|
||||||
char altloc[2]; /**< optional PDB alternate location code */
|
char altloc[2]; /**< optional PDB alternate location code */
|
||||||
char insertion[2]; /**< optional PDB insertion code */
|
char insertion[2]; /**< optional PDB insertion code */
|
||||||
|
@ -107,6 +131,23 @@ typedef struct {
|
||||||
float charge; /**< optional charge value */
|
float charge; /**< optional charge value */
|
||||||
float radius; /**< optional radius value */
|
float radius; /**< optional radius value */
|
||||||
int atomicnumber; /**< optional element atomic number */
|
int atomicnumber; /**< optional element atomic number */
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
char complex[16];
|
||||||
|
char assembly[16];
|
||||||
|
int qmregion;
|
||||||
|
int qmregionlink;
|
||||||
|
int qmlayer;
|
||||||
|
int qmlayerlink;
|
||||||
|
int qmfrag;
|
||||||
|
int qmfraglink;
|
||||||
|
string qmecp;
|
||||||
|
int qmadapt;
|
||||||
|
int qmect; /**< boolean */
|
||||||
|
int qmparam;
|
||||||
|
int autoparam;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(DESRES_CTNUMBER)
|
#if defined(DESRES_CTNUMBER)
|
||||||
int ctnumber; /**< mae ct block, 0-based, including meta */
|
int ctnumber; /**< mae ct block, 0-based, including meta */
|
||||||
#endif
|
#endif
|
||||||
|
@ -140,23 +181,19 @@ typedef struct {
|
||||||
#define MOLFILE_QMTS_SCFITER 0x0002
|
#define MOLFILE_QMTS_SCFITER 0x0002
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 10
|
|
||||||
typedef struct molfile_timestep_metadata {
|
typedef struct molfile_timestep_metadata {
|
||||||
unsigned int count; /**< total # timesteps; -1 if unknown */
|
unsigned int count; /**< total # timesteps; -1 if unknown */
|
||||||
unsigned int avg_bytes_per_timestep; /** bytes per timestep */
|
unsigned int avg_bytes_per_timestep; /** bytes per timestep */
|
||||||
int has_velocities; /**< if timesteps have velocities */
|
int has_velocities; /**< if timesteps have velocities */
|
||||||
} molfile_timestep_metadata_t;
|
} molfile_timestep_metadata_t;
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Per-timestep atom coordinates and periodic cell information
|
* Per-timestep atom coordinates and periodic cell information
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
float *coords; /**< coordinates of all atoms, arranged xyzxyzxyz */
|
float *coords; /**< coordinates of all atoms, arranged xyzxyzxyz */
|
||||||
#if vmdplugin_ABIVERSION > 10
|
|
||||||
float *velocities; /**< space for velocities of all atoms; same layout */
|
float *velocities; /**< space for velocities of all atoms; same layout */
|
||||||
/**< NULL unless has_velocities is set */
|
/**< NULL unless has_velocities is set */
|
||||||
#endif
|
|
||||||
|
|
||||||
/*@{*/
|
/*@{*/
|
||||||
/**
|
/**
|
||||||
|
@ -169,9 +206,7 @@ typedef struct {
|
||||||
float A, B, C, alpha, beta, gamma;
|
float A, B, C, alpha, beta, gamma;
|
||||||
/*@}*/
|
/*@}*/
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 10
|
|
||||||
double physical_time; /**< physical time point associated with this frame */
|
double physical_time; /**< physical time point associated with this frame */
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(DESRES_READ_TIMESTEP2)
|
#if defined(DESRES_READ_TIMESTEP2)
|
||||||
/* HACK to support generic trajectory information */
|
/* HACK to support generic trajectory information */
|
||||||
|
@ -217,10 +252,29 @@ typedef struct {
|
||||||
int ysize; /**< number of grid cells along the Y axis */
|
int ysize; /**< number of grid cells along the Y axis */
|
||||||
int zsize; /**< number of grid cells along the Z axis */
|
int zsize; /**< number of grid cells along the Z axis */
|
||||||
|
|
||||||
|
#if vmdplugin_ABIVERSION > 16
|
||||||
|
int has_scalar; /**< flag indicating presence of scalar volume */
|
||||||
|
int has_gradient; /**< flag indicating presence of vector volume */
|
||||||
|
int has_variance; /**< flag indicating presence of variance map */
|
||||||
|
#endif
|
||||||
int has_color; /**< flag indicating presence of voxel color data */
|
int has_color; /**< flag indicating presence of voxel color data */
|
||||||
} molfile_volumetric_t;
|
} molfile_volumetric_t;
|
||||||
|
|
||||||
|
|
||||||
|
#if vmdplugin_ABIVERSION > 16
|
||||||
|
/**
|
||||||
|
* Volumetric dataset read/write structure with both flag/parameter sets
|
||||||
|
* and VMD-allocated pointers for fields to be used by the plugin.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
int setidx; /**< volumetric dataset index to load/save */
|
||||||
|
float *scalar; /**< scalar density/potential field data */
|
||||||
|
float *gradient; /**< gradient vector field */
|
||||||
|
float *variance; /**< variance map indicating signal/noise */
|
||||||
|
float *rgb3f; /**< RGB floating point color texture map */
|
||||||
|
unsigned char *rgb3u; /**< RGB unsigned byte color texture map */
|
||||||
|
} molfile_volumetric_readwrite_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************
|
/**************************************************************
|
||||||
|
@ -231,9 +285,6 @@ typedef struct {
|
||||||
**************************************************************
|
**************************************************************
|
||||||
**************************************************************/
|
**************************************************************/
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 9
|
|
||||||
|
|
||||||
|
|
||||||
/* macros for the convergence status of a QM calculation. */
|
/* macros for the convergence status of a QM calculation. */
|
||||||
#define MOLFILE_QMSTATUS_UNKNOWN -1 /* don't know yet */
|
#define MOLFILE_QMSTATUS_UNKNOWN -1 /* don't know yet */
|
||||||
#define MOLFILE_QMSTATUS_OPT_CONV 0 /* optimization converged */
|
#define MOLFILE_QMSTATUS_OPT_CONV 0 /* optimization converged */
|
||||||
|
@ -485,8 +536,6 @@ typedef struct {
|
||||||
} molfile_qm_timestep_t;
|
} molfile_qm_timestep_t;
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**************************************************************
|
/**************************************************************
|
||||||
**************************************************************/
|
**************************************************************/
|
||||||
|
|
||||||
|
@ -609,12 +658,8 @@ typedef struct {
|
||||||
* This function can be called only after read_structure().
|
* This function can be called only after read_structure().
|
||||||
* Return MOLFILE_SUCCESS if no errors occur.
|
* Return MOLFILE_SUCCESS if no errors occur.
|
||||||
*/
|
*/
|
||||||
#if vmdplugin_ABIVERSION > 14
|
|
||||||
int (*read_bonds)(void *, int *nbonds, int **from, int **to, float **bondorder,
|
int (*read_bonds)(void *, int *nbonds, int **from, int **to, float **bondorder,
|
||||||
int **bondtype, int *nbondtypes, char ***bondtypename);
|
int **bondtype, int *nbondtypes, char ***bondtypename);
|
||||||
#else
|
|
||||||
int (*read_bonds)(void *, int *nbonds, int **from, int **to, float **bondorder);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* XXX this function will be augmented and possibly superceded by a
|
* XXX this function will be augmented and possibly superceded by a
|
||||||
|
@ -684,6 +729,9 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
int (* read_volumetric_data)(void *, int set, float *datablock,
|
int (* read_volumetric_data)(void *, int set, float *datablock,
|
||||||
float *colorblock);
|
float *colorblock);
|
||||||
|
#if vmdplugin_ABIVERSION > 16
|
||||||
|
int (* read_volumetric_data_ex)(void *, molfile_volumetric_readwrite_t *v);
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read raw graphics data stored in this file. Return the number of data
|
* Read raw graphics data stored in this file. Return the number of data
|
||||||
|
@ -723,14 +771,9 @@ typedef struct {
|
||||||
* bondtypenames can only be used of bondtypes is also given.
|
* bondtypenames can only be used of bondtypes is also given.
|
||||||
* Return MOLFILE_SUCCESS if no errors occur.
|
* Return MOLFILE_SUCCESS if no errors occur.
|
||||||
*/
|
*/
|
||||||
#if vmdplugin_ABIVERSION > 14
|
|
||||||
int (* write_bonds)(void *, int nbonds, int *from, int *to, float *bondorder,
|
int (* write_bonds)(void *, int nbonds, int *from, int *to, float *bondorder,
|
||||||
int *bondtype, int nbondtypes, char **bondtypename);
|
int *bondtype, int nbondtypes, char **bondtypename);
|
||||||
#else
|
|
||||||
int (* write_bonds)(void *, int nbonds, int *from, int *to, float *bondorder);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 9
|
|
||||||
/**
|
/**
|
||||||
* Write the specified volumetric data set into the space pointed to by
|
* Write the specified volumetric data set into the space pointed to by
|
||||||
* datablock. The * allocated for the datablock must be equal to
|
* datablock. The * allocated for the datablock must be equal to
|
||||||
|
@ -740,8 +783,11 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
int (* write_volumetric_data)(void *, molfile_volumetric_t *metadata,
|
int (* write_volumetric_data)(void *, molfile_volumetric_t *metadata,
|
||||||
float *datablock, float *colorblock);
|
float *datablock, float *colorblock);
|
||||||
|
#if vmdplugin_ABIVERSION > 16
|
||||||
|
int (* write_volumetric_data_ex)(void *, molfile_volumetric_t *metadata,
|
||||||
|
molfile_volumetric_readwrite_t *v);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 15
|
|
||||||
/**
|
/**
|
||||||
* Read in Angles, Dihedrals, Impropers, and Cross Terms and optionally types.
|
* Read in Angles, Dihedrals, Impropers, and Cross Terms and optionally types.
|
||||||
* (Cross terms pertain to the CHARMM/NAMD CMAP feature)
|
* (Cross terms pertain to the CHARMM/NAMD CMAP feature)
|
||||||
|
@ -764,33 +810,6 @@ typedef struct {
|
||||||
const int *impropers, const int *impropertypes, int numimpropertypes,
|
const int *impropers, const int *impropertypes, int numimpropertypes,
|
||||||
const char **impropertypenames, int numcterms, const int *cterms,
|
const char **impropertypenames, int numcterms, const int *cterms,
|
||||||
int ctermcols, int ctermrows);
|
int ctermcols, int ctermrows);
|
||||||
#else
|
|
||||||
/**
|
|
||||||
* Read in Angles, Dihedrals, Impropers, and Cross Terms
|
|
||||||
* Forces are in Kcal/mol
|
|
||||||
* (Cross terms pertain to the CHARMM/NAMD CMAP feature, forces are given
|
|
||||||
* as a 2-D matrix)
|
|
||||||
*/
|
|
||||||
int (* read_angles)(void *,
|
|
||||||
int *numangles, int **angles, double **angleforces,
|
|
||||||
int *numdihedrals, int **dihedrals, double **dihedralforces,
|
|
||||||
int *numimpropers, int **impropers, double **improperforces,
|
|
||||||
int *numcterms, int **cterms,
|
|
||||||
int *ctermcols, int *ctermrows, double **ctermforces);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Write out Angles, Dihedrals, Impropers, and Cross Terms
|
|
||||||
* Forces are in Kcal/mol
|
|
||||||
* (Cross terms pertain to the CHARMM/NAMD CMAP feature, forces are given
|
|
||||||
* as a 2-D matrix)
|
|
||||||
*/
|
|
||||||
int (* write_angles)(void *,
|
|
||||||
int numangles, const int *angles, const double *angleforces,
|
|
||||||
int numdihedrals, const int *dihedrals, const double *dihedralforces,
|
|
||||||
int numimpropers, const int *impropers, const double *improperforces,
|
|
||||||
int numcterms, const int *cterms,
|
|
||||||
int ctermcols, int ctermrows, const double *ctermforces);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -839,14 +858,9 @@ typedef struct {
|
||||||
*/
|
*/
|
||||||
int (* read_timestep)(void *, int natoms, molfile_timestep_t *,
|
int (* read_timestep)(void *, int natoms, molfile_timestep_t *,
|
||||||
molfile_qm_metadata_t *, molfile_qm_timestep_t *);
|
molfile_qm_metadata_t *, molfile_qm_timestep_t *);
|
||||||
#endif
|
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 10
|
|
||||||
int (* read_timestep_metadata)(void *, molfile_timestep_metadata_t *);
|
int (* read_timestep_metadata)(void *, molfile_timestep_metadata_t *);
|
||||||
#endif
|
|
||||||
#if vmdplugin_ABIVERSION > 11
|
|
||||||
int (* read_qm_timestep_metadata)(void *, molfile_qm_timestep_metadata_t *);
|
int (* read_qm_timestep_metadata)(void *, molfile_qm_timestep_metadata_t *);
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(DESRES_READ_TIMESTEP2)
|
#if defined(DESRES_READ_TIMESTEP2)
|
||||||
/**
|
/**
|
||||||
|
@ -864,7 +878,6 @@ typedef struct {
|
||||||
double * times );
|
double * times );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if vmdplugin_ABIVERSION > 13
|
|
||||||
/**
|
/**
|
||||||
* Console output, READ-ONLY function pointer.
|
* Console output, READ-ONLY function pointer.
|
||||||
* Function pointer that plugins can use for printing to the host
|
* Function pointer that plugins can use for printing to the host
|
||||||
|
@ -883,8 +896,8 @@ typedef struct {
|
||||||
* application-provided services
|
* application-provided services
|
||||||
*/
|
*/
|
||||||
int (* cons_fputs)(const int, const char*);
|
int (* cons_fputs)(const int, const char*);
|
||||||
#endif
|
|
||||||
|
|
||||||
} molfile_plugin_t;
|
} molfile_plugin_t;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
*
|
*
|
||||||
* $RCSfile: vmdplugin.h,v $
|
* $RCSfile: vmdplugin.h,v $
|
||||||
* $Author: johns $ $Locker: $ $State: Exp $
|
* $Author: johns $ $Locker: $ $State: Exp $
|
||||||
* $Revision: 1.32 $ $Date: 2009/02/24 05:12:35 $
|
* $Revision: 1.33 $ $Date: 2015/10/29 05:10:54 $
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ typedef struct {
|
||||||
/**
|
/**
|
||||||
* Use this macro to initialize the abiversion member of each plugin
|
* Use this macro to initialize the abiversion member of each plugin
|
||||||
*/
|
*/
|
||||||
#define vmdplugin_ABIVERSION 16
|
#define vmdplugin_ABIVERSION 17
|
||||||
|
|
||||||
/*@{*/
|
/*@{*/
|
||||||
/** Use this macro to indicate a plugin's thread-safety at registration time */
|
/** Use this macro to indicate a plugin's thread-safety at registration time */
|
|
@ -47,8 +47,6 @@
|
||||||
/dump_molfile.h
|
/dump_molfile.h
|
||||||
/molfile_interface.cpp
|
/molfile_interface.cpp
|
||||||
/molfile_interface.h
|
/molfile_interface.h
|
||||||
/molfile_plugin.h
|
|
||||||
/vmdplugin.h
|
|
||||||
/type_detector.h
|
/type_detector.h
|
||||||
|
|
||||||
/intel_buffers.cpp
|
/intel_buffers.cpp
|
||||||
|
@ -76,8 +74,8 @@
|
||||||
/pair_awpmd_cut.cpp
|
/pair_awpmd_cut.cpp
|
||||||
/pair_awpmd_cut.h
|
/pair_awpmd_cut.h
|
||||||
|
|
||||||
/dihedral_charmmfsh.cpp
|
/dihedral_charmmfsw.cpp
|
||||||
/dihedral_charmmfsh.h
|
/dihedral_charmmfsw.h
|
||||||
/pair_lj_charmmfsw_coul_charmmfsh.cpp
|
/pair_lj_charmmfsw_coul_charmmfsh.cpp
|
||||||
/pair_lj_charmmfsw_coul_charmmfsh.h
|
/pair_lj_charmmfsw_coul_charmmfsh.h
|
||||||
/pair_lj_charmmfsw_coul_long.cpp
|
/pair_lj_charmmfsw_coul_long.cpp
|
||||||
|
@ -163,6 +161,8 @@
|
||||||
/bond_nonlinear.h
|
/bond_nonlinear.h
|
||||||
/bond_oxdna_fene.cpp
|
/bond_oxdna_fene.cpp
|
||||||
/bond_oxdna_fene.h
|
/bond_oxdna_fene.h
|
||||||
|
/bond_oxdna2_fene.cpp
|
||||||
|
/bond_oxdna2_fene.h
|
||||||
/bond_quartic.cpp
|
/bond_quartic.cpp
|
||||||
/bond_quartic.h
|
/bond_quartic.h
|
||||||
/bond_table.cpp
|
/bond_table.cpp
|
||||||
|
@ -770,6 +770,8 @@
|
||||||
/pair_nm_cut_coul_long.h
|
/pair_nm_cut_coul_long.h
|
||||||
/pair_oxdna_*.cpp
|
/pair_oxdna_*.cpp
|
||||||
/pair_oxdna_*.h
|
/pair_oxdna_*.h
|
||||||
|
/pair_oxdna2_*.cpp
|
||||||
|
/pair_oxdna2_*.h
|
||||||
/mf_oxdna.h
|
/mf_oxdna.h
|
||||||
/pair_peri_eps.cpp
|
/pair_peri_eps.cpp
|
||||||
/pair_peri_eps.h
|
/pair_peri_eps.h
|
||||||
|
@ -848,6 +850,8 @@
|
||||||
/prd.h
|
/prd.h
|
||||||
/python.cpp
|
/python.cpp
|
||||||
/python.h
|
/python.h
|
||||||
|
/python_impl.cpp
|
||||||
|
/python_impl.h
|
||||||
/reader_molfile.cpp
|
/reader_molfile.cpp
|
||||||
/reader_molfile.h
|
/reader_molfile.h
|
||||||
/reaxc_allocate.cpp
|
/reaxc_allocate.cpp
|
||||||
|
|
|
@ -138,13 +138,14 @@ void EwaldDisp::init()
|
||||||
nsums += n[k];
|
nsums += n[k];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gewaldflag) g_ewald = 0.0;
|
if (!gewaldflag) g_ewald = g_ewald_6 = 1.0;
|
||||||
pair->init(); // so B is defined
|
pair->init(); // so B is defined
|
||||||
init_coeffs();
|
init_coeffs();
|
||||||
init_coeff_sums();
|
init_coeff_sums();
|
||||||
if (function[0]) qsum_qsq();
|
if (function[0]) qsum_qsq();
|
||||||
else qsqsum = qsum = 0.0;
|
else qsqsum = qsum = 0.0;
|
||||||
natoms_original = atom->natoms;
|
natoms_original = atom->natoms;
|
||||||
|
if (!gewaldflag) g_ewald = g_ewald_6 = 0.0;
|
||||||
|
|
||||||
// turn off coulombic if no charge
|
// turn off coulombic if no charge
|
||||||
|
|
||||||
|
@ -218,8 +219,8 @@ void EwaldDisp::init()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!comm->me) {
|
if (!comm->me) {
|
||||||
if (screen) fprintf(screen, " G vector = %g\n", g_ewald);
|
if (screen) fprintf(screen, " G vector = %g, accuracy = %g\n", g_ewald,accuracy);
|
||||||
if (logfile) fprintf(logfile, " G vector = %g\n", g_ewald);
|
if (logfile) fprintf(logfile, " G vector = %g accuracy = %g\n", g_ewald,accuracy);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_ewald_6 = g_ewald;
|
g_ewald_6 = g_ewald;
|
||||||
|
|
|
@ -380,6 +380,12 @@ void PPPMDisp::init()
|
||||||
alpha = qdist / (cos(0.5*theta) * blen);
|
alpha = qdist / (cos(0.5*theta) * blen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if g_ewald and g_ewald_6 have not been specified, set some initial value
|
||||||
|
// to avoid problems when calculating the energies!
|
||||||
|
|
||||||
|
if (!gewaldflag) g_ewald = 1;
|
||||||
|
if (!gewaldflag_6) g_ewald_6 = 1;
|
||||||
|
|
||||||
// initialize the pair style to get the coefficients
|
// initialize the pair style to get the coefficients
|
||||||
|
|
||||||
neighrequest_flag = 0;
|
neighrequest_flag = 0;
|
||||||
|
@ -387,12 +393,6 @@ void PPPMDisp::init()
|
||||||
neighrequest_flag = 1;
|
neighrequest_flag = 1;
|
||||||
init_coeffs();
|
init_coeffs();
|
||||||
|
|
||||||
//if g_ewald and g_ewald_6 have not been specified, set some initial value
|
|
||||||
// to avoid problems when calculating the energies!
|
|
||||||
|
|
||||||
if (!gewaldflag) g_ewald = 1;
|
|
||||||
if (!gewaldflag_6) g_ewald_6 = 1;
|
|
||||||
|
|
||||||
// set accuracy (force units) from accuracy_relative or accuracy_absolute
|
// set accuracy (force units) from accuracy_relative or accuracy_absolute
|
||||||
|
|
||||||
if (accuracy_absolute >= 0.0) accuracy = accuracy_absolute;
|
if (accuracy_absolute >= 0.0) accuracy = accuracy_absolute;
|
||||||
|
|
|
@ -16,6 +16,12 @@ style_region.h
|
||||||
style_neigh_bin.h
|
style_neigh_bin.h
|
||||||
style_neigh_pair.h
|
style_neigh_pair.h
|
||||||
style_neigh_stencil.h
|
style_neigh_stencil.h
|
||||||
|
# deleted on 19 April 2017
|
||||||
|
vmdplugin.h
|
||||||
|
molfile_plugin.h
|
||||||
|
# deleted on 13 April 2017
|
||||||
|
dihedral_charmmfsh.cpp
|
||||||
|
dihedral_charmmfsh.h
|
||||||
# deleted on ## XXX 2016
|
# deleted on ## XXX 2016
|
||||||
accelerator_intel.h
|
accelerator_intel.h
|
||||||
neigh_bond.cpp
|
neigh_bond.cpp
|
||||||
|
|
|
@ -58,7 +58,7 @@ void FixQEqPoint::init()
|
||||||
neighbor->requests[irequest]->full = 1;
|
neighbor->requests[irequest]->full = 1;
|
||||||
|
|
||||||
int ntypes = atom->ntypes;
|
int ntypes = atom->ntypes;
|
||||||
memory->create(shld,ntypes+1,ntypes+1,"qeq:shileding");
|
memory->create(shld,ntypes+1,ntypes+1,"qeq:shielding");
|
||||||
|
|
||||||
if (strstr(update->integrate_style,"respa"))
|
if (strstr(update->integrate_style,"respa"))
|
||||||
nlevels_respa = ((Respa *) update->integrate)->nlevels;
|
nlevels_respa = ((Respa *) update->integrate)->nlevels;
|
||||||
|
|
|
@ -101,6 +101,13 @@ void FixSRP::init()
|
||||||
if (force->pair_match("hybrid",1) == NULL)
|
if (force->pair_match("hybrid",1) == NULL)
|
||||||
error->all(FLERR,"Cannot use pair srp without pair_style hybrid");
|
error->all(FLERR,"Cannot use pair srp without pair_style hybrid");
|
||||||
|
|
||||||
|
int has_rigid = 0;
|
||||||
|
for (int i = 0; i < modify->nfix; i++)
|
||||||
|
if (strncmp(modify->fix[i]->style,"rigid",5) == 0) ++has_rigid;
|
||||||
|
|
||||||
|
if (has_rigid > 0)
|
||||||
|
error->all(FLERR,"Pair srp is not compatible with rigid fixes.");
|
||||||
|
|
||||||
if ((bptype < 1) || (bptype > atom->ntypes))
|
if ((bptype < 1) || (bptype > atom->ntypes))
|
||||||
error->all(FLERR,"Illegal bond particle type");
|
error->all(FLERR,"Illegal bond particle type");
|
||||||
|
|
||||||
|
|
|
@ -204,7 +204,7 @@ void ImproperRing::compute(int eflag, int vflag)
|
||||||
cfact2 = ckjji / ckjkj;
|
cfact2 = ckjji / ckjkj;
|
||||||
cfact3 = ckjji / cjiji;
|
cfact3 = ckjji / cjiji;
|
||||||
|
|
||||||
/* Calculate the force acted on the thrid atom of the angle. */
|
/* Calculate the force acted on the third atom of the angle. */
|
||||||
fkx = cfact2 * bvec2x[icomb] - bvec1x[icomb];
|
fkx = cfact2 * bvec2x[icomb] - bvec1x[icomb];
|
||||||
fky = cfact2 * bvec2y[icomb] - bvec1y[icomb];
|
fky = cfact2 * bvec2y[icomb] - bvec1y[icomb];
|
||||||
fkz = cfact2 * bvec2z[icomb] - bvec1z[icomb];
|
fkz = cfact2 * bvec2z[icomb] - bvec1z[icomb];
|
||||||
|
|
|
@ -2,8 +2,8 @@ This package provides a C++ interface class to the VMD molfile
|
||||||
plugins, http://www.ks.uiuc.edu/Research/vmd/plugins/molfile, and a
|
plugins, http://www.ks.uiuc.edu/Research/vmd/plugins/molfile, and a
|
||||||
set of LAMMPS classes that use this interface.
|
set of LAMMPS classes that use this interface.
|
||||||
|
|
||||||
Molfile plugins provide a consistent programming interface to read and
|
Molfile plugins provide a consistent programming interface to read
|
||||||
write file formats commonly used in molecular simulations. This
|
and write file formats commonly used in molecular simulations. This
|
||||||
package only provides the interface code, not the plugins; these can
|
package only provides the interface code, not the plugins; these can
|
||||||
be taken as precompiled binaries directly from a VMD installation that
|
be taken as precompiled binaries directly from a VMD installation that
|
||||||
matches the platform of your LAMMPS executable. Using the plugin
|
matches the platform of your LAMMPS executable. Using the plugin
|
||||||
|
@ -18,18 +18,5 @@ LAMMPS, you need to link with an appropriate system library, which
|
||||||
is done using the settings in lib/molfile/Makefile.lammps. See
|
is done using the settings in lib/molfile/Makefile.lammps. See
|
||||||
that file and the lib/molfile/README file for more details.
|
that file and the lib/molfile/README file for more details.
|
||||||
|
|
||||||
NOTE: while the programming interface (API) to the molfile plugins is
|
|
||||||
backward compatible (i.e. you can expect to be able to compile this
|
|
||||||
package for plugins from newer VMD packages), the binary interface
|
|
||||||
(ABI) is not. So it is necessary to compile this package with the
|
|
||||||
molfile plugin header files (vmdplugin.h and molfile_plugin.h) taken
|
|
||||||
from the _same_ VMD installation that the (binary) plugin files are
|
|
||||||
taken from. These header files can be found inside the VMD
|
|
||||||
installation tree under: "plugins/include".
|
|
||||||
|
|
||||||
For convenience, this package includes a set of header files that is
|
|
||||||
compatible with VMD 1.9 and 1.9.1 (the current version in June 2012)
|
|
||||||
and should be compilable with VMD versions back to about version 1.8.4
|
|
||||||
|
|
||||||
The person who created this package is Axel Kohlmeyer at Temple U
|
The person who created this package is Axel Kohlmeyer at Temple U
|
||||||
(akohlmey at gmail.com). Contact him directly if you have questions.
|
(akohlmey at gmail.com). Contact him directly if you have questions.
|
||||||
|
|
|
@ -206,7 +206,7 @@ void ImproperRingOMP::eval(int nfrom, int nto, ThrData * const thr)
|
||||||
cfact2 = ckjji / ckjkj;
|
cfact2 = ckjji / ckjkj;
|
||||||
cfact3 = ckjji / cjiji;
|
cfact3 = ckjji / cjiji;
|
||||||
|
|
||||||
/* Calculate the force acted on the thrid atom of the angle. */
|
/* Calculate the force acted on the third atom of the angle. */
|
||||||
fkx = cfact2 * bvec2x[icomb] - bvec1x[icomb];
|
fkx = cfact2 * bvec2x[icomb] - bvec1x[icomb];
|
||||||
fky = cfact2 * bvec2y[icomb] - bvec1y[icomb];
|
fky = cfact2 * bvec2y[icomb] - bvec1y[icomb];
|
||||||
fkz = cfact2 * bvec2z[icomb] - bvec1z[icomb];
|
fkz = cfact2 * bvec2z[icomb] - bvec1z[icomb];
|
||||||
|
|
|
@ -375,7 +375,7 @@ void FixQEqReax::init_shielding()
|
||||||
|
|
||||||
ntypes = atom->ntypes;
|
ntypes = atom->ntypes;
|
||||||
if (shld == NULL)
|
if (shld == NULL)
|
||||||
memory->create(shld,ntypes+1,ntypes+1,"qeq:shileding");
|
memory->create(shld,ntypes+1,ntypes+1,"qeq:shielding");
|
||||||
|
|
||||||
for( i = 1; i <= ntypes; ++i )
|
for( i = 1; i <= ntypes; ++i )
|
||||||
for( j = 1; j <= ntypes; ++j )
|
for( j = 1; j <= ntypes; ++j )
|
||||||
|
|
|
@ -65,12 +65,12 @@ ComputeForceTally::~ComputeForceTally()
|
||||||
void ComputeForceTally::init()
|
void ComputeForceTally::init()
|
||||||
{
|
{
|
||||||
if (force->pair == NULL)
|
if (force->pair == NULL)
|
||||||
error->all(FLERR,"Trying to use compute force/tally with no pair style");
|
error->all(FLERR,"Trying to use compute force/tally without pair style");
|
||||||
else
|
else
|
||||||
force->pair->add_tally_callback(this);
|
force->pair->add_tally_callback(this);
|
||||||
|
|
||||||
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
||||||
error->all(FLERR,"Compute force/tally used with incompatible pair style.");
|
error->warning(FLERR,"Compute force/tally used with incompatible pair style");
|
||||||
|
|
||||||
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
||||||
|| force->improper || force->kspace))
|
|| force->improper || force->kspace))
|
||||||
|
|
|
@ -64,12 +64,12 @@ ComputeHeatFluxTally::~ComputeHeatFluxTally()
|
||||||
void ComputeHeatFluxTally::init()
|
void ComputeHeatFluxTally::init()
|
||||||
{
|
{
|
||||||
if (force->pair == NULL)
|
if (force->pair == NULL)
|
||||||
error->all(FLERR,"Trying to use compute heat/flux/tally with no pair style");
|
error->all(FLERR,"Trying to use compute heat/flux/tally without pair style");
|
||||||
else
|
else
|
||||||
force->pair->add_tally_callback(this);
|
force->pair->add_tally_callback(this);
|
||||||
|
|
||||||
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
||||||
error->all(FLERR,"Compute heat/flux/tally used with incompatible pair style.");
|
error->warning(FLERR,"Compute heat/flux/tally used with incompatible pair style");
|
||||||
|
|
||||||
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
||||||
|| force->improper || force->kspace))
|
|| force->improper || force->kspace))
|
||||||
|
|
|
@ -59,15 +59,15 @@ ComputePEMolTally::~ComputePEMolTally()
|
||||||
void ComputePEMolTally::init()
|
void ComputePEMolTally::init()
|
||||||
{
|
{
|
||||||
if (force->pair == NULL)
|
if (force->pair == NULL)
|
||||||
error->all(FLERR,"Trying to use compute pe/mol/tally with no pair style");
|
error->all(FLERR,"Trying to use compute pe/mol/tally without pair style");
|
||||||
else
|
else
|
||||||
force->pair->add_tally_callback(this);
|
force->pair->add_tally_callback(this);
|
||||||
|
|
||||||
if (atom->molecule_flag == 0)
|
if (atom->molecule_flag == 0)
|
||||||
error->all(FLERR,"Compute pe/mol/tally requires molecule IDs.");
|
error->all(FLERR,"Compute pe/mol/tally requires molecule IDs");
|
||||||
|
|
||||||
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
||||||
error->all(FLERR,"Compute pe/mol/tally used with incompatible pair style.");
|
error->warning(FLERR,"Compute pe/mol/tally used with incompatible pair style");
|
||||||
|
|
||||||
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
||||||
|| force->improper || force->kspace))
|
|| force->improper || force->kspace))
|
||||||
|
|
|
@ -64,12 +64,12 @@ ComputePETally::~ComputePETally()
|
||||||
void ComputePETally::init()
|
void ComputePETally::init()
|
||||||
{
|
{
|
||||||
if (force->pair == NULL)
|
if (force->pair == NULL)
|
||||||
error->all(FLERR,"Trying to use compute pe/tally with no pair style");
|
error->all(FLERR,"Trying to use compute pe/tally without a pair style");
|
||||||
else
|
else
|
||||||
force->pair->add_tally_callback(this);
|
force->pair->add_tally_callback(this);
|
||||||
|
|
||||||
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
||||||
error->all(FLERR,"Compute pe/tally used with incompatible pair style.");
|
error->warning(FLERR,"Compute pe/tally used with incompatible pair style");
|
||||||
|
|
||||||
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
||||||
|| force->improper || force->kspace))
|
|| force->improper || force->kspace))
|
||||||
|
|
|
@ -65,12 +65,12 @@ ComputeStressTally::~ComputeStressTally()
|
||||||
void ComputeStressTally::init()
|
void ComputeStressTally::init()
|
||||||
{
|
{
|
||||||
if (force->pair == NULL)
|
if (force->pair == NULL)
|
||||||
error->all(FLERR,"Trying to use compute stress/tally with no pair style");
|
error->all(FLERR,"Trying to use compute stress/tally without pair style");
|
||||||
else
|
else
|
||||||
force->pair->add_tally_callback(this);
|
force->pair->add_tally_callback(this);
|
||||||
|
|
||||||
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
if (force->pair->single_enable == 0 || force->pair->manybody_flag)
|
||||||
error->all(FLERR,"Compute stress/tally used with incompatible pair style.");
|
error->warning(FLERR,"Compute stress/tally used with incompatible pair style");
|
||||||
|
|
||||||
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
if ((comm->me == 0) && (force->bond || force->angle || force->dihedral
|
||||||
|| force->improper || force->kspace))
|
|| force->improper || force->kspace))
|
||||||
|
|
|
@ -187,6 +187,8 @@ void Min::setup(int flag)
|
||||||
update->minimize_style);
|
update->minimize_style);
|
||||||
if (flag) {
|
if (flag) {
|
||||||
fprintf(screen," Unit style : %s\n", update->unit_style);
|
fprintf(screen," Unit style : %s\n", update->unit_style);
|
||||||
|
fprintf(screen," Current step : " BIGINT_FORMAT "\n",
|
||||||
|
update->ntimestep);
|
||||||
timer->print_timeout(screen);
|
timer->print_timeout(screen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,7 +198,12 @@ void Min::setup(int flag)
|
||||||
// cannot be done in init() b/c update init() is before modify init()
|
// cannot be done in init() b/c update init() is before modify init()
|
||||||
|
|
||||||
nextra_global = modify->min_dof();
|
nextra_global = modify->min_dof();
|
||||||
if (nextra_global) fextra = new double[nextra_global];
|
if (nextra_global) {
|
||||||
|
fextra = new double[nextra_global];
|
||||||
|
if (comm->me == 0 && screen)
|
||||||
|
fprintf(screen,"WARNING: Energy due to %d extra global DOFs will"
|
||||||
|
" be included in minimizer energies\n",nextra_global);
|
||||||
|
}
|
||||||
|
|
||||||
// compute for potential energy
|
// compute for potential energy
|
||||||
|
|
||||||
|
|
|
@ -123,6 +123,12 @@ Minimization requires that neigh_modify settings be delay = 0, every =
|
||||||
changed them and will restore them to their original values after the
|
changed them and will restore them to their original values after the
|
||||||
minimization.
|
minimization.
|
||||||
|
|
||||||
|
W: Energy due to X extra global DOFs will be included in minimizer energies
|
||||||
|
|
||||||
|
When using fixes like box/relax, the potential energy used by the minimizer
|
||||||
|
is augmented by an additional energy provided by the fix. Thus the printed
|
||||||
|
converged energy may be different from the total potential energy.
|
||||||
|
|
||||||
E: Minimization could not find thermo_pe compute
|
E: Minimization could not find thermo_pe compute
|
||||||
|
|
||||||
This compute is created by the thermo command. It must have been
|
This compute is created by the thermo command. It must have been
|
||||||
|
|
|
@ -194,8 +194,8 @@ class Pair : protected Pointers {
|
||||||
int num_tally_compute;
|
int num_tally_compute;
|
||||||
class Compute **list_tally_compute;
|
class Compute **list_tally_compute;
|
||||||
public:
|
public:
|
||||||
void add_tally_callback(class Compute *);
|
virtual void add_tally_callback(class Compute *);
|
||||||
void del_tally_callback(class Compute *);
|
virtual void del_tally_callback(class Compute *);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int instance_me; // which Pair class instantiation I am
|
int instance_me; // which Pair class instantiation I am
|
||||||
|
|
|
@ -33,7 +33,7 @@ using namespace LAMMPS_NS;
|
||||||
|
|
||||||
PairHybrid::PairHybrid(LAMMPS *lmp) : Pair(lmp),
|
PairHybrid::PairHybrid(LAMMPS *lmp) : Pair(lmp),
|
||||||
styles(NULL), keywords(NULL), multiple(NULL), nmap(NULL),
|
styles(NULL), keywords(NULL), multiple(NULL), nmap(NULL),
|
||||||
map(NULL), special_lj(NULL), special_coul(NULL)
|
map(NULL), special_lj(NULL), special_coul(NULL), compute_tally(NULL)
|
||||||
{
|
{
|
||||||
nstyles = 0;
|
nstyles = 0;
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ PairHybrid::~PairHybrid()
|
||||||
|
|
||||||
delete [] special_lj;
|
delete [] special_lj;
|
||||||
delete [] special_coul;
|
delete [] special_coul;
|
||||||
|
delete [] compute_tally;
|
||||||
|
|
||||||
delete [] svector;
|
delete [] svector;
|
||||||
|
|
||||||
|
@ -169,6 +170,23 @@ void PairHybrid::compute(int eflag, int vflag)
|
||||||
if (vflag_fdotr) virial_fdotr_compute();
|
if (vflag_fdotr) virial_fdotr_compute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void PairHybrid::add_tally_callback(Compute *ptr)
|
||||||
|
{
|
||||||
|
for (int m = 0; m < nstyles; m++)
|
||||||
|
if (compute_tally[m]) styles[m]->add_tally_callback(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
void PairHybrid::del_tally_callback(Compute *ptr)
|
||||||
|
{
|
||||||
|
for (int m = 0; m < nstyles; m++)
|
||||||
|
if (compute_tally[m]) styles[m]->del_tally_callback(ptr);
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
|
|
||||||
void PairHybrid::compute_inner()
|
void PairHybrid::compute_inner()
|
||||||
|
@ -253,6 +271,8 @@ void PairHybrid::settings(int narg, char **arg)
|
||||||
special_lj = new double*[narg];
|
special_lj = new double*[narg];
|
||||||
special_coul = new double*[narg];
|
special_coul = new double*[narg];
|
||||||
|
|
||||||
|
compute_tally = new int[narg];
|
||||||
|
|
||||||
// allocate each sub-style
|
// allocate each sub-style
|
||||||
// allocate uses suffix, but don't store suffix version in keywords,
|
// allocate uses suffix, but don't store suffix version in keywords,
|
||||||
// else syntax in coeff() will not match
|
// else syntax in coeff() will not match
|
||||||
|
@ -272,6 +292,7 @@ void PairHybrid::settings(int narg, char **arg)
|
||||||
styles[nstyles] = force->new_pair(arg[iarg],1,dummy);
|
styles[nstyles] = force->new_pair(arg[iarg],1,dummy);
|
||||||
force->store_style(keywords[nstyles],arg[iarg],0);
|
force->store_style(keywords[nstyles],arg[iarg],0);
|
||||||
special_lj[nstyles] = special_coul[nstyles] = NULL;
|
special_lj[nstyles] = special_coul[nstyles] = NULL;
|
||||||
|
compute_tally[nstyles] = 1;
|
||||||
|
|
||||||
jarg = iarg + 1;
|
jarg = iarg + 1;
|
||||||
while (jarg < narg && !force->pair_map->count(arg[jarg])) jarg++;
|
while (jarg < narg && !force->pair_map->count(arg[jarg])) jarg++;
|
||||||
|
@ -782,6 +803,20 @@ void PairHybrid::modify_params(int narg, char **arg)
|
||||||
iarg += 5;
|
iarg += 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if 2nd keyword (after pair) is compute/tally:
|
||||||
|
// set flag to register USER-TALLY computes accordingly
|
||||||
|
|
||||||
|
if (iarg < narg && strcmp(arg[iarg],"compute/tally") == 0) {
|
||||||
|
if (narg < iarg+2)
|
||||||
|
error->all(FLERR,"Illegal pair_modify compute/tally command");
|
||||||
|
if (strcmp(arg[iarg+1],"yes") == 0) {
|
||||||
|
compute_tally[m] = 1;
|
||||||
|
} else if (strcmp(arg[iarg+1],"no") == 0) {
|
||||||
|
compute_tally[m] = 0;
|
||||||
|
} else error->all(FLERR,"Illegal pair_modify compute/tally command");
|
||||||
|
iarg += 2;
|
||||||
|
}
|
||||||
|
|
||||||
// apply the remaining keywords to the base pair style itself and the
|
// apply the remaining keywords to the base pair style itself and the
|
||||||
// sub-style except for "pair" and "special".
|
// sub-style except for "pair" and "special".
|
||||||
// the former is important for some keywords like "tail" or "compute"
|
// the former is important for some keywords like "tail" or "compute"
|
||||||
|
|
|
@ -55,6 +55,9 @@ class PairHybrid : public Pair {
|
||||||
|
|
||||||
int check_ijtype(int, int, char *);
|
int check_ijtype(int, int, char *);
|
||||||
|
|
||||||
|
virtual void add_tally_callback(class Compute *);
|
||||||
|
virtual void del_tally_callback(class Compute *);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int nstyles; // # of sub-styles
|
int nstyles; // # of sub-styles
|
||||||
Pair **styles; // list of Pair style classes
|
Pair **styles; // list of Pair style classes
|
||||||
|
@ -69,6 +72,7 @@ class PairHybrid : public Pair {
|
||||||
int ***map; // list of sub-styles itype,jtype points to
|
int ***map; // list of sub-styles itype,jtype points to
|
||||||
double **special_lj; // list of per style LJ exclusion factors
|
double **special_lj; // list of per style LJ exclusion factors
|
||||||
double **special_coul; // list of per style Coulomb exclusion factors
|
double **special_coul; // list of per style Coulomb exclusion factors
|
||||||
|
int *compute_tally; // list of on/off flags for tally computes
|
||||||
|
|
||||||
void allocate();
|
void allocate();
|
||||||
void flags();
|
void flags();
|
||||||
|
|
|
@ -1,96 +1,48 @@
|
||||||
Axel Kohlmeyer is the current maintainer of the msi2lmp tool.
|
|
||||||
Please send any inquiries about msi2lmp to the lammps-users mailing list.
|
|
||||||
|
|
||||||
06 Oct 2016 Axel Kohlmeyer <akohlmey@gmail.com>
|
msi2lmp.exe
|
||||||
|
|
||||||
Improved whitespace handling in parsing topology and force field
|
This code has several known limitations listed below under "LIMITATIONS"
|
||||||
files to avoid bogus warnings about type name truncation.
|
(and possibly some unknown ones, too) and is no longer under active
|
||||||
|
development. Only the occasional bugfix is applied.
|
||||||
|
|
||||||
24 Oct 2015 Axel Kohlmeyer <akohlmey@gmail.com>
|
Please send any inquiries about msi2lmp to the lammps-users
|
||||||
|
mailing list and not to individual people.
|
||||||
|
|
||||||
Added check to make certain that force field files
|
------------------------------------------------------------------------
|
||||||
are consistent with the notation of non-bonded parameters
|
|
||||||
that the msi2lmp code expects. For Class 1 and OPLS-AA
|
|
||||||
the A-B notation with geometric mixing is expected and for
|
|
||||||
Class 2 the r-eps notation with sixthpower mixing.
|
|
||||||
|
|
||||||
11 Sep 2014 Axel Kohlmeyer <akohlmey@gmail.com>
|
OVERVIEW
|
||||||
|
|
||||||
Refactored ReadMdfFile.c so it more consistently honors
|
This is the third version of a program that generates a LAMMPS data file
|
||||||
the MAX_NAME and MAX_STRING string length defines and
|
based on the information in MSI .car (atom coordinates), .mdf (molecular
|
||||||
potentially handles inputs with long names better.
|
topology) and .frc (forcefield) files. The .car and .mdf files are
|
||||||
|
specific to a molecular system while the .frc file is specific to a
|
||||||
|
forcefield version. The only coherency needed between .frc and
|
||||||
|
.car/.mdf files are the atom types.
|
||||||
|
|
||||||
27 May 2014 Axel Kohlmeyer <akohlmey@gmail.com>
|
The first version was written by Steve Lustig at Dupont, but required
|
||||||
|
using Discover to derive internal coordinates and forcefield parameters
|
||||||
|
|
||||||
Added TopoTools style type hints as comments to all Mass, PairCoeff,
|
The second version was written by Michael Peachey while an intern in the
|
||||||
BondCoeff, AngleCoeff, DihedralCoeff, ImproperCoeff entries.
|
Cray Chemistry Applications Group managed by John Carpenter. This
|
||||||
This should make it easier to identify force field entries with
|
version derived internal coordinates from the mdf file and looked up
|
||||||
the structure and force field map in the data file later.
|
parameters in the frc file thus eliminating the need for Discover.
|
||||||
|
|
||||||
06 Mar 2014 Axel Kohlmeyer <akohlmey@gmail.com>
|
The third version was written by John Carpenter to optimize the
|
||||||
|
performance of the program for large molecular systems (the original
|
||||||
|
code for deriving atom numbers was quadratic in time) and to make the
|
||||||
|
program fully dynamic. The second version used fixed dimension arrays
|
||||||
|
for the internal coordinates.
|
||||||
|
|
||||||
Fixed a bug in handling of triclinic cells, where the matrices to
|
The third version was revised in Fall 2011 by Stephanie Teich-McGoldrick
|
||||||
convert to and from fractional coordinates were incorrectly built.
|
to add support non-orthogonal cells.
|
||||||
|
|
||||||
26 Oct 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
The next revision was started in Summer/Fall 2013 by Axel Kohlmeyer to
|
||||||
|
improve portability to Windows compilers, clean up command line parsing
|
||||||
|
and improve compatibility with the then current LAMMPS versions. This
|
||||||
|
revision removes compatibility with the obsolete LAMMPS version written
|
||||||
|
in Fortran 90.
|
||||||
|
|
||||||
Implemented writing out force field style hints in generated data
|
INSTALLATION & USAGE
|
||||||
files for improved consistency checking when reading those files.
|
|
||||||
Also added writing out CGCMM style comments to identify atom types.
|
|
||||||
|
|
||||||
08 Oct 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
|
||||||
|
|
||||||
Fixed a memory access violation with Class 2 force fields.
|
|
||||||
Free all allocated memory to better detection of memory errors.
|
|
||||||
Print out version number and data with all print levels > 0.
|
|
||||||
Added valgrind checks to the regression tests
|
|
||||||
|
|
||||||
08 Oct 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
|
||||||
|
|
||||||
Fixed a memory access violation with Class 2 force fields.
|
|
||||||
Free all allocated memory to better detection of memory errors.
|
|
||||||
Print out version number and data with all print levels > 0.
|
|
||||||
Added valgrind checks to the regression tests
|
|
||||||
|
|
||||||
02 Aug 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
|
||||||
|
|
||||||
Added rudimentary support for OPLS-AA based on
|
|
||||||
input provided by jeff greathouse.
|
|
||||||
|
|
||||||
18 Jul 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
|
||||||
|
|
||||||
Added support for writing out image flags
|
|
||||||
Improved accuracy of atom masses
|
|
||||||
Added flag for shifting the entire system
|
|
||||||
Fixed some minor logic bugs and prepared
|
|
||||||
for supporting other force fields and morse style bonds.
|
|
||||||
|
|
||||||
12 Jul 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
|
||||||
|
|
||||||
Fixed the bug that caused improper coefficients to be wrong
|
|
||||||
Cleaned up the handling of box parameters and center the box
|
|
||||||
by default around the system/molecule. Added a flag to make
|
|
||||||
this step optional and center the box around the origin instead.
|
|
||||||
Added a regression test script with examples.
|
|
||||||
|
|
||||||
1 Jul 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
|
||||||
|
|
||||||
Cleanup and improved port to windows.
|
|
||||||
Removed some more static string limits.
|
|
||||||
Added print level 3 for additional output.
|
|
||||||
Make code stop at missing force field parameters
|
|
||||||
and added -i flag to override this.
|
|
||||||
Safer argument checking.
|
|
||||||
Provide short versions for all flags.
|
|
||||||
|
|
||||||
23 Sep 2011
|
|
||||||
|
|
||||||
added support for triclinic boxes
|
|
||||||
see msi2lmp/TriclinicModification.pdf doc for details
|
|
||||||
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
msi2lmp V3.6 4/10/2005
|
|
||||||
|
|
||||||
This program uses the .car and .mdf files from MSI/Biosyms's INSIGHT
|
This program uses the .car and .mdf files from MSI/Biosyms's INSIGHT
|
||||||
program to produce a LAMMPS data file.
|
program to produce a LAMMPS data file.
|
||||||
|
@ -178,50 +130,111 @@ see msi2lmp/TriclinicModification.pdf doc for details
|
||||||
-- the LAMMPS data file is written to <ROOTNAME>.data
|
-- the LAMMPS data file is written to <ROOTNAME>.data
|
||||||
protocol and error information is written to the screen.
|
protocol and error information is written to the screen.
|
||||||
|
|
||||||
****************************************************************
|
------------------------------------------------------------------------
|
||||||
*
|
|
||||||
* msi2lmp
|
LIMITATIONS
|
||||||
*
|
|
||||||
* This is the third version of a program that generates a LAMMPS
|
msi2lmp has the following known limitations:
|
||||||
* data file based on the information in MSI .car (atom
|
|
||||||
* coordinates), .mdf (molecular topology) and .frc (forcefield)
|
- there is no support to select morse bonds over harmonic bonds
|
||||||
* files. The .car and .mdf files are specific to a molecular
|
- there is no support for auto-equivalences to supplement fully
|
||||||
* system while the .frc file is specific to a forcefield version.
|
parameterized interactions with heuristic ones
|
||||||
* The only coherency needed between .frc and .car/.mdf files are
|
- there is no support for bond increments
|
||||||
* the atom types.
|
|
||||||
*
|
------------------------------------------------------------------------
|
||||||
* The first version was written by Steve Lustig at Dupont, but
|
|
||||||
* required using Discover to derive internal coordinates and
|
CHANGELOG
|
||||||
* forcefield parameters
|
|
||||||
*
|
06 Oct 2016 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
* The second version was written by Michael Peachey while an
|
|
||||||
* intern in the Cray Chemistry Applications Group managed
|
Improved whitespace handling in parsing topology and force field
|
||||||
* by John Carpenter. This version derived internal coordinates
|
files to avoid bogus warnings about type name truncation.
|
||||||
* from the mdf file and looked up parameters in the frc file
|
|
||||||
* thus eliminating the need for Discover.
|
24 Oct 2015 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
*
|
|
||||||
* The third version was written by John Carpenter to optimize
|
Added check to make certain that force field files are consistent with
|
||||||
* the performance of the program for large molecular systems
|
the notation of non-bonded parameters that the msi2lmp code expects.
|
||||||
* (the original code for deriving atom numbers was quadratic in time)
|
For Class 1 and OPLS-AA the A-B notation with geometric mixing is
|
||||||
* and to make the program fully dynamic. The second version used
|
expected and for Class 2 the r-eps notation with sixthpower mixing.
|
||||||
* fixed dimension arrays for the internal coordinates.
|
|
||||||
*
|
11 Sep 2014 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
* The current maintainer is only reluctantly doing so because John Mayo no longer
|
|
||||||
* needs this code.
|
Refactored ReadMdfFile.c so it more consistently honors the MAX_NAME
|
||||||
*
|
and MAX_STRING string length defines and potentially handles inputs
|
||||||
* V3.2 corresponds to adding code to MakeLists.c to gracefully deal with
|
with long names better.
|
||||||
* systems that may only be molecules of 1 to 3 atoms. In V3.1, the values
|
|
||||||
* for number_of_dihedrals, etc. could be unpredictable in these systems.
|
27 May 2014 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
*
|
|
||||||
* V3.3 was generated in response to a strange error reading a MDF file generated by
|
Added TopoTools style type hints as comments to all Mass, PairCoeff,
|
||||||
* Accelys' Materials Studio GUI. Simply rewriting the input part of ReadMdfFile.c
|
BondCoeff, AngleCoeff, DihedralCoeff, ImproperCoeff entries.
|
||||||
* seems to have fixed the problem.
|
This should make it easier to identify force field entries with
|
||||||
*
|
the structure and force field map in the data file later.
|
||||||
* V3.4 and V3.5 are minor upgrades to fix bugs associated mostly with .car and .mdf files
|
|
||||||
* written by Accelys' Materials Studio GUI.
|
06 Mar 2014 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
*
|
|
||||||
* V3.6 outputs to LAMMPS 2005 (C++ version).
|
Fixed a bug in handling of triclinic cells, where the matrices to
|
||||||
*
|
convert to and from fractional coordinates were incorrectly built.
|
||||||
* Contact: Kelly L. Anderson, kelly.anderson@cantab.net
|
|
||||||
*
|
26 Oct 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
* April 2005
|
|
||||||
|
Implemented writing out force field style hints in generated data
|
||||||
|
files for improved consistency checking when reading those files.
|
||||||
|
Also added writing out CGCMM style comments to identify atom types.
|
||||||
|
|
||||||
|
08 Oct 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
|
|
||||||
|
Fixed a memory access violation with Class 2 force fields. Free all
|
||||||
|
allocated memory to better detection of memory errors. Print out
|
||||||
|
version number and data with all print levels > 0. Added valgrind
|
||||||
|
checks to the regression tests.
|
||||||
|
|
||||||
|
02 Aug 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
|
|
||||||
|
Added rudimentary support for OPLS-AA based on input provided
|
||||||
|
by jeff greathouse.
|
||||||
|
|
||||||
|
18 Jul 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
|
|
||||||
|
Added support for writing out image flags. Improved accuracy of atom
|
||||||
|
masses. Added flag for shifting the entire system. Fixed some minor
|
||||||
|
logic bugs and prepared for supporting other force fields and morse
|
||||||
|
style bonds.
|
||||||
|
|
||||||
|
12 Jul 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
|
|
||||||
|
Fixed the bug that caused improper coefficients to be wrong. Cleaned up
|
||||||
|
the handling of box parameters and center the box by default around the
|
||||||
|
system/molecule. Added a flag to make this step optional and center the
|
||||||
|
box around the origin instead. Added a regression test script with
|
||||||
|
examples.
|
||||||
|
|
||||||
|
1 Jul 2013 Axel Kohlmeyer <akohlmey@gmail.com>
|
||||||
|
|
||||||
|
Cleanup and improved port to windows. Removed some more static string
|
||||||
|
limits. Added print level 3 for additional output. Make code stop at
|
||||||
|
missing force field parameters and added -i flag to override this.
|
||||||
|
Safer argument checking. Provide short versions for all flags.
|
||||||
|
|
||||||
|
23 Sep 2011
|
||||||
|
|
||||||
|
added support for triclinic boxes
|
||||||
|
|
||||||
|
V3.6 outputs to LAMMPS 2005 (C++ version).
|
||||||
|
|
||||||
|
Contact: Kelly L. Anderson, kelly.anderson@cantab.net
|
||||||
|
|
||||||
|
V3.4 and V3.5 are minor upgrades to fix bugs associated mostly with .car
|
||||||
|
and .mdf files written by Accelys' Materials Studio GUI. April 2005
|
||||||
|
|
||||||
|
V3.3 was generated in response to a strange error reading a MDF file
|
||||||
|
generated by Accelys' Materials Studio GUI. Simply rewriting the input
|
||||||
|
part of ReadMdfFile.c seems to have fixed the problem.
|
||||||
|
|
||||||
|
V3.2 corresponds to adding code to MakeLists.c to gracefully deal with
|
||||||
|
systems that may only be molecules of 1 to 3 atoms. In V3.1, the values
|
||||||
|
for number_of_dihedrals, etc. could be unpredictable in these systems.
|
||||||
|
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
msi2lmp v3.9.8 6/10/2016
|
||||||
|
|
||||||
|
|
|
@ -142,9 +142,6 @@
|
||||||
* and to make the program fully dynamic. The second version used
|
* and to make the program fully dynamic. The second version used
|
||||||
* fixed dimension arrays for the internal coordinates.
|
* fixed dimension arrays for the internal coordinates.
|
||||||
*
|
*
|
||||||
* John Carpenter can be contacted by sending email to
|
|
||||||
* jec374@earthlink.net
|
|
||||||
*
|
|
||||||
* November 2000
|
* November 2000
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
* and to make the program fully dynamic. The second version used
|
* and to make the program fully dynamic. The second version used
|
||||||
* fixed dimension arrays for the internal coordinates.
|
* fixed dimension arrays for the internal coordinates.
|
||||||
*
|
*
|
||||||
* The thrid version was revised in Fall 2011 by
|
* The third version was revised in Fall 2011 by
|
||||||
* Stephanie Teich-McGoldrick to add support non-orthogonal cells.
|
* Stephanie Teich-McGoldrick to add support non-orthogonal cells.
|
||||||
*
|
*
|
||||||
* The next revision was started in Summer/Fall 2013 by
|
* The next revision was started in Summer/Fall 2013 by
|
||||||
|
|
Loading…
Reference in New Issue