git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@76 f3b2605a-c512-4ea7-a41b-209d697bcdaa

This commit is contained in:
sjplimp 2006-10-12 20:37:55 +00:00
parent 2fad2c4625
commit 59c0f01a92
16 changed files with 546 additions and 20 deletions

View File

@ -17,7 +17,7 @@
</PRE>
<UL><LI>ID = user-assigned name for the region
<LI>style = <I>block</I> or <I>sphere</I> or <I>cylinder</I> or <I>union</I> or <I>intersect</I>
<LI>style = <I>block</I> or <I>sphere</I> or <I>cylinder</I> or <I>prism</I> or <I>union</I> or <I>intersect</I>
<PRE> <I>block</I> args = xlo xhi ylo yhi zlo zhi
xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all
@ -30,6 +30,12 @@
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units)
lo,hi = bounds of cylinder in dim (distance units)
<I>prism</I> args = xlo xhi ylo yhi zlo zhi yxtilt zxtilt zytilt
xlo,xhi,ylo,yhi,zlo,zhi = bounds of untilted prism in all
dimensions (distance units)
yxtilt = distance to shift upper y in x direction (distance units)
zxtilt = distance to shift upper z in x direction (distance units)
zytilt = distance to shift upper z in y direction (distance units)
<I>union</I> args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together
@ -55,6 +61,7 @@
<PRE>region 1 block -3.0 5.0 INF 10.0 INF INF
region 2 sphere 0.0 0.0 0.0 5 side out
region void cylinder y 2 3 5 -5.0 INF units box
region 1 prism 0 10 0 10 0 10 2 0 0
region outside union 4 side1 side2 side3 side4
</PRE>
<P><B>Description:</B>
@ -65,10 +72,10 @@ atoms via the <A HREF = "create_atoms.html">create_atoms</A> command. Or the at
in the region can be identified as a group via the <A HREF = "group.html">group</A>
command, or deleted via the <A HREF = "delete_atoms.html">delete_atoms</A> command.
</P>
<P>The lo/hi values for <I>block</I> or <I>cylinder</I> styles can be specified
as INF which means they extend all the way to the global simulation
box boundary. If a region is defined before the simulation box has
been created (via <A HREF = "create_box.html">create_box</A> or
<P>The lo/hi values for <I>block</I> or <I>cylinder</I> or <I>prism</I> styles can be
specified as INF which means they extend all the way to the global
simulation box boundary. If a region is defined before the simulation
box has been created (via <A HREF = "create_box.html">create_box</A> or
<A HREF = "read_data.html">read_data</A> or <A HREF = "read_restart.html">read_restart</A>
commands), then an INF parameter cannot be used.
</P>
@ -79,6 +86,19 @@ third example above specifes a cylinder with its axis in the
y-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and
extending in the y-direction from -5.0 to the upper box boundary.
</P>
<P>For style <I>prism</I>, a tilted block is defined. The bounds of the
untilted axis-aligned block are specified in the same way as for the
<I>block</I> style. A tilt factor for each dimension with respect to
another dimension is also specified. If the lower xy face of the
prism is initially a rectangle (untilted), then the yxtilt factor
specifies how far the upper y edge of that face is shifted in the x
direction (skewing that face, keeping the xy face a parallelogram). A
plus or minus value can be chosen; 0.0 would be no tilt. Similarly,
zxtilt and zytilt describe how far the upper xy face of the prism is
translated in the x and y directions to further tilt the prism. The
final prism shape remains a parallelipiped, with opposing pairs of the
6 faces remaining parallel to each other.
</P>
<P>The <I>union</I> style creates a region consisting of the volume of all the
listed regions combined. The <I>intesect</I> style creates a region
consisting of the volume that is common to all the listed regions.
@ -96,11 +116,15 @@ both of the spheres.
to define the region. A <I>box</I> value selects standard distance units
as defined by the <A HREF = "units.html">units</A> command, e.g. Angstroms for units
= real or metal. A <I>lattice</I> value means the distance units are in
cubic lattice spacings. The <A HREF = "lattice.html">lattice</A> command must first
be used to define a lattice.
lattice spacings. The <A HREF = "lattice.html">lattice</A> command must have been
previously used to define the lattice spacing.
</P>
<P><B>Restrictions:</B> none
</P>
<P>A prism cannot be of 0.0 thickness in any dimension; use a small z
thickness for 2d simulations. For 2d simulations, the zxtilt and
zytilt parameters must be 0.0.
</P>
<P><B>Related commands:</B>
</P>
<P><A HREF = "lattice.html">lattice</A>, <A HREF = "create_atoms.html">create_atoms</A>,

View File

@ -13,7 +13,7 @@ region command :h3
region ID style args keyword value ... :pre
ID = user-assigned name for the region :ulb,l
style = {block} or {sphere} or {cylinder} or {union} or {intersect} :l
style = {block} or {sphere} or {cylinder} or {prism} or {union} or {intersect} :l
{block} args = xlo xhi ylo yhi zlo zhi
xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all
dimensions (distance units)
@ -25,6 +25,12 @@ style = {block} or {sphere} or {cylinder} or {union} or {intersect} :l
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units)
lo,hi = bounds of cylinder in dim (distance units)
{prism} args = xlo xhi ylo yhi zlo zhi yxtilt zxtilt zytilt
xlo,xhi,ylo,yhi,zlo,zhi = bounds of untilted prism in all
dimensions (distance units)
yxtilt = distance to shift upper y in x direction (distance units)
zxtilt = distance to shift upper z in x direction (distance units)
zytilt = distance to shift upper z in y direction (distance units)
{union} args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together
@ -46,6 +52,7 @@ keyword = {side} or {units} :l
region 1 block -3.0 5.0 INF 10.0 INF INF
region 2 sphere 0.0 0.0 0.0 5 side out
region void cylinder y 2 3 5 -5.0 INF units box
region 1 prism 0 10 0 10 0 10 2 0 0
region outside union 4 side1 side2 side3 side4 :pre
[Description:]
@ -56,10 +63,10 @@ atoms via the "create_atoms"_create_atoms.html command. Or the atoms
in the region can be identified as a group via the "group"_group.html
command, or deleted via the "delete_atoms"_delete_atoms.html command.
The lo/hi values for {block} or {cylinder} styles can be specified
as INF which means they extend all the way to the global simulation
box boundary. If a region is defined before the simulation box has
been created (via "create_box"_create_box.html or
The lo/hi values for {block} or {cylinder} or {prism} styles can be
specified as INF which means they extend all the way to the global
simulation box boundary. If a region is defined before the simulation
box has been created (via "create_box"_create_box.html or
"read_data"_read_data.html or "read_restart"_read_restart.html
commands), then an INF parameter cannot be used.
@ -70,6 +77,19 @@ third example above specifes a cylinder with its axis in the
y-direction located at x = 2.0 and z = 3.0, with a radius of 5.0, and
extending in the y-direction from -5.0 to the upper box boundary.
For style {prism}, a tilted block is defined. The bounds of the
untilted axis-aligned block are specified in the same way as for the
{block} style. A tilt factor for each dimension with respect to
another dimension is also specified. If the lower xy face of the
prism is initially a rectangle (untilted), then the yxtilt factor
specifies how far the upper y edge of that face is shifted in the x
direction (skewing that face, keeping the xy face a parallelogram). A
plus or minus value can be chosen; 0.0 would be no tilt. Similarly,
zxtilt and zytilt describe how far the upper xy face of the prism is
translated in the x and y directions to further tilt the prism. The
final prism shape remains a parallelipiped, with opposing pairs of the
6 faces remaining parallel to each other.
The {union} style creates a region consisting of the volume of all the
listed regions combined. The {intesect} style creates a region
consisting of the volume that is common to all the listed regions.
@ -87,11 +107,15 @@ The {units} keyword determines the meaning of the distance units used
to define the region. A {box} value selects standard distance units
as defined by the "units"_units.html command, e.g. Angstroms for units
= real or metal. A {lattice} value means the distance units are in
cubic lattice spacings. The "lattice"_lattice.html command must first
be used to define a lattice.
lattice spacings. The "lattice"_lattice.html command must have been
previously used to define the lattice spacing.
[Restrictions:] none
A prism cannot be of 0.0 thickness in any dimension; use a small z
thickness for 2d simulations. For 2d simulations, the zxtilt and
zytilt parameters must be 0.0.
[Related commands:]
"lattice"_lattice.html, "create_atoms"_create_atoms.html,

View File

@ -1,8 +1,10 @@
# Stillinger-Weber parameters for various elements and mixtures
# multiple elements can be added to this file, LAMMPS reads the ones it needs
# multiple entries can be added to this file, LAMMPS reads the ones it needs
# format of a line:
# format of an entry (one or more lines):
# element 1, element 2, element 3
# epsilon, sigma, littlea, lambda, gamma, costheta, biga, bigb, powerp, powerq
Si Si Si 2.1683 2.0951 1.80 21.0 1.20 -0.333333333333 7.049556277 0.6022245584 4.0 0.0
Si Si Si 2.1683 2.0951 1.80 21.0 1.20 -0.333333333333
7.049556277 0.6022245584 4.0 0.0

View File

@ -5,7 +5,7 @@ SHELL = /bin/sh
# System-specific settings
FFTW = /apps/libraries/fftw/nwcc
FFTW = /apps/libraries/fftw
CC = mpicxx
CCFLAGS = -O -DFFT_FFTW -I${FFTW}/include

View File

@ -12,7 +12,7 @@
------------------------------------------------------------------------- */
#ifndef FIX_WALL_REFLECT_H
#define FIX_WALL_REFELCT_H
#define FIX_WALL_REFLECT_H
#include "fix.h"

View File

@ -50,7 +50,7 @@ FILE *LAMMPS::logfile = NULL;
void LAMMPS::open(int narg, char **arg, MPI_Comm communicator)
{
sys = new System();
sys->open(narg,arg,MPI_COMM_WORLD);
sys->open(narg,arg,communicator);
sys->create();
}

View File

@ -41,6 +41,7 @@ Region::Region(int narg, char **arg)
if (strcmp(style,"block") == 0) options(narg-8,&arg[8]);
else if (strcmp(style,"sphere") == 0) options(narg-6,&arg[6]);
else if (strcmp(arg[1],"cylinder") == 0) options(narg-8,&arg[8]);
else if (strcmp(style,"prism") == 0) options(narg-11,&arg[11]);
else if (strcmp(arg[1],"union") == 0) {
if (narg < 5) error->all("Illegal region command");
n = atoi(arg[2]);

128
src/region_prism.cpp Normal file
View File

@ -0,0 +1,128 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#include "stdlib.h"
#include "string.h"
#include "region_prism.h"
#include "domain.h"
#include "force.h"
#include "error.h"
#define MIN(A,B) ((A) < (B)) ? (A) : (B)
#define MAX(A,B) ((A) > (B)) ? (A) : (B)
/* ---------------------------------------------------------------------- */
RegPrism::RegPrism(int narg, char **arg) : Region(narg, arg)
{
if (strcmp(arg[2],"INF") == 0) {
if (domain->box_exist == 0)
error->all("Cannot use region INF when box does not exist");
xlo = domain->boxxlo;
} else xlo = xscale*atof(arg[2]);
if (strcmp(arg[3],"INF") == 0) {
if (domain->box_exist == 0)
error->all("Cannot use region INF when box does not exist");
xhi = domain->boxxhi;
} else xhi = xscale*atof(arg[3]);
if (strcmp(arg[4],"INF") == 0) {
if (domain->box_exist == 0)
error->all("Cannot use region INF when box does not exist");
ylo = domain->boxylo;
} else ylo = yscale*atof(arg[4]);
if (strcmp(arg[5],"INF") == 0) {
if (domain->box_exist == 0)
error->all("Cannot use region INF when box does not exist");
yhi = domain->boxyhi;
} else yhi = yscale*atof(arg[5]);
if (strcmp(arg[6],"INF") == 0) {
if (domain->box_exist == 0)
error->all("Cannot use region INF when box does not exist");
zlo = domain->boxzlo;
} else zlo = zscale*atof(arg[6]);
if (strcmp(arg[7],"INF") == 0) {
if (domain->box_exist == 0)
error->all("Cannot use region INF when box does not exist");
zhi = domain->boxzhi;
} else zhi = zscale*atof(arg[7]);
yxshift = xscale*atof(arg[8]);
zxshift = xscale*atof(arg[9]);
zyshift = yscale*atof(arg[10]);
// error check
// prism cannot be 0 thickness in any dim, else inverse blows up
if (xlo >= xhi || ylo >= yhi || zlo >= zhi)
error->all("Illegal region prism command");
// extent of prism
extent_xlo = MIN(xlo,xlo+yxshift);
extent_xlo = MIN(extent_xlo,extent_xlo+zxshift);
extent_xhi = MAX(xhi,xhi+yxshift);
extent_xhi = MAX(extent_xhi,extent_xhi+zxshift);
extent_ylo = MIN(ylo,ylo+zyshift);
extent_yhi = MAX(yhi,yhi+zyshift);
extent_zlo = zlo;
extent_zhi = zhi;
// h = transformation matrix from tilt coords (0-1) to box coords (xyz)
// columns of h are edge vectors of tilted box
// hinv = transformation matrix from box coords to tilt coords
// both h and hinv are upper triangular
// since 1st edge of prism is along x-axis
// and bottom face of prism is in xy plane
h[0][0] = xhi - xlo;
h[0][1] = yxshift;
h[1][1] = yhi - ylo;
h[0][2] = zxshift;
h[1][2] = zyshift;
h[2][2] = zhi - zlo;
hinv[0][0] = 1.0/h[0][0];
hinv[0][1] = -h[0][1] / (h[0][0]*h[1][1]);
hinv[1][1] = 1.0/h[1][1];
hinv[0][2] = (h[0][1]*h[1][2] - h[0][2]*h[1][1]) / (h[0][0]*h[1][1]*h[2][2]);
hinv[1][2] = -h[1][2] / (h[1][1]*h[2][2]);
hinv[2][2] = 1.0/h[2][2];
}
/* ----------------------------------------------------------------------
check xyz against prism
abc = Hinv * (xyz - xyzlo)
abc = tilt coords (0-1)
Hinv = transformation matrix from box coords to tilt coords
xyz = box coords
xyzlo = lower-left corner of prism
------------------------------------------------------------------------- */
int RegPrism::match(double x, double y, double z)
{
double a = hinv[0][0]*(x-xlo) + hinv[0][1]*(y-ylo) + hinv[0][2]*(z-zlo);
double b = hinv[1][1]*(y-ylo) + hinv[1][2]*(z-zlo);
double c = hinv[2][2]*(z-zlo);
int inside;
if (a >= 0.0 && a <= 1.0 && b >= 0.0 && b <= 1.0 && c >= 0.0 && c <= 1.0)
inside = 1;
else inside = 0;
return !(inside ^ interior); // 1 if same, 0 if different
}

33
src/region_prism.h Normal file
View File

@ -0,0 +1,33 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef REGION_PRISM_H
#define REGION_PRISM_H
#include "region.h"
class RegPrism : public Region {
friend class FixInsert;
public:
RegPrism(int, char **);
~RegPrism() {}
int match(double, double, double);
private:
double xlo,xhi,ylo,yhi,zlo,zhi;
double yxshift,zxshift,zyshift;
double h[3][3],hinv[3][3];
};
#endif

View File

@ -247,6 +247,7 @@ PairStyle(yukawa,PairYukawa)
#include "region_block.h"
#include "region_cylinder.h"
#include "region_intersect.h"
#include "region_prism.h"
#include "region_sphere.h"
#include "region_union.h"
#endif
@ -255,6 +256,7 @@ PairStyle(yukawa,PairYukawa)
RegionStyle(block,RegBlock)
RegionStyle(cylinder,RegCylinder)
RegionStyle(intersect,RegIntersect)
RegionStyle(prism,RegPrism)
RegionStyle(sphere,RegSphere)
RegionStyle(union,RegUnion)
#endif

View File

@ -0,0 +1,56 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef AngleInclude
#include "angle_class2.h"
#endif
#ifdef AngleClass
AngleStyle(class2,AngleClass2)
#endif
#ifdef BondInclude
#include "bond_class2.h"
#endif
#ifdef BondClass
BondStyle(class2,BondClass2)
#endif
#ifdef DihedralInclude
#include "dihedral_class2.h"
#endif
#ifdef DihedralClass
DihedralStyle(class2,DihedralClass2)
#endif
#ifdef ImproperInclude
#include "improper_class2.h"
#endif
#ifdef ImproperClass
ImproperStyle(class2,ImproperClass2)
#endif
#ifdef PairInclude
#include "pair_lj_class2.h"
#include "pair_lj_class2_coul_cut.h"
#include "pair_lj_class2_coul_long.h"
#endif
#ifdef PairClass
PairStyle(lj/class2,PairLJClass2)
PairStyle(lj/class2/coul/cut,PairLJClass2CoulCut)
PairStyle(lj/class2/coul/long,PairLJClass2CoulLong)
#endif

View File

@ -0,0 +1,28 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef AtomInclude
#include "atom_dpd.h"
#endif
#ifdef AtomClass
AtomStyle(dpd,AtomDPD)
#endif
#ifdef PairInclude
#include "pair_dpd.h"
#endif
#ifdef PairClass
PairStyle(dpd,PairDPD)
#endif

View File

@ -0,0 +1,50 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef AtomInclude
#include "atom_granular.h"
#endif
#ifdef AtomClass
AtomStyle(granular,AtomGranular)
# endif
#ifdef FixInclude
#include "fix_freeze.h"
#include "fix_gran_diag.h"
#include "fix_insert.h"
#include "fix_nve_gran.h"
#include "fix_shear_history.h"
#include "fix_wall_gran.h"
#endif
#ifdef FixClass
FixStyle(freeze,FixFreeze)
FixStyle(gran/diag,FixGranDiag)
FixStyle(insert,FixInsert)
FixStyle(nve/gran,FixNVEGran)
FixStyle(SHEAR_HISTORY,FixShearHistory)
FixStyle(wall/gran,FixWallGran)
#endif
#ifdef PairInclude
#include "pair_gran_hertzian.h"
#include "pair_gran_history.h"
#include "pair_gran_no_history.h"
#endif
#ifdef PairClass
PairStyle(gran/hertzian,PairGranHertzian)
PairStyle(gran/history,PairGranHistory)
PairStyle(gran/no_history,PairGranNoHistory)
#endif

View File

@ -0,0 +1,38 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef KSpaceInclude
#include "ewald.h"
#include "pppm.h"
#include "pppm_tip4p.h"
#endif
#ifdef KSpaceClass
KSpaceStyle(ewald,Ewald)
KSpaceStyle(pppm,PPPM)
KSpaceStyle(pppm/tip4p,PPPMTIP4P)
#endif
#ifdef PairInclude
#include "pair_buck_coul_long.h"
#include "pair_lj_cut_coul_long.h"
#include "pair_lj_cut_coul_long_tip4p.h"
#include "pair_lj_charmm_coul_long.h"
#endif
#ifdef PairClass
PairStyle(buck/coul/long,PairBuckCoulLong)
PairStyle(lj/cut/coul/long,PairLJCutCoulLong)
PairStyle(lj/cut/coul/long/tip4p,PairLJCutCoulLongTIP4P)
PairStyle(lj/charmm/coul/long,PairLJCharmmCoulLong)
#endif

View File

@ -0,0 +1,24 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef PairInclude
#include "pair_eam.h"
#include "pair_eam_alloy.h"
#include "pair_eam_fs.h"
#endif
#ifdef PairClass
PairStyle(eam,PairEAM)
PairStyle(eam/alloy,PairEAMAlloy)
PairStyle(eam/fs,PairEAMFS)
#endif

View File

@ -0,0 +1,116 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
www.cs.sandia.gov/~sjplimp/lammps.html
Steve Plimpton, sjplimp@sandia.gov, Sandia National Laboratories
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifdef AngleInclude
#include "angle_charmm.h"
#include "angle_cosine.h"
#include "angle_cosine_squared.h"
#include "angle_harmonic.h"
#include "angle_hybrid.h"
#endif
#ifdef AngleClass
AngleStyle(charmm,AngleCharmm)
AngleStyle(cosine,AngleCosine)
AngleStyle(cosine/squared,AngleCosineSquared)
AngleStyle(harmonic,AngleHarmonic)
AngleStyle(hybrid,AngleHybrid)
#endif
#ifdef AtomInclude
#include "atom_angle.h"
#include "atom_bond.h"
#include "atom_full.h"
#include "atom_molecular.h"
#endif
#ifdef AtomClass
AtomStyle(angle,AtomAngle)
AtomStyle(bond,AtomBond)
AtomStyle(full,AtomFull)
AtomStyle(molecular,AtomMolecular)
#endif
#ifdef BondInclude
#include "bond_fene.h"
#include "bond_fene_expand.h"
#include "bond_harmonic.h"
#include "bond_hybrid.h"
#include "bond_morse.h"
#include "bond_nonlinear.h"
#include "bond_quartic.h"
#endif
#ifdef BondClass
BondStyle(fene,BondFENE)
BondStyle(fene/expand,BondFENEExpand)
BondStyle(harmonic,BondHarmonic)
BondStyle(hybrid,BondHybrid)
BondStyle(morse,BondMorse)
BondStyle(nonlinear,BondNonlinear)
BondStyle(quartic,BondQuartic)
#endif
#ifdef DihedralInclude
#include "dihedral_charmm.h"
#include "dihedral_harmonic.h"
#include "dihedral_helix.h"
#include "dihedral_hybrid.h"
#include "dihedral_multi_harmonic.h"
#include "dihedral_opls.h"
#endif
#ifdef DihedralClass
DihedralStyle(charmm,DihedralCharmm)
DihedralStyle(harmonic,DihedralHarmonic)
DihedralStyle(helix,DihedralHelix)
DihedralStyle(hybrid,DihedralHybrid)
DihedralStyle(multi/harmonic,DihedralMultiHarmonic)
DihedralStyle(opls,DihedralOPLS)
#endif
#ifdef DumpInclude
#include "dump_bond.h"
#endif
#ifdef DumpClass
DumpStyle(bond,DumpBond)
#endif
#ifdef FixInclude
#endif
#ifdef FixClass
#endif
#ifdef ImproperInclude
#include "improper_cvff.h"
#include "improper_harmonic.h"
#include "improper_hybrid.h"
#endif
#ifdef ImproperClass
ImproperStyle(cvff,ImproperCvff)
ImproperStyle(harmonic,ImproperHarmonic)
ImproperStyle(hybrid,ImproperHybrid)
#endif
#ifdef PairInclude
#include "pair_lj_charmm_coul_charmm.h"
#include "pair_lj_charmm_coul_charmm_implicit.h"
#endif
#ifdef PairClass
PairStyle(lj/charmm/coul/charmm,PairLJCharmmCoulCharmm)
PairStyle(lj/charmm/coul/charmm/implicit,PairLJCharmmCoulCharmmImplicit)
#endif