t_vcm *init_vcm(FILE *fp, gmx_groups_t *groups, t_inputrec *ir) { t_vcm *vcm; int g; snew(vcm, 1); vcm->mode = (ir->nstcomm > 0) ? ir->comm_mode : ecmNO; vcm->ndim = ndof_com(ir); if (vcm->mode == ecmANGULAR && vcm->ndim < 3) { gmx_fatal(FARGS, "Can not have angular comm removal with pbc=%s", epbc_names[ir->ePBC]); } if (vcm->mode != ecmNO) { vcm->nr = groups->grps[egcVCM].nr; /* Allocate one extra for a possible rest group */ if (vcm->mode == ecmANGULAR) { snew(vcm->group_j, vcm->nr+1); snew(vcm->group_x, vcm->nr+1); snew(vcm->group_i, vcm->nr+1); snew(vcm->group_w, vcm->nr+1); } snew(vcm->group_p, vcm->nr+1); snew(vcm->group_v, vcm->nr+1); snew(vcm->group_mass, vcm->nr+1); snew(vcm->group_name, vcm->nr); snew(vcm->group_ndf, vcm->nr); for (g = 0; (g < vcm->nr); g++) { vcm->group_ndf[g] = ir->opts.nrdf[g]; } /* Copy pointer to group names and print it. */ if (fp) { fprintf(fp, "Center of mass motion removal mode is %s\n", ECOM(vcm->mode)); fprintf(fp, "We have the following groups for center of" " mass motion removal:\n"); } for (g = 0; (g < vcm->nr); g++) { vcm->group_name[g] = *groups->grpname[groups->grps[egcVCM].nm_ind[g]]; if (fp) { fprintf(fp, "%3d: %s\n", g, vcm->group_name[g]); } } } return vcm; }
void pr_inputrec(FILE *fp,int indent,const char *title,t_inputrec *ir, gmx_bool bMDPformat) { const char *infbuf="inf"; int i; if (available(fp,ir,indent,title)) { if (!bMDPformat) indent=pr_title(fp,indent,title); PS("integrator",EI(ir->eI)); PSTEP("nsteps",ir->nsteps); PSTEP("init-step",ir->init_step); PS("ns-type",ENS(ir->ns_type)); PI("nstlist",ir->nstlist); PI("ndelta",ir->ndelta); PI("nstcomm",ir->nstcomm); PS("comm-mode",ECOM(ir->comm_mode)); PI("nstlog",ir->nstlog); PI("nstxout",ir->nstxout); PI("nstvout",ir->nstvout); PI("nstfout",ir->nstfout); PI("nstcalcenergy",ir->nstcalcenergy); PI("nstenergy",ir->nstenergy); PI("nstxtcout",ir->nstxtcout); PR("init-t",ir->init_t); PR("delta-t",ir->delta_t); PR("xtcprec",ir->xtcprec); PI("nkx",ir->nkx); PI("nky",ir->nky); PI("nkz",ir->nkz); PI("pme-order",ir->pme_order); PR("ewald-rtol",ir->ewald_rtol); PR("ewald-geometry",ir->ewald_geometry); PR("epsilon-surface",ir->epsilon_surface); PS("optimize-fft",BOOL(ir->bOptFFT)); PS("ePBC",EPBC(ir->ePBC)); PS("bPeriodicMols",BOOL(ir->bPeriodicMols)); PS("bContinuation",BOOL(ir->bContinuation)); PS("bShakeSOR",BOOL(ir->bShakeSOR)); PS("etc",ETCOUPLTYPE(ir->etc)); PI("nsttcouple",ir->nsttcouple); PS("epc",EPCOUPLTYPE(ir->epc)); PS("epctype",EPCOUPLTYPETYPE(ir->epct)); PI("nstpcouple",ir->nstpcouple); PR("tau-p",ir->tau_p); pr_matrix(fp,indent,"ref-p",ir->ref_p,bMDPformat); pr_matrix(fp,indent,"compress",ir->compress,bMDPformat); PS("refcoord-scaling",EREFSCALINGTYPE(ir->refcoord_scaling)); if (bMDPformat) fprintf(fp,"posres-com = %g %g %g\n",ir->posres_com[XX], ir->posres_com[YY],ir->posres_com[ZZ]); else pr_rvec(fp,indent,"posres-com",ir->posres_com,DIM,TRUE); if (bMDPformat) fprintf(fp,"posres-comB = %g %g %g\n",ir->posres_comB[XX], ir->posres_comB[YY],ir->posres_comB[ZZ]); else pr_rvec(fp,indent,"posres-comB",ir->posres_comB,DIM,TRUE); PI("andersen-seed",ir->andersen_seed); PR("rlist",ir->rlist); PR("rlistlong",ir->rlistlong); PR("rtpi",ir->rtpi); PS("coulombtype",EELTYPE(ir->coulombtype)); PR("rcoulomb-switch",ir->rcoulomb_switch); PR("rcoulomb",ir->rcoulomb); PS("vdwtype",EVDWTYPE(ir->vdwtype)); PR("rvdw-switch",ir->rvdw_switch); PR("rvdw",ir->rvdw); if (ir->epsilon_r != 0) PR("epsilon-r",ir->epsilon_r); else PS("epsilon-r",infbuf); if (ir->epsilon_rf != 0) PR("epsilon-rf",ir->epsilon_rf); else PS("epsilon-rf",infbuf); PR("tabext",ir->tabext); PS("implicit-solvent",EIMPLICITSOL(ir->implicit_solvent)); PS("gb-algorithm",EGBALGORITHM(ir->gb_algorithm)); PR("gb-epsilon-solvent",ir->gb_epsilon_solvent); PI("nstgbradii",ir->nstgbradii); PR("rgbradii",ir->rgbradii); PR("gb-saltconc",ir->gb_saltconc); PR("gb-obc-alpha",ir->gb_obc_alpha); PR("gb-obc-beta",ir->gb_obc_beta); PR("gb-obc-gamma",ir->gb_obc_gamma); PR("gb-dielectric-offset",ir->gb_dielectric_offset); PS("sa-algorithm",ESAALGORITHM(ir->gb_algorithm)); PR("sa-surface-tension",ir->sa_surface_tension); PS("DispCorr",EDISPCORR(ir->eDispCorr)); PS("free-energy",EFEPTYPE(ir->efep)); PR("init-lambda",ir->init_lambda); PR("delta-lambda",ir->delta_lambda); if (!bMDPformat) { PI("n-foreign-lambda",ir->n_flambda); } if (ir->n_flambda > 0) { pr_indent(fp,indent); fprintf(fp,"foreign-lambda%s",bMDPformat ? " = " : ":"); for(i=0; i<ir->n_flambda; i++) { fprintf(fp," %10g",ir->flambda[i]); } fprintf(fp,"\n"); } PR("sc-alpha",ir->sc_alpha); PI("sc-power",ir->sc_power); PR("sc-sigma",ir->sc_sigma); PR("sc-sigma-min",ir->sc_sigma_min); PI("nstdhdl", ir->nstdhdl); PS("separate-dhdl-file", SEPDHDLFILETYPE(ir->separate_dhdl_file)); PS("dhdl-derivatives", DHDLDERIVATIVESTYPE(ir->dhdl_derivatives)); PI("dh-hist-size", ir->dh_hist_size); PD("dh-hist-spacing", ir->dh_hist_spacing); PI("nwall",ir->nwall); PS("wall-type",EWALLTYPE(ir->wall_type)); PI("wall-atomtype[0]",ir->wall_atomtype[0]); PI("wall-atomtype[1]",ir->wall_atomtype[1]); PR("wall-density[0]",ir->wall_density[0]); PR("wall-density[1]",ir->wall_density[1]); PR("wall-ewald-zfac",ir->wall_ewald_zfac); PS("pull",EPULLTYPE(ir->ePull)); if (ir->ePull != epullNO) pr_pull(fp,indent,ir->pull); PS("rotation",BOOL(ir->bRot)); if (ir->bRot) pr_rot(fp,indent,ir->rot); PS("disre",EDISRETYPE(ir->eDisre)); PS("disre-weighting",EDISREWEIGHTING(ir->eDisreWeighting)); PS("disre-mixed",BOOL(ir->bDisreMixed)); PR("dr-fc",ir->dr_fc); PR("dr-tau",ir->dr_tau); PR("nstdisreout",ir->nstdisreout); PR("orires-fc",ir->orires_fc); PR("orires-tau",ir->orires_tau); PR("nstorireout",ir->nstorireout); PR("dihre-fc",ir->dihre_fc); PR("em-stepsize",ir->em_stepsize); PR("em-tol",ir->em_tol); PI("niter",ir->niter); PR("fc-stepsize",ir->fc_stepsize); PI("nstcgsteep",ir->nstcgsteep); PI("nbfgscorr",ir->nbfgscorr); PS("ConstAlg",ECONSTRTYPE(ir->eConstrAlg)); PR("shake-tol",ir->shake_tol); PI("lincs-order",ir->nProjOrder); PR("lincs-warnangle",ir->LincsWarnAngle); PI("lincs-iter",ir->nLincsIter); PR("bd-fric",ir->bd_fric); PI("ld-seed",ir->ld_seed); PR("cos-accel",ir->cos_accel); pr_matrix(fp,indent,"deform",ir->deform,bMDPformat); PS("adress",BOOL(ir->bAdress)); if (ir->bAdress){ PS("adress_type",EADRESSTYPE(ir->adress->type)); PR("adress_const_wf",ir->adress->const_wf); PR("adress_ex_width",ir->adress->ex_width); PR("adress_hy_width",ir->adress->hy_width); PS("adress_interface_correction",EADRESSICTYPE(ir->adress->icor)); PS("adress_site",EADRESSSITETYPE(ir->adress->site)); PR("adress_ex_force_cap",ir->adress->ex_forcecap); PS("adress_do_hybridpairs", BOOL(ir->adress->do_hybridpairs)); pr_rvec(fp,indent,"adress_reference_coords",ir->adress->refs,DIM,TRUE); } PI("userint1",ir->userint1); PI("userint2",ir->userint2); PI("userint3",ir->userint3); PI("userint4",ir->userint4); PR("userreal1",ir->userreal1); PR("userreal2",ir->userreal2); PR("userreal3",ir->userreal3); PR("userreal4",ir->userreal4); pr_grp_opts(fp,indent,"grpopts",&(ir->opts),bMDPformat); pr_cosine(fp,indent,"efield-x",&(ir->ex[XX]),bMDPformat); pr_cosine(fp,indent,"efield-xt",&(ir->et[XX]),bMDPformat); pr_cosine(fp,indent,"efield-y",&(ir->ex[YY]),bMDPformat); pr_cosine(fp,indent,"efield-yt",&(ir->et[YY]),bMDPformat); pr_cosine(fp,indent,"efield-z",&(ir->ex[ZZ]),bMDPformat); pr_cosine(fp,indent,"efield-zt",&(ir->et[ZZ]),bMDPformat); PS("bQMMM",BOOL(ir->bQMMM)); PI("QMconstraints",ir->QMconstraints); PI("QMMMscheme",ir->QMMMscheme); PR("scalefactor",ir->scalefactor); pr_qm_opts(fp,indent,"qm-opts",&(ir->opts)); } }
void pr_inputrec(FILE *fp,int indent,const char *title,t_inputrec *ir, bool bMDPformat) { char *infbuf="inf"; if (available(fp,ir,indent,title)) { if (!bMDPformat) indent=pr_title(fp,indent,title); PS("integrator",EI(ir->eI)); PI("nsteps",ir->nsteps); PI("init_step",ir->init_step); PS("ns_type",ENS(ir->ns_type)); PI("nstlist",ir->nstlist); PI("ndelta",ir->ndelta); PI("nstcomm",ir->nstcomm); PS("comm_mode",ECOM(ir->comm_mode)); PI("nstlog",ir->nstlog); PI("nstxout",ir->nstxout); PI("nstvout",ir->nstvout); PI("nstfout",ir->nstfout); PI("nstenergy",ir->nstenergy); PI("nstxtcout",ir->nstxtcout); PR("init_t",ir->init_t); PR("delta_t",ir->delta_t); PR("xtcprec",ir->xtcprec); PI("nkx",ir->nkx); PI("nky",ir->nky); PI("nkz",ir->nkz); PI("pme_order",ir->pme_order); PR("ewald_rtol",ir->ewald_rtol); PR("ewald_geometry",ir->ewald_geometry); PR("epsilon_surface",ir->epsilon_surface); PS("optimize_fft",BOOL(ir->bOptFFT)); PS("ePBC",EPBC(ir->ePBC)); PS("bPeriodicMols",BOOL(ir->bPeriodicMols)); PS("bContinuation",BOOL(ir->bContinuation)); PS("bShakeSOR",BOOL(ir->bShakeSOR)); PS("etc",ETCOUPLTYPE(ir->etc)); PS("epc",EPCOUPLTYPE(ir->epc)); PS("epctype",EPCOUPLTYPETYPE(ir->epct)); PR("tau_p",ir->tau_p); pr_matrix(fp,indent,"ref_p",ir->ref_p,bMDPformat); pr_matrix(fp,indent,"compress",ir->compress,bMDPformat); PS("refcoord_scaling",EREFSCALINGTYPE(ir->refcoord_scaling)); if (bMDPformat) fprintf(fp,"posres_com = %g %g %g\n",ir->posres_com[XX], ir->posres_com[YY],ir->posres_com[ZZ]); else pr_rvec(fp,indent,"posres_com",ir->posres_com,DIM,TRUE); if (bMDPformat) fprintf(fp,"posres_comB = %g %g %g\n",ir->posres_comB[XX], ir->posres_comB[YY],ir->posres_comB[ZZ]); else pr_rvec(fp,indent,"posres_comB",ir->posres_comB,DIM,TRUE); PI("andersen_seed",ir->andersen_seed); PR("rlist",ir->rlist); PR("rtpi",ir->rtpi); PS("coulombtype",EELTYPE(ir->coulombtype)); PR("rcoulomb_switch",ir->rcoulomb_switch); PR("rcoulomb",ir->rcoulomb); PS("vdwtype",EVDWTYPE(ir->vdwtype)); PR("rvdw_switch",ir->rvdw_switch); PR("rvdw",ir->rvdw); if (ir->epsilon_r != 0) PR("epsilon_r",ir->epsilon_r); else PS("epsilon_r",infbuf); if (ir->epsilon_rf != 0) PR("epsilon_rf",ir->epsilon_rf); else PS("epsilon_rf",infbuf); PR("tabext",ir->tabext); PS("implicit_solvent",EIMPLICITSOL(ir->implicit_solvent)); PS("gb_algorithm",EGBALGORITHM(ir->gb_algorithm)); PR("gb_epsilon_solvent",ir->gb_epsilon_solvent); PI("nstgbradii",ir->nstgbradii); PR("rgbradii",ir->rgbradii); PR("gb_saltconc",ir->gb_saltconc); PR("gb_obc_alpha",ir->gb_obc_alpha); PR("gb_obc_beta",ir->gb_obc_beta); PR("gb_obc_gamma",ir->gb_obc_gamma); PR("sa_surface_tension",ir->sa_surface_tension); PS("DispCorr",EDISPCORR(ir->eDispCorr)); PS("free_energy",EFEPTYPE(ir->efep)); PR("init_lambda",ir->init_lambda); PR("sc_alpha",ir->sc_alpha); PI("sc_power",ir->sc_power); PR("sc_sigma",ir->sc_sigma); PR("delta_lambda",ir->delta_lambda); PI("nwall",ir->nwall); PS("wall_type",EWALLTYPE(ir->wall_type)); PI("wall_atomtype[0]",ir->wall_atomtype[0]); PI("wall_atomtype[1]",ir->wall_atomtype[1]); PR("wall_density[0]",ir->wall_density[0]); PR("wall_density[1]",ir->wall_density[1]); PR("wall_ewald_zfac",ir->wall_ewald_zfac); PS("pull",EPULLTYPE(ir->ePull)); if (ir->ePull != epullNO) pr_pull(fp,indent,ir->pull); PS("disre",EDISRETYPE(ir->eDisre)); PS("disre_weighting",EDISREWEIGHTING(ir->eDisreWeighting)); PS("disre_mixed",BOOL(ir->bDisreMixed)); PR("dr_fc",ir->dr_fc); PR("dr_tau",ir->dr_tau); PR("nstdisreout",ir->nstdisreout); PR("orires_fc",ir->orires_fc); PR("orires_tau",ir->orires_tau); PR("nstorireout",ir->nstorireout); PR("dihre-fc",ir->dihre_fc); PR("em_stepsize",ir->em_stepsize); PR("em_tol",ir->em_tol); PI("niter",ir->niter); PR("fc_stepsize",ir->fc_stepsize); PI("nstcgsteep",ir->nstcgsteep); PI("nbfgscorr",ir->nbfgscorr); PS("ConstAlg",ECONSTRTYPE(ir->eConstrAlg)); PR("shake_tol",ir->shake_tol); PI("lincs_order",ir->nProjOrder); PR("lincs_warnangle",ir->LincsWarnAngle); PI("lincs_iter",ir->nLincsIter); PR("bd_fric",ir->bd_fric); PI("ld_seed",ir->ld_seed); PR("cos_accel",ir->cos_accel); pr_matrix(fp,indent,"deform",ir->deform,bMDPformat); PI("userint1",ir->userint1); PI("userint2",ir->userint2); PI("userint3",ir->userint3); PI("userint4",ir->userint4); PR("userreal1",ir->userreal1); PR("userreal2",ir->userreal2); PR("userreal3",ir->userreal3); PR("userreal4",ir->userreal4); pr_grp_opts(fp,indent,"grpopts",&(ir->opts),bMDPformat); pr_cosine(fp,indent,"efield-x",&(ir->ex[XX]),bMDPformat); pr_cosine(fp,indent,"efield-xt",&(ir->et[XX]),bMDPformat); pr_cosine(fp,indent,"efield-y",&(ir->ex[YY]),bMDPformat); pr_cosine(fp,indent,"efield-yt",&(ir->et[YY]),bMDPformat); pr_cosine(fp,indent,"efield-z",&(ir->ex[ZZ]),bMDPformat); pr_cosine(fp,indent,"efield-zt",&(ir->et[ZZ]),bMDPformat); PS("bQMMM",BOOL(ir->bQMMM)); PI("QMconstraints",ir->QMconstraints); PI("QMMMscheme",ir->QMMMscheme); PR("scalefactor",ir->scalefactor); pr_qm_opts(fp,indent,"qm_opts",&(ir->opts)); } }