From 6db4944c148b6e07023f377c5fd576c62aa3b562 Mon Sep 17 00:00:00 2001 From: Jeff Riley Date: Fri, 8 Aug 2025 16:14:59 +1000 Subject: [PATCH 1/5] Changes for isuues 1413 and 1414 --- .../preprocessing/compasConfigDefault.yaml | 14 +++--- ...-logfiles-record-specification-options.rst | 10 ++--- .../program-options-list-defaults.rst | 28 ++++++------ online-docs/pages/whats-new.rst | 14 ++++++ src/BaseBinaryStar.cpp | 16 +++---- src/BaseBinaryStar.h | 2 +- src/BaseStar.h | 2 +- src/LogTypedefs.h | 16 +++---- src/Options.cpp | 44 +++++++++---------- src/Options.h | 18 +++++--- src/changelog.h | 29 ++++++++++-- src/constants.h | 8 ++-- src/yaml.h | 8 ++-- 13 files changed, 120 insertions(+), 89 deletions(-) diff --git a/compas_python_utils/preprocessing/compasConfigDefault.yaml b/compas_python_utils/preprocessing/compasConfigDefault.yaml index eb33f229e..653826bc5 100644 --- a/compas_python_utils/preprocessing/compasConfigDefault.yaml +++ b/compas_python_utils/preprocessing/compasConfigDefault.yaml @@ -1,5 +1,5 @@ ##~!!~## COMPAS option values -##~!!~## File Created Fri Jul 18 08:19:00 2025 by COMPAS v03.21.00 +##~!!~## File Created Fri Aug 8 15:57:19 2025 by COMPAS v03.22.02 ##~!!~## ##~!!~## The default COMPAS YAML file (``compasConfigDefault.yaml``), as distributed, has ##~!!~## all COMPAS option entries commented so that the COMPAS default value for the @@ -71,9 +71,9 @@ numericalChoices: ### LOGISTICS # --debug-level: 0 # Default: 0 # --logfile-common-envelopes-record-types: -1 # Default: -1 -# --logfile-detailed-output-record-types: -1 # Default: -1 +# --logfile-detailed-output-record-types: 25 # Default: 25 # --logfile-double-compact-objects-record-types: -1 # Default: -1 -# --logfile-pulsar-evolution-record-types: -1 # Default: -1 +# --logfile-pulsar-evolution-record-types: 4 # Default: 4 # --logfile-rlof-parameters-record-types: -1 # Default: -1 # --logfile-supernovae-record-types: -1 # Default: -1 # --logfile-system-snapshot-log-record-types: -1 # Default: -1 @@ -96,9 +96,9 @@ numericalChoices: ### STELLAR PROPERTIES # --cool-wind-mass-loss-multiplier: 1.000000 # Default: 1.000000 # --initial-mass: 5.000000 # Default: 5.000000 # initial mass for SSE -# --initial-mass-min: 5.000000 # Default: 5.000000 # use 5.0 for DCOs [Msol] -# --initial-mass-max: 150.00 # Default: 150.00 # stellar tracks extrapolated above 50 Msol (Hurley+2000) [Msol] -# --initial-mass-power: 0.000000 # Default: 0.000000 +# --initial-mass-function-min: 5.000000 # Default: 5.000000 # use 5.0 for DCOs [Msol] +# --initial-mass-function-max: 150.00 # Default: 150.00 # stellar tracks extrapolated above 50 Msol (Hurley+2000) [Msol] +# --initial-mass-function-power: 0.000000 # Default: 0.000000 # --luminosity-to-mass-threshold: 4.200000 # Default: 4.200000 # --metallicity: 0.014200 # Default: 0.014200 # metallicity for both SSE and BSE - Solar metallicity Asplund+2010 # --metallicity-min: 0.000100 # Default: 0.000100 @@ -121,7 +121,7 @@ numericalChoices: # --mass-ratio: 1.000000 # Default: 1.000000 # --mass-ratio-min: 0.010000 # Default: 0.010000 # --mass-ratio-max: 1.000000 # Default: 1.000000 -# --minimum-secondary-mass: 0.100000 # Default: 0.100000 # Brown dwarf limit [Msol] +# --minimum-sampled-secondary-mass: 0.100000 # Default: 0.100000 # Brown dwarf limit [Msol] # --orbital-period: 0.100000 # Default: 0.100000 # orbital period for BSE # --orbital-period-min: 1.100000 # Default: 1.100000 # [days] # --orbital-period-max: 1000.00 # Default: 1000.00 # [days] diff --git a/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-options.rst b/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-options.rst index f62f57653..cdb25945a 100644 --- a/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-options.rst +++ b/online-docs/pages/User guide/COMPAS output/standard-logfiles-record-specification-options.rst @@ -608,7 +608,7 @@ DEPRECATION NOTICE: property ``BLACK_HOLE_KICKS`` has been deprecated and will s * - COMPAS variable: - Options::m_InitialMassFunctionMax * - Description: - - Value of program option ``--initial-mass-max`` + - Value of program option ``--initial-mass-function-max`` * - Header String: - PO_Initial_Mass_Func_Max @@ -624,7 +624,7 @@ DEPRECATION NOTICE: property ``BLACK_HOLE_KICKS`` has been deprecated and will s * - COMPAS variable: - Options::m_InitialMassFunctionMin * - Description: - - Value of program option ``--initial-mass-min`` + - Value of program option ``--initial-mass-function-min`` * - Header String: - PO_Initial_Mass_Func_Min @@ -1293,14 +1293,14 @@ DEPRECATION NOTICE: property ``LBV_PRESCRIPTION`` has been deprecated and will s :header-rows: 0 :class: aligned-text - * - :cspan:`2` **MINIMUM_MASS_SECONDARY** + * - :cspan:`2` **MINIMUM_SAMPLED_SECONDARY_MASS** - * - Data type: - DOUBLE * - COMPAS variable: - - Options::m_MinimumMassSecondary + - Options::m_MinimumSampledSecondaryMass * - Description: - - Value of program option ``--minimum-secondary-mass`` + - Value of program option ``--minimum-sampled-secondary-mass`` * - Header String: - PO_Min_Secondary_Mass diff --git a/online-docs/pages/User guide/Program options/program-options-list-defaults.rst b/online-docs/pages/User guide/Program options/program-options-list-defaults.rst index 1605c40e4..a23d872f2 100644 --- a/online-docs/pages/User guide/Program options/program-options-list-defaults.rst +++ b/online-docs/pages/User guide/Program options/program-options-list-defaults.rst @@ -513,26 +513,26 @@ Default = Sampled from IMF **--initial-mass-2** |br| Initial mass for the secondary star when evolving in BSE mode (:math:`M_\odot`). |br| -Default = Sampled from the mass ratio distribution specified by ``--mass-ratio-distribution`` (see also ``--mass-ratio-max``, ``-mass-ratio-min``, ``--minimum-secondary-mass'') +Default = Sampled from the mass ratio distribution specified by ``--mass-ratio-distribution`` (see also ``--mass-ratio-max``, ``-mass-ratio-min``, ``--minimum-sampled-secondary-mass``) **--initial-mass-function [ -i ]** |br| Initial mass function. |br| Options: { SALPETER, POWERLAW, UNIFORM, KROUPA } |br| ``SALPETER`` and ``KROUPA`` use the IMFs of Salpeter 1955 and Kroupa 2001 |br| -``POWERLAW`` samples from a single power law with slope ``--initial-mass-power`` |br| -``UNIFORM`` samples uniformly between ``--initial-mass-min`` and ``--initial-mass-min`` |br| +``POWERLAW`` is a single power law with slope ``--initial-mass-function-power`` |br| +``UNIFORM`` is a uniform distribution between ``--initial-mass-function-min`` and ``--initial-mass-function-max`` |br| Default = KROUPA -**--initial-mass-max** |br| -Maximum mass to generate using given IMF (:math:`M_\odot`). |br| +**--initial-mass-function-max** |br| +The maximum mass (in Msol) to sample from the initial mass function (IMF), (only used when sampling initial mass) (:math:`M_\odot`). |br| Default = 150.0 -**--initial-mass-min** |br| -Minimum mass to generate using given IMF (:math:`M_\odot`). |br| +**--initial-mass-function-min** |br| +The minimum mass (in Msol) to sample from the initial mass function (IMF), (only used when sampling initial mass) (:math:`M_\odot`). |br| Default = 5.0 -**--initial-mass-power** |br| -Single power law power to generate primary mass using ``POWERLAW`` IMF. |br| +**--initial-mass-function-power** |br| +The power to use when using the ``POWERLAW`` IMF. |br| Default = 0.0 .. _options-props-J: @@ -950,9 +950,9 @@ Default = 0.03 Minimum metallicity to generate. |br| Default = 0.0001 -**--minimum-secondary-mass** |br| -Minimum mass of secondary to generate (:math:`M_\odot`). |br| -Defaults to 0.1 if ``--initial-mass-2`` is specified, otherwise value of ``--initial-mass-min``. +**--minimum-sampled-secondary-mass** |br| +Minimum mass value that can be sampled from the IMF when sampling the mass of the secondary star (:math:`M_\odot`). |br| +Default = 0.1 **--mode** |br| The mode of evolution. |br| @@ -1495,9 +1495,9 @@ Go to :ref:`the top of this page ` for the full alphabetical **Initial conditions** ---initial-mass-function, --initial-mass, --initial-mass-1, --initial-mass-2, --initial-mass-min, --initial-mass-max, --initial-mass-power +--initial-mass-function, --initial-mass, --initial-mass-1, --initial-mass-2, --initial-mass-function-min, --initial-mass-function-max, --initial-mass-power ---mass-ratio-distribution, --mass-ratio, --mass-ratio-min, --mass-ratio-max, --minimum-secondary-mass +--mass-ratio-distribution, --mass-ratio, --mass-ratio-min, --mass-ratio-max, --minimum-sampled-secondary-mass --eccentricity-distribution, --eccentricity, --eccentricity-min, --eccentricity-max diff --git a/online-docs/pages/whats-new.rst b/online-docs/pages/whats-new.rst index e6851271e..9ce9759ad 100644 --- a/online-docs/pages/whats-new.rst +++ b/online-docs/pages/whats-new.rst @@ -3,6 +3,20 @@ What's new 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``. +**03.22.02 August 08, 2025** + +* The following options are now deprecated, and will be removed in 1 year: + + * ``--initial-mass-min`` in favour of ``--initial-mass-function-min`` + * ``--initial-mass-max`` in favour of ``--initial-mass-function-max`` + * ``--initial-mass-power`` in favour of ``--initial-mass-function-power`` + * ``--minimum-mass-secondary`` in favour of ``--minimum-sampled-secondary-mass`` + +* The user supplied value for ``--minimum-sampled-secondary-mass`` now checked against the COMPAS values for minimum initial mass (0.00007 :math:`M_\odot`) and maximum initial mass (150.0 :math:`M_\odot`) +* The secondary mass (for BSE), whether input by user, sampled, or calculated from the primary mass and mass ratio, now checked against the COMPAS value for minimum initial mass (0.00007 :math:`M_\odot`) +* The default record types written to the SSE and BSE detailed output files now include only record types 1, 4, & 5 (INITIAL_STATE, TIMESTEP_COMPLETED, and FINAL_STATE) +* The default record types written to the SSE and BSE pulsar evolution files now includes only record type 3 ((Pulsar) TIMESTEP_COMPLETED) + **03.22.00 July 18, 2025** * Changed default values of --enhance-CHE-lifetimes-luminosities and --scale-CHE-mass-loss-with-surface-helium-abundance to true diff --git a/src/BaseBinaryStar.cpp b/src/BaseBinaryStar.cpp index 95571034e..36a81a2d5 100644 --- a/src/BaseBinaryStar.cpp +++ b/src/BaseBinaryStar.cpp @@ -28,10 +28,8 @@ BaseBinaryStar::BaseBinaryStar(const unsigned long int p_Seed, const long int p_ // check that the constituent stars are not touching // also check m2 > m2min - bool done = false; - bool merger = false; - bool rlof = false; - bool secondarySmallerThanMinimumMass = false; + bool done = false; + bool rlof = false; // determine if any if the initial conditions are sampled // we consider eccentricity distribution = ECCENTRICITY_DISTRIBUTION::ZERO to be not sampled! @@ -203,16 +201,15 @@ BaseBinaryStar::BaseBinaryStar(const unsigned long int p_Seed, const long int p_ m_Star1->SetCompanion(m_Star2); m_Star2->SetCompanion(m_Star1); - merger = (m_SemiMajorAxis * AU_TO_RSOL) < (m_Star1->Radius() + m_Star2->Radius()); - secondarySmallerThanMinimumMass = utils::Compare(mass2, OPTIONS->MinimumMassSecondary()) < 0; - // check whether our initial conditions are good // if they are - evolve the binary // if they are not ok: // - if we sampled at least one of them, sample again // - if all were user supplied, set error - Evolve() will show the error and return without evolving - bool ok = !((!OPTIONS->AllowRLOFAtBirth() && rlof) || (!OPTIONS->AllowTouchingAtBirth() && merger) || secondarySmallerThanMinimumMass); + bool ok = !((!OPTIONS->AllowRLOFAtBirth() && rlof) || // rolf? + (!OPTIONS->AllowTouchingAtBirth() && (m_SemiMajorAxis * AU_TO_RSOL) < (m_Star1->Radius() + m_Star2->Radius())) || // merger? + (utils::Compare(mass2, MINIMUM_INITIAL_MASS) < 0)); // M2 < minimum? done = ok; if (!sampled && !ok) { @@ -1836,8 +1833,7 @@ double BaseBinaryStar::CalculateGammaAngularMomentumLoss_Static(const double p_D double gamma; MT_ANGULAR_MOMENTUM_LOSS_PRESCRIPTION gammaPrescription = OPTIONS->MassTransferAngularMomentumLossPrescription(); - if(p_IsCommonEnvelope) - gammaPrescription = OPTIONS->CommonEnvelopeSecondStageGammaPrescription(); + if (p_IsCommonEnvelope) gammaPrescription = OPTIONS->CommonEnvelopeSecondStageGammaPrescription(); switch (gammaPrescription) { // which prescription? diff --git a/src/BaseBinaryStar.h b/src/BaseBinaryStar.h index 6abd175bc..d6a416351 100644 --- a/src/BaseBinaryStar.h +++ b/src/BaseBinaryStar.h @@ -564,7 +564,7 @@ class BaseBinaryStar { return LOGGING->LogCommonEnvelope(this, p_RecordType); } - bool PrintPulsarEvolutionParameters(const BSE_PULSAR_RECORD_TYPE p_RecordType = BSE_PULSAR_RECORD_TYPE::DEFAULT) const { + bool PrintPulsarEvolutionParameters(const BSE_PULSAR_RECORD_TYPE p_RecordType) const { return OPTIONS->EvolvePulsars() ? LOGGING->LogBSEPulsarEvolutionParameters(this, p_RecordType) : true; } diff --git a/src/BaseStar.h b/src/BaseStar.h index 2008b571b..c1dd4aea7 100644 --- a/src/BaseStar.h +++ b/src/BaseStar.h @@ -369,7 +369,7 @@ class BaseStar { return OPTIONS->DetailedOutput() ? LOGGING->LogSSEDetailedOutput(this, p_Id, p_RecordType) : true; // Write record to SSE Detailed Output log file } - bool PrintPulsarEvolutionParameters(const SSE_PULSAR_RECORD_TYPE p_RecordType = SSE_PULSAR_RECORD_TYPE::DEFAULT) const { + bool PrintPulsarEvolutionParameters(const SSE_PULSAR_RECORD_TYPE p_RecordType) const { return OPTIONS->EvolvePulsars() ? LOGGING->LogSSEPulsarEvolutionParameters(this, p_RecordType) : true; } diff --git a/src/LogTypedefs.h b/src/LogTypedefs.h index 2a976cf04..f8f327423 100644 --- a/src/LogTypedefs.h +++ b/src/LogTypedefs.h @@ -842,7 +842,7 @@ enum class PROGRAM_OPTION: int { INITIAL_MASS_FUNCTION, INITIAL_MASS_FUNCTION_MAX, INITIAL_MASS_FUNCTION_MIN, - INITIAL_MASS_FUNCTIONPOWER, + INITIAL_MASS_FUNCTION_POWER, KICK_DIRECTION_DISTRIBUTION, KICK_DIRECTION_POWER, @@ -891,7 +891,7 @@ enum class PROGRAM_OPTION: int { METALLICITY_DISTRIBUTION_MAX, METALLICITY_DISTRIBUTION_MIN, - MINIMUM_MASS_SECONDARY, + MINIMUM_SAMPLED_SECONDARY_MASS, MT_ACCRETION_EFFICIENCY_PRESCRIPTION, MT_ANG_MOM_LOSS_PRESCRIPTION, @@ -1070,7 +1070,7 @@ const COMPASUnorderedMap PROGRAM_OPTION_LABEL = { { PROGRAM_OPTION::INITIAL_MASS_FUNCTION, "INITIAL_MASS_FUNCTION" }, { PROGRAM_OPTION::INITIAL_MASS_FUNCTION_MAX, "INITIAL_MASS_FUNCTION_MAX" }, { PROGRAM_OPTION::INITIAL_MASS_FUNCTION_MIN, "INITIAL_MASS_FUNCTION_MIN" }, - { PROGRAM_OPTION::INITIAL_MASS_FUNCTIONPOWER, "INITIAL_MASS_FUNCTIONPOWER" }, + { PROGRAM_OPTION::INITIAL_MASS_FUNCTION_POWER, "INITIAL_MASS_FUNCTION_POWER" }, { PROGRAM_OPTION::KICK_DIRECTION_DISTRIBUTION, "KICK_DIRECTION_DISTRIBUTION" }, { PROGRAM_OPTION::KICK_DIRECTION_POWER, "KICK_DIRECTION_POWER" }, { PROGRAM_OPTION::KICK_SCALING_FACTOR, "KICK_SCALING_FACTOR" }, @@ -1118,7 +1118,7 @@ const COMPASUnorderedMap PROGRAM_OPTION_LABEL = { { PROGRAM_OPTION::METALLICITY_DISTRIBUTION_MAX, "METALLICITY_DISTRIBUTION_MAX" }, { PROGRAM_OPTION::METALLICITY_DISTRIBUTION_MIN, "METALLICITY_DISTRIBUTION_MIN" }, - { PROGRAM_OPTION::MINIMUM_MASS_SECONDARY, "MINIMUM_MASS_SECONDARY" }, + { PROGRAM_OPTION::MINIMUM_SAMPLED_SECONDARY_MASS, "MINIMUM_SAMPLED_SECONDARY_MASS" }, { PROGRAM_OPTION::MT_ACCRETION_EFFICIENCY_PRESCRIPTION, "MT_ACCRETION_EFFICIENCY_PRESCRIPTION" }, { PROGRAM_OPTION::MT_ANG_MOM_LOSS_PRESCRIPTION, "MT_ANG_MOM_LOSS_PRESCRIPTION" }, @@ -1648,7 +1648,7 @@ const std::map PROGRAM_OPTION_DETAIL = { { PROGRAM_OPTION::INITIAL_MASS_FUNCTION, { TYPENAME::INT, "PO_Initial_Mass_Function", "-", 4, 1 }}, { PROGRAM_OPTION::INITIAL_MASS_FUNCTION_MAX, { TYPENAME::DOUBLE, "PO_Initial_Mass_Func_Max", "Msol", 24, 15}}, { PROGRAM_OPTION::INITIAL_MASS_FUNCTION_MIN, { TYPENAME::DOUBLE, "PO_Initial_Mass_Func_Min", "Msol", 24, 15}}, - { PROGRAM_OPTION::INITIAL_MASS_FUNCTIONPOWER, { TYPENAME::DOUBLE, "PO_Initial_Mass_Func_Power", "-", 24, 15}}, + { PROGRAM_OPTION::INITIAL_MASS_FUNCTION_POWER, { TYPENAME::DOUBLE, "PO_Initial_Mass_Func_Power", "-", 24, 15}}, { PROGRAM_OPTION::KICK_DIRECTION_DISTRIBUTION, { TYPENAME::INT, "PO_Kick_Direction_Dstrbtn", "-", 4, 1 }}, { PROGRAM_OPTION::KICK_DIRECTION_POWER, { TYPENAME::DOUBLE, "PO_Kick_Direction_Power", "-", 24, 15}}, @@ -1698,7 +1698,7 @@ const std::map PROGRAM_OPTION_DETAIL = { { PROGRAM_OPTION::METALLICITY_DISTRIBUTION_MAX, { TYPENAME::DOUBLE, "PO_Metallicity_Dstrbtn_Max", "-", 24, 15}}, { PROGRAM_OPTION::METALLICITY_DISTRIBUTION_MIN, { TYPENAME::DOUBLE, "PO_Metallicity_Dstrbtn_Min", "-", 24, 15}}, - { PROGRAM_OPTION::MINIMUM_MASS_SECONDARY, { TYPENAME::DOUBLE, "PO_Min_Secondary_Mass", "Msol", 24, 15}}, + { PROGRAM_OPTION::MINIMUM_SAMPLED_SECONDARY_MASS, { TYPENAME::DOUBLE, "PO_Min_Sampled_Secondary_Mass", "Msol", 24, 15}}, { PROGRAM_OPTION::MT_ACCRETION_EFFICIENCY_PRESCRIPTION, { TYPENAME::INT, "PO_MT_Acc_Efficiency_Prscrptn", "-", 4, 1 }}, { PROGRAM_OPTION::MT_ANG_MOM_LOSS_PRESCRIPTION, { TYPENAME::INT, "PO_MT_AngMom_Loss_Prscrptn", "-", 4, 1 }}, @@ -1848,7 +1848,7 @@ enum class DCO_RECORD_TYPE: unsigned int { }; enum class BSE_PULSAR_RECORD_TYPE: unsigned int { // BSE_PULSAR_EVOLUTION file record type - DEFAULT = 1, // 1 - default BSE_PULSAR_EVOLUTION file record type + PRE_SN = 1, // 1 - record was logged immediately prior to a supernova event POST_SN, // 2 - record was logged immediately following a supernova event POST_BINARY_TIMESTEP // 3 - record was logged immediately following binary timestep (i.e. the evolution of the binary system for a single timestep) }; @@ -1885,7 +1885,7 @@ enum class SSE_DETAILED_RECORD_TYPE: unsigned int { }; enum class SSE_PULSAR_RECORD_TYPE: unsigned int { // SSE_PULSAR_EVOLUTION file record type - DEFAULT = 1, // 1 - default SSE_PULSAR_EVOLUTION file record type + PRE_SN = 1, // 1 - record was logged immediately prior to a supernova event POST_SN, // 2 - record was logged immediately following a supernova event TIMESTEP_COMPLETED // 3 - record was logged immediately following the completion of the timestep (after all changes to the star) }; diff --git a/src/Options.cpp b/src/Options.cpp index 65e7766c7..8a2946889 100644 --- a/src/Options.cpp +++ b/src/Options.cpp @@ -271,7 +271,7 @@ void Options::OptionValues::Initialise() { m_MassRatioDistributionMin = 0.01; m_MassRatioDistributionMax = 1.0; - m_MinimumMassSecondary = 0.1; + m_MinimumSampledSecondaryMass = 0.1; // Initial orbit options @@ -653,11 +653,11 @@ void Options::OptionValues::Initialise() { m_LogfileCommonEnvelopes = std::get<0>(LOGFILE_DESCRIPTOR.at(LOGFILE::BSE_COMMON_ENVELOPES)); m_LogfileCommonEnvelopesRecordTypes = -1; // all record types m_LogfileDetailedOutput = std::get<0>(LOGFILE_DESCRIPTOR.at(LOGFILE::BSE_DETAILED_OUTPUT)); // assume BSE - get real answer when we know mode - m_LogfileDetailedOutputRecordTypes = -1; // all record types + m_LogfileDetailedOutputRecordTypes = 25; // record types 1, 4, & 5 (INITIAL_STATE, TIMESTEP_COMPLETED, and FINAL_STATE) m_LogfileDoubleCompactObjects = std::get<0>(LOGFILE_DESCRIPTOR.at(LOGFILE::BSE_DOUBLE_COMPACT_OBJECTS)); m_LogfileDoubleCompactObjectsRecordTypes = -1; // all record types m_LogfilePulsarEvolution = std::get<0>(LOGFILE_DESCRIPTOR.at(LOGFILE::BSE_PULSAR_EVOLUTION)); // only BSE for now - m_LogfilePulsarEvolutionRecordTypes = -1; // all record types + m_LogfilePulsarEvolutionRecordTypes = 4; // record type 3 ((pulsar) TIMESTEP_COMPLETED) m_LogfileRLOFParameters = std::get<0>(LOGFILE_DESCRIPTOR.at(LOGFILE::BSE_RLOF_PARAMETERS)); m_LogfileRLOFParametersRecordTypes = -1; // all record types m_LogfileSupernovae = std::get<0>(LOGFILE_DESCRIPTOR.at(LOGFILE::BSE_SUPERNOVAE)); // assume BSE - get real answer when we know mode @@ -1332,19 +1332,19 @@ bool Options::AddOptions(OptionValues *p_Options, po::options_description *p_Opt ("Initial mass (in Msol) for the secondary star (BSE) (default = " + std::to_string(p_Options->m_InitialMass2) + ")").c_str() ) ( - "initial-mass-max", + "initial-mass-function-max", po::value(&p_Options->m_InitialMassFunctionMax)->default_value(p_Options->m_InitialMassFunctionMax), - ("Maximum mass (in Msol) to generate using given IMF (default = " + std::to_string(p_Options->m_InitialMassFunctionMax) + ")").c_str() + ("The maximum mass (in Msol) to sample from the initial mass function (IMF), (only used when sampling initial mass, default = " + std::to_string(p_Options->m_InitialMassFunctionMax) + ")").c_str() ) ( - "initial-mass-min", + "initial-mass-function-min", po::value(&p_Options->m_InitialMassFunctionMin)->default_value(p_Options->m_InitialMassFunctionMin), - ("Minimum mass (in Msol) to generate using given IMF (default = " + std::to_string(p_Options->m_InitialMassFunctionMin) + ")").c_str() + ("The minimum mass (in Msol) to sample from the initial mass function (IMF), (only used when sampling initial mass, default = " + std::to_string(p_Options->m_InitialMassFunctionMin) + ")").c_str() ) ( - "initial-mass-power", + "initial-mass-function-power", po::value(&p_Options->m_InitialMassFunctionPower)->default_value(p_Options->m_InitialMassFunctionPower), - ("Single power law power to generate primary mass using POWERLAW IMF (default = " + std::to_string(p_Options->m_InitialMassFunctionPower) + ")").c_str() + ("The power to use when using the POWERLAW IMF (default = " + std::to_string(p_Options->m_InitialMassFunctionPower) + ")").c_str() ) ( @@ -1537,9 +1537,9 @@ bool Options::AddOptions(OptionValues *p_Options, po::options_description *p_Opt ("Minimum metallicity to generate (default = " + std::to_string(p_Options->m_MetallicityDistributionMin) + ")").c_str() ) ( - "minimum-secondary-mass", - po::value(&p_Options->m_MinimumMassSecondary)->default_value(p_Options->m_MinimumMassSecondary), - ("Minimum mass of secondary to generate, in Msol (default = " + std::to_string(p_Options->m_MinimumMassSecondary) + ")").c_str() + "minimum-sampled-secondary-mass", + po::value(&p_Options->m_MinimumSampledSecondaryMass)->default_value(p_Options->m_MinimumSampledSecondaryMass), + ("Minimum sampled mass of secondary star, in Msol (default = " + std::to_string(p_Options->m_MinimumSampledSecondaryMass) + ")").c_str() ) ( "muller-mandel-kick-multiplier-BH", @@ -2571,13 +2571,13 @@ std::string Options::OptionValues::CheckAndSetOptions() { COMPLAIN_IF(m_HDF5BufferSize < 1, "HDF5 IO buffer size (--hdf5-buffer-size) must be >= 1"); COMPLAIN_IF(m_HDF5ChunkSize < HDF5_MINIMUM_CHUNK_SIZE, "HDF5 file dataset chunk size (--hdf5-chunk-size) must be >= minimum chunk size of " + std::to_string(HDF5_MINIMUM_CHUNK_SIZE)); - COMPLAIN_IF(m_InitialMass < MINIMUM_INITIAL_MASS || m_InitialMass > MAXIMUM_INITIAL_MASS, "Initial mass (--initial-mass) must be between " + std::to_string(MINIMUM_INITIAL_MASS) + " and " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); + COMPLAIN_IF(m_InitialMass < MINIMUM_INITIAL_MASS || m_InitialMass > MAXIMUM_INITIAL_MASS, "Initial mass (--initial-mass) must be between " + std::to_string(MINIMUM_INITIAL_MASS) + " and " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); COMPLAIN_IF(m_InitialMass1 < MINIMUM_INITIAL_MASS || m_InitialMass1 > MAXIMUM_INITIAL_MASS, "Primary initial mass (--initial-mass-1) must be between " + std::to_string(MINIMUM_INITIAL_MASS) + " and " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); COMPLAIN_IF(m_InitialMass2 < MINIMUM_INITIAL_MASS || m_InitialMass2 > MAXIMUM_INITIAL_MASS, "Secondary initial mass (--initial-mass-2) must be between " + std::to_string(MINIMUM_INITIAL_MASS) + " and " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); - COMPLAIN_IF(m_InitialMassFunctionMin < MINIMUM_INITIAL_MASS, "Minimum initial mass (--initial-mass-min) must be >= " + std::to_string(MINIMUM_INITIAL_MASS) + " Msol"); - COMPLAIN_IF(m_InitialMassFunctionMax > MAXIMUM_INITIAL_MASS, "Maximum initial mass (--initial-mass-max) must be <= " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); - COMPLAIN_IF(m_InitialMassFunctionMax <= m_InitialMassFunctionMin, "Maximum initial mass (--initial-mass-max) must be > Minimum initial mass (--initial-mass-min)"); + COMPLAIN_IF(m_InitialMassFunctionMin < MINIMUM_INITIAL_MASS, "Minimum mass to be sampled from the IMF (--initial-mass-function-min) must be >= " + std::to_string(MINIMUM_INITIAL_MASS) + " Msol"); + COMPLAIN_IF(m_InitialMassFunctionMax > MAXIMUM_INITIAL_MASS, "Maximum mass to be sampled from the IMF (--initial-mass-function-max) must be <= " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); + COMPLAIN_IF(m_InitialMassFunctionMax <= m_InitialMassFunctionMin, "Maximum mass to be sampled from the IMF (--initial-mass-function-max) must be > Minimum mass to be sampled from the IMF (--initial-mass-function-min)"); if (m_KickMagnitudeDistribution.type == KICK_MAGNITUDE_DISTRIBUTION::FLAT) { COMPLAIN_IF(m_KickMagnitudeDistributionMaximum <= 0.0, "User specified --kick-magnitude-distribution = FLAT with Maximum kick magnitude (--kick-magnitude-max) <= 0.0"); @@ -2603,8 +2603,8 @@ std::string Options::OptionValues::CheckAndSetOptions() { COMPLAIN_IF(m_MetallicityDistributionMax < MINIMUM_METALLICITY || m_MetallicityDistributionMax > MAXIMUM_METALLICITY, "Maximum metallicity (--metallicity-max) must be between " + std::to_string(MINIMUM_METALLICITY) + " and " + std::to_string(MAXIMUM_METALLICITY)); COMPLAIN_IF(m_MetallicityDistributionMax <= m_MetallicityDistributionMin, "Maximum metallicity (--metallicity-max) must be > Minimum metallicity (--metallicity-min)"); - COMPLAIN_IF(m_MinimumMassSecondary < MINIMUM_INITIAL_MASS, "Secondary minimum mass (--minimum-secondary-mass) must be >= minimum initial mass of " + std::to_string(MINIMUM_INITIAL_MASS) + " Msol"); - COMPLAIN_IF(m_MinimumMassSecondary > MAXIMUM_INITIAL_MASS, "Secondary minimum mass (--minimum-secondary-mass) must be <= maximum initial mass of " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); + COMPLAIN_IF(m_MinimumSampledSecondaryMass < MINIMUM_INITIAL_MASS, "Minimum sampled secondary mass (--minimum-sampled-secondary-mass) must be >= " + std::to_string(MINIMUM_INITIAL_MASS) + " Msol"); + COMPLAIN_IF(m_MinimumSampledSecondaryMass > MAXIMUM_INITIAL_MASS, "Minimum sampled secondary mass (--minimum-sampled-secondary-mass) must be <= " + std::to_string(MAXIMUM_INITIAL_MASS) + " Msol"); if (m_NeutrinoMassLossAssumptionBH.type == NEUTRINO_MASS_LOSS_PRESCRIPTION::FIXED_MASS) { COMPLAIN_IF(m_NeutrinoMassLossValueBH < 0.0, "Neutrino mass loss value < 0"); @@ -2670,10 +2670,6 @@ std::string Options::OptionValues::CheckAndSetOptions() { COMPLAIN_IF(m_WolfRayetFactor < 0.0, "WR multiplier (--wolf-rayet-multiplier) < 0"); - COMPLAIN_IF(!DEFAULTED("initial-mass") && m_InitialMass <= 0.0, "Initial mass (--initial-mass) <= 0"); // initial mass must be > 0.0 - COMPLAIN_IF(!DEFAULTED("initial-mass-1") && m_InitialMass1 <= 0.0, "Primary initial mass (--initial-mass-1) <= 0"); // primary initial mass must be > 0.0 - COMPLAIN_IF(!DEFAULTED("initial-mass-2") && m_InitialMass2 <= 0.0, "Secondary initial mass (--initial-mass-2) <= 0"); // secondary initial mass must be > 0.0 - COMPLAIN_IF(!DEFAULTED("semi-major-axis") && m_SemiMajorAxis <= 0.0, "Semi-major axis (--semi-major-axis) <= 0"); // semi-major axis must be > 0.0 COMPLAIN_IF(!DEFAULTED("orbital-period") && m_OrbitalPeriod <= 0.0, "Orbital period (--orbital-period) <= 0"); // orbital period must be > 0.0 @@ -4954,7 +4950,7 @@ COMPAS_VARIABLE Options::OptionValue(const T_ANY_PROPERTY p_Property) const { case PROGRAM_OPTION::INITIAL_MASS_FUNCTION : value = static_cast(InitialMassFunction()); break; case PROGRAM_OPTION::INITIAL_MASS_FUNCTION_MAX : value = InitialMassFunctionMax(); break; case PROGRAM_OPTION::INITIAL_MASS_FUNCTION_MIN : value = InitialMassFunctionMin(); break; - case PROGRAM_OPTION::INITIAL_MASS_FUNCTIONPOWER : value = InitialMassFunctionPower(); break; + case PROGRAM_OPTION::INITIAL_MASS_FUNCTION_POWER : value = InitialMassFunctionPower(); break; case PROGRAM_OPTION::KICK_DIRECTION_DISTRIBUTION : value = static_cast(KickDirectionDistribution()); break; case PROGRAM_OPTION::KICK_DIRECTION_POWER : value = KickDirectionPower(); break; @@ -5004,7 +5000,7 @@ COMPAS_VARIABLE Options::OptionValue(const T_ANY_PROPERTY p_Property) const { case PROGRAM_OPTION::METALLICITY_DISTRIBUTION_MAX : value = MetallicityDistributionMax(); break; case PROGRAM_OPTION::METALLICITY_DISTRIBUTION_MIN : value = MetallicityDistributionMin(); break; - case PROGRAM_OPTION::MINIMUM_MASS_SECONDARY : value = MinimumMassSecondary(); break; + case PROGRAM_OPTION::MINIMUM_SAMPLED_SECONDARY_MASS : value = MinimumSampledSecondaryMass(); break; case PROGRAM_OPTION::MT_ACCRETION_EFFICIENCY_PRESCRIPTION : value = static_cast(MassTransferAccretionEfficiencyPrescription()); break; case PROGRAM_OPTION::MT_ANG_MOM_LOSS_PRESCRIPTION : value = static_cast(MassTransferAngularMomentumLossPrescription()); break; diff --git a/src/Options.h b/src/Options.h index 57e24aae7..a53fbb669 100755 --- a/src/Options.h +++ b/src/Options.h @@ -224,7 +224,11 @@ class Options { // deprecation date. Datestring format is yyyymmdd (e.g.20251107 indicates November 07, 2025). std::vector> deprecatedOptionStrings = { - { "retain-core-mass-during-caseA-mass-transfer", "", false, "20250116" } + { "retain-core-mass-during-caseA-mass-transfer", "", false, "20250116" }, + { "minimum-secondary-mass", "minimum-sampled-secondary-mass", false, "20250808" }, + { "initial-mass-max", "initial-mass-function-max", false, "20250808" }, + { "initial-mass-min", "initial-mass-function-min", false, "20250808" }, + { "initial-mass-power", "initial-mass-function-power", false, "20250808" } }; std::vector> deprecatedOptionValues = { @@ -516,7 +520,7 @@ class Options { "mass-transfer-thermal-limit-accretor-multiplier", "mass-transfer-thermal-limit-C", "maximum-mass-donor-nandez-ivanova", - "minimum-secondary-mass", + "minimum-sampled-secondary-mass", "neutron-star-accretion-in-ce", @@ -889,7 +893,7 @@ class Options { double m_MassRatioDistributionMin; // Minimum initial mass ratio when using a distribution double m_MassRatioDistributionMax; // Maximum initial mass ratio when using a distribution - double m_MinimumMassSecondary; // Minimum mass of secondary to draw (in Msol) + double m_MinimumSampledSecondaryMass; // Minimum mass of secondary to draw when sampling (in Msol) // Semi major axis double m_SemiMajorAxis; // Semi-major axis @@ -1477,9 +1481,9 @@ class Options { double InitialMass2() const { return OPT_VALUE("initial-mass-2", m_InitialMass2, true); } INITIAL_MASS_FUNCTION InitialMassFunction() const { return OPT_VALUE("initial-mass-function", m_InitialMassFunction.type, true); } - double InitialMassFunctionMax() const { return OPT_VALUE("initial-mass-max", m_InitialMassFunctionMax, true); } - double InitialMassFunctionMin() const { return OPT_VALUE("initial-mass-min", m_InitialMassFunctionMin, true); } - double InitialMassFunctionPower() const { return OPT_VALUE("initial-mass-power", m_InitialMassFunctionPower, true); } + double InitialMassFunctionMax() const { return OPT_VALUE("initial-mass-function-max", m_InitialMassFunctionMax, true); } + double InitialMassFunctionMin() const { return OPT_VALUE("initial-mass-function-min", m_InitialMassFunctionMin, true); } + double InitialMassFunctionPower() const { return OPT_VALUE("initial-mass-function-power", m_InitialMassFunctionPower, true); } KICK_DIRECTION_DISTRIBUTION KickDirectionDistribution() const { return OPT_VALUE("kick-direction-distribution", m_KickDirectionDistribution.type, true); } double KickDirectionPower() const { return OPT_VALUE("kick-direction-power", m_KickDirectionPower, true); } @@ -1616,7 +1620,7 @@ class Options { double MetallicityDistributionMax() const { return OPT_VALUE("metallicity-distribution-max", m_MetallicityDistributionMax, true); } double MetallicityDistributionMin() const { return OPT_VALUE("metallicity-distribution-min", m_MetallicityDistributionMin, true); } - double MinimumMassSecondary() const { return OPT_VALUE("minimum-secondary-mass", m_MinimumMassSecondary, true); } + double MinimumSampledSecondaryMass() const { return OPT_VALUE("minimum-sampled-secondary-mass", m_MinimumSampledSecondaryMass, true); } double MullerMandelKickMultiplierBH() const { return OPT_VALUE("muller-mandel-kick-multiplier-BH", m_MullerMandelKickBH, true); } double MullerMandelKickMultiplierNS() const { return OPT_VALUE("muller-mandel-kick-multiplier-NS", m_MullerMandelKickNS, true); } diff --git a/src/changelog.h b/src/changelog.h index d028c6785..983f9e3cb 100644 --- a/src/changelog.h +++ b/src/changelog.h @@ -1611,9 +1611,32 @@ // - 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 // - Fixed random draws of SN kicks to avoid artificial pile-up at boundaries of distribution // - Split --muller-mandel-sigma-kick into --muller-mandel-sigma-kick-NS and --muller-mandel-sigma-kick-BH -// 03.22.01 IM - July 20, 2025 - Defect repair +// 03.22.01 IM - July 20, 2025 - Defect repair: // - Fixed random kick draw for MULLERMANDEL prescription - +// 03.22.02 JR - August 08, 2025 - Defect repair/enhancement (~cleanups for consistency): +// - Changes for issue 1413: +// - Deprecated options +// . "--minimum-mass-secondary" in favour of "--minimum-sampled-secondary-mass" +// . "--initial-mass-min" in favour of "--initial-mass-function-min" +// . "--initial-mass-max" in favour of "--initial-mass-function-max" +// . "--initial-mass-power" in favour of "--initial-mass-function-power" +// - Default value for "--initial-mass-min" remains at 5.0 Msol +// - Default value for "--initial-mass-max" remains at 150.0 Msol +// - Default value for "--initial-mass-function-power" remains at 0.0 +// - Default value for "--minimum-sampled-secondary-mass" remains at 0.1 Msol +// - User supplied value for "--minimum-sampled-secondary-mass" checked against values of constants MINIMUM_INITIAL_MASS and MINIMUM_INITIAL_MASS +// - Secondary mass, whether input by user, sampled, or calculated from M1 & q, checked against constant MINIMUM-INITIAL-MASS +// - Online docs "program-options-list-defaults" and "standard-logfiles-record-specification-optios" pages updated +// - Whatsnew page updated +// - Changes for issue 1414: +// - Changed [SSE/BSE]_PULSAR_RECORDTYPE::DEFAULT to [SSE/BSE]_PULSAR_RECORDTYPE::PRE_SN +// - don't want DEFAULT anymore, but wanted to preserve numbering. Neither PRE_SN nor POST_SN are currently used (POST_SN was), so we could renamd them one day. +// - Removed default parameter from BaseStar::PrintPulsarEvolutionParameters() and BaseBinaryStar::PrintPulsarEvolutionParameters() +// - Changed default record types for: +// - SSE and BSE detailed output files to include only record types 1, 4, & 5 (INITIAL_STATE, TIMESTEP_COMPLETED, and FINAL_STATE) +// - SSE and BSE pulsar evolution files to include only record type 3 ((pulsar) TIMESTEP_COMPLETED) +// +// // Version string format is MM.mm.rr, where // // MM is the MAJOR release number: this should be incremented whenever major new functionality is introduced @@ -1623,7 +1646,7 @@ // if MM is incremented, set mm and rr to 00, even if defect repairs and minor enhancements were also made // if mm is incremented, set rr to 00, even if defect repairs were also made -const std::string VERSION_STRING = "03.22.01"; +const std::string VERSION_STRING = "03.22.02"; # endif // __changelog_h__ diff --git a/src/constants.h b/src/constants.h index 996ef2dfd..d1dd53775 100755 --- a/src/constants.h +++ b/src/constants.h @@ -259,8 +259,6 @@ constexpr double MAXIMUM_MASS_LOSS_FRACTION = 0.001; constexpr double MAXIMUM_RADIAL_CHANGE = 0.1; // Maximum allowable radial change - 10% (of radius) expressed as a fraction constexpr double MAXIMUM_WIND_MASS_LOSS_RATE = 0.1; // Maximum wind mass loss rates (in solar masses per year) to avoid convergence issues -constexpr double MINIMUM_MASS_SECONDARY = 4.0; // Minimum mass of secondary to evolve - constexpr double LAMBDA_NANJING_ZLIMIT = 0.0105; // Metallicity cutoff for Nanjing lambda calculations constexpr double LAMBDA_NANJING_POPI_Z = 0.02; // Population I metallicity in Xu & Li (2010) constexpr double LAMBDA_NANJING_POPII_Z = 0.001; // Population II metallicity in Xu & Li (2010) @@ -322,9 +320,9 @@ const std::string DEFAULT_HDF5_FILE_NAME = "COMPAS_Output"; const std::string DETAILED_OUTPUT_DIRECTORY_NAME = "Detailed_Output"; // Name for detailed output directory within output container const std::string RUN_DETAILS_FILE_NAME = "Run_Details"; // Name for run details output file within output container -constexpr int HDF5_DEFAULT_CHUNK_SIZE = 100000; // default HDF5 chunk size (number of dataset entries) -constexpr int HDF5_DEFAULT_IO_BUFFER_SIZE = 1; // number of HDF5 chunks to buffer for IO (per open dataset) -constexpr int HDF5_MINIMUM_CHUNK_SIZE = 1000; // minimum HDF5 chunk size (number of dataset entries) +constexpr int HDF5_DEFAULT_CHUNK_SIZE = 100000; // Default HDF5 chunk size (number of dataset entries) +constexpr int HDF5_DEFAULT_IO_BUFFER_SIZE = 1; // Number of HDF5 chunks to buffer for IO (per open dataset) +constexpr int HDF5_MINIMUM_CHUNK_SIZE = 1000; // Minimum HDF5 chunk size (number of dataset entries) // option constraints // Use these constant to specify constraints that should be applied to program option values diff --git a/src/yaml.h b/src/yaml.h index 8479e4eb7..9b41784c6 100644 --- a/src/yaml.h +++ b/src/yaml.h @@ -162,9 +162,9 @@ namespace yaml { " ### STELLAR PROPERTIES", " --cool-wind-mass-loss-multiplier", " --initial-mass # initial mass for SSE", - " --initial-mass-min # use 5.0 for DCOs [Msol]", - " --initial-mass-max # stellar tracks extrapolated above 50 Msol (Hurley+2000) [Msol]", - " --initial-mass-power", + " --initial-mass-function-min # use 5.0 for DCOs [Msol]", + " --initial-mass-function-max # stellar tracks extrapolated above 50 Msol (Hurley+2000) [Msol]", + " --initial-mass-function-power", " --luminosity-to-mass-threshold", " --metallicity # metallicity for both SSE and BSE - Solar metallicity Asplund+2010", " --metallicity-min", @@ -187,7 +187,7 @@ namespace yaml { " --mass-ratio", " --mass-ratio-min", " --mass-ratio-max", - " --minimum-secondary-mass # Brown dwarf limit [Msol]", + " --minimum-sampled-secondary-mass # Brown dwarf limit [Msol]", " --orbital-period # orbital period for BSE", " --orbital-period-min # [days]", " --orbital-period-max # [days]", From ba082c97c351eea2c3dd8be890b1fa15cdc058d7 Mon Sep 17 00:00:00 2001 From: Jeff Riley Date: Fri, 8 Aug 2025 16:21:15 +1000 Subject: [PATCH 2/5] typo fix --- src/changelog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/changelog.h b/src/changelog.h index 983f9e3cb..610de75ad 100644 --- a/src/changelog.h +++ b/src/changelog.h @@ -1630,7 +1630,7 @@ // - Whatsnew page updated // - Changes for issue 1414: // - Changed [SSE/BSE]_PULSAR_RECORDTYPE::DEFAULT to [SSE/BSE]_PULSAR_RECORDTYPE::PRE_SN -// - don't want DEFAULT anymore, but wanted to preserve numbering. Neither PRE_SN nor POST_SN are currently used (POST_SN was), so we could renamd them one day. +// - don't want DEFAULT anymore, but wanted to preserve numbering. Neither PRE_SN nor POST_SN are currently used (POST_SN was), so we could rename them one day. // - Removed default parameter from BaseStar::PrintPulsarEvolutionParameters() and BaseBinaryStar::PrintPulsarEvolutionParameters() // - Changed default record types for: // - SSE and BSE detailed output files to include only record types 1, 4, & 5 (INITIAL_STATE, TIMESTEP_COMPLETED, and FINAL_STATE) From a29f37e3d44443500dc0d9cbc85b5ce6dc4bff4f Mon Sep 17 00:00:00 2001 From: Jeff Riley Date: Fri, 8 Aug 2025 16:22:02 +1000 Subject: [PATCH 3/5] another typo fix --- src/changelog.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/changelog.h b/src/changelog.h index 610de75ad..cba218b32 100644 --- a/src/changelog.h +++ b/src/changelog.h @@ -1626,7 +1626,7 @@ // - Default value for "--minimum-sampled-secondary-mass" remains at 0.1 Msol // - User supplied value for "--minimum-sampled-secondary-mass" checked against values of constants MINIMUM_INITIAL_MASS and MINIMUM_INITIAL_MASS // - Secondary mass, whether input by user, sampled, or calculated from M1 & q, checked against constant MINIMUM-INITIAL-MASS -// - Online docs "program-options-list-defaults" and "standard-logfiles-record-specification-optios" pages updated +// - Online docs "program-options-list-defaults" and "standard-logfiles-record-specification-options" pages updated // - Whatsnew page updated // - Changes for issue 1414: // - Changed [SSE/BSE]_PULSAR_RECORDTYPE::DEFAULT to [SSE/BSE]_PULSAR_RECORDTYPE::PRE_SN From 27d309885237009f8496867a3021d8b4cfe9ab60 Mon Sep 17 00:00:00 2001 From: Jeff Riley Date: Fri, 8 Aug 2025 16:47:52 +1000 Subject: [PATCH 4/5] typos fixed in changelog --- src/changelog.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/changelog.h b/src/changelog.h index cba218b32..1f83e2ea5 100644 --- a/src/changelog.h +++ b/src/changelog.h @@ -1620,8 +1620,8 @@ // . "--initial-mass-min" in favour of "--initial-mass-function-min" // . "--initial-mass-max" in favour of "--initial-mass-function-max" // . "--initial-mass-power" in favour of "--initial-mass-function-power" -// - Default value for "--initial-mass-min" remains at 5.0 Msol -// - Default value for "--initial-mass-max" remains at 150.0 Msol +// - Default value for "--initial-mass-function-min" remains at 5.0 Msol +// - Default value for "--initial-mass-function-max" remains at 150.0 Msol // - Default value for "--initial-mass-function-power" remains at 0.0 // - Default value for "--minimum-sampled-secondary-mass" remains at 0.1 Msol // - User supplied value for "--minimum-sampled-secondary-mass" checked against values of constants MINIMUM_INITIAL_MASS and MINIMUM_INITIAL_MASS From 90e1c00a94ac5742011f86866558d77c7a8312bb Mon Sep 17 00:00:00 2001 From: Jeff Riley Date: Fri, 8 Aug 2025 19:57:35 +1000 Subject: [PATCH 5/5] Changes to program option defaults for record type (issue 1414) --- .../Program options/program-options-list-defaults.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/online-docs/pages/User guide/Program options/program-options-list-defaults.rst b/online-docs/pages/User guide/Program options/program-options-list-defaults.rst index a23d872f2..48514ee94 100644 --- a/online-docs/pages/User guide/Program options/program-options-list-defaults.rst +++ b/online-docs/pages/User guide/Program options/program-options-list-defaults.rst @@ -718,7 +718,7 @@ Default = ’SSE_Detailed_Output’ for SSE mode; ’BSE_Detailed_Output’ for **--logfile-detailed-output-record-types** |br| Enabled record types for the BSE/SSE Detailed Output logfile. |br| -Default = -1 (all record types) |br| +Default = 25 (record types 1, 4, and 5 (INITIAL_STATE, TIMESTEP_COMPLETED, and FINAL_STATE)) |br| **--logfile-double-compact-objects** |br| Filename for the Double Compact Objects logfile (BSE mode). |br| @@ -737,8 +737,8 @@ Filename for the Pulsar Evolution logfile (BSE mode). |br| Default = ’BSE_Pulsar_Evolution’ **--logfile-pulsar-evolution-record-types** |br| -Enabled record types for the Pulsar Evolution logfile (BSE mode). |br| -Default = -1 (all record types) |br| +Enabled record types for the BSE/SSE Pulsar Evolution logfile. |br| +Default = 4 (record types 3 ((Pulsar) TIMESTEP_COMPLETED)) |br| **--logfile-rlof-parameters** |br| Filename for the RLOF Printing logfile (BSE mode). |br|