Program Listing for File SynchronizedCondition.h¶
↰ Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/Evolve/SynchronizedCondition.h)
#ifndef __SYNCHRONIZED_CONDITION_H
#define __SYNCHRONIZED_CONDITION_H
#include "../Core/SharedLibraryExportMacros.h"
#include "StoppingCondition.h"
namespace Evolve {
class DissipatingZone;
class BinarySystem;
class LIB_LOCAL SynchronizedCondition : public StoppingCondition{
private:
int __orbital_freq_mult,
__spin_freq_mult;
bool __primary;
unsigned __zone_index;
const DissipatingZone &__zone;
BinarySystem &__system;
public:
SynchronizedCondition(
int orbital_freq_mult,
int spin_freq_mult,
short deriv_sign,
bool primary,
unsigned zone_index,
BinarySystem &system
);
std::valarray<double> operator()(
Core::EvolModeType evol_mode,
const std::valarray<double> &orbit,
const std::valarray<double> &derivatives,
std::valarray<double> &stop_deriv
) const;
StoppingConditionType type(unsigned =0) const {return SYNCHRONIZED;}
int orbital_frequency_multiplier() const {return __orbital_freq_mult;}
int spin_frequency_multiplier() const {return __spin_freq_mult;}
// short body_index() const {return __body_index;}
void reached(short deriv_sign, unsigned index=0);
virtual std::string describe(int index = -1) const;
};//End SynchronizedCondition class.
}//End Evolve namespace.
#endif