Program Listing for File CInterface.h¶
↰ Return to documentation for file (/home/kpenev/projects/git/poet/poet_src/Evolve/CInterface.h)
#include "../Core/SharedLibraryExportMacros.h"
#include "DiskBinarySystem.h"
#include "OrbitSolver.h"
#include "../Star/CInterface.h"
#include "../Planet/CInterface.h"
extern "C" {
LIB_PUBLIC extern const int LOCKED_SURFACE_SPIN_EVOL_MODE;
LIB_PUBLIC extern const int BINARY_EVOL_MODE;
LIB_PUBLIC extern const int SINGLE_EVOL_MODE;
LIB_PUBLIC extern const int TABULATION_EVOL_MODE;
LIB_PUBLIC extern const double NaN;
struct LIB_PUBLIC DiskBinarySystem;
struct LIB_PUBLIC OrbitSolver;
struct LIB_PUBLIC BrokenPowerlawPhaseLagZone;
LIB_PUBLIC void read_eccentricity_expansion_coefficients(
const char *filename
);
LIB_PUBLIC void set_zone_dissipation(
BrokenPowerlawPhaseLagZone *zone,
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 DiskBinarySystem *create_star_planet_system(
EvolvingStar *star,
CPlanet *planet,
double initial_semimajor,
double initial_eccentricity,
double initial_inclination,
double disk_lock_frequency,
double disk_dissipation_age,
double secondary_formation_age
);
LIB_PUBLIC DiskBinarySystem *create_star_star_system(
EvolvingStar *primary,
EvolvingStar *secondary,
double initial_semimajor,
double initial_eccentricity,
double initial_inclination,
double disk_lock_frequency,
double disk_dissipation_age,
double secondary_formation_age
);
LIB_PUBLIC void destroy_binary(
DiskBinarySystem *system
);
LIB_PUBLIC void configure_planet(
CPlanet *planet,
double age,
double companion_mass,
double semimajor,
double eccentricity,
const double *spin_angmom,
const double *inclination,
const double *periapsis,
bool locked_surface,
bool zero_outer_inclination,
bool zero_outer_periapsis
);
LIB_PUBLIC void configure_star(
EvolvingStar *star,
double age,
double companion_mass,
double semimajor,
double eccentricity,
const double *spin_angmom,
const double *inclination,
const double *periapsis,
bool locked_surface,
bool zero_outer_inclination,
bool zero_outer_periapsis
);
LIB_PUBLIC void configure_system(
DiskBinarySystem *system,
double age,
double semimajor,
double eccentricity,
const double *spin_angmom,
const double *inclination,
const double *periapsis,
int evolution_mode
);
LIB_PUBLIC OrbitSolver *evolve_system(
DiskBinarySystem *system,
double final_age,
double max_time_step,
double precision,
double *required_ages,
unsigned num_required_ages,
bool print_progress
);
LIB_PUBLIC void destroy_solver(
OrbitSolver *solver
);
LIB_PUBLIC unsigned num_evolution_steps(
OrbitSolver *solver
);
LIB_PUBLIC void get_star_planet_evolution(
const OrbitSolver *solver,
const DiskBinarySystem *system,
const EvolvingStar *star,
const CPlanet *planet,
double *age,
double *semimajor,
double *eccentricity,
double *envelope_inclination,
double *core_inclination,
double *envelope_periapsis,
double *core_periapsis,
double *envelope_angmom,
double *core_angmom,
double *planet_inclination,
double *planet_periapsis,
double *planet_angmom,
int *evolution_mode,
bool *wind_saturation
);
LIB_PUBLIC void get_star_star_evolution(
const OrbitSolver *solver,
const DiskBinarySystem *system,
const EvolvingStar *primary,
const EvolvingStar *secondary,
double *age,
double *semimajor,
double *eccentricity,
double *primary_envelope_inclination,
double *primary_core_inclination,
double *primary_envelope_periapsis,
double *primary_core_periapsis,
double *primary_envelope_angmom,
double *primary_core_angmom,
double *secondary_envelope_inclination,
double *secondary_core_inclination,
double *secondary_envelope_periapsis,
double *secondary_core_periapsis,
double *secondary_envelope_angmom,
double *secondary_core_angmom,
int *evolution_mode,
bool *primary_wind_saturation,
bool *secondary_wind_saturation
);
LIB_PUBLIC void get_star_planet_final_state(
const OrbitSolver *solver,
const DiskBinarySystem *system,
const EvolvingStar *star,
const CPlanet *planet,
double *age,
double *semimajor,
double *eccentricity,
double *envelope_inclination,
double *core_inclination,
double *envelope_periapsis,
double *core_periapsis,
double *envelope_angmom,
double *core_angmom,
double *planet_inclination,
double *planet_periapsis,
double *planet_angmom,
int *evolution_mode,
bool *wind_saturation
);
LIB_PUBLIC void get_star_star_final_state(
const OrbitSolver *solver,
const DiskBinarySystem *system,
const EvolvingStar *primary,
const EvolvingStar *secondary,
double *age,
double *semimajor,
double *eccentricity,
double *primary_envelope_inclination,
double *primary_core_inclination,
double *primary_envelope_periapsis,
double *primary_core_periapsis,
double *primary_envelope_angmom,
double *primary_core_angmom,
double *secondary_envelope_inclination,
double *secondary_core_inclination,
double *secondary_envelope_periapsis,
double *secondary_core_periapsis,
double *secondary_envelope_angmom,
double *secondary_core_angmom,
int *evolution_mode,
bool *primary_wind_saturation,
bool *secondary_wind_saturation
);
}//End Extern "C"