From d7673a575c17419ef6debafaea6f63b610e1f65e Mon Sep 17 00:00:00 2001 From: dh00601 <dh00601@surrey.ac.uk> Date: Sun, 6 Mar 2022 10:41:35 +0000 Subject: [PATCH] rebuilt the reports and the docs --- badges/docstring_coverage.svg | 20 + badges/test_coverage.svg | 4 +- .../doctrees/binary_c_parameters.doctree | Bin 973859 -> 973827 bytes docs/build/doctrees/dicts.doctree | Bin 104988 -> 105216 bytes docs/build/doctrees/environment.pickle | Bin 893094 -> 899153 bytes .../notebook_api_functionality.doctree | Bin 415930 -> 47518 bytes .../examples/notebook_custom_logging.doctree | Bin 46032 -> 46503 bytes .../examples/notebook_ensembles.doctree | Bin 0 -> 3016 bytes .../examples/notebook_extra_features.doctree | Bin 21694 -> 21190 bytes .../notebook_individual_systems.doctree | Bin 57907 -> 57289 bytes .../examples/notebook_population.doctree | Bin 142821 -> 138736 bytes docs/build/doctrees/functions.doctree | Bin 166538 -> 170333 bytes docs/build/doctrees/grid.doctree | Bin 79342 -> 79368 bytes .../grid_options_descriptions.doctree | Bin 107292 -> 107691 bytes .../examples/notebook_api_functionality.ipynb | 593 +----------------- .../examples/notebook_custom_logging.ipynb | 14 +- .../examples/notebook_ensembles.ipynb | 33 + .../examples/notebook_extra_features.ipynb | 31 +- .../notebook_individual_systems.ipynb | 49 +- .../examples/notebook_population.ipynb | 373 +++++------ .../population_extensions/HPC.doctree | Bin 71759 -> 72786 bytes .../population_extensions/condor.doctree | Bin 35257 -> 35327 bytes .../population_extensions/slurm.doctree | Bin 34948 -> 34966 bytes docs/build/html/_images/test_coverage.svg | 4 +- .../utils/custom_logging_functions.html | 4 +- .../_modules/binarycpython/utils/dicts.html | 38 +- .../binarycpython/utils/ensemble.html | 14 +- .../binarycpython/utils/functions.html | 17 +- .../_modules/binarycpython/utils/grid.html | 75 ++- .../binarycpython/utils/plot_functions.html | 4 +- .../utils/population_extensions/HPC.html | 27 +- .../Moe_di_Stefano_2017.html | 4 +- .../population_extensions/analytics.html | 5 +- .../utils/population_extensions/cache.html | 4 +- .../utils/population_extensions/condor.html | 24 +- .../utils/population_extensions/dataIO.html | 18 +- .../distribution_functions.html | 4 +- .../population_extensions/grid_logging.html | 4 +- .../grid_options_defaults.html | 11 +- .../utils/population_extensions/gridcode.html | 4 +- .../utils/population_extensions/metadata.html | 4 +- .../utils/population_extensions/slurm.html | 33 +- .../spacing_functions.html | 14 +- .../population_extensions/version_info.html | 4 +- .../utils/run_system_wrapper.html | 4 +- .../binarycpython/utils/useful_funcs.html | 4 +- docs/build/html/_modules/index.html | 4 +- .../html/_sources/binary_c_parameters.rst.txt | 2 +- .../notebook_api_functionality.ipynb.txt | 593 +----------------- .../notebook_custom_logging.ipynb.txt | 14 +- .../examples/notebook_ensembles.ipynb.txt | 33 + .../notebook_extra_features.ipynb.txt | 31 +- .../notebook_individual_systems.ipynb.txt | 49 +- .../examples/notebook_population.ipynb.txt | 373 +++++------ .../grid_options_descriptions.rst.txt | 4 +- docs/build/html/binary_c_parameters.html | 6 +- docs/build/html/custom_logging_functions.html | 4 +- docs/build/html/dicts.html | 5 +- docs/build/html/ensemble.html | 4 +- docs/build/html/example_notebooks.html | 5 +- docs/build/html/examples/notebook_BHBH.html | 4 +- docs/build/html/examples/notebook_HRD.html | 4 +- .../examples/notebook_api_functionality.html | 589 +---------------- .../examples/notebook_api_functionality.ipynb | 593 +----------------- .../notebook_common_envelope_evolution.html | 4 +- .../examples/notebook_custom_logging.html | 15 +- .../examples/notebook_custom_logging.ipynb | 14 +- .../html/examples/notebook_ensembles.html | 390 ++++++++++++ .../html/examples/notebook_ensembles.ipynb | 33 + .../examples/notebook_extra_features.html | 29 +- .../examples/notebook_extra_features.ipynb | 31 +- .../examples/notebook_individual_systems.html | 47 +- .../notebook_individual_systems.ipynb | 49 +- ...notebook_luminosity_function_binaries.html | 4 +- .../notebook_luminosity_function_single.html | 4 +- .../examples/notebook_massive_remnants.html | 4 +- .../html/examples/notebook_population.html | 378 +++++------ .../html/examples/notebook_population.ipynb | 373 +++++------ .../html/examples/notebook_solar_system.html | 4 +- .../html/examples/old/basic_example.html | 4 +- .../old/workshop_example_notebook.html | 4 +- docs/build/html/functions.html | 16 +- docs/build/html/genindex.html | 21 +- docs/build/html/grid.html | 6 +- .../build/html/grid_options_descriptions.html | 9 +- docs/build/html/index.html | 4 +- docs/build/html/modules.html | 4 +- docs/build/html/objects.inv | Bin 11410 -> 11532 bytes docs/build/html/plot_functions.html | 4 +- .../build/html/population_extensions/HPC.html | 12 +- .../Moe_di_Stefano_2017.html | 4 +- .../html/population_extensions/analytics.html | 4 +- .../html/population_extensions/cache.html | 4 +- .../html/population_extensions/condor.html | 6 +- .../html/population_extensions/dataIO.html | 4 +- .../distribution_functions.html | 4 +- .../population_extensions/grid_logging.html | 4 +- .../grid_options_defaults.html | 4 +- .../html/population_extensions/gridcode.html | 4 +- .../html/population_extensions/metadata.html | 4 +- .../html/population_extensions/slurm.html | 8 +- .../spacing_functions.html | 4 +- .../population_extensions/version_info.html | 4 +- docs/build/html/py-modindex.html | 4 +- docs/build/html/readme_link.html | 4 +- docs/build/html/run_system_wrapper.html | 4 +- docs/build/html/search.html | 4 +- docs/build/html/searchindex.js | 2 +- docs/build/html/stellar_types.html | 4 +- docs/build/html/useful_funcs.html | 4 +- docs/source/_templates/footer.html | 4 +- docs/source/badges/test_coverage.svg | 4 +- docs/source/binary_c_parameters.rst | 2 +- .../examples/notebook_api_functionality.ipynb | 593 +----------------- .../examples/notebook_custom_logging.ipynb | 14 +- docs/source/examples/notebook_ensembles.ipynb | 33 + .../examples/notebook_extra_features.ipynb | 31 +- .../notebook_individual_systems.ipynb | 49 +- .../source/examples/notebook_population.ipynb | 373 +++++------ docs/source/grid_options_descriptions.rst | 4 +- 120 files changed, 2092 insertions(+), 4320 deletions(-) create mode 100644 badges/docstring_coverage.svg create mode 100644 docs/build/doctrees/examples/notebook_ensembles.doctree create mode 100644 docs/build/doctrees/nbsphinx/examples/notebook_ensembles.ipynb create mode 100644 docs/build/html/_sources/examples/notebook_ensembles.ipynb.txt create mode 100644 docs/build/html/examples/notebook_ensembles.html create mode 100644 docs/build/html/examples/notebook_ensembles.ipynb create mode 100644 docs/source/examples/notebook_ensembles.ipynb diff --git a/badges/docstring_coverage.svg b/badges/docstring_coverage.svg new file mode 100644 index 000000000..ede195758 --- /dev/null +++ b/badges/docstring_coverage.svg @@ -0,0 +1,20 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="142" height="20"> + <linearGradient id="s" x2="0" y2="100%"> + <stop offset="0" stop-color="#bbb" stop-opacity=".1"/> + <stop offset="1" stop-opacity=".1"/> + </linearGradient> + <clipPath id="r"> + <rect width="142" height="20" rx="3" fill="#fff"/> + </clipPath> + <g clip-path="url(#r)"> + <rect width="99" height="20" fill="#555"/> + <rect x="99" width="43" height="20" fill="#4c1"/> + <rect width="142" height="20" fill="url(#s)"/> + </g> + <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="110"> + <text x="505" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="890">docstr-coverage</text> + <text x="505" y="140" transform="scale(.1)" textLength="890">docstr-coverage</text> + <text x="1195" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)">100%</text> + <text x="1195" y="140" transform="scale(.1)">100%</text> + </g> +</svg> \ No newline at end of file diff --git a/badges/test_coverage.svg b/badges/test_coverage.svg index f5af1dbee..ffd257bde 100644 --- a/badges/test_coverage.svg +++ b/badges/test_coverage.svg @@ -15,7 +15,7 @@ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> <text x="31.5" y="14">coverage</text> - <text x="80" y="15" fill="#010101" fill-opacity=".3">72%</text> - <text x="80" y="14">72%</text> + <text x="80" y="15" fill="#010101" fill-opacity=".3">71%</text> + <text x="80" y="14">71%</text> </g> </svg> diff --git a/docs/build/doctrees/binary_c_parameters.doctree b/docs/build/doctrees/binary_c_parameters.doctree index 574058fe9080841b85fc44748668a79e1a90fbb2..be439b3c9d6fef207164cfce0c03cbdd28c00f48 100644 GIT binary patch delta 414 zcmZ3y!@7BgHA@5Q)Q*iTi7bq}CwH^jO<uwx#qQzi=%S#YFnK<^q@$IBsfDSrm63rF z2$@=?BpFy*SXv~R0Tlp&mX=d#W=@Ghex8<=m4aJpl7f+`0!XETp{13Pp_Q@WW_4Ck zM#ieiwrrBrHF)xVwka~4RtiwpPHCOeIHh)qMh0sSRB&=V`vM0%Zb#A~kJFoz<2l;R zu=xu~w-|PxH_LFg%WyIRF%u9o12GE_vjQ<25VHd@2M~kQZ~-wl5c2>r?{*nZKK9E1 D8yaSz delta 476 zcmZqPVZC^VHA@5Q)D;_95?L4zPqtyTo4kZYia)6+F)ukIJ|(d%Geto`VRAjYq@$IB zsfCHDm63swk%6IsIgnv!W@M0*Vh&UQ1X@~7rI|S;3i)|jT2=~PiFpbN<_aLi3Wi2j zhNf1AMw{hXMHw}lw6u~k^Ad|H<C7KAGfNa8R)O@;#L~&@*{0|SVi-Q9bxPxu+9?_t ztUYLwljGSJIN<Rol1_P?K{DB%qum-?7$E5u!yZagGGsF1r+-Xh)N0n|Y}e*w1Y#y2 lW(HywAZ7((HXvpPVh$h%so?@*ZXo6XV&3iAoP0Mf0RWY4fbjqT diff --git a/docs/build/doctrees/dicts.doctree b/docs/build/doctrees/dicts.doctree index 41e35e9209ff0f2dc4d323d43ff86d9e5fc61c29..4d6459dd2526baacdee1140e28a21d43935ff88b 100644 GIT binary patch delta 4363 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 delta 4238 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 diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle index c4186de6bf66a80ffdba2b27d7fc64781718c1c5..7a3f4915b1438ce61cb50f0f835a84f5956a66b7 100644 GIT binary patch delta 102763 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 GJ^u?}y>`d| delta 98338 zcmc#+cVHF8^Y`{bdLfOLP7N&~^iD$WB=jBv1d=0-6gnh`0+9g07Z?PAAT|^!HdK&i z0YwDtqEc*M3kui^%5P@(-n~omUSJ94mp^W^pV^(Ao!P!~_s(8z|LD>7P6ajAJMVM4 z+@o$_^1P(<thD5u=#0$V<f)mNvl9Cc?_E+93W?ros9I9g)N(DcmSt^{f4!0-&%B)E z8F^`mGx9Q~<&+fFNX?j@Jg=lEh>}3TDzyftZwMFuWDPB0y&5S|aP$UiZ25P$o8_t4 zI+m+(H6Uz(>f%vS<eHq3lbk*^E!ncWSEPqadgk;z6rrT3K3sB9>m!%ukohBPu9QHl ziAo(y;&^AvrJfCyI<RySs}o*QRL_t)Gi`eG)TEr$X^A>iQq+QqZGlYc!uAfVUTBf8 zPD->^kz}8qIxQE&P+q<0iLSiRON&&!&@ju9-eKS~Q3++pFd|89;a*bYG&4JOI_U<} z)pMDaIXxLg=9Ry)UiAzsDe}t6O-@To%1+FkpGEa?BTeO|W@h03ez1Kc3$R4=@`p3m zn78F@Y&WGb?5?RcCQ*?~U99fWkxDH~Qt!IYT<9I4=I5$+-PJGdqXj?tST;v$lZ@D= zY%gu95qlgy)<zq#r-xnBl5DY;`f7Pb?0VKPZLl>~Gqzo<HpYmhyi-#fZ^YIgOVl#+ zjp*@TS7{@R*ro7?wBgp6Z(yS<+DIcdVqK7yXvDU**{h8+VqczUug$Q={KDRystqw> zu@fKBCL6K%sE@R4HD9m2-@HFNY3T-Wb!vf@YQzrj1#OBEdv*DCE#8P79~P>OwZ(QG z)v~NHf91e_Eyswt{n0=hYQ#L3)X*lXcjXJ^`+GOKuFW)v0dLRIl8spK@$a+=My%1m zwpxl2>yh)jHp+<g^xLdWH)4G=dTW{y8~E*3ZJH4qoHkZVz}O^id;j>g7qr<1am;gv zv{^=M{OovbkP(~sL4cNF#HRICv@|0&J>m^*m=Q~B5@(q?u!{?|skJ4MmYCVgEO!si zbt~rWijdM7Ss0^sMX@X6b1f~Cvn<O7=PHvd5u*}nrX;0hM$;oIYko<wHrVp%kWQA> zL%UgO4V`OwW2lE4H73kjG|Un{w57#;SR-YmrPZ)W$~eoKVg1y0i7}Rl_&%`hsOn~E z93SW3DlsN1D`O_IqDDa(<9No)@qw(Ur~a>3K#VONH5W?P4T%jcSqb%+{%@;<dTOzj zZCRZ#%7vN@RiJdnY!p7nqnI}x$~FY6QQz{{@Nn0}#MF$`+{8r7zG+KwtnsjfkGfCk zuahG!?Z>XRJUr%p%S+R9lr%(>`7mIK8M_p)+k07*#DWb2RA<Yc2?aRDIXTg|V0myx zp2a_@#Ij+;JzQxsNokg%F?AFR{<jbl20n9WEXJZIdb?1IB_R_hwzhni8H7SoJ0&6K zVB#5;pC^@AyeBQ83Sh-@EW4&Iqv6*1nH7oNif%V*y|#+xV&N7{JJC{i>ix=0%(2Fe z8ZGg>hXjE9c-6(5n~s{Vf%E!b9iO9HI|thUHE7~obLKqD_8D20SH=QKf)r}pM4{HR zIc1HmU~1&V�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 diff --git a/docs/build/doctrees/examples/notebook_api_functionality.doctree b/docs/build/doctrees/examples/notebook_api_functionality.doctree index 89d3468a7d48104544a2ddd73bd6163d583890d5..0a03aa1e07fbe62b9e9666b3f33204bba4126c38 100644 GIT binary patch delta 1041 zcmdnBQF7jACe{YlsgrkZWM$@KJhz#X&xKbbC9y0sMPIL=GBvMEzbv(=I5R)5SU)K< zFR`dHxuCKnBR|hr&r;8Fa+Gu~8G6zt*K3xs<nu8wOm-~L*{rIygd{7qCo@`vP@sKt zqFa<4w|QE!VVXg*aax+e<YOr*XneiNC-eCx7p87T5!X-aLE~FbUgyTQnLj;&k1=Mt zoDrMW<O!u*hI+*XIhiFnnR%(j8k*5oh6b^knp_1%nRz7|N*aktMVTq-sVSODno}~^ zW2a=;^&qsW6RCCcxl&0+#`%*E<i<^QD^FwAU}f06zFdM;24OsxjebE<svXph2$%{k zgo?=r^Tnq7dol+wE}g!>lUai094jPBw!iRXZe~SNIsM~q7SYLkh3u>m_|;5G=bv7y z$L7Mml`%s;>jTU53Fd4f(*=Ckq^Ez^V>`-poN@a;eKt)-#xs)zvV#~e0X?8PJ;9J| zFJm+)_}pdj1rtPxFcu}-w-~Vj!{ZJpJf`cIu%$6ZPJd;><{^dfENXD{K;)6VXlTlo zCiMv9?B&2<C{4<eWMp8_Y@AX%MI(c?XVUbIrfkK?>Y+ix!H8W76cX3X*j$+2Fiw{> zXZy+YgK@ir1zRB_<6n^1nV6X-AIw#m{2_*CJD(NXL{=tArtJ&u*;X+!$un*Db!3ZT zWLIYbIwp<{DGcvA0mIM`q4SC}TO})#2S^}x`x;L+Sw=QLkfwjr10C6fw?Fb?6J}%& c1&bhzdB7BhFhR+eZ6703I@9(?erz{50VT3rSO5S3 literal 415930 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 II_snV55*!f+yDRo diff --git a/docs/build/doctrees/examples/notebook_custom_logging.doctree b/docs/build/doctrees/examples/notebook_custom_logging.doctree index d22e13968ec7b15b3540b8fe01c1d884e1c689ca..a1fda936235c00e7a5fd551fde673f3ae71680da 100644 GIT binary patch delta 326 zcmcccoN4)MCe{YlsdKh&WbI^SRNdUqD#keZ0UO8U9c)5K+|6IuWfx8snWCql5NkCh zgFSXihFuR!G>FqWrEyB_6pakl47LpUtVxp%7l};vZdPaN=a?*5p*;COz5r7X$7Ba} zxyhLxB9rfz8!)W^$>=am;h5}bECP}|s3**nv2yZ;VDZUM7KJjFZ{}P1fSHMtbMuEa zcbFL;O+LHfDEloA28JH#)XA$?N>ARhQJnG8<TD%X>mLC{{jyH7fync$Ao3uX4N?tc zvxCS>Aa-en0ML<H-kb~!875giKq^a!2}t;YSf5#dgdd1?31~)^KZtb(XiioDi1h`; d3Iwr^0L?4y;Z4iWFUiX<NsTYs+_lM#5deygXygC@ delta 227 zcmZ4fn(4xGCe{YlsYf?&WbI^SG}wHAO^i`Zue2mHr&uq&C^JPNGq)hWs6-(kzo0ZH zu_QA;Z%PJx?34_<2#8v4B(<Bbv8yiJ{9@HzW~LJyn~$%%!_2sF@{&zQ8D~z;+HAo% zaq{BL_E`%#7#RGrPO^c>^Q<89AecQ9EPjw3Br*}iF3k|AouZM&#mT^sVUooSq_TvV mfCLYS^_c}o@Pb&EfM#UzfmmmN=4A1MSYJRafz3W!q8R~9?ngcV diff --git a/docs/build/doctrees/examples/notebook_ensembles.doctree b/docs/build/doctrees/examples/notebook_ensembles.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5bf02920ff77ada51444b22dc62c2fcaf1482d36 GIT binary patch literal 3016 zcmai0TW=gS6i(ahEy->!y$FdGN};GcBwL^oPyqt<jYxSwhzB6DJTu<4iN_vnPqO<^ z0S}cL<hPn1!H?j_@FRGJ&oi@=-IPnDRmR81$LI2$@A#+AufK1uReyfl7F?*=0nIX{ zGiHPDXF4r&rd)Ut-uXE^4G;Xl&@-z`ld|B~ppkMRGs9Fk4iEU6A969}5<e%YnzqMy zhj)4JIQR|foDoUsU_P3=CNhhozL!dBErj^)D4N$_{j4l5770yH44YIs>y>%GuC#(9 zor#VPo%?Mm6jR!9!z|Y_3%~ULs{ej0eb3Qpv=;clcMA%qUEtUJfV5F!)m;Q<#$4xY zoY7N}jSHi{XQ{K}L?~+JBqc^`*R0ZF?zmPYW2f!@ek~irv>n$b$81LPLNYssgDlbd zgfL}Uo<MXUin&UHUyuHW!z*RtN6{-Mq&;Yg(Mxr{Qj0}W`3RZhJI8_V;dcYSTll?# zOb%wbd~6FEi`6fX6J}0XDEVvrK7XBG<9G3UgWuzC9(K!wzvTz1R*u32^HSwvao4qy z^OtsTZYYIghDwr1ot`Xd`1Nn^9zPDT^iW&>ip?UF8tJo8L8=Plb^d9Y(3MC~Bct=e z1-cSbKUTh^Q-oAkpFia9#*jWnNFT*;E*n}ozRqTa!BOsVS!Ln_9D9U(_f=BkKlrUD zfdA))(Ifm{il)Xe|D<k(e@wsM5UMC00lMhFJKjgRBV^tW%g%rIzs@f*!aoB}UB-+F z=P~qe>KNEc{vP<A0$kxu@LiRlzg%F;xris<TgAZ<VDR>TgtvTr;reAL4a;QJk>x{e zfAM?%#v<cHs8p62BdN9Fd35WFAEl*<9ZH&hJn~x$N!24qzHgaxLQTO_yKS#b3=qsz zhLFFevILE^%++ziNfwU$V9J1S>a>ZAjDm|CIunb{`Z9tWPO#i)mZgzc4V_L&<e<2V zOFQt+%!A*XfC^$uFKr%P@k0y3P-RYLAg3HX?MD{WSCFQSElj>zOPFM_u`M|hj*|rw z;>PAcLybs*VTCr1NOsC(IK1jNIF;?P<9FFiAY+cY(k_%bzLT+}oZ`CC88r$Sg9hN4 zLo#p%<Pd`j&;6)|E>o$_pauFU-DLm6eJk*Ndv%ild)g3ARVKj}5spTrK-#u0U2K30 zE1k+p@OLilTr$Cb^P}46%SUgoZd^L)cVYk*Spw}BvSPd8f+dh{^sv8*3FWUFmTHrM zs0%;@*9hR_$aled6U2ygh>U<HCt?<O*N<rFG`SG@s{*(hW@TQG7JJBQB@lp}QB+2Q z+m!^VRW{cCLR45*W}1MNp|t}h(v|`I7bh!-q>h{lD{6dhlT28O8G%3=FMErgKo4yp z7>h2TPG|+A!$yrv1jb67rnll3E&=yP9TX;7%TVu4jPiB~eD21^0&LV2D3l@>E_|`} z$DbWPDp)~~7KVmQtCVd;NkZX$><xdHJ6G7p<MG+q*+ETh2ii=>aUw#~j)T7$PgJhp z1aS<L5RDhd5-axaKYWDDj?4seb>*5Uxwz)`;u@zl=AvM3Qe6|d99Ik+P0&J_<KeLH z?*NcFX?wG^OX_)e?sx1Q!)`{}7fT$!I^urI<`iA_Ly4vaA^Gdox?U1YINGH4PRc3z z2j#1q4Oy;Ih|?!!f#*n^;T7vNBybM&=v1f)FtA{Sy~q=`Ojh-_@Gf8(5jh5(g{7T( zZQUGqbH*HGH&dx89uYYelHk#X`5s?T&;4#R8Eb8soYZ7??yoU*8o=+qUy}&B78n#N z6X*&@95qwsD#Yx<8(_-e^-;ZQ@Zx$3np=_9uQG^XZPG5fSi}b%<h>|tz6bH!%?mj9 zH1Hkl4wvgv=?_x@+KLy#MlFf$x6rE{Tb9&%$061+Pqb`HU8&x<By6<@D;5WfTdPBR zEA~O7#zo$~dD&L8vxZ@xq2J2bz`<{(TFN@{m=3)sjr;{-eipt2yz%5j!{BLatD?g7 hy_O?Z#G9?SD$?d+JW4%{9leo78f!W}zTwK`;BRvrsqp{+ literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/examples/notebook_extra_features.doctree b/docs/build/doctrees/examples/notebook_extra_features.doctree index 2177b0affba5e37d9aeaddd01f502ef9d04500e1..d20e86f08397188ce6752f0850119f269ae13e15 100644 GIT binary patch delta 1019 zcmdnDlJVG5M%D(_sk?(Vvc_?0?@cSp&s9ju%u6h)OfIM_$;i)B$jmLsFDg+8$S)|( zNi50C&*K6sn!J%!cCsgz)8w^WrjzBl*vZkmc`esXwfYDrMg|7Y5{2Z%JcXoGh0@~G zw9*`fl6-}<)RN>3g_4X^h0MIP{Gwd2?F!|YB^e6k8JSS2<kF&|)VvafvecqtpyL$s z)1dB;PgclCEC!mGnx~MQpO==IURsoz0@kjl5S|LQE+t=~#3duK1ZYW7erY<yGK5bR z@{_VslS_0Ik}849b8<5C(xJ{NE=kNwPF2WF1qM-yLPEmivt}|(KuW+Uzkbia`32;a zddmDVrFBZ<l-em88LU0zc?4)bFmNf274jp69U3c>J&iXorU7FleR7rw7nqf?`I$)$ zqig~+t;B<pm4Yo&($>(_1IDC{u3mO(WwC~)=9CQf*eMxyJp^@Z<}-iH$Qr>5Ov#gf zSngvg&6~X3%5U-qOEz@DBaCk+_si={o?%@MQpI5tfG*&<+0OO@*JgL`M@)<}Hf#Ca zWo9g#%n@{7sI-SOFA<pJDhpDJK~a=dIGHzC#-KDq0K~b)%D|9el64zIz0A4;q_So( X1BtsJRt*b~xCdgrW!an=9Lfj)IeBsj delta 959 zcmX@MlyTomM%D(_shdMKvc_>T?wah+l``4iNM`a{E^Ceq_Sh*Ic0F*x&1<>tt0nZj z3(n6?Ey>JHEmkN`RVYu)D^V!PSIExGFIOnfEXhzP&&W*9P$*6<Dap)BFIGs(%u6h) zj89g`NCa|HQ}Yy(N;7jx^c2EV6_OM46iSOz6-qKv71B!cl1no4^CmZ#C~_*K<re`( zGm9q+nx@x-9HIeqNjz<BR+!Q{rEy9v&?;6GtAc6a%LJ1RT=~e}EJWp|Z+>N(%P1OK zmReK{43+rIytMrIl+5H31zQDh3{5as&;kqSWv5maYiMdtfyNhJEv#TIn<XtCGcxu3 znapUlZ}J5zR|M03vW86=<CDqrZ5B^<v~!x=Ys(JdZFaOX;-2i}AY;no4vAWYjMSV0 zn5C$K@Nmp3WMyE;kk87W{Locb#2m=V0SPE%FlQ)cC}k*nf19l6VlIFt_-FD)8I{Qk zoV1yGSSO!#vSR9FogAoT%+$s@+0HqMX%UF0Jh@Mwlc|q&vVo=uNMgOdHY?ch$$PjR zUC^xYWo0Z)O3mN{#jQZ>lpdICb-`Xp%n$-5bP<qvI+E8WD>}$Ae%oB=`Gkq__vSF4 zyUdJNCYuD@ug^LI^aETi#EjA&&b&lmwx}#fEe0i_tSdk@epyqQL1ZNhh<pVmGr{5@ z6Z}du1VAcn*?=Kpl4S>?US`<?sjL}5ZCMT=Rt->7mLrJu7Q}J_vY3IM+gunJ$_M~7 C<w|4# diff --git a/docs/build/doctrees/examples/notebook_individual_systems.doctree b/docs/build/doctrees/examples/notebook_individual_systems.doctree index 77ffa8d59620bf2b44b7a69e7e1a2c17de177f5c..024f940ca81f8237d9bc0e2804d6a63038b712de 100644 GIT binary patch delta 3150 zcmdT_ZA?>V6y|+Pds}4kEki(Br~=xR+xFgm7$}G{Ix{-JNSF@R(vNkODLN6vA=@$+ zw#g!%f=2w@54TK=G1o;U8O$%7*<wZAWN|7kS+YzwbzA&l;@tb*OPQkRk2w?XkK3Db z&ikC_ocBDZ!cp0YKAHS&c}MT1z4DJzkOA6LIP&gK`G&j=Y&z_jSR#HU!=&c%LT0Lg zksFPynHMTE+we118_%oB!|E*-4m5c)pl*sB)@8-RkXAm1_mj!V(VUHyj+rf1P;>tt zOP>;pM@;a9QVHs5xo9|-L+8G~tm5@~iT71Ae{>ZtiFq+(vtK<{G>zE%zqsP;iAJ6@ z&S2!s20d#w7<rr6dxMp?!HrjwHEOe-jUr}4ILJUcZL-oJ(rMOc27@~-)yNx(-$X&i z@SBLAdx)Q-w?`fW&$6tZP`V30RS~t2P~Zed)o%1O5e7%qMBzE-^Z2PEy~URUi^~<l ze)q|zs@uXAUsQ}rh9V;J>y~-#P`IKo(&Jk3I-u5t@OP5}(i?Ig?#_gZjSaXMK^d!u zq7_9@-DH;_b~J4s!`?xpRF1xYrOmg|Ay~5dB<cryOF8;hXm2?qM?XV*OE%ouRRAZ} zEJ2Mz-v>ufnAI@7)vZ}-6X!DVY>m}t;N6^uXvpJr)mW`&lhMXm-8LH>YQ6oRPTz!r zwrX?*Hn%;C`($E))d!Wr)wZ5tIy;)G;FZ<{(Dg)1{B-N4Jd&1B7*rxUEV9bS3c3I> zGVIR?^eABIygUeXe2vm!W9QY>Olr-LM@0D5ep!8ue{SwO!RBC&UtaklY};@;-s#MF z(_8D)sh89*ud834>vTfP#yVAw-@Z0f>~*`qu_zh7+^{b;xF$G!@?M7`ND`<R`18o* z=?_2)`kAUA0ULjBnt##!3UWRX$~NiZ1Mv*uNzo!A2vz&qMTAQ&6mC*s@$-#HG1Is~ z4r?(Kwv?f%uzjZ$;=9y1p8;3JOl)J|M!yZ48Ms`b6$ZPyRd_xF?FBF3at3C^>muz0 z8wQ$_XvoreiLfUr9qufyKve{(62B{<v`8p#Nhn)C)yi;}gtAdWc`uAYLKeO}jUwP> z7+f#8@i7JlIx@gHX97M<Qq-GKD|C0y8E5gC_!={7^4dIbr@JdW(%Eowua-!sA#Av7 z#>x8kc{#Vo<8#?K8)vR@yL=v==WPbB&tx&N!ZslZDWwKi{-0U05WdL3rIeDil14gD z=fw*O+#;J}WSmxoHBxv_sh=HOCsnqiDHnV_DWkW<12pugvZ3(6HT*=={X+l!@ilt0 zYH&1XGHawRP_5xXYPQqMj_Z6M1z}b1Emf{k9OP^zsAuaEEu>{yY9SKzYy6r1tddPa zZ{L2TvPf~f5=u94ip>;ND;zkKhg7p9&rHd)RrJ8rBgd1<Mt~gtEJuA!Ac4+e%+YeZ zfM%N(9aa$y1a(Xr6xBsD+eH8+#MKtWj-s*?CLG(PS}Emg5c4s+#tz>rO76pcH7QjS zN`$_C7PZ6m{^|H*r6{`6<EI$3oA~D9&y}L)Iw=#XITAtCf&*H(9GVq3ipO`Ne$Y8` zG671vv+!9Zkq-~bf#v8rHLhQouQ*SM{RXE8{=i5zaveX3RuVoh5B(~hFKQkS&NGuJ zMqH;clBR-;w4%7t_i#mE&K|}IdR6##Mw$vgeqV|$D%#SK#YDrz#WWj!KRXA6a}`Jr zQG+~lee8bSBm<#=eS_7|)Egsceh6XICfqoGL56$~x>SoakUumPRl{pT)AM}<-w{Y7 s+u9M(5Xz1~HMP|HW68=6geXZaaEkua1qR5ExYz@y>6ccxFjRs50fywOW&i*H delta 3474 zcmdT_ZBSHY6y|+#xp$!u1VmVnyR5=GAl$p${Zhc7H5FwOHMCKJWp`=WL0N_M1GOO< zQ`1!TkdqpXIgQr1ip*^WO;o<DtU+;dC?_fHm(AEXHD%>!(|hm2B5UZ6w9)(Hew=ge z^FHT!&pGe8Gr>Ynu&iG8j{3(|*|s>OfyOwV+&_!^irhIi5nAF4rMFm^*B34%D>zD~ z({Or?uq63y{H)Pv$YRLFX6QK`C^PfGl_G;(s&R02l57<3fyuGY=rnrYZ#rHJ3_tu^ zVoC(|o8W(1N?_8apux4w>DK$x%J*bO-<Qoxfmv95%=00Y?RcbUN=f_Q`218w7O!O( zPQ&ZC4A#Kvb)x!`_?#Y!mL(9sZphCOk+XQwt>byEHVZhb=qJK+B#O%z#cv>f{sDfY zxN+p-v@FYJup{slA)!kNxKS{d96?VBS1^~v3scKX_-WzWT%iVLCnX%W_C75d3(Xaw zV<Q0t1!cQd*>giJHe2P2SEoVikqIaV#=aRNtE{WDtb*2KY0CVCGfS&owUyN?YKG#N z!cs1WW0~4&hIqldrQRQ(3h%e_uz7XnV?|fP={0Nc6$C|W25jF(L+jdjl;b%O>*o;- znI~eP{`eRbVYux61eT4+pmEoh5r57B)4Cat8Q&ld5%{*wgxVl+{athx6dTT?FQL%2 z0QEuS8>vvgH&SqK+$Tdnk<YJDolv>C8~J&PN*4`&l^#_wHcN$t)7muUoL$G;Iipdp zu~=EV(O#~#8ZBBa+}wJLc2Ffvj@%{x5lXnZbrDkBM2;lqry)T>?sDgCQc6=^Z`#<T zcF2}=28;V5Y~R*3%vRhF#~|D0#uU}V*k;sJgVLjg`8&SBj~1^_()}-w2~m&>caajZ zn{G@@!6ca^Sx}IJaRj@|9R>buW|P$5z1<hW)iw62igc#hUF&k!PJyyL%R_x?jvi4J zwW(=P6=xVlz>}PE3d*{9tj1t=72ymFAI#!m$6ggqp}<o7JXTSVH%<j*v&UnGf@{T- zgvI;3ay)~A#+*4gTlA)5H3eL6EMh=;G6q^=5<Q2DvBd|q=%5N$`JgI?p(=b(iH9Zy z<4r!O1|QT4A5;Z_ih|`Y$B9s@F<4%-j%gu`0Zq)pUJ6#ab?6S9X_+0y@kXo0Zs6=z z4qo%_^Vj2C>H$+E_}}KlJ=LpXby-HcUBhavdK<4dXv%pDIW6^u3a!mxWXo-0J@n3B z>S;OsWYB1Xxk5Ppf`T973KI%9h}CnJ$Q9TMe@Lw$ji}p#euQ?}pX~B$H#Du{{2Crx zs~BaVNm2$5tb1CEd6<-N?ZkEQz`{=`xm)-$1=U&xHuNQjyd^11ij&1%qBR$JrJ}!T zB1Inted`P0qyDj=ZoeUqqNN6lq=A{09<3)k5-wUuKRc9;WQVG7zff|j4be(pToROa zYeNo*_~F9hGnt6a^f{(Vjt?aVoa^`;Pp4ttyOZH)=N$Zk2%aW)ntY+tVQN<zbx;bW zA+jnbB49}`c)JeMc3-qr1g2Vtqay>N+k7pY*rP)Akk@0v8|k58K&F3Z&+io4L+sHI z(V)Y-MPE8<0Je7muA^aRLplzpp}y7>2>YGX&Zrx>^E%W4ojntv{=5fWAy83pbxn52 zHIdR~a9sEm{Y-)wSl_3ju1iK5RxZp${gTzi(9o-h#T}wC8psyNB#9v@;kn2_v40Vo zFLvRmc=^y4m>nuJX^)vSthzKGtK=hujE6rj9m4T)xVVR>ZVf9GsOKGsZ&yM=|0`&} z@NxeDM(c#lmj{B;0<aHM;V>Hh9vBbP+s9#N0o)y!mc4*1Z+0e-xo&obkzFu53q*_C h5kZbB=Sh(q?`#(zF6Sxokd6T7Y4I&wsQJDa{R8RXGjjj{ diff --git a/docs/build/doctrees/examples/notebook_population.doctree b/docs/build/doctrees/examples/notebook_population.doctree index 14c9b35f4e77b5c108af1ba71d035128f82e8895..2e908a8d3a6ae820a93ec8a26bc5f130c6bf3f64 100644 GIT binary patch delta 22800 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 literal 142821 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 LOWU5|X6F9~7^;## diff --git a/docs/build/doctrees/functions.doctree b/docs/build/doctrees/functions.doctree index 8812add557b056c2e46bab2cbdf4d773194e0f45..4043b5890974499ec917659aad75c8b199ae6bdd 100644 GIT binary patch delta 20605 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%0AayM^b|dw9Vk9cfK@b^f=J&s? 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 delta 19672 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 QqY_8PKpzZvUfm1-4`FuvIsgCw diff --git a/docs/build/doctrees/grid.doctree b/docs/build/doctrees/grid.doctree index 9ccc353b6687e31ec415278cf2021c6980c8be6a..bd235ae7f19a78e2cc58a459193b940a505c0302 100644 GIT binary patch delta 61 zcmaF&nx*3n3rhp*RGEz|VaFI9Cr2MM5mQJkR!CGRE-A{)OV^u{!5%v$L#ziZ#SE01 N{PD8r=Ih7A^8wjI7+U}U delta 40 tcmeBp!}9Jm3rhp*RHltAVaFIvCPyDL;hd7e9y=vNtOv~7{Op)gJ^)Dk5O)9o diff --git a/docs/build/doctrees/grid_options_descriptions.doctree b/docs/build/doctrees/grid_options_descriptions.doctree index a30f23bf781d9fea56d69873b03d092eddbe044d..35393bfd82365dc27231d363505c189d93d8a103 100644 GIT binary patch delta 3585 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 YYNwY{veBjIyCx<l&zx>6-Go8-KRt4|hyVZp delta 3386 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 diff --git a/docs/build/doctrees/nbsphinx/examples/notebook_api_functionality.ipynb b/docs/build/doctrees/nbsphinx/examples/notebook_api_functionality.ipynb index 504ae4b16..49d6f8d3d 100644 --- a/docs/build/doctrees/nbsphinx/examples/notebook_api_functionality.ipynb +++ b/docs/build/doctrees/nbsphinx/examples/notebook_api_functionality.ipynb @@ -105,7 +105,7 @@ " Function that contains random snippets. Do not expect this to remain available, or reliable. i.e. dont use it.\n", "\n", "FILE\n", - " /home/izzard/.local/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", + " /home/david/.pyenv/versions/binarycpython3.9.9/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", "\n", "\n" ] @@ -166,7 +166,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "<capsule object \"STORE\" at 0x146f912dbc60>\n", + "<capsule object \"STORE\" at 0x7fc1f0c3ff00>\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" ] @@ -270,586 +270,13 @@ "M_2 : The initial mass of star two (in solar units, internally this is star index 1). : (null)\n", "M_3 : The initial mass of star three (in solar units, internally this is star index 2). : (null)\n", "M_4 : The initial mass of star four (in solar units, internally this is star index 3). : (null)\n", - "vrot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot2,3,4. : (null)\n", - "vrot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,3,4. : (null)\n", - "vrot3 : The initial equatorial rotational velocity of star three (in km/s, internally this is star index 2). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,4. : (null)\n", - "vrot4 : The initial equatorial rotational velocity of star four (in km/s, internally this is star index 3). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,3. : (null)\n", - "Prot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). See also Prot2,3,4. : (null)\n", - "Prot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). See also Prot1,3,4. : (null)\n", - "Prot3 : The initial equatorial rotational period of star three (in days, internally this is star index 2). See also Prot1,2,4. : (null)\n", - "Prot4 : The initial equatorial rotational period of star four (in days, internally this is star index 3). See also Prot1,2,3. : (null)\n", - "inclination1 : The initial inclination of star one (in degrees). : (null)\n", - "inclination2 : The initial inclination of star two (in degrees). : (null)\n", - "inclination3 : The initial inclination of star three (in degrees). : (null)\n", - "inclination4 : The initial inclination of star four (in degrees). : (null)\n", - "B_1 : The initial magnetic field of star one (in Gauss, internally this is star index 0). : (null)\n", - "B_2 : The initial magnetic field of star two (in Gauss, internally this is star index 1). : (null)\n", - "B_3 : The initial magnetic field of star three (in Gauss, internally this is star index 2). : (null)\n", - "B_4 : The initial magnetic field of star four (in Gauss, internally this is star index 3). : (null)\n", - "B_inclination1 : The initial inclination of the magnetic field of star one (in degrees). : (null)\n", - "B_inclination2 : The initial inclination of the magnetic field of star two (in degrees). : (null)\n", - "B_inclination3 : The initial inclination of the magnetic field of star three (in degrees). : (null)\n", - "B_inclination4 : The initial inclination of the magnetic field of star four (in degrees). : (null)\n", - "stellar_type_1 : Set the stellar type of star 1 (internal index 0), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_2 : Set the stellar type of star 2 (internal index 1), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_3 : Set the stellar type of star 3 (internal index 2), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_4 : Set the stellar type of star 4 (internal index 3), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "max_stellar_type_1 : The maximum stellar type of star 1 (internal index 0). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. \n", - " : (null)\n", - "max_stellar_type_2 : The maximum stellar type of star 2 (internal index 1). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_3 : The maximum stellar type of star 3 (internal index 2). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_4 : The maximum stellar type of star 4 (internal index 3). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "probability : The probability is a weighting applied to the star based on, say, the initial mass function. When running a grid of stars to simulate *all* stars, the summed probability of all the stars should be 1.0. : (null)\n", - "phasevol : The system's phase volume, used by binary_grid. : (null)\n", - "stellar_structure_algorithm : Set the stellar structure algorithm. 0=modified BSE (default), 1=none, 2=external function (must be defined by the calling code), 3=binary_c (not yet implemented). : (null)\n", - "solver : The type of solver. Default is the Forward-Euler (0), but could be RK2 (1), RK4 (2) or a predictor-corretor (3). : (null)\n", - "max_evolution_time : Set the maximum age for the stars (Myr). : (null)\n", - "max_model_number : Set the maximum number of models, ignored if 0 (default is 0). : (null)\n", - "monte_carlo_kicks : Turn on Monte-Carlo SN kicks. On (True) by default, and indeed other algorithms are probably broken. : (null)\n", - "disable_debug : Disables debug output. Only has an effect when DEBUG is 1, which probably requires a rebuild. Default FALSE. : (null)\n", - "timestep_logging : Turn on timestep logging (default is False). : (null)\n", - "rejects_in_log : Show timestep rejections in the main log (default is False). : (null)\n", - "vandenHeuvel_logging : Turn on van den Heuvel logging (default is False). : (null)\n", - "evolution_splitting : If True, turn on splitting of an evolutionary run if splitpoint (e.g. supernova) occurs. : (null)\n", - "disable_events : Whether to disable the new events code (defaults to False, so we use events by default)\n", - " : (null)\n", - "evolution_splitting_sn_eccentricity_threshold : Threshold eccentricity above which evolution splitting happens in a system with no SN kick. (0.01) : (null)\n", - "evolution_splitting_sn_n : Number of runs to split into when a SN occurs. : (null)\n", - "evolution_splitting_maxdepth : Max number of splits in an evolutionary run. : (null)\n", - "equation_of_state_algorithm : Set the equation of state algorithm. 0 = Paczynski. : (null)\n", - "opacity_algorithm : Set the opacity algorithm. 0 = Paczynski, 1 = Ferguson/Opal. : (null)\n", - "wind_mass_loss : Defines the algorithm used for stellar winds. 0 = none, 1 = Hurley et al. (2002), 2 = Schneider (2018). : 0\n", - "gbwind : Wind prescription for first red giant branch stars. 0=Reimers (Hurley et al 2000/2002; choose gb_reimers_eta=0.5 for their mass loss rate), 1=Schroeder+Cuntz 2005 (set gb_reimers_eta=1.0 for their mass loss rate). : (null)\n", - "postagbwind : Apply special post-(A)GB prescription. Default is POSTAGB_WIND_USE_GIANT which means we just use whatever is prescribed on the giant branch. Other options include: POSTAGB_WIND_NONE = 1 (no wind on the post (A)GB), POSTAGB_WIND_KRTICKA2020 = 2 which uses Krticka, Kubát and Krticková (2020, A&A 635, A173). : (null)\n", - "Teff_postAGB_min : The minimum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_max. (6000 K) : (null)\n", - "Teff_postAGB_max : The maximum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_min. (120000 K) : (null)\n", - "mattsson_Orich_tpagbwind : Experimental : turns on Mattsson's TPAGB wind when the star is oxygen rich. Requires MATTSSON_MASS_LOSS. : (null)\n", - "magnetic_braking_factor : Multiplier for the magnetic braking angular momentum loss rate. : (null)\n", - "magnetic_braking_gamma : gamma factor in Rappaport style magnetic braking expression. : (null)\n", - "magnetic_braking_algorithm : Algorithm for the magnetic braking angular momentum loss rate. 0 = Hurley et al. 2002, 1 = Andronov, Pinnsonneault and Sills 2003, 2 = Barnes and Kim 2010 : (null)\n", - "helium_flash_mass_loss : Mass to be lost at the helium flash. : (null)\n", - "gb_reimers_eta : First red giant branch wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) : (null)\n", - "gbwindfac : Multiplier for the giant branch wind mass loss rate : (null)\n", - "tpagbwindfac : Multiplier for the TPAGB wind mass loss rate : (null)\n", - "eagbwindfac : Multiplier for the EAGB wind mass loss rate : (null)\n", - "nieuwenhuijzen_windfac : Multiplier for the Nieuwenhuijzen & de Jager wind mass loss rate : (null)\n", - "tpagbwind : Wind prescription during the TPAGB. 0=Karakas 2002 (a modified Vassiliadis and Wood 1993), 1=Hurley et al 2000/2002 (Vassiliadis and Wood 1993), 2=Reimers, 3=Bloecker, 4=Van Loon, 5=Rob's C-wind (broken?), 6,7=Vassiliadis and Wood 1993 (Karakas,Hurley variants respectively) when C/O>1, 8=Mattsson, 9 = Goldman et al. (2017), 10 = Beasor et al. (2020). : (null)\n", - "eagbwind : Wind prescription during the EAGB. 0=BSE (Hurley+2002, based on VW93), 1 = Goldman et al. (2017), 2 = Beasor et al. (2020). : (null)\n", - "wind_gas_to_dust_ratio : Gas to dust ratio used in wind calculations (e.g. Goldman et al. 2017). Typically 200 (Milky Way)-500 (Magellanic Clouds). Default is 200, approximately as in MW stars. : (null)\n", - "vwind_multiplier : Multiplier for the stellar wind velocity. : (null)\n", - "vwind_beta : Beta for stellar wind speed calculations, where vwind=sqrt(beta) * escape velocity. Default 0.125 (from BSE, Hurley et al. 2002). : (null)\n", - "superwind_mira_switchon : In the Vassiliadis and Wood (1993) AGB wind prescription, the superwind is turned on at a given Mira period, usually 500 days. You can vary when this switch-on happens with this parameter. : (null)\n", - "vw93_mira_shift : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate depends on the Mira period plus this offset. Requires VW93_MIRA_SHIFT. : (null)\n", - "vw93_multiplier : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate is multiplied by this factor. Requires VW93_MULTIPLIER. : (null)\n", - "tpagb_reimers_eta : TPAGB Reimers wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) Note that Reimers is not the default TPAGB wind prescription. See also tpagbwind. : (null)\n", - "Tout_Pringle_1992_multiplier : Multiplier for the Tout & Pringle (1992) magnetic wind. (0.0) : (null)\n", - "artificial_mass_accretion_rate%d : Constant mass accretion rate for star <n>. : (null)\n", - "artificial_mass_accretion_rate_by_stellar_type%d : Constant mass accretion rate for stellar type <n>. : (null)\n", - "artificial_angular_momentum_accretion_rate%d : Constant angular momentum accretion for star <n>. : (null)\n", - "artificial_orbital_angular_momentum_accretion_rate : Constant angular momentum accretion rate on the orbit. : (null)\n", - "artificial_accretion_start_time : Time at which artificial accretion stars. Ignored if <0 (default is -1). : (null)\n", - "artificial_accretion_end_time : Time at which artificial accretion ends. Ignored if <0 (default is -1). : (null)\n", - "wr_wind : Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge's version of Vink's early-2000s wind (See Lynnette Dray's thesis, or John Eldridge's thesis) : (null)\n", - "wr_wind_fac : Massive-star (WR) wind multiplication factor. : (null)\n", - "wrwindfac : Massive-star (WR) wind multiplication factor. Synonymous with wr_wind_fac (which you should use instead). : (null)\n", - "BH_prescription : Black hole mass prescrition: relates the mass of a newly formed black hole to its progenitor's (CO) core mass. BH_HURLEY2002 = 0 = Hurley et al 2000/2002, BH_BELCZYNSKI = 1 = Belczynski (early 2000s), BH_SPERA2015 = Spera+ 2015, BH_FRYER12_DELAYED = 3 = Fryer et al. (2012) delayed prescription, BH_FRYER12_RAPID = 4 = Fryer et al. (2012) rapid prescription, BH_FRYER12_STARTRACK = 5 = Fryer et al. (2012) startrack prescription. : (null)\n", - "sn_kick_distribution_II : Set the distribution of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_ECAP : Set the distribution of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_NS_NS : Set the distribution of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IBC : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_GRB_COLLAPSAR : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_TZ : Set the distribution of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_AIC_BH : Set the distribution of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_BH : Set the distribution of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_NS : Set the distribution of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD : Set the distribution of speeds applied to any survivor of a hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD_subluminous : Set the distribution of speeds applied to any survivor of a subluminous hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_II : Set the dispersion of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_ECAP : Set the dispersion of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_NS_NS : Set the dispersion of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IBC : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_GRB_COLLAPSAR : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_TZ : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_AIC_BH : Set the dispersion of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_BH : Set the dispersion of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_NS : Set the dispersion of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD : Set the dispersion of speeds applied to the survivor of a SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD_subluminous : Set the dispersion of speeds applied to the survivor of a subluminous SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_companion_IA_He : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_ELD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia ELD (sub-Mch) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an accretion induced collapse (supernova) occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_ECAP : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an electron capture supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_He_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia helium merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_NS_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron-star neutron-star merger. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_GRB_COLLAPSAR : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a GRB Collapsar (rapidly rotating SN Ibc) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_HeStarIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a He-star Ia supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IBC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type Ib/c supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_II : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type II supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type IIa supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_WDKICK : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a WD is kicked. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_TZ : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Thorne-Zytkow object is formed. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron star collapses to a black hole. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when two black holes merge. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a black hole merges with a neutron star. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD_subluminous : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a subluminous hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "wd_sigma : Set the speed at which white dwarfs are kicked when they form, in km/s. Default is zero (i.e. no kick). Requires WD_KICKS. : (null)\n", - "wd_kick_direction : Set the direction of white dwarf kicks. 0 = random, 1 = up, 2 = forward, 3 = backward, 4 = inward, 5 = outward. Requires WD_KICKS. : (null)\n", - "wd_kick_when : Decide when to kick a white dwarf. 0=at birth, 1=at first RLOF, 2=at given pulse number (see wd_kick_pulse_number), 3 at every pulse Requires WD_KICKS. : (null)\n", - "wd_kick_pulse_number : Apply a kick to a star at a desired pulse number on the TPAGB (i.e. pre-WD). Requires WD_KICKS. : (null)\n", - "minimum_helium_ignition_core_mass : Minimum helium core mass required to ignite helium in the case that the hydrogen envelope is stripped on the giant branch, e.g. to make an sdB or sdO star. Typically 0.4, if 0.0 then the BSE algorithm (based on the total mass) is used. : (null)\n", - "minimum_CO_core_mass_for_carbon_ignition : Minimum CO core mass for carbon ignition, assuming Mc,bagb>1.6Msun. Typically around 1.08Msun (Pols+1998). : (null)\n", - "minimum_CO_core_mass_for_neon_ignition : Minimum CO core mass for neon ignition. Typically around 1.42Msun. Stars that have cores that ignite carbon, but not neon explode in electon-capture supernovae. : (null)\n", - "minimum_mcbagb_for_nondegenerate_carbon_ignition : Minimum Mc,bagb (core mass at the base of the AGB) for non-degenerate carbon ignition. Typically around 2.25Msun (Pols+1998). : (null)\n", - "maximum_mcbagb_for_degenerate_carbon_ignition : Maximum Mc,bagb (core mass at the base of the AGB) for degenerate carbon ignition. Typically around 1.6Msun (Pols+1998). : (null)\n", - "max_neutron_star_mass : Maximum mass of a neutron star before it collapses to a black hole. Typically around 2Msun. : (null)\n", - "chandrasekhar_mass : The Chandrasekhar mass, usually 1.44Msun : (null)\n", - "delta_mcmin : A parameter to reduce the minimum core mass for third dredge up to occur on the TPAGB. As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "lambda_min : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. See also lambda_multiplier. : (null)\n", - "lambda_multiplier : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "minimum_envelope_mass_for_third_dredgeup : The minimum envelope mass for third dredge up on the TPAGB. Early, solar metallicity models by Straniero et al suggested 0.5Msun is typical. However, circumstantial evidence (Izzard et al 2009) as well as newer models by Stancliffe and Karakas suggest that at low metallicity a value nearer zero is more appropriate. : (null)\n", - "mass_of_pmz : The mass in the partial mixing zone of a TPAGB star, using the Karakas 2012 tables. Ask Carlo Abate for more details, or see the series of papers Abate et al 2012, 2013, 2014. Requires NUCSYN and USE_TABULAR_INTERSHELL_ABUNDANCES_KARAKAS_2012. : (null)\n", - "c13_eff : The \"efficiency\" of partial mixing in a TPAGB star intershell region, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "mc13_pocket_multiplier : Multiplies the mass in the partial mixing zone of a TPAGB star, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "tides_convective_damping : Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989 : Zahn 1989 lambdas + Hut. : (null)\n", - "E2_prescription : Choose how to calculate the E2 structural parameter (used in tidal timescale calculations). 0=Hurley 1=Izzard (see Siess et al 2013). : (null)\n", - "dtfac : A parameter to decrease the timestep ONLY during the TPAGB phase. : (null)\n", - "hbbtfac : A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined) : (null)\n", - "wind_multiplier_%d : Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0. : (null)\n", - "wind_type_multiplier_%d : Wind multiplier for different types of wind (MS, GB, AGB, WR, LBV, OTHER), given by the integer %d. By default these are all 1.0. : (null)\n", - "pre_main_sequence : Set to True to turn on pre-main sequence evolution. Currently this is not a special stellar type, rather the first (small) fraction of the main sequence has increased radii to match the Railton et al 2014 fits to Tout's pre-main sequence stars. Requires PRE_MAIN_SEQUENCE. See also pre_main_sequence_fit_lobes. : (null)\n", - "pre_main_sequence_fit_lobes : Set to True force a pre-main sequence star into its Roche lobe. This is done by artificially aging it. Requires PRE_MAIN_SEQUENCE : (null)\n", - "small_envelope_method : Choose the method used to determine the stellar radius when the envelope mass is very thin. 0 = Hurley et al. (2002), 1 = Miller Bertolami et al. (2016+) for GB and AGB stars only. : (null)\n", - "timestep_modulator : Multiplier applied to the global timestep. Requires TIMESTEP_MODULATION. : (null)\n", - "timestep_multiplier%d : Multiplier applied to timestep limit <n>. : (null)\n", - "maximum_timestep : The maximum timestep (MYr). : (null)\n", - "zoomfac_multiplier_decrease : When a timestep is rejected, decrease the timestep by this factor (0.5). : (null)\n", - "zoomfac_multiplier_increase : When a timestep is rejected, zooms, then succeeds, increase the timestep by this factor (1.2). : (null)\n", - "maximum_timestep_factor : The maximum factor between two subsequent timesteps (1.2). : (null)\n", - "maximum_nuclear_burning_timestep : The maximum timestep (MYr) in any nuclear burning phase. : (null)\n", - "nova_retention_method : Algorithm used to calculate the amount of mass retained during a nova explosion. 0=use nova_retention_fraction. (other methods pending) : (null)\n", - "MINT_metallicity : This sets the metallicity for MINT. It is ignored if set to -1.0, the default, in which case the normal metallicity parameter is used. : (null)\n", - "gaia_Teff_binwidth : log10(Effective temperature) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_L_binwidth : log10(luminosity) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_colour_transform_method : Use this to select the method used to transform to Gaia colours from other colour schemes. GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1 Jordi et al.'s bivariate UBVRI fits, GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3 Jordi et al.'s univariate ugriv fits, GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_UBVRI_RIELLO2020 = 6 Riello et al. (2020, DR3) fits, GAIA_CONVERSION_ugriz_RIELLO2020 = 7 Riello et al. (2020, DR3) fits. : (null)\n", - "rotationally_enhanced_mass_loss : Set to 1 to enable rotationally enhanced mass loss rate algorithms: 0= none, 1=formula cf. Langer models (=ROTATIONALLY_ENHANCED_MASSLOSS_LANGER_FORMULA), 2=limit accretion rate before wind loss is applied, 3 = both 1 and 2. See also rotationally_enhanced_exponent : (null)\n", - "AGB_core_algorithm : Algorithm to use for calculating AGB core masses. 0=Hurley et al. 2002 if no NUCSYN, Karakas 2002 if NUCSYN is defined; 1=Hurley et al. 2002 (overshooting models); 1=Karakas 2002 (non-overshooting models). : (null)\n", - "AGB_radius_algorithm : Algorithm to use for calculating radii on the TPAGB. : (null)\n", - "AGB_luminosity_algorithm : Algorithm to use for calculating luminosities on the TPAGB. : (null)\n", - "AGB_3dup_algorithm : Algorithm to use for calculating third dredge up efficiency on the TPAGB. : (null)\n", - "overspin_algorithm : Algorithm to determine what we do when a star is rotating at its breakup velocity. OVERSPIN_BSE (0) conservatively transfers the angular momentum back to the orbit. OVERSPIN_MASSLOSS uses the rotationally_enhanced_massloss parameter to lose mass which carries away the angular momentum. : (null)\n", - "rotationally_enhanced_exponent : The exponent (power) by which rotationally enhanced mass loss is raised. Requires ROTATIONALLY_ENHANCED_MASS_LOSS. See also rotationally_enhanced_mass_loss. : (null)\n", - "batchmode : Set the batchmode control variable. Use only if you know what you are doing! : (null)\n", - "speedtests : If True, turns on speedtests during version information (off by default). : (null)\n", - "use_fixed_timestep_%d : Set to True to use fixed timestep <n>, False to turn off. Fixed timesteps are on (this is True) by default. : (null)\n", - "task%d : Control tasks to be performed by binary_c. By default, these are all TRUE. For more information see binary_c_macros.h, particularly the BINARY_C_TASK_* macros. : (null)\n", - "orbiting_object : Usage: --orbiting_object mass,spinrate,central_object,period. : 1.0\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_wind_accretion_multiplier : Multiplier for wind accretion on orbiting objects. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "orbiting_objects_close_pc_threshold : How close are orbiting objects allowed to be? Set this to be the absolute percentage difference minimum. : (null)\n", - "orbiting_objects_tides_multiplier : Multiplier for tidal torques on orbiting objects. : (null)\n", - "evaporate_escaped_orbiting_objects : If True, evaporate orbiting objects that have escaped the system. : (null)\n", - "RLOF_transition_objects_escape : If True, objects that escape their Roche lobe are ejected from the system, otherwise they are placed just outside the minimum stable orbit. : (null)\n", - "PN_resolve : If True, the timestep will be shortened to resolve better the PN phase (FALSE). : (null)\n", - "PN_resolve_minimum_luminosity : The luminosity above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_maximum_envelope_mass : The envelope mass below which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_minimum_effective_temperature : The minimum effective temperature above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_fast_wind : If True, thin-envelope PNe will have fast winds (FALSE). : (null)\n", - "PN_fast_wind_dm_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_mdot_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_dm_AGB : The envelope mass below which fast wind used during the AGB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "PN_fast_wind_mdot_AGB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "HeWD_HeWD_ignition_mass : HeWD-HeWD mergers above this mass reignite helium. (0.3) : (null)\n", - "wind_Nieuwenhuijzen_luminosity_lower_limit : Above this luminosity we activate the Nieuwenhuijzen and de Jager wind (4e3 Lsun). : (null)\n", - "wind_LBV_luminosity_lower_limit : Above this luminosity we activate the LBV wind (6e5 Lsun). : (null)\n", - "colour%d : Sets colour %d (0 to NUM_ANSI_COLOURS-1) to the extended ANSI set colour you choose (1-255, 0 means ignore). The colour numbers are defined in src/logging/ansi_colours.h : (null)\n", - "apply_Darwin_Radau_correction : Apply Darwin-Radau correction to the moment of inertia to take rotation into account? : (null)\n", - "degenerate_core_merger_nucsyn : If TRUE, assume that in a degnerate core merger, energy is generated from nucleosynthesis of the whole core, and that this can disrupt the core. The BSE algorithm (Hurley et al. 2002) assumes this to be TRUE, but binary_c assumes FALSE by default. (FALSE) : (null)\n", - "degenerate_core_helium_merger_ignition : If TRUE, assume that when there is a degenerate helium core merger, the star reignites helium. This is required to make R-type carbon stars. (TRUE) : (null)\n", - "degenerate_core_merger_dredgeup_fraction : If non-zero, mix this fraction of the degenerate core during a merger.(0.0). : (null)\n", - "\n", - "############################################################\n", - "##### Section Binary\n", - "############################################################\n", - "separation : Set the orbital separation (actually the semi-major axis) of the binary (internal index 0, stellar indices 0 and 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_triple : Set the orbital separation (actually the semi-major axis) of the triple (internal index 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_quadruple : Set the orbital separation (actually the semi-major axis) of the quadruple (internal index 2) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "orbital_period : Set the initial orbital period of the binary, stars 1 and 2 (internal indices 0 and 1) in days. See also separation. : (null)\n", - "orbital_period_triple : Set the initial orbital period of the triple in days. See also separation. : (null)\n", - "orbital_period_quadruple : Set the orbital period of the outer binary in a quadrulple (stars 3 and 4, internal indices 2 and 3) in days. See also separation. : (null)\n", - "eccentricity : Set the initial eccentricity of the binary orbit (stars 1 and 2, internal indices 0 and 1). : (null)\n", - "eccentricity_triple : Set the initial eccentricity of the triple orbit. : (null)\n", - "eccentricity_quadruple : Set the initial eccentricity of the outer binary of a quadruple (stars 3 and 4, internal indices 2 and 3). : (null)\n", - "incliniation : Set the initial orbital_inclination of the binary relative to zero. : (null)\n", - "incliniation_triple : Set the initial orbital_inclination of the triple orbit relative to zero. : (null)\n", - "incliniation_quadruple : Set the initial orbital_inclinationy of the quadruple orbit relative to zero. : (null)\n", - "orbital_phase : Set the initial orbital phase of the binary orbit. : (null)\n", - "orbital_phase_triple : Set the initial orbital phase of the triple orbit. : (null)\n", - "orbital_phase_quadruple : Set the initial orbital phase of the quadruple orbit. : (null)\n", - "argument_of_periastron : Set the initial argument of periastron of the binary orbit. : (null)\n", - "argument_of_periastron_triple : Set the initial argument of periastron of the triple orbit. : (null)\n", - "argument_of_periastron_quadruple : Set the initial argument of periastron of the quadruple orbit. : (null)\n", - "disc_timestep_factor : Factor that multiplies the natural timestep of a disc. : (null)\n", - "white_dwarf_cooling_model : White dwarf cooling model, relates age to luminosity. WHITE_DWARF_COOLING_MESTEL = 0 is Mestel's model, WHITE_DWARF_COOLING_MESTEL_MODIFIED = 1 is Hurley's modified Mestel model, WHITE_DWARF_COOLING_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "white_dwarf_radius_model : White dwarf radius model, radius to mass (and perhaps age). WHITE_DWARF_RADIUS_NAUENBERG1972 = 0 Nauenberg (1972), WHITE_DWARF_RADIUS_MU = 1 mu-dependent variant, WHITE_DWARF_RADIUS_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "cbdisc_mass_loss_inner_viscous_accretion_method : Chooses where the mass that is accreted from the inner edge of a circumbinary disc goes, i.e. to which star. 0 = Young and Clarke 2015, 1 = Gerosa et al 2015, 2 = 50:50 (i.e. not dependence on mass). : (null)\n", - "cbdisc_inner_edge_stripping : If True, allow inner edge mass stripping. : (null)\n", - "cbdisc_end_evolution_after_disc : If True, stop evolution when a disc evaporates. : (null)\n", - "cbdisc_no_wind_if_cbdisc : If True, disable stellar winds when there is a circumbinary disc. : (null)\n", - "cbdisc_outer_edge_stripping : If True, allow outer edge mass stripping. : (null)\n", - "disc_n_monte_carlo_guesses : Number of monte carlo guesses to try in the disc solver if the normal list of guesses fails (0). : (null)\n", - "disc_log : If 1, turn on the disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log2d : If 1, turn on the 2d disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log_dt : If non-zero, only allows disc log output every disc_log_dt Myr. : (null)\n", - "disc_log_directory : Directory into which disc logging is sent (must exist!). : /tmp/\n", - "post_ce_adaptive_menv : If TRUE, and if post_ce_objects_have_envelopes is TRUE, then the envelope mass of a post-CE star is such that it sits just inside its Roche lobe. If FALSE then a fixed (thin) envelope mass is applied that depends on the stellar type (see macros POST_CE_ENVELOPE_DM_GB, POST_CE_ENVELOPE_DM_EAGB and POST_CE_ENVELOPE_DM_TPAGB). : (null)\n", - "post_ce_objects_have_envelopes : If TRUE then post-common-envelope objects have thin envelopes. You need this if you are to have post-CE post-AGB stars. Note that this *may* be unstable, i.e. you may end up having many CEEs. The mass in the envelope is controlled by post_ce_adaptive_menv. TRUE by default. : (null)\n", - "PN_comenv_transition_time : post-common envelope transition time in years (1e2). This is the time taken to move from CEE ejection to Teff > 30e4 K. Hall et al. (2013) suggest ~100 years. : (null)\n", - "minimum_time_between_PNe : The minimum time (Myr) between planetary nebula detections. This prevents multiple, fast common envelopes triggering two PNe (0.1). : (null)\n", - "PN_Hall_fading_time_algorithm : In stars with low mass (<0.45Msun) cores, you can choose to set the PN fading time to either the minimum (PN_HALL_FADING_TIME_ALGORITHM_MINIMUM) or maximum (PN_HALL_FADING_TIME_ALGORITHM_MAXIMUM) as shown in Fig. 6 of Hall et al. (2013). : (null)\n", - "PPN_envelope_mass : Desired pre-planetary nebula (post-AGB) envelope mass. : (null)\n", - "cbdisc_eccentricity_pumping_method : Select from various eccentricity-pumping methods when there is a circumbinary disc. Requires DISCS. 0 = off. : (null)\n", - "cbdisc_viscous_photoevaporative_coupling : Set to 1 to turn on viscous-photoevaporative coupling in circumbinary discs. Requires DISCS. 0 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = off, 1 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT instant, 2 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS slow, viscous wind. : (null)\n", - "cbdisc_inner_edge_stripping_timescale : Defines the timescale for mass loss from by inner edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_in. : (null)\n", - "cbdisc_outer_edge_stripping_timescale : Defines the timescale for mass loss from by outer edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_out. : (null)\n", - "cbdisc_viscous_L2_coupling : Set to 1 to turn on viscous-L2-loss coupling in circumbinary discs. Requires DISCS. 0 = off. : (null)\n", - "gravitational_radiation_model : Model for gravitational radiation from the system. 0=Hurley et al 2002 (Landau and Lifshitz 1951). 1 = as 0 but only when there is no RLOF. 2 = none. : (null)\n", - "nova_irradiation_multiplier : Multiplier for nova-radiative induced mass loss. (Shara+1986) : (null)\n", - "gravitational_radiation_modulator_J : Modulator for gravitational wave radiation angular momentum loss rate (1.0). : (null)\n", - "gravitational_radiation_modulator_e : Modulator for gravitational wave radiation eccentricity pumping rate (1.0). : (null)\n", - "nova_faml_multiplier : Nova friction-induced angular momentum loss multiplier. (Shara+1986) : (null)\n", - "RLOF_angular_momentum_transfer_model : Choose angular momentum transfer model in RLOF. 0=BSE (with discs), 1=conservative : (null)\n", - "post_SN_orbit_method : Method by which the post-SN orbit is calculated. 0=BSE, 1=Tauris&Taken 1998. : (null)\n", - "multiplicity : Multiplicity: 1=single star, 2=binary, 3=triple, 4=quadruple. : (null)\n", - "accretion_limit_eddington_steady_multiplier : Steady accretion is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_steady_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_LMMS_multiplier : Accretion from a low-mass, convective, main_sequence star is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_LMMS_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_WD_to_remnant_multiplier : Accretion from a WD onto a remnant star (e.g. another white dwarf, neutron star or black hole) is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_WD_to_remnant_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_thermal_multiplier : Mass transfer onto a MS, HG or CHeB star is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "accretion_limit_dynamical_multiplier : Mass transfer is limited by the accretor's dynamical rate times this multiplier. : (null)\n", - "donor_limit_envelope_multiplier : Mass transfer by RLOF is limited by this fraction of the donor's envelope mass per timestep : (null)\n", - "donor_limit_thermal_multiplier : Mass transfer by RLOF is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "donor_limit_dynamical_multiplier : Mass transfer by RLOF is limited by the donor's dynamical rate times this multiplier. : (null)\n", - "Bondi_Hoyle_accretion_factor : Wind accretion rate, as calculated by the Bondi-Hoyle-Littleton formula, multiplcation factor. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "tidal_strength_factor : A modulator for the tidal strength. If this factor > 1 then tides are stronger, i.e. tidal timescales are reduced. : (null)\n", - "hachisu_qcrit : Critical q=Maccretor/Mdonor above which Hachisu's disk wind turns on. : (null)\n", - "hachisu_disk_wind : Set to True to turn on Hachisu's disk wind when material accretes too fast onto a white dwarf. This helps to make more SNeIa. See also hachisu_qcrit. : (null)\n", - "mass_accretion_for_eld : The mass that must be accreted onto a COWD for it to ignite as an edge-lit detonation SNIa. : (null)\n", - "WDWD_merger_algorithm : Algorithm to be used when merging two white dwarfs. 0 = Hurley et al. (2002), 1 = Perets+ (2019), 2 = Chen+ (2016, todo) : (null)\n", - "type_Ia_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from Chandrasekhar-mass exploders. 0 = DD7 (Iwamoto 1999), 1 = Seitenzahl 2013 3D hydro yields (you must also set Seitenzahl2013_model) : (null)\n", - "Seitenzahl2013_model : Which of Seitenzahl et al. 2013's models to use? One of N1,N3,N5,N10,N20,N40,N100L,N100,N100H,N150,N200,N300C,N1600,N1600C,N100_Z0.5,N100_Z0.1,N100_Z0.01 (defaults to N100). : N1\n", - "type_Ia_sub_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.) : (null)\n", - "max_HeWD_mass : The maximum mass a HeWD can have before it ignites helium (0.7). : (null)\n", - "merger_mass_loss_fraction : Fraction of the total mass which is lost when stars merge. : (null)\n", - "merger_angular_momentum_factor : When two stars merge the resulting single star retains a fraction of the total system angular momentum (or the critical spin angular momentum, if it is smaller) multiplied by this factor. : (null)\n", - "wind_angular_momentum_loss : Prescription for losing angular momentum in a stellar wind. 0=Hurley et al 2002 ('Tout') prescription, 1=lw i.e. a factor multiplying the specific orbital angular momentum, 2=lw hybrid for fast winds. Set wind_djorb_fac to the desired factor.. : (null)\n", - "wind_djorb_fac : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=0 (the Tout/Hurley et al 2002 prescription). See wind_angular_momentum_loss. : (null)\n", - "lw : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=1,2 (the 'lw' prescription). See wind_angular_momentum_loss. : (null)\n", - "VW93_EAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "VW93_TPAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "use_periastron_Roche_radius : Set this to True to use the Roche lobe radius at periastron, rather than (the default to) assume a circular orbit. This will be useful one day when we treat RLOF in eccentric orbits properly, hopefully. : (null)\n", - "qcrit_LMMS : Apply critical q=Mdonor/Maccretor value for low-mass main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_LMMS : Apply critical q=Mdonor/Maccretor value for (low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "mass_for_Hestar_Ia_upper : Only helium stars below this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_lower. : (null)\n", - "mass_for_Hestar_Ia_lower : Only helium stars above this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_upper. : (null)\n", - "alphaCB : Circumbinary disk viscosity parameter, alpha. : (null)\n", - "minimum_donor_menv_for_comenv : Minimum donor envelope mass for common envelope evolution to be triggered (Msun). Default 0. : (null)\n", - "comenv_prescription : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_prescription%d : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_ejection_spin_method : When a common envelope is ejected, we need to decide how fast the stars are left spinning. COMENV_EJECTION_SPIN_METHOD_DO_NOTHING (0) is the default, this just leaves the stars/stellar cores spinning with the same spin rate (omega = angular velocity) with which they entered the common envelope phase. COMENV_EJECTION_SPIN_METHOD_SYCHRONIZE instead tidally synchronizes the stars with their new orbital angular velocity. : (null)\n", - "comenv_merger_spin_method : When a common envelope binary merges, we need to decide how fast the resulting single star is left spinning. COMENV_MERGER_SPIN_METHOD_SPECIFIC (0) is the default, this preserves angular momentum but limits the specific angular momentum of the merged star to the specific angular momentum of the system at the onset of common envelope evolution. COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM (1) sets the merger's angular momentum to be that of the system at the onset of common envelope evolution (which means the star may be rotating supercritically). COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA (2) sets the spin rate (angular frequency = omega) of the merged star to be that of the orbit just at the onset of common envelope evolution. : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "comenv_ms_accretion_fraction : Experimental. During common envelope evolution, a main sequence may accrete a fraction of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_mass. : (null)\n", - "comenv_ns_accretion_mass : Experimental. During common envelope evolution, a neutron star may accrete some of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_fraction. : (null)\n", - "comenv_ns_accretion_fraction : Experimental. During common envelope evolution, a neutron star may accrete a fraction of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_mass. : (null)\n", - "alpha_ce : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "alpha_ce%d : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "lambda_ce : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to LAMBDA_CE_DEWI_TAURIS == -1 binary_c uses the Dewi and Tauris fits instead, LAMBDA_CE_WANG_2016 == -2 uses the formalism of Wang, Jia and Li (2016), if LAMBDA_CE_POLYTROPE == -3 then a polytropic formalism is used (see also comenv_splitmass) and if LAMBDA_CE_KLENCKI_2020 == -4 use Klencki et al. (2020). : (null)\n", - "lambda_ce%d : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). : (null)\n", - "comenv_splitmass : When lambda_ce=-2, the envelope binding energy, lambda, is calculated using a polytropic formalism. The comenv_splitmass defines the point, in the units of the core mass, above which material is ejected. : (null)\n", - "nelemans_recalc_eccentricity : If True, recalculate the eccentricity after angular momentum is removed. : (null)\n", - "comenv_post_eccentricity : Eccentricity remaining after common envelope ejection. : (null)\n", - "nelemans_gamma : Set the fraction of the orbital specific angular momentum that is used to eject the common envelope according to the Nelemans and Tout prescription. See also nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_minq : Only activate the Nelemans and Tout common envelope prescription for q>nelemans_minq. See also nelemans_gamma, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_max_frac_j_change : Maximum fractional angular momentum change in the Nelemans and Tout common envelope prescription. See also nelemans_gamma, nelemans_minq, nelemans_n_comenvs. : (null)\n", - "nelemans_n_comenvs : Set the maximum number of common envelope ejections allowed to follow the Nelemans and Tout prescription, after which the standard alpha prescription is used. : (null)\n", - "lambda_ionisation : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_ionisation%d : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_enthalpy : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "lambda_enthalpy%d : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "cbdisc_albedo : Circumbinary-disc albedo. Requires DISCS. : (null)\n", - "cbdisc_gamma : Circumbinary disc gamma (equation of state) parameter. Requires DISCS. : (null)\n", - "cbdisc_alpha : Circumbinary disc alpha (viscosity) parameter. Requires DISCS. : (null)\n", - "cbdisc_kappa : Circumbinary disc kappa (opacity) parameter. Requires DISCS. : (null)\n", - "cbdisc_minimum_evaporation_timescale : Circumbinary disc minimum evaporation timescale (years). If (slow, not edge stripped) mass loss would evaporate the disc on a timescale less than this, simply evaporate the disc immediated. Usually set to 1y, ignore if zero. Requires DISCS. : (null)\n", - "cbdisc_torquef : Circumbinary disc binary torque multiplier. Requires DISCS. : (null)\n", - "cbdisc_max_lifetime : Circumbinary disc maximum lifetime (years, ignored if 0). Requires DISCS. : (null)\n", - "cbdisc_init_dM : On cbdisc start, reduce mass by a fraction dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_init_dJdM : On cbdisc start, reduce angular momentum by a fraction dJ/dM*dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_mass_loss_constant_rate : Circumbinary disc constant mass loss rate (Msun/year). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_FUV_multiplier : Circumbinary disc FUV mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_Xray_multiplier : Circumbinary disc X-ray mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_ram_pressure_multiplier : Circumbinary disc interstellar medium ram pressure stripping mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_pressure : Circumbinary disc interstellar medium ram pressure in units of Boltzmann constant per Kelvin (I think...). Requires DISCS. Typically 3000.0. See e.g. http://www.astronomy.ohio-state.edu/~pogge/Ast871/Notes/Intro.pdf page 15 or https://arxiv.org/pdf/0902.0820.pdf Fig. 1 (left panel). : (null)\n", - "cbdisc_mass_loss_inner_viscous_multiplier : Circumbinary disc inner edge viscous mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier : Circumbinary disc inner edge viscous angular momentum multiplier (no units). The inner edge angular momentum Requires DISCS. : (null)\n", - "cbdisc_resonance_multiplier : Circumbinary disc resonant interaction multiplier, affects eccentricity pumping and angular momentum rates. Requires DISCS. : (null)\n", - "cbdisc_resonance_damping : Circumbinary disc resonant interaction damping: should be on (True) to damp the l=1, m=2 resonance when the disc inner edge lies outside the resonance location. Requires DISCS. : (null)\n", - "cbdisc_fail_ring_inside_separation : If True, while converging on a structure, circumbinary discs with Rring < the binary separation are immediately failed. : (null)\n", - "cbdisc_mass_loss_inner_L2_cross_multiplier : Circumbinary disc inner edge L2-crossing mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_minimum_luminosity : Circumbinary disc minimum luminosity. If the disc becomes dimmer than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_mass : Circumbinary disc minimum mass. If the disc becomes less massive than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_fRing : Circumbinary disc minimum fRing. If the disc becomes a ring, and fRing = |Rout/Rin-1| < this value (and this value is non-zero), the disc is evaporated instantly. Requires DISCS. : (null)\n", - "comenv_disc_angmom_fraction : If >0 Fraction of the common envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the moments of inertia to calculate (deprecated), if -2 use the common envelope's specific angular momentum, if -3 uses the L2 point at the end of the common envelope to set the angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "comenv_disc_mass_fraction : Fraction of the common envelope's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "wind_disc_angmom_fraction : If >0 Fraction of the wind envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the L2 point's specific angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "wind_disc_mass_fraction : Fraction of the stellar wind's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "WRLOF_method : Choose whether and how to apply wind-Roche-lobe-overflow. 0=none, 1=q-dependent, 2=quadratic See Abate et al 2013/14 for details. Requires WRLOF_MASS_TRANSFER. : (null)\n", - "minimum_timestep : The minimum timestep (Myr). : (null)\n", - "timestep_solver_factor : Factor applied in timestep_limits, e.g. to prevent X changing too fast by comparing to X/dX/dt, which is usually 1 but can be higher to lengthen timesteps when using an alternative solver. : (null)\n", - "RLOF_mdot_factor : Multiplier applied to the mass transfer rate during Roche-lobe overflow. Requires RLOF_MDOT_MODULATION. : (null)\n", - "RLOF_f : Factor to enlarge a Roche lobe, nominally because of radiation pressure (see Dermine et al paper). Requires RLOF_RADIATION_CORRECTION. : (null)\n", - "minimum_separation_for_instant_RLOF : If True, instead of evolving the system just report the minimum separation (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_orbital_period_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "minimum_orbital_period_for_instant_RLOF : If True, instead of evolving the system just report the minimum orbital period (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_separation_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "maximum_mass_ratio_for_instant_RLOF : If True, instead of evolving the system just report the maximum mass ratio (on the zero-age main sequence) that would lead to instant RLOF, given M1 and orbital period. Used by binary_grid. See also minimum_separation_for_instant_RLOF and minimum_orbital_period_for_instant_RLOF. : (null)\n", - "RLOF_method : Use RLOF_method to choose the algorithm you use for Roche-lobe overflow mass loss rate calculations. 0=Hurley et al 2002, 1=Adaptive (for radiative stars) R=RL method, 2=Ritter (probably broken), 3=Claeys etal 2014 variant on Hurley et al 2002. : (null)\n", - "RLOF_interpolation_method : When a star overflows its Roche lobe, it always has R>RL because of the limited time resolution of the simulation. Binary_c then uses an algorithm to get back to when R~RL (within a desired tolerance, set in RLOF_ENTRY_THRESHOLD which is usually 1.02, i.e. overflow of 2%). You can choose algorithm 0, the Hurley et al 2002 method which reverses time (i.e. uses a Newton-like scheme), or 1 to use the binary_c method which rejects a timestep (and hence does no logging on that timestep) and repeats with half the timestep until R~RL. The latter is now the default, because this means there are no negative timesteps which break various other algorithms (e.g. nucleosynthesis). : (null)\n", - "nova_retention_fraction : The mass accreted during a nova as fraction of mass transferred : (null)\n", - "beta_reverse_nova : The fraction of mass ejected in a nova explosion which is accreted back onto the companion star. Set to -1 to automatically calculate based on a geometric argument, or 0 or positive to set the value. : (null)\n", - "WD_accretion_rate_novae_upper_limit_hydrogen_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is hydrogen rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_helium_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_other_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is neither hydrogen nor helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a hydrogen-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_helium_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a helium-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_other_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope when the donor is neither hydrogen nor helium rich. Below this mass transfer leads to stable burning. : (null)\n", - "CRAP_parameter : Tidally enhanced mass loss parameter. See Tout and Eggleton's paper on the subject. (Was the parameter bb). : (null)\n", - "individual_novae : If individual_novae is True, novae are resolved such that each explosion is performed separtaely. : (null)\n", - "nova_timestep_accelerator_num : The nova timestep is accelerated if the nova number exceeds nova_timestep_accelerator_num. If zero or negative, acceleration is off. See also nova_timestep_accelerator_index and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_index : The index at which the nova timestep is accelerated. A larger value gives longer timesteps. See also nova_timestep_accelerator_num and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_max : The nova timestep is accelerated by a factor that is capped at nova_timestep_accelerator_max. This parameter is ignored if it is zero or negative. See also nova_timestep_accelerator_num and nova_timestep_accelerator_index. Only used if individual_novae is on.\n", - " : (null)\n", - "nonconservative_angmom_gamma : Mass lost from the system (but NOT from a stellar wind) takes a fraction gamma of the orbital angular momentum with it. Set to -1 to take the specific angular momentum of the donor star. Set to -2 to take super-Eddington, nova and disk-wind angular momenta as if a wind from the accretor. : (null)\n", - "max_stellar_angmom_change : Maxmimum fractional change in stellar angular momentum allowed before a timestep is rejected (0.05). : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "\n", - "############################################################\n", - "##### Section Nucsyn\n", - "############################################################\n", - "third_dup : If True, enables third dredge up. Requires NUCSYN and NUCSYN_THIRD_DREDGE_UP. : (null)\n", - "third_dup_multiplier : Usage: --third_dup_multiplier <i> <f>. Multiplies the abundance of element <i> by <f> during third dredge up. : 1.0\n", - "NeNaMgAl : Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB. : Ignore\n", - "nucsyn_network%d : Usage: --nucsyn_network%d <boolean>. Turn a nuclear network on or off. : (null)\n", - "nucsyn_network_error%d : Usage: --nucsyn_network_error%d <f>. Threshold error in nuclear network solver for network %d. : (null)\n", - "nucreacmult%d : Usage: --nucreacmult%d <f>. Multiply nuclear reaction given by the integer %d (integer) by f (float). : (null)\n", - "nucsyn_metallicity : This sets the metallicity of the nucleosynthesis algorithms, i.e. the amount (by mass) of matter which is not hydrogen or helium. Usually you'd just set this with the metallicity parameter, but if you want the nucleosynthesis to be outside the range of the stellar evolution algorithm (e.g. Z=0 or Z=0.04) then you need to use nucsyn_metallicity. That said, it's also outside the range of some of the nucleosynthesis algorithms as well, so you have been warned! : (null)\n", - "nucsyn_solver : Choose the solver used in nuclear burning. 0 = KAPS_RENTROP is a Kaps-Rentrop scheme (fast, not great for stiff problems), 1 = LSODA (Adams/BSF switcher), 2 = CVODE library (https://computing.llnl.gov/projects/sundials. Default 0. : 0\n", - "initial_abundance_mix : initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993 : 0\n", - "init_abund : Usage: --init_abund <i> <X>. Sets the initial abundance of isotope number <i> to mass fraction <X>. : 0.02\n", - "init_abund_mult : Usage: --init_abund_mult <i> <f>. Multiplies the initial abundance of isotope number <i> by <f>. : 1.0\n", - "init_abund_dex : Usage: --init_abund_dex <i> <f>. Changes the initial abundance of isotope number <i> by <f> dex. : 0.0\n", - "init_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "initial_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "no_thermohaline_mixing : If True, disables thermohaline mixing. : (null)\n", - "lithium_GB_post_Heflash : Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_GB_post_1DUP : Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_hbb_multiplier : Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "angelou_lithium_decay_function : Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are : 0 expoential (see angelou_lithium_decay_time). : (null)\n", - "angelou_lithium_LMMS_time : Time at which lithium manufacture is triggered in a low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_time : Time at which lithium manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_time : Time at which lithium manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_time : Time at which lithium manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_time : Time at which lithium manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_time : Time at which lithium manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_time : Time at which lithium manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_decay_time : Decay time for surface lithium abundance during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_decay_time : Decay time for surface lithium abundance on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_decay_time : Decay time for surface lithium abundance on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_decay_time : Decay time for surface lithium abundance on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_decay_time : Decay time for surface lithium abundance during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_decay_time : Decay time for surface lithium abundance on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_decay_time : Decay time for surface lithium abundance on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_massfrac : Lithium mass fraction when its manufacture is triggered during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_massfrac : Lithium mass fraction when its manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_massfrac : Lithium mass fraction when its manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_massfrac : Lithium mass fraction when its manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_massfrac : Lithium mass fraction when its manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_vrot_trigger : Equatorial rotational velocity at which lithium manufacture is triggered (km/s). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "angelou_lithium_vrotfrac_trigger : Fraction of Keplerian (breakup) equatorial rotational velocity at which lithium manufacture is triggered (must be <1, ignored if 0). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "\n", - "############################################################\n", - "##### Section Output\n", - "############################################################\n", - "cf_amanda_log : Enable logging to compare to Amanda's models. : (null)\n", - "float_overflow_checks : Turn on to enable floating-point overflow checks at the end of each timestep, if they are available. 0=off, 1=warn (stderr) on failure, 2=exit on failure (0) : (null)\n", - "save_pre_events_stardata : Enable this to save a copy of stardata to stardata->pre_events_stardata just before an event. : (null)\n", - "disable_end_logging : Disable the logging that happens at the end of the evolution. : (null)\n", - "ensemble : Turn on ensemble calculations and output. : (null)\n", - "ensemble_filters_off : Sets all ensemble filters to be off (FALSE) - these can then be enabled one-by-one with --ensemble_filter_[...] TRUE. : (null)\n", - "ensemble_filter_%d : Turn on or off ensemble filter <n>. For a list of filters, see ensemble_macros.h. : (null)\n", - "ensemble_legacy_ensemble : Turn on ensemble legacy population output. : (null)\n", - "legacy_yields : Turn on ensemble legacy yield output. : (null)\n", - "ensemble_defer : Defer ensemble output. : (null)\n", - "ensemble_dt : When doing ensemble calculations, data are stored and/or output every ensemble_dt Myr. See also ensemble, ensemble_logdt, ensemble_startlogtime. : (null)\n", - "ensemble_logdt : When doing ensemble calculations, and when logensembletimes is set, the ensemble is stored/output every ensemble_logdt Myr. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_startlogtime : Start log ensemble data storage/calculations/output at ensemble_startlogtime. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_logtimes : When doing ensemble calculations/output, set this to act at log times rather than linear times. : (null)\n", - "postagb_legacy_logging : Turn on post-AGB legacy logging. : (null)\n", - "disc_legacy_logging : Turn on disc legacy logging. : (null)\n", - "EMP_logg_maximum : Maximum logg that EMP stars are allowed to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_minimum_age. : (null)\n", - "EMP_minimum_age : Minimum age that EMP stars are required to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum. : (null)\n", - "EMP_feh_maximum : Maximum [Fe/H] that an EMP stars may have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default -2.0. : (null)\n", - "CEMP_cfe_minimum : Minimum [C/Fe] that CEMP stars are required to have. See Izzard et al 2009. See also NEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 0.7. : (null)\n", - "NEMP_cfe_minimum : Minimum [N/Fe] that NEMP stars are required to have. See Izzard et al 2009, Pols et al. 2012. See also CEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 1.0. : (null)\n", - "thick_disc_start_age : Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr. : (null)\n", - "thick_disc_end_age : Lookback time for the end of the thick disc star formation, e.g. 4e3 Myr. Units = Myr. : (null)\n", - "thick_disc_logg_min : Minimum logg for thick disc giants to be logged. : (null)\n", - "thick_disc_logg_max : Maximum logg for thick disc giants to be logged. : (null)\n", - "escape_velocity : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 1e9 km/s. See also escape_fraction. : (null)\n", - "escape_fraction : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 0.0. See also escape_velocity. : (null)\n", - "colour_log : If set to True, thelog is coloured with ANSI colour formatting. Requires FILE_LOG to be defined. : \n", - "log_filename : Location of the output logging filename. If set to \"/dev/null\" then there is no logging. : \n", - "log_arrows : Add arrows to the output log to show whether values are increasing or decreasing. : \n", - "stopfile : File which, when it exists, will stop the current binary_c repeat run. : \n", - "stardata_dump_filename : Location of the stardata dump file. : \n", - "stardata_load_filename : Location of the stardata file to load. : \n", - "api_log_filename_prefix : Location of the output logging filename prefix for the API. If set to \"/dev/null\" then there is no logging. : 0\n", - "hrdiag_output : Set to True to output high time-resolution Hertzstrpung-Russell diagram information. Requires HRDIAG. : (null)\n", - "internal_buffering : Experimental. Set to non-zero values to implement internal buffering prior to output. For use with binary_grid, you shouldn't really be playing with this. : (null)\n", - "eccentric_RLOF_model : Chooses which model is used to handle eccentric RLOF. Default is RLOF_ECCENTRIC_AS_CIRCULAR, i.e. ignore the eccentricity. Note: requires force_corotation_of_primary_and_orbit to be FALSE.\n", - " : (null)\n", - "force_circularization_on_RLOF : If True forces circularization of stars and orbit when RLOF starts, this is as in the BSE algorithm. (True) : (null)\n", - "wtts_log : If True, enables log file output for WTTS2. : (null)\n", - "fabian_imf_log_time : Time at which to output for Fabian Schneider's IMF project. Requires FABIAN_IMF_LOG : Ignore\n", - "fabian_imf_log_timestep : Timestep for Fabian Schneider's IMF project logging. Requires FABIAN_IMF_LOG : Ignore\n", - "version : Display binary_c version and build information. Also performs timing tests. : Ignore\n", - "dumpversion : Display binary_c version number (short format). : Ignore\n", - "version_only : Display binary_c version number and build information, but do not perform timing tests or anything that requires stardata to be non-NULL. : Ignore\n", - "tides_diagnosis_log : Enable logging to test MINT tides. Requires MINT. Choices are: 0 disabled, 1 enable lambda test. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Input\n", - "############################################################\n", - "MINT_dir : Location of MINT algorithm data. : \n", - "MINT_data_cleanup : Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things. : \n", - "MINT_MS_rejuvenation : Turn on or off (hydrogen) main-sequence rejuvenation. : \n", - "MINT_remesh : Turn on or off MINT's remeshing. : \n", - "MINT_use_ZAMS_profiles : Use chemical profiles at the ZAMS if MINT_use_ZAMS_profiles is TRUE, otherwise set homogeneous abundances. (Default is TRUE, so we use the profiles if they are available.) : \n", - "MINT_fallback_to_test_data : If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE) : \n", - "MINT_disable_grid_load_warnings : Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data. : \n", - "MINT_Kippenhahn : Turn on or off MINT's Kippenhahn diagrams. If 0, off, if 1, output star 1 (index 0), if 2 output star 2 (index 1). Default 0. : \n", - "MINT_nshells : Set the initial number of shells MINT uses in each star when doing nuclear burning. Note: remeshing can change this. If MINT_nshells is 0, shellular burning and other routines that require shells will not be available. (200) : \n", - "MINT_maximum_nshells : Set the maximum number of shells MINT uses in each star when doing nuclear burning. Note that this will be limited to MINT_HARD_MAX_NSHELLS. (1000) : \n", - "MINT_minimum_nshells : Set the minimum number of shells MINT uses in each star when doing nuclear burning. Note that this will be greater than or equal to MINT_HARD_MIN_NSHELLS, which is 0 by default. (0) : \n", - "MINT_Kippenhahn_stellar_type : Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output. : \n", - "MINT_Kippenhahn_companion_stellar_type : Companion stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for the companion for which Kippenhahn plot data should be output. : \n", - "MINT_nuclear_burning : Turn on or off MINT's nuclear burning algorithm. : \n", - "MINT_minimum_shell_mass : Minimum shell mass in MINT's nuclear burning routines. : \n", - "MINT_maximum_shell_mass : Maximum shell mass in MINT's nuclear burning routines. : \n", - "\n", - "############################################################\n", - "##### Section I/O\n", - "############################################################\n", - "go : batchmode control command : Ignore\n", - "gogo : batchmode control command : Ignore\n", - "reset_stars : Reset the star structures. Used in batchmode : Ignore\n", - "reset_stars_defaults : Reset the star structures and set defaults. Used in batchmode : Ignore\n", - "defaults : Reset all defaults. Used in batchmode : Ignore\n", - "echo : Activate batchmode command echoing, i.e. when you enter a command, binary_c repeats the command then executes it. : Ignore\n", - "noecho : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "noechonow : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "bye : Quit binary_c. Used in batchmode. : Ignore\n", - "fin : batchmode control command : Ignore\n", - "reset_prefs : Reset preferences struct. Used in batchmode : Ignore\n", - "status : Output batchmode status information. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Algorithms\n", - "############################################################\n", - "repeat : If > 1, repeats the system as many times as required. Handy if you're using Monte-Carlo kicks and want to sample the parameter space well. Also, if you are running speed tests this is good to give a statistically more reasonable result. (See e.g. 'tbse pgo'). : (null)\n", - "random_systems : Experimental. Use this to apply random initial system parameters (masses, separations, etc.). Useful for testing only. : (null)\n", - "\n", - "############################################################\n", - "##### Section Misc\n", - "############################################################\n", - "random_seed : Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "random_systems_seed : Random number seed for the generation of random systems. See random_systems and random_seed. : (null)\n", - "random_skip : Skip the first <random_seed> random numbers that are generated. Usually this is 0 so they are all used. : (null)\n", - "idum : [NB: deprecated, please use 'random_seed' instead.] Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "reverse_time : Make time go backwards. To be considered very experimental! : (null)\n", - "start_time : Start time for the simulation. : (null)\n", - "warmup_cpu : Uses the CPU at maximum power the given number of seconds, prior to running normal stellar evolution. : Ignore\n", - "help : Display help pages. Usage: --help <help topic>. : Ignore\n", - "argopts : Display argument options. Usage: --argopts <argument>. : Ignore\n", - "help_all : Display all help pages. : Ignore\n", - "list_args : Display list of arguments with their default values. Useful for batchmode. : Ignore\n", - "\n" + "(abridged)\n" ] } ], "source": [ - "print(_binary_c_bindings.return_help_all())" + "print('\\n'.join(_binary_c_bindings.return_help_all().splitlines()[:10]))\n", + "print(\"(abridged)\")" ] }, { @@ -873,12 +300,14 @@ "__ARG_BEGIN\n", "metallicity = 0.02\n", "effective_metallicity = -1\n", - "M_1 = 0\n" + "M_1 = 0\n", + "(abridged)\n" ] } ], "source": [ - "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))" + "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -966,7 +395,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -980,7 +409,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/doctrees/nbsphinx/examples/notebook_custom_logging.ipynb b/docs/build/doctrees/nbsphinx/examples/notebook_custom_logging.ipynb index 8dfb85034..8627ffb47 100644 --- a/docs/build/doctrees/nbsphinx/examples/notebook_custom_logging.ipynb +++ b/docs/build/doctrees/nbsphinx/examples/notebook_custom_logging.ipynb @@ -23,7 +23,7 @@ " create_and_load_logging_function,\n", ")\n", "from binarycpython.utils.run_system_wrapper import run_system\n", - "from binarycpython.utils.grid import Population" + "from binarycpython import Population" ] }, { @@ -461,11 +461,19 @@ "# print (abridged) output\n", "print(\"\\n\".join(output.splitlines()[-2:]))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c708268f-0b0c-48ea-9155-ec632a0acc3a", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -479,7 +487,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/doctrees/nbsphinx/examples/notebook_ensembles.ipynb b/docs/build/doctrees/nbsphinx/examples/notebook_ensembles.ipynb new file mode 100644 index 000000000..44ef8a7ef --- /dev/null +++ b/docs/build/doctrees/nbsphinx/examples/notebook_ensembles.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d4799c94-afd8-41db-ab82-e0a6e278ed77", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/build/doctrees/nbsphinx/examples/notebook_extra_features.ipynb b/docs/build/doctrees/nbsphinx/examples/notebook_extra_features.ipynb index 44c19c112..a0f0fc0d9 100644 --- a/docs/build/doctrees/nbsphinx/examples/notebook_extra_features.ipynb +++ b/docs/build/doctrees/nbsphinx/examples/notebook_extra_features.ipynb @@ -18,11 +18,11 @@ "metadata": {}, "outputs": [], "source": [ + "from binarycpython import Population\n", "from binarycpython.utils.functions import (\n", " get_help,\n", " get_help_all,\n", " get_help_super,\n", - " return_binary_c_version_info,\n", " get_defaults\n", ")\n", "# help(binarycpython.utils.functions)" @@ -116,8 +116,7 @@ "metadata": {}, "source": [ "## Build information of binary_c\n", - "Sometimes we want to know with which settings binary_c has been built. We can use the function `return_binary_c_version_info` for this.\n", - "This function will parse the version info of binary_c and return a dictionary with all the settings." + "It can be useful to fetch the information with which the current version of binary_c has been configured with. We can do that through the Population object, by calling the instance method `return_binary_c_version_info`. This function will parse the version info of binary_c and return a dictionary with all the settings." ] }, { @@ -130,13 +129,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'nucleosynthesis_sources', 'miscellaneous'])\n" + "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'units', 'nucleosynthesis_sources', 'miscellaneous'])\n" ] } ], "source": [ - "version_info_dict = return_binary_c_version_info(parsed=True)\n", - "print(version_info_dict.keys())" + "version_info = Population().return_binary_c_version_info(parsed=True)\n", + "print(version_info.keys())" ] }, { @@ -168,27 +167,11 @@ "\n", "TODO:" ] - }, - { - "cell_type": "markdown", - "id": "b3c259ef-9f89-4b26-9ce3-45af625bc398", - "metadata": {}, - "source": [ - "## Getting help\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bf3c1e28-1662-47a7-abab-aa6fb0ef0882", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -202,7 +185,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/doctrees/nbsphinx/examples/notebook_individual_systems.ipynb b/docs/build/doctrees/nbsphinx/examples/notebook_individual_systems.ipynb index deb72fc55..d752fc66e 100644 --- a/docs/build/doctrees/nbsphinx/examples/notebook_individual_systems.ipynb +++ b/docs/build/doctrees/nbsphinx/examples/notebook_individual_systems.ipynb @@ -62,7 +62,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SINGLE_STAR_LIFETIME 1 12461.2\n", + "SINGLE_STAR_LIFETIME 1 12461.1\n", "\n" ] } @@ -90,17 +90,17 @@ "name": "stdout", "output_type": "stream", "text": [ - " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=62172 RANDOM_COUNT=0\n", + " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=22065 RANDOM_COUNT=0\n", " 0.0000 1.000 0.000 1 15 -1 -1 -1.00 0.000 0.000 \"INITIAL \"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"OFF_MS\"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 11582.2424 1.000 0.000 3 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12325.1085 0.817 0.000 4 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12457.1301 0.783 0.000 5 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", - " 12461.1627 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 15000.0000 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", + " 12461.1490 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 15000.0000 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", "\n" ] } @@ -236,13 +236,13 @@ "4 0.000002 1.0 1.0 1.0\n", "5 0.000003 1.0 1.0 1.0\n", "... ... ... ... ...\n", - "1345 12461.080763 0.71617 1.0 6.0\n", - "1346 12461.162734 0.644553 1.0 11.0\n", - "1347 13461.162734 0.644553 1.0 11.0\n", - "1348 14461.162734 0.644553 1.0 11.0\n", - "1349 15000.0 0.644553 1.0 11.0\n", + "1250 12461.061259 0.718593 1.0 6.0\n", + "1251 12461.149038 0.678026 1.0 11.0\n", + "1252 13461.149038 0.678026 1.0 11.0\n", + "1253 14461.149038 0.678026 1.0 11.0\n", + "1254 15000.0 0.678026 1.0 11.0\n", "\n", - "[1349 rows x 4 columns]\n" + "[1254 rows x 4 columns]\n" ] } ], @@ -299,10 +299,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", - "adding: M_1=10 to BSE_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" @@ -360,9 +358,9 @@ ");\n", " to grid_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_dafa15d2b1e64e19972ac0e9eb5c9a55.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_34a350b8f15c4d149deab88632948c99.so\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 0 10 1\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 10 10 1\n", "EXAMPLE_MASSLOSS 1.000000000000e-06 10 10 10 1\n", @@ -381,7 +379,7 @@ "\n", " stardata->star[0].stellar_type //5\n", ");\n", - "\"\"\" \n", + "\"\"\"\n", "\n", "example_pop.set(C_logging_code=custom_logging_print_statement)\n", "\n", @@ -397,7 +395,7 @@ "source": [ "Lastly we can add a parse_function to handle parsing the output again. \n", "\n", - "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be (self, output). Returning the data is useful when running evolve_single(), but won't be used in a population evolution." + "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be `(self, output)`. Returning the data is useful when running evolve_single(), but won't be used in a population evolution." ] }, { @@ -464,13 +462,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function object_parse_function at 0x149c2e81ec10> to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to custom_options >>>>\n", - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", + "adding: parse_function=<function object_parse_function at 0x7f35b603e9d0> to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-david/notebooks/notebook_individual_systems to custom_options >>>>\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_0639ee205c7d4782b4a27378f5d890bd.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_446fe4cddfa94946bcafd55591ef3730.so\n", "[['time', 'mass', 'initial_mass', 'stellar_type'], [0.0, 10.0, 0.0, 10.0, 1.0], [0.0, 10.0, 10.0, 10.0, 1.0], [1e-06, 10.0, 10.0, 10.0, 1.0]]\n", "dict_keys(['time', 'mass', 'initial_mass', 'stellar_type'])\n" ] @@ -570,7 +567,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -584,7 +581,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/doctrees/nbsphinx/examples/notebook_population.ipynb b/docs/build/doctrees/nbsphinx/examples/notebook_population.ipynb index 760b1480e..ebc19cff0 100644 --- a/docs/build/doctrees/nbsphinx/examples/notebook_population.ipynb +++ b/docs/build/doctrees/nbsphinx/examples/notebook_population.ipynb @@ -25,7 +25,7 @@ "import os\n", "\n", "from binarycpython.utils.custom_logging_functions import temp_dir\n", - "from binarycpython.utils.grid import Population\n", + "from binarycpython import Population\n", "\n", "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n", "\n", @@ -58,13 +58,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: M_1=10 to BSE_options\n", - "adding: orbital_period=45000000080 to BSE_options\n", - "adding: max_evolution_time=15000 to BSE_options\n", - "adding: eccentricity=0.02 to BSE_options\n", "adding: num_cores=2 to grid_options\n", - "adding: tmp_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "adding: tmp_dir=/tmp/binary_c_python-david/notebooks/notebook_population to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", "1\n", "example_pop.dat\n", @@ -139,13 +135,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n" + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n" ] }, { "data": { "text/plain": [ - "'/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'" + "'/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz'" ] }, "execution_count": 3, @@ -185,9 +185,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method add_grid_variable in module binarycpython.utils.grid:\n", + "Help on method add_grid_variable in module binarycpython.utils.population_extensions.gridcode:\n", "\n", - "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int], gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None) -> None method of binarycpython.utils.grid.Population instance\n", + "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int] = -1, gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None, index: Optional[int] = None, dry_parallel: Optional[bool] = False) -> None method of binarycpython.utils.grid.Population instance\n", " Function to add grid variables to the grid_options.\n", " \n", " The execution of the grid generation will be through a nested for loop.\n", @@ -198,17 +198,15 @@ " beware that if you insert some destructive piece of code, it will be executed anyway.\n", " Use at own risk.\n", " \n", - " Tasks:\n", - " - TODO: Fix this complex function.\n", - " \n", " Args:\n", " name:\n", " name of parameter used in the grid Python code.\n", " This is evaluated as a parameter and you can use it throughout\n", " the rest of the function\n", " \n", - " Examples:\n", - " name = 'lnm1'\n", + " Examples::\n", + " \n", + " name = 'lnM_1'\n", " \n", " parameter_name:\n", " name of the parameter in binary_c\n", @@ -223,47 +221,66 @@ " longname:\n", " Long name of parameter\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " longname = 'Primary mass'\n", + " \n", " range:\n", " Range of values to take. Does not get used really, the samplerfunc is used to\n", " get the values from\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " range = [math.log(m_min), math.log(m_max)]\n", + " \n", " samplerfunc:\n", " Function returning a list or numpy array of samples spaced appropriately.\n", " You can either use a real function, or a string representation of a function call.\n", " \n", - " Examples:\n", - " samplerfunc = \"const(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", + " Examples::\n", + " \n", + " samplerfunc = \"self.const_linear(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", " \n", " precode:\n", " Extra room for some code. This code will be evaluated within the loop of the\n", - " sampling function (i.e. a value for lnm1 is chosen already)\n", + " sampling function (i.e. a value for lnM_1 is chosen already)\n", + " \n", + " Examples::\n", + " \n", + " precode = 'M_1=math.exp(lnM_1);'\n", " \n", - " Examples:\n", - " precode = 'M_1=math.exp(lnm1);'\n", " postcode:\n", " Code executed after the probability is calculated.\n", + " \n", " probdist:\n", " Function determining the probability that gets assigned to the sampled parameter\n", " \n", - " Examples:\n", - " probdist = 'Kroupa2001(M_1)*M_1'\n", + " Examples::\n", + " \n", + " probdist = 'self.Kroupa2001(M_1)*M_1'\n", + " \n", " dphasevol:\n", " part of the parameter space that the total probability is calculated with. Put to -1\n", " if you want to ignore any dphasevol calculations and set the value to 1\n", - " Examples:\n", - " dphasevol = 'dlnm1'\n", + " \n", + " Examples::\n", + " \n", + " dphasevol = 'dlnM_1'\n", + " \n", " condition:\n", " condition that has to be met in order for the grid generation to continue\n", - " Examples:\n", - " condition = 'self.grid_options['binary']==1'\n", + " \n", + " Examples::\n", + " \n", + " condition = \"self.grid_options['binary']==1\"\n", + " \n", " gridtype:\n", " Method on how the value range is sampled. Can be either 'edge' (steps starting at\n", " the lower edge of the value range) or 'centred'\n", - " (steps starting at lower edge + 0.5 * stepsize).\n", + " (steps starting at ``lower edge + 0.5 * stepsize``).\n", + " \n", + " dry_parallel:\n", + " If True, try to parallelize this variable in dry runs.\n", " \n", " topcode:\n", " Code added at the very top of the block.\n", @@ -313,35 +330,7 @@ "execution_count": 6, "id": "47979841-2c26-4b26-8945-603d013dc93a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Added grid variable: {\n", - " \"name\": \"lnm1\",\n", - " \"parameter_name\": \"M_1\",\n", - " \"longname\": \"Primary mass\",\n", - " \"valuerange\": [\n", - " 2,\n", - " 150\n", - " ],\n", - " \"samplerfunc\": \"const(math.log(2), math.log(150), 20)\",\n", - " \"precode\": \"M_1=math.exp(lnm1)\",\n", - " \"postcode\": null,\n", - " \"probdist\": \"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", - " \"dphasevol\": \"dlnm1\",\n", - " \"condition\": \"\",\n", - " \"gridtype\": \"centred\",\n", - " \"branchpoint\": 0,\n", - " \"branchcode\": null,\n", - " \"topcode\": null,\n", - " \"bottomcode\": null,\n", - " \"grid_variable_number\": 0\n", - "}\n" - ] - } - ], + "outputs": [], "source": [ "# Add grid variables\n", "resolution = {\"M_1\": 20}\n", @@ -351,9 +340,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -364,8 +353,8 @@ "# name=\"q\",\n", "# longname=\"Mass ratio\",\n", "# valuerange=[\"0.1/M_1\", 1],\n", - "# samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - "# probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + "# samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + "# probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", "# dphasevol=\"dq\",\n", "# precode=\"M_2 = q * M_1\",\n", "# parameter_name=\"M_2\",\n", @@ -377,12 +366,12 @@ "# name=\"log10per\", # in days\n", "# longname=\"log10(Orbital_Period)\",\n", "# valuerange=[0.15, 5.5],\n", - "# samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + "# samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", "# precode=\"\"\"orbital_period = 10** log10per\n", "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - "# probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + "# probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", "# parameter_name=\"orbital_period\",\n", "# dphasevol=\"dlog10per\",\n", "# )\n" @@ -434,7 +423,7 @@ ], "source": [ "# Create custom logging statement: in this case we will log when the star turns into a compact object, and then terminate the evolution.\n", - "custom_logging_statement = \"\"\"\n", + "custom_logging_code = \"\"\"\n", "if(stardata->star[0].stellar_type >= 13) \n", "{\n", " if (stardata->model.time < stardata->model.max_evolution_time)\n", @@ -454,7 +443,7 @@ "\"\"\"\n", "\n", "example_pop.set(\n", - " C_logging_code=custom_logging_statement\n", + " C_logging_code=custom_logging_code\n", ")" ] }, @@ -476,7 +465,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function parse_function at 0x1528ac7290d0> to grid_options\n" + "adding: parse_function=<function parse_function at 0x7f2b6ca163a0> to grid_options\n" ] } ], @@ -552,38 +541,41 @@ "output_type": "stream", "text": [ "adding: verbosity=0 to grid_options\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", - "EXAMPLE_COMPACT_OBJECT 4.139293101586e+01 1.29427 8.13626 0.00202467 13\n", - "EXAMPLE_COMPACT_OBJECT 2.802986496151e+01 1.33699 10.0967 0.00152924 13\n", - "EXAMPLE_COMPACT_OBJECT 1.963621764679e+01 1.39754 12.5294 0.00115504 13\n", - "EXAMPLE_COMPACT_OBJECT 1.427601421985e+01 1.47745 15.5483 0.000872405 13\n", - "EXAMPLE_COMPACT_OBJECT 1.094409257247e+01 1.57571 19.2947 0.00065893 13\n", - "EXAMPLE_COMPACT_OBJECT 9.181971798545e+00 1.68748 23.9436 0.000497691 13\n", - "EXAMPLE_COMPACT_OBJECT 7.905335716621e+00 1.77287 29.7128 0.000375908 13\n", - "EXAMPLE_COMPACT_OBJECT 7.451192744924e+00 1.81495 36.872 0.000283924 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396133472739e+00 1.82088 45.7561 0.000214449 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396675941641e+00 1.82123 56.7809 0.000161974 13\n", - "EXAMPLE_COMPACT_OBJECT 7.404641347602e+00 1.82074 70.4621 0.000122339 13\n", - "EXAMPLE_COMPACT_OBJECT 7.444217227690e+00 1.81636 87.4397 9.2403e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.453317880232e+00 1.81536 108.508 6.97923e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.450828476487e+00 1.81563 134.653 5.27143e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 3.598268106227e+01 1.30592 8.75988 0.00193614 13\n", + "EXAMPLE_COMPACT_OBJECT 2.436983545111e+01 1.35842 10.9948 0.00144093 13\n", + "EXAMPLE_COMPACT_OBJECT 1.690157944401e+01 1.43124 13.7998 0.00107238 13\n", + "EXAMPLE_COMPACT_OBJECT 1.242397939068e+01 1.52416 17.3205 0.000798096 13\n", + "EXAMPLE_COMPACT_OBJECT 9.756794139032e+00 1.66914 21.7394 0.000593966 13\n", + "EXAMPLE_COMPACT_OBJECT 8.401414766976e+00 1.73729 27.2857 0.000442046 13\n", + "EXAMPLE_COMPACT_OBJECT 7.536373523810e+00 1.80677 34.247 0.000328983 13\n", + "EXAMPLE_COMPACT_OBJECT 7.393982410080e+00 1.82164 42.9844 0.000244839 13\n", + "EXAMPLE_COMPACT_OBJECT 7.396470605248e+00 1.82129 53.9508 0.000182216 13\n", + "Do join of subprocesses ...\n", + "EXAMPLE_COMPACT_OBJECT 7.399005684057e+00 1.82041 67.7151 0.00013561 13\n", + "EXAMPLE_COMPACT_OBJECT 7.443375325717e+00 1.81645 84.9909 0.000100925 13\n", + "EXAMPLE_COMPACT_OBJECT 7.451195752942e+00 1.81559 106.674 7.51114e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 7.452661646076e+00 1.81543 133.89 5.59e-05 13\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-50fb66cc659c46c8bbc29fe0c8651c2f finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.30s to run 20 systems on 2 cores *\n", - "* = 6.60s of CPU time. *\n", - "* Maximum memory use 433.070 MB *\n", + "* Population-ce756bb317f64099a459bf8b55a746ac finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.73s to run 19 systems on 2 cores *\n", + "* = 1.46s of CPU time. *\n", + "* Maximum memory use 293.406 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n" + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n" ] } ], @@ -614,7 +606,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'population_name': '50fb66cc659c46c8bbc29fe0c8651c2f', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.04440288843805411, 'total_count': 20, 'start_timestamp': 1635760967.3245144, 'end_timestamp': 1635760970.6249793, 'total_mass_run': 684.2544031669784, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n" + "{'population_id': 'ce756bb317f64099a459bf8b55a746ac', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.044387171445641534, 'total_count': 19, 'start_timestamp': 1646563001.7193637, 'end_timestamp': 1646563002.4480088, 'time_elapsed': 0.7286450862884521, 'total_mass_run': 649.905447944397, 'total_probability_weighted_mass_run': 0.28133908148630704, 'zero_prob_stars_skipped': 0}\n" ] } ], @@ -642,9 +634,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method write_binary_c_calls_to_file in module binarycpython.utils.grid:\n", + "Help on method write_binary_c_calls_to_file in module binarycpython.utils.population_extensions.dataIO:\n", "\n", - "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False) -> None method of binarycpython.utils.grid.Population instance\n", + "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False, encoding='utf-8') -> None method of binarycpython.utils.grid.Population instance\n", " Function that loops over the grid code and writes the generated parameters to a file.\n", " In the form of a command line call\n", " \n", @@ -655,10 +647,6 @@ " \n", " On default this will write to the datadir, if it exists\n", " \n", - " Tasks:\n", - " - TODO: test this function\n", - " - TODO: make sure the binary_c_python .. output file has a unique name\n", - " \n", " Args:\n", " output_dir: (optional, default = None) directory where to write the file to. If custom_options['data_dir'] is present, then that one will be used first, and then the output_dir\n", " output_filename: (optional, default = None) filename of the output. If not set it will be called \"binary_c_calls.txt\"\n", @@ -685,19 +673,19 @@ "output_type": "stream", "text": [ "Generating grid code\n", - "Generating grid code\n", - "Saving grid code to grid_options\n", - "Writing grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py [dry_run = False]\n", - "Symlinked grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid-latest2 \n", - "Loading grid code function from /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py\n", + "Save grid code to grid_options\n", + "Write grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py [dry_run = False]\n", + "Symlinked grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid-latest2 \n", + "Load grid code function from /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py\n", "Grid code loaded\n", - "Writing binary_c calls to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "binary_c M_1 2.227955577093495 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.010905083645619543\n", - "binary_c M_1 2.7647737053496777 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.00823663875514986\n", - "binary_c M_1 3.430936289925951 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681537 probability 0.0062211552141636295\n", - "binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.004698855121516281\n" + "Writing binary_c calls to /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "binary_c M_1 2.2406484012210224 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.011394572976608001\n", + "binary_c M_1 2.812296769855663 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191117 probability 0.008480166685456411\n", + "binary_c M_1 3.5297876799548944 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.006311182276049824\n", + "binary_c M_1 4.430329401616038 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.004696962123378559\n", + "(abridged)\n" ] } ], @@ -707,7 +695,8 @@ "print(calls_filename)\n", "\n", "with open(calls_filename, 'r') as f:\n", - " print('\\n'.join(f.read().splitlines()[:4]))" + " print('\\n'.join(f.read().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -715,7 +704,15 @@ "id": "60359eb1-4d0c-4d2d-8265-ec5171b944a2", "metadata": {}, "source": [ - "## Full examples of population scripts\n", + "## Full examples of population scripts" + ] + }, + { + "cell_type": "markdown", + "id": "1ee279d6-e120-4aef-9e57-845e534f5c6a", + "metadata": {}, + "source": [ + "### Single star population\n", "Below is a full setup for a population of single stars" ] }, @@ -729,43 +726,51 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-05e51ba114934b37bab48f1db40b7333 finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.46s to run 20 systems on 2 cores *\n", - "* = 6.93s of CPU time. *\n", - "* Maximum memory use 437.047 MB *\n", + "* Population-0fa4c2b8707741a5ab41d209ef95a3a4 finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.61s to run 19 systems on 2 cores *\n", + "* = 1.23s of CPU time. *\n", + "* Maximum memory use 299.531 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass zams_mass probability radius stellar_type\n", - "4.139293101586e+01 1.29427 8.13626 0.00202467 1.72498e-05 13\n", - "2.802986496151e+01 1.33699 10.0967 0.00152924 1.72498e-05 13\n", - "1.963621764679e+01 1.39754 12.5294 0.00115504 1.72498e-05 13\n", - "1.427601421985e+01 1.47745 15.5483 0.000872405 1.72498e-05 13\n", - "1.094409257247e+01 1.57571 19.2947 0.00065893 1.72498e-05 13\n", - "9.181971798545e+00 1.68748 23.9436 0.000497691 1.72498e-05 13\n", - "7.905335716621e+00 1.77287 29.7128 0.000375908 1.72498e-05 13\n", - "7.451192744924e+00 1.81495 36.872 0.000283924 1.72498e-05 13\n", - "7.396133472739e+00 1.82088 45.7561 0.000214449 1.72498e-05 13\n", - "7.396675941641e+00 1.82123 56.7809 0.000161974 1.72498e-05 13\n", - "7.404641347602e+00 1.82074 70.4621 0.000122339 1.72498e-05 13\n", - "7.444217227690e+00 1.81636 87.4397 9.2403e-05 1.72498e-05 13\n", - "7.453317880232e+00 1.81536 108.508 6.97923e-05 1.72498e-05 13\n", - "7.450828476487e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n", + "3.598268106227e+01 1.30592 8.75988 0.00193614 1.72498e-05 13\n", + "2.436983545111e+01 1.35842 10.9948 0.00144093 1.72498e-05 13\n", + "1.690157944401e+01 1.43124 13.7998 0.00107238 1.72498e-05 13\n", + "1.242397939068e+01 1.52416 17.3205 0.000798096 1.72498e-05 13\n", + "9.756794139032e+00 1.66914 21.7394 0.000593966 1.72498e-05 13\n", + "8.401414766976e+00 1.73729 27.2857 0.000442046 1.72498e-05 13\n", + "7.536373523810e+00 1.80677 34.247 0.000328983 1.72498e-05 13\n", + "7.393982410080e+00 1.82164 42.9844 0.000244839 1.72498e-05 13\n", + "7.396470605248e+00 1.82129 53.9508 0.000182216 1.72498e-05 13\n", + "7.399005684057e+00 1.82041 67.7151 0.00013561 1.72498e-05 13\n", + "7.451195752942e+00 1.81559 106.674 7.51114e-05 1.72498e-05 13\n", + "7.443375325717e+00 1.81645 84.9909 0.000100925 1.72498e-05 13\n", + "7.452661646076e+00 1.81543 133.89 5.59e-05 1.72498e-05 13\n", "\n" ] } @@ -877,9 +882,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\",\n", @@ -908,7 +913,8 @@ "id": "c2ab0979-6575-481d-9c1c-ca98517b2437", "metadata": {}, "source": [ - "We can also set up a population that samples biinary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded top be more useful" + "### Binary star population\n", + "We can also set up a population that samples binary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded to be more useful. Also note that we run very little systems in the following example, as its just intended to show how the code works." ] }, { @@ -921,45 +927,42 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 27 stars with a total probability of 0.0248684\n", - "**************************************\n", - "* Total starcount for this run is 27 *\n", - "* Total probability is 0.0248684 *\n", - "**************************************\n", + "Grid has handled 8 stars with a total probability of 0.0211592\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 8 *\n", + "* Total probability is 0.0211592 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-8bc1eafea1c34b05894c1618639d8c37 finished! *\n", - "* The total probability is 0.0248684. *\n", - "* It took a total of 16.10s to run 27 systems on 2 cores *\n", - "* = 32.20s of CPU time. *\n", - "* Maximum memory use 437.695 MB *\n", + "* Population-0eb5c0c9abd34607a6ee060b26a7e32f finished! *\n", + "* The total probability is 0.0211592. *\n", + "* It took a total of 0.84s to run 8 systems on 2 cores *\n", + "* = 1.68s of CPU time. *\n", + "* Maximum memory use 300.125 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass_1 zams_mass_1 mass_2 zams_mass_2 stellar_type_1 prev_stellar_type_1 stellar_type_2 prev_stellar_type_2 metallicity probability\n", - "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n", - "1.935920339886e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n", - "2.123794969278e+01 1.30902 17.3205 1.58518 8.71025 13 13 13 5 0.02 0.000287968\n", - "3.579099761269e+01 1.52414 17.3205 1.30642 8.71025 13 13 13 5 0.02 0.000220016\n", - "1.674063083432e+01 1.29457 17.3205 0 14.4504 13 13 15 2 0.02 0.000498487\n", - "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n", - "1.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n", - "1.367065497322e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-05\n", - "1.772169325355e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n", - "2.021960493499e+01 1.82061 73.0434 1.39205 12.2572 13 13 13 5 0.02 3.38788e-05\n", - "9.012246630357e+00 1.81529 73.0434 0 36.5717 13 8 15 15 0.02 7.67586e-05\n", - "7.462779538274e+00 1.82255 73.0434 1.81499 36.5717 13 13 13 8 0.02 3.38788e-05\n", - "1.030499912298e+01 1.80592 73.0434 1.81066 36.5717 13 13 13 8 0.02 4.43422e-05\n", - "9.823059079115e+00 2.43711 73.0434 1.81689 60.8862 14 14 13 8 0.02 7.67586e-05\n", - "7.394722435913e+00 1.79092 73.0434 1.79092 60.8862 13 8 13 8 0.02 4.43422e-05\n", - "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n", + "1.378266748188e+01 1.66293 50.9713 1.78767 12.8178 13 13 13 8 0.02 0.000339963\n", + "1.817608462595e+01 1.82104 50.9713 1.41436 12.8178 13 13 13 5 0.02 0.000193036\n", + "7.422997711686e+00 1.82479 50.9713 1.82171 38.2535 13 13 13 8 0.02 0.000193036\n", + "1.205711924468e+01 1.73765 50.9713 0 38.2535 13 13 15 8 0.02 0.000339963\n", "\n" ] } @@ -1089,9 +1092,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -1102,8 +1105,8 @@ " name=\"q\",\n", " longname=\"Mass ratio\",\n", " valuerange=[\"0.1/M_1\", 1],\n", - " samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - " probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + " samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + " probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", " dphasevol=\"dq\",\n", " precode=\"M_2 = q * M_1\",\n", " parameter_name=\"M_2\",\n", @@ -1115,12 +1118,12 @@ " name=\"log10per\", # in days\n", " longname=\"log10(Orbital_Period)\",\n", " valuerange=[0.15, 5.5],\n", - " samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + " samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", " precode=\"\"\"orbital_period = 10** log10per\n", "sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - " probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + " probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", " parameter_name=\"orbital_period\",\n", " dphasevol=\"dlog10per\",\n", ")\n", @@ -1145,7 +1148,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1159,7 +1162,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/doctrees/population_extensions/HPC.doctree b/docs/build/doctrees/population_extensions/HPC.doctree index e8271bb13713dd79bcbe735a82e144bb31ec58ba..f5174df626d3da5c2236f82791250c7e84602a52 100644 GIT binary patch delta 4658 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 K@i>a*vi|{zjrEHF delta 4454 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 diff --git a/docs/build/doctrees/population_extensions/condor.doctree b/docs/build/doctrees/population_extensions/condor.doctree index 38b40fee1aab22bd70b65ff9cd344963a1e6f72d..ac1f6e19e0de3e3fe42c204d33556333ce47bd7e 100644 GIT binary patch delta 115 zcmdlvnd$#zCYA=)sb4m-T#;rxH@R0vNm(JWSRqlNxTGjEFI`6=+Bv7RxFog6(<N3f hI-n>&IkmVrcJg|eE{+WL*eMxeJw$8Tyk3SY7XY`HDo+3a delta 40 pcmexAnQ7-_CYA=)sp~efT#;s6J$ZwS(quWAiEvie=6czN8~{pr51jx2 diff --git a/docs/build/doctrees/population_extensions/slurm.doctree b/docs/build/doctrees/population_extensions/slurm.doctree index dfc5ff56ee1a80f2eff2d405b59dc736652a9a12..ca741290c6891c3279a2b8df8abfcb815a80cc3d 100644 GIT binary patch delta 143 zcmZpf$TV#t6H5c@)b5Qe_w5;vPVRM3R8>eUR!CGRE-A{)OV?3|&dN{9Oo`P4(TPPx wiItgoDXA5)lh-*kaAdH@PRS7KAwk>bbq=EHLM$QvF8))Xy1|^yycy*R0I^>)M*si- delta 136 zcmbO>k*Q@O6H5c@)XI%4_w5-MOnzdo$gHOjGP%w{da{Q@CWc7T<_gEDYF-K<{x1Gj u3Yo<UB^f{>tu!yWBr`uxAuTg6vp6F)#ePZ#d+d}9u^xg7H_K;~D*yn_IWQyu diff --git a/docs/build/html/_images/test_coverage.svg b/docs/build/html/_images/test_coverage.svg index f5af1dbee..ffd257bde 100644 --- a/docs/build/html/_images/test_coverage.svg +++ b/docs/build/html/_images/test_coverage.svg @@ -15,7 +15,7 @@ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> <text x="31.5" y="14">coverage</text> - <text x="80" y="15" fill="#010101" fill-opacity=".3">72%</text> - <text x="80" y="14">72%</text> + <text x="80" y="15" fill="#010101" fill-opacity=".3">71%</text> + <text x="80" y="14">71%</text> </g> </svg> diff --git a/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html b/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html index abc13bbda..7e442aac6 100644 --- a/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html +++ b/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html @@ -551,9 +551,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/dicts.html b/docs/build/html/_modules/binarycpython/utils/dicts.html index d5b5ff435..c15be2d2a 100644 --- a/docs/build/html/_modules/binarycpython/utils/dicts.html +++ b/docs/build/html/_modules/binarycpython/utils/dicts.html @@ -144,23 +144,31 @@ <span class="sd"> Returns:</span> <span class="sd"> new_dict: dict of which the keys have been turned to float types where possible</span> + +<span class="sd"> If input_dict is None or empty, returns an empty dict</span> <span class="sd"> """</span> <span class="n">new_dict</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">()</span> - <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">input_dict</span><span class="p">:</span> - <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="p">(</span><span class="nb">dict</span><span class="p">,</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">)):</span> - <span class="k">try</span><span class="p">:</span> - <span class="n">num_key</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> - <span class="n">new_dict</span><span class="p">[</span><span class="n">num_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">recursive_change_key_to_float</span><span class="p">(</span><span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> - <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> - <span class="n">new_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">recursive_change_key_to_float</span><span class="p">(</span><span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> - <span class="k">else</span><span class="p">:</span> - <span class="k">try</span><span class="p">:</span> - <span class="n">num_key</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> - <span class="n">new_dict</span><span class="p">[</span><span class="n">num_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> - <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> - <span class="n">new_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> + <span class="c1"># if the input dict is None or empty, return an empty dict</span> + <span class="k">if</span> <span class="n">input_dict</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">input_dict</span><span class="p">:</span> + <span class="k">pass</span> + + <span class="k">else</span><span class="p">:</span> + <span class="c1"># dict has keys, loop over them</span> + <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">input_dict</span><span class="p">:</span> + <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="p">(</span><span class="nb">dict</span><span class="p">,</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">)):</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">num_key</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> + <span class="n">new_dict</span><span class="p">[</span><span class="n">num_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">recursive_change_key_to_float</span><span class="p">(</span><span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> + <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> + <span class="n">new_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">recursive_change_key_to_float</span><span class="p">(</span><span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">num_key</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> + <span class="n">new_dict</span><span class="p">[</span><span class="n">num_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> + <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> + <span class="n">new_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">input_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="k">return</span> <span class="n">new_dict</span></div> @@ -954,9 +962,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/ensemble.html b/docs/build/html/_modules/binarycpython/utils/ensemble.html index fe058a1fb..f455ac536 100644 --- a/docs/build/html/_modules/binarycpython/utils/ensemble.html +++ b/docs/build/html/_modules/binarycpython/utils/ensemble.html @@ -361,8 +361,14 @@ <span class="k">if</span> <span class="n">inspect</span><span class="o">.</span><span class="n">isfunction</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="n">py_rinterpolate</span><span class="o">.</span><span class="n">Rinterpolate</span><span class="p">):</span> <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> - <span class="k">return</span> <span class="n">obj</span></div> - + <span class="k">else</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">string_version</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> + <span class="k">return</span> <span class="n">string_version</span> + <span class="k">except</span><span class="p">:</span> + <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span> + <span class="s2">"Unserializable object </span><span class="si">{}</span><span class="s2"> of type </span><span class="si">{}</span><span class="s2">. Attempted to convert to string but that failed."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">obj</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">obj</span><span class="p">))</span> + <span class="p">)</span></div> <div class="viewcode-block" id="BinarycDecoder"><a class="viewcode-back" href="../../../ensemble.html#binarycpython.utils.ensemble.BinarycDecoder">[docs]</a><span class="k">class</span> <span class="nc">BinarycDecoder</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">JSONDecoder</span><span class="p">):</span> <span class="sd">"""</span> @@ -470,9 +476,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/functions.html b/docs/build/html/_modules/binarycpython/utils/functions.html index 0bcf8e346..6972ad96d 100644 --- a/docs/build/html/_modules/binarycpython/utils/functions.html +++ b/docs/build/html/_modules/binarycpython/utils/functions.html @@ -216,7 +216,6 @@ <span class="k">for</span> <span class="n">d</span><span class="p">,</span> <span class="n">background_colour</span> <span class="ow">in</span> <span class="n">background_colours</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> <span class="n">colours</span><span class="p">[</span><span class="n">c</span> <span class="o">+</span> <span class="s2">" on "</span> <span class="o">+</span> <span class="n">d</span><span class="p">]</span> <span class="o">=</span> <span class="n">foreground_colour</span> <span class="o">+</span> <span class="n">background_colour</span> <span class="n">colours</span><span class="p">[</span><span class="s2">"reset"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Style</span><span class="o">.</span><span class="n">RESET_ALL</span> - <span class="k">return</span> <span class="n">colours</span></div> @@ -1283,6 +1282,18 @@ <span class="n">event_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">split_line</span><span class="p">[</span><span class="mi">9</span><span class="p">:]))</span> <span class="nb">print</span><span class="p">(</span><span class="n">event_list</span><span class="p">)</span></div> + +<div class="viewcode-block" id="quotewrap"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.quotewrap">[docs]</a><span class="k">def</span> <span class="nf">quotewrap</span><span class="p">(</span><span class="nb">list</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Given a list, wrap each item in double quotes and return the new list</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="p">[</span><span class="s1">'"'</span> <span class="o">+</span> <span class="n">_x</span> <span class="o">+</span> <span class="s1">'"'</span> <span class="k">for</span> <span class="n">_x</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">]</span></div> + +<div class="viewcode-block" id="command_string_from_list"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.command_string_from_list">[docs]</a><span class="k">def</span> <span class="nf">command_string_from_list</span><span class="p">(</span><span class="nb">list</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Given a list, turn it into a quoted command string</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="s1">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">quotewrap</span><span class="p">(</span><span class="nb">list</span><span class="p">))</span></div> </pre></div> </div> @@ -1300,9 +1311,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/grid.html b/docs/build/html/_modules/binarycpython/utils/grid.html index abc9acf7e..2c9765a3f 100644 --- a/docs/build/html/_modules/binarycpython/utils/grid.html +++ b/docs/build/html/_modules/binarycpython/utils/grid.html @@ -298,8 +298,8 @@ <span class="c1"># non-existant subdicts.</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_results</span> <span class="o">=</span> <span class="n">AutoVivificationDict</span><span class="p">()</span> - <span class="c1"># Create location where ensemble results are written to</span> - <span class="bp">self</span><span class="o">.</span><span class="n">grid_ensemble_results</span> <span class="o">=</span> <span class="p">{}</span> + <span class="c1"># Create grid ensemble data location</span> + <span class="bp">self</span><span class="o">.</span><span class="n">grid_ensemble_results</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_new_grid_ensemble_results</span><span class="p">()</span> <span class="c1"># add metadata</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_system_metadata</span><span class="p">()</span> @@ -310,13 +310,17 @@ <div class="viewcode-block" id="Population.jobID"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.jobID">[docs]</a> <span class="k">def</span> <span class="nf">jobID</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="sd">"""</span> -<span class="sd"> Function to return the job ID number of this process</span> +<span class="sd"> Function to return the job ID number of this process as a string.</span> <span class="sd"> Normal processes return their process ID (PID)</span> <span class="sd"> HPC processes return whatever HPC_jobID() gives.</span> <span class="sd"> """</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_job</span><span class="p">():</span> <span class="n">jobID</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_jobID</span><span class="p">()</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">jobID</span><span class="p">:</span> + <span class="c1"># fallback: use process ID but with "HPC" prepended</span> + <span class="c1"># (this should never happen!)</span> + <span class="n">jobID</span> <span class="o">=</span> <span class="s2">"HPC</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">jobID</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span><span class="p">)</span> <span class="k">return</span> <span class="n">jobID</span></div> @@ -474,14 +478,19 @@ <span class="n">old_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="n">parameter</span><span class="p">]</span> <span class="n">old_value_found</span> <span class="o">=</span> <span class="kc">True</span> - <span class="k">elif</span> <span class="n">parameter</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">defaults</span><span class="p">:</span> - <span class="n">old_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">defaults</span><span class="p">[</span><span class="n">parameter</span><span class="p">]</span> - <span class="n">old_value_found</span> <span class="o">=</span> <span class="kc">True</span> - <span class="k">elif</span> <span class="n">parameter</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">:</span> <span class="n">old_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="n">parameter</span><span class="p">]</span> <span class="n">old_value_found</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">elif</span> <span class="n">parameter</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">:</span> + <span class="n">old_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">[</span><span class="n">parameter</span><span class="p">]</span> + <span class="n">old_value_found</span> <span class="o">=</span> <span class="kc">True</span> + + <span class="k">elif</span> <span class="n">parameter</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">defaults</span><span class="p">:</span> + <span class="c1"># this will revert to a string type, always</span> + <span class="n">old_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">defaults</span><span class="p">[</span><span class="n">parameter</span><span class="p">]</span> + <span class="n">old_value_found</span> <span class="o">=</span> <span class="kc">True</span> + <span class="c1"># (attempt to) convert type</span> <span class="k">if</span> <span class="n">old_value_found</span><span class="p">:</span> <span class="k">if</span> <span class="n">old_value</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> @@ -801,7 +810,7 @@ <span class="c1"># empty results</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_results</span> <span class="o">=</span> <span class="n">AutoVivificationDict</span><span class="p">()</span> - <span class="bp">self</span><span class="o">.</span><span class="n">grid_ensemble_results</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">grid_ensemble_results</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_new_grid_ensemble_results</span><span class="p">()</span> <span class="c1"># set number of processes/cores we want to use</span> <span class="bp">self</span><span class="o">.</span><span class="n">_set_nprocesses</span><span class="p">()</span> @@ -884,7 +893,6 @@ <span class="c1"># Make sure the subdirs of the tmp dir exist</span> <span class="n">subdirs</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"failed_systems"</span><span class="p">,</span> - <span class="s2">"current_system"</span><span class="p">,</span> <span class="s2">"process_summary"</span><span class="p">,</span> <span class="s2">"runtime_systems"</span><span class="p">,</span> <span class="s2">"snapshots"</span><span class="p">,</span> @@ -900,6 +908,20 @@ <span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">code</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> + <span class="c1"># make sure the arg logging directory exists if we need it</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"log_args"</span><span class="p">]:</span> + <span class="n">path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"log_args_dir"</span><span class="p">]</span> + <span class="p">)</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dir_ok</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">False</span><span class="p">:</span> + <span class="nb">print</span><span class="p">(</span> + <span class="s2">"Failed to make directory at </span><span class="si">{log_args_dir}</span><span class="s2"> for output of system arguments. Please check that this directory is correct and you have write access."</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="n">subdir</span><span class="o">=</span><span class="n">subdir</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">path</span> + <span class="p">)</span> + <span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">code</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> + <span class="c1"># restore from existing HPC files</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_restore</span><span class="p">()</span> @@ -1682,17 +1704,17 @@ <span class="c1"># that was on, we log each current system to a file (each thread has one).</span> <span class="c1"># Each new system overrides the previous</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"log_args"</span><span class="p">]:</span> + <span class="n">argfile</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"log_args_dir"</span><span class="p">],</span> + <span class="s2">"process_</span><span class="si">{}</span><span class="s2">.txt"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">jobID</span><span class="p">()),</span> + <span class="p">)</span> <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span> - <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> - <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"log_args_dir"</span><span class="p">],</span> - <span class="s2">"current_system"</span><span class="p">,</span> - <span class="s2">"process_</span><span class="si">{}</span><span class="s2">.txt"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span><span class="p">),</span> - <span class="p">),</span> - <span class="s2">"w"</span><span class="p">,</span> - <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">,</span> + <span class="n">argfile</span><span class="p">,</span> + <span class="s2">"w"</span><span class="p">,</span> + <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">,</span> <span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> - <span class="n">binary_cmdline_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_return_argline</span><span class="p">(</span><span class="n">full_system_dict</span><span class="p">)</span> - <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">binary_cmdline_string</span><span class="p">)</span> + <span class="n">binary_c_cmdline_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_return_argline</span><span class="p">(</span><span class="n">full_system_dict</span><span class="p">)</span> + <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">binary_c_cmdline_string</span><span class="p">)</span> <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="c1">##############</span> @@ -2059,6 +2081,7 @@ <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"verbosity"</span><span class="p">],</span> <span class="mi">0</span><span class="p">,</span> <span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="s2">"BSE"</span><span class="p">,</span><span class="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">)</span> <span class="k">raise</span> <span class="ne">ValueError</span> <span class="k">if</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span> @@ -2459,7 +2482,17 @@ <span class="s2">"binary_c output nothing - this is strange. If there is ensemble output being generated then this is fine."</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"verbosity"</span><span class="p">],</span> <span class="mi">3</span><span class="p">,</span> - <span class="p">)</span></div> + <span class="p">)</span> + + <span class="k">def</span> <span class="nf">_new_grid_ensemble_results</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Function to return a new grid_ensemble_results dict: this should</span> +<span class="sd"> be pre-filled by sub-dicts to prevent later errors.</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="p">{</span> + <span class="s1">'metadata'</span> <span class="p">:</span> <span class="p">{},</span> + <span class="s1">'ensemble'</span> <span class="p">:</span> <span class="p">{}</span> + <span class="p">}</span></div> </pre></div> </div> @@ -2477,9 +2510,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/plot_functions.html b/docs/build/html/_modules/binarycpython/utils/plot_functions.html index 7b97768b8..7ae04c559 100644 --- a/docs/build/html/_modules/binarycpython/utils/plot_functions.html +++ b/docs/build/html/_modules/binarycpython/utils/plot_functions.html @@ -714,9 +714,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/HPC.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/HPC.html index e5e9ead94..643168fbe 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/HPC.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/HPC.html @@ -164,7 +164,7 @@ <span class="c1"># make the output before checking anything, we do</span> <span class="c1"># this to remove any asynchronicity</span> <span class="n">lines</span> <span class="o">=</span> <span class="p">[]</span> - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_job_id_range</span><span class="p">():</span> <span class="n">lines</span> <span class="o">+=</span> <span class="p">[</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> <span class="n">prefix</span><span class="p">,</span> <span class="s2">"</span><span class="si">{hpc_jobid}</span><span class="s2">.</span><span class="si">{i}</span><span class="s2">.gz</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">hpc_jobid</span><span class="o">=</span><span class="n">hpc_jobid</span><span class="p">,</span> <span class="n">i</span><span class="o">=</span><span class="n">i</span><span class="p">)</span> @@ -377,7 +377,7 @@ <div class="viewcode-block" id="HPC.HPC_jobID"><a class="viewcode-back" href="../../../../population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_jobID">[docs]</a> <span class="k">def</span> <span class="nf">HPC_jobID</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="sd">"""</span> -<span class="sd"> Function to return an HPC (Slurm or Condor) job id in the form x.y. Returns None if not an HPC job.</span> +<span class="sd"> Function to return an HPC (Slurm or Condor) job id in the form of a string, x.y. Returns None if not an HPC job.</span> <span class="sd"> """</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm"</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> @@ -631,7 +631,7 @@ <span class="n">joinfiles</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_load_joinfiles_list</span><span class="p">()</span> <span class="n">joiningfile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_path</span><span class="p">(</span><span class="s2">"joining"</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span> - <span class="s2">"Joinfile list n=</span><span class="si">{n}</span><span class="s2"> (should be </span><span class="si">{m}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="s2">"Joinfile list n=</span><span class="si">{n}</span><span class="s2"> (should be </span><span class="si">{m}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="n">n</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">joinfiles</span><span class="p">),</span> <span class="n">m</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">HPC_njobs</span><span class="p">()</span> <span class="p">)</span> <span class="p">)</span> @@ -753,8 +753,9 @@ <span class="n">d</span><span class="p">[</span><span class="s2">"status"</span><span class="p">][</span><span class="n">x</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span> <span class="n">d</span><span class="p">[</span><span class="s2">"joblist"</span><span class="p">][</span><span class="n">x</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_job_id_range</span><span class="p">():</span> <span class="n">s</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_get_status</span><span class="p">(</span><span class="n">job_id</span><span class="o">=</span><span class="n">_id</span><span class="p">,</span> <span class="n">job_index</span><span class="o">=</span><span class="n">i</span><span class="p">)</span> + <span class="c1">#print("HPC get job",_id,':',i," status=",s)</span> <span class="k">if</span> <span class="n">s</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">s</span> <span class="o">=</span> <span class="s2">"unknown"</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">d</span><span class="p">[</span><span class="s2">"status"</span><span class="p">]:</span> @@ -786,8 +787,6 @@ <div class="viewcode-block" id="HPC.HPC_queue_stats"><a class="viewcode-back" href="../../../../population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_queue_stats">[docs]</a> <span class="k">def</span> <span class="nf">HPC_queue_stats</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># pragma: no cover</span> <span class="sd">"""</span> <span class="sd"> Function that returns the queue stats for the HPC grid</span> - -<span class="sd"> TODO: the slurm_queue_stats doesntt actually return anything</span> <span class="sd"> """</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm"</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> @@ -797,7 +796,17 @@ <span class="k">else</span><span class="p">:</span> <span class="n">x</span> <span class="o">=</span> <span class="kc">None</span> - <span class="k">return</span> <span class="n">x</span></div></div> + <span class="k">return</span> <span class="n">x</span></div> + +<div class="viewcode-block" id="HPC.HPC_job_id_range"><a class="viewcode-back" href="../../../../population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_job_id_range">[docs]</a> <span class="k">def</span> <span class="nf">HPC_job_id_range</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="n">n</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">HPC_njobs</span><span class="p">()</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm"</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="k">return</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor"</span><span class="p">]</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> + <span class="k">return</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="nb">print</span><span class="p">(</span><span class="s2">"Called HPC_job_id_range when not running an HPC grid : you cannot do this."</span><span class="p">)</span> + <span class="k">raise</span></div></div> </pre></div> </div> @@ -815,9 +824,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/Moe_di_Stefano_2017.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/Moe_di_Stefano_2017.html index f827d424e..65a11d7e1 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/Moe_di_Stefano_2017.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/Moe_di_Stefano_2017.html @@ -1317,9 +1317,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/analytics.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/analytics.html index 9be2ecfc3..9182b9c8f 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/analytics.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/analytics.html @@ -134,6 +134,7 @@ <span class="k">if</span> <span class="s2">"metadata"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_ensemble_results</span><span class="p">:</span> <span class="c1"># Add analytics dict to the metadata too:</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_ensemble_results</span><span class="p">[</span><span class="s2">"metadata"</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">analytics_dict</span><span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="s2">"Added analytics to metadata"</span><span class="p">)</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_system_metadata</span><span class="p">()</span> <span class="k">else</span><span class="p">:</span> <span class="c1"># use existing analytics dict</span> @@ -206,9 +207,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/cache.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/cache.html index c33cba114..4d0459caf 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/cache.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/cache.html @@ -453,9 +453,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/condor.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/condor.html index caba5213a..54d9b3edf 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/condor.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/condor.html @@ -90,6 +90,10 @@ <span class="kn">import</span> <span class="nn">datasize</span> <span class="kn">import</span> <span class="nn">lib_programname</span> +<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="p">(</span> + <span class="n">command_string_from_list</span><span class="p">,</span> + <span class="n">now</span><span class="p">,</span> +<span class="p">)</span> <div class="viewcode-block" id="condor"><a class="viewcode-back" href="../../../../population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor">[docs]</a><span class="k">class</span> <span class="nc">condor</span><span class="p">:</span> @@ -106,7 +110,7 @@ <div class="viewcode-block" id="condor.condorID"><a class="viewcode-back" href="../../../../population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condorID">[docs]</a> <span class="k">def</span> <span class="nf">condorID</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ClusterID</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">Process</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="sd">"""</span> -<span class="sd"> Function to return a Condor job ID. The ClusterID and Process passed in are used if given, otherwise we default to the condor_ClusterID and condor_Process in grid_options.</span> +<span class="sd"> Function to return a Condor job ID as a string, [ClusterID].[Process]. The ClusterID and Process passed in are used if given, otherwise we default to the condor_ClusterID and condor_Process in grid_options.</span> <span class="sd"> """</span> <span class="k">if</span> <span class="n">ClusterID</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">ClusterID</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor_ClusterID"</span><span class="p">]</span> @@ -381,7 +385,7 @@ <span class="p">]</span> <span class="p">)</span> - <span class="n">grid_command</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">grid_command</span><span class="p">)</span> + <span class="n">grid_command</span> <span class="o">=</span> <span class="n">command_string_from_list</span><span class="p">(</span><span class="n">grid_command</span><span class="p">)</span> <span class="c1"># make condor script paths</span> <span class="n">submit_script_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">condorpath</span><span class="p">(</span><span class="s2">"condor_submit_script"</span><span class="p">)</span> @@ -413,8 +417,8 @@ <span class="s2">echo "Condor Job Args: $@"</span> <span class="s2"># first two arguments are ClusterID and Process</span> -<span class="s2">export ClusterID=$1</span> -<span class="s2">export Process=$2</span> +<span class="s2">export ClusterID="$1"</span> +<span class="s2">export Process="$2"</span> <span class="s2">shift 2</span> <span class="s2">echo "Job ClusterID $ClusterID Process $Process"</span> @@ -425,13 +429,13 @@ <span class="s2">export BINARY_C_PYTHON_ORIGINAL_SUBMISSION_TIME=`</span><span class="si">{date}</span><span class="s2">`</span> <span class="s2"># set status to </span><span class="se">\"</span><span class="s2">running</span><span class="se">\"</span><span class="s2"></span> -<span class="s2">echo </span><span class="se">\"</span><span class="s2">running</span><span class="se">\"</span><span class="s2"> > </span><span class="si">{condor_dir}</span><span class="s2">/status/$ClusterID.$ProcessID</span> +<span class="s2">echo </span><span class="se">\"</span><span class="s2">running</span><span class="se">\"</span><span class="s2"> > "</span><span class="si">{condor_dir}</span><span class="s2">/status/$ClusterID.$ProcessID"</span> <span class="s2"># make list of files which is checked for joining</span> -<span class="s2"># echo </span><span class="si">{condor_dir}</span><span class="s2">/results/$ClusterID.$Process.gz >> </span><span class="si">{condor_dir}</span><span class="s2">/results/$ClusterID.all</span> +<span class="s2"># echo "</span><span class="si">{condor_dir}</span><span class="s2">/results/$ClusterID.$Process.gz" >> "</span><span class="si">{condor_dir}</span><span class="s2">/results/$ClusterID.all"</span> <span class="s2"># run grid of stars and, if this returns 0, set status to finished</span> -<span class="si">{grid_command}</span><span class="s2"> condor=2 evolution_type=grid condor_ClusterID=$ClusterID condor_Process=$Process save_population_object=</span><span class="si">{condor_dir}</span><span class="s2">/results/$ClusterID.$Process.gz && echo -n </span><span class="se">\"</span><span class="s2">finished</span><span class="se">\"</span><span class="s2"> > </span><span class="si">{condor_dir}</span><span class="s2">/status/$ClusterID.$ProcessID && echo """</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +<span class="si">{grid_command}</span><span class="s2"> "condor=2" "evolution_type=grid" "condor_ClusterID=$ClusterID" "condor_Process=$Process" "save_population_object=</span><span class="si">{condor_dir}</span><span class="s2">/results/$ClusterID.$Process.gz" && echo -n </span><span class="se">\"</span><span class="s2">finished</span><span class="se">\"</span><span class="s2"> > "</span><span class="si">{condor_dir}</span><span class="s2">/status/$ClusterID.$ProcessID" && echo """</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="n">bash</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor_bash"</span><span class="p">],</span> <span class="n">date</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor_date"</span><span class="p">],</span> <span class="n">pwd</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor_pwd"</span><span class="p">],</span> @@ -444,7 +448,7 @@ <span class="n">joinfile</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{condor_dir}</span><span class="s2">/results/</span><span class="si">{ClusterID}</span><span class="s2">.all"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="n">condor_dir</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor_dir"</span><span class="p">],</span> <span class="n">ClusterID</span><span class="o">=</span><span class="n">ClusterID</span> <span class="p">)</span> - <span class="n">condor_job_script</span> <span class="o">+=</span> <span class="s2">"""&& echo </span><span class="se">\"</span><span class="s2">Checking if we can join...</span><span class="se">\"</span><span class="s2"> && echo && </span><span class="si">{grid_command}</span><span class="s2"> condor=3 evolution_type=join joinlist=</span><span class="si">{joinfile}</span><span class="s2"> condor_ClusterID=$ClusterID condor_Process=$Process</span> + <span class="n">condor_job_script</span> <span class="o">+=</span> <span class="s2">"""&& echo </span><span class="se">\"</span><span class="s2">Checking if we can join...</span><span class="se">\"</span><span class="s2"> && echo && </span><span class="si">{grid_command}</span><span class="s2"> "condor=3" "evolution_type=join" "joinlist=</span><span class="si">{joinfile}</span><span class="s2">" "condor_ClusterID=$ClusterID" "condor_Process=$Process"</span> <span class="s2"> """</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="n">bash</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"condor_bash"</span><span class="p">],</span> <span class="n">grid_command</span><span class="o">=</span><span class="n">grid_command</span><span class="p">,</span> @@ -650,9 +654,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/dataIO.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/dataIO.html index 55c7bb5ef..38bfc6486 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/dataIO.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/dataIO.html @@ -232,7 +232,6 @@ <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> <span class="n">obj</span> <span class="o">=</span> <span class="kc">None</span> <span class="nb">print</span><span class="p">(</span><span class="s2">"Loading of the compressed object went wrong: </span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">e</span><span class="p">))</span> - <span class="k">return</span> <span class="n">obj</span></div> <div class="viewcode-block" id="dataIO.merge_populations"><a class="viewcode-back" href="../../../../population_extensions/dataIO.html#binarycpython.utils.population_extensions.dataIO.dataIO.merge_populations">[docs]</a> <span class="k">def</span> <span class="nf">merge_populations</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">refpop</span><span class="p">,</span> <span class="n">newpop</span><span class="p">):</span> @@ -249,10 +248,11 @@ <span class="sd"> Note:</span> <span class="sd"> The file should be saved using save_population_object()</span> <span class="sd"> """</span> - + <span class="c1"># combine data</span> - <span class="n">refpop</span><span class="o">.</span><span class="n">grid_results</span> <span class="o">=</span> <span class="n">merge_dicts</span><span class="p">(</span><span class="n">refpop</span><span class="o">.</span><span class="n">grid_results</span><span class="p">,</span> <span class="n">newpop</span><span class="o">.</span><span class="n">grid_results</span><span class="p">)</span> - + <span class="n">refpop</span><span class="o">.</span><span class="n">grid_results</span> <span class="o">=</span> <span class="n">merge_dicts</span><span class="p">(</span><span class="n">refpop</span><span class="o">.</span><span class="n">grid_results</span><span class="p">,</span> + <span class="n">newpop</span><span class="o">.</span><span class="n">grid_results</span><span class="p">)</span> + <span class="c1"># special cases</span> <span class="n">maxmem</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">if</span> <span class="s2">"max_memory_use"</span> <span class="ow">in</span> <span class="n">refpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> @@ -283,7 +283,8 @@ <span class="c1"># merge the ensemble dicts</span> <span class="n">refpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span> <span class="o">=</span> <span class="n">merge_dicts</span><span class="p">(</span> - <span class="n">refpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span><span class="p">,</span> <span class="n">newpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span> + <span class="n">refpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span><span class="p">,</span> + <span class="n">newpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span> <span class="p">)</span> <span class="c1"># set special cases</span> @@ -334,8 +335,9 @@ <span class="n">n</span> <span class="o">=</span> <span class="n">newpop</span><span class="o">.</span><span class="n">grid_ensemble_results</span><span class="p">[</span><span class="s2">"metadata"</span><span class="p">][</span><span class="s2">"_count"</span><span class="p">]</span> <span class="k">else</span><span class="p">:</span> <span class="n">n</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> + <span class="nb">print</span><span class="p">(</span><span class="s2">"Loaded data from </span><span class="si">{n}</span><span class="s2"> stars"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">n</span><span class="o">=</span><span class="n">n</span><span class="p">))</span> - + <span class="c1"># merge with refpop</span> <span class="bp">self</span><span class="o">.</span><span class="n">merge_populations</span><span class="p">(</span><span class="n">refpop</span><span class="p">,</span> <span class="n">newpop</span><span class="p">)</span></div> @@ -899,9 +901,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/distribution_functions.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/distribution_functions.html index 5b435ccba..1d74b3f80 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/distribution_functions.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/distribution_functions.html @@ -2402,9 +2402,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_logging.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_logging.html index 341b3ef72..676af2f64 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_logging.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_logging.html @@ -554,9 +554,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_options_defaults.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_options_defaults.html index f8be90fa0..eda3c579e 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_options_defaults.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/grid_options_defaults.html @@ -95,8 +95,8 @@ <span class="kn">import</span> <span class="nn">sys</span> <span class="kn">from</span> <span class="nn">binarycpython.utils.custom_logging_functions</span> <span class="kn">import</span> <span class="n">temp_dir</span> - <span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="p">(</span> + <span class="n">command_string_from_list</span><span class="p">,</span> <span class="n">now</span><span class="p">,</span> <span class="p">)</span> @@ -156,7 +156,7 @@ <span class="c1">#####################</span> <span class="c1"># System information</span> <span class="c1">#####################</span> - <span class="s2">"command_line"</span><span class="p">:</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">),</span> + <span class="s2">"command_line"</span><span class="p">:</span> <span class="n">command_string_from_list</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">),</span> <span class="s2">"original_command_line"</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">"BINARY_C_PYTHON_ORIGINAL_CMD_LINE"</span><span class="p">),</span> <span class="s2">"working_diretory"</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">(),</span> <span class="s2">"original_working_diretory"</span><span class="p">:</span> <span class="n">os</span><span class="o">.</span><span class="n">getenv</span><span class="p">(</span><span class="s2">"BINARY_C_PYTHON_ORIGINAL_WD"</span><span class="p">),</span> @@ -241,6 +241,7 @@ <span class="s2">"_total_probability_weighted_mass_run"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># To count the total mass * probability for each system that thread/process has ran</span> <span class="s2">"modulo"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="c1"># run modulo n of the grid.</span> <span class="s2">"start_at"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># start at the first model</span> + <span class="s2">"skip_before"</span> <span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># skip models before this</span> <span class="c1">## Grid type evolution</span> <span class="s2">"_grid_variables"</span><span class="p">:</span> <span class="p">{},</span> <span class="c1"># grid variables</span> <span class="s2">"gridcode_filename"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="c1"># filename of gridcode</span> @@ -319,7 +320,7 @@ <span class="s2">"slurm_jobarrayindex"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="c1"># slurm job array index (%a)</span> <span class="s2">"slurm_jobname"</span><span class="p">:</span> <span class="s2">"binary_c-python"</span><span class="p">,</span> <span class="c1"># default</span> <span class="s2">"slurm_partition"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> - <span class="s2">"slurm_time"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># total time. 0 = infinite time</span> + <span class="s2">"slurm_time"</span><span class="p">:</span> <span class="s1">'0'</span><span class="p">,</span> <span class="c1"># total time. 0 = infinite time</span> <span class="s2">"slurm_postpone_sbatch"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># if 1: don't submit, just make the script</span> <span class="s2">"slurm_array"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="c1"># override for --array, useful for rerunning jobs</span> <span class="s2">"slurm_array_max_jobs"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="c1"># override for the max number of concurrent array jobs</span> @@ -715,9 +716,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/gridcode.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/gridcode.html index 46324cd6c..dbdf11d8f 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/gridcode.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/gridcode.html @@ -1235,9 +1235,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/metadata.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/metadata.html index 23af3c0dd..6316c9ce4 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/metadata.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/metadata.html @@ -228,9 +228,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/slurm.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/slurm.html index 671e3f4ad..c49c344b5 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/slurm.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/slurm.html @@ -88,6 +88,10 @@ <span class="kn">import</span> <span class="nn">datasize</span> <span class="kn">import</span> <span class="nn">lib_programname</span> +<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="p">(</span> + <span class="n">command_string_from_list</span><span class="p">,</span> + <span class="n">now</span><span class="p">,</span> +<span class="p">)</span> <div class="viewcode-block" id="slurm"><a class="viewcode-back" href="../../../../population_extensions/slurm.html#binarycpython.utils.population_extensions.slurm.slurm">[docs]</a><span class="k">class</span> <span class="nc">slurm</span><span class="p">:</span> @@ -104,7 +108,7 @@ <div class="viewcode-block" id="slurm.slurmID"><a class="viewcode-back" href="../../../../population_extensions/slurm.html#binarycpython.utils.population_extensions.slurm.slurm.slurmID">[docs]</a> <span class="k">def</span> <span class="nf">slurmID</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">jobid</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">jobarrayindex</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="sd">"""</span> -<span class="sd"> Function to return a Slurm job ID. The jobid and jobarrayindex passed in are used if given, otherwise we default to the jobid and jobarrayindex in grid_options.</span> +<span class="sd"> Function to return a Slurm job ID as a string, [jobid].[jobarrayindex]. The jobid and jobarrayindex passed in are used if given, otherwise we default to the jobid and jobarrayindex in grid_options.</span> <span class="sd"> """</span> <span class="k">if</span> <span class="n">jobid</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> <span class="n">jobid</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_jobid"</span><span class="p">]</span> @@ -181,7 +185,13 @@ <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">status_file</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> - <span class="bp">self</span><span class="o">.</span><span class="n">NFS_flush_hack</span><span class="p">(</span><span class="n">status_file</span><span class="p">)</span></div> + <span class="bp">self</span><span class="o">.</span><span class="n">NFS_flush_hack</span><span class="p">(</span><span class="n">status_file</span><span class="p">)</span> + + <span class="nb">print</span><span class="p">(</span><span class="s2">"Have set status in"</span><span class="p">,</span><span class="n">status_file</span><span class="p">,</span><span class="s2">"to"</span><span class="p">,</span><span class="n">string</span><span class="p">)</span> + <span class="k">with</span> <span class="bp">self</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">status_file</span><span class="p">,</span><span class="s2">"r"</span><span class="p">,</span><span class="n">encoding</span><span class="o">=</span><span class="s2">"utf-8"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> + <span class="nb">print</span><span class="p">(</span><span class="s2">"Contents"</span><span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">readlines</span><span class="p">())</span> + <span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span></div> <div class="viewcode-block" id="slurm.get_slurm_status"><a class="viewcode-back" href="../../../../population_extensions/slurm.html#binarycpython.utils.population_extensions.slurm.slurm.get_slurm_status">[docs]</a> <span class="k">def</span> <span class="nf">get_slurm_status</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">jobid</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">jobarrayindex</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">slurm_dir</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="sd">"""</span> @@ -364,7 +374,7 @@ <span class="p">]</span> <span class="o">+</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> <span class="o">+</span> <span class="p">[</span> - <span class="s2">"start_at="</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">jobarrayindex</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"-1"</span><span class="p">,</span> <span class="c1"># do we need the -1?</span> + <span class="s2">"start_at=$(("</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">jobarrayindex</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"-1))"</span><span class="p">,</span> <span class="s2">"modulo="</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_njobs"</span><span class="p">]),</span> <span class="s2">"slurm_njobs="</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_njobs"</span><span class="p">]),</span> <span class="s2">"slurm_dir="</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_dir"</span><span class="p">],</span> @@ -373,7 +383,8 @@ <span class="p">]</span> <span class="p">)</span> - <span class="n">grid_command</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">grid_command</span><span class="p">)</span> + <span class="c1"># wrap command arguments in quotes</span> + <span class="n">grid_command</span> <span class="o">=</span> <span class="n">command_string_from_list</span><span class="p">(</span><span class="n">grid_command</span><span class="p">)</span> <span class="c1"># make slurm script</span> <span class="n">scriptpath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">slurmpath</span><span class="p">(</span><span class="s2">"slurm_script"</span><span class="p">)</span> @@ -423,13 +434,13 @@ <span class="s2">export BINARY_C_PYTHON_ORIGINAL_SUBMISSION_TIME=`</span><span class="si">{date}</span><span class="s2">`</span> <span class="s2"># set status to </span><span class="se">\"</span><span class="s2">running</span><span class="se">\"</span><span class="s2"></span> -<span class="s2">echo </span><span class="se">\"</span><span class="s2">running</span><span class="se">\"</span><span class="s2"> > </span><span class="si">{slurm_dir}</span><span class="s2">/status/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID</span> +<span class="s2">echo </span><span class="se">\"</span><span class="s2">running</span><span class="se">\"</span><span class="s2"> > "</span><span class="si">{slurm_dir}</span><span class="s2">/status/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID"</span> <span class="s2"># make list of files which is checked for joining</span> -<span class="s2"># echo </span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID.gz >> </span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.all</span> +<span class="s2"># echo "</span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID.gz" >> "</span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.all"</span> <span class="s2"># run grid of stars and, if this returns 0, set status to finished</span> -<span class="si">{grid_command}</span><span class="s2"> slurm=2 evolution_type=grid slurm_jobid=$SLURM_ARRAY_JOB_ID slurm_jobarrayindex=$SLURM_ARRAY_TASK_ID save_population_object=</span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID.gz && echo -n </span><span class="se">\"</span><span class="s2">finished</span><span class="se">\"</span><span class="s2"> > </span><span class="si">{slurm_dir}</span><span class="s2">/status/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID && echo """</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> +<span class="si">{grid_command}</span><span class="s2"> "slurm=2" "evolution_type=grid" "slurm_jobid=$SLURM_ARRAY_JOB_ID" "slurm_jobarrayindex=$SLURM_ARRAY_TASK_ID" "save_population_object=</span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID.gz" && echo -n </span><span class="se">\"</span><span class="s2">finished</span><span class="se">\"</span><span class="s2"> > "</span><span class="si">{slurm_dir}</span><span class="s2">/status/$SLURM_ARRAY_JOB_ID.$SLURM_ARRAY_TASK_ID" && echo """</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="n">slurm_dir</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_dir"</span><span class="p">],</span> <span class="n">grid_command</span><span class="o">=</span><span class="n">grid_command</span><span class="p">,</span> <span class="n">cmdline</span><span class="o">=</span><span class="nb">repr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"command_line"</span><span class="p">]),</span> @@ -438,7 +449,7 @@ <span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_postpone_join"</span><span class="p">]:</span> - <span class="n">slurmscript</span> <span class="o">+=</span> <span class="s2">"""&& echo </span><span class="se">\"</span><span class="s2">Checking if we can join...</span><span class="se">\"</span><span class="s2"> && echo && </span><span class="si">{grid_command}</span><span class="s2"> slurm=3 evolution_type=join joinlist=</span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.all slurm_jobid=$SLURM_ARRAY_JOB_ID slurm_jobarrayindex=$SLURM_ARRAY_TASK_ID</span> + <span class="n">slurmscript</span> <span class="o">+=</span> <span class="s2">"""&& echo </span><span class="se">\"</span><span class="s2">Checking if we can join...</span><span class="se">\"</span><span class="s2"> && echo && </span><span class="si">{grid_command}</span><span class="s2"> "slurm=3" "evolution_type=join" "joinlist=</span><span class="si">{slurm_dir}</span><span class="s2">/results/$SLURM_ARRAY_JOB_ID.all" "slurm_jobid=$SLURM_ARRAY_JOB_ID" "slurm_jobarrayindex=$SLURM_ARRAY_TASK_ID"</span> <span class="s2"> """</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> <span class="n">slurm_dir</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">"slurm_dir"</span><span class="p">],</span> <span class="n">grid_command</span><span class="o">=</span><span class="n">grid_command</span><span class="p">,</span> @@ -520,7 +531,7 @@ <span class="sd">"""</span> <span class="sd"> Function to XXX</span> -<span class="sd"> TODO: is this function finished?</span> +<span class="sd"> TODO</span> <span class="sd"> """</span> <span class="k">return</span> <span class="kc">None</span></div></div> @@ -541,9 +552,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/spacing_functions.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/spacing_functions.html index 858c832f5..2c758ddfe 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/spacing_functions.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/spacing_functions.html @@ -93,7 +93,7 @@ <span class="kn">import</span> <span class="nn">cachetools</span> <span class="kn">import</span> <span class="nn">diskcache</span> -<span class="c1"># from binarycpython.utils.grid import Population</span> + <span class="kn">import</span> <span class="nn">py_rinterpolate</span> @@ -418,13 +418,14 @@ <span class="k">return</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="k">return</span> <span class="n">wrapped</span> - - <span class="k">if</span> <span class="n">cache</span><span class="p">:</span> + + <span class="k">if</span> <span class="n">cache</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> <span class="n">__decorator</span> <span class="o">=</span> <span class="n">cache</span><span class="o">.</span><span class="n">memoize</span> <span class="k">else</span><span class="p">:</span> <span class="n">__decorator</span> <span class="o">=</span> <span class="n">__dummy_decorator</span> - <span class="nd">@__decorator</span> + <span class="c1">#@cache.memoize() </span> + <span class="nd">@__decorator</span><span class="p">()</span> <span class="c1"># note: () works with python3.9+, maybe not for 3.8</span> <span class="k">def</span> <span class="nf">_const_dt</span><span class="p">(</span> <span class="n">cachedir</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">num_cores</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> @@ -465,6 +466,7 @@ <span class="k">if</span> <span class="n">max_evolution_time</span><span class="p">:</span> <span class="n">bse_options</span><span class="p">[</span><span class="s2">"max_evolution_time"</span><span class="p">]</span> <span class="o">=</span> <span class="n">max_evolution_time</span> + <span class="kn">from</span> <span class="nn">binarycpython.utils.grid</span> <span class="kn">import</span> <span class="n">Population</span> <span class="n">lifetime_population</span> <span class="o">=</span> <span class="n">Population</span><span class="p">()</span> <span class="n">lifetime_population</span><span class="o">.</span><span class="n">bse_options</span> <span class="o">=</span> <span class="n">bse_options</span> @@ -773,9 +775,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/population_extensions/version_info.html b/docs/build/html/_modules/binarycpython/utils/population_extensions/version_info.html index 81412f991..ca7256fc9 100644 --- a/docs/build/html/_modules/binarycpython/utils/population_extensions/version_info.html +++ b/docs/build/html/_modules/binarycpython/utils/population_extensions/version_info.html @@ -521,9 +521,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html b/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html index 13824eed9..1c01f4a22 100644 --- a/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html +++ b/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html @@ -205,9 +205,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/binarycpython/utils/useful_funcs.html b/docs/build/html/_modules/binarycpython/utils/useful_funcs.html index 00061732f..b6239a664 100644 --- a/docs/build/html/_modules/binarycpython/utils/useful_funcs.html +++ b/docs/build/html/_modules/binarycpython/utils/useful_funcs.html @@ -471,9 +471,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index 5ff8f71af..29e1c56a4 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -109,9 +109,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/_sources/binary_c_parameters.rst.txt b/docs/build/html/_sources/binary_c_parameters.rst.txt index 2ecbfde05..81bd07a93 100644 --- a/docs/build/html/_sources/binary_c_parameters.rst.txt +++ b/docs/build/html/_sources/binary_c_parameters.rst.txt @@ -4,7 +4,7 @@ The following chapter contains all the parameters that the current version of bi This information was obtained by the following binary_c build: - **binary_c git branch**: branch_david **binary_c git revision**: 5845:20220107:201620bd7 **Built on**: Jan 7 2022 12:15:12 + **binary_c git branch**: HEAD **binary_c git revision**: 5853:20220225:db09898b6 **Built on**: Feb 25 2022 19:21:31 Section: stars diff --git a/docs/build/html/_sources/examples/notebook_api_functionality.ipynb.txt b/docs/build/html/_sources/examples/notebook_api_functionality.ipynb.txt index 504ae4b16..49d6f8d3d 100644 --- a/docs/build/html/_sources/examples/notebook_api_functionality.ipynb.txt +++ b/docs/build/html/_sources/examples/notebook_api_functionality.ipynb.txt @@ -105,7 +105,7 @@ " Function that contains random snippets. Do not expect this to remain available, or reliable. i.e. dont use it.\n", "\n", "FILE\n", - " /home/izzard/.local/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", + " /home/david/.pyenv/versions/binarycpython3.9.9/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", "\n", "\n" ] @@ -166,7 +166,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "<capsule object \"STORE\" at 0x146f912dbc60>\n", + "<capsule object \"STORE\" at 0x7fc1f0c3ff00>\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" ] @@ -270,586 +270,13 @@ "M_2 : The initial mass of star two (in solar units, internally this is star index 1). : (null)\n", "M_3 : The initial mass of star three (in solar units, internally this is star index 2). : (null)\n", "M_4 : The initial mass of star four (in solar units, internally this is star index 3). : (null)\n", - "vrot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot2,3,4. : (null)\n", - "vrot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,3,4. : (null)\n", - "vrot3 : The initial equatorial rotational velocity of star three (in km/s, internally this is star index 2). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,4. : (null)\n", - "vrot4 : The initial equatorial rotational velocity of star four (in km/s, internally this is star index 3). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,3. : (null)\n", - "Prot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). See also Prot2,3,4. : (null)\n", - "Prot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). See also Prot1,3,4. : (null)\n", - "Prot3 : The initial equatorial rotational period of star three (in days, internally this is star index 2). See also Prot1,2,4. : (null)\n", - "Prot4 : The initial equatorial rotational period of star four (in days, internally this is star index 3). See also Prot1,2,3. : (null)\n", - "inclination1 : The initial inclination of star one (in degrees). : (null)\n", - "inclination2 : The initial inclination of star two (in degrees). : (null)\n", - "inclination3 : The initial inclination of star three (in degrees). : (null)\n", - "inclination4 : The initial inclination of star four (in degrees). : (null)\n", - "B_1 : The initial magnetic field of star one (in Gauss, internally this is star index 0). : (null)\n", - "B_2 : The initial magnetic field of star two (in Gauss, internally this is star index 1). : (null)\n", - "B_3 : The initial magnetic field of star three (in Gauss, internally this is star index 2). : (null)\n", - "B_4 : The initial magnetic field of star four (in Gauss, internally this is star index 3). : (null)\n", - "B_inclination1 : The initial inclination of the magnetic field of star one (in degrees). : (null)\n", - "B_inclination2 : The initial inclination of the magnetic field of star two (in degrees). : (null)\n", - "B_inclination3 : The initial inclination of the magnetic field of star three (in degrees). : (null)\n", - "B_inclination4 : The initial inclination of the magnetic field of star four (in degrees). : (null)\n", - "stellar_type_1 : Set the stellar type of star 1 (internal index 0), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_2 : Set the stellar type of star 2 (internal index 1), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_3 : Set the stellar type of star 3 (internal index 2), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_4 : Set the stellar type of star 4 (internal index 3), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "max_stellar_type_1 : The maximum stellar type of star 1 (internal index 0). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. \n", - " : (null)\n", - "max_stellar_type_2 : The maximum stellar type of star 2 (internal index 1). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_3 : The maximum stellar type of star 3 (internal index 2). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_4 : The maximum stellar type of star 4 (internal index 3). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "probability : The probability is a weighting applied to the star based on, say, the initial mass function. When running a grid of stars to simulate *all* stars, the summed probability of all the stars should be 1.0. : (null)\n", - "phasevol : The system's phase volume, used by binary_grid. : (null)\n", - "stellar_structure_algorithm : Set the stellar structure algorithm. 0=modified BSE (default), 1=none, 2=external function (must be defined by the calling code), 3=binary_c (not yet implemented). : (null)\n", - "solver : The type of solver. Default is the Forward-Euler (0), but could be RK2 (1), RK4 (2) or a predictor-corretor (3). : (null)\n", - "max_evolution_time : Set the maximum age for the stars (Myr). : (null)\n", - "max_model_number : Set the maximum number of models, ignored if 0 (default is 0). : (null)\n", - "monte_carlo_kicks : Turn on Monte-Carlo SN kicks. On (True) by default, and indeed other algorithms are probably broken. : (null)\n", - "disable_debug : Disables debug output. Only has an effect when DEBUG is 1, which probably requires a rebuild. Default FALSE. : (null)\n", - "timestep_logging : Turn on timestep logging (default is False). : (null)\n", - "rejects_in_log : Show timestep rejections in the main log (default is False). : (null)\n", - "vandenHeuvel_logging : Turn on van den Heuvel logging (default is False). : (null)\n", - "evolution_splitting : If True, turn on splitting of an evolutionary run if splitpoint (e.g. supernova) occurs. : (null)\n", - "disable_events : Whether to disable the new events code (defaults to False, so we use events by default)\n", - " : (null)\n", - "evolution_splitting_sn_eccentricity_threshold : Threshold eccentricity above which evolution splitting happens in a system with no SN kick. (0.01) : (null)\n", - "evolution_splitting_sn_n : Number of runs to split into when a SN occurs. : (null)\n", - "evolution_splitting_maxdepth : Max number of splits in an evolutionary run. : (null)\n", - "equation_of_state_algorithm : Set the equation of state algorithm. 0 = Paczynski. : (null)\n", - "opacity_algorithm : Set the opacity algorithm. 0 = Paczynski, 1 = Ferguson/Opal. : (null)\n", - "wind_mass_loss : Defines the algorithm used for stellar winds. 0 = none, 1 = Hurley et al. (2002), 2 = Schneider (2018). : 0\n", - "gbwind : Wind prescription for first red giant branch stars. 0=Reimers (Hurley et al 2000/2002; choose gb_reimers_eta=0.5 for their mass loss rate), 1=Schroeder+Cuntz 2005 (set gb_reimers_eta=1.0 for their mass loss rate). : (null)\n", - "postagbwind : Apply special post-(A)GB prescription. Default is POSTAGB_WIND_USE_GIANT which means we just use whatever is prescribed on the giant branch. Other options include: POSTAGB_WIND_NONE = 1 (no wind on the post (A)GB), POSTAGB_WIND_KRTICKA2020 = 2 which uses Krticka, Kubát and Krticková (2020, A&A 635, A173). : (null)\n", - "Teff_postAGB_min : The minimum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_max. (6000 K) : (null)\n", - "Teff_postAGB_max : The maximum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_min. (120000 K) : (null)\n", - "mattsson_Orich_tpagbwind : Experimental : turns on Mattsson's TPAGB wind when the star is oxygen rich. Requires MATTSSON_MASS_LOSS. : (null)\n", - "magnetic_braking_factor : Multiplier for the magnetic braking angular momentum loss rate. : (null)\n", - "magnetic_braking_gamma : gamma factor in Rappaport style magnetic braking expression. : (null)\n", - "magnetic_braking_algorithm : Algorithm for the magnetic braking angular momentum loss rate. 0 = Hurley et al. 2002, 1 = Andronov, Pinnsonneault and Sills 2003, 2 = Barnes and Kim 2010 : (null)\n", - "helium_flash_mass_loss : Mass to be lost at the helium flash. : (null)\n", - "gb_reimers_eta : First red giant branch wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) : (null)\n", - "gbwindfac : Multiplier for the giant branch wind mass loss rate : (null)\n", - "tpagbwindfac : Multiplier for the TPAGB wind mass loss rate : (null)\n", - "eagbwindfac : Multiplier for the EAGB wind mass loss rate : (null)\n", - "nieuwenhuijzen_windfac : Multiplier for the Nieuwenhuijzen & de Jager wind mass loss rate : (null)\n", - "tpagbwind : Wind prescription during the TPAGB. 0=Karakas 2002 (a modified Vassiliadis and Wood 1993), 1=Hurley et al 2000/2002 (Vassiliadis and Wood 1993), 2=Reimers, 3=Bloecker, 4=Van Loon, 5=Rob's C-wind (broken?), 6,7=Vassiliadis and Wood 1993 (Karakas,Hurley variants respectively) when C/O>1, 8=Mattsson, 9 = Goldman et al. (2017), 10 = Beasor et al. (2020). : (null)\n", - "eagbwind : Wind prescription during the EAGB. 0=BSE (Hurley+2002, based on VW93), 1 = Goldman et al. (2017), 2 = Beasor et al. (2020). : (null)\n", - "wind_gas_to_dust_ratio : Gas to dust ratio used in wind calculations (e.g. Goldman et al. 2017). Typically 200 (Milky Way)-500 (Magellanic Clouds). Default is 200, approximately as in MW stars. : (null)\n", - "vwind_multiplier : Multiplier for the stellar wind velocity. : (null)\n", - "vwind_beta : Beta for stellar wind speed calculations, where vwind=sqrt(beta) * escape velocity. Default 0.125 (from BSE, Hurley et al. 2002). : (null)\n", - "superwind_mira_switchon : In the Vassiliadis and Wood (1993) AGB wind prescription, the superwind is turned on at a given Mira period, usually 500 days. You can vary when this switch-on happens with this parameter. : (null)\n", - "vw93_mira_shift : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate depends on the Mira period plus this offset. Requires VW93_MIRA_SHIFT. : (null)\n", - "vw93_multiplier : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate is multiplied by this factor. Requires VW93_MULTIPLIER. : (null)\n", - "tpagb_reimers_eta : TPAGB Reimers wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) Note that Reimers is not the default TPAGB wind prescription. See also tpagbwind. : (null)\n", - "Tout_Pringle_1992_multiplier : Multiplier for the Tout & Pringle (1992) magnetic wind. (0.0) : (null)\n", - "artificial_mass_accretion_rate%d : Constant mass accretion rate for star <n>. : (null)\n", - "artificial_mass_accretion_rate_by_stellar_type%d : Constant mass accretion rate for stellar type <n>. : (null)\n", - "artificial_angular_momentum_accretion_rate%d : Constant angular momentum accretion for star <n>. : (null)\n", - "artificial_orbital_angular_momentum_accretion_rate : Constant angular momentum accretion rate on the orbit. : (null)\n", - "artificial_accretion_start_time : Time at which artificial accretion stars. Ignored if <0 (default is -1). : (null)\n", - "artificial_accretion_end_time : Time at which artificial accretion ends. Ignored if <0 (default is -1). : (null)\n", - "wr_wind : Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge's version of Vink's early-2000s wind (See Lynnette Dray's thesis, or John Eldridge's thesis) : (null)\n", - "wr_wind_fac : Massive-star (WR) wind multiplication factor. : (null)\n", - "wrwindfac : Massive-star (WR) wind multiplication factor. Synonymous with wr_wind_fac (which you should use instead). : (null)\n", - "BH_prescription : Black hole mass prescrition: relates the mass of a newly formed black hole to its progenitor's (CO) core mass. BH_HURLEY2002 = 0 = Hurley et al 2000/2002, BH_BELCZYNSKI = 1 = Belczynski (early 2000s), BH_SPERA2015 = Spera+ 2015, BH_FRYER12_DELAYED = 3 = Fryer et al. (2012) delayed prescription, BH_FRYER12_RAPID = 4 = Fryer et al. (2012) rapid prescription, BH_FRYER12_STARTRACK = 5 = Fryer et al. (2012) startrack prescription. : (null)\n", - "sn_kick_distribution_II : Set the distribution of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_ECAP : Set the distribution of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_NS_NS : Set the distribution of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IBC : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_GRB_COLLAPSAR : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_TZ : Set the distribution of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_AIC_BH : Set the distribution of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_BH : Set the distribution of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_NS : Set the distribution of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD : Set the distribution of speeds applied to any survivor of a hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD_subluminous : Set the distribution of speeds applied to any survivor of a subluminous hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_II : Set the dispersion of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_ECAP : Set the dispersion of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_NS_NS : Set the dispersion of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IBC : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_GRB_COLLAPSAR : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_TZ : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_AIC_BH : Set the dispersion of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_BH : Set the dispersion of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_NS : Set the dispersion of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD : Set the dispersion of speeds applied to the survivor of a SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD_subluminous : Set the dispersion of speeds applied to the survivor of a subluminous SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_companion_IA_He : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_ELD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia ELD (sub-Mch) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an accretion induced collapse (supernova) occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_ECAP : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an electron capture supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_He_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia helium merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_NS_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron-star neutron-star merger. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_GRB_COLLAPSAR : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a GRB Collapsar (rapidly rotating SN Ibc) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_HeStarIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a He-star Ia supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IBC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type Ib/c supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_II : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type II supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type IIa supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_WDKICK : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a WD is kicked. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_TZ : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Thorne-Zytkow object is formed. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron star collapses to a black hole. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when two black holes merge. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a black hole merges with a neutron star. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD_subluminous : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a subluminous hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "wd_sigma : Set the speed at which white dwarfs are kicked when they form, in km/s. Default is zero (i.e. no kick). Requires WD_KICKS. : (null)\n", - "wd_kick_direction : Set the direction of white dwarf kicks. 0 = random, 1 = up, 2 = forward, 3 = backward, 4 = inward, 5 = outward. Requires WD_KICKS. : (null)\n", - "wd_kick_when : Decide when to kick a white dwarf. 0=at birth, 1=at first RLOF, 2=at given pulse number (see wd_kick_pulse_number), 3 at every pulse Requires WD_KICKS. : (null)\n", - "wd_kick_pulse_number : Apply a kick to a star at a desired pulse number on the TPAGB (i.e. pre-WD). Requires WD_KICKS. : (null)\n", - "minimum_helium_ignition_core_mass : Minimum helium core mass required to ignite helium in the case that the hydrogen envelope is stripped on the giant branch, e.g. to make an sdB or sdO star. Typically 0.4, if 0.0 then the BSE algorithm (based on the total mass) is used. : (null)\n", - "minimum_CO_core_mass_for_carbon_ignition : Minimum CO core mass for carbon ignition, assuming Mc,bagb>1.6Msun. Typically around 1.08Msun (Pols+1998). : (null)\n", - "minimum_CO_core_mass_for_neon_ignition : Minimum CO core mass for neon ignition. Typically around 1.42Msun. Stars that have cores that ignite carbon, but not neon explode in electon-capture supernovae. : (null)\n", - "minimum_mcbagb_for_nondegenerate_carbon_ignition : Minimum Mc,bagb (core mass at the base of the AGB) for non-degenerate carbon ignition. Typically around 2.25Msun (Pols+1998). : (null)\n", - "maximum_mcbagb_for_degenerate_carbon_ignition : Maximum Mc,bagb (core mass at the base of the AGB) for degenerate carbon ignition. Typically around 1.6Msun (Pols+1998). : (null)\n", - "max_neutron_star_mass : Maximum mass of a neutron star before it collapses to a black hole. Typically around 2Msun. : (null)\n", - "chandrasekhar_mass : The Chandrasekhar mass, usually 1.44Msun : (null)\n", - "delta_mcmin : A parameter to reduce the minimum core mass for third dredge up to occur on the TPAGB. As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "lambda_min : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. See also lambda_multiplier. : (null)\n", - "lambda_multiplier : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "minimum_envelope_mass_for_third_dredgeup : The minimum envelope mass for third dredge up on the TPAGB. Early, solar metallicity models by Straniero et al suggested 0.5Msun is typical. However, circumstantial evidence (Izzard et al 2009) as well as newer models by Stancliffe and Karakas suggest that at low metallicity a value nearer zero is more appropriate. : (null)\n", - "mass_of_pmz : The mass in the partial mixing zone of a TPAGB star, using the Karakas 2012 tables. Ask Carlo Abate for more details, or see the series of papers Abate et al 2012, 2013, 2014. Requires NUCSYN and USE_TABULAR_INTERSHELL_ABUNDANCES_KARAKAS_2012. : (null)\n", - "c13_eff : The \"efficiency\" of partial mixing in a TPAGB star intershell region, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "mc13_pocket_multiplier : Multiplies the mass in the partial mixing zone of a TPAGB star, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "tides_convective_damping : Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989 : Zahn 1989 lambdas + Hut. : (null)\n", - "E2_prescription : Choose how to calculate the E2 structural parameter (used in tidal timescale calculations). 0=Hurley 1=Izzard (see Siess et al 2013). : (null)\n", - "dtfac : A parameter to decrease the timestep ONLY during the TPAGB phase. : (null)\n", - "hbbtfac : A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined) : (null)\n", - "wind_multiplier_%d : Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0. : (null)\n", - "wind_type_multiplier_%d : Wind multiplier for different types of wind (MS, GB, AGB, WR, LBV, OTHER), given by the integer %d. By default these are all 1.0. : (null)\n", - "pre_main_sequence : Set to True to turn on pre-main sequence evolution. Currently this is not a special stellar type, rather the first (small) fraction of the main sequence has increased radii to match the Railton et al 2014 fits to Tout's pre-main sequence stars. Requires PRE_MAIN_SEQUENCE. See also pre_main_sequence_fit_lobes. : (null)\n", - "pre_main_sequence_fit_lobes : Set to True force a pre-main sequence star into its Roche lobe. This is done by artificially aging it. Requires PRE_MAIN_SEQUENCE : (null)\n", - "small_envelope_method : Choose the method used to determine the stellar radius when the envelope mass is very thin. 0 = Hurley et al. (2002), 1 = Miller Bertolami et al. (2016+) for GB and AGB stars only. : (null)\n", - "timestep_modulator : Multiplier applied to the global timestep. Requires TIMESTEP_MODULATION. : (null)\n", - "timestep_multiplier%d : Multiplier applied to timestep limit <n>. : (null)\n", - "maximum_timestep : The maximum timestep (MYr). : (null)\n", - "zoomfac_multiplier_decrease : When a timestep is rejected, decrease the timestep by this factor (0.5). : (null)\n", - "zoomfac_multiplier_increase : When a timestep is rejected, zooms, then succeeds, increase the timestep by this factor (1.2). : (null)\n", - "maximum_timestep_factor : The maximum factor between two subsequent timesteps (1.2). : (null)\n", - "maximum_nuclear_burning_timestep : The maximum timestep (MYr) in any nuclear burning phase. : (null)\n", - "nova_retention_method : Algorithm used to calculate the amount of mass retained during a nova explosion. 0=use nova_retention_fraction. (other methods pending) : (null)\n", - "MINT_metallicity : This sets the metallicity for MINT. It is ignored if set to -1.0, the default, in which case the normal metallicity parameter is used. : (null)\n", - "gaia_Teff_binwidth : log10(Effective temperature) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_L_binwidth : log10(luminosity) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_colour_transform_method : Use this to select the method used to transform to Gaia colours from other colour schemes. GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1 Jordi et al.'s bivariate UBVRI fits, GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3 Jordi et al.'s univariate ugriv fits, GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_UBVRI_RIELLO2020 = 6 Riello et al. (2020, DR3) fits, GAIA_CONVERSION_ugriz_RIELLO2020 = 7 Riello et al. (2020, DR3) fits. : (null)\n", - "rotationally_enhanced_mass_loss : Set to 1 to enable rotationally enhanced mass loss rate algorithms: 0= none, 1=formula cf. Langer models (=ROTATIONALLY_ENHANCED_MASSLOSS_LANGER_FORMULA), 2=limit accretion rate before wind loss is applied, 3 = both 1 and 2. See also rotationally_enhanced_exponent : (null)\n", - "AGB_core_algorithm : Algorithm to use for calculating AGB core masses. 0=Hurley et al. 2002 if no NUCSYN, Karakas 2002 if NUCSYN is defined; 1=Hurley et al. 2002 (overshooting models); 1=Karakas 2002 (non-overshooting models). : (null)\n", - "AGB_radius_algorithm : Algorithm to use for calculating radii on the TPAGB. : (null)\n", - "AGB_luminosity_algorithm : Algorithm to use for calculating luminosities on the TPAGB. : (null)\n", - "AGB_3dup_algorithm : Algorithm to use for calculating third dredge up efficiency on the TPAGB. : (null)\n", - "overspin_algorithm : Algorithm to determine what we do when a star is rotating at its breakup velocity. OVERSPIN_BSE (0) conservatively transfers the angular momentum back to the orbit. OVERSPIN_MASSLOSS uses the rotationally_enhanced_massloss parameter to lose mass which carries away the angular momentum. : (null)\n", - "rotationally_enhanced_exponent : The exponent (power) by which rotationally enhanced mass loss is raised. Requires ROTATIONALLY_ENHANCED_MASS_LOSS. See also rotationally_enhanced_mass_loss. : (null)\n", - "batchmode : Set the batchmode control variable. Use only if you know what you are doing! : (null)\n", - "speedtests : If True, turns on speedtests during version information (off by default). : (null)\n", - "use_fixed_timestep_%d : Set to True to use fixed timestep <n>, False to turn off. Fixed timesteps are on (this is True) by default. : (null)\n", - "task%d : Control tasks to be performed by binary_c. By default, these are all TRUE. For more information see binary_c_macros.h, particularly the BINARY_C_TASK_* macros. : (null)\n", - "orbiting_object : Usage: --orbiting_object mass,spinrate,central_object,period. : 1.0\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_wind_accretion_multiplier : Multiplier for wind accretion on orbiting objects. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "orbiting_objects_close_pc_threshold : How close are orbiting objects allowed to be? Set this to be the absolute percentage difference minimum. : (null)\n", - "orbiting_objects_tides_multiplier : Multiplier for tidal torques on orbiting objects. : (null)\n", - "evaporate_escaped_orbiting_objects : If True, evaporate orbiting objects that have escaped the system. : (null)\n", - "RLOF_transition_objects_escape : If True, objects that escape their Roche lobe are ejected from the system, otherwise they are placed just outside the minimum stable orbit. : (null)\n", - "PN_resolve : If True, the timestep will be shortened to resolve better the PN phase (FALSE). : (null)\n", - "PN_resolve_minimum_luminosity : The luminosity above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_maximum_envelope_mass : The envelope mass below which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_minimum_effective_temperature : The minimum effective temperature above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_fast_wind : If True, thin-envelope PNe will have fast winds (FALSE). : (null)\n", - "PN_fast_wind_dm_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_mdot_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_dm_AGB : The envelope mass below which fast wind used during the AGB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "PN_fast_wind_mdot_AGB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "HeWD_HeWD_ignition_mass : HeWD-HeWD mergers above this mass reignite helium. (0.3) : (null)\n", - "wind_Nieuwenhuijzen_luminosity_lower_limit : Above this luminosity we activate the Nieuwenhuijzen and de Jager wind (4e3 Lsun). : (null)\n", - "wind_LBV_luminosity_lower_limit : Above this luminosity we activate the LBV wind (6e5 Lsun). : (null)\n", - "colour%d : Sets colour %d (0 to NUM_ANSI_COLOURS-1) to the extended ANSI set colour you choose (1-255, 0 means ignore). The colour numbers are defined in src/logging/ansi_colours.h : (null)\n", - "apply_Darwin_Radau_correction : Apply Darwin-Radau correction to the moment of inertia to take rotation into account? : (null)\n", - "degenerate_core_merger_nucsyn : If TRUE, assume that in a degnerate core merger, energy is generated from nucleosynthesis of the whole core, and that this can disrupt the core. The BSE algorithm (Hurley et al. 2002) assumes this to be TRUE, but binary_c assumes FALSE by default. (FALSE) : (null)\n", - "degenerate_core_helium_merger_ignition : If TRUE, assume that when there is a degenerate helium core merger, the star reignites helium. This is required to make R-type carbon stars. (TRUE) : (null)\n", - "degenerate_core_merger_dredgeup_fraction : If non-zero, mix this fraction of the degenerate core during a merger.(0.0). : (null)\n", - "\n", - "############################################################\n", - "##### Section Binary\n", - "############################################################\n", - "separation : Set the orbital separation (actually the semi-major axis) of the binary (internal index 0, stellar indices 0 and 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_triple : Set the orbital separation (actually the semi-major axis) of the triple (internal index 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_quadruple : Set the orbital separation (actually the semi-major axis) of the quadruple (internal index 2) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "orbital_period : Set the initial orbital period of the binary, stars 1 and 2 (internal indices 0 and 1) in days. See also separation. : (null)\n", - "orbital_period_triple : Set the initial orbital period of the triple in days. See also separation. : (null)\n", - "orbital_period_quadruple : Set the orbital period of the outer binary in a quadrulple (stars 3 and 4, internal indices 2 and 3) in days. See also separation. : (null)\n", - "eccentricity : Set the initial eccentricity of the binary orbit (stars 1 and 2, internal indices 0 and 1). : (null)\n", - "eccentricity_triple : Set the initial eccentricity of the triple orbit. : (null)\n", - "eccentricity_quadruple : Set the initial eccentricity of the outer binary of a quadruple (stars 3 and 4, internal indices 2 and 3). : (null)\n", - "incliniation : Set the initial orbital_inclination of the binary relative to zero. : (null)\n", - "incliniation_triple : Set the initial orbital_inclination of the triple orbit relative to zero. : (null)\n", - "incliniation_quadruple : Set the initial orbital_inclinationy of the quadruple orbit relative to zero. : (null)\n", - "orbital_phase : Set the initial orbital phase of the binary orbit. : (null)\n", - "orbital_phase_triple : Set the initial orbital phase of the triple orbit. : (null)\n", - "orbital_phase_quadruple : Set the initial orbital phase of the quadruple orbit. : (null)\n", - "argument_of_periastron : Set the initial argument of periastron of the binary orbit. : (null)\n", - "argument_of_periastron_triple : Set the initial argument of periastron of the triple orbit. : (null)\n", - "argument_of_periastron_quadruple : Set the initial argument of periastron of the quadruple orbit. : (null)\n", - "disc_timestep_factor : Factor that multiplies the natural timestep of a disc. : (null)\n", - "white_dwarf_cooling_model : White dwarf cooling model, relates age to luminosity. WHITE_DWARF_COOLING_MESTEL = 0 is Mestel's model, WHITE_DWARF_COOLING_MESTEL_MODIFIED = 1 is Hurley's modified Mestel model, WHITE_DWARF_COOLING_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "white_dwarf_radius_model : White dwarf radius model, radius to mass (and perhaps age). WHITE_DWARF_RADIUS_NAUENBERG1972 = 0 Nauenberg (1972), WHITE_DWARF_RADIUS_MU = 1 mu-dependent variant, WHITE_DWARF_RADIUS_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "cbdisc_mass_loss_inner_viscous_accretion_method : Chooses where the mass that is accreted from the inner edge of a circumbinary disc goes, i.e. to which star. 0 = Young and Clarke 2015, 1 = Gerosa et al 2015, 2 = 50:50 (i.e. not dependence on mass). : (null)\n", - "cbdisc_inner_edge_stripping : If True, allow inner edge mass stripping. : (null)\n", - "cbdisc_end_evolution_after_disc : If True, stop evolution when a disc evaporates. : (null)\n", - "cbdisc_no_wind_if_cbdisc : If True, disable stellar winds when there is a circumbinary disc. : (null)\n", - "cbdisc_outer_edge_stripping : If True, allow outer edge mass stripping. : (null)\n", - "disc_n_monte_carlo_guesses : Number of monte carlo guesses to try in the disc solver if the normal list of guesses fails (0). : (null)\n", - "disc_log : If 1, turn on the disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log2d : If 1, turn on the 2d disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log_dt : If non-zero, only allows disc log output every disc_log_dt Myr. : (null)\n", - "disc_log_directory : Directory into which disc logging is sent (must exist!). : /tmp/\n", - "post_ce_adaptive_menv : If TRUE, and if post_ce_objects_have_envelopes is TRUE, then the envelope mass of a post-CE star is such that it sits just inside its Roche lobe. If FALSE then a fixed (thin) envelope mass is applied that depends on the stellar type (see macros POST_CE_ENVELOPE_DM_GB, POST_CE_ENVELOPE_DM_EAGB and POST_CE_ENVELOPE_DM_TPAGB). : (null)\n", - "post_ce_objects_have_envelopes : If TRUE then post-common-envelope objects have thin envelopes. You need this if you are to have post-CE post-AGB stars. Note that this *may* be unstable, i.e. you may end up having many CEEs. The mass in the envelope is controlled by post_ce_adaptive_menv. TRUE by default. : (null)\n", - "PN_comenv_transition_time : post-common envelope transition time in years (1e2). This is the time taken to move from CEE ejection to Teff > 30e4 K. Hall et al. (2013) suggest ~100 years. : (null)\n", - "minimum_time_between_PNe : The minimum time (Myr) between planetary nebula detections. This prevents multiple, fast common envelopes triggering two PNe (0.1). : (null)\n", - "PN_Hall_fading_time_algorithm : In stars with low mass (<0.45Msun) cores, you can choose to set the PN fading time to either the minimum (PN_HALL_FADING_TIME_ALGORITHM_MINIMUM) or maximum (PN_HALL_FADING_TIME_ALGORITHM_MAXIMUM) as shown in Fig. 6 of Hall et al. (2013). : (null)\n", - "PPN_envelope_mass : Desired pre-planetary nebula (post-AGB) envelope mass. : (null)\n", - "cbdisc_eccentricity_pumping_method : Select from various eccentricity-pumping methods when there is a circumbinary disc. Requires DISCS. 0 = off. : (null)\n", - "cbdisc_viscous_photoevaporative_coupling : Set to 1 to turn on viscous-photoevaporative coupling in circumbinary discs. Requires DISCS. 0 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = off, 1 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT instant, 2 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS slow, viscous wind. : (null)\n", - "cbdisc_inner_edge_stripping_timescale : Defines the timescale for mass loss from by inner edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_in. : (null)\n", - "cbdisc_outer_edge_stripping_timescale : Defines the timescale for mass loss from by outer edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_out. : (null)\n", - "cbdisc_viscous_L2_coupling : Set to 1 to turn on viscous-L2-loss coupling in circumbinary discs. Requires DISCS. 0 = off. : (null)\n", - "gravitational_radiation_model : Model for gravitational radiation from the system. 0=Hurley et al 2002 (Landau and Lifshitz 1951). 1 = as 0 but only when there is no RLOF. 2 = none. : (null)\n", - "nova_irradiation_multiplier : Multiplier for nova-radiative induced mass loss. (Shara+1986) : (null)\n", - "gravitational_radiation_modulator_J : Modulator for gravitational wave radiation angular momentum loss rate (1.0). : (null)\n", - "gravitational_radiation_modulator_e : Modulator for gravitational wave radiation eccentricity pumping rate (1.0). : (null)\n", - "nova_faml_multiplier : Nova friction-induced angular momentum loss multiplier. (Shara+1986) : (null)\n", - "RLOF_angular_momentum_transfer_model : Choose angular momentum transfer model in RLOF. 0=BSE (with discs), 1=conservative : (null)\n", - "post_SN_orbit_method : Method by which the post-SN orbit is calculated. 0=BSE, 1=Tauris&Taken 1998. : (null)\n", - "multiplicity : Multiplicity: 1=single star, 2=binary, 3=triple, 4=quadruple. : (null)\n", - "accretion_limit_eddington_steady_multiplier : Steady accretion is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_steady_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_LMMS_multiplier : Accretion from a low-mass, convective, main_sequence star is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_LMMS_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_WD_to_remnant_multiplier : Accretion from a WD onto a remnant star (e.g. another white dwarf, neutron star or black hole) is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_WD_to_remnant_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_thermal_multiplier : Mass transfer onto a MS, HG or CHeB star is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "accretion_limit_dynamical_multiplier : Mass transfer is limited by the accretor's dynamical rate times this multiplier. : (null)\n", - "donor_limit_envelope_multiplier : Mass transfer by RLOF is limited by this fraction of the donor's envelope mass per timestep : (null)\n", - "donor_limit_thermal_multiplier : Mass transfer by RLOF is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "donor_limit_dynamical_multiplier : Mass transfer by RLOF is limited by the donor's dynamical rate times this multiplier. : (null)\n", - "Bondi_Hoyle_accretion_factor : Wind accretion rate, as calculated by the Bondi-Hoyle-Littleton formula, multiplcation factor. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "tidal_strength_factor : A modulator for the tidal strength. If this factor > 1 then tides are stronger, i.e. tidal timescales are reduced. : (null)\n", - "hachisu_qcrit : Critical q=Maccretor/Mdonor above which Hachisu's disk wind turns on. : (null)\n", - "hachisu_disk_wind : Set to True to turn on Hachisu's disk wind when material accretes too fast onto a white dwarf. This helps to make more SNeIa. See also hachisu_qcrit. : (null)\n", - "mass_accretion_for_eld : The mass that must be accreted onto a COWD for it to ignite as an edge-lit detonation SNIa. : (null)\n", - "WDWD_merger_algorithm : Algorithm to be used when merging two white dwarfs. 0 = Hurley et al. (2002), 1 = Perets+ (2019), 2 = Chen+ (2016, todo) : (null)\n", - "type_Ia_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from Chandrasekhar-mass exploders. 0 = DD7 (Iwamoto 1999), 1 = Seitenzahl 2013 3D hydro yields (you must also set Seitenzahl2013_model) : (null)\n", - "Seitenzahl2013_model : Which of Seitenzahl et al. 2013's models to use? One of N1,N3,N5,N10,N20,N40,N100L,N100,N100H,N150,N200,N300C,N1600,N1600C,N100_Z0.5,N100_Z0.1,N100_Z0.01 (defaults to N100). : N1\n", - "type_Ia_sub_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.) : (null)\n", - "max_HeWD_mass : The maximum mass a HeWD can have before it ignites helium (0.7). : (null)\n", - "merger_mass_loss_fraction : Fraction of the total mass which is lost when stars merge. : (null)\n", - "merger_angular_momentum_factor : When two stars merge the resulting single star retains a fraction of the total system angular momentum (or the critical spin angular momentum, if it is smaller) multiplied by this factor. : (null)\n", - "wind_angular_momentum_loss : Prescription for losing angular momentum in a stellar wind. 0=Hurley et al 2002 ('Tout') prescription, 1=lw i.e. a factor multiplying the specific orbital angular momentum, 2=lw hybrid for fast winds. Set wind_djorb_fac to the desired factor.. : (null)\n", - "wind_djorb_fac : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=0 (the Tout/Hurley et al 2002 prescription). See wind_angular_momentum_loss. : (null)\n", - "lw : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=1,2 (the 'lw' prescription). See wind_angular_momentum_loss. : (null)\n", - "VW93_EAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "VW93_TPAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "use_periastron_Roche_radius : Set this to True to use the Roche lobe radius at periastron, rather than (the default to) assume a circular orbit. This will be useful one day when we treat RLOF in eccentric orbits properly, hopefully. : (null)\n", - "qcrit_LMMS : Apply critical q=Mdonor/Maccretor value for low-mass main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_LMMS : Apply critical q=Mdonor/Maccretor value for (low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "mass_for_Hestar_Ia_upper : Only helium stars below this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_lower. : (null)\n", - "mass_for_Hestar_Ia_lower : Only helium stars above this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_upper. : (null)\n", - "alphaCB : Circumbinary disk viscosity parameter, alpha. : (null)\n", - "minimum_donor_menv_for_comenv : Minimum donor envelope mass for common envelope evolution to be triggered (Msun). Default 0. : (null)\n", - "comenv_prescription : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_prescription%d : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_ejection_spin_method : When a common envelope is ejected, we need to decide how fast the stars are left spinning. COMENV_EJECTION_SPIN_METHOD_DO_NOTHING (0) is the default, this just leaves the stars/stellar cores spinning with the same spin rate (omega = angular velocity) with which they entered the common envelope phase. COMENV_EJECTION_SPIN_METHOD_SYCHRONIZE instead tidally synchronizes the stars with their new orbital angular velocity. : (null)\n", - "comenv_merger_spin_method : When a common envelope binary merges, we need to decide how fast the resulting single star is left spinning. COMENV_MERGER_SPIN_METHOD_SPECIFIC (0) is the default, this preserves angular momentum but limits the specific angular momentum of the merged star to the specific angular momentum of the system at the onset of common envelope evolution. COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM (1) sets the merger's angular momentum to be that of the system at the onset of common envelope evolution (which means the star may be rotating supercritically). COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA (2) sets the spin rate (angular frequency = omega) of the merged star to be that of the orbit just at the onset of common envelope evolution. : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "comenv_ms_accretion_fraction : Experimental. During common envelope evolution, a main sequence may accrete a fraction of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_mass. : (null)\n", - "comenv_ns_accretion_mass : Experimental. During common envelope evolution, a neutron star may accrete some of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_fraction. : (null)\n", - "comenv_ns_accretion_fraction : Experimental. During common envelope evolution, a neutron star may accrete a fraction of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_mass. : (null)\n", - "alpha_ce : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "alpha_ce%d : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "lambda_ce : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to LAMBDA_CE_DEWI_TAURIS == -1 binary_c uses the Dewi and Tauris fits instead, LAMBDA_CE_WANG_2016 == -2 uses the formalism of Wang, Jia and Li (2016), if LAMBDA_CE_POLYTROPE == -3 then a polytropic formalism is used (see also comenv_splitmass) and if LAMBDA_CE_KLENCKI_2020 == -4 use Klencki et al. (2020). : (null)\n", - "lambda_ce%d : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). : (null)\n", - "comenv_splitmass : When lambda_ce=-2, the envelope binding energy, lambda, is calculated using a polytropic formalism. The comenv_splitmass defines the point, in the units of the core mass, above which material is ejected. : (null)\n", - "nelemans_recalc_eccentricity : If True, recalculate the eccentricity after angular momentum is removed. : (null)\n", - "comenv_post_eccentricity : Eccentricity remaining after common envelope ejection. : (null)\n", - "nelemans_gamma : Set the fraction of the orbital specific angular momentum that is used to eject the common envelope according to the Nelemans and Tout prescription. See also nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_minq : Only activate the Nelemans and Tout common envelope prescription for q>nelemans_minq. See also nelemans_gamma, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_max_frac_j_change : Maximum fractional angular momentum change in the Nelemans and Tout common envelope prescription. See also nelemans_gamma, nelemans_minq, nelemans_n_comenvs. : (null)\n", - "nelemans_n_comenvs : Set the maximum number of common envelope ejections allowed to follow the Nelemans and Tout prescription, after which the standard alpha prescription is used. : (null)\n", - "lambda_ionisation : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_ionisation%d : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_enthalpy : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "lambda_enthalpy%d : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "cbdisc_albedo : Circumbinary-disc albedo. Requires DISCS. : (null)\n", - "cbdisc_gamma : Circumbinary disc gamma (equation of state) parameter. Requires DISCS. : (null)\n", - "cbdisc_alpha : Circumbinary disc alpha (viscosity) parameter. Requires DISCS. : (null)\n", - "cbdisc_kappa : Circumbinary disc kappa (opacity) parameter. Requires DISCS. : (null)\n", - "cbdisc_minimum_evaporation_timescale : Circumbinary disc minimum evaporation timescale (years). If (slow, not edge stripped) mass loss would evaporate the disc on a timescale less than this, simply evaporate the disc immediated. Usually set to 1y, ignore if zero. Requires DISCS. : (null)\n", - "cbdisc_torquef : Circumbinary disc binary torque multiplier. Requires DISCS. : (null)\n", - "cbdisc_max_lifetime : Circumbinary disc maximum lifetime (years, ignored if 0). Requires DISCS. : (null)\n", - "cbdisc_init_dM : On cbdisc start, reduce mass by a fraction dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_init_dJdM : On cbdisc start, reduce angular momentum by a fraction dJ/dM*dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_mass_loss_constant_rate : Circumbinary disc constant mass loss rate (Msun/year). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_FUV_multiplier : Circumbinary disc FUV mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_Xray_multiplier : Circumbinary disc X-ray mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_ram_pressure_multiplier : Circumbinary disc interstellar medium ram pressure stripping mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_pressure : Circumbinary disc interstellar medium ram pressure in units of Boltzmann constant per Kelvin (I think...). Requires DISCS. Typically 3000.0. See e.g. http://www.astronomy.ohio-state.edu/~pogge/Ast871/Notes/Intro.pdf page 15 or https://arxiv.org/pdf/0902.0820.pdf Fig. 1 (left panel). : (null)\n", - "cbdisc_mass_loss_inner_viscous_multiplier : Circumbinary disc inner edge viscous mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier : Circumbinary disc inner edge viscous angular momentum multiplier (no units). The inner edge angular momentum Requires DISCS. : (null)\n", - "cbdisc_resonance_multiplier : Circumbinary disc resonant interaction multiplier, affects eccentricity pumping and angular momentum rates. Requires DISCS. : (null)\n", - "cbdisc_resonance_damping : Circumbinary disc resonant interaction damping: should be on (True) to damp the l=1, m=2 resonance when the disc inner edge lies outside the resonance location. Requires DISCS. : (null)\n", - "cbdisc_fail_ring_inside_separation : If True, while converging on a structure, circumbinary discs with Rring < the binary separation are immediately failed. : (null)\n", - "cbdisc_mass_loss_inner_L2_cross_multiplier : Circumbinary disc inner edge L2-crossing mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_minimum_luminosity : Circumbinary disc minimum luminosity. If the disc becomes dimmer than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_mass : Circumbinary disc minimum mass. If the disc becomes less massive than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_fRing : Circumbinary disc minimum fRing. If the disc becomes a ring, and fRing = |Rout/Rin-1| < this value (and this value is non-zero), the disc is evaporated instantly. Requires DISCS. : (null)\n", - "comenv_disc_angmom_fraction : If >0 Fraction of the common envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the moments of inertia to calculate (deprecated), if -2 use the common envelope's specific angular momentum, if -3 uses the L2 point at the end of the common envelope to set the angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "comenv_disc_mass_fraction : Fraction of the common envelope's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "wind_disc_angmom_fraction : If >0 Fraction of the wind envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the L2 point's specific angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "wind_disc_mass_fraction : Fraction of the stellar wind's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "WRLOF_method : Choose whether and how to apply wind-Roche-lobe-overflow. 0=none, 1=q-dependent, 2=quadratic See Abate et al 2013/14 for details. Requires WRLOF_MASS_TRANSFER. : (null)\n", - "minimum_timestep : The minimum timestep (Myr). : (null)\n", - "timestep_solver_factor : Factor applied in timestep_limits, e.g. to prevent X changing too fast by comparing to X/dX/dt, which is usually 1 but can be higher to lengthen timesteps when using an alternative solver. : (null)\n", - "RLOF_mdot_factor : Multiplier applied to the mass transfer rate during Roche-lobe overflow. Requires RLOF_MDOT_MODULATION. : (null)\n", - "RLOF_f : Factor to enlarge a Roche lobe, nominally because of radiation pressure (see Dermine et al paper). Requires RLOF_RADIATION_CORRECTION. : (null)\n", - "minimum_separation_for_instant_RLOF : If True, instead of evolving the system just report the minimum separation (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_orbital_period_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "minimum_orbital_period_for_instant_RLOF : If True, instead of evolving the system just report the minimum orbital period (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_separation_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "maximum_mass_ratio_for_instant_RLOF : If True, instead of evolving the system just report the maximum mass ratio (on the zero-age main sequence) that would lead to instant RLOF, given M1 and orbital period. Used by binary_grid. See also minimum_separation_for_instant_RLOF and minimum_orbital_period_for_instant_RLOF. : (null)\n", - "RLOF_method : Use RLOF_method to choose the algorithm you use for Roche-lobe overflow mass loss rate calculations. 0=Hurley et al 2002, 1=Adaptive (for radiative stars) R=RL method, 2=Ritter (probably broken), 3=Claeys etal 2014 variant on Hurley et al 2002. : (null)\n", - "RLOF_interpolation_method : When a star overflows its Roche lobe, it always has R>RL because of the limited time resolution of the simulation. Binary_c then uses an algorithm to get back to when R~RL (within a desired tolerance, set in RLOF_ENTRY_THRESHOLD which is usually 1.02, i.e. overflow of 2%). You can choose algorithm 0, the Hurley et al 2002 method which reverses time (i.e. uses a Newton-like scheme), or 1 to use the binary_c method which rejects a timestep (and hence does no logging on that timestep) and repeats with half the timestep until R~RL. The latter is now the default, because this means there are no negative timesteps which break various other algorithms (e.g. nucleosynthesis). : (null)\n", - "nova_retention_fraction : The mass accreted during a nova as fraction of mass transferred : (null)\n", - "beta_reverse_nova : The fraction of mass ejected in a nova explosion which is accreted back onto the companion star. Set to -1 to automatically calculate based on a geometric argument, or 0 or positive to set the value. : (null)\n", - "WD_accretion_rate_novae_upper_limit_hydrogen_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is hydrogen rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_helium_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_other_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is neither hydrogen nor helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a hydrogen-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_helium_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a helium-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_other_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope when the donor is neither hydrogen nor helium rich. Below this mass transfer leads to stable burning. : (null)\n", - "CRAP_parameter : Tidally enhanced mass loss parameter. See Tout and Eggleton's paper on the subject. (Was the parameter bb). : (null)\n", - "individual_novae : If individual_novae is True, novae are resolved such that each explosion is performed separtaely. : (null)\n", - "nova_timestep_accelerator_num : The nova timestep is accelerated if the nova number exceeds nova_timestep_accelerator_num. If zero or negative, acceleration is off. See also nova_timestep_accelerator_index and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_index : The index at which the nova timestep is accelerated. A larger value gives longer timesteps. See also nova_timestep_accelerator_num and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_max : The nova timestep is accelerated by a factor that is capped at nova_timestep_accelerator_max. This parameter is ignored if it is zero or negative. See also nova_timestep_accelerator_num and nova_timestep_accelerator_index. Only used if individual_novae is on.\n", - " : (null)\n", - "nonconservative_angmom_gamma : Mass lost from the system (but NOT from a stellar wind) takes a fraction gamma of the orbital angular momentum with it. Set to -1 to take the specific angular momentum of the donor star. Set to -2 to take super-Eddington, nova and disk-wind angular momenta as if a wind from the accretor. : (null)\n", - "max_stellar_angmom_change : Maxmimum fractional change in stellar angular momentum allowed before a timestep is rejected (0.05). : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "\n", - "############################################################\n", - "##### Section Nucsyn\n", - "############################################################\n", - "third_dup : If True, enables third dredge up. Requires NUCSYN and NUCSYN_THIRD_DREDGE_UP. : (null)\n", - "third_dup_multiplier : Usage: --third_dup_multiplier <i> <f>. Multiplies the abundance of element <i> by <f> during third dredge up. : 1.0\n", - "NeNaMgAl : Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB. : Ignore\n", - "nucsyn_network%d : Usage: --nucsyn_network%d <boolean>. Turn a nuclear network on or off. : (null)\n", - "nucsyn_network_error%d : Usage: --nucsyn_network_error%d <f>. Threshold error in nuclear network solver for network %d. : (null)\n", - "nucreacmult%d : Usage: --nucreacmult%d <f>. Multiply nuclear reaction given by the integer %d (integer) by f (float). : (null)\n", - "nucsyn_metallicity : This sets the metallicity of the nucleosynthesis algorithms, i.e. the amount (by mass) of matter which is not hydrogen or helium. Usually you'd just set this with the metallicity parameter, but if you want the nucleosynthesis to be outside the range of the stellar evolution algorithm (e.g. Z=0 or Z=0.04) then you need to use nucsyn_metallicity. That said, it's also outside the range of some of the nucleosynthesis algorithms as well, so you have been warned! : (null)\n", - "nucsyn_solver : Choose the solver used in nuclear burning. 0 = KAPS_RENTROP is a Kaps-Rentrop scheme (fast, not great for stiff problems), 1 = LSODA (Adams/BSF switcher), 2 = CVODE library (https://computing.llnl.gov/projects/sundials. Default 0. : 0\n", - "initial_abundance_mix : initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993 : 0\n", - "init_abund : Usage: --init_abund <i> <X>. Sets the initial abundance of isotope number <i> to mass fraction <X>. : 0.02\n", - "init_abund_mult : Usage: --init_abund_mult <i> <f>. Multiplies the initial abundance of isotope number <i> by <f>. : 1.0\n", - "init_abund_dex : Usage: --init_abund_dex <i> <f>. Changes the initial abundance of isotope number <i> by <f> dex. : 0.0\n", - "init_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "initial_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "no_thermohaline_mixing : If True, disables thermohaline mixing. : (null)\n", - "lithium_GB_post_Heflash : Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_GB_post_1DUP : Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_hbb_multiplier : Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "angelou_lithium_decay_function : Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are : 0 expoential (see angelou_lithium_decay_time). : (null)\n", - "angelou_lithium_LMMS_time : Time at which lithium manufacture is triggered in a low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_time : Time at which lithium manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_time : Time at which lithium manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_time : Time at which lithium manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_time : Time at which lithium manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_time : Time at which lithium manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_time : Time at which lithium manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_decay_time : Decay time for surface lithium abundance during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_decay_time : Decay time for surface lithium abundance on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_decay_time : Decay time for surface lithium abundance on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_decay_time : Decay time for surface lithium abundance on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_decay_time : Decay time for surface lithium abundance during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_decay_time : Decay time for surface lithium abundance on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_decay_time : Decay time for surface lithium abundance on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_massfrac : Lithium mass fraction when its manufacture is triggered during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_massfrac : Lithium mass fraction when its manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_massfrac : Lithium mass fraction when its manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_massfrac : Lithium mass fraction when its manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_massfrac : Lithium mass fraction when its manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_vrot_trigger : Equatorial rotational velocity at which lithium manufacture is triggered (km/s). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "angelou_lithium_vrotfrac_trigger : Fraction of Keplerian (breakup) equatorial rotational velocity at which lithium manufacture is triggered (must be <1, ignored if 0). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "\n", - "############################################################\n", - "##### Section Output\n", - "############################################################\n", - "cf_amanda_log : Enable logging to compare to Amanda's models. : (null)\n", - "float_overflow_checks : Turn on to enable floating-point overflow checks at the end of each timestep, if they are available. 0=off, 1=warn (stderr) on failure, 2=exit on failure (0) : (null)\n", - "save_pre_events_stardata : Enable this to save a copy of stardata to stardata->pre_events_stardata just before an event. : (null)\n", - "disable_end_logging : Disable the logging that happens at the end of the evolution. : (null)\n", - "ensemble : Turn on ensemble calculations and output. : (null)\n", - "ensemble_filters_off : Sets all ensemble filters to be off (FALSE) - these can then be enabled one-by-one with --ensemble_filter_[...] TRUE. : (null)\n", - "ensemble_filter_%d : Turn on or off ensemble filter <n>. For a list of filters, see ensemble_macros.h. : (null)\n", - "ensemble_legacy_ensemble : Turn on ensemble legacy population output. : (null)\n", - "legacy_yields : Turn on ensemble legacy yield output. : (null)\n", - "ensemble_defer : Defer ensemble output. : (null)\n", - "ensemble_dt : When doing ensemble calculations, data are stored and/or output every ensemble_dt Myr. See also ensemble, ensemble_logdt, ensemble_startlogtime. : (null)\n", - "ensemble_logdt : When doing ensemble calculations, and when logensembletimes is set, the ensemble is stored/output every ensemble_logdt Myr. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_startlogtime : Start log ensemble data storage/calculations/output at ensemble_startlogtime. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_logtimes : When doing ensemble calculations/output, set this to act at log times rather than linear times. : (null)\n", - "postagb_legacy_logging : Turn on post-AGB legacy logging. : (null)\n", - "disc_legacy_logging : Turn on disc legacy logging. : (null)\n", - "EMP_logg_maximum : Maximum logg that EMP stars are allowed to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_minimum_age. : (null)\n", - "EMP_minimum_age : Minimum age that EMP stars are required to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum. : (null)\n", - "EMP_feh_maximum : Maximum [Fe/H] that an EMP stars may have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default -2.0. : (null)\n", - "CEMP_cfe_minimum : Minimum [C/Fe] that CEMP stars are required to have. See Izzard et al 2009. See also NEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 0.7. : (null)\n", - "NEMP_cfe_minimum : Minimum [N/Fe] that NEMP stars are required to have. See Izzard et al 2009, Pols et al. 2012. See also CEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 1.0. : (null)\n", - "thick_disc_start_age : Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr. : (null)\n", - "thick_disc_end_age : Lookback time for the end of the thick disc star formation, e.g. 4e3 Myr. Units = Myr. : (null)\n", - "thick_disc_logg_min : Minimum logg for thick disc giants to be logged. : (null)\n", - "thick_disc_logg_max : Maximum logg for thick disc giants to be logged. : (null)\n", - "escape_velocity : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 1e9 km/s. See also escape_fraction. : (null)\n", - "escape_fraction : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 0.0. See also escape_velocity. : (null)\n", - "colour_log : If set to True, thelog is coloured with ANSI colour formatting. Requires FILE_LOG to be defined. : \n", - "log_filename : Location of the output logging filename. If set to \"/dev/null\" then there is no logging. : \n", - "log_arrows : Add arrows to the output log to show whether values are increasing or decreasing. : \n", - "stopfile : File which, when it exists, will stop the current binary_c repeat run. : \n", - "stardata_dump_filename : Location of the stardata dump file. : \n", - "stardata_load_filename : Location of the stardata file to load. : \n", - "api_log_filename_prefix : Location of the output logging filename prefix for the API. If set to \"/dev/null\" then there is no logging. : 0\n", - "hrdiag_output : Set to True to output high time-resolution Hertzstrpung-Russell diagram information. Requires HRDIAG. : (null)\n", - "internal_buffering : Experimental. Set to non-zero values to implement internal buffering prior to output. For use with binary_grid, you shouldn't really be playing with this. : (null)\n", - "eccentric_RLOF_model : Chooses which model is used to handle eccentric RLOF. Default is RLOF_ECCENTRIC_AS_CIRCULAR, i.e. ignore the eccentricity. Note: requires force_corotation_of_primary_and_orbit to be FALSE.\n", - " : (null)\n", - "force_circularization_on_RLOF : If True forces circularization of stars and orbit when RLOF starts, this is as in the BSE algorithm. (True) : (null)\n", - "wtts_log : If True, enables log file output for WTTS2. : (null)\n", - "fabian_imf_log_time : Time at which to output for Fabian Schneider's IMF project. Requires FABIAN_IMF_LOG : Ignore\n", - "fabian_imf_log_timestep : Timestep for Fabian Schneider's IMF project logging. Requires FABIAN_IMF_LOG : Ignore\n", - "version : Display binary_c version and build information. Also performs timing tests. : Ignore\n", - "dumpversion : Display binary_c version number (short format). : Ignore\n", - "version_only : Display binary_c version number and build information, but do not perform timing tests or anything that requires stardata to be non-NULL. : Ignore\n", - "tides_diagnosis_log : Enable logging to test MINT tides. Requires MINT. Choices are: 0 disabled, 1 enable lambda test. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Input\n", - "############################################################\n", - "MINT_dir : Location of MINT algorithm data. : \n", - "MINT_data_cleanup : Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things. : \n", - "MINT_MS_rejuvenation : Turn on or off (hydrogen) main-sequence rejuvenation. : \n", - "MINT_remesh : Turn on or off MINT's remeshing. : \n", - "MINT_use_ZAMS_profiles : Use chemical profiles at the ZAMS if MINT_use_ZAMS_profiles is TRUE, otherwise set homogeneous abundances. (Default is TRUE, so we use the profiles if they are available.) : \n", - "MINT_fallback_to_test_data : If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE) : \n", - "MINT_disable_grid_load_warnings : Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data. : \n", - "MINT_Kippenhahn : Turn on or off MINT's Kippenhahn diagrams. If 0, off, if 1, output star 1 (index 0), if 2 output star 2 (index 1). Default 0. : \n", - "MINT_nshells : Set the initial number of shells MINT uses in each star when doing nuclear burning. Note: remeshing can change this. If MINT_nshells is 0, shellular burning and other routines that require shells will not be available. (200) : \n", - "MINT_maximum_nshells : Set the maximum number of shells MINT uses in each star when doing nuclear burning. Note that this will be limited to MINT_HARD_MAX_NSHELLS. (1000) : \n", - "MINT_minimum_nshells : Set the minimum number of shells MINT uses in each star when doing nuclear burning. Note that this will be greater than or equal to MINT_HARD_MIN_NSHELLS, which is 0 by default. (0) : \n", - "MINT_Kippenhahn_stellar_type : Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output. : \n", - "MINT_Kippenhahn_companion_stellar_type : Companion stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for the companion for which Kippenhahn plot data should be output. : \n", - "MINT_nuclear_burning : Turn on or off MINT's nuclear burning algorithm. : \n", - "MINT_minimum_shell_mass : Minimum shell mass in MINT's nuclear burning routines. : \n", - "MINT_maximum_shell_mass : Maximum shell mass in MINT's nuclear burning routines. : \n", - "\n", - "############################################################\n", - "##### Section I/O\n", - "############################################################\n", - "go : batchmode control command : Ignore\n", - "gogo : batchmode control command : Ignore\n", - "reset_stars : Reset the star structures. Used in batchmode : Ignore\n", - "reset_stars_defaults : Reset the star structures and set defaults. Used in batchmode : Ignore\n", - "defaults : Reset all defaults. Used in batchmode : Ignore\n", - "echo : Activate batchmode command echoing, i.e. when you enter a command, binary_c repeats the command then executes it. : Ignore\n", - "noecho : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "noechonow : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "bye : Quit binary_c. Used in batchmode. : Ignore\n", - "fin : batchmode control command : Ignore\n", - "reset_prefs : Reset preferences struct. Used in batchmode : Ignore\n", - "status : Output batchmode status information. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Algorithms\n", - "############################################################\n", - "repeat : If > 1, repeats the system as many times as required. Handy if you're using Monte-Carlo kicks and want to sample the parameter space well. Also, if you are running speed tests this is good to give a statistically more reasonable result. (See e.g. 'tbse pgo'). : (null)\n", - "random_systems : Experimental. Use this to apply random initial system parameters (masses, separations, etc.). Useful for testing only. : (null)\n", - "\n", - "############################################################\n", - "##### Section Misc\n", - "############################################################\n", - "random_seed : Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "random_systems_seed : Random number seed for the generation of random systems. See random_systems and random_seed. : (null)\n", - "random_skip : Skip the first <random_seed> random numbers that are generated. Usually this is 0 so they are all used. : (null)\n", - "idum : [NB: deprecated, please use 'random_seed' instead.] Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "reverse_time : Make time go backwards. To be considered very experimental! : (null)\n", - "start_time : Start time for the simulation. : (null)\n", - "warmup_cpu : Uses the CPU at maximum power the given number of seconds, prior to running normal stellar evolution. : Ignore\n", - "help : Display help pages. Usage: --help <help topic>. : Ignore\n", - "argopts : Display argument options. Usage: --argopts <argument>. : Ignore\n", - "help_all : Display all help pages. : Ignore\n", - "list_args : Display list of arguments with their default values. Useful for batchmode. : Ignore\n", - "\n" + "(abridged)\n" ] } ], "source": [ - "print(_binary_c_bindings.return_help_all())" + "print('\\n'.join(_binary_c_bindings.return_help_all().splitlines()[:10]))\n", + "print(\"(abridged)\")" ] }, { @@ -873,12 +300,14 @@ "__ARG_BEGIN\n", "metallicity = 0.02\n", "effective_metallicity = -1\n", - "M_1 = 0\n" + "M_1 = 0\n", + "(abridged)\n" ] } ], "source": [ - "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))" + "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -966,7 +395,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -980,7 +409,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/_sources/examples/notebook_custom_logging.ipynb.txt b/docs/build/html/_sources/examples/notebook_custom_logging.ipynb.txt index 8dfb85034..8627ffb47 100644 --- a/docs/build/html/_sources/examples/notebook_custom_logging.ipynb.txt +++ b/docs/build/html/_sources/examples/notebook_custom_logging.ipynb.txt @@ -23,7 +23,7 @@ " create_and_load_logging_function,\n", ")\n", "from binarycpython.utils.run_system_wrapper import run_system\n", - "from binarycpython.utils.grid import Population" + "from binarycpython import Population" ] }, { @@ -461,11 +461,19 @@ "# print (abridged) output\n", "print(\"\\n\".join(output.splitlines()[-2:]))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c708268f-0b0c-48ea-9155-ec632a0acc3a", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -479,7 +487,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/_sources/examples/notebook_ensembles.ipynb.txt b/docs/build/html/_sources/examples/notebook_ensembles.ipynb.txt new file mode 100644 index 000000000..44ef8a7ef --- /dev/null +++ b/docs/build/html/_sources/examples/notebook_ensembles.ipynb.txt @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d4799c94-afd8-41db-ab82-e0a6e278ed77", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/build/html/_sources/examples/notebook_extra_features.ipynb.txt b/docs/build/html/_sources/examples/notebook_extra_features.ipynb.txt index 44c19c112..a0f0fc0d9 100644 --- a/docs/build/html/_sources/examples/notebook_extra_features.ipynb.txt +++ b/docs/build/html/_sources/examples/notebook_extra_features.ipynb.txt @@ -18,11 +18,11 @@ "metadata": {}, "outputs": [], "source": [ + "from binarycpython import Population\n", "from binarycpython.utils.functions import (\n", " get_help,\n", " get_help_all,\n", " get_help_super,\n", - " return_binary_c_version_info,\n", " get_defaults\n", ")\n", "# help(binarycpython.utils.functions)" @@ -116,8 +116,7 @@ "metadata": {}, "source": [ "## Build information of binary_c\n", - "Sometimes we want to know with which settings binary_c has been built. We can use the function `return_binary_c_version_info` for this.\n", - "This function will parse the version info of binary_c and return a dictionary with all the settings." + "It can be useful to fetch the information with which the current version of binary_c has been configured with. We can do that through the Population object, by calling the instance method `return_binary_c_version_info`. This function will parse the version info of binary_c and return a dictionary with all the settings." ] }, { @@ -130,13 +129,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'nucleosynthesis_sources', 'miscellaneous'])\n" + "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'units', 'nucleosynthesis_sources', 'miscellaneous'])\n" ] } ], "source": [ - "version_info_dict = return_binary_c_version_info(parsed=True)\n", - "print(version_info_dict.keys())" + "version_info = Population().return_binary_c_version_info(parsed=True)\n", + "print(version_info.keys())" ] }, { @@ -168,27 +167,11 @@ "\n", "TODO:" ] - }, - { - "cell_type": "markdown", - "id": "b3c259ef-9f89-4b26-9ce3-45af625bc398", - "metadata": {}, - "source": [ - "## Getting help\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bf3c1e28-1662-47a7-abab-aa6fb0ef0882", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -202,7 +185,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/_sources/examples/notebook_individual_systems.ipynb.txt b/docs/build/html/_sources/examples/notebook_individual_systems.ipynb.txt index deb72fc55..d752fc66e 100644 --- a/docs/build/html/_sources/examples/notebook_individual_systems.ipynb.txt +++ b/docs/build/html/_sources/examples/notebook_individual_systems.ipynb.txt @@ -62,7 +62,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SINGLE_STAR_LIFETIME 1 12461.2\n", + "SINGLE_STAR_LIFETIME 1 12461.1\n", "\n" ] } @@ -90,17 +90,17 @@ "name": "stdout", "output_type": "stream", "text": [ - " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=62172 RANDOM_COUNT=0\n", + " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=22065 RANDOM_COUNT=0\n", " 0.0000 1.000 0.000 1 15 -1 -1 -1.00 0.000 0.000 \"INITIAL \"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"OFF_MS\"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 11582.2424 1.000 0.000 3 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12325.1085 0.817 0.000 4 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12457.1301 0.783 0.000 5 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", - " 12461.1627 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 15000.0000 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", + " 12461.1490 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 15000.0000 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", "\n" ] } @@ -236,13 +236,13 @@ "4 0.000002 1.0 1.0 1.0\n", "5 0.000003 1.0 1.0 1.0\n", "... ... ... ... ...\n", - "1345 12461.080763 0.71617 1.0 6.0\n", - "1346 12461.162734 0.644553 1.0 11.0\n", - "1347 13461.162734 0.644553 1.0 11.0\n", - "1348 14461.162734 0.644553 1.0 11.0\n", - "1349 15000.0 0.644553 1.0 11.0\n", + "1250 12461.061259 0.718593 1.0 6.0\n", + "1251 12461.149038 0.678026 1.0 11.0\n", + "1252 13461.149038 0.678026 1.0 11.0\n", + "1253 14461.149038 0.678026 1.0 11.0\n", + "1254 15000.0 0.678026 1.0 11.0\n", "\n", - "[1349 rows x 4 columns]\n" + "[1254 rows x 4 columns]\n" ] } ], @@ -299,10 +299,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", - "adding: M_1=10 to BSE_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" @@ -360,9 +358,9 @@ ");\n", " to grid_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_dafa15d2b1e64e19972ac0e9eb5c9a55.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_34a350b8f15c4d149deab88632948c99.so\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 0 10 1\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 10 10 1\n", "EXAMPLE_MASSLOSS 1.000000000000e-06 10 10 10 1\n", @@ -381,7 +379,7 @@ "\n", " stardata->star[0].stellar_type //5\n", ");\n", - "\"\"\" \n", + "\"\"\"\n", "\n", "example_pop.set(C_logging_code=custom_logging_print_statement)\n", "\n", @@ -397,7 +395,7 @@ "source": [ "Lastly we can add a parse_function to handle parsing the output again. \n", "\n", - "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be (self, output). Returning the data is useful when running evolve_single(), but won't be used in a population evolution." + "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be `(self, output)`. Returning the data is useful when running evolve_single(), but won't be used in a population evolution." ] }, { @@ -464,13 +462,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function object_parse_function at 0x149c2e81ec10> to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to custom_options >>>>\n", - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", + "adding: parse_function=<function object_parse_function at 0x7f35b603e9d0> to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-david/notebooks/notebook_individual_systems to custom_options >>>>\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_0639ee205c7d4782b4a27378f5d890bd.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_446fe4cddfa94946bcafd55591ef3730.so\n", "[['time', 'mass', 'initial_mass', 'stellar_type'], [0.0, 10.0, 0.0, 10.0, 1.0], [0.0, 10.0, 10.0, 10.0, 1.0], [1e-06, 10.0, 10.0, 10.0, 1.0]]\n", "dict_keys(['time', 'mass', 'initial_mass', 'stellar_type'])\n" ] @@ -570,7 +567,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -584,7 +581,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/_sources/examples/notebook_population.ipynb.txt b/docs/build/html/_sources/examples/notebook_population.ipynb.txt index 760b1480e..ebc19cff0 100644 --- a/docs/build/html/_sources/examples/notebook_population.ipynb.txt +++ b/docs/build/html/_sources/examples/notebook_population.ipynb.txt @@ -25,7 +25,7 @@ "import os\n", "\n", "from binarycpython.utils.custom_logging_functions import temp_dir\n", - "from binarycpython.utils.grid import Population\n", + "from binarycpython import Population\n", "\n", "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n", "\n", @@ -58,13 +58,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: M_1=10 to BSE_options\n", - "adding: orbital_period=45000000080 to BSE_options\n", - "adding: max_evolution_time=15000 to BSE_options\n", - "adding: eccentricity=0.02 to BSE_options\n", "adding: num_cores=2 to grid_options\n", - "adding: tmp_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "adding: tmp_dir=/tmp/binary_c_python-david/notebooks/notebook_population to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", "1\n", "example_pop.dat\n", @@ -139,13 +135,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n" + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n" ] }, { "data": { "text/plain": [ - "'/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'" + "'/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz'" ] }, "execution_count": 3, @@ -185,9 +185,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method add_grid_variable in module binarycpython.utils.grid:\n", + "Help on method add_grid_variable in module binarycpython.utils.population_extensions.gridcode:\n", "\n", - "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int], gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None) -> None method of binarycpython.utils.grid.Population instance\n", + "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int] = -1, gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None, index: Optional[int] = None, dry_parallel: Optional[bool] = False) -> None method of binarycpython.utils.grid.Population instance\n", " Function to add grid variables to the grid_options.\n", " \n", " The execution of the grid generation will be through a nested for loop.\n", @@ -198,17 +198,15 @@ " beware that if you insert some destructive piece of code, it will be executed anyway.\n", " Use at own risk.\n", " \n", - " Tasks:\n", - " - TODO: Fix this complex function.\n", - " \n", " Args:\n", " name:\n", " name of parameter used in the grid Python code.\n", " This is evaluated as a parameter and you can use it throughout\n", " the rest of the function\n", " \n", - " Examples:\n", - " name = 'lnm1'\n", + " Examples::\n", + " \n", + " name = 'lnM_1'\n", " \n", " parameter_name:\n", " name of the parameter in binary_c\n", @@ -223,47 +221,66 @@ " longname:\n", " Long name of parameter\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " longname = 'Primary mass'\n", + " \n", " range:\n", " Range of values to take. Does not get used really, the samplerfunc is used to\n", " get the values from\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " range = [math.log(m_min), math.log(m_max)]\n", + " \n", " samplerfunc:\n", " Function returning a list or numpy array of samples spaced appropriately.\n", " You can either use a real function, or a string representation of a function call.\n", " \n", - " Examples:\n", - " samplerfunc = \"const(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", + " Examples::\n", + " \n", + " samplerfunc = \"self.const_linear(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", " \n", " precode:\n", " Extra room for some code. This code will be evaluated within the loop of the\n", - " sampling function (i.e. a value for lnm1 is chosen already)\n", + " sampling function (i.e. a value for lnM_1 is chosen already)\n", + " \n", + " Examples::\n", + " \n", + " precode = 'M_1=math.exp(lnM_1);'\n", " \n", - " Examples:\n", - " precode = 'M_1=math.exp(lnm1);'\n", " postcode:\n", " Code executed after the probability is calculated.\n", + " \n", " probdist:\n", " Function determining the probability that gets assigned to the sampled parameter\n", " \n", - " Examples:\n", - " probdist = 'Kroupa2001(M_1)*M_1'\n", + " Examples::\n", + " \n", + " probdist = 'self.Kroupa2001(M_1)*M_1'\n", + " \n", " dphasevol:\n", " part of the parameter space that the total probability is calculated with. Put to -1\n", " if you want to ignore any dphasevol calculations and set the value to 1\n", - " Examples:\n", - " dphasevol = 'dlnm1'\n", + " \n", + " Examples::\n", + " \n", + " dphasevol = 'dlnM_1'\n", + " \n", " condition:\n", " condition that has to be met in order for the grid generation to continue\n", - " Examples:\n", - " condition = 'self.grid_options['binary']==1'\n", + " \n", + " Examples::\n", + " \n", + " condition = \"self.grid_options['binary']==1\"\n", + " \n", " gridtype:\n", " Method on how the value range is sampled. Can be either 'edge' (steps starting at\n", " the lower edge of the value range) or 'centred'\n", - " (steps starting at lower edge + 0.5 * stepsize).\n", + " (steps starting at ``lower edge + 0.5 * stepsize``).\n", + " \n", + " dry_parallel:\n", + " If True, try to parallelize this variable in dry runs.\n", " \n", " topcode:\n", " Code added at the very top of the block.\n", @@ -313,35 +330,7 @@ "execution_count": 6, "id": "47979841-2c26-4b26-8945-603d013dc93a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Added grid variable: {\n", - " \"name\": \"lnm1\",\n", - " \"parameter_name\": \"M_1\",\n", - " \"longname\": \"Primary mass\",\n", - " \"valuerange\": [\n", - " 2,\n", - " 150\n", - " ],\n", - " \"samplerfunc\": \"const(math.log(2), math.log(150), 20)\",\n", - " \"precode\": \"M_1=math.exp(lnm1)\",\n", - " \"postcode\": null,\n", - " \"probdist\": \"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", - " \"dphasevol\": \"dlnm1\",\n", - " \"condition\": \"\",\n", - " \"gridtype\": \"centred\",\n", - " \"branchpoint\": 0,\n", - " \"branchcode\": null,\n", - " \"topcode\": null,\n", - " \"bottomcode\": null,\n", - " \"grid_variable_number\": 0\n", - "}\n" - ] - } - ], + "outputs": [], "source": [ "# Add grid variables\n", "resolution = {\"M_1\": 20}\n", @@ -351,9 +340,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -364,8 +353,8 @@ "# name=\"q\",\n", "# longname=\"Mass ratio\",\n", "# valuerange=[\"0.1/M_1\", 1],\n", - "# samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - "# probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + "# samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + "# probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", "# dphasevol=\"dq\",\n", "# precode=\"M_2 = q * M_1\",\n", "# parameter_name=\"M_2\",\n", @@ -377,12 +366,12 @@ "# name=\"log10per\", # in days\n", "# longname=\"log10(Orbital_Period)\",\n", "# valuerange=[0.15, 5.5],\n", - "# samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + "# samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", "# precode=\"\"\"orbital_period = 10** log10per\n", "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - "# probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + "# probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", "# parameter_name=\"orbital_period\",\n", "# dphasevol=\"dlog10per\",\n", "# )\n" @@ -434,7 +423,7 @@ ], "source": [ "# Create custom logging statement: in this case we will log when the star turns into a compact object, and then terminate the evolution.\n", - "custom_logging_statement = \"\"\"\n", + "custom_logging_code = \"\"\"\n", "if(stardata->star[0].stellar_type >= 13) \n", "{\n", " if (stardata->model.time < stardata->model.max_evolution_time)\n", @@ -454,7 +443,7 @@ "\"\"\"\n", "\n", "example_pop.set(\n", - " C_logging_code=custom_logging_statement\n", + " C_logging_code=custom_logging_code\n", ")" ] }, @@ -476,7 +465,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function parse_function at 0x1528ac7290d0> to grid_options\n" + "adding: parse_function=<function parse_function at 0x7f2b6ca163a0> to grid_options\n" ] } ], @@ -552,38 +541,41 @@ "output_type": "stream", "text": [ "adding: verbosity=0 to grid_options\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", - "EXAMPLE_COMPACT_OBJECT 4.139293101586e+01 1.29427 8.13626 0.00202467 13\n", - "EXAMPLE_COMPACT_OBJECT 2.802986496151e+01 1.33699 10.0967 0.00152924 13\n", - "EXAMPLE_COMPACT_OBJECT 1.963621764679e+01 1.39754 12.5294 0.00115504 13\n", - "EXAMPLE_COMPACT_OBJECT 1.427601421985e+01 1.47745 15.5483 0.000872405 13\n", - "EXAMPLE_COMPACT_OBJECT 1.094409257247e+01 1.57571 19.2947 0.00065893 13\n", - "EXAMPLE_COMPACT_OBJECT 9.181971798545e+00 1.68748 23.9436 0.000497691 13\n", - "EXAMPLE_COMPACT_OBJECT 7.905335716621e+00 1.77287 29.7128 0.000375908 13\n", - "EXAMPLE_COMPACT_OBJECT 7.451192744924e+00 1.81495 36.872 0.000283924 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396133472739e+00 1.82088 45.7561 0.000214449 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396675941641e+00 1.82123 56.7809 0.000161974 13\n", - "EXAMPLE_COMPACT_OBJECT 7.404641347602e+00 1.82074 70.4621 0.000122339 13\n", - "EXAMPLE_COMPACT_OBJECT 7.444217227690e+00 1.81636 87.4397 9.2403e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.453317880232e+00 1.81536 108.508 6.97923e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.450828476487e+00 1.81563 134.653 5.27143e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 3.598268106227e+01 1.30592 8.75988 0.00193614 13\n", + "EXAMPLE_COMPACT_OBJECT 2.436983545111e+01 1.35842 10.9948 0.00144093 13\n", + "EXAMPLE_COMPACT_OBJECT 1.690157944401e+01 1.43124 13.7998 0.00107238 13\n", + "EXAMPLE_COMPACT_OBJECT 1.242397939068e+01 1.52416 17.3205 0.000798096 13\n", + "EXAMPLE_COMPACT_OBJECT 9.756794139032e+00 1.66914 21.7394 0.000593966 13\n", + "EXAMPLE_COMPACT_OBJECT 8.401414766976e+00 1.73729 27.2857 0.000442046 13\n", + "EXAMPLE_COMPACT_OBJECT 7.536373523810e+00 1.80677 34.247 0.000328983 13\n", + "EXAMPLE_COMPACT_OBJECT 7.393982410080e+00 1.82164 42.9844 0.000244839 13\n", + "EXAMPLE_COMPACT_OBJECT 7.396470605248e+00 1.82129 53.9508 0.000182216 13\n", + "Do join of subprocesses ...\n", + "EXAMPLE_COMPACT_OBJECT 7.399005684057e+00 1.82041 67.7151 0.00013561 13\n", + "EXAMPLE_COMPACT_OBJECT 7.443375325717e+00 1.81645 84.9909 0.000100925 13\n", + "EXAMPLE_COMPACT_OBJECT 7.451195752942e+00 1.81559 106.674 7.51114e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 7.452661646076e+00 1.81543 133.89 5.59e-05 13\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-50fb66cc659c46c8bbc29fe0c8651c2f finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.30s to run 20 systems on 2 cores *\n", - "* = 6.60s of CPU time. *\n", - "* Maximum memory use 433.070 MB *\n", + "* Population-ce756bb317f64099a459bf8b55a746ac finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.73s to run 19 systems on 2 cores *\n", + "* = 1.46s of CPU time. *\n", + "* Maximum memory use 293.406 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n" + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n" ] } ], @@ -614,7 +606,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'population_name': '50fb66cc659c46c8bbc29fe0c8651c2f', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.04440288843805411, 'total_count': 20, 'start_timestamp': 1635760967.3245144, 'end_timestamp': 1635760970.6249793, 'total_mass_run': 684.2544031669784, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n" + "{'population_id': 'ce756bb317f64099a459bf8b55a746ac', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.044387171445641534, 'total_count': 19, 'start_timestamp': 1646563001.7193637, 'end_timestamp': 1646563002.4480088, 'time_elapsed': 0.7286450862884521, 'total_mass_run': 649.905447944397, 'total_probability_weighted_mass_run': 0.28133908148630704, 'zero_prob_stars_skipped': 0}\n" ] } ], @@ -642,9 +634,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method write_binary_c_calls_to_file in module binarycpython.utils.grid:\n", + "Help on method write_binary_c_calls_to_file in module binarycpython.utils.population_extensions.dataIO:\n", "\n", - "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False) -> None method of binarycpython.utils.grid.Population instance\n", + "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False, encoding='utf-8') -> None method of binarycpython.utils.grid.Population instance\n", " Function that loops over the grid code and writes the generated parameters to a file.\n", " In the form of a command line call\n", " \n", @@ -655,10 +647,6 @@ " \n", " On default this will write to the datadir, if it exists\n", " \n", - " Tasks:\n", - " - TODO: test this function\n", - " - TODO: make sure the binary_c_python .. output file has a unique name\n", - " \n", " Args:\n", " output_dir: (optional, default = None) directory where to write the file to. If custom_options['data_dir'] is present, then that one will be used first, and then the output_dir\n", " output_filename: (optional, default = None) filename of the output. If not set it will be called \"binary_c_calls.txt\"\n", @@ -685,19 +673,19 @@ "output_type": "stream", "text": [ "Generating grid code\n", - "Generating grid code\n", - "Saving grid code to grid_options\n", - "Writing grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py [dry_run = False]\n", - "Symlinked grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid-latest2 \n", - "Loading grid code function from /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py\n", + "Save grid code to grid_options\n", + "Write grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py [dry_run = False]\n", + "Symlinked grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid-latest2 \n", + "Load grid code function from /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py\n", "Grid code loaded\n", - "Writing binary_c calls to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "binary_c M_1 2.227955577093495 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.010905083645619543\n", - "binary_c M_1 2.7647737053496777 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.00823663875514986\n", - "binary_c M_1 3.430936289925951 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681537 probability 0.0062211552141636295\n", - "binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.004698855121516281\n" + "Writing binary_c calls to /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "binary_c M_1 2.2406484012210224 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.011394572976608001\n", + "binary_c M_1 2.812296769855663 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191117 probability 0.008480166685456411\n", + "binary_c M_1 3.5297876799548944 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.006311182276049824\n", + "binary_c M_1 4.430329401616038 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.004696962123378559\n", + "(abridged)\n" ] } ], @@ -707,7 +695,8 @@ "print(calls_filename)\n", "\n", "with open(calls_filename, 'r') as f:\n", - " print('\\n'.join(f.read().splitlines()[:4]))" + " print('\\n'.join(f.read().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -715,7 +704,15 @@ "id": "60359eb1-4d0c-4d2d-8265-ec5171b944a2", "metadata": {}, "source": [ - "## Full examples of population scripts\n", + "## Full examples of population scripts" + ] + }, + { + "cell_type": "markdown", + "id": "1ee279d6-e120-4aef-9e57-845e534f5c6a", + "metadata": {}, + "source": [ + "### Single star population\n", "Below is a full setup for a population of single stars" ] }, @@ -729,43 +726,51 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-05e51ba114934b37bab48f1db40b7333 finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.46s to run 20 systems on 2 cores *\n", - "* = 6.93s of CPU time. *\n", - "* Maximum memory use 437.047 MB *\n", + "* Population-0fa4c2b8707741a5ab41d209ef95a3a4 finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.61s to run 19 systems on 2 cores *\n", + "* = 1.23s of CPU time. *\n", + "* Maximum memory use 299.531 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass zams_mass probability radius stellar_type\n", - "4.139293101586e+01 1.29427 8.13626 0.00202467 1.72498e-05 13\n", - "2.802986496151e+01 1.33699 10.0967 0.00152924 1.72498e-05 13\n", - "1.963621764679e+01 1.39754 12.5294 0.00115504 1.72498e-05 13\n", - "1.427601421985e+01 1.47745 15.5483 0.000872405 1.72498e-05 13\n", - "1.094409257247e+01 1.57571 19.2947 0.00065893 1.72498e-05 13\n", - "9.181971798545e+00 1.68748 23.9436 0.000497691 1.72498e-05 13\n", - "7.905335716621e+00 1.77287 29.7128 0.000375908 1.72498e-05 13\n", - "7.451192744924e+00 1.81495 36.872 0.000283924 1.72498e-05 13\n", - "7.396133472739e+00 1.82088 45.7561 0.000214449 1.72498e-05 13\n", - "7.396675941641e+00 1.82123 56.7809 0.000161974 1.72498e-05 13\n", - "7.404641347602e+00 1.82074 70.4621 0.000122339 1.72498e-05 13\n", - "7.444217227690e+00 1.81636 87.4397 9.2403e-05 1.72498e-05 13\n", - "7.453317880232e+00 1.81536 108.508 6.97923e-05 1.72498e-05 13\n", - "7.450828476487e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n", + "3.598268106227e+01 1.30592 8.75988 0.00193614 1.72498e-05 13\n", + "2.436983545111e+01 1.35842 10.9948 0.00144093 1.72498e-05 13\n", + "1.690157944401e+01 1.43124 13.7998 0.00107238 1.72498e-05 13\n", + "1.242397939068e+01 1.52416 17.3205 0.000798096 1.72498e-05 13\n", + "9.756794139032e+00 1.66914 21.7394 0.000593966 1.72498e-05 13\n", + "8.401414766976e+00 1.73729 27.2857 0.000442046 1.72498e-05 13\n", + "7.536373523810e+00 1.80677 34.247 0.000328983 1.72498e-05 13\n", + "7.393982410080e+00 1.82164 42.9844 0.000244839 1.72498e-05 13\n", + "7.396470605248e+00 1.82129 53.9508 0.000182216 1.72498e-05 13\n", + "7.399005684057e+00 1.82041 67.7151 0.00013561 1.72498e-05 13\n", + "7.451195752942e+00 1.81559 106.674 7.51114e-05 1.72498e-05 13\n", + "7.443375325717e+00 1.81645 84.9909 0.000100925 1.72498e-05 13\n", + "7.452661646076e+00 1.81543 133.89 5.59e-05 1.72498e-05 13\n", "\n" ] } @@ -877,9 +882,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\",\n", @@ -908,7 +913,8 @@ "id": "c2ab0979-6575-481d-9c1c-ca98517b2437", "metadata": {}, "source": [ - "We can also set up a population that samples biinary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded top be more useful" + "### Binary star population\n", + "We can also set up a population that samples binary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded to be more useful. Also note that we run very little systems in the following example, as its just intended to show how the code works." ] }, { @@ -921,45 +927,42 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 27 stars with a total probability of 0.0248684\n", - "**************************************\n", - "* Total starcount for this run is 27 *\n", - "* Total probability is 0.0248684 *\n", - "**************************************\n", + "Grid has handled 8 stars with a total probability of 0.0211592\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 8 *\n", + "* Total probability is 0.0211592 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-8bc1eafea1c34b05894c1618639d8c37 finished! *\n", - "* The total probability is 0.0248684. *\n", - "* It took a total of 16.10s to run 27 systems on 2 cores *\n", - "* = 32.20s of CPU time. *\n", - "* Maximum memory use 437.695 MB *\n", + "* Population-0eb5c0c9abd34607a6ee060b26a7e32f finished! *\n", + "* The total probability is 0.0211592. *\n", + "* It took a total of 0.84s to run 8 systems on 2 cores *\n", + "* = 1.68s of CPU time. *\n", + "* Maximum memory use 300.125 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass_1 zams_mass_1 mass_2 zams_mass_2 stellar_type_1 prev_stellar_type_1 stellar_type_2 prev_stellar_type_2 metallicity probability\n", - "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n", - "1.935920339886e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n", - "2.123794969278e+01 1.30902 17.3205 1.58518 8.71025 13 13 13 5 0.02 0.000287968\n", - "3.579099761269e+01 1.52414 17.3205 1.30642 8.71025 13 13 13 5 0.02 0.000220016\n", - "1.674063083432e+01 1.29457 17.3205 0 14.4504 13 13 15 2 0.02 0.000498487\n", - "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n", - "1.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n", - "1.367065497322e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-05\n", - "1.772169325355e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n", - "2.021960493499e+01 1.82061 73.0434 1.39205 12.2572 13 13 13 5 0.02 3.38788e-05\n", - "9.012246630357e+00 1.81529 73.0434 0 36.5717 13 8 15 15 0.02 7.67586e-05\n", - "7.462779538274e+00 1.82255 73.0434 1.81499 36.5717 13 13 13 8 0.02 3.38788e-05\n", - "1.030499912298e+01 1.80592 73.0434 1.81066 36.5717 13 13 13 8 0.02 4.43422e-05\n", - "9.823059079115e+00 2.43711 73.0434 1.81689 60.8862 14 14 13 8 0.02 7.67586e-05\n", - "7.394722435913e+00 1.79092 73.0434 1.79092 60.8862 13 8 13 8 0.02 4.43422e-05\n", - "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n", + "1.378266748188e+01 1.66293 50.9713 1.78767 12.8178 13 13 13 8 0.02 0.000339963\n", + "1.817608462595e+01 1.82104 50.9713 1.41436 12.8178 13 13 13 5 0.02 0.000193036\n", + "7.422997711686e+00 1.82479 50.9713 1.82171 38.2535 13 13 13 8 0.02 0.000193036\n", + "1.205711924468e+01 1.73765 50.9713 0 38.2535 13 13 15 8 0.02 0.000339963\n", "\n" ] } @@ -1089,9 +1092,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -1102,8 +1105,8 @@ " name=\"q\",\n", " longname=\"Mass ratio\",\n", " valuerange=[\"0.1/M_1\", 1],\n", - " samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - " probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + " samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + " probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", " dphasevol=\"dq\",\n", " precode=\"M_2 = q * M_1\",\n", " parameter_name=\"M_2\",\n", @@ -1115,12 +1118,12 @@ " name=\"log10per\", # in days\n", " longname=\"log10(Orbital_Period)\",\n", " valuerange=[0.15, 5.5],\n", - " samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + " samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", " precode=\"\"\"orbital_period = 10** log10per\n", "sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - " probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + " probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", " parameter_name=\"orbital_period\",\n", " dphasevol=\"dlog10per\",\n", ")\n", @@ -1145,7 +1148,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1159,7 +1162,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/_sources/grid_options_descriptions.rst.txt b/docs/build/html/_sources/grid_options_descriptions.rst.txt index c061fb901..7d765d8cf 100644 --- a/docs/build/html/_sources/grid_options_descriptions.rst.txt +++ b/docs/build/html/_sources/grid_options_descriptions.rst.txt @@ -1,7 +1,7 @@ Population grid code options ============================ The following chapter contains all grid code options, along with their descriptions -There are 28 options that are not described yet. +There are 29 options that are not described yet. Public options @@ -167,6 +167,8 @@ The following options are meant to be changed by the user. | **save_snapshots**: No description available yet +| **skip_before**: No description available yet + | **slurm**: Integer flag used to control Slurm jobs. Default is 0 which means no Slurm. 1 means launch Slurm jobs. Do not manually set this to 2 (run Slurm jobs) or 3 (join Slurm job data) unless you know what you are doing, this is usually done for you. | **slurm_array**: String. Override for Slurm's --array option, useful for rerunning jobs manually. Default None. diff --git a/docs/build/html/binary_c_parameters.html b/docs/build/html/binary_c_parameters.html index 124ea7512..7fe4e66bf 100644 --- a/docs/build/html/binary_c_parameters.html +++ b/docs/build/html/binary_c_parameters.html @@ -111,7 +111,7 @@ <h1>Binary_c parameters<a class="headerlink" href="#binary-c-parameters" title="Permalink to this headline">ïƒ</a></h1> <p>The following chapter contains all the parameters that the current version of binary_c can handle, along with their descriptions and other properties.</p> <dl class="simple"> -<dt>This information was obtained by the following binary_c build:</dt><dd><p><strong>binary_c git branch</strong>: branch_david <strong>binary_c git revision</strong>: 5845:20220107:201620bd7 <strong>Built on</strong>: Jan 7 2022 12:15:12</p> +<dt>This information was obtained by the following binary_c build:</dt><dd><p><strong>binary_c git branch</strong>: HEAD <strong>binary_c git revision</strong>: 5853:20220225:db09898b6 <strong>Built on</strong>: Feb 25 2022 19:21:31</p> </dd> </dl> <section id="section-stars"> @@ -3506,9 +3506,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/custom_logging_functions.html b/docs/build/html/custom_logging_functions.html index ee7830554..10354b9c3 100644 --- a/docs/build/html/custom_logging_functions.html +++ b/docs/build/html/custom_logging_functions.html @@ -329,9 +329,9 @@ I recommend using this in function in combination with a function that generates provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/dicts.html b/docs/build/html/dicts.html index d1b5f36a6..82e477f4e 100644 --- a/docs/build/html/dicts.html +++ b/docs/build/html/dicts.html @@ -404,6 +404,7 @@ so that they don’t have to be calculated each time.</p> <dd class="field-odd"><p>new_dict</p> </dd> </dl> +<p>If input_dict is None or empty, returns an empty dict</p> </dd></dl> <dl class="py function"> @@ -524,9 +525,9 @@ so that they don’t have to be calculated each time.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/ensemble.html b/docs/build/html/ensemble.html index 80594cf66..cf2b64e23 100644 --- a/docs/build/html/ensemble.html +++ b/docs/build/html/ensemble.html @@ -275,9 +275,9 @@ and return its contents to as a Python dictionary.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/example_notebooks.html b/docs/build/html/example_notebooks.html index 306475c6f..652d02922 100644 --- a/docs/build/html/example_notebooks.html +++ b/docs/build/html/example_notebooks.html @@ -143,7 +143,6 @@ <li class="toctree-l2"><a class="reference internal" href="examples/notebook_extra_features.html#Build-information-of-binary_c">Build information of binary_c</a></li> <li class="toctree-l2"><a class="reference internal" href="examples/notebook_extra_features.html#Example-parse-function">Example parse function</a></li> <li class="toctree-l2"><a class="reference internal" href="examples/notebook_extra_features.html#Dictionary-modification">Dictionary modification</a></li> -<li class="toctree-l2"><a class="reference internal" href="examples/notebook_extra_features.html#Getting-help">Getting help</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="examples/notebook_api_functionality.html">Tutorial: Using the API functionality of binary_c-python</a><ul> @@ -215,9 +214,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_BHBH.html b/docs/build/html/examples/notebook_BHBH.html index cb1698140..651e15593 100644 --- a/docs/build/html/examples/notebook_BHBH.html +++ b/docs/build/html/examples/notebook_BHBH.html @@ -5574,9 +5574,9 @@ system 2 / 100 provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_HRD.html b/docs/build/html/examples/notebook_HRD.html index 023816698..61c302a40 100644 --- a/docs/build/html/examples/notebook_HRD.html +++ b/docs/build/html/examples/notebook_HRD.html @@ -1366,9 +1366,9 @@ very start.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_api_functionality.html b/docs/build/html/examples/notebook_api_functionality.html index 6faf30887..38d274dc3 100644 --- a/docs/build/html/examples/notebook_api_functionality.html +++ b/docs/build/html/examples/notebook_api_functionality.html @@ -469,7 +469,7 @@ FUNCTIONS Function that contains random snippets. Do not expect this to remain available, or reliable. i.e. dont use it. FILE - /home/izzard/.local/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so + /home/david/.pyenv/versions/binarycpython3.9.9/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so </pre></div></div> @@ -537,7 +537,7 @@ FILE </div> <div class="output_area docutils container"> <div class="highlight"><pre> -<capsule object "STORE" at 0x146f912dbc60> +<capsule object "STORE" at 0x7fc1f0c3ff00> SINGLE_STAR_LIFETIME 10 28.4838 </pre></div></div> @@ -577,7 +577,8 @@ Default : 0 </pre></div> </div> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> -<span></span><span class="nb">print</span><span class="p">(</span><span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">return_help_all</span><span class="p">())</span> +<span></span><span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">return_help_all</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[:</span><span class="mi">10</span><span class="p">]))</span> +<span class="nb">print</span><span class="p">(</span><span class="s2">"(abridged)"</span><span class="p">)</span> </pre></div> </div> </div> @@ -596,581 +597,7 @@ M_1 : The initial mass of star one (in solar units, internally this is star inde M_2 : The initial mass of star two (in solar units, internally this is star index 1). : (null) M_3 : The initial mass of star three (in solar units, internally this is star index 2). : (null) M_4 : The initial mass of star four (in solar units, internally this is star index 3). : (null) -vrot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot2,3,4. : (null) -vrot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,3,4. : (null) -vrot3 : The initial equatorial rotational velocity of star three (in km/s, internally this is star index 2). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,4. : (null) -vrot4 : The initial equatorial rotational velocity of star four (in km/s, internally this is star index 3). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,3. : (null) -Prot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). See also Prot2,3,4. : (null) -Prot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). See also Prot1,3,4. : (null) -Prot3 : The initial equatorial rotational period of star three (in days, internally this is star index 2). See also Prot1,2,4. : (null) -Prot4 : The initial equatorial rotational period of star four (in days, internally this is star index 3). See also Prot1,2,3. : (null) -inclination1 : The initial inclination of star one (in degrees). : (null) -inclination2 : The initial inclination of star two (in degrees). : (null) -inclination3 : The initial inclination of star three (in degrees). : (null) -inclination4 : The initial inclination of star four (in degrees). : (null) -B_1 : The initial magnetic field of star one (in Gauss, internally this is star index 0). : (null) -B_2 : The initial magnetic field of star two (in Gauss, internally this is star index 1). : (null) -B_3 : The initial magnetic field of star three (in Gauss, internally this is star index 2). : (null) -B_4 : The initial magnetic field of star four (in Gauss, internally this is star index 3). : (null) -B_inclination1 : The initial inclination of the magnetic field of star one (in degrees). : (null) -B_inclination2 : The initial inclination of the magnetic field of star two (in degrees). : (null) -B_inclination3 : The initial inclination of the magnetic field of star three (in degrees). : (null) -B_inclination4 : The initial inclination of the magnetic field of star four (in degrees). : (null) -stellar_type_1 : Set the stellar type of star 1 (internal index 0), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null) -stellar_type_2 : Set the stellar type of star 2 (internal index 1), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null) -stellar_type_3 : Set the stellar type of star 3 (internal index 2), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null) -stellar_type_4 : Set the stellar type of star 4 (internal index 3), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null) -max_stellar_type_1 : The maximum stellar type of star 1 (internal index 0). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. - : (null) -max_stellar_type_2 : The maximum stellar type of star 2 (internal index 1). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. - : (null) -max_stellar_type_3 : The maximum stellar type of star 3 (internal index 2). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. - : (null) -max_stellar_type_4 : The maximum stellar type of star 4 (internal index 3). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. - : (null) -probability : The probability is a weighting applied to the star based on, say, the initial mass function. When running a grid of stars to simulate *all* stars, the summed probability of all the stars should be 1.0. : (null) -phasevol : The system's phase volume, used by binary_grid. : (null) -stellar_structure_algorithm : Set the stellar structure algorithm. 0=modified BSE (default), 1=none, 2=external function (must be defined by the calling code), 3=binary_c (not yet implemented). : (null) -solver : The type of solver. Default is the Forward-Euler (0), but could be RK2 (1), RK4 (2) or a predictor-corretor (3). : (null) -max_evolution_time : Set the maximum age for the stars (Myr). : (null) -max_model_number : Set the maximum number of models, ignored if 0 (default is 0). : (null) -monte_carlo_kicks : Turn on Monte-Carlo SN kicks. On (True) by default, and indeed other algorithms are probably broken. : (null) -disable_debug : Disables debug output. Only has an effect when DEBUG is 1, which probably requires a rebuild. Default FALSE. : (null) -timestep_logging : Turn on timestep logging (default is False). : (null) -rejects_in_log : Show timestep rejections in the main log (default is False). : (null) -vandenHeuvel_logging : Turn on van den Heuvel logging (default is False). : (null) -evolution_splitting : If True, turn on splitting of an evolutionary run if splitpoint (e.g. supernova) occurs. : (null) -disable_events : Whether to disable the new events code (defaults to False, so we use events by default) - : (null) -evolution_splitting_sn_eccentricity_threshold : Threshold eccentricity above which evolution splitting happens in a system with no SN kick. (0.01) : (null) -evolution_splitting_sn_n : Number of runs to split into when a SN occurs. : (null) -evolution_splitting_maxdepth : Max number of splits in an evolutionary run. : (null) -equation_of_state_algorithm : Set the equation of state algorithm. 0 = Paczynski. : (null) -opacity_algorithm : Set the opacity algorithm. 0 = Paczynski, 1 = Ferguson/Opal. : (null) -wind_mass_loss : Defines the algorithm used for stellar winds. 0 = none, 1 = Hurley et al. (2002), 2 = Schneider (2018). : 0 -gbwind : Wind prescription for first red giant branch stars. 0=Reimers (Hurley et al 2000/2002; choose gb_reimers_eta=0.5 for their mass loss rate), 1=Schroeder+Cuntz 2005 (set gb_reimers_eta=1.0 for their mass loss rate). : (null) -postagbwind : Apply special post-(A)GB prescription. Default is POSTAGB_WIND_USE_GIANT which means we just use whatever is prescribed on the giant branch. Other options include: POSTAGB_WIND_NONE = 1 (no wind on the post (A)GB), POSTAGB_WIND_KRTICKA2020 = 2 which uses Krticka, Kubát and Krticková (2020, A&A 635, A173). : (null) -Teff_postAGB_min : The minimum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_max. (6000 K) : (null) -Teff_postAGB_max : The maximum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_min. (120000 K) : (null) -mattsson_Orich_tpagbwind : Experimental : turns on Mattsson's TPAGB wind when the star is oxygen rich. Requires MATTSSON_MASS_LOSS. : (null) -magnetic_braking_factor : Multiplier for the magnetic braking angular momentum loss rate. : (null) -magnetic_braking_gamma : gamma factor in Rappaport style magnetic braking expression. : (null) -magnetic_braking_algorithm : Algorithm for the magnetic braking angular momentum loss rate. 0 = Hurley et al. 2002, 1 = Andronov, Pinnsonneault and Sills 2003, 2 = Barnes and Kim 2010 : (null) -helium_flash_mass_loss : Mass to be lost at the helium flash. : (null) -gb_reimers_eta : First red giant branch wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) : (null) -gbwindfac : Multiplier for the giant branch wind mass loss rate : (null) -tpagbwindfac : Multiplier for the TPAGB wind mass loss rate : (null) -eagbwindfac : Multiplier for the EAGB wind mass loss rate : (null) -nieuwenhuijzen_windfac : Multiplier for the Nieuwenhuijzen & de Jager wind mass loss rate : (null) -tpagbwind : Wind prescription during the TPAGB. 0=Karakas 2002 (a modified Vassiliadis and Wood 1993), 1=Hurley et al 2000/2002 (Vassiliadis and Wood 1993), 2=Reimers, 3=Bloecker, 4=Van Loon, 5=Rob's C-wind (broken?), 6,7=Vassiliadis and Wood 1993 (Karakas,Hurley variants respectively) when C/O>1, 8=Mattsson, 9 = Goldman et al. (2017), 10 = Beasor et al. (2020). : (null) -eagbwind : Wind prescription during the EAGB. 0=BSE (Hurley+2002, based on VW93), 1 = Goldman et al. (2017), 2 = Beasor et al. (2020). : (null) -wind_gas_to_dust_ratio : Gas to dust ratio used in wind calculations (e.g. Goldman et al. 2017). Typically 200 (Milky Way)-500 (Magellanic Clouds). Default is 200, approximately as in MW stars. : (null) -vwind_multiplier : Multiplier for the stellar wind velocity. : (null) -vwind_beta : Beta for stellar wind speed calculations, where vwind=sqrt(beta) * escape velocity. Default 0.125 (from BSE, Hurley et al. 2002). : (null) -superwind_mira_switchon : In the Vassiliadis and Wood (1993) AGB wind prescription, the superwind is turned on at a given Mira period, usually 500 days. You can vary when this switch-on happens with this parameter. : (null) -vw93_mira_shift : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate depends on the Mira period plus this offset. Requires VW93_MIRA_SHIFT. : (null) -vw93_multiplier : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate is multiplied by this factor. Requires VW93_MULTIPLIER. : (null) -tpagb_reimers_eta : TPAGB Reimers wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) Note that Reimers is not the default TPAGB wind prescription. See also tpagbwind. : (null) -Tout_Pringle_1992_multiplier : Multiplier for the Tout & Pringle (1992) magnetic wind. (0.0) : (null) -artificial_mass_accretion_rate%d : Constant mass accretion rate for star <n>. : (null) -artificial_mass_accretion_rate_by_stellar_type%d : Constant mass accretion rate for stellar type <n>. : (null) -artificial_angular_momentum_accretion_rate%d : Constant angular momentum accretion for star <n>. : (null) -artificial_orbital_angular_momentum_accretion_rate : Constant angular momentum accretion rate on the orbit. : (null) -artificial_accretion_start_time : Time at which artificial accretion stars. Ignored if <0 (default is -1). : (null) -artificial_accretion_end_time : Time at which artificial accretion ends. Ignored if <0 (default is -1). : (null) -wr_wind : Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge's version of Vink's early-2000s wind (See Lynnette Dray's thesis, or John Eldridge's thesis) : (null) -wr_wind_fac : Massive-star (WR) wind multiplication factor. : (null) -wrwindfac : Massive-star (WR) wind multiplication factor. Synonymous with wr_wind_fac (which you should use instead). : (null) -BH_prescription : Black hole mass prescrition: relates the mass of a newly formed black hole to its progenitor's (CO) core mass. BH_HURLEY2002 = 0 = Hurley et al 2000/2002, BH_BELCZYNSKI = 1 = Belczynski (early 2000s), BH_SPERA2015 = Spera+ 2015, BH_FRYER12_DELAYED = 3 = Fryer et al. (2012) delayed prescription, BH_FRYER12_RAPID = 4 = Fryer et al. (2012) rapid prescription, BH_FRYER12_STARTRACK = 5 = Fryer et al. (2012) startrack prescription. : (null) -sn_kick_distribution_II : Set the distribution of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_ECAP : Set the distribution of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_NS_NS : Set the distribution of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_IBC : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_GRB_COLLAPSAR : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_TZ : Set the distribution of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_AIC_BH : Set the distribution of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_BH_BH : Set the distribution of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_BH_NS : Set the distribution of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_IA_Hybrid_HeCOWD : Set the distribution of speeds applied to any survivor of a hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_distribution_IA_Hybrid_HeCOWD_subluminous : Set the distribution of speeds applied to any survivor of a subluminous hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_II : Set the dispersion of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_ECAP : Set the dispersion of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_NS_NS : Set the dispersion of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_IBC : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_GRB_COLLAPSAR : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_TZ : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_AIC_BH : Set the dispersion of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_BH_BH : Set the dispersion of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_BH_NS : Set the dispersion of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_IA_Hybrid_HeCOWD : Set the dispersion of speeds applied to the survivor of a SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_dispersion_IA_Hybrid_HeCOWD_subluminous : Set the dispersion of speeds applied to the survivor of a subluminous SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null) -sn_kick_companion_IA_He : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IA_ELD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia ELD (sub-Mch) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IA_CHAND : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_AIC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an accretion induced collapse (supernova) occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_ECAP : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an electron capture supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IA_He_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia helium merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IA_CHAND_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_NS_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron-star neutron-star merger. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_GRB_COLLAPSAR : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a GRB Collapsar (rapidly rotating SN Ibc) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_HeStarIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a He-star Ia supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IBC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type Ib/c supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_II : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type II supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type IIa supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_WDKICK : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a WD is kicked. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_TZ : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Thorne-Zytkow object is formed. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_AIC_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron star collapses to a black hole. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_BH_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when two black holes merge. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_BH_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a black hole merges with a neutron star. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IA_Hybrid_HeCOWD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -sn_kick_companion_IA_Hybrid_HeCOWD_subluminous : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a subluminous hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null) -wd_sigma : Set the speed at which white dwarfs are kicked when they form, in km/s. Default is zero (i.e. no kick). Requires WD_KICKS. : (null) -wd_kick_direction : Set the direction of white dwarf kicks. 0 = random, 1 = up, 2 = forward, 3 = backward, 4 = inward, 5 = outward. Requires WD_KICKS. : (null) -wd_kick_when : Decide when to kick a white dwarf. 0=at birth, 1=at first RLOF, 2=at given pulse number (see wd_kick_pulse_number), 3 at every pulse Requires WD_KICKS. : (null) -wd_kick_pulse_number : Apply a kick to a star at a desired pulse number on the TPAGB (i.e. pre-WD). Requires WD_KICKS. : (null) -minimum_helium_ignition_core_mass : Minimum helium core mass required to ignite helium in the case that the hydrogen envelope is stripped on the giant branch, e.g. to make an sdB or sdO star. Typically 0.4, if 0.0 then the BSE algorithm (based on the total mass) is used. : (null) -minimum_CO_core_mass_for_carbon_ignition : Minimum CO core mass for carbon ignition, assuming Mc,bagb>1.6Msun. Typically around 1.08Msun (Pols+1998). : (null) -minimum_CO_core_mass_for_neon_ignition : Minimum CO core mass for neon ignition. Typically around 1.42Msun. Stars that have cores that ignite carbon, but not neon explode in electon-capture supernovae. : (null) -minimum_mcbagb_for_nondegenerate_carbon_ignition : Minimum Mc,bagb (core mass at the base of the AGB) for non-degenerate carbon ignition. Typically around 2.25Msun (Pols+1998). : (null) -maximum_mcbagb_for_degenerate_carbon_ignition : Maximum Mc,bagb (core mass at the base of the AGB) for degenerate carbon ignition. Typically around 1.6Msun (Pols+1998). : (null) -max_neutron_star_mass : Maximum mass of a neutron star before it collapses to a black hole. Typically around 2Msun. : (null) -chandrasekhar_mass : The Chandrasekhar mass, usually 1.44Msun : (null) -delta_mcmin : A parameter to reduce the minimum core mass for third dredge up to occur on the TPAGB. As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null) -lambda_min : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. See also lambda_multiplier. : (null) -lambda_multiplier : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null) -minimum_envelope_mass_for_third_dredgeup : The minimum envelope mass for third dredge up on the TPAGB. Early, solar metallicity models by Straniero et al suggested 0.5Msun is typical. However, circumstantial evidence (Izzard et al 2009) as well as newer models by Stancliffe and Karakas suggest that at low metallicity a value nearer zero is more appropriate. : (null) -mass_of_pmz : The mass in the partial mixing zone of a TPAGB star, using the Karakas 2012 tables. Ask Carlo Abate for more details, or see the series of papers Abate et al 2012, 2013, 2014. Requires NUCSYN and USE_TABULAR_INTERSHELL_ABUNDANCES_KARAKAS_2012. : (null) -c13_eff : The "efficiency" of partial mixing in a TPAGB star intershell region, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null) -mc13_pocket_multiplier : Multiplies the mass in the partial mixing zone of a TPAGB star, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null) -tides_convective_damping : Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989 : Zahn 1989 lambdas + Hut. : (null) -E2_prescription : Choose how to calculate the E2 structural parameter (used in tidal timescale calculations). 0=Hurley 1=Izzard (see Siess et al 2013). : (null) -dtfac : A parameter to decrease the timestep ONLY during the TPAGB phase. : (null) -hbbtfac : A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined) : (null) -wind_multiplier_%d : Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0. : (null) -wind_type_multiplier_%d : Wind multiplier for different types of wind (MS, GB, AGB, WR, LBV, OTHER), given by the integer %d. By default these are all 1.0. : (null) -pre_main_sequence : Set to True to turn on pre-main sequence evolution. Currently this is not a special stellar type, rather the first (small) fraction of the main sequence has increased radii to match the Railton et al 2014 fits to Tout's pre-main sequence stars. Requires PRE_MAIN_SEQUENCE. See also pre_main_sequence_fit_lobes. : (null) -pre_main_sequence_fit_lobes : Set to True force a pre-main sequence star into its Roche lobe. This is done by artificially aging it. Requires PRE_MAIN_SEQUENCE : (null) -small_envelope_method : Choose the method used to determine the stellar radius when the envelope mass is very thin. 0 = Hurley et al. (2002), 1 = Miller Bertolami et al. (2016+) for GB and AGB stars only. : (null) -timestep_modulator : Multiplier applied to the global timestep. Requires TIMESTEP_MODULATION. : (null) -timestep_multiplier%d : Multiplier applied to timestep limit <n>. : (null) -maximum_timestep : The maximum timestep (MYr). : (null) -zoomfac_multiplier_decrease : When a timestep is rejected, decrease the timestep by this factor (0.5). : (null) -zoomfac_multiplier_increase : When a timestep is rejected, zooms, then succeeds, increase the timestep by this factor (1.2). : (null) -maximum_timestep_factor : The maximum factor between two subsequent timesteps (1.2). : (null) -maximum_nuclear_burning_timestep : The maximum timestep (MYr) in any nuclear burning phase. : (null) -nova_retention_method : Algorithm used to calculate the amount of mass retained during a nova explosion. 0=use nova_retention_fraction. (other methods pending) : (null) -MINT_metallicity : This sets the metallicity for MINT. It is ignored if set to -1.0, the default, in which case the normal metallicity parameter is used. : (null) -gaia_Teff_binwidth : log10(Effective temperature) bin width used to make Gaia-like HRDs - : (null) -gaia_L_binwidth : log10(luminosity) bin width used to make Gaia-like HRDs - : (null) -gaia_colour_transform_method : Use this to select the method used to transform to Gaia colours from other colour schemes. GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1 Jordi et al.'s bivariate UBVRI fits, GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3 Jordi et al.'s univariate ugriv fits, GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_UBVRI_RIELLO2020 = 6 Riello et al. (2020, DR3) fits, GAIA_CONVERSION_ugriz_RIELLO2020 = 7 Riello et al. (2020, DR3) fits. : (null) -rotationally_enhanced_mass_loss : Set to 1 to enable rotationally enhanced mass loss rate algorithms: 0= none, 1=formula cf. Langer models (=ROTATIONALLY_ENHANCED_MASSLOSS_LANGER_FORMULA), 2=limit accretion rate before wind loss is applied, 3 = both 1 and 2. See also rotationally_enhanced_exponent : (null) -AGB_core_algorithm : Algorithm to use for calculating AGB core masses. 0=Hurley et al. 2002 if no NUCSYN, Karakas 2002 if NUCSYN is defined; 1=Hurley et al. 2002 (overshooting models); 1=Karakas 2002 (non-overshooting models). : (null) -AGB_radius_algorithm : Algorithm to use for calculating radii on the TPAGB. : (null) -AGB_luminosity_algorithm : Algorithm to use for calculating luminosities on the TPAGB. : (null) -AGB_3dup_algorithm : Algorithm to use for calculating third dredge up efficiency on the TPAGB. : (null) -overspin_algorithm : Algorithm to determine what we do when a star is rotating at its breakup velocity. OVERSPIN_BSE (0) conservatively transfers the angular momentum back to the orbit. OVERSPIN_MASSLOSS uses the rotationally_enhanced_massloss parameter to lose mass which carries away the angular momentum. : (null) -rotationally_enhanced_exponent : The exponent (power) by which rotationally enhanced mass loss is raised. Requires ROTATIONALLY_ENHANCED_MASS_LOSS. See also rotationally_enhanced_mass_loss. : (null) -batchmode : Set the batchmode control variable. Use only if you know what you are doing! : (null) -speedtests : If True, turns on speedtests during version information (off by default). : (null) -use_fixed_timestep_%d : Set to True to use fixed timestep <n>, False to turn off. Fixed timesteps are on (this is True) by default. : (null) -task%d : Control tasks to be performed by binary_c. By default, these are all TRUE. For more information see binary_c_macros.h, particularly the BINARY_C_TASK_* macros. : (null) -orbiting_object : Usage: --orbiting_object mass,spinrate,central_object,period. : 1.0 -orbiting_objects_log : If True, turn on orbiting-object log. : (null) -orbiting_objects_log : If True, turn on orbiting-object log. : (null) -orbiting_objects_wind_accretion_multiplier : Multiplier for wind accretion on orbiting objects. Hurley et al 2002 use 1.5, which is the default. : (null) -orbiting_objects_close_pc_threshold : How close are orbiting objects allowed to be? Set this to be the absolute percentage difference minimum. : (null) -orbiting_objects_tides_multiplier : Multiplier for tidal torques on orbiting objects. : (null) -evaporate_escaped_orbiting_objects : If True, evaporate orbiting objects that have escaped the system. : (null) -RLOF_transition_objects_escape : If True, objects that escape their Roche lobe are ejected from the system, otherwise they are placed just outside the minimum stable orbit. : (null) -PN_resolve : If True, the timestep will be shortened to resolve better the PN phase (FALSE). : (null) -PN_resolve_minimum_luminosity : The luminosity above which extra time resolution for PNe is applied (see PN_resolve). : (null) -PN_resolve_maximum_envelope_mass : The envelope mass below which extra time resolution for PNe is applied (see PN_resolve). : (null) -PN_resolve_minimum_effective_temperature : The minimum effective temperature above which extra time resolution for PNe is applied (see PN_resolve). : (null) -PN_fast_wind : If True, thin-envelope PNe will have fast winds (FALSE). : (null) -PN_fast_wind_dm_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null) -PN_fast_wind_mdot_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null) -PN_fast_wind_dm_AGB : The envelope mass below which fast wind used during the AGB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null) -PN_fast_wind_mdot_AGB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null) -HeWD_HeWD_ignition_mass : HeWD-HeWD mergers above this mass reignite helium. (0.3) : (null) -wind_Nieuwenhuijzen_luminosity_lower_limit : Above this luminosity we activate the Nieuwenhuijzen and de Jager wind (4e3 Lsun). : (null) -wind_LBV_luminosity_lower_limit : Above this luminosity we activate the LBV wind (6e5 Lsun). : (null) -colour%d : Sets colour %d (0 to NUM_ANSI_COLOURS-1) to the extended ANSI set colour you choose (1-255, 0 means ignore). The colour numbers are defined in src/logging/ansi_colours.h : (null) -apply_Darwin_Radau_correction : Apply Darwin-Radau correction to the moment of inertia to take rotation into account? : (null) -degenerate_core_merger_nucsyn : If TRUE, assume that in a degnerate core merger, energy is generated from nucleosynthesis of the whole core, and that this can disrupt the core. The BSE algorithm (Hurley et al. 2002) assumes this to be TRUE, but binary_c assumes FALSE by default. (FALSE) : (null) -degenerate_core_helium_merger_ignition : If TRUE, assume that when there is a degenerate helium core merger, the star reignites helium. This is required to make R-type carbon stars. (TRUE) : (null) -degenerate_core_merger_dredgeup_fraction : If non-zero, mix this fraction of the degenerate core during a merger.(0.0). : (null) - -############################################################ -##### Section Binary -############################################################ -separation : Set the orbital separation (actually the semi-major axis) of the binary (internal index 0, stellar indices 0 and 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null) -separation_triple : Set the orbital separation (actually the semi-major axis) of the triple (internal index 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null) -separation_quadruple : Set the orbital separation (actually the semi-major axis) of the quadruple (internal index 2) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null) -orbital_period : Set the initial orbital period of the binary, stars 1 and 2 (internal indices 0 and 1) in days. See also separation. : (null) -orbital_period_triple : Set the initial orbital period of the triple in days. See also separation. : (null) -orbital_period_quadruple : Set the orbital period of the outer binary in a quadrulple (stars 3 and 4, internal indices 2 and 3) in days. See also separation. : (null) -eccentricity : Set the initial eccentricity of the binary orbit (stars 1 and 2, internal indices 0 and 1). : (null) -eccentricity_triple : Set the initial eccentricity of the triple orbit. : (null) -eccentricity_quadruple : Set the initial eccentricity of the outer binary of a quadruple (stars 3 and 4, internal indices 2 and 3). : (null) -incliniation : Set the initial orbital_inclination of the binary relative to zero. : (null) -incliniation_triple : Set the initial orbital_inclination of the triple orbit relative to zero. : (null) -incliniation_quadruple : Set the initial orbital_inclinationy of the quadruple orbit relative to zero. : (null) -orbital_phase : Set the initial orbital phase of the binary orbit. : (null) -orbital_phase_triple : Set the initial orbital phase of the triple orbit. : (null) -orbital_phase_quadruple : Set the initial orbital phase of the quadruple orbit. : (null) -argument_of_periastron : Set the initial argument of periastron of the binary orbit. : (null) -argument_of_periastron_triple : Set the initial argument of periastron of the triple orbit. : (null) -argument_of_periastron_quadruple : Set the initial argument of periastron of the quadruple orbit. : (null) -disc_timestep_factor : Factor that multiplies the natural timestep of a disc. : (null) -white_dwarf_cooling_model : White dwarf cooling model, relates age to luminosity. WHITE_DWARF_COOLING_MESTEL = 0 is Mestel's model, WHITE_DWARF_COOLING_MESTEL_MODIFIED = 1 is Hurley's modified Mestel model, WHITE_DWARF_COOLING_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null) -white_dwarf_radius_model : White dwarf radius model, radius to mass (and perhaps age). WHITE_DWARF_RADIUS_NAUENBERG1972 = 0 Nauenberg (1972), WHITE_DWARF_RADIUS_MU = 1 mu-dependent variant, WHITE_DWARF_RADIUS_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null) -cbdisc_mass_loss_inner_viscous_accretion_method : Chooses where the mass that is accreted from the inner edge of a circumbinary disc goes, i.e. to which star. 0 = Young and Clarke 2015, 1 = Gerosa et al 2015, 2 = 50:50 (i.e. not dependence on mass). : (null) -cbdisc_inner_edge_stripping : If True, allow inner edge mass stripping. : (null) -cbdisc_end_evolution_after_disc : If True, stop evolution when a disc evaporates. : (null) -cbdisc_no_wind_if_cbdisc : If True, disable stellar winds when there is a circumbinary disc. : (null) -cbdisc_outer_edge_stripping : If True, allow outer edge mass stripping. : (null) -disc_n_monte_carlo_guesses : Number of monte carlo guesses to try in the disc solver if the normal list of guesses fails (0). : (null) -disc_log : If 1, turn on the disc log. Requires DISC_LOG to be defined on build. : (null) -disc_log2d : If 1, turn on the 2d disc log. Requires DISC_LOG to be defined on build. : (null) -disc_log_dt : If non-zero, only allows disc log output every disc_log_dt Myr. : (null) -disc_log_directory : Directory into which disc logging is sent (must exist!). : /tmp/ -post_ce_adaptive_menv : If TRUE, and if post_ce_objects_have_envelopes is TRUE, then the envelope mass of a post-CE star is such that it sits just inside its Roche lobe. If FALSE then a fixed (thin) envelope mass is applied that depends on the stellar type (see macros POST_CE_ENVELOPE_DM_GB, POST_CE_ENVELOPE_DM_EAGB and POST_CE_ENVELOPE_DM_TPAGB). : (null) -post_ce_objects_have_envelopes : If TRUE then post-common-envelope objects have thin envelopes. You need this if you are to have post-CE post-AGB stars. Note that this *may* be unstable, i.e. you may end up having many CEEs. The mass in the envelope is controlled by post_ce_adaptive_menv. TRUE by default. : (null) -PN_comenv_transition_time : post-common envelope transition time in years (1e2). This is the time taken to move from CEE ejection to Teff > 30e4 K. Hall et al. (2013) suggest ~100 years. : (null) -minimum_time_between_PNe : The minimum time (Myr) between planetary nebula detections. This prevents multiple, fast common envelopes triggering two PNe (0.1). : (null) -PN_Hall_fading_time_algorithm : In stars with low mass (<0.45Msun) cores, you can choose to set the PN fading time to either the minimum (PN_HALL_FADING_TIME_ALGORITHM_MINIMUM) or maximum (PN_HALL_FADING_TIME_ALGORITHM_MAXIMUM) as shown in Fig. 6 of Hall et al. (2013). : (null) -PPN_envelope_mass : Desired pre-planetary nebula (post-AGB) envelope mass. : (null) -cbdisc_eccentricity_pumping_method : Select from various eccentricity-pumping methods when there is a circumbinary disc. Requires DISCS. 0 = off. : (null) -cbdisc_viscous_photoevaporative_coupling : Set to 1 to turn on viscous-photoevaporative coupling in circumbinary discs. Requires DISCS. 0 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = off, 1 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT instant, 2 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS slow, viscous wind. : (null) -cbdisc_inner_edge_stripping_timescale : Defines the timescale for mass loss from by inner edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_in. : (null) -cbdisc_outer_edge_stripping_timescale : Defines the timescale for mass loss from by outer edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_out. : (null) -cbdisc_viscous_L2_coupling : Set to 1 to turn on viscous-L2-loss coupling in circumbinary discs. Requires DISCS. 0 = off. : (null) -gravitational_radiation_model : Model for gravitational radiation from the system. 0=Hurley et al 2002 (Landau and Lifshitz 1951). 1 = as 0 but only when there is no RLOF. 2 = none. : (null) -nova_irradiation_multiplier : Multiplier for nova-radiative induced mass loss. (Shara+1986) : (null) -gravitational_radiation_modulator_J : Modulator for gravitational wave radiation angular momentum loss rate (1.0). : (null) -gravitational_radiation_modulator_e : Modulator for gravitational wave radiation eccentricity pumping rate (1.0). : (null) -nova_faml_multiplier : Nova friction-induced angular momentum loss multiplier. (Shara+1986) : (null) -RLOF_angular_momentum_transfer_model : Choose angular momentum transfer model in RLOF. 0=BSE (with discs), 1=conservative : (null) -post_SN_orbit_method : Method by which the post-SN orbit is calculated. 0=BSE, 1=Tauris&Taken 1998. : (null) -multiplicity : Multiplicity: 1=single star, 2=binary, 3=triple, 4=quadruple. : (null) -accretion_limit_eddington_steady_multiplier : Steady accretion is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_steady_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null) -accretion_limit_eddington_LMMS_multiplier : Accretion from a low-mass, convective, main_sequence star is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_LMMS_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null) -accretion_limit_eddington_WD_to_remnant_multiplier : Accretion from a WD onto a remnant star (e.g. another white dwarf, neutron star or black hole) is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_WD_to_remnant_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null) -accretion_limit_thermal_multiplier : Mass transfer onto a MS, HG or CHeB star is limited by the accretor's thermal rate times this multiplier. : (null) -accretion_limit_dynamical_multiplier : Mass transfer is limited by the accretor's dynamical rate times this multiplier. : (null) -donor_limit_envelope_multiplier : Mass transfer by RLOF is limited by this fraction of the donor's envelope mass per timestep : (null) -donor_limit_thermal_multiplier : Mass transfer by RLOF is limited by the accretor's thermal rate times this multiplier. : (null) -donor_limit_dynamical_multiplier : Mass transfer by RLOF is limited by the donor's dynamical rate times this multiplier. : (null) -Bondi_Hoyle_accretion_factor : Wind accretion rate, as calculated by the Bondi-Hoyle-Littleton formula, multiplcation factor. Hurley et al 2002 use 1.5, which is the default. : (null) -tidal_strength_factor : A modulator for the tidal strength. If this factor > 1 then tides are stronger, i.e. tidal timescales are reduced. : (null) -hachisu_qcrit : Critical q=Maccretor/Mdonor above which Hachisu's disk wind turns on. : (null) -hachisu_disk_wind : Set to True to turn on Hachisu's disk wind when material accretes too fast onto a white dwarf. This helps to make more SNeIa. See also hachisu_qcrit. : (null) -mass_accretion_for_eld : The mass that must be accreted onto a COWD for it to ignite as an edge-lit detonation SNIa. : (null) -WDWD_merger_algorithm : Algorithm to be used when merging two white dwarfs. 0 = Hurley et al. (2002), 1 = Perets+ (2019), 2 = Chen+ (2016, todo) : (null) -type_Ia_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from Chandrasekhar-mass exploders. 0 = DD7 (Iwamoto 1999), 1 = Seitenzahl 2013 3D hydro yields (you must also set Seitenzahl2013_model) : (null) -Seitenzahl2013_model : Which of Seitenzahl et al. 2013's models to use? One of N1,N3,N5,N10,N20,N40,N100L,N100,N100H,N150,N200,N300C,N1600,N1600C,N100_Z0.5,N100_Z0.1,N100_Z0.01 (defaults to N100). : N1 -type_Ia_sub_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.) : (null) -max_HeWD_mass : The maximum mass a HeWD can have before it ignites helium (0.7). : (null) -merger_mass_loss_fraction : Fraction of the total mass which is lost when stars merge. : (null) -merger_angular_momentum_factor : When two stars merge the resulting single star retains a fraction of the total system angular momentum (or the critical spin angular momentum, if it is smaller) multiplied by this factor. : (null) -wind_angular_momentum_loss : Prescription for losing angular momentum in a stellar wind. 0=Hurley et al 2002 ('Tout') prescription, 1=lw i.e. a factor multiplying the specific orbital angular momentum, 2=lw hybrid for fast winds. Set wind_djorb_fac to the desired factor.. : (null) -wind_djorb_fac : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=0 (the Tout/Hurley et al 2002 prescription). See wind_angular_momentum_loss. : (null) -lw : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=1,2 (the 'lw' prescription). See wind_angular_momentum_loss. : (null) -VW93_EAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null) -VW93_TPAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null) -use_periastron_Roche_radius : Set this to True to use the Roche lobe radius at periastron, rather than (the default to) assume a circular orbit. This will be useful one day when we treat RLOF in eccentric orbits properly, hopefully. : (null) -qcrit_LMMS : Apply critical q=Mdonor/Maccretor value for low-mass main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_LMMS : Apply critical q=Mdonor/Maccretor value for (low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -qcrit_degenerate_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null) -mass_for_Hestar_Ia_upper : Only helium stars below this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_lower. : (null) -mass_for_Hestar_Ia_lower : Only helium stars above this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_upper. : (null) -alphaCB : Circumbinary disk viscosity parameter, alpha. : (null) -minimum_donor_menv_for_comenv : Minimum donor envelope mass for common envelope evolution to be triggered (Msun). Default 0. : (null) -comenv_prescription : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null) -comenv_prescription%d : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null) -comenv_ejection_spin_method : When a common envelope is ejected, we need to decide how fast the stars are left spinning. COMENV_EJECTION_SPIN_METHOD_DO_NOTHING (0) is the default, this just leaves the stars/stellar cores spinning with the same spin rate (omega = angular velocity) with which they entered the common envelope phase. COMENV_EJECTION_SPIN_METHOD_SYCHRONIZE instead tidally synchronizes the stars with their new orbital angular velocity. : (null) -comenv_merger_spin_method : When a common envelope binary merges, we need to decide how fast the resulting single star is left spinning. COMENV_MERGER_SPIN_METHOD_SPECIFIC (0) is the default, this preserves angular momentum but limits the specific angular momentum of the merged star to the specific angular momentum of the system at the onset of common envelope evolution. COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM (1) sets the merger's angular momentum to be that of the system at the onset of common envelope evolution (which means the star may be rotating supercritically). COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA (2) sets the spin rate (angular frequency = omega) of the merged star to be that of the orbit just at the onset of common envelope evolution. : (null) -comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null) -comenv_ms_accretion_fraction : Experimental. During common envelope evolution, a main sequence may accrete a fraction of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_mass. : (null) -comenv_ns_accretion_mass : Experimental. During common envelope evolution, a neutron star may accrete some of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_fraction. : (null) -comenv_ns_accretion_fraction : Experimental. During common envelope evolution, a neutron star may accrete a fraction of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_mass. : (null) -alpha_ce : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null) -alpha_ce%d : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null) -lambda_ce : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to LAMBDA_CE_DEWI_TAURIS == -1 binary_c uses the Dewi and Tauris fits instead, LAMBDA_CE_WANG_2016 == -2 uses the formalism of Wang, Jia and Li (2016), if LAMBDA_CE_POLYTROPE == -3 then a polytropic formalism is used (see also comenv_splitmass) and if LAMBDA_CE_KLENCKI_2020 == -4 use Klencki et al. (2020). : (null) -lambda_ce%d : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). : (null) -comenv_splitmass : When lambda_ce=-2, the envelope binding energy, lambda, is calculated using a polytropic formalism. The comenv_splitmass defines the point, in the units of the core mass, above which material is ejected. : (null) -nelemans_recalc_eccentricity : If True, recalculate the eccentricity after angular momentum is removed. : (null) -comenv_post_eccentricity : Eccentricity remaining after common envelope ejection. : (null) -nelemans_gamma : Set the fraction of the orbital specific angular momentum that is used to eject the common envelope according to the Nelemans and Tout prescription. See also nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null) -nelemans_minq : Only activate the Nelemans and Tout common envelope prescription for q>nelemans_minq. See also nelemans_gamma, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null) -nelemans_max_frac_j_change : Maximum fractional angular momentum change in the Nelemans and Tout common envelope prescription. See also nelemans_gamma, nelemans_minq, nelemans_n_comenvs. : (null) -nelemans_n_comenvs : Set the maximum number of common envelope ejections allowed to follow the Nelemans and Tout prescription, after which the standard alpha prescription is used. : (null) -lambda_ionisation : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null) -lambda_ionisation%d : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null) -lambda_enthalpy : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null) -lambda_enthalpy%d : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null) -cbdisc_albedo : Circumbinary-disc albedo. Requires DISCS. : (null) -cbdisc_gamma : Circumbinary disc gamma (equation of state) parameter. Requires DISCS. : (null) -cbdisc_alpha : Circumbinary disc alpha (viscosity) parameter. Requires DISCS. : (null) -cbdisc_kappa : Circumbinary disc kappa (opacity) parameter. Requires DISCS. : (null) -cbdisc_minimum_evaporation_timescale : Circumbinary disc minimum evaporation timescale (years). If (slow, not edge stripped) mass loss would evaporate the disc on a timescale less than this, simply evaporate the disc immediated. Usually set to 1y, ignore if zero. Requires DISCS. : (null) -cbdisc_torquef : Circumbinary disc binary torque multiplier. Requires DISCS. : (null) -cbdisc_max_lifetime : Circumbinary disc maximum lifetime (years, ignored if 0). Requires DISCS. : (null) -cbdisc_init_dM : On cbdisc start, reduce mass by a fraction dM if it won't converge. Requires DISCS. : (null) -cbdisc_init_dJdM : On cbdisc start, reduce angular momentum by a fraction dJ/dM*dM if it won't converge. Requires DISCS. : (null) -cbdisc_mass_loss_constant_rate : Circumbinary disc constant mass loss rate (Msun/year). Requires DISCS. : (null) -cbdisc_mass_loss_FUV_multiplier : Circumbinary disc FUV mass loss rate multiplier (no units). Requires DISCS. : (null) -cbdisc_mass_loss_Xray_multiplier : Circumbinary disc X-ray mass loss rate multiplier (no units). Requires DISCS. : (null) -cbdisc_mass_loss_ISM_ram_pressure_multiplier : Circumbinary disc interstellar medium ram pressure stripping mass loss rate multiplier (no units). Requires DISCS. : (null) -cbdisc_mass_loss_ISM_pressure : Circumbinary disc interstellar medium ram pressure in units of Boltzmann constant per Kelvin (I think...). Requires DISCS. Typically 3000.0. See e.g. http://www.astronomy.ohio-state.edu/~pogge/Ast871/Notes/Intro.pdf page 15 or https://arxiv.org/pdf/0902.0820.pdf Fig. 1 (left panel). : (null) -cbdisc_mass_loss_inner_viscous_multiplier : Circumbinary disc inner edge viscous mass loss rate multiplier (no units). Requires DISCS. : (null) -cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier : Circumbinary disc inner edge viscous angular momentum multiplier (no units). The inner edge angular momentum Requires DISCS. : (null) -cbdisc_resonance_multiplier : Circumbinary disc resonant interaction multiplier, affects eccentricity pumping and angular momentum rates. Requires DISCS. : (null) -cbdisc_resonance_damping : Circumbinary disc resonant interaction damping: should be on (True) to damp the l=1, m=2 resonance when the disc inner edge lies outside the resonance location. Requires DISCS. : (null) -cbdisc_fail_ring_inside_separation : If True, while converging on a structure, circumbinary discs with Rring < the binary separation are immediately failed. : (null) -cbdisc_mass_loss_inner_L2_cross_multiplier : Circumbinary disc inner edge L2-crossing mass loss rate multiplier (no units). Requires DISCS. : (null) -cbdisc_minimum_luminosity : Circumbinary disc minimum luminosity. If the disc becomes dimmer than this, the disc is evaporated instantly. Requires DISCS. : (null) -cbdisc_minimum_mass : Circumbinary disc minimum mass. If the disc becomes less massive than this, the disc is evaporated instantly. Requires DISCS. : (null) -cbdisc_minimum_fRing : Circumbinary disc minimum fRing. If the disc becomes a ring, and fRing = |Rout/Rin-1| < this value (and this value is non-zero), the disc is evaporated instantly. Requires DISCS. : (null) -comenv_disc_angmom_fraction : If >0 Fraction of the common envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the moments of inertia to calculate (deprecated), if -2 use the common envelope's specific angular momentum, if -3 uses the L2 point at the end of the common envelope to set the angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null) -comenv_disc_mass_fraction : Fraction of the common envelope's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null) -wind_disc_angmom_fraction : If >0 Fraction of the wind envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the L2 point's specific angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null) -wind_disc_mass_fraction : Fraction of the stellar wind's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null) -WRLOF_method : Choose whether and how to apply wind-Roche-lobe-overflow. 0=none, 1=q-dependent, 2=quadratic See Abate et al 2013/14 for details. Requires WRLOF_MASS_TRANSFER. : (null) -minimum_timestep : The minimum timestep (Myr). : (null) -timestep_solver_factor : Factor applied in timestep_limits, e.g. to prevent X changing too fast by comparing to X/dX/dt, which is usually 1 but can be higher to lengthen timesteps when using an alternative solver. : (null) -RLOF_mdot_factor : Multiplier applied to the mass transfer rate during Roche-lobe overflow. Requires RLOF_MDOT_MODULATION. : (null) -RLOF_f : Factor to enlarge a Roche lobe, nominally because of radiation pressure (see Dermine et al paper). Requires RLOF_RADIATION_CORRECTION. : (null) -minimum_separation_for_instant_RLOF : If True, instead of evolving the system just report the minimum separation (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_orbital_period_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null) -minimum_orbital_period_for_instant_RLOF : If True, instead of evolving the system just report the minimum orbital period (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_separation_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null) -maximum_mass_ratio_for_instant_RLOF : If True, instead of evolving the system just report the maximum mass ratio (on the zero-age main sequence) that would lead to instant RLOF, given M1 and orbital period. Used by binary_grid. See also minimum_separation_for_instant_RLOF and minimum_orbital_period_for_instant_RLOF. : (null) -RLOF_method : Use RLOF_method to choose the algorithm you use for Roche-lobe overflow mass loss rate calculations. 0=Hurley et al 2002, 1=Adaptive (for radiative stars) R=RL method, 2=Ritter (probably broken), 3=Claeys etal 2014 variant on Hurley et al 2002. : (null) -RLOF_interpolation_method : When a star overflows its Roche lobe, it always has R>RL because of the limited time resolution of the simulation. Binary_c then uses an algorithm to get back to when R~RL (within a desired tolerance, set in RLOF_ENTRY_THRESHOLD which is usually 1.02, i.e. overflow of 2%). You can choose algorithm 0, the Hurley et al 2002 method which reverses time (i.e. uses a Newton-like scheme), or 1 to use the binary_c method which rejects a timestep (and hence does no logging on that timestep) and repeats with half the timestep until R~RL. The latter is now the default, because this means there are no negative timesteps which break various other algorithms (e.g. nucleosynthesis). : (null) -nova_retention_fraction : The mass accreted during a nova as fraction of mass transferred : (null) -beta_reverse_nova : The fraction of mass ejected in a nova explosion which is accreted back onto the companion star. Set to -1 to automatically calculate based on a geometric argument, or 0 or positive to set the value. : (null) -WD_accretion_rate_novae_upper_limit_hydrogen_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is hydrogen rich : above this rate the mass transfer leads to stable burning. : (null) -WD_accretion_rate_novae_upper_limit_helium_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is helium rich : above this rate the mass transfer leads to stable burning. : (null) -WD_accretion_rate_novae_upper_limit_other_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is neither hydrogen nor helium rich : above this rate the mass transfer leads to stable burning. : (null) -WD_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a hydrogen-rich donor. Below this mass transfer leads to stable burning. : (null) -WD_accretion_rate_new_giant_envelope_lower_limit_helium_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a helium-rich donor. Below this mass transfer leads to stable burning. : (null) -WD_accretion_rate_new_giant_envelope_lower_limit_other_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope when the donor is neither hydrogen nor helium rich. Below this mass transfer leads to stable burning. : (null) -CRAP_parameter : Tidally enhanced mass loss parameter. See Tout and Eggleton's paper on the subject. (Was the parameter bb). : (null) -individual_novae : If individual_novae is True, novae are resolved such that each explosion is performed separtaely. : (null) -nova_timestep_accelerator_num : The nova timestep is accelerated if the nova number exceeds nova_timestep_accelerator_num. If zero or negative, acceleration is off. See also nova_timestep_accelerator_index and nova_timestep_accelerator_max. Only used if individual_novae is on. - : (null) -nova_timestep_accelerator_index : The index at which the nova timestep is accelerated. A larger value gives longer timesteps. See also nova_timestep_accelerator_num and nova_timestep_accelerator_max. Only used if individual_novae is on. - : (null) -nova_timestep_accelerator_max : The nova timestep is accelerated by a factor that is capped at nova_timestep_accelerator_max. This parameter is ignored if it is zero or negative. See also nova_timestep_accelerator_num and nova_timestep_accelerator_index. Only used if individual_novae is on. - : (null) -nonconservative_angmom_gamma : Mass lost from the system (but NOT from a stellar wind) takes a fraction gamma of the orbital angular momentum with it. Set to -1 to take the specific angular momentum of the donor star. Set to -2 to take super-Eddington, nova and disk-wind angular momenta as if a wind from the accretor. : (null) -max_stellar_angmom_change : Maxmimum fractional change in stellar angular momentum allowed before a timestep is rejected (0.05). : (null) -comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null) - -############################################################ -##### Section Nucsyn -############################################################ -third_dup : If True, enables third dredge up. Requires NUCSYN and NUCSYN_THIRD_DREDGE_UP. : (null) -third_dup_multiplier : Usage: --third_dup_multiplier <i> <f>. Multiplies the abundance of element <i> by <f> during third dredge up. : 1.0 -NeNaMgAl : Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB. : Ignore -nucsyn_network%d : Usage: --nucsyn_network%d <boolean>. Turn a nuclear network on or off. : (null) -nucsyn_network_error%d : Usage: --nucsyn_network_error%d <f>. Threshold error in nuclear network solver for network %d. : (null) -nucreacmult%d : Usage: --nucreacmult%d <f>. Multiply nuclear reaction given by the integer %d (integer) by f (float). : (null) -nucsyn_metallicity : This sets the metallicity of the nucleosynthesis algorithms, i.e. the amount (by mass) of matter which is not hydrogen or helium. Usually you'd just set this with the metallicity parameter, but if you want the nucleosynthesis to be outside the range of the stellar evolution algorithm (e.g. Z=0 or Z=0.04) then you need to use nucsyn_metallicity. That said, it's also outside the range of some of the nucleosynthesis algorithms as well, so you have been warned! : (null) -nucsyn_solver : Choose the solver used in nuclear burning. 0 = KAPS_RENTROP is a Kaps-Rentrop scheme (fast, not great for stiff problems), 1 = LSODA (Adams/BSF switcher), 2 = CVODE library (https://computing.llnl.gov/projects/sundials. Default 0. : 0 -initial_abundance_mix : initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993 : 0 -init_abund : Usage: --init_abund <i> <X>. Sets the initial abundance of isotope number <i> to mass fraction <X>. : 0.02 -init_abund_mult : Usage: --init_abund_mult <i> <f>. Multiplies the initial abundance of isotope number <i> by <f>. : 1.0 -init_abund_dex : Usage: --init_abund_dex <i> <f>. Changes the initial abundance of isotope number <i> by <f> dex. : 0.0 -init_abunds_only : If True, outputs only the initial abundances, then exits. : (null) -initial_abunds_only : If True, outputs only the initial abundances, then exits. : (null) -no_thermohaline_mixing : If True, disables thermohaline mixing. : (null) -lithium_GB_post_Heflash : Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES. : (null) -lithium_GB_post_1DUP : Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES. : (null) -lithium_hbb_multiplier : Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES. : (null) -angelou_lithium_decay_function : Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are : 0 expoential (see angelou_lithium_decay_time). : (null) -angelou_lithium_LMMS_time : Time at which lithium manufacture is triggered in a low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_MS_time : Time at which lithium manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_HG_time : Time at which lithium manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_GB_time : Time at which lithium manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_CHeB_time : Time at which lithium manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_EAGB_time : Time at which lithium manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_TPAGB_time : Time at which lithium manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_LMMS_decay_time : Decay time for surface lithium abundance during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_MS_decay_time : Decay time for surface lithium abundance on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_HG_decay_time : Decay time for surface lithium abundance on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_GB_decay_time : Decay time for surface lithium abundance on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_CHeB_decay_time : Decay time for surface lithium abundance during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_EAGB_decay_time : Decay time for surface lithium abundance on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_TPAGB_decay_time : Decay time for surface lithium abundance on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_LMMS_massfrac : Lithium mass fraction when its manufacture is triggered during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_MS_massfrac : Lithium mass fraction when its manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_HG_massfrac : Lithium mass fraction when its manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_GB_massfrac : Lithium mass fraction when its manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_CHeB_massfrac : Lithium mass fraction when its manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_EAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_TPAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6). - : (null) -angelou_lithium_vrot_trigger : Equatorial rotational velocity at which lithium manufacture is triggered (km/s). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0. - : (null) -angelou_lithium_vrotfrac_trigger : Fraction of Keplerian (breakup) equatorial rotational velocity at which lithium manufacture is triggered (must be <1, ignored if 0). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0. - : (null) - -############################################################ -##### Section Output -############################################################ -cf_amanda_log : Enable logging to compare to Amanda's models. : (null) -float_overflow_checks : Turn on to enable floating-point overflow checks at the end of each timestep, if they are available. 0=off, 1=warn (stderr) on failure, 2=exit on failure (0) : (null) -save_pre_events_stardata : Enable this to save a copy of stardata to stardata->pre_events_stardata just before an event. : (null) -disable_end_logging : Disable the logging that happens at the end of the evolution. : (null) -ensemble : Turn on ensemble calculations and output. : (null) -ensemble_filters_off : Sets all ensemble filters to be off (FALSE) - these can then be enabled one-by-one with --ensemble_filter_[...] TRUE. : (null) -ensemble_filter_%d : Turn on or off ensemble filter <n>. For a list of filters, see ensemble_macros.h. : (null) -ensemble_legacy_ensemble : Turn on ensemble legacy population output. : (null) -legacy_yields : Turn on ensemble legacy yield output. : (null) -ensemble_defer : Defer ensemble output. : (null) -ensemble_dt : When doing ensemble calculations, data are stored and/or output every ensemble_dt Myr. See also ensemble, ensemble_logdt, ensemble_startlogtime. : (null) -ensemble_logdt : When doing ensemble calculations, and when logensembletimes is set, the ensemble is stored/output every ensemble_logdt Myr. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null) -ensemble_startlogtime : Start log ensemble data storage/calculations/output at ensemble_startlogtime. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null) -ensemble_logtimes : When doing ensemble calculations/output, set this to act at log times rather than linear times. : (null) -postagb_legacy_logging : Turn on post-AGB legacy logging. : (null) -disc_legacy_logging : Turn on disc legacy logging. : (null) -EMP_logg_maximum : Maximum logg that EMP stars are allowed to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_minimum_age. : (null) -EMP_minimum_age : Minimum age that EMP stars are required to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum. : (null) -EMP_feh_maximum : Maximum [Fe/H] that an EMP stars may have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default -2.0. : (null) -CEMP_cfe_minimum : Minimum [C/Fe] that CEMP stars are required to have. See Izzard et al 2009. See also NEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 0.7. : (null) -NEMP_cfe_minimum : Minimum [N/Fe] that NEMP stars are required to have. See Izzard et al 2009, Pols et al. 2012. See also CEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 1.0. : (null) -thick_disc_start_age : Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr. : (null) -thick_disc_end_age : Lookback time for the end of the thick disc star formation, e.g. 4e3 Myr. Units = Myr. : (null) -thick_disc_logg_min : Minimum logg for thick disc giants to be logged. : (null) -thick_disc_logg_max : Maximum logg for thick disc giants to be logged. : (null) -escape_velocity : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 1e9 km/s. See also escape_fraction. : (null) -escape_fraction : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 0.0. See also escape_velocity. : (null) -colour_log : If set to True, thelog is coloured with ANSI colour formatting. Requires FILE_LOG to be defined. : -log_filename : Location of the output logging filename. If set to "/dev/null" then there is no logging. : -log_arrows : Add arrows to the output log to show whether values are increasing or decreasing. : -stopfile : File which, when it exists, will stop the current binary_c repeat run. : -stardata_dump_filename : Location of the stardata dump file. : -stardata_load_filename : Location of the stardata file to load. : -api_log_filename_prefix : Location of the output logging filename prefix for the API. If set to "/dev/null" then there is no logging. : 0 -hrdiag_output : Set to True to output high time-resolution Hertzstrpung-Russell diagram information. Requires HRDIAG. : (null) -internal_buffering : Experimental. Set to non-zero values to implement internal buffering prior to output. For use with binary_grid, you shouldn't really be playing with this. : (null) -eccentric_RLOF_model : Chooses which model is used to handle eccentric RLOF. Default is RLOF_ECCENTRIC_AS_CIRCULAR, i.e. ignore the eccentricity. Note: requires force_corotation_of_primary_and_orbit to be FALSE. - : (null) -force_circularization_on_RLOF : If True forces circularization of stars and orbit when RLOF starts, this is as in the BSE algorithm. (True) : (null) -wtts_log : If True, enables log file output for WTTS2. : (null) -fabian_imf_log_time : Time at which to output for Fabian Schneider's IMF project. Requires FABIAN_IMF_LOG : Ignore -fabian_imf_log_timestep : Timestep for Fabian Schneider's IMF project logging. Requires FABIAN_IMF_LOG : Ignore -version : Display binary_c version and build information. Also performs timing tests. : Ignore -dumpversion : Display binary_c version number (short format). : Ignore -version_only : Display binary_c version number and build information, but do not perform timing tests or anything that requires stardata to be non-NULL. : Ignore -tides_diagnosis_log : Enable logging to test MINT tides. Requires MINT. Choices are: 0 disabled, 1 enable lambda test. : Ignore - -############################################################ -##### Section Input -############################################################ -MINT_dir : Location of MINT algorithm data. : -MINT_data_cleanup : Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things. : -MINT_MS_rejuvenation : Turn on or off (hydrogen) main-sequence rejuvenation. : -MINT_remesh : Turn on or off MINT's remeshing. : -MINT_use_ZAMS_profiles : Use chemical profiles at the ZAMS if MINT_use_ZAMS_profiles is TRUE, otherwise set homogeneous abundances. (Default is TRUE, so we use the profiles if they are available.) : -MINT_fallback_to_test_data : If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE) : -MINT_disable_grid_load_warnings : Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data. : -MINT_Kippenhahn : Turn on or off MINT's Kippenhahn diagrams. If 0, off, if 1, output star 1 (index 0), if 2 output star 2 (index 1). Default 0. : -MINT_nshells : Set the initial number of shells MINT uses in each star when doing nuclear burning. Note: remeshing can change this. If MINT_nshells is 0, shellular burning and other routines that require shells will not be available. (200) : -MINT_maximum_nshells : Set the maximum number of shells MINT uses in each star when doing nuclear burning. Note that this will be limited to MINT_HARD_MAX_NSHELLS. (1000) : -MINT_minimum_nshells : Set the minimum number of shells MINT uses in each star when doing nuclear burning. Note that this will be greater than or equal to MINT_HARD_MIN_NSHELLS, which is 0 by default. (0) : -MINT_Kippenhahn_stellar_type : Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output. : -MINT_Kippenhahn_companion_stellar_type : Companion stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for the companion for which Kippenhahn plot data should be output. : -MINT_nuclear_burning : Turn on or off MINT's nuclear burning algorithm. : -MINT_minimum_shell_mass : Minimum shell mass in MINT's nuclear burning routines. : -MINT_maximum_shell_mass : Maximum shell mass in MINT's nuclear burning routines. : - -############################################################ -##### Section I/O -############################################################ -go : batchmode control command : Ignore -gogo : batchmode control command : Ignore -reset_stars : Reset the star structures. Used in batchmode : Ignore -reset_stars_defaults : Reset the star structures and set defaults. Used in batchmode : Ignore -defaults : Reset all defaults. Used in batchmode : Ignore -echo : Activate batchmode command echoing, i.e. when you enter a command, binary_c repeats the command then executes it. : Ignore -noecho : Deactivate batchmode command echoing. See 'echo'. : Ignore -noechonow : Deactivate batchmode command echoing. See 'echo'. : Ignore -bye : Quit binary_c. Used in batchmode. : Ignore -fin : batchmode control command : Ignore -reset_prefs : Reset preferences struct. Used in batchmode : Ignore -status : Output batchmode status information. : Ignore - -############################################################ -##### Section Algorithms -############################################################ -repeat : If > 1, repeats the system as many times as required. Handy if you're using Monte-Carlo kicks and want to sample the parameter space well. Also, if you are running speed tests this is good to give a statistically more reasonable result. (See e.g. 'tbse pgo'). : (null) -random_systems : Experimental. Use this to apply random initial system parameters (masses, separations, etc.). Useful for testing only. : (null) - -############################################################ -##### Section Misc -############################################################ -random_seed : Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null) -random_systems_seed : Random number seed for the generation of random systems. See random_systems and random_seed. : (null) -random_skip : Skip the first <random_seed> random numbers that are generated. Usually this is 0 so they are all used. : (null) -idum : [NB: deprecated, please use 'random_seed' instead.] Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null) -reverse_time : Make time go backwards. To be considered very experimental! : (null) -start_time : Start time for the simulation. : (null) -warmup_cpu : Uses the CPU at maximum power the given number of seconds, prior to running normal stellar evolution. : Ignore -help : Display help pages. Usage: --help <help topic>. : Ignore -argopts : Display argument options. Usage: --argopts <argument>. : Ignore -help_all : Display all help pages. : Ignore -list_args : Display list of arguments with their default values. Useful for batchmode. : Ignore - +(abridged) </pre></div></div> </div> <p>We can get all the parameter names and their default values with return_arglines(): (abridged output)</p> @@ -1180,6 +607,7 @@ list_args : Display list of arguments with their default values. Useful for batc </div> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> <span></span><span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">return_arglines</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[:</span><span class="mi">4</span><span class="p">]))</span> +<span class="nb">print</span><span class="p">(</span><span class="s2">"(abridged)"</span><span class="p">)</span> </pre></div> </div> </div> @@ -1192,6 +620,7 @@ __ARG_BEGIN metallicity = 0.02 effective_metallicity = -1 M_1 = 0 +(abridged) </pre></div></div> </div> <p>Lastly, we can ask binary_c to determine the minimum period or maximum mass for RLOF at the ZAMS: Both of them need an argstring as input</p> @@ -1291,9 +720,9 @@ MAXIMUM MASS RATIO 0.0141 provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_api_functionality.ipynb b/docs/build/html/examples/notebook_api_functionality.ipynb index 504ae4b16..49d6f8d3d 100644 --- a/docs/build/html/examples/notebook_api_functionality.ipynb +++ b/docs/build/html/examples/notebook_api_functionality.ipynb @@ -105,7 +105,7 @@ " Function that contains random snippets. Do not expect this to remain available, or reliable. i.e. dont use it.\n", "\n", "FILE\n", - " /home/izzard/.local/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", + " /home/david/.pyenv/versions/binarycpython3.9.9/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", "\n", "\n" ] @@ -166,7 +166,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "<capsule object \"STORE\" at 0x146f912dbc60>\n", + "<capsule object \"STORE\" at 0x7fc1f0c3ff00>\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" ] @@ -270,586 +270,13 @@ "M_2 : The initial mass of star two (in solar units, internally this is star index 1). : (null)\n", "M_3 : The initial mass of star three (in solar units, internally this is star index 2). : (null)\n", "M_4 : The initial mass of star four (in solar units, internally this is star index 3). : (null)\n", - "vrot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot2,3,4. : (null)\n", - "vrot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,3,4. : (null)\n", - "vrot3 : The initial equatorial rotational velocity of star three (in km/s, internally this is star index 2). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,4. : (null)\n", - "vrot4 : The initial equatorial rotational velocity of star four (in km/s, internally this is star index 3). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,3. : (null)\n", - "Prot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). See also Prot2,3,4. : (null)\n", - "Prot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). See also Prot1,3,4. : (null)\n", - "Prot3 : The initial equatorial rotational period of star three (in days, internally this is star index 2). See also Prot1,2,4. : (null)\n", - "Prot4 : The initial equatorial rotational period of star four (in days, internally this is star index 3). See also Prot1,2,3. : (null)\n", - "inclination1 : The initial inclination of star one (in degrees). : (null)\n", - "inclination2 : The initial inclination of star two (in degrees). : (null)\n", - "inclination3 : The initial inclination of star three (in degrees). : (null)\n", - "inclination4 : The initial inclination of star four (in degrees). : (null)\n", - "B_1 : The initial magnetic field of star one (in Gauss, internally this is star index 0). : (null)\n", - "B_2 : The initial magnetic field of star two (in Gauss, internally this is star index 1). : (null)\n", - "B_3 : The initial magnetic field of star three (in Gauss, internally this is star index 2). : (null)\n", - "B_4 : The initial magnetic field of star four (in Gauss, internally this is star index 3). : (null)\n", - "B_inclination1 : The initial inclination of the magnetic field of star one (in degrees). : (null)\n", - "B_inclination2 : The initial inclination of the magnetic field of star two (in degrees). : (null)\n", - "B_inclination3 : The initial inclination of the magnetic field of star three (in degrees). : (null)\n", - "B_inclination4 : The initial inclination of the magnetic field of star four (in degrees). : (null)\n", - "stellar_type_1 : Set the stellar type of star 1 (internal index 0), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_2 : Set the stellar type of star 2 (internal index 1), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_3 : Set the stellar type of star 3 (internal index 2), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_4 : Set the stellar type of star 4 (internal index 3), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "max_stellar_type_1 : The maximum stellar type of star 1 (internal index 0). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. \n", - " : (null)\n", - "max_stellar_type_2 : The maximum stellar type of star 2 (internal index 1). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_3 : The maximum stellar type of star 3 (internal index 2). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_4 : The maximum stellar type of star 4 (internal index 3). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "probability : The probability is a weighting applied to the star based on, say, the initial mass function. When running a grid of stars to simulate *all* stars, the summed probability of all the stars should be 1.0. : (null)\n", - "phasevol : The system's phase volume, used by binary_grid. : (null)\n", - "stellar_structure_algorithm : Set the stellar structure algorithm. 0=modified BSE (default), 1=none, 2=external function (must be defined by the calling code), 3=binary_c (not yet implemented). : (null)\n", - "solver : The type of solver. Default is the Forward-Euler (0), but could be RK2 (1), RK4 (2) or a predictor-corretor (3). : (null)\n", - "max_evolution_time : Set the maximum age for the stars (Myr). : (null)\n", - "max_model_number : Set the maximum number of models, ignored if 0 (default is 0). : (null)\n", - "monte_carlo_kicks : Turn on Monte-Carlo SN kicks. On (True) by default, and indeed other algorithms are probably broken. : (null)\n", - "disable_debug : Disables debug output. Only has an effect when DEBUG is 1, which probably requires a rebuild. Default FALSE. : (null)\n", - "timestep_logging : Turn on timestep logging (default is False). : (null)\n", - "rejects_in_log : Show timestep rejections in the main log (default is False). : (null)\n", - "vandenHeuvel_logging : Turn on van den Heuvel logging (default is False). : (null)\n", - "evolution_splitting : If True, turn on splitting of an evolutionary run if splitpoint (e.g. supernova) occurs. : (null)\n", - "disable_events : Whether to disable the new events code (defaults to False, so we use events by default)\n", - " : (null)\n", - "evolution_splitting_sn_eccentricity_threshold : Threshold eccentricity above which evolution splitting happens in a system with no SN kick. (0.01) : (null)\n", - "evolution_splitting_sn_n : Number of runs to split into when a SN occurs. : (null)\n", - "evolution_splitting_maxdepth : Max number of splits in an evolutionary run. : (null)\n", - "equation_of_state_algorithm : Set the equation of state algorithm. 0 = Paczynski. : (null)\n", - "opacity_algorithm : Set the opacity algorithm. 0 = Paczynski, 1 = Ferguson/Opal. : (null)\n", - "wind_mass_loss : Defines the algorithm used for stellar winds. 0 = none, 1 = Hurley et al. (2002), 2 = Schneider (2018). : 0\n", - "gbwind : Wind prescription for first red giant branch stars. 0=Reimers (Hurley et al 2000/2002; choose gb_reimers_eta=0.5 for their mass loss rate), 1=Schroeder+Cuntz 2005 (set gb_reimers_eta=1.0 for their mass loss rate). : (null)\n", - "postagbwind : Apply special post-(A)GB prescription. Default is POSTAGB_WIND_USE_GIANT which means we just use whatever is prescribed on the giant branch. Other options include: POSTAGB_WIND_NONE = 1 (no wind on the post (A)GB), POSTAGB_WIND_KRTICKA2020 = 2 which uses Krticka, Kubát and Krticková (2020, A&A 635, A173). : (null)\n", - "Teff_postAGB_min : The minimum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_max. (6000 K) : (null)\n", - "Teff_postAGB_max : The maximum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_min. (120000 K) : (null)\n", - "mattsson_Orich_tpagbwind : Experimental : turns on Mattsson's TPAGB wind when the star is oxygen rich. Requires MATTSSON_MASS_LOSS. : (null)\n", - "magnetic_braking_factor : Multiplier for the magnetic braking angular momentum loss rate. : (null)\n", - "magnetic_braking_gamma : gamma factor in Rappaport style magnetic braking expression. : (null)\n", - "magnetic_braking_algorithm : Algorithm for the magnetic braking angular momentum loss rate. 0 = Hurley et al. 2002, 1 = Andronov, Pinnsonneault and Sills 2003, 2 = Barnes and Kim 2010 : (null)\n", - "helium_flash_mass_loss : Mass to be lost at the helium flash. : (null)\n", - "gb_reimers_eta : First red giant branch wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) : (null)\n", - "gbwindfac : Multiplier for the giant branch wind mass loss rate : (null)\n", - "tpagbwindfac : Multiplier for the TPAGB wind mass loss rate : (null)\n", - "eagbwindfac : Multiplier for the EAGB wind mass loss rate : (null)\n", - "nieuwenhuijzen_windfac : Multiplier for the Nieuwenhuijzen & de Jager wind mass loss rate : (null)\n", - "tpagbwind : Wind prescription during the TPAGB. 0=Karakas 2002 (a modified Vassiliadis and Wood 1993), 1=Hurley et al 2000/2002 (Vassiliadis and Wood 1993), 2=Reimers, 3=Bloecker, 4=Van Loon, 5=Rob's C-wind (broken?), 6,7=Vassiliadis and Wood 1993 (Karakas,Hurley variants respectively) when C/O>1, 8=Mattsson, 9 = Goldman et al. (2017), 10 = Beasor et al. (2020). : (null)\n", - "eagbwind : Wind prescription during the EAGB. 0=BSE (Hurley+2002, based on VW93), 1 = Goldman et al. (2017), 2 = Beasor et al. (2020). : (null)\n", - "wind_gas_to_dust_ratio : Gas to dust ratio used in wind calculations (e.g. Goldman et al. 2017). Typically 200 (Milky Way)-500 (Magellanic Clouds). Default is 200, approximately as in MW stars. : (null)\n", - "vwind_multiplier : Multiplier for the stellar wind velocity. : (null)\n", - "vwind_beta : Beta for stellar wind speed calculations, where vwind=sqrt(beta) * escape velocity. Default 0.125 (from BSE, Hurley et al. 2002). : (null)\n", - "superwind_mira_switchon : In the Vassiliadis and Wood (1993) AGB wind prescription, the superwind is turned on at a given Mira period, usually 500 days. You can vary when this switch-on happens with this parameter. : (null)\n", - "vw93_mira_shift : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate depends on the Mira period plus this offset. Requires VW93_MIRA_SHIFT. : (null)\n", - "vw93_multiplier : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate is multiplied by this factor. Requires VW93_MULTIPLIER. : (null)\n", - "tpagb_reimers_eta : TPAGB Reimers wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) Note that Reimers is not the default TPAGB wind prescription. See also tpagbwind. : (null)\n", - "Tout_Pringle_1992_multiplier : Multiplier for the Tout & Pringle (1992) magnetic wind. (0.0) : (null)\n", - "artificial_mass_accretion_rate%d : Constant mass accretion rate for star <n>. : (null)\n", - "artificial_mass_accretion_rate_by_stellar_type%d : Constant mass accretion rate for stellar type <n>. : (null)\n", - "artificial_angular_momentum_accretion_rate%d : Constant angular momentum accretion for star <n>. : (null)\n", - "artificial_orbital_angular_momentum_accretion_rate : Constant angular momentum accretion rate on the orbit. : (null)\n", - "artificial_accretion_start_time : Time at which artificial accretion stars. Ignored if <0 (default is -1). : (null)\n", - "artificial_accretion_end_time : Time at which artificial accretion ends. Ignored if <0 (default is -1). : (null)\n", - "wr_wind : Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge's version of Vink's early-2000s wind (See Lynnette Dray's thesis, or John Eldridge's thesis) : (null)\n", - "wr_wind_fac : Massive-star (WR) wind multiplication factor. : (null)\n", - "wrwindfac : Massive-star (WR) wind multiplication factor. Synonymous with wr_wind_fac (which you should use instead). : (null)\n", - "BH_prescription : Black hole mass prescrition: relates the mass of a newly formed black hole to its progenitor's (CO) core mass. BH_HURLEY2002 = 0 = Hurley et al 2000/2002, BH_BELCZYNSKI = 1 = Belczynski (early 2000s), BH_SPERA2015 = Spera+ 2015, BH_FRYER12_DELAYED = 3 = Fryer et al. (2012) delayed prescription, BH_FRYER12_RAPID = 4 = Fryer et al. (2012) rapid prescription, BH_FRYER12_STARTRACK = 5 = Fryer et al. (2012) startrack prescription. : (null)\n", - "sn_kick_distribution_II : Set the distribution of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_ECAP : Set the distribution of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_NS_NS : Set the distribution of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IBC : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_GRB_COLLAPSAR : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_TZ : Set the distribution of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_AIC_BH : Set the distribution of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_BH : Set the distribution of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_NS : Set the distribution of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD : Set the distribution of speeds applied to any survivor of a hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD_subluminous : Set the distribution of speeds applied to any survivor of a subluminous hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_II : Set the dispersion of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_ECAP : Set the dispersion of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_NS_NS : Set the dispersion of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IBC : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_GRB_COLLAPSAR : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_TZ : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_AIC_BH : Set the dispersion of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_BH : Set the dispersion of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_NS : Set the dispersion of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD : Set the dispersion of speeds applied to the survivor of a SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD_subluminous : Set the dispersion of speeds applied to the survivor of a subluminous SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_companion_IA_He : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_ELD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia ELD (sub-Mch) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an accretion induced collapse (supernova) occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_ECAP : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an electron capture supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_He_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia helium merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_NS_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron-star neutron-star merger. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_GRB_COLLAPSAR : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a GRB Collapsar (rapidly rotating SN Ibc) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_HeStarIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a He-star Ia supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IBC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type Ib/c supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_II : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type II supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type IIa supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_WDKICK : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a WD is kicked. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_TZ : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Thorne-Zytkow object is formed. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron star collapses to a black hole. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when two black holes merge. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a black hole merges with a neutron star. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD_subluminous : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a subluminous hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "wd_sigma : Set the speed at which white dwarfs are kicked when they form, in km/s. Default is zero (i.e. no kick). Requires WD_KICKS. : (null)\n", - "wd_kick_direction : Set the direction of white dwarf kicks. 0 = random, 1 = up, 2 = forward, 3 = backward, 4 = inward, 5 = outward. Requires WD_KICKS. : (null)\n", - "wd_kick_when : Decide when to kick a white dwarf. 0=at birth, 1=at first RLOF, 2=at given pulse number (see wd_kick_pulse_number), 3 at every pulse Requires WD_KICKS. : (null)\n", - "wd_kick_pulse_number : Apply a kick to a star at a desired pulse number on the TPAGB (i.e. pre-WD). Requires WD_KICKS. : (null)\n", - "minimum_helium_ignition_core_mass : Minimum helium core mass required to ignite helium in the case that the hydrogen envelope is stripped on the giant branch, e.g. to make an sdB or sdO star. Typically 0.4, if 0.0 then the BSE algorithm (based on the total mass) is used. : (null)\n", - "minimum_CO_core_mass_for_carbon_ignition : Minimum CO core mass for carbon ignition, assuming Mc,bagb>1.6Msun. Typically around 1.08Msun (Pols+1998). : (null)\n", - "minimum_CO_core_mass_for_neon_ignition : Minimum CO core mass for neon ignition. Typically around 1.42Msun. Stars that have cores that ignite carbon, but not neon explode in electon-capture supernovae. : (null)\n", - "minimum_mcbagb_for_nondegenerate_carbon_ignition : Minimum Mc,bagb (core mass at the base of the AGB) for non-degenerate carbon ignition. Typically around 2.25Msun (Pols+1998). : (null)\n", - "maximum_mcbagb_for_degenerate_carbon_ignition : Maximum Mc,bagb (core mass at the base of the AGB) for degenerate carbon ignition. Typically around 1.6Msun (Pols+1998). : (null)\n", - "max_neutron_star_mass : Maximum mass of a neutron star before it collapses to a black hole. Typically around 2Msun. : (null)\n", - "chandrasekhar_mass : The Chandrasekhar mass, usually 1.44Msun : (null)\n", - "delta_mcmin : A parameter to reduce the minimum core mass for third dredge up to occur on the TPAGB. As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "lambda_min : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. See also lambda_multiplier. : (null)\n", - "lambda_multiplier : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "minimum_envelope_mass_for_third_dredgeup : The minimum envelope mass for third dredge up on the TPAGB. Early, solar metallicity models by Straniero et al suggested 0.5Msun is typical. However, circumstantial evidence (Izzard et al 2009) as well as newer models by Stancliffe and Karakas suggest that at low metallicity a value nearer zero is more appropriate. : (null)\n", - "mass_of_pmz : The mass in the partial mixing zone of a TPAGB star, using the Karakas 2012 tables. Ask Carlo Abate for more details, or see the series of papers Abate et al 2012, 2013, 2014. Requires NUCSYN and USE_TABULAR_INTERSHELL_ABUNDANCES_KARAKAS_2012. : (null)\n", - "c13_eff : The \"efficiency\" of partial mixing in a TPAGB star intershell region, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "mc13_pocket_multiplier : Multiplies the mass in the partial mixing zone of a TPAGB star, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "tides_convective_damping : Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989 : Zahn 1989 lambdas + Hut. : (null)\n", - "E2_prescription : Choose how to calculate the E2 structural parameter (used in tidal timescale calculations). 0=Hurley 1=Izzard (see Siess et al 2013). : (null)\n", - "dtfac : A parameter to decrease the timestep ONLY during the TPAGB phase. : (null)\n", - "hbbtfac : A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined) : (null)\n", - "wind_multiplier_%d : Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0. : (null)\n", - "wind_type_multiplier_%d : Wind multiplier for different types of wind (MS, GB, AGB, WR, LBV, OTHER), given by the integer %d. By default these are all 1.0. : (null)\n", - "pre_main_sequence : Set to True to turn on pre-main sequence evolution. Currently this is not a special stellar type, rather the first (small) fraction of the main sequence has increased radii to match the Railton et al 2014 fits to Tout's pre-main sequence stars. Requires PRE_MAIN_SEQUENCE. See also pre_main_sequence_fit_lobes. : (null)\n", - "pre_main_sequence_fit_lobes : Set to True force a pre-main sequence star into its Roche lobe. This is done by artificially aging it. Requires PRE_MAIN_SEQUENCE : (null)\n", - "small_envelope_method : Choose the method used to determine the stellar radius when the envelope mass is very thin. 0 = Hurley et al. (2002), 1 = Miller Bertolami et al. (2016+) for GB and AGB stars only. : (null)\n", - "timestep_modulator : Multiplier applied to the global timestep. Requires TIMESTEP_MODULATION. : (null)\n", - "timestep_multiplier%d : Multiplier applied to timestep limit <n>. : (null)\n", - "maximum_timestep : The maximum timestep (MYr). : (null)\n", - "zoomfac_multiplier_decrease : When a timestep is rejected, decrease the timestep by this factor (0.5). : (null)\n", - "zoomfac_multiplier_increase : When a timestep is rejected, zooms, then succeeds, increase the timestep by this factor (1.2). : (null)\n", - "maximum_timestep_factor : The maximum factor between two subsequent timesteps (1.2). : (null)\n", - "maximum_nuclear_burning_timestep : The maximum timestep (MYr) in any nuclear burning phase. : (null)\n", - "nova_retention_method : Algorithm used to calculate the amount of mass retained during a nova explosion. 0=use nova_retention_fraction. (other methods pending) : (null)\n", - "MINT_metallicity : This sets the metallicity for MINT. It is ignored if set to -1.0, the default, in which case the normal metallicity parameter is used. : (null)\n", - "gaia_Teff_binwidth : log10(Effective temperature) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_L_binwidth : log10(luminosity) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_colour_transform_method : Use this to select the method used to transform to Gaia colours from other colour schemes. GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1 Jordi et al.'s bivariate UBVRI fits, GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3 Jordi et al.'s univariate ugriv fits, GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_UBVRI_RIELLO2020 = 6 Riello et al. (2020, DR3) fits, GAIA_CONVERSION_ugriz_RIELLO2020 = 7 Riello et al. (2020, DR3) fits. : (null)\n", - "rotationally_enhanced_mass_loss : Set to 1 to enable rotationally enhanced mass loss rate algorithms: 0= none, 1=formula cf. Langer models (=ROTATIONALLY_ENHANCED_MASSLOSS_LANGER_FORMULA), 2=limit accretion rate before wind loss is applied, 3 = both 1 and 2. See also rotationally_enhanced_exponent : (null)\n", - "AGB_core_algorithm : Algorithm to use for calculating AGB core masses. 0=Hurley et al. 2002 if no NUCSYN, Karakas 2002 if NUCSYN is defined; 1=Hurley et al. 2002 (overshooting models); 1=Karakas 2002 (non-overshooting models). : (null)\n", - "AGB_radius_algorithm : Algorithm to use for calculating radii on the TPAGB. : (null)\n", - "AGB_luminosity_algorithm : Algorithm to use for calculating luminosities on the TPAGB. : (null)\n", - "AGB_3dup_algorithm : Algorithm to use for calculating third dredge up efficiency on the TPAGB. : (null)\n", - "overspin_algorithm : Algorithm to determine what we do when a star is rotating at its breakup velocity. OVERSPIN_BSE (0) conservatively transfers the angular momentum back to the orbit. OVERSPIN_MASSLOSS uses the rotationally_enhanced_massloss parameter to lose mass which carries away the angular momentum. : (null)\n", - "rotationally_enhanced_exponent : The exponent (power) by which rotationally enhanced mass loss is raised. Requires ROTATIONALLY_ENHANCED_MASS_LOSS. See also rotationally_enhanced_mass_loss. : (null)\n", - "batchmode : Set the batchmode control variable. Use only if you know what you are doing! : (null)\n", - "speedtests : If True, turns on speedtests during version information (off by default). : (null)\n", - "use_fixed_timestep_%d : Set to True to use fixed timestep <n>, False to turn off. Fixed timesteps are on (this is True) by default. : (null)\n", - "task%d : Control tasks to be performed by binary_c. By default, these are all TRUE. For more information see binary_c_macros.h, particularly the BINARY_C_TASK_* macros. : (null)\n", - "orbiting_object : Usage: --orbiting_object mass,spinrate,central_object,period. : 1.0\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_wind_accretion_multiplier : Multiplier for wind accretion on orbiting objects. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "orbiting_objects_close_pc_threshold : How close are orbiting objects allowed to be? Set this to be the absolute percentage difference minimum. : (null)\n", - "orbiting_objects_tides_multiplier : Multiplier for tidal torques on orbiting objects. : (null)\n", - "evaporate_escaped_orbiting_objects : If True, evaporate orbiting objects that have escaped the system. : (null)\n", - "RLOF_transition_objects_escape : If True, objects that escape their Roche lobe are ejected from the system, otherwise they are placed just outside the minimum stable orbit. : (null)\n", - "PN_resolve : If True, the timestep will be shortened to resolve better the PN phase (FALSE). : (null)\n", - "PN_resolve_minimum_luminosity : The luminosity above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_maximum_envelope_mass : The envelope mass below which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_minimum_effective_temperature : The minimum effective temperature above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_fast_wind : If True, thin-envelope PNe will have fast winds (FALSE). : (null)\n", - "PN_fast_wind_dm_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_mdot_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_dm_AGB : The envelope mass below which fast wind used during the AGB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "PN_fast_wind_mdot_AGB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "HeWD_HeWD_ignition_mass : HeWD-HeWD mergers above this mass reignite helium. (0.3) : (null)\n", - "wind_Nieuwenhuijzen_luminosity_lower_limit : Above this luminosity we activate the Nieuwenhuijzen and de Jager wind (4e3 Lsun). : (null)\n", - "wind_LBV_luminosity_lower_limit : Above this luminosity we activate the LBV wind (6e5 Lsun). : (null)\n", - "colour%d : Sets colour %d (0 to NUM_ANSI_COLOURS-1) to the extended ANSI set colour you choose (1-255, 0 means ignore). The colour numbers are defined in src/logging/ansi_colours.h : (null)\n", - "apply_Darwin_Radau_correction : Apply Darwin-Radau correction to the moment of inertia to take rotation into account? : (null)\n", - "degenerate_core_merger_nucsyn : If TRUE, assume that in a degnerate core merger, energy is generated from nucleosynthesis of the whole core, and that this can disrupt the core. The BSE algorithm (Hurley et al. 2002) assumes this to be TRUE, but binary_c assumes FALSE by default. (FALSE) : (null)\n", - "degenerate_core_helium_merger_ignition : If TRUE, assume that when there is a degenerate helium core merger, the star reignites helium. This is required to make R-type carbon stars. (TRUE) : (null)\n", - "degenerate_core_merger_dredgeup_fraction : If non-zero, mix this fraction of the degenerate core during a merger.(0.0). : (null)\n", - "\n", - "############################################################\n", - "##### Section Binary\n", - "############################################################\n", - "separation : Set the orbital separation (actually the semi-major axis) of the binary (internal index 0, stellar indices 0 and 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_triple : Set the orbital separation (actually the semi-major axis) of the triple (internal index 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_quadruple : Set the orbital separation (actually the semi-major axis) of the quadruple (internal index 2) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "orbital_period : Set the initial orbital period of the binary, stars 1 and 2 (internal indices 0 and 1) in days. See also separation. : (null)\n", - "orbital_period_triple : Set the initial orbital period of the triple in days. See also separation. : (null)\n", - "orbital_period_quadruple : Set the orbital period of the outer binary in a quadrulple (stars 3 and 4, internal indices 2 and 3) in days. See also separation. : (null)\n", - "eccentricity : Set the initial eccentricity of the binary orbit (stars 1 and 2, internal indices 0 and 1). : (null)\n", - "eccentricity_triple : Set the initial eccentricity of the triple orbit. : (null)\n", - "eccentricity_quadruple : Set the initial eccentricity of the outer binary of a quadruple (stars 3 and 4, internal indices 2 and 3). : (null)\n", - "incliniation : Set the initial orbital_inclination of the binary relative to zero. : (null)\n", - "incliniation_triple : Set the initial orbital_inclination of the triple orbit relative to zero. : (null)\n", - "incliniation_quadruple : Set the initial orbital_inclinationy of the quadruple orbit relative to zero. : (null)\n", - "orbital_phase : Set the initial orbital phase of the binary orbit. : (null)\n", - "orbital_phase_triple : Set the initial orbital phase of the triple orbit. : (null)\n", - "orbital_phase_quadruple : Set the initial orbital phase of the quadruple orbit. : (null)\n", - "argument_of_periastron : Set the initial argument of periastron of the binary orbit. : (null)\n", - "argument_of_periastron_triple : Set the initial argument of periastron of the triple orbit. : (null)\n", - "argument_of_periastron_quadruple : Set the initial argument of periastron of the quadruple orbit. : (null)\n", - "disc_timestep_factor : Factor that multiplies the natural timestep of a disc. : (null)\n", - "white_dwarf_cooling_model : White dwarf cooling model, relates age to luminosity. WHITE_DWARF_COOLING_MESTEL = 0 is Mestel's model, WHITE_DWARF_COOLING_MESTEL_MODIFIED = 1 is Hurley's modified Mestel model, WHITE_DWARF_COOLING_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "white_dwarf_radius_model : White dwarf radius model, radius to mass (and perhaps age). WHITE_DWARF_RADIUS_NAUENBERG1972 = 0 Nauenberg (1972), WHITE_DWARF_RADIUS_MU = 1 mu-dependent variant, WHITE_DWARF_RADIUS_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "cbdisc_mass_loss_inner_viscous_accretion_method : Chooses where the mass that is accreted from the inner edge of a circumbinary disc goes, i.e. to which star. 0 = Young and Clarke 2015, 1 = Gerosa et al 2015, 2 = 50:50 (i.e. not dependence on mass). : (null)\n", - "cbdisc_inner_edge_stripping : If True, allow inner edge mass stripping. : (null)\n", - "cbdisc_end_evolution_after_disc : If True, stop evolution when a disc evaporates. : (null)\n", - "cbdisc_no_wind_if_cbdisc : If True, disable stellar winds when there is a circumbinary disc. : (null)\n", - "cbdisc_outer_edge_stripping : If True, allow outer edge mass stripping. : (null)\n", - "disc_n_monte_carlo_guesses : Number of monte carlo guesses to try in the disc solver if the normal list of guesses fails (0). : (null)\n", - "disc_log : If 1, turn on the disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log2d : If 1, turn on the 2d disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log_dt : If non-zero, only allows disc log output every disc_log_dt Myr. : (null)\n", - "disc_log_directory : Directory into which disc logging is sent (must exist!). : /tmp/\n", - "post_ce_adaptive_menv : If TRUE, and if post_ce_objects_have_envelopes is TRUE, then the envelope mass of a post-CE star is such that it sits just inside its Roche lobe. If FALSE then a fixed (thin) envelope mass is applied that depends on the stellar type (see macros POST_CE_ENVELOPE_DM_GB, POST_CE_ENVELOPE_DM_EAGB and POST_CE_ENVELOPE_DM_TPAGB). : (null)\n", - "post_ce_objects_have_envelopes : If TRUE then post-common-envelope objects have thin envelopes. You need this if you are to have post-CE post-AGB stars. Note that this *may* be unstable, i.e. you may end up having many CEEs. The mass in the envelope is controlled by post_ce_adaptive_menv. TRUE by default. : (null)\n", - "PN_comenv_transition_time : post-common envelope transition time in years (1e2). This is the time taken to move from CEE ejection to Teff > 30e4 K. Hall et al. (2013) suggest ~100 years. : (null)\n", - "minimum_time_between_PNe : The minimum time (Myr) between planetary nebula detections. This prevents multiple, fast common envelopes triggering two PNe (0.1). : (null)\n", - "PN_Hall_fading_time_algorithm : In stars with low mass (<0.45Msun) cores, you can choose to set the PN fading time to either the minimum (PN_HALL_FADING_TIME_ALGORITHM_MINIMUM) or maximum (PN_HALL_FADING_TIME_ALGORITHM_MAXIMUM) as shown in Fig. 6 of Hall et al. (2013). : (null)\n", - "PPN_envelope_mass : Desired pre-planetary nebula (post-AGB) envelope mass. : (null)\n", - "cbdisc_eccentricity_pumping_method : Select from various eccentricity-pumping methods when there is a circumbinary disc. Requires DISCS. 0 = off. : (null)\n", - "cbdisc_viscous_photoevaporative_coupling : Set to 1 to turn on viscous-photoevaporative coupling in circumbinary discs. Requires DISCS. 0 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = off, 1 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT instant, 2 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS slow, viscous wind. : (null)\n", - "cbdisc_inner_edge_stripping_timescale : Defines the timescale for mass loss from by inner edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_in. : (null)\n", - "cbdisc_outer_edge_stripping_timescale : Defines the timescale for mass loss from by outer edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_out. : (null)\n", - "cbdisc_viscous_L2_coupling : Set to 1 to turn on viscous-L2-loss coupling in circumbinary discs. Requires DISCS. 0 = off. : (null)\n", - "gravitational_radiation_model : Model for gravitational radiation from the system. 0=Hurley et al 2002 (Landau and Lifshitz 1951). 1 = as 0 but only when there is no RLOF. 2 = none. : (null)\n", - "nova_irradiation_multiplier : Multiplier for nova-radiative induced mass loss. (Shara+1986) : (null)\n", - "gravitational_radiation_modulator_J : Modulator for gravitational wave radiation angular momentum loss rate (1.0). : (null)\n", - "gravitational_radiation_modulator_e : Modulator for gravitational wave radiation eccentricity pumping rate (1.0). : (null)\n", - "nova_faml_multiplier : Nova friction-induced angular momentum loss multiplier. (Shara+1986) : (null)\n", - "RLOF_angular_momentum_transfer_model : Choose angular momentum transfer model in RLOF. 0=BSE (with discs), 1=conservative : (null)\n", - "post_SN_orbit_method : Method by which the post-SN orbit is calculated. 0=BSE, 1=Tauris&Taken 1998. : (null)\n", - "multiplicity : Multiplicity: 1=single star, 2=binary, 3=triple, 4=quadruple. : (null)\n", - "accretion_limit_eddington_steady_multiplier : Steady accretion is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_steady_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_LMMS_multiplier : Accretion from a low-mass, convective, main_sequence star is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_LMMS_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_WD_to_remnant_multiplier : Accretion from a WD onto a remnant star (e.g. another white dwarf, neutron star or black hole) is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_WD_to_remnant_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_thermal_multiplier : Mass transfer onto a MS, HG or CHeB star is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "accretion_limit_dynamical_multiplier : Mass transfer is limited by the accretor's dynamical rate times this multiplier. : (null)\n", - "donor_limit_envelope_multiplier : Mass transfer by RLOF is limited by this fraction of the donor's envelope mass per timestep : (null)\n", - "donor_limit_thermal_multiplier : Mass transfer by RLOF is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "donor_limit_dynamical_multiplier : Mass transfer by RLOF is limited by the donor's dynamical rate times this multiplier. : (null)\n", - "Bondi_Hoyle_accretion_factor : Wind accretion rate, as calculated by the Bondi-Hoyle-Littleton formula, multiplcation factor. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "tidal_strength_factor : A modulator for the tidal strength. If this factor > 1 then tides are stronger, i.e. tidal timescales are reduced. : (null)\n", - "hachisu_qcrit : Critical q=Maccretor/Mdonor above which Hachisu's disk wind turns on. : (null)\n", - "hachisu_disk_wind : Set to True to turn on Hachisu's disk wind when material accretes too fast onto a white dwarf. This helps to make more SNeIa. See also hachisu_qcrit. : (null)\n", - "mass_accretion_for_eld : The mass that must be accreted onto a COWD for it to ignite as an edge-lit detonation SNIa. : (null)\n", - "WDWD_merger_algorithm : Algorithm to be used when merging two white dwarfs. 0 = Hurley et al. (2002), 1 = Perets+ (2019), 2 = Chen+ (2016, todo) : (null)\n", - "type_Ia_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from Chandrasekhar-mass exploders. 0 = DD7 (Iwamoto 1999), 1 = Seitenzahl 2013 3D hydro yields (you must also set Seitenzahl2013_model) : (null)\n", - "Seitenzahl2013_model : Which of Seitenzahl et al. 2013's models to use? One of N1,N3,N5,N10,N20,N40,N100L,N100,N100H,N150,N200,N300C,N1600,N1600C,N100_Z0.5,N100_Z0.1,N100_Z0.01 (defaults to N100). : N1\n", - "type_Ia_sub_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.) : (null)\n", - "max_HeWD_mass : The maximum mass a HeWD can have before it ignites helium (0.7). : (null)\n", - "merger_mass_loss_fraction : Fraction of the total mass which is lost when stars merge. : (null)\n", - "merger_angular_momentum_factor : When two stars merge the resulting single star retains a fraction of the total system angular momentum (or the critical spin angular momentum, if it is smaller) multiplied by this factor. : (null)\n", - "wind_angular_momentum_loss : Prescription for losing angular momentum in a stellar wind. 0=Hurley et al 2002 ('Tout') prescription, 1=lw i.e. a factor multiplying the specific orbital angular momentum, 2=lw hybrid for fast winds. Set wind_djorb_fac to the desired factor.. : (null)\n", - "wind_djorb_fac : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=0 (the Tout/Hurley et al 2002 prescription). See wind_angular_momentum_loss. : (null)\n", - "lw : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=1,2 (the 'lw' prescription). See wind_angular_momentum_loss. : (null)\n", - "VW93_EAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "VW93_TPAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "use_periastron_Roche_radius : Set this to True to use the Roche lobe radius at periastron, rather than (the default to) assume a circular orbit. This will be useful one day when we treat RLOF in eccentric orbits properly, hopefully. : (null)\n", - "qcrit_LMMS : Apply critical q=Mdonor/Maccretor value for low-mass main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_LMMS : Apply critical q=Mdonor/Maccretor value for (low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "mass_for_Hestar_Ia_upper : Only helium stars below this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_lower. : (null)\n", - "mass_for_Hestar_Ia_lower : Only helium stars above this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_upper. : (null)\n", - "alphaCB : Circumbinary disk viscosity parameter, alpha. : (null)\n", - "minimum_donor_menv_for_comenv : Minimum donor envelope mass for common envelope evolution to be triggered (Msun). Default 0. : (null)\n", - "comenv_prescription : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_prescription%d : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_ejection_spin_method : When a common envelope is ejected, we need to decide how fast the stars are left spinning. COMENV_EJECTION_SPIN_METHOD_DO_NOTHING (0) is the default, this just leaves the stars/stellar cores spinning with the same spin rate (omega = angular velocity) with which they entered the common envelope phase. COMENV_EJECTION_SPIN_METHOD_SYCHRONIZE instead tidally synchronizes the stars with their new orbital angular velocity. : (null)\n", - "comenv_merger_spin_method : When a common envelope binary merges, we need to decide how fast the resulting single star is left spinning. COMENV_MERGER_SPIN_METHOD_SPECIFIC (0) is the default, this preserves angular momentum but limits the specific angular momentum of the merged star to the specific angular momentum of the system at the onset of common envelope evolution. COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM (1) sets the merger's angular momentum to be that of the system at the onset of common envelope evolution (which means the star may be rotating supercritically). COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA (2) sets the spin rate (angular frequency = omega) of the merged star to be that of the orbit just at the onset of common envelope evolution. : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "comenv_ms_accretion_fraction : Experimental. During common envelope evolution, a main sequence may accrete a fraction of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_mass. : (null)\n", - "comenv_ns_accretion_mass : Experimental. During common envelope evolution, a neutron star may accrete some of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_fraction. : (null)\n", - "comenv_ns_accretion_fraction : Experimental. During common envelope evolution, a neutron star may accrete a fraction of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_mass. : (null)\n", - "alpha_ce : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "alpha_ce%d : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "lambda_ce : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to LAMBDA_CE_DEWI_TAURIS == -1 binary_c uses the Dewi and Tauris fits instead, LAMBDA_CE_WANG_2016 == -2 uses the formalism of Wang, Jia and Li (2016), if LAMBDA_CE_POLYTROPE == -3 then a polytropic formalism is used (see also comenv_splitmass) and if LAMBDA_CE_KLENCKI_2020 == -4 use Klencki et al. (2020). : (null)\n", - "lambda_ce%d : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). : (null)\n", - "comenv_splitmass : When lambda_ce=-2, the envelope binding energy, lambda, is calculated using a polytropic formalism. The comenv_splitmass defines the point, in the units of the core mass, above which material is ejected. : (null)\n", - "nelemans_recalc_eccentricity : If True, recalculate the eccentricity after angular momentum is removed. : (null)\n", - "comenv_post_eccentricity : Eccentricity remaining after common envelope ejection. : (null)\n", - "nelemans_gamma : Set the fraction of the orbital specific angular momentum that is used to eject the common envelope according to the Nelemans and Tout prescription. See also nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_minq : Only activate the Nelemans and Tout common envelope prescription for q>nelemans_minq. See also nelemans_gamma, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_max_frac_j_change : Maximum fractional angular momentum change in the Nelemans and Tout common envelope prescription. See also nelemans_gamma, nelemans_minq, nelemans_n_comenvs. : (null)\n", - "nelemans_n_comenvs : Set the maximum number of common envelope ejections allowed to follow the Nelemans and Tout prescription, after which the standard alpha prescription is used. : (null)\n", - "lambda_ionisation : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_ionisation%d : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_enthalpy : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "lambda_enthalpy%d : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "cbdisc_albedo : Circumbinary-disc albedo. Requires DISCS. : (null)\n", - "cbdisc_gamma : Circumbinary disc gamma (equation of state) parameter. Requires DISCS. : (null)\n", - "cbdisc_alpha : Circumbinary disc alpha (viscosity) parameter. Requires DISCS. : (null)\n", - "cbdisc_kappa : Circumbinary disc kappa (opacity) parameter. Requires DISCS. : (null)\n", - "cbdisc_minimum_evaporation_timescale : Circumbinary disc minimum evaporation timescale (years). If (slow, not edge stripped) mass loss would evaporate the disc on a timescale less than this, simply evaporate the disc immediated. Usually set to 1y, ignore if zero. Requires DISCS. : (null)\n", - "cbdisc_torquef : Circumbinary disc binary torque multiplier. Requires DISCS. : (null)\n", - "cbdisc_max_lifetime : Circumbinary disc maximum lifetime (years, ignored if 0). Requires DISCS. : (null)\n", - "cbdisc_init_dM : On cbdisc start, reduce mass by a fraction dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_init_dJdM : On cbdisc start, reduce angular momentum by a fraction dJ/dM*dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_mass_loss_constant_rate : Circumbinary disc constant mass loss rate (Msun/year). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_FUV_multiplier : Circumbinary disc FUV mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_Xray_multiplier : Circumbinary disc X-ray mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_ram_pressure_multiplier : Circumbinary disc interstellar medium ram pressure stripping mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_pressure : Circumbinary disc interstellar medium ram pressure in units of Boltzmann constant per Kelvin (I think...). Requires DISCS. Typically 3000.0. See e.g. http://www.astronomy.ohio-state.edu/~pogge/Ast871/Notes/Intro.pdf page 15 or https://arxiv.org/pdf/0902.0820.pdf Fig. 1 (left panel). : (null)\n", - "cbdisc_mass_loss_inner_viscous_multiplier : Circumbinary disc inner edge viscous mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier : Circumbinary disc inner edge viscous angular momentum multiplier (no units). The inner edge angular momentum Requires DISCS. : (null)\n", - "cbdisc_resonance_multiplier : Circumbinary disc resonant interaction multiplier, affects eccentricity pumping and angular momentum rates. Requires DISCS. : (null)\n", - "cbdisc_resonance_damping : Circumbinary disc resonant interaction damping: should be on (True) to damp the l=1, m=2 resonance when the disc inner edge lies outside the resonance location. Requires DISCS. : (null)\n", - "cbdisc_fail_ring_inside_separation : If True, while converging on a structure, circumbinary discs with Rring < the binary separation are immediately failed. : (null)\n", - "cbdisc_mass_loss_inner_L2_cross_multiplier : Circumbinary disc inner edge L2-crossing mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_minimum_luminosity : Circumbinary disc minimum luminosity. If the disc becomes dimmer than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_mass : Circumbinary disc minimum mass. If the disc becomes less massive than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_fRing : Circumbinary disc minimum fRing. If the disc becomes a ring, and fRing = |Rout/Rin-1| < this value (and this value is non-zero), the disc is evaporated instantly. Requires DISCS. : (null)\n", - "comenv_disc_angmom_fraction : If >0 Fraction of the common envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the moments of inertia to calculate (deprecated), if -2 use the common envelope's specific angular momentum, if -3 uses the L2 point at the end of the common envelope to set the angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "comenv_disc_mass_fraction : Fraction of the common envelope's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "wind_disc_angmom_fraction : If >0 Fraction of the wind envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the L2 point's specific angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "wind_disc_mass_fraction : Fraction of the stellar wind's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "WRLOF_method : Choose whether and how to apply wind-Roche-lobe-overflow. 0=none, 1=q-dependent, 2=quadratic See Abate et al 2013/14 for details. Requires WRLOF_MASS_TRANSFER. : (null)\n", - "minimum_timestep : The minimum timestep (Myr). : (null)\n", - "timestep_solver_factor : Factor applied in timestep_limits, e.g. to prevent X changing too fast by comparing to X/dX/dt, which is usually 1 but can be higher to lengthen timesteps when using an alternative solver. : (null)\n", - "RLOF_mdot_factor : Multiplier applied to the mass transfer rate during Roche-lobe overflow. Requires RLOF_MDOT_MODULATION. : (null)\n", - "RLOF_f : Factor to enlarge a Roche lobe, nominally because of radiation pressure (see Dermine et al paper). Requires RLOF_RADIATION_CORRECTION. : (null)\n", - "minimum_separation_for_instant_RLOF : If True, instead of evolving the system just report the minimum separation (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_orbital_period_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "minimum_orbital_period_for_instant_RLOF : If True, instead of evolving the system just report the minimum orbital period (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_separation_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "maximum_mass_ratio_for_instant_RLOF : If True, instead of evolving the system just report the maximum mass ratio (on the zero-age main sequence) that would lead to instant RLOF, given M1 and orbital period. Used by binary_grid. See also minimum_separation_for_instant_RLOF and minimum_orbital_period_for_instant_RLOF. : (null)\n", - "RLOF_method : Use RLOF_method to choose the algorithm you use for Roche-lobe overflow mass loss rate calculations. 0=Hurley et al 2002, 1=Adaptive (for radiative stars) R=RL method, 2=Ritter (probably broken), 3=Claeys etal 2014 variant on Hurley et al 2002. : (null)\n", - "RLOF_interpolation_method : When a star overflows its Roche lobe, it always has R>RL because of the limited time resolution of the simulation. Binary_c then uses an algorithm to get back to when R~RL (within a desired tolerance, set in RLOF_ENTRY_THRESHOLD which is usually 1.02, i.e. overflow of 2%). You can choose algorithm 0, the Hurley et al 2002 method which reverses time (i.e. uses a Newton-like scheme), or 1 to use the binary_c method which rejects a timestep (and hence does no logging on that timestep) and repeats with half the timestep until R~RL. The latter is now the default, because this means there are no negative timesteps which break various other algorithms (e.g. nucleosynthesis). : (null)\n", - "nova_retention_fraction : The mass accreted during a nova as fraction of mass transferred : (null)\n", - "beta_reverse_nova : The fraction of mass ejected in a nova explosion which is accreted back onto the companion star. Set to -1 to automatically calculate based on a geometric argument, or 0 or positive to set the value. : (null)\n", - "WD_accretion_rate_novae_upper_limit_hydrogen_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is hydrogen rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_helium_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_other_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is neither hydrogen nor helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a hydrogen-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_helium_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a helium-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_other_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope when the donor is neither hydrogen nor helium rich. Below this mass transfer leads to stable burning. : (null)\n", - "CRAP_parameter : Tidally enhanced mass loss parameter. See Tout and Eggleton's paper on the subject. (Was the parameter bb). : (null)\n", - "individual_novae : If individual_novae is True, novae are resolved such that each explosion is performed separtaely. : (null)\n", - "nova_timestep_accelerator_num : The nova timestep is accelerated if the nova number exceeds nova_timestep_accelerator_num. If zero or negative, acceleration is off. See also nova_timestep_accelerator_index and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_index : The index at which the nova timestep is accelerated. A larger value gives longer timesteps. See also nova_timestep_accelerator_num and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_max : The nova timestep is accelerated by a factor that is capped at nova_timestep_accelerator_max. This parameter is ignored if it is zero or negative. See also nova_timestep_accelerator_num and nova_timestep_accelerator_index. Only used if individual_novae is on.\n", - " : (null)\n", - "nonconservative_angmom_gamma : Mass lost from the system (but NOT from a stellar wind) takes a fraction gamma of the orbital angular momentum with it. Set to -1 to take the specific angular momentum of the donor star. Set to -2 to take super-Eddington, nova and disk-wind angular momenta as if a wind from the accretor. : (null)\n", - "max_stellar_angmom_change : Maxmimum fractional change in stellar angular momentum allowed before a timestep is rejected (0.05). : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "\n", - "############################################################\n", - "##### Section Nucsyn\n", - "############################################################\n", - "third_dup : If True, enables third dredge up. Requires NUCSYN and NUCSYN_THIRD_DREDGE_UP. : (null)\n", - "third_dup_multiplier : Usage: --third_dup_multiplier <i> <f>. Multiplies the abundance of element <i> by <f> during third dredge up. : 1.0\n", - "NeNaMgAl : Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB. : Ignore\n", - "nucsyn_network%d : Usage: --nucsyn_network%d <boolean>. Turn a nuclear network on or off. : (null)\n", - "nucsyn_network_error%d : Usage: --nucsyn_network_error%d <f>. Threshold error in nuclear network solver for network %d. : (null)\n", - "nucreacmult%d : Usage: --nucreacmult%d <f>. Multiply nuclear reaction given by the integer %d (integer) by f (float). : (null)\n", - "nucsyn_metallicity : This sets the metallicity of the nucleosynthesis algorithms, i.e. the amount (by mass) of matter which is not hydrogen or helium. Usually you'd just set this with the metallicity parameter, but if you want the nucleosynthesis to be outside the range of the stellar evolution algorithm (e.g. Z=0 or Z=0.04) then you need to use nucsyn_metallicity. That said, it's also outside the range of some of the nucleosynthesis algorithms as well, so you have been warned! : (null)\n", - "nucsyn_solver : Choose the solver used in nuclear burning. 0 = KAPS_RENTROP is a Kaps-Rentrop scheme (fast, not great for stiff problems), 1 = LSODA (Adams/BSF switcher), 2 = CVODE library (https://computing.llnl.gov/projects/sundials. Default 0. : 0\n", - "initial_abundance_mix : initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993 : 0\n", - "init_abund : Usage: --init_abund <i> <X>. Sets the initial abundance of isotope number <i> to mass fraction <X>. : 0.02\n", - "init_abund_mult : Usage: --init_abund_mult <i> <f>. Multiplies the initial abundance of isotope number <i> by <f>. : 1.0\n", - "init_abund_dex : Usage: --init_abund_dex <i> <f>. Changes the initial abundance of isotope number <i> by <f> dex. : 0.0\n", - "init_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "initial_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "no_thermohaline_mixing : If True, disables thermohaline mixing. : (null)\n", - "lithium_GB_post_Heflash : Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_GB_post_1DUP : Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_hbb_multiplier : Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "angelou_lithium_decay_function : Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are : 0 expoential (see angelou_lithium_decay_time). : (null)\n", - "angelou_lithium_LMMS_time : Time at which lithium manufacture is triggered in a low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_time : Time at which lithium manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_time : Time at which lithium manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_time : Time at which lithium manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_time : Time at which lithium manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_time : Time at which lithium manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_time : Time at which lithium manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_decay_time : Decay time for surface lithium abundance during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_decay_time : Decay time for surface lithium abundance on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_decay_time : Decay time for surface lithium abundance on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_decay_time : Decay time for surface lithium abundance on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_decay_time : Decay time for surface lithium abundance during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_decay_time : Decay time for surface lithium abundance on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_decay_time : Decay time for surface lithium abundance on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_massfrac : Lithium mass fraction when its manufacture is triggered during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_massfrac : Lithium mass fraction when its manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_massfrac : Lithium mass fraction when its manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_massfrac : Lithium mass fraction when its manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_massfrac : Lithium mass fraction when its manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_vrot_trigger : Equatorial rotational velocity at which lithium manufacture is triggered (km/s). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "angelou_lithium_vrotfrac_trigger : Fraction of Keplerian (breakup) equatorial rotational velocity at which lithium manufacture is triggered (must be <1, ignored if 0). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "\n", - "############################################################\n", - "##### Section Output\n", - "############################################################\n", - "cf_amanda_log : Enable logging to compare to Amanda's models. : (null)\n", - "float_overflow_checks : Turn on to enable floating-point overflow checks at the end of each timestep, if they are available. 0=off, 1=warn (stderr) on failure, 2=exit on failure (0) : (null)\n", - "save_pre_events_stardata : Enable this to save a copy of stardata to stardata->pre_events_stardata just before an event. : (null)\n", - "disable_end_logging : Disable the logging that happens at the end of the evolution. : (null)\n", - "ensemble : Turn on ensemble calculations and output. : (null)\n", - "ensemble_filters_off : Sets all ensemble filters to be off (FALSE) - these can then be enabled one-by-one with --ensemble_filter_[...] TRUE. : (null)\n", - "ensemble_filter_%d : Turn on or off ensemble filter <n>. For a list of filters, see ensemble_macros.h. : (null)\n", - "ensemble_legacy_ensemble : Turn on ensemble legacy population output. : (null)\n", - "legacy_yields : Turn on ensemble legacy yield output. : (null)\n", - "ensemble_defer : Defer ensemble output. : (null)\n", - "ensemble_dt : When doing ensemble calculations, data are stored and/or output every ensemble_dt Myr. See also ensemble, ensemble_logdt, ensemble_startlogtime. : (null)\n", - "ensemble_logdt : When doing ensemble calculations, and when logensembletimes is set, the ensemble is stored/output every ensemble_logdt Myr. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_startlogtime : Start log ensemble data storage/calculations/output at ensemble_startlogtime. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_logtimes : When doing ensemble calculations/output, set this to act at log times rather than linear times. : (null)\n", - "postagb_legacy_logging : Turn on post-AGB legacy logging. : (null)\n", - "disc_legacy_logging : Turn on disc legacy logging. : (null)\n", - "EMP_logg_maximum : Maximum logg that EMP stars are allowed to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_minimum_age. : (null)\n", - "EMP_minimum_age : Minimum age that EMP stars are required to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum. : (null)\n", - "EMP_feh_maximum : Maximum [Fe/H] that an EMP stars may have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default -2.0. : (null)\n", - "CEMP_cfe_minimum : Minimum [C/Fe] that CEMP stars are required to have. See Izzard et al 2009. See also NEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 0.7. : (null)\n", - "NEMP_cfe_minimum : Minimum [N/Fe] that NEMP stars are required to have. See Izzard et al 2009, Pols et al. 2012. See also CEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 1.0. : (null)\n", - "thick_disc_start_age : Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr. : (null)\n", - "thick_disc_end_age : Lookback time for the end of the thick disc star formation, e.g. 4e3 Myr. Units = Myr. : (null)\n", - "thick_disc_logg_min : Minimum logg for thick disc giants to be logged. : (null)\n", - "thick_disc_logg_max : Maximum logg for thick disc giants to be logged. : (null)\n", - "escape_velocity : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 1e9 km/s. See also escape_fraction. : (null)\n", - "escape_fraction : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 0.0. See also escape_velocity. : (null)\n", - "colour_log : If set to True, thelog is coloured with ANSI colour formatting. Requires FILE_LOG to be defined. : \n", - "log_filename : Location of the output logging filename. If set to \"/dev/null\" then there is no logging. : \n", - "log_arrows : Add arrows to the output log to show whether values are increasing or decreasing. : \n", - "stopfile : File which, when it exists, will stop the current binary_c repeat run. : \n", - "stardata_dump_filename : Location of the stardata dump file. : \n", - "stardata_load_filename : Location of the stardata file to load. : \n", - "api_log_filename_prefix : Location of the output logging filename prefix for the API. If set to \"/dev/null\" then there is no logging. : 0\n", - "hrdiag_output : Set to True to output high time-resolution Hertzstrpung-Russell diagram information. Requires HRDIAG. : (null)\n", - "internal_buffering : Experimental. Set to non-zero values to implement internal buffering prior to output. For use with binary_grid, you shouldn't really be playing with this. : (null)\n", - "eccentric_RLOF_model : Chooses which model is used to handle eccentric RLOF. Default is RLOF_ECCENTRIC_AS_CIRCULAR, i.e. ignore the eccentricity. Note: requires force_corotation_of_primary_and_orbit to be FALSE.\n", - " : (null)\n", - "force_circularization_on_RLOF : If True forces circularization of stars and orbit when RLOF starts, this is as in the BSE algorithm. (True) : (null)\n", - "wtts_log : If True, enables log file output for WTTS2. : (null)\n", - "fabian_imf_log_time : Time at which to output for Fabian Schneider's IMF project. Requires FABIAN_IMF_LOG : Ignore\n", - "fabian_imf_log_timestep : Timestep for Fabian Schneider's IMF project logging. Requires FABIAN_IMF_LOG : Ignore\n", - "version : Display binary_c version and build information. Also performs timing tests. : Ignore\n", - "dumpversion : Display binary_c version number (short format). : Ignore\n", - "version_only : Display binary_c version number and build information, but do not perform timing tests or anything that requires stardata to be non-NULL. : Ignore\n", - "tides_diagnosis_log : Enable logging to test MINT tides. Requires MINT. Choices are: 0 disabled, 1 enable lambda test. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Input\n", - "############################################################\n", - "MINT_dir : Location of MINT algorithm data. : \n", - "MINT_data_cleanup : Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things. : \n", - "MINT_MS_rejuvenation : Turn on or off (hydrogen) main-sequence rejuvenation. : \n", - "MINT_remesh : Turn on or off MINT's remeshing. : \n", - "MINT_use_ZAMS_profiles : Use chemical profiles at the ZAMS if MINT_use_ZAMS_profiles is TRUE, otherwise set homogeneous abundances. (Default is TRUE, so we use the profiles if they are available.) : \n", - "MINT_fallback_to_test_data : If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE) : \n", - "MINT_disable_grid_load_warnings : Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data. : \n", - "MINT_Kippenhahn : Turn on or off MINT's Kippenhahn diagrams. If 0, off, if 1, output star 1 (index 0), if 2 output star 2 (index 1). Default 0. : \n", - "MINT_nshells : Set the initial number of shells MINT uses in each star when doing nuclear burning. Note: remeshing can change this. If MINT_nshells is 0, shellular burning and other routines that require shells will not be available. (200) : \n", - "MINT_maximum_nshells : Set the maximum number of shells MINT uses in each star when doing nuclear burning. Note that this will be limited to MINT_HARD_MAX_NSHELLS. (1000) : \n", - "MINT_minimum_nshells : Set the minimum number of shells MINT uses in each star when doing nuclear burning. Note that this will be greater than or equal to MINT_HARD_MIN_NSHELLS, which is 0 by default. (0) : \n", - "MINT_Kippenhahn_stellar_type : Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output. : \n", - "MINT_Kippenhahn_companion_stellar_type : Companion stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for the companion for which Kippenhahn plot data should be output. : \n", - "MINT_nuclear_burning : Turn on or off MINT's nuclear burning algorithm. : \n", - "MINT_minimum_shell_mass : Minimum shell mass in MINT's nuclear burning routines. : \n", - "MINT_maximum_shell_mass : Maximum shell mass in MINT's nuclear burning routines. : \n", - "\n", - "############################################################\n", - "##### Section I/O\n", - "############################################################\n", - "go : batchmode control command : Ignore\n", - "gogo : batchmode control command : Ignore\n", - "reset_stars : Reset the star structures. Used in batchmode : Ignore\n", - "reset_stars_defaults : Reset the star structures and set defaults. Used in batchmode : Ignore\n", - "defaults : Reset all defaults. Used in batchmode : Ignore\n", - "echo : Activate batchmode command echoing, i.e. when you enter a command, binary_c repeats the command then executes it. : Ignore\n", - "noecho : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "noechonow : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "bye : Quit binary_c. Used in batchmode. : Ignore\n", - "fin : batchmode control command : Ignore\n", - "reset_prefs : Reset preferences struct. Used in batchmode : Ignore\n", - "status : Output batchmode status information. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Algorithms\n", - "############################################################\n", - "repeat : If > 1, repeats the system as many times as required. Handy if you're using Monte-Carlo kicks and want to sample the parameter space well. Also, if you are running speed tests this is good to give a statistically more reasonable result. (See e.g. 'tbse pgo'). : (null)\n", - "random_systems : Experimental. Use this to apply random initial system parameters (masses, separations, etc.). Useful for testing only. : (null)\n", - "\n", - "############################################################\n", - "##### Section Misc\n", - "############################################################\n", - "random_seed : Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "random_systems_seed : Random number seed for the generation of random systems. See random_systems and random_seed. : (null)\n", - "random_skip : Skip the first <random_seed> random numbers that are generated. Usually this is 0 so they are all used. : (null)\n", - "idum : [NB: deprecated, please use 'random_seed' instead.] Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "reverse_time : Make time go backwards. To be considered very experimental! : (null)\n", - "start_time : Start time for the simulation. : (null)\n", - "warmup_cpu : Uses the CPU at maximum power the given number of seconds, prior to running normal stellar evolution. : Ignore\n", - "help : Display help pages. Usage: --help <help topic>. : Ignore\n", - "argopts : Display argument options. Usage: --argopts <argument>. : Ignore\n", - "help_all : Display all help pages. : Ignore\n", - "list_args : Display list of arguments with their default values. Useful for batchmode. : Ignore\n", - "\n" + "(abridged)\n" ] } ], "source": [ - "print(_binary_c_bindings.return_help_all())" + "print('\\n'.join(_binary_c_bindings.return_help_all().splitlines()[:10]))\n", + "print(\"(abridged)\")" ] }, { @@ -873,12 +300,14 @@ "__ARG_BEGIN\n", "metallicity = 0.02\n", "effective_metallicity = -1\n", - "M_1 = 0\n" + "M_1 = 0\n", + "(abridged)\n" ] } ], "source": [ - "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))" + "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -966,7 +395,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -980,7 +409,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/examples/notebook_common_envelope_evolution.html b/docs/build/html/examples/notebook_common_envelope_evolution.html index a46b46ebc..d60de9b8c 100644 --- a/docs/build/html/examples/notebook_common_envelope_evolution.html +++ b/docs/build/html/examples/notebook_common_envelope_evolution.html @@ -1131,9 +1131,9 @@ Text(0, 0.5, 'Number of stars') provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_custom_logging.html b/docs/build/html/examples/notebook_custom_logging.html index 304824f4a..96daa798c 100644 --- a/docs/build/html/examples/notebook_custom_logging.html +++ b/docs/build/html/examples/notebook_custom_logging.html @@ -387,7 +387,7 @@ div.rendered_html tbody tr:hover { <span class="n">create_and_load_logging_function</span><span class="p">,</span> <span class="p">)</span> <span class="kn">from</span> <span class="nn">binarycpython.utils.run_system_wrapper</span> <span class="kn">import</span> <span class="n">run_system</span> -<span class="kn">from</span> <span class="nn">binarycpython.utils.grid</span> <span class="kn">import</span> <span class="n">Population</span> +<span class="kn">from</span> <span class="nn">binarycpython</span> <span class="kn">import</span> <span class="n">Population</span> </pre></div> </div> </div> @@ -762,6 +762,15 @@ EXAMPLE_MASSLOSS 1.050651207308e+01 1.59452 9.34213 20 13 1 EXAMPLE_SN 1.050651207308e+01 1.59452 9.34213 20 12 13 5 1 6.55458 4.71662 6.55458 </pre></div></div> </div> +<div class="nbinput nblast docutils container"> +<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[ ]: +</pre></div> +</div> +<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> +<span></span> +</pre></div> +</div> +</div> </section> </section> </section> @@ -785,9 +794,9 @@ EXAMPLE_SN 1.050651207308e+01 1.59452 9.34213 20 12 13 5 1 6.55458 4 provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_custom_logging.ipynb b/docs/build/html/examples/notebook_custom_logging.ipynb index 8dfb85034..8627ffb47 100644 --- a/docs/build/html/examples/notebook_custom_logging.ipynb +++ b/docs/build/html/examples/notebook_custom_logging.ipynb @@ -23,7 +23,7 @@ " create_and_load_logging_function,\n", ")\n", "from binarycpython.utils.run_system_wrapper import run_system\n", - "from binarycpython.utils.grid import Population" + "from binarycpython import Population" ] }, { @@ -461,11 +461,19 @@ "# print (abridged) output\n", "print(\"\\n\".join(output.splitlines()[-2:]))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c708268f-0b0c-48ea-9155-ec632a0acc3a", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -479,7 +487,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/examples/notebook_ensembles.html b/docs/build/html/examples/notebook_ensembles.html new file mode 100644 index 000000000..76a2cae54 --- /dev/null +++ b/docs/build/html/examples/notebook_ensembles.html @@ -0,0 +1,390 @@ +<!DOCTYPE html> +<html class="writer-html5" lang="en" > +<head> + <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title><no title> — binary_c-python documentation</title> + <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> + <script src="../_static/jquery.js"></script> + <script src="../_static/underscore.js"></script> + <script src="../_static/doctools.js"></script> + <script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script> + <script defer="defer" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> + <script>window.MathJax = {"tex": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true}, "options": {"ignoreHtmlClass": "tex2jax_ignore|mathjax_ignore|document", "processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}}</script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + <a href="../index.html" class="icon icon-home"> binary_c-python + </a> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Contents:</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../readme_link.html">Python module for binary_c</a></li> +<li class="toctree-l1"><a class="reference internal" href="../modules.html">Binarycpython code</a></li> +<li class="toctree-l1"><a class="reference internal" href="../example_notebooks.html">Example notebooks</a></li> +<li class="toctree-l1"><a class="reference internal" href="../binary_c_parameters.html">Binary_c parameters</a></li> +<li class="toctree-l1"><a class="reference internal" href="../grid_options_descriptions.html">Population grid code options</a></li> +<li class="toctree-l1"><a class="reference external" href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python">Visit the GitLab repo</a></li> +<li class="toctree-l1"><a class="reference external" href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/issues/new">Submit an issue</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">binary_c-python</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home"></a> »</li> + <li><no title></li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/examples/notebook_ensembles.ipynb.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + +<style> +/* CSS for nbsphinx extension */ + +/* remove conflicting styling from Sphinx themes */ +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt *, +div.nbinput.container div.input_area pre, +div.nboutput.container div.output_area pre, +div.nbinput.container div.input_area .highlight, +div.nboutput.container div.output_area .highlight { + border: none; + padding: 0; + margin: 0; + box-shadow: none; +} + +div.nbinput.container > div[class*=highlight], +div.nboutput.container > div[class*=highlight] { + margin: 0; +} + +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt * { + background: none; +} + +div.nboutput.container div.output_area .highlight, +div.nboutput.container div.output_area pre { + background: unset; +} + +div.nboutput.container div.output_area div.highlight { + color: unset; /* override Pygments text color */ +} + +/* avoid gaps between output lines */ +div.nboutput.container div[class*=highlight] pre { + line-height: normal; +} + +/* input/output containers */ +div.nbinput.container, +div.nboutput.container { + display: -webkit-flex; + display: flex; + align-items: flex-start; + margin: 0; + width: 100%; +} +@media (max-width: 540px) { + div.nbinput.container, + div.nboutput.container { + flex-direction: column; + } +} + +/* input container */ +div.nbinput.container { + padding-top: 5px; +} + +/* last container */ +div.nblast.container { + padding-bottom: 5px; +} + +/* input prompt */ +div.nbinput.container div.prompt pre { + color: #307FC1; +} + +/* output prompt */ +div.nboutput.container div.prompt pre { + color: #BF5B3D; +} + +/* all prompts */ +div.nbinput.container div.prompt, +div.nboutput.container div.prompt { + width: 4.5ex; + padding-top: 5px; + position: relative; + user-select: none; +} + +div.nbinput.container div.prompt > div, +div.nboutput.container div.prompt > div { + position: absolute; + right: 0; + margin-right: 0.3ex; +} + +@media (max-width: 540px) { + div.nbinput.container div.prompt, + div.nboutput.container div.prompt { + width: unset; + text-align: left; + padding: 0.4em; + } + div.nboutput.container div.prompt.empty { + padding: 0; + } + + div.nbinput.container div.prompt > div, + div.nboutput.container div.prompt > div { + position: unset; + } +} + +/* disable scrollbars on prompts */ +div.nbinput.container div.prompt pre, +div.nboutput.container div.prompt pre { + overflow: hidden; +} + +/* input/output area */ +div.nbinput.container div.input_area, +div.nboutput.container div.output_area { + -webkit-flex: 1; + flex: 1; + overflow: auto; +} +@media (max-width: 540px) { + div.nbinput.container div.input_area, + div.nboutput.container div.output_area { + width: 100%; + } +} + +/* input area */ +div.nbinput.container div.input_area { + border: 1px solid #e0e0e0; + border-radius: 2px; + /*background: #f5f5f5;*/ +} + +/* override MathJax center alignment in output cells */ +div.nboutput.container div[class*=MathJax] { + text-align: left !important; +} + +/* override sphinx.ext.imgmath center alignment in output cells */ +div.nboutput.container div.math p { + text-align: left; +} + +/* standard error */ +div.nboutput.container div.output_area.stderr { + background: #fdd; +} + +/* ANSI colors */ +.ansi-black-fg { color: #3E424D; } +.ansi-black-bg { background-color: #3E424D; } +.ansi-black-intense-fg { color: #282C36; } +.ansi-black-intense-bg { background-color: #282C36; } +.ansi-red-fg { color: #E75C58; } +.ansi-red-bg { background-color: #E75C58; } +.ansi-red-intense-fg { color: #B22B31; } +.ansi-red-intense-bg { background-color: #B22B31; } +.ansi-green-fg { color: #00A250; } +.ansi-green-bg { background-color: #00A250; } +.ansi-green-intense-fg { color: #007427; } +.ansi-green-intense-bg { background-color: #007427; } +.ansi-yellow-fg { color: #DDB62B; } +.ansi-yellow-bg { background-color: #DDB62B; } +.ansi-yellow-intense-fg { color: #B27D12; } +.ansi-yellow-intense-bg { background-color: #B27D12; } +.ansi-blue-fg { color: #208FFB; } +.ansi-blue-bg { background-color: #208FFB; } +.ansi-blue-intense-fg { color: #0065CA; } +.ansi-blue-intense-bg { background-color: #0065CA; } +.ansi-magenta-fg { color: #D160C4; } +.ansi-magenta-bg { background-color: #D160C4; } +.ansi-magenta-intense-fg { color: #A03196; } +.ansi-magenta-intense-bg { background-color: #A03196; } +.ansi-cyan-fg { color: #60C6C8; } +.ansi-cyan-bg { background-color: #60C6C8; } +.ansi-cyan-intense-fg { color: #258F8F; } +.ansi-cyan-intense-bg { background-color: #258F8F; } +.ansi-white-fg { color: #C5C1B4; } +.ansi-white-bg { background-color: #C5C1B4; } +.ansi-white-intense-fg { color: #A1A6B2; } +.ansi-white-intense-bg { background-color: #A1A6B2; } + +.ansi-default-inverse-fg { color: #FFFFFF; } +.ansi-default-inverse-bg { background-color: #000000; } + +.ansi-bold { font-weight: bold; } +.ansi-underline { text-decoration: underline; } + + +div.nbinput.container div.input_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight].math, +div.nboutput.container div.output_area.rendered_html, +div.nboutput.container div.output_area > div.output_javascript, +div.nboutput.container div.output_area:not(.rendered_html) > img{ + padding: 5px; + margin: 0; +} + +/* fix copybtn overflow problem in chromium (needed for 'sphinx_copybutton') */ +div.nbinput.container div.input_area > div[class^='highlight'], +div.nboutput.container div.output_area > div[class^='highlight']{ + overflow-y: hidden; +} + +/* hide copybtn icon on prompts (needed for 'sphinx_copybutton') */ +.prompt a.copybtn { + display: none; +} + +/* Some additional styling taken form the Jupyter notebook CSS */ +div.rendered_html table { + border: none; + border-collapse: collapse; + border-spacing: 0; + color: black; + font-size: 12px; + table-layout: fixed; +} +div.rendered_html thead { + border-bottom: 1px solid black; + vertical-align: bottom; +} +div.rendered_html tr, +div.rendered_html th, +div.rendered_html td { + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} +div.rendered_html th { + font-weight: bold; +} +div.rendered_html tbody tr:nth-child(odd) { + background: #f5f5f5; +} +div.rendered_html tbody tr:hover { + background: rgba(66, 165, 245, 0.2); +} + +/* CSS overrides for sphinx_rtd_theme */ + +/* 24px margin */ +.nbinput.nblast.container, +.nboutput.nblast.container { + margin-bottom: 19px; /* padding has already 5px */ +} + +/* ... except between code cells! */ +.nblast.container + .nbinput.container { + margin-top: -19px; +} + +.admonition > p:before { + margin-right: 4px; /* make room for the exclamation icon */ +} + +/* Fix math alignment, see https://github.com/rtfd/sphinx_rtd_theme/pull/686 */ +.math { + text-align: unset; +} +</style> +<div class="nbinput nblast docutils container"> +<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[ ]: +</pre></div> +</div> +<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> +<span></span> +</pre></div> +</div> +</div> + + + </div> + </div> + <footer> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2021, David Hendriks, Robert Izzard.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + +<br><br> +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +<br><br> +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. + + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> +</html> \ No newline at end of file diff --git a/docs/build/html/examples/notebook_ensembles.ipynb b/docs/build/html/examples/notebook_ensembles.ipynb new file mode 100644 index 000000000..44ef8a7ef --- /dev/null +++ b/docs/build/html/examples/notebook_ensembles.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d4799c94-afd8-41db-ab82-e0a6e278ed77", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/build/html/examples/notebook_extra_features.html b/docs/build/html/examples/notebook_extra_features.html index 98e15a162..b9f9214ad 100644 --- a/docs/build/html/examples/notebook_extra_features.html +++ b/docs/build/html/examples/notebook_extra_features.html @@ -53,7 +53,6 @@ <li class="toctree-l3"><a class="reference internal" href="#Build-information-of-binary_c">Build information of binary_c</a></li> <li class="toctree-l3"><a class="reference internal" href="#Example-parse-function">Example parse function</a></li> <li class="toctree-l3"><a class="reference internal" href="#Dictionary-modification">Dictionary modification</a></li> -<li class="toctree-l3"><a class="reference internal" href="#Getting-help">Getting help</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Tutorial: Using the API functionality of binary_c-python</a></li> @@ -376,11 +375,11 @@ div.rendered_html tbody tr:hover { </pre></div> </div> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> -<span></span><span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="p">(</span> +<span></span><span class="kn">from</span> <span class="nn">binarycpython</span> <span class="kn">import</span> <span class="n">Population</span> +<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="p">(</span> <span class="n">get_help</span><span class="p">,</span> <span class="n">get_help_all</span><span class="p">,</span> <span class="n">get_help_super</span><span class="p">,</span> - <span class="n">return_binary_c_version_info</span><span class="p">,</span> <span class="n">get_defaults</span> <span class="p">)</span> <span class="c1"># help(binarycpython.utils.functions)</span> @@ -462,14 +461,14 @@ default: </section> <section id="Build-information-of-binary_c"> <h2>Build information of binary_c<a class="headerlink" href="#Build-information-of-binary_c" title="Permalink to this headline">ïƒ</a></h2> -<p>Sometimes we want to know with which settings binary_c has been built. We can use the function <code class="docutils literal notranslate"><span class="pre">return_binary_c_version_info</span></code> for this. This function will parse the version info of binary_c and return a dictionary with all the settings.</p> +<p>It can be useful to fetch the information with which the current version of binary_c has been configured with. We can do that through the Population object, by calling the instance method <code class="docutils literal notranslate"><span class="pre">return_binary_c_version_info</span></code>. This function will parse the version info of binary_c and return a dictionary with all the settings.</p> <div class="nbinput docutils container"> <div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[6]: </pre></div> </div> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> -<span></span><span class="n">version_info_dict</span> <span class="o">=</span> <span class="n">return_binary_c_version_info</span><span class="p">(</span><span class="n">parsed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -<span class="nb">print</span><span class="p">(</span><span class="n">version_info_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> +<span></span><span class="n">version_info</span> <span class="o">=</span> <span class="n">Population</span><span class="p">()</span><span class="o">.</span><span class="n">return_binary_c_version_info</span><span class="p">(</span><span class="n">parsed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +<span class="nb">print</span><span class="p">(</span><span class="n">version_info</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> </pre></div> </div> </div> @@ -478,7 +477,7 @@ default: </div> <div class="output_area docutils container"> <div class="highlight"><pre> -dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'nucleosynthesis_sources', 'miscellaneous']) +dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'units', 'nucleosynthesis_sources', 'miscellaneous']) </pre></div></div> </div> </section> @@ -504,18 +503,6 @@ dict_keys(['networks', 'isotopes', 'argpairs', 'ense </ul> <p>TODO:</p> </section> -<section id="Getting-help"> -<h2>Getting help<a class="headerlink" href="#Getting-help" title="Permalink to this headline">ïƒ</a></h2> -<div class="nbinput nblast docutils container"> -<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[ ]: -</pre></div> -</div> -<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> -<span></span> -</pre></div> -</div> -</div> -</section> </section> @@ -537,9 +524,9 @@ dict_keys(['networks', 'isotopes', 'argpairs', 'ense provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_extra_features.ipynb b/docs/build/html/examples/notebook_extra_features.ipynb index 44c19c112..a0f0fc0d9 100644 --- a/docs/build/html/examples/notebook_extra_features.ipynb +++ b/docs/build/html/examples/notebook_extra_features.ipynb @@ -18,11 +18,11 @@ "metadata": {}, "outputs": [], "source": [ + "from binarycpython import Population\n", "from binarycpython.utils.functions import (\n", " get_help,\n", " get_help_all,\n", " get_help_super,\n", - " return_binary_c_version_info,\n", " get_defaults\n", ")\n", "# help(binarycpython.utils.functions)" @@ -116,8 +116,7 @@ "metadata": {}, "source": [ "## Build information of binary_c\n", - "Sometimes we want to know with which settings binary_c has been built. We can use the function `return_binary_c_version_info` for this.\n", - "This function will parse the version info of binary_c and return a dictionary with all the settings." + "It can be useful to fetch the information with which the current version of binary_c has been configured with. We can do that through the Population object, by calling the instance method `return_binary_c_version_info`. This function will parse the version info of binary_c and return a dictionary with all the settings." ] }, { @@ -130,13 +129,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'nucleosynthesis_sources', 'miscellaneous'])\n" + "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'units', 'nucleosynthesis_sources', 'miscellaneous'])\n" ] } ], "source": [ - "version_info_dict = return_binary_c_version_info(parsed=True)\n", - "print(version_info_dict.keys())" + "version_info = Population().return_binary_c_version_info(parsed=True)\n", + "print(version_info.keys())" ] }, { @@ -168,27 +167,11 @@ "\n", "TODO:" ] - }, - { - "cell_type": "markdown", - "id": "b3c259ef-9f89-4b26-9ce3-45af625bc398", - "metadata": {}, - "source": [ - "## Getting help\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bf3c1e28-1662-47a7-abab-aa6fb0ef0882", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -202,7 +185,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/examples/notebook_individual_systems.html b/docs/build/html/examples/notebook_individual_systems.html index 1bf646c4e..642efceba 100644 --- a/docs/build/html/examples/notebook_individual_systems.html +++ b/docs/build/html/examples/notebook_individual_systems.html @@ -414,7 +414,7 @@ div.rendered_html tbody tr:hover { </div> <div class="output_area docutils container"> <div class="highlight"><pre> -SINGLE_STAR_LIFETIME 1 12461.2 +SINGLE_STAR_LIFETIME 1 12461.1 </pre></div></div> </div> @@ -436,17 +436,17 @@ SINGLE_STAR_LIFETIME 1 12461.2 </div> <div class="output_area docutils container"> <div class="highlight"><pre> - TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=62172 RANDOM_COUNT=0 + TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=22065 RANDOM_COUNT=0 0.0000 1.000 0.000 1 15 -1 -1 -1.00 0.000 0.000 "INITIAL " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 "OFF_MS" 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" 11582.2424 1.000 0.000 3 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" 12325.1085 0.817 0.000 4 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" 12457.1301 0.783 0.000 5 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" - 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" - 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 "shrinkAGB" - 12461.1627 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" - 15000.0000 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 "MAX_TIME" + 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" + 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 "shrinkAGB" + 12461.1490 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 "TYPE_CHNGE" + 15000.0000 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 "MAX_TIME" </pre></div></div> </div> @@ -562,13 +562,13 @@ EXAMPLE_MASSLOSS 2.000000000000e-06 1 1 1 4 0.000002 1.0 1.0 1.0 5 0.000003 1.0 1.0 1.0 ... ... ... ... ... -1345 12461.080763 0.71617 1.0 6.0 -1346 12461.162734 0.644553 1.0 11.0 -1347 13461.162734 0.644553 1.0 11.0 -1348 14461.162734 0.644553 1.0 11.0 -1349 15000.0 0.644553 1.0 11.0 +1250 12461.061259 0.718593 1.0 6.0 +1251 12461.149038 0.678026 1.0 11.0 +1252 13461.149038 0.678026 1.0 11.0 +1253 14461.149038 0.678026 1.0 11.0 +1254 15000.0 0.678026 1.0 11.0 -[1349 rows x 4 columns] +[1254 rows x 4 columns] </pre></div></div> </div> </section> @@ -614,10 +614,8 @@ EXAMPLE_MASSLOSS 2.000000000000e-06 1 1 1 </div> <div class="output_area docutils container"> <div class="highlight"><pre> -adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options -adding: M_1=10 to BSE_options Creating and loading custom logging functionality -Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems +Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems Cleaning up the custom logging stuff. type: single SINGLE_STAR_LIFETIME 10 28.4838 @@ -666,9 +664,9 @@ Printf("EXAMPLE_MASSLOSS %30.12e %g %g %g %d\n", ); to grid_options Creating and loading custom logging functionality -Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems +Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems Cleaning up the custom logging stuff. type: single -Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_dafa15d2b1e64e19972ac0e9eb5c9a55.so +Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_34a350b8f15c4d149deab88632948c99.so EXAMPLE_MASSLOSS 0.000000000000e+00 10 0 10 1 EXAMPLE_MASSLOSS 0.000000000000e+00 10 10 10 1 EXAMPLE_MASSLOSS 1.000000000000e-06 10 10 10 1 @@ -676,7 +674,7 @@ EXAMPLE_MASSLOSS 2.000000000000e-06 10 10 10 1 </pre></div></div> </div> <p>Lastly we can add a parse_function to handle parsing the output again.</p> -<p>Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be (self, output). Returning the data is useful when running evolve_single(), but won’t be used in a population evolution.</p> +<p>Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be <code class="docutils literal notranslate"><span class="pre">(self,</span> <span class="pre">output)</span></code>. Returning the data is useful when running evolve_single(), but won’t be used in a population evolution.</p> <div class="nbinput nblast docutils container"> <div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[11]: </pre></div> @@ -753,13 +751,12 @@ EXAMPLE_MASSLOSS 2.000000000000e-06 10 10 10 1 </div> <div class="output_area docutils container"> <div class="highlight"><pre> -adding: parse_function=<function object_parse_function at 0x149c2e81ec10> to grid_options -<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to custom_options >>>> -adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options +adding: parse_function=<function object_parse_function at 0x7f35b603e9d0> to grid_options +<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-david/notebooks/notebook_individual_systems to custom_options >>>> Creating and loading custom logging functionality -Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems +Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems Cleaning up the custom logging stuff. type: single -Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_0639ee205c7d4782b4a27378f5d890bd.so +Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_446fe4cddfa94946bcafd55591ef3730.so [['time', 'mass', 'initial_mass', 'stellar_type'], [0.0, 10.0, 0.0, 10.0, 1.0], [0.0, 10.0, 10.0, 10.0, 1.0], [1e-06, 10.0, 10.0, 10.0, 1.0]] dict_keys(['time', 'mass', 'initial_mass', 'stellar_type']) </pre></div></div> @@ -839,9 +836,9 @@ SINGLE_STAR_LIFETIME 15 14.9927 provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_individual_systems.ipynb b/docs/build/html/examples/notebook_individual_systems.ipynb index deb72fc55..d752fc66e 100644 --- a/docs/build/html/examples/notebook_individual_systems.ipynb +++ b/docs/build/html/examples/notebook_individual_systems.ipynb @@ -62,7 +62,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SINGLE_STAR_LIFETIME 1 12461.2\n", + "SINGLE_STAR_LIFETIME 1 12461.1\n", "\n" ] } @@ -90,17 +90,17 @@ "name": "stdout", "output_type": "stream", "text": [ - " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=62172 RANDOM_COUNT=0\n", + " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=22065 RANDOM_COUNT=0\n", " 0.0000 1.000 0.000 1 15 -1 -1 -1.00 0.000 0.000 \"INITIAL \"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"OFF_MS\"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 11582.2424 1.000 0.000 3 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12325.1085 0.817 0.000 4 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12457.1301 0.783 0.000 5 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", - " 12461.1627 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 15000.0000 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", + " 12461.1490 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 15000.0000 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", "\n" ] } @@ -236,13 +236,13 @@ "4 0.000002 1.0 1.0 1.0\n", "5 0.000003 1.0 1.0 1.0\n", "... ... ... ... ...\n", - "1345 12461.080763 0.71617 1.0 6.0\n", - "1346 12461.162734 0.644553 1.0 11.0\n", - "1347 13461.162734 0.644553 1.0 11.0\n", - "1348 14461.162734 0.644553 1.0 11.0\n", - "1349 15000.0 0.644553 1.0 11.0\n", + "1250 12461.061259 0.718593 1.0 6.0\n", + "1251 12461.149038 0.678026 1.0 11.0\n", + "1252 13461.149038 0.678026 1.0 11.0\n", + "1253 14461.149038 0.678026 1.0 11.0\n", + "1254 15000.0 0.678026 1.0 11.0\n", "\n", - "[1349 rows x 4 columns]\n" + "[1254 rows x 4 columns]\n" ] } ], @@ -299,10 +299,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", - "adding: M_1=10 to BSE_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" @@ -360,9 +358,9 @@ ");\n", " to grid_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_dafa15d2b1e64e19972ac0e9eb5c9a55.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_34a350b8f15c4d149deab88632948c99.so\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 0 10 1\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 10 10 1\n", "EXAMPLE_MASSLOSS 1.000000000000e-06 10 10 10 1\n", @@ -381,7 +379,7 @@ "\n", " stardata->star[0].stellar_type //5\n", ");\n", - "\"\"\" \n", + "\"\"\"\n", "\n", "example_pop.set(C_logging_code=custom_logging_print_statement)\n", "\n", @@ -397,7 +395,7 @@ "source": [ "Lastly we can add a parse_function to handle parsing the output again. \n", "\n", - "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be (self, output). Returning the data is useful when running evolve_single(), but won't be used in a population evolution." + "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be `(self, output)`. Returning the data is useful when running evolve_single(), but won't be used in a population evolution." ] }, { @@ -464,13 +462,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function object_parse_function at 0x149c2e81ec10> to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to custom_options >>>>\n", - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", + "adding: parse_function=<function object_parse_function at 0x7f35b603e9d0> to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-david/notebooks/notebook_individual_systems to custom_options >>>>\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_0639ee205c7d4782b4a27378f5d890bd.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_446fe4cddfa94946bcafd55591ef3730.so\n", "[['time', 'mass', 'initial_mass', 'stellar_type'], [0.0, 10.0, 0.0, 10.0, 1.0], [0.0, 10.0, 10.0, 10.0, 1.0], [1e-06, 10.0, 10.0, 10.0, 1.0]]\n", "dict_keys(['time', 'mass', 'initial_mass', 'stellar_type'])\n" ] @@ -570,7 +567,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -584,7 +581,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/examples/notebook_luminosity_function_binaries.html b/docs/build/html/examples/notebook_luminosity_function_binaries.html index 0a98f119d..e2425a1a0 100644 --- a/docs/build/html/examples/notebook_luminosity_function_binaries.html +++ b/docs/build/html/examples/notebook_luminosity_function_binaries.html @@ -1198,9 +1198,9 @@ Done population run! provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_luminosity_function_single.html b/docs/build/html/examples/notebook_luminosity_function_single.html index d19a8ec7b..9ea09290e 100644 --- a/docs/build/html/examples/notebook_luminosity_function_single.html +++ b/docs/build/html/examples/notebook_luminosity_function_single.html @@ -855,9 +855,9 @@ works perfectly well.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_massive_remnants.html b/docs/build/html/examples/notebook_massive_remnants.html index f46ea2c61..be30de976 100644 --- a/docs/build/html/examples/notebook_massive_remnants.html +++ b/docs/build/html/examples/notebook_massive_remnants.html @@ -960,9 +960,9 @@ There were no errors found in this run. provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_population.html b/docs/build/html/examples/notebook_population.html index bd71b0285..edb81b7a6 100644 --- a/docs/build/html/examples/notebook_population.html +++ b/docs/build/html/examples/notebook_population.html @@ -53,7 +53,11 @@ <li class="toctree-l3"><a class="reference internal" href="#Setting-logging-and-handling-the-output">Setting logging and handling the output</a></li> <li class="toctree-l3"><a class="reference internal" href="#Evolving-the-grid">Evolving the grid</a></li> <li class="toctree-l3"><a class="reference internal" href="#Noteworthy-functionality">Noteworthy functionality</a></li> -<li class="toctree-l3"><a class="reference internal" href="#Full-examples-of-population-scripts">Full examples of population scripts</a></li> +<li class="toctree-l3"><a class="reference internal" href="#Full-examples-of-population-scripts">Full examples of population scripts</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#Single-star-population">Single star population</a></li> +<li class="toctree-l4"><a class="reference internal" href="#Binary-star-population">Binary star population</a></li> +</ul> +</li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Tutorial: Extra features and functionality of binary_c-python</a></li> @@ -381,7 +385,7 @@ div.rendered_html tbody tr:hover { <span></span><span class="kn">import</span> <span class="nn">os</span> <span class="kn">from</span> <span class="nn">binarycpython.utils.custom_logging_functions</span> <span class="kn">import</span> <span class="n">temp_dir</span> -<span class="kn">from</span> <span class="nn">binarycpython.utils.grid</span> <span class="kn">import</span> <span class="n">Population</span> +<span class="kn">from</span> <span class="nn">binarycpython</span> <span class="kn">import</span> <span class="n">Population</span> <span class="n">TMP_DIR</span> <span class="o">=</span> <span class="n">temp_dir</span><span class="p">(</span><span class="s2">"notebooks"</span><span class="p">,</span> <span class="s2">"notebook_population"</span><span class="p">)</span> @@ -444,13 +448,9 @@ have set them.</p> </div> <div class="output_area docutils container"> <div class="highlight"><pre> -adding: M_1=10 to BSE_options -adding: orbital_period=45000000080 to BSE_options -adding: max_evolution_time=15000 to BSE_options -adding: eccentricity=0.02 to BSE_options adding: num_cores=2 to grid_options -adding: tmp_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population to grid_options -<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>> +adding: tmp_dir=/tmp/binary_c_python-david/notebooks/notebook_population to grid_options +<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>> <<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>> 1 example_pop.dat @@ -480,7 +480,11 @@ example_pop.dat </div> <div class="output_area docutils container"> <div class="highlight"><pre> -Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json +ok +File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it +ok +ok pre +ok ret </pre></div></div> </div> <div class="nboutput nblast docutils container"> @@ -489,7 +493,7 @@ Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/ex </div> <div class="output_area docutils container"> <div class="highlight"><pre> -'/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json' +'/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz' </pre></div></div> </div> </section> @@ -514,9 +518,9 @@ Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/ex </div> <div class="output_area docutils container"> <div class="highlight"><pre> -Help on method add_grid_variable in module binarycpython.utils.grid: +Help on method add_grid_variable in module binarycpython.utils.population_extensions.gridcode: -add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int], gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None) -> None method of binarycpython.utils.grid.Population instance +add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int] = -1, gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None, index: Optional[int] = None, dry_parallel: Optional[bool] = False) -> None method of binarycpython.utils.grid.Population instance Function to add grid variables to the grid_options. The execution of the grid generation will be through a nested for loop. @@ -527,17 +531,15 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni beware that if you insert some destructive piece of code, it will be executed anyway. Use at own risk. - Tasks: - - TODO: Fix this complex function. - Args: name: name of parameter used in the grid Python code. This is evaluated as a parameter and you can use it throughout the rest of the function - Examples: - name = 'lnm1' + Examples:: + + name = 'lnM_1' parameter_name: name of the parameter in binary_c @@ -552,47 +554,66 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni longname: Long name of parameter - Examples: + Examples:: + longname = 'Primary mass' + range: Range of values to take. Does not get used really, the samplerfunc is used to get the values from - Examples: + Examples:: + range = [math.log(m_min), math.log(m_max)] + samplerfunc: Function returning a list or numpy array of samples spaced appropriately. You can either use a real function, or a string representation of a function call. - Examples: - samplerfunc = "const(math.log(m_min), math.log(m_max), {})".format(resolution['M_1']) + Examples:: + + samplerfunc = "self.const_linear(math.log(m_min), math.log(m_max), {})".format(resolution['M_1']) precode: Extra room for some code. This code will be evaluated within the loop of the - sampling function (i.e. a value for lnm1 is chosen already) + sampling function (i.e. a value for lnM_1 is chosen already) + + Examples:: + + precode = 'M_1=math.exp(lnM_1);' - Examples: - precode = 'M_1=math.exp(lnm1);' postcode: Code executed after the probability is calculated. + probdist: Function determining the probability that gets assigned to the sampled parameter - Examples: - probdist = 'Kroupa2001(M_1)*M_1' + Examples:: + + probdist = 'self.Kroupa2001(M_1)*M_1' + dphasevol: part of the parameter space that the total probability is calculated with. Put to -1 if you want to ignore any dphasevol calculations and set the value to 1 - Examples: - dphasevol = 'dlnm1' + + Examples:: + + dphasevol = 'dlnM_1' + condition: condition that has to be met in order for the grid generation to continue - Examples: - condition = 'self.grid_options['binary']==1' + + Examples:: + + condition = "self.grid_options['binary']==1" + gridtype: Method on how the value range is sampled. Can be either 'edge' (steps starting at the lower edge of the value range) or 'centred' - (steps starting at lower edge + 0.5 * stepsize). + (steps starting at ``lower edge + 0.5 * stepsize``). + + dry_parallel: + If True, try to parallelize this variable in dry runs. topcode: Code added at the very top of the block. @@ -614,7 +635,7 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni </div> </div> <p>The next cell contains an example of adding the mass grid variable, but sampling in log mass. The commented grid variables are examples of the mass ratio sampling and the period sampling.</p> -<div class="nbinput docutils container"> +<div class="nbinput nblast docutils container"> <div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[6]: </pre></div> </div> @@ -627,9 +648,9 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni <span class="n">name</span><span class="o">=</span><span class="s2">"lnm1"</span><span class="p">,</span> <span class="n">longname</span><span class="o">=</span><span class="s2">"Primary mass"</span><span class="p">,</span> <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">150</span><span class="p">],</span> - <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"const(math.log(2), math.log(150), </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"M_1"</span><span class="p">]),</span> + <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"self.const_linear(math.log(2), math.log(150), </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"M_1"</span><span class="p">]),</span> <span class="n">precode</span><span class="o">=</span><span class="s2">"M_1=math.exp(lnm1)"</span><span class="p">,</span> - <span class="n">probdist</span><span class="o">=</span><span class="s2">"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1"</span><span class="p">,</span> + <span class="n">probdist</span><span class="o">=</span><span class="s2">"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1"</span><span class="p">,</span> <span class="n">dphasevol</span><span class="o">=</span><span class="s2">"dlnm1"</span><span class="p">,</span> <span class="n">parameter_name</span><span class="o">=</span><span class="s2">"M_1"</span><span class="p">,</span> <span class="n">condition</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="c1"># Impose a condition on this grid variable. Mostly for a check for yourself</span> @@ -640,8 +661,8 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni <span class="c1"># name="q",</span> <span class="c1"># longname="Mass ratio",</span> <span class="c1"># valuerange=["0.1/M_1", 1],</span> -<span class="c1"># samplerfunc="const(0.1/M_1, 1, {})".format(resolution['q']),</span> -<span class="c1"># probdist="flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])",</span> +<span class="c1"># samplerfunc="self.const_linear(0.1/M_1, 1, {})".format(resolution['q']),</span> +<span class="c1"># probdist="self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])",</span> <span class="c1"># dphasevol="dq",</span> <span class="c1"># precode="M_2 = q * M_1",</span> <span class="c1"># parameter_name="M_2",</span> @@ -653,12 +674,12 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni <span class="c1"># name="log10per", # in days</span> <span class="c1"># longname="log10(Orbital_Period)",</span> <span class="c1"># valuerange=[0.15, 5.5],</span> -<span class="c1"># samplerfunc="const(0.15, 5.5, {})".format(resolution["per"]),</span> +<span class="c1"># samplerfunc="self.const_linear(0.15, 5.5, {})".format(resolution["per"]),</span> <span class="c1"># precode="""orbital_period = 10** log10per</span> <span class="c1"># sep = calc_sep_from_period(M_1, M_2, orbital_period)</span> <span class="c1"># sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)</span> <span class="c1"># sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)""",</span> -<span class="c1"># probdist="sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)",</span> +<span class="c1"># probdist="self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)",</span> <span class="c1"># parameter_name="orbital_period",</span> <span class="c1"># dphasevol="dlog10per",</span> <span class="c1"># )</span> @@ -666,34 +687,6 @@ add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Uni </pre></div> </div> </div> -<div class="nboutput nblast docutils container"> -<div class="prompt empty docutils container"> -</div> -<div class="output_area docutils container"> -<div class="highlight"><pre> -Added grid variable: { - "name": "lnm1", - "parameter_name": "M_1", - "longname": "Primary mass", - "valuerange": [ - 2, - 150 - ], - "samplerfunc": "const(math.log(2), math.log(150), 20)", - "precode": "M_1=math.exp(lnm1)", - "postcode": null, - "probdist": "three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1", - "dphasevol": "dlnm1", - "condition": "", - "gridtype": "centred", - "branchpoint": 0, - "branchcode": null, - "topcode": null, - "bottomcode": null, - "grid_variable_number": 0 -} -</pre></div></div> -</div> </section> <section id="Setting-logging-and-handling-the-output"> <h2>Setting logging and handling the output<a class="headerlink" href="#Setting-logging-and-handling-the-output" title="Permalink to this headline">ïƒ</a></h2> @@ -706,7 +699,7 @@ Added grid variable: { </div> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre> <span></span><span class="c1"># Create custom logging statement: in this case we will log when the star turns into a compact object, and then terminate the evolution.</span> -<span class="n">custom_logging_statement</span> <span class="o">=</span> <span class="s2">"""</span> +<span class="n">custom_logging_code</span> <span class="o">=</span> <span class="s2">"""</span> <span class="s2">if(stardata->star[0].stellar_type >= 13)</span> <span class="s2">{</span> <span class="s2"> if (stardata->model.time < stardata->model.max_evolution_time)</span> @@ -726,7 +719,7 @@ Added grid variable: { <span class="s2">"""</span> <span class="n">example_pop</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> - <span class="n">C_logging_code</span><span class="o">=</span><span class="n">custom_logging_statement</span> + <span class="n">C_logging_code</span><span class="o">=</span><span class="n">custom_logging_code</span> <span class="p">)</span> </pre></div> </div> @@ -813,7 +806,7 @@ if(stardata->star[0].stellar_type >= 13) </div> <div class="output_area docutils container"> <div class="highlight"><pre> -adding: parse_function=<function parse_function at 0x1528ac7290d0> to grid_options +adding: parse_function=<function parse_function at 0x7f2b6ca163a0> to grid_options </pre></div></div> </div> </section> @@ -842,38 +835,41 @@ adding: parse_function=<function parse_function at 0x1528ac7290d0> to grid <div class="output_area docutils container"> <div class="highlight"><pre> adding: verbosity=0 to grid_options +Do dry run? True Doing dry run to calculate total starcount and probability -Generating grid code -Grid has handled 20 stars with a total probability of 0.0444029 -************************************** -* Total starcount for this run is 20 * -* Total probability is 0.0444029 * -************************************** - -Generating grid code -EXAMPLE_COMPACT_OBJECT 4.139293101586e+01 1.29427 8.13626 0.00202467 13 -EXAMPLE_COMPACT_OBJECT 2.802986496151e+01 1.33699 10.0967 0.00152924 13 -EXAMPLE_COMPACT_OBJECT 1.963621764679e+01 1.39754 12.5294 0.00115504 13 -EXAMPLE_COMPACT_OBJECT 1.427601421985e+01 1.47745 15.5483 0.000872405 13 -EXAMPLE_COMPACT_OBJECT 1.094409257247e+01 1.57571 19.2947 0.00065893 13 -EXAMPLE_COMPACT_OBJECT 9.181971798545e+00 1.68748 23.9436 0.000497691 13 -EXAMPLE_COMPACT_OBJECT 7.905335716621e+00 1.77287 29.7128 0.000375908 13 -EXAMPLE_COMPACT_OBJECT 7.451192744924e+00 1.81495 36.872 0.000283924 13 -EXAMPLE_COMPACT_OBJECT 7.396133472739e+00 1.82088 45.7561 0.000214449 13 -EXAMPLE_COMPACT_OBJECT 7.396675941641e+00 1.82123 56.7809 0.000161974 13 -EXAMPLE_COMPACT_OBJECT 7.404641347602e+00 1.82074 70.4621 0.000122339 13 -EXAMPLE_COMPACT_OBJECT 7.444217227690e+00 1.81636 87.4397 9.2403e-05 13 -EXAMPLE_COMPACT_OBJECT 7.453317880232e+00 1.81536 108.508 6.97923e-05 13 -EXAMPLE_COMPACT_OBJECT 7.450828476487e+00 1.81563 134.653 5.27143e-05 13 +Grid has handled 19 stars with a total probability of 0.0443872 +********************************** +* Dry run * +* Total starcount is 19 * +* Total probability is 0.0443872 * +********************************** + +EXAMPLE_COMPACT_OBJECT 3.598268106227e+01 1.30592 8.75988 0.00193614 13 +EXAMPLE_COMPACT_OBJECT 2.436983545111e+01 1.35842 10.9948 0.00144093 13 +EXAMPLE_COMPACT_OBJECT 1.690157944401e+01 1.43124 13.7998 0.00107238 13 +EXAMPLE_COMPACT_OBJECT 1.242397939068e+01 1.52416 17.3205 0.000798096 13 +EXAMPLE_COMPACT_OBJECT 9.756794139032e+00 1.66914 21.7394 0.000593966 13 +EXAMPLE_COMPACT_OBJECT 8.401414766976e+00 1.73729 27.2857 0.000442046 13 +EXAMPLE_COMPACT_OBJECT 7.536373523810e+00 1.80677 34.247 0.000328983 13 +EXAMPLE_COMPACT_OBJECT 7.393982410080e+00 1.82164 42.9844 0.000244839 13 +EXAMPLE_COMPACT_OBJECT 7.396470605248e+00 1.82129 53.9508 0.000182216 13 +Do join of subprocesses ... +EXAMPLE_COMPACT_OBJECT 7.399005684057e+00 1.82041 67.7151 0.00013561 13 +EXAMPLE_COMPACT_OBJECT 7.443375325717e+00 1.81645 84.9909 0.000100925 13 +EXAMPLE_COMPACT_OBJECT 7.451195752942e+00 1.81559 106.674 7.51114e-05 13 +EXAMPLE_COMPACT_OBJECT 7.452661646076e+00 1.81543 133.89 5.59e-05 13 +Joined subprocesses. ********************************************************** -* Population-50fb66cc659c46c8bbc29fe0c8651c2f finished! * -* The total probability is 0.0444029. * -* It took a total of 3.30s to run 20 systems on 2 cores * -* = 6.60s of CPU time. * -* Maximum memory use 433.070 MB * +* Population-ce756bb317f64099a459bf8b55a746ac finished! * +* The total probability is 0.0443872. * +* It took a total of 0.73s to run 19 systems on 2 cores * +* = 1.46s of CPU time. * +* Maximum memory use 293.406 MB * ********************************************************** -There were no errors found in this run. +No failed systems were found in this run. +Do analytics +Added analytics to metadata </pre></div></div> </div> <p>After the run is complete, some technical report on the run is returned. I stored that in <code class="docutils literal notranslate"><span class="pre">analytics</span></code>. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging.</p> @@ -891,7 +887,7 @@ There were no errors found in this run. </div> <div class="output_area docutils container"> <div class="highlight"><pre> -{'population_name': '50fb66cc659c46c8bbc29fe0c8651c2f', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.04440288843805411, 'total_count': 20, 'start_timestamp': 1635760967.3245144, 'end_timestamp': 1635760970.6249793, 'total_mass_run': 684.2544031669784, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0} +{'population_id': 'ce756bb317f64099a459bf8b55a746ac', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.044387171445641534, 'total_count': 19, 'start_timestamp': 1646563001.7193637, 'end_timestamp': 1646563002.4480088, 'time_elapsed': 0.7286450862884521, 'total_mass_run': 649.905447944397, 'total_probability_weighted_mass_run': 0.28133908148630704, 'zero_prob_stars_skipped': 0} </pre></div></div> </div> </section> @@ -912,9 +908,9 @@ There were no errors found in this run. </div> <div class="output_area docutils container"> <div class="highlight"><pre> -Help on method write_binary_c_calls_to_file in module binarycpython.utils.grid: +Help on method write_binary_c_calls_to_file in module binarycpython.utils.population_extensions.dataIO: -write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False) -> None method of binarycpython.utils.grid.Population instance +write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False, encoding='utf-8') -> None method of binarycpython.utils.grid.Population instance Function that loops over the grid code and writes the generated parameters to a file. In the form of a command line call @@ -925,10 +921,6 @@ write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: On default this will write to the datadir, if it exists - Tasks: - - TODO: test this function - - TODO: make sure the binary_c_python .. output file has a unique name - Args: output_dir: (optional, default = None) directory where to write the file to. If custom_options['data_dir'] is present, then that one will be used first, and then the output_dir output_filename: (optional, default = None) filename of the output. If not set it will be called "binary_c_calls.txt" @@ -950,6 +942,7 @@ write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">calls_filename</span><span class="p">,</span> <span class="s1">'r'</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> <span class="nb">print</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()[:</span><span class="mi">4</span><span class="p">]))</span> +<span class="nb">print</span><span class="p">(</span><span class="s2">"(abridged)"</span><span class="p">)</span> </pre></div> </div> </div> @@ -959,24 +952,26 @@ write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: <div class="output_area docutils container"> <div class="highlight"><pre> Generating grid code -Generating grid code -Saving grid code to grid_options -Writing grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py [dry_run = False] -Symlinked grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid-latest2 -Loading grid code function from /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py +Save grid code to grid_options +Write grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py [dry_run = False] +Symlinked grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid-latest2 +Load grid code function from /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py Grid code loaded -Writing binary_c calls to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt -Grid has handled 20 stars with a total probability of 0.0444029 -/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt -binary_c M_1 2.227955577093495 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.010905083645619543 -binary_c M_1 2.7647737053496777 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.00823663875514986 -binary_c M_1 3.430936289925951 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681537 probability 0.0062211552141636295 -binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.004698855121516281 +Writing binary_c calls to /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt +Grid has handled 19 stars with a total probability of 0.0443872 +/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt +binary_c M_1 2.2406484012210224 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.011394572976608001 +binary_c M_1 2.812296769855663 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191117 probability 0.008480166685456411 +binary_c M_1 3.5297876799548944 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.006311182276049824 +binary_c M_1 4.430329401616038 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.004696962123378559 +(abridged) </pre></div></div> </div> </section> <section id="Full-examples-of-population-scripts"> <h2>Full examples of population scripts<a class="headerlink" href="#Full-examples-of-population-scripts" title="Permalink to this headline">ïƒ</a></h2> +<section id="Single-star-population"> +<h3>Single star population<a class="headerlink" href="#Single-star-population" title="Permalink to this headline">ïƒ</a></h3> <p>Below is a full setup for a population of single stars</p> <div class="nbinput docutils container"> <div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[13]: @@ -1089,9 +1084,9 @@ binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbit <span class="n">name</span><span class="o">=</span><span class="s2">"lnm1"</span><span class="p">,</span> <span class="n">longname</span><span class="o">=</span><span class="s2">"Primary mass"</span><span class="p">,</span> <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">150</span><span class="p">],</span> - <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"const(math.log(2), math.log(150), </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"M_1"</span><span class="p">]),</span> + <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"self.const_linear(math.log(2), math.log(150), </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"M_1"</span><span class="p">]),</span> <span class="n">precode</span><span class="o">=</span><span class="s2">"M_1=math.exp(lnm1)"</span><span class="p">,</span> - <span class="n">probdist</span><span class="o">=</span><span class="s2">"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1"</span><span class="p">,</span> + <span class="n">probdist</span><span class="o">=</span><span class="s2">"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1"</span><span class="p">,</span> <span class="n">dphasevol</span><span class="o">=</span><span class="s2">"dlnm1"</span><span class="p">,</span> <span class="n">parameter_name</span><span class="o">=</span><span class="s2">"M_1"</span><span class="p">,</span> <span class="n">condition</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> @@ -1121,47 +1116,58 @@ binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbit </div> <div class="output_area docutils container"> <div class="highlight"><pre> -<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>> +<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>> <<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>> +ok +File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it +ok +ok pre +ok ret +Do dry run? True Doing dry run to calculate total starcount and probability -Generating grid code -Grid has handled 20 stars with a total probability of 0.0444029 -************************************** -* Total starcount for this run is 20 * -* Total probability is 0.0444029 * -************************************** - -Generating grid code +Grid has handled 19 stars with a total probability of 0.0443872 +********************************** +* Dry run * +* Total starcount is 19 * +* Total probability is 0.0443872 * +********************************** + +Do join of subprocesses ... +Joined subprocesses. ********************************************************** -* Population-05e51ba114934b37bab48f1db40b7333 finished! * -* The total probability is 0.0444029. * -* It took a total of 3.46s to run 20 systems on 2 cores * -* = 6.93s of CPU time. * -* Maximum memory use 437.047 MB * +* Population-0fa4c2b8707741a5ab41d209ef95a3a4 finished! * +* The total probability is 0.0443872. * +* It took a total of 0.61s to run 19 systems on 2 cores * +* = 1.23s of CPU time. * +* Maximum memory use 299.531 MB * ********************************************************** -There were no errors found in this run. +No failed systems were found in this run. +Do analytics +Added analytics to metadata time mass zams_mass probability radius stellar_type -4.139293101586e+01 1.29427 8.13626 0.00202467 1.72498e-05 13 -2.802986496151e+01 1.33699 10.0967 0.00152924 1.72498e-05 13 -1.963621764679e+01 1.39754 12.5294 0.00115504 1.72498e-05 13 -1.427601421985e+01 1.47745 15.5483 0.000872405 1.72498e-05 13 -1.094409257247e+01 1.57571 19.2947 0.00065893 1.72498e-05 13 -9.181971798545e+00 1.68748 23.9436 0.000497691 1.72498e-05 13 -7.905335716621e+00 1.77287 29.7128 0.000375908 1.72498e-05 13 -7.451192744924e+00 1.81495 36.872 0.000283924 1.72498e-05 13 -7.396133472739e+00 1.82088 45.7561 0.000214449 1.72498e-05 13 -7.396675941641e+00 1.82123 56.7809 0.000161974 1.72498e-05 13 -7.404641347602e+00 1.82074 70.4621 0.000122339 1.72498e-05 13 -7.444217227690e+00 1.81636 87.4397 9.2403e-05 1.72498e-05 13 -7.453317880232e+00 1.81536 108.508 6.97923e-05 1.72498e-05 13 -7.450828476487e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13 +3.598268106227e+01 1.30592 8.75988 0.00193614 1.72498e-05 13 +2.436983545111e+01 1.35842 10.9948 0.00144093 1.72498e-05 13 +1.690157944401e+01 1.43124 13.7998 0.00107238 1.72498e-05 13 +1.242397939068e+01 1.52416 17.3205 0.000798096 1.72498e-05 13 +9.756794139032e+00 1.66914 21.7394 0.000593966 1.72498e-05 13 +8.401414766976e+00 1.73729 27.2857 0.000442046 1.72498e-05 13 +7.536373523810e+00 1.80677 34.247 0.000328983 1.72498e-05 13 +7.393982410080e+00 1.82164 42.9844 0.000244839 1.72498e-05 13 +7.396470605248e+00 1.82129 53.9508 0.000182216 1.72498e-05 13 +7.399005684057e+00 1.82041 67.7151 0.00013561 1.72498e-05 13 +7.451195752942e+00 1.81559 106.674 7.51114e-05 1.72498e-05 13 +7.443375325717e+00 1.81645 84.9909 0.000100925 1.72498e-05 13 +7.452661646076e+00 1.81543 133.89 5.59e-05 1.72498e-05 13 </pre></div></div> </div> -<p>We can also set up a population that samples biinary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded top be more useful</p> +</section> +<section id="Binary-star-population"> +<h3>Binary star population<a class="headerlink" href="#Binary-star-population" title="Permalink to this headline">ïƒ</a></h3> +<p>We can also set up a population that samples binary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded to be more useful. Also note that we run very little systems in the following example, as its just intended to show how the code works.</p> <div class="nbinput docutils container"> <div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[14]: </pre></div> @@ -1291,9 +1297,9 @@ time mass zams_mass probability radius stellar_type <span class="n">name</span><span class="o">=</span><span class="s2">"lnm1"</span><span class="p">,</span> <span class="n">longname</span><span class="o">=</span><span class="s2">"Primary mass"</span><span class="p">,</span> <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">150</span><span class="p">],</span> - <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"const(math.log(2), math.log(150), </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"M_1"</span><span class="p">]),</span> + <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"self.const_linear(math.log(2), math.log(150), </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"M_1"</span><span class="p">]),</span> <span class="n">precode</span><span class="o">=</span><span class="s2">"M_1=math.exp(lnm1)"</span><span class="p">,</span> - <span class="n">probdist</span><span class="o">=</span><span class="s2">"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1"</span><span class="p">,</span> + <span class="n">probdist</span><span class="o">=</span><span class="s2">"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1"</span><span class="p">,</span> <span class="n">dphasevol</span><span class="o">=</span><span class="s2">"dlnm1"</span><span class="p">,</span> <span class="n">parameter_name</span><span class="o">=</span><span class="s2">"M_1"</span><span class="p">,</span> <span class="n">condition</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="c1"># Impose a condition on this grid variable. Mostly for a check for yourself</span> @@ -1304,8 +1310,8 @@ time mass zams_mass probability radius stellar_type <span class="n">name</span><span class="o">=</span><span class="s2">"q"</span><span class="p">,</span> <span class="n">longname</span><span class="o">=</span><span class="s2">"Mass ratio"</span><span class="p">,</span> <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span><span class="s2">"0.1/M_1"</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> - <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"const(0.1/M_1, 1, </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s1">'q'</span><span class="p">]),</span> - <span class="n">probdist</span><span class="o">=</span><span class="s2">"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])"</span><span class="p">,</span> + <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"self.const_linear(0.1/M_1, 1, </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s1">'q'</span><span class="p">]),</span> + <span class="n">probdist</span><span class="o">=</span><span class="s2">"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])"</span><span class="p">,</span> <span class="n">dphasevol</span><span class="o">=</span><span class="s2">"dq"</span><span class="p">,</span> <span class="n">precode</span><span class="o">=</span><span class="s2">"M_2 = q * M_1"</span><span class="p">,</span> <span class="n">parameter_name</span><span class="o">=</span><span class="s2">"M_2"</span><span class="p">,</span> @@ -1317,12 +1323,12 @@ time mass zams_mass probability radius stellar_type <span class="n">name</span><span class="o">=</span><span class="s2">"log10per"</span><span class="p">,</span> <span class="c1"># in days</span> <span class="n">longname</span><span class="o">=</span><span class="s2">"log10(Orbital_Period)"</span><span class="p">,</span> <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span><span class="mf">0.15</span><span class="p">,</span> <span class="mf">5.5</span><span class="p">],</span> - <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"const(0.15, 5.5, </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"per"</span><span class="p">]),</span> + <span class="n">samplerfunc</span><span class="o">=</span><span class="s2">"self.const_linear(0.15, 5.5, </span><span class="si">{}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">resolution</span><span class="p">[</span><span class="s2">"per"</span><span class="p">]),</span> <span class="n">precode</span><span class="o">=</span><span class="s2">"""orbital_period = 10** log10per</span> <span class="s2">sep = calc_sep_from_period(M_1, M_2, orbital_period)</span> <span class="s2">sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)</span> <span class="s2">sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)"""</span><span class="p">,</span> - <span class="n">probdist</span><span class="o">=</span><span class="s2">"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)"</span><span class="p">,</span> + <span class="n">probdist</span><span class="o">=</span><span class="s2">"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)"</span><span class="p">,</span> <span class="n">parameter_name</span><span class="o">=</span><span class="s2">"orbital_period"</span><span class="p">,</span> <span class="n">dphasevol</span><span class="o">=</span><span class="s2">"dlog10per"</span><span class="p">,</span> <span class="p">)</span> @@ -1350,49 +1356,47 @@ time mass zams_mass probability radius stellar_type </div> <div class="output_area docutils container"> <div class="highlight"><pre> -<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>> +<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>> <<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>> +ok +File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it +ok +ok pre +ok ret +Do dry run? True Doing dry run to calculate total starcount and probability -Generating grid code -Grid has handled 27 stars with a total probability of 0.0248684 -************************************** -* Total starcount for this run is 27 * -* Total probability is 0.0248684 * -************************************** - -Generating grid code +Grid has handled 8 stars with a total probability of 0.0211592 +********************************** +* Dry run * +* Total starcount is 8 * +* Total probability is 0.0211592 * +********************************** + +Do join of subprocesses ... +Joined subprocesses. ********************************************************** -* Population-8bc1eafea1c34b05894c1618639d8c37 finished! * -* The total probability is 0.0248684. * -* It took a total of 16.10s to run 27 systems on 2 cores * -* = 32.20s of CPU time. * -* Maximum memory use 437.695 MB * +* Population-0eb5c0c9abd34607a6ee060b26a7e32f finished! * +* The total probability is 0.0211592. * +* It took a total of 0.84s to run 8 systems on 2 cores * +* = 1.68s of CPU time. * +* Maximum memory use 300.125 MB * ********************************************************** -There were no errors found in this run. +No failed systems were found in this run. +Do analytics +Added analytics to metadata time mass_1 zams_mass_1 mass_2 zams_mass_2 stellar_type_1 prev_stellar_type_1 stellar_type_2 prev_stellar_type_2 metallicity probability -1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487 -1.935920339886e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487 -2.123794969278e+01 1.30902 17.3205 1.58518 8.71025 13 13 13 5 0.02 0.000287968 -3.579099761269e+01 1.52414 17.3205 1.30642 8.71025 13 13 13 5 0.02 0.000220016 -1.674063083432e+01 1.29457 17.3205 0 14.4504 13 13 15 2 0.02 0.000498487 -1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016 -1.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968 -1.367065497322e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-05 -1.772169325355e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05 -2.021960493499e+01 1.82061 73.0434 1.39205 12.2572 13 13 13 5 0.02 3.38788e-05 -9.012246630357e+00 1.81529 73.0434 0 36.5717 13 8 15 15 0.02 7.67586e-05 -7.462779538274e+00 1.82255 73.0434 1.81499 36.5717 13 13 13 8 0.02 3.38788e-05 -1.030499912298e+01 1.80592 73.0434 1.81066 36.5717 13 13 13 8 0.02 4.43422e-05 -9.823059079115e+00 2.43711 73.0434 1.81689 60.8862 14 14 13 8 0.02 7.67586e-05 -7.394722435913e+00 1.79092 73.0434 1.79092 60.8862 13 8 13 8 0.02 4.43422e-05 -7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05 +1.378266748188e+01 1.66293 50.9713 1.78767 12.8178 13 13 13 8 0.02 0.000339963 +1.817608462595e+01 1.82104 50.9713 1.41436 12.8178 13 13 13 5 0.02 0.000193036 +7.422997711686e+00 1.82479 50.9713 1.82171 38.2535 13 13 13 8 0.02 0.000193036 +1.205711924468e+01 1.73765 50.9713 0 38.2535 13 13 15 8 0.02 0.000339963 </pre></div></div> </div> </section> +</section> </section> @@ -1414,9 +1418,9 @@ time mass_1 zams_mass_1 mass_2 zams_mass_2 stellar_type_1 prev_stellar_type_1 st provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/notebook_population.ipynb b/docs/build/html/examples/notebook_population.ipynb index 760b1480e..ebc19cff0 100644 --- a/docs/build/html/examples/notebook_population.ipynb +++ b/docs/build/html/examples/notebook_population.ipynb @@ -25,7 +25,7 @@ "import os\n", "\n", "from binarycpython.utils.custom_logging_functions import temp_dir\n", - "from binarycpython.utils.grid import Population\n", + "from binarycpython import Population\n", "\n", "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n", "\n", @@ -58,13 +58,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: M_1=10 to BSE_options\n", - "adding: orbital_period=45000000080 to BSE_options\n", - "adding: max_evolution_time=15000 to BSE_options\n", - "adding: eccentricity=0.02 to BSE_options\n", "adding: num_cores=2 to grid_options\n", - "adding: tmp_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "adding: tmp_dir=/tmp/binary_c_python-david/notebooks/notebook_population to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", "1\n", "example_pop.dat\n", @@ -139,13 +135,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n" + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n" ] }, { "data": { "text/plain": [ - "'/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'" + "'/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz'" ] }, "execution_count": 3, @@ -185,9 +185,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method add_grid_variable in module binarycpython.utils.grid:\n", + "Help on method add_grid_variable in module binarycpython.utils.population_extensions.gridcode:\n", "\n", - "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int], gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None) -> None method of binarycpython.utils.grid.Population instance\n", + "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int] = -1, gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None, index: Optional[int] = None, dry_parallel: Optional[bool] = False) -> None method of binarycpython.utils.grid.Population instance\n", " Function to add grid variables to the grid_options.\n", " \n", " The execution of the grid generation will be through a nested for loop.\n", @@ -198,17 +198,15 @@ " beware that if you insert some destructive piece of code, it will be executed anyway.\n", " Use at own risk.\n", " \n", - " Tasks:\n", - " - TODO: Fix this complex function.\n", - " \n", " Args:\n", " name:\n", " name of parameter used in the grid Python code.\n", " This is evaluated as a parameter and you can use it throughout\n", " the rest of the function\n", " \n", - " Examples:\n", - " name = 'lnm1'\n", + " Examples::\n", + " \n", + " name = 'lnM_1'\n", " \n", " parameter_name:\n", " name of the parameter in binary_c\n", @@ -223,47 +221,66 @@ " longname:\n", " Long name of parameter\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " longname = 'Primary mass'\n", + " \n", " range:\n", " Range of values to take. Does not get used really, the samplerfunc is used to\n", " get the values from\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " range = [math.log(m_min), math.log(m_max)]\n", + " \n", " samplerfunc:\n", " Function returning a list or numpy array of samples spaced appropriately.\n", " You can either use a real function, or a string representation of a function call.\n", " \n", - " Examples:\n", - " samplerfunc = \"const(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", + " Examples::\n", + " \n", + " samplerfunc = \"self.const_linear(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", " \n", " precode:\n", " Extra room for some code. This code will be evaluated within the loop of the\n", - " sampling function (i.e. a value for lnm1 is chosen already)\n", + " sampling function (i.e. a value for lnM_1 is chosen already)\n", + " \n", + " Examples::\n", + " \n", + " precode = 'M_1=math.exp(lnM_1);'\n", " \n", - " Examples:\n", - " precode = 'M_1=math.exp(lnm1);'\n", " postcode:\n", " Code executed after the probability is calculated.\n", + " \n", " probdist:\n", " Function determining the probability that gets assigned to the sampled parameter\n", " \n", - " Examples:\n", - " probdist = 'Kroupa2001(M_1)*M_1'\n", + " Examples::\n", + " \n", + " probdist = 'self.Kroupa2001(M_1)*M_1'\n", + " \n", " dphasevol:\n", " part of the parameter space that the total probability is calculated with. Put to -1\n", " if you want to ignore any dphasevol calculations and set the value to 1\n", - " Examples:\n", - " dphasevol = 'dlnm1'\n", + " \n", + " Examples::\n", + " \n", + " dphasevol = 'dlnM_1'\n", + " \n", " condition:\n", " condition that has to be met in order for the grid generation to continue\n", - " Examples:\n", - " condition = 'self.grid_options['binary']==1'\n", + " \n", + " Examples::\n", + " \n", + " condition = \"self.grid_options['binary']==1\"\n", + " \n", " gridtype:\n", " Method on how the value range is sampled. Can be either 'edge' (steps starting at\n", " the lower edge of the value range) or 'centred'\n", - " (steps starting at lower edge + 0.5 * stepsize).\n", + " (steps starting at ``lower edge + 0.5 * stepsize``).\n", + " \n", + " dry_parallel:\n", + " If True, try to parallelize this variable in dry runs.\n", " \n", " topcode:\n", " Code added at the very top of the block.\n", @@ -313,35 +330,7 @@ "execution_count": 6, "id": "47979841-2c26-4b26-8945-603d013dc93a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Added grid variable: {\n", - " \"name\": \"lnm1\",\n", - " \"parameter_name\": \"M_1\",\n", - " \"longname\": \"Primary mass\",\n", - " \"valuerange\": [\n", - " 2,\n", - " 150\n", - " ],\n", - " \"samplerfunc\": \"const(math.log(2), math.log(150), 20)\",\n", - " \"precode\": \"M_1=math.exp(lnm1)\",\n", - " \"postcode\": null,\n", - " \"probdist\": \"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", - " \"dphasevol\": \"dlnm1\",\n", - " \"condition\": \"\",\n", - " \"gridtype\": \"centred\",\n", - " \"branchpoint\": 0,\n", - " \"branchcode\": null,\n", - " \"topcode\": null,\n", - " \"bottomcode\": null,\n", - " \"grid_variable_number\": 0\n", - "}\n" - ] - } - ], + "outputs": [], "source": [ "# Add grid variables\n", "resolution = {\"M_1\": 20}\n", @@ -351,9 +340,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -364,8 +353,8 @@ "# name=\"q\",\n", "# longname=\"Mass ratio\",\n", "# valuerange=[\"0.1/M_1\", 1],\n", - "# samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - "# probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + "# samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + "# probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", "# dphasevol=\"dq\",\n", "# precode=\"M_2 = q * M_1\",\n", "# parameter_name=\"M_2\",\n", @@ -377,12 +366,12 @@ "# name=\"log10per\", # in days\n", "# longname=\"log10(Orbital_Period)\",\n", "# valuerange=[0.15, 5.5],\n", - "# samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + "# samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", "# precode=\"\"\"orbital_period = 10** log10per\n", "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - "# probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + "# probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", "# parameter_name=\"orbital_period\",\n", "# dphasevol=\"dlog10per\",\n", "# )\n" @@ -434,7 +423,7 @@ ], "source": [ "# Create custom logging statement: in this case we will log when the star turns into a compact object, and then terminate the evolution.\n", - "custom_logging_statement = \"\"\"\n", + "custom_logging_code = \"\"\"\n", "if(stardata->star[0].stellar_type >= 13) \n", "{\n", " if (stardata->model.time < stardata->model.max_evolution_time)\n", @@ -454,7 +443,7 @@ "\"\"\"\n", "\n", "example_pop.set(\n", - " C_logging_code=custom_logging_statement\n", + " C_logging_code=custom_logging_code\n", ")" ] }, @@ -476,7 +465,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function parse_function at 0x1528ac7290d0> to grid_options\n" + "adding: parse_function=<function parse_function at 0x7f2b6ca163a0> to grid_options\n" ] } ], @@ -552,38 +541,41 @@ "output_type": "stream", "text": [ "adding: verbosity=0 to grid_options\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", - "EXAMPLE_COMPACT_OBJECT 4.139293101586e+01 1.29427 8.13626 0.00202467 13\n", - "EXAMPLE_COMPACT_OBJECT 2.802986496151e+01 1.33699 10.0967 0.00152924 13\n", - "EXAMPLE_COMPACT_OBJECT 1.963621764679e+01 1.39754 12.5294 0.00115504 13\n", - "EXAMPLE_COMPACT_OBJECT 1.427601421985e+01 1.47745 15.5483 0.000872405 13\n", - "EXAMPLE_COMPACT_OBJECT 1.094409257247e+01 1.57571 19.2947 0.00065893 13\n", - "EXAMPLE_COMPACT_OBJECT 9.181971798545e+00 1.68748 23.9436 0.000497691 13\n", - "EXAMPLE_COMPACT_OBJECT 7.905335716621e+00 1.77287 29.7128 0.000375908 13\n", - "EXAMPLE_COMPACT_OBJECT 7.451192744924e+00 1.81495 36.872 0.000283924 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396133472739e+00 1.82088 45.7561 0.000214449 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396675941641e+00 1.82123 56.7809 0.000161974 13\n", - "EXAMPLE_COMPACT_OBJECT 7.404641347602e+00 1.82074 70.4621 0.000122339 13\n", - "EXAMPLE_COMPACT_OBJECT 7.444217227690e+00 1.81636 87.4397 9.2403e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.453317880232e+00 1.81536 108.508 6.97923e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.450828476487e+00 1.81563 134.653 5.27143e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 3.598268106227e+01 1.30592 8.75988 0.00193614 13\n", + "EXAMPLE_COMPACT_OBJECT 2.436983545111e+01 1.35842 10.9948 0.00144093 13\n", + "EXAMPLE_COMPACT_OBJECT 1.690157944401e+01 1.43124 13.7998 0.00107238 13\n", + "EXAMPLE_COMPACT_OBJECT 1.242397939068e+01 1.52416 17.3205 0.000798096 13\n", + "EXAMPLE_COMPACT_OBJECT 9.756794139032e+00 1.66914 21.7394 0.000593966 13\n", + "EXAMPLE_COMPACT_OBJECT 8.401414766976e+00 1.73729 27.2857 0.000442046 13\n", + "EXAMPLE_COMPACT_OBJECT 7.536373523810e+00 1.80677 34.247 0.000328983 13\n", + "EXAMPLE_COMPACT_OBJECT 7.393982410080e+00 1.82164 42.9844 0.000244839 13\n", + "EXAMPLE_COMPACT_OBJECT 7.396470605248e+00 1.82129 53.9508 0.000182216 13\n", + "Do join of subprocesses ...\n", + "EXAMPLE_COMPACT_OBJECT 7.399005684057e+00 1.82041 67.7151 0.00013561 13\n", + "EXAMPLE_COMPACT_OBJECT 7.443375325717e+00 1.81645 84.9909 0.000100925 13\n", + "EXAMPLE_COMPACT_OBJECT 7.451195752942e+00 1.81559 106.674 7.51114e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 7.452661646076e+00 1.81543 133.89 5.59e-05 13\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-50fb66cc659c46c8bbc29fe0c8651c2f finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.30s to run 20 systems on 2 cores *\n", - "* = 6.60s of CPU time. *\n", - "* Maximum memory use 433.070 MB *\n", + "* Population-ce756bb317f64099a459bf8b55a746ac finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.73s to run 19 systems on 2 cores *\n", + "* = 1.46s of CPU time. *\n", + "* Maximum memory use 293.406 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n" + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n" ] } ], @@ -614,7 +606,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'population_name': '50fb66cc659c46c8bbc29fe0c8651c2f', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.04440288843805411, 'total_count': 20, 'start_timestamp': 1635760967.3245144, 'end_timestamp': 1635760970.6249793, 'total_mass_run': 684.2544031669784, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n" + "{'population_id': 'ce756bb317f64099a459bf8b55a746ac', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.044387171445641534, 'total_count': 19, 'start_timestamp': 1646563001.7193637, 'end_timestamp': 1646563002.4480088, 'time_elapsed': 0.7286450862884521, 'total_mass_run': 649.905447944397, 'total_probability_weighted_mass_run': 0.28133908148630704, 'zero_prob_stars_skipped': 0}\n" ] } ], @@ -642,9 +634,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method write_binary_c_calls_to_file in module binarycpython.utils.grid:\n", + "Help on method write_binary_c_calls_to_file in module binarycpython.utils.population_extensions.dataIO:\n", "\n", - "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False) -> None method of binarycpython.utils.grid.Population instance\n", + "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False, encoding='utf-8') -> None method of binarycpython.utils.grid.Population instance\n", " Function that loops over the grid code and writes the generated parameters to a file.\n", " In the form of a command line call\n", " \n", @@ -655,10 +647,6 @@ " \n", " On default this will write to the datadir, if it exists\n", " \n", - " Tasks:\n", - " - TODO: test this function\n", - " - TODO: make sure the binary_c_python .. output file has a unique name\n", - " \n", " Args:\n", " output_dir: (optional, default = None) directory where to write the file to. If custom_options['data_dir'] is present, then that one will be used first, and then the output_dir\n", " output_filename: (optional, default = None) filename of the output. If not set it will be called \"binary_c_calls.txt\"\n", @@ -685,19 +673,19 @@ "output_type": "stream", "text": [ "Generating grid code\n", - "Generating grid code\n", - "Saving grid code to grid_options\n", - "Writing grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py [dry_run = False]\n", - "Symlinked grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid-latest2 \n", - "Loading grid code function from /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py\n", + "Save grid code to grid_options\n", + "Write grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py [dry_run = False]\n", + "Symlinked grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid-latest2 \n", + "Load grid code function from /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py\n", "Grid code loaded\n", - "Writing binary_c calls to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "binary_c M_1 2.227955577093495 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.010905083645619543\n", - "binary_c M_1 2.7647737053496777 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.00823663875514986\n", - "binary_c M_1 3.430936289925951 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681537 probability 0.0062211552141636295\n", - "binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.004698855121516281\n" + "Writing binary_c calls to /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "binary_c M_1 2.2406484012210224 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.011394572976608001\n", + "binary_c M_1 2.812296769855663 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191117 probability 0.008480166685456411\n", + "binary_c M_1 3.5297876799548944 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.006311182276049824\n", + "binary_c M_1 4.430329401616038 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.004696962123378559\n", + "(abridged)\n" ] } ], @@ -707,7 +695,8 @@ "print(calls_filename)\n", "\n", "with open(calls_filename, 'r') as f:\n", - " print('\\n'.join(f.read().splitlines()[:4]))" + " print('\\n'.join(f.read().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -715,7 +704,15 @@ "id": "60359eb1-4d0c-4d2d-8265-ec5171b944a2", "metadata": {}, "source": [ - "## Full examples of population scripts\n", + "## Full examples of population scripts" + ] + }, + { + "cell_type": "markdown", + "id": "1ee279d6-e120-4aef-9e57-845e534f5c6a", + "metadata": {}, + "source": [ + "### Single star population\n", "Below is a full setup for a population of single stars" ] }, @@ -729,43 +726,51 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-05e51ba114934b37bab48f1db40b7333 finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.46s to run 20 systems on 2 cores *\n", - "* = 6.93s of CPU time. *\n", - "* Maximum memory use 437.047 MB *\n", + "* Population-0fa4c2b8707741a5ab41d209ef95a3a4 finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.61s to run 19 systems on 2 cores *\n", + "* = 1.23s of CPU time. *\n", + "* Maximum memory use 299.531 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass zams_mass probability radius stellar_type\n", - "4.139293101586e+01 1.29427 8.13626 0.00202467 1.72498e-05 13\n", - "2.802986496151e+01 1.33699 10.0967 0.00152924 1.72498e-05 13\n", - "1.963621764679e+01 1.39754 12.5294 0.00115504 1.72498e-05 13\n", - "1.427601421985e+01 1.47745 15.5483 0.000872405 1.72498e-05 13\n", - "1.094409257247e+01 1.57571 19.2947 0.00065893 1.72498e-05 13\n", - "9.181971798545e+00 1.68748 23.9436 0.000497691 1.72498e-05 13\n", - "7.905335716621e+00 1.77287 29.7128 0.000375908 1.72498e-05 13\n", - "7.451192744924e+00 1.81495 36.872 0.000283924 1.72498e-05 13\n", - "7.396133472739e+00 1.82088 45.7561 0.000214449 1.72498e-05 13\n", - "7.396675941641e+00 1.82123 56.7809 0.000161974 1.72498e-05 13\n", - "7.404641347602e+00 1.82074 70.4621 0.000122339 1.72498e-05 13\n", - "7.444217227690e+00 1.81636 87.4397 9.2403e-05 1.72498e-05 13\n", - "7.453317880232e+00 1.81536 108.508 6.97923e-05 1.72498e-05 13\n", - "7.450828476487e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n", + "3.598268106227e+01 1.30592 8.75988 0.00193614 1.72498e-05 13\n", + "2.436983545111e+01 1.35842 10.9948 0.00144093 1.72498e-05 13\n", + "1.690157944401e+01 1.43124 13.7998 0.00107238 1.72498e-05 13\n", + "1.242397939068e+01 1.52416 17.3205 0.000798096 1.72498e-05 13\n", + "9.756794139032e+00 1.66914 21.7394 0.000593966 1.72498e-05 13\n", + "8.401414766976e+00 1.73729 27.2857 0.000442046 1.72498e-05 13\n", + "7.536373523810e+00 1.80677 34.247 0.000328983 1.72498e-05 13\n", + "7.393982410080e+00 1.82164 42.9844 0.000244839 1.72498e-05 13\n", + "7.396470605248e+00 1.82129 53.9508 0.000182216 1.72498e-05 13\n", + "7.399005684057e+00 1.82041 67.7151 0.00013561 1.72498e-05 13\n", + "7.451195752942e+00 1.81559 106.674 7.51114e-05 1.72498e-05 13\n", + "7.443375325717e+00 1.81645 84.9909 0.000100925 1.72498e-05 13\n", + "7.452661646076e+00 1.81543 133.89 5.59e-05 1.72498e-05 13\n", "\n" ] } @@ -877,9 +882,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\",\n", @@ -908,7 +913,8 @@ "id": "c2ab0979-6575-481d-9c1c-ca98517b2437", "metadata": {}, "source": [ - "We can also set up a population that samples biinary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded top be more useful" + "### Binary star population\n", + "We can also set up a population that samples binary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded to be more useful. Also note that we run very little systems in the following example, as its just intended to show how the code works." ] }, { @@ -921,45 +927,42 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 27 stars with a total probability of 0.0248684\n", - "**************************************\n", - "* Total starcount for this run is 27 *\n", - "* Total probability is 0.0248684 *\n", - "**************************************\n", + "Grid has handled 8 stars with a total probability of 0.0211592\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 8 *\n", + "* Total probability is 0.0211592 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-8bc1eafea1c34b05894c1618639d8c37 finished! *\n", - "* The total probability is 0.0248684. *\n", - "* It took a total of 16.10s to run 27 systems on 2 cores *\n", - "* = 32.20s of CPU time. *\n", - "* Maximum memory use 437.695 MB *\n", + "* Population-0eb5c0c9abd34607a6ee060b26a7e32f finished! *\n", + "* The total probability is 0.0211592. *\n", + "* It took a total of 0.84s to run 8 systems on 2 cores *\n", + "* = 1.68s of CPU time. *\n", + "* Maximum memory use 300.125 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass_1 zams_mass_1 mass_2 zams_mass_2 stellar_type_1 prev_stellar_type_1 stellar_type_2 prev_stellar_type_2 metallicity probability\n", - "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n", - "1.935920339886e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n", - "2.123794969278e+01 1.30902 17.3205 1.58518 8.71025 13 13 13 5 0.02 0.000287968\n", - "3.579099761269e+01 1.52414 17.3205 1.30642 8.71025 13 13 13 5 0.02 0.000220016\n", - "1.674063083432e+01 1.29457 17.3205 0 14.4504 13 13 15 2 0.02 0.000498487\n", - "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n", - "1.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n", - "1.367065497322e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-05\n", - "1.772169325355e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n", - "2.021960493499e+01 1.82061 73.0434 1.39205 12.2572 13 13 13 5 0.02 3.38788e-05\n", - "9.012246630357e+00 1.81529 73.0434 0 36.5717 13 8 15 15 0.02 7.67586e-05\n", - "7.462779538274e+00 1.82255 73.0434 1.81499 36.5717 13 13 13 8 0.02 3.38788e-05\n", - "1.030499912298e+01 1.80592 73.0434 1.81066 36.5717 13 13 13 8 0.02 4.43422e-05\n", - "9.823059079115e+00 2.43711 73.0434 1.81689 60.8862 14 14 13 8 0.02 7.67586e-05\n", - "7.394722435913e+00 1.79092 73.0434 1.79092 60.8862 13 8 13 8 0.02 4.43422e-05\n", - "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n", + "1.378266748188e+01 1.66293 50.9713 1.78767 12.8178 13 13 13 8 0.02 0.000339963\n", + "1.817608462595e+01 1.82104 50.9713 1.41436 12.8178 13 13 13 5 0.02 0.000193036\n", + "7.422997711686e+00 1.82479 50.9713 1.82171 38.2535 13 13 13 8 0.02 0.000193036\n", + "1.205711924468e+01 1.73765 50.9713 0 38.2535 13 13 15 8 0.02 0.000339963\n", "\n" ] } @@ -1089,9 +1092,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -1102,8 +1105,8 @@ " name=\"q\",\n", " longname=\"Mass ratio\",\n", " valuerange=[\"0.1/M_1\", 1],\n", - " samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - " probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + " samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + " probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", " dphasevol=\"dq\",\n", " precode=\"M_2 = q * M_1\",\n", " parameter_name=\"M_2\",\n", @@ -1115,12 +1118,12 @@ " name=\"log10per\", # in days\n", " longname=\"log10(Orbital_Period)\",\n", " valuerange=[0.15, 5.5],\n", - " samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + " samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", " precode=\"\"\"orbital_period = 10** log10per\n", "sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - " probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + " probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", " parameter_name=\"orbital_period\",\n", " dphasevol=\"dlog10per\",\n", ")\n", @@ -1145,7 +1148,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1159,7 +1162,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/build/html/examples/notebook_solar_system.html b/docs/build/html/examples/notebook_solar_system.html index 87db59307..756a185e7 100644 --- a/docs/build/html/examples/notebook_solar_system.html +++ b/docs/build/html/examples/notebook_solar_system.html @@ -614,9 +614,9 @@ div.rendered_html tbody tr:hover { provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/old/basic_example.html b/docs/build/html/examples/old/basic_example.html index 9404e63f3..bd9957495 100644 --- a/docs/build/html/examples/old/basic_example.html +++ b/docs/build/html/examples/old/basic_example.html @@ -453,9 +453,9 @@ div.rendered_html tbody tr:hover { provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/examples/old/workshop_example_notebook.html b/docs/build/html/examples/old/workshop_example_notebook.html index a96e0af0f..55957aa98 100644 --- a/docs/build/html/examples/old/workshop_example_notebook.html +++ b/docs/build/html/examples/old/workshop_example_notebook.html @@ -892,9 +892,9 @@ Took 14.214274644851685s provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/functions.html b/docs/build/html/functions.html index 8c0e5679d..793a0acc5 100644 --- a/docs/build/html/functions.html +++ b/docs/build/html/functions.html @@ -212,6 +212,12 @@ useful functions for the user</p> <dd><p>Function to check whether the script is running from a shell</p> </dd></dl> +<dl class="py function"> +<dt class="sig sig-object py" id="binarycpython.utils.functions.command_string_from_list"> +<span class="sig-prename descclassname"><span class="pre">binarycpython.utils.functions.</span></span><span class="sig-name descname"><span class="pre">command_string_from_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">list</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#command_string_from_list"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.functions.command_string_from_list" title="Permalink to this definition">ïƒ</a></dt> +<dd><p>Given a list, turn it into a quoted command string</p> +</dd></dl> + <dl class="py function"> <dt class="sig sig-object py" id="binarycpython.utils.functions.conv_time_units"> <span class="sig-prename descclassname"><span class="pre">binarycpython.utils.functions.</span></span><span class="sig-name descname"><span class="pre">conv_time_units</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">t</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#conv_time_units"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.functions.conv_time_units" title="Permalink to this definition">ïƒ</a></dt> @@ -601,6 +607,12 @@ the help function to get as much information as possible.</p> </dl> </dd></dl> +<dl class="py function"> +<dt class="sig sig-object py" id="binarycpython.utils.functions.quotewrap"> +<span class="sig-prename descclassname"><span class="pre">binarycpython.utils.functions.</span></span><span class="sig-name descname"><span class="pre">quotewrap</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">list</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#quotewrap"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.functions.quotewrap" title="Permalink to this definition">ïƒ</a></dt> +<dd><p>Given a list, wrap each item in double quotes and return the new list</p> +</dd></dl> + <dl class="py function"> <dt class="sig sig-object py" id="binarycpython.utils.functions.remove_file"> <span class="sig-prename descclassname"><span class="pre">binarycpython.utils.functions.</span></span><span class="sig-name descname"><span class="pre">remove_file</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">file</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbosity</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#remove_file"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.functions.remove_file" title="Permalink to this definition">ïƒ</a></dt> @@ -720,9 +732,9 @@ of all the binary_c parameters.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index e34c0ea2e..600fdd60a 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -90,6 +90,7 @@ | <a href="#N"><strong>N</strong></a> | <a href="#O"><strong>O</strong></a> | <a href="#P"><strong>P</strong></a> + | <a href="#Q"><strong>Q</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> | <a href="#T"><strong>T</strong></a> @@ -366,6 +367,8 @@ <li><a href="grid.html#binarycpython.utils.grid.Population.clean">clean() (binarycpython.utils.grid.Population method)</a> </li> <li><a href="plot_functions.html#binarycpython.utils.plot_functions.color_by_index">color_by_index() (in module binarycpython.utils.plot_functions)</a> +</li> + <li><a href="functions.html#binarycpython.utils.functions.command_string_from_list">command_string_from_list() (in module binarycpython.utils.functions)</a> </li> <li><a href="custom_logging_functions.html#binarycpython.utils.custom_logging_functions.compile_shared_lib">compile_shared_lib() (in module binarycpython.utils.custom_logging_functions)</a> </li> @@ -376,11 +379,11 @@ <li><a href="population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condor_check_requirements">condor_check_requirements() (binarycpython.utils.population_extensions.condor.condor method)</a> </li> <li><a href="population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condor_dirs">condor_dirs() (binarycpython.utils.population_extensions.condor.condor method)</a> -</li> - <li><a href="population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condor_grid">condor_grid() (binarycpython.utils.population_extensions.condor.condor method)</a> </li> </ul></td> <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condor_grid">condor_grid() (binarycpython.utils.population_extensions.condor.condor method)</a> +</li> <li><a href="population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condor_outfile">condor_outfile() (binarycpython.utils.population_extensions.condor.condor method)</a> </li> <li><a href="population_extensions/condor.html#binarycpython.utils.population_extensions.condor.condor.condor_queue_stats">condor_queue_stats() (binarycpython.utils.population_extensions.condor.condor method)</a> @@ -594,6 +597,8 @@ <li><a href="population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_id_from_dir">HPC_id_from_dir() (binarycpython.utils.population_extensions.HPC.HPC method)</a> </li> <li><a href="population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_job">HPC_job() (binarycpython.utils.population_extensions.HPC.HPC method)</a> +</li> + <li><a href="population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_job_id_range">HPC_job_id_range() (binarycpython.utils.population_extensions.HPC.HPC method)</a> </li> <li><a href="population_extensions/HPC.html#binarycpython.utils.population_extensions.HPC.HPC.HPC_job_task">HPC_job_task() (binarycpython.utils.population_extensions.HPC.HPC method)</a> </li> @@ -887,6 +892,14 @@ </ul></td> </tr></table> +<h2 id="Q">Q</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="functions.html#binarycpython.utils.functions.quotewrap">quotewrap() (in module binarycpython.utils.functions)</a> +</li> + </ul></td> +</tr></table> + <h2 id="R">R</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%; vertical-align: top;"><ul> @@ -1074,9 +1087,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/grid.html b/docs/build/html/grid.html index eab0d95e4..0a83dfaa8 100644 --- a/docs/build/html/grid.html +++ b/docs/build/html/grid.html @@ -255,7 +255,7 @@ simulation_<date+time>_settings.json will be created</p></li> <dl class="py method"> <dt class="sig sig-object py" id="binarycpython.utils.grid.Population.jobID"> <span class="sig-name descname"><span class="pre">jobID</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.jobID"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.jobID" title="Permalink to this definition">ïƒ</a></dt> -<dd><p>Function to return the job ID number of this process</p> +<dd><p>Function to return the job ID number of this process as a string.</p> <p>Normal processes return their process ID (PID) HPC processes return whatever HPC_jobID() gives.</p> </dd></dl> @@ -376,9 +376,9 @@ in the self.grid_options</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/grid_options_descriptions.html b/docs/build/html/grid_options_descriptions.html index ea4a6ed21..3278ba4b7 100644 --- a/docs/build/html/grid_options_descriptions.html +++ b/docs/build/html/grid_options_descriptions.html @@ -104,7 +104,7 @@ <section id="population-grid-code-options"> <h1>Population grid code options<a class="headerlink" href="#population-grid-code-options" title="Permalink to this headline">ïƒ</a></h1> <p>The following chapter contains all grid code options, along with their descriptions -There are 28 options that are not described yet.</p> +There are 29 options that are not described yet.</p> <section id="public-options"> <h2>Public options<a class="headerlink" href="#public-options" title="Permalink to this headline">ïƒ</a></h2> <p>The following options are meant to be changed by the user.</p> @@ -346,6 +346,9 @@ There are 28 options that are not described yet.</p> <div class="line"><strong>save_snapshots</strong>: No description available yet</div> </div> <div class="line-block"> +<div class="line"><strong>skip_before</strong>: No description available yet</div> +</div> +<div class="line-block"> <div class="line"><strong>slurm</strong>: Integer flag used to control Slurm jobs. Default is 0 which means no Slurm. 1 means launch Slurm jobs. Do not manually set this to 2 (run Slurm jobs) or 3 (join Slurm job data) unless you know what you are doing, this is usually done for you.</div> </div> <div class="line-block"> @@ -643,9 +646,9 @@ q extrapolation (below 0.15) method provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/index.html b/docs/build/html/index.html index d95a55e35..27543889c 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -309,9 +309,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html index 44ab37915..42d63fe44 100644 --- a/docs/build/html/modules.html +++ b/docs/build/html/modules.html @@ -173,9 +173,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 8c86e9a4ddc8464c47e8ad83b14a64b5c6c74372..78075ad6aaeb850cb4fc53841a12889ef640b72f 100644 GIT binary patch delta 11501 zcmYkBV{j%~)2=7BZQHhO+qTUowr!geJDJ$Y#I|kg+k3x1&iU6})u^?)YOSvOO45qa zP5=Pb;x^l}j{W#TvAHt9G9(##@Nj~Gx|f`aY@B$yIs;uu7*S&&)uoGMr4!{1rfnWC zo|0iPu8K(Ql_?o?Q;EKQUi?0#oRTH4m7vE|QuvN6a<<XAqR#A8|Kd^@#VAmu<PDf4 zigOK6!8Mk*LGhz9!RmvXh_{{aMmm(NUH1XNy7HgFVcQDE?x4!{!r%2n5E4){*!!!o ztWD&taK%5Dvs~jrj~vP7At|t;j3j3R{)k`}e+~G80;h2%Fw?`rgG8IH#fRwC9pLUg zM#xVxBWGZc!kJ|N^`YY{ruYyY32s>^=+1fnEji+OR{i4XEFg&rX^k&!rUXx6)}sUP zx)f|M^7iMT9g)I@N{?;A<0~R@;@T3C=$3fB{>rzMG*m^5qW_|hC6GDB9wyZ=t74x) z8s;MHB^>yab#&qm$3VnLSSKz@F=up^$$)f;8zk{rbg?0WBBj7w4&8z-if~C8R#1*K zF|}rdIzTN%O$Hr0g>V%fhn&)Ux(Wd(3BVb-f>Xh8PIhzO_y*7C{PvzfPaWVL%Jj1; z80M!apxs!e6m#FD%OnGrrILMSx>Vg+6061TX7^`s@DJ&36I@^Nz?elmeg0K_EulBP z4&*P*M@18u(MV#5P#E2OZ~jVQM#mfq8d;w3$UKkO{4T=!0;<e?`FE8V--`l32bd_J z;C+TY8kG2pde!9{XRV4PH#e@#zZZ5Zq0iO&S4&i@PK85J9RUwh9R-poMMGM*8>jVj zt~KA*hcc(3KMp0u+tr*M*QQ1wAjZvflD0O_c-p@TIP_`XaKeXn%RUEZ*CVBCzoCn$ zdRd5Je}oe$;vh3H49pxq*ChoYSWa7^<ZC7b@mB<0)B=+)<P@{9roaMobjE2=YG5?` zD4D*h9CL0HkE17qch4xXNT|gW3}Q{v_$Nh#!LTYXn@f>PpMt_I)gH!^ANOYtElQw* zNxHCT!zKo-FPPM18t6ho1#_Qx7TRLUS#iYVM8tRvw@j>&z*RM-e{~GN>-)0tg;$+z zJoSFcf9omymM{yUzBc?2G)$d1g&_~QNmGIyjh>mGQ&Mwt4pMH&w}(nPqe(f==rqeK zItXdn9I*wa#Lz-iMCk@zdCcdPzKuo$guu9oLCGJ&brH)m*dLM(q>+It&?!8I&3U-g z<-#<f*)7uzvR}K}t0)U#!x{9aafBy;a;(#Vl)V*$ztb&r&M>7-oJobgS;jTI+(w$w z+Sg^$Y_p8ls?I?|P{{Y~Q1+PC@|iv7Ve){s5>+Ixd38+qyGbM?4~oYP!r(7tGerj5 zw_B4?53`>81unAi#vVl^$@Asp0_)j-2j&fA1gGX5mD{jNIfw-a;!x~nvKWjZaTonS zxw+xzHXe(!NWt|?J&923b-hpNM6UHWUDsprSgq+*o|ftWX2FyQkq{h&Kpnj`giIOc zB=Dl!?kQD6dDQh($o;)XG`Rrsxm}&6dYjcAPArx8**_kn`vpJyS&PcqpzY2S6|xi; ztRE!cDf>+M5-|e+_<wf_s=g}RH0%nbNBr_D;&PStQ*rv8#~@qj`1W}u^3tH9)nlmc zt+0zJF|5)u#louo`bmKEQ?i$j>9%ouv^unj6SxCC^lry^rFI{Em&UiO7O^a?-0!{5 z3gOj&T$ll&nOuLqM?Vt+UqqrWCtD*jW)Z1DlU4)Lfvp6nFYlyP%fQfr)gU?Kl6VaV zzhF8J;IA1|?*-BihD)t?eruA@Af1NnCe*Ew)arrL&Xb$^a*{?`bmTK;QW}d~`&FH_ zq?yNNX69b%J0<9^AAY6-1Vfp%o|+_1IL)L*HF-L*1(_8TljqdyjM8V0?4m0QlQwO@ z^aD-TJ-Y`$D&h3~x?d8ofel2}hZiA6TaTzaBU-4a5qpdovF9#UM<4fjj=ES9#r;8V z%(M578`w~}*^m__u3xz4{<$p>m~4ltb*)h2s_d-LObB|Vl0aIj2({J;?=0^>WmH&U z;WM@v*+4M(hOCZnGT*<<)p5N(&wm;vx0&26z0n2`A?_IUXFQSZ8d-fqids}CwTI@4 z^rwBZZMX*7Cu%iqeyb1Nh1=Y2h1DQMpxK0~6KgQ2YDebi$LFjSIb-|7?N{w#^s$z& zbR#w)VrV@`mwN?i?9Qy+$}!K2Q8{`45iQq74x@ic0=0y+u#Q5{2T^(xs6CVEOL4Ck z<Fx_&^>x|HRC7t%VWFXSp5~&S9Wqzp$s0dP5%o+>v6;zxBR(>zlCRP@M9)3C;8k^9 zGJQ}w-@3tu3u1M(M3fE)bL<qdeBeUd`hI@!^NfM<hMy&z_kub|)O-lM8(!5`toVQ* z!(j6f7w$H99p*_&BijCfY5{N72UC5Ruf7L}Bitg2GnF~|X*cZOj#ZK0g<eK|I{N`k zr0U1Fy6<(Bz!1KoTv2s*)d(1gcA*h6=DO${O3)eFeVqh=Q=%<8CErwf$z5Jpe0uTK z?ZFzalgZ3n*>yBy+FP1UFL4anO6TWFdCI_XF*q0Wvj4Uf{NC^YEo=AuXXcYtxOjj! zdk}Ai$U3t3>rn(jc-hAb#$eFBLBsJm@z5Wbelc+UKHoR%L1Hxql*ubk#gO~5kiQmb z5tojezl}To-0Eb2OiMpXb8FF{gc=B^9N&rxcDt3{u2D`q!S6GYcme{l{af3$;fc*X zH8mKfsdf<HqC&s8E*|-Xk%LF+$^!rw{`9fpAyz>}x8EnTM!@g|yY+bliqcLK)-8b5 z-?t)nwE<R9`T9LxO-JDIZs`Z!B3ZT8F+#mgUa0oH8jiqVrI01Ff<^6*xUTA5G!s`r zDxF8h69$nfTR?A7owj`g4mcRO0XMn)uVF_;hhrQ?n<$`AIA@<<Bc;mA+5Ld}?a!n9 zyzm(gz*_rE&XcV1Sk`A>_hzGVFO^Q17zO(H@HA1C1sXf;Cy_wU+C9lIhx#v4)NJ*r z*ZU2fI=!RGNcF9#-83J@=@C;Lv<xHBv$9c@SwmlKsTv;2St*(eq;vmw54Y*r@;u^Q zS8$93{-#QAXyxB$;7{u)8lQlJzH?dV*cVMZm+&?Xyo}zEGY&Nou)GQfh7XOWYZI0` z1LdI$xQJ7Sk=C#z^FmFV3#!=p)fX4KG>~p3H*7F9I(sHHb%GrOG0J>3#qBx0wPv)X z>9C+|G(KWY|9klHroVbuH(g?dMOm~A0@27seHmw)7j|JCW#{jpNpFCOyln2}8{i^2 z9)oC(nmE_CPemG}E*L_|2eB>#FbK>+>YIA<pa_S<I@%)M4GTFWSnNfH_c9qDvvb9D zn+WzRSF4*w?)k`h{rvuUsSnqPuj&LGq`K0;5ilv%d(BlY)8CKvYh_KXV&>DtFNG(7 zGl20$s7B36;!xJ4S2y7AJPnz~r-ltui2!#OSOWf=#<XUCMaS(NN%41)M0|-k3_c%n zHl6#UL`{eNWF8~P-0RvHiK!n!x;G%8RF!oBzXHrlL)q`LjHS##D|!2Hd7|hLXX@$< zS;u~!?yO1x=snP>k<17S6yeE3Dk1h2wy*M@_z^f#Q%aivo)MrY&@zozRR%9>FyI=> zs=6Eb&MrhH4ZV%u&j~K-YhRcMHwl%LJ-Y%^4zA@!r}w2oh>jv2)r_5dH|REj(s)kH z-Ce6jie^7ux=sIRf@-p=wzdb;)OF=|5|=g;G+=@hJ=z7c)N2$&+PBYuK|21RW%RRJ zL=?!+ERy^?X#jxW4BQ(nq2dcf)*FQ?gVpza|1p~fIbqQkHA%diLNHB70MQ2un)95O zzz85hJ>Yu`c>y6^L_n3;mp~nnbV_T)ei**Br67+yzBJ<Pj_t=E>AzMhVBSaU|F{?b zyNMavow(vLSJzP|QT)hSL@!{q6ZjeeH8C4W-!yQiuMhCXVO=?nJn|EnpRXiO={p(! z3y;I>6rTm&^9LK3O5kB3LF|>4_w$5TCCJiLl2q3k|Jx>yoR0WC1sge4o-Os0PeC0& z(^_1ed&%_vg%@iYh>7lIzPt=s0N{;;#(HuBG>L$^PQdnL6Qd-fWEZmqXG+5-=UQ9^ zA%Q2DcmP0=)l#nZ*>_9r)#T|!(BnqH<PTQ15a?>L<qeayzm66a>K)c&K<DEpAml$7 zXj2eof<41RWIv6Y^KVF?tib*10Wad6;o%EeVrs^VJ{n+_xI~+_7#nIYTN?u{mvGgl zm6c|;0L|Z{JOMIgN<F~7Q(IO>!a8^WVn#`K4glB<m?DGYysp`UE2I@Y5Hm#QMZLOM z)=!~%rMGQkxC%+2My|p=bOq)Ic#Rr<_kcY((c+9wUp=`$dp;NUfLPs}r;rcz8Qx|T zAkWS#Fi;`U&-3~QD6o<;QbUSiSSA9K#bkDr>Ay`W`5XQ=n<EfB%|5r{Ez-;}vZJWK zss)&t(MCB81V%4#bqBNuEXtV>OpQn}fKirW;V`a`v>en~l$Fb%n)GI4Uwj?1&s_qY zVxLzgU!a@un9$c=)tZ%3Nz)hmCQ&sogj?f^_=t?pkGG;y8%<3;JucU?*`+@Ja)o<Z zGz*y>(y_T{zsNj0tI{FqWfPi!X7f2brvS_dpR(qa=IbcG1~oq(GSQJ0)E4Vozhd}v zHdPH;uXv%z(GByT&`{UfEa3;#73Ou`yIASi;d$^iwbn&CEjAZvjb1BOzUz8%c2?a) z0IBzER7@ygg{>EKV|`1lL8b}^iIPc>uU_8T=FrYN1^5!r>i7B*q5IJq!P;I8Zv!TN zeCBlvGrKfPewFDDd{HeScv#smv}&iGO1Z*W?3pA*c%KQ|nD}3iQufF2)f_(DI2;86 z&+Ow+iulm%9W{hqH_{N2*pQ6xnE7a%M0l(DhZLV;WR@7AuT5`}rb=v+I2bhuQ>6)S zl-a?~j*OGy)wFp=WaAA^O5WCy!~^2ooXrjKeC3cSwo@0kP&S%fl^*5fQlbVab5h;^ zF@2;d-Xpn@-8RGhMs5hlHO<R8!+l~1P+i_dQ0BfqNf{uXj*xz5-=Ej@R)N&tVpEhb zRM`-XDSovEJyATA>!k3N`j8!!WJ@0Op>Z95&A0Uvq^!8SVS(TDZi3-00Dci%)C;>a zUxH7ZhoGb8?CS6oa^!ass#P2+ps-P_-Cn-FG<7E(7&PBjd25vZRo*qQaFU5GFhg>T z=58e)r`(v;OZ;*`NBPF6-ozvd`E>A_>d_OvW=oLC4p;*nAU9+evO<BxNgg^>qoRe< zqS|EI&>M9RkMGi_YL+$91DtvQ7F}!p&Mv(9YCoTRY2D2E{k(mh*vG0WVu}Vdo(Q`C z3HF<sz2Y{}2SnY}p0S!;WQOnrs+PG?B)H>RX%JgY+VB;loqi}Oj+Xqs_8#bqR$yQ> zr;~?d;6%q^I}3H)^dp@i2pOz%hO~x&apL%VDW&!__A5!=%vJ#D2AoGx7Jf#hP6@e- zZ&6-aBdmbJX7I-_)8%j+K>!uapnMHe*Hz6j$D+JX!g_ldES4?#C5A7(<Qzj;V?zrq z(o(ObmaBD?p7z50nEl#eMI$DP6(WSInJ3i<e)V*}mZ|7-uDF-DU1^{wdzgzbS6g^e zdhRTdQ?#2E*R(H21<dav9a-eIik4o4&079es<dZEFx&P$B~B42zn3d5W<G$kesUd8 z#Arc!vI4H_9L?UP&N$+;>p&wnpj}Yq*^fK|%R$E?rRx2KbJcfhtnn0}DY~-g*R8#a zpk!B(Tjh@+gS`Y)BfS}y&bgqUMqT<vpN6zU9UqR#wMu%00NA7awh=6Y95}!#<54c5 z`f(Br;Zwa!#$`#tGvx6)R_#WphGlz!k?t$FPYzCNyt%*x&iitoPI8|grCO9a4vnIq zU$CkiS~TzsA!L9o@um}=Engw_-S-GSufx^Qf@M%0uphcp$wjiZNiZS$IQ}9nXy3rP zZf&-SKE8qX0_?AG68DF{`*7iO5J(hcT?l=2whmR5)289xEanGXP<@t&S8@03JOA~~ zsjaNfdO+mhSp$2nVYXBILsEV7IJEIMg+K82ECp>(1tWb%nSa`pBQ{S}bt?@8JI)2B z>KAM6HU*6EjoY70+(+w@Sp$JMI9~ygq@MyT8xZ-fdH`5yP4E;pu%mIN5CvCtXl4|e z`2n!~c3bYY1`G*M<{mS?(n?60$qD+C;ib2IXv|o`RaL^-1@<3m=c2%;OsA!YIVVb8 ziX(lLdTgqZ<KW#w&yBrn!IqUkJDKu+#MU`eW=*j(AickZznnTCg3Vt<_f{^7eCc>X zV$Imp$^lzs1SlSZU8Ya0d)GmK9En$%fjC}3PWww72<;{gL8r_)`z|tY50ESKbBG=p zxwLz<rw=3QT8z_?7@)90Zpful+6q&Zin8p5*@UfStKY1v1Mf72v+V~oM1<>S4RuK= zhgEZ)b<iC<w&Bj=Ov#bNxlsYZpf`tqb(Rg_BmrMJ4XR*hak=+6j-0oD?$6yc?098z z7hE3Xp=j!(W`q?DT2SpbQ!_E_)<)-$cuq?{DVsbr*c{=c^_Cj<d#eL@OY95w9Llik z)TQ~{T8@L8g$bqzJ6dyDzFfVpS}HBgWGoHj(!SwSOJe77es47W5^O9Ucrw%*Y<}G7 zRsjU{!gOlHo@drs8n}5$H2-9EldQ||ZKGc{px;2ZR1M~;n5fy*zg5s`a<qXsm1b#W zs^&j6QpZ*=PjL87Hn|g7=btQfqYF|^XvJ&yCO@ck{ybl=d~7keFK%*J`UcNHJwI(k z&TI4%<xrn&1~BXpGfD|%**srD=##)L)dS|`r{-Gnc>Rdn>5`Q5Y<O77|CT*rA)PKC z$3U{$TP^O>Zlp6Q1;6*OqPld|j?ODz{`y`)dL^5vDK8VsZAQZm$uwPK2U$3~(|(ID zG3=){$ZdyHdz5oOQ@f-4NPOEG5e6t%)(_OZUs}1;azYeo-;`+&Z>lc&ut{IEr~zm~ zv^!&}?|VrnrF{txHHYr%zK+zZnG+=Hu}=18u@g4S!uB1wHZn=<nhzg%;xi6UD4H}N z{HFV2_gFcO4d7uHy{!4)jWsMe#gmOUOk+y>ZA_R{^?I!weLioND3@TMqelU+<V9*= zIz2(BHu$~X8D_T&^omn$4(aujkAU^^xY4oOgS-vZo1myWHZ1Qb)LeBV)t;m*%^c$# zOfiIK{b@E|sWUQoPX6vykf@^H-K?23A~qeP9DS-<)4@9tHfkh>qHYhp2i#&)=SL9U zBU-Blo*dZ&PP5l>$K4~e`S7bcO%`QGW&X~dW^_azU!j4^K@Qs&1q=yQkN}jon3Q^x zi+h=!b&BIbP|7}xTLkm!wxMZ0k+Tdw4$<O}nTW3*5EB2j)McDyWL29c(WlLi?$mr! zQw9}?oV66R?wU)Vok?e$2hvoW>hIZ~qmmvWtDoQMDEE(d3Q>L$)_+h}Xh|m~w%82W zq(8!gv6Y%!Wnu{esdwdpJpp!0bWvgB33N4@{Jl79?#rT|1k#*uksa;pi&6qT8LN1G zZFt{~ChKo>;XFJ+;rq19P|$jid@L+}|Hyb}bcM0a)O%BUvI_}E!;T+FBzpwbuyQ;y zk!?nhD!qvory{m6)2o9-Ks!p;3Vom~Zj5UA5+}H1e=99DFtgm#kO4g@h-g_2;Ud7g zG7-R2i~Wi{oamT%BI?oeEI+CnLZ81T|86UC%Om^y3U*}1tv*qTFVtqymE>kydC$v? zH8ImFFXkVy%8Fx*kFD#nl6tiRCJL($!AJir>(&`-sGC$C@H9|g!jh#ym?R`SyD+g- zg3$i6xtyI0-Vtnx!2nS0WLOHj`^LiK2V+BGQ``+7<))j}bN#)lDy)OHC7Y0EHiv29 zj>xaOb-BX2<4sNND7Edy($U9z`<nmAIz#-^NcI})m`IXp--2#Gs9kjg_k7FY#e*#+ zvm?|#O~^OfTVk3mrnj<V*|}OtqxL^jeYtW1*A4ogYXtE45jmc_{@a$WCF+a8w<1-L zeB?Na>KzEL<=+4oKd?|zu*m8WZ1J5%SsH0(*&O^=XrajoMO-+NggIh&C=(dbmA|T` zHuYV?e;b+6!j(C!HVp<xWYyhh@psJDg!CZ(&9ni=H>6~LgLHY_BFpe2C9x5iW87m4 z0z|JO|5Hp>H;Mo+#OX#0hDE4xhhW4Qgw)3j57SSDr51~3wAABdL)>T0Btl)^Jn~Kb zR-qTt@ob#!p8=X9L;a&!UPIgvHpUj&S&_4bON}%Rl)`9;oMvL3i$L-ISv~8~3NEy= zpiBhY5ySJy=U`fJ4K$6Xf@RrXPV#U9z}ik9PN*b>kLETd=6x=w=-h4XVWnJ%n9Uqv z)e~ez_AE;1hg}eKuK$AF(SKk_2xsUSR=ex%dJ?igeNfo`h?@|M&NeY{Ufw;Zqf>{& zVPR@hf(?u=K^EMYSIm1o#_c?%L3)&{MNNab+zeG09KkPZ>?_`sqI+3kV_hBrKy>&* zlOOujb&OvMYrSGd{h-`@(2z`#vIKO+2ey_L@^T3gkcIEHd6_eJ{gWKlI9c4|hZ@PB z5*nZT+9{-}fS^-q9C5a9n_hP;?dF&ipHiu~wF##(x~ZGgzr}V18_EZa&0mmFkM90= zMVN`jp)&W>9Bw6??f!U^yh{u4$tgDnu=OBc%4Kh{>Z72b9KQ1_eS<|vM(}_b@(AJ# zLQSV>8?S5TNMwR|q6zB<AizgBl#jv%%?oN+*$gLZ=8maYmAW90k)_$1x&n2SR^;7a zyy;|ju8vYRnp}7KBMIQ>r{M3t7$v5pi`{)7U`lWX3dMa)CVxY~!E*wrku#2oO8_fD zT|g4OYQLndX0(Zi4U3EvGkXuxgPu#--CMqxr=<$9jaq)Al`Yv%Oqa4h14TW+c@~Ka zZLkw$_wBelt|wwioNM~o{#Xb1KL$a{zx6b<^wBA{Je40?`y@I<muS;-N9kaxj)FAz z#P4pvD{0HVw#oYYztjU5u7~n-3-07zi=4A}e7O^$7kIp+uCE0o^}86y@iwUFB|#}L z#c{9K$<!|Q=pDN8N>Q@^p;7Tw%-4T!=_vX({mv9qU=k<D&m*K-K*_MlvK-%tHE73m zfV!5}jk@<pZ*>A84@)h19k|5}bOhEV_cwnvcw6IE*pbA;AOZkwM)+n=&67^KDb}Ir zTW5SB;E3X>g|MYX{q^?E=!2<x(SrER8~2y)3GRc*0UL(YCTRZX2fR6&Jab(PuI}|q zUpYi6jWR1N2l>khjz6eTwi#q?0j$rz<t7RxlPDOd5+pmrTD_0{wr<;<$qqPk*f3aO zN_aRur>OTnN%R3)?~-Sb*Oup0-Wk`5eIpO03}pl^hVJrvqbYvg-l~-fFFQF)M=XGB z_cAkiO8=N3+3d#D<Q}HeeDs_#+)YiTQe|XVp0;#1?LQTctUsCyL;KGfO(3|GGYCTO zm*a|6eGkM0zsIWDy|Y)y$+1?rNF8}>yt2uTP&ppD-0K5~2-}p@Lk5@JCMAxa2h#-x z=E%H`8EuB7eJj;|RB1spiEOFiwvkpK$wS}Vp!MZ0A<SbnBU9}d!LhDpE9(*K;X4E< zd)npLY!;f)otz0D=4QkQxka|z)v;$=8wO<4R|*Ow2_o%FmXii2Yzjel(&|Y>?rdJE zwwZ|(e|rN4w5VmRkVdOh6E=1*Hy}P5=U*A{<NiT%e=zS*JO<oE7L1-FTExfX8T*vS zu+8H&Z9-!7=}Z?*#!kJ7Oj<2D)qcCSQ>!a*%7jK9i6pWu_+BhsN*e<dWrk_On{7?c zsEw>2xJafThTEHLRSapRa(sq3`3#G;(9)M5{G0$r<#Kk)uq7%|hU9BmBl8X&A?ZIb zM|r#l47C_A;~~FpA|}HVV_}!!a|#{<8hjnY@)79qafQx+Ox|{Pi3#dnwRri_stGcV ziXUqOz+kQ5)$8-ur@jl);xWsqEImUTm&~6bT0DoA>x#vfLo<HS;wQr%p12hgV{Q?l z$G`%1G)h!>SD^nUtm4cE?IAl%)%}&hzI_MQW>kOF7K`?#(OxXF%tX+w9kFj^of%Z^ z#ULE$Br&!3d-?c;)LOSv!AXgom-?PnY$Sqvpk6RKYttQgqp!ybOxb~cD2J^>jU=jP zC;&4VrXKkX@E>zVqF&qF#E1!7)u=S9;4TDMcbvxj{s`6K_GSgc;yZ8)R!{a8(qa{z z1K|x(ilNeF5T=tSAe<b9uwaCXuc0AkXVT(Q<a4gKgbAY$JOmwl?zf={wUfMrvzm4s z-`aI6*F%TWl^FoefB|RWW6o<YIJt!_TJlEe`|{l}e*$T;O>sRj;|(2kR2Dz$GZX}P zZndkkf~H451UVJ#0@trx;TpZbw7EVmU%R_Y^%T%z5%)edJrAX%zp}<$Bg%-E!S-4b zh5P6-U={#1aFl=zK0zwddpC(qe6-nsRV!RTS&R$1c^Dj8j73hPuUs0)TWbQl-g!3q zFs{|(^=B<1#E7TFSae^N`PN!q`@aAfySCO%yqw#>QEuKMJxcRiRFjoU!Lg7I(SwFf z=|Z}4|Lgz*tLS$7znz<@_2WTBgz?nak}KHn#M0>JJBx5pDPX^%M@=WSW_jr)R{yr8 zjMkhbf;Nhn$IXL`Xv>oF%cQxpr7LbcNmMdWpQvESp02<>A%tfMdVy$P>kR=YpGWE9 zOtQig^Q#qcNxHD-aHCMlJ53G33jC+gTa?6o(mXg&4R*{#F4(iDw272nDA`euS_Ty* z;Qvpr?+WKFNZC($3i>hX>Yz~F`T5kUeCKY)nOORN;{Ahlb>=Es2lQlE<7vb`=OK!; z&UBvm?mjF)XCe*rFnc-?^RPc@7iSUznuE`3b*UYEJna4i6j~Z-)%K@uxsA0S{6SQA z-Frmx-!n2rE6XAy786kNjn8czKiE`w`c2Rskxo^6F?XOyafu@I*|AfMqSY&OG~~$s zd10j5$2DV$Qv7Z{;>ESpOSTnx3rjM=%<a!3lmz_CH(qq6n*wKABG}V3Sb>@RpN<)R znvY_vMe7C{r)j+((k&9iWDlunaVCp!OIgDdYHqtXoyl9w>V}$1V~qXqlZ@`J!N(7T zg&z+f2*Xzx40^V0d*!No;jhx1ThP(W69|1h(H%Ok%hU|Q-9<Xy1sxNCmJQY~qmuwu z091N~hSHpI1qb$x>hyhdu^mPATaXr@y>HNns;r&uOWDzgb+<G26d&h3TN}*yU2}sf z%9c8*)>7X=U!R}fyxm-;v1bAv<R<6!$sF0)eG{mgHYL07$n1F!YkRLbjhT~rnGPaY z8R+BqNwvosmG)Y%a7W@{NTnNiMQZoxfRP>5Fx!uXo#DQ#t=-YC)RK3)t!0*Sq)zOG zv?dzahG!_a?6Fqu+w&NmsSyk2R{W(d_PwzCgn$JsUBUMp^%Z&RUhuQ9`{W>0+ZQ&u z|J5I1(PnBrK4%o5>7QyF*EBVNFktR>NbH~0fim&sE_^KM3YQqQa6gG_1+)}m20L#$ zT`8`Uj=?lQ#IS+5`K<L#KuSMUi`6LYqSzi`_V#+i8hpg;UC<06Ch?WkocB2s@-TOk zScfmRpE=flZBqKNgL5Y1?4?Nvs}z%4@7AoSKW*8%Wu*-Og=xpCoMX&4L!OHR+k0fZ zuWRkPzILL_sy9Xgrt7;00U8Y_*;7qe<12()j`s5r1+qS@t)Wx4RK36_=8evx1-vZi z_D$TmXnuI>a>r*_BWuqrN)@`17Bp+5;@C$=S1Sbv)*8nf($C{P;XE(SxXk=lwG|q( zga1}!o0aRjt3OH1qCk>?^&s&LASZD$s%LvWP6G#qg=uiCwvq)5^CWV;(&I(wIC74K zp8!M7Z@I4MSfW1a&!Hpi0FC^v@~=Y?Dh1vNh#pOh0AZ}dlK7v~Fb2Qdd8AbNhoe9p zw-#HeYq>vfLZsMphIkA7?I9iE!H$V#-h`EsVl()QWzI5SMz7u41mOni@Mi$>UvynM zS(f%=QvvwrF^&SsZ-a#TR3`*R$vAh5)+1pieFAHiO<^^l<_sIYEESw}X$V<xQ<lF< z?o}<rkTQ2{%(j8lww-~T1U)o$ozFGlm1hs%tOP=j0=Icvi2x~Y@X#Z_s>!x+F3UH8 zT>m!^EF>SSTV7<&+(lfIoDi`81s%9cyPOvdAj^?R4|oJ!i4+t$fp5^2brvL0j|wkv zb}?XtS6I_N5?1W!U_cL7TbCbkd0}$A)nj}!(l=$&rGX^NW*JZh5~{R~_oR{2fRaw1 zgP92GAODY(qi1E!f{ZvDMJBGLWQmA^re=RIJ4G;YLP9Hn4yFnh89#+J%N8Kt{sMp@ zNh@^LpWqd<7CeG9$@(g*PuDB;N#aB7m?h;0es&9=gT?k-FkAho{{fB~Phx`>%$~+F z$_zl1bdg=IAf_g#xG@V7T*<jEu3PYP-8<v|A8J1yT1i+ynGq(^uKmr4mI4MN6&Gz8 zt1f!a`8q?k^J>;{7Hwhz{Cy2ry^8e&cKM^=v*3qhurb>kTTcrIifQV5rM{36<w5Ln ztH+JFZ^G=3LH>amrU5k@0eTZr9g@U9hfA&jYibZ+!COm+y(0U(*I0h9gag<1x>$>a zwqY=%kpxY_6G~nx8(7eOoMaBdMh&T^+D)R*_vfCHVmPmH$y%+Z@6rs=6N6Z#rqlDR zW)S<fW@_v6HuErbC=bnEXq=omi-XUOx?_kR52=@Y`Oek)HsX*A?vx!%iieKtP9<?> zWdnDRGOxBK%QD?Pdi55_gkIo{|LNXjrJEqycEJ#9!SnIo0u~_s|1DtAVPc<Vj0@-3 zfkc%A8Guq_((P1f;w^`jT#?0-$Dl^lfKxVTq$ib#Q|VAi=T*8`r}!nz4uf_xleYDy zlh4)K+aW0Mts~$(V&isOLAc+xqK=6d{^18ylxW2eF=iqruR>wvx2t{`Op#5t8KyLd zb-GdOHF=Kca0^*aadRij&^KZrg&&dW`HGnSXMobje1z~j&w2ApQ>lGk!70HZ@V70z zgO(Bm+!KfzKMWi@@?o=G0ae3X<yr3TB0Z*pwtdXJ+XM%)#@GTg!+HXnX}kdq*w!`k zJ@NJxgf?C%PZJ~tF**ppulDGcWLFcX|D5Ued_f^9V5?V<15=j3n<{O@kF3I3LQeps z%70(kE#mS(`?z_dvG!4vuDO=k_R{mJ-J{@jQ@meb$WMRPGRgAQyN9p2&zGHz2ov~l z%fWhKvs40xF#@Iy`1yaxlHUUO05gGc56i3ev~r0StlK(=MUb*aUOZ+%4s}^d3Fe?4 z+ZXsDs6;3FyQHcVs`<cS(-qJGu@XDqu0@Q9i#!(2i!eCy+fSv{TUh=K7uSjH8@d>1 z9**-k;Sy1xh?Aa7E~pxJ`%XsaV?M#cpx~8oQ?l^98rBmP{^qT;z|U&TB>)5SAg1p) zhsaXL-}c+T`p=M3zr$Hbxy?tzmklKB0t_+d5qg*P#bQT$g&#kgMlj&LD(IF+k{K>; z;!@>p6!8qQ_X@Fem{xuA_Qd1oeP8~w64JTr_42hBn<okexgYCQsjbT$>WBl_%OvhS z=nuU}CY0ULe4!~uFoTBys%vBGYN{Hf5AUS4DaLeyJZBc~{eb}+EGAEx0gnOVqY@0X zykq*lZ>wlC-OnxnVjtiDu2r&Bl`8?<2#YLc#?g%AwtefZ;zezgdR08p+*?961iZXz z!YYMQn?%g7J<b%IGZtE<GwG40+&y)+jjpxc!5YUx)&RpKVhLQLtgh%uYs@sDM*7=D zqom%?3{_Msk6RomqBubed(YWG0J;gwT1JtE;ewRO0E!ssixg0aV0~nkTmtHgQOv_% z1q0<kEUYdQPC6oSk`ikO_&R#Y2f?tYc1<f@twQybIY884@w1jlZ*JKC6>+)eqhNrr zK^qHgk?o4?xXwc%8DOcUB{lRJGKqOp*!35D;?J`5BSM0rM-Q;r?36g!3k(VFXasy1 z54y9DW7u;Ps4Sp)J{R3hyq!L#Dz&bh=Jg;=ko`T?)%JFD9JS3X`lq)WiIu}Y3OcJP zt(4cJgCo@dIBrdHQ7J^3PJp`^go0kuz^k6Mh8^E>Lw%*h%TCE_?9OP6=k^~&#?2a> zja-bY0{(Oa9okz#A9^Fu_fr#auH|~CDGr8IaBGKkYzQC-J|*Hb$s?SjP-F7@es{`> zz>2x^4I}*#Vp%@pyXr+xX_O~|q2xp=C;`T*Vu2W<1Z0upXUJgvs2^s;-W;^qUJfCg z&&)D<z8uk?5;vh&Qit+rwW0+P=aBlQQKKajFos~@Vm#rFR{U0KYvA-lgzuUls=!mt z;tur^mjsNe<KbJOsCt63?5DV`6DWO!ZmULA0V|ZJE}AP3{YW__6!V7tXn?)(Q4sP9 zCt#SOx0!4x>{0l0R3r*||E2<?<ST&TMkS;Vw`a);d-l^ah)!|Pz+_EZ0;#}xZa37! zmes;Omk^vmD(;Ao^NLHI?Gp;}5VT#R8*vi?Q3gP;R?IjWab^X1y<Mo4f&0@NqXB!p z;OiMm8YTs?=0_Uuc*{=J&&LJ2g;2g`Yu#BLkJ#6!vZ1dJM;h~MJ52A#%(u~vBKytS zO(0Lx$Ey#-BH|M0Ujm6KY3eISVQQx4g8NrCo*VNU-wV!i!hFbGQGQoQ)CUh-AY;u; z^a1Sa0m|-5-hN3!6o;T%$9TIh_H8wt)VbHM`2tJPX40nLK8JSxp?qHGUNGWTtbfpf zhdT6^<Z)u}k!#4_1q`RKMKKTC4G@1We!eK+xNktduPMqjk-{#mG`127`X;<|u@EyS z<c%j}u4HMteha@UXiaf^svN1j#DSh_r2~}kwuWj!PL42HuG|(M7JJ($l$(A%hX@=| z7Ci)6FL+_Wos)Wjt`fTDX=Y3(OE+5y=ioEW8KSylryx5dCEsK@y?pSNH)o&F-j#77 zO+&3?I0K8lJz~CESt>usS)(px6nXGE)Ow6L#PZb(dzIaH;~qs$JWCKM5d2h>kDFh^ z9-irKA7@^@WaMZzvnbd!MF$_JhhQJ#Yn)60s+sCXzmogaH~1DR(r+wz?0hbcEOlze zDey=fo~cO>UP@7c=Xb``^^@~n?!PhE!QZT2{cB5>{Bk)m8fd<rw$r`<6U~s@{|DLl BXXO9@ delta 11378 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 AkpKVy diff --git a/docs/build/html/plot_functions.html b/docs/build/html/plot_functions.html index 97b69d573..5829713b7 100644 --- a/docs/build/html/plot_functions.html +++ b/docs/build/html/plot_functions.html @@ -377,9 +377,9 @@ This is not included in all the plotting routines.</p></li> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/HPC.html b/docs/build/html/population_extensions/HPC.html index 535aedc20..f3ba0ac7e 100644 --- a/docs/build/html/population_extensions/HPC.html +++ b/docs/build/html/population_extensions/HPC.html @@ -219,7 +219,7 @@ TODO: Comment this function better</p> <dl class="py method"> <dt class="sig sig-object py" id="binarycpython.utils.population_extensions.HPC.HPC.HPC_jobID"> <span class="sig-name descname"><span class="pre">HPC_jobID</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/HPC.html#HPC.HPC_jobID"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.HPC.HPC.HPC_jobID" title="Permalink to this definition">ïƒ</a></dt> -<dd><p>Function to return an HPC (Slurm or Condor) job id in the form x.y. Returns None if not an HPC job.</p> +<dd><p>Function to return an HPC (Slurm or Condor) job id in the form of a string, x.y. Returns None if not an HPC job.</p> </dd></dl> <dl class="py method"> @@ -228,6 +228,11 @@ TODO: Comment this function better</p> <dd><p>Return the job ID as a tuple of ints, (x,y), or (None,None) on failure</p> </dd></dl> +<dl class="py method"> +<dt class="sig sig-object py" id="binarycpython.utils.population_extensions.HPC.HPC.HPC_job_id_range"> +<span class="sig-name descname"><span class="pre">HPC_job_id_range</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/HPC.html#HPC.HPC_job_id_range"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.HPC.HPC.HPC_job_id_range" title="Permalink to this definition">ïƒ</a></dt> +<dd></dd></dl> + <dl class="py method"> <dt class="sig sig-object py" id="binarycpython.utils.population_extensions.HPC.HPC.HPC_job_task"> <span class="sig-name descname"><span class="pre">HPC_job_task</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/HPC.html#HPC.HPC_job_task"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.HPC.HPC.HPC_job_task" title="Permalink to this definition">ïƒ</a></dt> @@ -304,7 +309,6 @@ up and running the scripts, 2 when joining data.</p> <dt class="sig sig-object py" id="binarycpython.utils.population_extensions.HPC.HPC.HPC_queue_stats"> <span class="sig-name descname"><span class="pre">HPC_queue_stats</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/HPC.html#HPC.HPC_queue_stats"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.HPC.HPC.HPC_queue_stats" title="Permalink to this definition">ïƒ</a></dt> <dd><p>Function that returns the queue stats for the HPC grid</p> -<p>TODO: the slurm_queue_stats doesntt actually return anything</p> </dd></dl> <dl class="py method"> @@ -370,9 +374,9 @@ and (if given) the string passed in.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/Moe_di_Stefano_2017.html b/docs/build/html/population_extensions/Moe_di_Stefano_2017.html index be0c5d33a..d37b69167 100644 --- a/docs/build/html/population_extensions/Moe_di_Stefano_2017.html +++ b/docs/build/html/population_extensions/Moe_di_Stefano_2017.html @@ -192,9 +192,9 @@ then set the distribution functions</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/analytics.html b/docs/build/html/population_extensions/analytics.html index ed8e791da..f7664a723 100644 --- a/docs/build/html/population_extensions/analytics.html +++ b/docs/build/html/population_extensions/analytics.html @@ -181,9 +181,9 @@ the time elapsed if otherwise or if force is True</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/cache.html b/docs/build/html/population_extensions/cache.html index f92e4d4bd..65b41b49e 100644 --- a/docs/build/html/population_extensions/cache.html +++ b/docs/build/html/population_extensions/cache.html @@ -215,9 +215,9 @@ given caches of size self.grid_options[‘function_cache_size’][func]</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/condor.html b/docs/build/html/population_extensions/condor.html index 61271228d..908266942 100644 --- a/docs/build/html/population_extensions/condor.html +++ b/docs/build/html/population_extensions/condor.html @@ -135,7 +135,7 @@ <dl class="py method"> <dt class="sig sig-object py" id="binarycpython.utils.population_extensions.condor.condor.condorID"> <span class="sig-name descname"><span class="pre">condorID</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ClusterID</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Process</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/condor.html#condor.condorID"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.condor.condor.condorID" title="Permalink to this definition">ïƒ</a></dt> -<dd><p>Function to return a Condor job ID. The ClusterID and Process passed in are used if given, otherwise we default to the condor_ClusterID and condor_Process in grid_options.</p> +<dd><p>Function to return a Condor job ID as a string, [ClusterID].[Process]. The ClusterID and Process passed in are used if given, otherwise we default to the condor_ClusterID and condor_Process in grid_options.</p> </dd></dl> <dl class="py method"> @@ -234,9 +234,9 @@ TODO: Comment this function better</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/dataIO.html b/docs/build/html/population_extensions/dataIO.html index e369aa52f..412aa2aff 100644 --- a/docs/build/html/population_extensions/dataIO.html +++ b/docs/build/html/population_extensions/dataIO.html @@ -393,9 +393,9 @@ passed to json.dumps)</p></li> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/distribution_functions.html b/docs/build/html/population_extensions/distribution_functions.html index e66a86c87..f1d6fcc16 100644 --- a/docs/build/html/population_extensions/distribution_functions.html +++ b/docs/build/html/population_extensions/distribution_functions.html @@ -833,9 +833,9 @@ and is be given by dp/dlogP ~ (logP)^p for all other binary configurations (defa provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/grid_logging.html b/docs/build/html/population_extensions/grid_logging.html index d9dba13b9..87fc47987 100644 --- a/docs/build/html/population_extensions/grid_logging.html +++ b/docs/build/html/population_extensions/grid_logging.html @@ -179,9 +179,9 @@ system_number: the system number</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/grid_options_defaults.html b/docs/build/html/population_extensions/grid_options_defaults.html index 439f371f6..70b90c9d1 100644 --- a/docs/build/html/population_extensions/grid_options_defaults.html +++ b/docs/build/html/population_extensions/grid_options_defaults.html @@ -242,9 +242,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/gridcode.html b/docs/build/html/population_extensions/gridcode.html index b7b08589c..848265f27 100644 --- a/docs/build/html/population_extensions/gridcode.html +++ b/docs/build/html/population_extensions/gridcode.html @@ -298,9 +298,9 @@ of the self.grid_options[“_grid_variablesâ€] dictionary.</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/metadata.html b/docs/build/html/population_extensions/metadata.html index 8fd5c2007..ce11c6cd3 100644 --- a/docs/build/html/population_extensions/metadata.html +++ b/docs/build/html/population_extensions/metadata.html @@ -167,9 +167,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/slurm.html b/docs/build/html/population_extensions/slurm.html index 5709891e6..2fca66f7e 100644 --- a/docs/build/html/population_extensions/slurm.html +++ b/docs/build/html/population_extensions/slurm.html @@ -161,7 +161,7 @@ <dl class="py method"> <dt class="sig sig-object py" id="binarycpython.utils.population_extensions.slurm.slurm.slurmID"> <span class="sig-name descname"><span class="pre">slurmID</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">jobid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">jobarrayindex</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/slurm.html#slurm.slurmID"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.slurm.slurm.slurmID" title="Permalink to this definition">ïƒ</a></dt> -<dd><p>Function to return a Slurm job ID. The jobid and jobarrayindex passed in are used if given, otherwise we default to the jobid and jobarrayindex in grid_options.</p> +<dd><p>Function to return a Slurm job ID as a string, [jobid].[jobarrayindex]. The jobid and jobarrayindex passed in are used if given, otherwise we default to the jobid and jobarrayindex in grid_options.</p> </dd></dl> <dl class="py method"> @@ -197,7 +197,7 @@ TODO: Comment this function better</p> <dt class="sig sig-object py" id="binarycpython.utils.population_extensions.slurm.slurm.slurm_queue_stats"> <span class="sig-name descname"><span class="pre">slurm_queue_stats</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/binarycpython/utils/population_extensions/slurm.html#slurm.slurm_queue_stats"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#binarycpython.utils.population_extensions.slurm.slurm.slurm_queue_stats" title="Permalink to this definition">ïƒ</a></dt> <dd><p>Function to XXX</p> -<p>TODO: is this function finished?</p> +<p>TODO</p> </dd></dl> <dl class="py method"> @@ -235,9 +235,9 @@ TODO: Comment this function better</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/spacing_functions.html b/docs/build/html/population_extensions/spacing_functions.html index 6ce96228a..186fcce7c 100644 --- a/docs/build/html/population_extensions/spacing_functions.html +++ b/docs/build/html/population_extensions/spacing_functions.html @@ -322,9 +322,9 @@ not that the integral is 1.0</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/population_extensions/version_info.html b/docs/build/html/population_extensions/version_info.html index 3caf373c6..a9bc813c4 100644 --- a/docs/build/html/population_extensions/version_info.html +++ b/docs/build/html/population_extensions/version_info.html @@ -199,9 +199,9 @@ dictionary</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html index 3c3914ada..f194b6c66 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -222,9 +222,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/readme_link.html b/docs/build/html/readme_link.html index 14ca7278b..435d699be 100644 --- a/docs/build/html/readme_link.html +++ b/docs/build/html/readme_link.html @@ -241,9 +241,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/run_system_wrapper.html b/docs/build/html/run_system_wrapper.html index f601e20c6..3aacb64f0 100644 --- a/docs/build/html/run_system_wrapper.html +++ b/docs/build/html/run_system_wrapper.html @@ -193,9 +193,9 @@ and returns what the parse_function returns</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 48f49fd57..e478c8d05 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -100,9 +100,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index b4b80c26e..f18524f46 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["binary_c_parameters","custom_logging_functions","dicts","ensemble","example_notebooks","examples/notebook_BHBH","examples/notebook_HRD","examples/notebook_api_functionality","examples/notebook_common_envelope_evolution","examples/notebook_custom_logging","examples/notebook_extra_features","examples/notebook_individual_systems","examples/notebook_luminosity_function_binaries","examples/notebook_luminosity_function_single","examples/notebook_massive_remnants","examples/notebook_population","examples/notebook_solar_system","examples/old/basic_example","examples/old/workshop_example_notebook","functions","grid","grid_options_descriptions","index","modules","plot_functions","population_extensions/HPC","population_extensions/Moe_di_Stefano_2017","population_extensions/analytics","population_extensions/cache","population_extensions/condor","population_extensions/dataIO","population_extensions/distribution_functions","population_extensions/grid_logging","population_extensions/grid_options_defaults","population_extensions/gridcode","population_extensions/metadata","population_extensions/slurm","population_extensions/spacing_functions","population_extensions/version_info","readme_link","run_system_wrapper","stellar_types","useful_funcs"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:3,sphinx:56},filenames:["binary_c_parameters.rst","custom_logging_functions.rst","dicts.rst","ensemble.rst","example_notebooks.rst","examples/notebook_BHBH.ipynb","examples/notebook_HRD.ipynb","examples/notebook_api_functionality.ipynb","examples/notebook_common_envelope_evolution.ipynb","examples/notebook_custom_logging.ipynb","examples/notebook_extra_features.ipynb","examples/notebook_individual_systems.ipynb","examples/notebook_luminosity_function_binaries.ipynb","examples/notebook_luminosity_function_single.ipynb","examples/notebook_massive_remnants.ipynb","examples/notebook_population.ipynb","examples/notebook_solar_system.ipynb","examples/old/basic_example.ipynb","examples/old/workshop_example_notebook.ipynb","functions.rst","grid.rst","grid_options_descriptions.rst","index.rst","modules.rst","plot_functions.rst","population_extensions/HPC.rst","population_extensions/Moe_di_Stefano_2017.rst","population_extensions/analytics.rst","population_extensions/cache.rst","population_extensions/condor.rst","population_extensions/dataIO.rst","population_extensions/distribution_functions.rst","population_extensions/grid_logging.rst","population_extensions/grid_options_defaults.rst","population_extensions/gridcode.rst","population_extensions/metadata.rst","population_extensions/slurm.rst","population_extensions/spacing_functions.rst","population_extensions/version_info.rst","readme_link.rst","run_system_wrapper.rst","stellar_types.rst","useful_funcs.rst"],objects:{"binarycpython.utils":[[1,0,0,"-","custom_logging_functions"],[2,0,0,"-","dicts"],[3,0,0,"-","ensemble"],[19,0,0,"-","functions"],[20,0,0,"-","grid"],[24,0,0,"-","plot_functions"],[40,0,0,"-","run_system_wrapper"],[41,0,0,"-","stellar_types"],[42,0,0,"-","useful_funcs"]],"binarycpython.utils.custom_logging_functions":[[1,1,1,"","autogen_C_logging_code"],[1,1,1,"","binary_c_log_code"],[1,1,1,"","binary_c_write_log_code"],[1,1,1,"","compile_shared_lib"],[1,1,1,"","create_and_load_logging_function"],[1,1,1,"","from_binary_c_config"],[1,1,1,"","return_compilation_dict"]],"binarycpython.utils.dicts":[[2,2,1,"","AutoVivificationDict"],[2,1,1,"","count_keys_recursive"],[2,1,1,"","custom_sort_dict"],[2,1,1,"","filter_dict"],[2,1,1,"","filter_dict_through_values"],[2,1,1,"","inspect_dict"],[2,1,1,"","keys_to_floats"],[2,1,1,"","merge_dicts"],[2,1,1,"","multiply_float_values"],[2,1,1,"","multiply_values_dict"],[2,1,1,"","normalize_dict"],[2,1,1,"","prepare_dict"],[2,1,1,"","recursive_change_key_to_float"],[2,1,1,"","recursive_change_key_to_string"],[2,1,1,"","set_opts"],[2,1,1,"","subtract_dicts"],[2,1,1,"","update_dicts"]],"binarycpython.utils.dicts.AutoVivificationDict":[[2,3,1,"","__getitem__"],[2,3,1,"","__iadd__"]],"binarycpython.utils.ensemble":[[3,2,1,"","BinarycDecoder"],[3,2,1,"","BinarycEncoder"],[3,1,1,"","binaryc_json_serializer"],[3,1,1,"","ensemble_compression"],[3,1,1,"","ensemble_file_type"],[3,1,1,"","ensemble_setting"],[3,1,1,"","extract_ensemble_json_from_string"],[3,1,1,"","format_ensemble_results"],[3,1,1,"","handle_ensemble_string_to_json"],[3,1,1,"","load_ensemble"],[3,1,1,"","open_ensemble"]],"binarycpython.utils.ensemble.BinarycDecoder":[[3,3,1,"","decode"]],"binarycpython.utils.ensemble.BinarycEncoder":[[3,3,1,"","default"]],"binarycpython.utils.functions":[[19,2,1,"","Capturing"],[19,1,1,"","bin_data"],[19,1,1,"","call_binary_c_config"],[19,2,1,"","catchtime"],[19,1,1,"","check_if_in_shell"],[19,1,1,"","conv_time_units"],[19,1,1,"","convert_bytes"],[19,1,1,"","convfloat"],[19,1,1,"","create_arg_string"],[19,1,1,"","create_hdf5"],[19,1,1,"","datalinedict"],[19,1,1,"","example_parse_output"],[19,1,1,"","filter_arg_dict"],[19,1,1,"","format_number"],[19,1,1,"","get_ANSI_colours"],[19,1,1,"","get_arg_keys"],[19,1,1,"","get_defaults"],[19,1,1,"","get_help"],[19,1,1,"","get_help_all"],[19,1,1,"","get_help_super"],[19,1,1,"","get_size"],[19,1,1,"","get_username"],[19,1,1,"","imports"],[19,1,1,"","is_capsule"],[19,1,1,"","isfloat"],[19,1,1,"","isint"],[19,1,1,"","load_logfile"],[19,1,1,"","make_build_text"],[19,1,1,"","mem_use"],[19,1,1,"","now"],[19,1,1,"","output_lines"],[19,1,1,"","pad_output_distribution"],[19,1,1,"","remove_file"],[19,1,1,"","temp_dir"],[19,1,1,"","timedelta"],[19,1,1,"","trem"],[19,1,1,"","verbose_print"],[19,1,1,"","write_binary_c_parameter_descriptions_to_rst_file"]],"binarycpython.utils.functions.Capturing":[[19,3,1,"","__enter__"],[19,3,1,"","__exit__"]],"binarycpython.utils.functions.catchtime":[[19,3,1,"","__enter__"],[19,3,1,"","__exit__"]],"binarycpython.utils.grid":[[20,2,1,"","Population"]],"binarycpython.utils.grid.Population":[[20,3,1,"","clean"],[20,3,1,"","evolve"],[20,3,1,"","evolve_single"],[20,3,1,"","exit"],[20,3,1,"","export_all_info"],[20,3,1,"","jobID"],[20,3,1,"","parse_cmdline"],[20,3,1,"","return_all_info"],[20,3,1,"","return_binary_c_defaults"],[20,3,1,"","return_population_settings"],[20,3,1,"","set"],[20,3,1,"","was_killed"]],"binarycpython.utils.plot_functions":[[24,1,1,"","color_by_index"],[24,1,1,"","dummy"],[24,1,1,"","parse_function_hr_diagram"],[24,1,1,"","parse_function_masses"],[24,1,1,"","parse_function_orbit"],[24,1,1,"","plot_HR_diagram"],[24,1,1,"","plot_masses"],[24,1,1,"","plot_orbit"],[24,1,1,"","plot_system"]],"binarycpython.utils.population_extensions":[[25,0,0,"-","HPC"],[26,0,0,"-","Moe_di_Stefano_2017"],[27,0,0,"-","analytics"],[28,0,0,"-","cache"],[29,0,0,"-","condor"],[30,0,0,"-","dataIO"],[31,0,0,"-","distribution_functions"],[32,0,0,"-","grid_logging"],[33,0,0,"-","grid_options_defaults"],[34,0,0,"-","gridcode"],[35,0,0,"-","metadata"],[36,0,0,"-","slurm"],[37,0,0,"-","spacing_functions"],[38,0,0,"-","version_info"]],"binarycpython.utils.population_extensions.HPC":[[25,2,1,"","HPC"]],"binarycpython.utils.population_extensions.HPC.HPC":[[25,3,1,"","HPC_can_join"],[25,3,1,"","HPC_check_requirements"],[25,3,1,"","HPC_dir"],[25,3,1,"","HPC_dirs"],[25,3,1,"","HPC_dump_status"],[25,3,1,"","HPC_get_status"],[25,3,1,"","HPC_grid"],[25,3,1,"","HPC_id_filename"],[25,3,1,"","HPC_id_from_dir"],[25,3,1,"","HPC_job"],[25,3,1,"","HPC_jobID"],[25,3,1,"","HPC_jobID_tuple"],[25,3,1,"","HPC_job_task"],[25,3,1,"","HPC_job_type"],[25,3,1,"","HPC_join_from_files"],[25,3,1,"","HPC_join_previous"],[25,3,1,"","HPC_joinlist"],[25,3,1,"","HPC_load_joinfiles_list"],[25,3,1,"","HPC_make_joiningfile"],[25,3,1,"","HPC_njobs"],[25,3,1,"","HPC_path"],[25,3,1,"","HPC_queue_stats"],[25,3,1,"","HPC_restore"],[25,3,1,"","HPC_set_status"],[25,3,1,"","HPC_snapshot_filename"],[25,3,1,"","HPC_status"],[25,3,1,"","HPC_touch"]],"binarycpython.utils.population_extensions.Moe_di_Stefano_2017":[[26,2,1,"","Moe_di_Stefano_2017"]],"binarycpython.utils.population_extensions.Moe_di_Stefano_2017.Moe_di_Stefano_2017":[[26,3,1,"","Moe_di_Stefano_2017"],[26,3,1,"","get_Moe_di_Stefano_2017_default_options"],[26,3,1,"","get_Moe_di_Stefano_2017_default_options_description"],[26,3,1,"","get_moe_di_stefano_dataset"],[26,3,1,"","set_moe_di_stefano_settings"]],"binarycpython.utils.population_extensions.analytics":[[27,2,1,"","analytics"]],"binarycpython.utils.population_extensions.analytics.analytics":[[27,3,1,"","CPU_time"],[27,3,1,"","make_analytics_dict"],[27,3,1,"","set_time"],[27,3,1,"","time_elapsed"]],"binarycpython.utils.population_extensions.cache":[[28,2,1,"","cache"]],"binarycpython.utils.population_extensions.cache.cache":[[28,2,1,"","NullCache"],[28,3,1,"","default_cache_dir"],[28,3,1,"","setup_function_cache"],[28,3,1,"","test_caches"]],"binarycpython.utils.population_extensions.cache.cache.NullCache":[[28,3,1,"","__delitem__"],[28,3,1,"","__getitem__"],[28,3,1,"","__setitem__"],[28,3,1,"","popitem"]],"binarycpython.utils.population_extensions.condor":[[29,2,1,"","condor"]],"binarycpython.utils.population_extensions.condor.condor":[[29,3,1,"","condorID"],[29,3,1,"","condor_check_requirements"],[29,3,1,"","condor_dirs"],[29,3,1,"","condor_grid"],[29,3,1,"","condor_outfile"],[29,3,1,"","condor_queue_stats"],[29,3,1,"","condor_status_file"],[29,3,1,"","condorpath"],[29,3,1,"","get_condor_status"],[29,3,1,"","make_condor_dirs"],[29,3,1,"","set_condor_status"]],"binarycpython.utils.population_extensions.dataIO":[[30,2,1,"","dataIO"]],"binarycpython.utils.population_extensions.dataIO.dataIO":[[30,3,1,"","NFS_flush_hack"],[30,3,1,"","NFSpath"],[30,3,1,"","compression_type"],[30,3,1,"","dir_ok"],[30,3,1,"","load_population_object"],[30,3,1,"","load_snapshot"],[30,3,1,"","locked_close"],[30,3,1,"","locked_open_for_write"],[30,3,1,"","merge_populations"],[30,3,1,"","merge_populations_from_file"],[30,3,1,"","open"],[30,3,1,"","save_population_object"],[30,3,1,"","save_snapshot"],[30,3,1,"","set_status"],[30,3,1,"","snapshot_filename"],[30,3,1,"","wait_for_unlock"],[30,3,1,"","write_binary_c_calls_to_file"],[30,3,1,"","write_ensemble"]],"binarycpython.utils.population_extensions.distribution_functions":[[31,2,1,"","distribution_functions"]],"binarycpython.utils.population_extensions.distribution_functions.distribution_functions":[[31,3,1,"","Arenou2010_binary_fraction"],[31,3,1,"","Izzard2012_period_distribution"],[31,3,1,"","Kroupa2001"],[31,3,1,"","Moe_di_Stefano_2017_multiplicity_fractions"],[31,3,1,"","Moe_di_Stefano_2017_pdf"],[31,3,1,"","build_q_table"],[31,3,1,"","calc_P_integral"],[31,3,1,"","calc_e_integral"],[31,3,1,"","calc_total_probdens"],[31,3,1,"","calculate_constants_three_part_powerlaw"],[31,3,1,"","const_distribution"],[31,3,1,"","cosmic_SFH_madau_dickinson2014"],[31,3,1,"","duquennoy1991"],[31,3,1,"","fill_data"],[31,3,1,"","flat"],[31,3,1,"","flatsections"],[31,3,1,"","gaussian"],[31,3,1,"","gaussian_func"],[31,3,1,"","gaussian_normalizing_const"],[31,3,1,"","get_integration_constant_q"],[31,3,1,"","get_max_multiplicity"],[31,3,1,"","imf_chabrier2003"],[31,3,1,"","imf_scalo1986"],[31,3,1,"","imf_scalo1998"],[31,3,1,"","imf_tinsley1980"],[31,3,1,"","interpolate_in_mass_izzard2012"],[31,3,1,"","ktg93"],[31,3,1,"","linear_extrapolation_q"],[31,3,1,"","merge_multiplicities"],[31,3,1,"","number"],[31,3,1,"","poisson"],[31,3,1,"","powerlaw"],[31,3,1,"","powerlaw_constant"],[31,3,1,"","powerlaw_constant_nocache"],[31,3,1,"","powerlaw_extrapolation_q"],[31,3,1,"","raghavan2010_binary_fraction"],[31,3,1,"","sana12"],[31,3,1,"","three_part_powerlaw"]],"binarycpython.utils.population_extensions.grid_logging":[[32,2,1,"","grid_logging"]],"binarycpython.utils.population_extensions.grid_logging.grid_logging":[[32,3,1,"","vb1print"],[32,3,1,"","vb2print"],[32,3,1,"","verbose_print"]],"binarycpython.utils.population_extensions.grid_options_defaults":[[33,2,1,"","grid_options_defaults"]],"binarycpython.utils.population_extensions.grid_options_defaults.grid_options_defaults":[[33,3,1,"","default_cache_dir"],[33,3,1,"","get_grid_options_defaults_dict"],[33,3,1,"","get_grid_options_descriptions"],[33,3,1,"","grid_options_description_checker"],[33,3,1,"","grid_options_help"],[33,3,1,"","print_option_descriptions"],[33,3,1,"","write_grid_options_to_rst_file"]],"binarycpython.utils.population_extensions.gridcode":[[34,2,1,"","gridcode"]],"binarycpython.utils.population_extensions.gridcode.gridcode":[[34,3,1,"","add_grid_variable"],[34,3,1,"","delete_grid_variable"],[34,3,1,"","rename_grid_variable"],[34,3,1,"","update_grid_variable"]],"binarycpython.utils.population_extensions.metadata":[[35,2,1,"","metadata"]],"binarycpython.utils.population_extensions.metadata.metadata":[[35,3,1,"","add_ensemble_metadata"],[35,3,1,"","add_system_metadata"]],"binarycpython.utils.population_extensions.slurm":[[36,2,1,"","slurm"]],"binarycpython.utils.population_extensions.slurm.slurm":[[36,3,1,"","get_slurm_status"],[36,3,1,"","make_slurm_dirs"],[36,3,1,"","set_slurm_status"],[36,3,1,"","slurmID"],[36,3,1,"","slurm_check_requirements"],[36,3,1,"","slurm_dirs"],[36,3,1,"","slurm_grid"],[36,3,1,"","slurm_outfile"],[36,3,1,"","slurm_queue_stats"],[36,3,1,"","slurm_status_file"],[36,3,1,"","slurmpath"]],"binarycpython.utils.population_extensions.spacing_functions":[[37,2,1,"","spacing_functions"]],"binarycpython.utils.population_extensions.spacing_functions.spacing_functions":[[37,3,1,"","const_dt"],[37,3,1,"","const_int"],[37,3,1,"","const_linear"],[37,3,1,"","const_ranges"],[37,3,1,"","gaussian_zoom"],[37,3,1,"","peak_normalized_gaussian_func"]],"binarycpython.utils.population_extensions.version_info":[[38,2,1,"","version_info"]],"binarycpython.utils.population_extensions.version_info.version_info":[[38,3,1,"","minimum_stellar_mass"],[38,3,1,"","parse_binary_c_version_info"],[38,3,1,"","return_binary_c_version_info"]],"binarycpython.utils.run_system_wrapper":[[40,1,1,"","run_system"]],"binarycpython.utils.useful_funcs":[[42,1,1,"","calc_period_from_sep"],[42,1,1,"","calc_sep_from_period"],[42,1,1,"","maximum_mass_ratio_for_RLOF"],[42,1,1,"","minimum_period_for_RLOF"],[42,1,1,"","minimum_separation_for_RLOF"],[42,1,1,"","ragb"],[42,1,1,"","roche_lobe"],[42,1,1,"","rzams"],[42,1,1,"","zams_collision"]]},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"0":[0,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,25,26,28,31,34,37,42],"00":[5,11,12,15,18],"000":[5,11,18],"0000":[5,11,18],"00000":18,"000000":18,"000000000000e":11,"000000e":18,"000001":11,"000002":11,"000003":11,"0001":[5,7,42],"000122339":15,"000161974":15,"000214449":15,"000220016":15,"000283924":15,"000287968":15,"000375908":15,"000497691":15,"000498487":15,"00065893":15,"0007":31,"000872405":15,"001":[0,5,7],"00115504":15,"0013":5,"00152924":15,"00182":5,"002":[5,17,18],"00202467":15,"0021272":5,"00215604":5,"00235329":5,"00237669":5,"00239838":5,"00242158":5,"00247821":5,"00247864":5,"00248439":5,"00254115":5,"00254512":5,"00256681":5,"00261516":5,"00268237":5,"00280816":5,"00283345":5,"00286793":5,"00288661":5,"00294":5,"00296406":5,"003":5,"00300971":5,"00303761":5,"00311757":5,"00317508":5,"00319483":5,"0034":5,"004":5,"004698855121516281":15,"005":5,"00518983":5,"0055":5,"00585495":5,"006":5,"0062211552141636295":15,"00632092":7,"00666382":5,"007":[5,16],"00707417":5,"00712":5,"00730797":5,"0074":5,"008":5,"0081514":5,"00823663875514986":15,"00832":5,"0087":5,"009":[5,16],"00984861":5,"00e":12,"01":[0,5,6,7,8,9,12,15,18],"010":5,"0102":5,"010905083645619543":15,"011":5,"0118":5,"012":5,"0122109":5,"012246630357e":15,"0128":5,"013":5,"0131145":5,"014":5,"0141":7,"0143651":5,"0143896":8,"014832":5,"015":5,"0152545":5,"0153961":5,"0155":5,"0156":5,"01561":5,"0156945":5,"0159":5,"016":5,"0162":5,"016309":8,"0163656":8,"0164":5,"0165":5,"0166":5,"0168":5,"0169":5,"017":[5,16],"0171":5,"0175264":8,"0176575":6,"01791":5,"018":5,"0182":5,"0184":5,"0187":5,"019":5,"0192009":5,"019715467199999996":8,"01e":12,"01t09":[6,8,12],"01t10":12,"02":[0,5,6,7,8,9,11,12,15,16,18,31,42],"020":5,"0208":5,"021":5,"0214":5,"0214824":5,"021960493499e":15,"022":5,"023":5,"0232618":5,"02379":5,"024":5,"0241634":5,"0245":5,"024684":5,"02473":5,"0248684":15,"025":5,"0250231":5,"0251003":5,"0259932":5,"026":5,"0261496":5,"027":5,"0276":5,"02786":5,"0278672":5,"028":5,"02823":5,"0283541":5,"029":5,"0290733":5,"0295":5,"0298011":5,"0298364":5,"02e":[8,12],"03":[0,1,5,7,8,12],"030":5,"0303129":5,"030499912298e":15,"031":5,"0316266":5,"0319":5,"032":5,"03221":5,"033":5,"0335":5,"0335017":5,"034":5,"03493":5,"03499999999999":14,"035":5,"03502960360000004":8,"03507":5,"036":5,"0367878":5,"037":5,"0385396":5,"039":5,"0393944":5,"0394":5,"0399":5,"03996e":5,"03e":12,"04":[0,5,7,12,18],"040":5,"041":5,"0411":5,"0414":5,"04198":5,"042":5,"0425":5,"043":5,"0434":15,"044":5,"0440989":5,"044142002936e":9,"04440288843805411":15,"0444029":15,"044572277695e":9,"044654032097e":9,"0448877":5,"0449442":5,"045":5,"045084306856e":9,"0459174":5,"046":5,"0461":5,"0469097":5,"047":[5,15,16],"0474164":5,"0474572":5,"048":[5,16,18],"049":5,"04924":5,"04e":12,"05":[0,5,7,8,9,12,15],"0501":5,"050651207308e":9,"051":[5,6],"0511173":5,"0512":5,"052":5,"0523":5,"0528412":5,"053":5,"0531294":5,"0533803":5,"0535":5,"0536749":5,"054":[5,31],"0547419":5,"055":5,"055188":5,"056":[5,16],"0563088":5,"057":5,"0570946":18,"0572914":5,"057949":5,"058":5,"0583837":5,"0585":5,"059":5,"05e":12,"05e51ba114934b37bab48f1db40b7333":15,"06":[0,5,8,9,11,12],"0608":5,"061":5,"061141":5,"0613":5,"062":5,"0621119":5,"0625403":5,"06257":5,"0626266":5,"063":5,"064":5,"0641":5,"06459059967730083":8,"0645906":8,"0649":5,"065":5,"06527":5,"066":5,"06696":5,"067":5,"0670735":5,"068":5,"0683196":5,"069":5,"06987":5,"06e":12,"07":[5,12,13,14,18,31,37],"070":[5,15],"0701913":5,"071":5,"07108":5,"0714679":5,"0717":5,"0719":5,"072":5,"0722":5,"0727126":5,"0727584":5,"074":5,"0744186":5,"0745":5,"07484":5,"075":5,"075416":5,"0755737":5,"076":5,"077":5,"0770302":5,"0772021":5,"0772781":5,"078":5,"0784":5,"0784722":5,"0787729":5,"0789786":5,"079":[5,6],"0791":5,"07e":12,"08":[0,5,8,12,18],"080763":11,"0808":5,"081":[5,6],"081024":6,"082":5,"0820":[0,7],"0823499":5,"0831":5,"0834973":18,"0837":5,"084":5,"0849409":5,"085":5,"086":5,"086004":5,"0868":5,"087":5,"0877":5,"0877243":5,"0878":5,"088":5,"089":5,"0890815":5,"0896":5,"08e":12,"08msun":[0,7],"09":[5,6,8,12],"090":5,"0900":18,"0902":[0,7],"0907":5,"0907537":5,"091":5,"0910814":5,"0913095":5,"09164":5,"092":5,"09295167374":12,"093":[6,16],"0931922":5,"094":[5,8],"094409257247e":15,"095":5,"0958704":5,"096":5,"09665":5,"0967":15,"097":5,"09706e":5,"09786":5,"098":[5,6],"0987206":5,"099":5,"0991059":5,"0993":5,"099417":8,"0995":5,"0m":12,"0mb":[8,12],"0msun":37,"0x146f912dbc60":7,"0x149c2e81ec10":11,"0x149c95c56c10":8,"0x14bf2250fdc0":6,"0x1528ac7290d0":15,"1":[0,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,25,29,30,31,32,34,36,37,39,40,42],"10":[0,2,5,6,7,8,9,11,12,13,14,15,16,17,18,21,31,37,40],"100":[0,5,6,7,8,12,13,14,31,37],"1000":[0,7,8,21,37],"100000000000":[17,18],"1001":12,"1005":5,"101":5,"101038":5,"1012":5,"101323":5,"101955":5,"102":5,"1021":5,"1024mb":21,"1025":12,"102750e":18,"103":5,"1035":5,"103702":5,"103789":5,"104":[5,8],"1043":5,"104427":5,"104997":5,"105":[5,13,14],"105082":5,"10522":5,"105704":5,"106":5,"1062":5,"106368":5,"106545":5,"10689":5,"107":5,"107187":5,"1075":5,"10782":5,"108":[5,15],"1082":5,"1085":11,"108571":5,"10877":5,"1088":5,"109":[5,8],"10941":5,"109679":5,"1098":5,"1099":5,"10e":12,"11":[0,5,6,8,9,11,12,14,15,16,18],"110":5,"11003":11,"1104":5,"1108":5,"111":5,"111023":5,"111583":5,"11182":5,"112":5,"11239":5,"1124":5,"113":5,"1130":5,"11346":5,"113492":18,"1135":5,"11376":5,"114":5,"114678":5,"11491":5,"115":[5,31],"11506":5,"115297":5,"11558":5,"115722":5,"11582":11,"116":5,"11686":5,"11695":5,"117":5,"11707":5,"1173":5,"1178":5,"118":5,"11802":5,"118229":5,"11854":5,"119":5,"1193":5,"1199":5,"11e":12,"12":[0,5,6,9,11,12,14,15,16,18,19,31],"120":5,"120000":[0,7],"120066":5,"1204":[5,18],"121":5,"121263":5,"12136":5,"1219":5,"122":5,"1222":5,"123":5,"123048":5,"12325":11,"123635":5,"1237":5,"123794969278e":15,"1239555":8,"124":5,"1241251901":16,"124379":18,"124496":5,"12457":11,"12460":11,"12461":11,"124931":5,"12495":5,"125":[0,5,7],"12500":0,"12522":5,"1254":5,"12548":5,"125553":5,"125886":5,"125968":5,"126":5,"126532":5,"127":5,"12741":5,"127442":5,"127957":5,"128":5,"12806":5,"129":5,"12974":5,"129879":5,"12e":[1,6,9,11,12,13,14,15],"13":[0,5,6,7,8,9,11,12,14,15,16,18],"130":5,"1301":11,"1302":11,"1306":5,"130725":5,"131":5,"13108":18,"1314":5,"131680e":18,"132":5,"132057":5,"1326":5,"13267":5,"1327":5,"13298":5,"133":5,"1334":5,"134":[5,15],"13416":5,"1345":11,"1346":11,"13461":11,"1347":11,"1348":11,"1349":11,"135":5,"135101":5,"135164":5,"1354":12,"1355":12,"13567":9,"136":5,"1360":5,"13607":5,"13626":15,"137":5,"13700":[6,8],"137502":5,"1379":5,"13796e":5,"138":5,"1380":18,"139":5,"139044":5,"1392":5,"139293101586e":15,"139732":5,"1398":5,"13e3":[0,7],"14":[0,5,6,7,9,11,12,14,15,16,18],"140":5,"1403":31,"141":5,"14112":5,"141361":5,"1415":5,"142":5,"14212":5,"143":5,"144":5,"144141":5,"14439":5,"14461":11,"1449":[5,12],"145":5,"145296":5,"145632":5,"146":5,"1468":5,"146844":5,"147":5,"1471":5,"1473":5,"14764":5,"1478":5,"148":[5,18],"1485":5,"148721":5,"149":5,"1492":5,"1494":12,"1498":5,"14e":12,"15":[0,5,7,8,9,11,12,14,15,16,18,21,31],"150":[5,8,12,13,14,15],"15000":[0,5,7,9,11,15,16,18],"1502":5,"150217":5,"15042":5,"150681":5,"151":5,"1514":5,"151616":5,"1517":5,"15186":5,"152":5,"1521":5,"1527":5,"153":5,"153329":5,"153852":5,"1539":12,"154":5,"155":5,"1551":5,"1553":5,"155342":5,"155662":12,"155678":8,"15594":5,"156":[5,8,18],"1560":5,"1567":5,"1569":5,"157":5,"1571":5,"1575":5,"158":5,"1585":12,"1586":5,"158640":8,"15884":5,"159":[5,8],"15907":5,"1599":5,"15e":12,"15msun":31,"16":[0,5,8,12,14,15,16,18,31],"160":5,"1606":5,"160675":12,"161":5,"1610":5,"1612":5,"1618":5,"162":5,"162006":5,"162038":5,"1622":5,"1624":[5,12],"162454":12,"16265":5,"1627":11,"162734":11,"162941":5,"163":[5,8],"1631":5,"1633":5,"163481":8,"1635760192":6,"1635760194":6,"1635760256":8,"1635760377":8,"1635760613":12,"1635760806":14,"1635760813":14,"1635760967":15,"1635760970":15,"1635761189":12,"1637":5,"164":5,"164714":5,"165":5,"16539":5,"16564":5,"166":[5,8],"1663":5,"166559":5,"167":[5,12],"1670":5,"16729":5,"16733":5,"1674":[5,12],"1678":5,"168":[5,8],"16833":5,"16837":5,"168379":8,"168558":5,"168972":5,"169":5,"1691":5,"1695":5,"169775":12,"17":[5,6,8,12,14,15,16,18],"170":5,"1703":12,"1708":5,"171":5,"171096":5,"1713":5,"1715":5,"172":5,"172014":5,"1722":5,"1729":5,"173":5,"1736":5,"174":5,"174169":5,"1747":5,"1749":12,"175":5,"175004":5,"1753":5,"17588":5,"176":5,"176751":12,"177":[5,8],"177444":5,"1775":5,"177551":5,"177727":5,"178":5,"1780":12,"1781":5,"1783":5,"1784":5,"1786":5,"179":5,"179142":5,"1792":5,"17932":5,"1796":5,"18":[5,12,14,16,18],"180":5,"1804":5,"180453":5,"1806":5,"1807":5,"1808":5,"1809":5,"181":5,"1810":5,"18108":5,"1811":5,"1812":5,"181244":5,"1813":5,"18139":5,"1814":[5,12],"18148":5,"1815":5,"1816":5,"1817":5,"181795":5,"1818":5,"1819":5,"181971798545e":15,"182":5,"1821":5,"1822":5,"1823":5,"1824":5,"1825":5,"1826":5,"1827":5,"1828":5,"1829":5,"183":5,"1830":5,"183048":5,"1831":5,"1833":5,"1834":5,"1835":5,"1838":5,"1839":5,"183974":5,"184":5,"1841":5,"1843":5,"1844":5,"184464":5,"1845":5,"1846":5,"1847":5,"184829":5,"185":5,"1851":[5,12],"1854":5,"1858":5,"186":[5,12],"1865":9,"187":5,"1876":5,"187694":5,"1877":5,"1879":12,"187993":5,"188":5,"1882":5,"189":5,"189239":5,"19":[5,8,12,15,18],"190":[0,5,18],"19097":5,"191":5,"1910":12,"1915":5,"191543":5,"192":5,"1920":5,"1923":5,"193":5,"193528":5,"19366":5,"19393":5,"194":5,"1947":12,"195":5,"1951":[0,7],"19521":5,"196":5,"196046":5,"196177":5,"19622":5,"196311":5,"1967":5,"1968":12,"197":5,"1972":[0,7],"1973":5,"1975":[0,7],"1977":5,"197729":5,"197x":[0,7],"198":5,"1980":31,"1983":42,"1986":[0,7,31],"1987":5,"1989":[0,7,12],"199":5,"19907":5,"1991":31,"1992":[0,7],"1993":[0,7],"1996":42,"1998":[0,5,7,31],"1999":[0,7],"19e":12,"1aearth":16,"1ajupit":16,"1amar":16,"1amercuri":16,"1aneptun":16,"1apluto":16,"1asaturn":16,"1auranu":16,"1avenu":16,"1ckzg0p9":[22,39],"1dex":[12,13,14],"1e":[0,7,8,9,11,12,18],"1e2":[0,7],"1e9":[0,7],"1gyr":37,"1m":12,"1mb":[8,12],"1mearth":16,"1mjupit":16,"1mmar":16,"1mmercuri":16,"1mneptun":16,"1mpluto":16,"1msaturn":16,"1msun":37,"1muranu":16,"1mvenu":16,"1s":[8,12],"1y":[0,7],"2":[0,1,2,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,22,24,25,29,31,36,37,39],"20":[0,5,6,8,9,12,13,14,15,16,18,37],"200":[0,5,7],"2000":[0,5,7],"2001":[13,14,31],"2002":[0,7],"2003":[0,7,31],"2004":[0,5,7],"2005":[0,5,7],"2008":5,"2009":[0,7],"201":5,"2010":[0,7,21,31],"2012":[0,7,31],"2013":[0,7],"2014":[0,5,7,31],"2015":[0,5,7],"2016":[0,7],"201620bd7":0,"2017":[0,7,12,15,21,31],"2018":[0,1,5,7],"2019":[0,5,7,18],"202":5,"2020":[0,7],"2021":[5,6,8,12],"202196":5,"2022":0,"20220107":0,"202339":5,"202569":5,"20265":5,"202750e":18,"2029":5,"203":5,"2033":5,"204":5,"2044":5,"20447":5,"204663":5,"2048":12,"205":5,"2053":5,"205353":5,"205527":5,"205537":5,"2057":5,"206":[5,16],"2063":5,"20677":5,"207":5,"2071":12,"2075":5,"208":5,"2081":5,"208169":5,"208453":5,"20887":5,"208923":5,"209":5,"2091":12,"209274":5,"20938":5,"20980":5,"20e":[8,12],"21":[0,1,5,6,12,18],"210":[5,18],"21043":5,"211":[5,14],"2112":5,"2118":18,"212":5,"212034":5,"2122":12,"2127":5,"213":5,"2132":5,"21333":5,"213396":5,"2135":5,"213854":5,"214":5,"214274644851685":18,"2143":12,"2147":5,"215":5,"215504":5,"2156":5,"215638":5,"2157":5,"21587440567681537":15,"21587440567681548":15,"2158744056768156":15,"216":5,"21603":5,"216067":5,"2164":12,"216496":5,"216951":5,"217":5,"21764":5,"218":5,"2182":5,"218222":14,"21824":5,"2183":12,"21844":5,"219":5,"219029061236e":15,"219058":5,"2191":5,"21927":5,"21948":5,"21e":12,"22":[5,12,18],"220":5,"22036":5,"2206":12,"22098":5,"221":5,"2210":5,"2214":5,"2216":5,"221832":5,"222":5,"2221":5,"2224":5,"22281":5,"223":5,"2232":12,"2234":5,"224":5,"2245":12,"224923":5,"225":5,"225135":5,"22518":5,"22543":5,"2258":12,"226":5,"2261":5,"22611318083528548":8,"226424":5,"2266":5,"2268":5,"2269":12,"227":5,"227249":5,"2275":5,"22787":5,"227955577093495":15,"228":5,"2282":12,"228555":5,"229":5,"2291":5,"22936":5,"2295":5,"229591":5,"22e":8,"23":[5,12,15],"230":5,"2300":12,"230102":5,"2305":5,"230955":5,"231":5,"231680e":18,"231704":5,"232":5,"2329":12,"233":5,"2332":5,"2333":5,"2338":5,"234":[5,8],"2348":12,"235":[5,6],"23513":5,"2352":5,"235464":5,"235689312423":8,"236":[5,18],"2365":[12,18],"237":5,"2371":5,"237203":5,"237951":5,"238":5,"2383":12,"238584":5,"23894":5,"239":5,"239197":5,"239704":5,"24":[5,8,12],"240":5,"2400":12,"2403e":15,"2406":5,"24098":5,"241":5,"2413":5,"24165":5,"242":5,"2421":5,"242151":5,"2423":12,"242309":5,"2424":11,"243":[5,6],"243214":5,"243583":5,"2437":5,"2438":12,"2439":5,"244":[5,16],"2444":16,"244645":5,"245":5,"245209":5,"245223":5,"2454":12,"246":5,"2466":12,"246604":5,"246625":5,"246671":6,"247":5,"2472":5,"2477":[5,12],"248":[5,8],"248871":5,"249":5,"249106":5,"2492":12,"2493":5,"249848":5,"24e":12,"25":[0,5,8,12,18],"250":5,"25014bc73b334765a1c09a4e4a97ed66":12,"251":[5,8],"2514":5,"2516":12,"25164":5,"252":5,"2528":5,"252877":5,"2529":5,"253":5,"2537":12,"253705":5,"254":5,"2544031669784":15,"255":[0,5,7],"2551":5,"2552":5,"2554":12,"2556":5,"256":[5,6,21],"256488":5,"256783":5,"25694":5,"257":[5,42],"2570":12,"2572":15,"257278":5,"257437":5,"2576084265970895":15,"258":[5,8],"2583":5,"259":5,"2590":12,"25msun":[0,7],"26":[5,12],"260":5,"26051":5,"260676":5,"261":5,"2613":5,"261343":5,"26171201413c43f5b91552a374879940":6,"2618":5,"262":5,"2622":[5,12],"2626":5,"2629":5,"263":5,"263079":5,"2632":5,"263235":5,"2636":12,"264":5,"26416":5,"26441":5,"26456":5,"2646":18,"265":5,"2652":12,"266":5,"2663":5,"26637":5,"2664":5,"266485":5,"2666":12,"267":[5,8],"2670":5,"2671":5,"2672":5,"2673":5,"2674":5,"2676":5,"2677":5,"2678":5,"2679":5,"268":5,"2680":5,"2681":5,"2682":5,"2683":5,"2684":5,"2685":5,"2686":5,"2687":5,"2688":5,"2689":5,"269":5,"2690":5,"2691":[5,12],"2692":5,"2693":5,"2694":5,"2695":5,"2696":5,"2697":5,"2698":5,"2699":5,"27":[5,8,12,15],"270":5,"2700":5,"2701":5,"2702":5,"27025":5,"2703":5,"2704":5,"2705":5,"2706":5,"2707":5,"2708":5,"2709":5,"271":5,"2710":5,"2711":5,"2712":5,"2713":5,"2714":5,"27143e":15,"2715":5,"2716":5,"2717":5,"2718":5,"2719":5,"272":5,"2720":5,"2721":5,"2722":5,"2723":5,"2724":5,"2725":5,"2726":5,"2727":5,"2728":5,"2729":5,"272943":5,"273":5,"2730":5,"2731":5,"2732":5,"2733":[5,12],"2734":5,"274":5,"274206":5,"274445":5,"2746":12,"274854":5,"275":5,"2754":5,"27569e":5,"2757":12,"276":5,"2767":5,"277":5,"2773":5,"27734":5,"2775":12,"27767":5,"278":5,"27829":5,"279":5,"2791":5,"2795":12,"28":[5,7,8,9,11,12,21],"280":5,"2800":5,"2801":5,"2802":5,"28060251":31,"280723":5,"280749":5,"281":[5,42],"281309":5,"28134439269236855":15,"2816":5,"2819":5,"282":5,"282234":5,"2823":5,"282623":5,"283":5,"2831":12,"2834":5,"2835":5,"2836":5,"28369":5,"283972":5,"284":5,"2845":12,"2846":5,"285":5,"286":5,"2861":12,"287":5,"2871":5,"2873":5,"2875":12,"2878":5,"288":5,"2881":5,"288353":5,"28867":5,"289":5,"2891":12,"2898":5,"28984":5,"28e":8,"29":[5,8,12,15],"290":5,"290684":5,"291":5,"29136":5,"2914":5,"292":5,"2921":5,"2924":5,"292641":5,"2927":5,"293":5,"2930":12,"2934e":18,"293512":5,"294":[5,6],"29427":15,"29448":15,"29457":15,"2947":[12,15],"295":5,"295543":5,"296":5,"2961":5,"2965":12,"296544":5,"2967":5,"2969346":31,"297":5,"297187":5,"297506":5,"298":5,"29816":5,"298194":5,"2982":12,"299":5,"2991":5,"2996":5,"29e":12,"2b66f805db424c48a1d29c45092b6e3c":8,"2d":[0,7],"2e":[9,12,18],"2f":18,"2m":[8,12],"2mb":[8,12],"2msun":[0,7],"2s":12,"3":[0,1,2,5,6,7,8,9,10,11,12,13,14,15,18,19,21,22,29,31,36,37,39],"30":[1,5,6,8,9,11,12,13,14,15,16,18],"300":[5,37],"3000":[0,7,16],"3002":5,"3008":5,"301":5,"3010":12,"301129":5,"301483":5,"3017":5,"302":[5,18],"3025":5,"302750e":18,"303":5,"3034":5,"3035":12,"303533":5,"3038":5,"30388e":5,"304":5,"3042":5,"30441":5,"3046":5,"3048":5,"305":5,"305334":5,"3059":12,"306":5,"30642":15,"3065":5,"306619":5,"3069":5,"307199":5,"3078":12,"308":5,"3081e":18,"3082":5,"308203":5,"3084":5,"309":5,"30902":15,"309361":5,"309461":5,"3096":5,"30975":5,"30e4":[0,7],"31":[0,5,7,8,12,18],"310":5,"3100":[5,12],"310029":5,"3101":5,"311":5,"312":[5,6],"3124":12,"312637":5,"3127":5,"313":5,"313623":12,"314":5,"31408":5,"314533":5,"3148":12,"315":5,"315124":5,"315223":5,"3154":5,"315404":5,"315903":5,"315973":5,"316":[5,8],"316118":5,"317":5,"3171":5,"3172":5,"3174":12,"3176":5,"317663":5,"317921":5,"318":5,"3185":5,"318753":5,"319":5,"3192":5,"3193":5,"31958":5,"3197":12,"31e":12,"32":[5,8,12,15,19,21],"320":5,"3205":15,"32076":5,"321":5,"321082":5,"3211":5,"32118":5,"3216":5,"321643":5,"322":5,"3223":5,"3228":[5,15],"32282":5,"323":5,"3231":[5,12],"323359":8,"3235":5,"324":5,"3243":5,"3244":5,"3245144":15,"3246":5,"3247":5,"3248":5,"325":5,"325197":5,"3256":12,"325743":5,"325965":5,"326":5,"326147":5,"32620":5,"32631":5,"3264":5,"326601":5,"32684":5,"327":5,"3273":[5,12],"328":5,"328066":5,"3282":5,"328512":5,"329":[5,8],"3294":12,"32e":12,"33":[5,12],"330":5,"331":5,"331680e":18,"332":5,"332091":5,"3321":12,"332251":5,"332777":5,"33295":5,"333":5,"333032":5,"3331":5,"334":5,"33451":5,"33469":9,"3348":12,"335":5,"335153":5,"3352":5,"335342":5,"335428":5,"33552":5,"335642":5,"335847":5,"336":5,"336295":5,"3368":5,"33699":15,"337":5,"33719":5,"337249":5,"3373":12,"338":[5,9],"33817":18,"33879":5,"339":5,"3394":12,"339587":5,"3396":5,"34":[5,6,7,8,9,11,12,13,15,16],"340":5,"34018":5,"340477":5,"34081":5,"341":5,"3412":5,"34126":5,"34175":5,"3419":5,"342":[5,12],"34213":9,"342134":5,"3422":12,"342474":5,"3429":5,"343":5,"3438":5,"344":5,"34421":18,"3445":12,"344772":5,"3448":5,"345":5,"34537":5,"345842":12,"346":5,"3461":5,"3462":5,"3464":12,"3469":5,"347":5,"3471":5,"347169":5,"347405":5,"347623":5,"348":[5,8],"3483":12,"34870":5,"349":5,"3495":5,"3497":5,"34e":8,"35":[5,8,12,31],"350":[5,12],"3502":5,"35051":5,"3507":5,"3509":12,"351":5,"351532":5,"3518":5,"352":5,"3529":5,"353":5,"3533":12,"353432":5,"3536":5,"354":5,"3540":18,"354576":5,"35487":5,"354981":5,"355":5,"3550":12,"35505":5,"355513":5,"3559":5,"356":5,"3563":5,"3568":12,"356812":5,"357":5,"358":5,"3583":5,"3588":12,"3589":5,"35895":5,"359":5,"3591":5,"359784":5,"359881":5,"3599":5,"36":[5,8,12,15],"360":5,"360093":5,"36016":5,"361":5,"3616":5,"362":5,"3622":12,"362601":5,"36298":5,"363":5,"3630":18,"3631":18,"36314":5,"3632":18,"36323":5,"3633":18,"3634":18,"3635":18,"364":5,"3640":12,"364017":5,"36403":5,"364747":5,"3649":5,"365":5,"3657":12,"365763":5,"365949":5,"366":5,"366259":5,"366392":5,"367":5,"367065497322e":15,"367268":5,"3674":5,"36747":5,"3676":12,"367793":5,"368":5,"368345":5,"3688":5,"369":5,"3695":5,"36957":5,"3698":5,"36e":12,"37":[5,8,12],"370":5,"3702e":18,"3706":12,"371":5,"371427":5,"371458":5,"371625":5,"3719":5,"372":5,"3726":[5,12],"3729":5,"373":5,"373282":5,"374":5,"37409":5,"3746":12,"374905":5,"375":5,"3752":5,"375537":5,"3757":5,"375712":5,"3758":5,"376":5,"376059":5,"3763":12,"376604":5,"3767":5,"377":5,"3771":5,"378":5,"3781":5,"3786":12,"37874":5,"379":5,"379292":5,"37e":12,"38":[0,5,8,12],"380":5,"38009":5,"380393":5,"380887":5,"381":5,"3811":12,"382":5,"382144":5,"382472":5,"383":5,"38316":5,"3832":12,"384":5,"3849":12,"385":5,"386":5,"387":5,"3875":12,"38788e":15,"388":5,"388321":5,"389":5,"38908":5,"389208":5,"38921":5,"389749":5,"38m":12,"39":[5,6,7,8,10,11,12,13,14,15,16,17],"390":5,"3905":12,"391":5,"3914":18,"39152e":5,"391798":5,"392":[5,18],"39205":15,"392194":5,"392487":5,"3927":18,"3928":[5,18],"3929":18,"393":5,"3930":[12,18],"3931":[12,18],"3932":18,"393886":5,"394":5,"394722435913e":15,"395":5,"39521":5,"3954":12,"3957":5,"3959":5,"396":5,"396133472739e":15,"396288708628e":15,"3963":5,"396675941641e":15,"3967":5,"397":5,"3971":5,"39754":15,"3977":12,"397754":5,"3978":5,"398":5,"39831":5,"39834":5,"398381":5,"398419":5,"398927":5,"399":5,"3995":5,"3999999999996":14,"3d":[0,7],"3e":18,"3m":12,"3mb":[8,12],"3msun":31,"3s":[8,12],"4":[0,1,5,6,7,8,9,10,11,12,13,14,15,16,18,20,30,31,37],"40":[5,8,12,13,14],"400":5,"4000":[0,12],"40049":5,"401":5,"4011":5,"401263":5,"4013":5,"401728":5,"4018":5,"402":5,"40238":5,"402750e":18,"402961":5,"403":5,"40339":5,"404":5,"4046":5,"404641347602e":15,"4048":5,"404962":5,"405":5,"405068":5,"405577":5,"406":[5,12],"407":5,"40735":5,"4076":5,"408":5,"409":5,"4098":5,"40e":12,"41":[5,12],"410":[5,18],"4101":5,"4102":5,"4108":5,"410828":5,"411":5,"411151":5,"412":5,"41238":5,"413":[5,6],"413467":5,"414":5,"41457":5,"4146":5,"41485":5,"414875":5,"415":5,"416":5,"416141":6,"4162":5,"417":5,"41726":5,"4176":5,"418":5,"418029":5,"4182":5,"4183":5,"4184":5,"4186":5,"41862":5,"418757":5,"4188":5,"419":5,"4192":5,"4197":5,"41996":5,"41e":12,"42":[0,5,8,12],"420":5,"420182":5,"4202":5,"420316":5,"4205":5,"42052":5,"42097":5,"421":5,"421365":5,"421436":5,"421475":5,"4218":5,"4219":5,"422":5,"422436":5,"42266":5,"4229":5,"423":5,"42362":5,"424":[5,6],"4243":5,"424712":5,"424924":5,"425":5,"4251":5,"4256":5,"425788":5,"426":5,"427":5,"427601421985e":15,"42785":5,"428":5,"428699":5,"429":[5,12],"429122":5,"429398":5,"42e":12,"42msun":[0,7],"43":[5,12],"430":5,"4304":5,"430936289925951":15,"431":5,"4311":5,"431313":5,"431680e":18,"43173":5,"432":5,"4321":5,"432729":5,"433":[5,15],"4330":5,"433207":12,"4333":5,"433477":5,"434":5,"43422e":15,"435":5,"4357":5,"435809":5,"436":5,"43618":5,"4365":5,"4369":5,"437":[5,12,15],"43711":15,"4379":5,"438":5,"4380":5,"4385":5,"438686":5,"4387":5,"438861":5,"439":5,"4397":15,"44":[5,12],"440":5,"441":5,"441158":5,"44170":5,"442":5,"44211":5,"4422":5,"44223e":5,"443":5,"4433":5,"4438":5,"444":[5,18],"444217227690e":15,"445":5,"4454":5,"4455":5,"44558":5,"445821":5,"446":5,"447":5,"447918":5,"448":5,"448242":5,"448401":5,"44852":5,"449":[5,12],"4493":5,"44e":12,"44msun":[0,7],"45":[5,6,8,12,15],"450":5,"4500":7,"45000000080":15,"4501":5,"4504":15,"450629":5,"4507":5,"450818":5,"450828476487e":15,"4509":5,"451":[5,8],"45114":5,"451192744924e":15,"451732":5,"452":5,"453":5,"4530":[9,11,18],"453059":12,"453317880232e":15,"453348":5,"453412":5,"453932":5,"454":5,"4540":5,"454013":5,"45407":15,"454268":5,"454409":5,"455":5,"45534":5,"455552":5,"456":12,"456313":5,"456519":5,"457":5,"45757":5,"457987":5,"458":5,"458064":5,"458272":18,"4588":5,"45889":5,"459":5,"459382":5,"45msun":[0,7],"46":[5,8,12,15],"460":5,"460081":5,"46057":5,"46089":5,"462":[5,18],"4621":15,"4622":5,"46220":5,"4623":5,"462779538274e":15,"463":5,"463455":5,"464":5,"464494":5,"465":5,"465133":5,"46573":15,"465867":5,"46607":5,"4666":5,"4670":5,"4673":5,"467851":5,"468":5,"4680":8,"46822":5,"4683":5,"469":5,"46901":5,"469056":5,"469524":5,"47":[5,8,12],"470":5,"471":5,"4710":5,"471379":5,"4714":5,"472":[14,18],"472105":5,"472318":5,"4734":5,"473762":5,"474":5,"47419":5,"475":5,"4752":5,"475287":5,"47534":5,"4755":5,"4759":5,"476":5,"4764":5,"476589":5,"477":5,"477089":5,"4773":5,"47745":15,"477535":5,"477791":5,"478":5,"478253":5,"478315":5,"4788":5,"478807":5,"479":5,"47946":5,"4797":5,"479973":5,"48":[5,12],"480":5,"480045":5,"48046":5,"4807":5,"4809":5,"481":5,"482":5,"4822":5,"4825":5,"482668":5,"483":5,"48336":5,"4838":[7,9,11],"484":5,"4845":5,"485":5,"48586":5,"486":5,"4862":5,"4865":5,"4867":5,"4872":5,"48749":5,"4877":5,"488":5,"48809":5,"489":5,"489077":5,"48926":5,"48e":[8,12],"49":[5,6,12],"490":5,"491":5,"491811":5,"492":5,"492242":5,"492302":5,"492484":5,"492707":5,"492818":5,"493":5,"493648":5,"493975":5,"494":5,"4945":5,"4949":5,"495":5,"4957":5,"4959":5,"495924":5,"496":5,"4961":5,"496312":5,"4966016":14,"497":5,"497008":5,"497294":5,"498":5,"4981":5,"498232":5,"499":5,"49e":12,"4b8c7f4a86e445099d73f27dffaad94b":14,"4e":[0,7,18],"4e3":[0,7],"4m":12,"4mb":[8,12],"4s":[8,12],"5":[0,1,5,6,7,8,9,10,11,12,13,14,15,16,18,19,28,30,31,34],"50":[0,5,7,8,12,14],"500":[0,5,7],"500000e":18,"501":5,"5017":5,"502":5,"502451":5,"502775":5,"502841":5,"503":5,"503726":5,"504":5,"5043":5,"5046":5,"505":5,"5051":5,"50537":5,"506":5,"5064":5,"50652":5,"5066257":14,"50682":5,"50687":5,"507":5,"507104":5,"507443":5,"508":[5,15],"5089":5,"509":5,"5094":5,"50973":5,"50e":12,"50fb66cc659c46c8bbc29fe0c8651c2f":15,"51":[5,8,12],"510":5,"511":5,"511114":5,"5112":5,"5114":5,"5117":5,"512":5,"512561":5,"512617":5,"512mb":21,"513":5,"514":5,"514087":5,"51478":5,"514898":5,"514916":5,"515":12,"515062":5,"5164":5,"517":5,"51742":5,"517454":5,"5175":5,"518":5,"51803":9,"51809":5,"51819":5,"518397":5,"518757914":13,"518851":5,"519":5,"51e":12,"52":[5,6,8,12],"52058":5,"5208":5,"520903":5,"5217":5,"522":5,"5221":5,"523":5,"523485":5,"523561":5,"524":5,"52414":15,"52415":15,"5244":5,"524629":18,"524755":5,"525":5,"526":5,"527":5,"528":5,"528102":5,"5286":5,"529":5,"5294":15,"52e":12,"53":[5,6,8,12],"530":5,"5301":5,"5309":5,"531":5,"531293":5,"531411":5,"5317":5,"532":5,"5324":5,"533":5,"5333":5,"534":5,"534699":5,"535":5,"5358":5,"536":5,"5366":5,"53715":5,"5374":5,"537743":5,"538":5,"53854":5,"539":5,"539343":5,"539941":5,"53e":12,"54":[5,12],"54027":5,"5403":5,"541":5,"541792":5,"542":5,"5423":5,"542419":5,"543":5,"54307":5,"54371":5,"544":5,"54439":5,"544482":5,"545":5,"5456":5,"545743":5,"546":5,"5462":5,"547002":5,"547729":5,"548":5,"5483":15,"548589":5,"548740826516e":15,"548864":5,"549":5,"5493":5,"54949":5,"55":[5,6,8,12,14,15,31],"550575":5,"551":[5,6],"551072":5,"552":5,"552711":5,"5528":5,"553":5,"5532":5,"554":5,"55458":9,"55473":5,"555":[5,8],"5556":5,"5557":5,"557":5,"558":5,"559":5,"5593":5,"55982":5,"559889":5,"55e":12,"56":[5,8,12,15],"560118":5,"5603":5,"561":5,"5612":5,"5619":5,"562":5,"562029":18,"56228":5,"564":5,"565":5,"56518":5,"5652":5,"566":[5,18],"566263":5,"56631":5,"566495":5,"567":5,"567303":5,"567898":5,"568":5,"5681":5,"56865":5,"569":5,"569581":5,"5696":5,"56e":12,"57":[5,6,8,12],"570":5,"570222":5,"5703":5,"57062":5,"57093":5,"571":5,"5712":5,"57141":5,"5717":15,"572":5,"573":5,"5734":5,"5735":5,"573703":5,"5738":5,"573874":5,"574":5,"57443":9,"574826":5,"575":5,"57538":5,"57571":15,"576":5,"577":5,"57739":5,"5775":5,"577826":5,"578":5,"57878":5,"579":5,"579099761269e":15,"5791":5,"5794":5,"5795":5,"5796":5,"5798":5,"58":[5,12],"581":5,"5812":5,"581558":5,"58166":5,"582":5,"582318":5,"583":5,"58332":5,"583346":5,"583436":5,"5845":0,"584622":5,"585":5,"58504":5,"58518":15,"585985":5,"586":5,"587":[5,14],"588":5,"588396":5,"5885":5,"589":5,"58e":8,"59":[5,6,12],"590":5,"5904":5,"590877":5,"591":5,"5919":5,"592":5,"592309":5,"592733":5,"593":5,"594":5,"59429":5,"59452":9,"595":5,"596":[5,12],"59616":5,"596161":5,"597":5,"5977":5,"598":5,"5982":5,"59867":5,"59e":12,"5dex":[8,12,13,14],"5e":12,"5m":12,"5mb":[8,12],"5msun":[0,7],"5s":12,"6":[0,1,5,6,7,8,9,10,11,12,13,14,15,18,22,39],"60":[5,12,15,30],"600":5,"6000":[0,7],"600000":0,"60007":15,"600258":5,"600593":5,"6008":5,"601":5,"60101":5,"602":5,"603":[5,12],"6032":5,"604":5,"60468":5,"605":5,"60547":5,"6058":5,"606":[5,12],"606169":5,"60636":5,"607":12,"608":[5,12],"608269":5,"608402":18,"608485":5,"608655":5,"60876":5,"609":5,"6094":5,"61":[5,12],"610184":5,"610285":5,"611":[5,12],"61117":5,"611632":5,"611763":5,"611785":5,"612":[5,12],"612281":5,"613":[5,12],"613167":5,"614":[5,12],"6145":5,"615":5,"615165":5,"61521":5,"616":[5,12],"6161":5,"616737":5,"61679":5,"617":[5,12],"617224":5,"6179":5,"618":5,"6181":5,"6182":5,"618382":5,"618445":5,"6185":5,"618705":5,"619":[5,12],"619099":5,"61e":12,"62":[0,5,12],"620":12,"621":14,"6212":5,"62124":18,"621375":5,"6215":5,"62172":11,"622":5,"62200":5,"622081":5,"622494":5,"6225":5,"623":12,"623052":5,"623232":5,"623354":5,"62366":5,"624":[5,12],"624125":5,"6249793":15,"625":[0,5],"62549":5,"626":[5,12],"627748":18,"628":[5,12],"628169":5,"629":[5,12],"63":[5,8,12],"630":12,"631":[5,8],"63153":5,"632":[5,12],"6328":5,"633":5,"633148":5,"633684":5,"634":[5,12],"634261":5,"6344":5,"634667":18,"635":[0,7,12],"63566e":5,"635703":5,"636":12,"636985":5,"637":[5,12],"637666":5,"637754":5,"6379":5,"638":[5,12],"63818":5,"6384":5,"6388":5,"639":[5,12,18],"63923":5,"639951":5,"63e":12,"64":[5,12],"640":[5,12],"6409":5,"641":12,"6413":5,"64137":5,"642":12,"64207":5,"64265":5,"6429":5,"643":12,"64359":5,"6438124832773024":12,"644":[5,12],"644553":11,"64463":5,"645":[5,11,12,18],"645286":5,"645339":5,"645763":5,"646":5,"64611":5,"646273":5,"647":5,"647161":5,"64724":5,"6474":5,"6475":5,"648":5,"648549":5,"6485656144116352":12,"648566":12,"6489":5,"6492":5,"6493":5,"64932":5,"649327":5,"64e":12,"65":[5,12,37],"651":5,"6514":5,"6515":5,"65262":5,"652638":12,"652755":5,"653":[5,15],"6548":5,"6550":5,"6552":5,"655371":5,"6556":5,"6559":5,"656":5,"6562":5,"657":5,"6571":5,"6579":5,"658":5,"6588":5,"659":5,"659393":5,"659448":5,"659469":5,"659526":5,"659581":5,"659743":5,"65976":5,"65e":12,"66":[5,12],"66003":15,"66016":5,"66025":5,"6602514":12,"6604":5,"660415":5,"661":5,"661725":5,"662":5,"6626":5,"663":5,"663251":5,"663976":5,"664":5,"664546":5,"6649":5,"665406":5,"66554":5,"665969":5,"666661":5,"667":5,"6674":5,"668":5,"668328":5,"669":5,"66915":5,"669442":5,"66e":12,"67":[5,12],"670":5,"67023":5,"670337":5,"670413":5,"670422":5,"67059":5,"671":5,"671001":5,"671551":5,"67179":5,"672":5,"67245":5,"673":5,"674":5,"674063083432e":15,"6745":5,"674645":5,"6747":5,"6749":5,"675":5,"675689":5,"6758":5,"67586e":15,"676":5,"676181":5,"676215":5,"6764":5,"6765":5,"677":5,"6771":5,"677623":5,"678":5,"679":[5,8],"679223":5,"6797":5,"67e":12,"68":[5,8,12],"681":5,"681473":5,"681487":5,"6816":5,"682":[5,8],"6822":5,"683":5,"6831":5,"6832":5,"6834":5,"683467":5,"68376":5,"684":[5,8,15],"684890":12,"685":[8,12],"685255":5,"685872":5,"686":5,"686591":5,"687":[5,8],"68746":5,"68748":15,"688":[5,8],"6883":5,"6885":5,"689":5,"689781":5,"689835":5,"68e":12,"69":[5,12],"690":12,"690194":12,"690203":5,"6905":5,"690746":5,"6908":5,"6909":5,"691":[5,8],"691586":5,"692":5,"693":[5,8],"693128":5,"693321":5,"6934":5,"693944":5,"694":[5,8,12],"6944":0,"694517":12,"695":[5,15],"6952":5,"695505":5,"69569":5,"696":5,"696003":18,"696284":5,"697":5,"6975":5,"697827":5,"698":[5,12],"69808":5,"698517":5,"6989":5,"699":5,"6e":[8,12],"6e1":31,"6e5":[0,7],"6m":12,"6mb":[8,12],"6msun":[0,7],"6s":[8,12],"7":[0,1,5,6,7,8,9,11,12,13,14,15,17,18,22,31,39],"70":[5,8,12,15,31],"700":[5,18],"70005":5,"700359":5,"70043":5,"70052":5,"70054":5,"701":5,"702":5,"70235":5,"7028":5,"703":5,"703545":5,"70365":5,"704":5,"70429":5,"7046":5,"705":[5,18],"7052":5,"705715":5,"706":5,"7060":5,"706029":5,"706126":5,"706483":5,"706780":12,"7069":5,"706984":5,"707":[5,12],"708":5,"7085":5,"7087":18,"709":5,"7093":5,"709965":5,"70e":12,"71":[5,12],"710":5,"71025":15,"7106":18,"7107":5,"7108":5,"711":5,"7114":5,"71196":15,"712":5,"712414":5,"7128":15,"713946":5,"714712":5,"716":[5,11],"71617":11,"71662":9,"71746":5,"71818":5,"7184":5,"718549":5,"7188":5,"719058":5,"71e":12,"72":[5,12],"720749":5,"721":5,"7210":5,"7214":5,"7219":5,"722":5,"72386":5,"724":[5,9],"72498e":[9,15],"725":5,"725718":5,"726":18,"726002":5,"72611":5,"72617":5,"7267":5,"7269":5,"727":5,"727196":5,"72764":5,"728":[5,8],"7282":5,"728237":5,"72832e":5,"728797":5,"729":5,"729193":5,"7292":5,"7296":5,"72983":5,"72e":12,"73":[5,12,15],"730":5,"731":5,"7315":5,"7319":5,"732":5,"7322":5,"732244":8,"7324":5,"7326":5,"732818":5,"732953":5,"732983":5,"7335":5,"734":5,"7342":5,"734534":5,"735":5,"7354":5,"7359":5,"736":[5,8],"736112":5,"7365":5,"737":5,"7370":5,"737411":5,"738":5,"7380":5,"7381":5,"738399":5,"7384":5,"7385":5,"738524":5,"7386":5,"739":5,"7390":5,"739962":5,"73e":12,"74":[5,12],"740":5,"740494":5,"740929":5,"7413":5,"741346":5,"741448":5,"7418":5,"7419":5,"742":5,"7420":5,"7421":5,"7422":5,"7423":5,"7424":5,"7425":5,"7426":5,"7427":5,"7428":5,"7429":5,"743":5,"7430":5,"7431":5,"743118":5,"7432":5,"7433":5,"7434":5,"7435":5,"7436":5,"7437":5,"7438":5,"743837":5,"7439":5,"744":5,"7440":5,"7446":5,"7447":5,"7448":5,"7449":5,"745":5,"7450":5,"7451":5,"7452":5,"7453":5,"7454":5,"7455":5,"7456":5,"7457":5,"7458":5,"74583":5,"7459":5,"746":5,"7460":5,"7461":5,"7462":5,"747":5,"7472":5,"748":[5,18],"748832":5,"749":5,"75":[0,5,8,12],"750":[5,6],"7500":5,"75005":5,"750149":5,"750806":5,"7509":18,"751305":5,"752":5,"752134":5,"752438":5,"7527":5,"753":5,"7530":5,"7536":5,"7537":5,"754":5,"754141":5,"7544":5,"755":5,"75508":5,"755323":5,"7554":5,"7557":5,"756":5,"7561":15,"7564":5,"7566":5,"756795":5,"757":[5,8],"757025":5,"7572":5,"758":[5,18],"7582":5,"7589":5,"759":5,"75921":5,"75931":5,"7595":5,"7598":5,"75e":12,"76":[5,12],"760064":5,"760389":5,"7605":5,"7607":5,"761":5,"7612":5,"7613":5,"76134":5,"761478":5,"7617":5,"7619":0,"7620":5,"7622":5,"7626":5,"7629":5,"763":[5,31],"7631":5,"7633":5,"7635":5,"764":5,"76416e":5,"7644":5,"7645":5,"764629":5,"7647":5,"7647737053496777":15,"764989":5,"765":5,"7650":5,"7657":5,"7659":5,"766":5,"766094":5,"7666":5,"7669":5,"767":5,"7671":5,"7675":5,"7677":5,"7678":5,"7679":5,"768":5,"7683":5,"768339":5,"7684":5,"768655":5,"7689":5,"769":5,"7690":5,"7691":5,"769195":5,"7695":18,"76e":8,"77":[5,12,14],"7705":5,"770532":5,"7706":5,"7709":5,"7714":5,"7717":5,"7718":5,"772":5,"7720":5,"7721":5,"772169325355e":15,"7722":5,"7727":5,"7728":5,"77287":15,"773":5,"7730":5,"7731":5,"773166":5,"7734":5,"7735":5,"7736":5,"7737":5,"774":5,"7741":5,"77416":5,"7742":5,"7743":5,"7745":5,"77455":5,"7748":5,"774954":5,"774969":5,"775":[5,18],"7750":5,"77505":5,"7751":5,"7752":5,"77541":5,"7757":5,"7759":5,"776":[5,18],"7761":5,"77624":5,"776263":5,"77631":5,"7764":5,"7765":5,"776523":5,"7766":5,"7767":5,"776818":5,"7769":5,"777":5,"7772":5,"7773":[5,18],"7774":5,"77766":5,"7779":5,"778":5,"7781":5,"7782":5,"7785":5,"7789":5,"779":5,"7790":5,"779197348711e":15,"7792":5,"7795":5,"7797":5,"78":[5,12],"78012":5,"7803":5,"7806":5,"7809":15,"781":5,"781046":5,"78125":0,"7813":5,"7817":5,"7819":5,"782":5,"7823":5,"7825":5,"7826":5,"7827":5,"7828":5,"783":[5,11],"7831":5,"7836":5,"783746":5,"783792":5,"784":5,"7840":5,"7842":5,"7843":5,"7844":5,"7845":5,"7848":5,"78488":5,"784972":5,"785":5,"7852":5,"785539":5,"7856":5,"7858":5,"786":5,"786062":5,"7861":5,"7863":5,"7864":5,"7868":5,"786e":18,"787":5,"7871":5,"787102":5,"787368":5,"7874":5,"7875":5,"7877":5,"787705":5,"7879":5,"788":5,"78817":18,"7882":5,"7883":5,"7886":5,"7887":5,"789":5,"789064":5,"7891":5,"789188":5,"7893":5,"7898":5,"789859":5,"7899":5,"78e":12,"79":[5,12],"7901":5,"7902":5,"7903":5,"7905":5,"7907":5,"7909":5,"79092":15,"790941":5,"791":5,"7911":5,"7912":5,"791274":5,"7913":5,"791478":5,"7916":5,"7918":5,"7919":5,"791991":5,"792":5,"7920":5,"7925":5,"7926":5,"79264":5,"7927":5,"792721":5,"792744":5,"7928":5,"7933":5,"7934":5,"7936":5,"793832":5,"7941":5,"79412":5,"7942":5,"7943":5,"7944":5,"79487":15,"795":[5,31],"795024":5,"7958":5,"796":5,"7960":5,"7962":5,"7964":5,"796455":18,"7965":5,"7967":5,"7968":5,"7969":5,"797":5,"7973":5,"7974":5,"7975":5,"7979":5,"798":5,"7980":5,"7982":5,"7988":5,"799":5,"7990":5,"79911":5,"7996":5,"7997":5,"799889":5,"79e":12,"7a2e4301f5224b2cb8939d2297df0aad":14,"7e":12,"7m":12,"7mb":12,"7s":8,"8":[0,3,5,6,7,8,9,11,12,13,14,15,18,30,31],"80":[5,12,31,37],"800":6,"8000":5,"8001":5,"8003":5,"8004":5,"8008":5,"8009":5,"801":5,"8010":5,"8012":5,"8013":5,"802":5,"802706":6,"802986496151e":15,"803":5,"8031":5,"8034":5,"8039":5,"804":5,"80402":5,"8043":5,"8044":5,"8047":5,"8048":5,"804961":5,"805":5,"8050":5,"8053":5,"8055":5,"805733":5,"8058":5,"8059":5,"80592":15,"806":5,"8060":5,"80602":18,"8062":5,"806431":5,"8065":5,"8066":5,"8067":5,"806722":5,"807":5,"8071":5,"8073":5,"807331":5,"807361":5,"8074":5,"807403":5,"8076":5,"8079":5,"808":5,"808134":5,"809":[5,6],"8091":5,"8095":5,"80954":5,"809662":5,"80e":12,"80msol":31,"81":[5,8,12],"810":8,"8101":5,"8104":5,"8105":5,"81066":15,"8107":5,"8108":5,"8109":5,"811":5,"8111":5,"8115":5,"812":5,"8121":5,"8123":5,"8124797":6,"813":5,"81352":5,"8138":5,"81395":9,"814":5,"8140":5,"8141":5,"814387":5,"81495":15,"81499":15,"815":5,"8151":5,"81529":15,"81536":15,"8155":5,"81562":5,"81563":15,"8158":5,"816":5,"8163":5,"81636":15,"81689":15,"816958":5,"817":[5,11],"81705":5,"817432":5,"817620e":18,"81762e":18,"817843":5,"817888":5,"818":5,"8182":5,"818294":5,"819":5,"8194":5,"8195":5,"81957":15,"8196":5,"819715":5,"8199":5,"81e":12,"82":[5,12],"8200":5,"8202":5,"8205":5,"82061":15,"82064":5,"82074":15,"82088":15,"821":5,"82123":15,"821301":5,"821367":5,"8216":15,"822":5,"82224":5,"8224":5,"82245":5,"82255":15,"823":5,"823059079115e":15,"82325":5,"8234":5,"823767":5,"824494":5,"8245":5,"8247":5,"824848":5,"82486":5,"8249":5,"825":5,"8250":5,"825086":5,"8251":5,"8252":5,"8254":5,"82563":12,"825648":5,"826":5,"8261":5,"8263":5,"82642":5,"826771":5,"8268":5,"826831":5,"827":5,"8271":5,"8276":5,"82797":5,"828":5,"8280":5,"828241":5,"828858":5,"829":5,"829017":5,"8292":5,"8293":5,"8295":5,"829668":5,"829726":5,"829757":5,"8299":5,"82e":12,"83":[5,8,12],"830":[5,18],"8300":5,"8303":5,"830541":5,"831236":5,"832":5,"832981":5,"833":5,"8339":5,"834303":5,"834483":5,"835":5,"8354":5,"836":[5,6],"836621":5,"83672":5,"836783":5,"837":5,"8372":5,"83762":5,"8377":5,"837816":5,"8379":5,"838":[5,6],"838411":6,"838423":5,"83843":5,"839":5,"8399":5,"83e":12,"84":[5,8,12],"840":5,"84029":5,"84071":5,"840796":5,"840994":5,"841":5,"841284":5,"841718":5,"8427e":18,"8429":5,"843":5,"8435":5,"8435e":18,"844":[5,6],"8441":5,"84428":5,"8443":5,"845":5,"84502":5,"8452":5,"845387":5,"845641":5,"846":[5,6],"846045":6,"847":5,"847153":5,"84827":5,"848380621869e":9,"848866":5,"8493":5,"85":[5,8,12,37],"850":5,"850309":5,"851":5,"851646":5,"852":5,"852252":5,"8523":5,"852712":5,"853":5,"8533":5,"854":5,"85406e":5,"8544":5,"8545":5,"854649":5,"855":5,"856":[5,12],"85661":18,"8569":5,"857":5,"8573":5,"857699":5,"8577":5,"858":[5,6],"8585":5,"859":5,"8596":5,"859753":5,"8598":5,"859977":5,"86":[5,8,12],"860402":5,"8605":5,"861":5,"861368":5,"863":[5,8],"86323":5,"86334":5,"8635":5,"8638":5,"865":5,"8653":5,"8654":5,"865806":5,"866":5,"8664":5,"867":5,"86728":5,"8674":5,"8678":5,"86794":5,"868":5,"8683":5,"86878":5,"869":5,"86918":5,"8694":5,"869544":5,"87":[5,12,15],"870":5,"8704":5,"8706":5,"8708":5,"871":5,"872":[5,15],"872312":5,"872316":5,"873":5,"8731":5,"873639":5,"874":5,"874638":5,"875":5,"876":5,"876084":5,"876382":5,"877":5,"877963":5,"878":5,"87813":5,"878253":5,"879":5,"8791":5,"87e":12,"88":[5,12],"880":5,"8805":5,"880528":5,"881":5,"8813":5,"882017":5,"8828":5,"883":5,"883252":5,"88343":5,"8837":5,"884":5,"8840":5,"8843":5,"88441":5,"884461":5,"8846":5,"8848":5,"885":5,"8851":5,"8853":5,"8855":5,"885537":5,"8856":5,"8858":5,"88581":5,"886":5,"8860":5,"8862":[5,15],"8864":5,"8866":5,"8867":5,"8868":5,"8869":5,"887":5,"8870":5,"8871":5,"8872":5,"8873":5,"8874":5,"8875":5,"8876":5,"8877":5,"8878":5,"888":5,"8880":5,"8881":5,"888123":5,"8882":5,"8884":5,"8886":5,"888613":5,"8887":5,"8889":5,"889":5,"8891":5,"8892":5,"8893":5,"8894":5,"8896":5,"8897":5,"8898":5,"8899":5,"89":[5,6,12,14],"890":5,"8901":5,"8902":5,"8903":5,"8904":5,"8906":5,"8907":5,"8908":5,"8909":5,"891":5,"8910":5,"891056":5,"8911":5,"8912":5,"8917":5,"892":5,"89211":18,"8924":5,"8926":5,"893":5,"8934":5,"8935":5,"8939":5,"893941":5,"894":5,"894041":5,"8941":5,"8949":5,"895":5,"895821":5,"896":5,"8961":5,"896110e":18,"896196":5,"896286":5,"8972":5,"8975":5,"897612":5,"898":5,"8982":5,"898786":5,"899":5,"8992":5,"899464":5,"8a7d52edc59346ce991063d9e05e9ba7":6,"8bc1eafea1c34b05894c1618639d8c37":15,"8e":[0,7],"8m":[8,12],"8mb":12,"8s":[8,12],"9":[0,5,6,7,8,9,11,12,14,15,18],"90":[5,8,12],"900":5,"901":5,"901988":5,"902":5,"903":5,"9032":5,"9036":5,"9038":5,"904":5,"9043":5,"9046":5,"9047":5,"905":5,"905335716621e":15,"9057":5,"906":5,"906059":5,"906299":5,"90695":5,"907":5,"9071":5,"90716":5,"9073":5,"9074":5,"908":5,"9087":5,"909":5,"9093":5,"9098":5,"90e":12,"91":[5,8,12],"910419":5,"9105":5,"910817":5,"910981":5,"911":5,"9110":5,"911093":5,"9113":5,"912":5,"912238":5,"912283":5,"912289":5,"912327":5,"9127":5,"912919":5,"913":5,"9139":5,"914":5,"9147":5,"9148":5,"915":[5,8],"915148":5,"915221":5,"9153":5,"91548":5,"916":5,"916093":5,"916207":5,"917":5,"917439":5,"9179":5,"918":5,"918543":5,"9189":5,"919":5,"9196":5,"91e":12,"92":[5,12],"920":5,"9203":5,"9206":5,"920832":5,"921":5,"9214":5,"922":5,"922199":5,"923":5,"92382":5,"924":5,"924056":18,"925":5,"9253":5,"9255":5,"9256":5,"925761":5,"926":5,"9263":5,"9264":5,"927":5,"929":5,"929511":5,"92995":5,"92e":12,"93":[5,12,15],"930":[5,14],"930282":5,"9304":5,"93044":5,"9308":5,"9309":5,"930943":5,"931":5,"9310":5,"932":5,"9323":5,"932839":5,"933":5,"9339":5,"934":5,"9342":5,"935":5,"935069":5,"9351":5,"9357":5,"935816":5,"935920339886e":15,"936":5,"936532":5,"936762":5,"937":5,"9373e":18,"938":5,"938568":5,"938576":5,"93898":5,"939":5,"939376":5,"939378":5,"939757":5,"93e":12,"94":[5,6,8,12,19],"941":[5,8],"9411":5,"941478":5,"942":5,"942154":5,"9423":5,"9427":5,"942854":5,"943":5,"9436":15,"944":5,"9445":5,"94464":5,"945":5,"9452":5,"946":5,"946468":5,"946757":5,"947":5,"9471":5,"947719":5,"947774":5,"94797":5,"948":5,"949":5,"95":[5,12,14],"950":5,"9505":5,"950733":5,"951":5,"951344":5,"951597":5,"952":5,"9524":5,"952496":5,"953":5,"953182":5,"9537":5,"953738":5,"953798":5,"954":5,"954624":5,"9548":5,"954848":5,"955":5,"9557":5,"956":5,"9561":5,"956619":5,"957":5,"9573":5,"95783":5,"957894":5,"958":5,"959":5,"959422":5,"959492":5,"9595":5,"9598":5,"95e":8,"96":[5,6,8,12],"960":5,"9603":5,"9606":5,"960734":5,"961":5,"9610":5,"96112":5,"96161":5,"962":5,"962482":5,"962876":5,"963":[5,8],"963621764679e":15,"964":5,"9648":5,"965":5,"9650":5,"965167":5,"96557e":5,"966":5,"966681":5,"967":5,"968":5,"969":5,"96963":5,"96e":12,"97":[5,12],"970":5,"97008":15,"970206":5,"970505":5,"970783":5,"971":5,"971686":5,"971941":5,"972":5,"9725":5,"973":[5,12],"973135":5,"97316":5,"9739":5,"9739752":8,"974":5,"9743":5,"9749":5,"975":5,"9757":5,"9758":5,"975864":5,"976":5,"976041":5,"977":5,"9779":5,"97797":5,"978":5,"979":5,"97923e":15,"9794":5,"9797":5,"97e":[8,12],"98":[5,12,14],"98061":5,"98081":5,"98096":5,"981":5,"981292":5,"9814":5,"981555":5,"9816":5,"982":5,"9825":5,"983":5,"983229":5,"984":[5,14],"9841":5,"9842":5,"985":5,"9851":5,"985359":5,"9859":5,"986":[5,8],"9869":5,"987":5,"988":5,"988755":5,"989":5,"98e":12,"99":[5,12,14],"990":5,"9900":5,"9902":5,"991":5,"9912":5,"991224":5,"991657":8,"99191":9,"99192":9,"99194":9,"992":5,"99203":5,"9927":[5,11],"993":5,"994":5,"994118":5,"995":5,"995631":14,"995687":5,"995824":5,"996":[5,8],"996798":5,"997":5,"9977":5,"997751":5,"998":5,"998023":5,"99808":5,"9983":11,"998563":5,"999":5,"999122":5,"9999999999999998":14,"99e":12,"9e":8,"9m":12,"9mb":[8,12],"9s":[8,12],"abstract":40,"boolean":[0,2,7,19,20,21,24,38,42],"break":[0,7],"case":[0,2,4,7,15,19,21,22,25,30,37],"catch":[6,8,11,12,13,14,15,18,19,21],"char":21,"class":[2,3,19,22,23],"const":[6,8,12,13,14,15],"default":[0,1,2,3,6,7,9,10,12,13,14,15,18,19,20,21,25,26,28,29,30,31,33,36,37,38,40],"do":[0,1,2,5,6,7,8,9,12,13,14,15,18,20,21,22,24,25,30,31,33,37,39,42],"export":[3,15,19,20,30],"final":[5,8,12,13,14,18],"float":[0,2,3,5,7,10,11,16,19,31,32,37,42],"function":[0,1,2,3,4,5,6,8,9,17,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42],"import":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,34],"int":[0,1,2,5,7,12,15,19,20,21,25,31,32,33,34,37,42],"krtickov\u00e1":[0,7],"kub\u00e1t":[0,7],"long":[0,6,7,8,15,21,27,30,34,38,41],"new":[0,2,6,7,8,11,12,13,14,15,20,25,30,31,34],"null":[0,6,7,8,15,19],"paczy\u0144ski":[0,7],"public":[12,13,14,15,22],"return":[1,2,3,5,6,7,8,10,11,12,13,14,15,18,19,20,21,24,25,26,27,28,29,30,31,33,34,36,37,38,40,42],"short":[0,6,7,8,12,13,14,41],"super":[0,7],"switch":[0,7],"throw":[22,39],"true":[0,2,3,5,6,7,8,10,12,13,14,15,17,18,19,20,21,24,25,27,29,30,33,34,36,37,38],"try":[0,2,5,7,8,11,12,13,14,15,22,25,30,34,39],"void":9,"while":[0,5,6,7,8,12],A:[0,2,4,7,15,28,42],And:[22,33,39,42],As:[0,6,7,8,11,12,13,14,15],At:[6,15],But:11,By:[0,6,7,12,13,14,15,18,21],For:[0,2,7,9,11,12,13,14,24],If:[0,2,6,7,8,12,13,14,15,19,20,21,22,24,25,26,27,29,30,31,34,36,39,40,42],In:[0,2,6,7,8,9,10,11,12,13,14,15,18,21,30,37],It:[0,6,7,8,11,12,13,14,15,16,18,21,22,30,33,39],Its:21,NO:21,NOT:[0,7,34,37,40],No:[5,7,21,22,39],Not:[6,8],OR:[2,18],On:[0,7,15,19,30],One:[0,7,21],Or:[15,18],Such:8,That:[0,6,7],The:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,24,25,27,28,29,30,31,32,34,36,37,39,40],Then:[2,6,19,22,39],There:[6,7,8,9,10,11,12,13,14,15,16,18,20,21,24,31,33],These:[6,7,12,13,14,15,19,21,24,25],To:[0,7,11,12,13,14,15,21,22,30,31,39],Will:[0,7,19,21,40],With:33,_1:[12,13,14],_:[6,8,12,13,14,21,33],__:15,__arg_begin:7,__attribute__:9,__delitem__:28,__enter__:19,__exit__:19,__getitem__:[2,28],__iadd__:2,__setitem__:28,_actually_evolve_system:21,_binary_c_bind:[7,9,11,16,38,42],_binary_c_config_execut:21,_binary_c_dir:21,_binary_c_execut:21,_binary_c_shared_librari:21,_commandline_input:21,_count:21,_custom_logging_shared_library_fil:21,_end_time_evolut:21,_errors_exceed:21,_errors_found:21,_evolution_type_opt:21,_failed_count:21,_failed_prob:21,_failed_systems_error_cod:21,_generate_grid_cod:21,_grid_vari:[13,14,21,34],_kill:21,_loaded_moe2017_data:21,_main_pid:21,_moe2017_json_data:21,_population_id:21,_pre_run_setup:20,_probtot:21,_process_run_population_grid:21,_queue_don:21,_repeat:21,_restart_dir:25,_set:20,_set_moe2017_grid:21,_start_time_evolut:21,_store_memaddr:21,_system_gener:21,_total_mass_run:21,_total_probability_weighted_mass_run:21,_total_starcount:21,_zero_prob_stars_skip:21,a173:[0,7],a_in:5,a_out:5,ab:[0,19],abat:[0,7],abbrevi:41,abl:7,about:[4,6,8,12,13,14,15,19,20,21,25,30,33,42],abov:[0,6,7,9,11,13,14,15,19,20,31],abridg:[7,9],absolut:[0,7,19,37],abund:[0,7],ac:[6,15],acceler:[0,7],accept:[15,19,26],access:[2,9,11,12,13,14,15,21,25,30],accord:[0,6,7,30,31,37],accordingli:[11,13,14,15],account:[0,7,21,31],accret:[0,5,7],accretion_limit_dynamical_multipli:[0,7],accretion_limit_eddington_lmms_multipli:[0,7],accretion_limit_eddington_steady_multipli:[0,7],accretion_limit_eddington_wd_to_remnant_multipli:[0,7],accretion_limit_thermal_multipli:[0,7],accretor:[0,5,7,42],accur:[12,13,14],acquir:5,act:[0,7,13,14,15,21],activ:[0,7,21],actual:[0,3,6,7,8,9,11,12,13,14,15,20,21,22,24,25,29,31,37,39],ad:[2,4,6,8,11,30,34],adam:[0,7],adapt:[0,7,13,14],add:[0,2,6,7,8,9,11,12,13,14,15,20,21,24,31,34,35,37],add_ensemble_metadata:35,add_grid_valu:37,add_grid_vari:[6,8,12,13,14,15,34],add_system_metadata:35,addit:0,address:[1,7,9,21,42],admittedli:24,adress:[7,9,42],advis:9,af:5,affect:[0,6,7],after:[0,6,7,8,9,12,13,14,15,20,21,30,34,37],ag89:[0,7],ag:[0,4,5,6,7,8,14,22,37],again:[2,3,6,10,11,19,21],against:24,agb:[0,6,7],agb_3dup_algorithm:[0,7],agb_core_algorithm:[0,7],agb_core_algorithm_default:0,agb_core_algorithm_hurlei:0,agb_core_algorithm_karaka:0,agb_luminosity_algorithm:[0,7],agb_luminosity_algorithm_default:0,agb_luminosity_algorithm_hurlei:0,agb_luminosity_algorithm_karaka:0,agb_radius_algorithm:[0,7],agb_radius_algorithm_default:0,agb_radius_algorithm_hurlei:0,agb_radius_algorithm_karaka:0,agb_third_dredge_up_algorithm_default:0,agb_third_dredge_up_algorithm_hurlei:0,agb_third_dredge_up_algorithm_karaka:0,agb_third_dredge_up_algorithm_stancliff:0,ago:6,al:[0,7,31,42],albedo:[0,7],algorithm:[7,22],algothim:[0,7],all:[0,1,2,3,6,7,8,10,11,12,13,14,15,17,18,19,20,21,22,23,24,25,26,30,31,33,37,38,39,40],all_info:20,alloc:[7,37],allow:[0,2,7,9,17,18,21,28,31],allow_nan:3,almost:21,along:[0,21,22,33,39],alpha:[0,5,7],alpha_:8,alpha_c:[0,5,6,7,8],alpha_ej:5,alphacb:[0,7],alreadi:[6,15,16,25,30,34],also:[0,4,5,6,7,8,9,12,13,14,15,18,19,20,21,22,25,27,30,33,38,39,42],alter:[8,12,34],altern:[0,7,21],although:16,alwai:[0,7,21,31,37],amanda:[0,7],amax:31,amin:31,amount:[0,2,7],amp:[6,7,8],an:[0,2,3,6,7,8,10,11,12,13,14,15,18,19,21,22,25,26,29,30,31,32,33,34,35,36,37,40],analys:40,analyt:[6,8,12,13,14,15,20,22,23],analyz:11,andrew:[22,39],andronov:[0,7],angelou_lithium_cheb_decay_tim:[0,7],angelou_lithium_cheb_massfrac:[0,7],angelou_lithium_cheb_tim:[0,7],angelou_lithium_decay_funct:[0,7],angelou_lithium_decay_tim:[0,7],angelou_lithium_eagb_decay_tim:[0,7],angelou_lithium_eagb_massfrac:[0,7],angelou_lithium_eagb_tim:[0,7],angelou_lithium_gb_decay_tim:[0,7],angelou_lithium_gb_massfrac:[0,7],angelou_lithium_gb_tim:[0,7],angelou_lithium_hg_decay_tim:[0,7],angelou_lithium_hg_massfrac:[0,7],angelou_lithium_hg_tim:[0,7],angelou_lithium_lmms_decay_tim:[0,7],angelou_lithium_lmms_massfrac:[0,7],angelou_lithium_lmms_tim:[0,7],angelou_lithium_ms_decay_tim:[0,7],angelou_lithium_ms_massfrac:[0,7],angelou_lithium_ms_tim:[0,7],angelou_lithium_tpagb_decay_tim:[0,7],angelou_lithium_tpagb_massfrac:[0,7],angelou_lithium_tpagb_tim:[0,7],angelou_lithium_vrot_trigg:[0,7],angelou_lithium_vrotfrac_trigg:[0,7],angular:[0,7,16,24],ani:[0,3,7,11,15,19,20,22,25,31,34,38,39],anoth:[0,7,25],ansi:[0,7,19],ansi_colour:[0,7],anyth:[0,7,12,13,14,15,19,21,25,37],anywai:[11,15,31,34],api:[0,4,19,22,25],api_log_filename_prefix:[0,5,7,11,16],appear:21,append:[1,2,6,11,12,13,14,16],appli:[0,7],apply_darwin_radau_correct:[0,7],appropri:[0,7,15,21,25,28,29,30,34,36],approxim:[0,6,7,8],ar:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,24,28,29,30,31,33,34,36,37,38,39,42],arang:18,aren:[21,31],arenou2010_binary_fract:31,arg:[5,7,15,19,28,31,32],arg_dict:[2,19],argh:16,argopt:[0,7],argpair:[10,38],argstr:[7,9,11,16,18],argument:[0,2,7,11,13,15,16,17,18,19,20,21,25,26,31,38,40],argument_of_periastron:[0,7],argument_of_periastron_quadrupl:[0,7],argument_of_periastron_tripl:[0,7],aritif:8,around:[0,7,9,11,17,18],arrai:[11,15,18,19,21,31,34,37],arrow:[0,7],artefact:[13,14],artifici:[0,7],artificial_accretion_end_tim:[0,7],artificial_accretion_ignor:0,artificial_accretion_start_tim:[0,7],artificial_angular_momentum_accretion_r:[0,7],artificial_mass_accretion_r:[0,7],artificial_mass_accretion_rate_by_stellar_typ:[0,7],artificial_orbital_angular_momentum_accretion_r:[0,7],arxiv:[0,7,31],ask:[0,7,42],asplund:[0,7],assign:[12,13,14,15,34],associ:[6,8,12,13,14,29,36],assum:[0,6,7,8,12,16,24,37],ast871:[0,7],astronomi:[0,7],astrophys:[8,13,14],astropi:[22,24,39],asymptot:6,atom:38,attempt:[3,19,20],au:16,auto:[1,23],autogen_c_logging_cod:[1,9,18],autogener:18,automat:[0,1,7,9,15,17,18,21,22,28,30,33,34,39],autoviv:2,autovivif:2,autovivificationdict:2,avaibl:[22,39],avail:[0,7,8,9,12,13,14,15,19,21,22,27,39],avoid:[6,7,8],awai:[0,7,12],ax:18,axessubplot:17,axi:[0,7,24],b6213f2eb7f94d3196cf966b7b76b9f9:14,b:[21,30],b_1:[0,7],b_2:[0,7],b_3:[0,7],b_4:[0,7],b_inclination1:[0,7],b_inclination2:[0,7],b_inclination3:[0,7],b_inclination4:[0,7],back:[0,2,5,7],background:18,backward:[0,7],bagb:[0,7],bar:[13,14],barn:[0,7],base:[0,2,3,7,8,12,13,14,15,19,20,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,42],base_filenam:[15,20],bash:21,basic:[15,30],batch:21,batchmod:[0,7],batchnam:21,bb:[0,7],bbox_inch:18,beasor:[0,7],becaus:[0,2,6,7,8,11,12,13,14,16,18,20,21,22,28,30,31,39],becom:[0,1,2,5,7,9,13,14,16,19,21],been:[0,2,7,10,20,21,25,27,29,36],befor:[0,2,5,6,7,8,12,13,14,15,20,21,22,30,31,39],beg_bss:5,beg_rch:5,beg_symb:5,begin:6,behaviour:[2,6,12,13,14,15,40],behind:18,being:[29,36],belczynski:[0,7],below:[0,4,6,7,8,9,12,13,14,15,21,31],berro:[0,7],bertolami:[0,7],best:[5,20,21],beta:[0,7],beta_reverse_nova:[0,7],beta_reverse_novae_geometri:0,better:[0,2,4,7,15,25,29,30,36,42],between:[0,7,21,31,37],bewar:[15,30,34],beyond:16,bh:[0,5,8],bh_belczynski:[0,5,7],bh_bh:5,bh_fryer12_delai:[0,7],bh_fryer12_rapid:[0,5,7],bh_fryer12_startrack:[0,7],bh_hurley2002:[0,7],bh_prescript:[0,5,7],bh_spera2015:[0,7],bhbh:5,big:[0,7,21],biinari:15,bin:[0,7,8,12,13,14,19,21,22,37,39],bin_data:[8,12,13,14,19],binari:[4,7,8,11,13,14,15,21,22,24,31,34,39,42],binary_c2:[22,39],binary_c:[1,2,3,4,6,8,12,13,14,16,19,20,21,24,28,30,31,34,38,40],binary_c_api_funct:9,binary_c_cal:[15,30],binary_c_default:15,binary_c_grid:[6,8,12,15],binary_c_grid_25014bc73b334765a1c09a4e4a97ed66:12,binary_c_grid_26171201413c43f5b91552a374879940:6,binary_c_grid_2b66f805db424c48a1d29c45092b6e3c:8,binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f:15,binary_c_grid_8a7d52edc59346ce991063d9e05e9ba7:6,binary_c_grid_f4e5925effeb42e69b5be956f400ae41:6,binary_c_inline_config:1,binary_c_log_cod:[1,9,11,17,18],binary_c_macro:[0,7],binary_c_output:3,binary_c_paramet:[0,6,12,13,14,15],binary_c_python:[6,7,8,11,12,13,14,15,19],binary_c_python_api:18,binary_c_task_:[0,7],binary_c_write_log_cod:1,binary_grid:[0,7],binary_star:42,binaryc:[1,19,40],binaryc_config:1,binaryc_json_seri:3,binarycdecod:3,binarycencod:3,binarycpython:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42],binarygrid:[12,13,14,15],bind:[0,7,9,11,16],binned_log_luminos:[12,13,14],binned_post_period:8,binned_pre_period:8,binwidth:[8,12,13,14,19],birth:[0,7],bit:[6,12],bivari:[0,7],black:[0,4,6,7,22],black_hol:0,block:[15,34],bloecker:[0,7],blog:1,boltzman:24,boltzmann:[0,7],bondi:[0,7],bondi_hoyle_accretion_factor:[0,7],bool:[2,15,19,20,24,30,33,34,38],born:[0,6,7,12,13,14],bosswissam:19,both:[0,2,7,12,13,14,15],bottom:[0,7,15,34],bottomcod:[6,8,15,34],bound:[5,31,37],boundari:31,brake:[0,7],branch:[0,6,7,19,38],branch_david:0,branchcod:[6,8,15,34],branchpoint:[6,8,15,34],breakup:[0,7],brighten:[13,14],broken:[0,7],bse:[0,7,9,15,31],bse_opt:[6,8,11,12,13,14,15,20,37],bsf:[0,7],buffer:[0,7,30],build:[0,1,4,7,19,25,31],build_q_tabl:31,built:[0,1,10,19,22,39],burn:[0,7],busso:[0,7],bye:[0,7],bz2:30,c13_eff:[0,7],c2:31,c:[0,1,5,7,9,11,15,40],c_auto_log:21,c_log:0,c_logging_cod:[6,8,9,11,12,13,14,15,21],cach:[20,21,22,23,27,33,37],cache_dir:[21,37],cachedir:37,cachetool:[21,28],cachetyp:28,calc_e_integr:31,calc_p_integr:31,calc_period_from_sep:42,calc_sep_from_period:[8,12,15,42],calc_total_probden:31,calcul:[0,2,6,7,8,12,13,14,15,19,21,27,31,34,42],calculate_constants_three_part_powerlaw:31,call:[0,1,2,7,11,13,14,15,16,19,20,21,24,25,29,30,32,34,36,37,38,40],call_binary_c_config:19,calls_filenam:15,can:[0,1,2,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,24,25,30,31,34,39,40,42],candid:8,cannot:[6,9,28,30,33],canon:21,cap:[0,7],capit:[12,13,14],capsul:[1,7,19],captur:[0,7,19],carbon:[0,5,6,7],carbon_oxygen_white_dwarf:0,care:[6,12,13,14,21],carlo:[0,7,21],carrasco:[0,7],carri:[0,7],carriag:[19,21],cast:[18,19],catchtim:19,categor:7,categori:[7,15],categoris:19,caught:[11,19,38],caus:[5,12,42],cbdisc:[0,7],cbdisc_albedo:[0,7],cbdisc_alpha:[0,7],cbdisc_eccentricity_pumping_dermin:0,cbdisc_eccentricity_pumping_method:[0,7],cbdisc_eccentricity_pumping_non:0,cbdisc_end_evolution_after_disc:[0,7],cbdisc_fail_ring_inside_separ:[0,7],cbdisc_gamma:[0,7],cbdisc_init_djdm:[0,7],cbdisc_init_dm:[0,7],cbdisc_inner_edge_strip:[0,7],cbdisc_inner_edge_stripping_timescal:[0,7],cbdisc_kappa:[0,7],cbdisc_mass_loss_constant_r:[0,7],cbdisc_mass_loss_fuv_multipli:[0,7],cbdisc_mass_loss_inner_l2_cross_multipli:[0,7],cbdisc_mass_loss_inner_viscous_accretion_method:[0,7],cbdisc_mass_loss_inner_viscous_accretion_method_equ:0,cbdisc_mass_loss_inner_viscous_accretion_method_gerosa_2015:0,cbdisc_mass_loss_inner_viscous_accretion_method_non:0,cbdisc_mass_loss_inner_viscous_accretion_method_young_clarke_2015:0,cbdisc_mass_loss_inner_viscous_angular_momentum_multipli:[0,7],cbdisc_mass_loss_inner_viscous_multipli:[0,7],cbdisc_mass_loss_ism_pressur:[0,7],cbdisc_mass_loss_ism_ram_pressure_multipli:[0,7],cbdisc_mass_loss_xray_multipli:[0,7],cbdisc_max_lifetim:[0,7],cbdisc_minimum_evaporation_timescal:[0,7],cbdisc_minimum_fr:[0,7],cbdisc_minimum_luminos:[0,7],cbdisc_minimum_mass:[0,7],cbdisc_no_wind_if_cbdisc:[0,7],cbdisc_outer_edge_strip:[0,7],cbdisc_outer_edge_stripping_timescal:[0,7],cbdisc_resonance_damp:[0,7],cbdisc_resonance_multipli:[0,7],cbdisc_torquef:[0,7],cbdisc_viscous_l2_coupl:[0,7],cbdisc_viscous_photoevaporative_coupl:[0,7],cbdisc_viscous_photoevaporative_coupling_inst:[0,7],cbdisc_viscous_photoevaporative_coupling_non:[0,7],cbdisc_viscous_photoevaporative_coupling_visc:[0,7],ce:[0,7,8],cee:[0,7,8],cell:[7,12,13,14,15],cemp:[0,7],cemp_cfe_minimum:[0,7],centr:[8,15,34],central:16,central_object:[0,7],centralis:40,certain:[21,22,39],certainli:21,cf:[0,7],cf_amanda_log:[0,7],cflag:[22,39],chabrier:31,challeng:[13,14],chandrasekhar:[0,7],chandrasekhar_mass:[0,7],chang:[0,1,2,5,6,7,8,9,12,13,14,15,18,19,20,21,22,33,34,39],chapter:[0,21,23],charact:[19,21,30],cheb:[0,7],check:[0,6,7,8,12,13,14,15,18,19,20,21,25,29,30,31,33,36,40,42],check_circular:3,check_if_in_shel:19,chemic:[0,7,37],chen:[0,7],child:19,child_dir:19,choic:[0,7,24,31],choos:[0,6,7,8,9,12,18,24,25,30],chose:11,chosen:[12,13,14,15,34],chunk:[29,36],ci:16,circular:[0,5,7],circumbinari:[0,7],circumstanti:[0,7],cl:3,claei:[0,7],clark:[0,7],clean:[1,6,11,13,14,20],clean_up_custom_logging_fil:20,clear:[13,14,38],clearli:[13,14],clock:19,close:[0,5,7,8,13,14,16,30],closedir:30,closefd:30,closer:5,cloud:[0,7],clusterid:[21,29],cmdline_str:32,co2:[13,14],co:[0,5,7],coalesc:5,code:[0,1,6,7,8,9,11,12,13,14,15,17,18,20,22,24,29,30,31,33,34,36,37,39,40,42],collaps:[0,7],collapsar:[0,7],collect:42,collid:42,color:[19,24],color_by_index:24,colour:[0,7],colour_log:[0,7],column:[6,8,11,15,16,18,24],column_nam:11,com:[1,19,31],combin:[1,2,9,19,20,21],combine_ensemble_with_thread_join:21,combined_output_dict:35,come:[2,22,37,39],comenv:[5,8],comenv_bs:0,comenv_count:8,comenv_disc_angmom_fract:[0,7],comenv_disc_mass_fract:[0,7],comenv_ejection_spin_method:[0,7],comenv_ejection_spin_method_do_noth:[0,7],comenv_ejection_spin_method_sychron:[0,7],comenv_ejection_spin_method_synchron:0,comenv_merger_spin_method:[0,7],comenv_merger_spin_method_breakup:0,comenv_merger_spin_method_conserve_angmom:[0,7],comenv_merger_spin_method_conserve_omega:[0,7],comenv_merger_spin_method_specif:[0,7],comenv_ms_accret:[0,7],comenv_ms_accretion_fract:[0,7],comenv_ms_accretion_mass:[0,7],comenv_nandez2016:0,comenv_nelemans_tout:0,comenv_ns_accret:[0,7],comenv_ns_accretion_fract:[0,7],comenv_ns_accretion_mass:[0,7],comenv_post_eccentr:[0,7],comenv_prescript:[0,7],comenv_splitmass:[0,7],comenv_undef:0,comma:37,command:[0,1,7,15,20,21,22,30,39],command_lin:21,commandlin:15,comment:[15,25,29,36],common:[0,4,5,6,7,9,11,12,13,14,15,22],compact:[8,15],companion:[0,5,7,18,30],compar:[0,7,8,12,15,21],compens:[13,14],compil:[1,9,15,18,22,39],compile_shared_lib:1,complaint:30,complet:[6,8,12,13,14,15],complex:[2,8,9,15,17,18,21],compon:[19,24],compress:[3,30],compress_pickl:30,compression_typ:30,compresslevel:30,comput:[0,6,7,12,13,14],concaten:2,conceptu:12,concurr:21,condit:[6,8,9,12,13,14,15,17,18,34],condor:[21,22,23,25],condor_bash:21,condor_batchnam:21,condor_check_requir:29,condor_clusterid:[21,29],condor_d:21,condor_dir:[21,25,29,36],condor_env:21,condor_extra_set:21,condor_getenv:21,condor_grid:29,condor_initial_dir:21,condor_kill_sig:21,condor_memori:21,condor_njob:21,condor_outfil:29,condor_postpone_join:21,condor_postpone_submit:21,condor_process:[21,29],condor_pwd:21,condor_q:21,condor_queue_stat:29,condor_requir:21,condor_should_transfer_fil:21,condor_snapshot_on_kil:21,condor_status_fil:29,condor_stream_error:21,condor_stream_output:21,condor_submit:21,condor_univers:21,condor_warn_max_memori:21,condor_when_to_transfer_output:21,condorid:29,condorpath:29,config:[1,19,21,22,39],config_fil:1,configur:[6,11,12,13,14,15,18,21,26,31],confirm:30,conjunct:10,conserv:[0,7],consid:[0,1,2,7,12,13,14,20,21,24,32,33,37],const_distribut:31,const_dt:37,const_dt_cach:37,const_int:37,const_linear:[34,37],const_rang:37,constant:[0,2,7,13,14,24,31,37],construct:[0,1,6,7,8,11,12,13,14,16,18,21],contact:5,contain:[0,1,2,3,7,10,11,12,13,14,15,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],content:[2,3,7,19,20,25],context:19,continu:[15,29,34,36],contribut:[22,39],control:[0,6,7,12,13,14,15,21],conv_time_unit:19,convect:[0,7],conveni:19,converg:[0,7],convers:2,convert:[2,3,6,8,16,19,20,30,31,37],convert_byt:19,convert_float_kei:3,convfloat:19,convfrac:5,cool:[0,6,7],copi:[0,7,8,13,14,21,42],core:[0,6,7,8,12,13,14,15,21,24],core_co:9,core_h:9,core_helium_burn:0,core_mass:[0,7,9],correct:[0,7,11,20,24,31,32,42],correctli:[11,18,22,39],correspon:[29,36],correspond:[15,24,29,34,36],corretor:[0,7],cosmic:31,cosmic_sfh_madau_dickinson2014:31,cost:[12,13,14],could:[0,3,7,13,14,15,18,19,38],count:[2,5,6,18,19,21],count_keys_recurs:2,counter:21,coupl:[0,4,7],cours:[6,24],cover:[10,12,13,14],coverag:[22,39],cowd:[0,7],cpu:[0,6,7,8,12,13,14,15,21,27],cpu_tim:27,cpython:7,crap_paramet:[0,7],creat:[3,6,8,9,11,12,13,14,15,19,20,27,30,31,34,36],create_and_load_logging_funct:[1,9,18],create_arg_str:19,create_hdf5:19,creation:7,critic:[0,7],cross:[0,7],crunch:[6,8,12,13,14],cs1:16,ctype:1,cube:12,cubic:12,cuntz:[0,7],current:[0,2,7,8,9,12,13,14,19,22,25,30,39],curv:[8,13,14],custom:[0,1,2,3,4,6,7,8,11,12,13,14,15,19,20,21,22,24,31,40],custom_format:[2,19],custom_gener:21,custom_log:[11,18,20,21],custom_logging_cod:[1,9,11,17,18,40],custom_logging_func_memaddr:[7,9,21],custom_logging_funct:[9,11,15,17,18,21,22,23],custom_logging_info:20,custom_logging_memaddr:9,custom_logging_print_stat:11,custom_logging_stat:[6,8,12,13,14,15],custom_opt:[6,11,12,13,14,15,20,30],custom_output_funct:9,custom_sort_dict:2,custom_tmp_dir:1,customis:24,cut:18,cvode:[0,7],d48r:18,d:[0,1,5,6,7,8,9,11,12,15,16,19,37],d_:19,dai:[0,5,7,8,9,11,12,15,18,31,42],damp:[0,7],darwin:[0,7],dat:[0,15,19],data:[0,3,5,6,7,8,11,12,13,14,15,16,18,19,21,25,26,30,31,34,40,42],data_dict:31,data_dir:[15,19,20,21,30],datadir:[15,30],datafram:[6,8,11,12,13,14,16,17,18,24],dataio:[20,22,23],datalinedict:[6,8,12,13,14,19],datamodel:2,dataset:[15,21,25,26],date:[19,20,21],david:[0,2,18,22,39],david_logging_funct:0,dd7:[0,7],de:[0,5,7],deactiv:[0,7],deal:[3,11],dear:5,death:[0,7],debug:[0,5,6,7,8,12,13,14,15,21,32],decai:[0,7],decid:[0,2,7,9,17,18,19,20,21,25],decod:3,decompress:3,decreas:[0,7],deepcopi:8,deeper:[15,34],def:[5,6,8,11,12,13,14,15,18],default_cache_dir:[28,33],default_to_metal:[0,7],defaultdict:19,defer:[0,7],defin:[0,1,7,15,16,20,24,31,34],definit:[1,12,13,14,42],degener:[0,7],degenerate_core_helium_merger_ignit:[0,7],degenerate_core_merger_dredgeup_fract:[0,7],degenerate_core_merger_nucsyn:[0,7],degner:[0,7],degre:[0,7],del:8,delai:[0,7,21],delet:[28,34],delete_grid_vari:34,delta:[19,37],delta_mcmin:[0,7],demonstr:8,den:[0,7],densiti:[12,13,14,31],depend:[0,6,7,19,21,22,24,31,39],deprec:[0,7,20],depth:37,dermin:[0,7],describ:[0,7,18,21,31],descript:[0,7,10,19,21,26,31,33],design:[2,24],desir:[0,7],destruct:[15,34],detail:[0,6,7,11,19,21],detect:[0,5,7,8,16],detector:5,determin:[0,7,9,12,13,14,15,20,31,34,42],deton:[0,7],dev:[0,7],develop:1,development_requir:[22,39],deviat:[31,37],dewi:[0,7],dex:[0,7,8,37],df2:18,df:[16,17,18,24],di:[15,22,26,31],diagnost:21,diagram:[0,4,7,22,24],dickonson:31,dict2:2,dict:[1,3,5,6,11,12,13,14,15,16,19,20,21,22,23,25,26,28,30,31,33,38,41],dict_1:2,dict_2:2,dict_kei:[6,10,11],dictionari:[1,2,3,4,6,8,12,13,14,15,19,20,21,24,26,27,30,31,33,34,38,41],did:[19,22,39],differ:[0,6,7,8,12,13,14,15,18,19,21,22,24,37,39],differenti:19,dimmer:[0,7,12],dir:[22,29,39],dir_ok:30,direct:[0,7,20],directli:[2,11,21,25,30],director:21,directori:[0,4,7,15,19,20,21,22,25,28,29,30,33,36,39],disabl:[0,7,15],disable_debug:[0,7],disable_end_log:[0,7],disable_ev:[0,7],disc:[0,7,16],disc_legacy_log:[0,7],disc_log2d:[0,7],disc_log:[0,7],disc_log_directori:[0,7],disc_log_dt:[0,7],disc_log_level_non:0,disc_log_level_norm:0,disc_log_level_normal_first_disc_onli:0,disc_log_level_subtimestep:0,disc_log_level_subtimestep_first_disc_onli:0,disc_n_monte_carlo_guess:[0,7],disc_stripping_timescale_infinit:0,disc_stripping_timescale_inst:0,disc_stripping_timescale_orbit:0,disc_stripping_timescale_visc:0,disc_timestep_factor:[0,7],discret:15,discs_circumbinary_from_comenv:[0,7],discs_circumbinary_from_wind:[0,7],disk:[0,7,20],dispers:[0,7,37],displai:[0,6,7,8,16],disrupt:[0,5,7,18],dist:19,distanc:[6,16],distant:16,distefano2017:21,distefano:[25,26,31],distinct:20,distrefano:26,distribut:[0,2,4,7,8,12,15,19,25,26,31,37],distribution_funct:[6,8,12,13,14,15,20,22,23],divid:2,dj:[0,7],dlnm1:[8,12,15],dlnm:[13,14],dlnm_1:[13,14,34],dlog10per:[8,12,15],dlogp:31,dlogt:37,dm1:[6,13,14],dm:[0,5,7,13,14,31,37],dm_1:[6,13,14],dn:[19,31],do_analyt:21,do_dry_run:21,doc:[2,6,12,13,14,15,19,22,33,39],doc_fetch:31,docstr:[11,22,24,39],document:[12,13,14,15,21,23,30,33],doe:[0,2,6,7,9,10,11,12,13,14,15,20,21,28,30,31,34,42],doesn:[6,21],doesnt:[18,33],doesntt:25,don:[2,6,19,21,25],done:[0,2,5,6,7,12,13,14,15,18,21,22,30,39],donor:[0,5,7,42],donor_limit_dynamical_multipli:[0,7],donor_limit_envelope_multipli:[0,7],donor_limit_thermal_multipli:[0,7],donor_rate_algorithm_bs:0,donor_rate_algorithm_claeys2014:0,dont:[7,18],doubl:[6,9,15],down:15,dp:31,dphasevol:[6,8,12,13,14,15,34],dprob:[6,8,13,14],dq:[8,12,15],dr2:[0,7],dr3:[0,7],drai:[0,7],dredg:[0,7],drop:11,dry:[6,8,12,14,15,21,34],dry_parallel:34,dry_run:[6,8,12,15],dry_run_hook:21,dry_run_num_cor:21,dstep:31,dt:[0,1,7,19,28,37],dt_limit:10,dtfac:[0,7],dtlimit:38,dtm:[1,9,15],dtype:[16,17,18],due:[22,39],dummi:[21,24,31],dump:[0,3,7,11,20,30],dumpvers:[0,7],duquennoi:31,duquennoy1991:31,dure:[0,5,7,18],dust:[0,7],dwarf:[0,6,7,13,14],dx:[0,7],dynam:[0,7],e2:[0,7],e2_hurley_2002:0,e2_izzard:0,e2_mint:0,e2_prescript:[0,7],e:[0,2,5,6,7,8,9,11,12,13,14,15,19,20,21,22,25,28,29,30,31,34,36,37,39,42],each:[0,2,7,8,12,13,14,15,16,19,21,25,34,37],eagb:[0,5,7],eagb_wind_beasor_etal_2020:0,eagb_wind_bs:0,eagb_wind_goldman_etal_2017:0,eagbwind:[0,7],eagbwindfac:[0,7],earli:[0,7],early_asymptotic_giant_branch:0,earth:16,easi:[3,11],easier:[15,18,19],ebindi:5,ecc2:31,ecc3:31,ecc:[5,11,15,18,30,31],eccentr:[0,7,9,11,12,13,14,15,16,18,24,31,42],eccentric_rlof_model:[0,7],eccentricity_quadrupl:[0,7],eccentricity_tripl:[0,7],echo:[0,7],eddington:[0,7],edg:[0,6,7,15,34],edit:9,edu:[0,7],eej:5,eff:6,effect:[0,5,7,9,12,21,31],effective_metal:[0,7,18],effici:[0,6,7,8],egg:[22,39],eggleton:[0,7,42],either:[0,2,3,7,12,13,14,15,18,20,21,22,34,38,39,40],eject:[0,7,8,16],el:[11,15],elabor:9,elaps:27,eld:[0,7],eldridg:[0,7],electon:[0,7],electron:[0,7],element:[0,1,7,10,16,21,24,38],els:[2,5,8,19,21],email:38,emp:[0,7],emp_feh_maximum:[0,7],emp_logg_maximum:[0,7],emp_minimum_ag:[0,7],empti:[2,11,29,33,36],enabl:[0,7],encod:[3,30],encount:21,end:[0,5,7,19,21,27,31],end_bss:5,end_index:31,end_rch:5,end_symb:5,end_timestamp:[6,8,12,14,15],energi:[0,7],enhanc:[0,7],enlarg:[0,7],enough:31,ensembl:[0,7,10,21,22,23,30,34,35,38],ensemble_compress:3,ensemble_def:[0,7],ensemble_dictionari:3,ensemble_dt:[0,7],ensemble_factor_in_probability_weighted_mass:21,ensemble_file_typ:3,ensemble_filt:10,ensemble_filter_:[0,7],ensemble_filters_off:[0,7],ensemble_json:3,ensemble_legacy_ensembl:[0,7],ensemble_list:20,ensemble_logdt:[0,7],ensemble_logtim:[0,7],ensemble_macro:[0,7],ensemble_output_:21,ensemble_set:3,ensemble_startlogtim:[0,7],ensemebl:3,ensure_ascii:[3,20,30],enter:[0,7,21],enthalpi:[0,7],entir:[9,11,17,18],entri:[3,19,20],env:[21,24],envelop:[0,4,5,6,7,22],environ:21,eorbf:5,eorbi:5,ep:18,epoch:32,equal:[0,2,7,13,14,15,19],equat:[0,7],equation_of_state_algorithm:[0,7],equation_of_state_paczynski:0,equatori:[0,7],equival:[12,21,25],errno:[22,39],error:[0,2,6,7,8,12,13,14,15,19,21,22,25,30,39],error_on_overwit:25,error_on_overwrit:25,errors_exceed:[6,8,12,14,15],errors_found:[6,8,12,14,15],esa:31,escap:[0,7],escape_fract:[0,7],escape_veloc:[0,7],estim:[6,16,19,21],et:[0,7,31,42],eta:[0,7,8,12],etal:[0,7],etc:[0,7,11,13,14,15,19,20,21,22,24,30,31,39,40],etf:[8,12],euler:[0,7],evalu:[15,31,34,37,42],evan:[0,7],evapor:[0,7],evaporate_escaped_orbiting_object:[0,7],even:[3,10,13,14],event:[0,5,6,7],everi:[0,7,8,19,21,22,39],everyth:[11,15,20,21],everytim:[22,39],evid:[0,7],evolut:[0,1,4,5,6,7,11,12,13,14,15,18,21,22,24,37],evolution_split:[0,7],evolution_splitting_maxdepth:[0,7],evolution_splitting_sn_eccentricity_threshold:[0,7],evolution_splitting_sn_n:[0,7],evolution_stop:8,evolution_typ:[6,8,12,14,15,21],evolutionari:[0,7,11],evolv:[0,4,7,9,20,21],evolve_popul:15,evolve_singl:[9,11,20],exact:[1,2,21],exactli:[0,7,13,14],exampl:[1,2,11,19,31,34,37,40],example_compact_object:15,example_dco:15,example_df:11,example_head:19,example_header_1:18,example_header_2:18,example_log:40,example_log_co:[1,9],example_logging_string_co:9,example_logging_string_post_m:9,example_massloss:[9,11],example_output:11,example_parse_output:[17,19],example_pop:[11,15],example_pop_set:15,example_post_m:9,example_python_population_result:15,example_sn:9,exc_tb:19,exc_typ:19,exc_val:19,exce:[0,7,12],except:[2,5,6,7,12,13,14,15,21,24,33],excess:21,excit:8,exclud:25,execut:[0,7,15,21,34],exist:[0,2,6,7,15,18,21,25,30,33,34],exist_ok:[15,19],exists_ok:30,exit:[0,7,19,20,21,25,29,30,36],exit_after_dry_run:21,exit_cod:21,exp:[8,12,13,14,15,34],expand:15,expect:[6,7,8,12,13,14,21,22,39],experiment:[0,7,19],explain:[4,38],explicitli:[0,1,7],explod:[0,5,7],explor:16,explos:[0,5,6,7,18],expoenti:[0,7],expon:[0,7,19],export_all_info:[15,20],express:[0,7,19],extend:[0,7,8,22,38,39],extens:[3,7,22,23],extern:[0,7],extra:[0,4,7,15,21,22,32,34,40],extra_text:33,extract:[3,15],extract_ensemble_json_from_str:3,extrapol:[21,31],ey:32,f4e5925effeb42e69b5be956f400ae41:6,f:[0,5,7,11,15,18,31],fa:31,fabian:[0,7],fabian_imf_log:[0,7],fabian_imf_log_tim:[0,7],fabian_imf_log_timestep:[0,7],factor:[0,2,7,21,37],fade:[0,7],fail:[0,6,7,8,12,19,21,22,30,39],fail_sil:19,failed_count:[6,8,12,14,15],failed_prob:[6,8,12,14,15],failed_system:21,failed_system_log:21,failed_systems_error_cod:[6,8,12,14,15],failed_systems_threshold:21,failsaf:11,failur:[0,7,19,25],fallback:[0,7],fals:[0,3,5,6,7,8,12,14,15,16,19,20,21,24,25,27,28,29,30,34,36,37,38],fancy_parsing_funct:40,far:[0,5,6,7,13,14,16],farmer:0,fase:15,fast:[0,7],faster:[2,12,13,14,15],fatal_open_error:30,favorit:11,fe:[0,7],featur:[2,4,15,22],feed:21,ferguson:[0,7],fetch:11,few:[0,7,8],fewer:11,field:[0,7],fifocach:21,fig:[0,7,18,31],figsiz:[6,8,12,13,14,16,18],figur:[6,8,12,13,14,16,24],file:[0,1,3,5,7,11,15,19,20,21,22,24,25,28,29,30,33,34,36,38,39,40],file_log:[0,7],file_object:30,filehandl:33,filenam:[0,1,3,5,7,11,15,19,20,21,25,29,30,36,40],filenotfounderror:[22,39],filepath:1,fill:[11,19],fill_data:31,filter:[0,2,7,19],filter_arg_dict:19,filter_dict:2,filter_dict_through_valu:2,filter_list:2,filter_valu:19,fin:[0,7],final_mass:18,final_tim:18,find:[2,5,8,15,19,21,28,33],finish:[6,8,12,14,15,19,24,30,36],finit:[6,8,12,13,14],first:[0,2,6,7,8,11,12,13,14,15,16,19,22,25,30,31,39,42],first_giant_branch:0,fishlock:[0,7],fit:[0,2,7,11,31,42],fix:[0,5,7,11,15,19,20,24,30,31,32],flag:[0,1,20,21,30,37,38],flash:[0,7],flat:[21,31],flatsect:[8,12,15,31],flaw:20,float64:[17,18],float_overflow_check:[0,7],flto:[22,39],flufl:30,flush:[3,20,30],fo:21,focu:8,fold:31,follow:[0,7,9,18,19,21,22,24,31,37,39],font_scal:[6,8,12,13,14,16],fontsiz:18,forc:[0,5,7,21,27],force_circularization_on_rlof:[0,7],force_corotation_of_primary_and_orbit:[0,7],foreach_star:[6,12],form:[0,6,7,8,12,13,14,15,20,25,30,33,38],formal:[0,7],format:[0,2,3,5,7,8,9,11,12,13,14,15,16,18,19,21,29,30,31,34,37],format_ensemble_result:3,format_numb:19,format_stat:30,former:5,formula:[0,7,19],forward:[0,7],found:[5,6,8,12,14,15,29,31,36],four:[0,7],fourth:16,fraction:[0,7,12,18,21,31],fractions_z0002:18,fractions_z001:18,fractions_z002:18,framework:7,free:[6,8,12],free_persistent_data_memaddr_and_return_json_output:7,free_store_memaddr:7,frequenc:[0,7,16],friction:[0,7],fring:[0,7],from:[0,2,3,5,6,8,10,11,12,13,14,15,16,17,18,19,20,21,24,25,29,30,31,34,36,38,42],from_binary_c_config:1,from_dict:[8,12,13,14,17,18],fryer:[0,7],fsampl:37,ftz:[22,39],full:[4,9,16,19,21,29,36],full_path:19,func:28,func_memaddr:18,function_cach:21,function_cache_default_maxs:21,function_cache_default_typ:21,function_cache_funct:[21,28],function_cache_s:28,function_cache_ttl:21,further:15,futur:16,fuv:[0,7],g:[0,1,2,5,6,7,8,9,11,12,13,14,15,17,18,19,21,22,25,28,29,30,31,36,37,39],ga:[0,7],gaia:[0,7,31],gaia_colour_transform_method:[0,7],gaia_conversion_ubvri_bivariate_jordi2010:[0,7],gaia_conversion_ubvri_riello2020:[0,7],gaia_conversion_ubvri_univariate_evans2018:[0,7],gaia_conversion_ubvri_univariate_jordi2010:[0,7],gaia_conversion_ugriz_bivariate_jordi2010:[0,7],gaia_conversion_ugriz_riello2020:[0,7],gaia_conversion_ugriz_univariate_evans2018:[0,7],gaia_conversion_ugriz_univariate_jordi2010:[0,7],gaia_l_binwidth:[0,7],gaia_teff_binwidth:[0,7],galact:[0,7,37],gallino:[0,7],gamma:[0,7],gap:[0,7],garcia:[0,7],gauss:[0,7],gaussian:[31,37],gaussian_func:31,gaussian_normalizing_const:31,gaussian_zoom:37,gb:[0,7],gb_reimers_eta:[0,7],gb_wind_beasor_etal_2020:0,gb_wind_goldman_etal_2017:0,gb_wind_reim:0,gb_wind_schroeder_cuntz_2005:0,gbwind:[0,7],gbwindfac:[0,7],gcc:[1,22,39],gce:[0,7],gener:[0,1,6,7,8,9,11,12,14,15,17,18,19,20,21,24,25,30,31,33,34,37],general_info:2,generalis:31,geometr:[0,7],geq:6,gerosa:[0,7],get:[0,2,3,4,6,9,11,12,13,14,15,16,18,19,20,22,25,26,29,31,33,34,36,39,40,42],get_ansi_colour:19,get_arg_kei:19,get_condor_statu:29,get_default:[10,19],get_grid_options_defaults_dict:33,get_grid_options_descript:33,get_help:[10,19],get_help_al:[10,19,20],get_help_sup:[10,19],get_integration_constant_q:31,get_max_multipl:31,get_moe_di_stefano_2017_default_opt:26,get_moe_di_stefano_2017_default_options_descript:26,get_moe_di_stefano_dataset:26,get_siz:19,get_slurm_statu:36,get_usernam:19,getitem:2,gettempdir:18,getter:28,giant:[0,6,7,16],giant_branch:0,git:[0,12,13,14,15,19],git_branch:38,git_build:38,github:[19,30],gitlab:22,give:[0,5,7,8,19,20,31,42],given:[0,1,3,7,12,13,14,17,18,19,20,21,25,28,29,30,31,34,36,37,40,42],global:[0,2,7,12,13,14,19,31,37],global_dict:2,gmax:31,gmin:31,gnu:7,go:[0,6,7,10,12,15,20,22,24,39],goal:31,goe:[0,2,7,9,11,24],gogo:[0,7],goldman:[0,7],gonna:31,good:[0,7,11,12,13,14,15,21,42],got:[13,14],gov:[0,7],gravit:[0,6,7,8,15],gravitational_const:6,gravitational_radiation_bs:0,gravitational_radiation_bse_when_no_rlof:0,gravitational_radiation_landau_lifshitz:0,gravitational_radiation_landau_lifshitz_when_no_rlof:0,gravitational_radiation_model:[0,7],gravitational_radiation_modulator_:[0,7],gravitational_radiation_modulator_j:[0,7],gravitational_radiation_non:0,grb:[0,7],great:[0,7,13,14,21],greater:[0,7],grevess:[0,7],grid:[0,4,7,9,11,19,20,22,25,26,29,30,31,32,33,34,35,36,37,42],grid_cod:20,grid_ensemble_result:[30,35],grid_log:[20,22,23],grid_opt:[6,8,11,12,13,14,15,20,25,28,29,30,34,35,36,37],grid_options_default:[20,22,23,28],grid_options_defaults_dict:33,grid_options_descript:[6,15,33],grid_options_description_check:33,grid_options_help:33,grid_result:[6,8,12,13,14,21],grid_vari:[15,21],grid_variable_numb:[6,8,15,34],gridcod:[20,22,23],gridcode_filenam:21,gridtyp:[6,8,15,34],group:[6,12,16,38],grvitation:5,gsl:[22,39],gsl_dir:[22,39],gt:[5,6,7,8,9,11,13,15,16,17,18],guess:[0,7,31],gyr:[5,6,8],gz:30,gzip:30,h5py:[22,39],h:[0,5,7,9,19],ha:[0,1,2,5,6,7,8,9,10,12,13,14,15,18,19,21,27,30,34],hachisu:[0,7],hachisu_disk_wind:[0,7],hachisu_ignore_qcrit:0,hachisu_qcrit:[0,7],hack:33,had:[6,8,12,13,14,20],half:[0,7,31],hall:[0,7],handi:[0,7],handl:[0,2,3,4,7,11,19,20,21,25,26,34,35,38,40,42],handle_ensemble_string_to_json:3,happen:[0,6,7,8],hardcod:[9,12,13,14,15],hardli:38,have:[0,2,3,4,5,6,7,8,9,11,12,13,14,15,18,19,20,21,22,24,25,29,30,33,36,39,40],haven:6,hbb:[0,7],hbbtfac:[0,7],hd:24,hdf5:19,hdf5file:19,he:[0,5,7],head:16,header:[1,6,8,9,11,12,13,14,15,18,19],headerlin:15,headlin:21,hegb:[0,5],hehg:0,height:[8,12,15,31],held:[29,36],helium:[0,6,7],helium_flash_mass_loss:[0,7],helium_white_dwarf:0,help:[0,4,5,7,11,12,13,14,15,19,33],help_al:[0,7],hem:0,henc:[0,7,8,13,14,16],hendrik:[0,18,22,39],here:[1,6,7,9,11,12,13,14,16,18,19,20,21,24,31,40],hertzsprung:[0,4,7,22],hertzsprung_gap:0,hertzstrpung:[0,7],heuvel:[0,7],hewd:[0,7],hewd_hewd_ignition_mass:[0,7],hex:21,hg:[0,7],hi:31,high:[0,7,13,14,31],higher:[0,6,7,8,12,13,14,15,19,21,22,31,39],highlight:2,histogram:8,histori:31,hole:[0,4,6,7,22],home:7,homogen:[0,7],hood:11,hook:21,hopefulli:[0,7],hot:[0,7],hour:19,how:[0,2,5,6,7,8,9,11,12,13,14,15,18,21,27,31,34],howev:[0,7,9,12,13,14,15],hoyl:[0,7],hpc:[20,21,22,23,29,36],hpc_can_join:25,hpc_check_requir:25,hpc_dir:25,hpc_dump_statu:25,hpc_force_join:21,hpc_get_statu:25,hpc_grid:25,hpc_id_filenam:25,hpc_id_from_dir:25,hpc_job:25,hpc_job_task:25,hpc_job_typ:25,hpc_jobid:[20,25],hpc_jobid_tupl:25,hpc_join_from_fil:25,hpc_join_previ:25,hpc_joinlist:25,hpc_load_joinfiles_list:25,hpc_make_joiningfil:25,hpc_njob:25,hpc_path:25,hpc_queue_stat:25,hpc_rebuild_joinlist:[21,25],hpc_restor:25,hpc_set_statu:25,hpc_snapshot_filenam:25,hpc_statu:25,hpc_task:25,hpc_touch:25,hr:24,hr_diagram:24,hrd:[0,6,7,8],hrdiag:[0,7],hrdiag_output:[0,7],htcondor:21,html:[2,6,15,22,30,39],http:[0,1,2,6,7,15,19,30,31],human:19,hurlei:[0,7],hut:[0,7],hybrid:[0,7],hydro:[0,7],hydrogen:[0,6,7],i:[1,2,5,6,7,8,9,11,12,13,14,15,16,19,20,21,22,25,31,34,38,39,42],ia:[0,7,8],iadd:2,ib:[0,5,7],ibc:[0,7],id:[20,21,25,29,30,31,32,36],id_cor:9,idea:[15,24],ident:2,idum:[0,7],ignit:[0,6,7],ignor:[0,2,7,9,11,15,18,21,31,34],ii:[0,7,18],iia:[0,7],iloc:[11,18],images:21,imf:[0,7,13,14,31],imf_chabrier2003:31,imf_scalo1986:31,imf_scalo1998:31,imf_tinsley1980:31,immedi:[0,6,7,21],implement:[0,2,7,21],impli:[0,7],implic:[13,14],impos:[6,8,12,13,14,15],imposs:8,improv:[31,37],inclin:[0,7],inclination1:[0,7],inclination2:[0,7],inclination3:[0,7],inclination4:[0,7],inclini:[0,7],incliniation_quadrupl:[0,7],incliniation_tripl:[0,7],includ:[0,1,2,6,7,9,11,13,14,15,16,19,20,22,24,30,31,39],include_binary_c_default:[15,20],include_binary_c_help_al:[15,20],include_binary_c_version_info:[15,20],include_default:[15,30],include_popul:15,include_population_set:20,incom:[0,7],increas:[0,5,7,8,12,13,14],inde:[0,7,13,14],indent:[2,3,11,20,30],independ:31,index:[0,7,10,11,16,21,22,25,31,34],indic:[0,7,31],individu:[4,12,22],individual_nova:[0,7],induc:[0,7],inertia:[0,7],info:[7,10,15,19,20,22,24,38,39],inform:[0,1,3,4,6,9,11,12,13,14,15,19,20,21,24,25,31,33,35,38],init:20,init_abund:[0,7],init_abund_dex:[0,7],init_abund_mult:[0,7],init_abunds_onli:[0,7],initi:[0,4,5,7,10,11,18,20,31],initial_abundance_hash:20,initial_abundance_mix:[0,7],initial_abunds_onli:[0,7],initial_grid:18,initial_mass:[11,18],initial_tim:18,inlin:18,inner:[0,7,16],input:[1,2,3,7,10,11,19,20,21,22,24,26,30,31,32,33,40,42],input_dict:2,insert:[15,34],insid:[0,7],inspect:[2,11,24],inspect_dict:2,inspir:[1,24,42],instabl:[0,7],instal:[21,42],install_without_depend:[22,39],instanc:[2,11,12,13,14,15,31],instant:[0,7],instantli:[0,7],instead:[0,5,7,13,14,19,21],integ:[0,6,7,21,37,42],integr:[12,13,14,31,37],integrals_str:31,intens:[13,14],interact:[0,3,5,6,7,8,16,18,33],interfac:[7,16,19,22,25,39],interfer:[22,39],intermedi:8,intern:[0,7,10,21],internal_buff:[0,7],internal_buffering_off:0,internal_buffering_print:0,internal_buffering_stor:0,interpol:[26,31,37],interpolate_in_mass_izzard2012:31,interpolator_nam:31,intershel:[0,7],interstellar:[0,7],intger:[0,7],intro:[0,7],introduc:5,introduct:6,inv:[5,18],invers:42,invert_xaxi:6,involv:[0,7],inward:[0,7],io:30,ipykernel_216542:16,ipykernel_519112:13,ipynb:[12,13,14,15],is_capsul:19,isfil:15,isfloat:19,isint:19,isn:[13,14,19],isnt:15,isotop:[0,7,10,38],isotope_hash:20,isotope_list:20,issu:25,item:[1,2,6,8,12,13,14],iter:19,its:[0,2,3,7,12,13,14,15,16,19,21,22,24,25,26,30,33,37,38,39,40],itself:[3,6,9,11,21,22,31,39],iwamoto:[0,7],izzard2012_period_distribut:31,izzard:[0,6,7,8,11,12,13,14,15,22,39],jager:[0,7],jan:0,jaschek:31,jeff:[22,39],jej:5,jerki:6,jf:5,jia:[0,7],job:[20,21,25,29,36],job_id:25,job_index:25,jobarrayindex:[21,36],jobid:[20,21,36],john:[0,7],join:[7,9,11,15,18,21,25],joinfil:25,joiningfil:25,joinlist:[21,25],jorb_in:5,jorb_out:5,jordi:[0,7],json:[3,7,11,15,20,21,26,30],jsondecod:3,jsonencod:3,jtot_in:5,jupit:16,jupyt:[22,39],just:[0,2,6,7,8,15,18,19,20,21,22,26,30,38,39,42],k1:[5,11,18],k2:[5,11,18],k:[0,6,7,16,31],kap:[0,7],kappa:[0,7],kaps_rentrop:[0,7],karaka:[0,7],keep:[8,15,30,32],kei:[1,2,3,6,10,11,15,16,18,19,20,21,24,28,30,31,33,34,38],kelvin:[0,7],keplerian:[0,7],keys_to_float:2,keyword:[13,24,40],kick:[0,5,7,18,21],kick_backward:0,kick_forward:0,kick_inward:0,kick_outward:0,kick_random:0,kick_straight_up:0,kick_velocity_custom:0,kick_velocity_fix:0,kick_velocity_maxwellian:0,kill:[1,9,15,20],kilonova:6,kim:[0,7],kind:[0,7],kippenhahn:[0,7],klencki:[0,7],km:[0,7],know:[0,1,2,7,10,11,13,14,21,30,33],known:[0,6,7,11,12,13,14,15,20,31,40],kroupa2001:[15,31,34],kroupa:[13,14,31],krticka:[0,7],ktg93:31,kwarg:[18,20,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40],l1:5,l2:[0,7],l:[0,6,7,12,13,14],l_:[12,13,14],label:[6,18,31],lambda:[0,5,7,8],lambda_:8,lambda_c:[0,5,7,8],lambda_ce_dewi_tauri:[0,7],lambda_ce_klencki_2020:[0,7],lambda_ce_polytrop:[0,7],lambda_ce_wang_2016:[0,7],lambda_enthalpi:[0,7],lambda_ion:5,lambda_ionis:[0,7],lambda_min:[0,7],lambda_mult:[0,7],lambda_multipli:[0,7],lambda_v:31,lamer:[0,7],landau:[0,7],langer:[0,7],languag:6,larger:[0,6,7],last:[4,13,16,18,19,31],last_st:18,last_stellar_type_change_time_1:18,lastli:[7,11],late:18,later:[12,13,14,21],latest0:[6,8,12],latest1:[6,8,12],latest2:[6,15],latest3:6,latest4:6,latest5:6,latest:[22,39],latter:[0,7],launch:[21,29,36],law:[13,14,31],law_const:31,lbv:[0,7],ld_library_path:[22,39],ldist:[13,14],lead:[0,6,7,12,13,14,15,30,31,42],learn:[9,21],least:[22,39],leav:[0,7,21],left:[0,7],legaci:[0,7],legacy_yield:[0,7],legend:[16,18],len:[5,6,11,15,18],length:[5,19],lengthen:[0,7],leq:6,less:[0,1,4,5,7,30,31],let:[5,8,11,12,13,14,15,16,20],level:[1,6,19,32],lfucach:21,li7:[0,7],li:[0,7],lib:[7,11,17,18,22,39],libbinary_c:21,libcustom_logging_0639ee205c7d4782b4a27378f5d890bd:11,libcustom_logging_dafa15d2b1e64e19972ac0e9eb5c9a55:11,libgsl:[22,39],libmemo:[22,39],librari:[0,1,6,7,9,18,20,21,40],library_path:[22,39],librinterpol:[22,39],life:8,lifetim:[0,7,8,12,13,14,15,37],lifshitz:[0,7],like:[0,1,6,7,8,12,13,14,15,18,19,21,22,24,30,37,39],limit:[0,6,7,8,12,13,14,15,21,24],line:[1,5,6,8,9,11,12,13,14,15,16,17,19,20,21,22,24,30,37,39],linear2:21,linear:[0,7,12,13,14,21,31,37],linear_extrapolation_q:31,linearli:[13,14,37],linedata:[6,8,12,13,14],lineplot:[6,8,12,13,14,16],linewidth:[6,8,12,13,14,16],linker:1,linspac:37,linux:7,list:[0,1,2,3,6,7,8,11,12,13,14,15,16,19,21,25,28,31,34,37,40],list_arg:[0,7],list_of_sub_kei:2,lit:[0,7],lithium:[0,7],lithium_gb_post_1dup:[0,7],lithium_gb_post_heflash:[0,7],lithium_hbb_multipli:[0,7],lithium_t:[0,7],littl:[5,6,8,12,16,28],littleton:[0,7],liu:[0,7],ll:[2,9,10,13,14,16,30],llnl:[0,7],ln:31,lnm1:[8,12,13,14,15],lnm_1:[13,14,34],load:[0,1,3,6,7,8,9,11,12,13,14,15,18,19,20,21,24,25,26,30,34],load_ensembl:3,load_logfil:19,load_population_object:30,load_snapshot:30,lobe:[0,5,7,8,42],loc:16,local:[7,21,31],local_count:2,locat:[0,7,21,22,31,37,39],lock:[5,30],lock_lifetim:30,lock_object:30,lock_suffix:30,lock_timeout:30,locked_clos:30,locked_open_for_writ:30,lockfil:30,lodder:[0,7],log10:[0,6,7,8,12,13,14,15,31,37],log10m1:21,log10mass:37,log10p:31,log10per:[8,12,15],log10pmin:31,log:[0,1,4,5,7,11,16,17,19,21,22,24,30,31,32,34,37,39,40,42],log_:[6,8,12,13,14],log_arg:21,log_args_dir:21,log_arrow:[0,7],log_dt:[8,21],log_every_timestep:[9,11],log_fil:[5,21],log_filenam:[0,5,7,11,18,40],log_newlin:21,log_runtime_system:21,logarithm:[13,14,31,37],logensembletim:[0,7],logfil:[11,19,22,39],logg:[0,6,7],logger:15,logging_dict:1,logging_lin:[9,17,18],loggrav:6,logi:17,logic:[1,2,9,20,21],logl:6,logmass:[31,37],logp:31,logper:[8,31],logperiod:31,logperrang:[8,12],logspac:37,logteff:6,long_spectral_typ:31,longer:[0,6,7,8],longnam:[6,8,12,13,14,15,34],look:[1,3,6,8,12,13,14,15,18,22,31,39],lookback:[0,7],loon:[0,7],loop:[6,8,11,12,13,14,15,30,34],loos:24,lose:[0,7,18],loss:[0,5,7,11,12,16],lost:[0,7,8,18],lot:[6,12,13,14,15,16,21,38,40],lovegrov:0,low:[0,6,7,8,13,14,31],low_mass_m:0,low_mass_main_sequ:0,lower:[0,7,12,15,31,34,37],lowest:31,lru:28,lru_:28,lrucach:21,lsoda:[0,7],lsun:[0,7,24],lt:[6,7,8,11,13,15,16,17],lucianopaz:30,lugaro:[0,7],luminos:[0,4,6,7,22,24],luminosity_1:24,luminosity_2:24,luminosu:6,lw:[0,7],lynnett:[0,7],m01:5,m0:31,m1:[0,5,7,8,9,11,12,13,14,15,18,30,31,42],m2:[5,8,9,11,12,15,18,30,31,42],m3:31,m4:31,m:[0,5,6,7,8,12,13,14,16,18,19,31,42],m_1:[0,5,6,7,8,9,10,11,12,13,14,15,16,17,18,34,40],m_2:[0,5,6,7,8,9,11,12,15,17,18],m_3:[0,7],m_4:[0,7],m_:18,m_max:[15,31,34],m_min:[15,34],m_sun:6,maccretor:[0,5,7],machin:[8,21,22,39],macro:[0,7,10,19,38],madau:31,made:[6,22,25,39],maeder:[0,7],magellan:[0,7],magnet:[0,7],magnetic_braking_algorithm:[0,7],magnetic_braking_algorithm_andronov_2003:0,magnetic_braking_algorithm_barnes_2010:0,magnetic_braking_algorithm_hurley_2002:0,magnetic_braking_algorithm_rappaport_1983:0,magnetic_braking_factor:[0,7],magnetic_braking_gamma:[0,7],magnitud:19,mai:[0,7,8,12,30],main:[0,1,6,7,9,12,13,14,15,18,21,22,39],main_sequ:[0,7,12,13,14,18],mainprocess:[6,8,12],major:[0,7],make:[0,1,2,3,5,6,7,8,11,12,13,14,15,16,18,19,20,21,22,24,25,29,30,31,39,40,42],make_analytics_dict:27,make_build_text:19,make_condor_dir:29,make_slurm_dir:36,makedir:[15,19],makejoiningfil:25,manag:[19,22,39],mani:[0,6,7,8,10,12,13,14,15,21,29],manual:[9,21],manufactur:[0,7],map:21,mar:16,maria:[0,7],mass:[0,1,2,4,5,6,7,8,10,11,12,15,16,18,19,21,24,31,34,37,38,40,42],mass_1:[15,18,24],mass_2:[15,18,24],mass_accretion_for_eld:[0,7],mass_accretor:42,mass_donor:42,mass_evolut:24,mass_for_hestar_ia_low:[0,7],mass_for_hestar_ia_upp:[0,7],mass_loss_m:18,mass_lost:18,mass_of_pmz:[0,7],mass_rang:18,mass_str:31,massiv:[0,4,5,6,7,8,12,16,22,31],massless:[0,7],massless_remn:0,massloss:0,massrang:[6,8,12,13,14],master:[21,24],match:[0,2,6,7,11,12,15,16,21,24,28],materi:[0,6,7],math:[6,8,12,13,14,15,16,34,37],mathieu:31,mathrm:[6,8,12,13,14],matplotlib:[6,8,13,14,16,18,22,24,39],matter:[0,7],mattsson:[0,7],mattsson_mass_loss:[0,7],mattsson_orich_tpagbwind:[0,7],max:[0,7,8,9,12,13,14,15,21,31],max_bound:[31,37],max_column:[6,8,16],max_evolution_tim:[0,1,6,7,8,9,11,12,13,14,15,16,18,37],max_hewd_mass:[0,7],max_logp:31,max_model_numb:[0,7],max_multipl:31,max_neutron_star_mass:[0,7],max_queue_s:21,max_row:[6,8,16],max_stellar_angmom_chang:[0,7],max_stellar_type_1:[0,7],max_stellar_type_2:[0,7],max_stellar_type_3:[0,7],max_stellar_type_4:[0,7],max_tim:[5,11,18],max_val:31,maxcount:5,maxdm:37,maximum:[0,6,7,8,9,12,13,14,15,21,31,37,42],maximum_mass_ratio_for_instant_rlof:[0,7],maximum_mass_ratio_for_rlof:42,maximum_mcbagb_for_degenerate_carbon_ignit:[0,7],maximum_nuclear_burning_timestep:[0,7],maximum_timestep:[0,7],maximum_timestep_factor:[0,7],maxmimum:[0,7],maxsiz:21,maxwellian:[0,7],mayb:24,mayor:31,mb:[6,8,12,14,15,19,21],mc13_pocket_multipli:[0,7],mc1:5,mc:[0,5,7,15,18,30],mch:[0,7],mcmin:[0,7],mdonor:[0,5,7],mean:[0,5,7,19,21,22,29,31,36,37,39],meant:21,measur:19,medium:[0,7],mega:31,megabyt:21,mem:[8,12],mem_us:19,memaddr:[7,9],memori:[1,6,7,8,9,12,14,15,18,19,20,21,30,42],menv:[0,5,7],mer:5,mercuri:16,merg:[0,2,5,6,7,8,21,25,30,31,32],merge_dict:[2,10],merge_multipl:31,merge_popul:30,merge_populations_from_fil:30,merger:[0,5,7],merger_angular_momentum_factor:[0,7],merger_mass_loss_fract:[0,7],mesa:[22,39],mesasdk_init:[22,39],mesasdk_root:[22,39],mess:16,messag:[19,20],messi:6,mestel:[0,7],met:[15,20,25,34],metadata:[20,22,23,34],metal:[0,5,6,7,8,9,11,12,13,14,15,16,17,18,31,42],metallicity_0002:18,metallicity_001:18,metallicity_002:18,method:[0,7,9,11,12,13,14,15,18,20,21,26,30,32,33,34,38],meynet:[0,7],mf1:5,mf2:5,might:[2,3,8,12,15,16,19,21,22,30,39],milki:[0,7],miller:[0,7],min:[8,9,12,13,14,15,31],min_bound:[31,37],min_logp:31,min_per:31,min_val:31,mind:18,mindm:37,minimal_verbos:19,minimum:[0,7,19,21,31,37,38,42],minimum_co_core_mass_for_carbon_ignit:[0,7],minimum_co_core_mass_for_neon_ignit:[0,7],minimum_donor_menv_for_comenv:[0,7],minimum_envelope_mass_for_third_dredgeup:[0,7],minimum_helium_ignition_core_mass:[0,7],minimum_mcbagb_for_nondegenerate_carbon_ignit:[0,7],minimum_orbital_period_for_instant_rlof:[0,7],minimum_period_for_rlof:42,minimum_separation_for_instant_rlof:[0,7],minimum_separation_for_rlof:42,minimum_stellar_mass:38,minimum_time_between_pn:[0,7],minimum_timestep:[0,7],mint:[0,7],mint_data_cleanup:[0,7],mint_dir:[0,7],mint_disable_grid_load_warn:[0,7],mint_fallback_to_test_data:[0,7],mint_hard_max_nshel:[0,7],mint_hard_min_nshel:[0,7],mint_kippenhahn:[0,7],mint_kippenhahn_companion_stellar_typ:[0,7],mint_kippenhahn_stellar_typ:[0,7],mint_maximum_nshel:[0,7],mint_maximum_shell_mass:[0,7],mint_metal:[0,7],mint_minimum_nshel:[0,7],mint_minimum_shell_mass:[0,7],mint_ms_rejuven:[0,7],mint_nshel:[0,7],mint_nuclear_burn:[0,7],mint_remesh:[0,7],mint_use_zams_profil:[0,7],minut:[8,19],mira:[0,7],misc:[7,22],miscellan:[10,38],miss:[0,7,12,13,14,19,33],mistak:21,mix:[0,2,7,21],mixtur:[0,7,12],mmax:[13,14,31,37],mmin:[13,14,21,31,37],mnra:42,mode:30,model:[0,1,6,7,8,9,11,12,13,14,15,16,17,18,21],model_numb:[12,13,14],modif:4,modifi:[0,2,7,9,22,39],modul:[0,7,8,10,12,13,14,15,16,21,23],modulo:21,moe2017_opt:21,moe:[15,22,25,26,31],moe_di_stefano_2017:[20,22,23],moe_di_stefano_2017_multiplicity_fract:31,moe_di_stefano_2017_pdf:31,moment:[0,6,7,9,15,18,37],momenta:[0,7,24],momentum:[0,7,16],monoton:[13,14],mont:[0,7,21],monte_carlo_kick:[0,7],more:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,24,37,39],most:[6,7,8,13,14,16,19],mostli:[6,8,12,13,14,15,18,19,21,24,33,40],mount:30,move:[0,6,7],mrucach:21,ms:[0,5,7,9,12],msgpack:30,mstart:5,msun:[0,6,7,9,11,12,13,14,16,18,31,37,38],mu:[0,7],much:[0,6,7,8,12,15,18,19,27],multipl:[0,2,6,7,21,31],multiplc:[0,7],multipli:[0,2,7,13,14,21,37],multiplicity_arrai:31,multiplicity_fraction_funct:21,multiplicity_model:21,multiplicity_modul:21,multiplied_dict:2,multiply_float_valu:2,multiply_values_dict:[2,10],multiprocess:21,must:[0,2,6,7,8,11,12,13,14,15,16,30,34,37],mw:[0,7],my:11,my_stellar_data:[1,9,15,17,18],myr:[0,6,7,8,11,12,13,14,16,37],n100:[0,7],n100_z0:[0,7],n100h:[0,7],n100l:[0,7],n10:[0,7],n150:[0,7],n1600:[0,7],n1600c:[0,7],n1:[0,7],n200:[0,7],n20:[0,7],n300c:[0,7],n3:[0,7],n40:[0,7],n5:[0,7],n:[0,1,5,6,7,8,9,11,12,13,14,15,17,18,19,21,25,31],n_logging_stat:21,naked_helium_star_giant_branch:0,naked_helium_star_hertzsprung_gap:0,naked_main_sequence_helium_star:0,name:[1,2,5,6,7,8,12,13,14,15,16,18,19,21,29,30,33,34,40,41],nameerror:16,narrow:[13,14],natur:[0,7,13,14],nauenberg:[0,7],nazehdin:0,nb:[0,7],nbinary_c:18,ncol:18,nearer:[0,7],nearest:[8,12,13,14],nebula:[0,7],necessari:[8,15,16,18,19,20,36],need:[0,2,7,9,11,12,13,14,15,16,18,21,22,25,31,39,42],neg:[0,2,7,37],neither:[0,7,20],neleman:[0,7],nelemans_gamma:[0,7],nelemans_max_frac_j_chang:[0,7],nelemans_minq:[0,7],nelemans_n_comenv:[0,7],nelemans_recalc_eccentr:[0,7],nemp:[0,7],nemp_cfe_minimum:[0,7],nemp_nfe_minimum:[0,7],nenamg:[0,7],neon:[0,6,7],neptun:16,nest:[2,15,34,38],network:[0,7,10],neutrn:[0,7],neutron:[0,6,7,15],neutron_star:0,never:[0,6,7,13,14,21,28],new_dict:2,newdict:2,newer:[0,2,7],newli:[0,7],newlin:[19,21,30,32],newnam:34,newobj:25,newopt:[2,31],newpop:30,newton:[0,7],next:[12,13,14,15,19],nf:[21,30],nfs_flush_hack:30,nfspath:30,nice:[20,24],nieuwenhuijzen:[0,7],nieuwenhuijzen_windfac:[0,7],nine:6,nmax:31,no_thermohaline_mix:[0,7],nocach:21,node:21,noecho:[0,7],noechonow:[0,7],noel:[0,7],nolowq:21,nomin:[0,7],non:[0,2,7,13,14,21,30],nonconservative_angmom_gamma:[0,7],none:[0,1,2,3,5,6,7,8,12,14,15,16,18,19,20,21,25,26,28,29,30,31,33,34,36,37,42],nonetyp:2,nonzero:21,nor:[0,7],norm:21,normal:[0,2,7,20,25,37,38],normalis:[2,21,31],normalize_dict:2,normalize_multipl:21,normalized_dict:2,nospac:19,notabl:15,notat:19,note:[0,5,6,7,12,13,14,15,18,19,21,25,30,34,37,38],notebook:[5,6,7,8,9,10,11,12,13,14,15,16,22,39],notebook_api_funct:11,notebook_bhbh:5,notebook_comenv:8,notebook_custom_log:[11,12,13,14,15],notebook_hrd:6,notebook_individual_system:[9,11,12,13,14,15],notebook_luminos:[13,14],notebook_luminosity_funct:12,notebook_luminosity_function_binari:[13,14],notebook_popul:[11,15],notebook_solar_system:16,noteworthi:4,noth:[2,21,25,26,30],notic:[13,14],notifi:40,nov:18,nova:[0,6,7,8],nova_faml_multipli:[0,7],nova_irradiation_multipli:[0,7],nova_retention_algorithm_claeys2014:0,nova_retention_algorithm_const:0,nova_retention_algorithm_hillman2015:0,nova_retention_fract:[0,7],nova_retention_method:[0,7],nova_timestep_accelerator_index:[0,7],nova_timestep_accelerator_max:[0,7],nova_timestep_accelerator_num:[0,7],now:[0,2,5,6,7,8,9,11,12,13,14,15,16,18,19,25,31,32],now_object:19,np:[11,17,18,37],nre:[12,37],nrow:18,ns:[0,1,7,8,9,15],nsep:8,nsep_max:8,nsep_min:8,nstar:[6,12],nuclear:[0,7],nuclear_mass_hash:20,nuclear_mass_list:20,nucleosynthesi:[0,7,38],nucleosynthesis_sourc:[10,38],nucreacmult:[0,7],nucsyn:[7,22],nucsyn_angelou_lithium:[0,7],nucsyn_gce_outflow_check:[0,7],nucsyn_hbb:[0,7],nucsyn_metal:[0,7],nucsyn_network:[0,7],nucsyn_network_error:[0,7],nucsyn_s_process:[0,7],nucsyn_solv:[0,7],nucsyn_third_dredge_up:[0,7],nugi:[0,7],nullcach:[21,28],num_ansi_colour:[0,7],num_cor:[6,8,12,13,14,15,21],num_cores_avail:21,number:[0,2,3,5,6,7,8,12,13,14,15,16,18,19,20,21,22,25,30,31,32,33,34,37,39],numer:2,numpi:[11,15,17,18,19,22,34,37,39],o:[3,7,19,22,31],obj:[3,19],object:[0,2,3,4,7,16,19,20,21,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40],object_hook:3,object_pairs_hook:3,object_parse_funct:11,observ:[12,13,14],obtain:[0,6,8,12,13,14,30],obvious:9,occur:[0,7,42],odot:[6,8,18],off:[0,5,7,15,18,21],off_m:[5,11,18],offset:[0,7],oh:5,ohio:[0,7],ok:[25,30],old:[13,14,21,34],oldnam:34,omega:[0,5,7,18],on_exit_or_evict:21,onc:[0,7,37],one:[0,2,7,10,13,14,15,16,17,18,21,24,28,30,33,37,40],onewd:0,onli:[0,2,6,7,9,12,13,14,15,16,18,19,21,25,26,30,37,42],onset:[0,7],onto:[0,7,31],oop:5,opac:[0,7],opacity_algorithm:[0,7],opacity_algorithm_ferguson_op:0,opacity_algorithm_paczynski:0,opacity_algorithm_star:0,opal:[0,7],open:[3,5,11,15,18,30],open_ensembl:3,opendir:30,oper:[2,30],opm:31,opt:[2,5,7,31],option:[0,1,2,6,7,8,12,13,14,15,16,17,18,19,20,22,25,26,28,30,31,33,34,37,39,42],orb:[8,15,30],orbit:[0,5,7,8,12,16,24,31,42],orbit_evolut:24,orbital_eccentr:16,orbital_inclin:[0,7],orbital_inclinationi:[0,7],orbital_period:[0,5,7,8,9,11,12,15,17,18,42],orbital_period_quadrupl:[0,7],orbital_period_tripl:[0,7],orbital_phas:[0,7],orbital_phase_quadrupl:[0,7],orbital_phase_tripl:[0,7],orbital_separ:16,orbiting_object:[0,7,16],orbiting_objects_close_pc_threshold:[0,7],orbiting_objects_log:[0,7,16],orbiting_objects_tides_multipli:[0,7],orbiting_objects_wind_accretion_multipli:[0,7],order:[2,4,15,19,34],ordereddict:2,org:[0,2,7,31],orient:8,origin:[2,16,22,30,39],original_command_lin:21,original_submission_tim:21,original_working_diretori:21,os:[5,6,8,11,12,13,14,15,16,18,19],other:[0,1,2,6,7,10,11,12,13,14,15,19,21,22,24,25,31,33,39],otherwis:[0,2,7,19,20,21,25,27,29,30,33,36],our:[6,8,12,13,14,21,31],out:[2,3,6,8,9,12,13,14,16,19,21,31,33],outcom:[0,7],outer:[0,6,7],outermost_core_mass:6,outfil:[15,20],outfile_nam:1,outfilenam:15,output:[1,2,3,4,5,7,9,10,11,16,17,18,19,20,21,22,24,30,38,39,40,42],output_dict:[6,8,11,12],output_dir:[11,15,30],output_fil:[11,19,30,33],output_filenam:[15,30],output_lin:19,outsid:[0,7,31],outward:[0,7],over:[2,6,8,10,11,12,13,14,15,19,20,30],overflow:[0,5,7,8],overhead:21,overlap:2,overrid:[2,18,21,31,34,37],overriden:15,overshoot:[0,7],overspin_algorithm:[0,7],overspin_bs:[0,7],overspin_massloss:[0,7],overview:7,overwrit:[21,25],own:[9,11,15,17,18,21,22,34,39],oxygen:[0,6,7],oxygen_neon_white_dwarf:0,p0:31,p1:31,p2:31,p3:31,p:[6,8,12,13,14,16,31,33],p_:8,p_in:5,p_out:5,packag:[3,7,15,19,22,34,35,36,37,39],paczynski:[0,7],pad:[8,12,13,14],pad_output_distribut:[6,8,12,13,14,19],page:[0,6,7,15,22,39],pair:[0,2,5,19,34,38],panda:[6,8,11,12,13,14,16,17,18,19,22,24,39],pane:24,panel:[0,7],paper:[0,7],parallel:34,param_nam:19,paramet:[1,2,3,4,6,7,8,9,11,12,13,14,15,19,20,21,22,24,25,28,29,30,31,33,34,36,37,38,40,42],parameter_nam:[3,6,7,8,10,12,13,14,15,19,34],parameter_value_input_typ:[10,19],pars:[3,4,6,8,11,12,13,14,15,18,19,20,24,38,40],parse_binary_c_version_info:38,parse_cmdlin:20,parse_const:3,parse_data:8,parse_float:3,parse_funct:[6,8,11,12,13,14,15,20,21,40],parse_function_hr_diagram:24,parse_function_mass:24,parse_function_orbit:24,parse_int:3,parse_output:18,parsec:31,part:[6,7,11,12,13,14,15,18,20,29,31,34,36,42],partial:[0,7],particularli:[0,7],partit:21,partner:30,pasp:31,pass:[2,7,9,11,15,16,18,19,20,21,22,24,25,26,29,30,36,37,39,40],path:[11,15,18,19,21,22,25,28,29,30,33,36,39],patho:[22,39],pd:[6,8,11,12,13,14,16,17,18],pdf:[0,7,18,22,31,39],peak:[8,13,14,37],peak_normalized_gaussian_func:37,pend:[0,5,7],per:[0,5,7,8,11,12,15,19,21,30,42],percentag:[0,7],peret:[0,7],perfect:[13,14],perfectli:[12,13,14],perform:[0,7,30],perhap:[0,6,7,8,20],periastron:[0,7],pericent:42,period:[0,5,7,8,9,11,12,13,14,15,16,18,24,31,42],period_str:31,perl:[1,2,12,13,14,15,29],persist:7,persistent_data:7,pgo:[0,7],phase:[0,6,7,8,12,13,14],phasevol:[0,7,15],phdi:0,phi:[5,18],photoevapor:[0,7],php:31,physic:[6,12,13,14,15,21],pick:24,pickl:30,pid:20,piec:[15,18,34],pinnsonneault:[0,7],pisn:0,pkg:[22,39],pl:20,place:[0,2,7,12,19,21],placehold:[24,28,29,30],plai:[0,7,13,14],plan:21,planet:16,planetari:[0,7],plaw2:21,pleas:[0,6,7,12,13,14,15,19,21,28],plot:[0,6,7,8,11,12,13,14,16,17,18,24],plot_data:[8,12,13,14],plot_funct:[22,23],plot_hr_diagram:24,plot_hr_diagram_singl:24,plot_mass:24,plot_orbit:24,plot_system:24,plot_typ:24,plt:[6,8,13,14,16,18],plu:[0,7],pluto:16,pm:24,pms_mass_1:24,pms_mass_2:24,pn:[0,7],pn_comenv_transition_tim:[0,7],pn_fast_wind:[0,7],pn_fast_wind_dm_agb:[0,7],pn_fast_wind_dm_gb:[0,7],pn_fast_wind_mdot_agb:[0,7],pn_fast_wind_mdot_gb:[0,7],pn_hall_fading_time_algorithm:[0,7],pn_hall_fading_time_algorithm_maximum:[0,7],pn_hall_fading_time_algorithm_minimum:[0,7],pn_resolv:[0,7],pn_resolve_maximum_envelope_mass:[0,7],pn_resolve_minimum_effective_temperatur:[0,7],pn_resolve_minimum_luminos:[0,7],pne:[0,7],png:18,pogg:[0,7],point:[0,3,6,7,19,20,21,22,30,31,37,39],poisson:[21,31],pol:[0,7],polytrop:[0,7],poor:[13,14],pop:[5,9,16,28],pop_macro:9,popitem:28,popul:[0,3,4,7,22,23,39,40],population_extens:[20,25,26,27,28,29,30,31,32,33,34,35,36,37,38],population_id:21,population_nam:[6,8,12,14,15],population_object:30,population_set:20,posit:[0,2,7,8,31],possibl:[0,1,2,6,7,11,16,19,21,22,28,31,33,39],post:[0,5,6,7,8,9,20],post_ce_adaptive_menv:[0,7],post_ce_envelope_dm_eagb:[0,7],post_ce_envelope_dm_gb:[0,7],post_ce_envelope_dm_tpagb:[0,7],post_ce_objects_have_envelop:[0,7],post_comenv_period:8,post_sn_orbit_bs:0,post_sn_orbit_method:[0,7],post_sn_orbit_tt98:0,postagb_legacy_log:[0,7],postagb_wind_gi:0,postagb_wind_krticka2020:[0,7],postagb_wind_non:[0,7],postagb_wind_use_gi:[0,7],postagbwind:[0,7],postcod:[6,8,15,34],potenti:[0,7],pow2:6,power:[0,7,8,13,14,21,31],powerlaw:31,powerlaw_const:31,powerlaw_constant_nocach:31,powerlaw_extrapolation_q:31,ppisn:0,ppisn_additional_massloss:0,ppisn_core_mass_range_shift:0,ppisn_farmer19:0,ppisn_new_fit_21:0,ppisn_non:0,ppisn_prescript:0,ppn_envelope_mass:[0,7],pragma:9,pre:[0,5,7,8,18,24],pre_comenv_period:8,pre_events_stardata:[0,7],pre_main_sequ:[0,7],pre_main_sequence_fit_lob:[0,7],precis:3,precod:[6,8,12,13,14,15,34],predefin:[12,13,14,15,31],predict:21,predictor:[0,7],prefer:[0,7,20],prefix:[0,7],preloaded_popul:30,prep:0,prepar:2,prepare_dict:2,presc:5,prescrib:[0,7],prescript:[0,5,7,15],prescrit:[0,7],present:[2,3,6,12,13,14,15,18,20,30,31],preserv:[0,7],preset:24,pressur:[0,7],prev_stellar_type_1:15,prev_stellar_type_2:15,prevent:[0,5,6,7,21],previou:[8,13,14,19,21,38],previous:[11,15,25],previous_stardata:[1,8,9,11,15],primari:[1,6,8,12,13,14,15,31,34,42],prime:8,pringl:[0,7],print:[2,5,6,7,8,9,10,11,12,13,14,15,16,18,19,21,25,32,33],print_help:[10,19],print_info:33,print_option_descript:33,print_stack_on_exit:21,print_structur:2,printf:[1,6,8,9,11,12,13,14,15,17,18],prior:[0,6,7],privat:[20,22],prob_dict:31,probability_weighted_mass:21,probabl:[0,1,2,6,7,8,9,12,13,14,15,18,20,21,24,30,31,33,34],probdist:[6,8,12,13,14,15,34],problem:[0,7,12],probtot:[13,14],process:[0,6,7,8,12,13,14,15,17,18,19,20,21,25,29],process_:30,processor:[6,8,12],produc:6,profil:[0,7],progenitor:[0,7,15],program:[6,22,39],progress:19,project:[0,7],proper:[6,9,33],properli:[0,7],properti:[0,19,21,24,34],proport:8,prot1:[0,7],prot2:[0,7],prot3:[0,7],prot4:[0,7],provid:[0,7,15,20,21,25,31,40],pseudorandom:[0,7],publicli:9,puls:[0,6,7,42],pulsat:0,pump:[0,7],purpos:[12,13,14,15,21,24],push:16,push_macro:9,put:[1,6,8,12,13,14,15,18,19,21,24,25,33,34,35],pwd:21,py:[6,8,12,13,14,15,16,21,22,28,39],py_rinterpol:[22,39],pyenv:[22,39],pyplot:[6,8,13,14,16,18],pysiz:19,pytest:[22,39],python3:[7,22,39],python:[2,3,4,6,8,12,13,14,19,21,28,30,31,34],q:[0,5,7,8,12,15,18,21,31,42],q_high_extrapolation_method:21,q_interpol:31,q_low_extrapolation_method:21,q_min:31,qc:5,qcrit_bh:[0,7],qcrit_bs:0,qcrit_cheb:[0,7],qcrit_chen_han_formula:0,qcrit_chen_han_t:0,qcrit_cowd:[0,7],qcrit_degenerate_bh:[0,7],qcrit_degenerate_cheb:[0,7],qcrit_degenerate_cowd:[0,7],qcrit_degenerate_eagb:[0,7],qcrit_degenerate_gb:[0,7],qcrit_degenerate_hegb:[0,7],qcrit_degenerate_hehg:[0,7],qcrit_degenerate_hem:[0,7],qcrit_degenerate_hewd:[0,7],qcrit_degenerate_hg:[0,7],qcrit_degenerate_lmm:[0,7],qcrit_degenerate_m:[0,7],qcrit_degenerate_n:[0,7],qcrit_degenerate_onewd:[0,7],qcrit_degenerate_tpagb:[0,7],qcrit_eagb:[0,7],qcrit_gb:[0,7],qcrit_gb_bs:0,qcrit_gb_chen_han_formula:0,qcrit_gb_chen_han_t:0,qcrit_gb_ge2015:0,qcrit_gb_hjellming_webbink:0,qcrit_gb_q_no_comenv:0,qcrit_gb_temmink2021:0,qcrit_gb_vos2018:0,qcrit_ge2015:0,qcrit_hegb:[0,7],qcrit_hehg:[0,7],qcrit_hem:[0,7],qcrit_hewd:[0,7],qcrit_hg:[0,7],qcrit_hjellming_webbink:0,qcrit_lmm:[0,7],qcrit_m:[0,7],qcrit_n:[0,7],qcrit_onewd:[0,7],qcrit_q_no_comenv:0,qcrit_temmink2021:0,qcrit_tpagb:[0,7],qcrit_vos2018:0,qcrits_:[0,7],qcrits_degenerate_:[0,7],qdata:31,qlimit:31,qmin:31,qs:31,quad:21,quadrat:[0,7],quadrulpl:[0,7],quadrupl:[0,7,21,31],quantiti:24,queri:[11,25],queue:[6,8,12,21,25,29],quickli:11,quit:[0,6,7,19,31],r1:[5,11,18],r2:[5,11,18],r:[0,1,5,6,7,11,15,18,22,30,39],r_l:42,r_sun:6,radau:[0,7],radi:[0,7],radiat:[0,7],radii:[0,7,42],radiu:[0,1,6,7,9,15,17,24,42],radius_1:24,radius_2:24,ragb:42,raghavan2010_binary_fract:31,raghavan:31,rai:[0,7],railton:[0,7],rais:[0,2,7,15,19,21],ram:[0,7,21],ran:[6,8,12,21],randbuf:[5,18],random:[0,5,7,18,21],random_count:[5,11,18],random_se:[0,5,7,11,18],random_skip:[0,7],random_system:[0,7],random_systems_se:[0,7],rang:[0,6,7,8,11,12,13,14,15,21,31,34,37],rapid:[0,7],rapidli:[0,7],rappaport:[0,7],rate:[0,7,13,14,31],rather:[0,2,7,9,11,15,19,21,22,25,38,39],ratio:[0,6,7,8,12,13,14,15,31,42],raw:[3,7,18,19,20,21,24,38,40],raw_output:3,rc:[5,6,8,12,13,14,16,24],re:[0,1,6,7,8,12,13,14,16,25,33],reach:[0,5,6,7,8],reaction:[0,7],read:[3,4,5,11,15,18,19,21,30],readabl:19,readlin:5,real:[6,12,15,34],realist:[13,14],realiti:[13,14],realli:[0,6,7,15,20,21,33,34],reason:[0,7,13,14],rebuild:[0,7,21,22,25,39],rebuilt:[22,39],recalcul:[0,7],receiv:19,recent:[13,16],recogn:15,recognis:30,recombin:[0,7],recommend:[1,4,22,39],recompil:[12,13,14,15,22,39],reconsid:33,recurs:[2,19],recursive_change_key_to_float:2,recursive_change_key_to_str:2,red:[0,6,7,13,14,16],redhat:1,redshift:31,reduc:[0,5,7],reduct:21,refer:[2,21,30],refpop:30,regardless:24,region:[0,7,37],regist:15,reignit:[0,7],reimer:[0,7],reinstal:[22,39],reject:[0,7],rejects_in_log:[0,7],rejuven:[0,7,12],rel:[0,7],relat:[0,7],releas:[19,22,39],relev:20,reliabl:7,remain:[0,7,19,21],rememb:[5,6,13,14],remesh:[0,7],remnant:[0,6,7],remov:[0,2,7,8,11,15,16,19,20],remove_fil:19,renam:[13,14,34],rename_grid_vari:[13,14,34],renormalis:31,rentrop:[0,7],repeat:[0,7,21],replac:29,repo:22,report:[0,6,7,8,12,13,14,15],repositori:4,repres:21,represent:[3,15,34],reproduc:[0,7],requir:[0,3,7,8,11,12,13,14,15,16,18,19,21,24,25,31,40],rerun:[6,21],reset:[0,7],reset_pref:[0,7],reset_star:[0,7],reset_stars_default:[0,7],resolut:[0,6,7,8,12,13,14,15,21,34,37],resolv:[0,7,12,30],reson:[0,7],resourc:[13,14,25],respect:[0,7,29,31,36],rest:[15,31,34],restor:25,restore_from_snapshot_dir:21,restore_from_snapshot_fil:[21,25],restructuredtext:19,result:[0,1,2,3,6,7,8,11,12,13,14,15,18,19,21,22,25,30,31,37,39],result_arrai:31,result_dict:2,result_example_head:18,result_example_header_1:18,result_example_header_2:18,results_dictionari:[6,8,12,13,14],retain:[0,7],rethink:19,return_after_dry_run:21,return_all_info:20,return_arglin:7,return_binary_c_default:20,return_binary_c_version_info:[10,20,38],return_compilation_dict:1,return_help:7,return_help_al:[7,19],return_maximum_mass_ratio_for_rlof:[7,42],return_minimum_orbit_for_rlof:[7,42],return_persistent_data_memaddr:7,return_population_set:20,return_store_memaddr:7,return_version_info:[7,38],reus:20,revap_in:[0,7],revap_out:[0,7],revers:[0,7,24],reverse_tim:[0,7],revis:[0,38],rewrit:20,rgb:6,rhagavan:21,ri0005:[6,15],rich:[0,7],riello:[0,7],rin:[0,7],ring:[0,7],risk:[15,34],ritter:[0,7],rk2:[0,7],rk4:[0,7],rl1:5,rl2:5,rl:[0,5,7],rlof:[0,5,7,42],rlof_angular_momentum_transfer_model:[0,7],rlof_angular_momentum_transfer_model_bs:0,rlof_angular_momentum_transfer_model_conserv:0,rlof_eccentric_as_circular:[0,7],rlof_entry_threshold:[0,7],rlof_f:[0,7],rlof_interpolation_binary_c:0,rlof_interpolation_bs:0,rlof_interpolation_method:[0,7],rlof_mdot_factor:[0,7],rlof_mdot_modul:[0,7],rlof_method:[0,7],rlof_method_adapt:0,rlof_method_adaptive2:0,rlof_method_bs:0,rlof_method_claei:0,rlof_method_ritt:0,rlof_nonconservative_gamma_donor:0,rlof_nonconservative_gamma_isotrop:0,rlof_radiation_correct:[0,7],rlof_transition_objects_escap:[0,7],rob:[0,7,31,42],robert:[22,39],roch:[0,5,7,8,42],roche_lob:42,rochelob:42,rol1:[5,11,18],rol2:[5,11,18],room:[15,34],root:[22,39],rotat:[0,7,31],rotation:[0,7],rotationally_enhanced_expon:[0,7],rotationally_enhanced_mass_loss:[0,7],rotationally_enhanced_massloss:[0,7],rotationally_enhanced_massloss_angmom:0,rotationally_enhanced_massloss_langer_formula:[0,7],rotationally_enhanced_massloss_langer_formula_and_angmom:0,rotationally_enhanced_massloss_non:0,rough:6,rout:[0,7],routin:[0,2,4,7,22,24,40],row:[11,18,24],rrcach:21,rring:[0,7],rssd:31,rst:[19,33],rsun:[6,24],run:[0,1,4,5,6,7,8,12,13,14,17,19,20,21,22,25,27,29,31,34,36,39,40,42],run_and_calc_mass:18,run_binary_custom_log:18,run_popul:7,run_system:[5,7,9,10,11,16,17,24,40],run_system_wrapp:[4,5,9,17,22,23],run_zero_probability_system:21,runawai:[5,18],rungrid:21,runtim:[1,21],russel:[0,4,7,22],rzam:[5,42],s:[0,2,3,5,6,7,8,11,13,14,15,16,18,19,20,21,25,27,28,30,31,35,42],safe:[15,30],sai:[0,6,7],said:[0,7],same:[0,2,7,11,15,21,22,31,34,39,40],sampl:[0,4,7,12,15,31,34,37],sample_valu:31,sampler:22,samplerfunc:[6,8,12,13,14,15,21,34,37],sana12:[8,12,15,31],sana:31,sander:0,saturn:16,save:[0,1,6,7,8,9,12,13,14,15,21,25,30,31,37],save_ensemble_chunk:21,save_loop:18,save_population_object:[21,30],save_pre_events_stardata:[0,7],save_snapshot:[20,21,30],sbatch:21,scalar:19,scalo:31,scandir:30,scanf:0,scene:18,scheme:[0,7],schneider:[0,7],schroeder:[0,7],scientif:19,script:[4,9,19,21,22,25,29,36,39],sdb:[0,7],sdo:[0,7],seaborn:[6,8,12,13,14,16],search:[6,12,16,22],search_for_bhbh:5,second:[0,2,7,8,16,19,24,30,31,32],secondari:[5,6,12,31,42],section:[7,15,19,22,31,39],see:[0,5,6,7,8,9,10,11,12,13,14,15,18,20,21,22,24,28,30,31,34,38,39],seed:[0,7],seem:[22,24,33,39],seen:19,segment:37,seitenzahl2013_model:[0,7],seitenzahl:[0,7],select:[0,3,7,11,12,16,18,19],select_kei:3,selected_head:[18,19],selector:[0,7],self:[6,8,11,12,13,14,15,20,21,25,28,29,30,31,34,36,37,38],semi:[0,7],sent:[0,7],sentenc:1,sep:[5,8,11,12,15,18,30,31,42],sep_max:[8,12,15],sep_min:[8,12,15],separ:[0,3,5,6,7,9,11,15,16,17,18,24,30,31,42],separation_quadrupl:[0,7],separation_tripl:[0,7],separta:[0,7],seper:15,sepf:5,sequenc:[0,6,7,9,12,13,14,18],sequnec:[12,13,14],seri:[0,7,37],serialis:3,serv:[18,19],server:18,set:[0,1,2,3,4,5,9,10,11,16,18,19,20,21,22,24,25,26,27,28,29,30,31,33,34,36,37,38,39],set_condor_statu:29,set_context:[6,8,12,13,14,16],set_moe_di_stefano_set:26,set_opt:[2,6,8,16],set_slurm_statu:36,set_statu:30,set_tim:27,set_titl:18,set_xlabel:[6,8,12,13,14,16,18],set_ylabel:[6,8,12,13,14,16,18],set_yscal:18,setter:28,setup:[6,15,40],setup_function_cach:28,sever:[10,15,18,21,24,33,40],sfh:31,sh:[22,39],shannon:37,shara:[0,7],share:[1,11,17,18,21,30,40],shared_lib_filenam:9,shared_memori:30,shell:[0,7,19],shellular:[0,7],shift:0,shorten:[0,5,7],shorter:5,shortli:6,should:[0,1,2,5,6,7,8,11,12,13,14,15,18,19,21,22,24,25,29,30,31,33,36,37,39,40],shouldn:[0,7,19],show:[0,4,5,6,7,8,11,12,13,14,15,18,21,24,37],show_plot:24,show_stellar_typ:24,showlist:37,shown:[0,7,24,37],showtabl:37,shrink:[5,8],shrinkagb:11,side:[12,13,14,15],siess:[0,7],sigint:21,sigkil:21,sigma:[31,37],signal:[6,8,12,21],silent:19,sill:[0,7],sim10:8,sim:6,similar:37,simpl:[6,8,12,16],simplest:11,simpli:[0,7,13,14],simul:[0,1,6,7,8,9,12,13,14,15,36],simulation_:20,sinc:[19,24,31],singl:[0,4,5,6,7,12,13,14,15,17,18,20,21,24,25,31],single_star_lifetim:[7,9,11],sit:[0,7],site:7,situat:7,size:[19,21,28],skip:[0,2,6,7,8,12,21],skipkei:3,slice:18,sliced_df:18,slightli:7,slope:31,slow:[0,6,7,8,12,13,14],slower:[0,7],slurm:[21,22,23,25],slurm_arrai:21,slurm_array_max_job:21,slurm_bash:21,slurm_check_requir:36,slurm_dat:21,slurm_dir:[21,25,29,36],slurm_env:21,slurm_extra_set:21,slurm_grid:36,slurm_jobarrayindex:[21,36],slurm_jobid:[21,36],slurm_jobnam:21,slurm_memori:21,slurm_njob:21,slurm_ntask:21,slurm_outfil:36,slurm_partit:21,slurm_postpone_join:21,slurm_postpone_sbatch:21,slurm_pwd:21,slurm_queue_stat:[25,36],slurm_sbatch:21,slurm_status_fil:36,slurm_tim:21,slurm_warn_max_memori:21,slurmid:36,slurmpath:36,small:[0,5,7,13,14],small_envelope_method:[0,7],small_envelope_method_bs:0,small_envelope_method_miller_bertolami:0,smaller:[0,7,37],smarter:[13,14],smooth:[6,13,14],smoother:[8,13,14],sn:[0,5,6,7,8,12,13,14,16,18],sn_impulse_liu2015:0,sn_impulse_non:0,sn_impulse_wheeler1975:0,sn_kick_companion_a:[0,7],sn_kick_companion_aic_bh:[0,7],sn_kick_companion_bh_bh:[0,7],sn_kick_companion_bh_n:[0,7],sn_kick_companion_ecap:[0,7],sn_kick_companion_grb_collapsar:[0,7],sn_kick_companion_hestaria:[0,7],sn_kick_companion_ia_chand:[0,7],sn_kick_companion_ia_chand_co:[0,7],sn_kick_companion_ia_eld:[0,7],sn_kick_companion_ia_h:[0,7],sn_kick_companion_ia_he_co:[0,7],sn_kick_companion_ia_hybrid_hecowd:[0,7],sn_kick_companion_ia_hybrid_hecowd_sublumin:[0,7],sn_kick_companion_ibc:[0,7],sn_kick_companion_ii:[0,7],sn_kick_companion_iia:[0,7],sn_kick_companion_ns_n:[0,7],sn_kick_companion_phdi:0,sn_kick_companion_pisn:0,sn_kick_companion_ppisn:0,sn_kick_companion_tz:[0,7],sn_kick_companion_wdkick:[0,7],sn_kick_dispersion_aic_bh:[0,7],sn_kick_dispersion_bh_bh:[0,7],sn_kick_dispersion_bh_n:[0,7],sn_kick_dispersion_ecap:[0,7],sn_kick_dispersion_grb_collapsar:[0,5,7],sn_kick_dispersion_ia_hybrid_hecowd:[0,7],sn_kick_dispersion_ia_hybrid_hecowd_sublumin:[0,7],sn_kick_dispersion_ibc:[0,5,7],sn_kick_dispersion_ii:[0,5,7],sn_kick_dispersion_ns_n:[0,7],sn_kick_dispersion_phdi:0,sn_kick_dispersion_pisn:0,sn_kick_dispersion_ppisn:0,sn_kick_dispersion_tz:[0,7],sn_kick_distribution_aic_bh:[0,7],sn_kick_distribution_bh_bh:[0,7],sn_kick_distribution_bh_n:[0,7],sn_kick_distribution_ecap:[0,7],sn_kick_distribution_grb_collapsar:[0,7],sn_kick_distribution_ia_hybrid_hecowd:[0,7],sn_kick_distribution_ia_hybrid_hecowd_sublumin:[0,7],sn_kick_distribution_ibc:[0,7],sn_kick_distribution_ii:[0,7],sn_kick_distribution_ns_n:[0,7],sn_kick_distribution_phdi:0,sn_kick_distribution_pisn:0,sn_kick_distribution_ppisn:0,sn_kick_distribution_tz:[0,7],sn_none:9,sn_type:9,snapshot:[21,25,30],snapshot_filenam:30,sneia:[0,7],snia:[0,7],snippet:[7,11],so:[0,2,5,6,7,8,9,11,12,13,14,15,20,21,24,25,30],solar:[0,4,6,7,8,10,22,31,42],solver:[0,7],solver_forward_eul:0,solver_predictor_corrector:0,solver_rk2:0,solver_rk4:0,some:[0,1,6,7,8,9,10,11,12,13,14,15,18,21,22,24,29,31,34,35,36,39],someth:[0,6,7,8,11,12,13,14,21,42],sometim:10,somewhat:[12,13,14,15,16],soon:37,sort:[2,6,12,13,14,16,19,30],sort_kei:[3,30],sourc:[1,2,3,8,19,20,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,42],source_file_filenam:21,source_list:20,sourcecod:[7,9,22,39],sourcefile_nam:1,sp:31,space:[0,6,7,12,13,14,15,30,34,37],spacing_funct:[20,22,23],spawn:19,special:[0,7,15],specif:[0,7,10,11,24,29,36],specifi:[0,7,21,25,37],spectral:31,speed:[0,7,28],speedtest:[0,7],spent:19,spera:[0,7],spheric:[0,7],spiki:[13,14],spin:[0,7,16],spinrat:[0,7],split:[0,5,7,11,15,16,18,21,29,36],split_lin:11,splitlin:[6,7,8,9,11,12,13,14,15,16],splitpoint:[0,7],spread:20,sqrt:[0,7],src:[0,7,9,22,39],st1:18,st2:18,st:5,stabil:[0,7],stabl:[0,7,22,39],stack:21,stackoverflow:31,stacktrac:20,stage:25,stancliff:[0,7],standard:[0,7,12,13,14,29,31,36,37],star1:16,star:[1,4,5,7,8,9,10,11,12,13,15,16,17,18,21,22,24,29,31,36,37,42],star_with_no_mass:0,starcount:[6,8,12,14,15],stardata:[0,1,6,7,8,9,11,12,13,14,15,17,18],stardata_dump_filenam:[0,7],stardata_load_filenam:[0,7],stardata_t:9,starnum:[6,12],start:[0,1,5,6,7,8,11,12,13,14,15,18,19,21,27,33,34],start_at:21,start_tim:[0,7,21],start_timestamp:[6,8,12,14,15],startrack:[0,7],startswith:11,stat:25,state:[0,7,30],statement:[1,9,11,12,13,14,15,16,17,18,21],statist:[0,7,21,29],statu:[0,1,6,7,8,12,13,14,15,21,25,29,30,36],status_dir:21,stderr:[0,7,21],stdout:[19,21,37],steadi:[0,7],stefan:24,stefano:[15,22,26,31],stellar:[0,4,5,7,14,21,22,24,31,37,38,41],stellar_structure_algorithm:[0,7],stellar_structure_algorithm_external_funct:0,stellar_structure_algorithm_mint:0,stellar_structure_algorithm_modified_bs:0,stellar_structure_algorithm_non:0,stellar_typ:[1,6,9,11,12,13,14,15,22,23,24],stellar_type1:5,stellar_type2:5,stellar_type_1:[0,7,15,24],stellar_type_2:[0,7,15,24],stellar_type_3:[0,7],stellar_type_4:[0,7],stellar_type_dict:41,stellar_type_dict_short:41,step:[3,6,8,9,11,12,13,14,15,24,34,37],stepsiz:[15,34],stick:21,stiff:[0,7],still:[1,9,16,21,42],stop:[0,6,7,8,12,18,19,21],stop_queu:21,stopfil:[0,7],storag:[0,7],store:[0,2,4,6,8,11,12,13,14,15,19,20,21,22,30,37,39,42],store_capsul:7,store_memaddr:[7,42],str:[1,2,3,5,6,15,19,20,24,30,33,34,38],straightforward:[6,12,13,14,15],straniero:[0,7],stream:21,strength:[0,7],strict:3,strictli:[12,13,14],string:[0,1,2,3,4,7,11,12,13,14,15,16,19,20,21,24,25,29,30,33,34,36,38,40],strip:[0,7,11,16],strong:6,stronger:[0,6,7],struct:[0,7,9],structur:[0,2,7,8,19,21,24],studi:6,stuff:[11,15,21],style:[0,7,19,32],sub:[0,2,7,19],subdict:2,subject:[0,7],sublumin:[0,7],submiss:21,submit:[21,22],subplot:18,subsequ:[0,7],subtract:2,subtract_dict:2,succe:[0,7],suddenli:6,suffer:6,suffici:6,suggest:[0,7,22,39],suit:[22,39],suitabl:37,sum:[0,2,7],sun:16,sundial:[0,7],supercrit:[0,7],superflu:16,supernova:[0,5,7,8,21],superwind:[0,7],superwind_mira_switchon:[0,7],support:30,sure:[2,11,12,13,14,15,22,25,30,31,39,40],surfac:[0,7],surrei:[6,15],surviv:[0,7,16],survivor:[0,7],sview:21,swallow:16,switcher:[0,7],sy:20,symlink:[6,8,12,15],symlink_latest_gridcod:21,symmetr:[0,7],synchron:[0,7],synonym:[0,7],synthesi:[12,13,14,15,21,22,39],system:[0,4,6,7,8,9,12,13,14,15,17,18,19,20,21,22,24,31,32,35,39,40,42],system_dict:32,system_gener:[15,30],system_numb:32,system_queue_fil:[6,8,12],t:[0,1,2,5,6,7,11,13,14,15,19,21,25,30,37],t_:6,tabl:[0,7,31,37],take:[0,2,7,8,12,15,18,19,21,26,30,31,34,40],taken:[0,2,7,9,31],talk:6,target:[1,33],task:[0,7,15,18,19,20,24,25,28,31,37,40,42],tauri:[0,7],tbse:[0,7],te:21,technic:[6,8,9,12,13,14,15],teff:[0,5,7,31],teff_1:24,teff_2:24,teff_from_star_struct:6,teff_postagb_max:[0,7],teff_postagb_min:[0,7],tell:[19,25],temp_dir:[5,6,8,11,13,14,15,16,19],temperatur:[0,7,16,24,31],tempfil:18,term:2,termin:[1,6,9,15,22,39],test:[0,7,11,15,19,21,22,25,28,30,39],test_cach:28,test_data:[0,7],test_func:7,test_log:18,test_logfil:11,test_pop:15,text:[6,8,16,19,33],than:[0,2,6,7,8,12,13,14,15,19,21,22,25,30,31,38,39],thats:15,thei:[0,2,5,6,7,8,12,15,16,20,21,24,25,29,36,37],thelog:[0,7],them:[2,6,7,8,15,17,18,19,29,30,31,33,40],themselv:[3,31],theoret:[12,13,14],thermal:[0,6,7,31,42],thermally_pulsing_asymptotic_giant_branch:0,thermohalin:[0,7],thermonuclear:6,thesi:[0,7],thi:[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,34,35,36,37,38,39,40,42],thick:[0,7],thick_disc_end_ag:[0,7],thick_disc_logg_max:[0,7],thick_disc_logg_min:[0,7],thick_disc_start_ag:[0,7],thin:[0,7],thing:[0,3,6,7,8,12,13,14,15,18,19,20,31,40],think:[0,7,19,20],third:[0,7,16,31,37],third_dup:[0,7],third_dup_multipli:[0,7],thorn:[0,7],those:[2,6,8,12,13,14,15,18,20,22,31,38,39],thread:[6,8,12,13,14,19,21,32],thread_id:21,three:[0,7,13,14,15,31],three_part_powerlaw:[8,12,13,14,15,31],threshold:[0,7,19,21],through:[6,7,11,12,13,14,15,24,25,34,40],throughout:[12,13,14,15,34],thu:37,tidal:[0,5,7],tidal_strength_factor:[0,7],tide:[0,7,16],tides_convective_damp:[0,7],tides_diagnosis_log:[0,7],tides_hurley2002:[0,7],tides_zahn1989:[0,7],tight:18,time:[0,1,2,3,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,24,27,30,31,32,37,39],time_elaps:27,timedelta:19,timescal:[0,7],timestamp:[21,27],timestep:[0,7,8,9,11,12,13,14],timestep_limit:[0,7],timestep_log:[0,7],timestep_modul:[0,7],timestep_multipli:[0,7],timestep_solver_factor:[0,7],tini:6,tinslei:31,tip:[6,31],titl:[12,33],tmax:37,tmin:37,tmp:[0,6,7,8,11,12,13,14,15,16,19,22,39],tmp_dir:[5,6,8,11,13,14,15,16,21,34],tmp_tabl:31,toasti:16,todo:[0,1,2,5,7,10,15,19,20,21,24,25,29,30,31,32,33,36,37,38,40,42],toler:[0,7],too:[0,2,6,7,13,14,16,21,22,39,40],took:[6,8,12,14,15,18],tool:21,top:[0,15,34],topcod:[6,8,15,34],topic:[0,7],torqu:[0,7],total:[0,2,6,7,8,12,13,14,15,18,19,21,24,31,34],total_count:[6,8,12,14,15],total_mass_run:[6,8,12,14,15],total_prob:[6,8,12,13,14,15],total_probability_weighted_mass_run:[6,8,12,14,15],touch:[25,30],tout:[0,7,42],tout_pringle_1992_multipli:[0,7],tp:[0,7],tpagb:[0,6,7],tpagb_reimers_eta:[0,7],tpagb_wind_beasor_etal_2020:0,tpagb_wind_bloeck:0,tpagb_wind_goldman_etal_2017:0,tpagb_wind_mattsson:0,tpagb_wind_reim:0,tpagb_wind_rob_cwind:0,tpagb_wind_van_loon:0,tpagb_wind_vw93_karaka:0,tpagb_wind_vw93_karakas_carbon_star:0,tpagb_wind_vw93_orig:0,tpagb_wind_vw93_orig_carbon_star:0,tpagbwind:[0,7],tpagbwindfac:[0,7],tpr:[8,12],trace:21,traceback:[13,16],track:[6,21,24],trade:[0,7],trail:[19,37],transfer:[0,6,7,21],transform:[0,3,7],transit:[0,7],treat:[0,7,37],trem:19,trigger:[0,7],trio:[12,13,14,15],tripl:[0,7,21,31],truli:[0,7],ttlcach:21,tupl:[1,6,19,25,30,37],turn:[0,2,3,5,7,11,15],tutori:[4,22],two:[0,2,6,7,9,19,30,32,41,42],txt:[11,15,18,22,30,39,40],type:[0,1,2,3,5,7,8,11,12,13,14,15,18,19,20,21,24,25,30,31,33,34,37,38,41,42],type_chng:[5,11,18],type_ia_mch_supernova_algorithm:[0,7],type_ia_sub_mch_supernova_algorithm:[0,7],typeerror:13,typic:[0,7],ubvri:[0,7],ugriv:[0,7],uk:[6,15],unavail:[0,7],unbound:5,unclos:30,uncom:[11,12,13,14,15,16],unction:7,undef:9,under:[11,37],undergo:[0,8],understand:21,undescrib:33,unexpect:13,uniform:31,union:[2,15,19,31,34,37,38,42],uniqu:[2,15,18,21],unit:[0,6,7,10,19,42],univari:[0,7],univers:[6,8,21],unix:32,unknown:40,unless:[1,20,21],unlik:[13,14],unload:20,unlock:30,unmerg:8,unnecessari:33,unpars:7,unphys:[5,8,12],unrecogn:[22,39],unresolv:12,unsign:0,unstabl:[0,5,7],until:[0,2,6,7,30,31],unus:[0,7,21],unweight:15,up:[0,1,4,9,11,16,19,20,25,26,28,29,31,36],updat:[2,13,14,15,20,22,34,39],update_dict:[2,10],update_grid_vari:[13,14,34],upon:42,upper:[0,7,31,37],uranu:16,us:[0,1,2,3,4,10,11,15,19,20,21,22,24,25,26,27,28,29,30,31,33,34,36,37,38,39,40,42],usag:[0,4],use_astropy_valu:24,use_datadir:[15,20],use_fixed_timestep_:[0,7],use_lwn_fallback:0,use_periastron_roche_radiu:[0,7],use_tabular_intershell_abundances_karakas_2012:[0,7],usecach:37,usecas:4,useful_func:[22,23],user:[1,9,19,20,21,26,31,33,40],usernam:19,usr:21,usual:[0,5,6,7,12,13,14,15,19,21,30,31],utf:[3,30],util:[1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,40,42],v:[5,18,22,39],val:31,valid:[0,7,9,19,31],valu:[0,1,2,3,6,7,10,11,12,13,14,15,18,19,20,21,24,27,28,31,33,34,37],value_lin:11,valueerror:15,valuerang:[6,8,12,13,14,15,34],values_arrai:11,van:[0,7],vandenheuvel_log:[0,7],vanilla:21,vari:[0,6,7,8,15],variabl:[0,4,6,7,8,19,21,29,30,34],variant:[0,7],variou:[0,7],vassiliadi:[0,7],vb1print:32,vb2print:32,vb:[5,25,28,30,37],ve:27,veloc:[0,7,31],venu:16,verbos:[1,6,8,11,12,13,14,15,17,19,21,22,26,30,31,32,37,39],verbose_print:[19,32],veri:[0,5,6,7,8,9,11,13,14,15,30,34,37],versa:42,version:[0,2,7,10,15,19,20,22,38,39],version_info:[20,22,23],version_info_dict:10,version_info_str:38,version_onli:[0,7],via:[4,6,7,9,12,13,14,15,20,21,24],vice:42,vink:[0,7],virtual:[22,39],virtualenviron:[22,39],viscos:[0,7],viscou:[0,7],visibl:9,visit:22,vk:[5,18],vn:[5,18],volum:[0,7],vr:[5,18],vrot1:[0,7],vrot2:[0,7],vrot3:[0,7],vrot4:[0,7],vrot_breakup:0,vrot_bs:0,vrot_non_rot:0,vrot_sync:0,vs:[16,24],vw93:[0,7],vw93_eagb_wind_spe:[0,7],vw93_mira_shift:[0,7],vw93_multipli:[0,7],vw93_tpagb_wind_spe:[0,7],vwind:[0,7],vwind_beta:[0,7],vwind_multipli:[0,7],w:[1,11,15,20,30],wa:[0,6,7,10,11,13,14,15,20,21,22,30,31,39],wai:[0,2,7,11,13,14,20,21,25],wait:30,wait_for_unlock:30,wang:[0,7],want:[0,2,3,5,7,8,9,10,12,13,14,15,18,19,21,22,24,25,30,31,33,34,39],warmup_cpu:[0,7],warn:[0,7,11,15,21,25],was_kil:20,wast:[8,13,14],wave:[0,6,7,8,15],wd:[0,7],wd_accretion_rate_new_giant_envelope_lower_limit_helium_donor:[0,7],wd_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor:[0,7],wd_accretion_rate_new_giant_envelope_lower_limit_other_donor:[0,7],wd_accretion_rate_novae_upper_limit_helium_donor:[0,7],wd_accretion_rate_novae_upper_limit_hydrogen_donor:[0,7],wd_accretion_rate_novae_upper_limit_other_donor:[0,7],wd_kick:[0,7],wd_kick_at_every_puls:0,wd_kick_at_given_puls:0,wd_kick_direct:[0,7],wd_kick_end_agb:0,wd_kick_first_rlof:0,wd_kick_pulse_numb:[0,7],wd_kick_when:[0,7],wd_sigma:[0,7],wdwd_merger_algorithm:[0,7],wdwd_merger_algorithm_bs:0,wdwd_merger_algorithm_chen2016:0,wdwd_merger_algorithm_perets2019:0,we:[0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,22,25,26,27,28,29,30,31,33,36,37,39,42],weight:[0,7,13,14,21],weirdli:12,well:[0,3,7,9,11,12,13,14,21,22,39],went:[13,14],were:[6,8,12,14,15,19,38],what:[0,1,2,5,6,7,8,9,11,12,13,14,15,18,21,22,25,31,33,37,38,39,40],whatev:[0,7,9,18,19,20,22,25,30,39],wheeler:[0,7],when:[0,1,2,3,6,7,8,10,11,15,16,19,21,22,25,27,28,29,30,31,33,36,37,39,40],whenev:[22,39],where:[0,1,2,6,7,12,13,14,15,19,21,22,25,27,30,31,33,37,39],whether:[0,7,15,19,20,21,24,29,30,31,33,36,37,38,42],which:[0,1,2,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,25,29,30,31,33,34,36,37,38,39,40,42],whichev:21,white:[0,6,7],white_dwarf_cooling_carrasco2014:[0,7],white_dwarf_cooling_mestel:[0,7],white_dwarf_cooling_mestel_modifi:[0,7],white_dwarf_cooling_model:[0,7],white_dwarf_radius_carrasco2014:[0,7],white_dwarf_radius_model:[0,7],white_dwarf_radius_mu:[0,7],white_dwarf_radius_nauenberg1972:[0,7],whole:[0,7,8,9,20,21],why:8,wide:[5,12,13,14],wider:5,width:[0,7,8,19],wiggl:[13,14],wind:[0,5,6,7,12],wind_algorithm_binary_c_2020:[0,5],wind_algorithm_hendriks_2022:0,wind_algorithm_hurley2002:0,wind_algorithm_non:[0,5],wind_algorithm_schneider2018:0,wind_angmom_loss_bs:0,wind_angmom_loss_lw:0,wind_angmom_loss_lw_hybrid:0,wind_angmom_loss_spherically_symmetr:0,wind_angular_momentum_loss:[0,7],wind_disc_angmom_fract:[0,7],wind_disc_mass_fract:[0,7],wind_djorb_fac:[0,7],wind_gas_to_dust_ratio:[0,7],wind_lbv_luminosity_lower_limit:[0,7],wind_mass_loss:[0,5,7],wind_multiplier_:[0,7],wind_nieuwenhuijzen_luminosity_lower_limit:[0,7],wind_type_multiplier_:[0,7],wink:0,within:[0,2,7,9,10,15,19,22,31,34,39],without:[2,9,11,13,14,19,21,31],won:[0,7,11],wood:[0,7],wooslei:0,work:[0,2,3,7,9,11,12,13,14,18,19,21,22,25,30,39],working_diretori:21,would:[0,2,7,13,14,15,21,24],wouldn:[15,30],wr:[0,7],wr_wind:[0,7],wr_wind_bs:0,wr_wind_eldridg:0,wr_wind_fac:[0,7],wr_wind_maeder_meynet:0,wr_wind_nugis_lam:0,wrap:[1,9,28],wrapper:[3,7,9,11,20,30,32,42],write:[1,5,6,7,8,9,11,12,15,17,18,19,20,21,30,33,40],write_binary_c_calls_to_fil:[15,30],write_binary_c_parameter_descriptions_to_rst_fil:19,write_ensembl:30,write_grid_options_to_rst_fil:33,write_logfil:7,written:[7,11,15,21,30,33,34,40],written_data:11,wrlof_mass_transf:[0,7],wrlof_method:[0,7],wrlof_non:0,wrlof_q_depend:0,wrlof_quadrat:0,wrong:[13,14,22,39],wrt:18,wrwindfac:[0,7],wtts2:[0,7],wtts_log:[0,7],www:[0,7,31],x0:31,x0d:[19,21],x1:31,x86_64:7,x:[0,6,7,9,11,16,18,19,20,24,25,31,37],xlabel:17,xlim:[8,16],xx:16,xxx:36,y:[5,6,16,19,20,24,25],ye:21,year:[0,7,31],year_length_in_dai:8,yet:[0,2,7,18,19,21,24],yield:[0,7,37],ylim:16,you:[0,1,2,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,24,25,30,31,33,34,37,39,42],young:[0,7],your:[9,11,17,18,21,22,39],yourself:[6,8,12,13,14,15,24],yscale:[12,13,14,16],yy:16,z:[0,6,7,8,18,20,31,42],zahn:[0,7],zam:[0,4,6,7,12,31,40,42],zams_collis:42,zams_mass:[6,12,13,14,15],zams_mass_1:15,zams_mass_2:15,zero:[0,1,4,5,6,7,8,14,19,21,22,30],zero_ag:[6,9,11,12,13,14,15],zero_age_main_sequence_star:[12,13,14],zero_age_main_sequence_starn:12,zero_prob_stars_skip:[6,8,12,14,15],zone:[0,7],zoom:[0,7,37],zoom_dispers:37,zoom_magnitud:37,zoom_magntiud:37,zoom_mean:37,zoomfac_multiplier_decreas:[0,7],zoomfac_multiplier_increas:[0,7],zsolar:31,zytkow:[0,7]},titles:["Binary_c parameters","custom_logging_functions module","dicts module","ensemble module","Example notebooks","Example use case: Binary black hole systems","Example use case: Hertzsprung-Russell diagrams","Tutorial: Using the API functionality of binary_c-python","Example use case: Common-envelope evolution","Tutorial: Using custom logging routines with binary_c-python","Tutorial: Extra features and functionality of binary_c-python","Tutorial: Running individual systems with binary_c-python","Example use case: Zero-age stellar luminosity function in binaries","Example use case: Zero-age stellar luminosity function","Example use case: Massive star luminosity","Tutorial: Running populations with binary_c-python","Example use case: Solar system using the API functionality","Basic example","Binary_c and python example notebook","functions module","Population class module","Population grid code options","Welcome to binary_c-python\u2019s documentation!","Binarycpython code","plot_functions module","Population class extension: HPC module","Population class extension: Moe_di_Stefano_2017 module","Population class extension: analytics module","Population class extension: cache module","Population class extension: condor module","Population class extension: dataIO module","Population class extension: distribution_functions module","Population class extension: grid_logging module","Population class extension: grid_options_defaults module","Population class extension: gridcode module","Population class extension: metadata module","Population class extension: slurm module","Population class extension: spacing_functions module","Population class extension: version_info module","Python module for binary_c","run_system_wrapper module","stellar_types module","useful_funcs module"],titleterms:{"case":[5,6,8,12,13,14,16],"class":[20,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"function":[7,10,11,12,13,14,15,16,18,19],"public":21,A:[13,14],about:10,ad:[12,13,14,15],after:[22,39],ag:[12,13],algorithm:0,analyt:27,api:[7,9,11,16,18],basic:17,better:[13,14],binari:[0,5,6,12,18],binary_c:[0,7,9,10,11,15,18,22,39],binarycpython:23,black:5,build:[10,22,39],cach:28,code:[21,23],common:8,compact:9,condor:29,content:[4,22],core:18,custom:[9,18],custom_logging_funct:1,dataio:30,develop:[22,39],di:21,diagram:6,dict:2,dictionari:10,directli:9,distribut:[13,14],distribution_funct:31,document:[22,39],ensembl:3,envelop:8,environ:[22,39],evolut:[8,9],evolv:[6,8,12,13,14,15],exampl:[4,5,6,7,8,9,10,12,13,14,15,16,17,18,22,39],extens:[25,26,27,28,29,30,31,32,33,34,35,36,37,38],extra:10,faq:[22,39],featur:10,free:7,from:[7,9,22,39],full:15,get:[7,10],grid:[6,8,12,13,14,15,21],grid_log:32,grid_options_default:33,gridcod:34,handl:[6,8,12,13,14,15],help:10,hertzsprung:6,hole:5,hpc:25,i:0,indic:22,individu:11,inform:[7,10],initi:[13,14],input:0,instal:[22,39],instruct:[22,39],issu:[22,39],line:18,log:[6,8,9,12,13,14,15,18],luminos:[12,13,14],mass:[9,13,14],massiv:14,metadata:35,misc:0,modif:10,modul:[1,2,3,19,20,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],moe:21,moe_di_stefano_2017:26,note:[22,39],notebook:[4,18],noteworthi:15,nucsyn:0,o:0,object:[6,8,9,11,12,13,14,15],option:21,other:18,output:[0,6,8,12,13,14,15],paramet:[0,10],pars:10,pip:[22,39],plot_funct:24,popul:[6,8,9,11,12,13,14,15,20,21,25,26,27,28,29,30,31,32,33,34,35,36,37,38],privat:21,python:[7,9,10,11,15,18,22,39],requir:[22,39],routin:9,run:[9,11,15,18],run_binari:18,run_binary_with_log:18,run_system:18,run_system_wrapp:[11,40],russel:6,s:22,sampl:[13,14],sampler:21,script:15,section:0,set:[6,7,8,12,13,14,15],singl:11,slurm:36,solar:16,sourc:[22,39],spacing_funct:37,star:[0,6,14],stefano:21,stellar:[6,8,12,13],stellar_typ:41,store:7,string:9,supernova:9,system:[5,11,16],tabl:22,tutori:[7,9,10,11,15],up:[6,7,8,12,13,14,15],us:[5,6,7,8,9,12,13,14,16,18],usag:[7,9,22,39],useful_func:42,util:18,variabl:[12,13,14,15,22,39],version_info:38,via:[11,22,39],welcom:22,when:9,wrapper:18,zam:[13,14],zero:[12,13]}}) \ No newline at end of file +Search.setIndex({docnames:["binary_c_parameters","custom_logging_functions","dicts","ensemble","example_notebooks","examples/notebook_BHBH","examples/notebook_HRD","examples/notebook_api_functionality","examples/notebook_common_envelope_evolution","examples/notebook_custom_logging","examples/notebook_ensembles","examples/notebook_extra_features","examples/notebook_individual_systems","examples/notebook_luminosity_function_binaries","examples/notebook_luminosity_function_single","examples/notebook_massive_remnants","examples/notebook_population","examples/notebook_solar_system","examples/old/basic_example","examples/old/workshop_example_notebook","functions","grid","grid_options_descriptions","index","modules","plot_functions","population_extensions/HPC","population_extensions/Moe_di_Stefano_2017","population_extensions/analytics","population_extensions/cache","population_extensions/condor","population_extensions/dataIO","population_extensions/distribution_functions","population_extensions/grid_logging","population_extensions/grid_options_defaults","population_extensions/gridcode","population_extensions/metadata","population_extensions/slurm","population_extensions/spacing_functions","population_extensions/version_info","readme_link","run_system_wrapper","stellar_types","useful_funcs"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:3,sphinx:56},filenames:["binary_c_parameters.rst","custom_logging_functions.rst","dicts.rst","ensemble.rst","example_notebooks.rst","examples/notebook_BHBH.ipynb","examples/notebook_HRD.ipynb","examples/notebook_api_functionality.ipynb","examples/notebook_common_envelope_evolution.ipynb","examples/notebook_custom_logging.ipynb","examples/notebook_ensembles.ipynb","examples/notebook_extra_features.ipynb","examples/notebook_individual_systems.ipynb","examples/notebook_luminosity_function_binaries.ipynb","examples/notebook_luminosity_function_single.ipynb","examples/notebook_massive_remnants.ipynb","examples/notebook_population.ipynb","examples/notebook_solar_system.ipynb","examples/old/basic_example.ipynb","examples/old/workshop_example_notebook.ipynb","functions.rst","grid.rst","grid_options_descriptions.rst","index.rst","modules.rst","plot_functions.rst","population_extensions/HPC.rst","population_extensions/Moe_di_Stefano_2017.rst","population_extensions/analytics.rst","population_extensions/cache.rst","population_extensions/condor.rst","population_extensions/dataIO.rst","population_extensions/distribution_functions.rst","population_extensions/grid_logging.rst","population_extensions/grid_options_defaults.rst","population_extensions/gridcode.rst","population_extensions/metadata.rst","population_extensions/slurm.rst","population_extensions/spacing_functions.rst","population_extensions/version_info.rst","readme_link.rst","run_system_wrapper.rst","stellar_types.rst","useful_funcs.rst"],objects:{"binarycpython.utils":[[1,0,0,"-","custom_logging_functions"],[2,0,0,"-","dicts"],[3,0,0,"-","ensemble"],[20,0,0,"-","functions"],[21,0,0,"-","grid"],[25,0,0,"-","plot_functions"],[41,0,0,"-","run_system_wrapper"],[42,0,0,"-","stellar_types"],[43,0,0,"-","useful_funcs"]],"binarycpython.utils.custom_logging_functions":[[1,1,1,"","autogen_C_logging_code"],[1,1,1,"","binary_c_log_code"],[1,1,1,"","binary_c_write_log_code"],[1,1,1,"","compile_shared_lib"],[1,1,1,"","create_and_load_logging_function"],[1,1,1,"","from_binary_c_config"],[1,1,1,"","return_compilation_dict"]],"binarycpython.utils.dicts":[[2,2,1,"","AutoVivificationDict"],[2,1,1,"","count_keys_recursive"],[2,1,1,"","custom_sort_dict"],[2,1,1,"","filter_dict"],[2,1,1,"","filter_dict_through_values"],[2,1,1,"","inspect_dict"],[2,1,1,"","keys_to_floats"],[2,1,1,"","merge_dicts"],[2,1,1,"","multiply_float_values"],[2,1,1,"","multiply_values_dict"],[2,1,1,"","normalize_dict"],[2,1,1,"","prepare_dict"],[2,1,1,"","recursive_change_key_to_float"],[2,1,1,"","recursive_change_key_to_string"],[2,1,1,"","set_opts"],[2,1,1,"","subtract_dicts"],[2,1,1,"","update_dicts"]],"binarycpython.utils.dicts.AutoVivificationDict":[[2,3,1,"","__getitem__"],[2,3,1,"","__iadd__"]],"binarycpython.utils.ensemble":[[3,2,1,"","BinarycDecoder"],[3,2,1,"","BinarycEncoder"],[3,1,1,"","binaryc_json_serializer"],[3,1,1,"","ensemble_compression"],[3,1,1,"","ensemble_file_type"],[3,1,1,"","ensemble_setting"],[3,1,1,"","extract_ensemble_json_from_string"],[3,1,1,"","format_ensemble_results"],[3,1,1,"","handle_ensemble_string_to_json"],[3,1,1,"","load_ensemble"],[3,1,1,"","open_ensemble"]],"binarycpython.utils.ensemble.BinarycDecoder":[[3,3,1,"","decode"]],"binarycpython.utils.ensemble.BinarycEncoder":[[3,3,1,"","default"]],"binarycpython.utils.functions":[[20,2,1,"","Capturing"],[20,1,1,"","bin_data"],[20,1,1,"","call_binary_c_config"],[20,2,1,"","catchtime"],[20,1,1,"","check_if_in_shell"],[20,1,1,"","command_string_from_list"],[20,1,1,"","conv_time_units"],[20,1,1,"","convert_bytes"],[20,1,1,"","convfloat"],[20,1,1,"","create_arg_string"],[20,1,1,"","create_hdf5"],[20,1,1,"","datalinedict"],[20,1,1,"","example_parse_output"],[20,1,1,"","filter_arg_dict"],[20,1,1,"","format_number"],[20,1,1,"","get_ANSI_colours"],[20,1,1,"","get_arg_keys"],[20,1,1,"","get_defaults"],[20,1,1,"","get_help"],[20,1,1,"","get_help_all"],[20,1,1,"","get_help_super"],[20,1,1,"","get_size"],[20,1,1,"","get_username"],[20,1,1,"","imports"],[20,1,1,"","is_capsule"],[20,1,1,"","isfloat"],[20,1,1,"","isint"],[20,1,1,"","load_logfile"],[20,1,1,"","make_build_text"],[20,1,1,"","mem_use"],[20,1,1,"","now"],[20,1,1,"","output_lines"],[20,1,1,"","pad_output_distribution"],[20,1,1,"","quotewrap"],[20,1,1,"","remove_file"],[20,1,1,"","temp_dir"],[20,1,1,"","timedelta"],[20,1,1,"","trem"],[20,1,1,"","verbose_print"],[20,1,1,"","write_binary_c_parameter_descriptions_to_rst_file"]],"binarycpython.utils.functions.Capturing":[[20,3,1,"","__enter__"],[20,3,1,"","__exit__"]],"binarycpython.utils.functions.catchtime":[[20,3,1,"","__enter__"],[20,3,1,"","__exit__"]],"binarycpython.utils.grid":[[21,2,1,"","Population"]],"binarycpython.utils.grid.Population":[[21,3,1,"","clean"],[21,3,1,"","evolve"],[21,3,1,"","evolve_single"],[21,3,1,"","exit"],[21,3,1,"","export_all_info"],[21,3,1,"","jobID"],[21,3,1,"","parse_cmdline"],[21,3,1,"","return_all_info"],[21,3,1,"","return_binary_c_defaults"],[21,3,1,"","return_population_settings"],[21,3,1,"","set"],[21,3,1,"","was_killed"]],"binarycpython.utils.plot_functions":[[25,1,1,"","color_by_index"],[25,1,1,"","dummy"],[25,1,1,"","parse_function_hr_diagram"],[25,1,1,"","parse_function_masses"],[25,1,1,"","parse_function_orbit"],[25,1,1,"","plot_HR_diagram"],[25,1,1,"","plot_masses"],[25,1,1,"","plot_orbit"],[25,1,1,"","plot_system"]],"binarycpython.utils.population_extensions":[[26,0,0,"-","HPC"],[27,0,0,"-","Moe_di_Stefano_2017"],[28,0,0,"-","analytics"],[29,0,0,"-","cache"],[30,0,0,"-","condor"],[31,0,0,"-","dataIO"],[32,0,0,"-","distribution_functions"],[33,0,0,"-","grid_logging"],[34,0,0,"-","grid_options_defaults"],[35,0,0,"-","gridcode"],[36,0,0,"-","metadata"],[37,0,0,"-","slurm"],[38,0,0,"-","spacing_functions"],[39,0,0,"-","version_info"]],"binarycpython.utils.population_extensions.HPC":[[26,2,1,"","HPC"]],"binarycpython.utils.population_extensions.HPC.HPC":[[26,3,1,"","HPC_can_join"],[26,3,1,"","HPC_check_requirements"],[26,3,1,"","HPC_dir"],[26,3,1,"","HPC_dirs"],[26,3,1,"","HPC_dump_status"],[26,3,1,"","HPC_get_status"],[26,3,1,"","HPC_grid"],[26,3,1,"","HPC_id_filename"],[26,3,1,"","HPC_id_from_dir"],[26,3,1,"","HPC_job"],[26,3,1,"","HPC_jobID"],[26,3,1,"","HPC_jobID_tuple"],[26,3,1,"","HPC_job_id_range"],[26,3,1,"","HPC_job_task"],[26,3,1,"","HPC_job_type"],[26,3,1,"","HPC_join_from_files"],[26,3,1,"","HPC_join_previous"],[26,3,1,"","HPC_joinlist"],[26,3,1,"","HPC_load_joinfiles_list"],[26,3,1,"","HPC_make_joiningfile"],[26,3,1,"","HPC_njobs"],[26,3,1,"","HPC_path"],[26,3,1,"","HPC_queue_stats"],[26,3,1,"","HPC_restore"],[26,3,1,"","HPC_set_status"],[26,3,1,"","HPC_snapshot_filename"],[26,3,1,"","HPC_status"],[26,3,1,"","HPC_touch"]],"binarycpython.utils.population_extensions.Moe_di_Stefano_2017":[[27,2,1,"","Moe_di_Stefano_2017"]],"binarycpython.utils.population_extensions.Moe_di_Stefano_2017.Moe_di_Stefano_2017":[[27,3,1,"","Moe_di_Stefano_2017"],[27,3,1,"","get_Moe_di_Stefano_2017_default_options"],[27,3,1,"","get_Moe_di_Stefano_2017_default_options_description"],[27,3,1,"","get_moe_di_stefano_dataset"],[27,3,1,"","set_moe_di_stefano_settings"]],"binarycpython.utils.population_extensions.analytics":[[28,2,1,"","analytics"]],"binarycpython.utils.population_extensions.analytics.analytics":[[28,3,1,"","CPU_time"],[28,3,1,"","make_analytics_dict"],[28,3,1,"","set_time"],[28,3,1,"","time_elapsed"]],"binarycpython.utils.population_extensions.cache":[[29,2,1,"","cache"]],"binarycpython.utils.population_extensions.cache.cache":[[29,2,1,"","NullCache"],[29,3,1,"","default_cache_dir"],[29,3,1,"","setup_function_cache"],[29,3,1,"","test_caches"]],"binarycpython.utils.population_extensions.cache.cache.NullCache":[[29,3,1,"","__delitem__"],[29,3,1,"","__getitem__"],[29,3,1,"","__setitem__"],[29,3,1,"","popitem"]],"binarycpython.utils.population_extensions.condor":[[30,2,1,"","condor"]],"binarycpython.utils.population_extensions.condor.condor":[[30,3,1,"","condorID"],[30,3,1,"","condor_check_requirements"],[30,3,1,"","condor_dirs"],[30,3,1,"","condor_grid"],[30,3,1,"","condor_outfile"],[30,3,1,"","condor_queue_stats"],[30,3,1,"","condor_status_file"],[30,3,1,"","condorpath"],[30,3,1,"","get_condor_status"],[30,3,1,"","make_condor_dirs"],[30,3,1,"","set_condor_status"]],"binarycpython.utils.population_extensions.dataIO":[[31,2,1,"","dataIO"]],"binarycpython.utils.population_extensions.dataIO.dataIO":[[31,3,1,"","NFS_flush_hack"],[31,3,1,"","NFSpath"],[31,3,1,"","compression_type"],[31,3,1,"","dir_ok"],[31,3,1,"","load_population_object"],[31,3,1,"","load_snapshot"],[31,3,1,"","locked_close"],[31,3,1,"","locked_open_for_write"],[31,3,1,"","merge_populations"],[31,3,1,"","merge_populations_from_file"],[31,3,1,"","open"],[31,3,1,"","save_population_object"],[31,3,1,"","save_snapshot"],[31,3,1,"","set_status"],[31,3,1,"","snapshot_filename"],[31,3,1,"","wait_for_unlock"],[31,3,1,"","write_binary_c_calls_to_file"],[31,3,1,"","write_ensemble"]],"binarycpython.utils.population_extensions.distribution_functions":[[32,2,1,"","distribution_functions"]],"binarycpython.utils.population_extensions.distribution_functions.distribution_functions":[[32,3,1,"","Arenou2010_binary_fraction"],[32,3,1,"","Izzard2012_period_distribution"],[32,3,1,"","Kroupa2001"],[32,3,1,"","Moe_di_Stefano_2017_multiplicity_fractions"],[32,3,1,"","Moe_di_Stefano_2017_pdf"],[32,3,1,"","build_q_table"],[32,3,1,"","calc_P_integral"],[32,3,1,"","calc_e_integral"],[32,3,1,"","calc_total_probdens"],[32,3,1,"","calculate_constants_three_part_powerlaw"],[32,3,1,"","const_distribution"],[32,3,1,"","cosmic_SFH_madau_dickinson2014"],[32,3,1,"","duquennoy1991"],[32,3,1,"","fill_data"],[32,3,1,"","flat"],[32,3,1,"","flatsections"],[32,3,1,"","gaussian"],[32,3,1,"","gaussian_func"],[32,3,1,"","gaussian_normalizing_const"],[32,3,1,"","get_integration_constant_q"],[32,3,1,"","get_max_multiplicity"],[32,3,1,"","imf_chabrier2003"],[32,3,1,"","imf_scalo1986"],[32,3,1,"","imf_scalo1998"],[32,3,1,"","imf_tinsley1980"],[32,3,1,"","interpolate_in_mass_izzard2012"],[32,3,1,"","ktg93"],[32,3,1,"","linear_extrapolation_q"],[32,3,1,"","merge_multiplicities"],[32,3,1,"","number"],[32,3,1,"","poisson"],[32,3,1,"","powerlaw"],[32,3,1,"","powerlaw_constant"],[32,3,1,"","powerlaw_constant_nocache"],[32,3,1,"","powerlaw_extrapolation_q"],[32,3,1,"","raghavan2010_binary_fraction"],[32,3,1,"","sana12"],[32,3,1,"","three_part_powerlaw"]],"binarycpython.utils.population_extensions.grid_logging":[[33,2,1,"","grid_logging"]],"binarycpython.utils.population_extensions.grid_logging.grid_logging":[[33,3,1,"","vb1print"],[33,3,1,"","vb2print"],[33,3,1,"","verbose_print"]],"binarycpython.utils.population_extensions.grid_options_defaults":[[34,2,1,"","grid_options_defaults"]],"binarycpython.utils.population_extensions.grid_options_defaults.grid_options_defaults":[[34,3,1,"","default_cache_dir"],[34,3,1,"","get_grid_options_defaults_dict"],[34,3,1,"","get_grid_options_descriptions"],[34,3,1,"","grid_options_description_checker"],[34,3,1,"","grid_options_help"],[34,3,1,"","print_option_descriptions"],[34,3,1,"","write_grid_options_to_rst_file"]],"binarycpython.utils.population_extensions.gridcode":[[35,2,1,"","gridcode"]],"binarycpython.utils.population_extensions.gridcode.gridcode":[[35,3,1,"","add_grid_variable"],[35,3,1,"","delete_grid_variable"],[35,3,1,"","rename_grid_variable"],[35,3,1,"","update_grid_variable"]],"binarycpython.utils.population_extensions.metadata":[[36,2,1,"","metadata"]],"binarycpython.utils.population_extensions.metadata.metadata":[[36,3,1,"","add_ensemble_metadata"],[36,3,1,"","add_system_metadata"]],"binarycpython.utils.population_extensions.slurm":[[37,2,1,"","slurm"]],"binarycpython.utils.population_extensions.slurm.slurm":[[37,3,1,"","get_slurm_status"],[37,3,1,"","make_slurm_dirs"],[37,3,1,"","set_slurm_status"],[37,3,1,"","slurmID"],[37,3,1,"","slurm_check_requirements"],[37,3,1,"","slurm_dirs"],[37,3,1,"","slurm_grid"],[37,3,1,"","slurm_outfile"],[37,3,1,"","slurm_queue_stats"],[37,3,1,"","slurm_status_file"],[37,3,1,"","slurmpath"]],"binarycpython.utils.population_extensions.spacing_functions":[[38,2,1,"","spacing_functions"]],"binarycpython.utils.population_extensions.spacing_functions.spacing_functions":[[38,3,1,"","const_dt"],[38,3,1,"","const_int"],[38,3,1,"","const_linear"],[38,3,1,"","const_ranges"],[38,3,1,"","gaussian_zoom"],[38,3,1,"","peak_normalized_gaussian_func"]],"binarycpython.utils.population_extensions.version_info":[[39,2,1,"","version_info"]],"binarycpython.utils.population_extensions.version_info.version_info":[[39,3,1,"","minimum_stellar_mass"],[39,3,1,"","parse_binary_c_version_info"],[39,3,1,"","return_binary_c_version_info"]],"binarycpython.utils.run_system_wrapper":[[41,1,1,"","run_system"]],"binarycpython.utils.useful_funcs":[[43,1,1,"","calc_period_from_sep"],[43,1,1,"","calc_sep_from_period"],[43,1,1,"","maximum_mass_ratio_for_RLOF"],[43,1,1,"","minimum_period_for_RLOF"],[43,1,1,"","minimum_separation_for_RLOF"],[43,1,1,"","ragb"],[43,1,1,"","roche_lobe"],[43,1,1,"","rzams"],[43,1,1,"","zams_collision"]]},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"0":[0,1,2,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,22,26,27,29,32,35,38,43],"00":[5,12,13,16,19],"000":[5,12,19],"0000":[5,12,19],"00000":19,"000000":19,"000000000000e":12,"000000e":19,"000001":12,"000002":12,"000003":12,"0001":[5,7,43],"000100925":16,"00013561":16,"000182216":16,"000193036":16,"000244839":16,"000328983":16,"000339963":16,"000442046":16,"000593966":16,"0007":32,"000798096":16,"001":[0,5],"00107238":16,"0013":5,"00144093":16,"00182":5,"00193614":16,"002":[5,18,19],"0021272":5,"00215604":5,"00235329":5,"00237669":5,"00239838":5,"00242158":5,"00247821":5,"00247864":5,"00248439":5,"00254115":5,"00254512":5,"00256681":5,"00261516":5,"00268237":5,"00280816":5,"00283345":5,"00286793":5,"00288661":5,"00294":5,"00296406":5,"003":5,"00300971":5,"00303761":5,"00311757":5,"00317508":5,"00319483":5,"0034":5,"004":5,"004696962123378559":16,"005":5,"00518983":5,"0055":5,"00585495":5,"006":5,"006311182276049824":16,"00632092":7,"00666382":5,"007":[5,17],"00707417":5,"00712":5,"00730797":5,"0074":5,"008":5,"0081514":5,"00832":5,"008480166685456411":16,"0087":5,"009":[5,17],"00984861":5,"00e":13,"01":[0,5,6,8,9,13,16,19],"010":5,"0102":5,"011":5,"011394572976608001":16,"0118":5,"012":5,"0122109":5,"0128":5,"013":5,"0131145":5,"014":5,"0141":7,"0143651":5,"0143896":8,"014832":5,"015":5,"0152545":5,"0153961":5,"0155":5,"0156":5,"01561":5,"0156945":5,"0159":5,"016":5,"0162":5,"016309":8,"0163656":8,"0164":5,"0165":5,"0166":5,"0168":5,"0169":5,"017":[5,17],"0171":5,"0175264":8,"0176575":6,"01791":5,"018":5,"0182":5,"0184":5,"0187":5,"019":5,"0192009":5,"019715467199999996":8,"01e":13,"01t09":[6,8,13],"01t10":13,"02":[0,5,6,7,8,9,12,13,16,17,19,32,43],"020":5,"0208":5,"021":5,"0211592":16,"0214":5,"0214824":5,"022":5,"023":5,"0232618":5,"02379":5,"024":5,"0241634":5,"0245":5,"024684":5,"02473":5,"025":5,"0250231":5,"0251003":5,"0259932":5,"026":5,"0261496":5,"027":5,"0276":5,"02786":5,"0278672":5,"028":5,"02823":5,"0283541":5,"029":5,"0290733":5,"0295":5,"0298011":5,"0298364":5,"02e":[8,13],"03":[0,1,5,7,8,13],"030":5,"0303129":5,"031":5,"0316266":5,"0319":5,"032":5,"03221":5,"033":5,"0335":5,"0335017":5,"034":5,"03493":5,"03499999999999":15,"035":5,"03502960360000004":8,"03507":5,"036":5,"0367878":5,"037":5,"0385396":5,"039":5,"0393944":5,"0394":5,"0399":5,"03996e":5,"03e":13,"04":[0,5,13,19],"040":5,"041":5,"0411":5,"0414":5,"04198":5,"042":5,"0425":5,"043":5,"044":5,"0440989":5,"044142002936e":9,"044387171445641534":16,"0443872":16,"044572277695e":9,"044654032097e":9,"0448877":5,"0449442":5,"045":5,"045084306856e":9,"0459174":5,"046":5,"0461":5,"0469097":5,"047":[5,17],"0474164":5,"0474572":5,"048":[5,17,19],"049":5,"04924":5,"04e":13,"05":[0,5,8,9,13,16],"0501":5,"050651207308e":9,"051":[5,6],"0511173":5,"0512":5,"052":5,"0523":5,"0528412":5,"053":5,"0531294":5,"0533803":5,"0535":5,"0536749":5,"054":[5,32],"0547419":5,"055":5,"055188":5,"056":[5,17],"0563088":5,"057":5,"0570946":19,"0572914":5,"057949":5,"058":5,"0583837":5,"0585":5,"059":5,"05e":13,"06":[0,5,8,9,12,13],"0608":5,"061":5,"061141":5,"061259":12,"0613":5,"062":5,"0621119":5,"0625403":5,"06257":5,"0626266":5,"063":5,"064":5,"0641":5,"06459059967730083":8,"0645906":8,"0649":5,"065":5,"06527":5,"066":5,"06696":5,"067":5,"0670735":5,"068":5,"0683196":5,"069":5,"06987":5,"06e":13,"07":[5,13,14,15,19,32,38],"070":5,"0701913":5,"071":5,"07108":5,"0714679":5,"0717":5,"0719":5,"072":5,"0722":5,"0727126":5,"0727584":5,"074":5,"0744186":5,"0745":5,"07484":5,"075":5,"075416":5,"0755737":5,"076":5,"077":5,"0770302":5,"0772021":5,"0772781":5,"078":5,"0784":5,"0784722":5,"0787729":5,"0789786":5,"079":[5,6],"0791":5,"07e":13,"08":[0,5,8,13,19],"0808":5,"081":[5,6],"081024":6,"082":5,"0820":0,"0823499":5,"0831":5,"0834973":19,"0837":5,"084":5,"0849409":5,"085":5,"086":5,"086004":5,"0868":5,"087":5,"0877":5,"0877243":5,"0878":5,"088":5,"089":5,"0890815":5,"0896":5,"08e":13,"08msun":0,"09":[5,6,8,13],"090":5,"0900":19,"0902":0,"0907":5,"0907537":5,"091":5,"0910814":5,"0913095":5,"09164":5,"092":5,"09295167374":13,"093":[6,17],"0931922":5,"094":[5,8],"095":5,"0958704":5,"096":5,"09665":5,"097":5,"09706e":5,"09786":5,"098":[5,6],"0987206":5,"099":5,"0991059":5,"0993":5,"099417":8,"0995":5,"0eb5c0c9abd34607a6ee060b26a7e32f":16,"0fa4c2b8707741a5ab41d209ef95a3a4":16,"0m":13,"0mb":[8,13],"0msun":38,"0x149c95c56c10":8,"0x14bf2250fdc0":6,"0x7f2b6ca163a0":16,"0x7f35b603e9d0":12,"0x7fc1f0c3ff00":7,"1":[0,1,2,5,6,7,8,9,11,12,13,14,15,16,17,18,19,22,23,25,26,30,31,32,33,35,37,38,40,41,43],"10":[0,2,5,6,7,8,9,12,13,14,15,16,17,18,19,22,32,38,41],"100":[0,5,6,8,13,14,15,32,38],"1000":[0,8,22,38],"100000000000":[18,19],"1001":13,"1005":5,"101":5,"101038":5,"1012":5,"101323":5,"101955":5,"102":5,"1021":5,"1024mb":22,"1025":13,"102750e":19,"103":5,"1035":5,"103702":5,"103789":5,"104":[5,8],"1043":5,"104427":5,"104997":5,"105":[5,14,15],"105082":5,"10522":5,"105704":5,"106":[5,16],"1062":5,"106368":5,"106545":5,"10689":5,"107":5,"107187":5,"1075":5,"10782":5,"108":5,"1082":5,"1085":12,"108571":5,"10877":5,"1088":5,"109":[5,8],"10941":5,"109679":5,"1098":5,"1099":5,"10e":13,"11":[0,5,6,8,9,12,13,15,16,17,19],"110":5,"11003":12,"1104":5,"1108":5,"111":5,"111023":5,"111583":5,"11182":5,"112":5,"11239":5,"1124":5,"113":5,"1130":5,"11346":5,"113492":19,"1135":5,"11376":5,"114":5,"114678":5,"11491":5,"115":[5,32],"11506":5,"115297":5,"11558":5,"115722":5,"11582":12,"116":5,"11686":5,"11695":5,"117":5,"11707":5,"1173":5,"1178":5,"118":5,"11802":5,"118229":5,"11854":5,"119":5,"1193":5,"1199":5,"11e":13,"12":[0,5,6,9,12,13,15,16,17,19,20,32],"120":5,"120000":0,"120066":5,"1204":[5,19],"121":5,"121263":5,"12136":5,"1219":5,"122":5,"1222":5,"123":5,"123048":5,"12325":12,"123635":5,"1237":5,"1239555":8,"124":5,"1241251901":17,"124379":19,"124496":5,"12457":12,"12460":12,"12461":12,"124931":5,"12495":5,"125":[0,5,16],"1250":12,"12500":0,"1251":12,"1252":12,"12522":5,"1253":12,"1254":[5,12],"12548":5,"125553":5,"125886":5,"125968":5,"126":5,"126532":5,"127":5,"12741":5,"127442":5,"127957":5,"128":5,"12806":5,"129":5,"12974":5,"129879":5,"12e":[1,6,9,12,13,14,15,16],"13":[0,5,6,8,9,12,13,15,16,17,19],"130":5,"1301":12,"1302":12,"1306":5,"130725":5,"131":5,"13108":19,"1314":5,"131680e":19,"132":5,"132057":5,"1326":5,"13267":5,"1327":5,"13298":5,"133":[5,16],"1334":5,"134":5,"13416":5,"13461":12,"135":5,"135101":5,"135164":5,"1354":13,"1355":13,"13567":9,"136":5,"1360":5,"13607":5,"137":5,"13700":[6,8],"137502":5,"1379":5,"13796e":5,"138":5,"1380":19,"139":5,"139044":5,"1392":5,"139732":5,"1398":5,"13e3":0,"14":[0,5,6,9,12,13,15,16,17,19],"140":5,"1403":32,"141":5,"14112":5,"141361":5,"1415":5,"142":5,"14212":5,"143":5,"144":5,"144141":5,"14439":5,"14461":12,"1449":[5,13],"145":5,"145296":5,"145632":5,"146":5,"1468":5,"146844":5,"147":5,"1471":5,"1473":5,"14764":5,"1478":5,"148":[5,19],"1485":5,"148721":5,"149":5,"1490":12,"149038":12,"1492":5,"1494":13,"1498":5,"14e":13,"15":[0,5,8,9,12,13,15,16,17,19,22,32],"150":[5,8,13,14,15,16],"15000":[0,5,7,9,12,16,17,19],"1502":5,"150217":5,"15042":5,"150681":5,"151":5,"1514":5,"151616":5,"1517":5,"15186":5,"152":5,"1521":5,"1527":5,"153":5,"153329":5,"153852":5,"1539":13,"154":5,"155":5,"1551":5,"1553":5,"155342":5,"155662":13,"155678":8,"15594":5,"156":[5,8,19],"1560":5,"1567":5,"1569":5,"157":5,"1571":5,"1575":5,"158":5,"1585":13,"1586":5,"158640":8,"15884":5,"159":[5,8],"15907":5,"1599":5,"15e":13,"15msun":32,"16":[0,5,8,13,15,17,19,32],"160":5,"1606":5,"160675":13,"161":5,"1610":5,"1612":5,"1618":5,"162":5,"162006":5,"162038":5,"1622":5,"1624":[5,13],"162454":13,"16265":5,"162941":5,"163":[5,8],"1631":5,"1633":5,"163481":8,"1635760192":6,"1635760194":6,"1635760256":8,"1635760377":8,"1635760613":13,"1635760806":15,"1635760813":15,"1635761189":13,"1637":5,"164":5,"1646563001":16,"1646563002":16,"164714":5,"165":5,"16539":5,"16564":5,"166":[5,8],"1663":5,"166559":5,"167":[5,13],"1670":5,"16729":5,"16733":5,"1674":[5,13],"1678":5,"168":[5,8],"16833":5,"16837":5,"168379":8,"168558":5,"168972":5,"169":5,"1691":5,"1695":5,"169775":13,"17":[5,6,8,13,15,16,17,19],"170":5,"1703":13,"1708":5,"171":5,"171096":5,"1713":5,"1715":5,"172":5,"172014":5,"1722":5,"1729":5,"173":5,"1736":5,"174":5,"174169":5,"1747":5,"1749":13,"175":5,"175004":5,"1753":5,"17588":5,"176":5,"176751":13,"177":[5,8],"177444":5,"1775":5,"177551":5,"177727":5,"178":5,"1780":13,"1781":5,"1783":5,"1784":5,"1786":5,"179":5,"179142":5,"1792":5,"17932":5,"1796":5,"18":[5,13,15,17,19],"180":5,"1804":5,"180453":5,"1806":5,"1807":5,"1808":5,"1809":5,"181":5,"1810":5,"18108":5,"1811":5,"1812":5,"181244":5,"1813":5,"18139":5,"1814":[5,13],"18148":5,"1815":5,"1816":5,"1817":5,"181795":5,"1818":5,"1819":5,"182":5,"1821":5,"1822":5,"1823":5,"1824":5,"1825":5,"1826":5,"1827":5,"1828":5,"1829":5,"183":5,"1830":5,"183048":5,"1831":5,"1833":5,"1834":5,"1835":5,"1838":5,"1839":5,"183974":5,"184":5,"1841":5,"1843":5,"1844":5,"184464":5,"1845":5,"1846":5,"1847":5,"184829":5,"185":5,"1851":[5,13],"1854":5,"1858":5,"186":[5,13],"1865":9,"187":5,"1876":5,"187694":5,"1877":5,"1879":13,"187993":5,"188":5,"1882":5,"189":5,"189239":5,"19":[0,5,8,13,16,19],"190":[0,5,19],"19097":5,"191":5,"1910":13,"1915":5,"191543":5,"192":5,"1920":5,"1923":5,"193":5,"193528":5,"19366":5,"19393":5,"194":5,"1947":13,"195":5,"1951":0,"19521":5,"196":5,"196046":5,"196177":5,"19622":5,"196311":5,"1967":5,"1968":13,"197":5,"1972":0,"1973":5,"1975":0,"1977":5,"197729":5,"197x":0,"198":5,"1980":32,"1983":43,"1986":[0,32],"1987":5,"1989":[0,13],"199":5,"19907":5,"1991":32,"1992":0,"1993":0,"1996":43,"1998":[0,5,32],"1999":0,"19e":13,"1aearth":17,"1ajupit":17,"1amar":17,"1amercuri":17,"1aneptun":17,"1apluto":17,"1asaturn":17,"1auranu":17,"1avenu":17,"1ckzg0p9":[23,40],"1dex":[13,14,15],"1e":[0,7,8,9,12,13,19],"1e2":0,"1e9":0,"1gyr":38,"1m":13,"1mb":[8,13],"1mearth":17,"1mjupit":17,"1mmar":17,"1mmercuri":17,"1mneptun":17,"1mpluto":17,"1msaturn":17,"1msun":38,"1muranu":17,"1mvenu":17,"1s":[8,13],"1y":0,"2":[0,1,2,5,6,7,8,9,11,12,13,14,15,16,17,19,20,22,23,25,26,30,32,37,38,40],"20":[0,5,6,8,9,13,14,15,16,17,19,38],"200":[0,5],"2000":[0,5],"2001":[14,15,32],"2002":0,"2003":[0,32],"2004":[0,5],"2005":[0,5],"2008":5,"2009":0,"201":5,"2010":[0,22,32],"2012":[0,32],"2013":0,"2014":[0,5,32],"2015":[0,5],"2016":0,"2017":[0,13,16,22,32],"2018":[0,1,5],"2019":[0,5,19],"202":5,"2020":0,"2021":[5,6,8,13],"202196":5,"2022":0,"20220225":0,"202339":5,"202569":5,"20265":5,"202750e":19,"2029":5,"203":5,"2033":5,"204":5,"2044":5,"20447":5,"204663":5,"2048":13,"205":5,"2053":5,"205353":5,"205527":5,"205537":5,"2057":5,"205711924468e":16,"206":[5,17],"2063":5,"20677":5,"207":5,"2071":13,"2075":5,"208":5,"2081":5,"208169":5,"208453":5,"20887":5,"208923":5,"209":5,"2091":13,"209274":5,"20938":5,"20980":5,"20e":[8,13],"21":[0,1,5,6,13,16,19],"210":[5,19],"21043":5,"211":[5,15],"2112":5,"2118":19,"212":5,"212034":5,"2122":13,"2127":5,"213":5,"2132":5,"21333":5,"213396":5,"2135":5,"213854":5,"214":5,"214274644851685":19,"2143":13,"2147":5,"215":5,"215504":5,"2156":5,"215638":5,"2157":5,"216":5,"21603":5,"216067":5,"2164":13,"216496":5,"216951":5,"217":5,"21764":5,"218":5,"2182":5,"218222":15,"21824":5,"2183":13,"21844":5,"219":5,"219058":5,"2191":5,"21927":5,"21948":5,"21e":13,"22":[5,13,19],"220":5,"22036":5,"2206":13,"22065":12,"22098":5,"221":5,"2210":5,"2214":5,"2216":5,"221832":5,"222":5,"2221":5,"2224":5,"22281":5,"223":5,"2232":13,"2234":5,"224":5,"2245":13,"224923":5,"225":5,"225135":5,"22518":5,"22543":5,"2258":13,"226":5,"2261":5,"22611318083528548":8,"226424":5,"2266":5,"2268":5,"2269":13,"227":5,"22723621650191106":16,"22723621650191117":16,"227249":5,"2275":5,"22787":5,"228":5,"2282":13,"228555":5,"229":5,"2291":5,"22936":5,"2295":5,"229591":5,"22e":8,"23":[5,13,16],"230":5,"2300":13,"230102":5,"2305":5,"230955":5,"231":5,"231680e":19,"231704":5,"232":5,"2329":13,"233":5,"2332":5,"2333":5,"2338":5,"234":[5,8],"2348":13,"235":[5,6],"23513":5,"2352":5,"235464":5,"235689312423":8,"236":[5,19],"2365":[13,19],"237":5,"2371":5,"237203":5,"237951":5,"238":5,"2383":13,"238584":5,"23894":5,"239":5,"239197":5,"239704":5,"24":[5,8,13],"240":5,"2400":13,"2406":5,"2406484012210224":16,"24098":5,"241":5,"2413":5,"24165":5,"242":5,"2421":5,"242151":5,"2423":13,"242309":5,"242397939068e":16,"2424":12,"243":[5,6],"243214":5,"243583":5,"2437":5,"2438":13,"2439":5,"244":[5,17],"2444":17,"244645":5,"245":5,"245209":5,"245223":5,"2454":13,"246":5,"2466":13,"246604":5,"246625":5,"246671":6,"247":[5,16],"2472":5,"2477":[5,13],"248":[5,8],"248871":5,"249":5,"249106":5,"2492":13,"2493":5,"249848":5,"24e":13,"25":[0,5,8,13,19],"250":5,"25014bc73b334765a1c09a4e4a97ed66":13,"251":[5,8],"2514":5,"2516":13,"25164":5,"252":5,"2528":5,"252877":5,"2529":5,"253":5,"2535":16,"2537":13,"253705":5,"254":5,"255":[0,5],"2551":5,"2552":5,"2554":13,"2556":5,"256":[5,6,22],"256488":5,"256783":5,"25694":5,"257":[5,43],"2570":13,"257278":5,"257437":5,"258":[5,8],"2583":5,"259":5,"2590":13,"25msun":0,"26":[5,13],"260":5,"26051":5,"260676":5,"261":5,"2613":5,"261343":5,"26171201413c43f5b91552a374879940":6,"2618":5,"262":5,"2622":[5,13],"2626":5,"2629":5,"263":5,"263079":5,"2632":5,"263235":5,"2636":13,"264":5,"26416":5,"26441":5,"26456":5,"2646":19,"265":5,"2652":13,"266":5,"2663":5,"26637":5,"2664":5,"266485":5,"2666":13,"267":[5,8],"2670":5,"2671":5,"2672":5,"2673":5,"2674":5,"2676":5,"2677":5,"2678":5,"2679":5,"268":5,"2680":5,"2681":5,"2682":5,"2683":5,"2684":5,"2685":5,"2686":5,"2687":5,"2688":5,"2689":5,"269":5,"2690":5,"2691":[5,13],"2692":5,"2693":5,"2694":5,"2695":5,"2696":5,"2697":5,"2698":5,"2699":5,"27":[5,8,13,16],"270":5,"2700":5,"2701":5,"2702":5,"27025":5,"2703":5,"2704":5,"2705":5,"2706":5,"2707":5,"2708":5,"2709":5,"271":5,"2710":5,"2711":5,"2712":5,"2713":5,"2714":5,"2715":5,"2716":5,"2717":5,"2718":5,"2719":5,"272":5,"2720":5,"2721":5,"2722":5,"2723":5,"2724":5,"2725":5,"2726":5,"2727":5,"2728":5,"2729":5,"272943":5,"273":5,"2730":5,"2731":5,"2732":5,"2733":[5,13],"2734":5,"274":5,"274206":5,"274445":5,"2746":13,"274854":5,"275":5,"2754":5,"27569e":5,"2757":13,"276":5,"2767":5,"277":5,"2773":5,"27734":5,"2775":13,"27767":5,"278":5,"27829":5,"279":5,"2791":5,"2795":13,"28":[5,7,8,9,12,13],"280":5,"2800":5,"2801":5,"2802":5,"28060251":32,"280723":5,"280749":5,"281":[5,43],"281309":5,"28133908148630704":16,"2816":5,"2819":5,"282":5,"282234":5,"2823":5,"282623":5,"283":5,"2831":13,"2834":5,"2835":5,"2836":5,"28369":5,"283972":5,"284":5,"2845":13,"2846":5,"285":5,"2857":16,"286":5,"2861":13,"287":5,"2871":5,"2873":5,"2875":13,"2878":5,"288":5,"2881":5,"288353":5,"28867":5,"289":5,"2891":13,"2898":5,"28984":5,"28e":8,"29":[5,8,13,22],"290":5,"290684":5,"291":5,"29136":5,"2914":5,"292":5,"2921":5,"2924":5,"292641":5,"2927":5,"293":[5,16],"2930":13,"2934e":19,"293512":5,"294":[5,6],"2947":13,"295":5,"295543":5,"296":5,"2961":5,"2965":13,"296544":5,"2967":5,"2969346":32,"297":5,"297187":5,"297506":5,"298":5,"29816":5,"298194":5,"2982":13,"299":[5,16],"2991":5,"2996":5,"29e":13,"2b66f805db424c48a1d29c45092b6e3c":8,"2d":0,"2e":[9,13,19],"2f":19,"2m":[8,13],"2mb":[8,13],"2msun":0,"2s":13,"3":[0,1,2,5,6,7,8,9,11,12,13,14,15,16,19,20,22,23,30,32,37,38,40],"30":[1,5,6,8,9,12,13,14,15,16,17,19],"300":[5,16,38],"3000":[0,17],"3002":5,"3008":5,"301":5,"3010":13,"301129":5,"301483":5,"3017":5,"302":[5,19],"3025":5,"302750e":19,"303":5,"3034":5,"3035":13,"303533":5,"3038":5,"30388e":5,"304":5,"3042":5,"30441":5,"3046":5,"3048":5,"305":5,"305334":5,"3059":13,"30592":16,"306":5,"3065":5,"306619":5,"3069":5,"307199":5,"3078":13,"308":5,"3081e":19,"3082":5,"308203":5,"3084":5,"309":5,"309361":5,"309461":5,"3096":5,"30975":5,"30e4":0,"31":[0,5,7,8,13,19],"310":5,"3100":[5,13],"310029":5,"3101":5,"311":5,"312":[5,6],"3124":13,"312637":5,"3127":5,"313":5,"313623":13,"314":5,"31408":5,"314533":5,"3148":13,"315":5,"315124":5,"315223":5,"3154":5,"315404":5,"315903":5,"315973":5,"316":[5,8],"316118":5,"317":5,"3171":5,"3172":5,"3174":13,"3176":5,"317663":5,"317921":5,"318":5,"3185":5,"318753":5,"319":5,"3192":5,"3193":5,"31958":5,"3197":13,"31e":13,"32":[5,8,13,20,22],"320":5,"3205":16,"32076":5,"321":5,"321082":5,"3211":5,"32118":5,"3216":5,"321643":5,"322":5,"3223":5,"3228":5,"32282":5,"323":5,"3231":[5,13],"323359":8,"3235":5,"324":5,"3243":5,"3244":5,"3246":5,"3247":5,"3248":5,"325":5,"325197":5,"3256":13,"325743":5,"325965":5,"326":5,"326147":5,"32620":5,"32631":5,"3264":5,"326601":5,"32684":5,"327":5,"3273":[5,13],"328":5,"328066":5,"3282":5,"328512":5,"329":[5,8],"3294":13,"32e":13,"33":[5,13],"330":5,"331":5,"331680e":19,"332":5,"332091":5,"3321":13,"332251":5,"332777":5,"33295":5,"333":5,"333032":5,"3331":5,"334":5,"33451":5,"33469":9,"3348":13,"335":5,"335153":5,"3352":5,"335342":5,"335428":5,"33552":5,"335642":5,"335847":5,"336":5,"336295":5,"3368":5,"337":5,"33719":5,"337249":5,"3373":13,"338":[5,9],"33817":19,"33879":5,"339":5,"3394":13,"339587":5,"3396":5,"34":[5,6,7,8,9,12,13,14,16,17],"340":5,"34018":5,"340477":5,"34081":5,"341":5,"3412":5,"34126":5,"34175":5,"3419":5,"342":[5,13],"34213":9,"342134":5,"3422":13,"342474":5,"3429":5,"343":5,"3438":5,"344":5,"34421":19,"3445":13,"344772":5,"3448":5,"345":5,"34537":5,"345842":13,"346":5,"3461":5,"3462":5,"3464":13,"3469":5,"347":5,"3471":5,"347169":5,"347405":5,"347623":5,"348":[5,8],"3483":13,"34870":5,"349":5,"3495":5,"3497":5,"34e":8,"35":[5,8,13,32],"350":[5,13],"3502":5,"35051":5,"3507":5,"3509":13,"351":5,"351532":5,"3518":5,"352":5,"3529":5,"353":5,"3533":13,"353432":5,"3536":5,"354":5,"3540":19,"354576":5,"35487":5,"354981":5,"355":5,"3550":13,"35505":5,"355513":5,"3559":5,"356":5,"3563":5,"3568":13,"356812":5,"357":5,"358":5,"3583":5,"35842":16,"3588":13,"3589":5,"35895":5,"359":5,"3591":5,"359784":5,"359881":5,"3599":5,"36":[5,8,13],"360":5,"360093":5,"36016":5,"361":5,"3616":5,"362":5,"3622":13,"362601":5,"36298":5,"363":5,"3630":19,"3631":19,"36314":5,"3632":19,"36323":5,"3633":19,"3634":19,"3635":19,"364":5,"3640":13,"364017":5,"36403":5,"364747":5,"3649":5,"365":5,"3657":13,"365763":5,"365949":5,"366":5,"366259":5,"366392":5,"367":5,"367268":5,"3674":5,"36747":5,"3676":13,"367793":5,"368":5,"368345":5,"3688":5,"369":5,"3695":5,"36957":5,"3698":5,"36e":13,"37":[5,8,13],"370":5,"3702e":19,"3706":13,"371":5,"371427":5,"371458":5,"371625":5,"3719":5,"372":5,"3726":[5,13],"3729":5,"373":5,"373282":5,"374":5,"37409":5,"3746":13,"374905":5,"375":5,"3752":5,"375537":5,"3757":5,"375712":5,"3758":5,"376":5,"376059":5,"3763":13,"376604":5,"3767":5,"377":5,"3771":5,"378":5,"3781":5,"378266748188e":16,"3786":13,"37874":5,"379":5,"379292":5,"37e":13,"38":[0,5,8,13,16],"380":5,"38009":5,"380393":5,"380887":5,"381":5,"3811":13,"382":5,"382144":5,"382472":5,"383":5,"38316":5,"3832":13,"384":5,"3849":13,"385":5,"386":5,"387":5,"3875":13,"388":5,"388321":5,"389":5,"38908":5,"389208":5,"38921":5,"389749":5,"38m":13,"39":[5,6,7,8,11,12,13,14,15,16,17,18],"390":5,"3905":13,"391":5,"3914":19,"39152e":5,"391798":5,"392":[5,19],"392194":5,"392487":5,"3927":19,"3928":[5,19],"3929":19,"393":5,"3930":[13,19],"3931":[13,19],"3932":19,"393886":5,"393982410080e":16,"394":5,"395":5,"39521":5,"3954":13,"3957":5,"3959":5,"396":5,"3963":5,"396470605248e":16,"3967":5,"397":5,"3971":5,"3977":13,"397754":5,"3978":5,"398":5,"39831":5,"39834":5,"398381":5,"398419":5,"398927":5,"399":5,"399005684057e":16,"3995":5,"3999999999996":15,"3d":0,"3e":19,"3m":13,"3mb":[8,13],"3msun":32,"3s":[8,13],"4":[0,1,5,6,7,8,9,11,12,13,14,15,16,17,19,21,31,32,38],"40":[5,8,13,14,15],"400":5,"4000":[0,13],"40049":5,"401":5,"4011":5,"401263":5,"4013":5,"401414766976e":16,"401728":5,"4018":5,"402":5,"40238":5,"402750e":19,"402961":5,"403":5,"40339":5,"404":5,"4046":5,"4048":5,"404962":5,"405":5,"405068":5,"405577":5,"406":[5,13,16],"407":5,"40735":5,"4076":5,"408":5,"409":5,"4098":5,"40e":13,"41":[5,13],"410":[5,19],"4101":5,"4102":5,"4108":5,"410828":5,"411":5,"411151":5,"412":5,"41238":5,"413":[5,6],"413467":5,"414":5,"41436":16,"41457":5,"4146":5,"41485":5,"414875":5,"415":5,"416":5,"416141":6,"4162":5,"417":5,"41726":5,"4176":5,"418":5,"418029":5,"4182":5,"4183":5,"4184":5,"4186":5,"41862":5,"418757":5,"4188":5,"419":5,"4192":5,"4197":5,"41996":5,"41e":13,"42":[0,5,8,13,16],"420":5,"420182":5,"4202":5,"420316":5,"4205":5,"42052":5,"42097":5,"421":5,"421365":5,"421436":5,"421475":5,"4218":5,"4219":5,"422":5,"422436":5,"42266":5,"4229":5,"422997711686e":16,"423":5,"42362":5,"424":[5,6],"4243":5,"424712":5,"424924":5,"425":5,"4251":5,"4256":5,"425788":5,"426":5,"427":5,"42785":5,"428":5,"428699":5,"429":[5,13],"429122":5,"429398":5,"42e":13,"42msun":0,"43":[5,13],"430":5,"430329401616038":16,"4304":5,"431":5,"4311":5,"43124":16,"431313":5,"431680e":19,"43173":5,"432":5,"4321":5,"432729":5,"433":5,"4330":5,"433207":13,"4333":5,"433477":5,"434":5,"435":5,"4357":5,"435809":5,"436":5,"43618":5,"4365":5,"4369":5,"436983545111e":16,"437":[5,13],"4379":5,"438":5,"4380":5,"4385":5,"438686":5,"4387":5,"438861":5,"439":5,"44":[5,13],"440":5,"441":5,"441158":5,"44170":5,"442":5,"44211":5,"4422":5,"44223e":5,"443":5,"4433":5,"443375325717e":16,"4438":5,"444":[5,19],"445":5,"4454":5,"4455":5,"44558":5,"445821":5,"446":5,"447":5,"447918":5,"448":5,"4480088":16,"448242":5,"448401":5,"44852":5,"449":[5,13],"4493":5,"44e":13,"44msun":0,"45":[5,6,8,13],"450":5,"4500":7,"45000000080":16,"4501":5,"450629":5,"4507":5,"450818":5,"4509":5,"451":[5,8],"45114":5,"451195752942e":16,"451732":5,"452":5,"452661646076e":16,"453":5,"4530":[9,12,19],"453059":13,"453348":5,"453412":5,"453932":5,"454":5,"4540":5,"454013":5,"454268":5,"454409":5,"455":5,"45534":5,"455552":5,"456":13,"456313":5,"456519":5,"457":5,"45757":5,"457987":5,"458":5,"458064":5,"458272":19,"4588":5,"45889":5,"459":5,"459382":5,"45msun":0,"46":[5,8,13,16],"460":5,"460081":5,"46057":5,"46089":5,"462":[5,19],"4622":5,"46220":5,"4623":5,"463":5,"463455":5,"464":5,"464494":5,"465":5,"465133":5,"465867":5,"46607":5,"4666":5,"4670":5,"4673":5,"467851":5,"468":5,"4680":8,"46822":5,"4683":5,"469":5,"46901":5,"469056":5,"469524":5,"47":[5,8,13],"470":5,"471":5,"4710":5,"471379":5,"4714":5,"472":[15,19],"472105":5,"472318":5,"4734":5,"473762":5,"474":5,"47419":5,"475":5,"4752":5,"475287":5,"47534":5,"4755":5,"4759":5,"476":5,"4764":5,"476589":5,"477":5,"477089":5,"4773":5,"477535":5,"477791":5,"478":5,"478253":5,"478315":5,"4788":5,"478807":5,"479":5,"47946":5,"4797":5,"479973":5,"48":[5,13],"480":5,"480045":5,"48046":5,"4807":5,"4809":5,"481":5,"482":5,"4822":5,"4825":5,"482668":5,"483":5,"48336":5,"4838":[7,9,12],"484":5,"4845":5,"485":5,"48586":5,"486":5,"4862":5,"4865":5,"4867":5,"4872":5,"48749":5,"4877":5,"488":5,"48809":5,"489":5,"489077":5,"48926":5,"48e":[8,13],"49":[5,6,13],"490":5,"491":5,"491811":5,"492":5,"492242":5,"492302":5,"492484":5,"492707":5,"492818":5,"493":5,"493648":5,"493975":5,"494":5,"4945":5,"4949":5,"495":5,"4957":5,"4959":5,"495924":5,"496":5,"4961":5,"496312":5,"4966016":15,"497":5,"497008":5,"497294":5,"498":5,"4981":5,"498232":5,"499":5,"49e":13,"4b8c7f4a86e445099d73f27dffaad94b":15,"4e":[0,19],"4e3":0,"4m":13,"4mb":[8,13],"4s":[8,13],"5":[0,1,5,6,7,8,9,11,12,13,14,15,16,17,19,20,29,31,32,35],"50":[0,5,8,13,15,16],"500":[0,5],"500000e":19,"501":5,"5017":5,"502":5,"502451":5,"502775":5,"502841":5,"503":5,"503726":5,"504":5,"5043":5,"5046":5,"505":5,"5051":5,"50537":5,"506":5,"5064":5,"50652":5,"5066257":15,"50682":5,"50687":5,"507":5,"507104":5,"507443":5,"508":5,"5089":5,"509":5,"5094":5,"50973":5,"50e":13,"51":[5,8,13],"510":5,"511":5,"511114":5,"51114e":16,"5112":5,"5114":5,"5117":5,"512":5,"512561":5,"512617":5,"512mb":22,"513":5,"514":5,"514087":5,"51478":5,"514898":5,"514916":5,"515":13,"515062":5,"5164":5,"517":5,"51742":5,"517454":5,"5175":5,"518":5,"51803":9,"51809":5,"51819":5,"518397":5,"518757914":14,"518851":5,"519":5,"51e":13,"52":[5,6,8,13],"52058":5,"5208":5,"520903":5,"5217":5,"522":5,"5221":5,"523":5,"523485":5,"523561":5,"524":5,"52416":16,"5244":5,"524629":19,"524755":5,"525":5,"526":5,"527":5,"528":5,"528102":5,"5286":5,"529":5,"5297876799548944":16,"52e":13,"53":[5,6,8,13,16],"530":5,"5301":5,"5309":5,"531":[5,16],"531293":5,"531411":5,"5317":5,"532":5,"5324":5,"533":5,"5333":5,"534":5,"534699":5,"535":5,"5358":5,"536":5,"536373523810e":16,"5366":5,"53715":5,"5374":5,"537743":5,"538":5,"53854":5,"539":5,"539343":5,"539941":5,"53e":13,"54":[5,13],"54027":5,"5403":5,"541":5,"541792":5,"542":5,"5423":5,"542419":5,"543":5,"54307":5,"54371":5,"544":5,"54439":5,"544482":5,"545":5,"5456":5,"545743":5,"546":5,"5462":5,"547002":5,"547729":5,"548":5,"548589":5,"548864":5,"549":5,"5493":5,"54949":5,"55":[5,6,8,13,15,16,32],"550575":5,"551":[5,6],"551072":5,"552":5,"552711":5,"5528":5,"553":5,"5532":5,"554":5,"55458":9,"55473":5,"555":[5,8],"5556":5,"5557":5,"557":5,"558":5,"559":5,"5593":5,"55982":5,"559889":5,"55e":13,"56":[5,8,13],"560118":5,"5603":5,"561":5,"5612":5,"5619":5,"562":5,"562029":19,"56228":5,"564":5,"565":5,"56518":5,"5652":5,"566":[5,19],"566263":5,"56631":5,"566495":5,"567":5,"567303":5,"567898":5,"568":5,"5681":5,"56865":5,"569":5,"569581":5,"5696":5,"56e":13,"57":[5,6,8,13],"570":5,"570222":5,"5703":5,"57062":5,"57093":5,"571":5,"5712":5,"57141":5,"572":5,"573":5,"5734":5,"5735":5,"573703":5,"5738":5,"573874":5,"574":5,"57443":9,"574826":5,"575":5,"57538":5,"576":5,"577":5,"57739":5,"5775":5,"577826":5,"578":5,"57878":5,"579":5,"5791":5,"5794":5,"5795":5,"5796":5,"5798":5,"58":[5,13],"581":5,"5812":5,"581558":5,"58166":5,"582":5,"582318":5,"583":5,"58332":5,"583346":5,"583436":5,"584622":5,"585":5,"58504":5,"5853":0,"585985":5,"586":5,"587":[5,15],"588":5,"588396":5,"5885":5,"589":5,"58e":8,"59":[5,6,13],"590":5,"5904":5,"590877":5,"591":5,"5919":5,"592":5,"592309":5,"592733":5,"593":5,"594":5,"59429":5,"59452":9,"595":5,"596":[5,13],"59616":5,"596161":5,"597":5,"5977":5,"598":5,"5982":5,"598268106227e":16,"59867":5,"59e":[13,16],"5dex":[8,13,14,15],"5e":13,"5m":13,"5mb":[8,13],"5msun":0,"5s":13,"6":[0,1,5,6,7,8,9,11,12,13,14,15,16,19,23,40],"60":[5,13,31],"600":5,"6000":0,"600000":0,"600258":5,"600593":5,"6008":5,"601":5,"60101":5,"602":5,"603":[5,13],"6032":5,"604":5,"60468":5,"605":5,"60547":5,"6058":5,"606":[5,13],"606169":5,"60636":5,"607":13,"608":[5,13],"608269":5,"608402":19,"608485":5,"608655":5,"60876":5,"609":5,"6094":5,"61":[5,13,16],"610184":5,"610285":5,"611":[5,13],"61117":5,"611632":5,"611763":5,"611785":5,"612":[5,13],"612281":5,"613":[5,13],"613167":5,"614":[5,13],"6145":5,"615":5,"615165":5,"61521":5,"616":[5,13],"6161":5,"616737":5,"61679":5,"617":[5,13],"617224":5,"6179":5,"618":5,"6181":5,"6182":5,"618382":5,"618445":5,"6185":5,"618705":5,"619":[5,13],"619099":5,"61e":13,"62":[0,5,13],"620":13,"621":15,"6212":5,"62124":19,"621375":5,"6215":5,"622":5,"62200":5,"622081":5,"622494":5,"6225":5,"623":13,"623052":5,"623232":5,"623354":5,"62366":5,"624":[5,13],"624125":5,"625":[0,5],"62549":5,"626":[5,13],"627748":19,"628":[5,13],"628169":5,"629":[5,13],"63":[5,8,13],"630":13,"631":[5,8],"63153":5,"632":[5,13],"6328":5,"633":5,"633148":5,"633684":5,"634":[5,13],"634261":5,"6344":5,"634667":19,"635":[0,13],"63566e":5,"635703":5,"636":13,"636985":5,"637":[5,13],"637666":5,"637754":5,"6379":5,"638":[5,13],"63818":5,"6384":5,"6388":5,"639":[5,13,19],"63923":5,"639951":5,"63e":13,"64":[5,13],"640":[5,13],"6409":5,"641":13,"6413":5,"64137":5,"642":13,"64207":5,"64265":5,"6429":5,"643":13,"64359":5,"6438124832773024":13,"644":[5,13],"64463":5,"645":[5,13,19],"645286":5,"645339":5,"645763":5,"646":5,"64611":5,"646273":5,"647":5,"647161":5,"64724":5,"6474":5,"6475":5,"648":5,"648549":5,"6485656144116352":13,"648566":13,"6489":5,"649":16,"6492":5,"6493":5,"64932":5,"649327":5,"64e":13,"65":[5,13,38],"651":5,"6514":5,"6515":5,"65262":5,"652638":13,"652755":5,"653":5,"6548":5,"6550":5,"6552":5,"655371":5,"6556":5,"6559":5,"656":5,"6562":5,"657":5,"6571":5,"6579":5,"658":5,"6588":5,"659":5,"659393":5,"659448":5,"659469":5,"659526":5,"659581":5,"659743":5,"65976":5,"65e":13,"66":[5,13],"66016":5,"66025":5,"6602514":13,"6604":5,"660415":5,"661":5,"661725":5,"662":5,"6626":5,"66293":16,"663":5,"663251":5,"663976":5,"664":5,"664546":5,"6649":5,"665406":5,"66554":5,"665969":5,"666661":5,"667":5,"6674":5,"668":5,"668328":5,"669":5,"66914":16,"66915":5,"669442":5,"66e":13,"67":[5,13,16],"670":5,"67023":5,"670337":5,"670413":5,"670422":5,"67059":5,"671":5,"671001":5,"671551":5,"67179":5,"672":5,"67245":5,"673":5,"674":[5,16],"6745":5,"674645":5,"6747":5,"6749":5,"675":5,"675689":5,"6758":5,"676":5,"676181":5,"676215":5,"6764":5,"6765":5,"677":5,"6771":5,"677623":5,"678":[5,12],"678026":12,"679":[5,8],"679223":5,"6797":5,"67e":13,"68":[5,8,13,16],"681":5,"681473":5,"681487":5,"6816":5,"682":[5,8],"6822":5,"683":5,"6831":5,"6832":5,"6834":5,"683467":5,"68376":5,"684":[5,8],"684890":13,"685":[8,13],"685255":5,"685872":5,"686":5,"686591":5,"687":[5,8],"68746":5,"688":[5,8],"6883":5,"6885":5,"689":5,"689781":5,"689835":5,"68e":13,"69":[5,13],"690":13,"690157944401e":16,"690194":13,"690203":5,"6905":5,"690746":5,"6908":5,"6909":5,"691":[5,8],"691586":5,"692":5,"693":[5,8],"693128":5,"693321":5,"6934":5,"693944":5,"694":[5,8,13],"6944":0,"694517":13,"695":5,"6952":5,"695505":5,"69569":5,"696":5,"696003":19,"696284":5,"697":5,"6975":5,"697827":5,"698":[5,13],"69808":5,"698517":5,"6989":5,"699":5,"6e":[8,13],"6e1":32,"6e5":0,"6m":13,"6mb":[8,13],"6msun":0,"6s":[8,13],"7":[0,1,5,6,7,8,9,12,13,14,15,16,18,19,23,32,40],"70":[5,8,13,32],"700":[5,19],"70005":5,"700359":5,"70043":5,"70052":5,"70054":5,"701":5,"702":5,"70235":5,"7028":5,"703":5,"703545":5,"70365":5,"704":5,"70429":5,"7046":5,"705":[5,19],"7052":5,"705715":5,"706":5,"7060":5,"706029":5,"706126":5,"706483":5,"706780":13,"7069":5,"706984":5,"707":[5,13],"708":5,"7085":5,"7087":19,"709":5,"7093":5,"709965":5,"70e":13,"71":[5,13],"710":5,"7106":19,"7107":5,"7108":5,"711":5,"7114":5,"712":5,"712414":5,"713946":5,"714712":5,"7151":16,"716":5,"71662":9,"71746":5,"71818":5,"7184":5,"718549":5,"718593":12,"7188":5,"719058":5,"7193637":16,"71e":13,"72":[5,13],"720749":5,"721":5,"7210":5,"7214":5,"7219":5,"722":5,"72386":5,"724":[5,9],"72498e":[9,16],"725":5,"725718":5,"726":19,"726002":5,"72611":5,"72617":5,"7267":5,"7269":5,"727":5,"727196":5,"72764":5,"728":[5,8],"7282":5,"728237":5,"72832e":5,"7286450862884521":16,"728797":5,"729":5,"729193":5,"7292":5,"7296":5,"72983":5,"72e":13,"73":[5,13,16],"730":5,"731":5,"7315":5,"7319":5,"732":5,"7322":5,"732244":8,"7324":5,"7326":5,"732818":5,"732953":5,"732983":5,"7335":5,"734":5,"7342":5,"734534":5,"735":5,"7354":5,"7359":5,"736":[5,8],"736112":5,"7365":5,"737":5,"7370":5,"73729":16,"737411":5,"73765":16,"738":5,"7380":5,"7381":5,"738399":5,"7384":5,"7385":5,"738524":5,"7386":5,"739":5,"7390":5,"7394":16,"739962":5,"73e":13,"74":[5,13],"740":5,"740494":5,"740929":5,"7413":5,"741346":5,"741448":5,"7418":5,"7419":5,"742":5,"7420":5,"7421":5,"7422":5,"7423":5,"7424":5,"7425":5,"7426":5,"7427":5,"7428":5,"7429":5,"743":5,"7430":5,"7431":5,"743118":5,"7432":5,"7433":5,"7434":5,"7435":5,"7436":5,"7437":5,"7438":5,"743837":5,"7439":5,"744":5,"7440":5,"7446":5,"7447":5,"7448":5,"7449":5,"745":5,"7450":5,"7451":5,"7452":5,"7453":5,"7454":5,"7455":5,"7456":5,"7457":5,"7458":5,"74583":5,"7459":5,"746":5,"7460":5,"7461":5,"7462":5,"747":5,"7472":5,"748":[5,19],"748832":5,"749":5,"75":[0,5,8,13],"750":[5,6],"7500":5,"75005":5,"750149":5,"750806":5,"7509":19,"751305":5,"752":5,"752134":5,"752438":5,"7527":5,"753":5,"7530":5,"7536":5,"7537":5,"754":5,"754141":5,"7544":5,"755":5,"75508":5,"755323":5,"7554":5,"7557":5,"756":5,"7564":5,"7566":5,"756794139032e":16,"756795":5,"757":[5,8],"757025":5,"7572":5,"758":[5,19],"7582":5,"7589":5,"759":5,"75921":5,"75931":5,"7595":5,"7598":5,"75988":16,"75e":13,"76":[5,13],"760064":5,"760389":5,"7605":5,"7607":5,"761":5,"7612":5,"7613":5,"76134":5,"761478":5,"7617":5,"7619":0,"7620":5,"7622":5,"7626":5,"7629":5,"763":[5,32],"7631":5,"7633":5,"7635":5,"764":5,"76416e":5,"7644":5,"7645":5,"764629":5,"7647":5,"764989":5,"765":5,"7650":5,"7657":5,"7659":5,"766":5,"766094":5,"7666":5,"7669":5,"767":5,"7671":5,"7675":5,"7677":5,"7678":5,"7679":5,"768":5,"7683":5,"768339":5,"7684":5,"768655":5,"7689":5,"769":5,"7690":5,"7691":5,"769195":5,"7695":19,"76e":8,"77":[5,13,15],"7705":5,"770532":5,"7706":5,"7709":5,"7714":5,"7717":5,"7718":5,"772":5,"7720":5,"7721":5,"7722":5,"7727":5,"7728":5,"773":5,"7730":5,"7731":5,"773166":5,"7734":5,"7735":5,"7736":5,"7737":5,"774":[5,12],"7741":5,"77416":5,"7742":5,"7743":5,"7745":5,"77455":5,"7748":5,"774954":5,"774969":5,"775":[5,19],"7750":5,"77505":5,"7751":5,"7752":5,"77541":5,"7757":5,"7759":5,"776":[5,19],"7761":5,"77624":5,"776263":5,"77631":5,"7764":5,"7765":5,"776523":5,"7766":5,"7767":5,"776818":5,"7769":5,"777":5,"7772":5,"7773":[5,19],"7774":5,"77766":5,"7779":5,"778":5,"7781":5,"7782":5,"7785":5,"7789":5,"779":5,"7790":5,"7792":5,"7795":5,"7797":5,"78":[5,13],"78012":5,"7803":5,"7806":5,"781":5,"781046":5,"78125":0,"7813":5,"7817":5,"7819":5,"782":5,"7823":5,"7825":5,"7826":5,"7827":5,"7828":5,"783":[5,12],"7831":5,"7836":5,"783746":5,"783792":5,"784":5,"7840":5,"7842":5,"7843":5,"7844":5,"7845":5,"7848":5,"78488":5,"784972":5,"785":5,"7852":5,"785539":5,"7856":5,"7858":5,"786":5,"786062":5,"7861":5,"7863":5,"7864":5,"7868":5,"786e":19,"787":5,"7871":5,"787102":5,"787368":5,"7874":5,"7875":5,"78767":16,"7877":5,"787705":5,"7879":5,"788":5,"78817":19,"7882":5,"7883":5,"7886":5,"7887":5,"789":5,"789064":5,"7891":5,"789188":5,"7893":5,"7898":5,"789859":5,"7899":5,"78e":13,"79":[5,13],"7901":5,"7902":5,"7903":5,"7905":5,"7907":5,"7909":5,"790941":5,"791":5,"7911":5,"7912":5,"791274":5,"7913":5,"791478":5,"7916":5,"7918":5,"7919":5,"791991":5,"792":5,"7920":5,"7925":5,"7926":5,"79264":5,"7927":5,"792721":5,"792744":5,"7928":5,"7933":5,"7934":5,"7936":5,"793832":5,"7941":5,"79412":5,"7942":5,"7943":5,"7944":5,"795":[5,32],"795024":5,"7958":5,"796":5,"7960":5,"7962":5,"7964":5,"796455":19,"7965":5,"7967":5,"7968":5,"7969":5,"797":5,"7973":5,"7974":5,"7975":5,"7979":5,"798":5,"7980":5,"7982":5,"7988":5,"799":5,"7990":5,"79911":5,"7996":5,"7997":5,"7998":16,"799889":5,"79e":13,"7a2e4301f5224b2cb8939d2297df0aad":15,"7e":13,"7m":13,"7mb":13,"7s":8,"8":[0,3,5,6,8,9,12,13,14,15,16,19,31,32],"80":[5,13,32,38],"800":6,"8000":5,"8001":5,"8003":5,"8004":5,"8008":5,"8009":5,"801":5,"8010":5,"8012":5,"8013":5,"802":5,"802706":6,"803":5,"8031":5,"8034":5,"8039":5,"804":5,"80402":5,"8043":5,"8044":5,"8047":5,"8048":5,"804961":5,"805":5,"8050":5,"8053":5,"8055":5,"805733":5,"8058":5,"8059":5,"806":5,"8060":5,"80602":19,"8062":5,"806431":5,"8065":5,"8066":5,"8067":5,"806722":5,"80677":16,"807":5,"8071":5,"8073":5,"807331":5,"807361":5,"8074":5,"807403":5,"8076":5,"8079":5,"808":5,"808134":5,"809":[5,6],"8091":5,"8095":5,"80954":5,"809662":5,"80e":13,"80msol":32,"81":[5,8,13],"810":8,"8101":5,"8104":5,"8105":5,"8107":5,"8108":5,"8109":5,"811":5,"8111":5,"8115":5,"812":5,"8121":5,"812296769855663":16,"8123":5,"8124797":6,"813":5,"81352":5,"8138":5,"81395":9,"814":5,"8140":5,"8141":5,"814387":5,"815":5,"8151":5,"81543":16,"8155":5,"81559":16,"81562":5,"8158":5,"816":5,"8163":5,"81645":16,"816958":5,"817":[5,12],"81705":5,"817432":5,"817608462595e":16,"817620e":19,"81762e":19,"8178":16,"817843":5,"817888":5,"818":5,"8182":5,"818294":5,"819":5,"8194":5,"8195":5,"8196":5,"819715":5,"8199":5,"81e":13,"82":[5,13],"8200":5,"8202":5,"82041":16,"8205":5,"82064":5,"821":5,"82104":16,"82129":16,"821301":5,"821367":5,"82164":16,"82171":16,"822":5,"82224":5,"8224":5,"82245":5,"823":5,"82325":5,"8234":5,"823767":5,"824494":5,"8245":5,"8247":5,"82479":16,"824848":5,"82486":5,"8249":5,"825":5,"8250":5,"825086":5,"8251":5,"8252":5,"8254":5,"82563":13,"825648":5,"826":5,"8261":5,"8263":5,"82642":5,"826771":5,"8268":5,"826831":5,"827":5,"8271":5,"8276":5,"82797":5,"828":5,"8280":5,"828241":5,"828858":5,"829":5,"829017":5,"8292":5,"8293":5,"8295":5,"829668":5,"829726":5,"829757":5,"8299":5,"82e":13,"83":[5,8,13],"830":[5,19],"8300":5,"8303":5,"830541":5,"831236":5,"832":5,"832981":5,"833":5,"8339":5,"834303":5,"834483":5,"835":5,"8354":5,"836":[5,6],"836621":5,"83672":5,"836783":5,"837":5,"8372":5,"83762":5,"8377":5,"837816":5,"8379":5,"838":[5,6],"838411":6,"838423":5,"83843":5,"839":5,"8399":5,"83e":13,"84":[5,8,13,16],"840":5,"84029":5,"84071":5,"840796":5,"840994":5,"841":5,"841284":5,"841718":5,"8427e":19,"8429":5,"843":5,"8435":5,"8435e":19,"844":[5,6],"8441":5,"84428":5,"8443":5,"845":5,"84502":5,"8452":5,"845387":5,"845641":5,"846":[5,6],"846045":6,"847":5,"847153":5,"84827":5,"848380621869e":9,"848866":5,"8493":5,"85":[5,8,13,38],"850":5,"850309":5,"851":5,"851646":5,"852":5,"852252":5,"8523":5,"852712":5,"853":5,"8533":5,"854":5,"85406e":5,"8544":5,"8545":5,"854649":5,"855":5,"856":[5,13],"85661":19,"8569":5,"857":5,"8573":5,"857699":5,"8577":5,"858":[5,6],"8585":5,"859":5,"8596":5,"859753":5,"8598":5,"859977":5,"86":[5,8,13],"860402":5,"8605":5,"861":5,"861368":5,"863":[5,8],"86323":5,"86334":5,"8635":5,"8638":5,"865":5,"8653":5,"8654":5,"865806":5,"866":5,"8664":5,"867":5,"86728":5,"8674":5,"8678":5,"86794":5,"868":5,"8683":5,"86878":5,"869":5,"86918":5,"8694":5,"869544":5,"87":[5,13],"870":5,"8704":5,"8706":5,"8708":5,"871":5,"872":5,"872312":5,"872316":5,"873":5,"8731":5,"873639":5,"874":5,"874638":5,"875":5,"876":5,"876084":5,"876382":5,"877":5,"877963":5,"878":5,"87813":5,"878253":5,"879":5,"8791":5,"87e":13,"88":[5,13],"880":5,"8805":5,"880528":5,"881":5,"8813":5,"882017":5,"8828":5,"883":5,"883252":5,"88343":5,"8837":5,"884":5,"8840":5,"8843":5,"88441":5,"884461":5,"8846":5,"8848":5,"885":5,"8851":5,"8853":5,"8855":5,"885537":5,"8856":5,"8858":5,"88581":5,"886":5,"8860":5,"8862":5,"8864":5,"8866":5,"8867":5,"8868":5,"8869":5,"887":5,"8870":5,"8871":5,"8872":5,"8873":5,"8874":5,"8875":5,"8876":5,"8877":5,"8878":5,"888":5,"8880":5,"8881":5,"888123":5,"8882":5,"8884":5,"8886":5,"888613":5,"8887":5,"8889":5,"889":5,"8891":5,"8892":5,"8893":5,"8894":5,"8896":5,"8897":5,"8898":5,"8899":5,"89":[5,6,13,15,16],"890":5,"8901":5,"8902":5,"8903":5,"8904":5,"8906":5,"8907":5,"8908":5,"8909":5,"891":5,"8910":5,"891056":5,"8911":5,"8912":5,"8917":5,"892":5,"89211":19,"8924":5,"8926":5,"893":5,"8934":5,"8935":5,"8939":5,"893941":5,"894":5,"894041":5,"8941":5,"8949":5,"895":5,"8955":12,"895821":5,"896":5,"8961":5,"896110e":19,"896196":5,"896286":5,"8972":5,"8975":5,"897612":5,"898":5,"8982":5,"898786":5,"899":5,"8992":5,"899464":5,"8a7d52edc59346ce991063d9e05e9ba7":6,"8e":0,"8m":[8,13],"8mb":13,"8s":[8,13],"9":[0,5,6,7,8,9,12,13,15,16,19],"90":[5,8,13],"900":5,"901":5,"901988":5,"902":5,"903":5,"9032":5,"9036":5,"9038":5,"904":5,"9043":5,"9046":5,"9047":5,"905":5,"905447944397":16,"9057":5,"906":5,"906059":5,"906299":5,"90695":5,"907":5,"9071":5,"90716":5,"9073":5,"9074":5,"908":5,"9087":5,"909":5,"9093":5,"9098":5,"90e":13,"91":[5,8,13],"910419":5,"9105":5,"910817":5,"910981":5,"911":5,"9110":5,"911093":5,"9113":5,"912":5,"912238":5,"912283":5,"912289":5,"912327":5,"9127":5,"912919":5,"913":5,"9139":5,"914":5,"9147":5,"9148":5,"915":[5,8],"915148":5,"915221":5,"9153":5,"91548":5,"916":5,"916093":5,"916207":5,"917":5,"917439":5,"9179":5,"918":5,"918543":5,"9189":5,"919":5,"9196":5,"91e":13,"92":[5,13],"920":5,"9203":5,"9206":5,"920832":5,"921":5,"9214":5,"922":5,"922199":5,"923":5,"92382":5,"924":5,"924056":19,"925":5,"9253":5,"9255":5,"9256":5,"925761":5,"926":5,"9263":5,"9264":5,"927":5,"929":5,"929511":5,"92995":5,"92e":13,"93":[5,13],"930":[5,15],"930282":5,"9304":5,"93044":5,"9308":5,"9309":5,"930943":5,"931":5,"9310":5,"932":5,"9323":5,"932839":5,"933":5,"9339":5,"934":5,"9342":5,"935":5,"935069":5,"9351":5,"9357":5,"935816":5,"936":5,"936532":5,"936762":5,"937":5,"9373e":19,"938":5,"938568":5,"938576":5,"93898":5,"939":5,"939376":5,"939378":5,"939757":5,"93e":13,"94":[5,6,8,13,20],"941":[5,8],"9411":5,"941478":5,"942":5,"942154":5,"9423":5,"9427":5,"942854":5,"943":5,"944":5,"9445":5,"94464":5,"945":5,"9452":5,"946":5,"946468":5,"946757":5,"947":5,"9471":5,"947719":5,"947774":5,"94797":5,"948":5,"949":5,"95":[5,13,15],"950":5,"9505":5,"950733":5,"9508":16,"951":5,"951344":5,"951597":5,"952":5,"9524":5,"952496":5,"953":5,"953182":5,"9537":5,"953738":5,"953798":5,"954":5,"954624":5,"9548":5,"954848":5,"955":5,"9557":5,"956":5,"9561":5,"956619":5,"957":5,"9573":5,"95783":5,"957894":5,"958":5,"959":5,"959422":5,"959492":5,"9595":5,"9598":5,"95e":8,"96":[5,6,8,13],"960":5,"9603":5,"9606":5,"960734":5,"961":5,"9610":5,"96112":5,"96161":5,"962":5,"962482":5,"962876":5,"963":[5,8],"964":5,"9648":5,"965":5,"9650":5,"965167":5,"96557e":5,"966":5,"966681":5,"967":5,"968":5,"969":5,"96963":5,"96e":13,"97":[5,13],"970":5,"970206":5,"970505":5,"970783":5,"971":5,"9713":16,"971686":5,"971941":5,"972":5,"9725":5,"973":[5,13],"973135":5,"97316":5,"9739":5,"9739752":8,"974":5,"9743":5,"9749":5,"975":5,"9757":5,"9758":5,"975864":5,"976":5,"976041":5,"977":5,"9779":5,"97797":5,"978":5,"979":5,"9794":5,"9797":5,"97e":[8,13],"98":[5,13,15],"98061":5,"98081":5,"98096":5,"981":5,"981292":5,"9814":5,"981555":5,"9816":5,"982":5,"9825":5,"983":5,"983229":5,"984":[5,15],"9841":5,"9842":5,"9844":16,"985":5,"9851":5,"985359":5,"9859":5,"986":[5,8],"9869":5,"987":5,"988":5,"988755":5,"989":5,"98e":13,"99":[5,13,15],"990":5,"9900":5,"9902":5,"9909":16,"991":5,"9912":5,"991224":5,"991657":8,"99191":9,"99192":9,"99194":9,"992":5,"99203":5,"9927":[5,12],"993":5,"994":5,"994118":5,"9948":16,"995":5,"995631":15,"995687":5,"995824":5,"996":[5,8],"996798":5,"997":5,"9977":5,"997751":5,"998":5,"998023":5,"99808":5,"998563":5,"999":5,"999122":5,"9999999999999998":15,"99e":13,"9e":8,"9m":13,"9mb":[8,13],"9s":[8,13],"abstract":41,"boolean":[0,2,7,20,21,22,25,39,43],"break":0,"case":[0,2,4,7,16,20,22,23,26,31,38],"catch":[6,8,12,13,14,15,16,19,20,22],"char":22,"class":[2,3,20,23,24],"const":[6,8,13,14,15],"default":[0,1,2,3,6,7,9,11,13,14,15,16,19,20,21,22,26,27,29,30,31,32,34,37,38,39,41],"do":[0,1,2,5,6,7,8,9,11,13,14,15,16,19,21,22,23,25,26,31,32,34,38,40,43],"export":[3,16,20,21,31],"final":[5,8,13,14,15,19],"float":[0,2,3,5,7,11,12,17,20,32,33,38,43],"function":[0,1,2,3,4,5,6,8,9,18,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43],"import":[5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,35],"int":[0,1,2,5,7,13,16,20,21,22,26,32,33,34,35,38,43],"krtickov\u00e1":0,"kub\u00e1t":0,"long":[0,6,8,16,22,28,31,35,39,42],"new":[0,2,6,8,12,13,14,15,16,20,21,26,31,32,35],"null":[0,6,7,8,20],"paczy\u0144ski":0,"public":[13,14,15,16,23],"return":[1,2,3,5,6,7,8,11,12,13,14,15,16,19,20,21,22,25,26,27,28,29,30,31,32,34,35,37,38,39,41,43],"short":[0,6,8,13,14,15,42],"super":0,"switch":0,"throw":[23,40],"true":[0,2,3,5,6,8,11,13,14,15,16,18,19,20,21,22,25,26,28,30,31,34,35,37,38,39],"try":[0,2,5,8,12,13,14,15,16,23,26,31,35,40],"void":9,"while":[0,5,6,7,8,13],A:[0,2,4,16,29,43],And:[23,34,40,43],As:[0,6,8,12,13,14,15,16],At:[6,16],But:12,By:[0,6,13,14,15,16,19,22],For:[0,2,9,12,13,14,15,25],If:[0,2,6,7,8,13,14,15,16,20,21,22,23,25,26,27,28,30,31,32,35,37,40,41,43],In:[0,2,6,8,9,11,12,13,14,15,16,19,22,31,38],It:[0,6,7,8,11,12,13,14,15,16,17,19,22,23,31,34,40],Its:22,NO:22,NOT:[0,35,38,41],No:[5,7,16,22,23,40],Not:[6,8],OR:[2,19],On:[0,16,20,31],One:[0,22],Or:[16,19],Such:8,That:[0,6],The:[0,1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,25,26,28,29,30,31,32,33,35,37,38,40,41],Then:[2,6,20,23,40],There:[6,7,8,9,11,12,13,14,15,16,17,19,21,22,25,32,34],These:[6,7,13,14,15,16,20,22,25,26],To:[0,7,12,13,14,15,16,22,23,31,32,40],Will:[0,20,22,41],With:34,_1:[13,14,15],_:[6,8,13,14,15,22,34],__:16,__arg_begin:7,__attribute__:9,__delitem__:29,__enter__:20,__exit__:20,__getitem__:[2,29],__iadd__:2,__setitem__:29,_actually_evolve_system:22,_binary_c_bind:[7,9,12,17,39,43],_binary_c_config_execut:22,_binary_c_dir:22,_binary_c_execut:22,_binary_c_shared_librari:22,_commandline_input:22,_count:22,_custom_logging_shared_library_fil:22,_end_time_evolut:22,_errors_exceed:22,_errors_found:22,_evolution_type_opt:22,_failed_count:22,_failed_prob:22,_failed_systems_error_cod:22,_generate_grid_cod:22,_grid_vari:[14,15,22,35],_kill:22,_loaded_moe2017_data:22,_main_pid:22,_moe2017_json_data:22,_population_id:22,_pre_run_setup:21,_probtot:22,_process_run_population_grid:22,_queue_don:22,_repeat:22,_restart_dir:26,_set:21,_set_moe2017_grid:22,_start_time_evolut:22,_store_memaddr:22,_system_gener:22,_total_mass_run:22,_total_probability_weighted_mass_run:22,_total_starcount:22,_zero_prob_stars_skip:22,a173:0,a_in:5,a_out:5,ab:[0,20],abat:0,abbrevi:42,abl:7,about:[4,6,8,13,14,15,16,20,21,22,26,31,34,43],abov:[0,6,9,12,14,15,16,20,21,32],abridg:[7,9,16],absolut:[0,20,38],abund:0,ac:[6,16],acceler:0,accept:[16,20,27],access:[2,9,12,13,14,15,16,22,26,31],accord:[0,6,31,32,38],accordingli:[12,14,15,16],account:[0,22,32],accret:[0,5],accretion_limit_dynamical_multipli:0,accretion_limit_eddington_lmms_multipli:0,accretion_limit_eddington_steady_multipli:0,accretion_limit_eddington_wd_to_remnant_multipli:0,accretion_limit_thermal_multipli:0,accretor:[0,5,43],accur:[13,14,15],acquir:5,act:[0,14,15,16,22],activ:[0,22],actual:[0,3,6,8,9,12,13,14,15,16,21,22,23,25,30,32,38,40],ad:[2,4,6,8,12,31,35],adam:0,adapt:[0,14,15],add:[0,2,6,8,9,12,13,14,15,16,21,22,25,32,35,36,38],add_ensemble_metadata:36,add_grid_valu:38,add_grid_vari:[6,8,13,14,15,16,35],add_system_metadata:36,addit:0,address:[1,7,9,22,43],admittedli:25,adress:[7,9,43],advis:9,af:5,affect:[0,6],after:[0,6,8,9,13,14,15,16,21,22,31,35,38],ag89:0,ag:[0,4,5,6,8,15,23,38],again:[2,3,6,11,12,20,22],against:25,agb:[0,6],agb_3dup_algorithm:0,agb_core_algorithm:0,agb_core_algorithm_default:0,agb_core_algorithm_hurlei:0,agb_core_algorithm_karaka:0,agb_luminosity_algorithm:0,agb_luminosity_algorithm_default:0,agb_luminosity_algorithm_hurlei:0,agb_luminosity_algorithm_karaka:0,agb_radius_algorithm:0,agb_radius_algorithm_default:0,agb_radius_algorithm_hurlei:0,agb_radius_algorithm_karaka:0,agb_third_dredge_up_algorithm_default:0,agb_third_dredge_up_algorithm_hurlei:0,agb_third_dredge_up_algorithm_karaka:0,agb_third_dredge_up_algorithm_stancliff:0,ago:6,al:[0,32,43],albedo:0,algorithm:[7,23],algothim:0,all:[0,1,2,3,6,7,8,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,31,32,34,38,39,40,41],all_info:21,alloc:[7,38],allow:[0,2,9,18,19,22,29,32],allow_nan:3,almost:22,along:[0,22,23,34,40],alpha:[0,5],alpha_:8,alpha_c:[0,5,6,8],alpha_ej:5,alphacb:0,alreadi:[6,16,17,26,31,35],also:[0,4,5,6,7,8,9,13,14,15,16,19,20,21,22,23,26,28,31,34,39,40,43],alter:[8,13,35],altern:[0,22],although:17,alwai:[0,22,32,38],amanda:0,amax:32,amin:32,amount:[0,2,7],amp:[6,8],an:[0,2,3,6,7,8,11,12,13,14,15,16,19,20,22,23,26,27,30,31,32,33,34,35,36,37,38,41],analys:41,analyt:[6,8,13,14,15,16,21,23,24],analyz:12,andrew:[23,40],andronov:0,angelou_lithium_cheb_decay_tim:0,angelou_lithium_cheb_massfrac:0,angelou_lithium_cheb_tim:0,angelou_lithium_decay_funct:0,angelou_lithium_decay_tim:0,angelou_lithium_eagb_decay_tim:0,angelou_lithium_eagb_massfrac:0,angelou_lithium_eagb_tim:0,angelou_lithium_gb_decay_tim:0,angelou_lithium_gb_massfrac:0,angelou_lithium_gb_tim:0,angelou_lithium_hg_decay_tim:0,angelou_lithium_hg_massfrac:0,angelou_lithium_hg_tim:0,angelou_lithium_lmms_decay_tim:0,angelou_lithium_lmms_massfrac:0,angelou_lithium_lmms_tim:0,angelou_lithium_ms_decay_tim:0,angelou_lithium_ms_massfrac:0,angelou_lithium_ms_tim:0,angelou_lithium_tpagb_decay_tim:0,angelou_lithium_tpagb_massfrac:0,angelou_lithium_tpagb_tim:0,angelou_lithium_vrot_trigg:0,angelou_lithium_vrotfrac_trigg:0,angular:[0,17,25],ani:[0,3,12,16,20,21,23,26,32,35,39,40],anoth:[0,26],ansi:[0,20],ansi_colour:0,anyth:[0,13,14,15,16,20,22,38],anywai:[12,16,32,35],api:[0,4,20,23,26],api_log_filename_prefix:[0,5,12,17],appear:22,append:[1,2,6,12,13,14,15,17],appli:0,apply_darwin_radau_correct:0,appropri:[0,16,22,26,29,30,31,35,37],approxim:[0,6,8],ar:[0,1,2,3,4,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,25,29,30,31,32,34,35,37,38,39,40,43],arang:19,aren:[22,32],arenou2010_binary_fract:32,arg:[5,7,16,20,29,32,33],arg_dict:[2,20],argh:17,argopt:0,argpair:[11,39],argstr:[7,9,12,17,19],argument:[0,2,7,12,14,16,17,18,19,20,21,22,26,27,32,39,41],argument_of_periastron:0,argument_of_periastron_quadrupl:0,argument_of_periastron_tripl:0,aritif:8,around:[0,9,12,18,19],arrai:[12,16,19,20,22,32,35,38],arrow:0,artefact:[14,15],artifici:0,artificial_accretion_end_tim:0,artificial_accretion_ignor:0,artificial_accretion_start_tim:0,artificial_angular_momentum_accretion_r:0,artificial_mass_accretion_r:0,artificial_mass_accretion_rate_by_stellar_typ:0,artificial_orbital_angular_momentum_accretion_r:0,arxiv:[0,32],ask:[0,7,43],asplund:0,assign:[13,14,15,16,35],associ:[6,8,13,14,15,30,37],assum:[0,6,8,13,17,25,38],ast871:0,astronomi:0,astrophys:[8,14,15],astropi:[23,25,40],asymptot:6,atom:39,attempt:[3,20,21],au:17,auto:[1,24],autogen_c_logging_cod:[1,9,19],autogener:19,automat:[0,1,9,16,18,19,22,23,29,31,34,35,40],autoviv:2,autovivif:2,autovivificationdict:2,avaibl:[23,40],avail:[0,7,8,9,13,14,15,16,20,22,23,28,40],avoid:[6,7,8],awai:[0,13],ax:19,axessubplot:18,axi:[0,25],b6213f2eb7f94d3196cf966b7b76b9f9:15,b:[22,31],b_1:0,b_2:0,b_3:0,b_4:0,b_inclination1:0,b_inclination2:0,b_inclination3:0,b_inclination4:0,back:[0,2,5],background:19,backward:0,bagb:0,bar:[14,15],barn:0,base:[0,2,3,8,13,14,15,16,20,21,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,43],base_filenam:[16,21],bash:22,basic:[16,31],batch:22,batchmod:0,batchnam:22,bb:0,bbox_inch:19,beasor:0,becaus:[0,2,6,7,8,12,13,14,15,17,19,21,22,23,29,31,32,40],becom:[0,1,2,5,9,14,15,17,20,22],been:[0,2,11,21,22,26,28,30,37],befor:[0,2,5,6,8,13,14,15,16,21,22,23,31,32,40],beg_bss:5,beg_rch:5,beg_symb:5,begin:6,behaviour:[2,6,13,14,15,16,41],behind:19,being:[30,37],belczynski:0,below:[0,4,6,7,8,9,13,14,15,16,22,32],berro:0,bertolami:0,best:[5,21,22],beta:0,beta_reverse_nova:0,beta_reverse_novae_geometri:0,better:[0,2,4,7,16,26,30,31,37,43],between:[0,7,22,32,38],bewar:[16,31,35],beyond:17,bh:[0,5,8],bh_belczynski:[0,5],bh_bh:5,bh_fryer12_delai:0,bh_fryer12_rapid:[0,5],bh_fryer12_startrack:0,bh_hurley2002:0,bh_prescript:[0,5],bh_spera2015:0,bhbh:5,big:[0,22],bin:[0,8,13,14,15,20,22,23,38,40],bin_data:[8,13,14,15,20],binari:[4,7,8,12,14,15,22,23,25,32,35,40,43],binary_c2:[23,40],binary_c:[1,2,3,4,6,8,13,14,15,17,20,21,22,25,29,31,32,35,39,41],binary_c_api_funct:9,binary_c_cal:[16,31],binary_c_default:16,binary_c_grid:[6,8,13,16],binary_c_grid_25014bc73b334765a1c09a4e4a97ed66:13,binary_c_grid_26171201413c43f5b91552a374879940:6,binary_c_grid_2b66f805db424c48a1d29c45092b6e3c:8,binary_c_grid_8a7d52edc59346ce991063d9e05e9ba7:6,binary_c_grid_ce756bb317f64099a459bf8b55a746ac:16,binary_c_grid_f4e5925effeb42e69b5be956f400ae41:6,binary_c_inline_config:1,binary_c_log_cod:[1,9,12,18,19],binary_c_macro:0,binary_c_output:3,binary_c_paramet:[0,6,13,14,15,16],binary_c_python:[6,7,8,12,13,14,15,16,20],binary_c_python_api:19,binary_c_task_:0,binary_c_write_log_cod:1,binary_grid:0,binary_star:43,binaryc:[1,20,41],binaryc_config:1,binaryc_json_seri:3,binarycdecod:3,binarycencod:3,binarycpython3:7,binarycpython:[1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43],binarygrid:[13,14,15,16],bind:[0,7,9,12,17],binned_log_luminos:[13,14,15],binned_post_period:8,binned_pre_period:8,binwidth:[8,13,14,15,20],birth:0,bit:[6,13],bivari:0,black:[0,4,6,23],black_hol:0,block:[16,35],bloecker:0,blog:1,boltzman:25,boltzmann:0,bondi:0,bondi_hoyle_accretion_factor:0,bool:[2,16,20,21,25,31,34,35,39],born:[0,6,13,14,15],bosswissam:20,both:[0,2,7,13,14,15,16],bottom:[0,16,35],bottomcod:[6,8,16,35],bound:[5,32,38],boundari:32,brake:0,branch:[0,6,20,39],branchcod:[6,8,16,35],branchpoint:[6,8,16,35],breakup:0,brighten:[14,15],broken:0,bse:[0,7,9,16,32],bse_opt:[6,8,13,14,15,16,21,38],bsf:0,buffer:[0,31],build:[0,1,4,7,20,26,32],build_q_tabl:32,built:[0,1,20,23,40],burn:0,busso:0,bye:0,bz2:31,c13_eff:0,c2:32,c:[0,1,5,7,9,12,16,41],c_auto_log:22,c_log:0,c_logging_cod:[6,8,9,12,13,14,15,16,22],cach:[21,22,23,24,28,34,38],cache_dir:[22,38],cachedir:38,cachetool:[22,29],cachetyp:29,calc_e_integr:32,calc_p_integr:32,calc_period_from_sep:43,calc_sep_from_period:[8,13,16,43],calc_total_probden:32,calcul:[0,2,6,8,13,14,15,16,20,22,28,32,35,43],calculate_constants_three_part_powerlaw:32,call:[0,1,2,11,12,14,15,16,17,20,21,22,25,26,30,31,33,35,37,38,39,41],call_binary_c_config:20,calls_filenam:16,can:[0,1,2,5,6,7,8,9,11,12,13,14,15,16,18,19,20,21,22,23,25,26,31,32,35,40,41,43],candid:8,cannot:[6,9,16,29,31,34],canon:22,cap:0,capit:[13,14,15],capsul:[1,7,20],captur:[0,20],carbon:[0,5,6],carbon_oxygen_white_dwarf:0,care:[6,13,14,15,22],carlo:[0,22],carrasco:0,carri:0,carriag:[20,22],cast:[19,20],catchtim:20,categor:7,categori:[7,16],categoris:20,caught:[12,20,39],caus:[5,13,43],cbdisc:0,cbdisc_albedo:0,cbdisc_alpha:0,cbdisc_eccentricity_pumping_dermin:0,cbdisc_eccentricity_pumping_method:0,cbdisc_eccentricity_pumping_non:0,cbdisc_end_evolution_after_disc:0,cbdisc_fail_ring_inside_separ:0,cbdisc_gamma:0,cbdisc_init_djdm:0,cbdisc_init_dm:0,cbdisc_inner_edge_strip:0,cbdisc_inner_edge_stripping_timescal:0,cbdisc_kappa:0,cbdisc_mass_loss_constant_r:0,cbdisc_mass_loss_fuv_multipli:0,cbdisc_mass_loss_inner_l2_cross_multipli:0,cbdisc_mass_loss_inner_viscous_accretion_method:0,cbdisc_mass_loss_inner_viscous_accretion_method_equ:0,cbdisc_mass_loss_inner_viscous_accretion_method_gerosa_2015:0,cbdisc_mass_loss_inner_viscous_accretion_method_non:0,cbdisc_mass_loss_inner_viscous_accretion_method_young_clarke_2015:0,cbdisc_mass_loss_inner_viscous_angular_momentum_multipli:0,cbdisc_mass_loss_inner_viscous_multipli:0,cbdisc_mass_loss_ism_pressur:0,cbdisc_mass_loss_ism_ram_pressure_multipli:0,cbdisc_mass_loss_xray_multipli:0,cbdisc_max_lifetim:0,cbdisc_minimum_evaporation_timescal:0,cbdisc_minimum_fr:0,cbdisc_minimum_luminos:0,cbdisc_minimum_mass:0,cbdisc_no_wind_if_cbdisc:0,cbdisc_outer_edge_strip:0,cbdisc_outer_edge_stripping_timescal:0,cbdisc_resonance_damp:0,cbdisc_resonance_multipli:0,cbdisc_torquef:0,cbdisc_viscous_l2_coupl:0,cbdisc_viscous_photoevaporative_coupl:0,cbdisc_viscous_photoevaporative_coupling_inst:0,cbdisc_viscous_photoevaporative_coupling_non:0,cbdisc_viscous_photoevaporative_coupling_visc:0,ce756bb317f64099a459bf8b55a746ac:16,ce:[0,8],cee:[0,8],cell:[7,13,14,15,16],cemp:0,cemp_cfe_minimum:0,centr:[8,16,35],central:17,central_object:0,centralis:41,certain:[22,23,40],certainli:22,cf:0,cf_amanda_log:0,cflag:[23,40],chabrier:32,challeng:[14,15],chandrasekhar:0,chandrasekhar_mass:0,chang:[0,1,2,5,6,8,9,13,14,15,16,19,20,21,22,23,34,35,40],chapter:[0,22,24],charact:[20,22,31],cheb:0,check:[0,6,8,13,14,15,16,19,20,21,22,26,30,31,32,34,37,41,43],check_circular:3,check_if_in_shel:20,chemic:[0,38],chen:0,child:20,child_dir:20,choic:[0,25,32],choos:[0,6,8,9,13,19,25,26,31],chose:12,chosen:[13,14,15,16,35],chunk:[30,37],ci:17,circular:[0,5],circumbinari:0,circumstanti:0,cl:3,claei:0,clark:0,clean:[1,6,12,14,15,21],clean_up_custom_logging_fil:21,clear:[14,15,39],clearli:[14,15],clock:20,close:[0,5,8,14,15,17,31],closedir:31,closefd:31,closer:5,cloud:0,clusterid:[22,30],cmdline_str:33,co2:[14,15],co:[0,5],coalesc:5,code:[0,1,6,8,9,12,13,14,15,16,18,19,21,23,25,30,31,32,34,35,37,38,40,41,43],collaps:0,collapsar:0,collect:43,collid:43,color:[20,25],color_by_index:25,colour:0,colour_log:0,column:[6,8,12,16,17,19,25],column_nam:12,com:[1,20,32],combin:[1,2,9,20,21,22],combine_ensemble_with_thread_join:22,combined_output_dict:36,come:[2,23,38,40],comenv:[5,8],comenv_bs:0,comenv_count:8,comenv_disc_angmom_fract:0,comenv_disc_mass_fract:0,comenv_ejection_spin_method:0,comenv_ejection_spin_method_do_noth:0,comenv_ejection_spin_method_sychron:0,comenv_ejection_spin_method_synchron:0,comenv_merger_spin_method:0,comenv_merger_spin_method_breakup:0,comenv_merger_spin_method_conserve_angmom:0,comenv_merger_spin_method_conserve_omega:0,comenv_merger_spin_method_specif:0,comenv_ms_accret:0,comenv_ms_accretion_fract:0,comenv_ms_accretion_mass:0,comenv_nandez2016:0,comenv_nelemans_tout:0,comenv_ns_accret:0,comenv_ns_accretion_fract:0,comenv_ns_accretion_mass:0,comenv_post_eccentr:0,comenv_prescript:0,comenv_splitmass:0,comenv_undef:0,comma:38,command:[0,1,16,20,21,22,23,31,40],command_lin:22,command_string_from_list:20,commandlin:16,comment:[16,26,30,37],common:[0,4,5,6,9,12,13,14,15,16,23],compact:[8,16],companion:[0,5,19,31],compar:[0,8,13,16,22],compens:[14,15],compil:[1,9,16,19,23,40],compile_shared_lib:1,complaint:31,complet:[6,8,13,14,15,16],complex:[2,8,9,18,19,22],compon:[20,25],compress:[3,31],compress_pickl:31,compression_typ:31,compresslevel:31,comput:[0,6,13,14,15],concaten:2,conceptu:13,concurr:22,condit:[6,8,9,13,14,15,16,18,19,35],condor:[22,23,24,26],condor_bash:22,condor_batchnam:22,condor_check_requir:30,condor_clusterid:[22,30],condor_d:22,condor_dir:[22,26,30,37],condor_env:22,condor_extra_set:22,condor_getenv:22,condor_grid:30,condor_initial_dir:22,condor_kill_sig:22,condor_memori:22,condor_njob:22,condor_outfil:30,condor_postpone_join:22,condor_postpone_submit:22,condor_process:[22,30],condor_pwd:22,condor_q:22,condor_queue_stat:30,condor_requir:22,condor_should_transfer_fil:22,condor_snapshot_on_kil:22,condor_status_fil:30,condor_stream_error:22,condor_stream_output:22,condor_submit:22,condor_univers:22,condor_warn_max_memori:22,condor_when_to_transfer_output:22,condorid:30,condorpath:30,config:[1,20,22,23,40],config_fil:1,configur:[6,11,12,13,14,15,16,19,22,27,32],confirm:31,conjunct:11,conserv:0,consid:[0,1,2,13,14,15,21,22,25,33,34,38],const_distribut:32,const_dt:38,const_dt_cach:38,const_int:38,const_linear:[16,35,38],const_rang:38,constant:[0,2,14,15,25,32,38],construct:[0,1,6,8,12,13,14,15,17,19,22],contact:5,contain:[0,1,2,3,7,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],content:[2,3,7,20,21,26],context:20,continu:[16,30,35,37],contribut:[23,40],control:[0,6,13,14,15,16,22],conv_time_unit:20,convect:0,conveni:20,converg:0,convers:2,convert:[2,3,6,8,17,20,21,31,32,38],convert_byt:20,convert_float_kei:3,convfloat:20,convfrac:5,cool:[0,6],copi:[0,8,14,15,22,43],core:[0,6,8,13,14,15,16,22,25],core_co:9,core_h:9,core_helium_burn:0,core_mass:[0,9],correct:[0,12,21,25,32,33,43],correctli:[12,19,23,40],correspon:[30,37],correspond:[16,25,30,35,37],corretor:0,cosmic:32,cosmic_sfh_madau_dickinson2014:32,cost:[13,14,15],could:[0,3,14,15,16,19,20,39],count:[2,5,6,19,20,22],count_keys_recurs:2,counter:22,coupl:[0,4],cours:[6,25],cover:[11,13,14,15],coverag:[23,40],cowd:0,cpu:[0,6,8,13,14,15,16,22,28],cpu_tim:28,cpython:7,crap_paramet:0,creat:[3,6,8,9,12,13,14,15,16,20,21,28,31,32,35,37],create_and_load_logging_funct:[1,9,19],create_arg_str:20,create_hdf5:20,creation:7,critic:0,cross:0,crunch:[6,8,13,14,15],cs1:17,ctype:1,cube:13,cubic:13,cuntz:0,current:[0,2,8,9,11,13,14,15,20,23,26,31,40],curv:[8,14,15],custom:[0,1,2,3,4,6,7,8,12,13,14,15,16,20,21,22,23,25,32,41],custom_format:[2,20],custom_gener:22,custom_log:[12,19,21,22],custom_logging_cod:[1,9,12,16,18,19,41],custom_logging_func_memaddr:[7,9,22],custom_logging_funct:[9,12,16,18,19,22,23,24],custom_logging_info:21,custom_logging_memaddr:9,custom_logging_print_stat:12,custom_logging_stat:[6,8,13,14,15],custom_opt:[6,12,13,14,15,16,21,31],custom_output_funct:9,custom_sort_dict:2,custom_tmp_dir:1,customis:25,cut:19,cvode:0,d48r:19,d:[0,1,5,6,8,9,12,13,16,17,20,38],d_:20,dai:[0,5,8,9,12,13,16,19,32,43],damp:0,darwin:0,dat:[0,16,20],data:[0,3,5,6,7,8,12,13,14,15,16,17,19,20,22,26,27,31,32,35,41,43],data_dict:32,data_dir:[16,20,21,22,31],datadir:[16,31],datafram:[6,8,12,13,14,15,17,18,19,25],dataio:[16,21,23,24],datalinedict:[6,8,13,14,15,20],datamodel:2,dataset:[16,22,26,27],date:[20,21,22],david:[0,2,7,12,16,19,23,40],david_logging_funct:0,db09898b6:0,dd7:0,de:[0,5],deactiv:0,deal:[3,12],dear:5,death:0,debug:[0,5,6,8,13,14,15,16,22,33],decai:0,decid:[0,2,9,18,19,20,21,22,26],decod:3,decompress:3,decreas:0,deepcopi:8,deeper:[16,35],def:[5,6,8,12,13,14,15,16,19],default_cache_dir:[29,34],default_to_metal:[0,7],defaultdict:20,defer:0,defin:[0,1,16,17,21,25,32,35],definit:[1,13,14,15,43],degener:0,degenerate_core_helium_merger_ignit:0,degenerate_core_merger_dredgeup_fract:0,degenerate_core_merger_nucsyn:0,degner:0,degre:0,del:8,delai:[0,22],delet:[29,35],delete_grid_vari:35,delta:[20,38],delta_mcmin:0,demonstr:8,den:0,densiti:[13,14,15,32],depend:[0,6,20,22,23,25,32,40],deprec:[0,21],depth:38,dermin:0,describ:[0,19,22,32],descript:[0,7,11,20,22,27,32,34],design:[2,25],desir:0,destruct:[16,35],detail:[0,6,12,20,22],detect:[0,5,8,17],detector:5,determin:[0,7,9,13,14,15,16,21,32,35,43],deton:0,dev:0,develop:1,development_requir:[23,40],deviat:[32,38],dewi:0,dex:[0,8,38],df2:19,df:[17,18,19,25],di:[16,23,27,32],diagnost:22,diagram:[0,4,23,25],dickonson:32,dict2:2,dict:[1,3,5,6,12,13,14,15,16,17,20,21,22,23,24,26,27,29,31,32,34,39,42],dict_1:2,dict_2:2,dict_kei:[6,11,12],dictionari:[1,2,3,4,6,8,13,14,15,16,20,21,22,25,27,28,31,32,34,35,39,42],did:[20,23,40],differ:[0,6,7,8,13,14,15,16,19,20,22,23,25,38,40],differenti:20,dimmer:[0,13],dir:[23,30,40],dir_ok:31,direct:[0,21],directli:[2,12,22,26,31],director:22,directori:[0,4,16,20,21,22,23,26,29,30,31,34,37,40],disabl:[0,16],disable_debug:0,disable_end_log:0,disable_ev:0,disc:[0,17],disc_legacy_log:0,disc_log2d:0,disc_log:0,disc_log_directori:0,disc_log_dt:0,disc_log_level_non:0,disc_log_level_norm:0,disc_log_level_normal_first_disc_onli:0,disc_log_level_subtimestep:0,disc_log_level_subtimestep_first_disc_onli:0,disc_n_monte_carlo_guess:0,disc_stripping_timescale_infinit:0,disc_stripping_timescale_inst:0,disc_stripping_timescale_orbit:0,disc_stripping_timescale_visc:0,disc_timestep_factor:0,discret:16,discs_circumbinary_from_comenv:0,discs_circumbinary_from_wind:0,disk:[0,21],dispers:[0,38],displai:[0,6,8,17],disrupt:[0,5,19],dist:20,distanc:[6,17],distant:17,distefano2017:22,distefano:[26,27,32],distinct:21,distrefano:27,distribut:[0,2,4,8,13,16,20,26,27,32,38],distribution_funct:[6,8,13,14,15,16,21,23,24],divid:2,dj:0,dlnm1:[8,13,16],dlnm:[14,15],dlnm_1:[14,15,16,35],dlog10per:[8,13,16],dlogp:32,dlogt:38,dm1:[6,14,15],dm:[0,5,14,15,32,38],dm_1:[6,14,15],dn:[20,32],do_analyt:22,do_dry_run:22,doc:[2,6,13,14,15,16,20,23,34,40],doc_fetch:32,docstr:[12,23,25,40],document:[13,14,15,16,22,24,31,34],doe:[0,2,6,7,9,11,12,13,14,15,16,21,22,29,31,32,35,43],doesn:[6,22],doesnt:[19,34],don:[2,6,20,22,26],done:[0,2,5,6,13,14,15,16,19,22,23,31,40],donor:[0,5,43],donor_limit_dynamical_multipli:0,donor_limit_envelope_multipli:0,donor_limit_thermal_multipli:0,donor_rate_algorithm_bs:0,donor_rate_algorithm_claeys2014:0,dont:[7,19],doubl:[6,9,16,20],down:16,dp:32,dphasevol:[6,8,13,14,15,16,35],dprob:[6,8,14,15],dq:[8,13,16],dr2:0,dr3:0,drai:0,dredg:0,drop:12,dry:[6,8,13,15,16,22,35],dry_parallel:[16,35],dry_run:[6,8,13,16],dry_run_hook:22,dry_run_num_cor:22,dstep:32,dt:[0,1,20,29,38],dt_limit:11,dtfac:0,dtlimit:39,dtm:[1,9,16],dtype:[17,18,19],due:[23,40],dummi:[22,25,32],dump:[0,3,12,21,31],dumpvers:0,duquennoi:32,duquennoy1991:32,dure:[0,5,19],dust:0,dwarf:[0,6,14,15],dx:0,dynam:0,e2:0,e2_hurley_2002:0,e2_izzard:0,e2_mint:0,e2_prescript:0,e:[0,2,5,6,7,8,9,12,13,14,15,16,20,21,22,23,26,29,30,31,32,35,37,38,40,43],each:[0,2,8,13,14,15,16,17,20,22,26,35,38],eagb:[0,5],eagb_wind_beasor_etal_2020:0,eagb_wind_bs:0,eagb_wind_goldman_etal_2017:0,eagbwind:0,eagbwindfac:0,earli:0,early_asymptotic_giant_branch:0,earth:17,easi:[3,12],easier:[16,19,20],ebindi:5,ecc2:32,ecc3:32,ecc:[5,12,16,19,31,32],eccentr:[0,7,9,12,13,14,15,16,17,19,25,32,43],eccentric_rlof_model:0,eccentricity_quadrupl:0,eccentricity_tripl:0,echo:0,eddington:0,edg:[0,6,16,35],edit:9,edu:0,eej:5,eff:6,effect:[0,5,7,9,13,22,32],effective_metal:[0,7,19],effici:[0,6,8],egg:[23,40],eggleton:[0,43],either:[0,2,3,13,14,15,16,19,21,22,23,35,39,40,41],eject:[0,8,17],el:[12,16],elabor:9,elaps:28,eld:0,eldridg:0,electon:0,electron:0,element:[0,1,11,17,22,25,39],els:[2,5,8,20,22],email:39,emp:0,emp_feh_maximum:0,emp_logg_maximum:0,emp_minimum_ag:0,empti:[2,12,30,34,37],enabl:[0,7],encod:[3,16,31],encount:22,end:[0,5,20,22,28,32],end_bss:5,end_index:32,end_rch:5,end_symb:5,end_timestamp:[6,8,13,15,16],energi:0,enhanc:0,enlarg:0,enough:32,ensembl:[0,7,11,22,23,24,31,35,36,39],ensemble_compress:3,ensemble_def:0,ensemble_dictionari:3,ensemble_dt:0,ensemble_factor_in_probability_weighted_mass:22,ensemble_file_typ:3,ensemble_filt:11,ensemble_filter_:0,ensemble_filters_off:0,ensemble_json:3,ensemble_legacy_ensembl:0,ensemble_list:21,ensemble_logdt:0,ensemble_logtim:0,ensemble_macro:0,ensemble_output_:22,ensemble_set:3,ensemble_startlogtim:0,ensemebl:3,ensure_ascii:[3,21,31],enter:[0,22],enthalpi:0,entir:[9,12,18,19],entri:[3,20,21],env:[22,25],envelop:[0,4,5,6,23],environ:22,eorbf:5,eorbi:5,ep:19,epoch:33,equal:[0,2,14,15,16,20],equat:0,equation_of_state_algorithm:0,equation_of_state_paczynski:0,equatori:0,equival:[13,22,26],errno:[23,40],error:[0,2,6,8,13,14,15,20,22,23,26,31,40],error_on_overwit:26,error_on_overwrit:26,errors_exceed:[6,8,13,15,16],errors_found:[6,8,13,15,16],esa:32,escap:0,escape_fract:0,escape_veloc:0,estim:[6,17,20,22],et:[0,32,43],eta:[0,8,13],etal:0,etc:[0,7,12,14,15,16,20,21,22,23,25,31,32,40,41],etf:[8,13],euler:0,evalu:[16,32,35,38,43],evan:0,evapor:0,evaporate_escaped_orbiting_object:0,even:[3,11,14,15],event:[0,5,6],everi:[0,8,20,22,23,40],everyth:[12,16,21,22],everytim:[23,40],evid:0,evolut:[0,1,4,5,6,7,12,13,14,15,16,19,22,23,25,38],evolution_split:0,evolution_splitting_maxdepth:0,evolution_splitting_sn_eccentricity_threshold:0,evolution_splitting_sn_n:0,evolution_stop:8,evolution_typ:[6,8,13,15,16,22],evolutionari:[0,12],evolv:[0,4,7,9,21,22],evolve_popul:16,evolve_singl:[9,12,21],exact:[1,2,22],exactli:[0,14,15],exampl:[1,2,12,20,32,35,38,41],example_compact_object:16,example_dco:16,example_df:12,example_head:20,example_header_1:19,example_header_2:19,example_log:41,example_log_co:[1,9],example_logging_string_co:9,example_logging_string_post_m:9,example_massloss:[9,12],example_output:12,example_parse_output:[18,20],example_pop:[12,16],example_pop_set:16,example_post_m:9,example_python_population_result:16,example_sn:9,exc_tb:20,exc_typ:20,exc_val:20,exce:[0,13],except:[2,5,6,7,13,14,15,16,22,25,34],excess:22,excit:8,exclud:26,execut:[0,16,22,35],exist:[0,2,6,16,19,22,26,31,34,35],exist_ok:[16,20],exists_ok:31,exit:[0,20,21,22,26,30,31,37],exit_after_dry_run:22,exit_cod:22,exp:[8,13,14,15,16,35],expand:16,expect:[6,7,8,13,14,15,22,23,40],experiment:[0,20],explain:[4,39],explicitli:[0,1],explod:[0,5],explor:17,explos:[0,5,6,19],expoenti:0,expon:[0,20],export_all_info:[16,21],express:[0,20],extend:[0,8,23,39,40],extens:[3,7,23,24],extern:0,extra:[0,4,16,22,23,33,35,41],extra_text:34,extract:[3,16],extract_ensemble_json_from_str:3,extrapol:[22,32],ey:33,f4e5925effeb42e69b5be956f400ae41:6,f:[0,5,12,16,19,32],fa:32,fabian:0,fabian_imf_log:0,fabian_imf_log_tim:0,fabian_imf_log_timestep:0,factor:[0,2,22,38],fade:0,fail:[0,6,8,13,16,20,22,23,31,40],fail_sil:20,failed_count:[6,8,13,15,16],failed_prob:[6,8,13,15,16],failed_system:22,failed_system_log:22,failed_systems_error_cod:[6,8,13,15,16],failed_systems_threshold:22,failsaf:12,failur:[0,20,26],fallback:0,fals:[0,3,5,6,8,13,15,16,17,20,21,22,25,26,28,29,30,31,35,37,38,39],fancy_parsing_funct:41,far:[0,5,6,14,15,17],farmer:0,fase:16,fast:0,faster:[2,13,14,15,16],fatal_open_error:31,favorit:12,fe:0,featur:[2,4,16,23],feb:0,feed:22,ferguson:0,fetch:[11,12],few:[0,8],fewer:12,field:0,fifocach:22,fig:[0,19,32],figsiz:[6,8,13,14,15,17,19],figur:[6,8,13,14,15,17,25],file:[0,1,3,5,7,12,16,20,21,22,23,25,26,29,30,31,34,35,37,39,40,41],file_log:0,file_object:31,filehandl:34,filenam:[0,1,3,5,12,16,20,21,22,26,30,31,37,41],filenotfounderror:[23,40],filepath:1,fill:[12,20],fill_data:32,filter:[0,2,20],filter_arg_dict:20,filter_dict:2,filter_dict_through_valu:2,filter_list:2,filter_valu:20,fin:0,final_mass:19,final_tim:19,find:[2,5,8,16,20,22,29,34],finish:[6,8,13,15,16,20,25,31],finit:[6,8,13,14,15],first:[0,2,6,8,12,13,14,15,16,17,20,23,26,31,32,40,43],first_giant_branch:0,fishlock:0,fit:[0,2,12,32,43],fix:[0,5,12,20,21,25,31,32,33],flag:[0,1,21,22,31,38,39],flash:0,flat:[22,32],flatsect:[8,13,16,32],flaw:21,float64:[18,19],float_overflow_check:0,flto:[23,40],flufl:31,flush:[3,21,31],fo:22,focu:8,fold:32,follow:[0,7,9,16,19,20,22,23,25,32,38,40],font_scal:[6,8,13,14,15,17],fontsiz:19,forc:[0,5,22,28],force_circularization_on_rlof:0,force_corotation_of_primary_and_orbit:0,foreach_star:[6,13],form:[0,6,7,8,13,14,15,16,21,26,31,34,39],formal:0,format:[0,2,3,5,7,8,9,12,13,14,15,16,17,19,20,22,30,31,32,35,38],format_ensemble_result:3,format_numb:20,format_stat:31,former:5,formula:[0,20],forward:0,found:[5,6,8,13,15,16,30,32,37],four:[0,7],fourth:17,fraction:[0,13,19,22,32],fractions_z0002:19,fractions_z001:19,fractions_z002:19,framework:7,free:[6,8,13],free_persistent_data_memaddr_and_return_json_output:7,free_store_memaddr:7,frequenc:[0,17],friction:0,fring:0,from:[0,2,3,5,6,8,11,12,13,14,15,16,17,18,19,20,21,22,25,26,30,31,32,35,37,39,43],from_binary_c_config:1,from_dict:[8,13,14,15,18,19],fryer:0,fsampl:38,ftz:[23,40],full:[4,9,17,20,22,30,37],full_path:20,func:29,func_memaddr:19,function_cach:22,function_cache_default_maxs:22,function_cache_default_typ:22,function_cache_funct:[22,29],function_cache_s:29,function_cache_ttl:22,further:16,futur:17,fuv:0,g:[0,1,2,5,6,8,9,12,13,14,15,16,18,19,20,22,23,26,29,30,31,32,37,38,40],ga:0,gaia:[0,32],gaia_colour_transform_method:0,gaia_conversion_ubvri_bivariate_jordi2010:0,gaia_conversion_ubvri_riello2020:0,gaia_conversion_ubvri_univariate_evans2018:0,gaia_conversion_ubvri_univariate_jordi2010:0,gaia_conversion_ugriz_bivariate_jordi2010:0,gaia_conversion_ugriz_riello2020:0,gaia_conversion_ugriz_univariate_evans2018:0,gaia_conversion_ugriz_univariate_jordi2010:0,gaia_l_binwidth:0,gaia_teff_binwidth:0,galact:[0,38],gallino:0,gamma:0,gap:0,garcia:0,gauss:0,gaussian:[32,38],gaussian_func:32,gaussian_normalizing_const:32,gaussian_zoom:38,gb:0,gb_reimers_eta:0,gb_wind_beasor_etal_2020:0,gb_wind_goldman_etal_2017:0,gb_wind_reim:0,gb_wind_schroeder_cuntz_2005:0,gbwind:0,gbwindfac:0,gcc:[1,23,40],gce:0,gener:[0,1,6,7,8,9,12,13,15,16,18,19,20,21,22,25,26,31,32,34,35,38],general_info:2,generalis:32,geometr:0,geq:6,gerosa:0,get:[0,2,3,4,6,9,12,13,14,15,16,17,19,20,21,23,26,27,30,32,34,35,37,40,41,43],get_ansi_colour:20,get_arg_kei:20,get_condor_statu:30,get_default:[11,20],get_grid_options_defaults_dict:34,get_grid_options_descript:34,get_help:[11,20],get_help_al:[11,20,21],get_help_sup:[11,20],get_integration_constant_q:32,get_max_multipl:32,get_moe_di_stefano_2017_default_opt:27,get_moe_di_stefano_2017_default_options_descript:27,get_moe_di_stefano_dataset:27,get_siz:20,get_slurm_statu:37,get_usernam:20,getitem:2,gettempdir:19,getter:29,giant:[0,6,17],giant_branch:0,git:[0,13,14,15,16,20],git_branch:39,git_build:39,github:[20,31],gitlab:23,give:[0,5,8,20,21,32,43],given:[0,1,3,7,13,14,15,18,19,20,21,22,26,29,30,31,32,35,37,38,41,43],global:[0,2,13,14,15,20,32,38],global_dict:2,gmax:32,gmin:32,gnu:7,go:[0,6,11,13,16,21,23,25,40],goal:32,goe:[0,2,9,12,25],gogo:0,goldman:0,gonna:32,good:[0,12,13,14,15,16,22,43],got:[14,15],gov:0,gravit:[0,6,8,16],gravitational_const:6,gravitational_radiation_bs:0,gravitational_radiation_bse_when_no_rlof:0,gravitational_radiation_landau_lifshitz:0,gravitational_radiation_landau_lifshitz_when_no_rlof:0,gravitational_radiation_model:0,gravitational_radiation_modulator_:0,gravitational_radiation_modulator_j:0,gravitational_radiation_non:0,grb:0,great:[0,14,15,22],greater:0,grevess:0,grid:[0,4,12,20,21,23,26,27,30,31,32,33,34,35,36,37,38,43],grid_cod:21,grid_ensemble_result:[31,36],grid_log:[21,23,24],grid_opt:[6,8,12,13,14,15,16,21,26,29,30,31,35,36,37,38],grid_options_default:[21,23,24,29],grid_options_defaults_dict:34,grid_options_descript:[6,16,34],grid_options_description_check:34,grid_options_help:34,grid_result:[6,8,13,14,15,22],grid_vari:[16,22],grid_variable_numb:[6,8,35],gridcod:[16,21,23,24],gridcode_filenam:22,gridtyp:[6,8,16,35],group:[6,13,17,39],grvitation:5,gsl:[23,40],gsl_dir:[23,40],gt:[5,6,7,8,9,12,14,16,17,18,19],guess:[0,32],gyr:[5,6,8],gz:[16,31],gzip:31,h5py:[23,40],h:[0,5,9,20],ha:[0,1,2,5,6,8,9,11,13,14,15,16,19,20,22,28,31,35],hachisu:0,hachisu_disk_wind:0,hachisu_ignore_qcrit:0,hachisu_qcrit:0,hack:34,had:[6,8,13,14,15,21],half:[0,32],hall:0,handi:0,handl:[0,2,3,4,7,12,20,21,22,26,27,35,36,39,41,43],handle_ensemble_string_to_json:3,happen:[0,6,8],hardcod:[9,13,14,15,16],hardli:39,have:[0,2,3,4,5,6,7,8,9,12,13,14,15,16,19,20,21,22,23,25,26,30,31,34,37,40,41],haven:6,hbb:0,hbbtfac:0,hd:25,hdf5:20,hdf5file:20,he:[0,5],head:[0,17],header:[1,6,8,9,12,13,14,15,16,19,20],headerlin:16,headlin:22,hegb:[0,5],hehg:0,height:[8,13,16,32],held:[30,37],helium:[0,6,7],helium_flash_mass_loss:0,helium_white_dwarf:0,help:[0,5,7,11,12,13,14,15,16,20,34],help_al:0,hem:0,henc:[0,8,14,15,17],hendrik:[0,19,23,40],here:[1,6,7,9,12,13,14,15,17,19,20,21,22,25,32,41],hertzsprung:[0,4,23],hertzsprung_gap:0,hertzstrpung:0,heuvel:0,hewd:0,hewd_hewd_ignition_mass:0,hex:22,hg:0,hi:32,high:[0,14,15,32],higher:[0,6,8,13,14,15,16,20,22,23,32,40],highlight:2,histogram:8,histori:32,hole:[0,4,6,23],home:7,homogen:0,hood:12,hook:22,hopefulli:0,hot:0,hour:20,how:[0,2,5,6,7,8,9,12,13,14,15,16,19,22,28,32,35],howev:[0,9,13,14,15,16],hoyl:0,hpc:[21,22,23,24,30,37],hpc_can_join:26,hpc_check_requir:26,hpc_dir:26,hpc_dump_statu:26,hpc_force_join:22,hpc_get_statu:26,hpc_grid:26,hpc_id_filenam:26,hpc_id_from_dir:26,hpc_job:26,hpc_job_id_rang:26,hpc_job_task:26,hpc_job_typ:26,hpc_jobid:[21,26],hpc_jobid_tupl:26,hpc_join_from_fil:26,hpc_join_previ:26,hpc_joinlist:26,hpc_load_joinfiles_list:26,hpc_make_joiningfil:26,hpc_njob:26,hpc_path:26,hpc_queue_stat:26,hpc_rebuild_joinlist:[22,26],hpc_restor:26,hpc_set_statu:26,hpc_snapshot_filenam:26,hpc_statu:26,hpc_task:26,hpc_touch:26,hr:25,hr_diagram:25,hrd:[0,6,8],hrdiag:0,hrdiag_output:0,htcondor:22,html:[2,6,16,23,31,40],http:[0,1,2,6,16,20,31,32],human:20,hurlei:0,hut:0,hybrid:0,hydro:0,hydrogen:[0,6,7],i:[1,2,5,6,7,8,9,12,13,14,15,16,17,20,21,22,23,26,32,35,39,40,43],ia:[0,8],iadd:2,ib:[0,5],ibc:0,id:[21,22,26,30,31,32,33,37],id_cor:9,idea:[16,25],ident:2,idum:0,ignit:[0,6],ignor:[0,2,9,12,16,19,22,32,35],ii:[0,19],iia:0,iloc:[12,19],images:22,imf:[0,14,15,32],imf_chabrier2003:32,imf_scalo1986:32,imf_scalo1998:32,imf_tinsley1980:32,immedi:[0,6,22],implement:[0,2,22],impli:0,implic:[14,15],impos:[6,8,13,14,15,16],imposs:8,improv:[32,38],inclin:0,inclination1:0,inclination2:0,inclination3:0,inclination4:0,inclini:0,incliniation_quadrupl:0,incliniation_tripl:0,includ:[0,1,2,6,9,12,14,15,16,17,20,21,23,25,31,32,40],include_binary_c_default:[16,21],include_binary_c_help_al:[16,21],include_binary_c_version_info:[16,21],include_default:[16,31],include_popul:16,include_population_set:21,incom:0,increas:[0,5,8,13,14,15],inde:[0,14,15],indent:[2,3,12,21,31],independ:32,index:[0,7,11,12,16,17,22,23,26,32,35],indic:[0,32],individu:[4,13,23],individual_nova:0,induc:0,inertia:0,info:[7,11,16,20,21,23,25,39,40],inform:[0,1,3,4,6,9,12,13,14,15,16,20,21,22,25,26,32,34,36,39],init:21,init_abund:0,init_abund_dex:0,init_abund_mult:0,init_abunds_onli:0,initi:[0,4,5,7,11,12,19,21,32],initial_abundance_hash:21,initial_abundance_mix:0,initial_abunds_onli:0,initial_grid:19,initial_mass:[12,19],initial_tim:19,inlin:19,inner:[0,17],input:[1,2,3,7,11,12,20,21,22,23,25,27,31,32,33,34,41,43],input_dict:2,insert:[16,35],insid:0,inspect:[2,12,25],inspect_dict:2,inspir:[1,25,43],instabl:0,instal:[22,43],install_without_depend:[23,40],instanc:[2,11,12,13,14,15,16,32],instant:0,instantli:0,instead:[0,5,14,15,20,22],integ:[0,6,22,38,43],integr:[13,14,15,32,38],integrals_str:32,intend:16,intens:[14,15],interact:[0,3,5,6,8,17,19,34],interfac:[7,17,20,23,26,40],interfer:[23,40],intermedi:8,intern:[0,7,11,22],internal_buff:0,internal_buffering_off:0,internal_buffering_print:0,internal_buffering_stor:0,interpol:[27,32,38],interpolate_in_mass_izzard2012:32,interpolator_nam:32,intershel:0,interstellar:0,intger:0,intro:0,introduc:5,introduct:6,inv:[5,19],invers:43,invert_xaxi:6,involv:0,inward:0,io:31,ipykernel_216542:17,ipykernel_519112:14,ipynb:[13,14,15,16],is_capsul:20,isfil:16,isfloat:20,isint:20,isn:[14,15,20],isnt:16,isotop:[0,11,39],isotope_hash:21,isotope_list:21,issu:26,item:[1,2,6,8,13,14,15,20],iter:20,its:[0,2,3,13,14,15,16,17,20,22,23,25,26,27,31,34,38,39,40,41],itself:[3,6,9,12,22,23,32,40],iwamoto:0,izzard2012_period_distribut:32,izzard:[0,6,8,13,14,15,23,40],jager:0,jaschek:32,jeff:[23,40],jej:5,jerki:6,jf:5,jia:0,job:[21,22,26,30,37],job_id:26,job_index:26,jobarrayindex:[22,37],jobid:[21,22,37],john:0,join:[7,9,12,16,19,22,26],joinfil:26,joiningfil:26,joinlist:[22,26],jorb_in:5,jorb_out:5,jordi:0,json:[3,7,12,16,21,22,27,31],jsondecod:3,jsonencod:3,jtot_in:5,jupit:17,jupyt:[23,40],just:[0,2,6,7,8,16,19,20,21,22,23,27,31,39,40,43],k1:[5,12,19],k2:[5,12,19],k:[0,6,17,32],kap:0,kappa:0,kaps_rentrop:0,karaka:0,keep:[8,16,31,33],kei:[1,2,3,6,11,12,16,17,19,20,21,22,25,29,31,32,34,35,39],kelvin:0,keplerian:0,keys_to_float:2,keyword:[14,25,41],kick:[0,5,19,22],kick_backward:0,kick_forward:0,kick_inward:0,kick_outward:0,kick_random:0,kick_straight_up:0,kick_velocity_custom:0,kick_velocity_fix:0,kick_velocity_maxwellian:0,kill:[1,9,16,21],kilonova:6,kim:0,kind:[0,7],kippenhahn:0,klencki:0,km:0,know:[0,1,2,7,12,14,15,22,31,34],known:[0,6,12,13,14,15,16,21,32,41],kroupa2001:[16,32,35],kroupa:[14,15,32],krticka:0,ktg93:32,kwarg:[19,21,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,41],l1:5,l2:0,l:[0,6,13,14,15],l_:[13,14,15],label:[6,19,32],lambda:[0,5,8],lambda_:8,lambda_c:[0,5,8],lambda_ce_dewi_tauri:0,lambda_ce_klencki_2020:0,lambda_ce_polytrop:0,lambda_ce_wang_2016:0,lambda_enthalpi:0,lambda_ion:5,lambda_ionis:0,lambda_min:0,lambda_mult:0,lambda_multipli:0,lambda_v:32,lamer:0,landau:0,langer:0,languag:6,larger:[0,6],last:[4,14,17,19,20,32],last_st:19,last_stellar_type_change_time_1:19,lastli:[7,12],late:19,later:[13,14,15,22],latest0:[6,8,13],latest1:[6,8,13],latest2:[6,16],latest3:6,latest4:6,latest5:6,latest:[23,40],latter:0,launch:[22,30,37],law:[14,15,32],law_const:32,lbv:0,ld_library_path:[23,40],ldist:[14,15],lead:[0,6,13,14,15,16,31,32,43],learn:[9,22],least:[23,40],leav:[0,22],left:0,legaci:0,legacy_yield:0,legend:[17,19],len:[5,6,12,16,19],length:[5,20],lengthen:0,leq:6,less:[0,1,4,5,31,32],let:[5,8,12,13,14,15,16,17,21],level:[1,6,20,33],lfucach:22,li7:0,li:0,lib:[7,12,18,19,23,40],libbinary_c:22,libcustom_logging_34a350b8f15c4d149deab88632948c99:12,libcustom_logging_446fe4cddfa94946bcafd55591ef3730:12,libgsl:[23,40],libmemo:[23,40],librari:[0,1,6,9,19,21,22,41],library_path:[23,40],librinterpol:[23,40],life:8,lifetim:[0,8,13,14,15,16,38],lifshitz:0,like:[0,1,6,7,8,13,14,15,16,19,20,22,23,25,31,38,40],limit:[0,6,7,8,13,14,15,16,22,25],line:[1,5,6,8,9,12,13,14,15,16,17,18,20,21,22,23,25,31,38,40],linear2:22,linear:[0,13,14,15,22,32,38],linear_extrapolation_q:32,linearli:[14,15,38],linedata:[6,8,13,14,15],lineplot:[6,8,13,14,15,17],linewidth:[6,8,13,14,15,17],linker:1,linspac:38,linux:7,list:[0,1,2,3,6,8,12,13,14,15,16,17,20,22,26,29,32,35,38,41],list_arg:0,list_of_sub_kei:2,lit:0,lithium:0,lithium_gb_post_1dup:0,lithium_gb_post_heflash:0,lithium_hbb_multipli:0,lithium_t:0,littl:[5,6,8,13,16,17,29],littleton:0,liu:0,ll:[2,9,11,14,15,17,31],llnl:0,ln:32,lnm1:[8,13,14,15,16],lnm_1:[14,15,16,35],load:[0,1,3,6,8,9,12,13,14,15,16,19,20,21,22,25,26,27,31,35],load_ensembl:3,load_logfil:20,load_population_object:31,load_snapshot:31,lobe:[0,5,8,43],loc:17,local:[22,32],local_count:2,locat:[0,22,23,32,38,40],lock:[5,31],lock_lifetim:31,lock_object:31,lock_suffix:31,lock_timeout:31,locked_clos:31,locked_open_for_writ:31,lockfil:31,lodder:0,log10:[0,6,8,13,14,15,16,32,38],log10m1:22,log10mass:38,log10p:32,log10per:[8,13,16],log10pmin:32,log:[0,1,4,5,7,12,17,18,20,22,23,25,31,32,33,35,38,40,41,43],log_:[6,8,13,14,15],log_arg:22,log_args_dir:22,log_arrow:0,log_dt:[8,22],log_every_timestep:[9,12],log_fil:[5,22],log_filenam:[0,5,12,19,41],log_newlin:22,log_runtime_system:22,logarithm:[14,15,32,38],logensembletim:0,logfil:[12,20,23,40],logg:[0,6],logger:16,logging_dict:1,logging_lin:[9,18,19],loggrav:6,logi:18,logic:[1,2,9,21,22],logl:6,logmass:[32,38],logp:32,logper:[8,32],logperiod:32,logperrang:[8,13],logspac:38,logteff:6,long_spectral_typ:32,longer:[0,6,8],longnam:[6,8,13,14,15,16,35],look:[1,3,6,8,13,14,15,16,19,23,32,40],lookback:0,loon:0,loop:[6,8,12,13,14,15,16,31,35],loos:25,lose:[0,19],loss:[0,5,7,12,13,17],lost:[0,8,19],lot:[6,13,14,15,16,17,22,39,41],lovegrov:0,low:[0,6,8,14,15,32],low_mass_m:0,low_mass_main_sequ:0,lower:[0,13,16,32,35,38],lowest:32,lru:29,lru_:29,lrucach:22,lsoda:0,lsun:[0,25],lt:[6,7,8,12,14,16,17,18],lucianopaz:31,lugaro:0,luminos:[0,4,6,23,25],luminosity_1:25,luminosity_2:25,luminosu:6,lw:0,lynnett:0,m01:5,m0:32,m1:[0,5,8,9,12,13,14,15,16,19,31,32,43],m2:[5,8,9,12,13,16,19,31,32,43],m3:32,m4:32,m:[0,5,6,8,13,14,15,17,19,20,32,43],m_1:[0,5,6,7,8,9,11,12,13,14,15,16,17,18,19,35,41],m_2:[0,5,6,7,8,9,12,13,16,18,19],m_3:[0,7],m_4:[0,7],m_:19,m_max:[16,32,35],m_min:[16,35],m_sun:6,maccretor:[0,5],machin:[8,22,23,40],macro:[0,11,20,39],madau:32,made:[6,23,26,40],maeder:0,magellan:0,magnet:0,magnetic_braking_algorithm:0,magnetic_braking_algorithm_andronov_2003:0,magnetic_braking_algorithm_barnes_2010:0,magnetic_braking_algorithm_hurley_2002:0,magnetic_braking_algorithm_rappaport_1983:0,magnetic_braking_factor:0,magnetic_braking_gamma:0,magnitud:20,mai:[0,8,13,31],main:[0,1,6,7,9,13,14,15,16,19,22,23,40],main_sequ:[0,13,14,15,19],mainprocess:[6,8,13],major:0,make:[0,1,2,3,5,6,8,12,13,14,15,16,17,19,20,21,22,23,25,26,30,31,32,40,41,43],make_analytics_dict:28,make_build_text:20,make_condor_dir:30,make_slurm_dir:37,makedir:[16,20],makejoiningfil:26,manag:[20,23,40],mani:[0,6,7,8,11,13,14,15,16,22,30],manual:[9,22],manufactur:0,map:22,mar:17,maria:0,mass:[0,1,2,4,5,6,7,8,11,12,13,16,17,19,20,22,25,32,35,38,39,41,43],mass_1:[16,19,25],mass_2:[16,19,25],mass_accretion_for_eld:0,mass_accretor:43,mass_donor:43,mass_evolut:25,mass_for_hestar_ia_low:0,mass_for_hestar_ia_upp:0,mass_loss_m:19,mass_lost:19,mass_of_pmz:0,mass_rang:19,mass_str:32,massiv:[0,4,5,6,8,13,17,23,32],massless:0,massless_remn:0,massloss:0,massrang:[6,8,13,14,15],master:[22,25],match:[0,2,6,12,13,16,17,22,25,29],materi:[0,6],math:[6,8,13,14,15,16,17,35,38],mathieu:32,mathrm:[6,8,13,14,15],matplotlib:[6,8,14,15,17,19,23,25,40],matter:[0,7],mattsson:0,mattsson_mass_loss:0,mattsson_orich_tpagbwind:0,max:[0,8,9,13,14,15,16,22,32],max_bound:[32,38],max_column:[6,8,17],max_evolution_tim:[0,1,6,7,8,9,12,13,14,15,16,17,19,38],max_hewd_mass:0,max_logp:32,max_model_numb:0,max_multipl:32,max_neutron_star_mass:0,max_queue_s:22,max_row:[6,8,17],max_stellar_angmom_chang:0,max_stellar_type_1:0,max_stellar_type_2:0,max_stellar_type_3:0,max_stellar_type_4:0,max_tim:[5,12,19],max_val:32,maxcount:5,maxdm:38,maximum:[0,6,7,8,9,13,14,15,16,22,32,38,43],maximum_mass_ratio_for_instant_rlof:0,maximum_mass_ratio_for_rlof:43,maximum_mcbagb_for_degenerate_carbon_ignit:0,maximum_nuclear_burning_timestep:0,maximum_timestep:0,maximum_timestep_factor:0,maxmimum:0,maxsiz:22,maxwellian:0,mayb:25,mayor:32,mb:[6,8,13,15,16,20,22],mc13_pocket_multipli:0,mc1:5,mc:[0,5,16,19,31],mch:0,mcmin:0,mdonor:[0,5],mean:[0,5,20,22,23,30,32,37,38,40],meant:22,measur:20,medium:0,mega:32,megabyt:22,mem:[8,13],mem_us:20,memaddr:[7,9],memori:[1,6,7,8,9,13,15,16,19,20,21,22,31,43],menv:[0,5],mer:5,mercuri:17,merg:[0,2,5,6,8,22,26,31,32,33],merge_dict:[2,11],merge_multipl:32,merge_popul:31,merge_populations_from_fil:31,merger:[0,5],merger_angular_momentum_factor:0,merger_mass_loss_fract:0,mesa:[23,40],mesasdk_init:[23,40],mesasdk_root:[23,40],mess:17,messag:[20,21],messi:6,mestel:0,met:[16,21,26,35],metadata:[16,21,23,24,35],metal:[0,5,6,7,8,9,12,13,14,15,16,17,18,19,32,43],metallicity_0002:19,metallicity_001:19,metallicity_002:19,method:[0,9,11,12,13,14,15,16,19,21,22,27,31,33,34,35,39],meynet:0,mf1:5,mf2:5,might:[2,3,8,13,16,17,20,22,23,31,40],milki:0,miller:0,min:[8,9,13,14,15,16,32],min_bound:[32,38],min_logp:32,min_per:32,min_val:32,mind:19,mindm:38,minimal_verbos:20,minimum:[0,7,20,22,32,38,39,43],minimum_co_core_mass_for_carbon_ignit:0,minimum_co_core_mass_for_neon_ignit:0,minimum_donor_menv_for_comenv:0,minimum_envelope_mass_for_third_dredgeup:0,minimum_helium_ignition_core_mass:0,minimum_mcbagb_for_nondegenerate_carbon_ignit:0,minimum_orbital_period_for_instant_rlof:0,minimum_period_for_rlof:43,minimum_separation_for_instant_rlof:0,minimum_separation_for_rlof:43,minimum_stellar_mass:39,minimum_time_between_pn:0,minimum_timestep:0,mint:0,mint_data_cleanup:0,mint_dir:0,mint_disable_grid_load_warn:0,mint_fallback_to_test_data:0,mint_hard_max_nshel:0,mint_hard_min_nshel:0,mint_kippenhahn:0,mint_kippenhahn_companion_stellar_typ:0,mint_kippenhahn_stellar_typ:0,mint_maximum_nshel:0,mint_maximum_shell_mass:0,mint_metal:0,mint_minimum_nshel:0,mint_minimum_shell_mass:0,mint_ms_rejuven:0,mint_nshel:0,mint_nuclear_burn:0,mint_remesh:0,mint_use_zams_profil:0,minut:[8,20],mira:0,misc:23,miscellan:[11,39],miss:[0,13,14,15,20,34],mistak:22,mix:[0,2,22],mixtur:[0,13],mmax:[14,15,32,38],mmin:[14,15,22,32,38],mnra:43,mode:31,model:[0,1,6,8,9,12,13,14,15,16,17,18,19,22],model_numb:[13,14,15],modif:4,modifi:[0,2,9,23,40],modul:[0,7,8,11,13,14,15,16,17,22,24],modulo:22,moe2017_opt:22,moe:[16,23,26,27,32],moe_di_stefano_2017:[21,23,24],moe_di_stefano_2017_multiplicity_fract:32,moe_di_stefano_2017_pdf:32,moment:[0,6,9,16,19,38],momenta:[0,25],momentum:[0,17],monoton:[14,15],mont:[0,22],monte_carlo_kick:0,more:[0,1,3,4,5,6,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,25,38,40],most:[6,7,8,14,15,17,20],mostli:[6,8,13,14,15,16,19,20,22,25,34,41],mount:31,move:[0,6],mrucach:22,ms:[0,5,9,13],msgpack:31,mstart:5,msun:[0,6,9,12,13,14,15,17,19,32,38,39],mu:0,much:[0,6,8,13,16,19,20,28],multipl:[0,2,6,22,32],multiplc:0,multipli:[0,2,14,15,22,38],multiplicity_arrai:32,multiplicity_fraction_funct:22,multiplicity_model:22,multiplicity_modul:22,multiplied_dict:2,multiply_float_valu:2,multiply_values_dict:[2,11],multiprocess:22,must:[0,2,6,7,8,12,13,14,15,16,17,31,35,38],mw:0,my:12,my_stellar_data:[1,9,16,18,19],myr:[0,6,8,12,13,14,15,17,38],n100:0,n100_z0:0,n100h:0,n100l:0,n10:0,n150:0,n1600:0,n1600c:0,n1:0,n200:0,n20:0,n300c:0,n3:0,n40:0,n5:0,n:[0,1,5,6,7,8,9,12,13,14,15,16,18,19,20,22,26,32],n_logging_stat:22,naked_helium_star_giant_branch:0,naked_helium_star_hertzsprung_gap:0,naked_main_sequence_helium_star:0,name:[1,2,5,6,7,8,13,14,15,16,17,19,20,22,30,31,34,35,41,42],nameerror:17,narrow:[14,15],natur:[0,14,15],nauenberg:0,nazehdin:0,nb:0,nbinary_c:19,ncol:19,nearer:0,nearest:[8,13,14,15],nebula:0,necessari:[8,16,17,19,20,21,37],need:[0,2,7,9,12,13,14,15,16,17,19,22,23,26,32,40,43],neg:[0,2,38],neither:[0,21],neleman:0,nelemans_gamma:0,nelemans_max_frac_j_chang:0,nelemans_minq:0,nelemans_n_comenv:0,nelemans_recalc_eccentr:0,nemp:0,nemp_cfe_minimum:0,nemp_nfe_minimum:0,nenamg:0,neon:[0,6],neptun:17,nest:[2,16,35,39],network:[0,11],neutrn:0,neutron:[0,6,16],neutron_star:0,never:[0,6,14,15,22,29],new_dict:2,newdict:2,newer:[0,2],newli:0,newlin:[20,22,31,33],newnam:35,newobj:26,newopt:[2,32],newpop:31,newton:0,next:[13,14,15,16,20],nf:[22,31],nfs_flush_hack:31,nfspath:31,nice:[21,25],nieuwenhuijzen:0,nieuwenhuijzen_windfac:0,nine:6,nmax:32,no_thermohaline_mix:0,nocach:22,node:22,noecho:0,noechonow:0,noel:0,nolowq:22,nomin:0,non:[0,2,14,15,22,31],nonconservative_angmom_gamma:0,none:[0,1,2,3,5,6,7,8,13,15,16,17,19,20,21,22,26,27,29,30,31,32,34,35,37,38,43],nonetyp:2,nonzero:22,nor:0,norm:22,normal:[0,2,21,26,38,39],normalis:[2,22,32],normalize_dict:2,normalize_multipl:22,normalized_dict:2,nospac:20,notabl:16,notat:20,note:[0,5,6,13,14,15,16,19,20,22,26,31,35,38,39],notebook:[5,6,7,8,9,11,12,13,14,15,16,17,23,40],notebook_api_funct:12,notebook_bhbh:5,notebook_comenv:8,notebook_custom_log:[12,13,14,15,16],notebook_hrd:6,notebook_individual_system:[9,12,13,14,15,16],notebook_luminos:[14,15],notebook_luminosity_funct:13,notebook_luminosity_function_binari:[14,15],notebook_popul:[12,16],notebook_solar_system:17,noteworthi:4,noth:[2,22,26,27,31],notic:[14,15],notifi:41,nov:19,nova:[0,6,8],nova_faml_multipli:0,nova_irradiation_multipli:0,nova_retention_algorithm_claeys2014:0,nova_retention_algorithm_const:0,nova_retention_algorithm_hillman2015:0,nova_retention_fract:0,nova_retention_method:0,nova_timestep_accelerator_index:0,nova_timestep_accelerator_max:0,nova_timestep_accelerator_num:0,now:[0,2,5,6,8,9,12,13,14,15,16,17,19,20,26,32,33],now_object:20,np:[12,18,19,38],nre:[13,38],nrow:19,ns:[0,1,8,9,16],nsep:8,nsep_max:8,nsep_min:8,nstar:[6,13],nuclear:0,nuclear_mass_hash:21,nuclear_mass_list:21,nucleosynthesi:[0,39],nucleosynthesis_sourc:[11,39],nucreacmult:0,nucsyn:23,nucsyn_angelou_lithium:0,nucsyn_gce_outflow_check:0,nucsyn_hbb:0,nucsyn_metal:[0,7],nucsyn_network:0,nucsyn_network_error:0,nucsyn_s_process:0,nucsyn_solv:0,nucsyn_third_dredge_up:0,nugi:0,nullcach:[22,29],num_ansi_colour:0,num_cor:[6,8,13,14,15,16,22],num_cores_avail:22,number:[0,2,3,5,6,8,13,14,15,16,17,19,20,21,22,23,26,31,32,33,34,35,38,40],numer:2,numpi:[12,16,18,19,20,23,35,38,40],o:[3,20,23,32],obj:[3,20],object:[0,2,3,4,7,11,17,20,21,22,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,41],object_hook:3,object_pairs_hook:3,object_parse_funct:12,observ:[13,14,15],obtain:[0,6,8,13,14,15,31],obvious:9,occur:[0,43],odot:[6,8,19],off:[0,5,16,19,22],off_m:[5,12,19],offset:0,oh:5,ohio:0,ok:[16,26,31],old:[14,15,22,35],oldnam:35,omega:[0,5,19],on_exit_or_evict:22,onc:[0,38],one:[0,2,7,11,14,15,16,17,18,19,22,25,29,31,34,38,41],onewd:0,onli:[0,2,6,9,13,14,15,16,17,19,20,22,26,27,31,38,43],onset:0,onto:[0,32],oop:5,opac:0,opacity_algorithm:0,opacity_algorithm_ferguson_op:0,opacity_algorithm_paczynski:0,opacity_algorithm_star:0,opal:0,open:[3,5,12,16,19,31],open_ensembl:3,opendir:31,oper:[2,31],opm:32,opt:[2,5,7,32],option:[0,1,2,6,8,13,14,15,16,17,18,19,20,21,23,26,27,29,31,32,34,35,38,40,43],orb:[8,16,31],orbit:[0,5,7,8,13,17,25,32,43],orbit_evolut:25,orbital_eccentr:17,orbital_inclin:0,orbital_inclinationi:0,orbital_period:[0,5,7,8,9,12,13,16,18,19,43],orbital_period_quadrupl:0,orbital_period_tripl:0,orbital_phas:0,orbital_phase_quadrupl:0,orbital_phase_tripl:0,orbital_separ:17,orbiting_object:[0,17],orbiting_objects_close_pc_threshold:0,orbiting_objects_log:[0,17],orbiting_objects_tides_multipli:0,orbiting_objects_wind_accretion_multipli:0,order:[2,4,16,20,35],ordereddict:2,org:[0,2,32],orient:8,origin:[2,17,23,31,40],original_command_lin:22,original_submission_tim:22,original_working_diretori:22,os:[5,6,8,12,13,14,15,16,17,19,20],other:[0,1,2,6,11,12,13,14,15,16,20,22,23,25,26,32,34,40],otherwis:[0,2,20,21,22,26,28,30,31,34,37],our:[6,8,13,14,15,22,32],out:[2,3,6,8,9,13,14,15,17,20,22,32,34],outcom:0,outer:[0,6],outermost_core_mass:6,outfil:[16,21],outfile_nam:1,outfilenam:16,output:[1,2,3,4,5,7,9,11,12,17,18,19,20,21,22,23,25,31,39,40,41,43],output_dict:[6,8,12,13],output_dir:[12,16,31],output_fil:[12,20,31,34],output_filenam:[16,31],output_lin:20,outsid:[0,32],outward:0,over:[2,6,8,11,12,13,14,15,16,20,21,31],overflow:[0,5,8],overhead:22,overlap:2,overrid:[2,19,22,32,35,38],overriden:16,overshoot:0,overspin_algorithm:0,overspin_bs:0,overspin_massloss:0,overview:7,overwrit:[22,26],own:[9,12,16,18,19,22,23,35,40],oxygen:[0,6],oxygen_neon_white_dwarf:0,p0:32,p1:32,p2:32,p3:32,p:[6,8,13,14,15,17,32,34],p_:8,p_in:5,p_out:5,packag:[3,7,16,20,23,35,36,37,38,40],paczynski:0,pad:[8,13,14,15],pad_output_distribut:[6,8,13,14,15,20],page:[0,6,16,23,40],pair:[0,2,5,20,35,39],panda:[6,8,12,13,14,15,17,18,19,20,23,25,40],pane:25,panel:0,paper:0,parallel:[16,35],param_nam:20,paramet:[1,2,3,4,6,7,8,9,12,13,14,15,16,20,21,22,23,25,26,29,30,31,32,34,35,37,38,39,41,43],parameter_nam:[3,6,7,8,11,13,14,15,16,20,35],parameter_value_input_typ:[11,20],pars:[3,4,6,8,12,13,14,15,16,19,20,21,25,39,41],parse_binary_c_version_info:39,parse_cmdlin:21,parse_const:3,parse_data:8,parse_float:3,parse_funct:[6,8,12,13,14,15,16,21,22,41],parse_function_hr_diagram:25,parse_function_mass:25,parse_function_orbit:25,parse_int:3,parse_output:19,parsec:32,part:[6,7,12,13,14,15,16,19,21,30,32,35,37,43],partial:0,particularli:0,partit:22,partner:31,pasp:32,pass:[2,7,9,12,16,17,19,20,21,22,23,25,26,27,30,31,37,38,40,41],path:[12,16,19,20,22,23,26,29,30,31,34,37,40],patho:[23,40],pd:[6,8,12,13,14,15,17,18,19],pdf:[0,19,23,32,40],peak:[8,14,15,38],peak_normalized_gaussian_func:38,pend:[0,5],per:[0,5,8,12,13,16,20,22,31,43],percentag:0,peret:0,perfect:[14,15],perfectli:[13,14,15],perform:[0,31],perhap:[0,6,8,21],periastron:0,pericent:43,period:[0,5,7,8,9,12,13,14,15,16,17,19,25,32,43],period_str:32,perl:[1,2,13,14,15,16,30],persist:7,persistent_data:7,pgo:0,phase:[0,6,8,13,14,15],phasevol:[0,16],phdi:0,phi:[5,19],photoevapor:0,php:32,physic:[6,13,14,15,16,22],pick:25,pickl:31,pid:21,piec:[16,19,35],pinnsonneault:0,pisn:0,pkg:[23,40],pl:21,place:[0,2,13,20,22],placehold:[25,29,30,31],plai:[0,14,15],plan:22,planet:17,planetari:0,plaw2:22,pleas:[0,6,7,13,14,15,16,20,22,29],plot:[0,6,8,12,13,14,15,17,18,19,25],plot_data:[8,13,14,15],plot_funct:[23,24],plot_hr_diagram:25,plot_hr_diagram_singl:25,plot_mass:25,plot_orbit:25,plot_system:25,plot_typ:25,plt:[6,8,14,15,17,19],plu:0,pluto:17,pm:25,pms_mass_1:25,pms_mass_2:25,pn:0,pn_comenv_transition_tim:0,pn_fast_wind:0,pn_fast_wind_dm_agb:0,pn_fast_wind_dm_gb:0,pn_fast_wind_mdot_agb:0,pn_fast_wind_mdot_gb:0,pn_hall_fading_time_algorithm:0,pn_hall_fading_time_algorithm_maximum:0,pn_hall_fading_time_algorithm_minimum:0,pn_resolv:0,pn_resolve_maximum_envelope_mass:0,pn_resolve_minimum_effective_temperatur:0,pn_resolve_minimum_luminos:0,pne:0,png:19,pogg:0,point:[0,3,6,20,21,22,23,31,32,38,40],poisson:[22,32],pol:0,polytrop:0,poor:[14,15],pop:[5,9,17,29],pop_macro:9,popitem:29,popul:[0,3,4,7,11,23,24,40,41],population_extens:[16,21,26,27,28,29,30,31,32,33,34,35,36,37,38,39],population_id:[16,22],population_nam:[6,8,13,15],population_object:31,population_set:21,posit:[0,2,8,32],possibl:[0,1,2,6,12,17,20,22,23,29,32,34,40],post:[0,5,6,8,9,21],post_ce_adaptive_menv:0,post_ce_envelope_dm_eagb:0,post_ce_envelope_dm_gb:0,post_ce_envelope_dm_tpagb:0,post_ce_objects_have_envelop:0,post_comenv_period:8,post_sn_orbit_bs:0,post_sn_orbit_method:0,post_sn_orbit_tt98:0,postagb_legacy_log:0,postagb_wind_gi:0,postagb_wind_krticka2020:0,postagb_wind_non:0,postagb_wind_use_gi:0,postagbwind:0,postcod:[6,8,16,35],potenti:0,pow2:6,power:[0,8,14,15,22,32],powerlaw:32,powerlaw_const:32,powerlaw_constant_nocach:32,powerlaw_extrapolation_q:32,ppisn:0,ppisn_additional_massloss:0,ppisn_core_mass_range_shift:0,ppisn_farmer19:0,ppisn_new_fit_21:0,ppisn_non:0,ppisn_prescript:0,ppn_envelope_mass:0,pragma:9,pre:[0,5,8,16,19,25],pre_comenv_period:8,pre_events_stardata:0,pre_main_sequ:0,pre_main_sequence_fit_lob:0,precis:3,precod:[6,8,13,14,15,16,35],predefin:[13,14,15,16,32],predict:22,predictor:0,prefer:[0,21],prefix:0,preloaded_popul:31,prep:0,prepar:2,prepare_dict:2,presc:5,prescrib:0,prescript:[0,5,16],prescrit:0,present:[2,3,6,13,14,15,16,19,21,31,32],preserv:0,preset:25,pressur:0,prev_stellar_type_1:16,prev_stellar_type_2:16,prevent:[0,5,6,22],previou:[8,14,15,20,22,39],previous:[12,16,26],previous_stardata:[1,8,9,12,16],primari:[1,6,8,13,14,15,16,32,35,43],prime:8,pringl:0,print:[2,5,6,7,8,9,11,12,13,14,15,16,17,19,20,22,26,33,34],print_help:[11,20],print_info:34,print_option_descript:34,print_stack_on_exit:22,print_structur:2,printf:[1,6,8,9,12,13,14,15,16,18,19],prior:[0,6],privat:[21,23],prob_dict:32,probability_weighted_mass:22,probabl:[0,1,2,6,8,9,13,14,15,16,19,21,22,25,31,32,34,35],probdist:[6,8,13,14,15,16,35],problem:[0,13],probtot:[14,15],process:[0,6,8,13,14,15,16,18,19,20,21,22,26,30],process_:31,processor:[6,8,13],produc:6,profil:0,progenitor:[0,16],program:[6,23,40],progress:20,project:0,proper:[6,9,34],properli:0,properti:[0,20,22,25,35],proport:8,prot1:0,prot2:0,prot3:0,prot4:0,provid:[0,16,21,22,26,32,41],pseudorandom:0,publicli:9,puls:[0,6,43],pulsat:0,pump:0,purpos:[13,14,15,16,22,25],push:17,push_macro:9,put:[1,6,8,13,14,15,16,19,20,22,25,26,34,35,36],pwd:22,py:[6,8,13,14,15,16,17,22,23,29,40],py_rinterpol:[23,40],pyenv:[7,23,40],pyplot:[6,8,14,15,17,19],pysiz:20,pytest:[23,40],python3:[7,23,40],python:[2,3,4,6,8,13,14,15,20,22,29,31,32,35],q:[0,5,8,13,16,19,22,32,43],q_high_extrapolation_method:22,q_interpol:32,q_low_extrapolation_method:22,q_min:32,qc:5,qcrit_bh:0,qcrit_bs:0,qcrit_cheb:0,qcrit_chen_han_formula:0,qcrit_chen_han_t:0,qcrit_cowd:0,qcrit_degenerate_bh:0,qcrit_degenerate_cheb:0,qcrit_degenerate_cowd:0,qcrit_degenerate_eagb:0,qcrit_degenerate_gb:0,qcrit_degenerate_hegb:0,qcrit_degenerate_hehg:0,qcrit_degenerate_hem:0,qcrit_degenerate_hewd:0,qcrit_degenerate_hg:0,qcrit_degenerate_lmm:0,qcrit_degenerate_m:0,qcrit_degenerate_n:0,qcrit_degenerate_onewd:0,qcrit_degenerate_tpagb:0,qcrit_eagb:0,qcrit_gb:0,qcrit_gb_bs:0,qcrit_gb_chen_han_formula:0,qcrit_gb_chen_han_t:0,qcrit_gb_ge2015:0,qcrit_gb_hjellming_webbink:0,qcrit_gb_q_no_comenv:0,qcrit_gb_temmink2021:0,qcrit_gb_vos2018:0,qcrit_ge2015:0,qcrit_hegb:0,qcrit_hehg:0,qcrit_hem:0,qcrit_hewd:0,qcrit_hg:0,qcrit_hjellming_webbink:0,qcrit_lmm:0,qcrit_m:0,qcrit_n:0,qcrit_onewd:0,qcrit_q_no_comenv:0,qcrit_temmink2021:0,qcrit_tpagb:0,qcrit_vos2018:0,qcrits_:0,qcrits_degenerate_:0,qdata:32,qlimit:32,qmin:32,qs:32,quad:22,quadrat:0,quadrulpl:0,quadrupl:[0,22,32],quantiti:25,queri:[12,26],queue:[6,8,13,22,26,30],quickli:12,quit:[0,6,20,32],quot:20,quotewrap:20,r1:[5,12,19],r2:[5,12,19],r:[0,1,5,6,12,16,19,23,31,40],r_l:43,r_sun:6,radau:0,radi:0,radiat:0,radii:[0,43],radiu:[0,1,6,9,16,18,25,43],radius_1:25,radius_2:25,ragb:43,raghavan2010_binary_fract:32,raghavan:32,rai:0,railton:0,rais:[0,2,16,20,22],ram:[0,22],ran:[6,8,13,22],randbuf:[5,19],random:[0,5,7,19,22],random_count:[5,12,19],random_se:[0,5,12,19],random_skip:0,random_system:0,random_systems_se:0,rang:[0,6,7,8,12,13,14,15,16,22,32,35,38],rapid:0,rapidli:0,rappaport:0,rate:[0,14,15,32],rather:[0,2,9,12,16,20,22,23,26,39,40],ratio:[0,6,7,8,13,14,15,16,32,43],raw:[3,7,19,20,21,22,25,39,41],raw_output:3,rc:[5,6,8,13,14,15,17,25],re:[0,1,6,7,8,13,14,15,17,26,34],reach:[0,5,6,8],reaction:0,read:[3,4,5,12,16,19,20,22,31],readabl:20,readlin:5,real:[6,13,16,35],realist:[14,15],realiti:[14,15],realli:[0,6,16,21,22,34,35],reason:[0,14,15],rebuild:[0,22,23,26,40],rebuilt:[23,40],recalcul:0,receiv:20,recent:[14,17],recogn:16,recognis:31,recombin:0,recommend:[1,4,23,40],recompil:[13,14,15,16,23,40],reconsid:34,recurs:[2,20],recursive_change_key_to_float:2,recursive_change_key_to_str:2,red:[0,6,14,15,17],redhat:1,redshift:32,reduc:[0,5],reduct:22,refer:[2,22,31],refpop:31,regardless:25,region:[0,38],regist:16,reignit:0,reimer:0,reinstal:[23,40],reject:0,rejects_in_log:0,rejuven:[0,13],rel:0,relat:0,releas:[20,23,40],relev:21,reliabl:7,remain:[0,7,20,22],rememb:[5,6,14,15],remesh:0,remnant:[0,6],remov:[0,2,8,12,16,17,20,21],remove_fil:20,renam:[14,15,35],rename_grid_vari:[14,15,35],renormalis:32,rentrop:0,repeat:[0,22],replac:30,repo:23,report:[0,6,8,13,14,15,16],repositori:4,repres:22,represent:[3,16,35],reproduc:0,requir:[0,3,8,12,13,14,15,16,17,19,20,22,25,26,32,41],rerun:[6,22],reset:0,reset_pref:0,reset_star:0,reset_stars_default:0,resolut:[0,6,8,13,14,15,16,22,35,38],resolv:[0,13,31],reson:0,resourc:[14,15,26],respect:[0,30,32,37],rest:[16,32,35],restor:26,restore_from_snapshot_dir:22,restore_from_snapshot_fil:[22,26],restructuredtext:20,result:[0,1,2,3,6,8,12,13,14,15,16,19,20,22,23,26,31,32,38,40],result_arrai:32,result_dict:2,result_example_head:19,result_example_header_1:19,result_example_header_2:19,results_dictionari:[6,8,13,14,15],ret:16,retain:0,rethink:20,return_after_dry_run:22,return_all_info:21,return_arglin:7,return_binary_c_default:21,return_binary_c_version_info:[11,21,39],return_compilation_dict:1,return_help:7,return_help_al:[7,20],return_maximum_mass_ratio_for_rlof:[7,43],return_minimum_orbit_for_rlof:[7,43],return_persistent_data_memaddr:7,return_population_set:21,return_store_memaddr:7,return_version_info:[7,39],reus:21,revap_in:0,revap_out:0,revers:[0,25],reverse_tim:0,revis:[0,39],rewrit:21,rgb:6,rhagavan:22,ri0005:[6,16],rich:0,riello:0,rin:0,ring:0,risk:[16,35],ritter:0,rk2:0,rk4:0,rl1:5,rl2:5,rl:[0,5],rlof:[0,5,7,43],rlof_angular_momentum_transfer_model:0,rlof_angular_momentum_transfer_model_bs:0,rlof_angular_momentum_transfer_model_conserv:0,rlof_eccentric_as_circular:0,rlof_entry_threshold:0,rlof_f:0,rlof_interpolation_binary_c:0,rlof_interpolation_bs:0,rlof_interpolation_method:0,rlof_mdot_factor:0,rlof_mdot_modul:0,rlof_method:0,rlof_method_adapt:0,rlof_method_adaptive2:0,rlof_method_bs:0,rlof_method_claei:0,rlof_method_ritt:0,rlof_nonconservative_gamma_donor:0,rlof_nonconservative_gamma_isotrop:0,rlof_radiation_correct:0,rlof_transition_objects_escap:0,rob:[0,32,43],robert:[23,40],roch:[0,5,8,43],roche_lob:43,rochelob:43,rol1:[5,12,19],rol2:[5,12,19],room:[16,35],root:[23,40],rotat:[0,32],rotation:0,rotationally_enhanced_expon:0,rotationally_enhanced_mass_loss:0,rotationally_enhanced_massloss:0,rotationally_enhanced_massloss_angmom:0,rotationally_enhanced_massloss_langer_formula:0,rotationally_enhanced_massloss_langer_formula_and_angmom:0,rotationally_enhanced_massloss_non:0,rough:6,rout:0,routin:[0,2,4,7,23,25,41],row:[12,19,25],rrcach:22,rring:0,rssd:32,rst:[20,34],rsun:[6,25],run:[0,1,4,5,6,7,8,13,14,15,18,20,21,22,23,26,28,30,32,35,37,40,41,43],run_and_calc_mass:19,run_binary_custom_log:19,run_popul:7,run_system:[5,7,9,11,12,17,18,25,41],run_system_wrapp:[4,5,9,18,23,24],run_zero_probability_system:22,runawai:[5,19],rungrid:22,runtim:[1,22],russel:[0,4,23],rzam:[5,43],s:[0,2,3,5,6,7,8,12,14,15,16,17,19,20,21,22,26,28,29,31,32,36,43],safe:[16,31],sai:[0,6],said:0,same:[0,2,7,12,16,22,23,32,35,40,41],sampl:[0,4,13,16,32,35,38],sample_valu:32,sampler:23,samplerfunc:[6,8,13,14,15,16,22,35,38],sana12:[8,13,16,32],sana:32,sander:0,saturn:17,save:[0,1,6,8,9,13,14,15,16,22,26,31,32,38],save_ensemble_chunk:22,save_loop:19,save_population_object:[22,31],save_pre_events_stardata:0,save_snapshot:[21,22,31],sbatch:22,scalar:20,scalo:32,scandir:31,scanf:0,scene:19,scheme:0,schneider:[0,7],schroeder:0,scientif:20,script:[4,9,20,22,23,26,30,37,40],sdb:0,sdo:0,seaborn:[6,8,13,14,15,17],search:[6,13,17,23],search_for_bhbh:5,second:[0,2,8,17,20,25,31,32,33],secondari:[5,6,13,32,43],section:[7,16,20,23,32,40],see:[0,5,6,7,8,9,11,12,13,14,15,16,19,21,22,23,25,29,31,32,35,39,40],seed:0,seem:[23,25,34,40],seen:20,segment:38,seitenzahl2013_model:0,seitenzahl:0,select:[0,3,12,13,17,19,20],select_kei:3,selected_head:[19,20],selector:0,self:[6,8,12,13,14,15,16,21,22,26,29,30,31,32,35,37,38,39],semi:0,sent:0,sentenc:1,sep:[5,8,12,13,16,19,31,32,43],sep_max:[8,13,16],sep_min:[8,13,16],separ:[0,3,5,6,7,9,12,16,17,18,19,25,31,32,43],separation_quadrupl:0,separation_tripl:0,separta:0,seper:16,sepf:5,sequenc:[0,6,9,13,14,15,19],sequnec:[13,14,15],seri:[0,38],serialis:3,serv:[19,20],server:19,set:[0,1,2,3,4,5,9,11,12,17,19,20,21,22,23,25,26,27,28,29,30,31,32,34,35,37,38,39,40],set_condor_statu:30,set_context:[6,8,13,14,15,17],set_moe_di_stefano_set:27,set_opt:[2,6,8,17],set_slurm_statu:37,set_statu:31,set_tim:28,set_titl:19,set_xlabel:[6,8,13,14,15,17,19],set_ylabel:[6,8,13,14,15,17,19],set_yscal:19,setter:29,setup:[6,16,41],setup_function_cach:29,sever:[11,16,19,22,25,34,41],sfh:32,sh:[23,40],shannon:38,shara:0,share:[1,12,18,19,22,31,41],shared_lib_filenam:9,shared_memori:31,shell:[0,20],shellular:0,shift:0,shorten:[0,5],shorter:5,shortli:6,should:[0,1,2,5,6,8,12,13,14,15,16,19,20,22,23,25,26,30,31,32,34,37,38,40,41],shouldn:[0,20],show:[0,4,5,6,7,8,12,13,14,15,16,19,22,25,38],show_plot:25,show_stellar_typ:25,showlist:38,shown:[0,25,38],showtabl:38,shrink:[5,8],shrinkagb:12,side:[13,14,15,16],siess:0,sigint:22,sigkil:22,sigma:[32,38],signal:[6,8,13,22],silent:20,sill:0,sim10:8,sim:6,similar:38,simpl:[6,8,13,17],simplest:12,simpli:[0,14,15],simul:[0,1,6,8,9,13,14,15,16,37],simulation_:21,sinc:[20,25,32],singl:[0,4,5,6,7,13,14,15,18,19,21,22,25,26,32],single_star_lifetim:[7,9,12],sit:0,site:7,situat:7,size:[20,22,29],skip:[0,2,6,8,13,22],skip_befor:22,skipkei:3,slice:19,sliced_df:19,slightli:7,slope:32,slow:[0,6,8,13,14,15],slower:0,slurm:[22,23,24,26],slurm_arrai:22,slurm_array_max_job:22,slurm_bash:22,slurm_check_requir:37,slurm_dat:22,slurm_dir:[22,26,30,37],slurm_env:22,slurm_extra_set:22,slurm_grid:37,slurm_jobarrayindex:[22,37],slurm_jobid:[22,37],slurm_jobnam:22,slurm_memori:22,slurm_njob:22,slurm_ntask:22,slurm_outfil:37,slurm_partit:22,slurm_postpone_join:22,slurm_postpone_sbatch:22,slurm_pwd:22,slurm_queue_stat:37,slurm_sbatch:22,slurm_status_fil:37,slurm_tim:22,slurm_warn_max_memori:22,slurmid:37,slurmpath:37,small:[0,5,14,15],small_envelope_method:0,small_envelope_method_bs:0,small_envelope_method_miller_bertolami:0,smaller:[0,38],smarter:[14,15],smooth:[6,14,15],smoother:[8,14,15],sn:[0,5,6,8,13,14,15,17,19],sn_impulse_liu2015:0,sn_impulse_non:0,sn_impulse_wheeler1975:0,sn_kick_companion_a:0,sn_kick_companion_aic_bh:0,sn_kick_companion_bh_bh:0,sn_kick_companion_bh_n:0,sn_kick_companion_ecap:0,sn_kick_companion_grb_collapsar:0,sn_kick_companion_hestaria:0,sn_kick_companion_ia_chand:0,sn_kick_companion_ia_chand_co:0,sn_kick_companion_ia_eld:0,sn_kick_companion_ia_h:0,sn_kick_companion_ia_he_co:0,sn_kick_companion_ia_hybrid_hecowd:0,sn_kick_companion_ia_hybrid_hecowd_sublumin:0,sn_kick_companion_ibc:0,sn_kick_companion_ii:0,sn_kick_companion_iia:0,sn_kick_companion_ns_n:0,sn_kick_companion_phdi:0,sn_kick_companion_pisn:0,sn_kick_companion_ppisn:0,sn_kick_companion_tz:0,sn_kick_companion_wdkick:0,sn_kick_dispersion_aic_bh:0,sn_kick_dispersion_bh_bh:0,sn_kick_dispersion_bh_n:0,sn_kick_dispersion_ecap:0,sn_kick_dispersion_grb_collapsar:[0,5],sn_kick_dispersion_ia_hybrid_hecowd:0,sn_kick_dispersion_ia_hybrid_hecowd_sublumin:0,sn_kick_dispersion_ibc:[0,5],sn_kick_dispersion_ii:[0,5],sn_kick_dispersion_ns_n:0,sn_kick_dispersion_phdi:0,sn_kick_dispersion_pisn:0,sn_kick_dispersion_ppisn:0,sn_kick_dispersion_tz:0,sn_kick_distribution_aic_bh:0,sn_kick_distribution_bh_bh:0,sn_kick_distribution_bh_n:0,sn_kick_distribution_ecap:0,sn_kick_distribution_grb_collapsar:0,sn_kick_distribution_ia_hybrid_hecowd:0,sn_kick_distribution_ia_hybrid_hecowd_sublumin:0,sn_kick_distribution_ibc:0,sn_kick_distribution_ii:0,sn_kick_distribution_ns_n:0,sn_kick_distribution_phdi:0,sn_kick_distribution_pisn:0,sn_kick_distribution_ppisn:0,sn_kick_distribution_tz:0,sn_none:9,sn_type:9,snapshot:[22,26,31],snapshot_filenam:31,sneia:0,snia:0,snippet:[7,12],so:[0,2,5,6,7,8,9,12,13,14,15,16,21,22,25,26,31],solar:[0,4,6,7,8,11,23,32,43],solver:0,solver_forward_eul:0,solver_predictor_corrector:0,solver_rk2:0,solver_rk4:0,some:[0,1,6,8,9,11,12,13,14,15,16,19,22,23,25,30,32,35,36,37,40],someth:[0,6,8,12,13,14,15,22,43],somewhat:[13,14,15,16,17],soon:38,sort:[2,6,13,14,15,17,20,31],sort_kei:[3,31],sourc:[1,2,3,8,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,41,43],source_file_filenam:22,source_list:21,sourcecod:[7,9,23,40],sourcefile_nam:1,sp:32,space:[0,6,13,14,15,16,31,35,38],spacing_funct:[21,23,24],spawn:20,special:[0,16],specif:[0,11,12,25,30,37],specifi:[0,22,26,38],spectral:32,speed:[0,29],speedtest:0,spent:20,spera:0,spheric:0,spiki:[14,15],spin:[0,17],spinrat:0,split:[0,5,12,16,17,19,22,30,37],split_lin:12,splitlin:[6,7,8,9,12,13,14,15,16,17],splitpoint:0,spread:21,sqrt:0,src:[0,7,9,23,40],st1:19,st2:19,st:5,stabil:0,stabl:[0,23,40],stack:22,stackoverflow:32,stacktrac:21,stage:26,stancliff:0,standard:[0,13,14,15,30,32,37,38],star1:17,star:[1,4,5,7,8,9,11,12,13,14,17,18,19,22,23,25,30,32,37,38,43],star_with_no_mass:0,starcount:[6,8,13,15,16],stardata:[0,1,6,8,9,12,13,14,15,16,18,19],stardata_dump_filenam:0,stardata_load_filenam:0,stardata_t:9,starnum:[6,13],start:[0,1,5,6,8,12,13,14,15,16,19,20,22,28,34,35],start_at:22,start_tim:[0,22],start_timestamp:[6,8,13,15,16],startrack:0,startswith:12,stat:26,state:[0,31],statement:[1,9,12,13,14,15,16,17,18,19,22],statist:[0,22,30],statu:[0,1,6,8,13,14,15,16,22,26,30,31,37],status_dir:22,stderr:[0,22],stdout:[20,22,38],steadi:0,stefan:25,stefano:[16,23,27,32],stellar:[0,4,5,7,15,22,23,25,32,38,39,42],stellar_structure_algorithm:0,stellar_structure_algorithm_external_funct:0,stellar_structure_algorithm_mint:0,stellar_structure_algorithm_modified_bs:0,stellar_structure_algorithm_non:0,stellar_typ:[1,6,9,12,13,14,15,16,23,24,25],stellar_type1:5,stellar_type2:5,stellar_type_1:[0,16,25],stellar_type_2:[0,16,25],stellar_type_3:0,stellar_type_4:0,stellar_type_dict:42,stellar_type_dict_short:42,step:[3,6,8,9,12,13,14,15,16,25,35,38],stepsiz:[16,35],stick:22,stiff:0,still:[1,9,17,22,43],stop:[0,6,8,13,19,20,22],stop_queu:22,stopfil:0,storag:0,store:[0,2,4,6,8,12,13,14,15,16,20,21,22,23,31,38,40,43],store_capsul:7,store_memaddr:[7,43],str:[1,2,3,5,6,16,20,21,25,31,34,35,39],straightforward:[6,13,14,15,16],straniero:0,stream:22,strength:0,strict:3,strictli:[13,14,15],string:[0,1,2,3,4,7,12,13,14,15,16,17,20,21,22,25,26,30,31,34,35,37,39,41],strip:[0,7,12,17],strong:6,stronger:[0,6],struct:[0,9],structur:[0,2,8,20,22,25],studi:6,stuff:[12,16,22],style:[0,20,33],sub:[0,2,20],subdict:2,subject:0,sublumin:0,submiss:22,submit:[22,23],subplot:19,subprocess:16,subsequ:0,subtract:2,subtract_dict:2,succe:0,suddenli:6,suffer:6,suffici:6,suggest:[0,23,40],suit:[23,40],suitabl:38,sum:[0,2],sun:17,sundial:0,supercrit:0,superflu:17,supernova:[0,5,8,22],superwind:0,superwind_mira_switchon:0,support:31,sure:[2,12,13,14,15,16,23,26,31,32,40,41],surfac:0,surrei:[6,16],surviv:[0,17],survivor:0,sview:22,swallow:17,switcher:0,sy:21,symlink:[6,8,13,16],symlink_latest_gridcod:22,symmetr:0,synchron:0,synonym:0,synthesi:[13,14,15,16,22,23,40],system:[0,4,6,7,8,9,13,14,15,16,18,19,20,21,22,23,25,32,33,36,40,41,43],system_dict:33,system_gener:[16,31],system_numb:33,system_queue_fil:[6,8,13],t:[0,1,2,5,6,12,14,15,16,20,22,26,31,38],t_:6,tabl:[0,32,38],take:[0,2,8,13,16,19,20,22,27,31,32,35,41],taken:[0,2,9,32],talk:6,target:[1,34],task:[0,19,20,21,25,26,29,32,38,41,43],tauri:0,tbse:0,te:22,technic:[6,8,9,13,14,15,16],teff:[0,5,32],teff_1:25,teff_2:25,teff_from_star_struct:6,teff_postagb_max:0,teff_postagb_min:0,tell:[20,26],temp_dir:[5,6,8,12,14,15,16,17,20],temperatur:[0,17,25,32],tempfil:19,term:2,termin:[1,6,9,16,23,40],test:[0,12,20,22,23,26,29,31,40],test_cach:29,test_data:0,test_func:7,test_log:19,test_logfil:12,test_pop:16,text:[6,8,17,20,34],than:[0,2,6,8,13,14,15,16,20,22,23,26,31,32,39,40],thats:16,thei:[0,2,5,6,8,13,16,17,21,22,25,26,30,37,38],thelog:0,them:[2,6,7,8,16,18,19,20,30,31,32,34,41],themselv:[3,32],theoret:[13,14,15],thermal:[0,6,32,43],thermally_pulsing_asymptotic_giant_branch:0,thermohalin:0,thermonuclear:6,thesi:0,thi:[0,1,2,3,5,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,43],thick:0,thick_disc_end_ag:0,thick_disc_logg_max:0,thick_disc_logg_min:0,thick_disc_start_ag:0,thin:0,thing:[0,3,6,7,8,13,14,15,16,19,20,21,32,41],think:[0,20,21],third:[0,17,32,38],third_dup:0,third_dup_multipli:0,thorn:0,those:[2,6,8,13,14,15,16,19,21,23,32,39,40],thread:[6,8,13,14,15,20,22,33],thread_id:22,three:[0,7,14,15,16,32],three_part_powerlaw:[8,13,14,15,16,32],threshold:[0,20,22],through:[6,7,11,12,13,14,15,16,25,26,35,41],throughout:[13,14,15,16,35],thu:38,tidal:[0,5],tidal_strength_factor:0,tide:[0,17],tides_convective_damp:0,tides_diagnosis_log:0,tides_hurley2002:0,tides_zahn1989:0,tight:19,time:[0,1,2,3,5,6,8,9,12,13,14,15,16,17,18,19,20,21,22,23,25,28,31,32,33,38,40],time_elaps:[16,28],timedelta:20,timescal:0,timestamp:[22,28],timestep:[0,8,9,12,13,14,15],timestep_limit:0,timestep_log:0,timestep_modul:0,timestep_multipli:0,timestep_solver_factor:0,tini:6,tinslei:32,tip:[6,32],titl:[13,34],tmax:38,tmin:38,tmp:[0,6,8,12,13,14,15,16,17,20,23,40],tmp_dir:[5,6,8,12,14,15,16,17,22,35],tmp_tabl:32,toasti:17,todo:[0,1,2,5,11,16,20,21,22,25,26,30,31,32,33,34,37,38,39,41,43],toler:0,too:[0,2,6,7,14,15,17,22,23,40,41],took:[6,8,13,15,16,19],tool:22,top:[0,16,35],topcod:[6,8,16,35],topic:0,torqu:0,total:[0,2,6,8,13,14,15,16,19,20,22,25,32,35],total_count:[6,8,13,15,16],total_mass_run:[6,8,13,15,16],total_prob:[6,8,13,14,15,16],total_probability_weighted_mass_run:[6,8,13,15,16],touch:[26,31],tout:[0,43],tout_pringle_1992_multipli:0,tp:0,tpagb:[0,6],tpagb_reimers_eta:0,tpagb_wind_beasor_etal_2020:0,tpagb_wind_bloeck:0,tpagb_wind_goldman_etal_2017:0,tpagb_wind_mattsson:0,tpagb_wind_reim:0,tpagb_wind_rob_cwind:0,tpagb_wind_van_loon:0,tpagb_wind_vw93_karaka:0,tpagb_wind_vw93_karakas_carbon_star:0,tpagb_wind_vw93_orig:0,tpagb_wind_vw93_orig_carbon_star:0,tpagbwind:0,tpagbwindfac:0,tpr:[8,13],trace:22,traceback:[14,17],track:[6,22,25],trade:0,trail:[20,38],transfer:[0,6,22],transform:[0,3],transit:0,treat:[0,38],trem:20,trigger:0,trio:[13,14,15,16],tripl:[0,22,32],truli:0,ttlcach:22,tupl:[1,6,20,26,31,38],turn:[0,2,3,5,12,16,20],tutori:[4,23],two:[0,2,6,7,9,20,31,33,42,43],txt:[12,16,19,23,31,40,41],type:[0,1,2,3,5,8,12,13,14,15,16,19,20,21,22,25,26,31,32,34,35,38,39,42,43],type_chng:[5,12,19],type_ia_mch_supernova_algorithm:0,type_ia_sub_mch_supernova_algorithm:0,typeerror:14,typic:0,ubvri:0,ugriv:0,uk:[6,16],unavail:0,unbound:5,unclos:31,uncom:[12,13,14,15,16,17],unction:7,undef:9,under:[12,38],undergo:[0,8],understand:22,undescrib:34,unexpect:14,uniform:32,union:[2,16,20,32,35,38,39,43],uniqu:[2,19,22],unit:[0,6,7,11,20,43],univari:0,univers:[6,8,22],unix:33,unknown:41,unless:[1,21,22],unlik:[14,15],unload:21,unlock:31,unmerg:8,unnecessari:34,unpars:7,unphys:[5,8,13],unrecogn:[23,40],unresolv:13,unsign:0,unstabl:[0,5],until:[0,2,6,31,32],unus:[0,22],unweight:16,up:[0,1,4,9,12,17,20,21,26,27,29,30,32,37],updat:[2,14,15,16,21,23,35,40],update_dict:[2,11],update_grid_vari:[14,15,35],upon:43,upper:[0,32,38],uranu:17,us:[0,1,2,3,4,11,12,16,20,21,22,23,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,43],usag:[0,4],use_astropy_valu:25,use_datadir:[16,21],use_fixed_timestep_:0,use_lwn_fallback:0,use_periastron_roche_radiu:0,use_tabular_intershell_abundances_karakas_2012:0,usecach:38,usecas:4,useful_func:[23,24],user:[1,9,20,21,22,27,32,34,41],usernam:20,usr:22,usual:[0,5,6,7,13,14,15,16,20,22,31,32],utf:[3,16,31],util:[1,2,3,5,6,7,8,9,11,12,13,14,15,16,17,18,20,21,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,41,43],v:[5,19,23,40],val:32,valid:[0,7,9,20,32],valu:[0,1,2,3,6,7,11,12,13,14,15,16,19,20,21,22,25,28,29,32,34,35,38],value_lin:12,valueerror:16,valuerang:[6,8,13,14,15,16,35],values_arrai:12,van:0,vandenheuvel_log:0,vanilla:22,vari:[0,6,8,16],variabl:[0,4,6,7,8,20,22,30,31,35],variant:0,variou:0,vassiliadi:0,vb1print:33,vb2print:33,vb:[5,26,29,31,38],ve:28,veloc:[0,32],venu:17,verbos:[1,6,8,12,13,14,15,16,18,20,22,23,27,31,32,33,38,40],verbose_print:[20,33],veri:[0,5,6,7,8,9,12,14,15,16,31,35,38],versa:43,version:[0,2,7,11,16,20,21,23,39,40],version_info:[11,21,23,24],version_info_str:39,version_onli:0,via:[4,6,7,9,13,14,15,16,21,22,25],vice:43,vink:0,virtual:[23,40],virtualenviron:[23,40],viscos:0,viscou:0,visibl:9,visit:23,vk:[5,19],vn:[5,19],volum:0,vr:[5,19],vrot1:0,vrot2:0,vrot3:0,vrot4:0,vrot_breakup:0,vrot_bs:0,vrot_non_rot:0,vrot_sync:0,vs:[17,25],vw93:0,vw93_eagb_wind_spe:0,vw93_mira_shift:0,vw93_multipli:0,vw93_tpagb_wind_spe:0,vwind:0,vwind_beta:0,vwind_multipli:0,w:[1,12,16,21,31],wa:[0,6,11,12,14,15,16,21,22,23,31,32,40],wai:[0,2,12,14,15,21,22,26],wait:31,wait_for_unlock:31,wang:0,want:[0,2,3,5,8,9,13,14,15,16,19,20,22,23,25,26,31,32,34,35,40],warmup_cpu:0,warn:[0,12,16,22,26],was_kil:21,wast:[8,14,15],wave:[0,6,8,16],wd:0,wd_accretion_rate_new_giant_envelope_lower_limit_helium_donor:0,wd_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor:0,wd_accretion_rate_new_giant_envelope_lower_limit_other_donor:0,wd_accretion_rate_novae_upper_limit_helium_donor:0,wd_accretion_rate_novae_upper_limit_hydrogen_donor:0,wd_accretion_rate_novae_upper_limit_other_donor:0,wd_kick:0,wd_kick_at_every_puls:0,wd_kick_at_given_puls:0,wd_kick_direct:0,wd_kick_end_agb:0,wd_kick_first_rlof:0,wd_kick_pulse_numb:0,wd_kick_when:0,wd_sigma:0,wdwd_merger_algorithm:0,wdwd_merger_algorithm_bs:0,wdwd_merger_algorithm_chen2016:0,wdwd_merger_algorithm_perets2019:0,we:[0,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,19,20,21,22,23,26,27,28,29,30,31,32,34,37,38,40,43],weight:[0,14,15,22],weirdli:13,well:[0,3,9,12,13,14,15,22,23,40],went:[14,15],were:[6,8,13,15,16,20,39],what:[0,1,2,5,6,7,8,9,12,13,14,15,16,19,22,23,26,32,34,38,39,40,41],whatev:[0,9,19,20,21,23,26,31,40],wheeler:0,when:[0,1,2,3,6,7,8,11,12,16,17,20,22,23,26,28,29,30,31,32,34,37,38,40,41],whenev:[23,40],where:[0,1,2,6,13,14,15,16,20,22,23,26,28,31,32,34,38,40],whether:[0,7,16,20,21,22,25,30,31,32,34,37,38,39,43],which:[0,1,2,6,7,8,9,11,12,13,14,15,16,18,19,20,21,22,23,26,30,31,32,34,35,37,38,39,40,41,43],whichev:22,white:[0,6],white_dwarf_cooling_carrasco2014:0,white_dwarf_cooling_mestel:0,white_dwarf_cooling_mestel_modifi:0,white_dwarf_cooling_model:0,white_dwarf_radius_carrasco2014:0,white_dwarf_radius_model:0,white_dwarf_radius_mu:0,white_dwarf_radius_nauenberg1972:0,whole:[0,8,9,21,22],why:8,wide:[5,13,14,15],wider:5,width:[0,8,20],wiggl:[14,15],wind:[0,5,6,7,13],wind_algorithm_binary_c_2020:[0,5],wind_algorithm_hendriks_2022:0,wind_algorithm_hurley2002:0,wind_algorithm_non:[0,5],wind_algorithm_schneider2018:0,wind_angmom_loss_bs:0,wind_angmom_loss_lw:0,wind_angmom_loss_lw_hybrid:0,wind_angmom_loss_spherically_symmetr:0,wind_angular_momentum_loss:0,wind_disc_angmom_fract:0,wind_disc_mass_fract:0,wind_djorb_fac:0,wind_gas_to_dust_ratio:0,wind_lbv_luminosity_lower_limit:0,wind_mass_loss:[0,5],wind_multiplier_:0,wind_nieuwenhuijzen_luminosity_lower_limit:0,wind_type_multiplier_:0,wink:0,within:[0,2,9,11,16,20,23,32,35,40],without:[2,9,12,14,15,20,22,32],won:[0,12],wood:0,wooslei:0,work:[0,2,3,9,12,13,14,15,16,19,20,22,23,26,31,40],working_diretori:22,would:[0,2,14,15,16,22,25],wouldn:[16,31],wr:0,wr_wind:0,wr_wind_bs:0,wr_wind_eldridg:0,wr_wind_fac:0,wr_wind_maeder_meynet:0,wr_wind_nugis_lam:0,wrap:[1,9,20,29],wrapper:[3,7,9,12,21,31,33,43],write:[1,5,6,7,8,9,12,13,16,18,19,20,21,22,31,34,41],write_binary_c_calls_to_fil:[16,31],write_binary_c_parameter_descriptions_to_rst_fil:20,write_ensembl:31,write_grid_options_to_rst_fil:34,write_logfil:7,written:[7,12,16,22,31,34,35,41],written_data:12,wrlof_mass_transf:0,wrlof_method:0,wrlof_non:0,wrlof_q_depend:0,wrlof_quadrat:0,wrong:[14,15,23,40],wrt:19,wrwindfac:0,wtts2:0,wtts_log:0,www:[0,32],x0:32,x0d:[20,22],x1:32,x86_64:7,x:[0,6,9,12,17,19,20,21,25,26,32,38],xlabel:18,xlim:[8,17],xx:17,xxx:37,y:[5,6,17,20,21,25,26],ye:22,year:[0,32],year_length_in_dai:8,yet:[0,2,19,20,22,25],yield:[0,38],ylim:17,you:[0,1,2,5,6,7,8,9,12,13,14,15,16,17,18,19,20,21,22,23,25,26,31,32,34,35,38,40,43],young:0,your:[9,12,18,19,22,23,40],yourself:[6,8,13,14,15,16,25],yscale:[13,14,15,17],yy:17,z:[0,6,8,19,21,32,43],zahn:0,zam:[0,4,6,7,13,32,41,43],zams_collis:43,zams_mass:[6,13,14,15,16],zams_mass_1:16,zams_mass_2:16,zero:[0,1,4,5,6,8,15,20,22,23,31],zero_ag:[6,9,12,13,14,15,16],zero_age_main_sequence_star:[13,14,15],zero_age_main_sequence_starn:13,zero_prob_stars_skip:[6,8,13,15,16],zone:0,zoom:[0,38],zoom_dispers:38,zoom_magnitud:38,zoom_magntiud:38,zoom_mean:38,zoomfac_multiplier_decreas:0,zoomfac_multiplier_increas:0,zsolar:32,zytkow:0},titles:["Binary_c parameters","custom_logging_functions module","dicts module","ensemble module","Example notebooks","Example use case: Binary black hole systems","Example use case: Hertzsprung-Russell diagrams","Tutorial: Using the API functionality of binary_c-python","Example use case: Common-envelope evolution","Tutorial: Using custom logging routines with binary_c-python","<no title>","Tutorial: Extra features and functionality of binary_c-python","Tutorial: Running individual systems with binary_c-python","Example use case: Zero-age stellar luminosity function in binaries","Example use case: Zero-age stellar luminosity function","Example use case: Massive star luminosity","Tutorial: Running populations with binary_c-python","Example use case: Solar system using the API functionality","Basic example","Binary_c and python example notebook","functions module","Population class module","Population grid code options","Welcome to binary_c-python\u2019s documentation!","Binarycpython code","plot_functions module","Population class extension: HPC module","Population class extension: Moe_di_Stefano_2017 module","Population class extension: analytics module","Population class extension: cache module","Population class extension: condor module","Population class extension: dataIO module","Population class extension: distribution_functions module","Population class extension: grid_logging module","Population class extension: grid_options_defaults module","Population class extension: gridcode module","Population class extension: metadata module","Population class extension: slurm module","Population class extension: spacing_functions module","Population class extension: version_info module","Python module for binary_c","run_system_wrapper module","stellar_types module","useful_funcs module"],titleterms:{"case":[5,6,8,13,14,15,17],"class":[21,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"function":[7,11,12,13,14,15,16,17,19,20],"public":22,A:[14,15],about:11,ad:[13,14,15,16],after:[23,40],ag:[13,14],algorithm:0,analyt:28,api:[7,9,12,17,19],basic:18,better:[14,15],binari:[0,5,6,13,16,19],binary_c:[0,7,9,11,12,16,19,23,40],binarycpython:24,black:5,build:[11,23,40],cach:29,code:[22,24],common:8,compact:9,condor:30,content:[4,23],core:19,custom:[9,19],custom_logging_funct:1,dataio:31,develop:[23,40],di:22,diagram:6,dict:2,dictionari:11,directli:9,distribut:[14,15],distribution_funct:32,document:[23,40],ensembl:3,envelop:8,environ:[23,40],evolut:[8,9],evolv:[6,8,13,14,15,16],exampl:[4,5,6,7,8,9,11,13,14,15,16,17,18,19,23,40],extens:[26,27,28,29,30,31,32,33,34,35,36,37,38,39],extra:11,faq:[23,40],featur:11,free:7,from:[7,9,23,40],full:16,get:[7,11],grid:[6,8,13,14,15,16,22],grid_log:33,grid_options_default:34,gridcod:35,handl:[6,8,13,14,15,16],hertzsprung:6,hole:5,hpc:26,i:0,indic:23,individu:12,inform:[7,11],initi:[14,15],input:0,instal:[23,40],instruct:[23,40],issu:[23,40],line:19,log:[6,8,9,13,14,15,16,19],luminos:[13,14,15],mass:[9,14,15],massiv:15,metadata:36,misc:0,modif:11,modul:[1,2,3,20,21,23,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],moe:22,moe_di_stefano_2017:27,note:[23,40],notebook:[4,19],noteworthi:16,nucsyn:0,o:0,object:[6,8,9,12,13,14,15,16],option:22,other:19,output:[0,6,8,13,14,15,16],paramet:[0,11],pars:11,pip:[23,40],plot_funct:25,popul:[6,8,9,12,13,14,15,16,21,22,26,27,28,29,30,31,32,33,34,35,36,37,38,39],privat:22,python:[7,9,11,12,16,19,23,40],requir:[23,40],routin:9,run:[9,12,16,19],run_binari:19,run_binary_with_log:19,run_system:19,run_system_wrapp:[12,41],russel:6,s:23,sampl:[14,15],sampler:22,script:16,section:0,set:[6,7,8,13,14,15,16],singl:[12,16],slurm:37,solar:17,sourc:[23,40],spacing_funct:38,star:[0,6,15,16],stefano:22,stellar:[6,8,13,14],stellar_typ:42,store:7,string:9,supernova:9,system:[5,12,17],tabl:23,tutori:[7,9,11,12,16],up:[6,7,8,13,14,15,16],us:[5,6,7,8,9,13,14,15,17,19],usag:[7,9,23,40],useful_func:43,util:19,variabl:[13,14,15,16,23,40],version_info:39,via:[12,23,40],welcom:23,when:9,wrapper:19,zam:[14,15],zero:[13,14]}}) \ No newline at end of file diff --git a/docs/build/html/stellar_types.html b/docs/build/html/stellar_types.html index b2c1e5c56..f626d45b7 100644 --- a/docs/build/html/stellar_types.html +++ b/docs/build/html/stellar_types.html @@ -153,9 +153,9 @@ provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/build/html/useful_funcs.html b/docs/build/html/useful_funcs.html index 1f2597ce6..e7a328290 100644 --- a/docs/build/html/useful_funcs.html +++ b/docs/build/html/useful_funcs.html @@ -350,9 +350,9 @@ determine if two stars collide on the ZAMS</p> provided by <a href="https://readthedocs.org">Read the Docs</a>. <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. diff --git a/docs/source/_templates/footer.html b/docs/source/_templates/footer.html index 5fa97b800..439fc328a 100644 --- a/docs/source/_templates/footer.html +++ b/docs/source/_templates/footer.html @@ -2,8 +2,8 @@ {%- block extrafooter %} <br><br> -Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 984825a159a51a9198db3a7b3c17ef3ae2597a38 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. +Generated on binarycpython git branch: development_0.9.3/2.2.1 git revision 15fbbaba24e219ad1d2633582e4a420dc4e08955 url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_0.9.3/2.2.1">git url</a>. <br><br> -Using binary_c with bit branch branch_david: git revision: "5845:20220107:201620bd7" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>. +Using binary_c with bit branch HEAD: git revision: "5853:20220225:db09898b6" url: <a href="https://gitlab.surrey.ac.uk/ri0005/binary_c/-/tree/HEAD">git url</a>. {% endblock %} \ No newline at end of file diff --git a/docs/source/badges/test_coverage.svg b/docs/source/badges/test_coverage.svg index f5af1dbee..ffd257bde 100644 --- a/docs/source/badges/test_coverage.svg +++ b/docs/source/badges/test_coverage.svg @@ -15,7 +15,7 @@ <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <text x="31.5" y="15" fill="#010101" fill-opacity=".3">coverage</text> <text x="31.5" y="14">coverage</text> - <text x="80" y="15" fill="#010101" fill-opacity=".3">72%</text> - <text x="80" y="14">72%</text> + <text x="80" y="15" fill="#010101" fill-opacity=".3">71%</text> + <text x="80" y="14">71%</text> </g> </svg> diff --git a/docs/source/binary_c_parameters.rst b/docs/source/binary_c_parameters.rst index 2ecbfde05..81bd07a93 100644 --- a/docs/source/binary_c_parameters.rst +++ b/docs/source/binary_c_parameters.rst @@ -4,7 +4,7 @@ The following chapter contains all the parameters that the current version of bi This information was obtained by the following binary_c build: - **binary_c git branch**: branch_david **binary_c git revision**: 5845:20220107:201620bd7 **Built on**: Jan 7 2022 12:15:12 + **binary_c git branch**: HEAD **binary_c git revision**: 5853:20220225:db09898b6 **Built on**: Feb 25 2022 19:21:31 Section: stars diff --git a/docs/source/examples/notebook_api_functionality.ipynb b/docs/source/examples/notebook_api_functionality.ipynb index 504ae4b16..49d6f8d3d 100644 --- a/docs/source/examples/notebook_api_functionality.ipynb +++ b/docs/source/examples/notebook_api_functionality.ipynb @@ -105,7 +105,7 @@ " Function that contains random snippets. Do not expect this to remain available, or reliable. i.e. dont use it.\n", "\n", "FILE\n", - " /home/izzard/.local/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", + " /home/david/.pyenv/versions/binarycpython3.9.9/lib/python3.9/site-packages/binarycpython/_binary_c_bindings.cpython-39-x86_64-linux-gnu.so\n", "\n", "\n" ] @@ -166,7 +166,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "<capsule object \"STORE\" at 0x146f912dbc60>\n", + "<capsule object \"STORE\" at 0x7fc1f0c3ff00>\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" ] @@ -270,586 +270,13 @@ "M_2 : The initial mass of star two (in solar units, internally this is star index 1). : (null)\n", "M_3 : The initial mass of star three (in solar units, internally this is star index 2). : (null)\n", "M_4 : The initial mass of star four (in solar units, internally this is star index 3). : (null)\n", - "vrot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot2,3,4. : (null)\n", - "vrot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,3,4. : (null)\n", - "vrot3 : The initial equatorial rotational velocity of star three (in km/s, internally this is star index 2). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,4. : (null)\n", - "vrot4 : The initial equatorial rotational velocity of star four (in km/s, internally this is star index 3). If 0.0, the Hurley et al 2000/2002 prescription is used to set the main-sequence velocity, so for a truly non-rotating star, set to something small (e.g. 0.001). See also vrot1,2,3. : (null)\n", - "Prot1 : The initial equatorial rotational velocity of star one (in km/s, internally this is star index 0). See also Prot2,3,4. : (null)\n", - "Prot2 : The initial equatorial rotational velocity of star two (in km/s, internally this is star index 1). See also Prot1,3,4. : (null)\n", - "Prot3 : The initial equatorial rotational period of star three (in days, internally this is star index 2). See also Prot1,2,4. : (null)\n", - "Prot4 : The initial equatorial rotational period of star four (in days, internally this is star index 3). See also Prot1,2,3. : (null)\n", - "inclination1 : The initial inclination of star one (in degrees). : (null)\n", - "inclination2 : The initial inclination of star two (in degrees). : (null)\n", - "inclination3 : The initial inclination of star three (in degrees). : (null)\n", - "inclination4 : The initial inclination of star four (in degrees). : (null)\n", - "B_1 : The initial magnetic field of star one (in Gauss, internally this is star index 0). : (null)\n", - "B_2 : The initial magnetic field of star two (in Gauss, internally this is star index 1). : (null)\n", - "B_3 : The initial magnetic field of star three (in Gauss, internally this is star index 2). : (null)\n", - "B_4 : The initial magnetic field of star four (in Gauss, internally this is star index 3). : (null)\n", - "B_inclination1 : The initial inclination of the magnetic field of star one (in degrees). : (null)\n", - "B_inclination2 : The initial inclination of the magnetic field of star two (in degrees). : (null)\n", - "B_inclination3 : The initial inclination of the magnetic field of star three (in degrees). : (null)\n", - "B_inclination4 : The initial inclination of the magnetic field of star four (in degrees). : (null)\n", - "stellar_type_1 : Set the stellar type of star 1 (internal index 0), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_2 : Set the stellar type of star 2 (internal index 1), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_3 : Set the stellar type of star 3 (internal index 2), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "stellar_type_4 : Set the stellar type of star 4 (internal index 3), usually MAIN_SEQUENCE (main sequence). Note that setting the stellar type only works for stars with both age=0 and core_mass=0, i.e. main sequence (hydrogen or helium), white dwarfs, black holes and neutrn stars. : (null)\n", - "max_stellar_type_1 : The maximum stellar type of star 1 (internal index 0). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value. \n", - " : (null)\n", - "max_stellar_type_2 : The maximum stellar type of star 2 (internal index 1). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_3 : The maximum stellar type of star 3 (internal index 2). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "max_stellar_type_4 : The maximum stellar type of star 4 (internal index 3). Evolution is stopped when the star reaches this stellar type. If this is negative, massless remnants are allowed, and the maximum stellar type is the absolute value.\n", - " : (null)\n", - "probability : The probability is a weighting applied to the star based on, say, the initial mass function. When running a grid of stars to simulate *all* stars, the summed probability of all the stars should be 1.0. : (null)\n", - "phasevol : The system's phase volume, used by binary_grid. : (null)\n", - "stellar_structure_algorithm : Set the stellar structure algorithm. 0=modified BSE (default), 1=none, 2=external function (must be defined by the calling code), 3=binary_c (not yet implemented). : (null)\n", - "solver : The type of solver. Default is the Forward-Euler (0), but could be RK2 (1), RK4 (2) or a predictor-corretor (3). : (null)\n", - "max_evolution_time : Set the maximum age for the stars (Myr). : (null)\n", - "max_model_number : Set the maximum number of models, ignored if 0 (default is 0). : (null)\n", - "monte_carlo_kicks : Turn on Monte-Carlo SN kicks. On (True) by default, and indeed other algorithms are probably broken. : (null)\n", - "disable_debug : Disables debug output. Only has an effect when DEBUG is 1, which probably requires a rebuild. Default FALSE. : (null)\n", - "timestep_logging : Turn on timestep logging (default is False). : (null)\n", - "rejects_in_log : Show timestep rejections in the main log (default is False). : (null)\n", - "vandenHeuvel_logging : Turn on van den Heuvel logging (default is False). : (null)\n", - "evolution_splitting : If True, turn on splitting of an evolutionary run if splitpoint (e.g. supernova) occurs. : (null)\n", - "disable_events : Whether to disable the new events code (defaults to False, so we use events by default)\n", - " : (null)\n", - "evolution_splitting_sn_eccentricity_threshold : Threshold eccentricity above which evolution splitting happens in a system with no SN kick. (0.01) : (null)\n", - "evolution_splitting_sn_n : Number of runs to split into when a SN occurs. : (null)\n", - "evolution_splitting_maxdepth : Max number of splits in an evolutionary run. : (null)\n", - "equation_of_state_algorithm : Set the equation of state algorithm. 0 = Paczynski. : (null)\n", - "opacity_algorithm : Set the opacity algorithm. 0 = Paczynski, 1 = Ferguson/Opal. : (null)\n", - "wind_mass_loss : Defines the algorithm used for stellar winds. 0 = none, 1 = Hurley et al. (2002), 2 = Schneider (2018). : 0\n", - "gbwind : Wind prescription for first red giant branch stars. 0=Reimers (Hurley et al 2000/2002; choose gb_reimers_eta=0.5 for their mass loss rate), 1=Schroeder+Cuntz 2005 (set gb_reimers_eta=1.0 for their mass loss rate). : (null)\n", - "postagbwind : Apply special post-(A)GB prescription. Default is POSTAGB_WIND_USE_GIANT which means we just use whatever is prescribed on the giant branch. Other options include: POSTAGB_WIND_NONE = 1 (no wind on the post (A)GB), POSTAGB_WIND_KRTICKA2020 = 2 which uses Krticka, Kubát and Krticková (2020, A&A 635, A173). : (null)\n", - "Teff_postAGB_min : The minimum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_max. (6000 K) : (null)\n", - "Teff_postAGB_max : The maximum temperature for which we apply post-(A)GB winds. See also Teff_postAGB_min. (120000 K) : (null)\n", - "mattsson_Orich_tpagbwind : Experimental : turns on Mattsson's TPAGB wind when the star is oxygen rich. Requires MATTSSON_MASS_LOSS. : (null)\n", - "magnetic_braking_factor : Multiplier for the magnetic braking angular momentum loss rate. : (null)\n", - "magnetic_braking_gamma : gamma factor in Rappaport style magnetic braking expression. : (null)\n", - "magnetic_braking_algorithm : Algorithm for the magnetic braking angular momentum loss rate. 0 = Hurley et al. 2002, 1 = Andronov, Pinnsonneault and Sills 2003, 2 = Barnes and Kim 2010 : (null)\n", - "helium_flash_mass_loss : Mass to be lost at the helium flash. : (null)\n", - "gb_reimers_eta : First red giant branch wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) : (null)\n", - "gbwindfac : Multiplier for the giant branch wind mass loss rate : (null)\n", - "tpagbwindfac : Multiplier for the TPAGB wind mass loss rate : (null)\n", - "eagbwindfac : Multiplier for the EAGB wind mass loss rate : (null)\n", - "nieuwenhuijzen_windfac : Multiplier for the Nieuwenhuijzen & de Jager wind mass loss rate : (null)\n", - "tpagbwind : Wind prescription during the TPAGB. 0=Karakas 2002 (a modified Vassiliadis and Wood 1993), 1=Hurley et al 2000/2002 (Vassiliadis and Wood 1993), 2=Reimers, 3=Bloecker, 4=Van Loon, 5=Rob's C-wind (broken?), 6,7=Vassiliadis and Wood 1993 (Karakas,Hurley variants respectively) when C/O>1, 8=Mattsson, 9 = Goldman et al. (2017), 10 = Beasor et al. (2020). : (null)\n", - "eagbwind : Wind prescription during the EAGB. 0=BSE (Hurley+2002, based on VW93), 1 = Goldman et al. (2017), 2 = Beasor et al. (2020). : (null)\n", - "wind_gas_to_dust_ratio : Gas to dust ratio used in wind calculations (e.g. Goldman et al. 2017). Typically 200 (Milky Way)-500 (Magellanic Clouds). Default is 200, approximately as in MW stars. : (null)\n", - "vwind_multiplier : Multiplier for the stellar wind velocity. : (null)\n", - "vwind_beta : Beta for stellar wind speed calculations, where vwind=sqrt(beta) * escape velocity. Default 0.125 (from BSE, Hurley et al. 2002). : (null)\n", - "superwind_mira_switchon : In the Vassiliadis and Wood (1993) AGB wind prescription, the superwind is turned on at a given Mira period, usually 500 days. You can vary when this switch-on happens with this parameter. : (null)\n", - "vw93_mira_shift : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate depends on the Mira period plus this offset. Requires VW93_MIRA_SHIFT. : (null)\n", - "vw93_multiplier : In the Vassiliadis and Wood (1993) AGB wind prescription, the wind loss rate is multiplied by this factor. Requires VW93_MULTIPLIER. : (null)\n", - "tpagb_reimers_eta : TPAGB Reimers wind multiplication factor, cf. eta in Reimers' mass loss formula. (This multiplies the 4e-13 in Reimers' formula, or the 8e-14 in Schroeder and Cuntz.) Note that Reimers is not the default TPAGB wind prescription. See also tpagbwind. : (null)\n", - "Tout_Pringle_1992_multiplier : Multiplier for the Tout & Pringle (1992) magnetic wind. (0.0) : (null)\n", - "artificial_mass_accretion_rate%d : Constant mass accretion rate for star <n>. : (null)\n", - "artificial_mass_accretion_rate_by_stellar_type%d : Constant mass accretion rate for stellar type <n>. : (null)\n", - "artificial_angular_momentum_accretion_rate%d : Constant angular momentum accretion for star <n>. : (null)\n", - "artificial_orbital_angular_momentum_accretion_rate : Constant angular momentum accretion rate on the orbit. : (null)\n", - "artificial_accretion_start_time : Time at which artificial accretion stars. Ignored if <0 (default is -1). : (null)\n", - "artificial_accretion_end_time : Time at which artificial accretion ends. Ignored if <0 (default is -1). : (null)\n", - "wr_wind : Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge's version of Vink's early-2000s wind (See Lynnette Dray's thesis, or John Eldridge's thesis) : (null)\n", - "wr_wind_fac : Massive-star (WR) wind multiplication factor. : (null)\n", - "wrwindfac : Massive-star (WR) wind multiplication factor. Synonymous with wr_wind_fac (which you should use instead). : (null)\n", - "BH_prescription : Black hole mass prescrition: relates the mass of a newly formed black hole to its progenitor's (CO) core mass. BH_HURLEY2002 = 0 = Hurley et al 2000/2002, BH_BELCZYNSKI = 1 = Belczynski (early 2000s), BH_SPERA2015 = Spera+ 2015, BH_FRYER12_DELAYED = 3 = Fryer et al. (2012) delayed prescription, BH_FRYER12_RAPID = 4 = Fryer et al. (2012) rapid prescription, BH_FRYER12_STARTRACK = 5 = Fryer et al. (2012) startrack prescription. : (null)\n", - "sn_kick_distribution_II : Set the distribution of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_ECAP : Set the distribution of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_NS_NS : Set the distribution of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IBC : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_GRB_COLLAPSAR : Set the distribution of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_TZ : Set the distribution of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_AIC_BH : Set the distribution of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_BH : Set the distribution of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_BH_NS : Set the distribution of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD : Set the distribution of speeds applied to any survivor of a hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_distribution_IA_Hybrid_HeCOWD_subluminous : Set the distribution of speeds applied to any survivor of a subluminous hybrid He-COWD SNIa explosion. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_II : Set the dispersion of speeds applied to kick type II core collapse supernova systems. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_ECAP : Set the dispersion of speeds applied to the remnants of electron-capture supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_NS_NS : Set the dispersion of speeds applied to kick neutron stars and black holes that survive a NS-NS merger. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IBC : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_GRB_COLLAPSAR : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes after a type Ib/c core-collapse supernova which is also a collapsar. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_TZ : Set the dispersion of speeds applied to kick newly-born neutron stars and black holes at the death of a Thorne-Zytkow object. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_AIC_BH : Set the dispersion of speeds applied to kick newly-born neutron stars black holes after accretion induced collapse of a neutron star. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_BH : Set the dispersion of speeds applied to black holes formed by the merger of two black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_BH_NS : Set the dispersion of speeds applied to black holes formed by the merger of a neutron star and a black holes. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD : Set the dispersion of speeds applied to the survivor of a SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_dispersion_IA_Hybrid_HeCOWD_subluminous : Set the dispersion of speeds applied to the survivor of a subluminous SNIa explosion of a hybrid He-COWD. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n", - "sn_kick_companion_IA_He : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_ELD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia ELD (sub-Mch) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an accretion induced collapse (supernova) occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_ECAP : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when an electron capture supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_He_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia helium merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_CHAND_Coal : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Ia Mch merger supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_NS_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron-star neutron-star merger. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_GRB_COLLAPSAR : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a GRB Collapsar (rapidly rotating SN Ibc) supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_HeStarIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a He-star Ia supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IBC : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type Ib/c supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_II : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type II supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IIa : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a type IIa supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_WDKICK : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a WD is kicked. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_TZ : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a Thorne-Zytkow object is formed. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_AIC_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a neutron star collapses to a black hole. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_BH : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when two black holes merge. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_BH_NS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the, kick on the companion when a black hole merges with a neutron star. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "sn_kick_companion_IA_Hybrid_HeCOWD_subluminous : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a subluminous hybrid He-COWD type Ia explosion. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n", - "wd_sigma : Set the speed at which white dwarfs are kicked when they form, in km/s. Default is zero (i.e. no kick). Requires WD_KICKS. : (null)\n", - "wd_kick_direction : Set the direction of white dwarf kicks. 0 = random, 1 = up, 2 = forward, 3 = backward, 4 = inward, 5 = outward. Requires WD_KICKS. : (null)\n", - "wd_kick_when : Decide when to kick a white dwarf. 0=at birth, 1=at first RLOF, 2=at given pulse number (see wd_kick_pulse_number), 3 at every pulse Requires WD_KICKS. : (null)\n", - "wd_kick_pulse_number : Apply a kick to a star at a desired pulse number on the TPAGB (i.e. pre-WD). Requires WD_KICKS. : (null)\n", - "minimum_helium_ignition_core_mass : Minimum helium core mass required to ignite helium in the case that the hydrogen envelope is stripped on the giant branch, e.g. to make an sdB or sdO star. Typically 0.4, if 0.0 then the BSE algorithm (based on the total mass) is used. : (null)\n", - "minimum_CO_core_mass_for_carbon_ignition : Minimum CO core mass for carbon ignition, assuming Mc,bagb>1.6Msun. Typically around 1.08Msun (Pols+1998). : (null)\n", - "minimum_CO_core_mass_for_neon_ignition : Minimum CO core mass for neon ignition. Typically around 1.42Msun. Stars that have cores that ignite carbon, but not neon explode in electon-capture supernovae. : (null)\n", - "minimum_mcbagb_for_nondegenerate_carbon_ignition : Minimum Mc,bagb (core mass at the base of the AGB) for non-degenerate carbon ignition. Typically around 2.25Msun (Pols+1998). : (null)\n", - "maximum_mcbagb_for_degenerate_carbon_ignition : Maximum Mc,bagb (core mass at the base of the AGB) for degenerate carbon ignition. Typically around 1.6Msun (Pols+1998). : (null)\n", - "max_neutron_star_mass : Maximum mass of a neutron star before it collapses to a black hole. Typically around 2Msun. : (null)\n", - "chandrasekhar_mass : The Chandrasekhar mass, usually 1.44Msun : (null)\n", - "delta_mcmin : A parameter to reduce the minimum core mass for third dredge up to occur on the TPAGB. As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "lambda_min : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. See also lambda_multiplier. : (null)\n", - "lambda_multiplier : A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min>0 implies that, once Mc>Mcmin (see delta_mcmin) lambda=Max(lambda(fit to Karakas), lambda_min). As used by Izzard and Tout (2004) to increase the amount of dredge up, hence carbon, in Magellanic cloud stars. : (null)\n", - "minimum_envelope_mass_for_third_dredgeup : The minimum envelope mass for third dredge up on the TPAGB. Early, solar metallicity models by Straniero et al suggested 0.5Msun is typical. However, circumstantial evidence (Izzard et al 2009) as well as newer models by Stancliffe and Karakas suggest that at low metallicity a value nearer zero is more appropriate. : (null)\n", - "mass_of_pmz : The mass in the partial mixing zone of a TPAGB star, using the Karakas 2012 tables. Ask Carlo Abate for more details, or see the series of papers Abate et al 2012, 2013, 2014. Requires NUCSYN and USE_TABULAR_INTERSHELL_ABUNDANCES_KARAKAS_2012. : (null)\n", - "c13_eff : The \"efficiency\" of partial mixing in a TPAGB star intershell region, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "mc13_pocket_multiplier : Multiplies the mass in the partial mixing zone of a TPAGB star, when using the s-process tables of Gallino, Busso, Lugaro et al. as provided by Maria Lugaro for the Izzard et al. 2009 paper. Requires NUCSYN and NUCSYN_S_PROCESS. : (null)\n", - "tides_convective_damping : Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989 : Zahn 1989 lambdas + Hut. : (null)\n", - "E2_prescription : Choose how to calculate the E2 structural parameter (used in tidal timescale calculations). 0=Hurley 1=Izzard (see Siess et al 2013). : (null)\n", - "dtfac : A parameter to decrease the timestep ONLY during the TPAGB phase. : (null)\n", - "hbbtfac : A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined) : (null)\n", - "wind_multiplier_%d : Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0. : (null)\n", - "wind_type_multiplier_%d : Wind multiplier for different types of wind (MS, GB, AGB, WR, LBV, OTHER), given by the integer %d. By default these are all 1.0. : (null)\n", - "pre_main_sequence : Set to True to turn on pre-main sequence evolution. Currently this is not a special stellar type, rather the first (small) fraction of the main sequence has increased radii to match the Railton et al 2014 fits to Tout's pre-main sequence stars. Requires PRE_MAIN_SEQUENCE. See also pre_main_sequence_fit_lobes. : (null)\n", - "pre_main_sequence_fit_lobes : Set to True force a pre-main sequence star into its Roche lobe. This is done by artificially aging it. Requires PRE_MAIN_SEQUENCE : (null)\n", - "small_envelope_method : Choose the method used to determine the stellar radius when the envelope mass is very thin. 0 = Hurley et al. (2002), 1 = Miller Bertolami et al. (2016+) for GB and AGB stars only. : (null)\n", - "timestep_modulator : Multiplier applied to the global timestep. Requires TIMESTEP_MODULATION. : (null)\n", - "timestep_multiplier%d : Multiplier applied to timestep limit <n>. : (null)\n", - "maximum_timestep : The maximum timestep (MYr). : (null)\n", - "zoomfac_multiplier_decrease : When a timestep is rejected, decrease the timestep by this factor (0.5). : (null)\n", - "zoomfac_multiplier_increase : When a timestep is rejected, zooms, then succeeds, increase the timestep by this factor (1.2). : (null)\n", - "maximum_timestep_factor : The maximum factor between two subsequent timesteps (1.2). : (null)\n", - "maximum_nuclear_burning_timestep : The maximum timestep (MYr) in any nuclear burning phase. : (null)\n", - "nova_retention_method : Algorithm used to calculate the amount of mass retained during a nova explosion. 0=use nova_retention_fraction. (other methods pending) : (null)\n", - "MINT_metallicity : This sets the metallicity for MINT. It is ignored if set to -1.0, the default, in which case the normal metallicity parameter is used. : (null)\n", - "gaia_Teff_binwidth : log10(Effective temperature) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_L_binwidth : log10(luminosity) bin width used to make Gaia-like HRDs\n", - " : (null)\n", - "gaia_colour_transform_method : Use this to select the method used to transform to Gaia colours from other colour schemes. GAIA_CONVERSION_UBVRI_UNIVARIATE_JORDI2010 = 0 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_UBVRI_BIVARIATE_JORDI2010 = 1 Jordi et al.'s bivariate UBVRI fits, GAIA_CONVERSION_ugriz_UNIVARIATE_JORDI2010 = 2 Jordi et al.'s univariate UBVRI fits, GAIA_CONVERSION_ugriz_BIVARIATE_JORDI2010 = 3 Jordi et al.'s univariate ugriv fits, GAIA_CONVERSION_UBVRI_UNIVARIATE_EVANS2018 = 4 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_ugriz_UNIVARIATE_EVANS2018 = 5 Evans et al. (2018, DR2) fits, GAIA_CONVERSION_UBVRI_RIELLO2020 = 6 Riello et al. (2020, DR3) fits, GAIA_CONVERSION_ugriz_RIELLO2020 = 7 Riello et al. (2020, DR3) fits. : (null)\n", - "rotationally_enhanced_mass_loss : Set to 1 to enable rotationally enhanced mass loss rate algorithms: 0= none, 1=formula cf. Langer models (=ROTATIONALLY_ENHANCED_MASSLOSS_LANGER_FORMULA), 2=limit accretion rate before wind loss is applied, 3 = both 1 and 2. See also rotationally_enhanced_exponent : (null)\n", - "AGB_core_algorithm : Algorithm to use for calculating AGB core masses. 0=Hurley et al. 2002 if no NUCSYN, Karakas 2002 if NUCSYN is defined; 1=Hurley et al. 2002 (overshooting models); 1=Karakas 2002 (non-overshooting models). : (null)\n", - "AGB_radius_algorithm : Algorithm to use for calculating radii on the TPAGB. : (null)\n", - "AGB_luminosity_algorithm : Algorithm to use for calculating luminosities on the TPAGB. : (null)\n", - "AGB_3dup_algorithm : Algorithm to use for calculating third dredge up efficiency on the TPAGB. : (null)\n", - "overspin_algorithm : Algorithm to determine what we do when a star is rotating at its breakup velocity. OVERSPIN_BSE (0) conservatively transfers the angular momentum back to the orbit. OVERSPIN_MASSLOSS uses the rotationally_enhanced_massloss parameter to lose mass which carries away the angular momentum. : (null)\n", - "rotationally_enhanced_exponent : The exponent (power) by which rotationally enhanced mass loss is raised. Requires ROTATIONALLY_ENHANCED_MASS_LOSS. See also rotationally_enhanced_mass_loss. : (null)\n", - "batchmode : Set the batchmode control variable. Use only if you know what you are doing! : (null)\n", - "speedtests : If True, turns on speedtests during version information (off by default). : (null)\n", - "use_fixed_timestep_%d : Set to True to use fixed timestep <n>, False to turn off. Fixed timesteps are on (this is True) by default. : (null)\n", - "task%d : Control tasks to be performed by binary_c. By default, these are all TRUE. For more information see binary_c_macros.h, particularly the BINARY_C_TASK_* macros. : (null)\n", - "orbiting_object : Usage: --orbiting_object mass,spinrate,central_object,period. : 1.0\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_log : If True, turn on orbiting-object log. : (null)\n", - "orbiting_objects_wind_accretion_multiplier : Multiplier for wind accretion on orbiting objects. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "orbiting_objects_close_pc_threshold : How close are orbiting objects allowed to be? Set this to be the absolute percentage difference minimum. : (null)\n", - "orbiting_objects_tides_multiplier : Multiplier for tidal torques on orbiting objects. : (null)\n", - "evaporate_escaped_orbiting_objects : If True, evaporate orbiting objects that have escaped the system. : (null)\n", - "RLOF_transition_objects_escape : If True, objects that escape their Roche lobe are ejected from the system, otherwise they are placed just outside the minimum stable orbit. : (null)\n", - "PN_resolve : If True, the timestep will be shortened to resolve better the PN phase (FALSE). : (null)\n", - "PN_resolve_minimum_luminosity : The luminosity above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_maximum_envelope_mass : The envelope mass below which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_resolve_minimum_effective_temperature : The minimum effective temperature above which extra time resolution for PNe is applied (see PN_resolve). : (null)\n", - "PN_fast_wind : If True, thin-envelope PNe will have fast winds (FALSE). : (null)\n", - "PN_fast_wind_dm_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_mdot_GB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_GB) : (null)\n", - "PN_fast_wind_dm_AGB : The envelope mass below which fast wind used during the AGB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "PN_fast_wind_mdot_AGB : The envelope mass below which fast wind used during the GB if PN_fast_wind is TRUE. (See also PN_fast_wind, PN_fast_wind_mdot_AGB) : (null)\n", - "HeWD_HeWD_ignition_mass : HeWD-HeWD mergers above this mass reignite helium. (0.3) : (null)\n", - "wind_Nieuwenhuijzen_luminosity_lower_limit : Above this luminosity we activate the Nieuwenhuijzen and de Jager wind (4e3 Lsun). : (null)\n", - "wind_LBV_luminosity_lower_limit : Above this luminosity we activate the LBV wind (6e5 Lsun). : (null)\n", - "colour%d : Sets colour %d (0 to NUM_ANSI_COLOURS-1) to the extended ANSI set colour you choose (1-255, 0 means ignore). The colour numbers are defined in src/logging/ansi_colours.h : (null)\n", - "apply_Darwin_Radau_correction : Apply Darwin-Radau correction to the moment of inertia to take rotation into account? : (null)\n", - "degenerate_core_merger_nucsyn : If TRUE, assume that in a degnerate core merger, energy is generated from nucleosynthesis of the whole core, and that this can disrupt the core. The BSE algorithm (Hurley et al. 2002) assumes this to be TRUE, but binary_c assumes FALSE by default. (FALSE) : (null)\n", - "degenerate_core_helium_merger_ignition : If TRUE, assume that when there is a degenerate helium core merger, the star reignites helium. This is required to make R-type carbon stars. (TRUE) : (null)\n", - "degenerate_core_merger_dredgeup_fraction : If non-zero, mix this fraction of the degenerate core during a merger.(0.0). : (null)\n", - "\n", - "############################################################\n", - "##### Section Binary\n", - "############################################################\n", - "separation : Set the orbital separation (actually the semi-major axis) of the binary (internal index 0, stellar indices 0 and 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_triple : Set the orbital separation (actually the semi-major axis) of the triple (internal index 1) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "separation_quadruple : Set the orbital separation (actually the semi-major axis) of the quadruple (internal index 2) in solar radii. Note that if the orbital period is given, it is used to calculate the separation. So if you want to set the separation instead, either do not set the orbital period or set the orbital period to zero (0.0). : (null)\n", - "orbital_period : Set the initial orbital period of the binary, stars 1 and 2 (internal indices 0 and 1) in days. See also separation. : (null)\n", - "orbital_period_triple : Set the initial orbital period of the triple in days. See also separation. : (null)\n", - "orbital_period_quadruple : Set the orbital period of the outer binary in a quadrulple (stars 3 and 4, internal indices 2 and 3) in days. See also separation. : (null)\n", - "eccentricity : Set the initial eccentricity of the binary orbit (stars 1 and 2, internal indices 0 and 1). : (null)\n", - "eccentricity_triple : Set the initial eccentricity of the triple orbit. : (null)\n", - "eccentricity_quadruple : Set the initial eccentricity of the outer binary of a quadruple (stars 3 and 4, internal indices 2 and 3). : (null)\n", - "incliniation : Set the initial orbital_inclination of the binary relative to zero. : (null)\n", - "incliniation_triple : Set the initial orbital_inclination of the triple orbit relative to zero. : (null)\n", - "incliniation_quadruple : Set the initial orbital_inclinationy of the quadruple orbit relative to zero. : (null)\n", - "orbital_phase : Set the initial orbital phase of the binary orbit. : (null)\n", - "orbital_phase_triple : Set the initial orbital phase of the triple orbit. : (null)\n", - "orbital_phase_quadruple : Set the initial orbital phase of the quadruple orbit. : (null)\n", - "argument_of_periastron : Set the initial argument of periastron of the binary orbit. : (null)\n", - "argument_of_periastron_triple : Set the initial argument of periastron of the triple orbit. : (null)\n", - "argument_of_periastron_quadruple : Set the initial argument of periastron of the quadruple orbit. : (null)\n", - "disc_timestep_factor : Factor that multiplies the natural timestep of a disc. : (null)\n", - "white_dwarf_cooling_model : White dwarf cooling model, relates age to luminosity. WHITE_DWARF_COOLING_MESTEL = 0 is Mestel's model, WHITE_DWARF_COOLING_MESTEL_MODIFIED = 1 is Hurley's modified Mestel model, WHITE_DWARF_COOLING_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "white_dwarf_radius_model : White dwarf radius model, radius to mass (and perhaps age). WHITE_DWARF_RADIUS_NAUENBERG1972 = 0 Nauenberg (1972), WHITE_DWARF_RADIUS_MU = 1 mu-dependent variant, WHITE_DWARF_RADIUS_CARRASCO2014 = 2 is based on Carrasco (2014) tables. : (null)\n", - "cbdisc_mass_loss_inner_viscous_accretion_method : Chooses where the mass that is accreted from the inner edge of a circumbinary disc goes, i.e. to which star. 0 = Young and Clarke 2015, 1 = Gerosa et al 2015, 2 = 50:50 (i.e. not dependence on mass). : (null)\n", - "cbdisc_inner_edge_stripping : If True, allow inner edge mass stripping. : (null)\n", - "cbdisc_end_evolution_after_disc : If True, stop evolution when a disc evaporates. : (null)\n", - "cbdisc_no_wind_if_cbdisc : If True, disable stellar winds when there is a circumbinary disc. : (null)\n", - "cbdisc_outer_edge_stripping : If True, allow outer edge mass stripping. : (null)\n", - "disc_n_monte_carlo_guesses : Number of monte carlo guesses to try in the disc solver if the normal list of guesses fails (0). : (null)\n", - "disc_log : If 1, turn on the disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log2d : If 1, turn on the 2d disc log. Requires DISC_LOG to be defined on build. : (null)\n", - "disc_log_dt : If non-zero, only allows disc log output every disc_log_dt Myr. : (null)\n", - "disc_log_directory : Directory into which disc logging is sent (must exist!). : /tmp/\n", - "post_ce_adaptive_menv : If TRUE, and if post_ce_objects_have_envelopes is TRUE, then the envelope mass of a post-CE star is such that it sits just inside its Roche lobe. If FALSE then a fixed (thin) envelope mass is applied that depends on the stellar type (see macros POST_CE_ENVELOPE_DM_GB, POST_CE_ENVELOPE_DM_EAGB and POST_CE_ENVELOPE_DM_TPAGB). : (null)\n", - "post_ce_objects_have_envelopes : If TRUE then post-common-envelope objects have thin envelopes. You need this if you are to have post-CE post-AGB stars. Note that this *may* be unstable, i.e. you may end up having many CEEs. The mass in the envelope is controlled by post_ce_adaptive_menv. TRUE by default. : (null)\n", - "PN_comenv_transition_time : post-common envelope transition time in years (1e2). This is the time taken to move from CEE ejection to Teff > 30e4 K. Hall et al. (2013) suggest ~100 years. : (null)\n", - "minimum_time_between_PNe : The minimum time (Myr) between planetary nebula detections. This prevents multiple, fast common envelopes triggering two PNe (0.1). : (null)\n", - "PN_Hall_fading_time_algorithm : In stars with low mass (<0.45Msun) cores, you can choose to set the PN fading time to either the minimum (PN_HALL_FADING_TIME_ALGORITHM_MINIMUM) or maximum (PN_HALL_FADING_TIME_ALGORITHM_MAXIMUM) as shown in Fig. 6 of Hall et al. (2013). : (null)\n", - "PPN_envelope_mass : Desired pre-planetary nebula (post-AGB) envelope mass. : (null)\n", - "cbdisc_eccentricity_pumping_method : Select from various eccentricity-pumping methods when there is a circumbinary disc. Requires DISCS. 0 = off. : (null)\n", - "cbdisc_viscous_photoevaporative_coupling : Set to 1 to turn on viscous-photoevaporative coupling in circumbinary discs. Requires DISCS. 0 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_NONE = off, 1 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_INSTANT instant, 2 = CBDISC_VISCOUS_PHOTOEVAPORATIVE_COUPLING_VISCOUS slow, viscous wind. : (null)\n", - "cbdisc_inner_edge_stripping_timescale : Defines the timescale for mass loss from by inner edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_in. : (null)\n", - "cbdisc_outer_edge_stripping_timescale : Defines the timescale for mass loss from by outer edge stripping. 0 = instant, 1 = very long, 2 = viscous at Revap_in, 3 = orbital at Revap_out. : (null)\n", - "cbdisc_viscous_L2_coupling : Set to 1 to turn on viscous-L2-loss coupling in circumbinary discs. Requires DISCS. 0 = off. : (null)\n", - "gravitational_radiation_model : Model for gravitational radiation from the system. 0=Hurley et al 2002 (Landau and Lifshitz 1951). 1 = as 0 but only when there is no RLOF. 2 = none. : (null)\n", - "nova_irradiation_multiplier : Multiplier for nova-radiative induced mass loss. (Shara+1986) : (null)\n", - "gravitational_radiation_modulator_J : Modulator for gravitational wave radiation angular momentum loss rate (1.0). : (null)\n", - "gravitational_radiation_modulator_e : Modulator for gravitational wave radiation eccentricity pumping rate (1.0). : (null)\n", - "nova_faml_multiplier : Nova friction-induced angular momentum loss multiplier. (Shara+1986) : (null)\n", - "RLOF_angular_momentum_transfer_model : Choose angular momentum transfer model in RLOF. 0=BSE (with discs), 1=conservative : (null)\n", - "post_SN_orbit_method : Method by which the post-SN orbit is calculated. 0=BSE, 1=Tauris&Taken 1998. : (null)\n", - "multiplicity : Multiplicity: 1=single star, 2=binary, 3=triple, 4=quadruple. : (null)\n", - "accretion_limit_eddington_steady_multiplier : Steady accretion is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_steady_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_LMMS_multiplier : Accretion from a low-mass, convective, main_sequence star is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_LMMS_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_eddington_WD_to_remnant_multiplier : Accretion from a WD onto a remnant star (e.g. another white dwarf, neutron star or black hole) is limited by the Eddington instability, with limiting rate given by the accretion_limit_eddington_WD_to_remnant_multiplier * the normal (spherically symmetric) Eddington rate. This is known in the trade as the Eddington factor, and anything greater than 1.0 potentially gives you super-Eddington accretion. : (null)\n", - "accretion_limit_thermal_multiplier : Mass transfer onto a MS, HG or CHeB star is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "accretion_limit_dynamical_multiplier : Mass transfer is limited by the accretor's dynamical rate times this multiplier. : (null)\n", - "donor_limit_envelope_multiplier : Mass transfer by RLOF is limited by this fraction of the donor's envelope mass per timestep : (null)\n", - "donor_limit_thermal_multiplier : Mass transfer by RLOF is limited by the accretor's thermal rate times this multiplier. : (null)\n", - "donor_limit_dynamical_multiplier : Mass transfer by RLOF is limited by the donor's dynamical rate times this multiplier. : (null)\n", - "Bondi_Hoyle_accretion_factor : Wind accretion rate, as calculated by the Bondi-Hoyle-Littleton formula, multiplcation factor. Hurley et al 2002 use 1.5, which is the default. : (null)\n", - "tidal_strength_factor : A modulator for the tidal strength. If this factor > 1 then tides are stronger, i.e. tidal timescales are reduced. : (null)\n", - "hachisu_qcrit : Critical q=Maccretor/Mdonor above which Hachisu's disk wind turns on. : (null)\n", - "hachisu_disk_wind : Set to True to turn on Hachisu's disk wind when material accretes too fast onto a white dwarf. This helps to make more SNeIa. See also hachisu_qcrit. : (null)\n", - "mass_accretion_for_eld : The mass that must be accreted onto a COWD for it to ignite as an edge-lit detonation SNIa. : (null)\n", - "WDWD_merger_algorithm : Algorithm to be used when merging two white dwarfs. 0 = Hurley et al. (2002), 1 = Perets+ (2019), 2 = Chen+ (2016, todo) : (null)\n", - "type_Ia_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from Chandrasekhar-mass exploders. 0 = DD7 (Iwamoto 1999), 1 = Seitenzahl 2013 3D hydro yields (you must also set Seitenzahl2013_model) : (null)\n", - "Seitenzahl2013_model : Which of Seitenzahl et al. 2013's models to use? One of N1,N3,N5,N10,N20,N40,N100L,N100,N100H,N150,N200,N300C,N1600,N1600C,N100_Z0.5,N100_Z0.1,N100_Z0.01 (defaults to N100). : N1\n", - "type_Ia_sub_MCh_supernova_algorithm : Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.) : (null)\n", - "max_HeWD_mass : The maximum mass a HeWD can have before it ignites helium (0.7). : (null)\n", - "merger_mass_loss_fraction : Fraction of the total mass which is lost when stars merge. : (null)\n", - "merger_angular_momentum_factor : When two stars merge the resulting single star retains a fraction of the total system angular momentum (or the critical spin angular momentum, if it is smaller) multiplied by this factor. : (null)\n", - "wind_angular_momentum_loss : Prescription for losing angular momentum in a stellar wind. 0=Hurley et al 2002 ('Tout') prescription, 1=lw i.e. a factor multiplying the specific orbital angular momentum, 2=lw hybrid for fast winds. Set wind_djorb_fac to the desired factor.. : (null)\n", - "wind_djorb_fac : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=0 (the Tout/Hurley et al 2002 prescription). See wind_angular_momentum_loss. : (null)\n", - "lw : Factor multiplying angular momentum loss in a stellar wind when wind_angular_momentum_loss=1,2 (the 'lw' prescription). See wind_angular_momentum_loss. : (null)\n", - "VW93_EAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "VW93_TPAGB_wind_speed : Activate this to use Vassiliadis and Wood (1993) wind speed during the EAGB. : (null)\n", - "use_periastron_Roche_radius : Set this to True to use the Roche lobe radius at periastron, rather than (the default to) assume a circular orbit. This will be useful one day when we treat RLOF in eccentric orbits properly, hopefully. : (null)\n", - "qcrit_LMMS : Apply critical q=Mdonor/Maccretor value for low-mass main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for non-degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_LMMS : Apply critical q=Mdonor/Maccretor value for (low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_MS : Apply critical q=Mdonor/Maccretor value for (non-low mass) main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HG : Apply critical q=Mdonor/Maccretor value for Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_GB : Apply critical q=Mdonor/Maccretor value for first red giant branch stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_CHeB : Apply critical q=Mdonor/Maccretor value for core helium burning stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_EAGB : Apply critical q=Mdonor/Maccretor value for early-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_TPAGB : Apply critical q=Mdonor/Maccretor value for TP-AGB stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeMS : Apply critical q=Mdonor/Maccretor value for helium main sequence stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeHG : Apply critical q=Mdonor/Maccretor value for helium Hertzsprung gap stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeGB : Apply critical q=Mdonor/Maccretor value for helium red giant stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_HeWD : Apply critical q=Mdonor/Maccretor value for helium white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_COWD : Apply critical q=Mdonor/Maccretor value for carbon-oxygen white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_ONeWD : Apply critical q=Mdonor/Maccretor value for oxygen-neon white dwarf stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_NS : Apply critical q=Mdonor/Maccretor value for neutron stars to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "qcrit_degenerate_BH : Apply critical q=Mdonor/Maccretor value for black holes to determine the stability of Roche-lobe overflow for degenerate accretors. See also qcrits_*, qcrits_degenerate_*. : (null)\n", - "mass_for_Hestar_Ia_upper : Only helium stars below this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_lower. : (null)\n", - "mass_for_Hestar_Ia_lower : Only helium stars above this mass can explode as SNIa. Default is zero, i.e. it never happens. See also mass_for_Hestar_Ia_upper. : (null)\n", - "alphaCB : Circumbinary disk viscosity parameter, alpha. : (null)\n", - "minimum_donor_menv_for_comenv : Minimum donor envelope mass for common envelope evolution to be triggered (Msun). Default 0. : (null)\n", - "comenv_prescription : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_prescription%d : Use this to choose which common envelope prescription you should use. 0=Hurley et al 2002 (based on the PaczyÅ„ski energy model) or 1=Nelemans and Tout (angular momentum model). See also alpha_ce, comenv_ms_accretion_mass, comenv_ms_accretion_fraction, comenv_ns_accretion_fraction, comenv_ns_accretion_mass, nelemans_gamma, nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs, lambda_ce, lambda_ionisation. : (null)\n", - "comenv_ejection_spin_method : When a common envelope is ejected, we need to decide how fast the stars are left spinning. COMENV_EJECTION_SPIN_METHOD_DO_NOTHING (0) is the default, this just leaves the stars/stellar cores spinning with the same spin rate (omega = angular velocity) with which they entered the common envelope phase. COMENV_EJECTION_SPIN_METHOD_SYCHRONIZE instead tidally synchronizes the stars with their new orbital angular velocity. : (null)\n", - "comenv_merger_spin_method : When a common envelope binary merges, we need to decide how fast the resulting single star is left spinning. COMENV_MERGER_SPIN_METHOD_SPECIFIC (0) is the default, this preserves angular momentum but limits the specific angular momentum of the merged star to the specific angular momentum of the system at the onset of common envelope evolution. COMENV_MERGER_SPIN_METHOD_CONSERVE_ANGMOM (1) sets the merger's angular momentum to be that of the system at the onset of common envelope evolution (which means the star may be rotating supercritically). COMENV_MERGER_SPIN_METHOD_CONSERVE_OMEGA (2) sets the spin rate (angular frequency = omega) of the merged star to be that of the orbit just at the onset of common envelope evolution. : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "comenv_ms_accretion_fraction : Experimental. During common envelope evolution, a main sequence may accrete a fraction of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_mass. : (null)\n", - "comenv_ns_accretion_mass : Experimental. During common envelope evolution, a neutron star may accrete some of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_fraction. : (null)\n", - "comenv_ns_accretion_fraction : Experimental. During common envelope evolution, a neutron star may accrete a fraction of the envelope's mass. Requires COMENV_NS_ACCRETION. See also comenv_ns_accretion_mass. : (null)\n", - "alpha_ce : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "alpha_ce%d : Common envelope energy formalism parameter. A fraction alpha of the orbital energy is used to eject the envelope. See Hurley et al 2002 for details. : (null)\n", - "lambda_ce : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to LAMBDA_CE_DEWI_TAURIS == -1 binary_c uses the Dewi and Tauris fits instead, LAMBDA_CE_WANG_2016 == -2 uses the formalism of Wang, Jia and Li (2016), if LAMBDA_CE_POLYTROPE == -3 then a polytropic formalism is used (see also comenv_splitmass) and if LAMBDA_CE_KLENCKI_2020 == -4 use Klencki et al. (2020). : (null)\n", - "lambda_ce%d : Common envelope parameter. The binding energy of the common envelope is G*M*Menv/(lambda*R). Typically this is taken to be 0.5, but if set to -1 binary_c uses the Dewi and Tauris fits instead, -2 uses the formalism of Wang, Jia and Li (2016) and if -3 then a polytropic formalism is used (see also comenv_splitmass). : (null)\n", - "comenv_splitmass : When lambda_ce=-2, the envelope binding energy, lambda, is calculated using a polytropic formalism. The comenv_splitmass defines the point, in the units of the core mass, above which material is ejected. : (null)\n", - "nelemans_recalc_eccentricity : If True, recalculate the eccentricity after angular momentum is removed. : (null)\n", - "comenv_post_eccentricity : Eccentricity remaining after common envelope ejection. : (null)\n", - "nelemans_gamma : Set the fraction of the orbital specific angular momentum that is used to eject the common envelope according to the Nelemans and Tout prescription. See also nelemans_minq, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_minq : Only activate the Nelemans and Tout common envelope prescription for q>nelemans_minq. See also nelemans_gamma, nelemans_max_frac_j_change, nelemans_n_comenvs. : (null)\n", - "nelemans_max_frac_j_change : Maximum fractional angular momentum change in the Nelemans and Tout common envelope prescription. See also nelemans_gamma, nelemans_minq, nelemans_n_comenvs. : (null)\n", - "nelemans_n_comenvs : Set the maximum number of common envelope ejections allowed to follow the Nelemans and Tout prescription, after which the standard alpha prescription is used. : (null)\n", - "lambda_ionisation : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_ionisation%d : A fraction lambda_ionisation of the recombination energy in the common envelope goes into ejecting the envelope. This is usually 0.0, but a positive value can make a big difference to the outcome of common envelope evolution. : (null)\n", - "lambda_enthalpy : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "lambda_enthalpy%d : A fraction of the enthalpy to be included in the common envelope evolution binding energy. Only used for the Wang 2016 prescription (so far). : (null)\n", - "cbdisc_albedo : Circumbinary-disc albedo. Requires DISCS. : (null)\n", - "cbdisc_gamma : Circumbinary disc gamma (equation of state) parameter. Requires DISCS. : (null)\n", - "cbdisc_alpha : Circumbinary disc alpha (viscosity) parameter. Requires DISCS. : (null)\n", - "cbdisc_kappa : Circumbinary disc kappa (opacity) parameter. Requires DISCS. : (null)\n", - "cbdisc_minimum_evaporation_timescale : Circumbinary disc minimum evaporation timescale (years). If (slow, not edge stripped) mass loss would evaporate the disc on a timescale less than this, simply evaporate the disc immediated. Usually set to 1y, ignore if zero. Requires DISCS. : (null)\n", - "cbdisc_torquef : Circumbinary disc binary torque multiplier. Requires DISCS. : (null)\n", - "cbdisc_max_lifetime : Circumbinary disc maximum lifetime (years, ignored if 0). Requires DISCS. : (null)\n", - "cbdisc_init_dM : On cbdisc start, reduce mass by a fraction dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_init_dJdM : On cbdisc start, reduce angular momentum by a fraction dJ/dM*dM if it won't converge. Requires DISCS. : (null)\n", - "cbdisc_mass_loss_constant_rate : Circumbinary disc constant mass loss rate (Msun/year). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_FUV_multiplier : Circumbinary disc FUV mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_Xray_multiplier : Circumbinary disc X-ray mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_ram_pressure_multiplier : Circumbinary disc interstellar medium ram pressure stripping mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_ISM_pressure : Circumbinary disc interstellar medium ram pressure in units of Boltzmann constant per Kelvin (I think...). Requires DISCS. Typically 3000.0. See e.g. http://www.astronomy.ohio-state.edu/~pogge/Ast871/Notes/Intro.pdf page 15 or https://arxiv.org/pdf/0902.0820.pdf Fig. 1 (left panel). : (null)\n", - "cbdisc_mass_loss_inner_viscous_multiplier : Circumbinary disc inner edge viscous mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_mass_loss_inner_viscous_angular_momentum_multiplier : Circumbinary disc inner edge viscous angular momentum multiplier (no units). The inner edge angular momentum Requires DISCS. : (null)\n", - "cbdisc_resonance_multiplier : Circumbinary disc resonant interaction multiplier, affects eccentricity pumping and angular momentum rates. Requires DISCS. : (null)\n", - "cbdisc_resonance_damping : Circumbinary disc resonant interaction damping: should be on (True) to damp the l=1, m=2 resonance when the disc inner edge lies outside the resonance location. Requires DISCS. : (null)\n", - "cbdisc_fail_ring_inside_separation : If True, while converging on a structure, circumbinary discs with Rring < the binary separation are immediately failed. : (null)\n", - "cbdisc_mass_loss_inner_L2_cross_multiplier : Circumbinary disc inner edge L2-crossing mass loss rate multiplier (no units). Requires DISCS. : (null)\n", - "cbdisc_minimum_luminosity : Circumbinary disc minimum luminosity. If the disc becomes dimmer than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_mass : Circumbinary disc minimum mass. If the disc becomes less massive than this, the disc is evaporated instantly. Requires DISCS. : (null)\n", - "cbdisc_minimum_fRing : Circumbinary disc minimum fRing. If the disc becomes a ring, and fRing = |Rout/Rin-1| < this value (and this value is non-zero), the disc is evaporated instantly. Requires DISCS. : (null)\n", - "comenv_disc_angmom_fraction : If >0 Fraction of the common envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the moments of inertia to calculate (deprecated), if -2 use the common envelope's specific angular momentum, if -3 uses the L2 point at the end of the common envelope to set the angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "comenv_disc_mass_fraction : Fraction of the common envelope's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_COMENV. : (null)\n", - "wind_disc_angmom_fraction : If >0 Fraction of the wind envelope's angular momentum that goes into the circumbinary disc. If -1 then uses the L2 point's specific angular momentum. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "wind_disc_mass_fraction : Fraction of the stellar wind's mass that goes into the circumbinary disc. Requires DISCS and DISCS_CIRCUMBINARY_FROM_WIND. : (null)\n", - "WRLOF_method : Choose whether and how to apply wind-Roche-lobe-overflow. 0=none, 1=q-dependent, 2=quadratic See Abate et al 2013/14 for details. Requires WRLOF_MASS_TRANSFER. : (null)\n", - "minimum_timestep : The minimum timestep (Myr). : (null)\n", - "timestep_solver_factor : Factor applied in timestep_limits, e.g. to prevent X changing too fast by comparing to X/dX/dt, which is usually 1 but can be higher to lengthen timesteps when using an alternative solver. : (null)\n", - "RLOF_mdot_factor : Multiplier applied to the mass transfer rate during Roche-lobe overflow. Requires RLOF_MDOT_MODULATION. : (null)\n", - "RLOF_f : Factor to enlarge a Roche lobe, nominally because of radiation pressure (see Dermine et al paper). Requires RLOF_RADIATION_CORRECTION. : (null)\n", - "minimum_separation_for_instant_RLOF : If True, instead of evolving the system just report the minimum separation (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_orbital_period_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "minimum_orbital_period_for_instant_RLOF : If True, instead of evolving the system just report the minimum orbital period (on the zero-age main sequence) that would lead to instant RLOF. Used by binary_grid. See also minimum_separation_for_instant_RLOF and maximum_mass_ratio_for_instant_RLOF. : (null)\n", - "maximum_mass_ratio_for_instant_RLOF : If True, instead of evolving the system just report the maximum mass ratio (on the zero-age main sequence) that would lead to instant RLOF, given M1 and orbital period. Used by binary_grid. See also minimum_separation_for_instant_RLOF and minimum_orbital_period_for_instant_RLOF. : (null)\n", - "RLOF_method : Use RLOF_method to choose the algorithm you use for Roche-lobe overflow mass loss rate calculations. 0=Hurley et al 2002, 1=Adaptive (for radiative stars) R=RL method, 2=Ritter (probably broken), 3=Claeys etal 2014 variant on Hurley et al 2002. : (null)\n", - "RLOF_interpolation_method : When a star overflows its Roche lobe, it always has R>RL because of the limited time resolution of the simulation. Binary_c then uses an algorithm to get back to when R~RL (within a desired tolerance, set in RLOF_ENTRY_THRESHOLD which is usually 1.02, i.e. overflow of 2%). You can choose algorithm 0, the Hurley et al 2002 method which reverses time (i.e. uses a Newton-like scheme), or 1 to use the binary_c method which rejects a timestep (and hence does no logging on that timestep) and repeats with half the timestep until R~RL. The latter is now the default, because this means there are no negative timesteps which break various other algorithms (e.g. nucleosynthesis). : (null)\n", - "nova_retention_fraction : The mass accreted during a nova as fraction of mass transferred : (null)\n", - "beta_reverse_nova : The fraction of mass ejected in a nova explosion which is accreted back onto the companion star. Set to -1 to automatically calculate based on a geometric argument, or 0 or positive to set the value. : (null)\n", - "WD_accretion_rate_novae_upper_limit_hydrogen_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is hydrogen rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_helium_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_novae_upper_limit_other_donor : Upper limit of the stable mass transfer rate onto a white dwarf that leads to novae when the donor is neither hydrogen nor helium rich : above this rate the mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a hydrogen-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_helium_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope with a helium-rich donor. Below this mass transfer leads to stable burning. : (null)\n", - "WD_accretion_rate_new_giant_envelope_lower_limit_other_donor : Lower limit of the mass transfer rate onto a white dwarf that leads to a the formation of a new giant envelope when the donor is neither hydrogen nor helium rich. Below this mass transfer leads to stable burning. : (null)\n", - "CRAP_parameter : Tidally enhanced mass loss parameter. See Tout and Eggleton's paper on the subject. (Was the parameter bb). : (null)\n", - "individual_novae : If individual_novae is True, novae are resolved such that each explosion is performed separtaely. : (null)\n", - "nova_timestep_accelerator_num : The nova timestep is accelerated if the nova number exceeds nova_timestep_accelerator_num. If zero or negative, acceleration is off. See also nova_timestep_accelerator_index and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_index : The index at which the nova timestep is accelerated. A larger value gives longer timesteps. See also nova_timestep_accelerator_num and nova_timestep_accelerator_max. Only used if individual_novae is on.\n", - " : (null)\n", - "nova_timestep_accelerator_max : The nova timestep is accelerated by a factor that is capped at nova_timestep_accelerator_max. This parameter is ignored if it is zero or negative. See also nova_timestep_accelerator_num and nova_timestep_accelerator_index. Only used if individual_novae is on.\n", - " : (null)\n", - "nonconservative_angmom_gamma : Mass lost from the system (but NOT from a stellar wind) takes a fraction gamma of the orbital angular momentum with it. Set to -1 to take the specific angular momentum of the donor star. Set to -2 to take super-Eddington, nova and disk-wind angular momenta as if a wind from the accretor. : (null)\n", - "max_stellar_angmom_change : Maxmimum fractional change in stellar angular momentum allowed before a timestep is rejected (0.05). : (null)\n", - "comenv_ms_accretion_mass : Experimental. During common envelope evolution, a main sequence star may accrete some of the envelope's mass. Requires COMENV_MS_ACCRETION. See also comenv_ms_accretion_fraction. : (null)\n", - "\n", - "############################################################\n", - "##### Section Nucsyn\n", - "############################################################\n", - "third_dup : If True, enables third dredge up. Requires NUCSYN and NUCSYN_THIRD_DREDGE_UP. : (null)\n", - "third_dup_multiplier : Usage: --third_dup_multiplier <i> <f>. Multiplies the abundance of element <i> by <f> during third dredge up. : 1.0\n", - "NeNaMgAl : Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB. : Ignore\n", - "nucsyn_network%d : Usage: --nucsyn_network%d <boolean>. Turn a nuclear network on or off. : (null)\n", - "nucsyn_network_error%d : Usage: --nucsyn_network_error%d <f>. Threshold error in nuclear network solver for network %d. : (null)\n", - "nucreacmult%d : Usage: --nucreacmult%d <f>. Multiply nuclear reaction given by the integer %d (integer) by f (float). : (null)\n", - "nucsyn_metallicity : This sets the metallicity of the nucleosynthesis algorithms, i.e. the amount (by mass) of matter which is not hydrogen or helium. Usually you'd just set this with the metallicity parameter, but if you want the nucleosynthesis to be outside the range of the stellar evolution algorithm (e.g. Z=0 or Z=0.04) then you need to use nucsyn_metallicity. That said, it's also outside the range of some of the nucleosynthesis algorithms as well, so you have been warned! : (null)\n", - "nucsyn_solver : Choose the solver used in nuclear burning. 0 = KAPS_RENTROP is a Kaps-Rentrop scheme (fast, not great for stiff problems), 1 = LSODA (Adams/BSF switcher), 2 = CVODE library (https://computing.llnl.gov/projects/sundials. Default 0. : 0\n", - "initial_abundance_mix : initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993 : 0\n", - "init_abund : Usage: --init_abund <i> <X>. Sets the initial abundance of isotope number <i> to mass fraction <X>. : 0.02\n", - "init_abund_mult : Usage: --init_abund_mult <i> <f>. Multiplies the initial abundance of isotope number <i> by <f>. : 1.0\n", - "init_abund_dex : Usage: --init_abund_dex <i> <f>. Changes the initial abundance of isotope number <i> by <f> dex. : 0.0\n", - "init_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "initial_abunds_only : If True, outputs only the initial abundances, then exits. : (null)\n", - "no_thermohaline_mixing : If True, disables thermohaline mixing. : (null)\n", - "lithium_GB_post_Heflash : Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_GB_post_1DUP : Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "lithium_hbb_multiplier : Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES. : (null)\n", - "angelou_lithium_decay_function : Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are : 0 expoential (see angelou_lithium_decay_time). : (null)\n", - "angelou_lithium_LMMS_time : Time at which lithium manufacture is triggered in a low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_time : Time at which lithium manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_time : Time at which lithium manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_time : Time at which lithium manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_time : Time at which lithium manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_time : Time at which lithium manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_time : Time at which lithium manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_decay_time : Decay time for surface lithium abundance during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_decay_time : Decay time for surface lithium abundance on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_decay_time : Decay time for surface lithium abundance on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_decay_time : Decay time for surface lithium abundance on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_decay_time : Decay time for surface lithium abundance during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_decay_time : Decay time for surface lithium abundance on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_decay_time : Decay time for surface lithium abundance on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_LMMS_massfrac : Lithium mass fraction when its manufacture is triggered during the low-mass (convective) main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_MS_massfrac : Lithium mass fraction when its manufacture is triggered on the main sequence (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_HG_massfrac : Lithium mass fraction when its manufacture is triggered on the Hertzsprung gap (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_GB_massfrac : Lithium mass fraction when its manufacture is triggered on the giant branch (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_CHeB_massfrac : Lithium mass fraction when its manufacture is triggered during core helium burning (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_EAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the early AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_TPAGB_massfrac : Lithium mass fraction when its manufacture is triggered on the thermally pulsing AGB (Myr). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0 (for the start, use 1e-6).\n", - " : (null)\n", - "angelou_lithium_vrot_trigger : Equatorial rotational velocity at which lithium manufacture is triggered (km/s). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "angelou_lithium_vrotfrac_trigger : Fraction of Keplerian (breakup) equatorial rotational velocity at which lithium manufacture is triggered (must be <1, ignored if 0). Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Ignored if 0.\n", - " : (null)\n", - "\n", - "############################################################\n", - "##### Section Output\n", - "############################################################\n", - "cf_amanda_log : Enable logging to compare to Amanda's models. : (null)\n", - "float_overflow_checks : Turn on to enable floating-point overflow checks at the end of each timestep, if they are available. 0=off, 1=warn (stderr) on failure, 2=exit on failure (0) : (null)\n", - "save_pre_events_stardata : Enable this to save a copy of stardata to stardata->pre_events_stardata just before an event. : (null)\n", - "disable_end_logging : Disable the logging that happens at the end of the evolution. : (null)\n", - "ensemble : Turn on ensemble calculations and output. : (null)\n", - "ensemble_filters_off : Sets all ensemble filters to be off (FALSE) - these can then be enabled one-by-one with --ensemble_filter_[...] TRUE. : (null)\n", - "ensemble_filter_%d : Turn on or off ensemble filter <n>. For a list of filters, see ensemble_macros.h. : (null)\n", - "ensemble_legacy_ensemble : Turn on ensemble legacy population output. : (null)\n", - "legacy_yields : Turn on ensemble legacy yield output. : (null)\n", - "ensemble_defer : Defer ensemble output. : (null)\n", - "ensemble_dt : When doing ensemble calculations, data are stored and/or output every ensemble_dt Myr. See also ensemble, ensemble_logdt, ensemble_startlogtime. : (null)\n", - "ensemble_logdt : When doing ensemble calculations, and when logensembletimes is set, the ensemble is stored/output every ensemble_logdt Myr. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_startlogtime : Start log ensemble data storage/calculations/output at ensemble_startlogtime. See also ensemble, ensemble_dt, ensemble_startlogtime. : (null)\n", - "ensemble_logtimes : When doing ensemble calculations/output, set this to act at log times rather than linear times. : (null)\n", - "postagb_legacy_logging : Turn on post-AGB legacy logging. : (null)\n", - "disc_legacy_logging : Turn on disc legacy logging. : (null)\n", - "EMP_logg_maximum : Maximum logg that EMP stars are allowed to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_minimum_age. : (null)\n", - "EMP_minimum_age : Minimum age that EMP stars are required to have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum. : (null)\n", - "EMP_feh_maximum : Maximum [Fe/H] that an EMP stars may have. See Izzard et al 2009. See also CEMP_cfe_minimum, NEMP_nfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default -2.0. : (null)\n", - "CEMP_cfe_minimum : Minimum [C/Fe] that CEMP stars are required to have. See Izzard et al 2009. See also NEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 0.7. : (null)\n", - "NEMP_cfe_minimum : Minimum [N/Fe] that NEMP stars are required to have. See Izzard et al 2009, Pols et al. 2012. See also CEMP_cfe_minimum, EMP_logg_maximum, EMP_minimum_age. Default 1.0. : (null)\n", - "thick_disc_start_age : Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr. : (null)\n", - "thick_disc_end_age : Lookback time for the end of the thick disc star formation, e.g. 4e3 Myr. Units = Myr. : (null)\n", - "thick_disc_logg_min : Minimum logg for thick disc giants to be logged. : (null)\n", - "thick_disc_logg_max : Maximum logg for thick disc giants to be logged. : (null)\n", - "escape_velocity : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 1e9 km/s. See also escape_fraction. : (null)\n", - "escape_fraction : A parameter used in constructing galactic chemical evolution (GCE) models. If the stellar wind velocity exceeds this value, any chemical yield from the wind is ignored, i.e. assumed lost. (km/s) Requires NUCSYN_GCE_OUTFLOW_CHECKS. Default 0.0. See also escape_velocity. : (null)\n", - "colour_log : If set to True, thelog is coloured with ANSI colour formatting. Requires FILE_LOG to be defined. : \n", - "log_filename : Location of the output logging filename. If set to \"/dev/null\" then there is no logging. : \n", - "log_arrows : Add arrows to the output log to show whether values are increasing or decreasing. : \n", - "stopfile : File which, when it exists, will stop the current binary_c repeat run. : \n", - "stardata_dump_filename : Location of the stardata dump file. : \n", - "stardata_load_filename : Location of the stardata file to load. : \n", - "api_log_filename_prefix : Location of the output logging filename prefix for the API. If set to \"/dev/null\" then there is no logging. : 0\n", - "hrdiag_output : Set to True to output high time-resolution Hertzstrpung-Russell diagram information. Requires HRDIAG. : (null)\n", - "internal_buffering : Experimental. Set to non-zero values to implement internal buffering prior to output. For use with binary_grid, you shouldn't really be playing with this. : (null)\n", - "eccentric_RLOF_model : Chooses which model is used to handle eccentric RLOF. Default is RLOF_ECCENTRIC_AS_CIRCULAR, i.e. ignore the eccentricity. Note: requires force_corotation_of_primary_and_orbit to be FALSE.\n", - " : (null)\n", - "force_circularization_on_RLOF : If True forces circularization of stars and orbit when RLOF starts, this is as in the BSE algorithm. (True) : (null)\n", - "wtts_log : If True, enables log file output for WTTS2. : (null)\n", - "fabian_imf_log_time : Time at which to output for Fabian Schneider's IMF project. Requires FABIAN_IMF_LOG : Ignore\n", - "fabian_imf_log_timestep : Timestep for Fabian Schneider's IMF project logging. Requires FABIAN_IMF_LOG : Ignore\n", - "version : Display binary_c version and build information. Also performs timing tests. : Ignore\n", - "dumpversion : Display binary_c version number (short format). : Ignore\n", - "version_only : Display binary_c version number and build information, but do not perform timing tests or anything that requires stardata to be non-NULL. : Ignore\n", - "tides_diagnosis_log : Enable logging to test MINT tides. Requires MINT. Choices are: 0 disabled, 1 enable lambda test. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Input\n", - "############################################################\n", - "MINT_dir : Location of MINT algorithm data. : \n", - "MINT_data_cleanup : Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things. : \n", - "MINT_MS_rejuvenation : Turn on or off (hydrogen) main-sequence rejuvenation. : \n", - "MINT_remesh : Turn on or off MINT's remeshing. : \n", - "MINT_use_ZAMS_profiles : Use chemical profiles at the ZAMS if MINT_use_ZAMS_profiles is TRUE, otherwise set homogeneous abundances. (Default is TRUE, so we use the profiles if they are available.) : \n", - "MINT_fallback_to_test_data : If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE) : \n", - "MINT_disable_grid_load_warnings : Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data. : \n", - "MINT_Kippenhahn : Turn on or off MINT's Kippenhahn diagrams. If 0, off, if 1, output star 1 (index 0), if 2 output star 2 (index 1). Default 0. : \n", - "MINT_nshells : Set the initial number of shells MINT uses in each star when doing nuclear burning. Note: remeshing can change this. If MINT_nshells is 0, shellular burning and other routines that require shells will not be available. (200) : \n", - "MINT_maximum_nshells : Set the maximum number of shells MINT uses in each star when doing nuclear burning. Note that this will be limited to MINT_HARD_MAX_NSHELLS. (1000) : \n", - "MINT_minimum_nshells : Set the minimum number of shells MINT uses in each star when doing nuclear burning. Note that this will be greater than or equal to MINT_HARD_MIN_NSHELLS, which is 0 by default. (0) : \n", - "MINT_Kippenhahn_stellar_type : Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output. : \n", - "MINT_Kippenhahn_companion_stellar_type : Companion stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for the companion for which Kippenhahn plot data should be output. : \n", - "MINT_nuclear_burning : Turn on or off MINT's nuclear burning algorithm. : \n", - "MINT_minimum_shell_mass : Minimum shell mass in MINT's nuclear burning routines. : \n", - "MINT_maximum_shell_mass : Maximum shell mass in MINT's nuclear burning routines. : \n", - "\n", - "############################################################\n", - "##### Section I/O\n", - "############################################################\n", - "go : batchmode control command : Ignore\n", - "gogo : batchmode control command : Ignore\n", - "reset_stars : Reset the star structures. Used in batchmode : Ignore\n", - "reset_stars_defaults : Reset the star structures and set defaults. Used in batchmode : Ignore\n", - "defaults : Reset all defaults. Used in batchmode : Ignore\n", - "echo : Activate batchmode command echoing, i.e. when you enter a command, binary_c repeats the command then executes it. : Ignore\n", - "noecho : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "noechonow : Deactivate batchmode command echoing. See 'echo'. : Ignore\n", - "bye : Quit binary_c. Used in batchmode. : Ignore\n", - "fin : batchmode control command : Ignore\n", - "reset_prefs : Reset preferences struct. Used in batchmode : Ignore\n", - "status : Output batchmode status information. : Ignore\n", - "\n", - "############################################################\n", - "##### Section Algorithms\n", - "############################################################\n", - "repeat : If > 1, repeats the system as many times as required. Handy if you're using Monte-Carlo kicks and want to sample the parameter space well. Also, if you are running speed tests this is good to give a statistically more reasonable result. (See e.g. 'tbse pgo'). : (null)\n", - "random_systems : Experimental. Use this to apply random initial system parameters (masses, separations, etc.). Useful for testing only. : (null)\n", - "\n", - "############################################################\n", - "##### Section Misc\n", - "############################################################\n", - "random_seed : Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "random_systems_seed : Random number seed for the generation of random systems. See random_systems and random_seed. : (null)\n", - "random_skip : Skip the first <random_seed> random numbers that are generated. Usually this is 0 so they are all used. : (null)\n", - "idum : [NB: deprecated, please use 'random_seed' instead.] Random number seed, usually a (possibly negative) integer. Useful for exactly reproducing the evolution of a system which involves a kick (which is a Monte-Carlo, i.e. pseudorandom, process). : (null)\n", - "reverse_time : Make time go backwards. To be considered very experimental! : (null)\n", - "start_time : Start time for the simulation. : (null)\n", - "warmup_cpu : Uses the CPU at maximum power the given number of seconds, prior to running normal stellar evolution. : Ignore\n", - "help : Display help pages. Usage: --help <help topic>. : Ignore\n", - "argopts : Display argument options. Usage: --argopts <argument>. : Ignore\n", - "help_all : Display all help pages. : Ignore\n", - "list_args : Display list of arguments with their default values. Useful for batchmode. : Ignore\n", - "\n" + "(abridged)\n" ] } ], "source": [ - "print(_binary_c_bindings.return_help_all())" + "print('\\n'.join(_binary_c_bindings.return_help_all().splitlines()[:10]))\n", + "print(\"(abridged)\")" ] }, { @@ -873,12 +300,14 @@ "__ARG_BEGIN\n", "metallicity = 0.02\n", "effective_metallicity = -1\n", - "M_1 = 0\n" + "M_1 = 0\n", + "(abridged)\n" ] } ], "source": [ - "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))" + "print('\\n'.join(_binary_c_bindings.return_arglines().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -966,7 +395,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -980,7 +409,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/source/examples/notebook_custom_logging.ipynb b/docs/source/examples/notebook_custom_logging.ipynb index 8dfb85034..8627ffb47 100644 --- a/docs/source/examples/notebook_custom_logging.ipynb +++ b/docs/source/examples/notebook_custom_logging.ipynb @@ -23,7 +23,7 @@ " create_and_load_logging_function,\n", ")\n", "from binarycpython.utils.run_system_wrapper import run_system\n", - "from binarycpython.utils.grid import Population" + "from binarycpython import Population" ] }, { @@ -461,11 +461,19 @@ "# print (abridged) output\n", "print(\"\\n\".join(output.splitlines()[-2:]))" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c708268f-0b0c-48ea-9155-ec632a0acc3a", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -479,7 +487,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/source/examples/notebook_ensembles.ipynb b/docs/source/examples/notebook_ensembles.ipynb new file mode 100644 index 000000000..44ef8a7ef --- /dev/null +++ b/docs/source/examples/notebook_ensembles.ipynb @@ -0,0 +1,33 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d4799c94-afd8-41db-ab82-e0a6e278ed77", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/source/examples/notebook_extra_features.ipynb b/docs/source/examples/notebook_extra_features.ipynb index 44c19c112..a0f0fc0d9 100644 --- a/docs/source/examples/notebook_extra_features.ipynb +++ b/docs/source/examples/notebook_extra_features.ipynb @@ -18,11 +18,11 @@ "metadata": {}, "outputs": [], "source": [ + "from binarycpython import Population\n", "from binarycpython.utils.functions import (\n", " get_help,\n", " get_help_all,\n", " get_help_super,\n", - " return_binary_c_version_info,\n", " get_defaults\n", ")\n", "# help(binarycpython.utils.functions)" @@ -116,8 +116,7 @@ "metadata": {}, "source": [ "## Build information of binary_c\n", - "Sometimes we want to know with which settings binary_c has been built. We can use the function `return_binary_c_version_info` for this.\n", - "This function will parse the version info of binary_c and return a dictionary with all the settings." + "It can be useful to fetch the information with which the current version of binary_c has been configured with. We can do that through the Population object, by calling the instance method `return_binary_c_version_info`. This function will parse the version info of binary_c and return a dictionary with all the settings." ] }, { @@ -130,13 +129,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'nucleosynthesis_sources', 'miscellaneous'])\n" + "dict_keys(['networks', 'isotopes', 'argpairs', 'ensembles', 'ensemble_filters', 'macros', 'elements', 'dt_limits', 'units', 'nucleosynthesis_sources', 'miscellaneous'])\n" ] } ], "source": [ - "version_info_dict = return_binary_c_version_info(parsed=True)\n", - "print(version_info_dict.keys())" + "version_info = Population().return_binary_c_version_info(parsed=True)\n", + "print(version_info.keys())" ] }, { @@ -168,27 +167,11 @@ "\n", "TODO:" ] - }, - { - "cell_type": "markdown", - "id": "b3c259ef-9f89-4b26-9ce3-45af625bc398", - "metadata": {}, - "source": [ - "## Getting help\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "bf3c1e28-1662-47a7-abab-aa6fb0ef0882", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -202,7 +185,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/source/examples/notebook_individual_systems.ipynb b/docs/source/examples/notebook_individual_systems.ipynb index deb72fc55..d752fc66e 100644 --- a/docs/source/examples/notebook_individual_systems.ipynb +++ b/docs/source/examples/notebook_individual_systems.ipynb @@ -62,7 +62,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "SINGLE_STAR_LIFETIME 1 12461.2\n", + "SINGLE_STAR_LIFETIME 1 12461.1\n", "\n" ] } @@ -90,17 +90,17 @@ "name": "stdout", "output_type": "stream", "text": [ - " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=62172 RANDOM_COUNT=0\n", + " TIME M1 M2 K1 K2 SEP PER ECC R1/ROL1 R2/ROL2 TYPE RANDOM_SEED=22065 RANDOM_COUNT=0\n", " 0.0000 1.000 0.000 1 15 -1 -1 -1.00 0.000 0.000 \"INITIAL \"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"OFF_MS\"\n", " 11003.1302 1.000 0.000 2 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 11582.2424 1.000 0.000 3 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12325.1085 0.817 0.000 4 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", " 12457.1301 0.783 0.000 5 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 12460.9983 0.716 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", - " 12461.1627 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", - " 15000.0000 0.645 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 12460.8955 0.774 0.000 6 15 -1 -1 -1.00 0.000 0.000 \"shrinkAGB\"\n", + " 12461.1490 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"TYPE_CHNGE\"\n", + " 15000.0000 0.678 0.000 11 15 -1 -1 -1.00 0.000 0.000 \"MAX_TIME\"\n", "\n" ] } @@ -236,13 +236,13 @@ "4 0.000002 1.0 1.0 1.0\n", "5 0.000003 1.0 1.0 1.0\n", "... ... ... ... ...\n", - "1345 12461.080763 0.71617 1.0 6.0\n", - "1346 12461.162734 0.644553 1.0 11.0\n", - "1347 13461.162734 0.644553 1.0 11.0\n", - "1348 14461.162734 0.644553 1.0 11.0\n", - "1349 15000.0 0.644553 1.0 11.0\n", + "1250 12461.061259 0.718593 1.0 6.0\n", + "1251 12461.149038 0.678026 1.0 11.0\n", + "1252 13461.149038 0.678026 1.0 11.0\n", + "1253 14461.149038 0.678026 1.0 11.0\n", + "1254 15000.0 0.678026 1.0 11.0\n", "\n", - "[1349 rows x 4 columns]\n" + "[1254 rows x 4 columns]\n" ] } ], @@ -299,10 +299,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", - "adding: M_1=10 to BSE_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", "SINGLE_STAR_LIFETIME 10 28.4838\n", "\n" @@ -360,9 +358,9 @@ ");\n", " to grid_options\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_dafa15d2b1e64e19972ac0e9eb5c9a55.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_34a350b8f15c4d149deab88632948c99.so\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 0 10 1\n", "EXAMPLE_MASSLOSS 0.000000000000e+00 10 10 10 1\n", "EXAMPLE_MASSLOSS 1.000000000000e-06 10 10 10 1\n", @@ -381,7 +379,7 @@ "\n", " stardata->star[0].stellar_type //5\n", ");\n", - "\"\"\" \n", + "\"\"\"\n", "\n", "example_pop.set(C_logging_code=custom_logging_print_statement)\n", "\n", @@ -397,7 +395,7 @@ "source": [ "Lastly we can add a parse_function to handle parsing the output again. \n", "\n", - "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be (self, output). Returning the data is useful when running evolve_single(), but won't be used in a population evolution." + "Because the parse_function will now be part of the population object, it can access information of the object. We need to make a new parse function that is fit for an object: we the arguments now need to be `(self, output)`. Returning the data is useful when running evolve_single(), but won't be used in a population evolution." ] }, { @@ -464,13 +462,12 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function object_parse_function at 0x149c2e81ec10> to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to custom_options >>>>\n", - "adding: api_log_filename_prefix=/tmp/binary_c_python-izzard/notebooks/notebook_individual_systems to BSE_options\n", + "adding: parse_function=<function object_parse_function at 0x7f35b603e9d0> to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: output_dir=/tmp/binary_c_python-david/notebooks/notebook_individual_systems to custom_options >>>>\n", "Creating and loading custom logging functionality\n", - "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-izzard/notebooks/notebook_individual_systems\n", + "Running binary_c M_1 10 api_log_filename_prefix /tmp/binary_c_python-david/notebooks/notebook_individual_systems\n", "Cleaning up the custom logging stuff. type: single\n", - "Removed /tmp/binary_c_python-izzard/custom_logging/libcustom_logging_0639ee205c7d4782b4a27378f5d890bd.so\n", + "Removed /tmp/binary_c_python-david/custom_logging/libcustom_logging_446fe4cddfa94946bcafd55591ef3730.so\n", "[['time', 'mass', 'initial_mass', 'stellar_type'], [0.0, 10.0, 0.0, 10.0, 1.0], [0.0, 10.0, 10.0, 10.0, 1.0], [1e-06, 10.0, 10.0, 10.0, 1.0]]\n", "dict_keys(['time', 'mass', 'initial_mass', 'stellar_type'])\n" ] @@ -570,7 +567,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -584,7 +581,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/source/examples/notebook_population.ipynb b/docs/source/examples/notebook_population.ipynb index 760b1480e..ebc19cff0 100644 --- a/docs/source/examples/notebook_population.ipynb +++ b/docs/source/examples/notebook_population.ipynb @@ -25,7 +25,7 @@ "import os\n", "\n", "from binarycpython.utils.custom_logging_functions import temp_dir\n", - "from binarycpython.utils.grid import Population\n", + "from binarycpython import Population\n", "\n", "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n", "\n", @@ -58,13 +58,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: M_1=10 to BSE_options\n", - "adding: orbital_period=45000000080 to BSE_options\n", - "adding: max_evolution_time=15000 to BSE_options\n", - "adding: eccentricity=0.02 to BSE_options\n", "adding: num_cores=2 to grid_options\n", - "adding: tmp_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population to grid_options\n", - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "adding: tmp_dir=/tmp/binary_c_python-david/notebooks/notebook_population to grid_options\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", "1\n", "example_pop.dat\n", @@ -139,13 +135,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "Writing settings to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n" + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n" ] }, { "data": { "text/plain": [ - "'/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'" + "'/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz'" ] }, "execution_count": 3, @@ -185,9 +185,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method add_grid_variable in module binarycpython.utils.grid:\n", + "Help on method add_grid_variable in module binarycpython.utils.population_extensions.gridcode:\n", "\n", - "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int], gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None) -> None method of binarycpython.utils.grid.Population instance\n", + "add_grid_variable(name: str, parameter_name: str, longname: str, valuerange: Union[list, str], samplerfunc: str, probdist: str, dphasevol: Union[str, int] = -1, gridtype: str = 'centred', branchpoint: int = 0, branchcode: Optional[str] = None, precode: Optional[str] = None, postcode: Optional[str] = None, topcode: Optional[str] = None, bottomcode: Optional[str] = None, condition: Optional[str] = None, index: Optional[int] = None, dry_parallel: Optional[bool] = False) -> None method of binarycpython.utils.grid.Population instance\n", " Function to add grid variables to the grid_options.\n", " \n", " The execution of the grid generation will be through a nested for loop.\n", @@ -198,17 +198,15 @@ " beware that if you insert some destructive piece of code, it will be executed anyway.\n", " Use at own risk.\n", " \n", - " Tasks:\n", - " - TODO: Fix this complex function.\n", - " \n", " Args:\n", " name:\n", " name of parameter used in the grid Python code.\n", " This is evaluated as a parameter and you can use it throughout\n", " the rest of the function\n", " \n", - " Examples:\n", - " name = 'lnm1'\n", + " Examples::\n", + " \n", + " name = 'lnM_1'\n", " \n", " parameter_name:\n", " name of the parameter in binary_c\n", @@ -223,47 +221,66 @@ " longname:\n", " Long name of parameter\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " longname = 'Primary mass'\n", + " \n", " range:\n", " Range of values to take. Does not get used really, the samplerfunc is used to\n", " get the values from\n", " \n", - " Examples:\n", + " Examples::\n", + " \n", " range = [math.log(m_min), math.log(m_max)]\n", + " \n", " samplerfunc:\n", " Function returning a list or numpy array of samples spaced appropriately.\n", " You can either use a real function, or a string representation of a function call.\n", " \n", - " Examples:\n", - " samplerfunc = \"const(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", + " Examples::\n", + " \n", + " samplerfunc = \"self.const_linear(math.log(m_min), math.log(m_max), {})\".format(resolution['M_1'])\n", " \n", " precode:\n", " Extra room for some code. This code will be evaluated within the loop of the\n", - " sampling function (i.e. a value for lnm1 is chosen already)\n", + " sampling function (i.e. a value for lnM_1 is chosen already)\n", + " \n", + " Examples::\n", + " \n", + " precode = 'M_1=math.exp(lnM_1);'\n", " \n", - " Examples:\n", - " precode = 'M_1=math.exp(lnm1);'\n", " postcode:\n", " Code executed after the probability is calculated.\n", + " \n", " probdist:\n", " Function determining the probability that gets assigned to the sampled parameter\n", " \n", - " Examples:\n", - " probdist = 'Kroupa2001(M_1)*M_1'\n", + " Examples::\n", + " \n", + " probdist = 'self.Kroupa2001(M_1)*M_1'\n", + " \n", " dphasevol:\n", " part of the parameter space that the total probability is calculated with. Put to -1\n", " if you want to ignore any dphasevol calculations and set the value to 1\n", - " Examples:\n", - " dphasevol = 'dlnm1'\n", + " \n", + " Examples::\n", + " \n", + " dphasevol = 'dlnM_1'\n", + " \n", " condition:\n", " condition that has to be met in order for the grid generation to continue\n", - " Examples:\n", - " condition = 'self.grid_options['binary']==1'\n", + " \n", + " Examples::\n", + " \n", + " condition = \"self.grid_options['binary']==1\"\n", + " \n", " gridtype:\n", " Method on how the value range is sampled. Can be either 'edge' (steps starting at\n", " the lower edge of the value range) or 'centred'\n", - " (steps starting at lower edge + 0.5 * stepsize).\n", + " (steps starting at ``lower edge + 0.5 * stepsize``).\n", + " \n", + " dry_parallel:\n", + " If True, try to parallelize this variable in dry runs.\n", " \n", " topcode:\n", " Code added at the very top of the block.\n", @@ -313,35 +330,7 @@ "execution_count": 6, "id": "47979841-2c26-4b26-8945-603d013dc93a", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Added grid variable: {\n", - " \"name\": \"lnm1\",\n", - " \"parameter_name\": \"M_1\",\n", - " \"longname\": \"Primary mass\",\n", - " \"valuerange\": [\n", - " 2,\n", - " 150\n", - " ],\n", - " \"samplerfunc\": \"const(math.log(2), math.log(150), 20)\",\n", - " \"precode\": \"M_1=math.exp(lnm1)\",\n", - " \"postcode\": null,\n", - " \"probdist\": \"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", - " \"dphasevol\": \"dlnm1\",\n", - " \"condition\": \"\",\n", - " \"gridtype\": \"centred\",\n", - " \"branchpoint\": 0,\n", - " \"branchcode\": null,\n", - " \"topcode\": null,\n", - " \"bottomcode\": null,\n", - " \"grid_variable_number\": 0\n", - "}\n" - ] - } - ], + "outputs": [], "source": [ "# Add grid variables\n", "resolution = {\"M_1\": 20}\n", @@ -351,9 +340,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -364,8 +353,8 @@ "# name=\"q\",\n", "# longname=\"Mass ratio\",\n", "# valuerange=[\"0.1/M_1\", 1],\n", - "# samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - "# probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + "# samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + "# probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", "# dphasevol=\"dq\",\n", "# precode=\"M_2 = q * M_1\",\n", "# parameter_name=\"M_2\",\n", @@ -377,12 +366,12 @@ "# name=\"log10per\", # in days\n", "# longname=\"log10(Orbital_Period)\",\n", "# valuerange=[0.15, 5.5],\n", - "# samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + "# samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", "# precode=\"\"\"orbital_period = 10** log10per\n", "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - "# probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + "# probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", "# parameter_name=\"orbital_period\",\n", "# dphasevol=\"dlog10per\",\n", "# )\n" @@ -434,7 +423,7 @@ ], "source": [ "# Create custom logging statement: in this case we will log when the star turns into a compact object, and then terminate the evolution.\n", - "custom_logging_statement = \"\"\"\n", + "custom_logging_code = \"\"\"\n", "if(stardata->star[0].stellar_type >= 13) \n", "{\n", " if (stardata->model.time < stardata->model.max_evolution_time)\n", @@ -454,7 +443,7 @@ "\"\"\"\n", "\n", "example_pop.set(\n", - " C_logging_code=custom_logging_statement\n", + " C_logging_code=custom_logging_code\n", ")" ] }, @@ -476,7 +465,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "adding: parse_function=<function parse_function at 0x1528ac7290d0> to grid_options\n" + "adding: parse_function=<function parse_function at 0x7f2b6ca163a0> to grid_options\n" ] } ], @@ -552,38 +541,41 @@ "output_type": "stream", "text": [ "adding: verbosity=0 to grid_options\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", - "EXAMPLE_COMPACT_OBJECT 4.139293101586e+01 1.29427 8.13626 0.00202467 13\n", - "EXAMPLE_COMPACT_OBJECT 2.802986496151e+01 1.33699 10.0967 0.00152924 13\n", - "EXAMPLE_COMPACT_OBJECT 1.963621764679e+01 1.39754 12.5294 0.00115504 13\n", - "EXAMPLE_COMPACT_OBJECT 1.427601421985e+01 1.47745 15.5483 0.000872405 13\n", - "EXAMPLE_COMPACT_OBJECT 1.094409257247e+01 1.57571 19.2947 0.00065893 13\n", - "EXAMPLE_COMPACT_OBJECT 9.181971798545e+00 1.68748 23.9436 0.000497691 13\n", - "EXAMPLE_COMPACT_OBJECT 7.905335716621e+00 1.77287 29.7128 0.000375908 13\n", - "EXAMPLE_COMPACT_OBJECT 7.451192744924e+00 1.81495 36.872 0.000283924 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396133472739e+00 1.82088 45.7561 0.000214449 13\n", - "EXAMPLE_COMPACT_OBJECT 7.396675941641e+00 1.82123 56.7809 0.000161974 13\n", - "EXAMPLE_COMPACT_OBJECT 7.404641347602e+00 1.82074 70.4621 0.000122339 13\n", - "EXAMPLE_COMPACT_OBJECT 7.444217227690e+00 1.81636 87.4397 9.2403e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.453317880232e+00 1.81536 108.508 6.97923e-05 13\n", - "EXAMPLE_COMPACT_OBJECT 7.450828476487e+00 1.81563 134.653 5.27143e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 3.598268106227e+01 1.30592 8.75988 0.00193614 13\n", + "EXAMPLE_COMPACT_OBJECT 2.436983545111e+01 1.35842 10.9948 0.00144093 13\n", + "EXAMPLE_COMPACT_OBJECT 1.690157944401e+01 1.43124 13.7998 0.00107238 13\n", + "EXAMPLE_COMPACT_OBJECT 1.242397939068e+01 1.52416 17.3205 0.000798096 13\n", + "EXAMPLE_COMPACT_OBJECT 9.756794139032e+00 1.66914 21.7394 0.000593966 13\n", + "EXAMPLE_COMPACT_OBJECT 8.401414766976e+00 1.73729 27.2857 0.000442046 13\n", + "EXAMPLE_COMPACT_OBJECT 7.536373523810e+00 1.80677 34.247 0.000328983 13\n", + "EXAMPLE_COMPACT_OBJECT 7.393982410080e+00 1.82164 42.9844 0.000244839 13\n", + "EXAMPLE_COMPACT_OBJECT 7.396470605248e+00 1.82129 53.9508 0.000182216 13\n", + "Do join of subprocesses ...\n", + "EXAMPLE_COMPACT_OBJECT 7.399005684057e+00 1.82041 67.7151 0.00013561 13\n", + "EXAMPLE_COMPACT_OBJECT 7.443375325717e+00 1.81645 84.9909 0.000100925 13\n", + "EXAMPLE_COMPACT_OBJECT 7.451195752942e+00 1.81559 106.674 7.51114e-05 13\n", + "EXAMPLE_COMPACT_OBJECT 7.452661646076e+00 1.81543 133.89 5.59e-05 13\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-50fb66cc659c46c8bbc29fe0c8651c2f finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.30s to run 20 systems on 2 cores *\n", - "* = 6.60s of CPU time. *\n", - "* Maximum memory use 433.070 MB *\n", + "* Population-ce756bb317f64099a459bf8b55a746ac finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.73s to run 19 systems on 2 cores *\n", + "* = 1.46s of CPU time. *\n", + "* Maximum memory use 293.406 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n" + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n" ] } ], @@ -614,7 +606,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'population_name': '50fb66cc659c46c8bbc29fe0c8651c2f', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.04440288843805411, 'total_count': 20, 'start_timestamp': 1635760967.3245144, 'end_timestamp': 1635760970.6249793, 'total_mass_run': 684.2544031669784, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n" + "{'population_id': 'ce756bb317f64099a459bf8b55a746ac', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.044387171445641534, 'total_count': 19, 'start_timestamp': 1646563001.7193637, 'end_timestamp': 1646563002.4480088, 'time_elapsed': 0.7286450862884521, 'total_mass_run': 649.905447944397, 'total_probability_weighted_mass_run': 0.28133908148630704, 'zero_prob_stars_skipped': 0}\n" ] } ], @@ -642,9 +634,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "Help on method write_binary_c_calls_to_file in module binarycpython.utils.grid:\n", + "Help on method write_binary_c_calls_to_file in module binarycpython.utils.population_extensions.dataIO:\n", "\n", - "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False) -> None method of binarycpython.utils.grid.Population instance\n", + "write_binary_c_calls_to_file(output_dir: Optional[str] = None, output_filename: Optional[str] = None, include_defaults: bool = False, encoding='utf-8') -> None method of binarycpython.utils.grid.Population instance\n", " Function that loops over the grid code and writes the generated parameters to a file.\n", " In the form of a command line call\n", " \n", @@ -655,10 +647,6 @@ " \n", " On default this will write to the datadir, if it exists\n", " \n", - " Tasks:\n", - " - TODO: test this function\n", - " - TODO: make sure the binary_c_python .. output file has a unique name\n", - " \n", " Args:\n", " output_dir: (optional, default = None) directory where to write the file to. If custom_options['data_dir'] is present, then that one will be used first, and then the output_dir\n", " output_filename: (optional, default = None) filename of the output. If not set it will be called \"binary_c_calls.txt\"\n", @@ -685,19 +673,19 @@ "output_type": "stream", "text": [ "Generating grid code\n", - "Generating grid code\n", - "Saving grid code to grid_options\n", - "Writing grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py [dry_run = False]\n", - "Symlinked grid code to /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid-latest2 \n", - "Loading grid code function from /tmp/binary_c_python-izzard/notebooks/notebook_population/binary_c_grid_50fb66cc659c46c8bbc29fe0c8651c2f.py\n", + "Save grid code to grid_options\n", + "Write grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py [dry_run = False]\n", + "Symlinked grid code to /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid-latest2 \n", + "Load grid code function from /tmp/binary_c_python-david/notebooks/notebook_population/binary_c_grid_ce756bb317f64099a459bf8b55a746ac.py\n", "Grid code loaded\n", - "Writing binary_c calls to /tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", - "binary_c M_1 2.227955577093495 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.010905083645619543\n", - "binary_c M_1 2.7647737053496777 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.00823663875514986\n", - "binary_c M_1 3.430936289925951 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681537 probability 0.0062211552141636295\n", - "binary_c M_1 4.2576084265970895 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.2158744056768156 probability 0.004698855121516281\n" + "Writing binary_c calls to /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n", + "binary_c M_1 2.2406484012210224 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.011394572976608001\n", + "binary_c M_1 2.812296769855663 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191117 probability 0.008480166685456411\n", + "binary_c M_1 3.5297876799548944 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.006311182276049824\n", + "binary_c M_1 4.430329401616038 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.004696962123378559\n", + "(abridged)\n" ] } ], @@ -707,7 +695,8 @@ "print(calls_filename)\n", "\n", "with open(calls_filename, 'r') as f:\n", - " print('\\n'.join(f.read().splitlines()[:4]))" + " print('\\n'.join(f.read().splitlines()[:4]))\n", + "print(\"(abridged)\")" ] }, { @@ -715,7 +704,15 @@ "id": "60359eb1-4d0c-4d2d-8265-ec5171b944a2", "metadata": {}, "source": [ - "## Full examples of population scripts\n", + "## Full examples of population scripts" + ] + }, + { + "cell_type": "markdown", + "id": "1ee279d6-e120-4aef-9e57-845e534f5c6a", + "metadata": {}, + "source": [ + "### Single star population\n", "Below is a full setup for a population of single stars" ] }, @@ -729,43 +726,51 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 20 stars with a total probability of 0.0444029\n", - "**************************************\n", - "* Total starcount for this run is 20 *\n", - "* Total probability is 0.0444029 *\n", - "**************************************\n", + "Grid has handled 19 stars with a total probability of 0.0443872\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 19 *\n", + "* Total probability is 0.0443872 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-05e51ba114934b37bab48f1db40b7333 finished! *\n", - "* The total probability is 0.0444029. *\n", - "* It took a total of 3.46s to run 20 systems on 2 cores *\n", - "* = 6.93s of CPU time. *\n", - "* Maximum memory use 437.047 MB *\n", + "* Population-0fa4c2b8707741a5ab41d209ef95a3a4 finished! *\n", + "* The total probability is 0.0443872. *\n", + "* It took a total of 0.61s to run 19 systems on 2 cores *\n", + "* = 1.23s of CPU time. *\n", + "* Maximum memory use 299.531 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass zams_mass probability radius stellar_type\n", - "4.139293101586e+01 1.29427 8.13626 0.00202467 1.72498e-05 13\n", - "2.802986496151e+01 1.33699 10.0967 0.00152924 1.72498e-05 13\n", - "1.963621764679e+01 1.39754 12.5294 0.00115504 1.72498e-05 13\n", - "1.427601421985e+01 1.47745 15.5483 0.000872405 1.72498e-05 13\n", - "1.094409257247e+01 1.57571 19.2947 0.00065893 1.72498e-05 13\n", - "9.181971798545e+00 1.68748 23.9436 0.000497691 1.72498e-05 13\n", - "7.905335716621e+00 1.77287 29.7128 0.000375908 1.72498e-05 13\n", - "7.451192744924e+00 1.81495 36.872 0.000283924 1.72498e-05 13\n", - "7.396133472739e+00 1.82088 45.7561 0.000214449 1.72498e-05 13\n", - "7.396675941641e+00 1.82123 56.7809 0.000161974 1.72498e-05 13\n", - "7.404641347602e+00 1.82074 70.4621 0.000122339 1.72498e-05 13\n", - "7.444217227690e+00 1.81636 87.4397 9.2403e-05 1.72498e-05 13\n", - "7.453317880232e+00 1.81536 108.508 6.97923e-05 1.72498e-05 13\n", - "7.450828476487e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n", + "3.598268106227e+01 1.30592 8.75988 0.00193614 1.72498e-05 13\n", + "2.436983545111e+01 1.35842 10.9948 0.00144093 1.72498e-05 13\n", + "1.690157944401e+01 1.43124 13.7998 0.00107238 1.72498e-05 13\n", + "1.242397939068e+01 1.52416 17.3205 0.000798096 1.72498e-05 13\n", + "9.756794139032e+00 1.66914 21.7394 0.000593966 1.72498e-05 13\n", + "8.401414766976e+00 1.73729 27.2857 0.000442046 1.72498e-05 13\n", + "7.536373523810e+00 1.80677 34.247 0.000328983 1.72498e-05 13\n", + "7.393982410080e+00 1.82164 42.9844 0.000244839 1.72498e-05 13\n", + "7.396470605248e+00 1.82129 53.9508 0.000182216 1.72498e-05 13\n", + "7.399005684057e+00 1.82041 67.7151 0.00013561 1.72498e-05 13\n", + "7.451195752942e+00 1.81559 106.674 7.51114e-05 1.72498e-05 13\n", + "7.443375325717e+00 1.81645 84.9909 0.000100925 1.72498e-05 13\n", + "7.452661646076e+00 1.81543 133.89 5.59e-05 1.72498e-05 13\n", "\n" ] } @@ -877,9 +882,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\",\n", @@ -908,7 +913,8 @@ "id": "c2ab0979-6575-481d-9c1c-ca98517b2437", "metadata": {}, "source": [ - "We can also set up a population that samples biinary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded top be more useful" + "### Binary star population\n", + "We can also set up a population that samples binary systems, by adding extra grid variables. Below is an example of a full script that runs a binary population and registers when a double compact object is formed. The logging is rather compact and should be expanded to be more useful. Also note that we run very little systems in the following example, as its just intended to show how the code works." ] }, { @@ -921,45 +927,42 @@ "name": "stdout", "output_type": "stream", "text": [ - "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-izzard/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", + "<<<< Warning: Key does not match previously known parameter: adding: data_dir=/tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result to custom_options >>>>\n", "<<<< Warning: Key does not match previously known parameter: adding: base_filename=example_pop.dat to custom_options >>>>\n", + "ok\n", + "File at /tmp/binary_c_python-david/notebooks/notebook_population/example_python_population_result/example_pop_settings.json.gz already exists: cannot write to it\n", + "ok\n", + "ok pre\n", + "ok ret\n", + "Do dry run? True\n", "Doing dry run to calculate total starcount and probability\n", - "Generating grid code\n", - "Grid has handled 27 stars with a total probability of 0.0248684\n", - "**************************************\n", - "* Total starcount for this run is 27 *\n", - "* Total probability is 0.0248684 *\n", - "**************************************\n", + "Grid has handled 8 stars with a total probability of 0.0211592\n", + "**********************************\n", + "* Dry run *\n", + "* Total starcount is 8 *\n", + "* Total probability is 0.0211592 *\n", + "**********************************\n", "\n", - "Generating grid code\n", + "Do join of subprocesses ...\n", + "Joined subprocesses.\n", "**********************************************************\n", - "* Population-8bc1eafea1c34b05894c1618639d8c37 finished! *\n", - "* The total probability is 0.0248684. *\n", - "* It took a total of 16.10s to run 27 systems on 2 cores *\n", - "* = 32.20s of CPU time. *\n", - "* Maximum memory use 437.695 MB *\n", + "* Population-0eb5c0c9abd34607a6ee060b26a7e32f finished! *\n", + "* The total probability is 0.0211592. *\n", + "* It took a total of 0.84s to run 8 systems on 2 cores *\n", + "* = 1.68s of CPU time. *\n", + "* Maximum memory use 300.125 MB *\n", "**********************************************************\n", "\n", - "There were no errors found in this run.\n", + "No failed systems were found in this run.\n", + "Do analytics\n", + "Added analytics to metadata\n", "\n", "\n", "time mass_1 zams_mass_1 mass_2 zams_mass_2 stellar_type_1 prev_stellar_type_1 stellar_type_2 prev_stellar_type_2 metallicity probability\n", - "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n", - "1.935920339886e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n", - "2.123794969278e+01 1.30902 17.3205 1.58518 8.71025 13 13 13 5 0.02 0.000287968\n", - "3.579099761269e+01 1.52414 17.3205 1.30642 8.71025 13 13 13 5 0.02 0.000220016\n", - "1.674063083432e+01 1.29457 17.3205 0 14.4504 13 13 15 2 0.02 0.000498487\n", - "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n", - "1.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n", - "1.367065497322e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-05\n", - "1.772169325355e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n", - "2.021960493499e+01 1.82061 73.0434 1.39205 12.2572 13 13 13 5 0.02 3.38788e-05\n", - "9.012246630357e+00 1.81529 73.0434 0 36.5717 13 8 15 15 0.02 7.67586e-05\n", - "7.462779538274e+00 1.82255 73.0434 1.81499 36.5717 13 13 13 8 0.02 3.38788e-05\n", - "1.030499912298e+01 1.80592 73.0434 1.81066 36.5717 13 13 13 8 0.02 4.43422e-05\n", - "9.823059079115e+00 2.43711 73.0434 1.81689 60.8862 14 14 13 8 0.02 7.67586e-05\n", - "7.394722435913e+00 1.79092 73.0434 1.79092 60.8862 13 8 13 8 0.02 4.43422e-05\n", - "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n", + "1.378266748188e+01 1.66293 50.9713 1.78767 12.8178 13 13 13 8 0.02 0.000339963\n", + "1.817608462595e+01 1.82104 50.9713 1.41436 12.8178 13 13 13 5 0.02 0.000193036\n", + "7.422997711686e+00 1.82479 50.9713 1.82171 38.2535 13 13 13 8 0.02 0.000193036\n", + "1.205711924468e+01 1.73765 50.9713 0 38.2535 13 13 15 8 0.02 0.000339963\n", "\n" ] } @@ -1089,9 +1092,9 @@ " name=\"lnm1\",\n", " longname=\"Primary mass\",\n", " valuerange=[2, 150],\n", - " samplerfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", + " samplerfunc=\"self.const_linear(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n", " precode=\"M_1=math.exp(lnm1)\",\n", - " probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", + " probdist=\"self.three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n", " dphasevol=\"dlnm1\",\n", " parameter_name=\"M_1\",\n", " condition=\"\", # Impose a condition on this grid variable. Mostly for a check for yourself\n", @@ -1102,8 +1105,8 @@ " name=\"q\",\n", " longname=\"Mass ratio\",\n", " valuerange=[\"0.1/M_1\", 1],\n", - " samplerfunc=\"const(0.1/M_1, 1, {})\".format(resolution['q']),\n", - " probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", + " samplerfunc=\"self.const_linear(0.1/M_1, 1, {})\".format(resolution['q']),\n", + " probdist=\"self.flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n", " dphasevol=\"dq\",\n", " precode=\"M_2 = q * M_1\",\n", " parameter_name=\"M_2\",\n", @@ -1115,12 +1118,12 @@ " name=\"log10per\", # in days\n", " longname=\"log10(Orbital_Period)\",\n", " valuerange=[0.15, 5.5],\n", - " samplerfunc=\"const(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", + " samplerfunc=\"self.const_linear(0.15, 5.5, {})\".format(resolution[\"per\"]),\n", " precode=\"\"\"orbital_period = 10** log10per\n", "sep = calc_sep_from_period(M_1, M_2, orbital_period)\n", "sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n", "sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n", - " probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", + " probdist=\"self.sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n", " parameter_name=\"orbital_period\",\n", " dphasevol=\"dlog10per\",\n", ")\n", @@ -1145,7 +1148,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -1159,7 +1162,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.4" + "version": "3.9.9" } }, "nbformat": 4, diff --git a/docs/source/grid_options_descriptions.rst b/docs/source/grid_options_descriptions.rst index c061fb901..7d765d8cf 100644 --- a/docs/source/grid_options_descriptions.rst +++ b/docs/source/grid_options_descriptions.rst @@ -1,7 +1,7 @@ Population grid code options ============================ The following chapter contains all grid code options, along with their descriptions -There are 28 options that are not described yet. +There are 29 options that are not described yet. Public options @@ -167,6 +167,8 @@ The following options are meant to be changed by the user. | **save_snapshots**: No description available yet +| **skip_before**: No description available yet + | **slurm**: Integer flag used to control Slurm jobs. Default is 0 which means no Slurm. 1 means launch Slurm jobs. Do not manually set this to 2 (run Slurm jobs) or 3 (join Slurm job data) unless you know what you are doing, this is usually done for you. | **slurm_array**: String. Override for Slurm's --array option, useful for rerunning jobs manually. Default None. -- GitLab