diff --git a/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-stellar.rst b/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-stellar.rst index 87a61857e..d97134ee0 100644 --- a/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-stellar.rst +++ b/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-stellar.rst @@ -340,6 +340,23 @@ Following is an alphabetical list of stellar properties available for inclusion * - Header Strings: - Mass_Core@\ CO, Mass_Core@CO(1), Mass_Core@CO(2), Mass_Core@CO(SN), Mass_Core@CO(CP) +.. flat-table:: + :widths: 25 75 1 1 + :header-rows: 0 + :class: aligned-text + + * - :cspan:`2` **CORE_RADIUS** + - + * - Data type: + - DOUBLE + * - COMPAS variable: + - BaseStar::m_CoreRadius + * - Description: + - Core radius (\ :math:`R\odot`). + * - Header Strings: + - Radius_Core, Radius_Core(1), Radius_Core(2), Radius_Core(SN), Radius_Core(CP) + + .. _stellar-props-D: :ref:`Back to Top ` diff --git a/src/BaseStar.cpp b/src/BaseStar.cpp index fe378687a..1b2810659 100755 --- a/src/BaseStar.cpp +++ b/src/BaseStar.cpp @@ -296,6 +296,7 @@ COMPAS_VARIABLE BaseStar::StellarPropertyValue(const T_ANY_PROPERTY p_Property) case ANY_STAR_PROPERTY::CO_CORE_MASS_AT_COMPACT_OBJECT_FORMATION: value = SN_COCoreMassAtCOFormation(); break; case ANY_STAR_PROPERTY::CORE_MASS: value = CoreMass(); break; case ANY_STAR_PROPERTY::CORE_MASS_AT_COMPACT_OBJECT_FORMATION: value = SN_CoreMassAtCOFormation(); break; + case ANY_STAR_PROPERTY::CORE_RADIUS: value = CalculateCoreRadius(); break; case ANY_STAR_PROPERTY::DRAWN_KICK_MAGNITUDE: value = SN_DrawnKickMagnitude(); break; case ANY_STAR_PROPERTY::DOMINANT_MASS_LOSS_RATE: value = DominantMassLossRate(); break; case ANY_STAR_PROPERTY::DT: value = Dt(); break; diff --git a/src/BaseStar.h b/src/BaseStar.h index 1742ae6d0..74204c2c0 100644 --- a/src/BaseStar.h +++ b/src/BaseStar.h @@ -162,7 +162,7 @@ class BaseStar { double CalculateConvectiveEnvelopeBindingEnergy(const double p_CoreMass, const double p_ConvectiveEnvelopeMass, const double p_Radius, const double p_Lambda); virtual double CalculateConvectiveEnvelopeMass() const { return 0.0; } - + virtual double CalculateCoreRadius() const { return 0.0; } virtual double CalculateCriticalMassRatio(const bool p_AccretorIsDegenerate); virtual double CalculateCriticalMassRatioClaeys14(const bool p_AccretorIsDegenerate) const { return 0.0; } // Default is 0.0 double CalculateCriticalMassRatioGe20(const QCRIT_PRESCRIPTION p_qCritPrescription) { return InterpolateGe20QCrit(p_qCritPrescription); } @@ -321,6 +321,7 @@ class BaseStar { double m_Age; // Current effective age (changes with mass loss/gain)(myrs) double m_COCoreMass; // Current CO core mass (Msol) double m_CoreMass; // Current core mass (Msol) + double m_CoreRadius; // Current core radius (Rsol) double m_Dt; // Current timestep (myrs) bool m_EnvelopeJustExpelledByPulsations; // Flag to know if the convective envelope has just been expelled by pulsations double m_HeCoreMass; // Current He core mass (Msol) diff --git a/src/GiantBranch.h b/src/GiantBranch.h index 3630cd043..b2caa2f92 100755 --- a/src/GiantBranch.h +++ b/src/GiantBranch.h @@ -42,6 +42,8 @@ class GiantBranch: virtual public BaseStar, public MainSequence { static double CalculateCoreMass_Luminosity_Lx_Static(const DBL_VECTOR &p_GBParams); static double CalculateCoreMass_Luminosity_Mx_Static(const DBL_VECTOR &p_GBParams); + double CalculateCoreRadius() const { return CalculateRemnantRadius(); } + double CalculateCriticalMassRatioClaeys14(const bool p_AccretorIsDegenerate) const; double CalculateCriticalMassRatioHurleyHjellmingWebbink() const; diff --git a/src/Remnants.h b/src/Remnants.h index 284315988..c2809f9e4 100644 --- a/src/Remnants.h +++ b/src/Remnants.h @@ -35,6 +35,8 @@ class Remnants: virtual public BaseStar, public HeGB { double CalculateCoreMassOnPhase() const { return m_Mass; } // Return m_Mass + double CalculateCoreRadius() const { return 0.0; } + double CalculateCriticalMassRatio(const bool p_AccretorIsDegenerate) { return 0.0; } // Should never be called... void CalculateGBParams(const double p_Mass, DBL_VECTOR &p_GBParams) { GiantBranch::CalculateGBParams(p_Mass, p_GBParams); } // Default to GiantBranch diff --git a/src/constants.h b/src/constants.h index 9965d5110..0a9199e85 100755 --- a/src/constants.h +++ b/src/constants.h @@ -1836,6 +1836,7 @@ const COMPASUnorderedMap PROPERTY_TYPE_LABEL = { CORE_MASS, \ CORE_MASS_AT_COMMON_ENVELOPE, \ CORE_MASS_AT_COMPACT_OBJECT_FORMATION, \ + CORE_RADIUS, \ DRAWN_KICK_MAGNITUDE, \ DOMINANT_MASS_LOSS_RATE, \ DT, \ @@ -1991,6 +1992,7 @@ const COMPASUnorderedMap STAR_PROPERTY_LABEL = { { STAR_PROPERTY::CORE_MASS, "CORE_MASS" }, { STAR_PROPERTY::CORE_MASS_AT_COMMON_ENVELOPE, "CORE_MASS_AT_COMMON_ENVELOPE" }, { STAR_PROPERTY::CORE_MASS_AT_COMPACT_OBJECT_FORMATION, "CORE_MASS_AT_COMPACT_OBJECT_FORMATION" }, + { STAR_PROPERTY::CORE_RADIUS, "CORE_RADIUS" }, { STAR_PROPERTY::DRAWN_KICK_MAGNITUDE, "DRAWN_KICK_MAGNITUDE" }, { STAR_PROPERTY::DOMINANT_MASS_LOSS_RATE, "DOMINANT_MASS_LOSS_RATE"}, { STAR_PROPERTY::DT, "DT" }, @@ -2879,6 +2881,7 @@ const std::map ANY_STAR_PROPERTY_DETAIL = { { ANY_STAR_PROPERTY::CORE_MASS, { TYPENAME::DOUBLE, "Mass_Core", "Msol", 14, 6 }}, { ANY_STAR_PROPERTY::CORE_MASS_AT_COMMON_ENVELOPE, { TYPENAME::DOUBLE, "Mass_Core@CE", "Msol", 14, 6 }}, { ANY_STAR_PROPERTY::CORE_MASS_AT_COMPACT_OBJECT_FORMATION, { TYPENAME::DOUBLE, "Mass_Core@CO", "Msol", 14, 6 }}, + { ANY_STAR_PROPERTY::CORE_RADIUS, { TYPENAME::DOUBLE, "Radius_Core", "Rsol", 14, 6 }}, { ANY_STAR_PROPERTY::DRAWN_KICK_MAGNITUDE, { TYPENAME::DOUBLE, "Drawn_Kick_Magnitude", "kms^-1", 14, 6 }}, { ANY_STAR_PROPERTY::DOMINANT_MASS_LOSS_RATE, { TYPENAME::INT, "Dominant_Mass_Loss_Rate", "-", 4, 1 }}, { ANY_STAR_PROPERTY::DT, { TYPENAME::DOUBLE, "dT", "Myr", 24, 15}}, @@ -3478,6 +3481,8 @@ const ANY_PROPERTY_VECTOR BSE_DETAILED_OUTPUT_REC = { STAR_2_PROPERTY::HE_CORE_MASS, STAR_1_PROPERTY::CO_CORE_MASS, STAR_2_PROPERTY::CO_CORE_MASS, + STAR_1_PROPERTY::CORE_RADIUS, + STAR_2_PROPERTY::CORE_RADIUS, STAR_1_PROPERTY::RADIUS, STAR_2_PROPERTY::RADIUS, BINARY_PROPERTY::ROCHE_LOBE_RADIUS_1, @@ -3742,6 +3747,7 @@ const ANY_PROPERTY_VECTOR SSE_DETAILED_OUTPUT_REC = { STAR_PROPERTY::CORE_MASS, STAR_PROPERTY::CO_CORE_MASS, STAR_PROPERTY::HE_CORE_MASS, + STAR_PROPERTY::CORE_RADIUS, STAR_PROPERTY::MDOT, STAR_PROPERTY::DOMINANT_MASS_LOSS_RATE, STAR_PROPERTY::TIMESCALE_MS