Example #1
0
/** If the current parm does not match the target parm, deactivate. Otherwise
  * replace current parm with mapped parm.
  */
Action::RetType Action_AtomMap::Setup(ActionSetup& setup) {
    if (maponly_) {
        mprintf("    ATOMMAP: maponly was specified, not using atom map during traj read.\n");
        return Action::OK;
    }
    if (setup.Top().Pindex() != TgtFrame_->Top().Pindex() ||
            setup.Top().Natom() != TgtFrame_->Top().Natom())
    {
        mprintf("    ATOMMAP: Map for parm %s -> %s (%i atom).\n",TgtFrame_->Top().c_str(),
                RefFrame_->Top().c_str(), TgtFrame_->Top().Natom());
        mprintf("             Current parm %s (%i atom).\n",setup.Top().c_str(),
                setup.Top().Natom());
        mprintf("             Not using map for this parm.\n");
        return Action::SKIP;
    }
    if (rmsfit_) {
        mprintf("    ATOMMAP: rmsfit specified, %i atoms.\n",rmsRefFrame_.Natom());
        return Action::OK;
    }
    mprintf("    ATOMMAP: Map for parm %s -> %s (%i atom).\n",TgtFrame_->Top().c_str(),
            RefFrame_->Top().c_str(), TgtFrame_->Top().Natom());

    setup.SetTopology( newParm_ );

    return Action::MODIFY_TOPOLOGY;
}