You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: online-docs/pages/whats-new.rst
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,9 @@ What's new
4
4
Following is a brief list of important updates to the COMPAS code. A complete record of changes can be found in the file ``changelog.h``.
5
5
6
6
**03.21.00 July 6, 2025**
7
-
* - Changed default values of --enhance-CHE-lifetimes-luminosities and --scale-CHE-mass-loss-with-surface-helium-abundance to true
7
+
* Changed default values of --enhance-CHE-lifetimes-luminosities and --scale-CHE-mass-loss-with-surface-helium-abundance to true
8
8
* Added options to set beta and gamma prescription for second stage of 2-stage CE (``--common-envelope-second-stage-beta``, ``--common-envelope-second-stage-gamma-prescription``)
9
+
* Fixed a bug in the calculation of zeta_equilibrium, which impacts when mass transfer is declared to proceed on a nuclear timescale (and hence how conservative it is)
double massDiffDonor = MassLossToFitInsideRocheLobe(this, m_Donor, m_Accretor, m_FractionAccreted, 0.0); // use root solver to determine how much mass should be lost from the donor to allow it to fit within the Roche lobe, fixed beta
2067
+
2070
2068
// can the mass transfer happen on a nuclear timescale?
2071
2069
if (m_Donor->IsOneOf(NON_COMPACT_OBJECTS)) {
2072
-
// technically, we do not know how much mass the accretor should gain until we do the calculation,
2073
-
// which impacts the RL size, so we will check whether a nuclear timescale MT was feasible later
// if MT_ACCRETION_EFFICIENCY_PRESCRIPTION::FIXED_FRACTION, then CalculateMassAcceptanceRate() already computed the correct m_FractionAccreted and massDiffDonor (no difference between nuclear and thermal timescale MT)
2075
2071
if (OPTIONS->MassTransferAccretionEfficiencyPrescription() == MT_ACCRETION_EFFICIENCY_PRESCRIPTION::THERMALLY_LIMITED) {
2076
-
massDiffDonor = MassLossToFitInsideRocheLobe(this, m_Donor, m_Accretor, -1.0, maximumAccretedMass); // use root solver to determine how much mass should be lost from the donor to allow it to fit within the Roche lobe, fixed accretion amount
m_FractionAccreted = maximumAccretionRate / donorMassLossRateThermal; // relevant for MT_ACCRETION_EFFICIENCY_PRESCRIPTION::FIXED_FRACTION
2081
-
massDiffDonor = MassLossToFitInsideRocheLobe(this, m_Donor, m_Accretor, m_FractionAccreted, 0.0); // use root solver to determine how much mass should be lost from the donor to allow it to fit within the Roche lobe, fixed beta
2072
+
// technically, we do not know how much mass the accretor should gain until we do the calculation,
2073
+
// which impacts the RL size, so we will check whether a nuclear timescale MT was feasible later
2074
+
massDiffDonor = MassLossToFitInsideRocheLobe(this, m_Donor, m_Accretor, -1.0, m_Dt); // use root solver to determine how much mass should be lost from the donor to allow it to fit within the Roche lobe, estimating accretion efficiency based on a mass donation rate of massDiffDonor/m_Dt for self-consistency
if (m_MassTransferTimescale != MT_TIMESCALE::NUCLEAR) { // thermal timescale mass transfer (we will check for dynamically unstable / CE mass transfer later)
if (m_MassTransferTimescale != MT_TIMESCALE::NUCLEAR) { // thermal timescale mass transfer (we will check for dynamically unstable / CE mass transfer later); m_FractionAccreted and massDiffDonor already computed for this case
massDiffDonor = MassLossToFitInsideRocheLobe(this, m_Donor, m_Accretor, betaThermal, 0.0); // use root solver to determine how much mass should be lost from the donor to allow it to fit within the Roche lobe
2101
2094
}
2102
2095
2103
2096
double aInitial = m_SemiMajorAxis; // semi-major axis in default units, AU, current timestep
* @param [IN] p_Binary (Pointer to) The binary star under examination
583
583
* @param [IN] p_Donor (Pointer to) The star donating mass
584
584
* @param [IN] p_Accretor (Pointer to) The star accreting mass
585
-
* @param [IN] p_FractionAccreted The fraction of the donated mass accreted by the accretor (for thermal timescale accretion)
586
-
* @param [IN] p_MaximumAccretedMassThe total amount of mass that can be accreted (for nuclear timescale accretion, p_FractionAccreted should be negative for this to be used)
585
+
* @param [IN] p_FractionAccreted The fraction of the donated mass accreted by the accretor (if known in advance, otherwise zero)
586
+
* @param [IN] p_Dt Time step duration (relevant for nuclear timescale mass transfer)
587
587
* @param [IN] p_Error (Address of variable to record) Error encountered in functor
588
588
*
589
589
* Function: calculate radius difference after mass loss
Copy file name to clipboardExpand all lines: src/changelog.h
+3-2Lines changed: 3 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1599,10 +1599,11 @@
1599
1599
// - Fixed error in MainSequence::CalculateInitialMainSequenceCoreMass()
1600
1600
// 03.20.09 RTW - Jun 30, 2025 - Enhancement:
1601
1601
// - Added individual velocity components for stars to the LogTypedefs file so they can be included in the output (as ANY_STAR_PROPERTY::VELOCITY_X, or Y, Z)
1602
-
// 03.21.00 IM - July 6, 2025 - Enhancements:
1602
+
// 03.21.00 IM - July 6, 2025 - Enhancements, defect repair:
1603
1603
// - Changed default values of --enhance-CHE-lifetimes-luminosities and --scale-CHE-mass-loss-with-surface-helium-abundance to true
1604
1604
// - Added options to set beta and gamma prescription for second stage of 2-stage CE (--common-envelope-second-stage-beta, --common-envelope-second-stage-gamma-prescription)
1605
-
1605
+
// - Fixed a bug in CalculateZetaEquilibrium(), which impacted when mass transfer is declared nuclear (and how conservative it is)
1606
+
// - Now calculate mass accretion rate for nuclear timescale mass transfer on the fly to match with donor mass loss rate set by donor mass loss (required to fit into Roche lobe) divided by time step
0 commit comments