Program Listing for File testDifferentialEquations.h

Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/unit_tests/testEvolve/testDifferentialEquations.h)

#ifndef __TEST_DIFFERENTIAL_EQUATIONS_H
#define __TEST_DIFFERENTIAL_EQUATIONS_H

#include "SingleTidalTermBody.h"
#include "../shared/Common.h"
#include "../shared/PolynomialEvolution.h"
#include "../shared/MakeStar.h"
#include "../../Planet/Planet.h"
#include "../../third_party_libs/alglib/alglib/src/interpolation.h"

namespace Evolve {
    class test_DifferentialEquations : public Test::Suite {
    private:
        void output_rates(
            const alglib::real_1d_array &eccentricities,
            const alglib::real_1d_array &expected_semimajor_rate,
            const alglib::real_1d_array &predicted_semimajor_rate,
            const alglib::real_1d_array &expected_eccentricity_rate,
            const alglib::real_1d_array &predicted_eccentricity_rate
        ) const;


        double zahn77_semimajor_rate_coef(
            int orbital_frequency_multiplier,

            int spin_frequency_multiplier,

            double eccentricity
        ) const;

        double zahn77_eccentricity_rate_coef(
            int orbital_frequency_multiplier,

            int spin_frequency_multiplier
        ) const;

        void check_agreement(
            const alglib::real_1d_array& x,

            const alglib::real_1d_array& y1,

            const alglib::real_1d_array& y2,

            unsigned agreement_order,

            unsigned max_order,

            const std::string &description
        );

    protected:
        void setup() {};

        void tear_down() {};
    public:
        test_DifferentialEquations();

        void test_aligned_equations();

        void test_error_estimate();
    };// End test_DifferentialEquations class.

} //End Evolve namespace.

#endif