Program Listing for File testGravitationalPotential.h

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

#ifndef __TEST_GRAVITATIONAL_POTENTIAL_H
#define __TEST_GRAVITATIONAL_POTENTIAL_H

#include "EccentricOrbit.h"
#include "TidalPotential.h"
#include "TidalPotentialExpansion.h"

#include "../shared/Common.h"

#include <iostream>
#include <iomanip>
#include <sstream>

namespace Evolve {
    class test_GravitationalPotential : public Test::Suite {
    private:
        void print_orbit(const EccentricOrbit &orbit) const;

        void print_tidal_potential(
            double primary_mass,

            double secondary_mass,

            double semimajor,

            double eccentricity,

            double inclination,

            double arg_of_periapsis,

            const Eigen::Vector3d &position,

            unsigned e_order
        ) const;

        double abs_expected_precision(
            const Eigen::Vector3d &position,

            const EccentricOrbit &orbit
        ) const;

        void test_single_point(
            TidalPotentialExpansion &approx_potential,

            const TidalPotential &exact_potential,

            const Eigen::Vector3d &position
        );

        void test_system(
            double primary_mass,

            double secondary_mass,

            double semimajor,

            double eccentricity,

            double inclination,

            double arg_of_periapsis,

            unsigned e_order=0
        );

    protected:
        void setup() {};

        void tear_down() {};

    public:
        test_GravitationalPotential();

        void test_expansion();
    }; //End test_GravitationalPotential class.
} //End Evolve namespace.

#endif