return (ir_vdw_is_zero_at_cutoff(ir) || ir->vdwtype == evdwUSER);
}
-static void done_pull_group(t_pull_group* pgrp)
-{
- if (pgrp->nat > 0)
- {
- sfree(pgrp->ind);
- sfree(pgrp->weight);
- }
-}
-
-static void done_pull_params(pull_params_t* pull)
-{
- int i;
-
- for (i = 0; i < pull->ngroup + 1; i++)
- {
- done_pull_group(pull->group);
- }
-
- sfree(pull->group);
- sfree(pull->coord);
-}
-
static void done_lambdas(t_lambda* fep)
{
if (fep->n_lambda > 0)
sfree(ir->expandedvals);
sfree(ir->simtempvals);
- if (ir->pull)
- {
- done_pull_params(ir->pull);
- sfree(ir->pull);
- }
done_t_rot(ir->rot);
delete ir->params;
}
pr_indent(fp, indent);
fprintf(fp, "pull-group %d:\n", g);
indent += 2;
- pr_ivec_block(fp, indent, "atom", pgrp->ind, pgrp->nat, TRUE);
- pr_rvec(fp, indent, "weight", pgrp->weight, pgrp->nweight, TRUE);
+ pr_ivec_block(fp, indent, "atom", pgrp->ind.data(), pgrp->ind.size(), TRUE);
+ pr_rvec(fp, indent, "weight", pgrp->weight.data(), pgrp->weight.size(), TRUE);
PI("pbcatom", pgrp->pbcatom);
}
PS("type", EPULLTYPE(pcrd->eType));
if (pcrd->eType == epullEXTERNAL)
{
- PS("potential-provider", pcrd->externalPotentialProvider);
+ PS("potential-provider", pcrd->externalPotentialProvider.c_str());
}
PS("geometry", EPULLGEOM(pcrd->eGeom));
for (g = 0; g < pcrd->ngroup; g++)
PS("dhdl-derivatives", DHDLDERIVATIVESTYPE(fep->dhdl_derivatives));
};
-static void pr_pull(FILE* fp, int indent, const pull_params_t* pull)
+static void pr_pull(FILE* fp, int indent, const pull_params_t& pull)
{
int g;
- PR("pull-cylinder-r", pull->cylinder_r);
- PR("pull-constr-tol", pull->constr_tol);
- PS("pull-print-COM", EBOOL(pull->bPrintCOM));
- PS("pull-print-ref-value", EBOOL(pull->bPrintRefValue));
- PS("pull-print-components", EBOOL(pull->bPrintComp));
- PI("pull-nstxout", pull->nstxout);
- PI("pull-nstfout", pull->nstfout);
- PS("pull-pbc-ref-prev-step-com", EBOOL(pull->bSetPbcRefToPrevStepCOM));
- PS("pull-xout-average", EBOOL(pull->bXOutAverage));
- PS("pull-fout-average", EBOOL(pull->bFOutAverage));
- PI("pull-ngroups", pull->ngroup);
- for (g = 0; g < pull->ngroup; g++)
+ PR("pull-cylinder-r", pull.cylinder_r);
+ PR("pull-constr-tol", pull.constr_tol);
+ PS("pull-print-COM", EBOOL(pull.bPrintCOM));
+ PS("pull-print-ref-value", EBOOL(pull.bPrintRefValue));
+ PS("pull-print-components", EBOOL(pull.bPrintComp));
+ PI("pull-nstxout", pull.nstxout);
+ PI("pull-nstfout", pull.nstfout);
+ PS("pull-pbc-ref-prev-step-com", EBOOL(pull.bSetPbcRefToPrevStepCOM));
+ PS("pull-xout-average", EBOOL(pull.bXOutAverage));
+ PS("pull-fout-average", EBOOL(pull.bFOutAverage));
+ PI("pull-ngroups", pull.ngroup);
+ for (g = 0; g < pull.ngroup; g++)
{
- pr_pull_group(fp, indent, g, &pull->group[g]);
+ pr_pull_group(fp, indent, g, &pull.group[g]);
}
- PI("pull-ncoords", pull->ncoord);
- for (g = 0; g < pull->ncoord; g++)
+ PI("pull-ncoords", pull.ncoord);
+ for (g = 0; g < pull.ncoord; g++)
{
- pr_pull_coord(fp, indent, g, &pull->coord[g]);
+ pr_pull_coord(fp, indent, g, &pull.coord[g]);
}
}
PS("pull", EBOOL(ir->bPull));
if (ir->bPull)
{
- pr_pull(fp, indent, ir->pull);
+ pr_pull(fp, indent, *ir->pull);
}
/* AWH BIASING */
gmx::compareKeyValueTrees(&writer, *ir1->params, *ir2->params, ftol, abstol);
}
-void comp_pull_AB(FILE* fp, pull_params_t* pull, real ftol, real abstol)
+void comp_pull_AB(FILE* fp, const pull_params_t& pull, real ftol, real abstol)
{
- int i;
-
- for (i = 0; i < pull->ncoord; i++)
+ for (int i = 0; i < pull.ncoord; i++)
{
fprintf(fp, "comparing pull coord %d\n", i);
- cmp_real(fp, "pull-coord->k", -1, pull->coord[i].k, pull->coord[i].kB, ftol, abstol);
+ cmp_real(fp, "pull-coord->k", -1, pull.coord[i].k, pull.coord[i].kB, ftol, abstol);
}
}