Skip to content

Commit 39a1257

Browse files
authored
Merge pull request #581 from TeamCOMPAS/RenameDefaults
Moving defaults to Options.cpp
2 parents f94eaf1 + 7833145 commit 39a1257

File tree

7 files changed

+41
-37
lines changed

7 files changed

+41
-37
lines changed

docs/COMPAS_LaTeX/sections/Appendices/ProgramOptions.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ \section{Program Options}\label{sec:ProgramOptionsAppendix}
9999

100100
\programOption{initial-mass-min}{}{Minimum mass to generate using given IMF~(\Msun).}{8.0}
101101

102-
\programOption{initial-mass-power}{}{Single power law power to generate primary mass using given IMF.}{\minus{2.3}}
102+
\programOption{initial-mass-power}{}{Single power law power to generate primary mass using POWERLAW IMF.}{\minus{2.3}}
103103

104104
\programOption{kick-direction}{}{Natal kick direction distribution. \\ Options: \lcb\ ISOTROPIC, INPLANE, PERPENDICULAR, POWERLAW, WEDGE, POLES\ \rcb}{ISOTROPIC}
105105

examples/methods_paper_plots/detailed_evolution/pythonSubmitDemo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,14 @@ class pythonProgramOptions:
144144
envelope_state_prescription = 'LEGACY'
145145

146146
mass_loss_prescription = 'VINK'
147-
luminous_blue_variable_prescription = 'BELCZYNSKI'
147+
luminous_blue_variable_prescription = 'HURLEY_ADD'
148148
luminous_blue_variable_multiplier = 1.5
149149
overall_wind_mass_loss_multiplier = 1.0
150150
wolf_rayet_multiplier = 1.0
151151
cool_wind_mass_loss_multiplier = 1.0
152152
check_photon_tiring_limit = False
153153

154-
circularise_binary_during_mass_transfer = False
154+
circularise_binary_during_mass_transfer = True
155155
angular_momentum_conservation_during_circularisation = False
156156
mass_transfer_angular_momentum_loss_prescription = 'ISOTROPIC'
157157
mass_transfer_accretion_efficiency_prescription = 'THERMAL'

preProcessing/pythonSubmit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ class pythonProgramOptions:
143143
cool_wind_mass_loss_multiplier = 1.0
144144
check_photon_tiring_limit = False
145145

146-
circularise_binary_during_mass_transfer = False
146+
circularise_binary_during_mass_transfer = True
147147
angular_momentum_conservation_during_circularisation = False
148148
mass_transfer_angular_momentum_loss_prescription = 'ISOTROPIC'
149149
mass_transfer_accretion_efficiency_prescription = 'THERMAL'

