void pr_iparams(FILE *fp,t_functype ftype,t_iparams *iparams) { int i; real VA[4],VB[4],*rbcA,*rbcB; switch (ftype) { case F_ANGLES: case F_G96ANGLES: pr_harm(fp,iparams,"th","ct"); break; case F_CROSS_BOND_BONDS: fprintf(fp,"r1e=%15.8e, r2e=%15.8e, krr=%15.8e\n", iparams->cross_bb.r1e,iparams->cross_bb.r2e, iparams->cross_bb.krr); break; case F_CROSS_BOND_ANGLES: fprintf(fp,"r1e=%15.8e, r1e=%15.8e, r3e=%15.8e, krt=%15.8e\n", iparams->cross_ba.r1e,iparams->cross_ba.r2e, iparams->cross_ba.r3e,iparams->cross_ba.krt); break; case F_LINEAR_ANGLES: fprintf(fp,"klinA=%15.8e, aA=%15.8e, klinB=%15.8e, aB=%15.8e\n", iparams->linangle.klinA,iparams->linangle.aA, iparams->linangle.klinB,iparams->linangle.aB); break; case F_UREY_BRADLEY: fprintf(fp,"theta=%15.8e, ktheta=%15.8e, r13=%15.8e, kUB=%15.8e\n", iparams->u_b.theta,iparams->u_b.ktheta,iparams->u_b.r13,iparams->u_b.kUB); break; case F_QUARTIC_ANGLES: fprintf(fp,"theta=%15.8e",iparams->qangle.theta); for(i=0; i<5; i++) fprintf(fp,", c%c=%15.8e",'0'+i,iparams->qangle.c[i]); fprintf(fp,"\n"); break; case F_BHAM: fprintf(fp,"a=%15.8e, b=%15.8e, c=%15.8e\n", iparams->bham.a,iparams->bham.b,iparams->bham.c); break; case F_BONDS: case F_G96BONDS: case F_HARMONIC: pr_harm(fp,iparams,"b0","cb"); break; case F_IDIHS: pr_harm(fp,iparams,"xi","cx"); break; case F_MORSE: fprintf(fp,"b0=%15.8e, cb=%15.8e, beta=%15.8e\n", iparams->morse.b0,iparams->morse.cb,iparams->morse.beta); break; case F_CUBICBONDS: fprintf(fp,"b0=%15.8e, kb=%15.8e, kcub=%15.8e\n", iparams->cubic.b0,iparams->cubic.kb,iparams->cubic.kcub); break; case F_CONNBONDS: fprintf(fp,"\n"); break; case F_FENEBONDS: fprintf(fp,"bm=%15.8e, kb=%15.8e\n",iparams->fene.bm,iparams->fene.kb); break; case F_RESTRBONDS: fprintf(fp,"lowA=%15.8e, up1A=%15.8e, up2A=%15.8e, kA=%15.8e, lowB=%15.8e, up1B=%15.8e, up2B=%15.8e, kB=%15.8e,\n", iparams->restraint.lowA,iparams->restraint.up1A, iparams->restraint.up2A,iparams->restraint.kA, iparams->restraint.lowB,iparams->restraint.up1B, iparams->restraint.up2B,iparams->restraint.kB); break; case F_TABBONDS: case F_TABBONDSNC: case F_TABANGLES: case F_TABDIHS: fprintf(fp,"tab=%d, kA=%15.8e, kB=%15.8e\n", iparams->tab.table,iparams->tab.kA,iparams->tab.kB); break; case F_POLARIZATION: fprintf(fp,"alpha=%15.8e\n",iparams->polarize.alpha); break; case F_ANHARM_POL: fprintf(fp,"alpha=%15.8e drcut=%15.8e khyp=%15.8e\n", iparams->anharm_polarize.alpha, iparams->anharm_polarize.drcut, iparams->anharm_polarize.khyp); break; case F_THOLE_POL: fprintf(fp,"a=%15.8e, alpha1=%15.8e, alpha2=%15.8e, rfac=%15.8e\n", iparams->thole.a,iparams->thole.alpha1,iparams->thole.alpha2, iparams->thole.rfac); break; case F_WATER_POL: fprintf(fp,"al_x=%15.8e, al_y=%15.8e, al_z=%15.8e, rOH=%9.6f, rHH=%9.6f, rOD=%9.6f\n", iparams->wpol.al_x,iparams->wpol.al_y,iparams->wpol.al_z, iparams->wpol.rOH,iparams->wpol.rHH,iparams->wpol.rOD); break; case F_LJ: fprintf(fp,"c6=%15.8e, c12=%15.8e\n",iparams->lj.c6,iparams->lj.c12); break; case F_LJ14: fprintf(fp,"c6A=%15.8e, c12A=%15.8e, c6B=%15.8e, c12B=%15.8e\n", iparams->lj14.c6A,iparams->lj14.c12A, iparams->lj14.c6B,iparams->lj14.c12B); break; case F_LJC14_Q: fprintf(fp,"fqq=%15.8e, qi=%15.8e, qj=%15.8e, c6=%15.8e, c12=%15.8e\n", iparams->ljc14.fqq, iparams->ljc14.qi,iparams->ljc14.qj, iparams->ljc14.c6,iparams->ljc14.c12); break; case F_LJC_PAIRS_NB: fprintf(fp,"qi=%15.8e, qj=%15.8e, c6=%15.8e, c12=%15.8e\n", iparams->ljcnb.qi,iparams->ljcnb.qj, iparams->ljcnb.c6,iparams->ljcnb.c12); break; case F_PDIHS: case F_PIDIHS: case F_ANGRES: case F_ANGRESZ: fprintf(fp,"phiA=%15.8e, cpA=%15.8e, phiB=%15.8e, cpB=%15.8e, mult=%d\n", iparams->pdihs.phiA,iparams->pdihs.cpA, iparams->pdihs.phiB,iparams->pdihs.cpB, iparams->pdihs.mult); break; case F_DISRES: fprintf(fp,"label=%4d, type=%1d, low=%15.8e, up1=%15.8e, up2=%15.8e, fac=%15.8e)\n", iparams->disres.label,iparams->disres.type, iparams->disres.low,iparams->disres.up1, iparams->disres.up2,iparams->disres.kfac); break; case F_ORIRES: fprintf(fp,"ex=%4d, label=%d, power=%4d, c=%15.8e, obs=%15.8e, kfac=%15.8e)\n", iparams->orires.ex,iparams->orires.label,iparams->orires.power, iparams->orires.c,iparams->orires.obs,iparams->orires.kfac); break; case F_DIHRES: fprintf(fp,"label=%d, power=%4d phi=%15.8e, dphi=%15.8e, kfac=%15.8e)\n", iparams->dihres.label,iparams->dihres.power, iparams->dihres.phi,iparams->dihres.dphi,iparams->dihres.kfac); break; case F_POSRES: fprintf(fp,"pos0A=(%15.8e,%15.8e,%15.8e), fcA=(%15.8e,%15.8e,%15.8e), pos0B=(%15.8e,%15.8e,%15.8e), fcB=(%15.8e,%15.8e,%15.8e)\n", iparams->posres.pos0A[XX],iparams->posres.pos0A[YY], iparams->posres.pos0A[ZZ],iparams->posres.fcA[XX], iparams->posres.fcA[YY],iparams->posres.fcA[ZZ], iparams->posres.pos0B[XX],iparams->posres.pos0B[YY], iparams->posres.pos0B[ZZ],iparams->posres.fcB[XX], iparams->posres.fcB[YY],iparams->posres.fcB[ZZ]); break; case F_RBDIHS: for (i=0; i<NR_RBDIHS; i++) fprintf(fp,"%srbcA[%d]=%15.8e",i==0?"":", ",i,iparams->rbdihs.rbcA[i]); fprintf(fp,"\n"); for (i=0; i<NR_RBDIHS; i++) fprintf(fp,"%srbcB[%d]=%15.8e",i==0?"":", ",i,iparams->rbdihs.rbcB[i]); fprintf(fp,"\n"); break; case F_FOURDIHS: /* Use the OPLS -> Ryckaert-Bellemans formula backwards to get the * OPLS potential constants back. */ rbcA = iparams->rbdihs.rbcA; rbcB = iparams->rbdihs.rbcB; VA[3] = -0.25*rbcA[4]; VA[2] = -0.5*rbcA[3]; VA[1] = 4.0*VA[3]-rbcA[2]; VA[0] = 3.0*VA[2]-2.0*rbcA[1]; VB[3] = -0.25*rbcB[4]; VB[2] = -0.5*rbcB[3]; VB[1] = 4.0*VB[3]-rbcB[2]; VB[0] = 3.0*VB[2]-2.0*rbcB[1]; for (i=0; i<NR_FOURDIHS; i++) fprintf(fp,"%sFourA[%d]=%15.8e",i==0?"":", ",i,VA[i]); fprintf(fp,"\n"); for (i=0; i<NR_FOURDIHS; i++) fprintf(fp,"%sFourB[%d]=%15.8e",i==0?"":", ",i,VB[i]); fprintf(fp,"\n"); break; case F_CONSTR: case F_CONSTRNC: fprintf(fp,"dA=%15.8e, dB=%15.8e\n",iparams->constr.dA,iparams->constr.dB); break; case F_SETTLE: fprintf(fp,"doh=%15.8e, dhh=%15.8e\n",iparams->settle.doh, iparams->settle.dhh); break; case F_VSITE2: fprintf(fp,"a=%15.8e\n",iparams->vsite.a); break; case F_VSITE3: case F_VSITE3FD: case F_VSITE3FAD: fprintf(fp,"a=%15.8e, b=%15.8e\n",iparams->vsite.a,iparams->vsite.b); break; case F_VSITE3OUT: case F_VSITE4FD: case F_VSITE4FDN: fprintf(fp,"a=%15.8e, b=%15.8e, c=%15.8e\n", iparams->vsite.a,iparams->vsite.b,iparams->vsite.c); break; case F_VSITEN: fprintf(fp,"n=%2d, a=%15.8e\n",iparams->vsiten.n,iparams->vsiten.a); break; case F_GB12: case F_GB13: case F_GB14: fprintf(fp, "sar=%15.8e, st=%15.8e, pi=%15.8e, gbr=%15.8e, bmlt=%15.8e\n",iparams->gb.sar,iparams->gb.st,iparams->gb.pi,iparams->gb.gbr,iparams->gb.bmlt); break; case F_CMAP: fprintf(fp, "cmapA=%1d, cmapB=%1d\n",iparams->cmap.cmapA, iparams->cmap.cmapB); break; default: gmx_fatal(FARGS,"unknown function type %d (%s) in %s line %d", ftype,interaction_function[ftype].name,__FILE__,__LINE__); } }
void pr_iparams(FILE *fp,t_functype ftype,t_iparams *iparams) { int i; switch (ftype) { case F_ANGLES: case F_G96ANGLES: pr_harm(fp,iparams,"th","ct"); break; case F_BHAM: fprintf(fp,"a=%15.8e, b=%15.8e, c=%15.8e\n", iparams->bham.a,iparams->bham.b,iparams->bham.c); break; case F_BONDS: case F_G96BONDS: case F_HARMONIC: pr_harm(fp,iparams,"b0","cb"); break; case F_IDIHS: pr_harm(fp,iparams,"xi","cx"); break; case F_MORSE: fprintf(fp,"b0=%15.8e, cb=%15.8e, beta=%15.8e\n", iparams->morse.b0,iparams->morse.cb,iparams->morse.beta); break; case F_CUBICBONDS: fprintf(fp,"b0=%15.8e, kb=%15.8e, kcub=%15.8e\n", iparams->cubic.b0,iparams->cubic.kb,iparams->cubic.kcub); break; case F_CONNBONDS: fprintf(fp,"\n"); break; case F_WPOL: fprintf(fp,"kx=%15.8e, ky=%15.8e, kz=%15.8e, rOH=%9.6f, rHH=%9.6f, rOD=%9.6f\n", iparams->wpol.kx,iparams->wpol.ky,iparams->wpol.kz, iparams->wpol.rOH,iparams->wpol.rHH,iparams->wpol.rOD); break; case F_LJ: fprintf(fp,"c6=%15.8e, c12=%15.8e\n",iparams->lj.c6,iparams->lj.c12); break; case F_LJ14: fprintf(fp,"c6A=%15.8e, c12A=%15.8e, c6B=%15.8e, c12B=%15.8e\n", iparams->lj14.c6A,iparams->lj14.c12A, iparams->lj14.c6B,iparams->lj14.c12B); break; case F_PDIHS: case F_ANGRES: case F_ANGRESZ: fprintf(fp,"phiA=%15.8e, cpA=%15.8e, phiB=%15.8e, cpB=%15.8e, mult=%d\n", iparams->pdihs.phiA,iparams->pdihs.cpA, iparams->pdihs.phiB,iparams->pdihs.cpB, iparams->pdihs.mult); break; case F_DISRES: fprintf(fp,"label=%4d, type=%1d, low=%15.8e, up1=%15.8e, up2=%15.8e, fac=%15.8e)\n", iparams->disres.label,iparams->disres.type, iparams->disres.low,iparams->disres.up1, iparams->disres.up2,iparams->disres.kfac); break; case F_ORIRES: fprintf(fp,"ex=%4d, label=%d, pow=%4d, c=%15.8e, obs=%15.8e, kfac=%15.8e)\n", iparams->orires.ex,iparams->orires.label,iparams->orires.pow, iparams->orires.c,iparams->orires.obs,iparams->orires.kfac); break; case F_POSRES: fprintf(fp,"pos0=(%15.8e,%15.8e,%15.8e), fc=(%15.8e,%15.8e,%15.8e)\n", iparams->posres.pos0[XX],iparams->posres.pos0[YY], iparams->posres.pos0[ZZ],iparams->posres.fc[XX], iparams->posres.fc[YY],iparams->posres.fc[ZZ]); break; case F_RBDIHS: for (i=0; i<NR_RBDIHS; i++) fprintf(fp,"%srbc[%d]=%15.8e",i==0?"":", ",i,iparams->rbdihs.rbc[i]); fprintf(fp,"\n"); break; case F_SHAKE: case F_SHAKENC: fprintf(fp,"dA=%15.8e, dB=%15.8e\n",iparams->shake.dA,iparams->shake.dB); break; case F_SETTLE: fprintf(fp,"doh=%15.8e, dhh=%15.8e\n",iparams->settle.doh, iparams->settle.dhh); break; case F_DUMMY2: fprintf(fp,"a=%15.8e\n",iparams->dummy.a); break; case F_DUMMY3: case F_DUMMY3FD: case F_DUMMY3FAD: fprintf(fp,"a=%15.8e, b=%15.8e\n",iparams->dummy.a,iparams->dummy.b); break; case F_DUMMY3OUT: case F_DUMMY4FD: fprintf(fp,"a=%15.8e, b=%15.8e, c=%15.8e\n", iparams->dummy.a,iparams->dummy.b,iparams->dummy.c); break; default: fatal_error(0,"unknown function type %d (%s) in %s line %d", ftype,interaction_function[ftype].name,__FILE__,__LINE__); } }