31 return std::get<1>(a) < std::get<1>(b);
39 std::advance(
it_m, posIterator);
53 "StepSizeConfig::operator++",
"iterator is at end of list of configurations");
64 "StepSizeConfig::operator--",
"iterator is at begin of list of configurations");
74 while (std::get<1>(*it) < front && std::next(it) !=
configurations_m.end()) {
78 double zstop = std::get<1>(*it);
79 if (zstop < front)
return;
81 std::get<1>(*it) = front;
83 std::swap(zstop, std::get<1>(*it));
90 "StepSizeConfig::getdT",
"iterator is at end of list of configurations");
93 return std::get<0>(*
it_m);
99 "StepSizeConfig::getZStop",
"iterator is at end of list of configurations");
102 return std::get<1>(*
it_m);
108 "StepSizeConfig::getNumSteps",
"iterator is at end of list of configurations");
111 return std::get<2>(*
it_m);
115 unsigned long long maxSteps = 0;
117 maxSteps += std::get<2>(config);
125 unsigned long long totalNumSteps = 0;
128 const double& dt = std::get<0>(config);
129 const unsigned long& numSteps = std::get<2>(config);
131 if (minTimeStep > dt) {
132 totalNumSteps = std::ceil(totalNumSteps * minTimeStep / dt);
136 totalNumSteps += std::ceil(numSteps * dt / minTimeStep);
139 return totalNumSteps;
145 if (minTimeStep > std::get<0>(config)) {
146 minTimeStep = std::get<0>(config);
156 out << std::scientific <<
" " << std::setw(20) <<
"dt [ns] " << std::setw(20) <<
"zStop [m] "
157 << std::setw(20) <<
"num Steps [1]" << endl;
166 out << std::setw(20) << std::get<0>(*it) << std::setw(20) << std::get<1>(*it)
167 << std::setw(20) << std::get<2>(*it) << endl;
173 out << std::scientific <<
" " << std::setw(20) <<
"dt [ns] " << std::setw(20) <<
"zStop [m] "
174 << std::setw(20) <<
"num Steps [1]" << endl;
183 out << std::setw(20) << std::get<0>(*it) << std::setw(20) << std::get<1>(*it)
184 << std::setw(20) << std::get<2>(*it) << endl;
double getMinTimeStep() const
StepSizeConfig & advanceToPos(double spos)
bool reachedStart() const
StepSizeConfig & operator++()
Inform & print(Inform &out) const
unsigned long long getNumStepsFinestResolution() const
void printDirect(Inform &out) const
container_t::iterator it_m
void shiftZStopRight(double front)
unsigned long getNumSteps() const
unsigned long long getMaxSteps() const
container_t configurations_m
StepSizeConfig & operator--()
std::tuple< double, double, unsigned long > entry_t
void sortAscendingZStop()
ValueRange< double > getPathLengthRange() const
double getFinalZStop() const
void enlargeIfOutside(T value)