Program Listing for File ConstSolutionIterator.h¶
↰ Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/ConstSolutionIterator.h)
#ifndef __SOLUTION_ITERATOR_H
#define __SOLUTION_ITERATOR_H
#include "BinarySystem.h"
#include "../IO/IOColumns.h"
#include "../Star/EvolvingStar.h"
#include "OrbitSolver.h"
#include "DissipatingZone.h"
namespace Evolve {
class ConstSolutionIterator {
private:
std::vector< std::list<double>::const_iterator > __real_iterators;
static std::list<double> __placeholder_list;
static std::list<double>::const_iterator __placeholder_iterator;
std::list<Core::EvolModeType>::const_iterator __mode;
std::list<bool>::const_iterator __wind_saturation;
std::list<double>::const_iterator __last_age;
double __mstar,
__mplanet;
Eigen::Vector3d __stellar_angmom;
const InterpolatedEvolutionStar &__star;
void create_missing_lists(
const std::list<double> &tabulation_ages
);
void fix_no_evolution(
double start_age,
double end_age,
double timestep,
const std::list<double> &required_ages=std::list<double>()
);
public:
ConstSolutionIterator(
const OrbitSolver &solver,
const BinarySystem &system,
const InterpolatedEvolutionStar &star,
double start_age,
double end_age,
double timestep,
const std::list<double> &required_ages=std::list<double>()
);
const ConstSolutionIterator &operator++();
operator bool() {return __real_iterators[OutCol::AGE]!=__last_age;}
double real_quantity(OutCol::OutputColumns quantity);
Core::EvolModeType evolution_mode() {return *__mode;}
bool wind_saturation() {return *__wind_saturation;}
}; //End ConstSolutionIterator class.
} //End Evolve namespace.
#endif