Ignore:
Timestamp:
Jul 12, 2017, 7:10:07 PM (8 years ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
Action_Thermostats, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_StructOpt_integration_tests, AutomationFragmentation_failures, Candidate_v1.6.1, ChemicalSpaceEvaluator, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, Fix_Verbose_Codepatterns, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, Gui_displays_atomic_force_velocity, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, PythonUI_with_named_parameters, Recreated_GuiChecks, StoppableMakroAction, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps
Children:
33af20
Parents:
220d2c
git-author:
Frederik Heber <frederik.heber@…> (06/17/17 23:09:19)
git-committer:
Frederik Heber <frederik.heber@…> (07/12/17 19:10:07)
Message:

Extracted getMinMaxTrajectories() into FormatParser_common.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/XyzParser.cpp

    r220d2c r0e894a  
    169169
    170170  // get max and min trajectories
    171   size_t min_trajectories = std::numeric_limits<size_t>::max();
    172   size_t max_trajectories = std::numeric_limits<size_t>::min();
    173   for (std::vector<const atom *>::const_iterator iter = atoms.begin();
    174       iter != atoms.end();
    175       ++iter) {
    176     if (max_trajectories < (*iter)->getTrajectorySize())
    177       max_trajectories = (*iter)->getTrajectorySize();
    178     if (min_trajectories > (*iter)->getTrajectorySize())
    179       min_trajectories = (*iter)->getTrajectorySize();
    180   }
    181   // no atoms? Then, they all have same amount
    182   if (atoms.size() == 0)
    183     min_trajectories = max_trajectories = 1;
    184   ASSERT(min_trajectories == max_trajectories,
    185       "FormatParser< xyz >::save() - not all atoms have same number of trajectories: "
    186       +toString(min_trajectories)+" != "+toString(max_trajectories)+".");
    187   LOG(2, "INFO: There are " << max_trajectories << " steps to save.");
     171  std::pair<size_t, size_t> minmax_trajectories =
     172      getMinMaxTrajectories(atoms);
     173  LOG(2, "INFO: There are " << minmax_trajectories.second << " steps to save.");
    188174
    189175  // always store at least one step
    190   for (size_t step = 0; (step < max_trajectories) || (step == 0); ++step) {
     176  for (size_t step = 0; (step < minmax_trajectories.second) || (step == 0); ++step) {
    191177    if (step != 0)
    192178      *file << "\n";
Note: See TracChangeset for help on using the changeset viewer.