8 #define BUILDING_LIBRARY 23 unsigned deriv_order)
const 36 unsigned deriv_order)
const 43 double result = deriv->
order(deriv_order);
51 double orbital_frequency,
53 double orbital_angmom,
57 bool spin_is_frequency)
63 BrokenPowerlawPhaseLagZone::configure(initialize,
91 double result = Core::Inf;
102 double result = -Core::Inf;
110 result = std::max(result, (*quantity_iter)->range_low());
123 (*quantity_iter)->select_interpolation_region(age);
std::vector< const Core::FunctionDerivatives *> __current_age_quantities
Pre-computed values and derivatives for quantities which only depend on age at the current age...
double periapsis(bool evolution_rate=false) const
The argument of periapsis of this zone minus the reference zone's.
double __current_age
The age for the last configure() call.
A class for stellar properties that depend on age.
virtual double order(unsigned deriv_order=1) const =0
Derivative of the given order of the function with respect to its argument.
Declares a base class for all stellar zones.
virtual void select_interpolation_region(double age) const
Prepare the zone quantities for interpolation around the given age.
double current_age_quantity(size_t quantity, unsigned deriv_order=0) const
The current age value of the given quantity (or its derivative).
double next_stop_age() const
The next age when the evolution needs to be stopped for a change in one of the bodies.
const std::vector< const StellarEvolution::EvolvingStellarQuantity *> __evolving_quantities
The quantities describing the stellar zone.
void reached_critical_age(double age)
Change the body as necessary at the given age.
~EvolvingStellarZone()
Delete any dynamically allocated memory.
A class representing arbitrary order derivatives of a function.
double any_age_quantity(size_t quantity, double age, unsigned deriv_order=0) const
The value of the given quantity (or its derivative) at an arbitrary age.
double inclination(bool evolution_rate=false) const
The angle between the angular momenta of the zone and the orbit.
void reset_current_quantities()
Forgets any previously calculated quantities for the current age.
virtual void configure(bool initialize, double age, double orbital_frequency, double eccentricity, double orbital_angmom, double spin, double inclination, double periapsis, bool spin_is_frequency)
Defines the current orbit, triggering re-calculation of all quantities.
double min_interp_age() const
The minimum age at wich zone quantities can be querried.