void Angle::initAnalysis(const TrajectoryAnalysisSettings &settings, const TopologyInformation &top) { checkSelections(sel1_, sel2_); angles_.setColumnCount(sel1_[0].posCount() / natoms1_); if (g2type_ == "t0") { vt0_.resize(sel1_.size()); for (size_t g = 0; g < sel1_.size(); ++g) { vt0_[g] = new rvec[sel1_[g].posCount() / natoms1_]; } } if (!fnAverage_.empty()) { AnalysisDataPlotModulePointer plotm( new AnalysisDataPlotModule(settings.plotSettings())); plotm->setFileName(fnAverage_); plotm->setTitle("Average angle"); plotm->setXAxisIsTime(); plotm->setYLabel("Angle (degrees)"); // TODO: Add legends averageModule_->addModule(plotm); } if (!fnAll_.empty()) { AnalysisDataPlotModulePointer plotm( new AnalysisDataPlotModule(settings.plotSettings())); plotm->setFileName(fnAll_); plotm->setTitle("Angle"); plotm->setXAxisIsTime(); plotm->setYLabel("Angle (degrees)"); // TODO: Add legends? (there can be a massive amount of columns) angles_.addModule(plotm); } }
void AnalysisTemplate::initAnalysis(const TrajectoryAnalysisSettings &settings, const TopologyInformation & /*top*/) { nb_.setCutoff(cutoff_); data_.setColumnCount(0, sel_.size()); avem_.reset(new AnalysisDataAverageModule()); data_.addModule(avem_); if (!fnDist_.empty()) { AnalysisDataPlotModulePointer plotm( new AnalysisDataPlotModule(settings.plotSettings())); plotm->setFileName(fnDist_); plotm->setTitle("Average distance"); plotm->setXAxisIsTime(); plotm->setYLabel("Distance (nm)"); data_.addModule(plotm); } }
void Distance::initAnalysis(const TrajectoryAnalysisSettings &settings, const TopologyInformation & /*top*/) { if (sel_[0].posCount() != 1) { GMX_THROW(InvalidInputError("The first selection does not define a single position")); } if (sel_[1].posCount() != 1) { GMX_THROW(InvalidInputError("The second selection does not define a single position")); } data_.addModule(avem_); AnalysisDataPlotModulePointer plotm_(new AnalysisDataPlotModule()); plotm_->setSettings(settings.plotSettings()); plotm_->setFileName(fnDist_); plotm_->setTitle("Distance"); plotm_->setXAxisIsTime(); plotm_->setYLabel("Distance (nm)"); data_.addModule(plotm_); }