Program Listing for File PowerlawPhaseLagZone.h

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

#ifndef __POWERLAW_PHASE_LAG_ZONE_H
#define __POWERLAW_PHASE_LAG_ZONE_H

#include "DissipatingZone.h"

class PowerlawPhaseLagZone : virtual public DissipatingZone {
private:
    double __phase_lag_one_day,

           __phase_lag_powerlaw_index,

           __max_phase_lag;
public:
    PowerlawPhaseLagZone(
            double phase_lag_one_day = 0,

            double phase_lag_powerlaw_index = 0,

            double max_phase_lag = 0) :
        __phase_lag_one_day(phase_lag_one_day),
        __phase_lag_powerlaw_index(phase_lag_powerlaw_index),
        __max_phase_lag(max_phase_lag) {}

    void set_phase_lag_one_day(double lag_1day)
    {__phase_lag_one_day = lag_1day;}

    void set_phase_lag_powerlaw_index(double powerlaw_index)
    {__phase_lag_powerlaw_index = powerlaw_index;}

    void set_max_phase_lag(double max_lag)
    {__max_phase_lag = max_lag;}

    virtual double modified_phase_lag(
            int orbital_frequency_multiplier,

            int spin_frequency_multiplier,

            double forcing_frequency,

            Dissipation::QuantityEntry entry,

            double &above_lock_value
    ) const;

    virtual double love_coefficient(
            int,

            int,

            Dissipation::QuantityEntry
    ) const
    {return 0;}
};

#endif