return d;
}
+void done_shake(shakedata *d)
+{
+ sfree(d->rij);
+ sfree(d->half_of_reduced_mass);
+ sfree(d->distance_squared_tolerance);
+ sfree(d->constraint_distance_squared);
+ sfree(d->sblock);
+ sfree(d->scaled_lagrange_multiplier);
+ sfree(d);
+}
+
typedef struct {
int iatom[3];
int blocknr;
ncons = idef->il[F_CONSTR].nr/3;
init_blocka(&sblocks);
+ sfree(sblocks.index); // To solve memory leak
gen_sblocks(nullptr, 0, md.homenr, idef, &sblocks, FALSE);
/*
resizeLagrangianData(shaked, ncons);
}
+// TODO: Check if this code is useful. It might never be called.
void
-make_shake_sblock_dd(shakedata *shaked,
- const t_ilist *ilcon, const t_block *cgs,
+make_shake_sblock_dd(shakedata *shaked,
+ const t_ilist *ilcon,
const gmx_domdec_t *dd)
{
int ncons, c, cg;
cg = 0;
for (c = 0; c < ncons; c++)
{
- if (c == 0 || iatom[1] >= cgs->index[cg+1])
+ if (c == 0 || iatom[1] >= cg + 1)
{
shaked->sblock[shaked->nblocks++] = 3*c;
- while (iatom[1] >= cgs->index[cg+1])
+ while (iatom[1] >= cg + 1)
{
cg++;
}