Program Listing for File ExternalStoppingConditions.h

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

#ifndef __EXTERNAL_STOPPING_CONDITIONS_H
#define __EXTERNAL_STOPPING_CONDITIONS_H

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

namespace Evolve {

    class LIB_LOCAL RotFastCondition : public ExternalStoppingCondition {
    private:
        double __spin_thres;

        DissipatingZone &__zone;
    public:
        RotFastCondition(double spin_thres, DissipatingZone &zone) :
            __spin_thres(spin_thres), __zone(zone) {}

        std::valarray<double> operator()(
            Core::EvolModeType evol_mode,
            const std::valarray<double> &orbit,
            const std::valarray<double> &derivatives,
            std::valarray<double> &stop_deriv
        ) const;

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

    }; //End RotFastCondition class.

    //#define EXTERNAL_CONDITION RotFastCondition(4.0*M_PI)

} //End Evolve namespace.

#endif