Program Listing for File CInterface.h

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

#include "../StellarEvolution/CInterface.h"
#include "../Core/SharedLibraryExportMacros.h"
#include "EvolvingStar.h"
#include "../Evolve/DissipationQuantities.h"


extern "C" {
    LIB_PUBLIC extern const int NO_DERIV;

    LIB_PUBLIC extern const int AGE_DERIV;

    LIB_PUBLIC extern const int SPIN_FREQUENCY_DERIV;

    LIB_PUBLIC extern const int ORBITAL_FREQUENCY_DERIV;

    struct LIB_PUBLIC EvolvingStar;

    LIB_PUBLIC EvolvingStar *create_star(
        double mass,

        double feh,

        double wind_strength,

        double wind_saturation_frequency,

        double diff_rot_coupling_timescale,

        const MESAInterpolator *interpolator
    );

    LIB_PUBLIC void destroy_star(
        EvolvingStar *star
    );

    LIB_PUBLIC void set_star_dissipation(
        EvolvingStar *star,

        unsigned zone_index,

        unsigned num_tidal_frequency_breaks,

        unsigned num_spin_frequency_breaks,

        double *tidal_frequency_breaks,

        double *spin_frequency_breaks,

        double *tidal_frequency_powers,

        double *spin_frequency_powers,

        double reference_phase_lag
    );

    LIB_PUBLIC void detect_stellar_wind_saturation(
        EvolvingStar *star
    );

    LIB_PUBLIC void select_interpolation_region(
        const EvolvingStar *star,

        double age
    );

    LIB_PUBLIC double modified_phase_lag(
        const EvolvingStar *star,

        unsigned zone_index,

        int orbital_frequency_multiplier,

        int spin_frequency_multiplier,

        double forcing_frequency,

        int deriv,

        double *above_lock_value
    );

    LIB_PUBLIC double core_formation_age(
        const EvolvingStar *star
    );

    LIB_PUBLIC double lifetime(
        const EvolvingStar *star
    );

    LIB_PUBLIC double luminosity(
        EvolvingStar *star,

        double age
    );

    LIB_PUBLIC void luminosity_array(
        EvolvingStar *star,

        const double *age,

        unsigned nvalues,

        double *result
    );

    LIB_PUBLIC double core_inertia(
        EvolvingStar *star,

        double age
    );

    LIB_PUBLIC void core_inertia_array(
        EvolvingStar *star,

        const double *age,

        unsigned nvalues,

        double *result
    );

    LIB_PUBLIC double envelope_inertia(
        EvolvingStar *star,

        double age
    );

    LIB_PUBLIC void envelope_inertia_array(
        EvolvingStar *star,

        const double *age,

        unsigned nvalues,

        double *result
    );

    LIB_PUBLIC double star_radius(
        EvolvingStar *star,

        double age
    );

    LIB_PUBLIC void star_radius_array(
        EvolvingStar *star,

        const double *age,

        unsigned nvalues,

        double *result
    );

    LIB_PUBLIC double lag_from_lgQ(double lgQ);

} //End extern "C"