t_atom *atom;
gmx_enfrotgrp_t erg; /* Pointer to enforced rotation group data */
int ref_firstindex, ref_lastindex;
+ gmx_mtop_atomlookup_t alook=NULL;
real mass,totalmass;
real start=0.0;
/* Copy the masses so that the center can be determined. For all types of
* enforced rotation, we store the masses in the erg->mc array. */
+ if (rotg->bMassW)
+ {
+ alook = gmx_mtop_atomlookup_init(mtop);
+ }
snew(erg->mc, rotg->nat);
if (bFlex)
snew(erg->mc_sorted, rotg->nat);
{
if (rotg->bMassW)
{
- gmx_mtop_atomnr_to_atom(mtop,rotg->ind[i],&atom);
+ gmx_mtop_atomnr_to_atom(alook,rotg->ind[i],&atom);
mass=atom->m;
}
else
}
erg->invmass = 1.0/totalmass;
+ if (rotg->bMassW)
+ {
+ gmx_mtop_atomlookup_destroy(alook);
+ }
+
/* Set xc_ref_center for any rotation potential */
if ((rotg->eType==erotgISO) || (rotg->eType==erotgPM) || (rotg->eType==erotgRM) || (rotg->eType==erotgRM2))
{