// Action_Average::action() Action::RetType Action_Average::DoAction(int frameNum, Frame* currentFrame, Frame** frameAddress) { if ( CheckFrameCounter( frameNum ) ) return Action::OK; AvgFrame_->AddByMask(*currentFrame, Mask1_); ++Nframes_; return Action::OK; }
// Action_AtomicFluct::DoAction() Action::RetType Action_AtomicFluct::DoAction(int frameNum, Frame* currentFrame, Frame** frameAddress) { if ( CheckFrameCounter( frameNum ) ) return Action::OK; SumCoords_ += *currentFrame; SumCoords2_ += ( (*currentFrame) * (*currentFrame) ) ; if (calc_adp_) { for (int i = 0; i < SumCoords_.size(); i+=3) { Cross_[i ] += (*currentFrame)[i ] * (*currentFrame)[i+1]; // U12 Cross_[i+1] += (*currentFrame)[i ] * (*currentFrame)[i+2]; // U13 Cross_[i+2] += (*currentFrame)[i+1] * (*currentFrame)[i+2]; // U23 } } ++sets_; return Action::OK; }
// Action_Matrix::DoAction() Action::RetType Action_Matrix::DoAction(int frameNum, ActionFrame& frm) { // Check if this frame should be processed if ( CheckFrameCounter( frm.TrajoutNum() ) ) return Action::OK; // Increment number of snapshots Mat_->IncrementSnapshots(); switch (Mat_->Meta().ScalarType()) { case MetaData::DIST : CalcDistanceMatrix(frm.Frm()); break; case MetaData::COVAR : case MetaData::MWCOVAR : CalcCovarianceMatrix(frm.Frm()); break; case MetaData::CORREL : CalcCorrelationMatrix(frm.Frm()); break; case MetaData::DIHCOVAR : CalcDihedralCovariance(frameNum); break; case MetaData::DISTCOVAR: CalcDistanceCovarianceMatrix(frm.Frm()); break; case MetaData::IDEA : CalcIdeaMatrix(frm.Frm()); break; case MetaData::IREDMAT : CalcIredMatrix(frameNum); break; default: return Action::ERR; // Sanity check } return Action::OK; }