1 #include "iSGPAR.h" 2 3 #include "mathutilities.h" 4 5 using namespace ProtoMol::Report; 6 7 namespace ProtoMol { 8 9 //_________________________________________________________________ iSGPAR 10 const Real iSGPAR::Nonbonded::SIGMA_CHARMM19_TO_CHARMM28(pow(2.0,-5.0/6.0)); 11 const Real iSGPAR::Nonbonded::SIGMA_CHARMM28_TO_CHARMM19(pow(2.0, 5.0/6.0)); 12 clear()13 void iSGPAR::clear() { 14 bonds.clear(); 15 angles.clear(); 16 dihedrals.clear(); 17 impropers.clear(); 18 nonbondeds.clear(); 19 nbfixs.clear(); 20 hbonds.clear(); 21 } 22 23 24 //_________________________________________________________________globals operator <<(MyStreamer & OS,const iSGPAR::Bond & p)25 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Bond & p) { 26 OS <<p.number<<","<<p.atom1<<","<<p.atom2; 27 28 for (unsigned int i=0; i<p.forceConstant.size(); i++) 29 OS <<","<<p.forceConstant[i]<<","<<p.distance[i]; 30 return OS; 31 } 32 operator <<(MyStreamer & OS,const iSGPAR::Angle & p)33 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Angle & p) { 34 OS <<p.number<<","<<p.atom1<<","<<p.atom2<<","<<p.atom3; 35 36 for (unsigned int i=0; i<p.forceConstant.size(); i++) 37 OS<<","<<p.forceConstant[i]<<","<<p.angleval[i]<<","<<p.ub_flag<<","<<p.k_ub[i]<<","<<p.r_ub[i]; 38 return OS; 39 } 40 operator <<(MyStreamer & OS,const iSGPAR::Dihedral & p)41 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Dihedral & p) { 42 OS <<p.number<<","<<p.atom1<<","<<p.atom2<<","<<p.atom3<<","<<p.atom4; 43 44 for (unsigned int i=0; i<p.forceConstant.size(); i++) { 45 OS<<","<<p.multiplicity[i]; 46 for(unsigned int j=0;j<p.forceConstant[i].size();++j) 47 OS << ","<<p.forceConstant[i][j]; 48 for(unsigned int j=0;j<p.periodicity[i].size();++j) 49 OS << ","<<p.periodicity[i][j]; 50 for(unsigned int j=0;j<p.phaseShift[i].size();++j) 51 OS << ","<<p.phaseShift[i][j]; 52 } 53 return OS; 54 } 55 operator <<(MyStreamer & OS,const iSGPAR::Improper & p)56 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Improper & p) { 57 OS <<p.number<<","<<p.atom1<<","<<p.atom2<<","<<p.atom3<<","<<p.atom4; 58 for (unsigned int i=0; i<p.forceConstant.size(); i++) 59 OS<<","<<p.forceConstant[i]<< ","<<p.periodicity[i]<<","<<p.phaseShift[i]; 60 return OS; 61 } 62 operator <<(MyStreamer & OS,const iSGPAR::Nonbonded & p)63 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Nonbonded & p) { 64 OS <<p.number<<","<<p.atom; 65 for (unsigned int i=0; i<p.epsilon.size(); i++) 66 OS<<","<<p.polarizability[i]<<","<<p.epsilon[i]<<","<<p.sigma[i]<<","<<p.negative[i]<< "," 67 <<p.vdw[i]<<","<<p.polarizability2[i]<<","<<p.epsilon14[i]<<","<<p.sigma14[i]<<","<<p.negative2[i]; 68 return OS; 69 } 70 operator <<(MyStreamer & OS,const iSGPAR::Nbfix & p)71 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Nbfix & p) { 72 OS <<p.number<<","<<p.atom1<<","<<p.atom2<<","<<p.a<<","<<p.b<<","<<p.a14<< ","<<p.b14; 73 return OS; 74 } 75 operator <<(MyStreamer & OS,const iSGPAR::Hbond & p)76 MyStreamer& operator<< (MyStreamer& OS, const iSGPAR::Hbond & p) { 77 OS <<p.number<<","<<p.atom1<<","<<p.atom2<<","<<p.emin<<","<<p.rmin; 78 return OS; 79 } 80 } 81