// General constants
/// solar flux constant
pub const SOLAR_FLUX: f64 = 1361.5;
/// Stephan Bolztman constant
pub const STEPHAN_BOLTZMAN: f64 = 5.670374419e-8;
/// tau constant
pub const TAU: f64 = std::f64::consts::TAU;
/// defines a stability condition for heat transfert
pub const NUMERICAL_STABILITY: f64 = 0.25;
/// threshold that defines the convergence of the numerical Newton method
pub const NEWTON_METHOD_THRESHOLD: f64 = 1e-5;
/// threshold that defines a range to consider a point as on the equator.
pub const EQUATOR_THRESHOLD: f64 = 3e-2;
/// number of thermal skin depth to consider for coherent ground adiabatic condition
pub const NUMBER_THERMAL_SKIN_DEPTH: usize = 1;
/// minimum precision trusted in the computation
pub const MINIMUM_PRECISION: f64 = 1e-6;

// Time related constants
// These constants are defined in seconds, in the Earth time referential.
/// a minute alias for 60 seconds
pub const MINUTE: f64 = 60.0;
/// an hour alias for 60 minutes
pub const HOUR: f64 = MINUTE * 60.;
/// a day alias for 24 hours
pub const DAY: f64 = HOUR * 24.;
/// a year alias for 365.25 days
pub const YEAR: f64 = DAY * 365.25;

// Distance related constants
// These constants are defined in meters.
/// an astronaumical unit is defined as 1.495978707e11 meters
pub const ASTRONAUMICAL_UNIT: f64 = 1.495978707e11;
