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> </PRE>
<UL><LI>ID = user-assigned name for the region <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 <PRE> <I>block</I> args = xlo xhi ylo yhi zlo zhi
xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all 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) c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units) radius = cylinder radius (distance units)
lo,hi = bounds of cylinder in dim (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 ... <I>union</I> args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together 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 <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 2 sphere 0.0 0.0 0.0 5 side out
region void cylinder y 2 3 5 -5.0 INF units box 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 region outside union 4 side1 side2 side3 side4
</PRE> </PRE>
<P><B>Description:</B> <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> 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. command, or deleted via the <A HREF = "delete_atoms.html">delete_atoms</A> command.
</P> </P>
<P>The lo/hi values for <I>block</I> or <I>cylinder</I> styles can be specified <P>The lo/hi values for <I>block</I> or <I>cylinder</I> or <I>prism</I> styles can be
as INF which means they extend all the way to the global simulation specified as INF which means they extend all the way to the global
box boundary. If a region is defined before the simulation box has simulation box boundary. If a region is defined before the simulation
been created (via <A HREF = "create_box.html">create_box</A> or 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> <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. commands), then an INF parameter cannot be used.
</P> </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 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. extending in the y-direction from -5.0 to the upper box boundary.
</P> </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 <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 listed regions combined. The <I>intesect</I> style creates a region
consisting of the volume that is common to all the listed regions. 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 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 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 = 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 lattice spacings. The <A HREF = "lattice.html">lattice</A> command must have been
be used to define a lattice. previously used to define the lattice spacing.
</P> </P>
<P><B>Restrictions:</B> none <P><B>Restrictions:</B> none
</P> </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><B>Related commands:</B>
</P> </P>
<P><A HREF = "lattice.html">lattice</A>, <A HREF = "create_atoms.html">create_atoms</A>, <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 region ID style args keyword value ... :pre
ID = user-assigned name for the region :ulb,l 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 {block} args = xlo xhi ylo yhi zlo zhi
xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all xlo,xhi,ylo,yhi,zlo,zhi = bounds of block in all
dimensions (distance units) 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) c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
radius = cylinder radius (distance units) radius = cylinder radius (distance units)
lo,hi = bounds of cylinder in dim (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 ... {union} args = N reg-ID1 reg-ID2 ...
N = # of regions to follow, must be 2 or greater N = # of regions to follow, must be 2 or greater
reg-ID1,reg-ID2, ... = IDs of regions to join together 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 1 block -3.0 5.0 INF 10.0 INF INF
region 2 sphere 0.0 0.0 0.0 5 side out 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 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 region outside union 4 side1 side2 side3 side4 :pre
[Description:] [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 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. command, or deleted via the "delete_atoms"_delete_atoms.html command.
The lo/hi values for {block} or {cylinder} styles can be specified The lo/hi values for {block} or {cylinder} or {prism} styles can be
as INF which means they extend all the way to the global simulation specified as INF which means they extend all the way to the global
box boundary. If a region is defined before the simulation box has simulation box boundary. If a region is defined before the simulation
been created (via "create_box"_create_box.html or box has been created (via "create_box"_create_box.html or
"read_data"_read_data.html or "read_restart"_read_restart.html "read_data"_read_data.html or "read_restart"_read_restart.html
commands), then an INF parameter cannot be used. 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 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. 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 The {union} style creates a region consisting of the volume of all the
listed regions combined. The {intesect} style creates a region listed regions combined. The {intesect} style creates a region
consisting of the volume that is common to all the listed regions. 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 to define the region. A {box} value selects standard distance units
as defined by the "units"_units.html command, e.g. Angstroms for 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 = real or metal. A {lattice} value means the distance units are in
cubic lattice spacings. The "lattice"_lattice.html command must first lattice spacings. The "lattice"_lattice.html command must have been
be used to define a lattice. previously used to define the lattice spacing.
[Restrictions:] none [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:] [Related commands:]
"lattice"_lattice.html, "create_atoms"_create_atoms.html, "lattice"_lattice.html, "create_atoms"_create_atoms.html,

View File

@ -1,8 +1,10 @@
# Stillinger-Weber parameters for various elements and mixtures # 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 # element 1, element 2, element 3
# epsilon, sigma, littlea, lambda, gamma, costheta, biga, bigb, powerp, powerq # 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 # System-specific settings
FFTW = /apps/libraries/fftw/nwcc FFTW = /apps/libraries/fftw
CC = mpicxx CC = mpicxx
CCFLAGS = -O -DFFT_FFTW -I${FFTW}/include CCFLAGS = -O -DFFT_FFTW -I${FFTW}/include

View File

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

View File

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

View File

@ -41,6 +41,7 @@ Region::Region(int narg, char **arg)
if (strcmp(style,"block") == 0) options(narg-8,&arg[8]); if (strcmp(style,"block") == 0) options(narg-8,&arg[8]);
else if (strcmp(style,"sphere") == 0) options(narg-6,&arg[6]); 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(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) { else if (strcmp(arg[1],"union") == 0) {
if (narg < 5) error->all("Illegal region command"); if (narg < 5) error->all("Illegal region command");
n = atoi(arg[2]); 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_block.h"
#include "region_cylinder.h" #include "region_cylinder.h"
#include "region_intersect.h" #include "region_intersect.h"
#include "region_prism.h"
#include "region_sphere.h" #include "region_sphere.h"
#include "region_union.h" #include "region_union.h"
#endif #endif
@ -255,6 +256,7 @@ PairStyle(yukawa,PairYukawa)
RegionStyle(block,RegBlock) RegionStyle(block,RegBlock)
RegionStyle(cylinder,RegCylinder) RegionStyle(cylinder,RegCylinder)
RegionStyle(intersect,RegIntersect) RegionStyle(intersect,RegIntersect)
RegionStyle(prism,RegPrism)
RegionStyle(sphere,RegSphere) RegionStyle(sphere,RegSphere)
RegionStyle(union,RegUnion) RegionStyle(union,RegUnion)
#endif #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