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;
|
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)
|
double AngleCosineShift::single(int type, int i1, int i2, int i3)
|
||||||
|
|||||||
@ -34,6 +34,7 @@ class AngleCosineShift : public Angle {
|
|||||||
double equilibrium_angle(int);
|
double equilibrium_angle(int);
|
||||||
void write_restart(FILE *);
|
void write_restart(FILE *);
|
||||||
void read_restart(FILE *);
|
void read_restart(FILE *);
|
||||||
|
void write_data(FILE *);
|
||||||
double single(int, int, int, int);
|
double single(int, int, int, int);
|
||||||
|
|
||||||
protected:
|
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)
|
double AngleCosineShiftExp::single(int type, int i1, int i2, int i3)
|
||||||
|
|||||||
@ -32,6 +32,7 @@ class AngleCosineShiftExp : public Angle {
|
|||||||
double equilibrium_angle(int);
|
double equilibrium_angle(int);
|
||||||
void write_restart(FILE *);
|
void write_restart(FILE *);
|
||||||
void read_restart(FILE *);
|
void read_restart(FILE *);
|
||||||
|
void write_data(FILE *);
|
||||||
double single(int, int, int, int);
|
double single(int, int, int, int);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@ -181,6 +181,16 @@ void AngleDipole::read_restart(FILE *fp)
|
|||||||
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
|
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
|
used by ComputeAngleLocal
|
||||||
------------------------------------------------------------------------- */
|
------------------------------------------------------------------------- */
|
||||||
|
|||||||
@ -34,6 +34,7 @@ class AngleDipole : public Angle {
|
|||||||
double equilibrium_angle(int);
|
double equilibrium_angle(int);
|
||||||
void write_restart(FILE *);
|
void write_restart(FILE *);
|
||||||
void read_restart(FILE *);
|
void read_restart(FILE *);
|
||||||
|
void write_data(FILE *);
|
||||||
double single(int, int, int, int);
|
double single(int, int, int, int);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@ -239,6 +239,16 @@ void AngleFourier::read_restart(FILE *fp)
|
|||||||
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
|
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)
|
double AngleFourier::single(int type, int i1, int i2, int i3)
|
||||||
|
|||||||
@ -34,6 +34,7 @@ class AngleFourier : public Angle {
|
|||||||
double equilibrium_angle(int);
|
double equilibrium_angle(int);
|
||||||
void write_restart(FILE *);
|
void write_restart(FILE *);
|
||||||
void read_restart(FILE *);
|
void read_restart(FILE *);
|
||||||
|
void write_data(FILE *);
|
||||||
virtual double single(int, int, int, int);
|
virtual double single(int, int, int, int);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@ -244,6 +244,16 @@ void AngleFourierSimple::read_restart(FILE *fp)
|
|||||||
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
|
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)
|
double AngleFourierSimple::single(int type, int i1, int i2, int i3)
|
||||||
|
|||||||
@ -34,6 +34,7 @@ class AngleFourierSimple : public Angle {
|
|||||||
double equilibrium_angle(int);
|
double equilibrium_angle(int);
|
||||||
void write_restart(FILE *);
|
void write_restart(FILE *);
|
||||||
void read_restart(FILE *);
|
void read_restart(FILE *);
|
||||||
|
void write_data(FILE *);
|
||||||
virtual double single(int, int, int, int);
|
virtual double single(int, int, int, int);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@ -112,7 +112,8 @@ void AngleQuartic::compute(int eflag, int vflag)
|
|||||||
dtheta = acos(c) - theta0[type];
|
dtheta = acos(c) - theta0[type];
|
||||||
dtheta2 = dtheta * dtheta;
|
dtheta2 = dtheta * dtheta;
|
||||||
dtheta3 = dtheta2 * 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) {
|
if (eflag) {
|
||||||
dtheta4 = dtheta3 * dtheta;
|
dtheta4 = dtheta3 * dtheta;
|
||||||
@ -245,6 +246,16 @@ void AngleQuartic::read_restart(FILE *fp)
|
|||||||
for (int i = 1; i <= atom->nangletypes; i++) setflag[i] = 1;
|
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)
|
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 dtheta2 = dtheta * dtheta;
|
||||||
double dtheta3 = dtheta2 * dtheta;
|
double dtheta3 = dtheta2 * dtheta;
|
||||||
double dtheta4 = dtheta3 * 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;
|
return k2[type] * dtheta2 + k3[type] * dtheta3 + k4[type] * dtheta4;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,7 @@ class AngleQuartic : public Angle {
|
|||||||
double equilibrium_angle(int);
|
double equilibrium_angle(int);
|
||||||
void write_restart(FILE *);
|
void write_restart(FILE *);
|
||||||
void read_restart(FILE *);
|
void read_restart(FILE *);
|
||||||
|
void write_data(FILE *);
|
||||||
double single(int, int, int, int);
|
double single(int, int, int, int);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@ -30,7 +30,7 @@ using namespace MathConst;
|
|||||||
Angle::Angle(LAMMPS *lmp) : Pointers(lmp)
|
Angle::Angle(LAMMPS *lmp) : Pointers(lmp)
|
||||||
{
|
{
|
||||||
energy = 0.0;
|
energy = 0.0;
|
||||||
writedata = 0;
|
writedata = 1;
|
||||||
|
|
||||||
allocated = 0;
|
allocated = 0;
|
||||||
suffix_flag = Suffix::NONE;
|
suffix_flag = Suffix::NONE;
|
||||||
|
|||||||
@ -31,6 +31,7 @@ using namespace LAMMPS_NS;
|
|||||||
|
|
||||||
AngleHybrid::AngleHybrid(LAMMPS *lmp) : Angle(lmp)
|
AngleHybrid::AngleHybrid(LAMMPS *lmp) : Angle(lmp)
|
||||||
{
|
{
|
||||||
|
writedata = 0;
|
||||||
nstyles = 0;
|
nstyles = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user