Program Listing for File DiskBinarySystem.h

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

#ifndef __DISK_PLANET_SYSTEM_H
#define __DISK_PLANET_SYSTEM_H

#include "../Core/SharedLibraryExportMacros.h"
#include "BinarySystem.h"
#include "../Core/Error.h"
#include <sstream>

namespace Evolve {

    class LIB_PUBLIC DiskBinarySystem : virtual public BinarySystem {
    private:
        double __initial_semimajor,

               __initial_eccentricity,

               __initial_inclination,

               __disk_lock_frequency,

               __disk_dissipation_age,

               __secondary_formation_age;

        void release_surface_spin();

        void add_secondary();
    public:
        DiskBinarySystem(
                DissipatingBody &body1,

                DissipatingBody &body2,

                double initial_semimajor,

                double initial_eccentricity,

                double initial_inclination,

                double disk_lock_frequency,

                double disk_dissipation_age,

                double secondary_formation_age);

        double disk_dissipation_age() {return __disk_dissipation_age;}

        virtual void reached_critical_age(double age);

        virtual double next_stop_age() const;

        virtual ~DiskBinarySystem() {}
    }; //End DiskBinarySystem class

} //End Evolve namespace.

#endif