/** 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; }