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

This commit is contained in:
sjplimp
2013-04-08 23:38:00 +00:00
parent 5563cb6124
commit b6df7c873b
14 changed files with 72 additions and 3 deletions

View File

@ -233,6 +233,16 @@ void AngleCosineShift::read_restart(FILE *fp)
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleCosineShift::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g %g\n",i,2.0*k[i],theta0[i]/MY_PI*180.0);
}
/* ---------------------------------------------------------------------- */
double AngleCosineShift::single(int type, int i1, int i2, int i3)

View File

@ -34,6 +34,7 @@ class AngleCosineShift : public Angle {
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
double single(int, int, int, int);
protected:

View File

@ -266,6 +266,16 @@ void AngleCosineShiftExp::read_restart(FILE *fp)
}
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleCosineShiftExp::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g %g %g\n",i,umin[i],theta0[i]/MY_PI*180.0,a[i]);
}
/* ---------------------------------------------------------------------- */
double AngleCosineShiftExp::single(int type, int i1, int i2, int i3)

View File

@ -32,6 +32,7 @@ class AngleCosineShiftExp : public Angle {
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
double single(int, int, int, int);
protected:

View File

@ -181,6 +181,16 @@ void AngleDipole::read_restart(FILE *fp)
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleDipole::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g %g\n",i,k[i],gamma0[i]);
}
/* ----------------------------------------------------------------------
used by ComputeAngleLocal
------------------------------------------------------------------------- */

View File

@ -34,6 +34,7 @@ class AngleDipole : public Angle {
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
double single(int, int, int, int);
protected:

View File

@ -239,6 +239,16 @@ void AngleFourier::read_restart(FILE *fp)
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleFourier::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,k[i],C0[i],C1[i],C2[i]);
}
/* ---------------------------------------------------------------------- */
double AngleFourier::single(int type, int i1, int i2, int i3)

View File

@ -34,6 +34,7 @@ class AngleFourier : public Angle {
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
virtual double single(int, int, int, int);
protected:

View File

@ -244,6 +244,16 @@ void AngleFourierSimple::read_restart(FILE *fp)
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleFourierSimple::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g %g %g\n",i,k[i],C[i],N[i]);
}
/* ---------------------------------------------------------------------- */
double AngleFourierSimple::single(int type, int i1, int i2, int i3)

View File

@ -34,6 +34,7 @@ class AngleFourierSimple : public Angle {
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
virtual double single(int, int, int, int);
protected:

View File

@ -112,7 +112,8 @@ void AngleQuartic::compute(int eflag, int vflag)
dtheta = acos(c) - theta0[type];
dtheta2 = dtheta * dtheta;
dtheta3 = dtheta2 * dtheta;
tk = 2.0 * k2[type] * dtheta + 3.0 * k3[type] * dtheta2 + 4.0 * k4[type] * dtheta3;
tk = 2.0 * k2[type] * dtheta + 3.0 * k3[type] * dtheta2 +
4.0 * k4[type] * dtheta3;
if (eflag) {
dtheta4 = dtheta3 * dtheta;
@ -245,6 +246,16 @@ void AngleQuartic::read_restart(FILE *fp)
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
}
/* ----------------------------------------------------------------------
proc 0 writes to data file
------------------------------------------------------------------------- */
void AngleQuartic::write_data(FILE *fp)
{
for (int i = 1; i <= atom->nangletypes; i++)
fprintf(fp,"%d %g %g %g %g\n",i,k2[i],k3[i],k4[i],theta0[i]/MY_PI*180.0);
}
/* ---------------------------------------------------------------------- */
double AngleQuartic::single(int type, int i1, int i2, int i3)
@ -272,6 +283,7 @@ double AngleQuartic::single(int type, int i1, int i2, int i3)
double dtheta2 = dtheta * dtheta;
double dtheta3 = dtheta2 * dtheta;
double dtheta4 = dtheta3 * dtheta;
double tk = 2.0 * k2[type] * dtheta + 3.0 * k3[type] * dtheta2 + 4.0 * k4[type] * dtheta3;
double tk = 2.0 * k2[type] * dtheta + 3.0 * k3[type] * dtheta2 +
4.0 * k4[type] * dtheta3;
return k2[type] * dtheta2 + k3[type] * dtheta3 + k4[type] * dtheta4;
}

View File

@ -34,6 +34,7 @@ class AngleQuartic : public Angle {
double equilibrium_angle(int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_data(FILE *);
double single(int, int, int, int);
protected:

View File

@ -30,7 +30,7 @@ using namespace MathConst;
Angle::Angle(LAMMPS *lmp) : Pointers(lmp)
{
energy = 0.0;
writedata = 0;
writedata = 1;
allocated = 0;
suffix_flag = Suffix::NONE;

View File

@ -31,6 +31,7 @@ using namespace LAMMPS_NS;
AngleHybrid::AngleHybrid(LAMMPS *lmp) : Angle(lmp)
{
writedata = 0;
nstyles = 0;
}