From 45fa3a0ebd9ce9287c8205321e346fc92cb7e06d Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 12 Jul 2013 12:06:12 +0200 Subject: [PATCH] add write_data support for class2 dihedrals --- src/CLASS2/dihedral_class2.cpp | 44 +++++++++++++++++++++++++++++++++- src/CLASS2/dihedral_class2.h | 1 + 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/CLASS2/dihedral_class2.cpp b/src/CLASS2/dihedral_class2.cpp index dd273aa777..aab7f3cd86 100644 --- a/src/CLASS2/dihedral_class2.cpp +++ b/src/CLASS2/dihedral_class2.cpp @@ -37,7 +37,10 @@ using namespace MathConst; /* ---------------------------------------------------------------------- */ -DihedralClass2::DihedralClass2(LAMMPS *lmp) : Dihedral(lmp) {} +DihedralClass2::DihedralClass2(LAMMPS *lmp) : Dihedral(lmp) +{ + writedata = 1; +} /* ---------------------------------------------------------------------- */ @@ -913,3 +916,42 @@ void DihedralClass2::read_restart(FILE *fp) for (int i = 1; i <= atom->ndihedraltypes; i++) setflag[i] = 1; } + +/* ---------------------------------------------------------------------- + proc 0 writes to data file +------------------------------------------------------------------------- */ + +void DihedralClass2::write_data(FILE *fp) +{ + for (int i = 1; i <= atom->ndihedraltypes; i++) + fprintf(fp,"%d %g %g %g %g %g %g\n", + i,k1[i],phi1[i],k2[i],phi2[i],k3[i],phi3[i]); + + fprintf(fp,"\nAngleAngleTorsion Coeffs\n\n"); + for (int i = 1; i <= atom->ndihedraltypes; i++) + fprintf(fp,"%d %g %g %g\n",i,aat_k[i], + aat_theta0_1[i]*180.0/MY_PI,aat_theta0_2[i]*180.0/MY_PI); + + fprintf(fp,"\nEndBondTorsion Coeffs\n\n"); + for (int i = 1; i <= atom->ndihedraltypes; i++) + fprintf(fp,"%d %g %g %g %g %g %g %g %g\n",i, + ebt_f1_1[i],ebt_f2_1[i],ebt_f3_1[i], + ebt_f1_2[i],ebt_f2_2[i],ebt_f3_2[i], + ebt_r0_1[i],ebt_r0_2[i]); + + fprintf(fp,"\nMiddleBondTorsion Coeffs\n\n"); + for (int i = 1; i <= atom->ndihedraltypes; i++) + fprintf(fp,"%d %g %g %g %g\n",i,mbt_f1[i],mbt_f2[i],mbt_f3[i],mbt_r0[i]); + + fprintf(fp,"\nBondBond13 Coeffs\n\n"); + for (int i = 1; i <= atom->ndihedraltypes; i++) + fprintf(fp,"%d %g %g %g\n",i,bb13t_k[i],bb13t_r10[i],bb13t_r30[i]); + + fprintf(fp,"\nAngleTorsion Coeffs\n\n"); + for (int i = 1; i <= atom->ndihedraltypes; i++) + fprintf(fp,"%d %g %g %g %g %g %g %g %g\n",i, + at_f1_1[i],at_f2_1[i],at_f3_1[i], + at_f1_2[i],at_f2_2[i],at_f3_2[i], + at_theta0_1[i]*180.0/MY_PI,at_theta0_2[i]*180.0/MY_PI); +} + diff --git a/src/CLASS2/dihedral_class2.h b/src/CLASS2/dihedral_class2.h index 122969b1bd..c55a740300 100644 --- a/src/CLASS2/dihedral_class2.h +++ b/src/CLASS2/dihedral_class2.h @@ -33,6 +33,7 @@ class DihedralClass2 : public Dihedral { void coeff(int, char **); void write_restart(FILE *); void read_restart(FILE *); + void write_data(FILE *); protected: double *k1,*k2,*k3;