src/Options.cpp

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ void Options::OptionValues::Initialise() {
128128

129129
// flags
130130

131-
m_AllowRLOFAtBirth = false;
131+
m_AllowRLOFAtBirth = true;
132132
m_AllowTouchingAtBirth = false;
133133

134134
m_DebugToFile = false;
@@ -144,7 +144,7 @@ void Options::OptionValues::Initialise() {
144144
m_PopulationDataPrinting = false;
145145
m_PrintBoolAsString = false;
146146
m_Quiet = false;
147-
m_RlofPrinting = false;
147+
m_RlofPrinting = true;
148148

149149
m_ShortHelp = true;
150150

@@ -158,7 +158,7 @@ void Options::OptionValues::Initialise() {
158158
// Population synthesis variables
159159
m_ObjectsToEvolve = 10;
160160

161-
m_FixedRandomSeed = false; // TRUE if --random-seed is passed on command line
161+
m_FixedRandomSeed = false;
162162
m_RandomSeed = 0;
163163

164164
// Specify how long to evolve for
@@ -173,27 +173,27 @@ void Options::OptionValues::Initialise() {
173173

174174
m_InitialMassFunction.type = INITIAL_MASS_FUNCTION::KROUPA;
175175
m_InitialMassFunction.typeString = INITIAL_MASS_FUNCTION_LABEL.at(m_InitialMassFunction.type);
176-
m_InitialMassFunctionMin = 8.0;
177-
m_InitialMassFunctionMax = 100.0;
178-
m_InitialMassFunctionPower = -2.3;
176+
m_InitialMassFunctionMin = 5.0;
177+
m_InitialMassFunctionMax = 150.0;
178+
m_InitialMassFunctionPower = 0.0;
179179

180180

181181
// Initial mass ratio
182182
m_MassRatio = 1.0;
183-
m_MassRatioDistribution.type = MASS_RATIO_DISTRIBUTION::FLAT; // Most likely want FLAT or SANA2012
183+
m_MassRatioDistribution.type = MASS_RATIO_DISTRIBUTION::FLAT;
184184
m_MassRatioDistribution.typeString = MASS_RATIO_DISTRIBUTION_LABEL.at(m_MassRatioDistribution.type);
185185
m_MassRatioDistributionMin = 0.01;
186186
m_MassRatioDistributionMax = 1.0;
187187

188-
m_MinimumMassSecondary = MINIMUM_INITIAL_MASS; // actual value set later
188+
m_MinimumMassSecondary = 0.1;
189189

190190

191191
// Initial orbit options
192192
m_SemiMajorAxis = 0.1;
193193

194-
m_SemiMajorAxisDistribution.type = SEMI_MAJOR_AXIS_DISTRIBUTION::FLATINLOG; // Most likely want FLATINLOG or SANA2012
194+
m_SemiMajorAxisDistribution.type = SEMI_MAJOR_AXIS_DISTRIBUTION::FLATINLOG;
195195
m_SemiMajorAxisDistribution.typeString = SEMI_MAJOR_AXIS_DISTRIBUTION_LABEL.at(m_SemiMajorAxisDistribution.type);
196-
m_SemiMajorAxisDistributionMin = 0.1;
196+
m_SemiMajorAxisDistributionMin = 0.01;
197197
m_SemiMajorAxisDistributionMax = 1000.0;
198198
m_SemiMajorAxisDistributionPower = -1.0;
199199

@@ -231,8 +231,8 @@ void Options::OptionValues::Initialise() {
231231
// Kick options
232232
m_KickMagnitudeDistribution.type = KICK_MAGNITUDE_DISTRIBUTION::MAXWELLIAN;
233233
m_KickMagnitudeDistribution.typeString = KICK_MAGNITUDE_DISTRIBUTION_LABEL.at(m_KickMagnitudeDistribution.type);
234-
m_KickMagnitudeDistributionSigmaCCSN_NS = 250;
235-
m_KickMagnitudeDistributionSigmaCCSN_BH = 250;
234+
m_KickMagnitudeDistributionSigmaCCSN_NS = 265;
235+
m_KickMagnitudeDistributionSigmaCCSN_BH = 265;
236236
m_KickMagnitudeDistributionMaximum = -1.0;
237237
m_KickMagnitudeDistributionSigmaForECSN = 30.0;
238238
m_KickMagnitudeDistributionSigmaForUSSN = 30.0;
@@ -274,7 +274,7 @@ void Options::OptionValues::Initialise() {
274274

275275

276276
// Chemically Homogeneous Evolution
277-
m_CheMode.type = CHE_MODE::NONE;
277+
m_CheMode.type = CHE_MODE::PESSIMISTIC;
278278
m_CheMode.typeString = CHE_MODE_LABEL.at(m_CheMode.type);
279279

280280

@@ -285,7 +285,7 @@ void Options::OptionValues::Initialise() {
285285
m_FryerSupernovaEngine.type = SN_ENGINE::DELAYED;
286286
m_FryerSupernovaEngine.typeString = SN_ENGINE_LABEL.at(m_FryerSupernovaEngine.type);
287287

288-
m_NeutrinoMassLossAssumptionBH.type = NEUTRINO_MASS_LOSS_PRESCRIPTION::FIXED_FRACTION;
288+
m_NeutrinoMassLossAssumptionBH.type = NEUTRINO_MASS_LOSS_PRESCRIPTION::FIXED_MASS;
289289
m_NeutrinoMassLossAssumptionBH.typeString = NEUTRINO_MASS_LOSS_PRESCRIPTION_LABEL.at(m_NeutrinoMassLossAssumptionBH.type);
290290
m_NeutrinoMassLossValueBH = 0.1;
291291

@@ -296,18 +296,18 @@ void Options::OptionValues::Initialise() {
296296

297297

298298
// Pair instability and pulsational pair instability mass loss
299-
m_UsePairInstabilitySupernovae = false;
299+
m_UsePairInstabilitySupernovae = true;
300300
m_PairInstabilityLowerLimit = 60.0; // Belczynski+ 2016 is 65 Msol
301301
m_PairInstabilityUpperLimit = 135.0; // Belczynski+ 2016 is 135 Msol
302302

303-
m_UsePulsationalPairInstability = false;
303+
m_UsePulsationalPairInstability = true;
304304
m_PulsationalPairInstabilityLowerLimit = 35.0; // Belczynski+ 2016 is 45 Msol
305305
m_PulsationalPairInstabilityUpperLimit = 60.0; // Belczynski+ 2016 is 65 Msol
306306

307-
m_PulsationalPairInstabilityPrescription.type = PPI_PRESCRIPTION::COMPAS;
307+
m_PulsationalPairInstabilityPrescription.type = PPI_PRESCRIPTION::MARCHANT;
308308
m_PulsationalPairInstabilityPrescription.typeString = PPI_PRESCRIPTION_LABEL.at(m_PulsationalPairInstabilityPrescription.type);
309309

310-
m_MaximumNeutronStarMass = 3.0; // StarTrack is 3.0
310+
m_MaximumNeutronStarMass = 2.5; // StarTrack is 3.0
311311

312312
m_mCBUR1 = MCBUR1HURLEY; // MHurley value, Fryer+ and Belczynski+ use 1.83
313313

@@ -320,7 +320,7 @@ void Options::OptionValues::Initialise() {
320320

321321

322322
// Mass loss options
323-
m_UseMassLoss = false; // TW - shouldn't this be true by default? It says so in options.h
323+
m_UseMassLoss = true;
324324
m_CheckPhotonTiringLimit = false;
325325

326326
m_MassLossPrescription.type = MASS_LOSS_PRESCRIPTION::VINK;
@@ -338,7 +338,7 @@ void Options::OptionValues::Initialise() {
338338

339339
// Mass transfer options
340340
m_UseMassTransfer = true;
341-
m_CirculariseBinaryDuringMassTransfer = false;
341+
m_CirculariseBinaryDuringMassTransfer = true;
342342
m_AngularMomentumConservationDuringCircularisation = false;
343343

344344
// Case BB/BC mass transfer stability prescription
@@ -349,7 +349,7 @@ void Options::OptionValues::Initialise() {
349349
m_MassTransferAccretionEfficiencyPrescription.type = MT_ACCRETION_EFFICIENCY_PRESCRIPTION::THERMALLY_LIMITED;
350350
m_MassTransferAccretionEfficiencyPrescription.typeString = MT_ACCRETION_EFFICIENCY_PRESCRIPTION_LABEL.at(m_MassTransferAccretionEfficiencyPrescription.type);
351351

352-
m_MassTransferFractionAccreted = 1.0;
352+
m_MassTransferFractionAccreted = 0.5;
353353
m_MassTransferCParameter = 10.0;
354354
m_EddingtonAccretionFactor = 1; // >1 is super-eddington, 0 is no accretion
355355

@@ -363,7 +363,7 @@ void Options::OptionValues::Initialise() {
363363
m_MassTransferAngularMomentumLossPrescription.typeString = MT_ANGULAR_MOMENTUM_LOSS_PRESCRIPTION_LABEL.at(m_MassTransferAngularMomentumLossPrescription.type);
364364

365365
// Mass transfer rejuvenation prescriptions
366-
m_MassTransferRejuvenationPrescription.type = MT_REJUVENATION_PRESCRIPTION::NONE;
366+
m_MassTransferRejuvenationPrescription.type = MT_REJUVENATION_PRESCRIPTION::STARTRACK;
367367
m_MassTransferRejuvenationPrescription.typeString = MT_REJUVENATION_PRESCRIPTION_LABEL.at(m_MassTransferRejuvenationPrescription.type);
368368

369369
// Mass transfer critical mass ratios
@@ -402,10 +402,10 @@ void Options::OptionValues::Initialise() {
402402
// Common Envelope options
403403
m_CommonEnvelopeAlpha = 1.0;
404404
m_CommonEnvelopeLambda = 0.1;
405-
m_CommonEnvelopeSlopeKruckow = -4.0 / 5.0;
405+
m_CommonEnvelopeSlopeKruckow = -5.0 / 6.0;
406406
m_CommonEnvelopeAlphaThermal = 1.0;
407407
m_CommonEnvelopeLambdaMultiplier = 1.0;
408-
m_AllowMainSequenceStarToSurviveCommonEnvelope = false;
408+
m_AllowMainSequenceStarToSurviveCommonEnvelope = true;
409409

410410
// Prescription for envelope state (radiative or convective)
411411
m_EnvelopeStatePrescription.type = ENVELOPE_STATE_PRESCRIPTION::LEGACY;
@@ -439,8 +439,8 @@ void Options::OptionValues::Initialise() {
439439

440440

441441
// Metallicity options
442-
m_Metallicity = ZSOL;
443-
m_MetallicityDistribution.type = METALLICITY_DISTRIBUTION::ZSOLAR;
442+
m_Metallicity = ZSOL_ASPLUND;
443+
m_MetallicityDistribution.type = METALLICITY_DISTRIBUTION::ZSOLAR;
444444
m_MetallicityDistribution.typeString = METALLICITY_DISTRIBUTION_LABEL.at(m_MetallicityDistribution.type);
445445
m_MetallicityDistributionMin = MINIMUM_METALLICITY;
446446
m_MetallicityDistributionMax = MAXIMUM_METALLICITY;
@@ -461,7 +461,7 @@ void Options::OptionValues::Initialise() {
461461
// Pulsar birth spin period distribution string
462462
m_PulsarBirthSpinPeriodDistribution.type = PULSAR_BIRTH_SPIN_PERIOD_DISTRIBUTION::ZERO;
463463
m_PulsarBirthSpinPeriodDistribution.typeString = PULSAR_BIRTH_SPIN_PERIOD_DISTRIBUTION_LABEL.at(m_PulsarBirthSpinPeriodDistribution.type);
464-
m_PulsarBirthSpinPeriodDistributionMin = 0.0;
464+
m_PulsarBirthSpinPeriodDistributionMin = 10.0;
465465
m_PulsarBirthSpinPeriodDistributionMax = 100.0;
466466

467467
m_PulsarMagneticFieldDecayTimescale = 1000.0;
@@ -949,7 +949,7 @@ bool Options::AddOptions(OptionValues *p_Options, po::options_description *p_Opt
949949
(
950950
"initial-mass-power",
951951
po::value<double>(&p_Options->m_InitialMassFunctionPower)->default_value(p_Options->m_InitialMassFunctionPower),
952-
("Single power law power to generate primary mass using given IMF (default = " + std::to_string(p_Options->m_InitialMassFunctionPower) + ")").c_str()
952+
("Single power law power to generate primary mass using POWERLAW IMF (default = " + std::to_string(p_Options->m_InitialMassFunctionPower) + ")").c_str()
953953
)
954954

955955
(
@@ -1107,7 +1107,7 @@ bool Options::AddOptions(OptionValues *p_Options, po::options_description *p_Opt
11071107
(
11081108
"metallicity,z",
11091109
po::value<double>(&p_Options->m_Metallicity)->default_value(p_Options->m_Metallicity),
1110-
("Metallicity to use (default " + std::to_string(p_Options->m_Metallicity) + " Zsol)").c_str()
1110+
("Metallicity to use (default " + std::to_string(p_Options->m_Metallicity) + ")").c_str()
11111111
)
11121112
(
11131113
"metallicity-max",
@@ -1336,7 +1336,7 @@ bool Options::AddOptions(OptionValues *p_Options, po::options_description *p_Opt
13361336

13371337
(
13381338
"grid",
1339-
po::value<std::string>(&p_Options->m_GridFilename)->default_value(p_Options->m_GridFilename)->implicit_value(""),
1339+
po::value<std::string>(&p_Options->m_GridFilename)->default_value(p_Options->m_GridFilename)->implicit_value(""),
13401340
("Grid filename (default = " + p_Options->m_GridFilename + ")").c_str()
13411341
)
13421342

src/changelog.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,8 +749,11 @@
749749
// - Fixed incrementing of random seed and binary id when grid file contains sets/ranges
750750
//
751751
// Modified h5view.py (in postProcessing/Folders/H5/PythonScripts) to print number of unique seeds (where relevant) in summary output
752+
// 02.20.00 IM - June 14, 20201 - Enhancement:
753+
// - Port defaults from preProcessing/pythonSubmit.py to options.cpp
754+
// - Minor fixes (e.g., documentation)
752755

753756

754-
const std::string VERSION_STRING = "02.19.04";
757+
const std::string VERSION_STRING = "02.20.00";
755758

756759
# endif // __changelog_h__

src/constants.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,8 @@ constexpr double G_SN = G * 1.0E-9 / KG_TO_MSO
225225
constexpr double G_SOLAR_YEAR = 3.14E7; // Gravitational constant in Lsol Rsol yr Msol^-2 for calculating photon tiring limit
226226

227227
constexpr double RSOL = 6.957E8; // Solar Radius (in m)
228-
constexpr double ZSOL = 0.02; // Solar Metallicity
228+
constexpr double ZSOL = 0.02; // Solar Metallicity used in scalings
229+
constexpr double ZSOL_ASPLUND = 0.0142; // Solar Metallicity (Asplund+ 2010) used in initial condition
229230
constexpr double TSOL = 5778.0; // Solar Temperature in kelvin
230231

231232
constexpr double AU = 149597870700.0; // 1 AU (Astronomical Unit) in metres

src/utils.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1083,7 +1083,7 @@ namespace utils {
10831083
switch (p_Zdist) { // which distribution?
10841084

10851085
case METALLICITY_DISTRIBUTION::ZSOLAR: // ZSOLAR - all systems have Z = ZSOLAR
1086-
metallicity = ZSOL;
1086+
metallicity = ZSOL_ASPLUND;
10871087
break;
10881088

10891089
case METALLICITY_DISTRIBUTION::LOGUNIFORM: { // LOGUNIFORM - sample Z uniformly in the log

0 commit comments

Comments
 (0)