git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@9764 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
------------------------------------------------------------------------- */
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -31,6 +31,7 @@ using namespace LAMMPS_NS;
|
||||
|
||||
AngleHybrid::AngleHybrid(LAMMPS *lmp) : Angle(lmp)
|
||||
{
|
||||
writedata = 0;
|
||||
nstyles = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user