Program Listing for File SecondaryDeathCondition.h

Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/Evolve/SecondaryDeathCondition.h)

#ifndef __SECONDARY_DEATH_CONDITION_H
#define __SECONDARY_DEATH_CONDITION_H

#include "../Core/SharedLibraryExportMacros.h"
#include "StoppingCondition.h"

namespace Evolve {

    class BinarySystem;

    class LIB_LOCAL SecondaryDeathCondition : public StoppingCondition {
    private:
        BinarySystem &__system;
    public:
        SecondaryDeathCondition(BinarySystem &system) :
            StoppingCondition(-1),
            __system(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 PLANET_DEATH;}

        void reached(short deriv_sign, unsigned index=0);

        virtual std::string describe(int index = -1) const;

    }; //End SecondaryDeathCondition class.

} //End Evolve namespace.

#endif