diff --git a/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-binary.rst b/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-binary.rst index 801b64e2b..b9d275a5c 100644 --- a/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-binary.rst +++ b/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-binary.rst @@ -1822,12 +1822,60 @@ both. If both are printed then the file will contain two columns with the same h * - Data type: - DOUBLE * - COMPAS variable: - - BaseBinaryStar::m_SystemicVelocity + - BaseBinaryStar::m_SystemicVelocity.Magnitude() * - Description: - - Post-supernova systemic (centre-of-mass) velocity (\ :math:`km s^{-1}`). + - Post-supernova systemic (centre-of-mass) speed (\ :math:`km s^{-1}`). * - Header String: - SystemicSpeed +.. flat-table:: + :widths: 25 75 1 1 + :header-rows: 0 + :class: aligned-text + + * - :cspan:`2` **SYSTEMIC_VELOCITY_X** + - + * - Data type: + - DOUBLE + * - COMPAS variable: + - BaseBinaryStar::m_SystemicVelocity.xValue() + * - Description: + - Post-supernova systemic (centre-of-mass) velocity in x-direction (\ :math:`km s^{-1}`). + * - Header String: + - SystemicVelocityX + +.. flat-table:: + :widths: 25 75 1 1 + :header-rows: 0 + :class: aligned-text + + * - :cspan:`2` **SYSTEMIC_VELOCITY_Y** + - + * - Data type: + - DOUBLE + * - COMPAS variable: + - BaseBinaryStar::m_SystemicVelocity.yValue() + * - Description: + - Post-supernova systemic (centre-of-mass) velocity in y-direction (\ :math:`km s^{-1}`). + * - Header String: + - SystemicVelocityY + +.. flat-table:: + :widths: 25 75 1 1 + :header-rows: 0 + :class: aligned-text + + * - :cspan:`2` **SYSTEMIC_VELOCITY_Z** + - + * - Data type: + - DOUBLE + * - COMPAS variable: + - BaseBinaryStar::m_SystemicVelocity.zValue() + * - Description: + - Post-supernova systemic (centre-of-mass) velocity in z-direction (\ :math:`km s^{-1}`). + * - Header String: + - SystemicVelocityZ + .. _binary-props-T: :ref:`Back to Top ` diff --git a/src/BaseBinaryStar.cpp b/src/BaseBinaryStar.cpp index 7c5135e8c..4ef7a6487 100644 --- a/src/BaseBinaryStar.cpp +++ b/src/BaseBinaryStar.cpp @@ -622,6 +622,9 @@ COMPAS_VARIABLE BaseBinaryStar::BinaryPropertyValue(const T_ANY_PROPERTY p_Prope case BINARY_PROPERTY::SUPERNOVA_STATE: value = SN_State(); break; case BINARY_PROPERTY::SYNCHRONIZATION_TIMESCALE: value = SynchronizationTimescale(); break; case BINARY_PROPERTY::SYSTEMIC_SPEED: value = SystemicSpeed(); break; + case BINARY_PROPERTY::SYSTEMIC_VELOCITY_X: value = SystemicVelocityX(); break; + case BINARY_PROPERTY::SYSTEMIC_VELOCITY_Y: value = SystemicVelocityY(); break; + case BINARY_PROPERTY::SYSTEMIC_VELOCITY_Z: value = SystemicVelocityZ(); break; case BINARY_PROPERTY::TIME: value = Time(); break; case BINARY_PROPERTY::TIME_TO_COALESCENCE: value = TimeToCoalescence(); break; case BINARY_PROPERTY::TOTAL_ANGULAR_MOMENTUM: value = TotalAngularMomentum(); break; diff --git a/src/BaseBinaryStar.h b/src/BaseBinaryStar.h index 194dd5ed0..f8442a74d 100644 --- a/src/BaseBinaryStar.h +++ b/src/BaseBinaryStar.h @@ -246,6 +246,9 @@ class BaseBinaryStar { SN_STATE SN_State() const { return m_SupernovaState; } double SynchronizationTimescale() const { return m_SynchronizationTimescale; } double SystemicSpeed() const { return m_SystemicVelocity.Magnitude(); } + double SystemicVelocityX() const { return m_SystemicVelocity.xValue(); } + double SystemicVelocityY() const { return m_SystemicVelocity.yValue(); } + double SystemicVelocityZ() const { return m_SystemicVelocity.zValue(); } double Time() const { return m_Time; } double TimeToCoalescence() const { return m_TimeToCoalescence; } double TotalAngularMomentum() const { return m_TotalAngularMomentum; } diff --git a/src/LogTypedefs.h b/src/LogTypedefs.h index 71a71809c..51bf5a096 100644 --- a/src/LogTypedefs.h +++ b/src/LogTypedefs.h @@ -567,6 +567,9 @@ enum class BINARY_PROPERTY: int { SUPERNOVA_STATE, SYNCHRONIZATION_TIMESCALE, SYSTEMIC_SPEED, + SYSTEMIC_VELOCITY_X, + SYSTEMIC_VELOCITY_Y, + SYSTEMIC_VELOCITY_Z, TIME, TIME_TO_COALESCENCE, TOTAL_ANGULAR_MOMENTUM, @@ -688,6 +691,9 @@ const COMPASUnorderedMap BINARY_PROPERTY_LABEL = { { BINARY_PROPERTY::SUPERNOVA_STATE, "SUPERNOVA_STATE" }, { BINARY_PROPERTY::SYNCHRONIZATION_TIMESCALE, "SYNCHRONIZATION_TIMESCALE" }, { BINARY_PROPERTY::SYSTEMIC_SPEED, "SYSTEMIC_SPEED" }, + { BINARY_PROPERTY::SYSTEMIC_VELOCITY_X, "SYSTEMIC_VELOCITY_X" }, + { BINARY_PROPERTY::SYSTEMIC_VELOCITY_Y, "SYSTEMIC_VELOCITY_Y" }, + { BINARY_PROPERTY::SYSTEMIC_VELOCITY_Z, "SYSTEMIC_VELOCITY_Z" }, { BINARY_PROPERTY::TIME, "TIME" }, { BINARY_PROPERTY::TIME_TO_COALESCENCE, "TIME_TO_COALESCENCE" }, { BINARY_PROPERTY::TOTAL_ANGULAR_MOMENTUM, "TOTAL_ANGULAR_MOMENTUM" }, @@ -1449,6 +1455,9 @@ const std::map BINARY_PROPERTY_DETAIL = { { BINARY_PROPERTY::SUPERNOVA_STATE, { TYPENAME::SN_STATE, "Supernova_State", "State", 4, 1 }}, { BINARY_PROPERTY::SYNCHRONIZATION_TIMESCALE, { TYPENAME::DOUBLE, "Tau_Sync", "Myr", 24, 15}}, { BINARY_PROPERTY::SYSTEMIC_SPEED, { TYPENAME::DOUBLE, "SystemicSpeed", "kms^-1", 24, 15}}, + { BINARY_PROPERTY::SYSTEMIC_VELOCITY_X, { TYPENAME::DOUBLE, "SystemicVelocityX", "kms^-1", 24, 15}}, + { BINARY_PROPERTY::SYSTEMIC_VELOCITY_Y, { TYPENAME::DOUBLE, "SystemicVelocityY", "kms^-1", 24, 15}}, + { BINARY_PROPERTY::SYSTEMIC_VELOCITY_Z, { TYPENAME::DOUBLE, "SystemicVelocityZ", "kms^-1", 24, 15}}, { BINARY_PROPERTY::TIME, { TYPENAME::DOUBLE, "Time", "Myr", 24, 15}}, { BINARY_PROPERTY::TIME_TO_COALESCENCE, { TYPENAME::DOUBLE, "Coalescence_Time", "Myr", 24, 15}}, { BINARY_PROPERTY::TOTAL_ANGULAR_MOMENTUM, { TYPENAME::DOUBLE, "Ang_Momentum_Total", "Msol AU^2 yr^-1", 24, 15}}, diff --git a/src/changelog.h b/src/changelog.h index 40cdd9cdc..a658ad9b8 100644 --- a/src/changelog.h +++ b/src/changelog.h @@ -1399,6 +1399,8 @@ // - The nuclear timescale mass transfer rate is now set by the requirement that the star ends the time step just filling its Roche lobe (addresses issue #1285) // - Fix an issue with the root finder for fitting into the RL that led to artificial failures to find a root // - Fix issue (likely introduced in 03.08.00) with the accretor not gaining mass appropriately -const std::string VERSION_STRING = "03.09.00"; +// 03.09.01 RTW - Nov 27, 2024 - Enhancement: +// - Added systemic velocity components x, y, and z to the output +const std::string VERSION_STRING = "03.09.01"; # endif // __changelog_h__