From 428bdd0b09bf72d2b20cd91dfe00a99b20a79e69 Mon Sep 17 00:00:00 2001
From: sjplimp
Date: Thu, 21 Apr 2011 20:05:45 +0000
Subject: [PATCH 1/8] git-svn-id:
svn://svn.icms.temple.edu/lammps-ro/trunk@5992
f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
src/COLLOID/pair_lubricate.cpp | 8 ++++----
src/COLLOID/pair_yukawa_colloid.cpp | 2 +-
src/atom_vec_ellipsoid.cpp | 13 ++++++------
src/fix_nh.cpp | 2 +-
src/fix_store_state.cpp | 2 +-
src/math_extra.cpp | 32 ++++++++++++++++++++++++++++-
src/math_extra.h | 2 ++
src/read_data.cpp | 2 +-
8 files changed, 48 insertions(+), 15 deletions(-)
diff --git a/src/COLLOID/pair_lubricate.cpp b/src/COLLOID/pair_lubricate.cpp
index 6d8dec2690..6932620cfe 100644
--- a/src/COLLOID/pair_lubricate.cpp
+++ b/src/COLLOID/pair_lubricate.cpp
@@ -385,15 +385,15 @@ void PairLubricate::init_style()
int irequest = neighbor->request(this);
- // require that atom radii are identical within each type require
- // monodisperse system with same radii for all types
+ // require that atom radii are identical within each type
+ // require monodisperse system with same radii for all types
double rad,radtype;
for (int i = 1; i <= atom->ntypes; i++) {
if (!atom->radius_consistency(i,radtype))
- error->all("Pair colloid requires atoms with same type have same radius");
+ error->all("Pair lubricate requires monodisperse particles");
if (i > 1 && radtype != rad)
- error->all("Pair colloid requires mono-disperse particles");
+ error->all("Pair lubricate requires monodisperse particles");
rad = radtype;
}
}
diff --git a/src/COLLOID/pair_yukawa_colloid.cpp b/src/COLLOID/pair_yukawa_colloid.cpp
index 46f66624ee..734be8608e 100644
--- a/src/COLLOID/pair_yukawa_colloid.cpp
+++ b/src/COLLOID/pair_yukawa_colloid.cpp
@@ -12,7 +12,7 @@
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
- Contributing authors: Randy Schunk (SNL)
+ Contributing authors: Randy Schunk (Sandia)
------------------------------------------------------------------------- */
#include "math.h"
diff --git a/src/atom_vec_ellipsoid.cpp b/src/atom_vec_ellipsoid.cpp
index b8e711f142..675a1b15b6 100755
--- a/src/atom_vec_ellipsoid.cpp
+++ b/src/atom_vec_ellipsoid.cpp
@@ -767,7 +767,7 @@ void AtomVecEllipsoid::unpack_border(int n, int first, double *buf)
type[i] = static_cast (buf[m++]);
mask[i] = static_cast (buf[m++]);
ellipsoid[i] = static_cast (buf[m++]);
- if (ellipsoid[i] < 0) ellipsoid[i] = 0;
+ if (ellipsoid[i] == 0) ellipsoid[i] = -1;
else {
j = nlocal_bonus + nghost_bonus;
if (j == nmax_bonus) grow_bonus();
@@ -805,9 +805,8 @@ void AtomVecEllipsoid::unpack_border_vel(int n, int first, double *buf)
type[i] = static_cast (buf[m++]);
mask[i] = static_cast (buf[m++]);
ellipsoid[i] = static_cast (buf[m++]);
- if (ellipsoid[i] < 0) ellipsoid[i] = 0;
+ if (ellipsoid[i] == 0) ellipsoid[i] = -1;
else {
- j = nlocal_bonus + nghost_bonus;
if (j == nmax_bonus) grow_bonus();
shape = bonus[j].shape;
quat = bonus[j].quat;
@@ -842,7 +841,7 @@ int AtomVecEllipsoid::unpack_border_hybrid(int n, int first, double *buf)
last = first + n;
for (i = first; i < last; i++) {
ellipsoid[i] = static_cast (buf[m++]);
- if (ellipsoid[i] < 0) ellipsoid[i] = 0;
+ if (ellipsoid[i] == 0) ellipsoid[i] = -1;
else {
j = nlocal_bonus + nghost_bonus;
if (j == nmax_bonus) grow_bonus();
@@ -933,7 +932,8 @@ int AtomVecEllipsoid::unpack_exchange(double *buf)
angmom[nlocal][2] = buf[m++];
ellipsoid[nlocal] = static_cast (buf[m++]);
- if (ellipsoid[nlocal]) {
+ if (ellipsoid[nlocal] == 0) ellipsoid[nlocal] = -1;
+ else {
if (nlocal_bonus == nmax_bonus) grow_bonus();
double *shape = bonus[nlocal_bonus].shape;
double *quat = bonus[nlocal_bonus].quat;
@@ -1057,7 +1057,8 @@ int AtomVecEllipsoid::unpack_restart(double *buf)
angmom[nlocal][2] = buf[m++];
ellipsoid[nlocal] = static_cast (buf[m++]);
- if (ellipsoid[nlocal]) {
+ if (ellipsoid[nlocal] == 0) ellipsoid[nlocal] = -1;
+ else {
if (nlocal_bonus == nmax_bonus) grow_bonus();
double *shape = bonus[nlocal_bonus].shape;
double *quat = bonus[nlocal_bonus].quat;
diff --git a/src/fix_nh.cpp b/src/fix_nh.cpp
index 9f5d84b4c8..cf4d5535fb 100644
--- a/src/fix_nh.cpp
+++ b/src/fix_nh.cpp
@@ -19,6 +19,7 @@
#include "stdlib.h"
#include "math.h"
#include "fix_nh.h"
+#include "math_extra.h"
#include "atom.h"
#include "force.h"
#include "comm.h"
@@ -31,7 +32,6 @@
#include "domain.h"
#include "memory.h"
#include "error.h"
-#include "math_extra.h"
using namespace LAMMPS_NS;
diff --git a/src/fix_store_state.cpp b/src/fix_store_state.cpp
index bbae452f96..54c94ad050 100644
--- a/src/fix_store_state.cpp
+++ b/src/fix_store_state.cpp
@@ -468,7 +468,7 @@ double FixStoreState::memory_usage()
void FixStoreState::grow_arrays(int nmax)
{
- memory->grow(values,nmax,nvalues,"fix_store:values");
+ memory->grow(values,nmax,nvalues,"store/state:values");
if (nvalues == 1) {
if (nmax) vector_atom = &values[0][0];
else vector_atom = NULL;
diff --git a/src/math_extra.cpp b/src/math_extra.cpp
index 535a1e576b..c4318e8bbe 100644
--- a/src/math_extra.cpp
+++ b/src/math_extra.cpp
@@ -428,8 +428,8 @@ void quat_to_mat_trans(const double *quat, double mat[3][3])
/* ----------------------------------------------------------------------
compute space-frame inertia tensor of an ellipsoid
- quat = orientiation quaternion of ellipsoid
radii = 3 radii of ellipsoid
+ quat = orientiation quaternion of ellipsoid
return symmetric inertia tensor as 6-vector in Voigt notation
------------------------------------------------------------------------- */
@@ -454,6 +454,36 @@ void inertia_ellipsoid(double *radii, double *quat, double mass,
inertia[5] = tensor[0][1];
}
+/* ----------------------------------------------------------------------
+ compute space-frame inertia tensor of a line segment in 2d
+ length = length of line
+ theta = orientiation of line
+ return symmetric inertia tensor as 6-vector in Voigt notation
+------------------------------------------------------------------------- */
+
+void inertia_line(double length, double theta, double mass, double *inertia)
+{
+ double p[3][3],ptrans[3][3],itemp[3][3],tensor[3][3];
+ double q[4],idiag[3];
+
+ q[0] = cos(0.5*theta);
+ q[1] = q[2] = 0.0;
+ q[3] = sin(0.5*theta);
+ MathExtra::quat_to_mat(q,p);
+ MathExtra::quat_to_mat_trans(q,ptrans);
+ idiag[0] = 0.0;
+ idiag[1] = 1.0/12.0 * mass * length*length;
+ idiag[2] = 1.0/12.0 * mass * length*length;
+ MathExtra::diag_times3(idiag,ptrans,itemp);
+ MathExtra::times3(p,itemp,tensor);
+ inertia[0] = tensor[0][0];
+ inertia[1] = tensor[1][1];
+ inertia[2] = tensor[2][2];
+ inertia[3] = tensor[1][2];
+ inertia[4] = tensor[0][2];
+ inertia[5] = tensor[0][1];
+}
+
/* ----------------------------------------------------------------------
compute space-frame inertia tensor of a triangle
v0,v1,v2 = 3 vertices of triangle
diff --git a/src/math_extra.h b/src/math_extra.h
index c9a117fe03..3ca98f8f12 100755
--- a/src/math_extra.h
+++ b/src/math_extra.h
@@ -114,6 +114,8 @@ namespace MathExtra {
void inertia_ellipsoid(double *shape, double *quat, double mass,
double *inertia);
+ void inertia_line(double length, double theta, double mass,
+ double *inertia);
void inertia_triangle(double *v0, double *v1, double *v2,
double mass, double *inertia);
}
diff --git a/src/read_data.cpp b/src/read_data.cpp
index 7eef7dc4b4..dd3099ab87 100644
--- a/src/read_data.cpp
+++ b/src/read_data.cpp
@@ -41,7 +41,7 @@ using namespace LAMMPS_NS;
#define DELTA 4 // must be 2 or larger
// customize for new sections
-#define NSECTIONS 23 // change when add to header::section_keywords
+#define NSECTIONS 21 // change when add to header::section_keywords
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#define MAX(a,b) ((a) > (b) ? (a) : (b))
From a63accb1e8467144484cccf2c942f1e59a1761ed Mon Sep 17 00:00:00 2001
From: sjplimp
Date: Thu, 21 Apr 2011 22:45:00 +0000
Subject: [PATCH 2/8] git-svn-id:
svn://svn.icms.temple.edu/lammps-ro/trunk@5995
f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
src/atom_vec_ellipsoid.cpp | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/atom_vec_ellipsoid.cpp b/src/atom_vec_ellipsoid.cpp
index 675a1b15b6..a59931901c 100755
--- a/src/atom_vec_ellipsoid.cpp
+++ b/src/atom_vec_ellipsoid.cpp
@@ -125,7 +125,6 @@ void AtomVecEllipsoid::grow_bonus()
/* ----------------------------------------------------------------------
copy atom I info to atom J
- if delflag and atom J has bonus data, then delete it
------------------------------------------------------------------------- */
void AtomVecEllipsoid::copy(int i, int j, int delflag)
@@ -146,12 +145,17 @@ void AtomVecEllipsoid::copy(int i, int j, int delflag)
angmom[j][1] = angmom[i][1];
angmom[j][2] = angmom[i][2];
+ // if delflag and atom J has bonus data, then delete it
+
if (delflag && ellipsoid[j] >= 0) {
copy_bonus(nlocal_bonus-1,ellipsoid[j]);
nlocal_bonus--;
}
+
+ // if atom I has bonus data and not deleting I, repoint I's bonus to J
+
+ if (ellipsoid[i] >= 0 && i != j) bonus[ellipsoid[i]].ilocal = j;
ellipsoid[j] = ellipsoid[i];
- if (ellipsoid[j] >= 0) bonus[ellipsoid[j]].ilocal = j;
if (atom->nextra_grow)
for (int iextra = 0; iextra < atom->nextra_grow; iextra++)
From 71dcf371486801f2622dde3f5f075474f6100e1d Mon Sep 17 00:00:00 2001
From: sjplimp
Date: Fri, 22 Apr 2011 23:05:58 +0000
Subject: [PATCH 3/8] git-svn-id:
svn://svn.icms.temple.edu/lammps-ro/trunk@6014
f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
src/ASPHERE/fix_nve_asphere.h | 3 --
src/atom_vec_ellipsoid.cpp | 54 ++++++++++++++---------------------
2 files changed, 22 insertions(+), 35 deletions(-)
diff --git a/src/ASPHERE/fix_nve_asphere.h b/src/ASPHERE/fix_nve_asphere.h
index b535a47a14..d9a659a8b4 100755
--- a/src/ASPHERE/fix_nve_asphere.h
+++ b/src/ASPHERE/fix_nve_asphere.h
@@ -34,9 +34,6 @@ class FixNVEAsphere : public FixNVE {
private:
double dtq;
class AtomVecEllipsoid *avec;
-
- void richardson(double *, double *, double *);
- void omega_from_mq(double *, double *, double *, double *);
};
}
diff --git a/src/atom_vec_ellipsoid.cpp b/src/atom_vec_ellipsoid.cpp
index a59931901c..77b1057622 100755
--- a/src/atom_vec_ellipsoid.cpp
+++ b/src/atom_vec_ellipsoid.cpp
@@ -169,20 +169,18 @@ void AtomVecEllipsoid::copy(int i, int j, int delflag)
void AtomVecEllipsoid::copy_bonus(int i, int j)
{
- double *ishape = bonus[i].shape;
- double *iquat = bonus[i].quat;
- double *jshape = bonus[j].shape;
- double *jquat = bonus[j].quat;
- jshape[0] = ishape[0];
- jshape[1] = ishape[1];
- jshape[2] = ishape[2];
- jquat[0] = iquat[0];
- jquat[1] = iquat[1];
- jquat[2] = iquat[2];
- jquat[3] = iquat[3];
- int m = bonus[i].ilocal;
- bonus[j].ilocal = m;
- ellipsoid[m] = j;
+ memcpy(&bonus[j],&bonus[i],sizeof(Bonus));
+ ellipsoid[bonus[j].ilocal] = j;
+}
+
+/* ----------------------------------------------------------------------
+ clear ghost info in bonus data
+ called before ghosts are recommunicated in comm and irregular
+------------------------------------------------------------------------- */
+
+void AtomVecEllipsoid::clear_bonus()
+{
+ nghost_bonus = 0;
}
/* ----------------------------------------------------------------------
@@ -219,20 +217,10 @@ void AtomVecEllipsoid::set_shape(int i,
}
}
-/* ----------------------------------------------------------------------
- clear ghost info in bonus data
- called before ghosts are recommunicated in comm and irregular
-------------------------------------------------------------------------- */
-
-void AtomVecEllipsoid::clear_bonus()
-{
- nghost_bonus = 0;
-}
-
/* ---------------------------------------------------------------------- */
int AtomVecEllipsoid::pack_comm(int n, int *list, double *buf,
- int pbc_flag, int *pbc)
+ int pbc_flag, int *pbc)
{
int i,j,m;
double dx,dy,dz;
@@ -894,13 +882,15 @@ int AtomVecEllipsoid::pack_exchange(int i, double *buf)
else {
buf[m++] = 1;
int j = ellipsoid[i];
- buf[m++] = bonus[j].shape[0];
- buf[m++] = bonus[j].shape[1];
- buf[m++] = bonus[j].shape[2];
- buf[m++] = bonus[j].quat[0];
- buf[m++] = bonus[j].quat[1];
- buf[m++] = bonus[j].quat[2];
- buf[m++] = bonus[j].quat[3];
+ double *shape = bonus[j].shape;
+ double *quat = bonus[j].quat;
+ buf[m++] = shape[0];
+ buf[m++] = shape[1];
+ buf[m++] = shape[2];
+ buf[m++] = quat[0];
+ buf[m++] = quat[1];
+ buf[m++] = quat[2];
+ buf[m++] = quat[3];
}
if (atom->nextra_grow)
From bc7dd498a402d167f3e0e34531a5076e8ee77cc3 Mon Sep 17 00:00:00 2001
From: sjplimp
Date: Fri, 22 Apr 2011 23:56:05 +0000
Subject: [PATCH 4/8] git-svn-id:
svn://svn.icms.temple.edu/lammps-ro/trunk@6015
f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
src/atom_vec_ellipsoid.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/atom_vec_ellipsoid.cpp b/src/atom_vec_ellipsoid.cpp
index 77b1057622..929e10e09b 100755
--- a/src/atom_vec_ellipsoid.cpp
+++ b/src/atom_vec_ellipsoid.cpp
@@ -185,6 +185,7 @@ void AtomVecEllipsoid::clear_bonus()
/* ----------------------------------------------------------------------
set shape values in bonus data for particle I
+ oriented aligned with xyz axes
this may create or delete entry in bonus data
------------------------------------------------------------------------- */
From b4b5e469e96b4f98da7f463d7252d6c1e49ab0d9 Mon Sep 17 00:00:00 2001
From: athomps
Date: Mon, 25 Apr 2011 15:20:12 +0000
Subject: [PATCH 5/8] Added attribution
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6016 f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
examples/ELASTIC/in.elastic | 2 ++
1 file changed, 2 insertions(+)
diff --git a/examples/ELASTIC/in.elastic b/examples/ELASTIC/in.elastic
index 8ce78717ad..4eb09b7d2f 100644
--- a/examples/ELASTIC/in.elastic
+++ b/examples/ELASTIC/in.elastic
@@ -1,5 +1,7 @@
# Compute elastic constant tensor for a crystal
#
+# Written by Aidan Thompson (Sandia, athomps@sandia.gov)
+#
# This script uses the following three include files.
#
# init.mod (must be modified for different crystal structures)
From b4de29a7c3332798216d8b817f03cb5b8639f37c Mon Sep 17 00:00:00 2001
From: athomps
Date: Tue, 26 Apr 2011 17:49:54 +0000
Subject: [PATCH 6/8] Added erratum for Tersoff_2
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6017 f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
potentials/SiC.tersoff | 1 +
1 file changed, 1 insertion(+)
diff --git a/potentials/SiC.tersoff b/potentials/SiC.tersoff
index 9a06932846..e42942b752 100644
--- a/potentials/SiC.tersoff
+++ b/potentials/SiC.tersoff
@@ -1,6 +1,7 @@
# Si and C mixture, parameterized for Tersoff potential
# this file is from Rutuparna.Narulkar @ okstate.edu
# values are from Phys Rev B, 39, 5566-5568 (1989)
+# and errata (PRB 41, 3248)
# Tersoff parameters for various elements and mixtures
# multiple entries can be added to this file, LAMMPS reads the ones it needs
From ed2ac8315feb4c14ee846ffd2ff8797df1dcaa87 Mon Sep 17 00:00:00 2001
From: athomps
Date: Tue, 26 Apr 2011 17:53:53 +0000
Subject: [PATCH 7/8] Added errata to Tersoff_2 ref
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@6018 f3b2605a-c512-4ea7-a41b-209d697bcdaa
---
doc/pair_tersoff.html | 2 +-
doc/pair_tersoff.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/pair_tersoff.html b/doc/pair_tersoff.html
index e38c67bd95..f3ac21bf29 100644
--- a/doc/pair_tersoff.html
+++ b/doc/pair_tersoff.html
@@ -212,6 +212,6 @@ Condens. Matter, 15, 5649(2003).
-(Tersoff_2) J. Tersoff, Phys Rev B, 39, 5566 (1989)
+
(Tersoff_2) J. Tersoff, Phys Rev B, 39, 5566 (1989); errata (PRB 41, 3248)