diff --git a/src/USER-MISC/angle_cosine_shift.cpp b/src/USER-MISC/angle_cosine_shift.cpp index edeececffb..9b4b5940d7 100644 --- a/src/USER-MISC/angle_cosine_shift.cpp +++ b/src/USER-MISC/angle_cosine_shift.cpp @@ -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) diff --git a/src/USER-MISC/angle_cosine_shift.h b/src/USER-MISC/angle_cosine_shift.h index 3945161f0e..fdf8fe2a8e 100644 --- a/src/USER-MISC/angle_cosine_shift.h +++ b/src/USER-MISC/angle_cosine_shift.h @@ -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: diff --git a/src/USER-MISC/angle_cosine_shift_exp.cpp b/src/USER-MISC/angle_cosine_shift_exp.cpp index db75fb0b23..66ba949260 100644 --- a/src/USER-MISC/angle_cosine_shift_exp.cpp +++ b/src/USER-MISC/angle_cosine_shift_exp.cpp @@ -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) diff --git a/src/USER-MISC/angle_cosine_shift_exp.h b/src/USER-MISC/angle_cosine_shift_exp.h index 10c6d1ba6f..7fa19edc74 100644 --- a/src/USER-MISC/angle_cosine_shift_exp.h +++ b/src/USER-MISC/angle_cosine_shift_exp.h @@ -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: diff --git a/src/USER-MISC/angle_dipole.cpp b/src/USER-MISC/angle_dipole.cpp index b80007e50d..c61a69fdec 100644 --- a/src/USER-MISC/angle_dipole.cpp +++ b/src/USER-MISC/angle_dipole.cpp @@ -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 ------------------------------------------------------------------------- */ diff --git a/src/USER-MISC/angle_dipole.h b/src/USER-MISC/angle_dipole.h index f3138ad83c..286cfff4fe 100644 --- a/src/USER-MISC/angle_dipole.h +++ b/src/USER-MISC/angle_dipole.h @@ -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: diff --git a/src/USER-MISC/angle_fourier.cpp b/src/USER-MISC/angle_fourier.cpp index beb3cc023b..b6cbd1236d 100644 --- a/src/USER-MISC/angle_fourier.cpp +++ b/src/USER-MISC/angle_fourier.cpp @@ -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) diff --git a/src/USER-MISC/angle_fourier.h b/src/USER-MISC/angle_fourier.h index 23ce20b4f4..aa4747a55a 100644 --- a/src/USER-MISC/angle_fourier.h +++ b/src/USER-MISC/angle_fourier.h @@ -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: diff --git a/src/USER-MISC/angle_fourier_simple.cpp b/src/USER-MISC/angle_fourier_simple.cpp index 2513050ae4..03307e1c0e 100644 --- a/src/USER-MISC/angle_fourier_simple.cpp +++ b/src/USER-MISC/angle_fourier_simple.cpp @@ -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) diff --git a/src/USER-MISC/angle_fourier_simple.h b/src/USER-MISC/angle_fourier_simple.h index 411f04fa13..337fcda6bb 100644 --- a/src/USER-MISC/angle_fourier_simple.h +++ b/src/USER-MISC/angle_fourier_simple.h @@ -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: diff --git a/src/USER-MISC/angle_quartic.cpp b/src/USER-MISC/angle_quartic.cpp index ba310de67d..6f832b1ea0 100644 --- a/src/USER-MISC/angle_quartic.cpp +++ b/src/USER-MISC/angle_quartic.cpp @@ -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; } diff --git a/src/USER-MISC/angle_quartic.h b/src/USER-MISC/angle_quartic.h index 751c0a7abe..556c74b8fc 100644 --- a/src/USER-MISC/angle_quartic.h +++ b/src/USER-MISC/angle_quartic.h @@ -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: diff --git a/src/angle.cpp b/src/angle.cpp index 3fb24ddb78..816e84997a 100644 --- a/src/angle.cpp +++ b/src/angle.cpp @@ -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; diff --git a/src/angle_hybrid.cpp b/src/angle_hybrid.cpp index 36e8e8888a..784f212653 100644 --- a/src/angle_hybrid.cpp +++ b/src/angle_hybrid.cpp @@ -31,6 +31,7 @@ using namespace LAMMPS_NS; AngleHybrid::AngleHybrid(LAMMPS *lmp) : Angle(lmp) { + writedata = 0; nstyles = 0; }