8 #ifndef __EVOLVING_STELLAR_ZONE_H 9 #define __EVOLVING_STELLAR_ZONE_H 11 #include "../Core/SharedLibraryExportMacros.h" 12 #include "../Evolve/BrokenPowerlawPhaseLagZone.h" 13 #include "../Core/Functions.h" 14 #include "../StellarEvolution/EvolvingStellarQuantity.h" 16 #include <initializer_list> 30 mutable std::vector< const Core::FunctionDerivatives* >
34 const std::vector< const StellarEvolution::EvolvingStellarQuantity* >
38 void reset_current_quantities();
46 std::initializer_list<
50 __current_age(
Core::NaN),
51 __current_age_quantities(evolving_quantities.size(), NULL),
52 __evolving_quantities(evolving_quantities)
57 virtual void configure(
65 double orbital_frequency,
71 double orbital_angmom,
85 bool spin_is_frequency
93 double current_age_quantity(
99 unsigned deriv_order=0
106 double any_age_quantity(
115 unsigned deriv_order=0
124 void reached_critical_age(
double age);
128 double next_stop_age()
const;
131 double min_interp_age()
const;
EvolvingStellarZone(std::initializer_list< const StellarEvolution::EvolvingStellarQuantity * > evolving_quantities)
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 current_age()
Return the last age with which ::configure() was called.
Base class for zones of low mass evolving stars.
double __current_age
The age for the last configure() call.
A class for stellar properties that depend on age.
const std::vector< const StellarEvolution::EvolvingStellarQuantity *> __evolving_quantities
The quantities describing the stellar zone.
void select_interpolation_region(const EvolvingStar *star, double age)
Prepare the zone quantities for interpolation around the given age.
A DissipatingZone where the phase lag is described by a broken powerlaw.