From 0e871bc098f163940c2256300af798a29ad36e29 Mon Sep 17 00:00:00 2001
From: David Hendriks <davidhendriks93@gmail.com>
Date: Fri, 10 Sep 2021 15:54:10 +0100
Subject: [PATCH] updated docs and notebooks to have a better structure

---
 docs/Makefile                                 |    1 +
 .../doctrees/binary_c_parameters.doctree      |  Bin 936233 -> 924721 bytes
 docs/build/doctrees/environment.pickle        |  Bin 537897 -> 562559 bytes
 docs/build/doctrees/example_notebooks.doctree |  Bin 4323 -> 4511 bytes
 docs/build/doctrees/functions.doctree         |  Bin 212148 -> 226018 bytes
 docs/build/doctrees/grid.doctree              |  Bin 104489 -> 119772 bytes
 .../grid_options_descriptions.doctree         |  Bin 51259 -> 51610 bytes
 docs/build/doctrees/index.doctree             |  Bin 30148 -> 30928 bytes
 .../nbsphinx/notebook_api_functionality.ipynb |   88 +-
 .../nbsphinx/notebook_custom_logging.ipynb    |  107 +-
 ...otebook_luminosity_function_binaries.ipynb |  839 +++++++++++
 ...book_luminosity_function_binaries_20_1.png |  Bin 0 -> 57125 bytes
 .../notebook_luminosity_function_single.ipynb |  716 ++++++++++
 ...tebook_luminosity_function_single_20_1.png |  Bin 0 -> 25029 bytes
 ...tebook_luminosity_function_single_26_1.png |  Bin 0 -> 23856 bytes
 ...tebook_luminosity_function_single_34_0.png |  Bin 0 -> 30847 bytes
 .../nbsphinx/notebook_population.ipynb        |  263 ++--
 .../notebook_api_functionality.doctree        |  Bin 409627 -> 416028 bytes
 .../doctrees/notebook_custom_logging.doctree  |  Bin 47884 -> 45697 bytes
 ...ebook_luminosity_function_binaries.doctree |  Bin 0 -> 130454 bytes
 ...otebook_luminosity_function_single.doctree |  Bin 0 -> 72896 bytes
 .../doctrees/notebook_population.doctree      |  Bin 154083 -> 133403 bytes
 docs/build/doctrees/readme_link.doctree       |  Bin 26892 -> 27672 bytes
 ...book_luminosity_function_binaries_20_1.png |  Bin 0 -> 57125 bytes
 ...tebook_luminosity_function_single_20_1.png |  Bin 0 -> 25029 bytes
 ...tebook_luminosity_function_single_26_1.png |  Bin 0 -> 23856 bytes
 ...tebook_luminosity_function_single_34_0.png |  Bin 0 -> 30847 bytes
 .../utils/custom_logging_functions.html       |    4 +-
 .../utils/distribution_functions.html         |    4 +-
 .../binarycpython/utils/functions.html        |  118 +-
 .../_modules/binarycpython/utils/grid.html    |  457 ++++--
 .../utils/grid_options_defaults.html          |   15 +-
 .../binarycpython/utils/plot_functions.html   |    4 +-
 .../utils/run_system_wrapper.html             |    4 +-
 .../utils/spacing_functions.html              |    4 +-
 .../binarycpython/utils/useful_funcs.html     |    4 +-
 docs/build/html/_modules/index.html           |    4 +-
 .../html/_sources/binary_c_parameters.rst.txt |  193 +--
 .../html/_sources/example_notebooks.rst.txt   |    6 +-
 .../grid_options_descriptions.rst.txt         |    6 +-
 .../notebook_api_functionality.ipynb.txt      |   88 +-
 .../notebook_custom_logging.ipynb.txt         |  107 +-
 ...ook_luminosity_function_binaries.ipynb.txt |  839 +++++++++++
 ...ebook_luminosity_function_single.ipynb.txt |  716 ++++++++++
 .../_sources/notebook_population.ipynb.txt    |  263 ++--
 docs/build/html/binary_c_parameters.html      |  216 ++-
 docs/build/html/custom_logging_functions.html |    4 +-
 docs/build/html/distribution_functions.html   |    4 +-
 docs/build/html/example_notebooks.html        |   25 +-
 docs/build/html/functions.html                |   46 +-
 docs/build/html/genindex.html                 |   46 +-
 docs/build/html/grid.html                     |   74 +-
 docs/build/html/grid_options_defaults.html    |    4 +-
 .../build/html/grid_options_descriptions.html |   11 +-
 docs/build/html/hpc_functions.html            |    4 +-
 docs/build/html/index.html                    |   12 +-
 docs/build/html/modules.html                  |    4 +-
 .../html/notebook_api_functionality.html      |   97 +-
 .../html/notebook_api_functionality.ipynb     |   88 +-
 docs/build/html/notebook_custom_logging.html  |  123 +-
 docs/build/html/notebook_custom_logging.ipynb |  107 +-
 docs/build/html/notebook_extra_features.html  |    7 +-
 .../html/notebook_individual_systems.html     |    7 +-
 ...notebook_luminosity_function_binaries.html | 1247 +++++++++++++++++
 ...otebook_luminosity_function_binaries.ipynb |  839 +++++++++++
 .../notebook_luminosity_function_single.html  | 1035 ++++++++++++++
 .../notebook_luminosity_function_single.ipynb |  716 ++++++++++
 docs/build/html/notebook_population.html      |  262 ++--
 docs/build/html/notebook_population.ipynb     |  263 ++--
 docs/build/html/objects.inv                   |  Bin 5490 -> 5960 bytes
 docs/build/html/plot_functions.html           |    4 +-
 docs/build/html/py-modindex.html              |    4 +-
 docs/build/html/readme_link.html              |    9 +-
 docs/build/html/run_system_wrapper.html       |    4 +-
 docs/build/html/search.html                   |    4 +-
 docs/build/html/searchindex.js                |    2 +-
 docs/build/html/spacing_functions.html        |    4 +-
 docs/build/html/stellar_types.html            |    4 +-
 docs/build/html/useful_funcs.html             |    4 +-
 docs/source/_templates/footer.html            |    4 +-
 docs/source/binary_c_parameters.rst           |  193 +--
 docs/source/example_notebooks.rst             |    3 +-
 docs/source/grid_options_descriptions.rst     |    6 +-
 docs/source/notebook_api_functionality.ipynb  |   88 +-
 docs/source/notebook_custom_logging.ipynb     |  107 +-
 ...otebook_luminosity_function_binaries.ipynb |  839 +++++++++++
 .../notebook_luminosity_function_single.ipynb |  716 ++++++++++
 docs/source/notebook_population.ipynb         |  267 ++--
 examples/notebook_api_functionality.ipynb     |    2 +-
 examples/notebook_custom_logging.ipynb        |    2 +-
 examples/notebook_extra_features.ipynb        |    2 +-
 examples/notebook_individual_systems.ipynb    |    2 +-
 ...otebook_luminosity_function_binaries.ipynb |   10 +-
 .../notebook_luminosity_function_single.ipynb |   14 +-
 examples/notebook_population.ipynb            |    2 +-
 95 files changed, 10459 insertions(+), 1928 deletions(-)
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries.ipynb
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries_20_1.png
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_luminosity_function_single.ipynb
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_20_1.png
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_26_1.png
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_34_0.png
 create mode 100644 docs/build/doctrees/notebook_luminosity_function_binaries.doctree
 create mode 100644 docs/build/doctrees/notebook_luminosity_function_single.doctree
 create mode 100644 docs/build/html/_images/notebook_luminosity_function_binaries_20_1.png
 create mode 100644 docs/build/html/_images/notebook_luminosity_function_single_20_1.png
 create mode 100644 docs/build/html/_images/notebook_luminosity_function_single_26_1.png
 create mode 100644 docs/build/html/_images/notebook_luminosity_function_single_34_0.png
 create mode 100644 docs/build/html/_sources/notebook_luminosity_function_binaries.ipynb.txt
 create mode 100644 docs/build/html/_sources/notebook_luminosity_function_single.ipynb.txt
 create mode 100644 docs/build/html/notebook_luminosity_function_binaries.html
 create mode 100644 docs/build/html/notebook_luminosity_function_binaries.ipynb
 create mode 100644 docs/build/html/notebook_luminosity_function_single.html
 create mode 100644 docs/build/html/notebook_luminosity_function_single.ipynb
 create mode 100644 docs/source/notebook_luminosity_function_binaries.ipynb
 create mode 100644 docs/source/notebook_luminosity_function_single.ipynb

diff --git a/docs/Makefile b/docs/Makefile
index df35e0169..e51d09f09 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -26,6 +26,7 @@ help:
 	cp ../examples/notebook_extra_features.ipynb source/
 	cp ../examples/notebook_api_functionality.ipynb source/
 	cp ../examples/notebook_luminosity_function_single.ipynb source/
+	cp ../examples/notebook_luminosity_function_binaries.ipynb source/
 
 	# Copy the badges
 	cp -r ../badges/ source/
diff --git a/docs/build/doctrees/binary_c_parameters.doctree b/docs/build/doctrees/binary_c_parameters.doctree
index f6338cfabfc2f18737da714694c03fafe5132542..95b8f7090e04fa0459582c8d43f09c730a2d45a3 100644
GIT binary patch
delta 96982
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

delta 95202
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
QUCG;6Y>Faxj5p!`0Z<u0*#H0l

diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index e0ed39a409e8733fee869823a5a3c54d0b789365..af5a6f51c95647effc527f4d0f76aa7db02ad132 100644
GIT binary patch
delta 73920
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
Ll!@YU+Oz9F5gya~

delta 55574
zcmcg#34Bx4()VQV-X`7G6liIIQWjCRLdy;%P-I_A+NLz2O-hrnLqS<3LNS%2hzN?i
zY~r)7EQ(K`3WzJN=zIF9PZ4<T`jBttoSU25HYr^2!SBbtJ^z_IXU?2$X6}-UkG6Z{
z-$vC6)g1%&tJe1q^=NDB95ze2tI@lufBQ6###vWhVXbSd3aRQ@b)!dD;V8G8Yb?&j
zO^rF;H}8$tdm@}JOLeumuGF=t7I069_ql>h?-K>FajH3W)`~_?L{)8hX{Fm<?y@@U
zPVdTscyCETk~h8}iX?hB4^Q--?VsQ+8Ib1fF(92J(9HKqLR_OqZM9ce7B+gcHI52*
zH42WS`zMeDl0;V?CrRxZJ(0E54wqkWqbID+Vy>vMlvZ2qa~nMgbmgZcA+oW-UFOlw
zx70bI_QnIp2Y3`ZkJ4hF-&m#eo=ea4nv06-<CWK4H@xW7$nD8bk0`ep#nPLZ$8G6i
z>0F;@Y-wWY{OLz*iM~=w=T}GDQp8fpo>*H)u{80E$80%bX-d2MY^nazkIA;Ida*eD
z(-&>oVrj;}?Y4GeX~P|QTL-c9$g65wXR&lpecskyEPY=0l`Y9vO4W7iV9OOt1q0UD
zI*FyiJvZ7imA!=4rw%^b!Imr%hmQTjmLQgfy=b>(h^2A;^Syrz>PL*;%_DCm1HCH;
z=Xk#x7U^{l-WJxtYz70wa~t3;Z|bmQZ^4LF<Q7(X_@-#!K+7SANw_lG+kWURfTInY
z<A+DolV)<fD+X^?HrP5I*gP_skW}yEqc&-?_+{SG;_JPkW7B|~i;8&{muygYR<nA`
z#~AR+kOtO#9KHfG)S4;Ox}I^KEr|zhRv|ag&>pDKI!0SHE`cO?w~gCGGFZ#SHpMo$
zJvytsyxLu1sc5uKhO2DTyko~_Y1p4ryo<-Dk$CT&;|mG(elWf>+2&PG=s>o5J589D
zeJ60c%h<rP-35Q=u54V^m}A=pe^xEA-2<nYjkX=$M<?XNWgkw+u|5cp?MXPe%gnZi
z;Ee2#aK6X*X*WOZ<){7Z<hC7vvrVWDM|K<40o9X6Gv8Gwc<l?KG^mWPyl0}Wf~oK#
zfLEgePNz0h@Fq{nsAm<&3|(lhsjapc?GBfv%;A{pY_u^A-n>c;a3Hp!f$}=<*=4C*
zhiGvTGx9}AP~p?7Q~}3)n<`xA9X~k@dVb#IByRTauChj4o7$++yK*It&y_3NTey*b
zzsmY>^=qrXV^i9NtZozrz4zFZ_SLL!b*ifyUAWA)Q7uqCaj-dg4^Bvd<}RF?%B>rJ
zmDS>6)JC=5U#Irtv#GQ9!qjByc$4S_J9oIsnzJua^J~+L(9mzECCy>>?QxaW;oj6n
zLxD>3-zE9p+8H_(&SF-w@gY@sm38Az*mm8XZgj^7B#s_>A2tb4f!kaH3PvAum73r#
z+=eFJltTl-=qZP86zZFCmG$91-&TF+X7+>n&duy8)MvZO`p}bTtG>BkT@Urm{i=&l
z-@>b`4}F!k>ihPG4p5)NoW^JCnyai1ouRg>J7>;8bDE7p^BS+RKJ+!(s&9K)F4XsG
zSv%gm`>wJ&bYI%4ZcKScsBV6_kyp3xDyu_(v5o4sgp>AAU3!JE)E>Ob>d+x=qdM>Q
zigr-lk&2Xhw&1;Sb=A2&q16ui9GBIF0SUTX7&zFr;sJvO=8-Yy*M^P}3l?nXpx6@8
z#kZlOz&u<VZs06Ju;JFqq5~W5b}TZm;Ra-5y9jOwEFiGqTFrt18?Kxz5U}CO#ex7E
zt|=@4u;FZH&c6-kA#?m~Fh%OGV{WevM=x`CZ8)%)b8EvsXO6xNyMsCTHfAZ0%H=4R
zG?ap_p0F}^b+yF>QI->e#KwTGDq{>mj#8`3QUh$>no6w>_W<-~y-O>5MfnPVfpbf}
zhbt3XU^~2DRkrJoe6|Phz`F1psCd~Pr?;pk#k==`xO(RHevhqVLcWzFgefR^&fkb4
zzGNb7r{NUH1Ua@ZB$Pss;dkW!Eul0coDD|U;T=~MEAf!VRmJsS4T)0Aw?>TjH+z`(
zM3t_kRl?;63v87TIU=l58UKQ|^Ul#Q8O`k1%t}{czC%{@pAT8%dh$AY%F$C8MKRvf
zbHltdY#}Y})=iEuX`B6{DNl}wYiKvq+_aH60X<RUAtwYGl)gs0yWF|RE`&al<>)Q3
zV{A(sPLLxgunot_5pfM|_)&E$8#>&sTDMEE;SxD|OKcccFNhJ=CjaubP>#gF#&lnX
zh<aO~<ih`SBI8hu^bJMte0$UgHabPfXtnzdd+%kmL2QC(*x&4imV<Mf96^EYd6yg!
z=q$`^6uR|)ZqIO^J&o3UM<a&eqkPFHPjebyJ71F16w$0JYGYcO^{^a4Qj_@C%@^c|
zxQ287?s-X)?fUL{$$Y#1N{+gs=?ry=Elu}@96^Ci_qiMq*LFlkh$FJb>MX}0Ia<tz
zdRh?qm<-cgfge=wiD>WS+gcv0sMSKMlOr~;nbpBX)PvvKMwYha#J9*#^nNNjRoq=|
zE&}Vnbh6m5#%CbyvR!YfHBb#-dRyW!Pir0mNF8Rl`s(~;NR{)*;W-e+$H<W2J<+-&
z=;lz;t>vsMk|RNC0RMtDK#qtYv#y^U8B#TbeqecjNk0VbhGESqSKxR<?Y?^ka1Vj^
z$Unp$amZ;1TMqAC)GC&%mLo)J4S%Ot<%kH<DV1_$NYxNJh206coK6|ktW$DqSI{eX
zTZQ+<`(j^gm7_oFi`mb_c=s(*wVWhWjv%Qa{Qc3$L<EhkZC}HB;?Y8G!c}Lnn1UrC
zF8{WeM^kIAv)I8QPxG!=yvzIKj@bAkpo8rtJiLsDSMcx;jrY?XPH)E2$nX<T7PgB6
z-abp~d46dhqE~W9&c9Iewl`m>FJqmC{EmO2-h4G`z(URLiCxZE^bf@wF^O{}L-EYA
zbUqZn6o=x^a@1!-@${{&mW3bW2njq4&&d%HWLY>PM}|}lVOe1J1}~>8iu`?XrCm`n
z*~q)%2eB(MwK4{@cmL5YfmVccIYOj1@UI9dazq5_ibOdwq-qFV!ETyfqppA(u)HgX
z=)sMaqrP_@4cHYU<p`15z~2?a<cJ8;6@%r-kg6ec1-qYoIbHErY?g3ydWd*)8kDg`
ziG8v_PCL9Ys{{6lOO6n!G5mcpkBJDnVgA+0=-sPQg}h6NyR6z;ZgkYLXS;-i))qMp
z0;?3ZbRoQQ1O&E7gB%e-M(J(bs()o%0?K-fCWpnCZLF{w$Ga?*X1l}a9lItG($js`
zWDDu(XXR+`J+h{xr3IVh2ncM!C*_E^wib*ksk6>EyDZ|kTkVZnrxg;_EonUX`&3SA
zU`*zDJ?mN}sXvk<B(POa$q~_}Rb{(~aQ{(UxcGu`DG|JWTeD}!{9dMAPE(}T5Ek)N
zz=AGW?DkJdpgU_<;$=cj;*&mnUriHDk)V^~;@}O%cNVnrHe=-ok=nw)hR4Ve5oBaU
z%8?;eL+BEA&pFt>D&0i}wRkr1N<4pf42t(fXR$8^$<d#A{>xu$)fWTh2$34W-xvMm
zh_Fdz_@_r7CL`!=%qt7r#fMRZjiN%1qJqI<yww|xEjJ9a96{0s`;9h>H~4afk8Ru4
z-w}`eC7I=?JmEK4=DDqPmKuoQeNTn1meU;3E?a-mx3tU6as&moOT8QsLGDp3<+lAR
zT@mle27DCfWJ8KDmL8F#r)V?B=9HE;dr*#`z&5*Ij))qm4F3eYgw3vK0zyr+^gkrd
zJLY%ckwz>D20SK5Y0-eke{Xen=QTNkq>cAa##fk#pxdi-Ew^nO3^J}N-Hv9-e+ypc
zIQ)n2Nlz#VX8B%DYeciGXiRQ7uD+EcD6m<+mLnp_!u};UZLqm`MdQkAzmOrhVQ9Z#
z<TniUA#$CQ<*&tfzq^p$(sogD1O>KTI1>?cNHyQ-243Ze^1k|~aWtm1Jo=(am!%GF
z>^og%c+Us}O(D+gDW^^1z?yxr)qLwFM^Iqn<jD~c#Cz)`M}|}lzhBS$=<57>KE5v{
zgVo<WH1MmzSD&CFgt(&Zr$;Wad|zo8po14lO7Kk*CwtUEe9{4N4)cJ~A*VCM!Iif)
zvgORHmLo{otNz8@Do4b%^C0M11xXspCTZA2r+E&4ImhRMdF3cA8gTdBtsWC;kRvFt
z0dJEdBFOCgAC1R|A&zo4x~_a>Yw@f@b0Qy^O>!FJGwc>MY4upslX3(FHtc>mB7*Fv
zmoV&=?Wf(g`$p!lqH*~noldvK*;m*%K9Zxf&w$=%w@0^}+Nb0Q3T(i4nTX(<>XUH)
zNX&v1NjKFixxJZn;MRKwkT^vsWL{Kw(BMIbhfwb)JLczx<DXG*uy{i2%nQoREV0{Y
ziwDSeyAw3Bo$@Z-X|Dee{wxmTqw<F<wS|Az;I;_5YcK<f&+9=6o?mJ8j2s_KmoGyU
z;a7vlv6mqNpPvbm8@ojCf2Et3ex$v^T5fR~&GrhT%RBA<NWn*HhMUW9cjMhM06Xq-
z??{Vd{j>X9`AGfb2nsybd&?0KWEJLyy^PLj**Dm~aBDjoR0}@aBtHFLapwqLx8oVE
zK4OMzt{fY%{y6wpz{f1A<OmAf9~LGexHbOTwI}<)ss|%T&jzT}b~_##@vsFCcj93y
z9=73OJ05o6;XXX<@*aI?ZZvy?;{aQG;NY3zUAc3dx8dOkz6h!LXkQ8Zmp$60M)A*n
zZj{R(V1X8)va3-81}S^5GFTq1d7O3KAb;e3MLQ)}L3~M*57y!0U_B<M9WYn}-rjso
zju2^|`2F8kn26v5RWfb2DGMc=<P}-OJMb~z?M>fH=Wg_FeeT0|avB6y$*&j0<OyP0
zJ!bli9EpKV^nY!bXaYPC(mde<GOjw`V}6fhhfD8^Q$&QEPehoEi3m2z^UmCz)6%^P
zl_MmuS+sIQ1c{tfOh$`ocXjsjZr{@(;<{4yXfuDZ8IW9_^64%|WoEkUz1b~I*Hw;?
zz^3agM?{d_nw#$O7t;XV7$4Y|5+P(1f_P*9y3+aO-xl~16jTkN{<bq3N3TW=*cR9;
z?}4|4iQw)uTLmQ({E8Mq7!xhupXa;7L~(bRFK2+jKuz%~Z*Fz7&M8Mo;DK7pL<HR(
zny-A=QR32f#g<XCbVu_9l7MkX<c?s?ie+!Rws`7aFiwnj#euMvGx_#lk^%_|Y@khY
z3^Y_~pev12^6|?H@$}!PNV2!v$HJEvB%rWMJSC@XqLEVn)~ltF4#*J{*hu^2hzPP%
z?B<3JHW9DHn%?@S3M4lM>Yp0GcZm<>s4JQ-rKzB$>E4$kD6r|?ks~6=PQgtVbbVzN
zOJn~4I|U!+mlDzTPT^_02d{X+NbzNtjoyn-8zdci{^@qSLqo&mc}%#P#(3vFli9LE
zwQ>Xn?obsIahWUX)!)e<_iQTMh#vQBtgtL}meT@pY=8c2tLL?H<Om9EiYz%If-DQ|
zxH<pQW#N<OZUCEo@?2NJW@F{(DcWr3^IcmGpV4vz1-98pIU<6r2i#_tn#_DzXy*0#
zT{b?7FD2q~)`LsQXj2XDo&*&k)Zez}SR-eJm3E4d^<tkW3hX(S{MDW#e(#98ishoK
z*eGX2u+f>fqLr(-S&k5?5&VgSjZDNfTi9Mb+}XSDZ~{!!R}c5&%lrX3jSwsm<24`Y
z({i5flOrgwHFnDp5oB$9lw0&KUEB7)XlxN2?|m_go9}%&DvRdp@lyMi=6gqupupxk
zDM!RLG+)6{{61E}(Ntk;_(P7KqRl=zn%dH4zseC5*k(V;5pfM|_W8?MV6)F(P7`dF
z5h2$b%UcoSz2)y|Ep3)6M^Ip!CCL#HWIO#IOjA(S6F%JHa#`(jj8&HE+LoV=Xh!2<
z@nAVk5r<;ztF0c(ER-WCuvrV_h-lNSLHBl6@g<@bz9n5sMB84<2061zY7N0XU|$pr
z>>dc-!AS8Q^wp+M;KPK%W8d>c_h6}<uJC5Q8}L5EA~`~&M)11_^O=Zi<{qqgJ;ht|
zx*isu6|ZOW{q1f!jQ~sJdDU;U+S~4wBP6gT?vNuQ$U1#Hx8`5!8blxK4(5tJmMg5&
zhvewV?DhJwR`(g6mm?&wy`GUH;+onkfjT}XdP&A1`WS}<3;s)v=7I%dy^o$~6>NVd
zM^IoZej-OikR_Rqx=XF6tp4T?Z}<a8z6@MSMB7WUQ%+N)))1Ct_R-aAwIstATzSM+
zFD}Wckun`1Iy{oJ3fYq6NRe8>zb3~s5!Y-@KJ!*rSYXb)<-3vDPfiQaV?jH_cn^Nu
z>Xuw@Ig$d~qL&;IK~|X_+@62ws(kK~6z_KpIxyV1Pg40tRw_qTzult$Pvy0Ln$XgV
zo*_qCVB1ZVBjOs`uH?O5V7HR@@`UyH7CCzQ4VV8}UQ45`kRvIu(U!>(5oAIB9}GB9
z))O;yzN30R#vZOJixGcm#9MGGq?kR8+?pml4fl|o_V|ta!l_mxa+e%QfsMOUj)-eG
zA`hQUm$(au&t~u${kj}={kAJO*XmuASLH|wY`d4`h`6=`v;8pmKC;mwyiH(qR2sb-
z&Ktbd=W%^>pYO!2c~(vX{MNj1KDXsG|4xpiz}Eamj)*p`c`2uf)gR37;#>WtM6~U9
z8RRrYY7N2f$^|T_v%wy*7!fEGzM@;Z@F9EdcHJhrT{%%Q-7at0@>X6~mK-5c8~DAh
zc5*}n84($BWJuKzx`KU}zfBid=!w7LQC)bkn)k)sVqc7xqd!hj@5L_zKB`+HN08JI
z{{ApA5kUuL^JiSH{*G*$?^f5zX^vnQz4z{4TD{ogkRvFtU8?1X2(pJ-xo!VakGSQ#
z)m!A~DcCI5+v~ShkKude2nuYo200>vyjy(<n_cO162afCepZgs;-EY6dn?DSNsgev
z27Ho<xXj7;zkRp*BRQ=R%`)V_NiDsIQ*s0aHp{zmL<D&k>@9BEU~}<`##OL)t1rsY
zSG3)k3$5<){8x^kz_$C1xBGH-yKTyA@ou#-TCO8<@k_mTJ8d=J(&PvVY@B2{B7!(0
z336me)$peUc^_S!d&<Z6rDU-BgL%n(^$99MaF5%5p5zkC_mz0FptI+4->se@r!&Nv
z*L7<|%T;Tt96{1v^?O#6<cPR-9z@&kR<Dqwv}nLRcei?jb(tJNfepA=j))+$^M5oR
z<-c3KOHN}%!}hwT)eY*Mas&l7>~=XKuHDG=w)JZDt8#P}?f2aFsFpMPWjTTZ+wVm=
zBHA37K^I$A@g;8X^U&>5B7|kT*`tj9PZ^E6QV&B2rP*)Jwdq{^by*Gg{W=~=KO#ob
zBu0)i5pyo!{rx}XbZ6iZ@rN7{K}N){a%4!=5W0f>9$%YXA!IfFf)6^wZ~O7CXcD`k
zi>$7|q(<eBtrASRa)d~2;NNz$<%kH<747B7kg6ec1^cbSYtt3@yNA3hUKYDzvK;ks
zt)w67THj)wAV-SS2>!kpCr3n(z8E7%hExrqFERiN8c|DMZTkzR1^g%^?~Av^zPMSA
z`fT6&)7@%X)XNbfwSm7YmdX)PB9-CaEEdU;Ar<i{?Hol?>+v@&i$mBCS{4)bYnE`r
zpQnHm{xSfZ@T>H2!Y`u33BSf&tYSZ12_^i7XmJGl&;pe3Rd%4^tBb{2_FI+38umk#
z0OB(a0Ak7=I5FJ|9}~%p<3(I20mV5ArwsZ{6d7EPTHw3Pfq$F<zFNX+M~;A>IDz*s
zEle@wxPlK6)T02mC%V!KAJ`~$IZEp+Wo~PA1$%`Tb%NiCXO?PUzZ~H&;ZI2TOZZz7
z{?b31l~8Y_p%ok0H(LB94c6~3;%8g@rO;+2Y#h??a~BQla|`|wes{rN!VfU`OZX)Q
ze+fUy;4f_pg~Wruh+k>&m+*59{t|w-!C%_tE73?j8K2M<bn<A%FRCeXRQrFs<3YMm
zPezar=@C5{s<w3jCaN=#^c41I@pW#GuG}hoBxxD6j4|{xki4wpFy3w5f!}rl{t|zY
z6n`IcjO}fJ#@OD8p|=@G&-(XR>3w#@kJpT`or1sD+dhCJJn8rmJGsj|YP-3H{lcqQ
zx!P*4uq<R9jWrj;?~lMYo9e8Li~kNR2rvQ(##W9;Rcp4^HF~b+zZ2ijSZ1}G>lQV2
zizN|6aWRGtj3akxE<$ylo9OI#l0bioBex=9WjwhX&*=%Ii8G9)pLbKl(Q^r8jqi%u
zVg+1LMB34Ab4Vi1k0;&fpNS+R3V+!L>$m-ZqI=NYr6iTsro*e4vyw=Ee))KsnM{)D
zvq_|H*d1e2$#wY8GnDSkCY_Pgj<Zds$CF7qos&#%Lw$ZuCTsCrpF&>Y3?+2l9AyG6
zPbF)R@NFt*T%1NWV>u$7pLe8_yRh6ZgB-#0pBZEso|hTPUOacr<k!8BNmhq4ixgDC
zSN`b9cBCI&+m7@`rX%gh20V{xPj12U+wIA1zSf+Wr%0i1wIhA$a~;SSA9^xMnL;~d
zk#)%aWEMB-xNPFZ^8aP?I^7-lS(QUJ`&w<xg;qb4!wDmD$udqDOQW1%#<%i7tJF?p
z6h}>To|DAV6`i<R>ds_SIBUZ|ySt{$Qpa2IQD-nUg9~dNR;QD8uOJ<Gw@m9o2B1b;
zyKo5^dE^c*dK_KphQ5Ugncb&%B^x+lB6Z|LuR{Ozql5EFiBO@_Y&UoBAy(LhmOMeU
zG@={Pa)u%&{ARDCmUbWDtNYU~B%iMDMxwdg(e(2SVxW~7Aool+GCZCywrt7wkEtv^
zrgq#wLa3uV$w%dlJxE;yZ*~QI(B56`qWi~!?hS)UD0M6(k@Q3lG8{P*dy=Xs#@WBL
z6y}emuC!FbJNtT&`fN`!1bI*1NV-xV5=!;GNd^{^kp{mwUWe!Dy~qkYf6|Mr<*g{B
zJ0DTS(z6LLIY3EP>o+$9t98dx61Jr`(bM-#@I&!JNk>;KAz>j^OUAfho#C1+##&6h
zi4)KHeaK2YKhcLQVdcKWf#)54$s#;&?8oUb{rRxl)1NHh+6|^>cPbO<^#e#Atu5eP
zzpsGI!>ig4;O8v^h!x9ZATPTH5;wnk7|lGQNui;I#EuM$3yGBzM$r`qVbp4ixPD8E
z$Q)$&vWQEVGKkb*`ISMu+;=cpz{lf_HI}+L7Fs)kTu;vpCOwd=!w|0hLqo_sE`B(T
z8b(s+i$h5*2S!r!YUtmRVZL^aLLi-fJB%wZdpI}9$>Dqrs2D-qDEgxjylKNmaz&mQ
z$@#mEBF{ykPvIYDMq%w5OH?$mm~_I+hZK|9T!BG!|Az_#eW94k={B0I;-kEm1)mDC
z;F#)8OHHIFUe{<MOYy89!$(Ww7+&5!mY0ns<aRE%m^O@3rP1s$q#G@mK(gqV4J4ZG
z7^MmiZS;?al5u292ph#cU{dkAj5m>PT*fGRVzxGg&bx^ZhVRCctzqaW32mdBC-}@b
zg~o*GjI`rKzSul9k$Aa?arERHB#Bl{;!EqfN#w~;{8~PUfR&x@nM`IEqJscC4sP&p
zLN^Oe=w`tQU-yF(KGqK>bhF@uZkFG^ow$9^O@Z0DW(v6;?eqK;Qjh0?seHUVKGnAv
z4Wr{G>f-2(X~e}f97>C(!@~FPX}kkVr<0Y@d|ua9J6xqTW~b9aGrN)Y6l#EZKa=EA
z(+m=c;%Ckv3-J8j46;a%ULPoj2@0Qq%rl7%>BnZ0`Y3b*{aWX7t;hTfGS|%_HzM1S
zS;QHNZlYkF0i|Si7={x*d5@HmSzPPE)a+Eo(fbFGOnPoM38!OclOi8!_Ht<9W3!2!
z1Ec8vMqLW+YbNtKFpM6Vt4pNE&3w!im61F6e$}(iJg1Ci&V~{9w<1_ZKypMRVv-?K
zR1Qiq16^OY*jyu+230sy&Zk{w1zBDH32fWT8a-O>HsCL>iw=mY#_XzM{)fO6QDt_P
z!k5q4cO(5j(!QQKA?umnzMeUw>)8^%o;mI7na{qSx$Nti$G)Dqn(Ns>n!KJ3q;+f@
ztz*Mz9UDdK*dSWR#?X4^sjp{Uwx0cf{Cei4uV+6Tzuqlstf*Zi=u7J@WM&LHN45*-
zm}q$W=vX%_EBm%XZ{${z=<wqPU|?LZBA=g2I-+}%g#J+o-B?LNB@8M(?Ndbxk(L-?
z^IxddQ&TO!Fi*lBs;AaDq)dWD=;_HiUk%d|Nt{$lG?PA6!fw#hsGETueJMjDuaNzW
zVuBw1P6PeEij3v_3{KY5kybKGf~4swspk?B=-d<%CRE7Sjd~hlBQ^<pdp)hUk;xJy
zTThqQkO9;<mqbb6Ts`eKw^`j?7&4f8(wkS3&x|@=a%~SiEvY7RBuFnkT~P;>*o{OZ
zRj@Z}&j6~)BpFh?A5+RCkuX3{->)GfB}kE;cCnKo5@d*;F13@<5@fiZJ~JQcJ>(#|
zNU42C39SYKI2;b5kz8cb)0GY~O@fp#WFXD1B`FekJR21gB*-K^-CYa56B{|K3#JMc
z?U+ZxqI=&U)nSI8B(;30o<29PndQp_D}fK$%t{t!)uEEws@U+GBthmf9S6{_I*DVE
z>1Ef`#j9Z4oa+obZhdDGDK-B*Jw4+j!z5x{`Yp?SqwM%z5+Wfj5N!OW%Qux+1&j5x
z+iKq>K-1AKZW1QBZke8by0IC<dN<Ka7*??E9FSaFXTjf5EQL>0!cQssO?!);UUZWg
zk}K9Qy$7I=s*}L$nT8`Ih=+~Y0kn7liIc#a^t5^b>0w}XuwN@|<ns`MMzWAx&siCP
z>S@tJpNSZ<6&mb;y`8zI=wSK=9HZW&ryndNgC!Dn=xNTPX2|_|+W9u0goC|EWHSj5
z!em}dgx+Q{AJNlki;2)KhCGhl)SaGQOyVUq?S(aB3F$9Eo`4axq*>j6)6+YfBTwt;
zS4+qM$yLvB={3(ZlYUT7-&pFKhfIqjdV1SxP{Xv0L`W__s;9==p~KN1rgttQF%sG<
zD0;XAcuiPwnKf4}C+#J)V|wa9L5vnzK%#}Q%PN19Er_Ee>~FJ0wmV%h0GvKgy>FB<
z?)Ut(2&t40V4Yk8P1v`>zi_Y%J{B%0e1Swt>NpMjD@c(9`6rv*(Aww075eN2k|?2l
zDM&|+^iJzyi!iKN4PUc~1L__mM#(kb>Zy4PH2U01VvxY!Gkpe1kn=DqZYBj1<VQj0
zLx-B_{EOd=$<ns}E_7ei5E3rMFYxYPKSW$fn7-E;a1ZNFFC1<rU1`7tW{gA)jR6-&
zq1*mELNX+@5Cg6j<0MG90SA$E_(d6TOA@XhFoL8>mD3xr1G>|SmwY=uQ!WnRHKd<J
zZla*>e_v{*Zi<1%tR;mK#&iRnxt3H&kW2$TwwC0@u;qdMf@T)F7O+i+ts{AHemDnU
zkGi}X+*P`AGdLr)W5M4KFVzZ*4ZF6p0cUR(ryXBM4Do&eT~UCh#^S1SRL~>K1PQS`
z3K0ei6Vly4jkl6s^beD`f;0Sj13kXpw>&ZAM#d>@mkjC4czR(lqNR}~Bt)<$BNiBF
z(gxoy#E?P*oqrotCB`m^Qbh(!H6B;VH3mOm15wi`k8hP_f`&m~dq`hyScZ%Q(H?S>
z1R2dL6PyahGuA-QtOIxd&>JMiS2M;xw(-0VuDfn+<4RgOk&F?V!HAQDF$W!>!b@Rp
zO(J?J$5aDuLsNL&?3x({I%pG_DM3mN^s!Ckh9uTO7%|x@B$YOL+R>ef5Vl~{<MZM$
zEV4N`7tL?*4M7IiLC>Sthy1Z!E8I0Tiv&|LvYX8XPNs#^VdM;)s0-)nFouN&blIc~
zvnT3=4UaJ_F`y&lXNVUX%!tbkY%6CW+N;w^jFh$#2FdNdeSvYWGT>S}NK*S+#?vp>
zxyb3V)JPS-l})yebZn*0pywMkyF<LmZ-!JP>S^syzMX+F+-~4&8wOx;f<$&hbBoW+
zG<_{37lEF{HDT1d47772xgn8t3%l!fkB=Y5LZgQsiRE!qxKAj%9kkQOM7ys7p%7Q;
z=|_#e?TE4LGH|aNXzc|1F#I8*YgU*^t`vV%=n=qSvA@H&*t2VP`>$a%EiK&Qn-7d(
zA8WlZ9~g3gEk@9P5c1KFwh*E78SN>-$Vf9_&<CI7W(Hu?XAI~R3s=_uPNM7mwCADS
z9$lr|Ue12(1Wn|&9RY9|#Q(3OQQkm~Fq5OgU2Pc(Y3N0eN6+D*69!mSORAQvcfn=0
z?~z*(f8BLCEFiRDxZ<a7hOZF{)Wmw62k1rl$t7_jnaylmME%qaeyTXV{nYJ#syGk*
z)SZ4R8@w?8>LsFI^^?VM>A(1dpDK<$KlMF7RUB!4>IZ%*>joTRoH~nHndkQ19%Y@=
zB?-30m{#d@vAaE<u-ZDu9N*8LLYOWD<(g`9nWdUV;~w1{i=E#!u(gk;<L@F}6dmH}
z%DYH>caO$dTV=H`gis%tEOqAUMvof4;SP5gShwXskJ)nZ&<PKn<LS}6NLGC|>&WIr
zPdFb2#^9Itgv-`8u4yb=+Xxj~%ys2ejkZ1j!iO*eiVPdin2aUx)nkc5$$pLcN<@a$
zF3O`P?t)1D_N{OSC!T(^m6$^CE+WVu7Ein1O}YX)`))E0PEXuT#=}Xojh&`#BR4^5
z_ck&HPXFD;SjOB#rb6lAd&r_Nf6^d>7Dell=+Nz?Qxu{gd@j?%W2PnBNg9p57ZS!9
zaYUC|URv##GY8%cEG>6bfX^o66u^?Of}Gh7z5+v37&Aa7VdlNWre}y25j=pUW=f=v
zoI_$cM<{aO0XXJLICdwHOared0$K0?ETs|_o@HS5L?a7i8KCBIc;^Ok7z{Tc4!H*7
zUPxab-${Cgu@DVsttX9UzN=2~?wP2io$e!<AxHrmERWyvC^6BU_mR|a#+-~YAph{^
z<75m?xSwR`8JvbN9zd&cH0EJ4oNl_Ggma=1iFg3wJWgD+3pUE{8kC7#YJ22>q(qlp
zq>>}qh(J<e`z{FWSQWX5Kt7`O0df<a@&K%c4DNz3Bqacz#jDFl1P@T%G+tePHHqWI
z9!SIk5bd0}v6|#^VlO1(0f?hHk*6wHO}&u{sS0Sii7t2u+;Rr@Ll`m@ps9(TdkE4e
z3?6_mq$|Q62Csr4MTiuExBV~~&ygXBK)T}i!(=+wU^pUp01d`+4TPix6EO<OkhEZR
z`I8omW<r`t5B+83(n}C1L0}9^S@0UhBZ>#8VLGp&Aq%{sO|?YNIVK?o9)M#q=YX_@
zioTgmAUI-mO+^;SX)ry+oCYJ!KoaCMd?djfr3gb#1G>pXnYat{VDo2}lpzhW8(`QP
zu7U*-Jor1}U>(tNVigkc0K}PGKe&6A$cb~2hzEc3Fy~?5dfSnT2cS;mmoD#2qJ&n>
zLn<UaV17*Gnz;~hLE2|8nZ)HUKm-pULFgdNcyQukB;o;xkbcKmAf`Mx$1>!=18|f|
zI9Seu8Dj-<K+XfkgsDZ&gVAq6I^;Y&`^j9c<QhaE=K*S)Sk8l2wH{$Sh?=JIn{@ay
zmQ0ifIq(1+!bD-25JudDM975nIzYO?@>h9)43EZpcCaYC!xzS$`SkEkaK-U%T}UHK
z1H%?ie?35QLon(B&JSRHeu?y?kj2o(S?su8)(M;x<wN@9_>-hKoCRrH5rOo{{wC5Z
zuGZzQgC$mAz6VK=J8}FC@*IqL2O^L=8T&NEBES9(GDZx(A7MzK_-n1ONNar%>5xL%
z^As7SXIDIe2p+%)LnwI~?wz5wv|+JN=HtlmxSq~vg2W@cW-lU;P615^aO4R@Ae{mV
z_M+XMhS;1j{taQsseqQld38@Cf(NLsFILx;KHeMW72|&nsn4;huBY~Az&~X0L4+Z}
zvgsL!<rs1Vkt2Hg`7;o#GUO;CkXy-n7Lr2@c?FSIn6RGo&u1Z9!{FBthP;aLIT+In
zIfe)xK&SrP1ei`SaGl;nDjxg>+Ejph3cL1gq(W+C`Loc?{?rPiy@xbNt@voZR(^mu
zq*hko&=689?1GPx0I3yr0ZXkg_%y<hT49|E{Lx(Pe<F+rP;59?n<>DuEbPKBkpr?U
ztRhL4g%Q6-B4k-i2Vps8$hU|<g5~jpkR@Zt_lQ7lg)4M3qzV{(9$`qZ6dfW1Ir1YS
zkYHhqm|)>5{(>+b{FcqQ1wsra<#!}PmIeB-C*@fdhF?JZg3xa~&BE~O(A&NaLJTxD
zOS3Roi7=#D97jkA7py@9(k!nZfnb{PgdhUR6=*9Ag(G-(bvV%qT^No;$g?m#4z4B<
zT=yu1@c_Dyq$iKS?fk+KBt^JLk5tIEK%Wfeb;Kb8i54(+0Y?%MfkX>a7!xgAa0<eB
z0Kseu<k68wNfalhBM}ckoW(nJ-zd^Us5KL*kbimaDCw>hq6QlIGRX?T0xUTF6KMaJ
zNw085!~Baa$3U08Oh)P%(issvfb@a1<W-n`caO$I0HbzAYF7iT{yXW<`MV>62jK6=
z`FH%CXz2HUCn22UdgQ<Za1?NkC1Y^zFo`!J6%YRF{}=<=0Z#3UR6O{u?Iq-2*tG>n
zh5XB?S0R1IkU~TX4RptAa6^6htHQnG*hVf5Q!h3=fV2^)NiUvpVV4d=B4k`<{e$%3
zijPDD55PW>EB=^=r16?YBN37>P}5Bu8H)%cU;ccJjMoYgnfL7Ec69OU#2AeLSbt^$
z6KBb%=E>k<AAX&bgfrercr_$pQr{r63=Ely2p*vNS$_Vm^w=bl9Lw$_+GZdR9)PD@
z%2U4yoG&J(6j>lI<2Xk4Ddr|LWgaKD5Umgs(#KAa?jcwJ-IgZMFHevH$h5V8lh{M>
z1~;HLC(x~Lk~~0@&%+Hr-AR%Re{VYvPq7R?N!r8Tb5D{<8szrqy(fP+;5(#=^gky_
zJD~0O4;XpWTO=F)p7$1+38xcpkzsI(f1C7z)7c-u)3(1&QsD1f-zEd#^pCem5uC!_
zfzTwI&U%LojKaI@pv%+TdSmFhchNt82jZG`^ujx2T?pQP2Zn<QbmP0EH=wV)OKR1K
zdc3oCXW>tyH~>BQ9@(MAoAjP;6KUc5@RY&B?~}<<h``lva`7Fg@qM@@ntzI@p^?2#
zkvVX>=M;GfPUa6t6P%JhBz17|@YBT)$zFJNYwt&7Qxx9%2T|X1Q8&>QpF)zs^)boQ
zAjQ*@R(}jb^P`X9E=gxP;S;i)<MH0ljwaBvpOA?F5B-!>!D-K@WC7g3&pu5ygy5qD
zAQtX_KYN;t1XT4I*{ns>(|$ai_Zc9EJ|lH%hIr|TEIR#jlB+1n_nusApqsuS`4Ao+
z`i8he@M#2)l$=Nl{!Io0y7J#}Uo?r5Z{gNQ6215@GL63fE#trY3z+@Az9TmPUi}?e
zrp9YM-izn6sNoE;YK7DRz2yw)8G;3ndt)L!bcUGpj8=zZ4-YUr`_s*5$&E=u5|5GH
zNX7$@OOV`~KE4_9LM)5NI2IxYWbxkko=ga5$Pz>#ZP(>2>`4q+j>vKY-EbCG0fwwZ
z1Tu6D=g1&@>H(H<hOa^#@^t;qft$jRwTM8T4md|~<W@u=Klgv<NKeuU$NcyZd`1GA
zHa3yYKTom%h0$+<6Ab(tsPR7}TZ0__(O(EO82Dy5!I&?g1Al<=-w6kPH@f8qk_vwx
z_<{6;6O8`BaDsuKO{e}y(&29y{h9QxAIS)<kb0qC|490UU;%Vknn=6+1nGYv8wk2W
zN^t#8q*yDYV(3Rdkv<_<0Pb57Y1+@wG9d{F+>i-${!9jIh13jv;b)ltSOD%@6X`EM
zlOnB<n4trIA^A~Q0NSQR)=R_b`QKoF-1iHK*E6<VXf8ZJ7y5~68vQHm;f&)U<bZTw
z-mhd5M;=845`mk3g{716>_!CAe`iFVeTYE5Z|rYmAg}2FB6xtB3Q&#f>Bn2(J}DFM
z6cQof_w8?_kh4F72p)jFh-=NVe2g6vd^S9+ZFGA=&31>~pEiPA5fJfEwPa1Btvi-_
z_)3_x5i&PGE5uTfk2VBLn02uYg};D2!Ur%xqgbgP>BXEr#z(h}<-koMFrEXGL|`%p
zris9G4$KmPQVx`fKsg60MPLs6RS$aE5Mk*K%vAzV;{%wY4qpk9HH<t@1TbL({7w<T
zR1E-b5x~q001HGQf&+^LpdQmMjAe<)f=L&+W*Gu3uu9;-3Ln7Ky4hEP+zR7gB?4(2
zSR(?MNdbxLL;$lV0Nfg1@2dl|CxCcFmRt^O6ah?|07rueV8R4|+eHAABmgvu047EN
z*dhX$5CPy$5va#p2q0TU1hXIjY!d-Yf&j2x1TY5zzzz|>><0k%i2x=&0N5o0CJsC(
z0+{Ilj)&_-1QQ&9JSqa1&j8?Y5x^7%0DD9L6BhvN69G(F0PuteV4ebiCq)1=6aYNs
z1L|2?0+6SD2uno(@T>@6_5pzBMF6u702~wnOgaE?SOgYu;6)L@6a#P^6#>jB08syT
z5y3P9Ag_u5<_!RNO$0D)0Kgj}fVlzyj*9@M1^{?d1TZH6z*`7lF2MFS`~|>!0)Sa|
zD4xP1i#ssm55Px0fRR7(l_30Q<kKR6DFERATm&%i2jE{KfN?(nUy1-m`~ZA~Ks~Dz
zV|+lq5m_+02jE)~z=$4zGa`TiJpgA#0ONT8&Wiv>@&NoG0vN*s@RJBY>|T$^FCv0r
zI{?3l07mTq{2>Auv;%NK1Tba?;Gzg%v<?6PkBgfW<8%O&B7mVe0BQj0{V_QpT9E|<
zaR5R@03&b!!bAWgZvY}h0Ap?dqC@}#Z2)3K0E24)3?lHg9@ZZ~;zR@kY5)>M0OM%@
zl0*O_X#i4000U_N(nR1F4rGV`hRwi{DFPTT1JFJJ?9UB=kuo4zA`8aI0CW@q43PoI
z6#<Np0q86O7!?DMCjuA>1CTEQ7y<*(T?FFlInq-^FaidaULt^DF90`+0EW5%^br9J
zaRKOu01Mslz8C-ld;pt6g}xHRw~RapfqHfU#<y_65RnDrS^$QL07kR`j1U0~U;!8<
z0vNLbFj@pKOa)+!2w->$K#2%Ibjrs6O(KH9D6mWr0gOTcm?Q!ie*!Q?1TgRfV44VE
z+zG%81X#p}_xS-R^#RNrW?sVm4?|6$m;2}}$OOP50vJ&OFh>M1hy=ij0KRQzv%y~g
z)c62ahr?I0)pD{^1Y8_gP%k12IkE%+@eU=3T<!yy$Q4+^*wVI=^RMy&jJ(EIvaRLh
zTSZ_42R4epCIsqX{}vH1XW1eGlmlBu;BF3V7lC^@aGwa=&w&R;;2{n?DguvjU=IVB
z|F@STPlzlBIPeq#80y-ZIPk0wV2ynqOBmAHUf|@zK7f&5^p$Kcaq{0q;1v$M#^yhh
z@H$71BMU~qwi6t9%Lg!#@Ayi#cRBf#2z<bSk44}U4typ8pL5^~5%?1RLjUt?5&4F*
ze1`!0iJUVWIOhYH7XR^;Y(H@F&m!;(2YwfUKREEG2wdcV0^%2}0@gnz{0UlU5W#TS
zrsY7W4`7vs`%1P5PL39V7!JgWKpY1W5x@}Hmc)TnAHXE0W2v6eGdR7Sk8W$vfou`z
z$bn8G(3t~WMIfI8Jw%`<2W~)s1-A}9Y5Vv9)S}+j&sSuDIT)fq1TYi_V4w(K_zggj
z2w?OLz+e%;;2VIUB7m_s0K-K9gKhvuasbyK47vd+7FjUn2Ec>>M$)!1@D~8%d;qiG
zcwfmjfs-eTz!VNl7l9cZC>4R(94N0BkqVB?5rHZW%oTxZ4md=hmIF=^aB*OP2rT5l
z5(LC2C!i(EeLy{H$_if*qIcHPn-LHnrhp4p`vAtj)>ne~o$;?nKzzIc_&q*=@o&Tu
zi*$E#{>?ss*YEWeS?CUz-ys4Rt^+_t0HbvP?h*kE)&aO%1Ta<y;2sgcC>?-%MF7Kd
z0Cpzg{9}4yWDdyvA`3?2Yv3^(-vb~jm!rbLo&XVE_f#X`f6W5kS-}t%P8c%6soC3d
z%r5{C_d_`0mIWu+W~So#3SZq}V-qgNj)fC;7o4yc;FLj&!xg=~^NQQ$;)}Oz7-KyR
zp7;t!xf9-0WluxQhi6UZSh_mr&w=MbyrE;$LjBzIaJV8l&5gj5Nzj2$!=a(fqphfB
z?>j>zmPA7$6&A>2IwBPvH7t(_PbIuh(v;wr(dQ!-9Uu?*d88r-5_a||Mb8^O274KQ
z(xuc@1#d*!%~t+!4BJPR@fVihgo`hna5;oiQq#Lpim-kmcjOG>Z>Q4FMkxvur;}(#
zv7&wWY0#_q{^I8#vl5H%#>T1|Z9uC88uDx?R%GD$@nS_+JbzrQ$VtY&^2G4Ba7)?a
zA-+dLX!>YHIx*6M(TXHBW25H_6`9Z?Bds5;NKqk1?Zt`|Ms?GM6_7Z`_iopIH(Js3
z-DqW6q2e7K4ZBU5RL@k)D;@-@>HN2H89KCh3ZSY=c()bRg(gfdE(b)z-xL+F%Hnx|
zsmmR9c>aj9xr)~T6jSS1V5zG%F95xPX14pt8;W-US;xp)pfg)MdYiH*w*B;NN+X`h
zMr973J8x8`BxB{KImEPx;DvL{Zl}{~wzKPIZ&W5GFgiRc@fy<Ab6s=#^kl?M8<lA&
zWDf|z^XtO->y65EEbBHYb0XQr7KO>FfQwV{Rn;^l_Rg$L%9KP#+@>%+h(ry4W0i^C
zyh+&wMH~{&XErI5u^iH%?2^Q;qDs>)C0wOtZ_qlpx?>uY@yJ%$plpZdTZQwU24yOi
z-)K<w?#wRlsWLUG;PMFezJBSvQkS``8lDVd#Aj5dC=C!3@s(RvZ}Dbj2NW=Gvoa@(
z@eI|N%8(}n=0bI8h1q2mF1Bb)OMyT$y-GtKW3AVi_9AOkxw*Q$w4~Gu@43#wN4$7#
zPiRc1k!+y&%nQ~Mce^qR&;4&#c7eAjtxz=Js^SSPu5-9+%{{tx>kjJ--FdsRy9x<3
z<920A9%E_QAO^OsIi03^mGK%z<rPCkC0=FMNCx=^Tsrl5m09&%a)o=I+hVsn7Ip8_
z2kS?Tq|Il5FreAr;W)UR7WUMl@C1W&d~vD1@m7k@HwsddMbPf3t1;7Vjmk*SZ(yS`
z6HewvWeS{@H7XN2a~al}%2Fp-*U`NXzNym+?9&^~b*RzT;&h5{<iv7D--u>c#p7$;
ziQF!+_%e6=Oom4?MXKS6f8lKwhKh5QmHb1I75NloGmw=7&DeB$?;XmFWJV8f{<;jq
z_=L&gii#72i}$Z5tPFR9Gf1og+SzT3a-w4TMY=Cqk=S(a7UeI5t}0Q$vj~&n{l!o3
zRQ?||rYKZRAK#;l%xtn9RsJocDgC%IsSp;u{S(x&O~sL_lF78hqY7)PUZ{#zhj%gB
zYr9rfJIt;duBS_vsrocWx|?-r)Hp?<qMyxEb)r3%sj|CRs;!mA9M_^+OAfyMQ`&v{
zT+5=FxkjtqI30m5#<6wqWQnC>h_#$9S*Ge1(-L)2zubMbs%Uy|wW?>+#bv5b6;0Y&
z)d5A*VW;Zr7-DRCc(v*&MYvJ&uW8mgRb<k@J2olU#|+>xSx*Ekld##jO3N0x;2RAd
zCA^v5Se#Sb17;pPnCU9zZ*we3hK2b0;$lD(C_XfiYh%!u;yD0CI^AWiIy1BfwS^(g
zXtv@XfR>CeV<(Rku%AsCxLRthHMNd9AE&7uF=ZiaC^x&xt6bI^OIPu=cYdKMkC?h4
z3p_i~n-~gM4W=H%1TVD1Vk2JHXsd>{nQ{a|sMT3oZmxC0<G+HO-o!M3-gdt#IRtey
z4I`#vy6=8fQWh(ki0LLKaIjf?Y=;Rf;sko{BdWxD#yWwR?8q7c)+=*3Ev2>KI>2Vb
zi1UeQ6%xbhEH#e#mQr*K1kze!dH_i}c-FiY>;+E|u}k0~sl)7&@;ZyzWht$ysO%+>
zULqzn+a~HP@GOy?ZW*PDj}~YV3R8EarQo~gsi9of^$OD<dUBV_z#BPAX_`#W>{6xh
z;xyPIXv_mD18>OVO4Cu?F~YI8&2@81VMGdDXnI9yI*GI>XaIhM0Lj?JLgnu$P2V6n
zM$j3_+=UVtzEhgQa64fmiT(B+SJ0p`tx&C{_dlSDDQ2y|MP)jVjFG4WGL|~swfKY;
zqyDHeU9UzpYRq#jrF?60Sr+=#xKV8yjbwPc2_CQ*&aWA(Hr<L~ILyxqe9l$U2e+$D
zFEX0d?yQA%SlXu7)TZx{7E8OCRk4Ew4bG}fzabjNJ_H~g=BEFuO$%_J3U}AScE{I2
zpZykVOmA!Gi3e55U0Flk)0n<Q-sp0-)8(isb;2Z&R{oX7l%NHAn)u-Wb(o+*vewjt
z4tz+J#XGT=)-;ONJfzCu#W7mbLb@HO;jEq|TGIxQLsvYaN{M91My+W(N{+*4!s5fY
zjULpR_GoF+!>ZI!#<WjsI;y1uA66x)cd|cc0%-^%y`eRo!s{aku`jd?9_o7pj!lnO
zIMt0SN-GXbWz*7!RmpMqmnTFrw-~A6epLcIiC}z0m6X6ZBDw!rK16)rjm~~Vl?pt|
z9#N&kX&W@F2Nx!p`3wlWgfJ3cI#O9;wdK0ULEh)!(k9ZvM^%aW?6R<C6Ouszx({)B
zZkH-i#r~>=u1I6Nt)~uy`6@bw*V|(1F$RVSp9z8C#4yP;^7F9SVy*_aDUp^wri#-r
z5?^-Xr5Ey*9I15YL#lS{7K3CZ<`SFF2!=IVL^)UUImNKnbCbc%Ck%sPYv9W#)>>Np
zxGI_tiExM8RqJ+@R$J|`2SGbFJ+5lU+aZ|=I-xP(>8vKkST4TV0-H#qcdOb@WRzBW
z5<?}cE-SZ~v<z#xqBD@MEeg=>`Q56)it<&I>`^VQpXjtyx~q+qjym@9I&P;0{%{!G
z@QMPw8DX|pFxdBsin-eATGS=9%<VFkJ8Bo<kMcAl8LduxN0+e<#(hnV1!Ppf@1vAk
zYF$R~8WuU+#<_OK0^@=zvx}9?by|zD!U1Av5mm-DZQP^sDtj11amUXyP8d66Y+vJG
zwwoBu#tMtmI>!zRRD}^&aHevd1$IW4lV(1l+TZlgCsezYn%vOP(Dp{UZxXyhaC|bn
zt#fyiDzxd-r&LX(>4T?LZz-F8dR`Tyq|cVALuq(Nb*N&=GWy6NRch0L!>W%mo8J9K
zH6tRA*IiUmVJxq*l+P9IgFioHMDGV29_Vo6d~>zi(v<a!>LWE>_O&XcNq0f@g@)d8
zNM&gHQ>m^GrwxVL5c<aR>R5UzTHTR;_>nT4M#ZSR(19`PiF8MqGLjztQyq_lH2Qgr
z`UZO8lrn^N(5t)Csd&hJQXNjW>eU6D@P%HTOZUB@Qqz*V)G4&P0S?=rQ%2E^gOo=4
zc)UhOHyPCZ=$i#<13j0b?oV@L)p;~!wI-Cleo7fi?XjRn>AjjTx+_*4M_-6lcc7t3
zYWVU~tQx+-@SR#ilj78=v`?J67d>oO8R@`nN-f<Pr%tAQ`>FMG??W1YMF~x@3F>qu
zeQ7wz>XfSPL$~HAQ|VnP>Oy*Kf;Nvj?g#b1Pf+M+=m=n0nySvAKO5D9X+b71GcA{;
zs-x+!G!R`o6cpTKRF}|AgOy>lb}uM%B28_iKOmJcr>3j(@vm5V_(4q%dRIDF?9X;;
zcxzL*b^@K10g{=3%GnxNQ;h0pMc+_*Dgzp{I1|)KGpajtX+UcyUMa2hSEIU!s|Z)j
z;TArY2FzEaiMHvk4(ct04*UnS<<?%>Fj|(azLWmeN&REf_np-j2>mWkT|pOpt%_*c
z*;Q=}9b~-80&#%R>8P<7;Sc=nU1wiot)tcrp_kQRFSS;5fqBM;e;1?0?zGfEoD1Kn
zV~Ek>DyRF))M<1@fjWw&<fzl>>%G+BO~-nxZ&uRR=Bgv<p)z$;)BOJG2lXnPZ%wIV
z)uGu<zq!@F!o0A-C|&MVccPtEs(aF-h0vRyJ*|nNvmemJG%Z`LCJ{}`ZdbdLX+slC
zqshC~G4KVbdAq^xx92G1>C3y-qo`pI^mkJwjK#V57xZ_OcgJuQ%}-bBAg`i+2%b_R
z(dvYHKH1DT*<c&M<;S<Ez~Tc-MR~QwY<C*nwQMayx6{bo52Nt*4=f0EUD&FDEol$`
zap7{?ag}$ni|{X4II68>b!PmQTUQA;{a~9WEZb~!F0g|0j@6@+3YS@(@S{$Zp&~1+
zVYKi*O#*##FATp@t6EJ@?p5EQZV&HI)zQqE(6@zF7~bD|Ra)BZWu=PN?^AcyqfYpb
zJHJNQDw>w=S1*|hVOi0~>cpm~G)>hy#Y8(DH&_RcPYzb7Y1spsxX6jnsj$omZwJ!o
zdFn)ZDoPbj^#@h({AN1zZp>h<p(*h}O)Q~>3RpF^?1Jvu@{s009PiVSFKAZxhk7nv
z)D$*F{;ts~6~<6{@E1)|Q~m{wHUdcdzgNWF5v}b&Kl={^db3lt$xXL~YWo(b8t<48
zN&h`jYwUpjQ?af1ZuFi?#1YsPwBxQ_@xJ08XxB;FbRFaT$uyQun550*j@>w7nnjmS
z(q?ftZnhA0q|%1b_`W#v&1#A1O9&lk{cLS6_y4{nraurVnXT>2FT6lZDvT4_)7r`K
z)umY*NGK<06s9mFB-8V^l2l$P1QiAJ;$)u=0~MzGXzmnk7WWc&DNOGw=#(kiOkUYP
z6{fF20yV?y;9Tav6{Z}F3)1MgsoFH32ir+$x&>Yl)^^~PtX7&f)3mADY%bNSH2qyk
zO;fdkNBgSM)Q2vgs%_7?`>9OR=%Z7$U3m>NRHjeRA5Wy`OeCobx5H;@lMcP>7>Sij
z!OZSj!G{jjm>$;9&eOC>yv|28rehj9W}3DGFN1r&Uq_ct({|yNKB+Txr2D671)n=N
z#59DSo~BLCXJ#K3Vj3F))x}GzV^JWavML=yo#R4GwKQkCubK5BrcEJq%5-fzUghQx
z(^DaI)pTta-ms@bO#eWk9qEqS;O!Gu(Su>82zqY1&lJ(&rc9bTL)(c{+lRw|89T#g
z)^XvcNp$H9Z97h#5^kD7ADW>}=he*$H{BdgPt5SCvnt$lGMrwVq3y!yZ-<-y8BTl6
z)OO<KFTzcyBdB$zwg>O)&m&C3qoA)Z&hk|-DhfL0t(n?vUf+x;Q#B>Cv^{z=)g4i$
z*MZ*?>bDUO(Tgh>fkh0>h$-~Hv$R<ny#Eh*Q5@w88;sXdZ6e2bk89bT0~oZmV@Qgc
z72rj9Z7NCGGFzL;IVD3K-rhIO)^>%{(%ITB2~2paxtKx^&DQ1tPrjM4&N6GqlAGxs
zvzF?7P8DQ=;0^41f6=O&D$BGt5v@R=(P6sGrqkux7y_A>a~0ZGb#%)GWoA>9U0YP1
zfPN2rR1kL_=k$)kF4J*llli2!1Ey+L|5N)z#}Jkky;os+fvybI3B|(-)2DQQs4k0B
zKUbJK(9@whBQJKuNumqWbxy`RD4rN;JuHldTPxHAA5Vjao9$t`EH$#ZX}ww7rRivx
zZrBJ+r-o0^@nm;#Me#S-SM1Ydj=C}{EKoo%nxGSs-C4x60hSeyT6j7bh_w@R9Z|?#
z6Lc)K{K5oX`!v>&uZSre7nU$4&i8UXuwIy;Ge+W_Pf<=T?K}~5%%!6z>QXg~6pJ5D
zi<`{ukb0t+h!HnIsBDG|F}$PCc(`Qt4K;`w7}QL636rmSgxu248z>rGbkiF6uqeLc
z-_(7Q?o?FD9rN>9ehfb`7Fy@Fm-?<=l1x)7bxCTxv*e@=Ye;+(T&7bd;8-sXFHTw8
z=!9#0S>og-yHyw33C*+EtLqqwW+@(4TmkcEZ=;Uge0jsGV>ceY7tYa*y7*Ye_d@X-
zU_2H3J{tBy-$q?>9HV?zd=dLVcvT)q)<#`6eDtvazQYEm#~XF+;B=x<mky`zp)?$C
z<@rRhzeDRB;Fv>Jqzuwh4DpF$g-Co0A8w#jS6iJhWI2ml^7#QRyzT6Emv#Mr3(kFv

diff --git a/docs/build/doctrees/example_notebooks.doctree b/docs/build/doctrees/example_notebooks.doctree
index b9bef3c20dc63831463b0ae0c0e0c9848b042660..48df9e4b38f0fc2c76ecb9eae315ac298d9746cd 100644
GIT binary patch
delta 292
zcmaE?IA58yfo19x!HulpY>bVQW7+(z6+$vn6><`bOB9mxOAB&R74p**^72bklk)Sk
zixm=!QWa7w5_3TkrNybqiN&eKQ!?0Nr(}rrfb|=Zu75KNdl+M&Uym}(n)sa3+|0cE
z;>?oD__Wfz<dV$%y!hhGy!4#ZDQ#2ydQ|Z$Ov=nlEXqtRo*d4hz>?9E(KorAqn>ff
z=I<OQm>AD*KES<|S#@Q`vW&2d;L;w>yu{qplF9<0FKVY~WUTbd2<s@#Pyn%)ZJx#N
G$p`@4z;HVN

delta 104
zcmbQQ{8*8-fo19qfsL%;Y>fVsW7+&Ur)03lPRS7K0rNIzu!k{D7UGnhY|L5DIAQZ<
z&J#?Gr#IK|Y-Ltmnz1M&EF-wIhchoRH?^d)Ahmc(?G%lSrG6P<9i<rxAoiloVFI3v
E09DH+X#fBK

diff --git a/docs/build/doctrees/functions.doctree b/docs/build/doctrees/functions.doctree
index 404ea6de34f4477f068902d88dfe218f3316327e..cd805d6b1cd93d5e9d46d6ef07f6497939a92505 100644
GIT binary patch
literal 226018
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
Im!a|h13^*pk^lez

literal 212148
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

diff --git a/docs/build/doctrees/grid.doctree b/docs/build/doctrees/grid.doctree
index 36082ca3d96c82d3c7cd14d66b743fc2703a1cc2..e45c1acb9e1a01e68fe24b85a89f17f67c85a0c8 100644
GIT binary patch
literal 119772
zcmd_T37lL<buX-SB#pIt5eAR!YZ*KvGiuq`#zt5ymTj<&7i<~i2+{88zN7A|p6+%p
zlEz?Tb{lR!2yPSnfms4!3keWN;1PaFNO<sAosWD;ULd>&CM<!Mkl+AjfB#c^-CKQ^
zo*v;L{II0HwV$m{opb8covZHs=(6R@=zrm+PODmL94nM6l}5ATclzPlO0(RX^Bdj%
zJ^dXo?%&>@3fHwuM?1}4yX^PFWvEfE*6NkE-{>Fgha0JSw^r{IMEf-zzuc`g8>)GA
zb#<(|=3sxSx-MMZt##|ZQ52qds9mc(uUM{^IvsDWS?QseYNPV1ef}|;1+TNruJiIf
zn_G3Yvxji3Rl)?j{pyzL^6JWPOicgUa8<q5@cY;HW=i3BsoQPWW_n#Lo0hq<R_V}^
z*09OoBmTX*QJUlbT3hM0^pBZR`Ec8xr8>QEO}BK2iu%<})rsnQ8nL=9ym?o(Ip^=H
zl#bLYyISpL0JwB^&D0vD_I$BiY&V--@vGdL?^c_QV#PnA%6IZ_y8zzKE<XER1gb*2
zgH@e=^@`q1by>K&)~NW$40v)-SI@wDs%HX<XW_rc;lD}zw}aLOptNgjMN{FbR;kwR
zhXU+R_W0byYziE!G-f|MgJWjrz#7%DYrFkYulo4vP6GsQG(k{k&HIfbyN>wn4#=ak
z>-@qK3m5Fdr_L@c-0qr})oU}mI2iDISEttXceVic(ji~MQOtE0n=6M;YkoJu46AG$
z@|v@Q7X=_L2N2hV>p&}|L+w(lY5+1k{~AV&Ub)%mmTC>^ty}fI>zl1!y+j1=5okP4
zxXl^DZh=$o*5TSJimvVj2%pZW=-TS(M5_Z4N)Uf4i0u&%X-O4;_|v#p0qgF0rr-9x
zQoYVVJKJk8$x*7;y7Pp(k_l}NVz1WmD*h~ZxT2uFz+N=mZ@?t4&jt7Db)ce^#@g0}
zo7nVfL?Oj`4a_RVsFZ`CxRWDwiXiPdqvHP7%4N&;l{$wzyT^BW`>wm}y4@Zmv}Z%8
z+w>-zjh&#)?xff8yI!e%h)M2Fa-+82?X?>W<kYrSsuxQ$y+)<fDEq}~sZ-6~ywmJ9
zTSGP?;A9@D(JR;eQoA^ZZ6e<st(LjQ<WiR*G4nkAM#rC<srz;-$dFF0;<vp{tL>L6
zQkF<`cDyE}BE&G5VYXKHI|VgfcfRE_OtspzBc(3N1(RqT&(@By8s%oY4I$(SMxmA+
zZ?@THg&??6uio{Jl<GZv26K@xo9Xz)W{XHwcZdF)bF}|^rAEc8&9&-2`$hGidHr5B
z0mh|zp3ou=bDkwcHCW?Dt?YY8OY<Hmwb!UOOBMFH?ayJoe9pa2w>ej=HxC^GP>Qw2
zY}13(Z)1z}X4}m<Zw__w?<txK`%tNM4)1UcYYt|NK%@E<Caa5OXgIsPLw>_=m%0Fq
zF+yQ{oC$AIQdV{Sw#kj*7-vN(-Q`a$IOZS$4yTFfT6G%}7bl~#&o-WMEd~tc7hCwc
z@PwIOz3zA2QiLYDj>tJGJHjXAmlu3xN-kGl$uzL7;S&?OdhpIS2;uYKo%h+|r>`ON
zN-Xy7G{|5BV~`m`<(H>bekm&53Gls4?IM>X%raHhMVJ0&vGj#?ssZq3O!uv6Ymxw1
zgUWA8s~iVF62?sc7}7er>^~999;Pe3*gwJiKaw_ox!AR+{GqhU3tlYSg4yCUd4GPm
z#j>vSVn2`he=%+Ta<S`B`Lk)2<BPp08);j69PQvy^nOFEc<BE0vcG|qd^2q&a@pgk
z{PncTqgl2K(LY_lvLo33DOU3Hw3WzZpMc5_r&W$G`@C$}HuRDRo`Wqo){8X{(V0Rr
z?`I-73EibFL#}y!bt2f5p?-YX=Vx2CrCLQ7KBX5vRCjvmtfz_KoD55mOW%N{pPiw8
zeCdK8bL)rE<v&#~f9NhX2v~0u!P7G=NrGS_K(Hr6{Wu83@n*218(r&j^jg!~>P4|;
z6T$urlaz~sH7D4Yp?-W(&*CIK8r3`sfH@6-(T<~m#fF#&ni&=^fwdXHI-H??99V*3
za~(XQFnO7V$xz+trL&$Uf>&f%id^~@Ed3=J>c^Mf<#f_LuBWFc?B1wh_v@LD20ok0
zL~wrwU`pVh2;kqBp?)0rH^hKHnlq$f;JSX)LvY+}4M*RxM#7&GJxl~2&Hz-2gp*MJ
z0~zWIB=`gEnc)~e^!CH$JNsnZyu&yfz93B(nTOtmqxInKsmHQ$4!<R>$LFI*VbJHM
z*lIzZJ9C-Z$2zcYz_k$;3<L5MHy+m-1C7)>`r%oFZ0<%+eW&?dOn6zi3XYv}%)&4Q
z|G`EoDRydbU%)14IcC=DiB9ccWJe8P-9&>@qtWa#Be>CPIL4PFNmTw+gav?21ivKW
zVh)lt({{M-*j#;g2Nr*TZ7mFE9lw3VC!z>`&MEX^)mQk=N3f^CLKK<v0mt<mj_|sX
z-$<K?!$%K9w}fj#4I9*3R%8WrupU)|4fungyNTLO1RA=*M*1RVzK+d2I_+^yEpndb
zCwpRNQg@kXz@FF{i4$AZY}DrsPzwG8tXqDAY_7#)@YuyGtP96#4dxZpXb^3;hHDS-
z)7C-5rbT4@WK1P0JHib|YW`6&GVVlohx;Yd^G1Mu5}*GQ9c|63;Tp`7^kI;_?6D6g
ztUp_6&cPMc4_9`&aLS#4FaEJsy;iPu`**VnUAO@JZa+M;$Q^cr{bX=$qB(qf!C9D2
zIL3M}_rq1p;YYK*fY0{4wArr09N<M<Rqf8z8F%jD4K@96PS;X7_&yl76!T4v3HNV!
z>L4D#q?wF?ybIUP!aB;xkgb4b{3DVF+XS^<y&PzINJt2S=g6ODdbg!pX3E&Mw_aN6
z_?_L}ZZ_KPTewO679j<<hHFH*CJOxtqqYbD27Lz?;)C2a!cDGTVa;6ww-*f4b%R2K
z7f?^+4c{7$@k!_*nK*qBDn#iJj$KCS;fmHgNzVD59B95tWCX9<srQLs-qD9yRS`$9
zA2m%v3|>VaG`R}wL@ARh94)mQM5J)f3N!~*YK-Y|cnCryGM7{=m#nC9+Y*xVjQ)rc
z()1DNP{CVJkNnZV#vJ_<!~>F57RxZu;?=v3`<lJI+%erz{?mqE_B$QsI+0Ey^1P5|
zu-BUQ+CA=-K_~*%^Gf3_?aPKks59Sz7qTP8_wgK3Z4be_Y4sDqI|UG`+tRcI&<1mW
zFC7ISishjc%HUri*}_Y&Y5K)Vt$1S>?!88{_=I!MyJ%{MH#JCp8kz_^Ylu0iK*78y
zL+yfNAY18Fbc<kwk1Y*l%)Ka5bAlfLx>8_sU0^EsvGFaO)(q+DW=eQf_gvd-_(FRQ
zJP@_)G(5=(Q7-D8Wr|0b-2Yr=263uTpH|J6KC+-qpU8Al3gZD)`)y{r*UDVD-oyr%
zZ}RA)+8Dd8qdpydHn2f(Rw_o7-!-CtDLU0}8)x4E(4%{GxV#b96Td~+nFt<a^)d1m
zH8O%NnCse{?eaZxT>Q%(@h8p^oAD8UY>pW0#xF&vtB8c<2>gdV$Xdjz#FhnMv4Ddj
z3plU`3{UFxTCHZgTkOo0+TB}wO^U#~n|67jA@h}Mg)yos+BE$&KKXxgEY?(G>_%Va
zjWi<!|43gL_n(V@$@O#Yw=_8M$%GRB1TAgQdEp!fkb=uG&Y(lWq@#hk8m)B&*P|Ot
zE4zU{jOKI@o}Mh|`nGbYG_{G~v1tq7=Z4@GOqQC7Q-elG?9}iH2Chg%V{nKTJNU#9
z)KJb&2th#q+Dp^YX9bRQwk3ZO#a!_U>iDNk0Osi+yh5l~q+L}JnNs&j$?D3mo*oPp
zUaisUb>-*I^f=eTcq~q-TVjDQEFz{`Ep<^FUEvSE-D)Dbu-S%s)~Jjl=BB~)HwwN%
z<O>g1rPxCi1|&K2ku@nLA%gvYH)Pp!=r7|)lp4_({57G2tHd{o#+FJvxvz8>kxV7P
zg+~n{OsLfHYF$J(!4RN=;Us`E*Vl8O<#VqLJNMOCxSso9aYpobn3g*cNFv0UK*=M!
zAv@JsQX?D_c7fmpm}$5M2Ssi@7~?t~&VaOmuy4VOS(QeU2M#l#`yb+vjN#egW1E0I
zS*jMGoIVW^i$$^~U=L{5N(hR}t(sn#MKz5LGf*+*5+z-^`-ma)V!cn%?mz9-n++E8
zJ<UVv+NH)Je1(y+Sw}E(voVcWzfu_@fjD*A!=Y=27<k&Nv=E@-A8FR{Q7SA<qnKtv
zYJ{adlVu9i_A8Uq9%A7d<!TG~>h3w0`tixY#PrH(icPMtNYlZ3=9bt3Bttk#6zMY^
z^S;b<Z*Q%_On0wp9)5I*90(k+VhX`mjQt?I?-5G?46{?g*Uj0kV#+Gnkb-Z!ze8)`
zm2B*P0O*UVb-_dE!je5Cx`ev=K1TynW3h=uC~fa%jqE9}mAu8)V^7;IBZW&<wx|C;
z9J5KB{wEy`hMN93Q+b&{a4aBNiY1tz>_vRdF{i{u{F9@>aEs8A%(aL}DJ{bIWG~`j
z$D9%u@t=+cLoMP2Lj*fk5i7<rtZ()@Hm}Ob5bGTchFS-lUwrp)EW$1$hESF5=}$Rk
zlZb}LIvNZ${dH=~bId<dhy@s5>=iuCF`>j2T;gaj)CxA*JGEmOt{PZN^s~L7{f_x1
zE@+>l!B7igx9)6JgDq+*B5g^1V|t@-LabFE?3J_}6H8o4oizv^Hn*e%L&hDh{#QXx
z#5N;g$q@aUXY_ELQmfcniPZELdp)6Rypy8ir5iH%G;9TaD1>dW^gtJ`PB3c7^;zHS
z75=_!g-P4{+wx)TL$3alFedu9Ft+?$xf1-#p8qFY{SSd5KI{lEwBA(BT?kquD##_N
z-}b`3>{?h7V*WlKV!q?*KM66Se+x0GM!_GsMi~M<eDD#VXQO>qav^A)sv=Qje6f+V
zX?0Fr-~`qnv%K5p>OTodqW^qIdc13tA&|re9|}oX8+{oY1?&_0Oc}fj(s<F#wa;=v
zCdpiTrK5o<=#Q7Vb|T4iG1yppMcVY;##)Vzn6dV?Y_nXTvDT+)X=5!%IWyM2j<C<X
z<SEA5^G#zd&iDM*wzNof$b?JARc5CWZX9*7c&N5YPz1MO_Mq8g^j99!=aM#;Fzoci
zk}ZSn%l84!{xP4@MZkhBuAma&<&{kOe6)t!;4^ePwB76-s(K}_;Ug{qw?A=Vv)*jB
z3gefT%2lhm#wKfx2q>?Nd$zbO3+u4&!)K;jOVR!anT@8FyE(PIGB33Rub>v}7JA@>
z`*#WM07qRp4FFvD9K=0X*wBdq8ojw0WM<&-CkP&G*SZLlA_gHG9A!6?;iF)+_g!;+
z@v<v#m>#ElxoF-1YS=wn+!uyp59p!-pDZCjL!~f2<0Alwuu9I3S#Q4CLs#&Vz(s;2
z8Nd>J8$H<ZaWA-4LmUg?mkgcLFz73q;Kai^pU1W0!uU-cpcprvk2btE?gcBx{jaoS
zO+mlQDd^r|DTv}44GJpS9<XXf{tnNHq$aq6-9SfX2HYISb@5}0&<gTWb)eeH%hNKd
zO<b+kt9Tz@#e4Br)cj~}sMr>&xKS;spKhPMlQpT{CdU#^*%w8A>x;u@^631u=^Jra
z;=<A37E-*VSJW&1Bwz7gWmqxAiV1$F75{mLCJ4C?{w$?l@I|<Qf(P&iffXV5<{%$U
zX-rKJcrU;|SfQhOh`l$vetU+l5rMC$Qig*eT5^20=GQBO@5ZlY<wl$Yrv|z<FPcW9
zIL5D+?idvVXMR%nV!n}|rq4Wh7<DlDAJSjjguZ$;h+0o!rde@BEJp}-N?&ys6#X<w
z(cy2?BD^UG&mG>*ogVuI$*Ig$1#e#!e2M=nSxipSlCHr7HHqUgk~Y9|P4ZUkz0F>i
zJkaFSf{f)EBc$K?@?#}p^$r_xk2hIw%$+yM4^;?Q*(gF;i<lVvWCj+5t3hzT%kS{$
zv1G<)feoFOU#`v8%Kf`QRl%ds1b{w?wS-w`g*O$k7Vsh~iUV=DGW2x!Etn^d?hWoR
zEK)&%I_5E12)S-YIz87h)2ZNYbdWXjcG}T{Ddg<n3M<BAH=620g^Y`iMt$hW+u)6u
zSI`A525+K&QPg*EKh2e`jKIhOz7>DcjZOv8<vSv4S0$^x2k*ScbC+s54UQjWN(p>C
zhg7m5cn(nvZjI7kd31g$73s<;!IqzGASuS$y_q%$-3Vt}E16F&Re#VEndK9y<e5k?
z!yCy7XkkrKOJj3Goa@1LTf|o+1|eyHtRR{yf-dj5oo6}}*DK+Iq$vhmk~f*BqV8r4
zl%_t=&bWcqOOUWvO8=skvd@A@i;G%`6jdKm@%nZR5pMGyWi1lYF*p??D*3Iwm(sv4
zn`_vy{pOyO^#qfsU<$+6@P)aAAuq};4Bv$w2MfdZI3}1+82-Mahm6ATLuk6F!tfN3
zih^iN7^)JdFchVleYUy@NOJR_V$ItR5GE#qFVJ7Z2$`*7HC)I9W%Q#dQqr-Uj!U?F
zl~3R+c_tu*3xR{rTJp9nTplesz;iMX1kE<1284~tWVX=x9-rpFs1Y+>CXf?*j0LB3
zp%Y@DkqDi)vgiTQ=x(66B2vCY;w~~*A?~f<UDm|G9k(!XjK}qk4i3e1#IMg!LwiFw
zqK-Xc#ug}mtWLK%PW7pZ=#X+?NtE+Z_jm{9O5JJ!Nx7!xigUHbj%f%m{h@RWi6lu7
zOxdz*wGMdzlEg1Xv`mVPuSo__Op1-M2GpHP%@C!Uv;5-%F3B0kX*31G;B-I(BsoEU
z4a4`Rp)tX1XuhB36F4W&1SH?ff%Tql^ZhwFsSiYvr-_E*ZoY_%^DM$tMLY|N=~7`O
z1{#S}xJQTBXl3LE6>%t!XdQMkgFIlOW2!XQ>>-&SL<leF>?n+LyGOa|mk*OQ4(TV@
z8Ig&IQe*yT6=^w@P|ySHG2$B!Y`>;>-gc)TFhhZa!eD+<m|!B|<`n3}M8Zw10k9uG
z<?*82ip?BR!oX8r(=ow(ip^n14;dAkc{E*A#pX;9vw~<$u~8*X@heKT_`P}2h*65%
zMI1qqWpFRi!$fco{WXl3-7a7{w3vN6pTOJlOhAfRLJFU?)M9Kgd%7V+2JthPYx|&T
z58nAEF#dyg-f!H94?f5z{C+idPDN|df>^ppy#WJ_LZt40EKHtJT?ty3@)=g>IvG?T
zy4q1~9%YIXm#dJNLeLhxn}zwzuR*bDGb>uj_P9)s!+TZoU_+vw+CIx>fxObv6IN0t
zbJ*eP^@8_Ya)ZU(Fq9ltUkp(uy@Hh0(WUJ1wj-vY)15N)H<v;;?Y-dk9oq}=v7zRa
z#{GdwAbawlyuoOlU6DFo1-R2XB#*|vE6!p9|8G)o7ZdoOXAK7FfTC0jp${xI<Vm<K
zy@@Nt2LDW)j~k2h*DxY;3XKVqLyOEG@Cp2To(V{iDF+^;ncf^BbR0}a$yT83QhWr+
z*&M73dF)_b9FCc+z7GtnakXqM!__bIfXdW=3l^@@h4p7J&?tm;_*oG^=S^M5a#ok>
z2Ov-nGSA25$GUCE+$K^+Q=kBIDwF?MI6&y1+KnvT()dD|*O*kN&;p@Bk2Aqef?9ez
zys26NU6uHunFkZV#7TaYa<$ok`@2-9#NP8eq$HM8g$)BJ*u&&6@}x|WWpu}rCmGL2
z&d(|yQ0SuSw?ZA0pJxDlN#Kmh&(l}~r^3vOY=!wWa*I@OMRE5ncOdi^U?@m%yIdsa
z6E$(=d9AFciH*(pLdT3v4SEeSl+b|vK?zFEb99hVfqp8Q8Vd9(HqJ0!l1&j<uuM0$
z$7B~6Lj!x+0S$(5#q$pIRjCc{3~s3X8paMc)NeVUV}dt50nBq8J!FJ$#fEQc0+`%x
zC<~~|4W%>04+T<CckJ+@P~kkhh*GUL-1SHiAyOZB<V;8jpy1_1i4(y~>91k-`Ev!v
zhTiAz;S>0sJQI-nJfWP=+I=)SBa6@mrJbeg@f|iQ-fb)N+xV2<qDIeoIJ(e+S^9o^
zDh5j0ASezalk4kM@+OhCHaT@`vL;j2(oBuL+#;gOa1k4BFQgWPZCXTGO4F2zPte;X
zzu-hR|Em%B*D5{X+;h*H!q&Ot96Eux_Dg-yN$x*#zFP3I{pT-J0213VKh7FBcT8TC
zTY~@pg#3XfroVSgFrNhflB0)=68vjuYV44sm*7tX{VIsYq_iq=N@-E5rS$cqra&oe
zN8hoQnm;G(PXs@uzlM>T7YPUsEj7p2u?eiDzp_q1N=-sRlGIdJ+Y@;g%=B2vo~Q`9
z>0onPZl1~~y*1CI&2!3=EvTi-&Hsjljzn&LL)~}urfzD$GD61`1hO`|2iaK#(oe-x
zDM`p&b|OHQ1Zo!vR_m5nrNc(4UZ&T_AW`Y)Qt+-vjuFV#o#%~<pxUD)*!uAWVwYYM
zf-zqw98k?MC6-@Ar50hnKx%g0c%gtqaTIZ~d$%X0vtAFxbHxbtvK@fN#Z4jWj4z5C
zm`J_|NKJxuOeCMr8aPEVFS14QsqsS$!-VSub2Skdm(8nLrO5VijbpB+bWT0KT<Pc_
zqi}vMni|4+_~XlZaeUzmj7NK20%p-LcAZ^ZV9s!MX=&&>&Ms{SXiV6qpIsV`9x?*=
zg*I?Uzw_BZoi?K6!WH<XKyK5n2~@}o7s=jh02Ngt1pB)VkmLjEJ&qnS0`+a911ha7
zg;LD}VQ?GYW)&I7bPZMF)HOt@)-^u3<OH=;W|rX0)&3BCf{1$}_zU_gtFmJ5`+Edm
zac#*6TRdsdK89`OQDzym6Sm9Q`p5%(USAk?UQf5?m9CGRi-D5%$js-scd2`=F3YJd
zWal;{Cn7}vH?WXAimv-K+w^dud`B>PT?<vw0aBm!e5dN5dxz@K@$0h%^QPT_NuJ<o
z^5C95?n9n&16S%4s>_Jj`?nN$#dM1AvIb6_f*09xIj3QC#kf){1{p?Ip-L3Prl3yM
zES5Ps$S9{bqUlI9iwuU*OF{V>*e>P51#fd7gaYl_2PZX*9m>TH2XsvErYjeZbM%lA
zzUSNU9ldg40oAn+Du~DSK~>`12Susg2cNGv4xSQRw;QpDkek+G52JUO8;NWtf@jlT
z!|X771wF@hm}w2EjN%T`=K`}4ww}0@#78bCu_2M9wD+YFUrlk?)m&k%CVgM}c8Z+M
zyf1x{wgSp7qwR~=u%y&T;HaW4_|Y^TbFmlKm9R;Pkc&yba>$>ge*6{!Gmt=@W#cUI
z3rzLqQEXvUMaIY(z3#vc=czm}<MA$VwN*8LymxNlLhl@mfN^TK`8x_u%cNYGB<(?I
zbM6Grq8orIUt(L<3t0o_mc@(gEh~cv?GxDyv`oI<F~NKy^mUFN%q1pVae6D78e7!p
zMd&j?`3j;jDXB`FQc{(EY*?BFR})EsnTMxa^dVA3qMQ7*t3+b>$HT7T*U5Ptd!`6a
zmtONJ^k_@3<o@me{fwu_{0D3KJp{T4n(`P#@DRT<`tPi2@Spfg-pqjA3~V|T{KWVc
zo^XSB%bi|}5o~OIQy6Aux38ryUfx>$DykwNMx@-pyn}UEg*_SLY^4(d*%D|Y8RC$T
zcK0omM%<;t{g?*g0?3tJ{3nhnn-XXY!2{@jVC=vT9qlv9pOq(A@@FLtGfe0JUsl|b
zaSh1lKWO#PL6UX>B1yW__HQXmp%DbB5%zMCS|Xtb|Hi3OCI^t$u#+2!jK(rkiy|hZ
z6}B73Ga3gkT8Z1KPXzpfJMphjCNd6QLf?1O_m|>d?(D_fy}FRh#TT$A>~m);-jO9+
zG3$E48H!Id()@_Y3Pr?vWCB~JUs8dY;+HKFt_Ltp2|742x1GOLB>8=oY979Ci6r?I
zFo`GjT_N7N8~8Y(4FQpoN<$!cJ^^E~UJz)a^Qe?ad_kb@XkbY`^={MRz96tUN~?p@
zP}S0=>`p_aQNVd$i<jUT=rQ)vSl%}S?xJbwG*leTEYZ=GDB<EeB@NZn_7W$uNJAX=
z=m9dMsplybTE;6(>}e-NFH#l;O2~i{PTQwzIsBXf#ed-)DgF=cr`b;gZxoA=Vtud(
z;5*T_CCBOvS8q_bGW3?m>_xaeg?bhd)KkP0Sw$uudMzmnwuVVnG%Vl8Vfo&?ungWq
zEqMAS=L{$LWvvPlULb}Q_SOpB9w<|GD|T;7#;8j5FLQl8_mA<pe{|Tn(>n)x?!osB
z4V7!HBUfZUkEuq5p()#lTSfYn&(Ny23E52PR~Ac={RRy*SdsmvW6F6H*{?g=n@dhO
zNPizqje~S1MfP{mCYmWErpOA~T?_nw74@?!vR_VFilN97_M-ZtxoWB^&P<=m(5p~n
zC9z70r#Fn~OGDJZP-L$ZD^$dkS&`ko-mS=<P2U$&k-d=KnK+XF-HmgyXtKQT1*@_r
z8R~(Yu1l94ljCs~lRuRdV+Y(z0MP|#vlpx8;U6v$ZB{~MRO+k-L2wm8W3klP1L!;|
z!4uWl{f-8vB+vqGan;!^F?t=W&)$?aXSY79aS+pI&qt37)@QpkEv?UTJTo2XLX>3E
zXaD$eJWw<5v3F_oH5sAN9<4TUPZ8!4zuYZ&S0KZLM>opxm<?XOsgQM_BHYB2S$G@k
zDEom&O1+YI<FjtM;Tkf@@4fEY%dWeDC1#zb-w1GPu*Xc9Wgo$Chmb51`9hJq6`yhY
zr*^0cbAJ<=&LHzhrDJi)O1V}V^irI<l5)Y_grSMxl>$+62TRx4mz+Rj1o<*Wkk!HY
zD1Wh!$O|uiA&n{Y;~LcCu6qAVr1%BFNKF~fG$EY{JVH2R;j=}QW^{t0(B0$a=L3_S
zdape<d2ly{boz(T(WOlgJdSHfoWME;72?naYGyUrBUp?qS?1eFXXO2Bwlnp{t46!y
zn`Kp}*t})2!6A<ti$9R2`?qkqzaM`^w+(X_fLLQ`LGPvNr(eAWta2Y~5=#rJ{o8MR
z1Y=i%`t8;n$xBQ$NdDlFP$Bt|7#(Kp(MgFq9w+z!$JQTZz!oKW6WF2zw11GH31u7Q
zSWQ&iS+-Gw5MH05Ysxk%WsaH{J%p#p<?bu76A8bw*zig-O(ZUcEWw^OO<NM+!(yUX
zm^SigLLAVJ^vvt`;*Kh$0CHN7PqAQ%3i3ELCcB8XV&)<A0lN?7bt2ObUhKwZ2{Gcg
zk3h^&%r{aoA*Q>G;O-8;l@FWHt4BX0(7}*%(k%NooCv;1f8`3Z5I9?B;KIVdlepK5
zV%W{s9|`Cso~r>;7=@+!e79CshBkmxveN>3(ChnOe0~2k?D{B!ucS3=eXo)Ec~}M?
zS_`sWb88RiqXI`-!Ml<8-#c5XNu6r5SFecs0(kwhLTT-(a&2}Ndt;+Je(iPpF5fNG
zD@x8S^ed6`UTmJowcTtVCQ`*^4dhKnPxF3PLhTVZFO7@;!*TK5VR1p(PBku$hY9PK
zm}<&SCQVpBqg8Da=dr~!VV$x80}VD|JqpFqDd#a^o#be5Zr%wdtTWM6pYXy=CajkN
zY^f$JA!|+q{x{L;Gx}oJr!0kzSHc%d*vn|bdN>132oshhR(SwO+zF)#>p~(VCW`gp
z-flR^7rPJZb@^iV)Az+RVO_!v97Wnchj>BuyzG`NF~oumT9?EO1ak7swNUJ}isfFX
z+ng&R!{Q+<t4L{mI(zoDd%jGxV|j5mSRjzXIPz7ALS_eR2vU~RG5C0B`!t1DH&D&P
z4=*V@n8IP)9JW0j`V6%8TclZAMIO%EmN=M1VM;9<r7s6gqQW=viM<!I2AQ9ny2sUj
z(vwr7fBVTPB4W9`RqThoinqB&8RE$)KDaHr%&o*GYw_6Z?T*0*HxmAR%?rT`(SFek
zqJQO>T%tkrFB}cb)#&YVaSfuU4w83+?V=w~o4VUBs!<WMi~8ts!FJKF(6qE&l%t!O
zp$?%WlU?*Gbw3?8AUeO{@Wys7uQQLJ;kf}eP`YSCdcJwemuxi3E)_Ed|4u7HOqp0%
z`bI&P6`a+V?1sSb_&tS3<3Rsh*vmYe%3C<6ivvAj4%zoQh`#9d+Q?ur?e!Yiq{Y)2
zu<c1>BAxoVB^n5~9P-NGylDMvZ2pR4^A~xs8T_1D@aO{#8^`fyD&2)|K9(X55#}c~
zS*D<D*%;r=OyNarC>;13Q5B~j!Hw7hlO6cKmALhKQ!}vDvTOLtSPSg4Hp~Hmw2Q=u
zwuZ*uzUpv<MzVIL?BN0sDYb0aoSg!j*sXx=tby}Z057s*ayJ_fpAa-$QMtPb=;9<u
zb+m1d`&k`RG*5!*SF0{|^k5P|!ddVNG}W71)~8Rt3rdfj2HDbx)<h;R!44GAqJSE^
z7@$g=7Xwu36NVr#MF`<At;MWOW7}X2iOche;EWVR5Ol;zmN+rvN%jO*HC<>}!RmtG
ztZxb;jP7pBFj*lsj-qM~v9a>$jd`yBUx-I>WSo1rHJ(TU6<r+jJ2W2W7}l3P@p~K-
zHyI}Ns^@DQ9c1K}`_a_kmuyKST<kI~l1LD!;!HzPK(8hsWHh1Nm9ip(@CcV9CcHJm
zhAg!#_1nhVCo@b^5Zotd?b-LKtAz`JYZ&|y#&+qb#|;+6vd~DF@B1jOUHaq!psfj6
z2|9jJ=^x}kkc${;p9&D+NV^4<{2f6mheu!{_)-Qm2q8si$VDrOB2r#`kjjzNlam{X
zh%tF;P*jmQV(eE~gv;Eva?>K4+n$0XrFg)zh^W|NtufooeF@_HOa?c5kOiCE{?a^x
z+I>&K5nrUNp9l+JCN?lsuS*uUJ#-_9(lV9ny^3FKsYsEcj7$;rWev%h#fm>$>eaj4
zWT$&j<>1r~ax5_b4(g-o*INYT!Dhcr5mZPfk9}8+%C^WygG911mu({vroU5E^YBlX
zis{eBc%PeSzG80U?^p^{zz{rT+aEVaCoU>|+g#lVMkPrl);F6%&IO8dSrVsNgUpu1
zr?~o0vLuTB^H~y~<r-xOOCle9uspZ9L|781I7Gf~Vqv{0S6paXBPvJ~soyqweAmJr
z!bl}k-y`klTlk3Ww8SU#usNCKd*mqim)(EI)qfItME^E=NO;O2T=zC#>>6bV^zgw)
zfSy!A??TyWQuaG`2f6yhIyUJ4Ul&l4Q2Y9PsC~Dq|0L9k{%zEz+3^3=HOdgE<%5p^
zwWmugsU6tbp<Rf5^uQ((tqC=3q(0yRM-oy$mk+65b@iWwRMCGvq<+se$`DB9gO32I
z+hZ7tsZ}n-ZcA(?k(*M>M)0c5IrqzDtU>1e@<dnvNeCAG=R>gP8f6Fs^T9`e;5gS>
zI<X76ah{Y-Bw`b4*hqbn3mi#YdtpALKEu_25>iF~`H*^(Ym_07$_F0`saYF+nJX*$
zd=X4S<Sd#y^@s~Hm%Fs6C-I4O91To`OIy$u*PZ&9!DrdQ4%JrL<lPQcjf|K>bu*B&
zV2A2!Xj)KIe}reYU<Ba^XO6fN3HQuUm~wIYJnc}W+++Mq%&le8MnRWiOWsvCUUx0?
z(@0S;L`x+if_Gr%P_2KD{>ovg+O~ub%?vMZ5er5<>cIOJ`~N?nb6=@*xU+kFr^jPe
zaXW|Nl7;(}rPsoflH93Xsg>bLWmh!dEJc+PJzTpJLCv*Nz1Ats;Ia_CJjR}`r5iot
z9{$(x`MUw-s)&LG_8Fpa*M|aB#VbGbfX^Y^n1_Rw-MGNrj~=Wq2**|yQi`)?T^^!0
za}lY{?Wl@;XnvS|1=Q215NY8>AN+~&W@}xw!YgXWX#At?8oznnI3#YC_~OP%vprwH
z4Uk&7>dBy5MB(xeez&YTf(^IrPvSaCy>t{yL=af5%%FqJ+rH|)Lw4S-*Q$3^L&P_C
za0eU@$(6f3%zoYr5J!eab4_*MiC?{%6y9vimn>bAyf0c}oxlFezyW}@WuS0jobR{B
zHIgxoV#!YOr{<B5aUS_7{)(CtOu-2Oz^-I`fU2K<^*Gq-!>mc{O2&(%+XaR!cv7bH
zv+Utl7KhA6PGrN77>Dpcb_@SuG1flfl@Gn{DTCr}T!e*6@?Dg^H81=l=Y@aB#|z|V
z{#!RM==&xweWaiY0S1qVxoD_=mqYzK8K6$rjD!RtsDCp<6S`)^u`^i5CE-@KyZ)OD
zUDGwA&u6Gd@AQ0z)iY$_6`V~Lx*>7SP;?e--U9i|9oVB9L1T(_J`tRVG1B%515<Q;
zZ)1igPB1-@gDLNJ8wJax2Ft}pkGLR}eGAtX*no965$wpYDgzMYTYp@JCQd-i@M(`$
zeQ+obgEhwRmeEhaF#&TgdG^Rhlsm~yd3(m?N?RWT?Zh-PgG8<*ikk?YkpbT|EqX|=
z+RK{6^eV;U;RXw8az&A^nrnZH&t!jwnHa=MGr1{46Oyld#+l_Sb^WvqU6XvhBtt#T
zFN3ELd=bZ;-~s$W!u}2o@l_b)QyGLft&?lKg9nN1Bec#BX6TyMDUWP2G~qZzZ@wuV
zv@&}0K2!zB#L*wZ-xa+%Sn=m40V7!VHfi5=cw}6`ok*p|9sE3YChp`%)?D8>Eb?$1
zS2TdUn`1qKo#^}#yJ=z_#ca%Z|B)2H#zH?o#2Pq5KY3C9(9h2i#s-Iee!($CGm<Sm
z^z$>09?Sz{Lg?o|ps6;*Wexp&GdL+V^iwE@bSYN>H5U4*N}Qpes&t<U{TwCvDN+d+
zr+=|>)83UVuqY|*2U3tpf{mo?AF_H{i;Xe%ykzW{6EB&qOY90byK!$^{+6B4K3l>|
zCWy!xC;JDq!5WMnJb;Hk=ggz$B4OQeKZ0~A%1tw&hC&qM>2)V2>%1|ZUd<Xfd72mH
z=jm<eGJ&Vha7-~DPoL)KAtO)kK-0zL=}n+N1=JW%s}d(qtJ0esJUs&1Q?wE;(g0%Z
z`M7#T3OX}$^>4?x+VtY)<!l%|*)}e@dt7veJ$|-{Ec)2U#r`d86wTqBJ9vsKSa3~B
zErmtK@dr|%7vuQnvIb6$=SBHBzKJdqIQ~}06!UTXoTG<~9RC6|U0jZ*>--9+F^*Ry
zPL5ZlekP7zFik4j36Il&0yg<1!oC!AFF+zlAO5h?fSA8MSL!0<b{v^_=t)$B$x8`f
zXaHP7;9g%*4(XH#@ts{(AH4Ug8VZ|C68vEb)MAq0J*<IK67Zt@lHe2QGC>mjwPT9;
zB*9-eddMgVzJR8SD+x{kwJV^;B!Mb%N&;0{%OwdGM30Jo!s9rofKfh)@Xi#pXO#&1
z3uIc+QTm1$xYV6jkJwvW&=j851CtcuUqp=m<U!L*i-SG<pZHQ3M~*CN7j3wm(*Lmx
z91WZkwjWekyr{A;+p#{5)}VYKDHq;guKShoOCl49_VW~Vi=Ys6nvH^Y9Xf0utuZGx
z>riymsm;-o&U9bk5-h@he782|M_MEEml(Y5)9cSn4n<BZR=~I5ck7#?EGC(Lm4dyP
zWcnFv;FL_fD8FPn>7+!-bP9^2&VqcBX^W$WjFRaLG+kWDbSk(`0W~I>REbkE$<qCg
z1@C0%5?G=opHQN|e4O&&oo}*u<-t4eADUZSeMM+~#2lljfB&huK=xlvuyC5pw-Y>^
zB1^LF1mO)3xJ))qUDqOsSgIdDw9i3yT^|uf<|ctiqS;ctg9}_GA<~(sCn2t+CF(mx
zrMh?_#H9MIh=hsAXQxPyn25ZFHE@bZUSx~NoDa(S=v_>B(1Wsv95Xg0X6h~DvZI5H
z0`pchH3Vk1TgEQSY|?|W!brOfqEiFg^`NW^-Wgs)e3gc=<3ZWb0UZ;(>89_y96e-&
z@9S;&W_%6N1z@%^@T5$7-~y`aL0JXy*k+|loST&@y=Yh-R(u%_-G!i-e1h$&6m;2w
zE!kLp2WIfzbYr>9wLpHejMtc7&#I0**TR?67cZTB|A4BgPCmm6ZAo{b%vxy|a*D?P
zpz*oOYLIAr$gvuecT+{<_Z=N%WZhq&>G2YcXM)VWN8n(=)wCD6#G|aCe8v{^GYHD9
zCo70M1m&qHU6|&6vZIHL(B6)w2DC>nC}SXY3Ck#ilZ69$(!P^IU?j0cjsxPiT*4u7
zbeZEI8c2}bNaQ$>f&7a7Gv_$C8F+H#I5<e(7d53Q&!ADBtKj9Y{Ey>gN-1g$vEcj$
z=A96$XYoqeRA46zwdzQt<p%q!+EbaX+X2wcy)kFP(57m>Wb(t=&~W4o816Yp4T<2z
z1eC>kKj(GmJSt)n(?!0<(ZG_Z$LTppGhL*O13T_RDX0@cm^O9y?Iw+i*zKkOJudim
z(;v{Z^z9~&Zgz{NjuO5Br`&FOt-jsV^l;Io0%N7jJ|dzMyd$*|vs{*&bIARVD;yA7
zh4D*$T>ZfP4rP(_O0$S^@T5DcfNrJ=g&nMV2d8ATWY<Mze0WRfev9uFcw%AXc)@9!
zn<J&Lc;rn?$*bTm3Az)(p9>&M9cHk|A~hZHiAz>AF`D`_MN>vJ+>c<@o^STx|EA=X
zbOY;fqj|KUeO}&Ft$^18#M214ZiG8oW|Glq84J_dH3K`iFsF~>a+Pi0-a(hM$mY^(
zl*ux~Z7iiOQku3H9byEy+PUkE&t{h1ed3q3#;0cRVkOKmcm>CA&+|K5=#7`|AUY;`
zM0zpU+_{~eT_M9)+`{6M0((?I?L@qV{=J+3b{YGh(E9(Y!a*~|1Dq+oke4Zf&r^%j
zuclyDCyCAO17^g9K7kv9QrNo@cyptRt9-bSM$(5P6(VPbNRkO9U>>h6F&YJ)=f~-3
zTY0aKBILRvw<eA&$7?tZxvz4_ePvk4QEa{wayKZ*u}hC&&W3-~WKDiIkok7-h8dV3
z!gI=yi6p}8(xXZ#yBJ+-h<uMj<X?t`$O$$?2H$KeL~fC?tBibaVwax4?B33uLQx+d
z;)>$3Q`lDVOROZSESb6wZ4eYnFL;6C#eT|~#6syKk;*!rF?<}q7La8Lh5$b+Lo2x_
zKX!242k*Q`K*_jAa4KK?R{WK=c#7T^i>H@RPR!7Rf;u;))QgAC8-uJ*X-r6=(0PuD
z#KS1Nf@L7@#~JWVq4Sb$r3&E)ogcYb?V0JzmS(lfQ5A?0iY1Wfik;VHHJ*lvc0}9H
zu#s|@;x)$Iw@}h1SMJgx4J1OoSz;$83)tbX<e0K)I~!}w??nH7Kf+VN?L4)@K}UPD
zs;&5k>)QTor8$Ra-hOZxO$}pCrgvXH2JFYez1gxzTNjyr1+{De72Hg#XXdgr6>=hY
zPRdef1Yx8h>}534T$-U*@$O5MWE1&9zWY)KMEL1mA4=_pgWi34GiK&8()=EMUrZy-
zUOZX_Umknxuy~||Q~^j6kUJaY#XJhE+=9-DAPl^`R__!@|1B6<He4eu*kp5F$^cW%
zdW9A^O-cd%Lx!SRmYkE_bK|V)F0@(qqrlSw>^dJ-&BH%iBH19_5R1PDvpI?Y;fJtt
z`mGU_SXp2tU9^gzxT@ba0v-Saqq}e7vn`)<G%$swGauonStC1j<QhR(uDP2<G<W&i
zp8K~QQ%RirHyjNz&fOMAgByu7LYgpxPhrqSGqbJP>Ofyo8lhE=2Igw?X12I#gw9Bj
zKZA1#El*p4+uEiv60^3w9~fG&wauexX=@wDI<t&?kO&}4E}^qbYa5pnh#sNs00&&Y
z!>AKhrn-t<f(tP_s1oPXU%B!HEpf5R5OA(owe^VQ0p$4ccXO)|<tX>?043}LWTPZo
zPqU3oHsive(DCcDY+IHFr~}*WjlYAyOiI&3F+oVPBTq!d1&x6qw8$tdq|F>hBlt3o
z;7ju&ICwg>;4iE=;nX540fPqF=D10K0A!IR-kpKXw%#mNm<dnV%UBhd(aaaDYwht{
z=)2OHijCgfjNiURyy)5GuN+K4>OXtrBkRNGVssAvx;_H_>bh`Kx7MxuMVuMvozt@4
zzo#$L2!&hSppfKqvI|gp4eac503$~CZ&RL=NV=J3#U}?A*cz_WuvP?QesnBk@b-rR
z$apR3h~7xnbmTa&j{2pZ+cE$^KDj|~*d{jQLGP4CEGR~jC%~H&TYaD{2<;2^Ho9#V
z1c(nF3-J?z!(tMK)<{&e(#pi~R{d6pVOYL5Ws$K^zu#dEfa?|BRD@!9k$nWu5K-|S
z0v=cF9T63O;FzF!1Wyk=dzYgJlaLb*;eUdrT5rjE>v|VjMUUap&@&+%>7{1{(O7hu
zDse`asnTu9#Gw!#rc@MjF}LwF?wknzpA_g47n8;8)vTU28^&o~sN$OD@gXP8OKo1#
zy!@>|z-a#4DN~No{5SaAT{O>&a?||J(Boj5|Ak|M`Dp$pjvg}7{F+BCGR>2bTtPHO
z^Qy#2^Qv@PGI1z`hba}sT=LQU*HWNs(|j@yQFP>8>HSID+EG?DvCH70)ofSpvZ^CD
z<30oQk){`jZSgWxP2Cptt~b0H_xUu?U^DJ5jwze`lxD_#o}+z6ZVJ%U*g-Oxab5cd
zhYjgm!i+065c1gUr`2aP<KC3A6dFO8aS3}F&A6P@lBrUdait0;JrBu^M68`W=qh5$
z9BX$!7U44EzKy;wrWyAs;yykc!;AQyP-Kt=8*krg8Bgd1Q2ij1OlZ)GrxF_U){jgb
zGN|0lQ81{EykMO0UQi4QToi1IepkB!Qv*H%5-{cdU>}HWc@*yjeMmK5GO3TF@NmTb
zz3h>IWpSRd4AQU>BtKUr8d;|5!~|4g!$_=SQ_L5E^61u=Xcqn~YmoUpgnx4NpOiXZ
z^q((v{&!uY43RpY4?b9a+gu~w5Bd~`h=tntdkB`?a3MCHsX#ViwQ)R6s9_^@<*7N5
z`m20M-Qwy$38|w0d`LaRHOdf3<%5p^soN#L%5)S~LK-H_U5HIdHzRm9rIwB0i(Q~e
zdhp@`)*v(2Ug7FL3BjWOd<fp>8f6Fs^T9`e;5gS>JGBeBah{Y-26L^dVIy_U1&$=7
z*770s1+M;+kShAmht#`WqYQymKKM{b&D!Y8JfcNwJ;8s699%T_<9l6@Npe5F%hA9(
zqaCLxfAhvlRNt~Kjp{Hr5xgU9@@~(gMn=r@_(wp_f<2FaP1DkzM~-mj`1%0hK8xq^
zYVCQXh-MBEICVrmGb3Y+r!yGo69$Xkmph0Q5+m(XiIw1gVzoF;|2_Sc%agfOo(qkV
zBb;-~vEaWI3r3XP_hC7bJ|u3S9ko;Cdqh$*gO6H7Zo+!>9h%oRA!bJ4R2g{!U7l4-
zT?`Q5)x@h3;m8Q5#Y~_(_UL55#*Er4SOcdchZosK?adTRS+18lo!z(0AUlyOn({H|
zQkvnYPQ*Vn;h3UnhD&$loa*So67pj#g0kEX_G7!U;wjHYQ^OFK@p9~!K!Z_N&MLMv
zCB3%=|4f9+9o-73F}t=ZaoV+2X^sT9Imk~5xjYGUbMy}>LMt%E=3u=7kb_@$BKTFh
zC}5tWpR;-io}>BLQ9~XEjf`5E5}8r>f!uBMeFbb+(FD5V{9cGqaxK1&E4gwua{o%G
zp%BF^RQprNJ;u}fSOX_d^P>DbT_?N>)4GGF8;&XF<LSWBLq?uHhNg?l)AVAB0&0w>
zRf&_QRq2BA+YY8ZMJo$SpgVW~vG#mi{p=KU68DooIF+jxH-WAvOwTYY&Ng`_e6fE^
z{<rKE&K*3(3NehW;=L)*i*furSpz4>^P>D5|L5p3f#d(uF~xiw|8YkT89Dy5Xu7x@
zPnX&hP-7ggN}L?8N{7p5o0}%J1UOCu3fSb62yah8_W~q>G!Et6=La4?#|LQuEXDTm
zOrZPo6sW}{!NaV9Qxfo^{E}evV-h97i71Yq<?=~_jgB5NN`eVAU0g{(aViR^F-f3G
zoRUD54xP)En?v%@qm~B8aZmxHd=lY@DYR`%gyfS1#n1dC{UjlS8px=SF{t62tm??)
zXP%cr^H{vJfZU9#sTL3;eue_L*&$;vt5X%%(Y-@M2{oT}qo|3UM0$=%=VSF-9X(`Z
z^%tS(h*+I1jUX(dXvEQ-qG;v_0vV%df|SM32qKDxa5!RuTXTa?ks18?76^Rx+s4^D
zGfYyL+TKoUPcyY?Lfb=N<Tnyzf(?3$7`y5;y-tkeHppEu%U(4mF@`6JRfC$ZroF&k
z)MCR0b_Cpigw~(K=8I>|G5}Xl00B1_1tbbQnX^n<ZF9v@NwdAeb>=v#uVWFeII3^b
z_r;8(dPekECao#Cuf$%$Pj+cnVp-6WIt0qm21Ztef3ak)hYng9yCV7nB!`Zg{(o$I
z3m+E`4U0j^ot5p>K`4|4vB4D-le1mu=ODIhY--1zh={F+RrB8zq<sZeZi%#TxU_8=
zD8cw?0PkX@Z95H}M-K~$Y1>Y9G_Vwg<K)miD+ApRzEgTi+A7?hU5%BPXZHu7;stwl
zFQ92bN%;{t9Gd~hJo5(rP%sI+fpvqrxHr(aqV!C+W0%g)QfA7GR#HqT`vyyHh3k8i
zrd(ZV99@S>XarYcnb_W+L4W1g-nRw+Nl@VK(aS{RDDj%KNT3v<$`XDGs+qUg=VKt(
z7CS@V2XC=rt{A3Tkg`Bv>x|p`Q`IwZv+OMV_c;7FiT`#S?1yXo2GS})6+76U3jP%|
z5MCXX(Pn6F?ydG|!)&$Yh=aG=zh0u-t-ZQzTkeGkqQ~rSilvjR?74#81(2p{E1kwf
z5_;t}oLot972AsEGqaR)EAFZ0;cpN^t?hWdi4=Y+x1wI-<x_T^jWOPV#E$%F<KeXc
zWK=RGh9rlqLFVAbH@o^zih~pVTXAr!8DYwWh+p<P-sc);h)6g-{NNLmO^qTb`7X!c
zro6NpiAXq2!oe%ie$f=CFE}Qbs5pJr(ZF1dHl-|XB96(7(rd8t^y##fxRoc3nV9m_
zM2`zrp1wuX(#jLZK2x6BDB(7wWaa5egOw*C*O^~ZyzNJNl+>Xl6D^<z#dyKbXu2?;
zidjojLSl3lyOMt^wczT}kJOSAn@ROZLI~=S;u@P<2PNd%JmFT4PNwe(>Jgvo0@b4{
z#s1lf-+juh96cq6a^x6qplZa4JxD#sJNVKujQc46n89$6l$lgTksi|_&H?7KspYl+
z7RULsRrBx@OG_zqfV=Owi#6PVUV|mLm>{%R2l^|~c}(+2iqO8o(cssyFF6cZE`$sW
z*4~@84)?C4@e<pW&P0z3-j!x(T6$OFxM#c4StuE}D@_?^`T?7Y^p=Yp**rIOwFI;N
zjPExnZM!<eFQ5k{8-k-W--)0nrk#0P`ppmnT#-;HGtg7mi|o;q_P#lXEd=?Hj@G(W
z@2VTGyOvTY&y^1QNb1$7mHFGB3MYA+X+*q&BjROw5fQwUTJVV2wpz(>(d8%Hz?@wy
zMY`N#tZ!<%Y)^RuhKouiQ^*j92&dP*G_!3&NDhiG*G{ih%y&pW()`}l_tQ{=y{jK|
zOgf);^$#6An9H_>nH3oQXK1RA1X*+3+=^DQ!04!VRgeJ%QN9QDxeQ8F6Io#JJ5v@z
zI267$!eK_=+Ur==ba%e;rV50q-!`E=m|>EF(Ec~7<{-4om9uo-^sa6<lFx6S_O`PW
zUP2_(Z##whcF8NxcK1f_km_d-kp6Aj!zZ&(`OWSZUv*S}II5{m1P>96a+qi*f`89|
z06`^$fLv5!pGZtbBH9y~ETm+U`%`iwVIG!yv7(2}=HYGI+~=P&>HFaG4_7u8Vj6w|
zJ*ct+A$B!NL73=1_2zt}8?Nl=hm#p<(@QN2KFye~>d-{bIp^@vQu|QHX$D=%M&yE+
z{oCg0ivY@OMCd$_oUfXP?_DAX5(W=;La=O?Yb6w!6tT1G+GSI=C2_?$=Saar|Fpq-
zE#MQ~n}Z}<;#I6c#45_sD@Pd<Kkbp8=Nc*Lb}%1lFbCWC7G}dM9HW@B!fqtYhMGu%
z%h7((j%P1)OfJ!EIPYj+u14z!i)%LAc)hZ*Facq!E+l_h?AAnZByGa(bC^az>>O4=
zj|)DB-AmKLEQM>8Bbh1n=b|LjIqX&1JlLe;70VlIzeJ-?tOai$y-$Sylkc^~(t);d
zIN+j~P6pHiZ%t`u<$XnZ8Vk+3l(O?kt%5wY<*Hvk-0|?n5%t7gtx<=FN79rOuLtiX
zh)x9W7J!vIahi&`ZHdWeMm@i;sK+=G1}t7(D{}nd9K@-6f<WXcQJ&$kJ>xMd=747>
z_>y<npXa|pL7<)vT*KqY$4ecv?8MTWFD35r98zQYzi~`|Brm3eKcyD@l_w_z=V+m(
z-m5{_YgJ0!g#*y+TmtbpkE-GLX%5H#J}ey9fZd#Md=4IDYxpooAk8(T3=jJRNkI%f
znGqAwnYc&ErIANu+Ueq1Gxj)}e9c~F!e%j}O8zWX_Zl*P$075#!$M}<g3NHnj`8bD
zZM=wqRN*R0*8HR<%S;{L#!RE?l(}KkCL~Uv|4fV8CKQfArj8u>iJ!@}E|tas3U_Y~
zf`e!47F57CF1*vojt#}Kd7pL)Pdl=-#*7~#nTwyYu+AlmEwmdO*egy?26pT^&Mz5u
zoY!%9k!3{!Lg`epEZkhL0sEzT5zh-&OPyNB%<8=oV3W&Z|F-A&=#)7UK|Bg|K&U6D
zR5dL`%pn(^K#Ik&R=rlPb^CW4%3w|2wC{onaG(oLL*E)4LRnMbh+U*nCC-a9ymYW)
zjx{lx(a+MEfn7U&n4{%okw__R=6h`H1xRnol;8u&c1x_GM3tk&M%*<i*wD~?)EGnG
zm8^l2xOkC+xPnvBNG>~EZ>~vB)c$DCaVBMs25}Wrs+z<V6i_(_aaB-VgF_IP0!NIv
zREd+gcxgIuU6HaNB0{>;%!w<xKf15<!*pVm22PUP8BJGTXI0Y;oR;-m7&)zPHsar&
zzIeIKycJbbw;9c9!{__`7!4%s>5gaHKJJ*ZX-`kf_xn*tdvj;CkE9kke+o^ta11l$
z`+Wxx7qg{DpKTL*?1><s57X*1-c<Tv%2J4Jg_V@Bmy6UA30+!ArLri`X333&l~kUT
z6*0xEq)cv<Or!)aS_v?cIB^Bh{+zxqrj_(6s5`~EreCboik+@MTWT~_{-4~|)2C*%
zo(>vtpj9>etEFR@9K5(}(X$uWhNMB=O$i^$9^yEs)%dgo)XJ?hv5qZJPdbCMujGiq
z)(YEzD8gPgsph{y$h54_>rIR>0NWPmczGmpc8%yjB1iqU5pfP689hKH#?GG28rT-^
z<$L5P_?O-P#jgI7?A@Y&D|S|Il2G^f4||j=T%!yTIm-thES_y*6ejTPj=?RVydI~6
zU<3Z3jYgQjH3bJ}qWz+ozz;blmuLd7I2xF%(Hr~Xn!wM_Cb<R&&X&>^;x>(I#KcVF
z>(JwZP2+dcv_J>KG|rLFjGOCGlF2lFRn#<Yys%zwHfC#wdhHV3P40N~hBg`Zuqk_I
z!<yvX$hT!-8CMpTQFf_VGq{&lG!fh*7M3pT=@3EBU7bKJcx>%!6;uq9?~};T*6dd4
z#x<F2k&zDuG%OTvsQF&d>vZW}6<fJ5-FgvmxPTt?`rgjh_qJizw-Uh7>l-X~h+c$N
zD2W6>QgXv?I4E}bqnM>jEBrWpAFLG$Tr4nlcrUjj+b{0rRtYmb=<6D3pf1RHJUw1`
zmm!T@15EMPe5K3SsY0FXYA82OccCIRX6*b@W;(O?DWNodQ8iyO&-uC`7WdU}w877S
zI%O+NtEdVquzl(JJLwjzk`48L0oZbBNZ)icFn3TJIYNo}I%{N4dH5)U<(^~CNm|!0
z`0&=l5i+bm7#ZYG8#<d@BPB%{@R4khl@U5w8wnLl(|hnWEN{_NtX(b;Bn5#_I~tfE
zI9@82`AV>p(`*|L?LxxXxFc-^Zrw^_B&J(^1{hkfZuLx>me#E})|qbgIU)dNE^=H-
zGQ+>mGj%Ht6sAV#$b&&|1`p9vu~KjlGlw#8fd0x60l00cOLB&s{bJR}CHZ!XXe3+m
z?Kzs)HX%Gl;4yq6?JmaCj`Yj*lqtolP>6fA)Ho!Q14R6Tsk_#zQ<kay2g055O4h*X
zPT@tCJ0;BUrs-P<d@|0k+m09p-sYH~X`fC{gnhrG2TP2O4NQdn2WYCLY}R=1=b}~A
zMjd_Aw1zq&>R&-L=8;h)PLGT#WlCix3Q>Y2%-#m#hDI{Q&EO4|AIv6#m!U-p_b@Ne
zi&?#deAP{<DtkM3QuxhICSY-rtF;lt)%1`stBr@O`5DeXR_k=>tVa$z^;)}!$dppS
zyV1v$k4nWpTF8Sh4uQmU9UemwVIo_<0_p1y3ZP8!{%XpqW6boAeEC~LCxTUJ`FJc`
zEhRiI!-1@5efh}h?^6Iw<VViM7qfcFWJ=D(JJS1;9v>3&89hD$t2%P$;wfjQ@|1Kg
zo`|ZcJJKkei_<jFVCQ1NF=bPDr#TnTakS4Ux-UjkLv&|yF1iGF>@iUxxhePY*|hqM
z&c(A*mO}cda4r(|a*<jhp-bnY)SjeuExC~}BT0Q&5mU^$ILM527>jV3k(%^<uo;Of
z{0q5)anX^P^IGj%BmX^&=`5Z^+513KQTYBP;x^PP$>t+`ykXmtZKtlhY#J8Uqtjkz
z9-iE}Vxu=V<F}o5t+ld|v}NfJYVTp&=qo@X=Dv{A>Gu-Ve5s<s^6+hSgV<%eT5;uN
z4$GDNN;*3#*s#7Iz=|qriGIEN91Tp7?6g|l%Np5MtCb)d$86PSOqc!Jp6{PHhEJUD
z2OSNDn(qdS!W}brRKOY{U+vX=!7;hS)qKX$AmeHV%X=GT!YZb@DClF*MYD?it7Aop
zj>qph8kiu^oBrZD9#3+J!@*w0Z>P=LZ3)v@h*`p3h#nVg2^-rE_Scp$j%j9Wc@etj
zx{bpUX1Lh?$8-GlOtVw#&hM=INBp{X9&Scp_r);`NsXI0v-vH=vU~nKj2I1Ex~H>Q
zVSG0dc9rJ5D=*s(vsv3ORq#)C7_0a*y+eoS5I2QhcF2kl7E}}Gyc(<__(d0TO5RP^
zUb%l~r#oNwJ-^i~S8)>uH!<MctaQAo*?P02d$8D-_r*VXe9vMW4Tk;AS&))7!D&D<
z^wmexUwO=i!5u^e+`+n4G>+~TChrj`3C&T`4>U(5KWq^+NOL?F1GzNE3+Ve`%~8yC
zfey&4kG2t1UX+3O#WF4fb&B0)akf_Xb2}n4<#tROaiEr&)gd`+NU5ZOrkcHOtJg(D
zUYiAXAvrn!K<g&ci1;d>50f{YlJY1fjVHNnBC(R9V5S#dm6?3)9ZmQ(uTagGOdiEV
z;P5Tk(iQhC2#X9S5qIdONROh9<p3PlbtGENPc{-uz(Q1nB&s|IS%b`hWKCE9NiI#%
z|Lzq=#D8ia+3l`Th6p6%gWGb^6sR^K3m@>!93obR%#&U0>Oz)8sN`#jvDkMTZLfDN
zILUweIzGvVR~TSTi2r+stN$dliT?AU?T=lf41qR2_z2Lp)h$n5h}#^kDlr!?uu=Cp
z*P<T+UaXLC+Pc4mk5Cgn%^GCpxPNr@pM*NmzlFLCX-~iH8fOUP@!^L;Ue-om=77{Y
zPOu-7U$isS+Or%oH7T-SwWEP4c8=E>%1p1AxYrGgFj$ec68E`EV<vX4dO9$*;B(cP
zG%bCu;@D^Bs=Y)ASt1OM=?DXQ4ZPlLwvcZC?k;u=Vjiw?6OJ#sC(K~SlNucI8@Llm
zSFza%i`|c<b6CkEiC-AMl3!Oxz~>yhdrTS9=BST4(xiE$?n=4x>zja*U%?XrM@Xa#
z=&w8nm){f(kCDuIV)e*cuYEQ*U)QM5Q}pU=ukPW&-i9~d?0F(j!I4tCR+_<~n2`xi
z%Hr@Vh@;sqc-QRpjy8MsN@KE1K?E$z0q;%X|G=n5c<|2qVq<6&U(QjyH!q5VOQ{9V
zR^WuttxvCan$tYjU#Hg=Yh>vf5DSd^xlKI1M0fDPL#z}z8gYx*ynH=guOU(3+<DV;
zPnhobEqbwOW@pQ9PkVm3JWbg^W=b<PTtlAs{BBuY!2dOjtl@bhhv&10h36Rf%?Zzo
zu4~BWDgZWs@Mx_L(xdY-2^ccYkf$9d$Z4-OOW9JGKVHR-58Ym`t;E+>9CmH%?6no;
z6<-`L$%$E!zr)(TQs;1I_xMh4-*uN=2Wyd!P;s_snG!}7v0RdZzVwUO#nwF1hcvuG
zK^&x+_yvEG)vDL1-P+?32jg7Ts|IT5F+Q~9Litkz;Rpvp7k@<$Qsy3x?WbCU^+mAB
z1}weBnpAI-V~J%CPG%6EI%xTPdP*DxucAqDNATb_dJU}lL=a|J1I77^HLS-P?#j@F
zLI7UQ*QzeBhnMrEi~?PT7`|*2y-Hk<rZWxY-zTI@1aHp(G6Tv)DR0TpL_;}2E&k$i
z80{XwA4HCK*r<F-hC${r8BVr?2cfRZx@(&MT!yZnk9tzjNvHU6NJa8@=~I(o9A83J
ztV?K*;PznMm_AOYa<8bMm^Az=ZK(04u4}Pp3F`+s-S$D2sX^TCEa7EBc^hVr$8LJ!
zMo`-?BmK-gsT#CdHl^T))F;IfUkV;>+t?W}4@}aIKt{#MgX{th&zZztJ0v|6dMz%J
z@{I&a2=tE%dTV#O$hQTRlwH)JeMQfki_73t0}i2SY!Wia{G|8+@IWfe6!6DlwEhok
zK+aQdD&jolMRvgBX}eqVyJ^+CZ@Hs8--08fAR+B~OLWy^mE2q_>qSNxLzSqYH-l)_
zwB~oxfPFtA{)5~3F?5Ba1GB1qxU#P3Z$?vn7z|gjaa<`VkVmr7zdLv%Mhwmc#G>(!
zn<B92)9Hvsi7V+&4~uGGFFT;Y5UzOMfxarW;hiDCbccp93&XSt;_(jXnBYwhFr9St
zkP*HY+VEXnuH%YYe;5Eq15Cx1X#sWlK@HR3wzX_?P!NwrpQ;jPaH1-G_acam2k(4?
z6dX7_j7oGUyoc{tggGyQsN?)#9(<EG!KZ>p{v}1e(Pl|I_qVuMQ~FVCvv_61qMUQb
zkoIL6m&|)(djxJ|vOJ48A+RF^#jwNf0NKCY_PZ6j$GSW@b0i`+W~>%sKlWXroXP&f
zDU2GE{fAfsr|joNwk*mi`(K3K#l#26{ueuDYzn7T*?+sEgN(B2)o6OWWd9aWqz1N2
z_PgMnLH55x!`LDF-|2vk3Ep(s|9g%eGQ#%*Hhf1f`z@flWWR!VO!li1r|egy)dV>@
zlmMVq>mmmpcfFGcu=A)_Mm?rm=x}<>CwnU?#E@0??%#w1Q`Fsqq~gtHJxx)EdQK)S
zQqV;Q+%SVAJH0w`4jRv6QLGFp*JSu5+cA`JvV)O9r|UNg-laa2I$<@__8w^P=!n|F
z6g>~KG$M6a4_sx3OrNVAsxo`ujE|1kRM<^>ZE@3i4rLetQ}<b@5N0$-y_c{>kOdpY
zC1$vGDgJTKmk_7%0(&F)RtlnG8^MFDfpa6^MfOIpnGOL=m)m^{Va=ua{}f${>8_$W
zS~X*P)z2MM%qN;2cJz=@G>tvZ68#GhO?+u_W&b1yd<E2)_)#TJ@uN!rGeH#m<}!jJ
z<?z4e`UU0W6V3lSg&AzooUCTk&7p6ktJ(582U&44Ugvm#RZYJ+q~2K(0z~~*w83P^
z6=372<-n8x#FirK?Os$(H8p8V(zM#$*}icUW^HD?vFt)Db`Cp{G;ii>q?QuqYX{^!
zmll)5T{sc!%K#~HJBJ`OVsu&=B?U^YZweL+t-TDB6=-b}B+@L18m((3S{cf$Jq;ss
z^S-WQ&+1hvvoh^UIn(5ZdQ81DixdN|NEwzGo6f~AO|K^zmVlNE!-?WT-oJ{Pnv)xe
zC|VgUpl}$we-*p|v$Z05cydSj?24lO1bu($%4N&$Chq?aD4L8@U@|9T;kIZvMD#gy
zY9!|NkZijx*hp>Z7LmQEK@q;6Q*#rVMeq_#D0pDN)T-;_^O~w&5^f>y_D-f|?VM{?
zdUYQrQ1N^_FD$Y`WVK?2CHba1(F9VES66Z&QJsbxc}0?-497anUb~FEFw@j_dAPCM
zYqycayC}Y28?KjMNEz;58?HqnL<)k3HE&C$S?+af^-f{7-E2U&uHc@)b4v9d9+khR
zFPw3kt_{~I_dMFKg8>Xq$I@I2KThDo6w&u#{2UiQd+j=YZRj@3#hFt1FqLAs)%0Nf
zd_O#Kw%P2$)`DneRe1GsTu6Z>A0h9>V-y3@$Cr)p0MuGV3Iw6N<mmD={>88R>`Rdz
z&*QMflrf@cK*mb;VSO9X_w8<x-2mucy&@d1mg?%~>TnA@!GKk_)a`X-rPbkT7VD4x
zHj?!iutE)71(?H^b=`KU?9;sacZD0-^BP6Jfp{0x>WAxk-PxTN@9fm@?+LrGi0k0Z
zb`dENDs{gNIMY<i-F_%dL%NsMte1YcO&GdlNu-P5XCTXPBkxz%0hDjrcg4<&F}__8
zX&i2*HFN+dTykjDv8H~wp^khFz0x5c5U=3(3ct}0PlA7?*{&2Tehc)0VQLJpV?0kA
zL8MkG(t{<nV~7b4H<o&cN!Opk6*UmmhDvX)r821!VA%)Uqww1eymyZ;o7fjXx6vW=
z>rbtY->Wo>$L5HnHq%)RFJ+i58I_c~#UnLb_Gq@LFF1BO6lQ{jP&PSyS|b^vIvuXZ
zV(2<POEHJC4Wb$grSJ3)_QQ=Wzg1+9uwcQQkmw7dF#ICXcIZ{R-BxG!u3blu9xZT>
zdZF1qw5#GD*@c>&UH$MBYC+o;wJ72WBB0y_RM+DB&c~g50l>1cJzI_pLtpeT6LOd?
z&S9NG&F{{#VXED^I)+%+EzN)hD&1=T>b2oE5Y${z@s^r?vC|^--W_gbv#B*Yew#dO
zpj(1b1%!M;yL43j1mkV)%s0BFW5p^?%yl|7_rq0mpzeq3J98!Q)2%(QZwD<;V!!#%
zV!a8?3ZDVNZAktBP62*7TLEJve~M^*xYxpDHbVAvYh8ecv-{m3l4iNqm<6gO|DQ+_
zq0^hO>uvUNld}Sr#O0b!)kn7ayTen;xKeW%`Swe-dJ)MKU<@Dua96m}ZyW)Nx3Ix+
zVc-ztMZGqM^!HaS`}z-8_h!PiTtt8;L0+{6cPJKl9(=ZxEtmnwr3*<3pusTE>E8|^
zW_@Kj8t5~6n^iw3e@Csts;{As{NKUf(RT7B{Lu;5(Pwy|FxT7rtl-*C^~~G*Q>+~O
z%O%xy;h0FuuSD`{q4S)9iq$g_A96`7E-+kO>tJ{3-$nc4Q_iLxG<@SD`2H`RPNtAD
zteA%&ejj^y@G$-H3G&>1n*Mk#?Zx-fAI~@ee>{u+IDb9<xS0O%H{g$e{@A<;f1E;p
z1SjK<CjIgLQ}D-!>5o5p6#n=S{qcjx;E#vt4|-8Ppcm%@dc`-OSAGL}M=GFqrUFWv
z8BkiyfRa1~lmsfEOKt&Of(s}tGoY}|Ubw+zK8E%UcxZu%8Dew(g#@Im$LY)b!s~&7
zz=Cr#&AQ@eR`uk_M^$^B)#ExjDr<D2)j#&Sc9%BSQ=)x|l4apI#CN&bBjF5>U%3en
z2v`-_IQ!w6z2f^lpx2l8Zy-@wYC|d_MM(!c2Om&LaqII5>NDfD@d|A$LI!iJ7yd64
C$N$R!

literal 104489
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

diff --git a/docs/build/doctrees/grid_options_descriptions.doctree b/docs/build/doctrees/grid_options_descriptions.doctree
index ef9f5f153be768b3795647b853039c46c3f89296..1e8841878b5416327ae4627ab83e4c39cc365b98 100644
GIT binary patch
delta 2783
zcmaJ@c~BHr8qe!tU=S_AkOeiOf*PDAz{3G=L=+M{rdEQ2A%KwpV~e7|M36;pqA-H+
z8&psfL=;67X^nV=?8b}LHRPzMRoMt@c8#?rD{58tk7#Yb*MdN-{imn;`yJo$`s<$a
zJ2W-WXmf3<$~#YLmkGoVkwPiIPL_3=^vMpMdVO+AQrt)BdOf-f6EMdx%B3%0HQB{j
zO@FZ1ssa4y8H7f|QWB1CZ-0C-H3nIp8MrU{!egq0yWWr|=&uqu`})c*Ue^RX_O&9-
zryk4wC_;Q&$R)0mr^TX}eu;DgMX}$ncx<r3$q<i>0Lt7^I2|bRe}a;kzGw>go&?}z
zpg(-)#0XJt7(L^jQ(8iDqIXj2nvddA6VlAd>1pVk?StT%@8W~GzCzS+^vwF|l_YP6
zB5R&C+v;i3{vQ@aYoHZnb8f;ph{8Rv6t020Nj|S)()?H~oYz$utTYsKgf#Ksqu^NN
z&)<Ss3n^&uHhdgng>k_{1ieG$wF?~xdCF<luvmFmXaK>TMO5DS&d)>`V}l-V0}7VJ
zpf~I%R2h8*OLgU<8Z<6$!s%t1(2O4=cP}|j1jz<@)+r=W{>=ERAS7~~W4z64ubGHR
zV|vphn#L^-hEt>mS{+A_V0eXJ)9qyNSjmdt!l`4$U~UL{G*$M}L6veqp}Y<6Se<RC
zBB-!IcdiF!Ml6T8f}$tF6}KWL3$mKDb+A#Gl62Bg_b`z0<ACM6g}<wH-$BHRO~M`3
z;k&^OOJ3!$SPqGtOLQ77Z-JmU#T`K!d#zEa@40*~Y5~zXso2Oq%r=~1Hpq>0*ZrpU
zRe@FSUnY9a80n%VQ(%ma7p7?0)EzyT{^j(dSQ*Yk#uRB@Ej^QcK5!wrXf@qR#mvJo
zlHI6Nk5;n2hrF14-FlUg+*gp6L2DRam!v}PAt%nmaoJ$8ku#R4j4)h^Ezp&zH<o^<
z7{w`!i3fJ3m%oiOXvksCV(m4^G=95QXi)pBV<s>AOJ@De9@5_`)}Jz~sV}y|WXm>Q
zTB=9~hdiZl#IJcsqVPv)8tGys4;(_OQr``nkupd(gI@nZZQus`QO2ZXG0BN*w-MbF
z73l5nEJacN!Zdv|y209X889Q}-KoeFlW^Ix&Pz~=IGZw^jKstYcUNh^QRFC02V2g(
z3vq*)jAImM=|wdR>aXV3h7v-&u{yP!OjlTM3EsBKlQWS&WM;)jlozEvBf6zbGgexx
zP(0XzXg4zqIp%x1Xcb!72ib065OZ<2e{tRp{BGcZvl2V`LB2TfE4=sq=he9BYmC`U
zu`FYykZ;SM(;SxP<vHfDb0ihml;wr_nRoCYiz)+ImAMj)o0EhlRns_Fv+Y$YR=}6E
zAuAN4v*+4d$SkW;+fA;AHQO+Br!Aa*=}*haf7!goKUGqgS1TU}McDsVm3~x*@>DIO
zcW@bHuPUPqx3fPcA;=4N!@4cg>^<!G#3$O}S-7vG8@qeie1-gA%PC?{RgMqic=7jE
zrBb__o!p(PBgieJ7@hxb6c$N>n;jk%iP%%{Pn;{JI9d3OkZ8wWx)(k%40YedTO3=w
zAOG4)m6F~r4u#(*5rRckj4ClOzjsS!K)>|@7M4=DY`Y9U3s1ApB4XUu5y&mMgx2j8
z=F*G8ZB;m_oD1JC7tv|CkLTr7?%6(q2+vjchaDVtt`JdFo(aE73ZEUBa0mA-gNS(*
zPmp7!h_CE`xr&E-s`O~bReZQh`CM5qBd?l=f3DWc4m(#6bktC}a@T)|uv5p|{b~<S
zVz*a>Yt3QY+Dq}MrWt9qTz0osgx}sqSocxrYS$uQzch3>&3rh+_LU&9j^gsZje^de
zJFl+i&b#YH{B3_Vst!=>s;fd;gX-KM;*0vP@sEQPR}Qqm`4A819uhI^;B7=6rt<5J
zgn%~jcx{u2=0nGjaD-y(;Ufq+%EKp*in!KP3sW=2&Lby;D{AV%V?1^GF%jP%wZO53
zqPjUnc&MV^ws3UVaS{8EZN%rtDdxAtkWr{V=a0G*9Q^Kt2>;`y=xU|tJ)TKsa8PLD
z;EXmAr1eWYZlfS4uaj5~-jq3Lb4o;fTRGl1P2nM%Ng)TffBL(p>d&AHCcy91Jrtaw
za_DI%LXL87LOVCw(=OtdPpi;=mg3ZzEYzLjEe}8MkFNHgKrT=`IC}<87kN1QqKN6|
z|B9^7DEuzm72b5<htSaRyS$zJz?v?8BZNAzKM%TK2X$jHvLhO{9Z5nk*E-Hq;sbW<
zI^WVEi+3IOJ64biIq>rmf$Ww$|I)6>NmX=G3cHjkpAe~(UB)V#DY>$X#DFB_Vz$_?
z|8QMGdgg|NH1^+1Vmc$&7&+g_xkj^T0z;XhX*hQ?%~7q`M~ho2E6)5zB&MXKuW!3L
GoBR(Z+Q_{C

delta 2707
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
b^n#L#-Ag=`e85@0Y3s7GESb`p;rZl$+mO8j

diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree
index d7befe589c22002c2d96c3f547c3035fdae1fab4..05f3ff5a58b6c27b26dbd1fa53daec18af13fac6 100644
GIT binary patch
delta 945
zcmc(c&1(};6vca!P82JKP_d#=UPW44+cYSNAJG)8(M5}BY)uo0>0~m^Ogl44XOfA5
z#-x~Tq=I-;!KE8PH$`3-f*VEMxUhnMLBJ1CM6<F>-;5>T!c7s}J%0C`bI;?x`U>xw
zz*XB<USEI0mA%|l6x!PGi+>tFc>S=0z4rCVIa1JM&B*hLLQ=BE>m?yq%1c>|^!5^6
zC285n4-X&-?8Zy}W6XK#ALRt_>2SRAW<rt;Qk2<tK@oY4<Ry`$3bK-Bn{`phXZ6w`
z(M2_DGX6)u89l4oa#PgImd5g1ok@-t=J<?g3=&>TTRM%!*vYb%v6(K)UB7>B5zDyg
z@e;i33sj_SiMr%j{$CZlt=_ET-z%0OLf3r{0VZ(W*F|q1DLddQcKG+hr!5@!{+3*K
z*%@~s4IG6yehxf#CkiPk*1uRU*AGeDaszu#+@b@=V@^n7EjSAa`aL)akfPz!BLHb!
z3SEH|HV${=&yWEbIyaJWf{gFa#vo(kvC$$Z^yTOffQHR;2~cdTh7Fj<M)(mJsEzmI
z+Ih;E(w^B3^qf3^&pjO88}p#AvxBZ)c;<8!*~rb|gT9{4SqMx#b8Rnv8>>QzYU2?H
zEYKGhtK0EMyxno9C8cWgrW0<^X8fbWRbeSRU9A)~>cQ26L$JV-Ojxvg=*c2ZCEvPg
hOd4!SX=HlE;aXxW(qh;tq@YGkVZ#CQG&?it{slB(SgHU3

delta 403
zcmY+7Pbh<N9L9Uzckf8Dwn;*y)EZ$W|E7l3W*nwjOT*-~Y_Bb~teO4OnBxxgrJTq`
zxsZM*E_RTcaN(#OoV3GkN-OUqe~zEe^E^EdMclkWNGtX)BNsxdi_7j)+R#9^h9tdo
zD}V6`y(IMXRZ10}JxQG{LkbR-={W(Mti5-SgNv^F8*%l$w~~Kg@gL37#o(yYE!72*
zJSFvQ)MVVm96K}?dCb#}DImj#$pwhaF)|EzX?N5Kk@6kQ#GAwLv8dV4L!uXp8@?|+
zZH*$x?ya4`3YEq@2!839EsPKqY^PYI_@th4<4hTmf8P~!tZSv5T3|;L&%CfEI~6@T
zbaXVKrt`K=L?~}Rz&eXhPH{-EJ4d<_NoJop<B?(|&nqWv$eU`)OIljc)KZOTLPFlu
x(~>xkboq@HL<@wBTpRkSwfL$?uhp=)H^vFuay0cPT119z`QAB%SYp|w`UD_wl|cXi

diff --git a/docs/build/doctrees/nbsphinx/notebook_api_functionality.ipynb b/docs/build/doctrees/nbsphinx/notebook_api_functionality.ipynb
index d81c31711..8d454880c 100644
--- a/docs/build/doctrees/nbsphinx/notebook_api_functionality.ipynb
+++ b/docs/build/doctrees/nbsphinx/notebook_api_functionality.ipynb
@@ -15,7 +15,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "id": "ded7eaf6-e1ba-46c2-9f6f-9ebcb14a264d",
    "metadata": {},
    "outputs": [
@@ -30,37 +30,69 @@
       "\n",
       "FUNCTIONS\n",
       "    free_persistent_data_memaddr_and_return_json_output(...)\n",
-      "        Frees the persistent_data memory and returns the json output\n",
+      "        Frees the persistent_data memory and returns the json output.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the persistent data object (contains the ensemble)\n",
       "    \n",
       "    free_store_memaddr(...)\n",
-      "        Frees the store memaddr\n",
+      "        Frees the store memaddr.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the store object\n",
       "    \n",
       "    return_arglines(...)\n",
       "        Return the default args for a binary_c system\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_help(...)\n",
       "        Return the help info for a given parameter\n",
+      "        \n",
+      "        Arguments:\n",
+      "                parameter: parameter name.\n",
       "    \n",
       "    return_help_all(...)\n",
       "        Return an overview of all the parameters, their description, categorized in sections\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_maximum_mass_ratio_for_RLOF(...)\n",
-      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at zams. Optionally accepts a store_capsule. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_minimum_orbit_for_RLOF(...)\n",
-      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at zams. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_persistent_data_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_store_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_version_info(...)\n",
       "        Return the version information of the used binary_c build\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    run_system(...)\n",
-      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things. \n",
+      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things.\n",
       "        \n",
       "        Arguments:\n",
       "                argstring: argument string for binary_c\n",
@@ -126,7 +158,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 2,
    "id": "10a74d5a-a3d5-4543-a5bc-20d1fe885bb4",
    "metadata": {},
    "outputs": [
@@ -134,8 +166,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "<capsule object \"STORE\" at 0x7f163859d0c0>\n",
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
+      "<capsule object \"STORE\" at 0x7fa6a45ed180>\n",
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
       "\n"
      ]
     }
@@ -183,7 +215,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 3,
    "id": "318874f6-7acf-49bb-9786-299d4dffc0b3",
    "metadata": {},
    "outputs": [
@@ -217,7 +249,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 4,
    "id": "d7e757ae-579c-42a2-a310-f0401b7800e8",
    "metadata": {
     "scrolled": true,
@@ -291,6 +323,9 @@
       "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",
@@ -310,7 +345,9 @@
       "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",
@@ -318,8 +355,7 @@
       "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. 0=Hurley et al 2000/2002, 1=Belczynski (early 2000s). : (null)\n",
-      "PPISN_prescription : (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019. : Ignore\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",
@@ -331,9 +367,6 @@
       "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_distribution_PPISN : Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PISN : Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PHDIS : Set the distribution of speeds applied to PHDIS supernovae. 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",
@@ -345,9 +378,6 @@
       "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_dispersion_PPISN : Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PISN : Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PHDIS : Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 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",
@@ -368,9 +398,6 @@
       "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",
-      "sn_kick_companion_PPISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PHDIS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 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",
@@ -443,6 +470,11 @@
       "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",
@@ -709,7 +741,6 @@
       "############################################################\n",
       "##### Section Output\n",
       "############################################################\n",
-      "david_logging_function : Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, >0 for custom logging functions : Ignore\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",
@@ -739,6 +770,7 @@
       "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",
@@ -763,8 +795,12 @@
       "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",
@@ -825,7 +861,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 5,
    "id": "3d29ca9d-ac66-4f9e-81cf-2edd14a98b79",
    "metadata": {},
    "outputs": [
@@ -854,7 +890,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "id": "e517f561-09c6-419d-ba89-d9cb61e6ebab",
    "metadata": {},
    "outputs": [
@@ -887,7 +923,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 46,
+   "execution_count": 7,
    "id": "7da75a95-8831-4346-a584-e042ced75249",
    "metadata": {},
    "outputs": [
diff --git a/docs/build/doctrees/nbsphinx/notebook_custom_logging.ipynb b/docs/build/doctrees/nbsphinx/notebook_custom_logging.ipynb
index 05ffbccfc..84e41e6bc 100644
--- a/docs/build/doctrees/nbsphinx/notebook_custom_logging.ipynb
+++ b/docs/build/doctrees/nbsphinx/notebook_custom_logging.ipynb
@@ -11,7 +11,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 1,
    "id": "696ecbb9-1efd-48f4-a57e-2cf6dfe416f1",
    "metadata": {},
    "outputs": [],
@@ -65,7 +65,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 2,
    "id": "236cf821-09ac-4237-9b8f-6e36d2edf446",
    "metadata": {},
    "outputs": [
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 3,
    "id": "feb423d5-5cc3-433c-9801-f8017abbc03a",
    "metadata": {},
    "outputs": [
@@ -110,7 +110,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 4,
    "id": "2f5defbf-c623-49ed-a238-fba52a563a58",
    "metadata": {},
    "outputs": [
@@ -155,7 +155,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 5,
    "id": "dcd74bbc-478b-43e4-b495-8c456e8d1d88",
    "metadata": {},
    "outputs": [
@@ -195,7 +195,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 6,
    "id": "77bd09b0-1a94-499d-97db-a1f991c67c12",
    "metadata": {},
    "outputs": [
@@ -203,10 +203,10 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_ABOVE_MS             1.041660877905e+02 4.99198 4.99198 6.1357 6.1357 2 1\n",
-      "EXAMPLE_ABOVE_MS             1.041662558619e+02 4.99198 4.99198 6.14057 6.1357 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662560111e+02 4.99198 4.99198 6.14057 6.14057 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662564579e+02 4.99198 4.99198 6.14059 6.14057 2 2\n"
+      "EXAMPLE_ABOVE_MS             1.044142002936e+02 4.99194 4.99194 6.13567 6.13567 2 1\n",
+      "EXAMPLE_ABOVE_MS             1.044572277695e+02 4.99192 4.99194 7.51803 6.13567 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.044654032097e+02 4.99192 4.99192 7.81395 7.51803 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.045084306856e+02 4.99191 4.99192 9.57443 7.81395 2 2\n"
      ]
     }
    ],
@@ -260,7 +260,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 7,
    "id": "30142286-34ce-433e-82c8-565e2160ff5b",
    "metadata": {},
    "outputs": [
@@ -336,7 +336,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 8,
    "id": "6f0edc65-a788-4706-a0c5-2ace030765ec",
    "metadata": {},
    "outputs": [
@@ -344,8 +344,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
-      "EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.446 13 5\n"
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
+      "EXAMPLE_LOG_CO             2.848380621869e+01 1.33469 9.1865 1.72498e-05 724.338 13 5\n"
      ]
     }
    ],
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 10,
    "id": "8f58fdf9-3e76-4c18-a1c5-eed0980d4133",
    "metadata": {},
    "outputs": [
@@ -403,8 +403,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_MASSLOSS             9.878236827680e+00 1.61349 8.38063 20 13 1\n",
-      "EXAMPLE_SN             9.878236827680e+00 1.61349 8.38063 20 12 13 5 1 6.74037 4.92267 6.74037 0 0\n"
+      "EXAMPLE_MASSLOSS             1.050651207308e+01 1.59452 9.34213 20 13 1\n",
+      "EXAMPLE_SN             1.050651207308e+01 1.59452 9.34213 20 12 13 5 1 6.55458 4.71662 6.55458\n"
      ]
     }
    ],
@@ -424,58 +424,27 @@
     "{\n",
     "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
     "    {\n",
-    "        if(stardata->pre_events_stardata != NULL)\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
-    "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->pre_events_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "        Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
+    "            \"%g %g %g %d \" // 2-5\n",
+    "            \"%d %d %g %g \" // 6-9\n",
+    "            \"%g %g\\\\n\", // 10-13\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->pre_events_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[ID_core(stardata->pre_events_stardata->star[0].stellar_type)],           // 9\n",
-    "\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
-    "        else\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
     "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->previous_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "            stardata->star[0].mass, //2\n",
+    "            stardata->previous_stardata->star[0].mass, //3\n",
+    "            stardata->common.zero_age.mass[0], //4\n",
+    "            stardata->star[0].SN_type, //5\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->previous_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
+    "            stardata->star[0].stellar_type, //6\n",
+    "            stardata->previous_stardata->star[0].stellar_type, //7\n",
+    "            stardata->model.probability, //8\n",
+    "            stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
     "\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_He]    // 11\n",
+    "        );\n",
     "    };\n",
     "    /* Kill the simulation to save time */\n",
     "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
@@ -491,6 +460,14 @@
     "# print (abridged) output\n",
     "print(\"\\n\".join(output.splitlines()[-2:]))"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "484297c0-accb-4efc-a9c8-dbd2f32b89a6",
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
diff --git a/docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries.ipynb b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries.ipynb
new file mode 100644
index 000000000..fb64dbcc9
--- /dev/null
+++ b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries.ipynb
@@ -0,0 +1,839 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Zero-age stellar luminosity function in binaries\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of binary stars using binary_c. \n",
+    "\n",
+    "Before you go through this notebook, you should look at notebook_luminosity_function.ipynb which is for the - conceptually more simple - single stars.\n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    " )\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 1.0 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set up the binary grid in \"cubic\" M1 - M2=q*M1 - log10 period space\n",
+    "\n",
+    "population = Population()\n",
+    "\n",
+    "# resolution on each side of the cube, with more stars for the primary mass\n",
+    "nres = 10\n",
+    "resolution = {\"M_1\": 2*nres,\n",
+    "              \"q\": nres,\n",
+    "              \"per\": nres}\n",
+    "\n",
+    "massrange = [0.07,100]\n",
+    "logperrange = [0.15, 5.5]\n",
+    "\n",
+    "population.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min=massrange[0],max=massrange[1],res=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",
+    "    dphasevol=\"dlnm1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")\n",
+    "\n",
+    "# Mass ratio\n",
+    "population.add_grid_variable(\n",
+    "     name=\"q\",\n",
+    "     longname=\"Mass ratio\",\n",
+    "     valuerange=[\"0.1/M_1\", 1],\n",
+    "     resolution=\"{}\".format(resolution['q']),\n",
+    "     spacingfunc=\"const({}/M_1, 1, {})\".format(massrange[0],resolution['q']),\n",
+    "     probdist=\"flatsections(q, [{{'min': {}/M_1, 'max': 1.0, 'height': 1}}])\".format(massrange[0]),\n",
+    "     dphasevol=\"dq\",\n",
+    "     precode=\"M_2 = q * M_1\",\n",
+    "     parameter_name=\"M_2\",\n",
+    "     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    " )\n",
+    "\n",
+    "# Orbital period\n",
+    "population.add_grid_variable(\n",
+    "    name=\"log10per\", # in days\n",
+    "    longname=\"log10(Orbital_Period)\",\n",
+    "    valuerange=[0.15, 5.5],\n",
+    "    resolution=\"{}\".format(resolution[\"per\"]),\n",
+    "    spacingfunc=\"const({}, {}, {})\".format(logperrange[0],logperrange[1],resolution[\"per\"]),\n",
+    "    precode=\"\"\"orbital_period = 10.0 ** 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**{})\n",
+    "sep_max = calc_sep_from_period(M_1, M_2, 10**{})\"\"\".format(logperrange[0],logperrange[1]),\n",
+    "    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**{}), math.log10(10**{}), {})\".format(logperrange[0],logperrange[1],-0.55),\n",
+    "    parameter_name=\"orbital_period\",\n",
+    "    dphasevol=\"dlog10per\",\n",
+    " )"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The \n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STARn\n",
+    "#\n",
+    "# where:\n",
+    "#\n",
+    "# n = PRIMARY    = 0 is star 0 (primary star)\n",
+    "# n = SECONDARY  = 1 is star 1 (secondary star)\n",
+    "# n = UNRESOLVED = 2 is the unresolved system (both stars added)\n",
+    "\n",
+    "PRIMARY = 0\n",
+    "SECONDARY = 1\n",
+    "UNRESOLVED = 2\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "// select ZAMS\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "    // loop over the stars individually (equivalent to a resolved binary) \n",
+    "    Foreach_star(star)\n",
+    "    {\n",
+    "        // select main-sequence stars\n",
+    "        if(star->stellar_type <= MAIN_SEQUENCE)\n",
+    "        {\n",
+    "            /* Note that we use Printf - with a capital P! */\n",
+    "           Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  star->starnum,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0], // 2\n",
+    "                  star->mass, // 3\n",
+    "                  star->luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "        }\n",
+    "    }\n",
+    "    \n",
+    "    // unresolved MS-MS binary\n",
+    "    if(stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "       stardata->star[1].stellar_type <= MAIN_SEQUENCE) \n",
+    "    {\n",
+    "        Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  2,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0] + stardata->common.zero_age.mass[1], // 2\n",
+    "                  stardata->star[0].mass + stardata->star[1].mass, // 3\n",
+    "                  stardata->star[0].luminosity + stardata->star[1].luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "    }\n",
+    "}\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "import re\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        \n",
+    "        # check if we match a ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "        match = re.search('ZERO_AGE_MAIN_SEQUENCE_STAR(\\d)',line) \n",
+    "        if match:\n",
+    "            nstar = match.group(1) \n",
+    "            #print(\"matched star\",nstar)\n",
+    "\n",
+    "            # obtain the line of data in dictionary form \n",
+    "            linedata = datalinedict(line,parameters)\n",
+    "\n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][int(nstar)][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "collapsed": true,
+    "jupyter": {
+     "outputs_hidden": true
+    },
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: amt_cores=4 to grid_options\n",
+      "Running the population now, this may take a little while...\n",
+      "Creating and loading custom logging functionality\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "Grid has handled 2000 stars\n",
+      "with a total probability of 0.6495098935846658\n",
+      "Total starcount for this run will be: 2000\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:14:08,077 DEBUG    Process-2] --- Setting up processor: process-0[2021-09-10 15:14:08,080 DEBUG    Process-3] --- Setting up processor: process-1[2021-09-10 15:14:08,086 DEBUG    MainProcess] --- setting up the system_queue_filler now\n",
+      "\n",
+      "[2021-09-10 15:14:08,084 DEBUG    Process-4] --- Setting up processor: process-2\n",
+      "\n",
+      "[2021-09-10 15:14:08,117 DEBUG    Process-5] --- Setting up processor: process-3"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 started at 2021-09-10T15:14:08.119437.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>Process 0 started at 2021-09-10T15:14:08.126435.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>\n",
+      "Process 2 started at 2021-09-10T15:14:08.138353.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "\n",
+      "Process 3 started at 2021-09-10T15:14:08.186492.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "624/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB625/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.04e-03 ETF=15:14:23 mem:800.5MB\n",
+      "626/2000  31.3% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB\n",
+      "\n",
+      "713/2000  35.6% complete 15:14:17 ETA=    1.3m tpr=6.00e-02 ETF=15:15:34 mem:547.8MB\n",
+      "728/2000  36.4% complete 15:14:22 ETA=    7.1m tpr=3.37e-01 ETF=15:21:30 mem:548.1MB\n",
+      "743/2000  37.1% complete 15:14:27 ETA=    7.0m tpr=3.34e-01 ETF=15:21:26 mem:549.5MB\n",
+      "759/2000  38.0% complete 15:14:33 ETA=    7.7m tpr=3.73e-01 ETF=15:22:16 mem:550.5MB\n",
+      "774/2000  38.7% complete 15:14:38 ETA=    6.9m tpr=3.35e-01 ETF=15:21:29 mem:551.1MB\n",
+      "787/2000  39.4% complete 15:14:43 ETA=    7.8m tpr=3.88e-01 ETF=15:22:33 mem:551.1MB\n",
+      "799/2000  40.0% complete 15:14:48 ETA=    8.5m tpr=4.24e-01 ETF=15:23:17 mem:552.5MB\n",
+      "812/2000  40.6% complete 15:14:54 ETA=    8.4m tpr=4.23e-01 ETF=15:23:16 mem:554.8MB\n",
+      "830/2000  41.5% complete 15:14:59 ETA=    5.5m tpr=2.80e-01 ETF=15:20:26 mem:555.2MB\n",
+      "847/2000  42.4% complete 15:15:05 ETA=    6.8m tpr=3.52e-01 ETF=15:21:50 mem:555.2MB\n",
+      "864/2000  43.2% complete 15:15:10 ETA=    6.2m tpr=3.28e-01 ETF=15:21:23 mem:557.0MB\n",
+      "876/2000  43.8% complete 15:15:15 ETA=    8.2m tpr=4.38e-01 ETF=15:23:27 mem:559.7MB\n",
+      "887/2000  44.4% complete 15:15:21 ETA=    9.2m tpr=4.95e-01 ETF=15:24:32 mem:560.5MB\n",
+      "898/2000  44.9% complete 15:15:26 ETA=    9.2m tpr=4.99e-01 ETF=15:24:37 mem:560.5MB\n",
+      "908/2000  45.4% complete 15:15:32 ETA=    9.5m tpr=5.23e-01 ETF=15:25:03 mem:560.5MB\n",
+      "919/2000  46.0% complete 15:15:37 ETA=    8.3m tpr=4.60e-01 ETF=15:23:54 mem:560.9MB\n",
+      "934/2000  46.7% complete 15:15:42 ETA=    6.4m tpr=3.60e-01 ETF=15:22:06 mem:561.7MB\n",
+      "947/2000  47.4% complete 15:15:47 ETA=    7.2m tpr=4.08e-01 ETF=15:22:57 mem:561.7MB\n",
+      "956/2000  47.8% complete 15:15:53 ETA=   11.1m tpr=6.39e-01 ETF=15:27:01 mem:561.7MB\n",
+      "963/2000  48.1% complete 15:15:58 ETA=   12.6m tpr=7.30e-01 ETF=15:28:35 mem:561.7MB\n",
+      "969/2000  48.5% complete 15:16:04 ETA=   15.2m tpr=8.85e-01 ETF=15:31:16 mem:561.9MB\n",
+      "979/2000  49.0% complete 15:16:11 ETA=   11.9m tpr=7.01e-01 ETF=15:28:06 mem:562.0MB\n",
+      "988/2000  49.4% complete 15:16:16 ETA=    9.7m tpr=5.76e-01 ETF=15:25:59 mem:562.0MB\n",
+      "995/2000  49.8% complete 15:16:21 ETA=   12.3m tpr=7.37e-01 ETF=15:28:42 mem:562.2MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:16:25,175 DEBUG    MainProcess] --- Signaling stop to processes\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1003/2000  50.1% complete 15:16:26 ETA=   11.2m tpr=6.76e-01 ETF=15:27:40 mem:563.0MB\n",
+      "1015/2000  50.8% complete 15:16:32 ETA=    7.6m tpr=4.65e-01 ETF=15:24:10 mem:563.0MB\n",
+      "1025/2000  51.2% complete 15:16:37 ETA=    8.1m tpr=5.01e-01 ETF=15:24:45 mem:563.0MB\n",
+      "1033/2000  51.6% complete 15:16:42 ETA=   10.7m tpr=6.65e-01 ETF=15:27:26 mem:563.0MB\n",
+      "1040/2000  52.0% complete 15:16:47 ETA=   12.1m tpr=7.55e-01 ETF=15:28:52 mem:563.5MB\n",
+      "1048/2000  52.4% complete 15:16:53 ETA=   11.8m tpr=7.45e-01 ETF=15:28:42 mem:563.5MB\n",
+      "1057/2000  52.9% complete 15:16:59 ETA=    9.1m tpr=5.78e-01 ETF=15:26:03 mem:563.6MB\n",
+      "1062/2000  53.1% complete 15:17:04 ETA=   15.7m tpr=1.01e+00 ETF=15:32:47 mem:564.4MB\n",
+      "1069/2000  53.5% complete 15:17:09 ETA=   12.4m tpr=7.97e-01 ETF=15:29:31 mem:564.9MB\n",
+      "1077/2000  53.9% complete 15:17:15 ETA=   11.5m tpr=7.46e-01 ETF=15:28:44 mem:565.0MB\n",
+      "1085/2000  54.2% complete 15:17:20 ETA=   10.0m tpr=6.55e-01 ETF=15:27:20 mem:565.0MB\n",
+      "1091/2000  54.5% complete 15:17:26 ETA=   13.8m tpr=9.10e-01 ETF=15:31:13 mem:565.9MB\n",
+      "1099/2000  55.0% complete 15:17:32 ETA=   12.1m tpr=8.05e-01 ETF=15:29:37 mem:566.5MB\n",
+      "1114/2000  55.7% complete 15:17:37 ETA=    5.0m tpr=3.35e-01 ETF=15:22:34 mem:566.5MB\n",
+      "1126/2000  56.3% complete 15:17:43 ETA=    6.8m tpr=4.64e-01 ETF=15:24:29 mem:566.5MB\n",
+      "1134/2000  56.7% complete 15:17:48 ETA=    9.2m tpr=6.37e-01 ETF=15:27:00 mem:566.6MB\n",
+      "1139/2000  57.0% complete 15:17:54 ETA=   16.3m tpr=1.14e+00 ETF=15:34:13 mem:567.4MB\n",
+      "1148/2000  57.4% complete 15:17:59 ETA=    8.8m tpr=6.20e-01 ETF=15:26:47 mem:567.4MB\n",
+      "1156/2000  57.8% complete 15:18:05 ETA=    9.3m tpr=6.60e-01 ETF=15:27:22 mem:567.5MB\n",
+      "1162/2000  58.1% complete 15:18:11 ETA=   14.3m tpr=1.02e+00 ETF=15:32:28 mem:567.6MB\n",
+      "1168/2000  58.4% complete 15:18:17 ETA=   15.2m tpr=1.09e+00 ETF=15:33:27 mem:568.6MB\n",
+      "1177/2000  58.9% complete 15:18:23 ETA=    8.8m tpr=6.45e-01 ETF=15:27:14 mem:568.6MB\n",
+      "1181/2000  59.0% complete 15:18:28 ETA=   17.8m tpr=1.30e+00 ETF=15:36:16 mem:568.7MB\n",
+      "1187/2000  59.4% complete 15:18:34 ETA=   12.1m tpr=8.93e-01 ETF=15:30:40 mem:568.7MB\n",
+      "1194/2000  59.7% complete 15:18:39 ETA=    9.8m tpr=7.29e-01 ETF=15:28:26 mem:568.8MB\n",
+      "1202/2000  60.1% complete 15:18:44 ETA=    9.5m tpr=7.12e-01 ETF=15:28:12 mem:568.8MB\n",
+      "1219/2000  61.0% complete 15:18:51 ETA=    5.3m tpr=4.07e-01 ETF=15:24:09 mem:569.7MB\n",
+      "1228/2000  61.4% complete 15:18:57 ETA=    7.4m tpr=5.76e-01 ETF=15:26:21 mem:569.7MB\n",
+      "1234/2000  61.7% complete 15:19:02 ETA=   11.8m tpr=9.22e-01 ETF=15:30:48 mem:571.7MB1235/2000  61.8% complete 15:19:02 ETA=   10.1m tpr=7.92e-01 ETF=15:29:08 mem:571.7MB\n",
+      "\n",
+      "1243/2000  62.1% complete 15:19:07 ETA=    7.3m tpr=5.79e-01 ETF=15:26:26 mem:573.4MB\n",
+      "1251/2000  62.5% complete 15:19:13 ETA=    8.3m tpr=6.68e-01 ETF=15:27:33 mem:575.4MB\n",
+      "1260/2000  63.0% complete 15:19:19 ETA=    8.2m tpr=6.65e-01 ETF=15:27:31 mem:575.4MB\n",
+      "1268/2000  63.4% complete 15:19:24 ETA=    7.8m tpr=6.41e-01 ETF=15:27:13 mem:576.8MB\n",
+      "1276/2000  63.8% complete 15:19:29 ETA=    7.6m tpr=6.30e-01 ETF=15:27:05 mem:577.0MB\n",
+      "1282/2000  64.1% complete 15:19:34 ETA=   10.1m tpr=8.44e-01 ETF=15:29:40 mem:578.0MB\n",
+      "1289/2000  64.5% complete 15:19:40 ETA=   10.8m tpr=9.08e-01 ETF=15:30:26 mem:578.0MB\n",
+      "1295/2000  64.8% complete 15:19:46 ETA=   10.5m tpr=8.95e-01 ETF=15:30:16 mem:578.1MB\n",
+      "1309/2000  65.5% complete 15:19:51 ETA=    4.3m tpr=3.70e-01 ETF=15:24:06 mem:578.1MB\n",
+      "1323/2000  66.2% complete 15:19:58 ETA=    6.1m tpr=5.45e-01 ETF=15:26:07 mem:579.2MB\n",
+      "1332/2000  66.6% complete 15:20:03 ETA=    6.2m tpr=5.58e-01 ETF=15:26:16 mem:579.3MB\n",
+      "1338/2000  66.9% complete 15:20:09 ETA=   10.1m tpr=9.11e-01 ETF=15:30:12 mem:579.3MB\n",
+      "1346/2000  67.3% complete 15:20:18 ETA=   12.5m tpr=1.14e+00 ETF=15:32:46 mem:581.5MB\n",
+      "1355/2000  67.8% complete 15:20:25 ETA=    8.5m tpr=7.90e-01 ETF=15:28:54 mem:581.6MB\n",
+      "1359/2000  68.0% complete 15:20:30 ETA=   13.9m tpr=1.30e+00 ETF=15:34:26 mem:581.6MB\n",
+      "1366/2000  68.3% complete 15:20:38 ETA=   11.7m tpr=1.10e+00 ETF=15:32:18 mem:581.7MB\n",
+      "1376/2000  68.8% complete 15:20:44 ETA=    6.1m tpr=5.89e-01 ETF=15:26:51 mem:581.7MB\n",
+      "1384/2000  69.2% complete 15:20:49 ETA=    6.9m tpr=6.76e-01 ETF=15:27:46 mem:581.7MB\n",
+      "1393/2000  69.7% complete 15:20:55 ETA=    6.2m tpr=6.13e-01 ETF=15:27:07 mem:581.8MB1394/2000  69.7% complete 15:20:55 ETA=    5.6m tpr=5.52e-01 ETF=15:26:29 mem:581.8MB\n",
+      "\n",
+      "1423/2000  71.2% complete 15:21:00 ETA=    1.6m tpr=1.69e-01 ETF=15:22:37 mem:581.9MB\n",
+      "1435/2000  71.8% complete 15:21:07 ETA=    5.6m tpr=5.92e-01 ETF=15:26:42 mem:582.3MB\n",
+      "1443/2000  72.2% complete 15:21:12 ETA=    6.1m tpr=6.54e-01 ETF=15:27:17 mem:582.5MB\n",
+      "1445/2000  72.2% complete 15:21:18 ETA=   28.2m tpr=3.05e+00 ETF=15:49:28 mem:582.6MB\n",
+      "1448/2000  72.4% complete 15:21:25 ETA=   20.0m tpr=2.18e+00 ETF=15:41:27 mem:582.6MB\n",
+      "1454/2000  72.7% complete 15:21:31 ETA=    8.6m tpr=9.49e-01 ETF=15:30:09 mem:583.0MB\n",
+      "1455/2000  72.8% complete 15:21:37 ETA=   54.9m tpr=6.05e+00 ETF=16:16:32 mem:583.0MB\n",
+      "1459/2000  73.0% complete 15:21:43 ETA=   13.5m tpr=1.50e+00 ETF=15:35:12 mem:583.0MB\n",
+      "1465/2000  73.2% complete 15:21:48 ETA=    8.6m tpr=9.65e-01 ETF=15:30:25 mem:583.0MB\n",
+      "1474/2000  73.7% complete 15:21:54 ETA=    5.6m tpr=6.38e-01 ETF=15:27:30 mem:583.0MB\n",
+      "1482/2000  74.1% complete 15:21:59 ETA=    5.4m tpr=6.30e-01 ETF=15:27:26 mem:583.0MB\n",
+      "1485/2000  74.2% complete 15:22:04 ETA=   14.8m tpr=1.73e+00 ETF=15:36:54 mem:583.5MB\n",
+      "1487/2000  74.3% complete 15:22:10 ETA=   24.9m tpr=2.91e+00 ETF=15:47:02 mem:583.5MB\n",
+      "1496/2000  74.8% complete 15:22:16 ETA=    5.0m tpr=5.91e-01 ETF=15:27:13 mem:583.7MB\n",
+      "1509/2000  75.5% complete 15:22:21 ETA=    3.6m tpr=4.40e-01 ETF=15:25:57 mem:583.9MB\n",
+      "1523/2000  76.2% complete 15:22:27 ETA=    3.0m tpr=3.80e-01 ETF=15:25:28 mem:583.9MB\n",
+      "1531/2000  76.5% complete 15:22:33 ETA=    5.9m tpr=7.60e-01 ETF=15:28:29 mem:583.9MB\n",
+      "1537/2000  76.8% complete 15:22:38 ETA=    6.7m tpr=8.71e-01 ETF=15:29:21 mem:583.9MB\n",
+      "1545/2000  77.2% complete 15:22:44 ETA=    5.4m tpr=7.14e-01 ETF=15:28:08 mem:584.0MB\n",
+      "1555/2000  77.8% complete 15:22:49 ETA=    4.1m tpr=5.52e-01 ETF=15:26:55 mem:584.2MB\n",
+      "1564/2000  78.2% complete 15:22:54 ETA=    4.2m tpr=5.78e-01 ETF=15:27:06 mem:584.2MB\n",
+      "1574/2000  78.7% complete 15:23:00 ETA=    4.4m tpr=6.16e-01 ETF=15:27:23 mem:584.4MB\n",
+      "1584/2000  79.2% complete 15:23:07 ETA=    4.4m tpr=6.28e-01 ETF=15:27:28 mem:584.8MB\n",
+      "1594/2000  79.7% complete 15:23:12 ETA=    3.8m tpr=5.66e-01 ETF=15:27:02 mem:584.9MB\n",
+      "1607/2000  80.3% complete 15:23:17 ETA=    2.5m tpr=3.86e-01 ETF=15:25:49 mem:585.0MB\n",
+      "1618/2000  80.9% complete 15:23:24 ETA=    3.8m tpr=5.97e-01 ETF=15:27:12 mem:585.4MB\n",
+      "1628/2000  81.4% complete 15:23:29 ETA=    3.3m tpr=5.28e-01 ETF=15:26:46 mem:585.5MB\n",
+      "1635/2000  81.8% complete 15:23:34 ETA=    4.4m tpr=7.30e-01 ETF=15:28:01 mem:585.9MB\n",
+      "1645/2000  82.2% complete 15:23:40 ETA=    3.4m tpr=5.81e-01 ETF=15:27:06 mem:585.9MB\n",
+      "1655/2000  82.8% complete 15:23:47 ETA=    4.0m tpr=7.02e-01 ETF=15:27:49 mem:586.0MB1656/2000  82.8% complete 15:23:47 ETA=    3.7m tpr=6.39e-01 ETF=15:27:27 mem:586.0MB\n",
+      "\n",
+      "1664/2000  83.2% complete 15:23:54 ETA=    4.5m tpr=8.01e-01 ETF=15:28:23 mem:586.1MB\n",
+      "1674/2000  83.7% complete 15:24:02 ETA=    4.5m tpr=8.27e-01 ETF=15:28:31 mem:586.2MB\n",
+      "1684/2000  84.2% complete 15:24:07 ETA=    2.9m tpr=5.55e-01 ETF=15:27:03 mem:586.2MB\n",
+      "1691/2000  84.5% complete 15:24:13 ETA=    4.2m tpr=8.21e-01 ETF=15:28:27 mem:586.5MB\n",
+      "1699/2000  85.0% complete 15:24:19 ETA=    3.4m tpr=6.75e-01 ETF=15:27:42 mem:586.5MB\n",
+      "1713/2000  85.7% complete 15:24:24 ETA=    1.9m tpr=4.07e-01 ETF=15:26:21 mem:586.6MB\n",
+      "1725/2000  86.2% complete 15:24:31 ETA=    2.6m tpr=5.57e-01 ETF=15:27:04 mem:586.7MB\n",
+      "1735/2000  86.8% complete 15:24:38 ETA=    3.0m tpr=6.76e-01 ETF=15:27:37 mem:586.7MB\n",
+      "1745/2000  87.2% complete 15:24:44 ETA=    2.7m tpr=6.40e-01 ETF=15:27:27 mem:586.9MB\n",
+      "1755/2000  87.8% complete 15:24:51 ETA=    2.8m tpr=6.88e-01 ETF=15:27:40 mem:586.9MB\n",
+      "1763/2000  88.2% complete 15:24:56 ETA=    2.6m tpr=6.59e-01 ETF=15:27:32 mem:586.9MB\n",
+      "1767/2000  88.3% complete 15:25:02 ETA=    5.3m tpr=1.36e+00 ETF=15:30:18 mem:586.9MB\n",
+      "1776/2000  88.8% complete 15:25:09 ETA=    2.9m tpr=7.71e-01 ETF=15:28:01 mem:586.9MB\n",
+      "1785/2000  89.2% complete 15:25:14 ETA=    2.1m tpr=5.90e-01 ETF=15:27:21 mem:586.9MB\n",
+      "1793/2000  89.7% complete 15:25:19 ETA=    2.2m tpr=6.29e-01 ETF=15:27:29 mem:587.1MB\n",
+      "1801/2000  90.0% complete 15:25:24 ETA=    2.2m tpr=6.59e-01 ETF=15:27:35 mem:587.1MB\n",
+      "1812/2000  90.6% complete 15:25:29 ETA=    1.5m tpr=4.68e-01 ETF=15:26:57 mem:587.1MB\n",
+      "1822/2000  91.1% complete 15:25:35 ETA=    1.6m tpr=5.54e-01 ETF=15:27:14 mem:587.4MB\n",
+      "1830/2000  91.5% complete 15:25:41 ETA=    2.1m tpr=7.49e-01 ETF=15:27:48 mem:587.4MB\n",
+      "1839/2000  92.0% complete 15:25:47 ETA=    1.7m tpr=6.21e-01 ETF=15:27:27 mem:587.4MB\n",
+      "1847/2000  92.3% complete 15:25:52 ETA=    1.8m tpr=7.10e-01 ETF=15:27:41 mem:587.4MB\n",
+      "1855/2000  92.8% complete 15:25:59 ETA=    2.0m tpr=8.17e-01 ETF=15:27:57 mem:587.6MB\n",
+      "1864/2000  93.2% complete 15:26:05 ETA=    1.5m tpr=6.79e-01 ETF=15:27:37 mem:587.8MB\n",
+      "1873/2000  93.7% complete 15:26:10 ETA=    1.3m tpr=6.07e-01 ETF=15:27:27 mem:588.0MB\n",
+      "1884/2000  94.2% complete 15:26:16 ETA=   57.0s tpr=4.91e-01 ETF=15:27:13 mem:588.1MB\n",
+      "1895/2000  94.8% complete 15:26:21 ETA=   48.7s tpr=4.63e-01 ETF=15:27:09 mem:588.8MB\n",
+      "1907/2000  95.3% complete 15:26:27 ETA=   45.6s tpr=4.91e-01 ETF=15:27:12 mem:588.9MB\n",
+      "1916/2000  95.8% complete 15:26:33 ETA=   57.5s tpr=6.84e-01 ETF=15:27:30 mem:589.1MB\n",
+      "1926/2000  96.3% complete 15:26:39 ETA=   46.5s tpr=6.28e-01 ETF=15:27:26 mem:589.1MB\n",
+      "1936/2000  96.8% complete 15:26:46 ETA=   42.0s tpr=6.57e-01 ETF=15:27:28 mem:589.1MB\n",
+      "1946/2000  97.3% complete 15:26:53 ETA=   40.1s tpr=7.42e-01 ETF=15:27:33 mem:589.2MB\n",
+      "1956/2000  97.8% complete 15:26:59 ETA=   25.1s tpr=5.70e-01 ETF=15:27:24 mem:589.2MB\n",
+      "1966/2000  98.3% complete 15:27:04 ETA=   19.1s tpr=5.62e-01 ETF=15:27:24 mem:589.5MB\n",
+      "1976/2000  98.8% complete 15:27:10 ETA=   14.4s tpr=6.01e-01 ETF=15:27:25 mem:589.5MB\n",
+      "1987/2000  99.3% complete 15:27:16 ETA=    6.4s tpr=4.92e-01 ETF=15:27:22 mem:589.5MB\n",
+      "1998/2000  99.9% complete 15:27:21 ETA=    1.0s tpr=4.85e-01 ETF=15:27:22 mem:589.6MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,382 DEBUG    Process-5] --- Process-3 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 3 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.117391, done at 2021-09-10T15:27:22.400722 (total: 794.283331s of which 792.6935975551605s interfacing with binary_c).\n",
+      "\tRan 499 systems with a total probability of 0.17005450973840136.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,435 DEBUG    Process-5] --- Process-3 is finished.\n",
+      "[2021-09-10 15:27:22,480 DEBUG    Process-3] --- Process-1 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.080367, done at 2021-09-10T15:27:22.505288 (total: 794.424921s of which 793.1943278312683s interfacing with binary_c).\n",
+      "\tRan 474 systems with a total probability of 0.15740832333567983.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,531 DEBUG    Process-3] --- Process-1 is finished.\n",
+      "[2021-09-10 15:27:22,846 DEBUG    Process-2] --- Process-0 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 0 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.077117, done at 2021-09-10T15:27:22.851971 (total: 794.774854s of which 793.4976091384888s interfacing with binary_c).\n",
+      "\tRan 507 systems with a total probability of 0.16018641159091498.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,872 DEBUG    Process-2] --- Process-0 is finished.\n",
+      "[2021-09-10 15:27:22,976 DEBUG    Process-4] --- Process-2 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 2 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.084369, done at 2021-09-10T15:27:22.981706 (total: 794.897337s of which 793.4600214958191s interfacing with binary_c).\n",
+      "\tRan 520 systems with a total probability of 0.1618606489196724.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,986 DEBUG    Process-4] --- Process-2 is finished.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Population-0fa295ee5c76444bace8fd0ee17a3e11 finished! The total probability was: 0.6495098935846686. It took a total of 795.1383104324341s to run 2000 systems on 4 cores\n",
+      "There were no errors found in this run.\n",
+      "Done population run!\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=1,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=4,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "print(\"Running the population now, this may take a little while...\")\n",
+    "analytics = population.evolve()  \n",
+    "print(\"Done population run!\")\n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '0fa295ee5c76444bace8fd0ee17a3e11', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.6495098935846686, 'total_count': 2000, 'start_timestamp': 1631283248.057525, 'end_timestamp': 1631284043.1958354, 'total_mass_run': 41112.220964392276, 'total_probability_weighted_mass_run': 0.6452116023479681, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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p9///vdq2bKlJKlFixbavn274VSIBLNnz1aPHj1Uq1YtJSQkaMiQIZoyZYrpWIggWVlZuuWWW+TxeOR2u9WkSRNt27bNdCxEmIKCAj3xxBO66qqrTEdBBPrkk080fPhw1a5dW263W0888YQ6dOhgOhYiSDAYVCgUUllZmQKBgAKBgLxer+lYMYMB0//YvHmz6tatqwceeEBnnXWWbrjhBrndbtOxEGFmzJih8vJyDR061HQURCCPx6Ozzz5bkhQKhTR+/HgNHDjQcCpEgl27dikrK6vycnZ2tnbu3GkwESJNs2bN1LFjR0nShg0b9NFHH6l///5mQyHi3HnnnbrxxhuVkpJiOgoi0MaNGxUMBnX55ZfrrLPO0muvvabU1FTTsRBBkpKS9Pvf/17Dhg1Tv379lJubq86dO5uOFTNcpgOY8vHHH+vBBx884rqGDRtq+fLluv7663X77bfrrbfe0i233KJXXnnFUErY2U89hxo3bqzi4mK99NJLZkIhohztOfTSSy/J5/PplltuUSAQ0JVXXmkoISJJOBz+0XWWZRlIgki3Zs0aXXnllbr55pvVqFEj03EQQd566y3VqVNHPXv21Lvvvms6DiJQMBjU/Pnz9corryghIUHXXHONJk6cqHPPPdd0NESIlStX6p133tGnn36q5ORk/elPf9K//vUv/fa3vzUdLSZY4Z/6jTRGbdq0Seecc44WLFgg6UB/s0ePHlq8eLHhZIgUb731lv75z38qMTFR0oEfcC1bttSrr76qpKQkw+kQKUpKSnT11VerVq1aeuyxx+TxeExHQgSYOHGi5s+fr/vvv1+S9I9//EPhcFjXXXed4WSIJAsWLNANN9yg2267TWeccYbpOIgwv/nNb7R79245nU7t379fpaWlGjlypG677TbT0RAh/va3v6m4uFjjxo2TJL366qtas2aN7r77brPBEDFeeOEF7d27VzfffLMk6bPPPtNrr72m5557znCy2EBF7n80aNBAOTk5lRvJffrpp2rTpo3hVIgk5513nqZPn65JkyZp0qRJkg6cYsBwCSfiz3/+sxo2bKgnn3yS4RKOW69evTRnzhzl5+errKxM06ZNU79+/UzHQgTZvn27rr32Wj322GMMl/CLvPjii/rggw80adIk3XDDDTrttNMYLuGEnHrqqZo1a5YKCwsVDAb15Zdf8noMJ6Rly5aaPXu2SktLFQ6HNXPmTLVr1850rJgRsxW5oxk/frzuuusuPfroo0pKStJDDz1kOhKAGLJ8+XLNmDFDTZs21ciRIyUd2Evn+eefNxsMtpeTk6Mbb7xRF198sfx+v0aPHq327dubjoUI8q9//UsVFRVH/O4zduxYnX/++QZTAYglHTp00G9/+1tdcMEF8vv96t27t0aNGmU6FiJInz59tHz5cp177rlyu91q166drrjiCtOxYgYVOQAAAAAAAJwUKnIAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASWHABAAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAEPFOO+00zZ4923QMAACAmMWACQAAoIrl5+erRYsW2rlzp+koAAAANYIBEwAAQBV47LHH9OWXX0qSVq5cqfT0dOXk5BhOdcANN9yg1atXV17esmWLOnXq9Ivuq6SkRL/97W9VXl5eVfEAAEAUYMAEAACiyrp163TRRRepa9euOuOMMzRjxozKzy1btkwjR45Up06ddMMNN+gPf/iDnnjiiZN+zEWLFmnt2rXq27evJGnFihVq2bLlSd9vVfD5fNq4caOaN29eJfeXmJioM888U08++WSV3B8AAIgODJgAAEDU8Pv9uuqqq9S7d2/Nnj1b48aN05/+9CetX79ePp9P1113nc455xzNmzdPZ555pqZPn14lj/vUU09pzJgxlZftNGCaPXu2evbsWaX3OWzYME2ePFl79uyp0vsFAACRiwETAACIGosXL1ZpaamuuOIKeTwe9ezZU6eeeqo+/PBDLV68WIFAQBdffLHcbrcGDx6sdu3aVX5tUVGRRo8erU6dOh1RJ3v00Ud1wQUX6M9//rP8fv+PHrOwsFALFixQ7969K69buXKlWrVq9aPbvvHGG7rooosq/7Rv315Lliyp/PzYsWM1fvx4SQdqbC1atNDXX38t6cBKpG7dumnChAmSpOLiYl111VW66KKLNGbMGH3++ec/+T2ZMWOGBg4ceCLfxmPyer3q3LnzUR8TAADEHpfpAAAAAFVl165dql27thyOw++h1a1bVzt37tSuXbuUk5Mjy7IqP1enTp3Kj+Pi4vTcc8/pkUceqbxu5cqV2rlzp1577TU988wzmjp1qs4888wjHnPjxo3KysqSx+ORJFVUVOj7779X69atf5RvzJgxlSudZs6cqYkTJ6p9+/aSpO3btysnJ0fz5s2rvH3btm31ySefqEePHpozZ44aNmxY+blJkyapb9++uvDCCxUOh1VUVPSjxwuFQlq0aJHuvvvu4/r+HbJz5069/PLLCgQCCofDatWqlc4555wjbtOgQQN9//33J3S/AAAgerGCCQAARI3s7Gzt2LFDoVCo8rpDg5usrCzt3LlT4XD4iM8d4na7lZ6efsT9LVy4UH369JEk9e3bVwsXLvzRYzocDgWDwcrLq1evlsvlUl5e3lFz5ufn68knn9Q999xTed3UqVM1YsQINW7cWOvWrZMk5ebmatu2bQqHw/rkk080ePDgytt7vV4tWrRIe/bskWVZSklJ+dHjLF68WG3btpXT6Txqlh8KhUJ6//33deONN+rWW2/VbbfdpiZNmuizzz474nbBYPCE7hcAAEQ3BkwAACBqtG/fXnFxcXrhhRfk9/s1d+5czZw5U8OHD1fHjh3ldDo1YcIEBQIBTZ8+Xd99993P3l9hYaGSkpIkScnJydq/f/+PblO/fn3l5+eroqJC0oFVT02aNFEgEFBFRYUqKirk8/mO+Jq7775bv//9748YaM2aNUv9+vXTmWeeqSlTplRe36lTJ33zzTfKz89XZmZm5fVnn3228vLydPnll2vMmDFav379j7JNnz5dp59++nF85w5bsmSJRo4cKZfLpY8//lhbt25V+/btVVZWdsTttmzZ8rNDNAAAEFsYMAEAgKjh8Xj07LPP6osvvlCPHj10zz336JFHHlGTJk3k8Xj01FNP6e2331a3bt30/vvva8CAAZXVtp+SnJys4uJiSQf2aEpNTf3RbVJSUtSlS5fKvZJWrFihZcuWqX379pV/hg8fXnn79957T8nJyTrttNMqr9uxY4fWrFmjq6++Ws8888wRexsNHjxYDz74oE455ZQjHtftduuaa67RpEmTdMMNN+ipp576UbbZs2dXrsD6odLSUnXq1OmIP6tWrZLT6axcAfbss89q/vz5knTEaiWfz6dvv/32iH8HAAAQ29iDCQAARLyZM2dWftysWbPKjbB/qF27dpo0aVLl5fPOO0+nnnrqUe+3c+fOevHFFzVy5EjNmjVLnTt3/snbXXvttXr22WfVv39/3Xnnnbrzzjt/8nbbt2/XSy+99KN8U6ZM0a233qqhQ4dKOrDC6dCqp0aNGqlLly4aOnSoZs+eXfk1W7durdz7KSMj44jq3yETJ078yRz16tXTqlWrfvJzfr9fL7/8si655JLK79V33313xIDpgw8+0IgRI36ylgcAAGITAyYAABAz5s2bp7y8PKWlpWny5MlatWqV+vbtW/n53/3ud1qxYoW+//57jRkzRueee64yMjJ0wQUXqE6dOrrssst+8n47d+6svLw8ffHFF+rXr99RH/+f//ynCgsLdfXVV1ded80112jatGn6xz/+UXld9+7d9fHHH1deHjdu3I/ua/Xq1brxxhvl9XoVDoePOtQ6UW63W8OGDdPjjz9euZKpWbNmGj16tKQDp9d98MEHlafdAQAASJIV/qm3uwAAAKLQG2+8oSeffFJlZWWqV6+e/vjHP2rAgAGmYwEAAEQ8BkwAAAAAAAA4KWzyDQAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAAAAAAJwUBkwAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASfl/6hNZaplFmREAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "titles = { 0 : \"Primary\",\n",
+    "           1 : \"Secondary\",\n",
+    "           2 : \"Unresolved\" }\n",
+    "\n",
+    "# choose to plot the \n",
+    "# PRIMARY, SECONDARY or UNRESOLVED\n",
+    "nstar = UNRESOLVED\n",
+    "\n",
+    "plots = {}\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "for n in range(0,3):\n",
+    "    pad_output_distribution(population.grid_results['luminosity distribution'][n],\n",
+    "                            binwidth['luminosity'])\n",
+    "    plots[titles[n] + ' ZAMS luminosity distribution'] = population.grid_results['luminosity distribution'][n]\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict(plots)\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e7541ebf-fe9a-4fb0-a88e-bb318d06f9eb",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries_20_1.png b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_binaries_20_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd1782b3a11abd6e0f188902b49f69eb32319f1b
GIT binary patch
literal 57125
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

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single.ipynb b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single.ipynb
new file mode 100644
index 000000000..fb971b34a
--- /dev/null
+++ b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single.ipynb
@@ -0,0 +1,716 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "# Example use case: Zero-age stellar luminosity function\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of single stars using binary_c. \n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "from binarycpython.utils.functions import temp_dir\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_luminosity\")\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_luminosity to grid_options\n",
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 0.5 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Mass\n",
+    "population = Population()\n",
+    "population.set(\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "population.add_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{res}\".format(res = resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const({min}, {max}, {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"{probtot}/({max} - {min})\".format(probtot = total_probability, min = massrange[0], max = massrange[1]), # dprob/dm1 : all stars are equally likely so this is 1.0 / (Mmax - Mmin)\n",
+    "    dphasevol=\"dM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "   /* Note that we use Printf - with a capital P! */\n",
+    "   Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR %30.12e %g %g %g %g\\\\n\",\n",
+    "          stardata->model.time, // 1\n",
+    "          stardata->common.zero_age.mass[0], // 2\n",
+    "          stardata->star[0].mass, // 3\n",
+    "          stardata->star[0].luminosity, // 4\n",
+    "          stardata->model.probability // 5\n",
+    "      );\n",
+    "};\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        # obtain the line of data in dictionary form \n",
+    "        linedata = datalinedict(line,parameters)\n",
+    "        \n",
+    "        # Check the header and act accordingly\n",
+    "        if linedata['header'] == \"ZERO_AGE_MAIN_SEQUENCE_STAR\":\n",
+    "            \n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 1.0000000000000004\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-08f8230453084e4ca6a2391d45ce658b finished! The total probability was: 1.0000000000000002. It took a total of 1.5262682437896729s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.025), (3.75, 0.05), (4.25, 0.05), (0.25, 0.025), (3.25, 0.025), (5.25, 0.2), (4.75, 0.1), (5.75, 0.39999999999999997), (6.25, 0.125)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=0,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=2,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '08f8230453084e4ca6a2391d45ce658b', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 1.0000000000000002, 'total_count': 40, 'start_timestamp': 1631124829.303065, 'end_timestamp': 1631124830.8293333, 'total_mass_run': 2001.4, 'total_probability_weighted_mass_run': 50.035000000000004, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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n9eyZcs0atQovf3225o8eXLr4WwXExkZqZqaGkmfnZOpW7duF9wmKipKI0aMaD030sGDB7V//34NHjy49a+ZM2e23v7NN99UZGSkpk6d2nrZmTNnlJeXpwceeEC/+93vzjuX0YwZM/Tzn/9co0ePPu9xAwMD9c1vflNvvfWWHn74YT3//PMXtG3cuLH1lVf/qq6uTsOGDTvvr8OHD8vhcLS+8uuFF17Q9u3bJem8Vyk1NTVp165d5/0ZAACAf+OcSwAAwKutXr269e/T09NbT3r9r6699lq99dZbrR/feeedmjJlyiXvd/jw4XrxxRd16623av369Ro+fPhFb/fggw/qhRde0KRJk/TDH/5QP/zhDy96u9OnT+uvf/3rBX0ffPCBvv/97+uGG26Q9Nkrmz5/tVO/fv00YsQI3XDDDdq4cWPr55w8ebL1XE+xsbHnHe73ueXLl1+0IykpSYcPH77odc3Nzfrb3/6mL33pS61fq3379p03Lr3zzju6+eabL3ooHgAA8E+MSwAAwC9s3bpVycnJio6O1ooVK3T48GFNmDCh9fqvf/3rOnjwoI4ePaq5c+fq9ttvV2xsrBYsWKAePXroq1/96kXvd/jw4UpOTta6des0ceLESz7+73//e1VVVemBBx5oveyb3/ymPvroI/3P//xP62VZWVl6//33Wz9etGjRBfeVm5urRx55RMHBwbIs65KD1pUKDAzUjTfeqF/96letr2BKT0/XnDlzJH32LnXvvPNO67vaAQAASJLNutj/6gIAAPAxr776qp599lnV19crKSlJjz76qCZPnmw6CwAAwOsxLgEAAAAAAKDdOKE3AAAAAAAA2o1xCQAAAAAAAO3GuAQAAAAAAIB2Y1wCAAAAAABAuzEuAQAAAAAAoN0YlwAAAAAAANBujEsAAAAAAABoN8YlAAAAAAAAtNv/D2ltZ660RybEAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "# this saves a lot of typing! \n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7d7b275e-be92-4d59-b44d-ef6f24023cc3",
+   "metadata": {},
+   "source": [
+    "Does this look like a reasonable stellar luminosity function to you? The implication is that the most likely stellar luminosity is 10<sup>5.8</sup> L<sub>☉</sub>! Clearly, this is not very realistic... let's see what went wrong."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "44586e42-b7cb-4a55-be0a-330b98b20de4",
+   "metadata": {},
+   "source": [
+    "## "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e32c3bbf-390f-45da-ad9c-cc3e7c9449dc",
+   "metadata": {},
+   "source": [
+    "## ZAMS Luminosity distribution with the initial mass function\n",
+    "\n",
+    "In the previous example, all the stars in our grid had an equal weighting. This is very unlikely to be true in reality: indeed, we know that low mass stars are far more likely than high mass stars.  So we now include an initial mass function as a three-part power law based on Kroupa (2001). Kroupa's distribution is a three-part power law: we have a function that does this for us (it's very common to use power laws in astrophysics).\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "1f37d2c0-1108-4ab9-a309-20b1e6b6e3fd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Update the probability distribution to use the three-part power law IMF \n",
+    "population.update_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)\",\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "6f4463e8-1935-45f2-8c5f-e7b215f8dc47",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.2182216189410787\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-92de7c9221c54206ab4dd10e58e09a34 finished! The total probability was: 0.21822161894107872. It took a total of 1.5900418758392334s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.0164166), (3.25, 0.00515685), (0.25, 0.189097), (3.75, 0.0037453900000000004), (4.25, 0.0014346559999999999), (5.25, 0.0007493004), (4.75, 0.001171479), (5.75, 0.00039801020000000003), (6.25, 5.2369339999999996e-05)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "cfe45a9e-1121-43b6-b6b6-4de6f8946a18",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABcnUlEQVR4nO3dd3SUZf7+8Wtm0gvpjQRIo0PovSNNiiDiBnXBsrqCsq6sK66CirroWlZ/lu/ay6oooIIIItIEhID03ksCBJIACYTQ0ub3R3TcCBjIk+SZSd6vczgn82QycyW5HTPX3M9nLHa73S4AAAAAAACgnKxmBwAAAAAAAIBro2ACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQ9zMDlCZcnLOqrjYbnaMaickxE8nT+aZHQMuivUDo1hDMIo1BKNYQzCKNQSjWEMwqrxryGq1KCjI97Kfq9YFU3GxnYKpkvBzhRGsHxjFGoJRrCEYxRqCUawhGMUaglEVvYY4RQ4AAAAAAACGUDABAAAAAADAkGp9ihwAAAAAAFWpqKhQOTnHVViYX2n3kZVlVXFxcaXdPqq/staQm5uHgoLCZLNdfW1EwQQAAAAAQAXJyTkuLy8f+fpGymKxVMp9uLlZVVhIwYTy+701ZLfbdfZsrnJyjis0NOqqb5NT5AAAAAAAqCCFhfny9a1VaeUSUNksFot8fWtd8y48CiYAAAAAACoQ5RJcXXnWMAUTAAAAAAAADKFgAgAAAACgGtq8eaPuuOPWUv+6d2+v77+f57jOV19NV8+eHXXy5IlSX9u1a1v97W/jSh07deqUevTooPfff1uSlJGRoQkTxuv220dq1Kg/6PHH/6GcnOxLcrz//tuOrzHivffe0ooVywzfzi++/vpLff31l5KkZ599ShkZx8p1O+PG/VkbNqzTrl079K9/PXPF6x09mq7nnnu6zCxdu7a9pvtfsWK5pk379JLbqWoM+QYAAAAAoBpq0aKVPvroM8fl6dOnav78b9Wz53WOY99+O0ddu/bQ3Lmzdfvtfyr19YcPH1Zubq5q1aolSVq6dLH8/Ws5Pv/ii89qwICB6tt3gCTpk08+1IsvPqdnn32xUr6fu+8eU6G3N2zYCMfHGzas05133mPo9ho1aqJ//KPJFT+fkXFM6elHysxyrXbv3lkht2MUBRMAAAAAANXc5s0b9fHHH+idd/4rT09PSdK+fXuVm3taEyZM1KRJEzRq1J2yWn890alr1+768celGjToBkklBVP37j0dn8/OPqGLFy84Lt900x+0c+eO383RtWtbrVixTpI0b94cbdy4XhMnTtaIEUPUu3dfpaSskM1m07333q9p0z7VkSOHdf/9D+q66/pqypTJatWqjVq1aqPHHvu74uMTtGfPbgUHh+iZZ/6lWrUCtHLlj3r33Tdltxerdu1oPfzwYwoODtEbb/w/rV37k2w2q7p27aG77vqzY1eVh4enTpw4rocf/qvuvnuMpk2bqrfe+kCS9N13c7V9+1b9/e+POr6H/Px8Pf/8M9q1a6ciI2vr9OlTkkpKqg8+eEdvvPGOpk37VN99962sVosaN26qCRMm6tVXX9LRo+n697+fV69e1+nNN19TUVGx4uMTFBVVW5L0pz/dK0l6/vkp2rlzuwICAvXoo08oMjJS48b9WXfd9We1bt1Wx44d1V/+cq9efPFVzZ49U5IUGRnl2IX1pz/de8WfxYgRQ3T99YO0enWKzp+/oEmTnlKjRo2vei1dCQUTAAAAAACVYOXWY1qxpXynXf0ei0Xq0jxKXZpf3VvI5+Rka/LkiXrkkccVHR3jOD5v3jfq3buPGjVqLJvNpp9+SlGnTl0dn+/du48+/vgDDRp0g06ePCG7XQoJCXV8/t57x+nppx/X+++/ozZt2qljx87q3btvub+v0NAwffrpDD377FP69NOP9Nprb2nr1s167bV/67rrSt/uvn179eijT6hBg0aaOPFhLVjwna67rp9efPFZvfnm+4qKqq3PPvtYL7/8gsaNe1CrV6fo009n6OLFi3r++X/q4sWLjtsaNeoOzZ79lV588VVFRkbp//7vNaWnH1F0dIy++26u7r239KmCX345XZI0deqXOnz4kG6//ZZSny8sLNSnn36kr7+eL6vVqpdffl7Hj2fpr3/9uz744B099NAj2rBhnQ4fPqQvv5wrPz+/S04hbNWqtR55ZKJmzvxCr776kp577qXL/szi4uI1dOhwSdKgQTc4bicnJ/uyP4t//vN5SVJAQIDeffdjffnlNH3yyQeaMsX4rjNmMAEAAAAAUE0VFxdr8uRJ6tOnf6ndR4WFhVqwYL769OkvSerdu69jJ8wvmjVL0qFDacrLy9PSpYvVq1fvUp/v2LGzZs2ap0cemaTAwCD95z+vaeLEh8udtWPHzpKkiIhItWzZWm5uboqMjNKZM2cuuW5QULAaNGgkSYqPT1Rubq527Niuxo2bOnYD3XDDcK1fv1ahoWHy9PTU2LF3acaMz3TPPWMdu7h+y2Kx6PrrB+n77+cpIyND2dnZatq0WanrbNq0Xr16lRRederUVfPmSaU+7+bmpmbNknT33aP14YfvavjwmxUWFn7JfdWpU09+fn6XHPf09FS/ftdLkvr3v14bN67/3Z/b5VzpZ/GLX37Wv/zsKgI7mAAAAAAAqATXssvoWri5WVVYWHxV1/3ww3dVWFige++9v9TxlSt/1JkzuXrssZJCqLCwUDk52crKylR4eISkkrKlS5duWrFimZYt+0FPPfWcZs6cIUnKzT2tjz56Tw888JA6duysjh0764477tbQof2Vk5OjoKCgK2ay2+2yWCwqLCwsddzd3d3xsc1m+93vy8PD45LbtNuLLzlWVFQkNzc3vfPOR9q0aYNWrVqpMWPu1Ouvv3PF2x44cIgeeugv8vDw0IABAy9zDUup+7pc1uee+7e2b9+q1atT9NBDD+iJJy4d/n2lkstq/fX27PaSwkoq+X384rc/u9+60s/iFx4enqU+VxHYwQQAAAAAQDW0du1qzZnztZ566jlHSfGLefO+0T33jNWXX87Rl1/O0ddff6fmzVtozpyvS12vd+++mjnzC7m5uZcqjXx9/bRixXJ9991cx7H09CMKDg5xDAW/nMDAQB08uF92u10rViyvmG/0Z02aNNOOHVt17NhRSdI338xU69ZttGfPLo0b92e1aNFK48Y9qNjYeB06lFbqa202m6OAiYyMUlhYuL7++isNGDDokvtp27a9Fi78XsXFxcrIOKatW7eU+nxOTo5uu22E4uMTdffdY9SuXQft379XNptbqZLnSs6fP+d4t7xvv52ttm3bS5ICAkp+dpL0449LL5u9rJ9FZWIHEwAAAAAA1dAnn3ykoqIi/f3vD5Q63r17T23YsE6PPvpkqeMjR/5R//73v3THHXc7jjVt2lwnT57QDTcMK3Vdm82ml156Va+//oree+8teXl5KTQ0TM8///Lv7j4aM2acJkwYr+DgECUltXQMyK4IwcEhevjhiXrssb+roKBQkZGR+sc/nlBoaKiaNUvS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zY4DF/TFF184Hn+GDh2qNm3a6Omnn66Q23arkFtBtZeZmalXXnlFM2fOlIeHh0aOHKkOHTooMTHR7GhwIZs3b9akSZOUmppqdhS4oJSUFK1YsUKzZs2SxWLR3XffrYULF6pv375mR4OLWLNmjVavXq1vvvlGhYWFGjhwoHr06KH4+Hizo8GFrFq1SrNmzVLPnj3NjgIXZLfbdeDAAS1dulRubjwVw7U5fPiwnnzySX3xxRcKCQnR7bffrmXLlqlHjx5mR4MLufnmm3XzzTdLkvbu3av7779f48aNq5DbZgcTrkpKSoo6duyowMBA+fj4qH///po/f77ZseBiZsyYoSeffFLh4eFmR4ELCgsL0z/+8Q95eHjI3d1dCQkJOnr0qNmx4ELat2+vjz/+WG5ubjp58qSKiork4+Njdiy4kFOnTumVV17RmDFjzI4CF3XgwAFZLBbdc889uuGGG/Tpp5+aHQkuZOHChRo4cKAiIyPl7u6uV155RS1atDA7FlzY5MmTNX78eAUHB1fI7VGb46pkZWUpLCzMcTk8PFxbtmwxMRFc0ZQpU8yOABdWv359x8epqamaN2+epk2bZmIiuCJ3d3e99tpr+uCDDzRgwABFRESYHQku5IknntD48eN17Ngxs6PAReXm5qpTp06aPHmyLly4oNGjRysuLk5dunQxOxpcQFpamtzd3fWnP/1Jx48fV69evfTggw+aHQsuKiUlRRcuXND1119fYbfJDiZcFbvdfskxi8ViQhIANd3evXt111136ZFHHlFsbKzZceCCHnjgAa1atUrHjh3TjBkzzI4DF/HFF18oKipKnTp1MjsKXFirVq30wgsvyMfHR8HBwRoxYoSWLVtmdiy4iKKiIq1atUovvviiZsyYoa1bt2rWrFlmx4KLmjZtmu68884KvU0KJlyViIgInThxwnE5KyuL05wAVLn169frjjvu0EMPPaQbb7zR7DhwMfv379fOnTslSd7e3urXr592795tciq4innz5mnlypUaOnSoXnvtNS1ZskTPPvus2bHgYtatW6dVq1Y5LtvtdmYx4aqFhoaqU6dOCg4OlpeXl6677jrOKkG55Ofna+3aterdu3eF3i4FE65K586dtWrVKmVnZ+v8+fNasGCBunfvbnYsADXIsWPHdP/99+ull17SoEGDzI4DF3TkyBFNmjRJ+fn5ys/P1+LFi9WmTRuzY8FFfPjhh5o7d65mz56tBx54QL1799Zjjz1mdiy4mDNnzuiFF17QxYsXlZeXp1mzZvFmFbhqvXr10ooVK5Sbm6uioiL9+OOPatq0qdmx4IJ2796t2NjYCp9FSV2OqxIREaHx48dr9OjRKigo0IgRI5SUlGR2LAA1yPvvv6+LFy/qX//6l+PYyJEjdcstt5iYCq6kR48e2rx5s4YNGyabzaZ+/fpRVgKoUr169XI8DhUXF+vWW29Vq1atzI4FF9GiRQvdfffduvXWW1VQUKAuXbropptuMjsWXNDhw4cVGRlZ4bdrsV9uuA4AAAAAAABwlThFDgAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQyiYAAAAAAAAYAgFEwAAAAAAAAyhYAIAAAAAAIAhFEwAAMDl9e7dWykpKWbHAAAAqLEomAAAACpYdna2GjZsqMzMTLOjAAAAVAkKJgAAgArw0ksv6ccff5Qk7dq1S8HBwYqIiDA5VYkHHnhAe/bscVw+cuSIWrVqVa7bOnv2rO6++25duHChouIBAIBqgIIJAABUK/v379eoUaPUtm1bDRo0SIsXL3Z8bvv27Ro2bJhatWqlBx54QA8++KBeeeUVw/e5adMm7du3T926dZMk7dy5U40aNTJ8uxUhPz9faWlpatCgQYXcnq+vrwYPHqxXX321Qm4PAABUDxRMAACg2igoKNCYMWPUpUsXpaSkaNKkSfr73/+uAwcOKD8/X+PGjdONN96oNWvWaPDgwVq0aFGF3O/rr7+u5ORkx2VnKphSUlLUqVOnCr3N66+/XnPmzNGJEycq9HYBAIDromACAADVxubNm3Xu3Dn9+c9/loeHhzp16qRevXrp22+/1ebNm1VYWKjRo0fL3d1d/fr1U/PmzR1fe+bMGY0YMUKtWrUqdTrZiy++qFtvvVUPP/ywCgoKLrnP3NxcrV+/Xl26dHEc27Vrlxo3bnzJdadPn65Ro0Y5/iUlJWnLli2Oz48cOVJvvPGGpJLT2Bo2bKjVq1dLKtmJ1K5dO3366aeSpLy8PI0ZM0ajRo1ScnKyli1bdtmfyeLFi9WnT59r+TGWydPTU61bt77ifQIAgJrHzewAAAAAFSUrK0uRkZGyWn99Da127drKzMxUVlaWIiIiZLFYHJ+LiopyfOzl5aV33nlHL7zwguPYrl27lJmZqc8++0xvvvmmvv/+ew0ePLjUfaalpSksLEweHh6SpIsXL+rgwYNq0qTJJfmSk5MdO52WLFmiWbNmKSkpSZJ07NgxRUREaM2aNY7rN2vWTAsXLlTHjh21atUq1atXz/G52bNnq1u3brrttttkt9t15syZS+6vuLhYmzZt0uTJk6/q5/eLzMxMffzxxyosLJTdblfjxo114403lrpO3bp1dfDgwWu6XQAAUH2xgwkAAFQb4eHhysjIUHFxsePYL8VNWFiYMjMzZbfbS33uF+7u7goODi51exs2bFDXrl0lSd26ddOGDRsuuU+r1aqioiLH5T179sjNzU1xcXFXzJmdna1XX31VTz31lOPY999/ryFDhig+Pl779++XJEVHR+vo0aOy2+1auHCh+vXr57i+p6enNm3apBMnTshisahWrVqX3M/mzZvVrFkz2Wy2K2b5reLiYn3zzTcaP368Hn30UT322GNKSEjQ0qVLS12vqKjomm4XAABUbxRMAACg2khKSpKXl5fee+89FRQU6KefftKSJUs0cOBAtWzZUjabTZ9++qkKCwu1aNEibd269XdvLzc3V35+fpIkf39/nT59+pLr1KlTR9nZ2bp48aKkkl1PCQkJKiws1MWLF3Xx4kXl5+eX+prJkyfrr3/9a6lCa8WKFerevbsGDx6s+fPnO463atVKa9euVXZ2tkJDQx3Hhw4dqri4OP3pT39ScnKyDhw4cEm2RYsW6brrrruKn9yvtmzZomHDhsnNzU3fffed0tPTlZSUpPPnz5e63pEjR363RAMAADULBRMAAKg2PDw89NZbb2n58uXq2LGjnnrqKb3wwgtKSEiQh4eHXn/9dX355Zdq166dvvnmG/Xs2dNxatvl+Pv7Ky8vT1LJjKaAgIBLrlOrVi21adPGMStp586d2r59u5KSkhz/Bg4c6Lj+119/LX9/f/Xu3dtxLCMjQ3v37tXYsWP15ptvlppt1K9fPz333HNq3759qft1d3fXfffdp9mzZ+uBBx7Q66+/fkm2lJQUxw6s3zp37pxatWpV6t/u3btls9kcO8DeeustrVu3TpJK7VbKz8/Xxo0bS30PAACgZmMGEwAAcHlLlixxfFy/fn3HIOzfat68uWbPnu24fPPNN6tXr15XvN3WrVvrww8/1LBhw7RixQq1bt36ste7//779dZbb6lHjx564okn9MQTT1z2eseOHdNHH310Sb758+fr0Ucf1YABAySV7HD6ZddTbGys2rRpowEDBiglJcXxNenp6Y7ZTyEhIaVO/fvFrFmzLpsjJiZGu3fvvuznCgoK9PHHH+v22293/Ky2bt1aqmCaO3euhgwZctnT8gAAQM1EwQQAAGqMNWvWKC4uTkFBQZozZ452796tbt26OT5/zz33aOfOnTp48KCSk5M1fPhwhYSE6NZbb1VUVJTuuuuuy95u69atFRcXp+XLl6t79+5XvP+3335bubm5Gjt2rOPYfffdpwULFuj//u//HMc6dOig7777znF50qRJl9zWnj17NH78eHl6esput1+x1LpW7u7uuv766/Xvf//bsZOpfv36GjFihKSSd6+bO3eu493uAAAAJMliv9zLXQAAANXQ9OnT9eqrr+r8+fOKiYnRQw89pJ49e5odCwAAwOVRMAEAAAAAAMAQhnwDAAAAAADAEAomAAAAAAAAGELBBAAAAAAAAEMomAAAAAAAAGAIBRMAAAAAAAAMoWACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIb8fxzqA03KlXkqAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0546f2f3-4732-4841-8ef3-565fbf6b9961",
+   "metadata": {},
+   "source": [
+    "This distribution is peaked at low luminosity, as one expects from observations, but the resolution is clearly not great because it's not smooth - it's spiky! \n",
+    "\n",
+    "If you noticed above, the total probability of the grid was about 0.2. Given that the total probability of a probability distribution function should be 1.0, this shows that our sampling is (very) poor. \n",
+    "\n",
+    "We could simply increase the resolution to compensate, but this is very CPU intensive and a complete waste of time and resources. Instead, let's try sampling the masses of the stars in a smarter way."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "673031c9-7d80-45d4-b209-301c127d3edf",
+   "metadata": {},
+   "source": [
+    "# A better-sampled grid\n",
+    "\n",
+    "The IMF has many more low-mass stars than high-mass stars. So, instead of sampling M1 linearly, we can sample it in log space. \n",
+    "\n",
+    "To do this we first rename the mass grid variable so that it is clear we are working in (natural) logarithmic phase space."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "5956f746-e3b9-4912-b75f-8eb0af66d3f6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Rename the old variable (M_1) because we want it to be called lnM_1 now\n",
+    "population.rename_grid_variable(\"M_1\",\"lnM_1\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "532f691c-c1f6-46cc-84f2-970ec1216e40",
+   "metadata": {},
+   "source": [
+    "Next, we change the spacing function so that it works in the log space. We also adapt the probability calculation so that it calculates dprob/dlnM = M * dprob/dM. Finally, we set the precode to compute M_1 because binary_c requires the actual mass, not the logarithm of the mass."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "108d470a-bb21-40b0-8387-2caa7ab0f923",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# update the sampling, note that the IMF is dprob/dM1, and the phase \n",
+    "# space is now sampled in lnM1, so we multiply by M_1 to \n",
+    "# because  M * dprob/dM = dprob/dlnM\n",
+    "population.update_grid_variable(\n",
+    "    name=\"lnM_1\",\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    dphasevol=\"dlnM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    precode=\"M_1=math.exp(lnM_1)\",\n",
+    ")\n",
+    "# print(population.grid_options[\"_grid_variables\"]) # debugging"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "fb8db646-f3d0-4ccd-81ba-7fde23f29c79",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.9956307907476224\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Population-83f80d829dbd418aa2bc745c99b71991 finished! The total probability was: 0.9956307907476224. It took a total of 0.9961590766906738s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(0.25, 0.0212294), (2.75, 0.00321118), (-0.25, 0.0268827), (1.25, 0.0104553), (3.75, 0.00283037), (6.25, 7.34708e-05), (-0.75, 0.0771478), (0.75, 0.030004499999999996), (2.25, 0.00921541), (3.25, 0.0045385), (1.75, 0.014776889999999999), (4.25, 0.002380189), (4.75, 0.000869303), (5.25, 0.0007310379999999999), (5.75, 0.00036002859999999996), (-2.75, 0.1961345), (-1.75, 0.2181597), (-3.25, 0.0), (-2.25, 0.2568974), (-1.25, 0.11973310000000001)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "182b1094-5057-4ccf-bac6-9b0e560ad4f6",
+   "metadata": {},
+   "source": [
+    "You should see that the total probability is very close to 1.0, as you would expect for a well-sampled grid. The total will never be exactly 1.0, but that is because we are running a simulation, not a perfect copy of reality."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "68ee1e56-21e5-48f4-b74c-50e48685ae94",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAB37ElEQVR4nOzdd3iV9f3/8dcZ2XtPstkhrLD3ElkyREGtA+vA0eHXqq1SRa221rb+2lpx1C3WVYaAKEtUlpAwE0YgJJCQkAGEEFbW+f2BpqUKAZJz7pOc5+O6uC7PneTcrxy8Q/LK5/O+TTabzSYAAAAAAADgCpmNDgAAAAAAAICWjYIJAAAAAAAATULBBAAAAAAAgCahYAIAAAAAAECTUDABAAAAAACgSSiYAAAAAAAA0CQUTAAAAAAAAGgSq9EB7OnYsZOqr7fZ9RwhIb46cqTKrucAnBnXAMB1AHANwNVxDcDVcQ24DrPZpKAgnx99W6sumOrrbXYvmL4/D+DKuAYArgOAawCujmsAro5rAGyRAwAAAAAAQJNQMAEAAAAAAKBJWvUWOQAAAAAAHKmurlbHjpWptrba6CgOU1pqVn19vdEx0IysVncFBYXJYrn02oiCCQAAAACAZnLsWJk8Pb3l4xMpk8lkdByHsFrNqq2lYGotbDabTp6s1LFjZQoNjbrkj2OLHAAAAAAAzaS2tlo+Pv4uUy6h9TGZTPLx8b/sVXgUTAAAAAAANCPKJbR0V/L/MAUTAAAAAAAAmoSCCQAAAACAVmjbti267bYbz/szeHBvffHFZw3v8+9/f6ihQ/vqyJHy8z524MB0/d//3X/esYqKCg0Z0kevv/6KJOnw4cN6+OEHdNNN1+vmm6/Xb3/7ax07dvQHOV5//ZWGj2mKf/7zZa1Z81WTn+d7CxZ8ogULPpEkPfvskzp8uPiKnuf+++/S5s0Z2r17p/7wh6cv+H5FRYf0+98/1WiWgQPTL+v8a9Z8rQ8+eO8Hz+NoDPkGAAAAAKAV6tq1u9566/2Gxx9+OFeff75EQ4eOaDi2ZMkiDRw4RIsXL9Stt/70vI8vKChQZWWl/P39JUmrV6+Un59/w9uff/5ZXX31WI0ZM1a1tfV699039fzzv9ezzz5vl8/njjtmNuvzTZo0teG/N2/O0IwZdzbp+Tp06KRf/7rTBd9++HCxDh0qbDTL5dqzZ1ezPE9TUTABAAAAANDKbdu2Re+884ZeffVteXh4SJL27durysrjevjhxzRr1sO6+eYZMpv/s9Fp4MDB+uab1Ro37hpJ5wqmwYOHNrz96NFynT17puHxtdder127dl40x8CB6VqzJkOS9Nlni7RlS6Yee2y2pk6doOHDR2ndujWyWCy6++779MEH76mwsED33fdLjRgxSs88M1vdu/dU9+499eijv1JSUrJycvYoODhETz/9B/n7B2jt2m/02mtzZLPVKzo6Rg899KiCg0P04ov/T5s2fSuLxayBA4fo9tvvalhV5e7uofLyMj300C90xx0z9cEHc/Xyy29IkpYuXazs7B361a9+0/A5VFdX67nnntbu3bsUGRmt48crJJ0rqd5441W9+OKr+uCD97R06RKZzSZ17NhZDz/8mP761z+pqOiQ/vzn5zRs2AjNmfM31dXVKykpWVFR0ZKkn/70bknSc889o127shUQEKjf/OZxRUZG6v7779Ltt9+lHj3SVVxcpJ/97G49//xftXDhPElSZGRUwyqsn/707gu+FlOnTtDo0WO1ceN6nT59RrNmPakOHTpe8v9LF0LBBAAAAACAHazdUaw1269s21VjBqZFaUCXS7uF/LFjRzV79mN65JHfKiYmtuH4Z599quHDR6pDh46yWCz69tt16tdvYMPbhw8fqXfeeUPjxl2jI0fKZbNJISGhDW+/++779dRTv9Xrr7+qnj17qW/f/ho+fNQVf06hoWF6772P9OyzT+q9997S3/72snbs2Ka//e3PGjHi/Ofdt2+vfvObx9WuXQc99thDWrZsqUaMuErPP/+s5sx5XVFR0Xr//Xf0l7/8Ufff/0tt2LBO7733kc6ePavnnvudzp492/BcN998mxYu/Leef/6vioyM0j/+8TcdOlSomJhYLV26WHffff5WwU8++VCSNHfuJyooOKhbb73hvLfX1tbqvffe0oIFn8tsNusvf3lOZWWl+sUvfqU33nhVDz74iDZvzlBBwUF98sli+fr6/mALYffuPfTII49p3ryP9de//km///2ffvQ1S0xM0sSJUyRJ48Zd0/A8x44d/dHX4ne/e06SFBAQoNdee0effPKB3n33DT3zTNNXnTGDCQAAAACAVqq+vl6zZ8/SyJGjz1t9VFtbq2XLPtfIkaMlScOHj2pYCfO91NQ0HTx4QFVVVVq9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hQsXasKECfzDApdQUlKiF154Qe+//74WLlyoDz/8UPv27TM6FuAw69at05o1azR//nwtWLBA2dnZWr58udGxAIdbv3695s+fb3QMwBAFBQV64okn9NJLL2nRokXauXOnvvrqK6NjwSAUTM3gD3/4g2677TajYwCGqK6u1i9+8Qt16NBBktS+fXsVFxcbnAqwv3Xr1qlv374KDAyUt7e3Ro8erc8//9zoWIDDhIWF6de//rXc3d3l5uam5ORkFRUVGR0LcKiKigq98MILmjlzptFRAEMsX75cY8eOVWRkpNzc3PTCCy+oa9euRseCQSiYmmjlypU6c+aMrr76aqOjAIZwd3fXxIkTJUn19fV68cUXNXLkSINTAfZXWlqqsLCwhsfh4eEqKSkxMBHgWG3btlW3bt0kSfn5+frss880ZMgQY0MBDvb444/rgQcekL+/v9FRAEMcOHBAdXV1+ulPf6prrrlG77//vgICAoyOBYNYjQ7QUixdulS///3vzzuWlJSkqqoqvfXWW8aEAhzsQtfBW2+9perqav36179WbW2t7r77boMSAo5js9l+cMxkMhmQBDDW3r17dffdd+uRRx5RQkKC0XEAh/n4448VFRWlfv36ad68eUbHAQxRV1enjIwMvfvuu/L29ta9996r+fPna8qUKUZHgwEomC7RmDFjNGbMmPOOffzxx3rllVd00003NRybOHGi5s6dK19fX0dHBOzux64DSTp58qTuueceBQYGas6cOXJzczMgHeBYERERysjIaHhcWlqq8PBwAxMBjpeZmamf//znevTRRzVu3Dij4wAO9dlnn6msrEwTJ07U8ePHderUKT377LN69NFHjY4GOExoaKj69eun4OBgSdKIESO0fft2CiYXZbL92K9gcUXat2+vPXv2GB0DcLh7771XISEheuqpp1jBAZdRUlKiG264QZ988om8vLw0ffp0Pf3000pLSzM6GuAQxcXFmjx5sl544QX169fP6DiAoebNm6eNGzfqD3/4g9FRAIfatm2bHnnkEX300Ufy8fHRfffdpxEjRui6664zOhoMwAomAE2yc+dOrVy5UikpKZo0aZKkc7NoXnvtNWODAXYWERGhBx54QLfccotqamo0depUyiW4lNdff11nz5497wfq6dOn64YbbjAwFQDAkbp27ao77rhDN954o2pqajRgwABde+21RseCQVjBBAAAAAAAgCbhLnIAAAAAAABoEgomAAAAAAAANAkFEwAAAAAAAJqEggkAAAAAAABNQsEEAAAAAACAJqFgAgAAAAAAQJNQMAEAAAAAAKBJKJgAAECLN3z4cK1bt87oGAAAAC6LggkAAKCZHT16VO3bt1dJSYnRUQAAAByCggkAAKAZ/OlPf9I333wjSdq9e7eCg4MVERFhcKpzfv7znysnJ6fhcWFhobp3735Fz3Xy5EndcccdOnPmTHPFAwAArQAFEwAAaFVyc3N18803Kz09XePGjdPKlSsb3padna1Jkyape/fu+vnPf65f/vKXeuGFF5p8zq1bt2rfvn0aNGiQJGnXrl3q0KFDk5+3OVRXV+vAgQNq165dszyfj4+Pxo8fr7/+9a/N8nwAAKB1oGACAACtRk1NjWbOnKkBAwZo3bp1mjVrln71q19p//79qq6u1v3336/Jkydr48aNGj9+vFasWNEs5/373/+uadOmNTx2poJp3bp16tevX7M+55gxY7Ro0SKVl5c36/MCAICWi4IJAAC0Gtu2bdOpU6d01113yd3dXf369dOwYcO0ZMkSbdu2TbW1tbrlllvk5uamq666Sl26dGn42BMnTmjq1Knq3r37edvJnn/+ed1444166KGHVFNT84NzVlZWKjMzUwMGDGg4tnv3bnXs2PEH7/vhhx/q5ptvbviTlpam7du3N7x9+vTpevHFFyWd28bWvn17bdiwQdK5lUi9evXSe++9J0mqqqrSzJkzdfPNN2vatGn66quvfvQ1WblypUaOHHk5L2OjPDw81KNHjwueEwAAuB6r0QEAAACaS2lpqSIjI2U2/+d3aNHR0SopKVFpaakiIiJkMpka3hYVFdXw356ennr11Vf1xz/+seHY7t27VVJSovfff19z5szRF198ofHjx593zgMHDigsLEzu7u6SpLNnzyovL0+dOnX6Qb5p06Y1rHRatWqV5s+fr7S0NElScXGxIiIitHHjxob3T01N1fLly9W3b1+tX79e8fHxDW9buHChBg0apJtuukk2m00nTpz4wfnq6+u1detWzZ49+5Jev++VlJTonXfeUW1trWw2mzp27KjJkyef9z5xcXHKy8u7rOcFAACtFyuYAABAqxEeHq7Dhw+rvr6+4dj3xU1YWJhKSkpks9nOe9v33NzcFBwcfN7zbd68WQMHDpQkDRo0SJs3b/7BOc1ms+rq6hoe5+TkyGq1KjEx8YI5jx49qr/+9a968sknG4598cUXmjBhgpKSkpSbmytJiomJUVFRkWw2m5YvX67/3979hTT1xnEc/8icduEWsm4EhcbYXY02Mb1xLgMxMRpSDLoRjC5cUIhXioy6EgQvRKQJQRHeCEFtDiYxhgwZ9Af6IyIrqJtGXYSQRGN/yt+FdH6szfjFLn6k7xcc2HnO9zznOefys+c8p6+vz6hvbGzUy5cv9fnzZ9XV1clqtVZc59WrVzpx4oRMJtO+Y/nVjx8/FI1GNTY2pomJCU1OTsrhcGhtba2s7vv373/ULwAAONgImAAAwIHhcrl05MgR3blzR8ViUU+ePFEymdTAwIBOnTolk8mkpaUllUolJRIJbWxs/La/nZ0dNTU1SZIsFou+fPlSUdPW1qbt7W3l83lJe7OeHA6HSqWS8vm88vm8CoVC2Tk3b97UjRs3ygKt9fV1eb1eDQ4OanV11Wh3u9169uyZtre3dezYMaP9woULstvtunLligKBgN69e1cxtkQiobNnz/6HJ/ev169fy+/3q76+XvF4XNlsVi6XS7lcrqzuw4cPvw3RAADA4ULABAAADoyGhgaFw2GlUil1dXXp1q1bmpmZkcPhUENDg+bn5/XgwQN1dHQoGo3K5/MZr7ZVY7FY9PXrV0l7azQdPXq0osZqtaq9vd1YK2lra0ubm5tyuVzGNjAwYNQ/evRIFotFvb29RtunT5/09u1bjY6O6vbt22VrG/X19Wl6elqnT58uu67ZbFYwGFQkEtH169c1Pz9fMbZ0Om3MwPrVt2/f5Ha7y7ZMJiOTyWTMAAuHw3r+/Lkklc1WKhQKevHiRdk9AACAw401mAAAwF8vmUwav51Op7EQ9q9OnjypSCRi7F+6dElnzpzZt1+Px6O7d+/K7/drfX1dHo+nat21a9cUDofV09OjUCikUChUte7jx4+6d+9exfhWV1c1MTGh/v5+SXsznH7Oejp+/Lja29vV39+vdDptnJPNZo21n2w2W9mrfz89fPiw6jhaW1uVyWSqHisWi7p//76Gh4eNZ7WxsVEWMMViMZ0/f77qa3kAAOBwImACAACHxtOnT2W329Xc3KyVlRVlMhl1d3cbx69evaqtrS29f/9egUBAQ0NDstlsunz5slpaWjQyMlK1X4/HI7vdrlQqJa/Xu+/1FxcXtbOzo9HRUaMtGAzq8ePHWlhYMNo6OzsVj8eN/ampqYq+3rx5o7GxMTU2Nmp3d3ffUOtPmc1mnTt3TrOzs8ZMJqfTqYsXL0ra+3pdLBYzvnYHAAAgSXW71f7uAgAAOICWl5c1NzenXC6n1tZWjY+Py+fz/d/DAgAA+OsRMAEAAAAAAKAmLPINAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABqQsAEAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABq8g/wlbD9p3152QAAAABJRU5ErkJggg==\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "31fe91bb-177d-4e4e-90cf-298a3f8a8b61",
+   "metadata": {},
+   "source": [
+    "Most stars are low mass red dwarfs, with small luminosities. Without the IMF weighting, our model population would have got this completely wrong! \n",
+    "\n",
+    "As you increase the resolution, you will see this curve becomes even smoother. The wiggles in the curve are (usually) sampling artefacts because the curve should monotonically brighten above about log(*L*/L<sub>☉</sub>)=-2. \n",
+    " \n",
+    "Remember you can play with the binwidth too. If you want a very accurate distribution you need a narrow binwidth, but then you'll also need high resolution (lots of stars) so lots of CPU time, hence cost, CO<sub>2</sub>, etc."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_20_1.png b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_20_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..8895750e8fce660f5b0b948fe506a414af7a4517
GIT binary patch
literal 25029
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

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_26_1.png b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_26_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc990e6c4cb03cb8f70d8d5355c9f765558752b2
GIT binary patch
literal 23856
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
Bq80!E

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_34_0.png b/docs/build/doctrees/nbsphinx/notebook_luminosity_function_single_34_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..980e3e44d1aa73fd9907fbe0a6cf485ba5ef811c
GIT binary patch
literal 30847
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
b8(H-|;KfX|vjbt=Qxp|c{!ZL)c<p}xLVAz{

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/nbsphinx/notebook_population.ipynb b/docs/build/doctrees/nbsphinx/notebook_population.ipynb
index b6a37baa8..f6f27ee43 100644
--- a/docs/build/doctrees/nbsphinx/notebook_population.ipynb
+++ b/docs/build/doctrees/nbsphinx/notebook_population.ipynb
@@ -23,9 +23,12 @@
    "outputs": [],
    "source": [
     "import os\n",
+    "\n",
     "from binarycpython.utils.custom_logging_functions import temp_dir\n",
     "from binarycpython.utils.grid import Population\n",
     "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n",
+    "\n",
     "# help(Population) # Uncomment to see the public functions of this object"
    ]
   },
@@ -60,7 +63,8 @@
       "adding: max_evolution_time=15000 to BSE_options\n",
       "adding: eccentricity=0.02 to BSE_options\n",
       "adding: amt_cores=2 to grid_options\n",
-      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/example_python_population_result to custom_options >>>>\n",
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_population to grid_options\n",
+      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/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",
@@ -88,11 +92,12 @@
     "\n",
     "\n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "    \n",
     "    # Custom options # TODO: need to be set in grid_options probably\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -133,13 +138,13 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Writing settings to /tmp/binary_c_python/example_python_population_result/example_pop_settings.json\n"
+      "Writing settings to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n"
      ]
     },
     {
      "data": {
       "text/plain": [
-       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+       "'/tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'"
       ]
      },
      "execution_count": 3,
@@ -181,7 +186,7 @@
      "text": [
       "Help on method add_grid_variable in module binarycpython.utils.grid:\n",
       "\n",
-      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='edge', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> None method of binarycpython.utils.grid.Population instance\n",
+      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='centred', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> 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",
@@ -199,25 +204,25 @@
       "        name:\n",
       "            name of parameter. This is evaluated as a parameter and you can use it throughout\n",
       "            the rest of the function\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                name = 'lnm1'\n",
       "        longname:\n",
       "            Long name of parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                longname = 'Primary mass'\n",
       "        range:\n",
       "            Range of values to take. Does not get used really, the spacingfunction is used to\n",
       "            get the values from\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                range = [math.log(m_min), math.log(m_max)]\n",
       "        resolution:\n",
       "            Resolution of the sampled range (amount of samples).\n",
       "            TODO: check if this is used anywhere\n",
       "    \n",
-      "            Examples: \n",
+      "            Examples:\n",
       "                resolution = resolution[\"M_1\"]\n",
       "        spacingfunction:\n",
       "            Function determining how the range is sampled. You can either use a real function,\n",
@@ -230,12 +235,12 @@
       "        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",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                precode = 'M_1=math.exp(lnm1);'\n",
       "        probdist:\n",
       "            Function determining the probability that gets assigned to the sampled parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                probdist = 'Kroupa2001(M_1)*M_1'\n",
       "        dphasevol:\n",
@@ -249,7 +254,7 @@
       "                condition = 'self.grid_options['binary']==1'\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 'center'\n",
+      "            the lower edge of the value range) or 'centred'\n",
       "            (steps starting at lower edge + 0.5 * stepsize).\n",
       "\n"
      ]
@@ -313,7 +318,7 @@
       "    \"dphasevol\": \"dlnm1\",\n",
       "    \"parameter_name\": \"M_1\",\n",
       "    \"condition\": \"\",\n",
-      "    \"gridtype\": \"edge\",\n",
+      "    \"gridtype\": \"centred\",\n",
       "    \"branchpoint\": 0,\n",
       "    \"grid_variable_number\": 0\n",
       "}\n"
@@ -457,7 +462,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "adding: parse_function=<function parse_function at 0x7ff3bdf79620> to grid_options\n"
+      "adding: parse_function=<function parse_function at 0x7f531bc3b6a8> to grid_options\n"
      ]
     }
    ],
@@ -536,25 +541,25 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
-      "EXAMPLE_COMPACT_OBJECT             2.867655467480e+01 1.33079 9.81391 0.00167028 13\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "EXAMPLE_COMPACT_OBJECT             1.931266944719e+01 1.3933 12.3177 0.00124307 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.439623364590e+01 1.38004 7.81906 0.00224431 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.364277535630e+01 1.47961 15.4603 0.000925128 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.017435498578e+01 1.59052 19.4046 0.000688507 13\n",
-      "EXAMPLE_COMPACT_OBJECT             8.294870923827e+00 1.7197 24.3552 0.000512406 13\n",
-      "EXAMPLE_COMPACT_OBJECT             6.802132608769e+00 1.84162 30.5689 0.000381347 13\n",
-      "EXAMPLE_COMPACT_OBJECT             5.723570798020e+00 1.99471 38.3678 0.00028381 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.933751523833e+00 2.15875 48.1564 0.000211219 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.337250536639e+00 2.35209 60.4424 0.000157195 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.862081089332e+00 2.56776 75.8628 0.000116989 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.449960890183e+00 2.80457 95.2174 8.70668e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.172196856333e+00 3.05193 119.51 6.47976e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.069627290216e+00 3.27563 150 4.82242e-05 14\n",
-      "Population-2a7732d03e594ef4b5dfe9051b41d9c0 finished! The total probability was: 0.05150046619238191. It took a total of 0.7797017097473145s to run 20 systems on 2 cores\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.450828476484e+00 1.81563 134.653 5.27143e-05 13\n",
+      "Population-f28b5f98d7ef40dcb17fc2481a6d3ced finished! The total probability was: 0.04440288843805411. It took a total of 2.785212755203247s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n"
      ]
     }
@@ -586,7 +591,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "{'population_name': '2a7732d03e594ef4b5dfe9051b41d9c0', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.05150046619238191, 'total_count': 20, 'start_timestamp': 1628444120.234709, 'end_timestamp': 1628444121.0144107, 'total_mass_run': 730.1048014407228, 'total_probability_weighted_mass_run': 0.2983275843337705, 'zero_prob_stars_skipped': 0}\n"
+      "{'population_name': 'f28b5f98d7ef40dcb17fc2481a6d3ced', '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': 1629459533.935186, 'end_timestamp': 1629459536.7203987, 'total_mass_run': 684.2544031669779, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n"
      ]
     }
    ],
@@ -660,42 +665,22 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Saving grid code to grid_options\n",
-      "Writing grid code to /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
-      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
+      "Writing grid code to /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
+      "Loading grid code function from /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
       "Grid code loaded\n",
-      "Writing binary_c calls to /tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
+      "Writing binary_c calls to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
-      "/tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "binary_c M_1 2.0 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.013208238029791246\n",
-      "binary_c M_1 2.5102526289471614 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.009829948023831718\n",
-      "binary_c M_1 3.1506841305680684 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.0073157281034221516\n",
-      "binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.005444573822104362\n"
+      "with a total probability of 0.044402888438054094\n",
+      "/tmp/binary_c_python/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.21587440567681548 probability 0.008236638755149857\n",
+      "binary_c M_1 3.4309362899259503 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.006221155214163634\n",
+      "binary_c M_1 4.257608426597089 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.004698855121516278\n"
      ]
     }
    ],
    "source": [
-    "example_pop.set(verbosity=10)\n",
+    "example_pop.set(verbosity=1)\n",
     "calls_filename = example_pop.write_binary_c_calls_to_file()\n",
     "print(calls_filename)\n",
     "\n",
@@ -725,39 +710,34 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "Population-3680f3882c0a449c944462abffea2447 finished! The total probability was: 0.05150046619238191. It took a total of 0.6246354579925537s to run 20 systems on 2 cores\n",
+      "Population-e45c25448b32440cb7e220f4a3562907 finished! The total probability was: 0.04440288843805411. It took a total of 1.9539172649383545s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n",
       "\n",
       "\n",
       "time mass zams_mass probability radius stellar_type\n",
-      "2.867655467480e+01 1.33079 9.81391 0.00167028 1.72498e-05 13\n",
-      "1.931266944719e+01 1.3933 12.3177 0.00124307 1.72498e-05 13\n",
-      "4.439623364590e+01 1.38004 7.81906 0.00224431 1.72498e-05 13\n",
-      "1.364277535630e+01 1.47961 15.4603 0.000925128 1.72498e-05 13\n",
-      "1.017435498578e+01 1.59052 19.4046 0.000688507 1.72498e-05 13\n",
-      "8.294870923827e+00 1.7197 24.3552 0.000512406 1.72498e-05 13\n",
-      "6.802132608769e+00 1.84162 30.5689 0.000381347 1.72498e-05 13\n",
-      "5.723570798020e+00 1.99471 38.3678 0.00028381 1.72498e-05 13\n",
-      "4.933751523833e+00 2.15875 48.1564 0.000211219 1.72498e-05 13\n",
-      "4.337250536639e+00 2.35209 60.4424 0.000157195 9.97286e-06 14\n",
-      "3.862081089332e+00 2.56776 75.8628 0.000116989 1.08873e-05 14\n",
-      "3.449960890183e+00 2.80457 95.2174 8.70668e-05 1.18914e-05 14\n",
-      "3.172196856333e+00 3.05193 119.51 6.47976e-05 1.29402e-05 14\n",
-      "3.069627290216e+00 3.27563 150 4.82242e-05 1.38887e-05 14\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.450828476484e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -817,11 +797,12 @@
     "    eccentricity=0.02,  # bse_options\n",
     "    \n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -876,15 +857,15 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
@@ -912,96 +893,39 @@
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Grid has handled 125 stars\n",
-      "with a total probability of 0.0862478164626921\n",
-      "Total starcount for this run will be: 125\n",
+      "Grid has handled 27 stars\n",
+      "with a total probability of 0.024868380796643753\n",
+      "Total starcount for this run will be: 27\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Population-d20a4c74d20a43b881c0c9e5def5f76c finished! The total probability was: 0.08624781646269201. It took a total of 8.561265707015991s to run 125 systems on 2 cores\n",
+      "Population-05128ef4c5fe4274a0356c3e99e2f2d2 finished! The total probability was: 0.024868380796643757. It took a total of 9.792905807495117s to run 27 systems on 2 cores\n",
       "There were no errors found in this run.\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",
-      "8.863377990313e+01 1.29444 5.88566 0 2.99283 13 5 15 15 0.02 0.000627913\n",
-      "1.146421815741e+02 0 5.88566 1.33062 4.43925 15 15 13 5 0.02 0.000627913\n",
-      "7.222715508467e+01 1.34922 5.88566 0 5.88566 13 5 15 15 0.02 0.000627913\n",
-      "1.350021848285e+01 1.48488 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171108213270e+01 1.53113 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171086983243e+01 1.53177 17.3205 0 0.1 13 9 15 15 0.02 0.000154349\n",
-      "1.170770599495e+01 1.53176 17.3205 0 4.40513 13 5 15 15 0.02 0.000172877\n",
-      "1.230407246199e+01 1.59499 17.3205 0 4.40513 13 5 15 15 0.02 0.000610573\n",
-      "1.108751340926e+01 1.70319 17.3205 0 8.71025 13 4 15 15 0.02 0.000610573\n",
-      "1.941017702765e+01 1.34903 17.3205 1.65097 8.71025 13 13 13 5 0.02 0.000172877\n",
-      "1.980988739731e+01 1.36979 17.3205 1.60808 8.71025 13 13 13 5 0.02 0.000121486\n",
-      "3.571858031651e+01 1.53174 17.3205 1.30504 8.71025 13 13 13 5 0.02 8.42148e-05\n",
-      "3.459153942631e+01 1.53176 17.3205 1.31004 8.71025 13 13 13 5 0.02 9.8162e-05\n",
-      "1.687368550125e+01 1.34937 17.3205 1.73856 13.0154 13 13 13 8 0.02 0.000172877\n",
-      "1.194842917007e+01 1.78096 17.3205 0 13.0154 13 8 15 15 0.02 0.000610573\n",
-      "1.733614170983e+01 1.53184 17.3205 1.42375 13.0154 13 13 13 5 0.02 9.8162e-05\n",
-      "1.723547465714e+01 1.38403 17.3205 1.71288 13.0154 13 13 13 8 0.02 0.000121486\n",
-      "1.764340254985e+01 1.53174 17.3205 1.41264 13.0154 13 13 13 5 0.02 8.42148e-05\n",
-      "1.170425790780e+01 1.52963 17.3205 0 17.3205 13 5 15 15 0.02 0.000172877\n",
-      "8.922967341481e+00 1.85486 17.3205 0 17.3205 13 8 15 15 0.02 0.000610573\n",
-      "1.232906623449e+01 1.41074 17.3205 1.34281 17.3205 13 13 13 8 0.02 0.000121486\n",
-      "1.170775828562e+01 1.53183 17.3205 1.53183 17.3205 13 5 13 5 0.02 9.8162e-05\n",
-      "1.170770422321e+01 1.53175 17.3205 1.53175 17.3205 13 5 13 5 0.02 8.42148e-05\n",
-      "5.075844624794e+00 2.12303 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.766606588165e+00 2.20484 50.9713 0 0.1 14 8 15 15 0.02 3.79411e-05\n",
-      "4.768305081494e+00 2.18838 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.458869865939e+00 2.29864 50.9713 0 12.8178 14 8 15 15 0.02 0.000150087\n",
-      "1.806014211040e+01 2.10446 50.9713 1.40749 12.8178 13 13 13 5 0.02 2.9863e-05\n",
-      "4.797342083485e+00 2.10328 50.9713 0 12.8178 13 13 15 1 0.02 4.24954e-05\n",
-      "1.721374713429e+01 2.21673 50.9713 1.42212 12.8178 14 14 13 5 0.02 2.41295e-05\n",
-      "4.055645404546e+00 2.47276 50.9713 0 25.5357 14 7 15 15 0.02 0.000150087\n",
-      "1.806123543037e+01 2.21893 50.9713 1.40745 12.8178 14 14 13 5 0.02 2.07011e-05\n",
-      "8.117519147635e+00 2.10433 50.9713 2.21473 25.5357 13 13 14 8 0.02 4.24954e-05\n",
-      "8.315554923168e+00 2.15343 50.9713 2.08519 25.5357 13 13 13 8 0.02 2.9863e-05\n",
-      "7.917420996633e+00 2.21892 50.9713 1.7431 25.5357 14 14 13 8 0.02 2.07011e-05\n",
-      "7.693213405973e+00 2.21805 50.9713 1.78384 25.5357 14 14 13 8 0.02 2.41295e-05\n",
-      "3.753837732894e+00 2.62517 50.9713 0 38.2535 14 7 15 15 0.02 0.000150087\n",
-      "7.087296558990e+00 2.10417 50.9713 2.40935 38.2535 13 13 14 8 0.02 4.24954e-05\n",
-      "7.007109286263e+00 2.15854 50.9713 2.28672 38.2535 13 13 14 8 0.02 2.9863e-05\n",
-      "5.653200958306e+00 2.21878 50.9713 2.0587 38.2535 14 14 13 8 0.02 2.41295e-05\n",
-      "5.733794947644e+00 2.21892 50.9713 1.99255 38.2535 14 14 13 8 0.02 2.07011e-05\n",
-      "3.513216011269e+00 2.76647 50.9713 0 50.9713 14 7 15 15 0.02 0.000150087\n",
-      "4.750574783854e+00 2.27442 50.9713 0 50.9713 14 8 15 15 0.02 4.24954e-05\n",
-      "7.278384712062e+00 1.29678 50.9713 2.09216 50.9713 13 8 13 13 0.02 2.9863e-05\n",
-      "4.765996194699e+00 2.20787 50.9713 2.20787 50.9713 14 8 14 8 0.02 2.07011e-05\n",
-      "4.765535914728e+00 2.21331 50.9713 2.21331 50.9713 14 8 14 8 0.02 2.41295e-05\n",
-      "3.104706358826e+00 3.17639 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.069363482023e+00 3.27572 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.047074050271e+00 3.3836 150 0 37.575 14 7 15 15 0.02 3.68933e-05\n",
-      "5.974759306305e+00 3.23604 150 2.53922 37.575 14 14 14 7 0.02 1.04459e-05\n",
-      "6.074084349384e+00 3.30145 150 2.13876 37.575 14 14 13 8 0.02 7.34071e-06\n",
-      "5.733865371895e+00 3.29994 150 2.00498 37.575 14 14 13 8 0.02 5.93135e-06\n",
-      "3.027099358410e+00 3.53631 150 0 75.05 14 7 15 15 0.02 3.68933e-05\n",
-      "5.807147339697e+00 3.30197 150 1.9791 37.575 14 14 13 8 0.02 5.08861e-06\n",
-      "4.862942347290e+00 3.25294 150 2.97823 75.05 14 14 14 7 0.02 1.04459e-05\n",
-      "4.556479830908e+00 3.29942 150 2.73221 75.05 14 14 14 7 0.02 7.34071e-06\n",
-      "3.853070305680e+00 3.29977 150 2.62486 75.05 14 14 14 7 0.02 5.93135e-06\n",
-      "3.881529045940e+00 3.30149 150 2.55924 75.05 14 14 14 7 0.02 5.08861e-06\n",
-      "3.015033359333e+00 3.64419 150 0 112.525 14 7 15 15 0.02 3.68933e-05\n",
-      "4.126828648362e+00 3.32047 150 0 112.525 14 14 15 3 0.02 1.04459e-05\n",
-      "3.990017992944e+00 3.3032 150 2.94027 112.525 14 14 14 7 0.02 7.34071e-06\n",
-      "3.206771867883e+00 3.07671 150 3.11282 112.525 14 14 14 7 0.02 5.93135e-06\n",
-      "3.006827156705e+00 3.72638 150 0 150 14 7 15 15 0.02 3.68933e-05\n",
-      "3.218786094847e+00 3.30337 150 3.01344 112.525 14 14 14 7 0.02 5.08861e-06\n",
-      "4.527722847382e+00 1.42238 150 0 150 13 5 15 15 0.02 1.04459e-05\n",
-      "3.069567332611e+00 3.27804 150 3.27804 150 14 7 14 7 0.02 5.93135e-06\n",
-      "5.726405299909e+00 1.29746 150 3.22759 150 13 8 14 14 0.02 7.34071e-06\n",
-      "3.069626478211e+00 3.27565 150 3.27565 150 14 7 14 7 0.02 5.08861e-06\n",
+      "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n",
+      "1.935920346899e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n",
+      "2.123795595728e+01 1.30902 17.3205 1.58519 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.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n",
+      "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n",
+      "1.772169325356e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n",
+      "1.367065500196e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-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",
+      "4.227002356107e+00 2.43719 73.0434 0 60.8862 14 14 15 1 0.02 7.67586e-05\n",
+      "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n",
+      "7.394728392218e+00 1.80919 73.0434 1.79091 60.8862 13 13 13 8 0.02 4.43422e-05\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -1067,10 +991,11 @@
     "    \n",
     "    # grid_options\n",
     "    amt_cores=2,  # grid_options\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -1168,14 +1093,14 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
diff --git a/docs/build/doctrees/notebook_api_functionality.doctree b/docs/build/doctrees/notebook_api_functionality.doctree
index d13dc561967683b55c3d7d9fa7e91bc39cca513f..890f5ccb12977bd94483fecef8e7c6d2aec58e81 100644
GIT binary patch
delta 14628
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

delta 4735
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
b;7<W~UOUna_kcWYg^z5=oDucG(@XvdcL-{m

diff --git a/docs/build/doctrees/notebook_custom_logging.doctree b/docs/build/doctrees/notebook_custom_logging.doctree
index 9e84119cc3983c0cb2d071608c44147ef25ddab1..77f56e2c4e43522a91280b0629d7edbf60601b04 100644
GIT binary patch
delta 2571
zcmds3TTC2f6rNdjVOVR~LXidt%<ifMh1vf)mj*3OOt!YNHN?v*QdSB&j`tc&N@4@8
z*l4$D;H;%FDJfbSE$IRsHQ<Y4G`<*Xt0q3llMg;NQR9>P&+byz#zeOvF?Am1eCM41
zoH^HjH~p(`^haM{#Q)~Y7Zw6X{2_l2?%kHLD|$2bU1`C%Q~t|M8%eQ@xCf)GQk<m4
zQtE!zwxS3rE0!|%1HQCLNO`f8yCd;uZx&L$SgN~!Jn*wp`Isz89WU%3yc?$XM%o!>
z1R-Kkeeh01RHj)Lw%ApwYnXD~Q1cYBeOucZHwZBd-Qq<SYnFz_v5Dxag`C=|F`Y9+
z39^j8u^_6UnV4E!(3~Y)*?apgj!Z_8Zt~)=a3L(BS{gSPqgPFdN`f6RFR4OllQ%+^
zT4`Crxzu6#BwXz8F0pI(?Q1QuYt#E$OYNH6-%@HmiGg}0zX{3zQCe<dKvCeiXxKgQ
z%!f5%3C-dqG~FE|O+on(q~2%_m>M%FgpM}vGzBn`POzz4Vo9)yHA<OoiAfhCE?9#w
z%N%S+VowMYN>jyD<$s;}^fhkH>vap+)GcuE=u`4XfFEyz@6!#1Sbs~0>2)}Tu44^_
zR;Sm=rQ3C^)*r%Xt+;_6j9~xxJO1P4k_4lV)VXLPE5k!4HE28?f#EX|IRek04#Ssc
zs^F`!Ak2>q0h->B!y_}Tf>y)FGxgASs2W1a4G?>)+S5(E){tX2zMW%*Svl;1n_zpM
z_tf(znxX0Jt?<hURaoaNIw$W~HSV0Os@gf&tBNNUQ!x&z>V+elWO(w_@C_8}OYYhC
z>SVba@c3=;$?Fz0&ORZ#aCkNv#v0;C=a?XaBC{~R++y6jsVO5EzL*U^{Ew%oN|1_4
zZm?A>enB{A+!U9-fpwj%^4E-f2@%BCDT3T~RGz=TKIyZYol6yxG}P~O`Xs4!H1kTP
z#SWx@5^KX@DqH(6O7p|{$hrl#(BJ6$&py6m&aUXoR|J*^Vz4szscegBiADWA>e`y-
znXycvR(83l;T8qPquYG73M`LPU$p{qOD!byO1QUeGfWxCr+J#_#IRE4)GP4f?#<qz
zE3C$6zYD+LQwLr1L5Q0jkUdx9&dh&aCLed7et)s7!d4_HjfP-u0l}k-ugWP{Sv2J&
zY+2gwc)EnMM_d*O=fQyYj^}VHCy$G^CY+>)hwPAOt8-Ccn>t?$;!KJ^QO+d~9q^0S
bWe+8V59b>Xbqhbvw;mey(0A_g(r)=r*>$!i

delta 3314
zcmeHJ-ES0C6yKS4+uDX^TWU9Hlij<tc3IeN@0~lJDh2!qkYX(rlU7oeEuFHiTVvUx
zqGEs=iL&ME%tA;vL9`kZ9%wTrAQ(e@!I&uEKcFwZXh?ie-;CZn+pZ3xbQ%(kVKQ^i
zx#w%n`Q6V0---EOMF0NEf^d1xf2gw2zl~}`4_fK!AuGKm&wF;U^6L;hlMUNbZEg2)
z1MD)u_LcZIHC#?ya$=uXK5pQ0$t9QUmp6<p<8tbfQ~T$wKh+3>@cq!L)kIaXu4x8V
z%+**za>6i(p_i$eAXL$iLty>(Xq?$gilVE;_&a+UmmPjhMmrq`6%#`4<iH$(c|20`
zkQMEpeqr#OoL@;us(rZYh23WNJeULj)yfjyDuWMpObP|~YPjFiC_S+==53UIOT|2n
z67%p{OW#NfoXJ;-1OJnP?7op2z7}QI8kMn~&R$*4<*v0TOZM9Rp;}=Qw!a<rYYB}i
zu<USnlg1dGNV0;R^+ym%P^w5WG7`j~L}q<Wk`3ML#0t_VPRO!~2t|r}#^-N|D=#H3
zBoDtKT!tINaR}sF=aa<wh_RGlPLj|dH?u*nzFkzd=Pa#sShu&s9-sQ5A|Si=Pg#TP
z@%O|lb#}vvtAhUQ=*rwgYWGNLBGuW=HixA7qWSzpF1a8?ku|9I>CKyCwP^l%)#2be
zs32M$&~A0qam|Vcb|Lmcj}?KmwHyWy)&rUjG1?4$)6MYK$%d*@a9Ce#f*-AB$0SgQ
zIVL@Y7KeU%Islj6taqDBjwzb1f=y5dM~aPqR?ijbAAu2!okVVJ2tN6XDER1;{f{R%
znnQ7(dRG@Bq*T?GgQ2F;R5m-D+WB1EQAlOQ#sx)kES1YSN?JyR$B8{u?(QpdW;SP*
zJ4?ncwg|vtz`^^XP=6b=C|oNJGF+ZwpWf)P@VJ-4?dYjV;okJRH@z0UuDnjK*95!!
zOi&QVMHpAw;aD^b*Yy_o=$%pF0<@lOix>%A(<Q3vlBVjIU8gWRA5=nR1L+B>V-=ET
zBirt1MUliDC1;C9gx#Yw8B>j4`6Nl@cfC>{BYev#;~|TlyO;$`zB}6Tl9&!>ZdChx
zdxkUXM4vBqz}jc6O#AaU*@>mVs+s#20nd(^6?ZkUh4by-&7mD`&OBEAdI=yPW)obS
zYK2|ze<mEVgCBlgA@thcp1W8fMB()LOF|g7&gw!Cre@bN$(OUi{&0=Y*PGeEu<gwR
yIlm_zVAy7kFg{H)M;XbS5?FJLb9*aUbDVPne%74eTz?g7fOD^K&a&0H9^rR)$Bu*m

diff --git a/docs/build/doctrees/notebook_luminosity_function_binaries.doctree b/docs/build/doctrees/notebook_luminosity_function_binaries.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..4ae3b628729370e197a3a44aab7d6644cbcc29b2
GIT binary patch
literal 130454
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
EKY#O{WB>pF

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/notebook_luminosity_function_single.doctree b/docs/build/doctrees/notebook_luminosity_function_single.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..2943f8610c7fff7599bc92bd5c4b0695eeb1c9ec
GIT binary patch
literal 72896
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
U^_bBoRVH2$kX2Hko5k$^2d~pG3;+NC

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/notebook_population.doctree b/docs/build/doctrees/notebook_population.doctree
index 8dc7f0c81bcae8dba9df8e55481ed6ade245f1cd..daa813d00a85f0ed7e860603d3e1985cccfa8027 100644
GIT binary patch
delta 18616
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
G=Ke23`sN=1

literal 154083
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
X=<$2>W1bqR2CV~9Ws=!4*h>HZAl+uP

diff --git a/docs/build/doctrees/readme_link.doctree b/docs/build/doctrees/readme_link.doctree
index fd66cbc8cbd1f29cc2332d668bdbc6c429422a30..e0d5b1779a1d966852f4d94e2b0fac30f86115b8 100644
GIT binary patch
delta 877
zcmeCV#5m&yBWnZ8RNkD8tV^_5Bf=RO7$&dQn##xpB&F0d3lvK8GV_W{5_57Ck}~rW
ziz<@~DoZl*^Ayz76pC^cQZkE6^tC2G)DoHOU}Qd-Tib>TW|&RBubohTDkLMbSfM-<
zXmfH-YGR&3Nk*zdQfX#R3eeV~)Z~)<qDmcwqSV~{GN3q$+tP~ibHU2XQuE5-YC!ry
z?o}vAOwLYBPc7C_NX$zCsmlWz12#D`FC8pal$t3H@ij;Uq!Fq|Phqlyj_n|Jo7v<o
zI_``?oB!x6V`L23yjX7v6Jyxqel2OnXJo|aq{;k7>}2V@$rhC%ofX79d4j6SWM|_>
z#@NkAjXyFo#!udEo(1G6S%fk&CT*^;v}a^YnY_a)m@#Q`g1y{iE$d>&^v(0E)0r7F
zC$rf{GNuECr!wYj{${Vs$e1@-#W9vK2dr{|V=-glWD%#8jK!1pIo)9^1KM|vWpbf_
z+T@e&f|Eb+a&La*yqlS^eDXZ^G{&;Yc~KIRWjz`gD>u*c2x4Na+5FL~fn%~lI15u6
zD@fPoxxvlMjCGq8!=Ey-)dLNC1Qwn=H&}4;eIYHz8lVYfjEz9MG&l1_yE3x10M!Vx
kfh}~1=i1yE)6K-z3KY|TiN!OvOkNNl!C1KYXS^^c0Ibb7jsO4v

delta 389
zcmXwx-7AA(7>E14@7^^@%oI@~AGKve*_+HJvr&Xh<ZEoNVk~Q{p?oyWkrr}W?GJE5
zOV)G7i4)~WA*Fnk+NmtZ%42eJ_v^a4?!+TvcaS2gIObB)kwJ*XNn01Ek0uTN){8lx
zR*Wu~Y06~HUYUILT^OL0v4maM?*fB-7PCO(hJYd3Gn5LkbN<9bhfNCp*EqeJyVRq;
zvU!(C`!&_nFK=Oj-O3qJJ;~{nNGU}}Pc1G^O_m|R%eGtFAWd^wMQ2J8JzFjCQlnf>
zvMq!ec4C_qB_G$_S#7YlV<xM2>?`myp~DC)P=mt_e-<YlAq1(yd5k5>xb^hqWa==_
zZ&b8cP)iTpTKde(WgndvqI#M0^gp*COxm6VR(~^g-=i0>#=d(a8mzO;;ZqSC%s7@7
vq)i^Z6Z)Fzt<Zoq-jvXRdlC_raR-1X^Gsa|*rrNl2T@8YBM35ST9@+!i%5$R

diff --git a/docs/build/html/_images/notebook_luminosity_function_binaries_20_1.png b/docs/build/html/_images/notebook_luminosity_function_binaries_20_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd1782b3a11abd6e0f188902b49f69eb32319f1b
GIT binary patch
literal 57125
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

literal 0
HcmV?d00001

diff --git a/docs/build/html/_images/notebook_luminosity_function_single_20_1.png b/docs/build/html/_images/notebook_luminosity_function_single_20_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..8895750e8fce660f5b0b948fe506a414af7a4517
GIT binary patch
literal 25029
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

literal 0
HcmV?d00001

diff --git a/docs/build/html/_images/notebook_luminosity_function_single_26_1.png b/docs/build/html/_images/notebook_luminosity_function_single_26_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc990e6c4cb03cb8f70d8d5355c9f765558752b2
GIT binary patch
literal 23856
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
Bq80!E

literal 0
HcmV?d00001

diff --git a/docs/build/html/_images/notebook_luminosity_function_single_34_0.png b/docs/build/html/_images/notebook_luminosity_function_single_34_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..980e3e44d1aa73fd9907fbe0a6cf485ba5ef811c
GIT binary patch
literal 30847
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
b8(H-|;KfX|vjbt=Qxp|c{!ZL)c<p}xLVAz{

literal 0
HcmV?d00001

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 de6d5f80a..310a1536f 100644
--- a/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html
@@ -644,9 +644,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/distribution_functions.html b/docs/build/html/_modules/binarycpython/utils/distribution_functions.html
index 1cddf50cc..93d532d7a 100644
--- a/docs/build/html/_modules/binarycpython/utils/distribution_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/distribution_functions.html
@@ -2482,9 +2482,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/functions.html b/docs/build/html/_modules/binarycpython/utils/functions.html
index 4e1bbc15d..c3af7ccd6 100644
--- a/docs/build/html/_modules/binarycpython/utils/functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/functions.html
@@ -187,6 +187,8 @@
 <span class="kn">import</span> <span class="nn">h5py</span>
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
 
+<span class="kn">import</span> <span class="nn">astropy.units</span> <span class="k">as</span> <span class="nn">u</span>
+
 <span class="kn">from</span> <span class="nn">binarycpython</span> <span class="kn">import</span> <span class="n">_binary_c_bindings</span>
 <span class="kn">import</span> <span class="nn">binarycpython.utils.moe_di_stefano_2017_data</span> <span class="k">as</span> <span class="nn">moe_di_stefano_2017_data</span>
 
@@ -195,6 +197,44 @@
 <span class="c1">########################################################</span>
 <span class="c1"># Unsorted</span>
 <span class="c1">########################################################</span>
+<div class="viewcode-block" id="AutoVivificationDict"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.AutoVivificationDict">[docs]</a><span class="k">class</span> <span class="nc">AutoVivificationDict</span><span class="p">(</span><span class="nb">dict</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Implementation of perl&#39;s autovivification feature, by overriding the</span>
+<span class="sd">    get item and the __iadd__ operator (https://docs.python.org/3/reference/datamodel.html?highlight=iadd#object.__iadd__)</span>
+
+<span class="sd">    This allows to set values within a subdict that might not exist yet:</span>
+
+<span class="sd">    Example:</span>
+<span class="sd">        newdict = {}</span>
+<span class="sd">        newdict[&#39;example&#39;][&#39;mass&#39;] += 10</span>
+<span class="sd">        print(newdict)</span>
+<span class="sd">        &gt;&gt;&gt; {&#39;example&#39;: {&#39;mass&#39;: 10}}</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="k">return</span> <span class="nb">dict</span><span class="o">.</span><span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">)</span>
+        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+            <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)()</span>
+            <span class="k">return</span> <span class="n">value</span>
+
+    <span class="k">def</span> <span class="fm">__iadd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
+        <span class="c1"># if a value does not exist, assume it is 0.0</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="bp">self</span> <span class="o">+=</span> <span class="n">other</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="bp">self</span> <span class="o">=</span> <span class="n">other</span>
+        <span class="k">return</span> <span class="bp">self</span></div>
+
+<div class="viewcode-block" id="bin_data"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.bin_data">[docs]</a><span class="k">def</span> <span class="nf">bin_data</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">binwidth</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Function that bins the data</span>
+
+<span class="sd">    Uses the absolute value of binwidth</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="k">return</span> <span class="p">((</span><span class="mf">0.5</span> <span class="k">if</span> <span class="n">value</span> <span class="o">&gt;</span> <span class="mf">0.0</span> <span class="k">else</span> <span class="o">-</span><span class="mf">0.5</span><span class="p">)</span> <span class="o">+</span> <span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="o">/</span><span class="nb">abs</span><span class="p">(</span><span class="n">binwidth</span><span class="p">)))</span> <span class="o">*</span> <span class="nb">abs</span><span class="p">(</span><span class="n">binwidth</span><span class="p">)</span></div>
+
 <div class="viewcode-block" id="convert_bytes"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.convert_bytes">[docs]</a><span class="k">def</span> <span class="nf">convert_bytes</span><span class="p">(</span><span class="n">size</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function to return the size + a magnitude string</span>
@@ -451,6 +491,51 @@
             <span class="k">yield</span> <span class="n">val</span><span class="o">.</span><span class="vm">__name__</span></div>
 
 
+
+<div class="viewcode-block" id="convfloat"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.convfloat">[docs]</a><span class="k">def</span> <span class="nf">convfloat</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Convert scalar x to a float if we can, in which case return the float, otherwise just return x without changing it. Usually, x is a string, but could be anything that float() can handle without failure.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">try</span><span class="p">:</span>
+        <span class="n">y</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">y</span>
+    <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
+        <span class="k">return</span> <span class="n">x</span></div>
+
+<div class="viewcode-block" id="datalinedict"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.datalinedict">[docs]</a><span class="k">def</span> <span class="nf">datalinedict</span><span class="p">(</span><span class="n">line</span> <span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
+                 <span class="n">parameters</span> <span class="p">:</span> <span class="nb">list</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Convert a line of data to a more convenient dictionary.</span>
+<span class="sd">    Arguments:</span>
+<span class="sd">       line = a line of data as a string</span>
+<span class="sd">       parameters = a list of the parameter names</span>
+
+<span class="sd">    Note: if the parameter is a floating point number, it will be converted to Python&#39;s float type.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="k">return</span> <span class="p">{</span><span class="n">param</span><span class="p">:</span><span class="n">convfloat</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">param</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">parameters</span><span class="p">,</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">())}</span></div>
+
+<div class="viewcode-block" id="pad_output_distribution"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.pad_output_distribution">[docs]</a><span class="k">def</span> <span class="nf">pad_output_distribution</span><span class="p">(</span><span class="n">dist</span> <span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
+                            <span class="n">binwidth</span> <span class="p">:</span> <span class="nb">float</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Given a distribution, dist (a dictionary), which should be binned every binwidth (float), fill the distribution with zeros when there is no data. Note: this changes the data in place.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="c1"># sorted list of the keys</span>
+    <span class="n">skeys</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">dist</span><span class="o">.</span><span class="n">keys</span><span class="p">(),</span> <span class="n">key</span> <span class="o">=</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+
+    <span class="c1"># get min and max, offset by the binwidth</span>
+    <span class="n">min_val</span> <span class="o">=</span> <span class="n">skeys</span><span class="p">[</span> <span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="n">binwidth</span>
+    <span class="n">max_val</span> <span class="o">=</span> <span class="n">skeys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">binwidth</span>
+
+    <span class="c1"># pad with zeros</span>
+    <span class="n">x</span> <span class="o">=</span> <span class="n">min_val</span>
+    <span class="k">while</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">max_val</span><span class="p">:</span>
+        <span class="n">dist</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">=</span> <span class="n">dist</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">x</span><span class="p">,</span><span class="mf">0.0</span><span class="p">)</span>
+        <span class="n">x</span> <span class="o">+=</span> <span class="n">binwidth</span>
+
+    <span class="k">return</span> <span class="n">dist</span></div>
+
 <div class="viewcode-block" id="catchtime"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.catchtime">[docs]</a><span class="k">class</span> <span class="nc">catchtime</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Context manager to calculate time spent</span>
@@ -545,7 +630,6 @@
     <span class="k">if</span> <span class="n">verbosity</span> <span class="o">&gt;=</span> <span class="n">minimal_verbosity</span><span class="p">:</span>
         <span class="nb">print</span><span class="p">(</span><span class="n">message</span><span class="p">)</span></div>
 
-
 <div class="viewcode-block" id="remove_file"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.remove_file">[docs]</a><span class="k">def</span> <span class="nf">remove_file</span><span class="p">(</span><span class="n">file</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function to remove files but with verbosity</span>
@@ -1033,7 +1117,7 @@
 
 <span class="sd">    Args:</span>
 <span class="sd">        output: binary_c output string</span>
-<span class="sd">        selected_header: string header of the output (the start of the line that you want to </span>
+<span class="sd">        selected_header: string header of the output (the start of the line that you want to</span>
 <span class="sd">            process)</span>
 
 <span class="sd">    Returns:</span>
@@ -1712,7 +1796,7 @@
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># Set up new dict</span>
-    <span class="n">new_dict</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">()</span> <span class="c1"># TODO: check if this still works</span>
+    <span class="n">new_dict</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">()</span> <span class="c1"># TODO: check if this still necessary</span>
 
     <span class="c1">#</span>
     <span class="n">keys_1</span> <span class="o">=</span> <span class="n">dict_1</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
@@ -1747,19 +1831,17 @@
     <span class="c1"># Go over the common keys:</span>
     <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">overlapping_keys</span><span class="p">:</span>
 
-        <span class="c1"># See whether the types are actually the same</span>
+        <span class="c1"># If they keys are not the same, it depends on their type whether we still deal with them at all, or just raise an error</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">]):</span>
-            <span class="c1"># Exceptions:</span>
-            <span class="k">if</span> <span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">])</span> <span class="ow">and</span> <span class="p">(</span>
-                <span class="nb">type</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">]</span>
-            <span class="p">):</span>
+            <span class="c1"># Exceptions: numbers can be added</span>
+            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">))</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">float64</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">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">+</span> <span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
-            <span class="c1"># Exceptions:</span>
-            <span class="k">elif</span> <span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">dict</span><span class="p">,</span> <span class="n">OrderedDict</span><span class="p">])</span> <span class="ow">and</span> <span class="p">(</span>
-                <span class="nb">type</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">dict</span><span class="p">,</span> <span class="n">OrderedDict</span><span class="p">]</span>
-            <span class="p">):</span>
+
+            <span class="c1"># Exceptions: versions of dicts can be merged</span>
+            <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_1</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">OrderedDict</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">AutoVivificationDict</span><span class="p">)))</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_2</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">OrderedDict</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">AutoVivificationDict</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">merge_dicts</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
 
+            <span class="c1"># If the above cases have not dealt with it, then we should raise an error</span>
             <span class="k">else</span><span class="p">:</span>
                 <span class="nb">print</span><span class="p">(</span>
                     <span class="s2">&quot;Error key: </span><span class="si">{}</span><span class="s2"> value: </span><span class="si">{}</span><span class="s2"> type: </span><span class="si">{}</span><span class="s2"> and key: </span><span class="si">{}</span><span class="s2"> value: </span><span class="si">{}</span><span class="s2"> type: </span><span class="si">{}</span><span class="s2"> are not of the same type and cannot be merged&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
@@ -1793,6 +1875,10 @@
             <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">list</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">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">+</span> <span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
 
+            <span class="c1"># Astropy quantities (using a dummy type representing the numpy array)</span>
+            <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">type</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">])</span><span class="o">*</span><span class="n">u</span><span class="o">.</span><span class="n">m</span><span class="p">))</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">type</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">1</span><span class="p">])</span><span class="o">*</span><span class="n">u</span><span class="o">.</span><span class="n">m</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">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">+</span> <span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
+
             <span class="c1"># dicts</span>
             <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">dict</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">dict</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">merge_dicts</span><span class="p">(</span><span class="n">dict_1</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="n">dict_2</span><span class="p">[</span><span class="n">key</span><span class="p">])</span>
@@ -1928,7 +2014,7 @@
 
 <span class="sd">    When the keys of the current dictionary are of mixed type, we first find all the unique types.</span>
 <span class="sd">    Sort that list of type names. Then find the values that fit that type.</span>
-<span class="sd">    Sort those and append them to the sorted keys list. </span>
+<span class="sd">    Sort those and append them to the sorted keys list.</span>
 <span class="sd">    This is done until all the keys are sorted.</span>
 
 <span class="sd">    All objects other than dictionary types are directly return as they are</span>
@@ -1949,7 +2035,7 @@
         <span class="c1"># If there are multiple types, then we loop over them and do a piece wise sort</span>
         <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">all_types_keys</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
             <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Different types in the same dictionary key set&quot;</span>
-            
+
             <span class="c1"># Create a string repr of the type name to sort them afterwards</span>
             <span class="n">str_types</span> <span class="o">=</span> <span class="p">{</span><span class="nb">repr</span><span class="p">(</span><span class="n">el</span><span class="p">):</span><span class="n">el</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">all_types_keys</span><span class="p">}</span>
 
@@ -2190,9 +2276,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/grid.html b/docs/build/html/_modules/binarycpython/utils/grid.html
index 12c1a2512..ac7f7eae8 100644
--- a/docs/build/html/_modules/binarycpython/utils/grid.html
+++ b/docs/build/html/_modules/binarycpython/utils/grid.html
@@ -161,9 +161,6 @@
 
 <span class="sd">Here all the functionality of a Population object is defined.</span>
 
-<span class="sd">Useful for the user to understand the functionality,</span>
-<span class="sd">but copying functionality isn&#39;t recommended except if you know what you are doing</span>
-
 <span class="sd">Tasks:</span>
 <span class="sd">    - TODO: add functionality to &#39;on-init&#39; set arguments</span>
 <span class="sd">    - TODO: add functionality to return the initial_abundance_hash</span>
@@ -178,8 +175,7 @@
 <span class="sd">    - TODO: fix the correct object types for the default values of the bse_options</span>
 <span class="sd">    - TODO: uncomment and implement the HPC functionality</span>
 <span class="sd">    - TODO: think of a clean and nice way to unload and remove the custom_logging_info library from memory (and from disk)</span>
-<span class="sd">    - TODO: think of a nice way to remove the loaded grid_code/ generator from memory. </span>
-<span class="sd">    - TODO: Create a designated dict for results</span>
+<span class="sd">    - TODO: think of a nice way to remove the loaded grid_code/ generator from memory.</span>
 <span class="sd">&quot;&quot;&quot;</span>
 
 <span class="kn">import</span> <span class="nn">os</span>
@@ -194,6 +190,7 @@
 <span class="kn">import</span> <span class="nn">argparse</span>
 <span class="kn">import</span> <span class="nn">importlib.util</span>
 <span class="kn">import</span> <span class="nn">multiprocessing</span>
+<span class="kn">import</span> <span class="nn">resource</span>
 <span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Any</span>
 <span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="p">(</span>
     <span class="n">OrderedDict</span><span class="p">,</span>
@@ -231,9 +228,9 @@
     <span class="n">recursive_change_key_to_string</span><span class="p">,</span>
     <span class="n">multiply_values_dict</span><span class="p">,</span>
     <span class="n">format_ensemble_results</span><span class="p">,</span>
+    <span class="n">AutoVivificationDict</span><span class="p">,</span>
 <span class="p">)</span>
 
-
 <span class="c1"># from binarycpython.utils.hpc_functions import (</span>
 <span class="c1">#     get_condor_version,</span>
 <span class="c1">#     get_slurm_version,</span>
@@ -254,6 +251,7 @@
 
 <span class="kn">from</span> <span class="nn">binarycpython</span> <span class="kn">import</span> <span class="n">_binary_c_bindings</span>
 
+<span class="n">secs_per_day</span> <span class="o">=</span> <span class="mi">86400</span> <span class="c1"># probably needs to go somewhere more sensible</span>
 
 <div class="viewcode-block" id="Population"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population">[docs]</a><span class="k">class</span> <span class="nc">Population</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
@@ -286,6 +284,9 @@
         <span class="c1"># Custom options</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span> <span class="o">=</span> <span class="p">{}</span>
 
+        <span class="c1"># shared memory used for logging</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span> <span class="o">=</span> <span class="p">{}</span>
+
         <span class="c1"># Load M&amp;s options</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;m&amp;s_options&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">moe_di_stefano_default_options</span><span class="p">)</span>
 
@@ -307,7 +308,8 @@
         <span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span> <span class="o">=</span> <span class="mi">0</span>
 
         <span class="c1"># Create location to store results. Users should write to this dictionary.</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">grid_results</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="c1"># The AutoVivificationDict allows for perls method of accessing possibly 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>
@@ -523,6 +525,64 @@
             <span class="p">):</span>
                 <span class="k">return</span> <span class="n">grid_variable</span>
 
+<div class="viewcode-block" id="Population.update_grid_variable"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.update_grid_variable">[docs]</a>    <span class="k">def</span> <span class="nf">update_grid_variable</span><span class="p">(</span>
+        <span class="bp">self</span><span class="p">,</span>
+        <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
+        <span class="o">**</span><span class="n">kwargs</span>
+    <span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Function to update the values of a grid variable.</span>
+
+<span class="sd">        Args:</span>
+<span class="sd">            name:</span>
+<span class="sd">                name of the grid variable to be changed.</span>
+<span class="sd">            **kwargs:</span>
+<span class="sd">                key-value pairs to override the existing grid variable data. See add_grid_variable for these names.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="n">grid_variable</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">try</span><span class="p">:</span>
+            <span class="n">grid_variable</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">&quot;_grid_variables&quot;</span><span class="p">][</span><span class="n">name</span><span class="p">]</span>
+        <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Unknown grid variable </span><span class="si">{}</span><span class="s2"> - please create it with the add_grid_variable() method.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
+            <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
+
+        <span class="k">for</span> <span class="n">key</span><span class="p">,</span><span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+            <span class="n">grid_variable</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
+            <span class="n">verbose_print</span><span class="p">(</span>
+                <span class="s2">&quot;Updated grid variable: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">grid_variable</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">4</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">&quot;verbosity&quot;</span><span class="p">],</span>
+                <span class="mi">1</span><span class="p">,</span>
+            <span class="p">)</span></div>
+
+<div class="viewcode-block" id="Population.rename_grid_variable"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.rename_grid_variable">[docs]</a>    <span class="k">def</span> <span class="nf">rename_grid_variable</span><span class="p">(</span>
+        <span class="bp">self</span><span class="p">,</span>
+        <span class="n">oldname</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
+        <span class="n">newname</span><span class="p">:</span> <span class="nb">str</span>
+    <span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Function to rename a grid variable.</span>
+
+<span class="sd">        note: this does NOT alter the order</span>
+<span class="sd">        of the self.grid_options[&quot;_grid_variables&quot;] dictionary.</span>
+
+<span class="sd">        The order in which the grid variables are loaded into the grid is based on their</span>
+<span class="sd">        `grid_variable_number` property</span>
+
+<span class="sd">        Args:</span>
+<span class="sd">            oldname:</span>
+<span class="sd">                old name of the grid variable</span>
+<span class="sd">            newname:</span>
+<span class="sd">                new name of the grid variable</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="k">try</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">&quot;_grid_variables&quot;</span><span class="p">][</span><span class="n">newname</span><span class="p">]</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">&quot;_grid_variables&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">oldname</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">&quot;_grid_variables&quot;</span><span class="p">][</span><span class="n">newname</span><span class="p">][</span><span class="s2">&quot;name&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">newname</span>
+        <span class="k">except</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Failed to rename grid variable </span><span class="si">{}</span><span class="s2"> to </span><span class="si">{}</span><span class="s2">.&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">oldname</span><span class="p">,</span><span class="n">newname</span><span class="p">)</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div>
+
 <div class="viewcode-block" id="Population.add_grid_variable"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.add_grid_variable">[docs]</a>    <span class="k">def</span> <span class="nf">add_grid_variable</span><span class="p">(</span>
         <span class="bp">self</span><span class="p">,</span>
         <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
@@ -610,8 +670,6 @@
 <span class="sd">                (steps starting at lower edge + 0.5 * stepsize).</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="c1"># TODO: Add check for the grid type input value</span>
-
         <span class="c1"># Add grid_variable</span>
         <span class="n">grid_variable</span> <span class="o">=</span> <span class="p">{</span>
             <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="n">name</span><span class="p">,</span>
@@ -655,7 +713,6 @@
 <span class="sd">        Returns:</span>
 <span class="sd">            dictionary containing &quot;bse_options&quot;, &quot;grid_options&quot;, &quot;custom_options&quot;</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-
         <span class="n">options</span> <span class="o">=</span> <span class="p">{</span>
             <span class="s2">&quot;bse_options&quot;</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="s2">&quot;grid_options&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">,</span>
@@ -709,7 +766,6 @@
 
         <span class="c1">#</span>
         <span class="n">all_info</span> <span class="o">=</span> <span class="p">{}</span>
-
         <span class="c1">#</span>
         <span class="k">if</span> <span class="n">include_population_settings</span><span class="p">:</span>
             <span class="n">population_settings</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">return_population_settings</span><span class="p">()</span>
@@ -778,37 +834,42 @@
         <span class="n">all_info_cleaned</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">all_info</span><span class="p">)</span>
 
         <span class="k">if</span> <span class="n">use_datadir</span><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">custom_options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;base_filename&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
-                <span class="n">base_name</span> <span class="o">=</span> <span class="s2">&quot;simulation_</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
-                    <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">(),</span> <span class="s2">&quot;%Y%m</span><span class="si">%d</span><span class="s2">_%H%M%S&quot;</span><span class="p">)</span>
-                <span class="p">)</span>
-            <span class="k">else</span><span class="p">:</span>
-                <span class="n">base_name</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">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;base_filename&quot;</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;data_dir&quot;</span><span class="p">,</span> <span class="kc">None</span><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">custom_options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;base_filename&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
+                    <span class="n">base_name</span> <span class="o">=</span> <span class="s2">&quot;simulation_</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+                        <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">(),</span> <span class="s2">&quot;%Y%m</span><span class="si">%d</span><span class="s2">_%H%M%S&quot;</span><span class="p">)</span>
+                    <span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">base_name</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">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;base_filename&quot;</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
 
-            <span class="n">settings_name</span> <span class="o">=</span> <span class="n">base_name</span> <span class="o">+</span> <span class="s2">&quot;_settings.json&quot;</span>
+                <span class="n">settings_name</span> <span class="o">=</span> <span class="n">base_name</span> <span class="o">+</span> <span class="s2">&quot;_settings.json&quot;</span>
 
-            <span class="c1"># Check directory, make if necessary</span>
-            <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;data_dir&quot;</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="c1"># Check directory, make if necessary</span>
+                <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;data_dir&quot;</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="n">settings_fullname</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">custom_options</span><span class="p">[</span><span class="s2">&quot;data_dir&quot;</span><span class="p">],</span> <span class="n">settings_name</span>
-            <span class="p">)</span>
+                <span class="n">settings_fullname</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">custom_options</span><span class="p">[</span><span class="s2">&quot;data_dir&quot;</span><span class="p">],</span> <span class="n">settings_name</span>
+                <span class="p">)</span>
 
-            <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;Writing settings to </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">settings_fullname</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">&quot;verbosity&quot;</span><span class="p">],</span>
-                <span class="mi">1</span><span class="p">,</span>
-            <span class="p">)</span>
-            <span class="c1"># if not outfile.endswith(&#39;json&#39;):</span>
-            <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">settings_fullname</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
-                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
-                    <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span>
-                        <span class="n">all_info_cleaned</span><span class="p">,</span>
-                        <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>
-                        <span class="n">default</span><span class="o">=</span><span class="n">binaryc_json_serializer</span><span class="p">,</span>
-                    <span class="p">)</span>
+                <span class="n">verbose_print</span><span class="p">(</span>
+                    <span class="s2">&quot;Writing settings to </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">settings_fullname</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">&quot;verbosity&quot;</span><span class="p">],</span>
+                    <span class="mi">1</span><span class="p">,</span>
                 <span class="p">)</span>
-            <span class="k">return</span> <span class="n">settings_fullname</span>
+                <span class="c1"># if not outfile.endswith(&#39;json&#39;):</span>
+                <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">settings_fullname</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
+                    <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
+                        <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span>
+                            <span class="n">all_info_cleaned</span><span class="p">,</span>
+                            <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>
+                            <span class="n">default</span><span class="o">=</span><span class="n">binaryc_json_serializer</span><span class="p">,</span>
+                        <span class="p">)</span>
+                    <span class="p">)</span>
+                <span class="k">return</span> <span class="n">settings_fullname</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Exporting all info without passing a value for `outfile` requires custom_options[&#39;data_dir&#39;] to be present. That is not the cause. Either set the `data_dir` or pass a value for `outfile` &quot;</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span>
+
         <span class="k">else</span><span class="p">:</span>
             <span class="n">verbose_print</span><span class="p">(</span>
                 <span class="s2">&quot;Writing settings to </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">outfile</span><span class="p">),</span>
@@ -835,51 +896,61 @@
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function/routine to set all the custom logging so that the function memory pointer</span>
 <span class="sd">        is known to the grid.</span>
+
+<span class="sd">        When the memory adress is loaded and the library file is set we&#39;ll skip rebuilding the library</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="c1"># C_logging_code gets priority of C_autogen_code</span>
-        <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;Creating and loading custom logging functionality&quot;</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">&quot;verbosity&quot;</span><span class="p">],</span>
-            <span class="mi">1</span><span class="p">,</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">&quot;C_logging_code&quot;</span><span class="p">]:</span>
-            <span class="c1"># Generate entire shared lib code around logging lines</span>
-            <span class="n">custom_logging_code</span> <span class="o">=</span> <span class="n">binary_c_log_code</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">&quot;C_logging_code&quot;</span><span class="p">],</span>
-                <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
+        <span class="c1"># Only if the values are the &#39;default&#39; unset values</span>
+        <span class="k">if</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">&quot;custom_logging_func_memaddr&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">):</span>
+            <span class="n">verbose_print</span><span class="p">(</span>
+                <span class="s2">&quot;Creating and loading custom logging functionality&quot;</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">&quot;verbosity&quot;</span><span class="p">],</span>
+                <span class="mi">1</span><span class="p">,</span>
             <span class="p">)</span>
+            <span class="c1"># C_logging_code gets priority of C_autogen_code</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">&quot;C_logging_code&quot;</span><span class="p">]:</span>
+                <span class="c1"># Generate entire shared lib code around logging lines</span>
+                <span class="n">custom_logging_code</span> <span class="o">=</span> <span class="n">binary_c_log_code</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">&quot;C_logging_code&quot;</span><span class="p">],</span>
+                    <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
+                <span class="p">)</span>
 
-            <span class="c1"># Load memory address</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">&quot;custom_logging_func_memaddr&quot;</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">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">],</span>
-            <span class="p">)</span> <span class="o">=</span> <span class="n">create_and_load_logging_function</span><span class="p">(</span>
-                <span class="n">custom_logging_code</span><span class="p">,</span>
-                <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
-                <span class="n">custom_tmp_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">&quot;tmp_dir&quot;</span><span class="p">],</span>
-            <span class="p">)</span>
+                <span class="c1"># Load memory address</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">&quot;custom_logging_func_memaddr&quot;</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">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">],</span>
+                <span class="p">)</span> <span class="o">=</span> <span class="n">create_and_load_logging_function</span><span class="p">(</span>
+                    <span class="n">custom_logging_code</span><span class="p">,</span>
+                    <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
+                    <span class="n">custom_tmp_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">&quot;tmp_dir&quot;</span><span class="p">],</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">&quot;C_auto_logging&quot;</span><span class="p">]:</span>
-            <span class="c1"># Generate real logging code</span>
-            <span class="n">logging_line</span> <span class="o">=</span> <span class="n">autogen_C_logging_code</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">&quot;C_auto_logging&quot;</span><span class="p">],</span>
-                <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</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">&quot;C_auto_logging&quot;</span><span class="p">]:</span>
+                <span class="c1"># Generate real logging code</span>
+                <span class="n">logging_line</span> <span class="o">=</span> <span class="n">autogen_C_logging_code</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">&quot;C_auto_logging&quot;</span><span class="p">],</span>
+                    <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
+                <span class="p">)</span>
 
-            <span class="c1"># Generate entire shared lib code around logging lines</span>
-            <span class="n">custom_logging_code</span> <span class="o">=</span> <span class="n">binary_c_log_code</span><span class="p">(</span>
-                <span class="n">logging_line</span><span class="p">,</span> <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
-            <span class="p">)</span>
+                <span class="c1"># Generate entire shared lib code around logging lines</span>
+                <span class="n">custom_logging_code</span> <span class="o">=</span> <span class="n">binary_c_log_code</span><span class="p">(</span>
+                    <span class="n">logging_line</span><span class="p">,</span> <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+                <span class="p">)</span>
 
-            <span class="c1"># Load memory address</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">&quot;custom_logging_func_memaddr&quot;</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">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">],</span>
-            <span class="p">)</span> <span class="o">=</span> <span class="n">create_and_load_logging_function</span><span class="p">(</span>
-                <span class="n">custom_logging_code</span><span class="p">,</span>
-                <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
-                <span class="n">custom_tmp_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">&quot;tmp_dir&quot;</span><span class="p">],</span>
+                <span class="c1"># Load memory address</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">&quot;custom_logging_func_memaddr&quot;</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">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">],</span>
+                <span class="p">)</span> <span class="o">=</span> <span class="n">create_and_load_logging_function</span><span class="p">(</span>
+                    <span class="n">custom_logging_code</span><span class="p">,</span>
+                    <span class="n">verbosity</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">&quot;verbosity&quot;</span><span class="p">]</span><span class="o">-</span><span class="p">(</span><span class="n">_CUSTOM_LOGGING_VERBOSITY_LEVEL</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span>
+                    <span class="n">custom_tmp_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">&quot;tmp_dir&quot;</span><span class="p">],</span>
+                <span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">verbose_print</span><span class="p">(</span>
+                <span class="s2">&quot;Custom logging library already loaded. Not setting them again.&quot;</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">&quot;verbosity&quot;</span><span class="p">],</span>
+                <span class="mi">1</span><span class="p">,</span>
             <span class="p">)</span>
 
     <span class="c1">###################################################</span>
@@ -893,19 +964,48 @@
     <span class="c1"># Evolution functions</span>
     <span class="c1">###################################################</span>
 
-    <span class="k">def</span> <span class="nf">_pre_run_cleanup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">_pre_run_cleanup</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function to clean up some stuff in the grid before a run (like results, ensemble results etc)</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="c1"># empty results</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;results&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</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="c1"># Reset the process ID (should not have a value initially, but can&#39;t hurt if it does)</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span> <span class="o">=</span> <span class="mi">0</span>
+
+        <span class="c1"># Reset population ID:</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;_population_id&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span>
+
+        <span class="c1"># set previous logging time</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_time&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">multiprocessing</span><span class="o">.</span><span class="n">Value</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span>
+        <span class="c1"># set previous logging system number to 0</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_system_number&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">multiprocessing</span><span class="o">.</span><span class="n">Value</span><span class="p">(</span><span class="s1">&#39;i&#39;</span><span class="p">,</span><span class="mi">0</span><span class="p">)</span>
+        <span class="c1"># array to store memory use per-thread</span>
+        <span class="n">mem</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mem_use</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;memory_use_per_thread&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">multiprocessing</span><span class="o">.</span><span class="n">Array</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">,[</span><span class="mf">1.0</span><span class="o">*</span><span class="n">mem</span><span class="p">]</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">&quot;amt_cores&quot;</span><span class="p">])</span>
+
+<div class="viewcode-block" id="Population.clean"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.clean">[docs]</a>    <span class="k">def</span> <span class="nf">clean</span><span class="p">(</span>
+        <span class="bp">self</span>
+    <span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Clean the contents of the population object so it can be reused.</span>
+
+<span class="sd">        Calling _pre_run_cleanup()</span>
+
+<span class="sd">        TODO: decide to deprecate this function</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">_pre_run_cleanup</span><span class="p">()</span></div>
 
 <div class="viewcode-block" id="Population.evolve"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.evolve">[docs]</a>    <span class="k">def</span> <span class="nf">evolve</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Entry point function of the whole object. From here, based on the settings,</span>
 <span class="sd">        we set up a SLURM or CONDOR grid, or if no setting is given we go straight</span>
-<span class="sd">        to evolving the population</span>
+<span class="sd">        to evolving the population.</span>
 
 <span class="sd">        There are no direct arguments to this function, rather it is based on the grid_options settings:</span>
 <span class="sd">            grid_options[&#39;slurm&#39;]: integer Boolean whether to use a slurm_grid evolution</span>
@@ -915,7 +1015,9 @@
 <span class="sd">        (that doesn&#39;t mean this cannot be run on a server with many cores)</span>
 
 <span class="sd">        Returns an dictionary containing the analytics of the run</span>
+
 <span class="sd">        TODO: change the way this is done. Slurm &amp; CONDOR should probably do this different</span>
+<span class="sd">        NOTE: SLURM and CONDOR options are not working properly yet</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="c1"># Just to make sure we don&#39;t have stuff from a previous run hanging around</span>
@@ -978,9 +1080,6 @@
 <span class="sd">            - TODO: include options for different ways of generating a population here. (i.e. MC or source file)</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="c1"># Reset some settings: population_id, results, ensemble_results etc</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;_population_id&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">()</span><span class="o">.</span><span class="n">hex</span>
-
         <span class="c1">##</span>
         <span class="c1"># Prepare code/initialise grid.</span>
         <span class="c1"># set custom logging, set up store_memaddr, build grid code. dry run grid code.</span>
@@ -1005,7 +1104,7 @@
                 <span class="p">)</span>
             <span class="p">)</span>
 
-        <span class="c1">#</span>
+        <span class="c1"># finished!</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;_end_time_evolution&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
 
         <span class="c1"># Log and print some information</span>
@@ -1119,7 +1218,7 @@
         <span class="c1"># Send closing signal to workers. When they receive this they will terminate</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="s1">&#39;verbosity&#39;</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">_LOGGER_VERBOSITY_LEVEL</span><span class="p">:</span>
             <span class="n">stream_logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Signaling stop to processes&quot;</span><span class="p">)</span>  <span class="c1"># DEBUG</span>
-    
+
         <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">amt_cores</span><span class="p">):</span>
             <span class="n">job_queue</span><span class="o">.</span><span class="n">put</span><span class="p">(</span><span class="s2">&quot;STOP&quot;</span><span class="p">)</span>
 
@@ -1355,6 +1454,9 @@
         <span class="n">zero_prob_stars_skipped</span> <span class="o">=</span> <span class="mi">0</span>
 
         <span class="n">total_time_calling_binary_c</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="n">start_grid_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+        <span class="n">next_log_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_time&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">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="s2">&quot;log_dt&quot;</span><span class="p">]</span>
+        <span class="n">next_mem_update_time</span> <span class="o">=</span> <span class="n">start_grid_time</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">&quot;log_dt&quot;</span><span class="p">]</span>
 
         <span class="n">total_mass_run</span> <span class="o">=</span> <span class="mi">0</span>
         <span class="n">total_probability_weighted_mass_run</span> <span class="o">=</span> <span class="mi">0</span>
@@ -1419,11 +1521,31 @@
             <span class="c1"># )</span>
 
             <span class="c1">#</span>
-            <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;Process </span><span class="si">{}</span><span class="s2"> is handling system </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">ID</span><span class="p">,</span> <span class="n">system_number</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">&quot;verbosity&quot;</span><span class="p">],</span>
-                <span class="mi">1</span><span class="p">,</span>
-            <span class="p">)</span>
+
+<span class="c1">#            verbose_print(</span>
+<span class="c1">#                &quot;Process {} is handling system {}&quot;.format(ID, system_number),</span>
+<span class="c1">#                self.grid_options[&quot;verbosity&quot;],</span>
+<span class="c1">#                1,</span>
+<span class="c1">#            )</span>
+
+            <span class="c1"># save the current time (used often)</span>
+            <span class="n">now</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+
+            <span class="c1"># update memory use stats every log_dt seconds (not every time, this is likely a bit expensive)</span>
+            <span class="k">if</span> <span class="n">now</span> <span class="o">&gt;</span> <span class="n">next_mem_update_time</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;memory_use_per_thread&quot;</span><span class="p">][</span><span class="n">ID</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mem_use</span><span class="p">()</span>
+                <span class="n">next_mem_update</span> <span class="o">=</span> <span class="n">now</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">&quot;log_dt&quot;</span><span class="p">]</span>
+
+            <span class="c1"># calculate the next logging time</span>
+            <span class="n">next_log_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_time&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">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="s2">&quot;log_dt&quot;</span><span class="p">]</span>
+
+            <span class="k">if</span> <span class="n">now</span> <span class="o">&gt;</span> <span class="n">next_log_time</span><span class="p">:</span>
+                <span class="c1"># we have exceeded the next log time : output and update timers</span>
+                <span class="n">lock</span> <span class="o">=</span> <span class="n">multiprocessing</span><span class="o">.</span><span class="n">Lock</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">vb1print</span><span class="p">(</span><span class="n">ID</span><span class="p">,</span><span class="n">now</span><span class="p">,</span><span class="n">system_number</span><span class="p">)</span>
+                <span class="n">next_log_time</span> <span class="o">=</span> <span class="n">now</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">&quot;log_dt&quot;</span><span class="p">]</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_time&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">now</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_system_number&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">system_number</span>
 
             <span class="c1"># In some cases, the whole run crashes. To be able to figure out which system</span>
             <span class="c1"># that was on, we log each current system to a file (each thread has one).</span>
@@ -1511,7 +1633,6 @@
         <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="s1">&#39;verbosity&#39;</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">_LOGGER_VERBOSITY_LEVEL</span><span class="p">:</span>
             <span class="n">stream_logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Process-</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span><span class="si">}</span><span class="s2"> is finishing.&quot;</span><span class="p">)</span>
 
-
         <span class="c1"># Handle ensemble output: is ensemble==1, then either directly write that data to a file, or combine everything into 1 file.</span>
         <span class="n">ensemble_json</span> <span class="o">=</span> <span class="p">{}</span>  <span class="c1"># Make sure it exists already</span>
         <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;ensemble&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
@@ -1675,31 +1796,42 @@
         <span class="c1">### Custom logging code:</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">_set_custom_logging</span><span class="p">()</span>
 
-        <span class="c1"># Get argument line</span>
-        <span class="n">argline</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="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">)</span>
-        <span class="n">verbose_print</span><span class="p">(</span><span class="s2">&quot;Running </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">argline</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">&quot;verbosity&quot;</span><span class="p">],</span> <span class="mi">1</span><span class="p">)</span>
 
-        <span class="c1"># Run system</span>
-        <span class="n">out</span> <span class="o">=</span> <span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">run_system</span><span class="p">(</span>
-            <span class="n">argstring</span><span class="o">=</span><span class="n">argline</span><span class="p">,</span>
-            <span class="n">custom_logging_func_memaddr</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">&quot;custom_logging_func_memaddr&quot;</span>
-            <span class="p">],</span>
-            <span class="n">store_memaddr</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">&quot;_store_memaddr&quot;</span><span class="p">],</span>
-            <span class="n">population</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
-        <span class="p">)</span>
+        <span class="c1"># Check if there are actually arguments passed:</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">:</span>
+
+            <span class="c1"># Get argument line and</span>
+            <span class="n">argline</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="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">)</span>
+
+            <span class="n">verbose_print</span><span class="p">(</span><span class="s2">&quot;Running </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">argline</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">&quot;verbosity&quot;</span><span class="p">],</span> <span class="mi">1</span><span class="p">)</span>
+
+            <span class="c1"># Run system</span>
+            <span class="n">out</span> <span class="o">=</span> <span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">run_system</span><span class="p">(</span>
+                <span class="n">argstring</span><span class="o">=</span><span class="n">argline</span><span class="p">,</span>
+                <span class="n">custom_logging_func_memaddr</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">&quot;custom_logging_func_memaddr&quot;</span>
+                <span class="p">],</span>
+                <span class="n">store_memaddr</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">&quot;_store_memaddr&quot;</span><span class="p">],</span>
+                <span class="n">population</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+            <span class="p">)</span>
+
+            <span class="c1"># Clean up custom logging</span>
+            <span class="k">if</span> <span class="n">clean_up_custom_logging_files</span><span class="p">:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_clean_up_custom_logging</span><span class="p">(</span><span class="n">evol_type</span><span class="o">=</span><span class="s2">&quot;single&quot;</span><span class="p">)</span>
+
+            <span class="c1"># Parse output and return the result</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">&quot;parse_function&quot;</span><span class="p">]:</span>
+                <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;parse_function&quot;</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">out</span><span class="p">)</span>
+
+            <span class="c1"># Otherwise just return the raw output</span>
+            <span class="k">return</span> <span class="n">out</span>
+
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;No actual evolution options passed to the evolve call. Aborting&quot;</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div>
 
-        <span class="c1"># TODO: add call to function that cleans up the temp custom logging dir,</span>
-        <span class="c1">#   and unloads the loaded libraries.</span>
-        <span class="c1"># TODO: make a switch to turn this off</span>
 
-        <span class="k">if</span> <span class="n">clean_up_custom_logging_files</span><span class="p">:</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">_clean_up_custom_logging</span><span class="p">(</span><span class="n">evol_type</span><span class="o">=</span><span class="s2">&quot;single&quot;</span><span class="p">)</span>
 
-        <span class="c1"># Parse</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">&quot;parse_function&quot;</span><span class="p">]:</span>
-            <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;parse_function&quot;</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">out</span><span class="p">)</span>
-        <span class="k">return</span> <span class="n">out</span></div>
 
     <span class="k">def</span> <span class="nf">_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
@@ -2419,7 +2551,7 @@
             <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
         <span class="p">)</span>
 
-        <span class="c1"># Take into account the multiplicity fraction: </span>
+        <span class="c1"># Take into account the multiplicity fraction:</span>
         <span class="n">code_string</span> <span class="o">+=</span> <span class="p">(</span>
             <span class="n">indent</span> <span class="o">*</span> <span class="p">(</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
             <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
@@ -3283,10 +3415,10 @@
                 <span class="mi">1</span><span class="p">,</span>
             <span class="p">)</span>
 
-            <span class="c1"># TODO: Unset custom logging code</span>
+            <span class="c1"># TODO: Explicitly unload the library</span>
 
-            <span class="c1"># TODO: Unset function memory address</span>
-            <span class="c1"># print(self.grid_options[&quot;custom_logging_func_memaddr&quot;])</span>
+            <span class="c1"># Reset the memory adress location</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;custom_logging_func_memaddr&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
 
             <span class="c1"># remove shared library files</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">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">]:</span>
@@ -3294,6 +3426,7 @@
                     <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;_custom_logging_shared_library_file&quot;</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">&quot;verbosity&quot;</span><span class="p">],</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">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
 
         <span class="k">if</span> <span class="n">evol_type</span> <span class="o">==</span> <span class="s2">&quot;population&quot;</span><span class="p">:</span>
             <span class="n">verbose_print</span><span class="p">(</span>
@@ -3441,7 +3574,7 @@
 <div class="viewcode-block" id="Population.set_moe_di_stefano_settings"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.set_moe_di_stefano_settings">[docs]</a>    <span class="k">def</span> <span class="nf">set_moe_di_stefano_settings</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function to set user input configurations for the moe &amp; di Stefano methods</span>
-<span class="sd">    </span>
+
 <span class="sd">        If nothing is passed then we just use the default options</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
@@ -3784,7 +3917,7 @@
                 <span class="n">resolution</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="s1">&#39;m&amp;s_options&#39;</span><span class="p">][</span><span class="s2">&quot;resolutions&quot;</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span>
                 <span class="n">probdist</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span>
                 <span class="n">condition</span><span class="o">=</span><span class="s1">&#39;(self.grid_options[&quot;multiplicity&quot;] &gt;= 2)&#39;</span><span class="p">,</span>
-                <span class="n">branchpoint</span><span class="o">=</span><span class="mi">1</span> <span class="k">if</span> <span class="n">max_multiplicity</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Signal here to put a branchpoint if we have a max multiplicity higher than 1. </span>
+                <span class="n">branchpoint</span><span class="o">=</span><span class="mi">1</span> <span class="k">if</span> <span class="n">max_multiplicity</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Signal here to put a branchpoint if we have a max multiplicity higher than 1.</span>
                 <span class="n">gridtype</span><span class="o">=</span><span class="s2">&quot;centred&quot;</span><span class="p">,</span>
                 <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;(</span><span class="si">{}</span><span class="s2"> * dlog10per)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">LOG_LN_CONVERTER</span><span class="p">),</span>
                 <span class="n">valuerange</span><span class="o">=</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="s1">&#39;m&amp;s_options&#39;</span><span class="p">][</span><span class="s2">&quot;ranges&quot;</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="mi">0</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="s1">&#39;m&amp;s_options&#39;</span><span class="p">][</span><span class="s2">&quot;ranges&quot;</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="mi">1</span><span class="p">]],</span>
@@ -3799,7 +3932,7 @@
 <span class="s2">&quot;&quot;&quot;</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">grid_options</span><span class="p">[</span><span class="s1">&#39;m&amp;s_options&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;Mmin&quot;</span><span class="p">,</span> <span class="mf">0.07</span><span class="p">)</span>
                 <span class="p">),</span>
-            <span class="p">)</span> <span class="c1"># TODO: change the maximum_mass_ratio_for_RLOF </span>
+            <span class="p">)</span> <span class="c1"># TODO: change the maximum_mass_ratio_for_RLOF</span>
 
             <span class="c1"># binaries: mass ratio</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">add_grid_variable</span><span class="p">(</span>
@@ -3865,7 +3998,7 @@
                     <span class="n">resolution</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="s1">&#39;m&amp;s_options&#39;</span><span class="p">][</span><span class="s2">&quot;resolutions&quot;</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span>
                     <span class="n">probdist</span><span class="o">=</span><span class="mf">1.0</span><span class="p">,</span>
                     <span class="n">condition</span><span class="o">=</span><span class="s1">&#39;(self.grid_options[&quot;multiplicity&quot;] &gt;= 3)&#39;</span><span class="p">,</span>
-                    <span class="n">branchpoint</span><span class="o">=</span><span class="mi">2</span> <span class="k">if</span> <span class="n">max_multiplicity</span> <span class="o">&gt;</span> <span class="mi">2</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Signal here to put a branchpoint if we have a max multiplicity higher than 1. </span>
+                    <span class="n">branchpoint</span><span class="o">=</span><span class="mi">2</span> <span class="k">if</span> <span class="n">max_multiplicity</span> <span class="o">&gt;</span> <span class="mi">2</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Signal here to put a branchpoint if we have a max multiplicity higher than 1.</span>
                     <span class="n">gridtype</span><span class="o">=</span><span class="s2">&quot;centred&quot;</span><span class="p">,</span>
                     <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;(</span><span class="si">{}</span><span class="s2"> * dlog10per2)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">LOG_LN_CONVERTER</span><span class="p">),</span>
                     <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span>
@@ -4198,7 +4331,91 @@
             <span class="mi">2</span><span class="p">,</span>
         <span class="p">)</span>
 
-        <span class="k">return</span> <span class="n">multiplicity_fraction_dict</span><span class="p">[</span><span class="n">system_dict</span><span class="p">[</span><span class="s1">&#39;multiplicity&#39;</span><span class="p">]]</span></div>
+        <span class="k">return</span> <span class="n">multiplicity_fraction_dict</span><span class="p">[</span><span class="n">system_dict</span><span class="p">[</span><span class="s1">&#39;multiplicity&#39;</span><span class="p">]]</span>
+
+    <span class="k">def</span> <span class="nf">_trem</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">dt</span><span class="p">,</span><span class="n">count</span><span class="p">,</span><span class="n">dn</span><span class="p">,</span><span class="n">n</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Estimate time remaining (seconds) given a differential time and count (i.e. progress = $count/$n). $dt is the time since the last call, $count is the current progress count, $dn is the number run since the last call, and $n is the total number required.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">tpr</span> <span class="o">=</span> <span class="n">dt</span> <span class="o">/</span> <span class="nb">max</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">dn</span><span class="p">)</span>
+        <span class="n">etasecs</span> <span class="o">=</span> <span class="n">tpr</span> <span class="o">*</span> <span class="p">(</span><span class="n">n</span> <span class="o">-</span> <span class="n">count</span><span class="p">)</span>
+        <span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="n">units</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_conv_time_units</span><span class="p">(</span><span class="n">etasecs</span><span class="p">)</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="n">units</span><span class="p">,</span><span class="n">tpr</span><span class="p">,</span><span class="n">etasecs</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">_conv_time_units</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">t</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Converts time (t, in seconds, passing in as the only argument) to seconds, minutes or hours depending on its magnitude. Returns a tuple (t,units).</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">units</span><span class="o">=</span><span class="s1">&#39;s&#39;</span><span class="p">;</span> <span class="c1"># default to seconds</span>
+        <span class="k">if</span> <span class="n">t</span> <span class="o">&gt;</span> <span class="mi">60</span><span class="p">:</span>
+            <span class="n">t</span> <span class="o">/=</span> <span class="mi">60</span><span class="p">;</span>
+            <span class="n">units</span><span class="o">=</span><span class="s1">&#39;m&#39;</span><span class="p">;</span>
+        <span class="k">if</span> <span class="n">t</span> <span class="o">&gt;</span> <span class="mi">60</span><span class="p">:</span>
+            <span class="n">t</span> <span class="o">/=</span><span class="mi">60</span><span class="p">;</span>
+            <span class="n">units</span><span class="o">=</span><span class="s1">&#39;h&#39;</span><span class="p">;</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">t</span><span class="p">,</span><span class="n">units</span><span class="p">)</span>
+
+<div class="viewcode-block" id="Population.vb1print"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.vb1print">[docs]</a>    <span class="k">def</span> <span class="nf">vb1print</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="n">ID</span><span class="p">,</span><span class="n">now</span><span class="p">,</span><span class="n">system_number</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Verbosity-level 1 printing, to keep an eye on a grid.</span>
+<span class="sd">        Arguments:</span>
+<span class="sd">                 ID : thread ID for debugging (int)</span>
+<span class="sd">                 now : the time now as a UNIX-style epoch in seconds (float)</span>
+<span class="sd">                 system_number : the system number</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="c1"># calculate estimated time of arrive (eta and eta_secs), time per run (tpr)</span>
+        <span class="n">localtime</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="n">now</span><span class="p">)</span>
+        <span class="n">dt</span> <span class="o">=</span> <span class="n">now</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_time&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span>
+        <span class="n">dn</span> <span class="o">=</span> <span class="n">system_number</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;prev_log_system_number&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">value</span>
+        <span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="n">units</span><span class="p">,</span><span class="n">tpr</span><span class="p">,</span><span class="n">eta_secs</span><span class="p">)</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_trem</span><span class="p">(</span><span class="n">dt</span><span class="p">,</span>
+                                              <span class="n">system_number</span><span class="p">,</span>
+                                              <span class="n">dn</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">&quot;_total_starcount&quot;</span><span class="p">])</span>
+        <span class="k">if</span> <span class="n">eta_secs</span> <span class="o">&lt;</span> <span class="n">secs_per_day</span><span class="p">:</span>
+            <span class="n">fintime</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">localtime</span><span class="p">(</span><span class="n">now</span> <span class="o">+</span> <span class="n">eta_secs</span><span class="p">)</span>
+            <span class="n">etf</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">{hours:02d}</span><span class="s2">:</span><span class="si">{minutes:02d}</span><span class="s2">:</span><span class="si">{seconds:02d}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">hours</span> <span class="o">=</span> <span class="n">fintime</span><span class="o">.</span><span class="n">tm_hour</span><span class="p">,</span>
+                                                                   <span class="n">minutes</span> <span class="o">=</span> <span class="n">fintime</span><span class="o">.</span><span class="n">tm_min</span><span class="p">,</span>
+                                                                   <span class="n">seconds</span> <span class="o">=</span> <span class="n">fintime</span><span class="o">.</span><span class="n">tm_sec</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">d</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">eta_secs</span><span class="o">/</span><span class="n">secs_per_day</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">d</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+                <span class="n">etf</span> <span class="o">=</span> <span class="s2">&quot;Tomorrow&quot;</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">etf</span> <span class="o">=</span> <span class="s2">&quot;In &quot;</span> <span class="o">+</span> <span class="n">d</span> <span class="o">+</span> <span class="s2">&quot; days&quot;</span>
+
+        <span class="c1"># modulo information</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="s1">&#39;modulo&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="n">modulo</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span> <span class="c1"># usual case</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">modulo</span> <span class="o">=</span> <span class="s1">&#39;%&#39;</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="s1">&#39;modulo&#39;</span><span class="p">])</span>
+
+        <span class="c1"># add up memory use from each thread</span>
+        <span class="n">mem_use</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">shared_memory</span><span class="p">[</span><span class="s2">&quot;memory_use_per_thread&quot;</span><span class="p">])</span>
+
+        <span class="n">verbose_print</span><span class="p">(</span>
+            <span class="s2">&quot;</span><span class="si">{system_number}</span><span class="s2">/</span><span class="si">{total_starcount}{modulo}</span><span class="s2"> </span><span class="si">{complete:5.1f}% c</span><span class="s2">omplete </span><span class="si">{hours:02d}</span><span class="s2">:</span><span class="si">{minutes:02d}</span><span class="s2">:</span><span class="si">{seconds:02d}</span><span class="s2"> ETA=</span><span class="si">{eta:7.1f}{units}</span><span class="s2"> tpr=</span><span class="si">{tpr:2.2e}</span><span class="s2"> ETF=</span><span class="si">{etf}</span><span class="s2"> mem:</span><span class="si">{mem_use:.1f}</span><span class="s2">MB&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+                <span class="n">system_number</span> <span class="o">=</span> <span class="n">system_number</span><span class="p">,</span>
+                <span class="n">total_starcount</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">&quot;_total_starcount&quot;</span><span class="p">],</span>
+                <span class="n">complete</span><span class="o">=</span><span class="p">(</span><span class="mf">100.0</span><span class="o">*</span><span class="n">system_number</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">1.0</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">&quot;_total_starcount&quot;</span><span class="p">]),</span>
+                <span class="n">modulo</span> <span class="o">=</span> <span class="n">modulo</span><span class="p">,</span>
+                <span class="n">hours</span> <span class="o">=</span> <span class="n">localtime</span><span class="o">.</span><span class="n">tm_hour</span><span class="p">,</span>
+                <span class="n">minutes</span> <span class="o">=</span> <span class="n">localtime</span><span class="o">.</span><span class="n">tm_min</span><span class="p">,</span>
+                <span class="n">seconds</span> <span class="o">=</span> <span class="n">localtime</span><span class="o">.</span><span class="n">tm_sec</span><span class="p">,</span>
+                <span class="n">eta</span> <span class="o">=</span> <span class="n">eta</span><span class="p">,</span>
+                <span class="n">units</span> <span class="o">=</span> <span class="n">units</span><span class="p">,</span>
+                <span class="n">tpr</span> <span class="o">=</span> <span class="n">tpr</span><span class="p">,</span>
+                <span class="n">etf</span> <span class="o">=</span> <span class="n">etf</span><span class="p">,</span>
+                <span class="n">mem_use</span> <span class="o">=</span> <span class="n">mem_use</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">&quot;verbosity&quot;</span><span class="p">],</span>
+            <span class="mi">1</span>
+        <span class="p">)</span></div>
+
+    <span class="k">def</span> <span class="nf">_mem_use</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Return current process memory use in MB. (Takes no arguments) Note: this is per-thread only.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="n">resource</span><span class="o">.</span><span class="n">getrusage</span><span class="p">(</span><span class="n">resource</span><span class="o">.</span><span class="n">RUSAGE_SELF</span><span class="p">)</span><span class="o">.</span><span class="n">ru_maxrss</span> <span class="o">/</span> <span class="mf">1024.0</span></div>
 </pre></div>
 
            </div>
@@ -4225,9 +4442,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/grid_options_defaults.html b/docs/build/html/_modules/binarycpython/utils/grid_options_defaults.html
index e0fdf688e..4811d9522 100644
--- a/docs/build/html/_modules/binarycpython/utils/grid_options_defaults.html
+++ b/docs/build/html/_modules/binarycpython/utils/grid_options_defaults.html
@@ -157,16 +157,16 @@
             
   <h1>Source code for binarycpython.utils.grid_options_defaults</h1><div class="highlight"><pre>
 <span></span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">Module that contains the default options for the population grid code along with the description for these options, in the form of dictionaries: </span>
+<span class="sd">Module that contains the default options for the population grid code along with the description for these options, in the form of dictionaries:</span>
 <span class="sd">    - grid_options_defaults_dict: dictionary containing the default values for all the options</span>
 <span class="sd">    - grid_options_descriptions: dictionary containing the description for these options.</span>
 
 <span class="sd">There are several other functions in this module, mostly to generate help texts or documents:</span>
-<span class="sd">    - grid_options_help: interactive function for the user to get descriptions for options </span>
+<span class="sd">    - grid_options_help: interactive function for the user to get descriptions for options</span>
 <span class="sd">    - grid_options_description_checker: function that checks that checks which options have a description.</span>
 <span class="sd">    - write_grid_options_to_rst_file: function to generate the .rst document for the docs</span>
 
-<span class="sd">With this its also possible to automatically generate a document containing all the setting names + descriptions. </span>
+<span class="sd">With this its also possible to automatically generate a document containing all the setting names + descriptions.</span>
 
 <span class="sd">All the options starting with _ should not be changed by the user except when you really know what you&#39;re doing (which is probably hacking the code :P)</span>
 <span class="sd">&quot;&quot;&quot;</span>
@@ -208,6 +208,7 @@
     <span class="s2">&quot;log_file&quot;</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">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;binary_c_python.log&quot;</span>
     <span class="p">),</span>  <span class="c1"># Set to None to not log to file. The directory will be created</span>
+    <span class="s2">&quot;log_dt&quot;</span> <span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="c1"># time between vb=1 logging outputs</span>
     <span class="c1">##########################</span>
     <span class="c1"># binary_c files</span>
     <span class="c1">##########################</span>
@@ -633,7 +634,7 @@
     <span class="s2">&quot;_main_pid&quot;</span><span class="p">:</span> <span class="s2">&quot;Main process ID of the master process. Used and set by the population object.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_store_memaddr&quot;</span><span class="p">:</span> <span class="s2">&quot;Memory address of the store object for binary_c.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;failed_systems_threshold&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing the maximum amount of systems that are allowed to fail before logging their command line arguments to failed_systems log files&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;parse_function&quot;</span><span class="p">:</span> <span class="s2">&quot;Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the grid_options[&#39;results&#39;] dictionary, or just output results to a file&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;parse_function&quot;</span><span class="p">:</span> <span class="s2">&quot;Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the self.grid_results dictionary, or just output results to a file&quot;</span><span class="p">,</span>
     <span class="s2">&quot;condor&quot;</span><span class="p">:</span> <span class="s2">&quot;Int flag whether to use a condor type population evolution. Not implemented yet.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: describe this in more detail</span>
     <span class="s2">&quot;slurm&quot;</span><span class="p">:</span> <span class="s2">&quot;Int flag whether to use a Slurm type population evolution.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: describe this in more detail</span>
     <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="s2">&quot;Weight factor for each system. The calculated probability is multiplied by this. If the user wants each system to be repeated several times, then this variable should not be changed, rather change the _repeat variable instead, as that handles the reduction in probability per system. This is useful for systems that have a process with some random element in it.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: add more info here, regarding the evolution splitting.</span>
@@ -692,7 +693,7 @@
         <span class="s2">&quot;ecc&quot;</span><span class="p">:</span> <span class="p">[</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.99</span><span class="p">],</span>
     <span class="p">},</span>
     <span class="c1"># minimum stellar mass</span>
-    <span class="s2">&quot;Mmin&quot;</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</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="s1">&#39;macros&#39;</span><span class="p">][</span><span class="s1">&#39;BINARY_C_MINIMUM_STELLAR_MASS&#39;</span><span class="p">]),</span> <span class="c1"># We take the value that binary_c has set as the default </span>
+    <span class="s2">&quot;Mmin&quot;</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</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="s1">&#39;macros&#39;</span><span class="p">][</span><span class="s1">&#39;BINARY_C_MINIMUM_STELLAR_MASS&#39;</span><span class="p">]),</span> <span class="c1"># We take the value that binary_c has set as the default</span>
 
     <span class="c1"># multiplicity model (as a function of log10M1)</span>
     <span class="c1">#</span>
@@ -1007,9 +1008,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">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 64e1f27cc..6269a61c3 100644
--- a/docs/build/html/_modules/binarycpython/utils/plot_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/plot_functions.html
@@ -829,9 +829,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">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 70d649d6a..7f1a50500 100644
--- a/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html
+++ b/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html
@@ -298,9 +298,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/spacing_functions.html b/docs/build/html/_modules/binarycpython/utils/spacing_functions.html
index 6fa1aeaec..c890ee053 100644
--- a/docs/build/html/_modules/binarycpython/utils/spacing_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/spacing_functions.html
@@ -209,9 +209,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">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 8a34e2326..0a193b389 100644
--- a/docs/build/html/_modules/binarycpython/utils/useful_funcs.html
+++ b/docs/build/html/_modules/binarycpython/utils/useful_funcs.html
@@ -566,9 +566,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index 5306f95ef..fc09ef11f 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -189,9 +189,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">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 9d05193ac..cdce51580 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**: 6162:20210825:093caf0e9	**Built on**: Aug 25 2021 18:02:39
+	**binary_c git branch**: newmaster	**binary_c git revision**: 6185:20210910:1621c23a5	**Built on**: Sep 10 2021 15:05:46
 
 
 Section: stars
@@ -424,6 +424,11 @@ Section: stars
 | **Parameter input type**: Float(scanf)
 | **Default value**: NULL
 
+| **Parameter**: artificial_mass_accretion_rate_by_stellar_type%d
+| **Description**: Constant mass accretion rate for stellar type <n>.
+| **Parameter input type**: Float(scanf)
+| **Default value**: NULL
+
 | **Parameter**: artificial_angular_momentum_accretion_rate%d
 | **Description**: Constant angular momentum accretion for star <n>.
 | **Parameter input type**: Float(scanf)
@@ -468,13 +473,6 @@ Section: stars
 | **Default value**: 0
 | **Macros**: ['BH_HURLEY2002 = 0', 'BH_BELCZYNSKI = 1', 'BH_SPERA2015 = 2', 'BH_FRYER12_DELAYED = 3', 'BH_FRYER12_RAPID = 4', 'BH_FRYER12_STARTRACK = 5']
 
-| **Parameter**: PPISN_prescription
-| **Description**: (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019.
-| **Parameter input type**: Integer
-| **Default value**: 1
-| **Macros**: ['PPISN_NONE = 0', 'PPISN_FARMER19 = 1']
-| **Extra**: Ignore
-
 | **Parameter**: sn_kick_distribution_II
 | **Description**: 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).
 | **Parameter input type**: Integer
@@ -502,7 +500,7 @@ Section: stars
 | **Parameter**: sn_kick_distribution_GRB_COLLAPSAR
 | **Description**: 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).
 | **Parameter input type**: Integer
-| **Default value**: 0
+| **Default value**: 1
 | **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
 
 | **Parameter**: sn_kick_distribution_TZ
@@ -541,24 +539,6 @@ Section: stars
 | **Default value**: 0
 | **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
 
-| **Parameter**: sn_kick_distribution_PPISN
-| **Description**: Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Integer
-| **Default value**: 1
-| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
-
-| **Parameter**: sn_kick_distribution_PISN
-| **Description**: Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Integer
-| **Default value**: 0
-| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
-
-| **Parameter**: sn_kick_distribution_PHDIS
-| **Description**: Set the distribution of speeds applied to PHDIS supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Integer
-| **Default value**: 0
-| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
-
 | **Parameter**: sn_kick_dispersion_II
 | **Description**: 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).
 | **Parameter input type**: Float
@@ -582,7 +562,7 @@ Section: stars
 | **Parameter**: sn_kick_dispersion_GRB_COLLAPSAR
 | **Description**: 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).
 | **Parameter input type**: Float
-| **Default value**: 0
+| **Default value**: 190
 
 | **Parameter**: sn_kick_dispersion_TZ
 | **Description**: 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).
@@ -614,21 +594,6 @@ Section: stars
 | **Parameter input type**: Float
 | **Default value**: 0
 
-| **Parameter**: sn_kick_dispersion_PPISN
-| **Description**: Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Float
-| **Default value**: 190
-
-| **Parameter**: sn_kick_dispersion_PISN
-| **Description**: Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Float
-| **Default value**: 0
-
-| **Parameter**: sn_kick_dispersion_PHDIS
-| **Description**: Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Float
-| **Default value**: 0
-
 | **Parameter**: sn_kick_companion_IA_He
 | **Description**: 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.
 | **Parameter input type**: Float
@@ -749,24 +714,6 @@ Section: stars
 | **Default value**: 0
 | **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
 
-| **Parameter**: sn_kick_companion_PPISN
-| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.
-| **Parameter input type**: Float
-| **Default value**: 0
-| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
-
-| **Parameter**: sn_kick_companion_PISN
-| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.
-| **Parameter input type**: Float
-| **Default value**: 0
-| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
-
-| **Parameter**: sn_kick_companion_PHDIS
-| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.
-| **Parameter input type**: Float
-| **Default value**: 0
-| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
-
 | **Parameter**: wd_sigma
 | **Description**: 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.
 | **Parameter input type**: Float
@@ -827,22 +774,22 @@ Section: stars
 | **Parameter**: delta_mcmin
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lambda_min
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lambda_multiplier
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: minimum_envelope_mass_for_third_dredgeup
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0.5
 
 | **Parameter**: mass_of_pmz
 | **Description**: 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.
@@ -852,12 +799,12 @@ Section: stars
 | **Parameter**: c13_eff
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: mc13_pocket_multiplier
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: tides_convective_damping
 | **Description**: Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989: Zahn 1989 lambdas + Hut.
@@ -879,7 +826,7 @@ Section: stars
 | **Parameter**: hbbtfac
 | **Description**: A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined)
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: wind_multiplier_%d
 | **Description**: Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0.
@@ -951,7 +898,7 @@ Section: stars
 | **Parameter**: MINT_metallicity
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: -1
 
 | **Parameter**: gaia_Teff_binwidth
 | **Description**: log10(Effective temperature) bin width used to make Gaia-like HRDs
@@ -978,25 +925,25 @@ Section: stars
 | **Parameter**: AGB_core_algorithm
 | **Description**: 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).
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_CORE_ALGORITHM_DEFAULT = 0', 'AGB_CORE_ALGORITHM_HURLEY = 1', 'AGB_CORE_ALGORITHM_KARAKAS = 2']
 
 | **Parameter**: AGB_radius_algorithm
 | **Description**: Algorithm to use for calculating radii on the TPAGB.
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_RADIUS_ALGORITHM_DEFAULT = 0', 'AGB_RADIUS_ALGORITHM_HURLEY = 1', 'AGB_RADIUS_ALGORITHM_KARAKAS = 2']
 
 | **Parameter**: AGB_luminosity_algorithm
 | **Description**: Algorithm to use for calculating luminosities on the TPAGB.
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_LUMINOSITY_ALGORITHM_DEFAULT = 0', 'AGB_LUMINOSITY_ALGORITHM_HURLEY = 1', 'AGB_LUMINOSITY_ALGORITHM_KARAKAS = 2']
 
 | **Parameter**: AGB_3dup_algorithm
 | **Description**: Algorithm to use for calculating third dredge up efficiency on the TPAGB.
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_THIRD_DREDGE_UP_ALGORITHM_DEFAULT = 0', 'AGB_THIRD_DREDGE_UP_ALGORITHM_HURLEY = 1', 'AGB_THIRD_DREDGE_UP_ALGORITHM_KARAKAS = 2', 'AGB_THIRD_DREDGE_UP_ALGORITHM_STANCLIFFE = 3']
 
 | **Parameter**: overspin_algorithm
@@ -1136,6 +1083,21 @@ Section: stars
 | **Parameter input type**: True|False
 | **Default value**: False
 
+| **Parameter**: degenerate_core_merger_nucsyn
+| **Description**: 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)
+| **Parameter input type**: True|False
+| **Default value**: False
+
+| **Parameter**: degenerate_core_helium_merger_ignition
+| **Description**: 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)
+| **Parameter input type**: True|False
+| **Default value**: True
+
+| **Parameter**: degenerate_core_merger_dredgeup_fraction
+| **Description**: If non-zero, mix this fraction of the degenerate core during a merger.(0.0).
+| **Parameter input type**: Float
+| **Default value**: 0
+
 Section: binary
 ---------------
 
@@ -1308,7 +1270,7 @@ Section: binary
 | **Parameter**: post_ce_objects_have_envelopes
 | **Description**: 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.
 | **Parameter input type**: True|False
-| **Default value**: True
+| **Default value**: False
 
 | **Parameter**: PN_comenv_transition_time
 | **Description**: 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.
@@ -1478,18 +1440,20 @@ Section: binary
 | **Parameter**: type_Ia_MCh_supernova_algorithm
 | **Description**: 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) 
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['TYPE_IA_MCH_SUPERNOVA_ALGORITHM_DD2 = 0', 'TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013 = 1', 'TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013_AUTOMATIC = 2']
 
 | **Parameter**: Seitenzahl2013_model
 | **Description**: 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).
 | **Parameter input type**: String
-| **Default value**: NULL
+| **Default value**: N100
 | **Extra**: N1
 
 | **Parameter**: type_Ia_sub_MCh_supernova_algorithm
 | **Description**: Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['TYPE_IA_SUB_MCH_SUPERNOVA_ALGORITHM_LIVNE_ARNETT_1995 = 0']
 
 | **Parameter**: max_HeWD_mass
 | **Description**: The maximum mass a HeWD can have before it ignites helium (0.7).
@@ -2130,7 +2094,7 @@ Section: nucsyn
 | **Parameter**: NeNaMgAl
 | **Description**: Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: Ignore
 
 | **Parameter**: nucsyn_network%d
@@ -2151,19 +2115,21 @@ Section: nucsyn
 | **Parameter**: nucsyn_metallicity
 | **Description**: 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!
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: -1
 | **Macros**: ['DEFAULT_TO_METALLICITY = -1']
 
 | **Parameter**: nucsyn_solver
 | **Description**: 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. 
 | **Parameter input type**: Unsigned integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['NUCSYN_SOLVER_KAPS_RENTROP = 0', 'NUCSYN_SOLVER_LSODA = 1', 'NUCSYN_SOLVER_CVODE = 2', 'NUCSYN_SOLVER_NUMBER = 3', 'NUCSYN_SOLVER_KAPS_RENTROP = 0', 'NUCSYN_SOLVER_LSODA = 1', 'NUCSYN_SOLVER_CVODE = 2', 'NUCSYN_SOLVER_NUMBER = 3']
 | **Extra**: 0
 
 | **Parameter**: initial_abundance_mix
 | **Description**: initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993
 | **Parameter input type**: Unsigned integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['NUCSYN_INIT_ABUND_MIX_AG89 = 0', 'NUCSYN_INIT_ABUND_MIX_KARAKAS2002 = 1', 'NUCSYN_INIT_ABUND_MIX_LODDERS2003 = 2', 'NUCSYN_INIT_ABUND_MIX_ASPLUND2005 = 3', 'NUCSYN_INIT_ABUND_MIX_GARCIABERRO = 4', 'NUCSYN_INIT_ABUND_MIX_GREVESSE_NOELS_1993 = 5', 'NUCSYN_INIT_ABUND_MIX_ASPLUND2009 = 6', 'NUCSYN_INIT_ABUND_MIX_KOBAYASHI2011_ASPLUND2009 = 7', 'NUCSYN_INIT_ABUND_MIX_LODDERS2010 = 8']
 | **Extra**: 0
 
 | **Parameter**: init_abund
@@ -2187,37 +2153,38 @@ Section: nucsyn
 | **Parameter**: init_abunds_only
 | **Description**: If True, outputs only the initial abundances, then exits.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: initial_abunds_only
 | **Description**: If True, outputs only the initial abundances, then exits.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: no_thermohaline_mixing
 | **Description**: If True, disables thermohaline mixing.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: lithium_GB_post_Heflash
 | **Description**: Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lithium_GB_post_1DUP
 | **Description**: Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lithium_hbb_multiplier
 | **Description**: Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: angelou_lithium_decay_function
 | **Description**: Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are: 0 expoential (see angelou_lithium_decay_time).
 | **Parameter input type**: Integer
 | **Default value**: NULL
+| **Macros**: ['ANGELOU_LITHIUM_DECAY_FUNCTION_EXPONENTIAL = 0']
 
 | **Parameter**: angelou_lithium_LMMS_time
 | **Description**: 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).
@@ -2337,16 +2304,10 @@ Section: nucsyn
 Section: output
 ---------------
 
-| **Parameter**: david_logging_function
-| **Description**: Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, >0 for custom logging functions
-| **Parameter input type**: Integer
-| **Default value**: 0
-| **Extra**: Ignore
-
 | **Parameter**: cf_amanda_log
 | **Description**: Enable logging to compare to Amanda's models.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: float_overflow_checks
 | **Description**: 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)
@@ -2386,7 +2347,7 @@ Section: output
 | **Parameter**: legacy_yields
 | **Description**: Turn on ensemble legacy yield output.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: ensemble_defer
 | **Description**: Defer ensemble output.
@@ -2426,27 +2387,27 @@ Section: output
 | **Parameter**: EMP_logg_maximum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 4
 
 | **Parameter**: EMP_minimum_age
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 10
 
 | **Parameter**: EMP_feh_maximum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: -2
 
 | **Parameter**: CEMP_cfe_minimum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0.7
 
 | **Parameter**: NEMP_cfe_minimum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: thick_disc_start_age
 | **Description**: Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr.
@@ -2582,99 +2543,99 @@ Section: input
 | **Parameter**: MINT_dir
 | **Description**: Location of MINT algorithm data.
 | **Parameter input type**: String
-| **Default value**: NULL
+| **Default value**: 
 | **Extra**: 
 
 | **Parameter**: MINT_data_cleanup
 | **Description**: Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_MS_rejuvenation
 | **Description**: Turn on or off (hydrogen) main-sequence rejuvenation.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: 
 
 | **Parameter**: MINT_remesh
 | **Description**: Turn on or off MINT's remeshing.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: 
 
 | **Parameter**: MINT_use_ZAMS_profiles
 | **Description**: 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.)
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: 
 
 | **Parameter**: MINT_fallback_to_test_data
 | **Description**: If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE)
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_disable_grid_load_warnings
 | **Description**: Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_Kippenhahn
 | **Description**: 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.
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 0
 | **Extra**: 
 
 | **Parameter**: MINT_nshells
 | **Description**: 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)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 200
 | **Extra**: 
 
 | **Parameter**: MINT_maximum_nshells
 | **Description**: 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)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 1000
 | **Extra**: 
 
 | **Parameter**: MINT_minimum_nshells
 | **Description**: 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)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 10
 | **Extra**: 
 
 | **Parameter**: MINT_Kippenhahn_stellar_type
 | **Description**: Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output.
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: -1
 | **Macros**: ['LOW_MASS_MS = 0', 'MS = 1', 'HG = 2', 'GIANT_BRANCH = 3', 'CHeB = 4', 'EAGB = 5', 'TPAGB = 6', 'HeMS = 7', 'HeHG = 8', 'HeGB = 9', 'HeWD = 10', 'COWD = 11', 'ONeWD = 12', 'NS = 13', 'BH = 14', 'MASSLESS_REMNANT = 15']
 | **Extra**: 
 
 | **Parameter**: MINT_Kippenhahn_companion_stellar_type
 | **Description**: 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.
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: -1
 | **Macros**: ['LOW_MASS_MS = 0', 'MS = 1', 'HG = 2', 'GIANT_BRANCH = 3', 'CHeB = 4', 'EAGB = 5', 'TPAGB = 6', 'HeMS = 7', 'HeHG = 8', 'HeGB = 9', 'HeWD = 10', 'COWD = 11', 'ONeWD = 12', 'NS = 13', 'BH = 14', 'MASSLESS_REMNANT = 15']
 | **Extra**: 
 
 | **Parameter**: MINT_nuclear_burning
 | **Description**: Turn on or off MINT's nuclear burning algorithm.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_minimum_shell_mass
 | **Description**: Minimum shell mass in MINT's nuclear burning routines.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1e-06
 | **Extra**: 
 
 | **Parameter**: MINT_maximum_shell_mass
 | **Description**: Maximum shell mass in MINT's nuclear burning routines. :
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0.1
 | **Extra**: 
 
 Section: i/o
diff --git a/docs/build/html/_sources/example_notebooks.rst.txt b/docs/build/html/_sources/example_notebooks.rst.txt
index 7e2eef403..d15ea559a 100644
--- a/docs/build/html/_sources/example_notebooks.rst.txt
+++ b/docs/build/html/_sources/example_notebooks.rst.txt
@@ -2,7 +2,7 @@ Example notebooks
 =================
 We have a set of notebooks that explain and show the usage of the binarycpython features. The notebooks are also stored in the examples/ directory in the `repository <https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master/examples>`_
 
-The order of the notebooks below is more or less the recommended order to read.
+The order of the notebooks below is more or less the recommended order to read. The last couple of notebooks are example usecases
 
 .. toctree::
     :maxdepth: 2
@@ -12,4 +12,6 @@ The order of the notebooks below is more or less the recommended order to read.
     notebook_custom_logging.ipynb
     notebook_population.ipynb
     notebook_extra_features.ipynb
-    notebook_api_functionality.ipynb
\ No newline at end of file
+    notebook_api_functionality.ipynb
+    notebook_luminosity_function_single.ipynb
+    notebook_luminosity_function_binaries.ipynb
\ No newline at end of file
diff --git a/docs/build/html/_sources/grid_options_descriptions.rst.txt b/docs/build/html/_sources/grid_options_descriptions.rst.txt
index 319b8d56a..84538e2c4 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 1 options that are not described yet.
+There are 2 options that are not described yet.
 
 
 Public options
@@ -35,6 +35,8 @@ The following options are meant to be changed by the user.
 
 | **log_args_dir**: Directory to log the arguments to. Unused
 
+| **log_dt**: No description available yet
+
 | **log_file**: Log file for the population object. Unused
 
 | **log_runtime_systems**: Whether to log the runtime of the systems . Each systems run by the thread is logged to a file and is stored in the tmp_dir. (1 file per thread). Don't use this if you are planning to run a lot of systems. This is mostly for debugging and finding systems that take long to run. Integer, default = 0. if value is 1 then the systems are logged
@@ -47,7 +49,7 @@ The following options are meant to be changed by the user.
 
 | **multiplicity_fraction_function**: Which multiplicity fraction function to use. 0: None, 1: Arenou 2010, 2: Rhagavan 2010, 3: M&S 2017
 
-| **parse_function**: Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the grid_options['results'] dictionary, or just output results to a file
+| **parse_function**: Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the self.grid_results dictionary, or just output results to a file
 
 | **repeat**: Factor of how many times a system should be repeated. Consider the evolution splitting binary_c argument for supernovae kick repeating.
 
diff --git a/docs/build/html/_sources/notebook_api_functionality.ipynb.txt b/docs/build/html/_sources/notebook_api_functionality.ipynb.txt
index d81c31711..8d454880c 100644
--- a/docs/build/html/_sources/notebook_api_functionality.ipynb.txt
+++ b/docs/build/html/_sources/notebook_api_functionality.ipynb.txt
@@ -15,7 +15,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "id": "ded7eaf6-e1ba-46c2-9f6f-9ebcb14a264d",
    "metadata": {},
    "outputs": [
@@ -30,37 +30,69 @@
       "\n",
       "FUNCTIONS\n",
       "    free_persistent_data_memaddr_and_return_json_output(...)\n",
-      "        Frees the persistent_data memory and returns the json output\n",
+      "        Frees the persistent_data memory and returns the json output.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the persistent data object (contains the ensemble)\n",
       "    \n",
       "    free_store_memaddr(...)\n",
-      "        Frees the store memaddr\n",
+      "        Frees the store memaddr.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the store object\n",
       "    \n",
       "    return_arglines(...)\n",
       "        Return the default args for a binary_c system\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_help(...)\n",
       "        Return the help info for a given parameter\n",
+      "        \n",
+      "        Arguments:\n",
+      "                parameter: parameter name.\n",
       "    \n",
       "    return_help_all(...)\n",
       "        Return an overview of all the parameters, their description, categorized in sections\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_maximum_mass_ratio_for_RLOF(...)\n",
-      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at zams. Optionally accepts a store_capsule. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_minimum_orbit_for_RLOF(...)\n",
-      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at zams. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_persistent_data_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_store_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_version_info(...)\n",
       "        Return the version information of the used binary_c build\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    run_system(...)\n",
-      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things. \n",
+      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things.\n",
       "        \n",
       "        Arguments:\n",
       "                argstring: argument string for binary_c\n",
@@ -126,7 +158,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 2,
    "id": "10a74d5a-a3d5-4543-a5bc-20d1fe885bb4",
    "metadata": {},
    "outputs": [
@@ -134,8 +166,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "<capsule object \"STORE\" at 0x7f163859d0c0>\n",
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
+      "<capsule object \"STORE\" at 0x7fa6a45ed180>\n",
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
       "\n"
      ]
     }
@@ -183,7 +215,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 3,
    "id": "318874f6-7acf-49bb-9786-299d4dffc0b3",
    "metadata": {},
    "outputs": [
@@ -217,7 +249,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 4,
    "id": "d7e757ae-579c-42a2-a310-f0401b7800e8",
    "metadata": {
     "scrolled": true,
@@ -291,6 +323,9 @@
       "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",
@@ -310,7 +345,9 @@
       "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",
@@ -318,8 +355,7 @@
       "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. 0=Hurley et al 2000/2002, 1=Belczynski (early 2000s). : (null)\n",
-      "PPISN_prescription : (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019. : Ignore\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",
@@ -331,9 +367,6 @@
       "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_distribution_PPISN : Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PISN : Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PHDIS : Set the distribution of speeds applied to PHDIS supernovae. 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",
@@ -345,9 +378,6 @@
       "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_dispersion_PPISN : Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PISN : Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PHDIS : Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 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",
@@ -368,9 +398,6 @@
       "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",
-      "sn_kick_companion_PPISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PHDIS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 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",
@@ -443,6 +470,11 @@
       "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",
@@ -709,7 +741,6 @@
       "############################################################\n",
       "##### Section Output\n",
       "############################################################\n",
-      "david_logging_function : Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, >0 for custom logging functions : Ignore\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",
@@ -739,6 +770,7 @@
       "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",
@@ -763,8 +795,12 @@
       "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",
@@ -825,7 +861,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 5,
    "id": "3d29ca9d-ac66-4f9e-81cf-2edd14a98b79",
    "metadata": {},
    "outputs": [
@@ -854,7 +890,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "id": "e517f561-09c6-419d-ba89-d9cb61e6ebab",
    "metadata": {},
    "outputs": [
@@ -887,7 +923,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 46,
+   "execution_count": 7,
    "id": "7da75a95-8831-4346-a584-e042ced75249",
    "metadata": {},
    "outputs": [
diff --git a/docs/build/html/_sources/notebook_custom_logging.ipynb.txt b/docs/build/html/_sources/notebook_custom_logging.ipynb.txt
index 05ffbccfc..84e41e6bc 100644
--- a/docs/build/html/_sources/notebook_custom_logging.ipynb.txt
+++ b/docs/build/html/_sources/notebook_custom_logging.ipynb.txt
@@ -11,7 +11,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 1,
    "id": "696ecbb9-1efd-48f4-a57e-2cf6dfe416f1",
    "metadata": {},
    "outputs": [],
@@ -65,7 +65,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 2,
    "id": "236cf821-09ac-4237-9b8f-6e36d2edf446",
    "metadata": {},
    "outputs": [
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 3,
    "id": "feb423d5-5cc3-433c-9801-f8017abbc03a",
    "metadata": {},
    "outputs": [
@@ -110,7 +110,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 4,
    "id": "2f5defbf-c623-49ed-a238-fba52a563a58",
    "metadata": {},
    "outputs": [
@@ -155,7 +155,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 5,
    "id": "dcd74bbc-478b-43e4-b495-8c456e8d1d88",
    "metadata": {},
    "outputs": [
@@ -195,7 +195,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 6,
    "id": "77bd09b0-1a94-499d-97db-a1f991c67c12",
    "metadata": {},
    "outputs": [
@@ -203,10 +203,10 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_ABOVE_MS             1.041660877905e+02 4.99198 4.99198 6.1357 6.1357 2 1\n",
-      "EXAMPLE_ABOVE_MS             1.041662558619e+02 4.99198 4.99198 6.14057 6.1357 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662560111e+02 4.99198 4.99198 6.14057 6.14057 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662564579e+02 4.99198 4.99198 6.14059 6.14057 2 2\n"
+      "EXAMPLE_ABOVE_MS             1.044142002936e+02 4.99194 4.99194 6.13567 6.13567 2 1\n",
+      "EXAMPLE_ABOVE_MS             1.044572277695e+02 4.99192 4.99194 7.51803 6.13567 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.044654032097e+02 4.99192 4.99192 7.81395 7.51803 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.045084306856e+02 4.99191 4.99192 9.57443 7.81395 2 2\n"
      ]
     }
    ],
@@ -260,7 +260,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 7,
    "id": "30142286-34ce-433e-82c8-565e2160ff5b",
    "metadata": {},
    "outputs": [
@@ -336,7 +336,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 8,
    "id": "6f0edc65-a788-4706-a0c5-2ace030765ec",
    "metadata": {},
    "outputs": [
@@ -344,8 +344,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
-      "EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.446 13 5\n"
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
+      "EXAMPLE_LOG_CO             2.848380621869e+01 1.33469 9.1865 1.72498e-05 724.338 13 5\n"
      ]
     }
    ],
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 10,
    "id": "8f58fdf9-3e76-4c18-a1c5-eed0980d4133",
    "metadata": {},
    "outputs": [
@@ -403,8 +403,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_MASSLOSS             9.878236827680e+00 1.61349 8.38063 20 13 1\n",
-      "EXAMPLE_SN             9.878236827680e+00 1.61349 8.38063 20 12 13 5 1 6.74037 4.92267 6.74037 0 0\n"
+      "EXAMPLE_MASSLOSS             1.050651207308e+01 1.59452 9.34213 20 13 1\n",
+      "EXAMPLE_SN             1.050651207308e+01 1.59452 9.34213 20 12 13 5 1 6.55458 4.71662 6.55458\n"
      ]
     }
    ],
@@ -424,58 +424,27 @@
     "{\n",
     "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
     "    {\n",
-    "        if(stardata->pre_events_stardata != NULL)\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
-    "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->pre_events_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "        Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
+    "            \"%g %g %g %d \" // 2-5\n",
+    "            \"%d %d %g %g \" // 6-9\n",
+    "            \"%g %g\\\\n\", // 10-13\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->pre_events_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[ID_core(stardata->pre_events_stardata->star[0].stellar_type)],           // 9\n",
-    "\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
-    "        else\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
     "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->previous_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "            stardata->star[0].mass, //2\n",
+    "            stardata->previous_stardata->star[0].mass, //3\n",
+    "            stardata->common.zero_age.mass[0], //4\n",
+    "            stardata->star[0].SN_type, //5\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->previous_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
+    "            stardata->star[0].stellar_type, //6\n",
+    "            stardata->previous_stardata->star[0].stellar_type, //7\n",
+    "            stardata->model.probability, //8\n",
+    "            stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
     "\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_He]    // 11\n",
+    "        );\n",
     "    };\n",
     "    /* Kill the simulation to save time */\n",
     "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
@@ -491,6 +460,14 @@
     "# print (abridged) output\n",
     "print(\"\\n\".join(output.splitlines()[-2:]))"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "484297c0-accb-4efc-a9c8-dbd2f32b89a6",
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
diff --git a/docs/build/html/_sources/notebook_luminosity_function_binaries.ipynb.txt b/docs/build/html/_sources/notebook_luminosity_function_binaries.ipynb.txt
new file mode 100644
index 000000000..fb64dbcc9
--- /dev/null
+++ b/docs/build/html/_sources/notebook_luminosity_function_binaries.ipynb.txt
@@ -0,0 +1,839 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Zero-age stellar luminosity function in binaries\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of binary stars using binary_c. \n",
+    "\n",
+    "Before you go through this notebook, you should look at notebook_luminosity_function.ipynb which is for the - conceptually more simple - single stars.\n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    " )\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 1.0 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set up the binary grid in \"cubic\" M1 - M2=q*M1 - log10 period space\n",
+    "\n",
+    "population = Population()\n",
+    "\n",
+    "# resolution on each side of the cube, with more stars for the primary mass\n",
+    "nres = 10\n",
+    "resolution = {\"M_1\": 2*nres,\n",
+    "              \"q\": nres,\n",
+    "              \"per\": nres}\n",
+    "\n",
+    "massrange = [0.07,100]\n",
+    "logperrange = [0.15, 5.5]\n",
+    "\n",
+    "population.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min=massrange[0],max=massrange[1],res=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",
+    "    dphasevol=\"dlnm1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")\n",
+    "\n",
+    "# Mass ratio\n",
+    "population.add_grid_variable(\n",
+    "     name=\"q\",\n",
+    "     longname=\"Mass ratio\",\n",
+    "     valuerange=[\"0.1/M_1\", 1],\n",
+    "     resolution=\"{}\".format(resolution['q']),\n",
+    "     spacingfunc=\"const({}/M_1, 1, {})\".format(massrange[0],resolution['q']),\n",
+    "     probdist=\"flatsections(q, [{{'min': {}/M_1, 'max': 1.0, 'height': 1}}])\".format(massrange[0]),\n",
+    "     dphasevol=\"dq\",\n",
+    "     precode=\"M_2 = q * M_1\",\n",
+    "     parameter_name=\"M_2\",\n",
+    "     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    " )\n",
+    "\n",
+    "# Orbital period\n",
+    "population.add_grid_variable(\n",
+    "    name=\"log10per\", # in days\n",
+    "    longname=\"log10(Orbital_Period)\",\n",
+    "    valuerange=[0.15, 5.5],\n",
+    "    resolution=\"{}\".format(resolution[\"per\"]),\n",
+    "    spacingfunc=\"const({}, {}, {})\".format(logperrange[0],logperrange[1],resolution[\"per\"]),\n",
+    "    precode=\"\"\"orbital_period = 10.0 ** 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**{})\n",
+    "sep_max = calc_sep_from_period(M_1, M_2, 10**{})\"\"\".format(logperrange[0],logperrange[1]),\n",
+    "    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**{}), math.log10(10**{}), {})\".format(logperrange[0],logperrange[1],-0.55),\n",
+    "    parameter_name=\"orbital_period\",\n",
+    "    dphasevol=\"dlog10per\",\n",
+    " )"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The \n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STARn\n",
+    "#\n",
+    "# where:\n",
+    "#\n",
+    "# n = PRIMARY    = 0 is star 0 (primary star)\n",
+    "# n = SECONDARY  = 1 is star 1 (secondary star)\n",
+    "# n = UNRESOLVED = 2 is the unresolved system (both stars added)\n",
+    "\n",
+    "PRIMARY = 0\n",
+    "SECONDARY = 1\n",
+    "UNRESOLVED = 2\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "// select ZAMS\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "    // loop over the stars individually (equivalent to a resolved binary) \n",
+    "    Foreach_star(star)\n",
+    "    {\n",
+    "        // select main-sequence stars\n",
+    "        if(star->stellar_type <= MAIN_SEQUENCE)\n",
+    "        {\n",
+    "            /* Note that we use Printf - with a capital P! */\n",
+    "           Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  star->starnum,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0], // 2\n",
+    "                  star->mass, // 3\n",
+    "                  star->luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "        }\n",
+    "    }\n",
+    "    \n",
+    "    // unresolved MS-MS binary\n",
+    "    if(stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "       stardata->star[1].stellar_type <= MAIN_SEQUENCE) \n",
+    "    {\n",
+    "        Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  2,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0] + stardata->common.zero_age.mass[1], // 2\n",
+    "                  stardata->star[0].mass + stardata->star[1].mass, // 3\n",
+    "                  stardata->star[0].luminosity + stardata->star[1].luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "    }\n",
+    "}\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "import re\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        \n",
+    "        # check if we match a ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "        match = re.search('ZERO_AGE_MAIN_SEQUENCE_STAR(\\d)',line) \n",
+    "        if match:\n",
+    "            nstar = match.group(1) \n",
+    "            #print(\"matched star\",nstar)\n",
+    "\n",
+    "            # obtain the line of data in dictionary form \n",
+    "            linedata = datalinedict(line,parameters)\n",
+    "\n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][int(nstar)][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "collapsed": true,
+    "jupyter": {
+     "outputs_hidden": true
+    },
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: amt_cores=4 to grid_options\n",
+      "Running the population now, this may take a little while...\n",
+      "Creating and loading custom logging functionality\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "Grid has handled 2000 stars\n",
+      "with a total probability of 0.6495098935846658\n",
+      "Total starcount for this run will be: 2000\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:14:08,077 DEBUG    Process-2] --- Setting up processor: process-0[2021-09-10 15:14:08,080 DEBUG    Process-3] --- Setting up processor: process-1[2021-09-10 15:14:08,086 DEBUG    MainProcess] --- setting up the system_queue_filler now\n",
+      "\n",
+      "[2021-09-10 15:14:08,084 DEBUG    Process-4] --- Setting up processor: process-2\n",
+      "\n",
+      "[2021-09-10 15:14:08,117 DEBUG    Process-5] --- Setting up processor: process-3"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 started at 2021-09-10T15:14:08.119437.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>Process 0 started at 2021-09-10T15:14:08.126435.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>\n",
+      "Process 2 started at 2021-09-10T15:14:08.138353.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "\n",
+      "Process 3 started at 2021-09-10T15:14:08.186492.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "624/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB625/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.04e-03 ETF=15:14:23 mem:800.5MB\n",
+      "626/2000  31.3% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB\n",
+      "\n",
+      "713/2000  35.6% complete 15:14:17 ETA=    1.3m tpr=6.00e-02 ETF=15:15:34 mem:547.8MB\n",
+      "728/2000  36.4% complete 15:14:22 ETA=    7.1m tpr=3.37e-01 ETF=15:21:30 mem:548.1MB\n",
+      "743/2000  37.1% complete 15:14:27 ETA=    7.0m tpr=3.34e-01 ETF=15:21:26 mem:549.5MB\n",
+      "759/2000  38.0% complete 15:14:33 ETA=    7.7m tpr=3.73e-01 ETF=15:22:16 mem:550.5MB\n",
+      "774/2000  38.7% complete 15:14:38 ETA=    6.9m tpr=3.35e-01 ETF=15:21:29 mem:551.1MB\n",
+      "787/2000  39.4% complete 15:14:43 ETA=    7.8m tpr=3.88e-01 ETF=15:22:33 mem:551.1MB\n",
+      "799/2000  40.0% complete 15:14:48 ETA=    8.5m tpr=4.24e-01 ETF=15:23:17 mem:552.5MB\n",
+      "812/2000  40.6% complete 15:14:54 ETA=    8.4m tpr=4.23e-01 ETF=15:23:16 mem:554.8MB\n",
+      "830/2000  41.5% complete 15:14:59 ETA=    5.5m tpr=2.80e-01 ETF=15:20:26 mem:555.2MB\n",
+      "847/2000  42.4% complete 15:15:05 ETA=    6.8m tpr=3.52e-01 ETF=15:21:50 mem:555.2MB\n",
+      "864/2000  43.2% complete 15:15:10 ETA=    6.2m tpr=3.28e-01 ETF=15:21:23 mem:557.0MB\n",
+      "876/2000  43.8% complete 15:15:15 ETA=    8.2m tpr=4.38e-01 ETF=15:23:27 mem:559.7MB\n",
+      "887/2000  44.4% complete 15:15:21 ETA=    9.2m tpr=4.95e-01 ETF=15:24:32 mem:560.5MB\n",
+      "898/2000  44.9% complete 15:15:26 ETA=    9.2m tpr=4.99e-01 ETF=15:24:37 mem:560.5MB\n",
+      "908/2000  45.4% complete 15:15:32 ETA=    9.5m tpr=5.23e-01 ETF=15:25:03 mem:560.5MB\n",
+      "919/2000  46.0% complete 15:15:37 ETA=    8.3m tpr=4.60e-01 ETF=15:23:54 mem:560.9MB\n",
+      "934/2000  46.7% complete 15:15:42 ETA=    6.4m tpr=3.60e-01 ETF=15:22:06 mem:561.7MB\n",
+      "947/2000  47.4% complete 15:15:47 ETA=    7.2m tpr=4.08e-01 ETF=15:22:57 mem:561.7MB\n",
+      "956/2000  47.8% complete 15:15:53 ETA=   11.1m tpr=6.39e-01 ETF=15:27:01 mem:561.7MB\n",
+      "963/2000  48.1% complete 15:15:58 ETA=   12.6m tpr=7.30e-01 ETF=15:28:35 mem:561.7MB\n",
+      "969/2000  48.5% complete 15:16:04 ETA=   15.2m tpr=8.85e-01 ETF=15:31:16 mem:561.9MB\n",
+      "979/2000  49.0% complete 15:16:11 ETA=   11.9m tpr=7.01e-01 ETF=15:28:06 mem:562.0MB\n",
+      "988/2000  49.4% complete 15:16:16 ETA=    9.7m tpr=5.76e-01 ETF=15:25:59 mem:562.0MB\n",
+      "995/2000  49.8% complete 15:16:21 ETA=   12.3m tpr=7.37e-01 ETF=15:28:42 mem:562.2MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:16:25,175 DEBUG    MainProcess] --- Signaling stop to processes\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1003/2000  50.1% complete 15:16:26 ETA=   11.2m tpr=6.76e-01 ETF=15:27:40 mem:563.0MB\n",
+      "1015/2000  50.8% complete 15:16:32 ETA=    7.6m tpr=4.65e-01 ETF=15:24:10 mem:563.0MB\n",
+      "1025/2000  51.2% complete 15:16:37 ETA=    8.1m tpr=5.01e-01 ETF=15:24:45 mem:563.0MB\n",
+      "1033/2000  51.6% complete 15:16:42 ETA=   10.7m tpr=6.65e-01 ETF=15:27:26 mem:563.0MB\n",
+      "1040/2000  52.0% complete 15:16:47 ETA=   12.1m tpr=7.55e-01 ETF=15:28:52 mem:563.5MB\n",
+      "1048/2000  52.4% complete 15:16:53 ETA=   11.8m tpr=7.45e-01 ETF=15:28:42 mem:563.5MB\n",
+      "1057/2000  52.9% complete 15:16:59 ETA=    9.1m tpr=5.78e-01 ETF=15:26:03 mem:563.6MB\n",
+      "1062/2000  53.1% complete 15:17:04 ETA=   15.7m tpr=1.01e+00 ETF=15:32:47 mem:564.4MB\n",
+      "1069/2000  53.5% complete 15:17:09 ETA=   12.4m tpr=7.97e-01 ETF=15:29:31 mem:564.9MB\n",
+      "1077/2000  53.9% complete 15:17:15 ETA=   11.5m tpr=7.46e-01 ETF=15:28:44 mem:565.0MB\n",
+      "1085/2000  54.2% complete 15:17:20 ETA=   10.0m tpr=6.55e-01 ETF=15:27:20 mem:565.0MB\n",
+      "1091/2000  54.5% complete 15:17:26 ETA=   13.8m tpr=9.10e-01 ETF=15:31:13 mem:565.9MB\n",
+      "1099/2000  55.0% complete 15:17:32 ETA=   12.1m tpr=8.05e-01 ETF=15:29:37 mem:566.5MB\n",
+      "1114/2000  55.7% complete 15:17:37 ETA=    5.0m tpr=3.35e-01 ETF=15:22:34 mem:566.5MB\n",
+      "1126/2000  56.3% complete 15:17:43 ETA=    6.8m tpr=4.64e-01 ETF=15:24:29 mem:566.5MB\n",
+      "1134/2000  56.7% complete 15:17:48 ETA=    9.2m tpr=6.37e-01 ETF=15:27:00 mem:566.6MB\n",
+      "1139/2000  57.0% complete 15:17:54 ETA=   16.3m tpr=1.14e+00 ETF=15:34:13 mem:567.4MB\n",
+      "1148/2000  57.4% complete 15:17:59 ETA=    8.8m tpr=6.20e-01 ETF=15:26:47 mem:567.4MB\n",
+      "1156/2000  57.8% complete 15:18:05 ETA=    9.3m tpr=6.60e-01 ETF=15:27:22 mem:567.5MB\n",
+      "1162/2000  58.1% complete 15:18:11 ETA=   14.3m tpr=1.02e+00 ETF=15:32:28 mem:567.6MB\n",
+      "1168/2000  58.4% complete 15:18:17 ETA=   15.2m tpr=1.09e+00 ETF=15:33:27 mem:568.6MB\n",
+      "1177/2000  58.9% complete 15:18:23 ETA=    8.8m tpr=6.45e-01 ETF=15:27:14 mem:568.6MB\n",
+      "1181/2000  59.0% complete 15:18:28 ETA=   17.8m tpr=1.30e+00 ETF=15:36:16 mem:568.7MB\n",
+      "1187/2000  59.4% complete 15:18:34 ETA=   12.1m tpr=8.93e-01 ETF=15:30:40 mem:568.7MB\n",
+      "1194/2000  59.7% complete 15:18:39 ETA=    9.8m tpr=7.29e-01 ETF=15:28:26 mem:568.8MB\n",
+      "1202/2000  60.1% complete 15:18:44 ETA=    9.5m tpr=7.12e-01 ETF=15:28:12 mem:568.8MB\n",
+      "1219/2000  61.0% complete 15:18:51 ETA=    5.3m tpr=4.07e-01 ETF=15:24:09 mem:569.7MB\n",
+      "1228/2000  61.4% complete 15:18:57 ETA=    7.4m tpr=5.76e-01 ETF=15:26:21 mem:569.7MB\n",
+      "1234/2000  61.7% complete 15:19:02 ETA=   11.8m tpr=9.22e-01 ETF=15:30:48 mem:571.7MB1235/2000  61.8% complete 15:19:02 ETA=   10.1m tpr=7.92e-01 ETF=15:29:08 mem:571.7MB\n",
+      "\n",
+      "1243/2000  62.1% complete 15:19:07 ETA=    7.3m tpr=5.79e-01 ETF=15:26:26 mem:573.4MB\n",
+      "1251/2000  62.5% complete 15:19:13 ETA=    8.3m tpr=6.68e-01 ETF=15:27:33 mem:575.4MB\n",
+      "1260/2000  63.0% complete 15:19:19 ETA=    8.2m tpr=6.65e-01 ETF=15:27:31 mem:575.4MB\n",
+      "1268/2000  63.4% complete 15:19:24 ETA=    7.8m tpr=6.41e-01 ETF=15:27:13 mem:576.8MB\n",
+      "1276/2000  63.8% complete 15:19:29 ETA=    7.6m tpr=6.30e-01 ETF=15:27:05 mem:577.0MB\n",
+      "1282/2000  64.1% complete 15:19:34 ETA=   10.1m tpr=8.44e-01 ETF=15:29:40 mem:578.0MB\n",
+      "1289/2000  64.5% complete 15:19:40 ETA=   10.8m tpr=9.08e-01 ETF=15:30:26 mem:578.0MB\n",
+      "1295/2000  64.8% complete 15:19:46 ETA=   10.5m tpr=8.95e-01 ETF=15:30:16 mem:578.1MB\n",
+      "1309/2000  65.5% complete 15:19:51 ETA=    4.3m tpr=3.70e-01 ETF=15:24:06 mem:578.1MB\n",
+      "1323/2000  66.2% complete 15:19:58 ETA=    6.1m tpr=5.45e-01 ETF=15:26:07 mem:579.2MB\n",
+      "1332/2000  66.6% complete 15:20:03 ETA=    6.2m tpr=5.58e-01 ETF=15:26:16 mem:579.3MB\n",
+      "1338/2000  66.9% complete 15:20:09 ETA=   10.1m tpr=9.11e-01 ETF=15:30:12 mem:579.3MB\n",
+      "1346/2000  67.3% complete 15:20:18 ETA=   12.5m tpr=1.14e+00 ETF=15:32:46 mem:581.5MB\n",
+      "1355/2000  67.8% complete 15:20:25 ETA=    8.5m tpr=7.90e-01 ETF=15:28:54 mem:581.6MB\n",
+      "1359/2000  68.0% complete 15:20:30 ETA=   13.9m tpr=1.30e+00 ETF=15:34:26 mem:581.6MB\n",
+      "1366/2000  68.3% complete 15:20:38 ETA=   11.7m tpr=1.10e+00 ETF=15:32:18 mem:581.7MB\n",
+      "1376/2000  68.8% complete 15:20:44 ETA=    6.1m tpr=5.89e-01 ETF=15:26:51 mem:581.7MB\n",
+      "1384/2000  69.2% complete 15:20:49 ETA=    6.9m tpr=6.76e-01 ETF=15:27:46 mem:581.7MB\n",
+      "1393/2000  69.7% complete 15:20:55 ETA=    6.2m tpr=6.13e-01 ETF=15:27:07 mem:581.8MB1394/2000  69.7% complete 15:20:55 ETA=    5.6m tpr=5.52e-01 ETF=15:26:29 mem:581.8MB\n",
+      "\n",
+      "1423/2000  71.2% complete 15:21:00 ETA=    1.6m tpr=1.69e-01 ETF=15:22:37 mem:581.9MB\n",
+      "1435/2000  71.8% complete 15:21:07 ETA=    5.6m tpr=5.92e-01 ETF=15:26:42 mem:582.3MB\n",
+      "1443/2000  72.2% complete 15:21:12 ETA=    6.1m tpr=6.54e-01 ETF=15:27:17 mem:582.5MB\n",
+      "1445/2000  72.2% complete 15:21:18 ETA=   28.2m tpr=3.05e+00 ETF=15:49:28 mem:582.6MB\n",
+      "1448/2000  72.4% complete 15:21:25 ETA=   20.0m tpr=2.18e+00 ETF=15:41:27 mem:582.6MB\n",
+      "1454/2000  72.7% complete 15:21:31 ETA=    8.6m tpr=9.49e-01 ETF=15:30:09 mem:583.0MB\n",
+      "1455/2000  72.8% complete 15:21:37 ETA=   54.9m tpr=6.05e+00 ETF=16:16:32 mem:583.0MB\n",
+      "1459/2000  73.0% complete 15:21:43 ETA=   13.5m tpr=1.50e+00 ETF=15:35:12 mem:583.0MB\n",
+      "1465/2000  73.2% complete 15:21:48 ETA=    8.6m tpr=9.65e-01 ETF=15:30:25 mem:583.0MB\n",
+      "1474/2000  73.7% complete 15:21:54 ETA=    5.6m tpr=6.38e-01 ETF=15:27:30 mem:583.0MB\n",
+      "1482/2000  74.1% complete 15:21:59 ETA=    5.4m tpr=6.30e-01 ETF=15:27:26 mem:583.0MB\n",
+      "1485/2000  74.2% complete 15:22:04 ETA=   14.8m tpr=1.73e+00 ETF=15:36:54 mem:583.5MB\n",
+      "1487/2000  74.3% complete 15:22:10 ETA=   24.9m tpr=2.91e+00 ETF=15:47:02 mem:583.5MB\n",
+      "1496/2000  74.8% complete 15:22:16 ETA=    5.0m tpr=5.91e-01 ETF=15:27:13 mem:583.7MB\n",
+      "1509/2000  75.5% complete 15:22:21 ETA=    3.6m tpr=4.40e-01 ETF=15:25:57 mem:583.9MB\n",
+      "1523/2000  76.2% complete 15:22:27 ETA=    3.0m tpr=3.80e-01 ETF=15:25:28 mem:583.9MB\n",
+      "1531/2000  76.5% complete 15:22:33 ETA=    5.9m tpr=7.60e-01 ETF=15:28:29 mem:583.9MB\n",
+      "1537/2000  76.8% complete 15:22:38 ETA=    6.7m tpr=8.71e-01 ETF=15:29:21 mem:583.9MB\n",
+      "1545/2000  77.2% complete 15:22:44 ETA=    5.4m tpr=7.14e-01 ETF=15:28:08 mem:584.0MB\n",
+      "1555/2000  77.8% complete 15:22:49 ETA=    4.1m tpr=5.52e-01 ETF=15:26:55 mem:584.2MB\n",
+      "1564/2000  78.2% complete 15:22:54 ETA=    4.2m tpr=5.78e-01 ETF=15:27:06 mem:584.2MB\n",
+      "1574/2000  78.7% complete 15:23:00 ETA=    4.4m tpr=6.16e-01 ETF=15:27:23 mem:584.4MB\n",
+      "1584/2000  79.2% complete 15:23:07 ETA=    4.4m tpr=6.28e-01 ETF=15:27:28 mem:584.8MB\n",
+      "1594/2000  79.7% complete 15:23:12 ETA=    3.8m tpr=5.66e-01 ETF=15:27:02 mem:584.9MB\n",
+      "1607/2000  80.3% complete 15:23:17 ETA=    2.5m tpr=3.86e-01 ETF=15:25:49 mem:585.0MB\n",
+      "1618/2000  80.9% complete 15:23:24 ETA=    3.8m tpr=5.97e-01 ETF=15:27:12 mem:585.4MB\n",
+      "1628/2000  81.4% complete 15:23:29 ETA=    3.3m tpr=5.28e-01 ETF=15:26:46 mem:585.5MB\n",
+      "1635/2000  81.8% complete 15:23:34 ETA=    4.4m tpr=7.30e-01 ETF=15:28:01 mem:585.9MB\n",
+      "1645/2000  82.2% complete 15:23:40 ETA=    3.4m tpr=5.81e-01 ETF=15:27:06 mem:585.9MB\n",
+      "1655/2000  82.8% complete 15:23:47 ETA=    4.0m tpr=7.02e-01 ETF=15:27:49 mem:586.0MB1656/2000  82.8% complete 15:23:47 ETA=    3.7m tpr=6.39e-01 ETF=15:27:27 mem:586.0MB\n",
+      "\n",
+      "1664/2000  83.2% complete 15:23:54 ETA=    4.5m tpr=8.01e-01 ETF=15:28:23 mem:586.1MB\n",
+      "1674/2000  83.7% complete 15:24:02 ETA=    4.5m tpr=8.27e-01 ETF=15:28:31 mem:586.2MB\n",
+      "1684/2000  84.2% complete 15:24:07 ETA=    2.9m tpr=5.55e-01 ETF=15:27:03 mem:586.2MB\n",
+      "1691/2000  84.5% complete 15:24:13 ETA=    4.2m tpr=8.21e-01 ETF=15:28:27 mem:586.5MB\n",
+      "1699/2000  85.0% complete 15:24:19 ETA=    3.4m tpr=6.75e-01 ETF=15:27:42 mem:586.5MB\n",
+      "1713/2000  85.7% complete 15:24:24 ETA=    1.9m tpr=4.07e-01 ETF=15:26:21 mem:586.6MB\n",
+      "1725/2000  86.2% complete 15:24:31 ETA=    2.6m tpr=5.57e-01 ETF=15:27:04 mem:586.7MB\n",
+      "1735/2000  86.8% complete 15:24:38 ETA=    3.0m tpr=6.76e-01 ETF=15:27:37 mem:586.7MB\n",
+      "1745/2000  87.2% complete 15:24:44 ETA=    2.7m tpr=6.40e-01 ETF=15:27:27 mem:586.9MB\n",
+      "1755/2000  87.8% complete 15:24:51 ETA=    2.8m tpr=6.88e-01 ETF=15:27:40 mem:586.9MB\n",
+      "1763/2000  88.2% complete 15:24:56 ETA=    2.6m tpr=6.59e-01 ETF=15:27:32 mem:586.9MB\n",
+      "1767/2000  88.3% complete 15:25:02 ETA=    5.3m tpr=1.36e+00 ETF=15:30:18 mem:586.9MB\n",
+      "1776/2000  88.8% complete 15:25:09 ETA=    2.9m tpr=7.71e-01 ETF=15:28:01 mem:586.9MB\n",
+      "1785/2000  89.2% complete 15:25:14 ETA=    2.1m tpr=5.90e-01 ETF=15:27:21 mem:586.9MB\n",
+      "1793/2000  89.7% complete 15:25:19 ETA=    2.2m tpr=6.29e-01 ETF=15:27:29 mem:587.1MB\n",
+      "1801/2000  90.0% complete 15:25:24 ETA=    2.2m tpr=6.59e-01 ETF=15:27:35 mem:587.1MB\n",
+      "1812/2000  90.6% complete 15:25:29 ETA=    1.5m tpr=4.68e-01 ETF=15:26:57 mem:587.1MB\n",
+      "1822/2000  91.1% complete 15:25:35 ETA=    1.6m tpr=5.54e-01 ETF=15:27:14 mem:587.4MB\n",
+      "1830/2000  91.5% complete 15:25:41 ETA=    2.1m tpr=7.49e-01 ETF=15:27:48 mem:587.4MB\n",
+      "1839/2000  92.0% complete 15:25:47 ETA=    1.7m tpr=6.21e-01 ETF=15:27:27 mem:587.4MB\n",
+      "1847/2000  92.3% complete 15:25:52 ETA=    1.8m tpr=7.10e-01 ETF=15:27:41 mem:587.4MB\n",
+      "1855/2000  92.8% complete 15:25:59 ETA=    2.0m tpr=8.17e-01 ETF=15:27:57 mem:587.6MB\n",
+      "1864/2000  93.2% complete 15:26:05 ETA=    1.5m tpr=6.79e-01 ETF=15:27:37 mem:587.8MB\n",
+      "1873/2000  93.7% complete 15:26:10 ETA=    1.3m tpr=6.07e-01 ETF=15:27:27 mem:588.0MB\n",
+      "1884/2000  94.2% complete 15:26:16 ETA=   57.0s tpr=4.91e-01 ETF=15:27:13 mem:588.1MB\n",
+      "1895/2000  94.8% complete 15:26:21 ETA=   48.7s tpr=4.63e-01 ETF=15:27:09 mem:588.8MB\n",
+      "1907/2000  95.3% complete 15:26:27 ETA=   45.6s tpr=4.91e-01 ETF=15:27:12 mem:588.9MB\n",
+      "1916/2000  95.8% complete 15:26:33 ETA=   57.5s tpr=6.84e-01 ETF=15:27:30 mem:589.1MB\n",
+      "1926/2000  96.3% complete 15:26:39 ETA=   46.5s tpr=6.28e-01 ETF=15:27:26 mem:589.1MB\n",
+      "1936/2000  96.8% complete 15:26:46 ETA=   42.0s tpr=6.57e-01 ETF=15:27:28 mem:589.1MB\n",
+      "1946/2000  97.3% complete 15:26:53 ETA=   40.1s tpr=7.42e-01 ETF=15:27:33 mem:589.2MB\n",
+      "1956/2000  97.8% complete 15:26:59 ETA=   25.1s tpr=5.70e-01 ETF=15:27:24 mem:589.2MB\n",
+      "1966/2000  98.3% complete 15:27:04 ETA=   19.1s tpr=5.62e-01 ETF=15:27:24 mem:589.5MB\n",
+      "1976/2000  98.8% complete 15:27:10 ETA=   14.4s tpr=6.01e-01 ETF=15:27:25 mem:589.5MB\n",
+      "1987/2000  99.3% complete 15:27:16 ETA=    6.4s tpr=4.92e-01 ETF=15:27:22 mem:589.5MB\n",
+      "1998/2000  99.9% complete 15:27:21 ETA=    1.0s tpr=4.85e-01 ETF=15:27:22 mem:589.6MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,382 DEBUG    Process-5] --- Process-3 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 3 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.117391, done at 2021-09-10T15:27:22.400722 (total: 794.283331s of which 792.6935975551605s interfacing with binary_c).\n",
+      "\tRan 499 systems with a total probability of 0.17005450973840136.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,435 DEBUG    Process-5] --- Process-3 is finished.\n",
+      "[2021-09-10 15:27:22,480 DEBUG    Process-3] --- Process-1 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.080367, done at 2021-09-10T15:27:22.505288 (total: 794.424921s of which 793.1943278312683s interfacing with binary_c).\n",
+      "\tRan 474 systems with a total probability of 0.15740832333567983.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,531 DEBUG    Process-3] --- Process-1 is finished.\n",
+      "[2021-09-10 15:27:22,846 DEBUG    Process-2] --- Process-0 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 0 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.077117, done at 2021-09-10T15:27:22.851971 (total: 794.774854s of which 793.4976091384888s interfacing with binary_c).\n",
+      "\tRan 507 systems with a total probability of 0.16018641159091498.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,872 DEBUG    Process-2] --- Process-0 is finished.\n",
+      "[2021-09-10 15:27:22,976 DEBUG    Process-4] --- Process-2 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 2 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.084369, done at 2021-09-10T15:27:22.981706 (total: 794.897337s of which 793.4600214958191s interfacing with binary_c).\n",
+      "\tRan 520 systems with a total probability of 0.1618606489196724.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,986 DEBUG    Process-4] --- Process-2 is finished.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Population-0fa295ee5c76444bace8fd0ee17a3e11 finished! The total probability was: 0.6495098935846686. It took a total of 795.1383104324341s to run 2000 systems on 4 cores\n",
+      "There were no errors found in this run.\n",
+      "Done population run!\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=1,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=4,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "print(\"Running the population now, this may take a little while...\")\n",
+    "analytics = population.evolve()  \n",
+    "print(\"Done population run!\")\n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '0fa295ee5c76444bace8fd0ee17a3e11', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.6495098935846686, 'total_count': 2000, 'start_timestamp': 1631283248.057525, 'end_timestamp': 1631284043.1958354, 'total_mass_run': 41112.220964392276, 'total_probability_weighted_mass_run': 0.6452116023479681, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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p9///vdq2bKlJKlFixbavn274VSIBLNnz1aPHj1Uq1YtJSQkaMiQIZoyZYrpWIggWVlZuuWWW+TxeOR2u9WkSRNt27bNdCxEmIKCAj3xxBO66qqrTEdBBPrkk080fPhw1a5dW263W0888YQ6dOhgOhYiSDAYVCgUUllZmQKBgAKBgLxer+lYMYMB0//YvHmz6tatqwceeEBnnXWWbrjhBrndbtOxEGFmzJih8vJyDR061HQURCCPx6Ozzz5bkhQKhTR+/HgNHDjQcCpEgl27dikrK6vycnZ2tnbu3GkwESJNs2bN1LFjR0nShg0b9NFHH6l///5mQyHi3HnnnbrxxhuVkpJiOgoi0MaNGxUMBnX55ZfrrLPO0muvvabU1FTTsRBBkpKS9Pvf/17Dhg1Tv379lJubq86dO5uOFTNcpgOY8vHHH+vBBx884rqGDRtq+fLluv7663X77bfrrbfe0i233KJXXnnFUErY2U89hxo3bqzi4mK99NJLZkIhohztOfTSSy/J5/PplltuUSAQ0JVXXmkoISJJOBz+0XWWZRlIgki3Zs0aXXnllbr55pvVqFEj03EQQd566y3VqVNHPXv21Lvvvms6DiJQMBjU/Pnz9corryghIUHXXHONJk6cqHPPPdd0NESIlStX6p133tGnn36q5ORk/elPf9K//vUv/fa3vzUdLSZY4Z/6jTRGbdq0Seecc44WLFgg6UB/s0ePHlq8eLHhZIgUb731lv75z38qMTFR0oEfcC1bttSrr76qpKQkw+kQKUpKSnT11VerVq1aeuyxx+TxeExHQgSYOHGi5s+fr/vvv1+S9I9//EPhcFjXXXed4WSIJAsWLNANN9yg2267TWeccYbpOIgwv/nNb7R79245nU7t379fpaWlGjlypG677TbT0RAh/va3v6m4uFjjxo2TJL366qtas2aN7r77brPBEDFeeOEF7d27VzfffLMk6bPPPtNrr72m5557znCy2EBF7n80aNBAOTk5lRvJffrpp2rTpo3hVIgk5513nqZPn65JkyZp0qRJkg6cYsBwCSfiz3/+sxo2bKgnn3yS4RKOW69evTRnzhzl5+errKxM06ZNU79+/UzHQgTZvn27rr32Wj322GMMl/CLvPjii/rggw80adIk3XDDDTrttNMYLuGEnHrqqZo1a5YKCwsVDAb15Zdf8noMJ6Rly5aaPXu2SktLFQ6HNXPmTLVr1850rJgRsxW5oxk/frzuuusuPfroo0pKStJDDz1kOhKAGLJ8+XLNmDFDTZs21ciRIyUd2Evn+eefNxsMtpeTk6Mbb7xRF198sfx+v0aPHq327dubjoUI8q9//UsVFRVH/O4zduxYnX/++QZTAYglHTp00G9/+1tdcMEF8vv96t27t0aNGmU6FiJInz59tHz5cp177rlyu91q166drrjiCtOxYgYVOQAAAAAAAJwUKnIAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASWHABAAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAEPFOO+00zZ4923QMAACAmMWACQAAoIrl5+erRYsW2rlzp+koAAAANYIBEwAAQBV47LHH9OWXX0qSVq5cqfT0dOXk5BhOdcANN9yg1atXV17esmWLOnXq9Ivuq6SkRL/97W9VXl5eVfEAAEAUYMAEAACiyrp163TRRRepa9euOuOMMzRjxozKzy1btkwjR45Up06ddMMNN+gPf/iDnnjiiZN+zEWLFmnt2rXq27evJGnFihVq2bLlSd9vVfD5fNq4caOaN29eJfeXmJioM888U08++WSV3B8AAIgODJgAAEDU8Pv9uuqqq9S7d2/Nnj1b48aN05/+9CetX79ePp9P1113nc455xzNmzdPZ555pqZPn14lj/vUU09pzJgxlZftNGCaPXu2evbsWaX3OWzYME2ePFl79uyp0vsFAACRiwETAACIGosXL1ZpaamuuOIKeTwe9ezZU6eeeqo+/PBDLV68WIFAQBdffLHcbrcGDx6sdu3aVX5tUVGRRo8erU6dOh1RJ3v00Ud1wQUX6M9//rP8fv+PHrOwsFALFixQ7969K69buXKlWrVq9aPbvvHGG7rooosq/7Rv315Lliyp/PzYsWM1fvx4SQdqbC1atNDXX38t6cBKpG7dumnChAmSpOLiYl111VW66KKLNGbMGH3++ec/+T2ZMWOGBg4ceCLfxmPyer3q3LnzUR8TAADEHpfpAAAAAFVl165dql27thyOw++h1a1bVzt37tSuXbuUk5Mjy7IqP1enTp3Kj+Pi4vTcc8/pkUceqbxu5cqV2rlzp1577TU988wzmjp1qs4888wjHnPjxo3KysqSx+ORJFVUVOj7779X69atf5RvzJgxlSudZs6cqYkTJ6p9+/aSpO3btysnJ0fz5s2rvH3btm31ySefqEePHpozZ44aNmxY+blJkyapb9++uvDCCxUOh1VUVPSjxwuFQlq0aJHuvvvu4/r+HbJz5069/PLLCgQCCofDatWqlc4555wjbtOgQQN9//33J3S/AAAgerGCCQAARI3s7Gzt2LFDoVCo8rpDg5usrCzt3LlT4XD4iM8d4na7lZ6efsT9LVy4UH369JEk9e3bVwsXLvzRYzocDgWDwcrLq1evlsvlUl5e3lFz5ufn68knn9Q999xTed3UqVM1YsQINW7cWOvWrZMk5ebmatu2bQqHw/rkk080ePDgytt7vV4tWrRIe/bskWVZSklJ+dHjLF68WG3btpXT6Txqlh8KhUJ6//33deONN+rWW2/VbbfdpiZNmuizzz474nbBYPCE7hcAAEQ3BkwAACBqtG/fXnFxcXrhhRfk9/s1d+5czZw5U8OHD1fHjh3ldDo1YcIEBQIBTZ8+Xd99993P3l9hYaGSkpIkScnJydq/f/+PblO/fn3l5+eroqJC0oFVT02aNFEgEFBFRYUqKirk8/mO+Jq7775bv//9748YaM2aNUv9+vXTmWeeqSlTplRe36lTJ33zzTfKz89XZmZm5fVnn3228vLydPnll2vMmDFav379j7JNnz5dp59++nF85w5bsmSJRo4cKZfLpY8//lhbt25V+/btVVZWdsTttmzZ8rNDNAAAEFsYMAEAgKjh8Xj07LPP6osvvlCPHj10zz336JFHHlGTJk3k8Xj01FNP6e2331a3bt30/vvva8CAAZXVtp+SnJys4uJiSQf2aEpNTf3RbVJSUtSlS5fKvZJWrFihZcuWqX379pV/hg8fXnn79957T8nJyTrttNMqr9uxY4fWrFmjq6++Ws8888wRexsNHjxYDz74oE455ZQjHtftduuaa67RpEmTdMMNN+ipp576UbbZs2dXrsD6odLSUnXq1OmIP6tWrZLT6axcAfbss89q/vz5knTEaiWfz6dvv/32iH8HAAAQ29iDCQAARLyZM2dWftysWbPKjbB/qF27dpo0aVLl5fPOO0+nnnrqUe+3c+fOevHFFzVy5EjNmjVLnTt3/snbXXvttXr22WfVv39/3Xnnnbrzzjt/8nbbt2/XSy+99KN8U6ZM0a233qqhQ4dKOrDC6dCqp0aNGqlLly4aOnSoZs+eXfk1W7durdz7KSMj44jq3yETJ078yRz16tXTqlWrfvJzfr9fL7/8si655JLK79V33313xIDpgw8+0IgRI36ylgcAAGITAyYAABAz5s2bp7y8PKWlpWny5MlatWqV+vbtW/n53/3ud1qxYoW+//57jRkzRueee64yMjJ0wQUXqE6dOrrssst+8n47d+6svLw8ffHFF+rXr99RH/+f//ynCgsLdfXVV1ded80112jatGn6xz/+UXld9+7d9fHHH1deHjdu3I/ua/Xq1brxxhvl9XoVDoePOtQ6UW63W8OGDdPjjz9euZKpWbNmGj16tKQDp9d98MEHlafdAQAASJIV/qm3uwAAAKLQG2+8oSeffFJlZWWqV6+e/vjHP2rAgAGmYwEAAEQ8BkwAAAAAAAA4KWzyDQAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAAAAAAJwUBkwAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASfl/6hNZaplFmREAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "titles = { 0 : \"Primary\",\n",
+    "           1 : \"Secondary\",\n",
+    "           2 : \"Unresolved\" }\n",
+    "\n",
+    "# choose to plot the \n",
+    "# PRIMARY, SECONDARY or UNRESOLVED\n",
+    "nstar = UNRESOLVED\n",
+    "\n",
+    "plots = {}\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "for n in range(0,3):\n",
+    "    pad_output_distribution(population.grid_results['luminosity distribution'][n],\n",
+    "                            binwidth['luminosity'])\n",
+    "    plots[titles[n] + ' ZAMS luminosity distribution'] = population.grid_results['luminosity distribution'][n]\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict(plots)\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e7541ebf-fe9a-4fb0-a88e-bb318d06f9eb",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/build/html/_sources/notebook_luminosity_function_single.ipynb.txt b/docs/build/html/_sources/notebook_luminosity_function_single.ipynb.txt
new file mode 100644
index 000000000..fb971b34a
--- /dev/null
+++ b/docs/build/html/_sources/notebook_luminosity_function_single.ipynb.txt
@@ -0,0 +1,716 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "# Example use case: Zero-age stellar luminosity function\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of single stars using binary_c. \n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "from binarycpython.utils.functions import temp_dir\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_luminosity\")\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_luminosity to grid_options\n",
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 0.5 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Mass\n",
+    "population = Population()\n",
+    "population.set(\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "population.add_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{res}\".format(res = resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const({min}, {max}, {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"{probtot}/({max} - {min})\".format(probtot = total_probability, min = massrange[0], max = massrange[1]), # dprob/dm1 : all stars are equally likely so this is 1.0 / (Mmax - Mmin)\n",
+    "    dphasevol=\"dM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "   /* Note that we use Printf - with a capital P! */\n",
+    "   Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR %30.12e %g %g %g %g\\\\n\",\n",
+    "          stardata->model.time, // 1\n",
+    "          stardata->common.zero_age.mass[0], // 2\n",
+    "          stardata->star[0].mass, // 3\n",
+    "          stardata->star[0].luminosity, // 4\n",
+    "          stardata->model.probability // 5\n",
+    "      );\n",
+    "};\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        # obtain the line of data in dictionary form \n",
+    "        linedata = datalinedict(line,parameters)\n",
+    "        \n",
+    "        # Check the header and act accordingly\n",
+    "        if linedata['header'] == \"ZERO_AGE_MAIN_SEQUENCE_STAR\":\n",
+    "            \n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 1.0000000000000004\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-08f8230453084e4ca6a2391d45ce658b finished! The total probability was: 1.0000000000000002. It took a total of 1.5262682437896729s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.025), (3.75, 0.05), (4.25, 0.05), (0.25, 0.025), (3.25, 0.025), (5.25, 0.2), (4.75, 0.1), (5.75, 0.39999999999999997), (6.25, 0.125)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=0,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=2,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '08f8230453084e4ca6a2391d45ce658b', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 1.0000000000000002, 'total_count': 40, 'start_timestamp': 1631124829.303065, 'end_timestamp': 1631124830.8293333, 'total_mass_run': 2001.4, 'total_probability_weighted_mass_run': 50.035000000000004, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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n9eyZcs0atQovf3225o8eXLr4WwXExkZqZqaGkmfnZOpW7duF9wmKipKI0aMaD030sGDB7V//34NHjy49a+ZM2e23v7NN99UZGSkpk6d2nrZmTNnlJeXpwceeEC/+93vzjuX0YwZM/Tzn/9co0ePPu9xAwMD9c1vflNvvfWWHn74YT3//PMXtG3cuLH1lVf/qq6uTsOGDTvvr8OHD8vhcLS+8uuFF17Q9u3bJem8Vyk1NTVp165d5/0ZAACAf+OcSwAAwKutXr269e/T09NbT3r9r6699lq99dZbrR/feeedmjJlyiXvd/jw4XrxxRd16623av369Ro+fPhFb/fggw/qhRde0KRJk/TDH/5QP/zhDy96u9OnT+uvf/3rBX0ffPCBvv/97+uGG26Q9Nkrmz5/tVO/fv00YsQI3XDDDdq4cWPr55w8ebL1XE+xsbHnHe73ueXLl1+0IykpSYcPH77odc3Nzfrb3/6mL33pS61fq3379p03Lr3zzju6+eabL3ooHgAA8E+MSwAAwC9s3bpVycnJio6O1ooVK3T48GFNmDCh9fqvf/3rOnjwoI4ePaq5c+fq9ttvV2xsrBYsWKAePXroq1/96kXvd/jw4UpOTta6des0ceLESz7+73//e1VVVemBBx5oveyb3/ymPvroI/3P//xP62VZWVl6//33Wz9etGjRBfeVm5urRx55RMHBwbIs65KD1pUKDAzUjTfeqF/96letr2BKT0/XnDlzJH32LnXvvPNO67vaAQAASJLNutj/6gIAAPAxr776qp599lnV19crKSlJjz76qCZPnmw6CwAAwOsxLgEAAAAAAKDdOKE3AAAAAAAA2o1xCQAAAAAAAO3GuAQAAAAAAIB2Y1wCAAAAAABAuzEuAQAAAAAAoN0YlwAAAAAAANBujEsAAAAAAABoN8YlAAAAAAAAtNv/D2ltZ660RybEAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "# this saves a lot of typing! \n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7d7b275e-be92-4d59-b44d-ef6f24023cc3",
+   "metadata": {},
+   "source": [
+    "Does this look like a reasonable stellar luminosity function to you? The implication is that the most likely stellar luminosity is 10<sup>5.8</sup> L<sub>☉</sub>! Clearly, this is not very realistic... let's see what went wrong."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "44586e42-b7cb-4a55-be0a-330b98b20de4",
+   "metadata": {},
+   "source": [
+    "## "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e32c3bbf-390f-45da-ad9c-cc3e7c9449dc",
+   "metadata": {},
+   "source": [
+    "## ZAMS Luminosity distribution with the initial mass function\n",
+    "\n",
+    "In the previous example, all the stars in our grid had an equal weighting. This is very unlikely to be true in reality: indeed, we know that low mass stars are far more likely than high mass stars.  So we now include an initial mass function as a three-part power law based on Kroupa (2001). Kroupa's distribution is a three-part power law: we have a function that does this for us (it's very common to use power laws in astrophysics).\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "1f37d2c0-1108-4ab9-a309-20b1e6b6e3fd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Update the probability distribution to use the three-part power law IMF \n",
+    "population.update_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)\",\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "6f4463e8-1935-45f2-8c5f-e7b215f8dc47",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.2182216189410787\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-92de7c9221c54206ab4dd10e58e09a34 finished! The total probability was: 0.21822161894107872. It took a total of 1.5900418758392334s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.0164166), (3.25, 0.00515685), (0.25, 0.189097), (3.75, 0.0037453900000000004), (4.25, 0.0014346559999999999), (5.25, 0.0007493004), (4.75, 0.001171479), (5.75, 0.00039801020000000003), (6.25, 5.2369339999999996e-05)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "cfe45a9e-1121-43b6-b6b6-4de6f8946a18",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABcnUlEQVR4nO3dd3SUZf7+8Wtm0gvpjQRIo0PovSNNiiDiBnXBsrqCsq6sK66CirroWlZ/lu/ay6oooIIIItIEhID03ksCBJIACYTQ0ub3R3TcCBjIk+SZSd6vczgn82QycyW5HTPX3M9nLHa73S4AAAAAAACgnKxmBwAAAAAAAIBro2ACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQ9zMDlCZcnLOqrjYbnaMaickxE8nT+aZHQMuivUDo1hDMIo1BKNYQzCKNQSjWEMwqrxryGq1KCjI97Kfq9YFU3GxnYKpkvBzhRGsHxjFGoJRrCEYxRqCUawhGMUaglEVvYY4RQ4AAAAAAACGUDABAAAAAADAkGp9ihwAAAAAAFWpqKhQOTnHVViYX2n3kZVlVXFxcaXdPqq/staQm5uHgoLCZLNdfW1EwQQAAAAAQAXJyTkuLy8f+fpGymKxVMp9uLlZVVhIwYTy+701ZLfbdfZsrnJyjis0NOqqb5NT5AAAAAAAqCCFhfny9a1VaeUSUNksFot8fWtd8y48CiYAAAAAACoQ5RJcXXnWMAUTAAAAAAAADKFgAgAAAACgGtq8eaPuuOPWUv+6d2+v77+f57jOV19NV8+eHXXy5IlSX9u1a1v97W/jSh07deqUevTooPfff1uSlJGRoQkTxuv220dq1Kg/6PHH/6GcnOxLcrz//tuOrzHivffe0ooVywzfzi++/vpLff31l5KkZ599ShkZx8p1O+PG/VkbNqzTrl079K9/PXPF6x09mq7nnnu6zCxdu7a9pvtfsWK5pk379JLbqWoM+QYAAAAAoBpq0aKVPvroM8fl6dOnav78b9Wz53WOY99+O0ddu/bQ3Lmzdfvtfyr19YcPH1Zubq5q1aolSVq6dLH8/Ws5Pv/ii89qwICB6tt3gCTpk08+1IsvPqdnn32xUr6fu+8eU6G3N2zYCMfHGzas05133mPo9ho1aqJ//KPJFT+fkXFM6elHysxyrXbv3lkht2MUBRMAAAAAANXc5s0b9fHHH+idd/4rT09PSdK+fXuVm3taEyZM1KRJEzRq1J2yWn890alr1+768celGjToBkklBVP37j0dn8/OPqGLFy84Lt900x+0c+eO383RtWtbrVixTpI0b94cbdy4XhMnTtaIEUPUu3dfpaSskM1m07333q9p0z7VkSOHdf/9D+q66/pqypTJatWqjVq1aqPHHvu74uMTtGfPbgUHh+iZZ/6lWrUCtHLlj3r33Tdltxerdu1oPfzwYwoODtEbb/w/rV37k2w2q7p27aG77vqzY1eVh4enTpw4rocf/qvuvnuMpk2bqrfe+kCS9N13c7V9+1b9/e+POr6H/Px8Pf/8M9q1a6ciI2vr9OlTkkpKqg8+eEdvvPGOpk37VN99962sVosaN26qCRMm6tVXX9LRo+n697+fV69e1+nNN19TUVGx4uMTFBVVW5L0pz/dK0l6/vkp2rlzuwICAvXoo08oMjJS48b9WXfd9We1bt1Wx44d1V/+cq9efPFVzZ49U5IUGRnl2IX1pz/de8WfxYgRQ3T99YO0enWKzp+/oEmTnlKjRo2vei1dCQUTAAAAAACVYOXWY1qxpXynXf0ei0Xq0jxKXZpf3VvI5+Rka/LkiXrkkccVHR3jOD5v3jfq3buPGjVqLJvNpp9+SlGnTl0dn+/du48+/vgDDRp0g06ePCG7XQoJCXV8/t57x+nppx/X+++/ozZt2qljx87q3btvub+v0NAwffrpDD377FP69NOP9Nprb2nr1s167bV/67rrSt/uvn179eijT6hBg0aaOPFhLVjwna67rp9efPFZvfnm+4qKqq3PPvtYL7/8gsaNe1CrV6fo009n6OLFi3r++X/q4sWLjtsaNeoOzZ79lV588VVFRkbp//7vNaWnH1F0dIy++26u7r239KmCX345XZI0deqXOnz4kG6//ZZSny8sLNSnn36kr7+eL6vVqpdffl7Hj2fpr3/9uz744B099NAj2rBhnQ4fPqQvv5wrPz+/S04hbNWqtR55ZKJmzvxCr776kp577qXL/szi4uI1dOhwSdKgQTc4bicnJ/uyP4t//vN5SVJAQIDeffdjffnlNH3yyQeaMsX4rjNmMAEAAAAAUE0VFxdr8uRJ6tOnf6ndR4WFhVqwYL769OkvSerdu69jJ8wvmjVL0qFDacrLy9PSpYvVq1fvUp/v2LGzZs2ap0cemaTAwCD95z+vaeLEh8udtWPHzpKkiIhItWzZWm5uboqMjNKZM2cuuW5QULAaNGgkSYqPT1Rubq527Niuxo2bOnYD3XDDcK1fv1ahoWHy9PTU2LF3acaMz3TPPWMdu7h+y2Kx6PrrB+n77+cpIyND2dnZatq0WanrbNq0Xr16lRRederUVfPmSaU+7+bmpmbNknT33aP14YfvavjwmxUWFn7JfdWpU09+fn6XHPf09FS/ftdLkvr3v14bN67/3Z/b5VzpZ/GLX37Wv/zsKgI7mAAAAAAAqATXssvoWri5WVVYWHxV1/3ww3dVWFige++9v9TxlSt/1JkzuXrssZJCqLCwUDk52crKylR4eISkkrKlS5duWrFimZYt+0FPPfWcZs6cIUnKzT2tjz56Tw888JA6duysjh0764477tbQof2Vk5OjoKCgK2ay2+2yWCwqLCwsddzd3d3xsc1m+93vy8PD45LbtNuLLzlWVFQkNzc3vfPOR9q0aYNWrVqpMWPu1Ouvv3PF2x44cIgeeugv8vDw0IABAy9zDUup+7pc1uee+7e2b9+q1atT9NBDD+iJJy4d/n2lkstq/fX27PaSwkoq+X384rc/u9+60s/iFx4enqU+VxHYwQQAAAAAQDW0du1qzZnztZ566jlHSfGLefO+0T33jNWXX87Rl1/O0ddff6fmzVtozpyvS12vd+++mjnzC7m5uZcqjXx9/bRixXJ9991cx7H09CMKDg5xDAW/nMDAQB08uF92u10rViyvmG/0Z02aNNOOHVt17NhRSdI338xU69ZttGfPLo0b92e1aNFK48Y9qNjYeB06lFbqa202m6OAiYyMUlhYuL7++isNGDDokvtp27a9Fi78XsXFxcrIOKatW7eU+nxOTo5uu22E4uMTdffdY9SuXQft379XNptbqZLnSs6fP+d4t7xvv52ttm3bS5ICAkp+dpL0449LL5u9rJ9FZWIHEwAAAAAA1dAnn3ykoqIi/f3vD5Q63r17T23YsE6PPvpkqeMjR/5R//73v3THHXc7jjVt2lwnT57QDTcMK3Vdm82ml156Va+//oree+8teXl5KTQ0TM8///Lv7j4aM2acJkwYr+DgECUltXQMyK4IwcEhevjhiXrssb+roKBQkZGR+sc/nlBoaKiaNUvS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zY4DF/TFF184Hn+GDh2qNm3a6Omnn66Q23arkFtBtZeZmalXXnlFM2fOlIeHh0aOHKkOHTooMTHR7GhwIZs3b9akSZOUmppqdhS4oJSUFK1YsUKzZs2SxWLR3XffrYULF6pv375mR4OLWLNmjVavXq1vvvlGhYWFGjhwoHr06KH4+Hizo8GFrFq1SrNmzVLPnj3NjgIXZLfbdeDAAS1dulRubjwVw7U5fPiwnnzySX3xxRcKCQnR7bffrmXLlqlHjx5mR4MLufnmm3XzzTdLkvbu3av7779f48aNq5DbZgcTrkpKSoo6duyowMBA+fj4qH///po/f77ZseBiZsyYoSeffFLh4eFmR4ELCgsL0z/+8Q95eHjI3d1dCQkJOnr0qNmx4ELat2+vjz/+WG5ubjp58qSKiork4+Njdiy4kFOnTumVV17RmDFjzI4CF3XgwAFZLBbdc889uuGGG/Tpp5+aHQkuZOHChRo4cKAiIyPl7u6uV155RS1atDA7FlzY5MmTNX78eAUHB1fI7VGb46pkZWUpLCzMcTk8PFxbtmwxMRFc0ZQpU8yOABdWv359x8epqamaN2+epk2bZmIiuCJ3d3e99tpr+uCDDzRgwABFRESYHQku5IknntD48eN17Ngxs6PAReXm5qpTp06aPHmyLly4oNGjRysuLk5dunQxOxpcQFpamtzd3fWnP/1Jx48fV69evfTggw+aHQsuKiUlRRcuXND1119fYbfJDiZcFbvdfskxi8ViQhIANd3evXt111136ZFHHlFsbKzZceCCHnjgAa1atUrHjh3TjBkzzI4DF/HFF18oKipKnTp1MjsKXFirVq30wgsvyMfHR8HBwRoxYoSWLVtmdiy4iKKiIq1atUovvviiZsyYoa1bt2rWrFlmx4KLmjZtmu68884KvU0KJlyViIgInThxwnE5KyuL05wAVLn169frjjvu0EMPPaQbb7zR7DhwMfv379fOnTslSd7e3urXr592795tciq4innz5mnlypUaOnSoXnvtNS1ZskTPPvus2bHgYtatW6dVq1Y5LtvtdmYx4aqFhoaqU6dOCg4OlpeXl6677jrOKkG55Ofna+3aterdu3eF3i4FE65K586dtWrVKmVnZ+v8+fNasGCBunfvbnYsADXIsWPHdP/99+ull17SoEGDzI4DF3TkyBFNmjRJ+fn5ys/P1+LFi9WmTRuzY8FFfPjhh5o7d65mz56tBx54QL1799Zjjz1mdiy4mDNnzuiFF17QxYsXlZeXp1mzZvFmFbhqvXr10ooVK5Sbm6uioiL9+OOPatq0qdmx4IJ2796t2NjYCp9FSV2OqxIREaHx48dr9OjRKigo0IgRI5SUlGR2LAA1yPvvv6+LFy/qX//6l+PYyJEjdcstt5iYCq6kR48e2rx5s4YNGyabzaZ+/fpRVgKoUr169XI8DhUXF+vWW29Vq1atzI4FF9GiRQvdfffduvXWW1VQUKAuXbropptuMjsWXNDhw4cVGRlZ4bdrsV9uuA4AAAAAAABwlThFDgAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQyiYAAAAAAAAYAgFEwAAAAAAAAyhYAIAAAAAAIAhFEwAAMDl9e7dWykpKWbHAAAAqLEomAAAACpYdna2GjZsqMzMTLOjAAAAVAkKJgAAgArw0ksv6ccff5Qk7dq1S8HBwYqIiDA5VYkHHnhAe/bscVw+cuSIWrVqVa7bOnv2rO6++25duHChouIBAIBqgIIJAABUK/v379eoUaPUtm1bDRo0SIsXL3Z8bvv27Ro2bJhatWqlBx54QA8++KBeeeUVw/e5adMm7du3T926dZMk7dy5U40aNTJ8uxUhPz9faWlpatCgQYXcnq+vrwYPHqxXX321Qm4PAABUDxRMAACg2igoKNCYMWPUpUsXpaSkaNKkSfr73/+uAwcOKD8/X+PGjdONN96oNWvWaPDgwVq0aFGF3O/rr7+u5ORkx2VnKphSUlLUqVOnCr3N66+/XnPmzNGJEycq9HYBAIDromACAADVxubNm3Xu3Dn9+c9/loeHhzp16qRevXrp22+/1ebNm1VYWKjRo0fL3d1d/fr1U/PmzR1fe+bMGY0YMUKtWrUqdTrZiy++qFtvvVUPP/ywCgoKLrnP3NxcrV+/Xl26dHEc27Vrlxo3bnzJdadPn65Ro0Y5/iUlJWnLli2Oz48cOVJvvPGGpJLT2Bo2bKjVq1dLKtmJ1K5dO3366aeSpLy8PI0ZM0ajRo1ScnKyli1bdtmfyeLFi9WnT59r+TGWydPTU61bt77ifQIAgJrHzewAAAAAFSUrK0uRkZGyWn99Da127drKzMxUVlaWIiIiZLFYHJ+LiopyfOzl5aV33nlHL7zwguPYrl27lJmZqc8++0xvvvmmvv/+ew0ePLjUfaalpSksLEweHh6SpIsXL+rgwYNq0qTJJfmSk5MdO52WLFmiWbNmKSkpSZJ07NgxRUREaM2aNY7rN2vWTAsXLlTHjh21atUq1atXz/G52bNnq1u3brrttttkt9t15syZS+6vuLhYmzZt0uTJk6/q5/eLzMxMffzxxyosLJTdblfjxo114403lrpO3bp1dfDgwWu6XQAAUH2xgwkAAFQb4eHhysjIUHFxsePYL8VNWFiYMjMzZbfbS33uF+7u7goODi51exs2bFDXrl0lSd26ddOGDRsuuU+r1aqioiLH5T179sjNzU1xcXFXzJmdna1XX31VTz31lOPY999/ryFDhig+Pl779++XJEVHR+vo0aOy2+1auHCh+vXr57i+p6enNm3apBMnTshisahWrVqX3M/mzZvVrFkz2Wy2K2b5reLiYn3zzTcaP368Hn30UT322GNKSEjQ0qVLS12vqKjomm4XAABUbxRMAACg2khKSpKXl5fee+89FRQU6KefftKSJUs0cOBAtWzZUjabTZ9++qkKCwu1aNEibd269XdvLzc3V35+fpIkf39/nT59+pLr1KlTR9nZ2bp48aKkkl1PCQkJKiws1MWLF3Xx4kXl5+eX+prJkyfrr3/9a6lCa8WKFerevbsGDx6s+fPnO463atVKa9euVXZ2tkJDQx3Hhw4dqri4OP3pT39ScnKyDhw4cEm2RYsW6brrrruKn9yvtmzZomHDhsnNzU3fffed0tPTlZSUpPPnz5e63pEjR363RAMAADULBRMAAKg2PDw89NZbb2n58uXq2LGjnnrqKb3wwgtKSEiQh4eHXn/9dX355Zdq166dvvnmG/Xs2dNxatvl+Pv7Ky8vT1LJjKaAgIBLrlOrVi21adPGMStp586d2r59u5KSkhz/Bg4c6Lj+119/LX9/f/Xu3dtxLCMjQ3v37tXYsWP15ptvlppt1K9fPz333HNq3759qft1d3fXfffdp9mzZ+uBBx7Q66+/fkm2lJQUxw6s3zp37pxatWpV6t/u3btls9kcO8DeeustrVu3TpJK7VbKz8/Xxo0bS30PAACgZmMGEwAAcHlLlixxfFy/fn3HIOzfat68uWbPnu24fPPNN6tXr15XvN3WrVvrww8/1LBhw7RixQq1bt36ste7//779dZbb6lHjx564okn9MQTT1z2eseOHdNHH310Sb758+fr0Ucf1YABAySV7HD6ZddTbGys2rRpowEDBiglJcXxNenp6Y7ZTyEhIaVO/fvFrFmzLpsjJiZGu3fvvuznCgoK9PHHH+v22293/Ky2bt1aqmCaO3euhgwZctnT8gAAQM1EwQQAAGqMNWvWKC4uTkFBQZozZ452796tbt26OT5/zz33aOfOnTp48KCSk5M1fPhwhYSE6NZbb1VUVJTuuuuuy95u69atFRcXp+XLl6t79+5XvP+3335bubm5Gjt2rOPYfffdpwULFuj//u//HMc6dOig7777znF50qRJl9zWnj17NH78eHl6esput1+x1LpW7u7uuv766/Xvf//bsZOpfv36GjFihKSSd6+bO3eu493uAAAAJMliv9zLXQAAANXQ9OnT9eqrr+r8+fOKiYnRQw89pJ49e5odCwAAwOVRMAEAAAAAAMAQhnwDAAAAAADAEAomAAAAAAAAGELBBAAAAAAAAEMomAAAAAAAAGAIBRMAAAAAAAAMoWACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIb8fxzqA03KlXkqAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0546f2f3-4732-4841-8ef3-565fbf6b9961",
+   "metadata": {},
+   "source": [
+    "This distribution is peaked at low luminosity, as one expects from observations, but the resolution is clearly not great because it's not smooth - it's spiky! \n",
+    "\n",
+    "If you noticed above, the total probability of the grid was about 0.2. Given that the total probability of a probability distribution function should be 1.0, this shows that our sampling is (very) poor. \n",
+    "\n",
+    "We could simply increase the resolution to compensate, but this is very CPU intensive and a complete waste of time and resources. Instead, let's try sampling the masses of the stars in a smarter way."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "673031c9-7d80-45d4-b209-301c127d3edf",
+   "metadata": {},
+   "source": [
+    "# A better-sampled grid\n",
+    "\n",
+    "The IMF has many more low-mass stars than high-mass stars. So, instead of sampling M1 linearly, we can sample it in log space. \n",
+    "\n",
+    "To do this we first rename the mass grid variable so that it is clear we are working in (natural) logarithmic phase space."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "5956f746-e3b9-4912-b75f-8eb0af66d3f6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Rename the old variable (M_1) because we want it to be called lnM_1 now\n",
+    "population.rename_grid_variable(\"M_1\",\"lnM_1\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "532f691c-c1f6-46cc-84f2-970ec1216e40",
+   "metadata": {},
+   "source": [
+    "Next, we change the spacing function so that it works in the log space. We also adapt the probability calculation so that it calculates dprob/dlnM = M * dprob/dM. Finally, we set the precode to compute M_1 because binary_c requires the actual mass, not the logarithm of the mass."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "108d470a-bb21-40b0-8387-2caa7ab0f923",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# update the sampling, note that the IMF is dprob/dM1, and the phase \n",
+    "# space is now sampled in lnM1, so we multiply by M_1 to \n",
+    "# because  M * dprob/dM = dprob/dlnM\n",
+    "population.update_grid_variable(\n",
+    "    name=\"lnM_1\",\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    dphasevol=\"dlnM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    precode=\"M_1=math.exp(lnM_1)\",\n",
+    ")\n",
+    "# print(population.grid_options[\"_grid_variables\"]) # debugging"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "fb8db646-f3d0-4ccd-81ba-7fde23f29c79",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.9956307907476224\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Population-83f80d829dbd418aa2bc745c99b71991 finished! The total probability was: 0.9956307907476224. It took a total of 0.9961590766906738s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(0.25, 0.0212294), (2.75, 0.00321118), (-0.25, 0.0268827), (1.25, 0.0104553), (3.75, 0.00283037), (6.25, 7.34708e-05), (-0.75, 0.0771478), (0.75, 0.030004499999999996), (2.25, 0.00921541), (3.25, 0.0045385), (1.75, 0.014776889999999999), (4.25, 0.002380189), (4.75, 0.000869303), (5.25, 0.0007310379999999999), (5.75, 0.00036002859999999996), (-2.75, 0.1961345), (-1.75, 0.2181597), (-3.25, 0.0), (-2.25, 0.2568974), (-1.25, 0.11973310000000001)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "182b1094-5057-4ccf-bac6-9b0e560ad4f6",
+   "metadata": {},
+   "source": [
+    "You should see that the total probability is very close to 1.0, as you would expect for a well-sampled grid. The total will never be exactly 1.0, but that is because we are running a simulation, not a perfect copy of reality."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "68ee1e56-21e5-48f4-b74c-50e48685ae94",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAB37ElEQVR4nOzdd3iV9f3/8dcZ2XtPstkhrLD3ElkyREGtA+vA0eHXqq1SRa221rb+2lpx1C3WVYaAKEtUlpAwE0YgJJCQkAGEEFbW+f2BpqUKAZJz7pOc5+O6uC7PneTcrxy8Q/LK5/O+TTabzSYAAAAAAADgCpmNDgAAAAAAAICWjYIJAAAAAAAATULBBAAAAAAAgCahYAIAAAAAAECTUDABAAAAAACgSSiYAAAAAAAA0CQUTAAAAAAAAGgSq9EB7OnYsZOqr7fZ9RwhIb46cqTKrucAnBnXAMB1AHANwNVxDcDVcQ24DrPZpKAgnx99W6sumOrrbXYvmL4/D+DKuAYArgOAawCujmsAro5rAGyRAwAAAAAAQJNQMAEAAAAAAKBJWvUWOQAAAAAAHKmurlbHjpWptrba6CgOU1pqVn19vdEx0IysVncFBYXJYrn02oiCCQAAAACAZnLsWJk8Pb3l4xMpk8lkdByHsFrNqq2lYGotbDabTp6s1LFjZQoNjbrkj2OLHAAAAAAAzaS2tlo+Pv4uUy6h9TGZTPLx8b/sVXgUTAAAAAAANCPKJbR0V/L/MAUTAAAAAAAAmoSCCQAAAACAVmjbti267bYbz/szeHBvffHFZw3v8+9/f6ihQ/vqyJHy8z524MB0/d//3X/esYqKCg0Z0kevv/6KJOnw4cN6+OEHdNNN1+vmm6/Xb3/7ax07dvQHOV5//ZWGj2mKf/7zZa1Z81WTn+d7CxZ8ogULPpEkPfvskzp8uPiKnuf+++/S5s0Z2r17p/7wh6cv+H5FRYf0+98/1WiWgQPTL+v8a9Z8rQ8+eO8Hz+NoDPkGAAAAAKAV6tq1u9566/2Gxx9+OFeff75EQ4eOaDi2ZMkiDRw4RIsXL9Stt/70vI8vKChQZWWl/P39JUmrV6+Un59/w9uff/5ZXX31WI0ZM1a1tfV699039fzzv9ezzz5vl8/njjtmNuvzTZo0teG/N2/O0IwZdzbp+Tp06KRf/7rTBd9++HCxDh0qbDTL5dqzZ1ezPE9TUTABAAAAANDKbdu2Re+884ZeffVteXh4SJL27durysrjevjhxzRr1sO6+eYZMpv/s9Fp4MDB+uab1Ro37hpJ5wqmwYOHNrz96NFynT17puHxtdder127dl40x8CB6VqzJkOS9Nlni7RlS6Yee2y2pk6doOHDR2ndujWyWCy6++779MEH76mwsED33fdLjRgxSs88M1vdu/dU9+499eijv1JSUrJycvYoODhETz/9B/n7B2jt2m/02mtzZLPVKzo6Rg899KiCg0P04ov/T5s2fSuLxayBA4fo9tvvalhV5e7uofLyMj300C90xx0z9cEHc/Xyy29IkpYuXazs7B361a9+0/A5VFdX67nnntbu3bsUGRmt48crJJ0rqd5441W9+OKr+uCD97R06RKZzSZ17NhZDz/8mP761z+pqOiQ/vzn5zRs2AjNmfM31dXVKykpWVFR0ZKkn/70bknSc889o127shUQEKjf/OZxRUZG6v7779Ltt9+lHj3SVVxcpJ/97G49//xftXDhPElSZGRUwyqsn/707gu+FlOnTtDo0WO1ceN6nT59RrNmPakOHTpe8v9LF0LBBAAAAACAHazdUaw1269s21VjBqZFaUCXS7uF/LFjRzV79mN65JHfKiYmtuH4Z599quHDR6pDh46yWCz69tt16tdvYMPbhw8fqXfeeUPjxl2jI0fKZbNJISGhDW+/++779dRTv9Xrr7+qnj17qW/f/ho+fNQVf06hoWF6772P9OyzT+q9997S3/72snbs2Ka//e3PGjHi/Ofdt2+vfvObx9WuXQc99thDWrZsqUaMuErPP/+s5sx5XVFR0Xr//Xf0l7/8Ufff/0tt2LBO7733kc6ePavnnvudzp492/BcN998mxYu/Leef/6vioyM0j/+8TcdOlSomJhYLV26WHffff5WwU8++VCSNHfuJyooOKhbb73hvLfX1tbqvffe0oIFn8tsNusvf3lOZWWl+sUvfqU33nhVDz74iDZvzlBBwUF98sli+fr6/mALYffuPfTII49p3ryP9de//km///2ffvQ1S0xM0sSJUyRJ48Zd0/A8x44d/dHX4ne/e06SFBAQoNdee0effPKB3n33DT3zTNNXnTGDCQAAAACAVqq+vl6zZ8/SyJGjz1t9VFtbq2XLPtfIkaMlScOHj2pYCfO91NQ0HTx4QFVVVVq9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hQsXasKECfzDApdQUlKiF154Qe+//74WLlyoDz/8UPv27TM6FuAw69at05o1azR//nwtWLBA2dnZWr58udGxAIdbv3695s+fb3QMwBAFBQV64okn9NJLL2nRokXauXOnvvrqK6NjwSAUTM3gD3/4g2677TajYwCGqK6u1i9+8Qt16NBBktS+fXsVFxcbnAqwv3Xr1qlv374KDAyUt7e3Ro8erc8//9zoWIDDhIWF6de//rXc3d3l5uam5ORkFRUVGR0LcKiKigq98MILmjlzptFRAEMsX75cY8eOVWRkpNzc3PTCCy+oa9euRseCQSiYmmjlypU6c+aMrr76aqOjAIZwd3fXxIkTJUn19fV68cUXNXLkSINTAfZXWlqqsLCwhsfh4eEqKSkxMBHgWG3btlW3bt0kSfn5+frss880ZMgQY0MBDvb444/rgQcekL+/v9FRAEMcOHBAdXV1+ulPf6prrrlG77//vgICAoyOBYNYjQ7QUixdulS///3vzzuWlJSkqqoqvfXWW8aEAhzsQtfBW2+9perqav36179WbW2t7r77boMSAo5js9l+cMxkMhmQBDDW3r17dffdd+uRRx5RQkKC0XEAh/n4448VFRWlfv36ad68eUbHAQxRV1enjIwMvfvuu/L29ta9996r+fPna8qUKUZHgwEomC7RmDFjNGbMmPOOffzxx3rllVd00003NRybOHGi5s6dK19fX0dHBOzux64DSTp58qTuueceBQYGas6cOXJzczMgHeBYERERysjIaHhcWlqq8PBwAxMBjpeZmamf//znevTRRzVu3Dij4wAO9dlnn6msrEwTJ07U8ePHderUKT377LN69NFHjY4GOExoaKj69eun4OBgSdKIESO0fft2CiYXZbL92K9gcUXat2+vPXv2GB0DcLh7771XISEheuqpp1jBAZdRUlKiG264QZ988om8vLw0ffp0Pf3000pLSzM6GuAQxcXFmjx5sl544QX169fP6DiAoebNm6eNGzfqD3/4g9FRAIfatm2bHnnkEX300Ufy8fHRfffdpxEjRui6664zOhoMwAomAE2yc+dOrVy5UikpKZo0aZKkc7NoXnvtNWODAXYWERGhBx54QLfccotqamo0depUyiW4lNdff11nz5497wfq6dOn64YbbjAwFQDAkbp27ao77rhDN954o2pqajRgwABde+21RseCQVjBBAAAAAAAgCbhLnIAAAAAAABoEgomAAAAAAAANAkFEwAAAAAAAJqEggkAAAAAAABNQsEEAAAAAACAJqFgAgAAAAAAQJNQMAEAAAAAAKBJKJgAAECLN3z4cK1bt87oGAAAAC6LggkAAKCZHT16VO3bt1dJSYnRUQAAAByCggkAAKAZ/OlPf9I333wjSdq9e7eCg4MVERFhcKpzfv7znysnJ6fhcWFhobp3735Fz3Xy5EndcccdOnPmTHPFAwAArQAFEwAAaFVyc3N18803Kz09XePGjdPKlSsb3padna1Jkyape/fu+vnPf65f/vKXeuGFF5p8zq1bt2rfvn0aNGiQJGnXrl3q0KFDk5+3OVRXV+vAgQNq165dszyfj4+Pxo8fr7/+9a/N8nwAAKB1oGACAACtRk1NjWbOnKkBAwZo3bp1mjVrln71q19p//79qq6u1v3336/Jkydr48aNGj9+vFasWNEs5/373/+uadOmNTx2poJp3bp16tevX7M+55gxY7Ro0SKVl5c36/MCAICWi4IJAAC0Gtu2bdOpU6d01113yd3dXf369dOwYcO0ZMkSbdu2TbW1tbrlllvk5uamq666Sl26dGn42BMnTmjq1Knq3r37edvJnn/+ed1444166KGHVFNT84NzVlZWKjMzUwMGDGg4tnv3bnXs2PEH7/vhhx/q5ptvbviTlpam7du3N7x9+vTpevHFFyWd28bWvn17bdiwQdK5lUi9evXSe++9J0mqqqrSzJkzdfPNN2vatGn66quvfvQ1WblypUaOHHk5L2OjPDw81KNHjwueEwAAuB6r0QEAAACaS2lpqSIjI2U2/+d3aNHR0SopKVFpaakiIiJkMpka3hYVFdXw356ennr11Vf1xz/+seHY7t27VVJSovfff19z5szRF198ofHjx593zgMHDigsLEzu7u6SpLNnzyovL0+dOnX6Qb5p06Y1rHRatWqV5s+fr7S0NElScXGxIiIitHHjxob3T01N1fLly9W3b1+tX79e8fHxDW9buHChBg0apJtuukk2m00nTpz4wfnq6+u1detWzZ49+5Jev++VlJTonXfeUW1trWw2mzp27KjJkyef9z5xcXHKy8u7rOcFAACtFyuYAABAqxEeHq7Dhw+rvr6+4dj3xU1YWJhKSkpks9nOe9v33NzcFBwcfN7zbd68WQMHDpQkDRo0SJs3b/7BOc1ms+rq6hoe5+TkyGq1KjEx8YI5jx49qr/+9a968sknG4598cUXmjBhgpKSkpSbmytJiomJUVFRkWw2m5YvX67/3979hTT1xnEc/8icduEWsm4EhcbYXY02Mb1xLgMxMRpSDLoRjC5cUIhXioy6EgQvRKQJQRHeCEFtDiYxhgwZ9Af6IyIrqJtGXYSQRGN/yt+FdH6szfjFLn6k7xcc2HnO9zznOefys+c8p6+vz6hvbGzUy5cv9fnzZ9XV1clqtVZc59WrVzpx4oRMJtO+Y/nVjx8/FI1GNTY2pomJCU1OTsrhcGhtba2s7vv373/ULwAAONgImAAAwIHhcrl05MgR3blzR8ViUU+ePFEymdTAwIBOnTolk8mkpaUllUolJRIJbWxs/La/nZ0dNTU1SZIsFou+fPlSUdPW1qbt7W3l83lJe7OeHA6HSqWS8vm88vm8CoVC2Tk3b97UjRs3ygKt9fV1eb1eDQ4OanV11Wh3u9169uyZtre3dezYMaP9woULstvtunLligKBgN69e1cxtkQiobNnz/6HJ/ev169fy+/3q76+XvF4XNlsVi6XS7lcrqzuw4cPvw3RAADA4ULABAAADoyGhgaFw2GlUil1dXXp1q1bmpmZkcPhUENDg+bn5/XgwQN1dHQoGo3K5/MZr7ZVY7FY9PXrV0l7azQdPXq0osZqtaq9vd1YK2lra0ubm5tyuVzGNjAwYNQ/evRIFotFvb29RtunT5/09u1bjY6O6vbt22VrG/X19Wl6elqnT58uu67ZbFYwGFQkEtH169c1Pz9fMbZ0Om3MwPrVt2/f5Ha7y7ZMJiOTyWTMAAuHw3r+/Lkklc1WKhQKevHiRdk9AACAw401mAAAwF8vmUwav51Op7EQ9q9OnjypSCRi7F+6dElnzpzZt1+Px6O7d+/K7/drfX1dHo+nat21a9cUDofV09OjUCikUChUte7jx4+6d+9exfhWV1c1MTGh/v5+SXsznH7Oejp+/Lja29vV39+vdDptnJPNZo21n2w2W9mrfz89fPiw6jhaW1uVyWSqHisWi7p//76Gh4eNZ7WxsVEWMMViMZ0/f77qa3kAAOBwImACAACHxtOnT2W329Xc3KyVlRVlMhl1d3cbx69evaqtrS29f/9egUBAQ0NDstlsunz5slpaWjQyMlK1X4/HI7vdrlQqJa/Xu+/1FxcXtbOzo9HRUaMtGAzq8ePHWlhYMNo6OzsVj8eN/ampqYq+3rx5o7GxMTU2Nmp3d3ffUOtPmc1mnTt3TrOzs8ZMJqfTqYsXL0ra+3pdLBYzvnYHAAAgSXW71f7uAgAAOICWl5c1NzenXC6n1tZWjY+Py+fz/d/DAgAA+OsRMAEAAAAAAKAmLPINAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABqQsAEAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABq8g/wlbD9p3152QAAAABJRU5ErkJggg==\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "31fe91bb-177d-4e4e-90cf-298a3f8a8b61",
+   "metadata": {},
+   "source": [
+    "Most stars are low mass red dwarfs, with small luminosities. Without the IMF weighting, our model population would have got this completely wrong! \n",
+    "\n",
+    "As you increase the resolution, you will see this curve becomes even smoother. The wiggles in the curve are (usually) sampling artefacts because the curve should monotonically brighten above about log(*L*/L<sub>☉</sub>)=-2. \n",
+    " \n",
+    "Remember you can play with the binwidth too. If you want a very accurate distribution you need a narrow binwidth, but then you'll also need high resolution (lots of stars) so lots of CPU time, hence cost, CO<sub>2</sub>, etc."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/build/html/_sources/notebook_population.ipynb.txt b/docs/build/html/_sources/notebook_population.ipynb.txt
index b6a37baa8..f6f27ee43 100644
--- a/docs/build/html/_sources/notebook_population.ipynb.txt
+++ b/docs/build/html/_sources/notebook_population.ipynb.txt
@@ -23,9 +23,12 @@
    "outputs": [],
    "source": [
     "import os\n",
+    "\n",
     "from binarycpython.utils.custom_logging_functions import temp_dir\n",
     "from binarycpython.utils.grid import Population\n",
     "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n",
+    "\n",
     "# help(Population) # Uncomment to see the public functions of this object"
    ]
   },
@@ -60,7 +63,8 @@
       "adding: max_evolution_time=15000 to BSE_options\n",
       "adding: eccentricity=0.02 to BSE_options\n",
       "adding: amt_cores=2 to grid_options\n",
-      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/example_python_population_result to custom_options >>>>\n",
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_population to grid_options\n",
+      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/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",
@@ -88,11 +92,12 @@
     "\n",
     "\n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "    \n",
     "    # Custom options # TODO: need to be set in grid_options probably\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -133,13 +138,13 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Writing settings to /tmp/binary_c_python/example_python_population_result/example_pop_settings.json\n"
+      "Writing settings to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n"
      ]
     },
     {
      "data": {
       "text/plain": [
-       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+       "'/tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'"
       ]
      },
      "execution_count": 3,
@@ -181,7 +186,7 @@
      "text": [
       "Help on method add_grid_variable in module binarycpython.utils.grid:\n",
       "\n",
-      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='edge', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> None method of binarycpython.utils.grid.Population instance\n",
+      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='centred', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> 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",
@@ -199,25 +204,25 @@
       "        name:\n",
       "            name of parameter. This is evaluated as a parameter and you can use it throughout\n",
       "            the rest of the function\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                name = 'lnm1'\n",
       "        longname:\n",
       "            Long name of parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                longname = 'Primary mass'\n",
       "        range:\n",
       "            Range of values to take. Does not get used really, the spacingfunction is used to\n",
       "            get the values from\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                range = [math.log(m_min), math.log(m_max)]\n",
       "        resolution:\n",
       "            Resolution of the sampled range (amount of samples).\n",
       "            TODO: check if this is used anywhere\n",
       "    \n",
-      "            Examples: \n",
+      "            Examples:\n",
       "                resolution = resolution[\"M_1\"]\n",
       "        spacingfunction:\n",
       "            Function determining how the range is sampled. You can either use a real function,\n",
@@ -230,12 +235,12 @@
       "        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",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                precode = 'M_1=math.exp(lnm1);'\n",
       "        probdist:\n",
       "            Function determining the probability that gets assigned to the sampled parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                probdist = 'Kroupa2001(M_1)*M_1'\n",
       "        dphasevol:\n",
@@ -249,7 +254,7 @@
       "                condition = 'self.grid_options['binary']==1'\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 'center'\n",
+      "            the lower edge of the value range) or 'centred'\n",
       "            (steps starting at lower edge + 0.5 * stepsize).\n",
       "\n"
      ]
@@ -313,7 +318,7 @@
       "    \"dphasevol\": \"dlnm1\",\n",
       "    \"parameter_name\": \"M_1\",\n",
       "    \"condition\": \"\",\n",
-      "    \"gridtype\": \"edge\",\n",
+      "    \"gridtype\": \"centred\",\n",
       "    \"branchpoint\": 0,\n",
       "    \"grid_variable_number\": 0\n",
       "}\n"
@@ -457,7 +462,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "adding: parse_function=<function parse_function at 0x7ff3bdf79620> to grid_options\n"
+      "adding: parse_function=<function parse_function at 0x7f531bc3b6a8> to grid_options\n"
      ]
     }
    ],
@@ -536,25 +541,25 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
-      "EXAMPLE_COMPACT_OBJECT             2.867655467480e+01 1.33079 9.81391 0.00167028 13\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "EXAMPLE_COMPACT_OBJECT             1.931266944719e+01 1.3933 12.3177 0.00124307 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.439623364590e+01 1.38004 7.81906 0.00224431 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.364277535630e+01 1.47961 15.4603 0.000925128 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.017435498578e+01 1.59052 19.4046 0.000688507 13\n",
-      "EXAMPLE_COMPACT_OBJECT             8.294870923827e+00 1.7197 24.3552 0.000512406 13\n",
-      "EXAMPLE_COMPACT_OBJECT             6.802132608769e+00 1.84162 30.5689 0.000381347 13\n",
-      "EXAMPLE_COMPACT_OBJECT             5.723570798020e+00 1.99471 38.3678 0.00028381 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.933751523833e+00 2.15875 48.1564 0.000211219 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.337250536639e+00 2.35209 60.4424 0.000157195 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.862081089332e+00 2.56776 75.8628 0.000116989 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.449960890183e+00 2.80457 95.2174 8.70668e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.172196856333e+00 3.05193 119.51 6.47976e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.069627290216e+00 3.27563 150 4.82242e-05 14\n",
-      "Population-2a7732d03e594ef4b5dfe9051b41d9c0 finished! The total probability was: 0.05150046619238191. It took a total of 0.7797017097473145s to run 20 systems on 2 cores\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.450828476484e+00 1.81563 134.653 5.27143e-05 13\n",
+      "Population-f28b5f98d7ef40dcb17fc2481a6d3ced finished! The total probability was: 0.04440288843805411. It took a total of 2.785212755203247s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n"
      ]
     }
@@ -586,7 +591,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "{'population_name': '2a7732d03e594ef4b5dfe9051b41d9c0', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.05150046619238191, 'total_count': 20, 'start_timestamp': 1628444120.234709, 'end_timestamp': 1628444121.0144107, 'total_mass_run': 730.1048014407228, 'total_probability_weighted_mass_run': 0.2983275843337705, 'zero_prob_stars_skipped': 0}\n"
+      "{'population_name': 'f28b5f98d7ef40dcb17fc2481a6d3ced', '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': 1629459533.935186, 'end_timestamp': 1629459536.7203987, 'total_mass_run': 684.2544031669779, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n"
      ]
     }
    ],
@@ -660,42 +665,22 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Saving grid code to grid_options\n",
-      "Writing grid code to /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
-      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
+      "Writing grid code to /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
+      "Loading grid code function from /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
       "Grid code loaded\n",
-      "Writing binary_c calls to /tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
+      "Writing binary_c calls to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
-      "/tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "binary_c M_1 2.0 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.013208238029791246\n",
-      "binary_c M_1 2.5102526289471614 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.009829948023831718\n",
-      "binary_c M_1 3.1506841305680684 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.0073157281034221516\n",
-      "binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.005444573822104362\n"
+      "with a total probability of 0.044402888438054094\n",
+      "/tmp/binary_c_python/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.21587440567681548 probability 0.008236638755149857\n",
+      "binary_c M_1 3.4309362899259503 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.006221155214163634\n",
+      "binary_c M_1 4.257608426597089 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.004698855121516278\n"
      ]
     }
    ],
    "source": [
-    "example_pop.set(verbosity=10)\n",
+    "example_pop.set(verbosity=1)\n",
     "calls_filename = example_pop.write_binary_c_calls_to_file()\n",
     "print(calls_filename)\n",
     "\n",
@@ -725,39 +710,34 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "Population-3680f3882c0a449c944462abffea2447 finished! The total probability was: 0.05150046619238191. It took a total of 0.6246354579925537s to run 20 systems on 2 cores\n",
+      "Population-e45c25448b32440cb7e220f4a3562907 finished! The total probability was: 0.04440288843805411. It took a total of 1.9539172649383545s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n",
       "\n",
       "\n",
       "time mass zams_mass probability radius stellar_type\n",
-      "2.867655467480e+01 1.33079 9.81391 0.00167028 1.72498e-05 13\n",
-      "1.931266944719e+01 1.3933 12.3177 0.00124307 1.72498e-05 13\n",
-      "4.439623364590e+01 1.38004 7.81906 0.00224431 1.72498e-05 13\n",
-      "1.364277535630e+01 1.47961 15.4603 0.000925128 1.72498e-05 13\n",
-      "1.017435498578e+01 1.59052 19.4046 0.000688507 1.72498e-05 13\n",
-      "8.294870923827e+00 1.7197 24.3552 0.000512406 1.72498e-05 13\n",
-      "6.802132608769e+00 1.84162 30.5689 0.000381347 1.72498e-05 13\n",
-      "5.723570798020e+00 1.99471 38.3678 0.00028381 1.72498e-05 13\n",
-      "4.933751523833e+00 2.15875 48.1564 0.000211219 1.72498e-05 13\n",
-      "4.337250536639e+00 2.35209 60.4424 0.000157195 9.97286e-06 14\n",
-      "3.862081089332e+00 2.56776 75.8628 0.000116989 1.08873e-05 14\n",
-      "3.449960890183e+00 2.80457 95.2174 8.70668e-05 1.18914e-05 14\n",
-      "3.172196856333e+00 3.05193 119.51 6.47976e-05 1.29402e-05 14\n",
-      "3.069627290216e+00 3.27563 150 4.82242e-05 1.38887e-05 14\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.450828476484e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -817,11 +797,12 @@
     "    eccentricity=0.02,  # bse_options\n",
     "    \n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -876,15 +857,15 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
@@ -912,96 +893,39 @@
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Grid has handled 125 stars\n",
-      "with a total probability of 0.0862478164626921\n",
-      "Total starcount for this run will be: 125\n",
+      "Grid has handled 27 stars\n",
+      "with a total probability of 0.024868380796643753\n",
+      "Total starcount for this run will be: 27\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Population-d20a4c74d20a43b881c0c9e5def5f76c finished! The total probability was: 0.08624781646269201. It took a total of 8.561265707015991s to run 125 systems on 2 cores\n",
+      "Population-05128ef4c5fe4274a0356c3e99e2f2d2 finished! The total probability was: 0.024868380796643757. It took a total of 9.792905807495117s to run 27 systems on 2 cores\n",
       "There were no errors found in this run.\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",
-      "8.863377990313e+01 1.29444 5.88566 0 2.99283 13 5 15 15 0.02 0.000627913\n",
-      "1.146421815741e+02 0 5.88566 1.33062 4.43925 15 15 13 5 0.02 0.000627913\n",
-      "7.222715508467e+01 1.34922 5.88566 0 5.88566 13 5 15 15 0.02 0.000627913\n",
-      "1.350021848285e+01 1.48488 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171108213270e+01 1.53113 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171086983243e+01 1.53177 17.3205 0 0.1 13 9 15 15 0.02 0.000154349\n",
-      "1.170770599495e+01 1.53176 17.3205 0 4.40513 13 5 15 15 0.02 0.000172877\n",
-      "1.230407246199e+01 1.59499 17.3205 0 4.40513 13 5 15 15 0.02 0.000610573\n",
-      "1.108751340926e+01 1.70319 17.3205 0 8.71025 13 4 15 15 0.02 0.000610573\n",
-      "1.941017702765e+01 1.34903 17.3205 1.65097 8.71025 13 13 13 5 0.02 0.000172877\n",
-      "1.980988739731e+01 1.36979 17.3205 1.60808 8.71025 13 13 13 5 0.02 0.000121486\n",
-      "3.571858031651e+01 1.53174 17.3205 1.30504 8.71025 13 13 13 5 0.02 8.42148e-05\n",
-      "3.459153942631e+01 1.53176 17.3205 1.31004 8.71025 13 13 13 5 0.02 9.8162e-05\n",
-      "1.687368550125e+01 1.34937 17.3205 1.73856 13.0154 13 13 13 8 0.02 0.000172877\n",
-      "1.194842917007e+01 1.78096 17.3205 0 13.0154 13 8 15 15 0.02 0.000610573\n",
-      "1.733614170983e+01 1.53184 17.3205 1.42375 13.0154 13 13 13 5 0.02 9.8162e-05\n",
-      "1.723547465714e+01 1.38403 17.3205 1.71288 13.0154 13 13 13 8 0.02 0.000121486\n",
-      "1.764340254985e+01 1.53174 17.3205 1.41264 13.0154 13 13 13 5 0.02 8.42148e-05\n",
-      "1.170425790780e+01 1.52963 17.3205 0 17.3205 13 5 15 15 0.02 0.000172877\n",
-      "8.922967341481e+00 1.85486 17.3205 0 17.3205 13 8 15 15 0.02 0.000610573\n",
-      "1.232906623449e+01 1.41074 17.3205 1.34281 17.3205 13 13 13 8 0.02 0.000121486\n",
-      "1.170775828562e+01 1.53183 17.3205 1.53183 17.3205 13 5 13 5 0.02 9.8162e-05\n",
-      "1.170770422321e+01 1.53175 17.3205 1.53175 17.3205 13 5 13 5 0.02 8.42148e-05\n",
-      "5.075844624794e+00 2.12303 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.766606588165e+00 2.20484 50.9713 0 0.1 14 8 15 15 0.02 3.79411e-05\n",
-      "4.768305081494e+00 2.18838 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.458869865939e+00 2.29864 50.9713 0 12.8178 14 8 15 15 0.02 0.000150087\n",
-      "1.806014211040e+01 2.10446 50.9713 1.40749 12.8178 13 13 13 5 0.02 2.9863e-05\n",
-      "4.797342083485e+00 2.10328 50.9713 0 12.8178 13 13 15 1 0.02 4.24954e-05\n",
-      "1.721374713429e+01 2.21673 50.9713 1.42212 12.8178 14 14 13 5 0.02 2.41295e-05\n",
-      "4.055645404546e+00 2.47276 50.9713 0 25.5357 14 7 15 15 0.02 0.000150087\n",
-      "1.806123543037e+01 2.21893 50.9713 1.40745 12.8178 14 14 13 5 0.02 2.07011e-05\n",
-      "8.117519147635e+00 2.10433 50.9713 2.21473 25.5357 13 13 14 8 0.02 4.24954e-05\n",
-      "8.315554923168e+00 2.15343 50.9713 2.08519 25.5357 13 13 13 8 0.02 2.9863e-05\n",
-      "7.917420996633e+00 2.21892 50.9713 1.7431 25.5357 14 14 13 8 0.02 2.07011e-05\n",
-      "7.693213405973e+00 2.21805 50.9713 1.78384 25.5357 14 14 13 8 0.02 2.41295e-05\n",
-      "3.753837732894e+00 2.62517 50.9713 0 38.2535 14 7 15 15 0.02 0.000150087\n",
-      "7.087296558990e+00 2.10417 50.9713 2.40935 38.2535 13 13 14 8 0.02 4.24954e-05\n",
-      "7.007109286263e+00 2.15854 50.9713 2.28672 38.2535 13 13 14 8 0.02 2.9863e-05\n",
-      "5.653200958306e+00 2.21878 50.9713 2.0587 38.2535 14 14 13 8 0.02 2.41295e-05\n",
-      "5.733794947644e+00 2.21892 50.9713 1.99255 38.2535 14 14 13 8 0.02 2.07011e-05\n",
-      "3.513216011269e+00 2.76647 50.9713 0 50.9713 14 7 15 15 0.02 0.000150087\n",
-      "4.750574783854e+00 2.27442 50.9713 0 50.9713 14 8 15 15 0.02 4.24954e-05\n",
-      "7.278384712062e+00 1.29678 50.9713 2.09216 50.9713 13 8 13 13 0.02 2.9863e-05\n",
-      "4.765996194699e+00 2.20787 50.9713 2.20787 50.9713 14 8 14 8 0.02 2.07011e-05\n",
-      "4.765535914728e+00 2.21331 50.9713 2.21331 50.9713 14 8 14 8 0.02 2.41295e-05\n",
-      "3.104706358826e+00 3.17639 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.069363482023e+00 3.27572 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.047074050271e+00 3.3836 150 0 37.575 14 7 15 15 0.02 3.68933e-05\n",
-      "5.974759306305e+00 3.23604 150 2.53922 37.575 14 14 14 7 0.02 1.04459e-05\n",
-      "6.074084349384e+00 3.30145 150 2.13876 37.575 14 14 13 8 0.02 7.34071e-06\n",
-      "5.733865371895e+00 3.29994 150 2.00498 37.575 14 14 13 8 0.02 5.93135e-06\n",
-      "3.027099358410e+00 3.53631 150 0 75.05 14 7 15 15 0.02 3.68933e-05\n",
-      "5.807147339697e+00 3.30197 150 1.9791 37.575 14 14 13 8 0.02 5.08861e-06\n",
-      "4.862942347290e+00 3.25294 150 2.97823 75.05 14 14 14 7 0.02 1.04459e-05\n",
-      "4.556479830908e+00 3.29942 150 2.73221 75.05 14 14 14 7 0.02 7.34071e-06\n",
-      "3.853070305680e+00 3.29977 150 2.62486 75.05 14 14 14 7 0.02 5.93135e-06\n",
-      "3.881529045940e+00 3.30149 150 2.55924 75.05 14 14 14 7 0.02 5.08861e-06\n",
-      "3.015033359333e+00 3.64419 150 0 112.525 14 7 15 15 0.02 3.68933e-05\n",
-      "4.126828648362e+00 3.32047 150 0 112.525 14 14 15 3 0.02 1.04459e-05\n",
-      "3.990017992944e+00 3.3032 150 2.94027 112.525 14 14 14 7 0.02 7.34071e-06\n",
-      "3.206771867883e+00 3.07671 150 3.11282 112.525 14 14 14 7 0.02 5.93135e-06\n",
-      "3.006827156705e+00 3.72638 150 0 150 14 7 15 15 0.02 3.68933e-05\n",
-      "3.218786094847e+00 3.30337 150 3.01344 112.525 14 14 14 7 0.02 5.08861e-06\n",
-      "4.527722847382e+00 1.42238 150 0 150 13 5 15 15 0.02 1.04459e-05\n",
-      "3.069567332611e+00 3.27804 150 3.27804 150 14 7 14 7 0.02 5.93135e-06\n",
-      "5.726405299909e+00 1.29746 150 3.22759 150 13 8 14 14 0.02 7.34071e-06\n",
-      "3.069626478211e+00 3.27565 150 3.27565 150 14 7 14 7 0.02 5.08861e-06\n",
+      "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n",
+      "1.935920346899e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n",
+      "2.123795595728e+01 1.30902 17.3205 1.58519 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.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n",
+      "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n",
+      "1.772169325356e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n",
+      "1.367065500196e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-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",
+      "4.227002356107e+00 2.43719 73.0434 0 60.8862 14 14 15 1 0.02 7.67586e-05\n",
+      "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n",
+      "7.394728392218e+00 1.80919 73.0434 1.79091 60.8862 13 13 13 8 0.02 4.43422e-05\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -1067,10 +991,11 @@
     "    \n",
     "    # grid_options\n",
     "    amt_cores=2,  # grid_options\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -1168,14 +1093,14 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
diff --git a/docs/build/html/binary_c_parameters.html b/docs/build/html/binary_c_parameters.html
index ecb6bba95..b1131e2db 100644
--- a/docs/build/html/binary_c_parameters.html
+++ b/docs/build/html/binary_c_parameters.html
@@ -40,7 +40,7 @@
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="Population grid code options" href="grid_options_descriptions.html" />
-    <link rel="prev" title="Using the API functionality of binarycpython" href="notebook_api_functionality.html" /> 
+    <link rel="prev" title="Zero-age stellar luminosity function in binaries" href="notebook_luminosity_function_binaries.html" /> 
 </head>
 
 <body class="wy-body-for-nav">
@@ -197,7 +197,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>: 6162:20210825:093caf0e9      <strong>Built on</strong>: Aug 25 2021 18:02:39</p>
+<dt>This information was obtained by the following binary_c build:</dt><dd><p><strong>binary_c git branch</strong>: newmaster      <strong>binary_c git revision</strong>: 6185:20210910:1621c23a5      <strong>Built on</strong>: Sep 10 2021 15:05:46</p>
 </dd>
 </dl>
 <div class="section" id="section-stars">
@@ -695,6 +695,12 @@
 <div class="line"><strong>Default value</strong>: NULL</div>
 </div>
 <div class="line-block">
+<div class="line"><strong>Parameter</strong>: artificial_mass_accretion_rate_by_stellar_type%d</div>
+<div class="line"><strong>Description</strong>: Constant mass accretion rate for stellar type &lt;n&gt;.</div>
+<div class="line"><strong>Parameter input type</strong>: Float(scanf)</div>
+<div class="line"><strong>Default value</strong>: NULL</div>
+</div>
+<div class="line-block">
 <div class="line"><strong>Parameter</strong>: artificial_angular_momentum_accretion_rate%d</div>
 <div class="line"><strong>Description</strong>: Constant angular momentum accretion for star &lt;n&gt;.</div>
 <div class="line"><strong>Parameter input type</strong>: Float(scanf)</div>
@@ -747,14 +753,6 @@
 <div class="line"><strong>Macros</strong>: [‘BH_HURLEY2002 = 0’, ‘BH_BELCZYNSKI = 1’, ‘BH_SPERA2015 = 2’, ‘BH_FRYER12_DELAYED = 3’, ‘BH_FRYER12_RAPID = 4’, ‘BH_FRYER12_STARTRACK = 5’]</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>Parameter</strong>: PPISN_prescription</div>
-<div class="line"><strong>Description</strong>: (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019.</div>
-<div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 1</div>
-<div class="line"><strong>Macros</strong>: [‘PPISN_NONE = 0’, ‘PPISN_FARMER19 = 1’]</div>
-<div class="line"><strong>Extra</strong>: Ignore</div>
-</div>
-<div class="line-block">
 <div class="line"><strong>Parameter</strong>: sn_kick_distribution_II</div>
 <div class="line"><strong>Description</strong>: 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).</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
@@ -786,7 +784,7 @@
 <div class="line"><strong>Parameter</strong>: sn_kick_distribution_GRB_COLLAPSAR</div>
 <div class="line"><strong>Description</strong>: 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).</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 0</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 <div class="line"><strong>Macros</strong>: [‘KICK_VELOCITY_FIXED = 0’, ‘KICK_VELOCITY_MAXWELLIAN = 1’, ‘KICK_VELOCITY_CUSTOM = 2’]</div>
 </div>
 <div class="line-block">
@@ -832,27 +830,6 @@
 <div class="line"><strong>Macros</strong>: [‘KICK_VELOCITY_FIXED = 0’, ‘KICK_VELOCITY_MAXWELLIAN = 1’, ‘KICK_VELOCITY_CUSTOM = 2’]</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_distribution_PPISN</div>
-<div class="line"><strong>Description</strong>: Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).</div>
-<div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 1</div>
-<div class="line"><strong>Macros</strong>: [‘KICK_VELOCITY_FIXED = 0’, ‘KICK_VELOCITY_MAXWELLIAN = 1’, ‘KICK_VELOCITY_CUSTOM = 2’]</div>
-</div>
-<div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_distribution_PISN</div>
-<div class="line"><strong>Description</strong>: Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).</div>
-<div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-<div class="line"><strong>Macros</strong>: [‘KICK_VELOCITY_FIXED = 0’, ‘KICK_VELOCITY_MAXWELLIAN = 1’, ‘KICK_VELOCITY_CUSTOM = 2’]</div>
-</div>
-<div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_distribution_PHDIS</div>
-<div class="line"><strong>Description</strong>: Set the distribution of speeds applied to PHDIS supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).</div>
-<div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-<div class="line"><strong>Macros</strong>: [‘KICK_VELOCITY_FIXED = 0’, ‘KICK_VELOCITY_MAXWELLIAN = 1’, ‘KICK_VELOCITY_CUSTOM = 2’]</div>
-</div>
-<div class="line-block">
 <div class="line"><strong>Parameter</strong>: sn_kick_dispersion_II</div>
 <div class="line"><strong>Description</strong>: 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).</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
@@ -880,7 +857,7 @@
 <div class="line"><strong>Parameter</strong>: sn_kick_dispersion_GRB_COLLAPSAR</div>
 <div class="line"><strong>Description</strong>: 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).</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 0</div>
+<div class="line"><strong>Default value</strong>: 190</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: sn_kick_dispersion_TZ</div>
@@ -919,24 +896,6 @@
 <div class="line"><strong>Default value</strong>: 0</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_dispersion_PPISN</div>
-<div class="line"><strong>Description</strong>: Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).</div>
-<div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 190</div>
-</div>
-<div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_dispersion_PISN</div>
-<div class="line"><strong>Description</strong>: Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).</div>
-<div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-</div>
-<div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_dispersion_PHDIS</div>
-<div class="line"><strong>Description</strong>: Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).</div>
-<div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-</div>
-<div class="line-block">
 <div class="line"><strong>Parameter</strong>: sn_kick_companion_IA_He</div>
 <div class="line"><strong>Description</strong>: Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the, kick on the companion when a Ia He supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
@@ -1077,27 +1036,6 @@
 <div class="line"><strong>Macros</strong>: [‘SN_IMPULSE_NONE = 0’, ‘SN_IMPULSE_LIU2015 = 1’, ‘SN_IMPULSE_WHEELER1975 = 2’]</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_companion_PPISN</div>
-<div class="line"><strong>Description</strong>: Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.</div>
-<div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-<div class="line"><strong>Macros</strong>: [‘SN_IMPULSE_NONE = 0’, ‘SN_IMPULSE_LIU2015 = 1’, ‘SN_IMPULSE_WHEELER1975 = 2’]</div>
-</div>
-<div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_companion_PISN</div>
-<div class="line"><strong>Description</strong>: Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.</div>
-<div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-<div class="line"><strong>Macros</strong>: [‘SN_IMPULSE_NONE = 0’, ‘SN_IMPULSE_LIU2015 = 1’, ‘SN_IMPULSE_WHEELER1975 = 2’]</div>
-</div>
-<div class="line-block">
-<div class="line"><strong>Parameter</strong>: sn_kick_companion_PHDIS</div>
-<div class="line"><strong>Description</strong>: Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.</div>
-<div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-<div class="line"><strong>Macros</strong>: [‘SN_IMPULSE_NONE = 0’, ‘SN_IMPULSE_LIU2015 = 1’, ‘SN_IMPULSE_WHEELER1975 = 2’]</div>
-</div>
-<div class="line-block">
 <div class="line"><strong>Parameter</strong>: wd_sigma</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
@@ -1169,25 +1107,25 @@
 <div class="line"><strong>Parameter</strong>: delta_mcmin</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: lambda_min</div>
 <div class="line"><strong>Description</strong>: A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min&gt;0 implies that, once Mc&gt;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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: lambda_multiplier</div>
 <div class="line"><strong>Description</strong>: A parameter to increase the efficiency of third dredge up on the TPAGB. The efficiency is lambda * lambda_mult, and setting lambda_min&gt;0 implies that, once Mc&gt;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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: minimum_envelope_mass_for_third_dredgeup</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0.5</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: mass_of_pmz</div>
@@ -1199,13 +1137,13 @@
 <div class="line"><strong>Parameter</strong>: c13_eff</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: mc13_pocket_multiplier</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: tides_convective_damping</div>
@@ -1231,7 +1169,7 @@
 <div class="line"><strong>Parameter</strong>: hbbtfac</div>
 <div class="line"><strong>Description</strong>: A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined)</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: wind_multiplier_%d</div>
@@ -1317,7 +1255,7 @@
 <div class="line"><strong>Parameter</strong>: MINT_metallicity</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: -1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: gaia_Teff_binwidth</div>
@@ -1349,28 +1287,28 @@
 <div class="line"><strong>Parameter</strong>: AGB_core_algorithm</div>
 <div class="line"><strong>Description</strong>: 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).</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 1</div>
+<div class="line"><strong>Default value</strong>: 2</div>
 <div class="line"><strong>Macros</strong>: [‘AGB_CORE_ALGORITHM_DEFAULT = 0’, ‘AGB_CORE_ALGORITHM_HURLEY = 1’, ‘AGB_CORE_ALGORITHM_KARAKAS = 2’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: AGB_radius_algorithm</div>
 <div class="line"><strong>Description</strong>: Algorithm to use for calculating radii on the TPAGB.</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 1</div>
+<div class="line"><strong>Default value</strong>: 2</div>
 <div class="line"><strong>Macros</strong>: [‘AGB_RADIUS_ALGORITHM_DEFAULT = 0’, ‘AGB_RADIUS_ALGORITHM_HURLEY = 1’, ‘AGB_RADIUS_ALGORITHM_KARAKAS = 2’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: AGB_luminosity_algorithm</div>
 <div class="line"><strong>Description</strong>: Algorithm to use for calculating luminosities on the TPAGB.</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 1</div>
+<div class="line"><strong>Default value</strong>: 2</div>
 <div class="line"><strong>Macros</strong>: [‘AGB_LUMINOSITY_ALGORITHM_DEFAULT = 0’, ‘AGB_LUMINOSITY_ALGORITHM_HURLEY = 1’, ‘AGB_LUMINOSITY_ALGORITHM_KARAKAS = 2’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: AGB_3dup_algorithm</div>
 <div class="line"><strong>Description</strong>: Algorithm to use for calculating third dredge up efficiency on the TPAGB.</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 1</div>
+<div class="line"><strong>Default value</strong>: 2</div>
 <div class="line"><strong>Macros</strong>: [‘AGB_THIRD_DREDGE_UP_ALGORITHM_DEFAULT = 0’, ‘AGB_THIRD_DREDGE_UP_ALGORITHM_HURLEY = 1’, ‘AGB_THIRD_DREDGE_UP_ALGORITHM_KARAKAS = 2’, ‘AGB_THIRD_DREDGE_UP_ALGORITHM_STANCLIFFE = 3’]</div>
 </div>
 <div class="line-block">
@@ -1537,6 +1475,24 @@
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
 <div class="line"><strong>Default value</strong>: False</div>
 </div>
+<div class="line-block">
+<div class="line"><strong>Parameter</strong>: degenerate_core_merger_nucsyn</div>
+<div class="line"><strong>Description</strong>: 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)</div>
+<div class="line"><strong>Parameter input type</strong>: True|False</div>
+<div class="line"><strong>Default value</strong>: False</div>
+</div>
+<div class="line-block">
+<div class="line"><strong>Parameter</strong>: degenerate_core_helium_merger_ignition</div>
+<div class="line"><strong>Description</strong>: 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)</div>
+<div class="line"><strong>Parameter input type</strong>: True|False</div>
+<div class="line"><strong>Default value</strong>: True</div>
+</div>
+<div class="line-block">
+<div class="line"><strong>Parameter</strong>: degenerate_core_merger_dredgeup_fraction</div>
+<div class="line"><strong>Description</strong>: If non-zero, mix this fraction of the degenerate core during a merger.(0.0).</div>
+<div class="line"><strong>Parameter input type</strong>: Float</div>
+<div class="line"><strong>Default value</strong>: 0</div>
+</div>
 </div>
 <div class="section" id="section-binary">
 <h2>Section: binary<a class="headerlink" href="#section-binary" title="Permalink to this headline">¶</a></h2>
@@ -1742,7 +1698,7 @@
 <div class="line"><strong>Parameter</strong>: post_ce_objects_have_envelopes</div>
 <div class="line"><strong>Description</strong>: 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 <em>may</em> 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.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: True</div>
+<div class="line"><strong>Default value</strong>: False</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: PN_comenv_transition_time</div>
@@ -1944,20 +1900,22 @@
 <div class="line"><strong>Parameter</strong>: type_Ia_MCh_supernova_algorithm</div>
 <div class="line"><strong>Description</strong>: 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)</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
+<div class="line"><strong>Macros</strong>: [‘TYPE_IA_MCH_SUPERNOVA_ALGORITHM_DD2 = 0’, ‘TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013 = 1’, ‘TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013_AUTOMATIC = 2’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: Seitenzahl2013_model</div>
 <div class="line"><strong>Description</strong>: 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).</div>
 <div class="line"><strong>Parameter input type</strong>: String</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: N100</div>
 <div class="line"><strong>Extra</strong>: N1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: type_Ia_sub_MCh_supernova_algorithm</div>
 <div class="line"><strong>Description</strong>: Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.)</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
+<div class="line"><strong>Macros</strong>: [‘TYPE_IA_SUB_MCH_SUPERNOVA_ALGORITHM_LIVNE_ARNETT_1995 = 0’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: max_HeWD_mass</div>
@@ -2719,7 +2677,7 @@
 <div class="line"><strong>Parameter</strong>: NeNaMgAl</div>
 <div class="line"><strong>Description</strong>: Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: True</div>
 <div class="line"><strong>Extra</strong>: Ignore</div>
 </div>
 <div class="line-block">
@@ -2744,21 +2702,23 @@
 <div class="line"><strong>Parameter</strong>: nucsyn_metallicity</div>
 <div class="line"><strong>Description</strong>: 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!</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: -1</div>
 <div class="line"><strong>Macros</strong>: [‘DEFAULT_TO_METALLICITY = -1’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: nucsyn_solver</div>
 <div class="line"><strong>Description</strong>: 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 (<a class="reference external" href="https://computing.llnl.gov/projects/sundials">https://computing.llnl.gov/projects/sundials</a>. Default 0.</div>
 <div class="line"><strong>Parameter input type</strong>: Unsigned integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
+<div class="line"><strong>Macros</strong>: [‘NUCSYN_SOLVER_KAPS_RENTROP = 0’, ‘NUCSYN_SOLVER_LSODA = 1’, ‘NUCSYN_SOLVER_CVODE = 2’, ‘NUCSYN_SOLVER_NUMBER = 3’, ‘NUCSYN_SOLVER_KAPS_RENTROP = 0’, ‘NUCSYN_SOLVER_LSODA = 1’, ‘NUCSYN_SOLVER_CVODE = 2’, ‘NUCSYN_SOLVER_NUMBER = 3’]</div>
 <div class="line"><strong>Extra</strong>: 0</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: initial_abundance_mix</div>
 <div class="line"><strong>Description</strong>: initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993</div>
 <div class="line"><strong>Parameter input type</strong>: Unsigned integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
+<div class="line"><strong>Macros</strong>: [‘NUCSYN_INIT_ABUND_MIX_AG89 = 0’, ‘NUCSYN_INIT_ABUND_MIX_KARAKAS2002 = 1’, ‘NUCSYN_INIT_ABUND_MIX_LODDERS2003 = 2’, ‘NUCSYN_INIT_ABUND_MIX_ASPLUND2005 = 3’, ‘NUCSYN_INIT_ABUND_MIX_GARCIABERRO = 4’, ‘NUCSYN_INIT_ABUND_MIX_GREVESSE_NOELS_1993 = 5’, ‘NUCSYN_INIT_ABUND_MIX_ASPLUND2009 = 6’, ‘NUCSYN_INIT_ABUND_MIX_KOBAYASHI2011_ASPLUND2009 = 7’, ‘NUCSYN_INIT_ABUND_MIX_LODDERS2010 = 8’]</div>
 <div class="line"><strong>Extra</strong>: 0</div>
 </div>
 <div class="line-block">
@@ -2786,43 +2746,44 @@
 <div class="line"><strong>Parameter</strong>: init_abunds_only</div>
 <div class="line"><strong>Description</strong>: If True, outputs only the initial abundances, then exits.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: initial_abunds_only</div>
 <div class="line"><strong>Description</strong>: If True, outputs only the initial abundances, then exits.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: no_thermohaline_mixing</div>
 <div class="line"><strong>Description</strong>: If True, disables thermohaline mixing.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: lithium_GB_post_Heflash</div>
 <div class="line"><strong>Description</strong>: Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: lithium_GB_post_1DUP</div>
 <div class="line"><strong>Description</strong>: Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: lithium_hbb_multiplier</div>
 <div class="line"><strong>Description</strong>: Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: angelou_lithium_decay_function</div>
 <div class="line"><strong>Description</strong>: Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are: 0 expoential (see angelou_lithium_decay_time).</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
 <div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Macros</strong>: [‘ANGELOU_LITHIUM_DECAY_FUNCTION_EXPONENTIAL = 0’]</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: angelou_lithium_LMMS_time</div>
@@ -2966,17 +2927,10 @@
 <div class="section" id="section-output">
 <h2>Section: output<a class="headerlink" href="#section-output" title="Permalink to this headline">¶</a></h2>
 <div class="line-block">
-<div class="line"><strong>Parameter</strong>: david_logging_function</div>
-<div class="line"><strong>Description</strong>: Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, &gt;0 for custom logging functions</div>
-<div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: 0</div>
-<div class="line"><strong>Extra</strong>: Ignore</div>
-</div>
-<div class="line-block">
 <div class="line"><strong>Parameter</strong>: cf_amanda_log</div>
 <div class="line"><strong>Description</strong>: Enable logging to compare to Amanda’s models.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: float_overflow_checks</div>
@@ -3024,7 +2978,7 @@
 <div class="line"><strong>Parameter</strong>: legacy_yields</div>
 <div class="line"><strong>Description</strong>: Turn on ensemble legacy yield output.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: ensemble_defer</div>
@@ -3072,31 +3026,31 @@
 <div class="line"><strong>Parameter</strong>: EMP_logg_maximum</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 4</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: EMP_minimum_age</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 10</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: EMP_feh_maximum</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: -2</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: CEMP_cfe_minimum</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0.7</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: NEMP_cfe_minimum</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: thick_disc_start_age</div>
@@ -3256,84 +3210,84 @@
 <div class="line"><strong>Parameter</strong>: MINT_dir</div>
 <div class="line"><strong>Description</strong>: Location of MINT algorithm data.</div>
 <div class="line"><strong>Parameter input type</strong>: String</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>:</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_data_cleanup</div>
 <div class="line"><strong>Description</strong>: Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_MS_rejuvenation</div>
 <div class="line"><strong>Description</strong>: Turn on or off (hydrogen) main-sequence rejuvenation.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: True</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_remesh</div>
 <div class="line"><strong>Description</strong>: Turn on or off MINT’s remeshing.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: True</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_use_ZAMS_profiles</div>
 <div class="line"><strong>Description</strong>: 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.)</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: True</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_fallback_to_test_data</div>
 <div class="line"><strong>Description</strong>: If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE)</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_disable_grid_load_warnings</div>
 <div class="line"><strong>Description</strong>: Use this to explicitly disable MINT’s warnings when loading a grid with, e.g., missing or too much data.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_Kippenhahn</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_nshells</div>
 <div class="line"><strong>Description</strong>: 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)</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 200</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_maximum_nshells</div>
 <div class="line"><strong>Description</strong>: 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)</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1000</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_minimum_nshells</div>
 <div class="line"><strong>Description</strong>: 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)</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 10</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_Kippenhahn_stellar_type</div>
 <div class="line"><strong>Description</strong>: Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output.</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: -1</div>
 <div class="line"><strong>Macros</strong>: [‘LOW_MASS_MS = 0’, ‘MS = 1’, ‘HG = 2’, ‘GIANT_BRANCH = 3’, ‘CHeB = 4’, ‘EAGB = 5’, ‘TPAGB = 6’, ‘HeMS = 7’, ‘HeHG = 8’, ‘HeGB = 9’, ‘HeWD = 10’, ‘COWD = 11’, ‘ONeWD = 12’, ‘NS = 13’, ‘BH = 14’, ‘MASSLESS_REMNANT = 15’]</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
@@ -3341,7 +3295,7 @@
 <div class="line"><strong>Parameter</strong>: MINT_Kippenhahn_companion_stellar_type</div>
 <div class="line"><strong>Description</strong>: 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.</div>
 <div class="line"><strong>Parameter input type</strong>: Integer</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: -1</div>
 <div class="line"><strong>Macros</strong>: [‘LOW_MASS_MS = 0’, ‘MS = 1’, ‘HG = 2’, ‘GIANT_BRANCH = 3’, ‘CHeB = 4’, ‘EAGB = 5’, ‘TPAGB = 6’, ‘HeMS = 7’, ‘HeHG = 8’, ‘HeGB = 9’, ‘HeWD = 10’, ‘COWD = 11’, ‘ONeWD = 12’, ‘NS = 13’, ‘BH = 14’, ‘MASSLESS_REMNANT = 15’]</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
@@ -3349,21 +3303,21 @@
 <div class="line"><strong>Parameter</strong>: MINT_nuclear_burning</div>
 <div class="line"><strong>Description</strong>: Turn on or off MINT’s nuclear burning algorithm.</div>
 <div class="line"><strong>Parameter input type</strong>: True|False</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: False</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_minimum_shell_mass</div>
 <div class="line"><strong>Description</strong>: Minimum shell mass in MINT’s nuclear burning routines.</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 1e-06</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>Parameter</strong>: MINT_maximum_shell_mass</div>
 <div class="line"><strong>Description</strong>: Maximum shell mass in MINT’s nuclear burning routines. :</div>
 <div class="line"><strong>Parameter input type</strong>: Float</div>
-<div class="line"><strong>Default value</strong>: NULL</div>
+<div class="line"><strong>Default value</strong>: 0.1</div>
 <div class="line"><strong>Extra</strong>:</div>
 </div>
 </div>
@@ -3532,7 +3486,7 @@
         <a href="grid_options_descriptions.html" class="btn btn-neutral float-right" title="Population grid code options" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
-        <a href="notebook_api_functionality.html" class="btn btn-neutral float-left" title="Using the API functionality of binarycpython" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="notebook_luminosity_function_binaries.html" class="btn btn-neutral float-left" title="Zero-age stellar luminosity function in binaries" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   
@@ -3555,9 +3509,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/custom_logging_functions.html b/docs/build/html/custom_logging_functions.html
index c7e8dfe67..4903f865a 100644
--- a/docs/build/html/custom_logging_functions.html
+++ b/docs/build/html/custom_logging_functions.html
@@ -420,9 +420,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/distribution_functions.html b/docs/build/html/distribution_functions.html
index 2ab05aaf8..dbddacf90 100644
--- a/docs/build/html/distribution_functions.html
+++ b/docs/build/html/distribution_functions.html
@@ -911,9 +911,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/example_notebooks.html b/docs/build/html/example_notebooks.html
index 57f157057..ec6f583d0 100644
--- a/docs/build/html/example_notebooks.html
+++ b/docs/build/html/example_notebooks.html
@@ -95,6 +95,9 @@
 <li class="toctree-l2"><a class="reference internal" href="notebook_population.html">Running populations with binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -193,7 +196,7 @@
 <div class="section" id="example-notebooks">
 <h1>Example notebooks<a class="headerlink" href="#example-notebooks" title="Permalink to this headline">¶</a></h1>
 <p>We have a set of notebooks that explain and show the usage of the binarycpython features. The notebooks are also stored in the examples/ directory in the <a class="reference external" href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master/examples">repository</a></p>
-<p>The order of the notebooks below is more or less the recommended order to read.</p>
+<p>The order of the notebooks below is more or less the recommended order to read. The last couple of notebooks are example usecases</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Contents:</span></p>
 <ul>
@@ -229,6 +232,22 @@
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html#Example-usage:">Example usage:</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#Setting-up-the-Population-object">Setting up the Population object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#Adding-grid-variables">Adding grid variables</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#Setting-logging-and-handling-the-output">Setting logging and handling the output</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#Evolving-the-grid">Evolving the grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#ZAMS-Luminosity-distribution-with-the-initial-mass-function">ZAMS Luminosity distribution with the initial mass function</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l1"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html#Setting-up-the-Population-object">Setting up the Population object</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html#Adding-grid-variables">Adding grid variables</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html#Setting-logging-and-handling-the-output">Setting logging and handling the output</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html#Evolving-the-grid">Evolving the grid</a></li>
+</ul>
+</li>
 </ul>
 </div>
 </div>
@@ -267,9 +286,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/functions.html b/docs/build/html/functions.html
index 5974c283c..7b864f4e9 100644
--- a/docs/build/html/functions.html
+++ b/docs/build/html/functions.html
@@ -209,6 +209,20 @@ useful functions for the user</p>
 </ul>
 </dd>
 </dl>
+<dl class="py class">
+<dt id="binarycpython.utils.functions.AutoVivificationDict">
+<em class="property">class </em><code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">AutoVivificationDict</code><a class="reference internal" href="_modules/binarycpython/utils/functions.html#AutoVivificationDict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.AutoVivificationDict" title="Permalink to this definition">¶</a></dt>
+<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
+<p>Implementation of perl’s autovivification feature, by overriding the
+get item and the __iadd__ operator (<a class="reference external" href="https://docs.python.org/3/reference/datamodel.html?highlight=iadd#object.__iadd__">https://docs.python.org/3/reference/datamodel.html?highlight=iadd#object.__iadd__</a>)</p>
+<p>This allows to set values within a subdict that might not exist yet:</p>
+<p class="rubric">Example</p>
+<p>newdict = {}
+newdict[‘example’][‘mass’] += 10
+print(newdict)
+&gt;&gt;&gt; {‘example’: {‘mass’: 10}}</p>
+</dd></dl>
+
 <dl class="py class">
 <dt id="binarycpython.utils.functions.BinaryCEncoder">
 <em class="property">class </em><code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">BinaryCEncoder</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span></em>, <em class="sig-param"><span class="n">skipkeys</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">ensure_ascii</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">check_circular</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">allow_nan</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">sort_keys</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">indent</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">separators</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">default</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#BinaryCEncoder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.BinaryCEncoder" title="Permalink to this definition">¶</a></dt>
@@ -241,6 +255,13 @@ useful functions for the user</p>
 
 </dd></dl>
 
+<dl class="py function">
+<dt id="binarycpython.utils.functions.bin_data">
+<code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">bin_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">value</span></em>, <em class="sig-param"><span class="n">binwidth</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#bin_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.bin_data" title="Permalink to this definition">¶</a></dt>
+<dd><p>Function that bins the data</p>
+<p>Uses the absolute value of binwidth</p>
+</dd></dl>
+
 <dl class="py class">
 <dt id="binarycpython.utils.functions.binarycDecoder">
 <em class="property">class </em><code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">binarycDecoder</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span></em>, <em class="sig-param"><span class="n">object_hook</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">parse_float</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">parse_int</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">parse_constant</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">strict</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">object_pairs_hook</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#binarycDecoder"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.binarycDecoder" title="Permalink to this definition">¶</a></dt>
@@ -318,6 +339,12 @@ that we want to export.</p>
 <dd><p>Function to return the size + a magnitude string</p>
 </dd></dl>
 
+<dl class="py function">
+<dt id="binarycpython.utils.functions.convfloat">
+<code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">convfloat</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#convfloat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.convfloat" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert scalar x to a float if we can, in which case return the float, otherwise just return x without changing it. Usually, x is a string, but could be anything that float() can handle without failure.</p>
+</dd></dl>
+
 <dl class="py function">
 <dt id="binarycpython.utils.functions.count_keys_recursive">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">count_keys_recursive</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">input_dict</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#count_keys_recursive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.count_keys_recursive" title="Permalink to this definition">¶</a></dt>
@@ -382,6 +409,15 @@ This is done until all the keys are sorted.</p>
 <p>All objects other than dictionary types are directly return as they are</p>
 </dd></dl>
 
+<dl class="py function">
+<dt id="binarycpython.utils.functions.datalinedict">
+<code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">datalinedict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">line</span></em>, <em class="sig-param"><span class="n">parameters</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#datalinedict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.datalinedict" title="Permalink to this definition">¶</a></dt>
+<dd><p>Convert a line of data to a more convenient dictionary.
+:param line = a line of data as a string:
+:param parameters = a list of the parameter names:</p>
+<p>Note: if the parameter is a floating point number, it will be converted to Python’s float type.</p>
+</dd></dl>
+
 <dl class="py function">
 <dt id="binarycpython.utils.functions.example_parse_output">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">example_parse_output</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em>, <em class="sig-param"><span class="n">selected_header</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#example_parse_output"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.example_parse_output" title="Permalink to this definition">¶</a></dt>
@@ -736,6 +772,12 @@ it will return the type of what the value would be in the input_dict</p>
 </dl>
 </dd></dl>
 
+<dl class="py function">
+<dt id="binarycpython.utils.functions.pad_output_distribution">
+<code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">pad_output_distribution</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dist</span></em>, <em class="sig-param"><span class="n">binwidth</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#pad_output_distribution"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.pad_output_distribution" title="Permalink to this definition">¶</a></dt>
+<dd><p>Given a distribution, dist (a dictionary), which should be binned every binwidth (float), fill the distribution with zeros when there is no data. Note: this changes the data in place.</p>
+</dd></dl>
+
 <dl class="py function">
 <dt id="binarycpython.utils.functions.parse_binary_c_version_info">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">parse_binary_c_version_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">version_info_string</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#parse_binary_c_version_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.parse_binary_c_version_info" title="Permalink to this definition">¶</a></dt>
@@ -985,9 +1027,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index eae56de59..59a3dccf3 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -209,11 +209,13 @@
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="grid.html#binarycpython.utils.grid.Population.add_grid_variable">add_grid_variable() (binarycpython.utils.grid.Population method)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.Arenou2010_binary_fraction">Arenou2010_binary_fraction() (in module binarycpython.utils.distribution_functions)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="custom_logging_functions.html#binarycpython.utils.custom_logging_functions.autogen_C_logging_code">autogen_C_logging_code() (in module binarycpython.utils.custom_logging_functions)</a>
+</li>
+      <li><a href="functions.html#binarycpython.utils.functions.AutoVivificationDict">AutoVivificationDict (class in binarycpython.utils.functions)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -221,6 +223,8 @@
 <h2 id="B">B</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.bin_data">bin_data() (in module binarycpython.utils.functions)</a>
+</li>
       <li><a href="custom_logging_functions.html#binarycpython.utils.custom_logging_functions.binary_c_log_code">binary_c_log_code() (in module binarycpython.utils.custom_logging_functions)</a>
 </li>
       <li><a href="custom_logging_functions.html#binarycpython.utils.custom_logging_functions.binary_c_write_log_code">binary_c_write_log_code() (in module binarycpython.utils.custom_logging_functions)</a>
@@ -259,6 +263,8 @@
         <li><a href="grid.html#module-binarycpython.utils.grid">module</a>
 </li>
       </ul></li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li>
     binarycpython.utils.grid_options_defaults
 
@@ -266,8 +272,6 @@
         <li><a href="grid_options_defaults.html#module-binarycpython.utils.grid_options_defaults">module</a>
 </li>
       </ul></li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li>
     binarycpython.utils.hpc_functions
 
@@ -335,6 +339,8 @@
       <li><a href="functions.html#binarycpython.utils.functions.Capturing">Capturing (class in binarycpython.utils.functions)</a>
 </li>
       <li><a href="functions.html#binarycpython.utils.functions.catchtime">catchtime (class in binarycpython.utils.functions)</a>
+</li>
+      <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>
@@ -349,6 +355,8 @@
 </li>
       </ul></li>
       <li><a href="functions.html#binarycpython.utils.functions.convert_bytes">convert_bytes() (in module binarycpython.utils.functions)</a>
+</li>
+      <li><a href="functions.html#binarycpython.utils.functions.convfloat">convfloat() (in module binarycpython.utils.functions)</a>
 </li>
       <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.cosmic_SFH_madau_dickinson2014">cosmic_SFH_madau_dickinson2014() (in module binarycpython.utils.distribution_functions)</a>
 </li>
@@ -368,12 +376,14 @@
 <h2 id="D">D</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.binarycDecoder.decode">decode() (binarycpython.utils.functions.binarycDecoder method)</a>
+      <li><a href="functions.html#binarycpython.utils.functions.datalinedict">datalinedict() (in module binarycpython.utils.functions)</a>
 </li>
-      <li><a href="functions.html#binarycpython.utils.functions.BinaryCEncoder.default">default() (binarycpython.utils.functions.BinaryCEncoder method)</a>
+      <li><a href="functions.html#binarycpython.utils.functions.binarycDecoder.decode">decode() (binarycpython.utils.functions.binarycDecoder method)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="functions.html#binarycpython.utils.functions.BinaryCEncoder.default">default() (binarycpython.utils.functions.BinaryCEncoder method)</a>
+</li>
       <li><a href="plot_functions.html#binarycpython.utils.plot_functions.dummy">dummy() (in module binarycpython.utils.plot_functions)</a>
 </li>
       <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.duquennoy1991">duquennoy1991() (in module binarycpython.utils.distribution_functions)</a>
@@ -591,6 +601,8 @@
 <h2 id="P">P</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.pad_output_distribution">pad_output_distribution() (in module binarycpython.utils.functions)</a>
+</li>
       <li><a href="functions.html#binarycpython.utils.functions.parse_binary_c_version_info">parse_binary_c_version_info() (in module binarycpython.utils.functions)</a>
 </li>
       <li><a href="grid.html#binarycpython.utils.grid.Population.parse_cmdline">parse_cmdline() (binarycpython.utils.grid.Population method)</a>
@@ -604,11 +616,11 @@
       <li><a href="plot_functions.html#binarycpython.utils.plot_functions.plot_HR_diagram">plot_HR_diagram() (in module binarycpython.utils.plot_functions)</a>
 </li>
       <li><a href="plot_functions.html#binarycpython.utils.plot_functions.plot_masses">plot_masses() (in module binarycpython.utils.plot_functions)</a>
-</li>
-      <li><a href="plot_functions.html#binarycpython.utils.plot_functions.plot_orbit">plot_orbit() (in module binarycpython.utils.plot_functions)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="plot_functions.html#binarycpython.utils.plot_functions.plot_orbit">plot_orbit() (in module binarycpython.utils.plot_functions)</a>
+</li>
       <li><a href="plot_functions.html#binarycpython.utils.plot_functions.plot_system">plot_system() (in module binarycpython.utils.plot_functions)</a>
 </li>
       <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.poisson">poisson() (in module binarycpython.utils.distribution_functions)</a>
@@ -641,12 +653,14 @@
 </li>
       <li><a href="functions.html#binarycpython.utils.functions.remove_file">remove_file() (in module binarycpython.utils.functions)</a>
 </li>
-      <li><a href="grid.html#binarycpython.utils.grid.Population.return_all_info">return_all_info() (binarycpython.utils.grid.Population method)</a>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.rename_grid_variable">rename_grid_variable() (binarycpython.utils.grid.Population method)</a>
 </li>
-      <li><a href="grid.html#binarycpython.utils.grid.Population.return_binary_c_defaults">return_binary_c_defaults() (binarycpython.utils.grid.Population method)</a>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.return_all_info">return_all_info() (binarycpython.utils.grid.Population method)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.return_binary_c_defaults">return_binary_c_defaults() (binarycpython.utils.grid.Population method)</a>
+</li>
       <li><a href="grid.html#binarycpython.utils.grid.Population.return_binary_c_version_info">return_binary_c_version_info() (binarycpython.utils.grid.Population method)</a>
 
       <ul>
@@ -700,12 +714,20 @@
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="functions.html#binarycpython.utils.functions.update_dicts">update_dicts() (in module binarycpython.utils.functions)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.update_grid_variable">update_grid_variable() (binarycpython.utils.grid.Population method)</a>
 </li>
   </ul></td>
 </tr></table>
 
 <h2 id="V">V</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.vb1print">vb1print() (binarycpython.utils.grid.Population method)</a>
+</li>
+  </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="functions.html#binarycpython.utils.functions.verbose_print">verbose_print() (in module binarycpython.utils.functions)</a>
 </li>
@@ -760,9 +782,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/grid.html b/docs/build/html/grid.html
index 35540c71a..540448534 100644
--- a/docs/build/html/grid.html
+++ b/docs/build/html/grid.html
@@ -202,8 +202,6 @@
 <span id="grid-class-module"></span><h1>grid_class module<a class="headerlink" href="#module-binarycpython.utils.grid" title="Permalink to this headline">¶</a></h1>
 <p>Module containing the Population grid class object.</p>
 <p>Here all the functionality of a Population object is defined.</p>
-<p>Useful for the user to understand the functionality,
-but copying functionality isn’t recommended except if you know what you are doing</p>
 <dl class="simple">
 <dt>Tasks:</dt><dd><ul class="simple">
 <li><p>TODO: add functionality to ‘on-init’ set arguments</p></li>
@@ -220,7 +218,6 @@ but copying functionality isn’t recommended except if you know what you are do
 <li><p>TODO: uncomment and implement the HPC functionality</p></li>
 <li><p>TODO: think of a clean and nice way to unload and remove the custom_logging_info library from memory (and from disk)</p></li>
 <li><p>TODO: think of a nice way to remove the loaded grid_code/ generator from memory.</p></li>
-<li><p>TODO: Create a designated dict for results</p></li>
 </ul>
 </dd>
 </dl>
@@ -312,12 +309,25 @@ the lower edge of the value range) or ‘centred’
 </dl>
 </dd></dl>
 
+<dl class="py method">
+<dt id="binarycpython.utils.grid.Population.clean">
+<code class="sig-name descname">clean</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.clean"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.clean" title="Permalink to this definition">¶</a></dt>
+<dd><p>Clean the contents of the population object so it can be reused.</p>
+<p>Calling _pre_run_cleanup()</p>
+<p>TODO: decide to deprecate this function</p>
+<dl class="field-list simple">
+<dt class="field-odd">Return type</dt>
+<dd class="field-odd"><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">None</span></code></p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt id="binarycpython.utils.grid.Population.evolve">
 <code class="sig-name descname">evolve</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.evolve"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.evolve" title="Permalink to this definition">¶</a></dt>
 <dd><p>Entry point function of the whole object. From here, based on the settings,
 we set up a SLURM or CONDOR grid, or if no setting is given we go straight
-to evolving the population</p>
+to evolving the population.</p>
 <dl class="simple">
 <dt>There are no direct arguments to this function, rather it is based on the grid_options settings:</dt><dd><p>grid_options[‘slurm’]: integer Boolean whether to use a slurm_grid evolution
 grid_options[‘condor’]: integer Boolean whether to use a condor_grid evolution</p>
@@ -325,8 +335,9 @@ grid_options[‘condor’]: integer Boolean whether to use a condor_grid evoluti
 </dl>
 <p>If neither of the above is set, we continue without using HPC routines
 (that doesn’t mean this cannot be run on a server with many cores)</p>
-<p>Returns an dictionary containing the analytics of the run
-TODO: change the way this is done. Slurm &amp; CONDOR should probably do this different</p>
+<p>Returns an dictionary containing the analytics of the run</p>
+<p>TODO: change the way this is done. Slurm &amp; CONDOR should probably do this different
+NOTE: SLURM and CONDOR options are not working properly yet</p>
 <dl class="field-list simple">
 <dt class="field-odd">Return type</dt>
 <dd class="field-odd"><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">None</span></code></p>
@@ -422,6 +433,27 @@ can change to ints.</p>
 </dl>
 </dd></dl>
 
+<dl class="py method">
+<dt id="binarycpython.utils.grid.Population.rename_grid_variable">
+<code class="sig-name descname">rename_grid_variable</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">oldname</span></em>, <em class="sig-param"><span class="n">newname</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.rename_grid_variable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.rename_grid_variable" title="Permalink to this definition">¶</a></dt>
+<dd><p>Function to rename a grid variable.</p>
+<p>note: this does NOT alter the order
+of the self.grid_options[“_grid_variables”] dictionary.</p>
+<p>The order in which the grid variables are loaded into the grid is based on their
+<cite>grid_variable_number</cite> property</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>oldname</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – old name of the grid variable</p></li>
+<li><p><strong>newname</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – new name of the grid variable</p></li>
+</ul>
+</dd>
+<dt class="field-even">Return type</dt>
+<dd class="field-even"><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">None</span></code></p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt id="binarycpython.utils.grid.Population.return_all_info">
 <code class="sig-name descname">return_all_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">include_population_settings</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">include_binary_c_defaults</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">include_binary_c_version_info</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">include_binary_c_help_all</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.return_all_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.return_all_info" title="Permalink to this definition">¶</a></dt>
@@ -504,6 +536,32 @@ in the self.grid_options</p>
 <p>If nothing is passed then we just use the default options</p>
 </dd></dl>
 
+<dl class="py method">
+<dt id="binarycpython.utils.grid.Population.update_grid_variable">
+<code class="sig-name descname">update_grid_variable</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.update_grid_variable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.update_grid_variable" title="Permalink to this definition">¶</a></dt>
+<dd><p>Function to update the values of a grid variable.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>name</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – name of the grid variable to be changed.</p></li>
+<li><p><strong>**kwargs</strong> – key-value pairs to override the existing grid variable data. See add_grid_variable for these names.</p></li>
+</ul>
+</dd>
+<dt class="field-even">Return type</dt>
+<dd class="field-even"><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">None</span></code></p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt id="binarycpython.utils.grid.Population.vb1print">
+<code class="sig-name descname">vb1print</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ID</span></em>, <em class="sig-param"><span class="n">now</span></em>, <em class="sig-param"><span class="n">system_number</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.vb1print"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.vb1print" title="Permalink to this definition">¶</a></dt>
+<dd><p>Verbosity-level 1 printing, to keep an eye on a grid.
+:param ID: thread ID for debugging (int)
+:param now: the time now as a UNIX-style epoch in seconds (float)
+:param system_number: the system number</p>
+</dd></dl>
+
 <dl class="py method">
 <dt id="binarycpython.utils.grid.Population.write_binary_c_calls_to_file">
 <code class="sig-name descname">write_binary_c_calls_to_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output_dir</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">output_filename</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">include_defaults</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.write_binary_c_calls_to_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.write_binary_c_calls_to_file" title="Permalink to this definition">¶</a></dt>
@@ -575,9 +633,9 @@ like m1,m2,sep, orb-per, ecc, probability etc.</p>
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/grid_options_defaults.html b/docs/build/html/grid_options_defaults.html
index 151d7f683..4a2331f54 100644
--- a/docs/build/html/grid_options_defaults.html
+++ b/docs/build/html/grid_options_defaults.html
@@ -308,9 +308,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/grid_options_descriptions.html b/docs/build/html/grid_options_descriptions.html
index 65faf9f07..2f50ad947 100644
--- a/docs/build/html/grid_options_descriptions.html
+++ b/docs/build/html/grid_options_descriptions.html
@@ -190,7 +190,7 @@
 <div class="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 1 options that are not described yet.</p>
+There are 2 options that are not described yet.</p>
 <div class="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>
@@ -234,6 +234,9 @@ There are 1 options that are not described yet.</p>
 <div class="line"><strong>log_args_dir</strong>: Directory to log the arguments to. Unused</div>
 </div>
 <div class="line-block">
+<div class="line"><strong>log_dt</strong>: No description available yet</div>
+</div>
+<div class="line-block">
 <div class="line"><strong>log_file</strong>: Log file for the population object. Unused</div>
 </div>
 <div class="line-block">
@@ -252,7 +255,7 @@ There are 1 options that are not described yet.</p>
 <div class="line"><strong>multiplicity_fraction_function</strong>: Which multiplicity fraction function to use. 0: None, 1: Arenou 2010, 2: Rhagavan 2010, 3: M&amp;S 2017</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>parse_function</strong>: Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the grid_options[‘results’] dictionary, or just output results to a file</div>
+<div class="line"><strong>parse_function</strong>: Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the self.grid_results dictionary, or just output results to a file</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>repeat</strong>: Factor of how many times a system should be repeated. Consider the evolution splitting binary_c argument for supernovae kick repeating.</div>
@@ -479,9 +482,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/hpc_functions.html b/docs/build/html/hpc_functions.html
index eaeff7cea..8369b0da4 100644
--- a/docs/build/html/hpc_functions.html
+++ b/docs/build/html/hpc_functions.html
@@ -239,9 +239,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index 66993241b..5ff56a81b 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -238,12 +238,13 @@
 <p>For this it is best to set up a virtual environment. Activate the virtualenvironment and enter the cloned version of the repo.</p>
 <p>Then run:</p>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
+<span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">uninstall</span> <span class="n">binarycpython</span> <span class="o">&amp;&amp;</span> <span class="n">rm</span> <span class="n">dist</span><span class="o">/*</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
 </pre></div>
 </div>
-<p>You can find the version of this package in setup.py.</p>
+<p>This will clean the build directory, remove binarycpython from the venv, remove the dist packages, and then rebuilding and reinstalling the package. You can find the version of this package in setup.py.</p>
 <p>This will install this package into the virtual environment. Making changes to the sourcecode can be “installed” into the virtual env with the same command.</p>
 <p>If this is not the first time you install the package, but rather rebuild it because you make changes in either binary_c or binarycpython, you should ignore the currently installed version, and also skip installing the dependencies again, by executing the following command:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">ignore</span><span class="o">-</span><span class="n">installed</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">dependencies</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">uninstall</span> <span class="n">binarycpython</span> <span class="o">&amp;&amp;</span> <span class="n">rm</span> <span class="n">dist</span><span class="o">/*</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">ignore</span><span class="o">-</span><span class="n">installed</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">dependencies</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
 </pre></div>
 </div>
 <div class="section" id="after-installation">
@@ -316,6 +317,9 @@
 <li class="toctree-l2"><a class="reference internal" href="notebook_population.html">Running populations with binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a><ul>
@@ -382,9 +386,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html
index 076e1dc8c..84f5c150a 100644
--- a/docs/build/html/modules.html
+++ b/docs/build/html/modules.html
@@ -250,9 +250,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_api_functionality.html b/docs/build/html/notebook_api_functionality.html
index c4b2e364a..155f85e6b 100644
--- a/docs/build/html/notebook_api_functionality.html
+++ b/docs/build/html/notebook_api_functionality.html
@@ -39,7 +39,7 @@
     
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="Binary_c parameters" href="binary_c_parameters.html" />
+    <link rel="next" title="Example use case: Zero-age stellar luminosity function" href="notebook_luminosity_function_single.html" />
     <link rel="prev" title="Extra features and functionality of binarycpython" href="notebook_extra_features.html" /> 
 </head>
 
@@ -102,6 +102,9 @@
 </li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -451,7 +454,7 @@ div.rendered_html tbody tr:hover {
 <p>Binarycpython uses the Python-C extension framework to interface Python with C. The sourcecode for this is contained in <code class="docutils literal notranslate"><span class="pre">src/binary_c_python.c</span></code>, and the functions are available via <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">binarycpython</span> <span class="pre">import</span> <span class="pre">_binary_c_bindings</span></code>.</p>
 <p>The following functions are available through the API: (run cell below)</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -472,35 +475,67 @@ NAME
 
 FUNCTIONS
     free_persistent_data_memaddr_and_return_json_output(...)
-        Frees the persistent_data memory and returns the json output
+        Frees the persistent_data memory and returns the json output.
+
+        Arguments:
+                store capsule: capsule containing the memory adress of the persistent data object (contains the ensemble)
 
     free_store_memaddr(...)
-        Frees the store memaddr
+        Frees the store memaddr.
+
+        Arguments:
+                store capsule: capsule containing the memory adress of the store object
 
     return_arglines(...)
         Return the default args for a binary_c system
 
+        Arguments:
+                No arguments.
+
     return_help(...)
         Return the help info for a given parameter
 
+        Arguments:
+                parameter: parameter name.
+
     return_help_all(...)
         Return an overview of all the parameters, their description, categorized in sections
 
+        Arguments:
+                No arguments.
+
     return_maximum_mass_ratio_for_RLOF(...)
-        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at zams. Optionally accepts a store_capsule. Please use the wrapper functions in utils for this except when you know what you&#39;re doing
+        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you&#39;re doing.
+
+        Arguments:
+                argstring: argument string for binary_c
+                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null
 
     return_minimum_orbit_for_RLOF(...)
-        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at zams. Please use the wrapper functions in utils for this except when you know what you&#39;re doing
+        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you&#39;re doing.
+
+        Arguments:
+                argstring: argument string for binary_c
+                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null
 
     return_persistent_data_memaddr(...)
         Return the store memory adress that will be passed to run_population
 
+        Arguments:
+                No arguments.
+
     return_store_memaddr(...)
         Return the store memory adress that will be passed to run_population
 
+        Arguments:
+                No arguments.
+
     return_version_info(...)
         Return the version information of the used binary_c build
 
+        Arguments:
+                No arguments.
+
     run_system(...)
         Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things.
 
@@ -550,7 +585,7 @@ FILE
 <div class="section" id="Setting-up,-using-and-freeing-store">
 <h3>Setting up, using and freeing store<a class="headerlink" href="#Setting-up,-using-and-freeing-store" title="Permalink to this headline">¶</a></h3>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[10]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -583,8 +618,8 @@ FILE
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-&lt;capsule object &#34;STORE&#34; at 0x7f163859d0c0&gt;
-SINGLE_STAR_LIFETIME 10 27.7358
+&lt;capsule object &#34;STORE&#34; at 0x7fa6a45ed180&gt;
+SINGLE_STAR_LIFETIME 10 28.4838
 
 </pre></div></div>
 </div>
@@ -593,7 +628,7 @@ SINGLE_STAR_LIFETIME 10 27.7358
 <h3>Getting information from binary_c<a class="headerlink" href="#Getting-information-from-binary_c" title="Permalink to this headline">¶</a></h3>
 <p>We can get information for a parameter via return_help(parameter_name): This will return an unparsed output</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[11]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[3]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -619,7 +654,7 @@ Default : 0
 </div>
 <p>We can get information on all available parameters via return_help(parameter_name):</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[16]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[4]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -695,6 +730,9 @@ equation_of_state_algorithm : Set the equation of state algorithm. 0 = Paczynski
 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&amp;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&#39;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)
@@ -714,7 +752,9 @@ superwind_mira_switchon : In the Vassiliadis and Wood (1993) AGB wind prescripti
 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&#39; mass loss formula. (This multiplies the 4e-13 in Reimers&#39; 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 &amp; Pringle (1992) magnetic wind. (0.0) : (null)
 artificial_mass_accretion_rate%d : Constant mass accretion rate for star &lt;n&gt;. : (null)
+artificial_mass_accretion_rate_by_stellar_type%d : Constant mass accretion rate for stellar type &lt;n&gt;. : (null)
 artificial_angular_momentum_accretion_rate%d : Constant angular momentum accretion for star &lt;n&gt;. : (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 &lt;0 (default is -1). : (null)
@@ -722,8 +762,7 @@ artificial_accretion_end_time : Time at which artificial accretion ends. Ignored
 wr_wind : Massive-star (WR) wind prescription. 0 = Hurley et al 2000/2002, 1=Maeder and Meynet, 2=Nugis and Lamers, 3=John Eldridge&#39;s version of Vink&#39;s early-2000s wind (See Lynnette Dray&#39;s thesis, or John Eldridge&#39;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&#39;s (CO) core mass. 0=Hurley et al 2000/2002, 1=Belczynski (early 2000s). : (null)
-PPISN_prescription : (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019. : Ignore
+BH_prescription : Black hole mass prescrition: relates the mass of a newly formed black hole to its progenitor&#39;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)
@@ -735,9 +774,6 @@ sn_kick_distribution_BH_BH : Set the distribution of speeds applied to black hol
 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_distribution_PPISN : Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)
-sn_kick_distribution_PISN : Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)
-sn_kick_distribution_PHDIS : Set the distribution of speeds applied to PHDIS supernovae. 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)
@@ -749,9 +785,6 @@ sn_kick_dispersion_BH_BH : Set the dispersion of speeds applied to black holes f
 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_dispersion_PPISN : Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)
-sn_kick_dispersion_PISN : Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)
-sn_kick_dispersion_PHDIS : Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)
 sn_kick_companion_IA_He : Set the speed (if &gt;=0) of, or the algothim (if &lt;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 &gt;=0) of, or the algothim (if &lt;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 &gt;=0) of, or the algothim (if &lt;0) used to calculate the, kick on the companion when a Ia Mch supernova occurs. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)
@@ -772,9 +805,6 @@ sn_kick_companion_BH_BH : Set the speed (if &gt;=0) of, or the algothim (if &lt;
 sn_kick_companion_BH_NS : Set the speed (if &gt;=0) of, or the algothim (if &lt;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 &gt;=0) of, or the algothim (if &lt;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 &gt;=0) of, or the algothim (if &lt;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)
-sn_kick_companion_PPISN : Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)
-sn_kick_companion_PISN : Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)
-sn_kick_companion_PHDIS : Set the speed (if &gt;=0) of, or the algothim (if &lt;0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 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)
@@ -847,6 +877,11 @@ PN_fast_wind_mdot_AGB : The envelope mass below which fast wind used during the
 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
@@ -1113,7 +1148,6 @@ angelou_lithium_vrotfrac_trigger : Fraction of Keplerian (breakup) equatorial ro
 ############################################################
 ##### Section Output
 ############################################################
-david_logging_function : Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, &gt;0 for custom logging functions : Ignore
 cf_amanda_log : Enable logging to compare to Amanda&#39;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-&gt;pre_events_stardata just before an event. : (null)
@@ -1143,6 +1177,7 @@ escape_velocity : A parameter used in constructing galactic chemical evolution (
 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 &#34;/dev/null&#34; 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. :
@@ -1167,8 +1202,12 @@ MINT_data_cleanup : Activate checks on incoming data to try to account for probl
 MINT_MS_rejuvenation : Turn on or off (hydrogen) main-sequence rejuvenation. :
 MINT_remesh : Turn on or off MINT&#39;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&#39;s warnings when loading a grid with, e.g., missing or too much data. :
 MINT_Kippenhahn : Turn on or off MINT&#39;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&#39;s nuclear burning algorithm. :
@@ -1216,7 +1255,7 @@ list_args : Display list of arguments with their default values. Useful for batc
 </div>
 <p>We can get all the parameter names and their default values with return_arglines(): (abridged output)</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[20]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[5]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -1237,7 +1276,7 @@ M_1 = 0
 </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>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
+<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>
@@ -1269,7 +1308,7 @@ MINIMUM PERIOD 0.00632092
 </pre></div></div>
 </div>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[46]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -1321,7 +1360,7 @@ MAXIMUM MASS RATIO 0.0141
   
     <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
       
-        <a href="binary_c_parameters.html" class="btn btn-neutral float-right" title="Binary_c parameters" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+        <a href="notebook_luminosity_function_single.html" class="btn btn-neutral float-right" title="Example use case: Zero-age stellar luminosity function" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="notebook_extra_features.html" class="btn btn-neutral float-left" title="Extra features and functionality of binarycpython" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
@@ -1347,9 +1386,9 @@ MAXIMUM MASS RATIO 0.0141
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_api_functionality.ipynb b/docs/build/html/notebook_api_functionality.ipynb
index d81c31711..8d454880c 100644
--- a/docs/build/html/notebook_api_functionality.ipynb
+++ b/docs/build/html/notebook_api_functionality.ipynb
@@ -15,7 +15,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "id": "ded7eaf6-e1ba-46c2-9f6f-9ebcb14a264d",
    "metadata": {},
    "outputs": [
@@ -30,37 +30,69 @@
       "\n",
       "FUNCTIONS\n",
       "    free_persistent_data_memaddr_and_return_json_output(...)\n",
-      "        Frees the persistent_data memory and returns the json output\n",
+      "        Frees the persistent_data memory and returns the json output.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the persistent data object (contains the ensemble)\n",
       "    \n",
       "    free_store_memaddr(...)\n",
-      "        Frees the store memaddr\n",
+      "        Frees the store memaddr.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the store object\n",
       "    \n",
       "    return_arglines(...)\n",
       "        Return the default args for a binary_c system\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_help(...)\n",
       "        Return the help info for a given parameter\n",
+      "        \n",
+      "        Arguments:\n",
+      "                parameter: parameter name.\n",
       "    \n",
       "    return_help_all(...)\n",
       "        Return an overview of all the parameters, their description, categorized in sections\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_maximum_mass_ratio_for_RLOF(...)\n",
-      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at zams. Optionally accepts a store_capsule. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_minimum_orbit_for_RLOF(...)\n",
-      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at zams. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_persistent_data_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_store_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_version_info(...)\n",
       "        Return the version information of the used binary_c build\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    run_system(...)\n",
-      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things. \n",
+      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things.\n",
       "        \n",
       "        Arguments:\n",
       "                argstring: argument string for binary_c\n",
@@ -126,7 +158,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 2,
    "id": "10a74d5a-a3d5-4543-a5bc-20d1fe885bb4",
    "metadata": {},
    "outputs": [
@@ -134,8 +166,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "<capsule object \"STORE\" at 0x7f163859d0c0>\n",
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
+      "<capsule object \"STORE\" at 0x7fa6a45ed180>\n",
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
       "\n"
      ]
     }
@@ -183,7 +215,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 3,
    "id": "318874f6-7acf-49bb-9786-299d4dffc0b3",
    "metadata": {},
    "outputs": [
@@ -217,7 +249,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 4,
    "id": "d7e757ae-579c-42a2-a310-f0401b7800e8",
    "metadata": {
     "scrolled": true,
@@ -291,6 +323,9 @@
       "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",
@@ -310,7 +345,9 @@
       "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",
@@ -318,8 +355,7 @@
       "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. 0=Hurley et al 2000/2002, 1=Belczynski (early 2000s). : (null)\n",
-      "PPISN_prescription : (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019. : Ignore\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",
@@ -331,9 +367,6 @@
       "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_distribution_PPISN : Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PISN : Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PHDIS : Set the distribution of speeds applied to PHDIS supernovae. 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",
@@ -345,9 +378,6 @@
       "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_dispersion_PPISN : Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PISN : Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PHDIS : Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 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",
@@ -368,9 +398,6 @@
       "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",
-      "sn_kick_companion_PPISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PHDIS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 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",
@@ -443,6 +470,11 @@
       "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",
@@ -709,7 +741,6 @@
       "############################################################\n",
       "##### Section Output\n",
       "############################################################\n",
-      "david_logging_function : Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, >0 for custom logging functions : Ignore\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",
@@ -739,6 +770,7 @@
       "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",
@@ -763,8 +795,12 @@
       "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",
@@ -825,7 +861,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 5,
    "id": "3d29ca9d-ac66-4f9e-81cf-2edd14a98b79",
    "metadata": {},
    "outputs": [
@@ -854,7 +890,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "id": "e517f561-09c6-419d-ba89-d9cb61e6ebab",
    "metadata": {},
    "outputs": [
@@ -887,7 +923,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 46,
+   "execution_count": 7,
    "id": "7da75a95-8831-4346-a584-e042ced75249",
    "metadata": {},
    "outputs": [
diff --git a/docs/build/html/notebook_custom_logging.html b/docs/build/html/notebook_custom_logging.html
index 1c8c66116..a703be91f 100644
--- a/docs/build/html/notebook_custom_logging.html
+++ b/docs/build/html/notebook_custom_logging.html
@@ -107,6 +107,9 @@
 <li class="toctree-l2"><a class="reference internal" href="notebook_population.html">Running populations with binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -454,7 +457,7 @@ div.rendered_html tbody tr:hover {
 <h1>Using custom logging routines with binarycpython<a class="headerlink" href="#Using-custom-logging-routines-with-binarycpython" title="Permalink to this headline">¶</a></h1>
 <p>In this notebook you’ll learn how to use the custom logging functionality</p>
 <div class="nbinput nblast docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[37]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -477,7 +480,7 @@ div.rendered_html tbody tr:hover {
 <h2>Usage<a class="headerlink" href="#Usage" title="Permalink to this headline">¶</a></h2>
 <p>There are two methods to create the C-code that will be compiled: - Automatically generate the print statement and use the wrapper to generate the full function string, by using <code class="docutils literal notranslate"><span class="pre">autogen_C_logging_code</span></code> - Create your custom print statement and use the wrapper to generate the full function string, by writing out the print statement. Here the logging statement obviously has to be valid C code</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -501,7 +504,7 @@ Printf(&#34;MY_STELLAR_DATA %g %g\n&#34;,((double)stardata-&gt;model.time),((dou
 </pre></div></div>
 </div>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[30]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[3]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -520,7 +523,7 @@ Printf(&#34;MY_STELLAR_DATA time=%g mass=%g\n&#34;, stardata-&gt;model.time, sta
 </pre></div></div>
 </div>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[31]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[4]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -557,7 +560,7 @@ void binary_c_API_function custom_output_function(struct stardata_t * stardata)
 </div>
 <p>Combining the above with e.g. run_system() (see notebook_individual_systems for more examples):</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[32]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[5]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -590,7 +593,7 @@ MY_STELLAR_DATA time=2e-06 mass=2
 <h3>Using custom logging with the population object<a class="headerlink" href="#Using-custom-logging-with-the-population-object" title="Permalink to this headline">¶</a></h3>
 <p>Custom logging can be used for a whole population by setting the print statement (so not the entire logging script) in <code class="docutils literal notranslate"><span class="pre">C_logging_code</span></code></p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[33]:
+<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>
@@ -638,10 +641,10 @@ MY_STELLAR_DATA time=2e-06 mass=2
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-EXAMPLE_ABOVE_MS             1.041660877905e+02 4.99198 4.99198 6.1357 6.1357 2 1
-EXAMPLE_ABOVE_MS             1.041662558619e+02 4.99198 4.99198 6.14057 6.1357 2 2
-EXAMPLE_ABOVE_MS             1.041662560111e+02 4.99198 4.99198 6.14057 6.14057 2 2
-EXAMPLE_ABOVE_MS             1.041662564579e+02 4.99198 4.99198 6.14059 6.14057 2 2
+EXAMPLE_ABOVE_MS             1.044142002936e+02 4.99194 4.99194 6.13567 6.13567 2 1
+EXAMPLE_ABOVE_MS             1.044572277695e+02 4.99192 4.99194 7.51803 6.13567 2 2
+EXAMPLE_ABOVE_MS             1.044654032097e+02 4.99192 4.99192 7.81395 7.51803 2 2
+EXAMPLE_ABOVE_MS             1.045084306856e+02 4.99191 4.99192 9.57443 7.81395 2 2
 </pre></div></div>
 </div>
 </div>
@@ -649,7 +652,7 @@ EXAMPLE_ABOVE_MS             1.041662564579e+02 4.99198 4.99198 6.14059 6.14057
 <h3>Using custom logging when running directly from the API<a class="headerlink" href="#Using-custom-logging-when-running-directly-from-the-API" title="Permalink to this headline">¶</a></h3>
 <p>When running a system directly with the API we need to manually load the custom logging into memory (via <code class="docutils literal notranslate"><span class="pre">create_and_load_logging_function</span></code>) and pass the memory address to the binary_c binding via <code class="docutils literal notranslate"><span class="pre">_binary_c_bindings.run_system(argstring,</span> <span class="pre">custom_logging_func_memaddr=custom_logging_memaddr)</span></code></p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[40]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -714,7 +717,7 @@ MY_STELLAR_DATA 2e-06 15
 <h3>Compact object<a class="headerlink" href="#Compact-object" title="Permalink to this headline">¶</a></h3>
 <p>This logging will print the timestep when the star becomes a compact object. After it does, we change the maximum time to be the current time, effectively terminating the evolution</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[42]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[8]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -758,8 +761,8 @@ MY_STELLAR_DATA 2e-06 15
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-SINGLE_STAR_LIFETIME 10 27.7358
-EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.446 13 5
+SINGLE_STAR_LIFETIME 10 28.4838
+EXAMPLE_LOG_CO             2.848380621869e+01 1.33469 9.1865 1.72498e-05 724.338 13 5
 </pre></div></div>
 </div>
 </div>
@@ -767,7 +770,7 @@ EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.44
 <h3>Logging mass evolution and the supernova<a class="headerlink" href="#Logging-mass-evolution-and-the-supernova" title="Permalink to this headline">¶</a></h3>
 <p>This logging code prints the mass evolution and the moment the star goes supernova</p>
 <div class="nbinput docutils container">
-<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[47]:
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[10]:
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
@@ -786,58 +789,27 @@ EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.44
 <span class="s2">{</span>
 <span class="s2">    if (stardata-&gt;model.time &lt; stardata-&gt;model.max_evolution_time)</span>
 <span class="s2">    {</span>
-<span class="s2">        if(stardata-&gt;pre_events_stardata != NULL)</span>
-<span class="s2">        {</span>
-<span class="s2">            Printf(&quot;EXAMPLE_SN </span><span class="si">%30.12e</span><span class="s2"> &quot; // 1</span>
-<span class="s2">                &quot;</span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> &quot; // 2-5</span>
-<span class="s2">                &quot;</span><span class="si">%d</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> &quot; // 6-9</span>
-<span class="s2">                &quot;</span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="se">\\</span><span class="s2">n&quot;, // 10-13</span>
-
-<span class="s2">                //</span>
-<span class="s2">                stardata-&gt;model.time, // 1</span>
-
-<span class="s2">                stardata-&gt;star[0].mass, //2</span>
-<span class="s2">                stardata-&gt;pre_events_stardata-&gt;star[0].mass, //3</span>
-<span class="s2">                stardata-&gt;common.zero_age.mass[0], //4</span>
-<span class="s2">                stardata-&gt;star[0].SN_type, //5</span>
-
-<span class="s2">                stardata-&gt;star[0].stellar_type, //6</span>
-<span class="s2">                stardata-&gt;pre_events_stardata-&gt;star[0].stellar_type, //7</span>
-<span class="s2">                stardata-&gt;model.probability, //8</span>
-<span class="s2">                stardata-&gt;pre_events_stardata-&gt;star[0].core_mass[ID_core(stardata-&gt;pre_events_stardata-&gt;star[0].stellar_type)],           // 9</span>
-
-<span class="s2">                stardata-&gt;pre_events_stardata-&gt;star[0].core_mass[CORE_CO],     // 10</span>
-<span class="s2">                stardata-&gt;pre_events_stardata-&gt;star[0].core_mass[CORE_He],    // 11</span>
-<span class="s2">                stardata-&gt;star[0].fallback, // 12</span>
-<span class="s2">                stardata-&gt;star[0].fallback_mass // 13</span>
-<span class="s2">            );</span>
-<span class="s2">        }</span>
-<span class="s2">        else</span>
-<span class="s2">        {</span>
-<span class="s2">            Printf(&quot;EXAMPLE_SN </span><span class="si">%30.12e</span><span class="s2"> &quot; // 1</span>
-<span class="s2">                &quot;</span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> &quot; // 2-5</span>
-<span class="s2">                &quot;</span><span class="si">%d</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> &quot; // 6-9</span>
-<span class="s2">                &quot;</span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="se">\\</span><span class="s2">n&quot;, // 10-13</span>
-
-<span class="s2">                //</span>
-<span class="s2">                stardata-&gt;model.time, // 1</span>
-
-<span class="s2">                stardata-&gt;star[0].mass, //2</span>
-<span class="s2">                stardata-&gt;previous_stardata-&gt;star[0].mass, //3</span>
-<span class="s2">                stardata-&gt;common.zero_age.mass[0], //4</span>
-<span class="s2">                stardata-&gt;star[0].SN_type, //5</span>
-
-<span class="s2">                stardata-&gt;star[0].stellar_type, //6</span>
-<span class="s2">                stardata-&gt;previous_stardata-&gt;star[0].stellar_type, //7</span>
-<span class="s2">                stardata-&gt;model.probability, //8</span>
-<span class="s2">                stardata-&gt;previous_stardata-&gt;star[0].core_mass[ID_core(stardata-&gt;previous_stardata-&gt;star[0].stellar_type)],           // 9</span>
-
-<span class="s2">                stardata-&gt;previous_stardata-&gt;star[0].core_mass[CORE_CO],     // 10</span>
-<span class="s2">                stardata-&gt;previous_stardata-&gt;star[0].core_mass[CORE_He],    // 11</span>
-<span class="s2">                stardata-&gt;star[0].fallback, // 12</span>
-<span class="s2">                stardata-&gt;star[0].fallback_mass // 13</span>
-<span class="s2">            );</span>
-<span class="s2">        }</span>
+<span class="s2">        Printf(&quot;EXAMPLE_SN </span><span class="si">%30.12e</span><span class="s2"> &quot; // 1</span>
+<span class="s2">            &quot;</span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> &quot; // 2-5</span>
+<span class="s2">            &quot;</span><span class="si">%d</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> &quot; // 6-9</span>
+<span class="s2">            &quot;</span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="se">\\</span><span class="s2">n&quot;, // 10-13</span>
+
+<span class="s2">            //</span>
+<span class="s2">            stardata-&gt;model.time, // 1</span>
+
+<span class="s2">            stardata-&gt;star[0].mass, //2</span>
+<span class="s2">            stardata-&gt;previous_stardata-&gt;star[0].mass, //3</span>
+<span class="s2">            stardata-&gt;common.zero_age.mass[0], //4</span>
+<span class="s2">            stardata-&gt;star[0].SN_type, //5</span>
+
+<span class="s2">            stardata-&gt;star[0].stellar_type, //6</span>
+<span class="s2">            stardata-&gt;previous_stardata-&gt;star[0].stellar_type, //7</span>
+<span class="s2">            stardata-&gt;model.probability, //8</span>
+<span class="s2">            stardata-&gt;previous_stardata-&gt;star[0].core_mass[ID_core(stardata-&gt;previous_stardata-&gt;star[0].stellar_type)],           // 9</span>
+
+<span class="s2">            stardata-&gt;previous_stardata-&gt;star[0].core_mass[CORE_CO],     // 10</span>
+<span class="s2">            stardata-&gt;previous_stardata-&gt;star[0].core_mass[CORE_He]    // 11</span>
+<span class="s2">        );</span>
 <span class="s2">    };</span>
 <span class="s2">    /* Kill the simulation to save time */</span>
 <span class="s2">    stardata-&gt;model.max_evolution_time = stardata-&gt;model.time - stardata-&gt;model.dtm;</span>
@@ -860,10 +832,19 @@ EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.44
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-EXAMPLE_MASSLOSS             9.878236827680e+00 1.61349 8.38063 20 13 1
-EXAMPLE_SN             9.878236827680e+00 1.61349 8.38063 20 12 13 5 1 6.74037 4.92267 6.74037 0 0
+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>
 </div>
 </div>
 </div>
@@ -902,9 +883,9 @@ EXAMPLE_SN             9.878236827680e+00 1.61349 8.38063 20 12 13 5 1 6.74037 4
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_custom_logging.ipynb b/docs/build/html/notebook_custom_logging.ipynb
index 05ffbccfc..84e41e6bc 100644
--- a/docs/build/html/notebook_custom_logging.ipynb
+++ b/docs/build/html/notebook_custom_logging.ipynb
@@ -11,7 +11,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 1,
    "id": "696ecbb9-1efd-48f4-a57e-2cf6dfe416f1",
    "metadata": {},
    "outputs": [],
@@ -65,7 +65,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 2,
    "id": "236cf821-09ac-4237-9b8f-6e36d2edf446",
    "metadata": {},
    "outputs": [
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 3,
    "id": "feb423d5-5cc3-433c-9801-f8017abbc03a",
    "metadata": {},
    "outputs": [
@@ -110,7 +110,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 4,
    "id": "2f5defbf-c623-49ed-a238-fba52a563a58",
    "metadata": {},
    "outputs": [
@@ -155,7 +155,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 5,
    "id": "dcd74bbc-478b-43e4-b495-8c456e8d1d88",
    "metadata": {},
    "outputs": [
@@ -195,7 +195,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 6,
    "id": "77bd09b0-1a94-499d-97db-a1f991c67c12",
    "metadata": {},
    "outputs": [
@@ -203,10 +203,10 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_ABOVE_MS             1.041660877905e+02 4.99198 4.99198 6.1357 6.1357 2 1\n",
-      "EXAMPLE_ABOVE_MS             1.041662558619e+02 4.99198 4.99198 6.14057 6.1357 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662560111e+02 4.99198 4.99198 6.14057 6.14057 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662564579e+02 4.99198 4.99198 6.14059 6.14057 2 2\n"
+      "EXAMPLE_ABOVE_MS             1.044142002936e+02 4.99194 4.99194 6.13567 6.13567 2 1\n",
+      "EXAMPLE_ABOVE_MS             1.044572277695e+02 4.99192 4.99194 7.51803 6.13567 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.044654032097e+02 4.99192 4.99192 7.81395 7.51803 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.045084306856e+02 4.99191 4.99192 9.57443 7.81395 2 2\n"
      ]
     }
    ],
@@ -260,7 +260,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 7,
    "id": "30142286-34ce-433e-82c8-565e2160ff5b",
    "metadata": {},
    "outputs": [
@@ -336,7 +336,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 8,
    "id": "6f0edc65-a788-4706-a0c5-2ace030765ec",
    "metadata": {},
    "outputs": [
@@ -344,8 +344,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
-      "EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.446 13 5\n"
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
+      "EXAMPLE_LOG_CO             2.848380621869e+01 1.33469 9.1865 1.72498e-05 724.338 13 5\n"
      ]
     }
    ],
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 10,
    "id": "8f58fdf9-3e76-4c18-a1c5-eed0980d4133",
    "metadata": {},
    "outputs": [
@@ -403,8 +403,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_MASSLOSS             9.878236827680e+00 1.61349 8.38063 20 13 1\n",
-      "EXAMPLE_SN             9.878236827680e+00 1.61349 8.38063 20 12 13 5 1 6.74037 4.92267 6.74037 0 0\n"
+      "EXAMPLE_MASSLOSS             1.050651207308e+01 1.59452 9.34213 20 13 1\n",
+      "EXAMPLE_SN             1.050651207308e+01 1.59452 9.34213 20 12 13 5 1 6.55458 4.71662 6.55458\n"
      ]
     }
    ],
@@ -424,58 +424,27 @@
     "{\n",
     "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
     "    {\n",
-    "        if(stardata->pre_events_stardata != NULL)\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
-    "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->pre_events_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "        Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
+    "            \"%g %g %g %d \" // 2-5\n",
+    "            \"%d %d %g %g \" // 6-9\n",
+    "            \"%g %g\\\\n\", // 10-13\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->pre_events_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[ID_core(stardata->pre_events_stardata->star[0].stellar_type)],           // 9\n",
-    "\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
-    "        else\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
     "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->previous_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "            stardata->star[0].mass, //2\n",
+    "            stardata->previous_stardata->star[0].mass, //3\n",
+    "            stardata->common.zero_age.mass[0], //4\n",
+    "            stardata->star[0].SN_type, //5\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->previous_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
+    "            stardata->star[0].stellar_type, //6\n",
+    "            stardata->previous_stardata->star[0].stellar_type, //7\n",
+    "            stardata->model.probability, //8\n",
+    "            stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
     "\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_He]    // 11\n",
+    "        );\n",
     "    };\n",
     "    /* Kill the simulation to save time */\n",
     "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
@@ -491,6 +460,14 @@
     "# print (abridged) output\n",
     "print(\"\\n\".join(output.splitlines()[-2:]))"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "484297c0-accb-4efc-a9c8-dbd2f32b89a6",
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
diff --git a/docs/build/html/notebook_extra_features.html b/docs/build/html/notebook_extra_features.html
index bd6f0c339..8c058cd55 100644
--- a/docs/build/html/notebook_extra_features.html
+++ b/docs/build/html/notebook_extra_features.html
@@ -102,6 +102,9 @@
 </ul>
 </li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -646,9 +649,9 @@ get_defaults(filter_values:bool=False) -&gt; dict
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_individual_systems.html b/docs/build/html/notebook_individual_systems.html
index f2110d005..fc0232238 100644
--- a/docs/build/html/notebook_individual_systems.html
+++ b/docs/build/html/notebook_individual_systems.html
@@ -100,6 +100,9 @@
 <li class="toctree-l2"><a class="reference internal" href="notebook_population.html">Running populations with binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -927,9 +930,9 @@ SINGLE_STAR_LIFETIME 15 14.9947
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_luminosity_function_binaries.html b/docs/build/html/notebook_luminosity_function_binaries.html
new file mode 100644
index 000000000..850f413f1
--- /dev/null
+++ b/docs/build/html/notebook_luminosity_function_binaries.html
@@ -0,0 +1,1247 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Zero-age stellar luminosity function in binaries &mdash; binary_c-python  documentation</title>
+  
+
+  
+  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+  
+  
+  
+  
+
+  
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="./" 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 src="_static/language_data.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 async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
+        <script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true, "ignoreClass": "document", "processClass": "math|output_area"}})</script>
+    
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+
+    
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Binary_c parameters" href="binary_c_parameters.html" />
+    <link rel="prev" title="Example use case: Zero-age stellar luminosity function" href="notebook_luminosity_function_single.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" alt="Documentation 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="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<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 current"><a class="reference internal" href="example_notebooks.html">Example notebooks</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="notebook_individual_systems.html">Running individual systems with binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_custom_logging.html">Using custom logging routines with binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_population.html">Running populations with binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Zero-age stellar luminosity function in binaries</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#Setting-up-the-Population-object">Setting up the Population object</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#Adding-grid-variables">Adding grid variables</a></li>
+<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>
+</ul>
+</li>
+</ul>
+</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="top navigation">
+        
+          <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="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
+        
+          <li><a href="example_notebooks.html">Example notebooks</a> &raquo;</li>
+        
+      <li>Zero-age stellar luminosity function in binaries</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            <a href="_sources/notebook_luminosity_function_binaries.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="section" id="Zero-age-stellar-luminosity-function-in-binaries">
+<h1>Zero-age stellar luminosity function in binaries<a class="headerlink" href="#Zero-age-stellar-luminosity-function-in-binaries" title="Permalink to this headline">¶</a></h1>
+<p>In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of binary stars using binary_c.</p>
+<p>Before you go through this notebook, you should look at notebook_luminosity_function.ipynb which is for the - conceptually more simple - single stars.</p>
+<p>We start by loading in some standard Python modules and the binary_c module.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">math</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="c1"># help(Population) # Uncomment this line to see the public functions of this object</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="Setting-up-the-Population-object">
+<h2>Setting up the Population object<a class="headerlink" href="#Setting-up-the-Population-object" title="Permalink to this headline">¶</a></h2>
+<p>To set up and configure the population object we need to make a new instance of the <code class="docutils literal notranslate"><span class="pre">Population</span></code> object and configure it with the <code class="docutils literal notranslate"><span class="pre">.set()</span></code> function.</p>
+<p>In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero.</p>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Create population object</span>
+<span class="n">population</span> <span class="o">=</span> <span class="n">Population</span><span class="p">()</span>
+
+<span class="c1"># If you want verbosity, set this before other things</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">verbosity</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+
+<span class="c1"># Setting values can be done via .set(&lt;parameter_name&gt;=&lt;value&gt;)</span>
+<span class="c1"># Values that are known to be binary_c_parameters are loaded into bse_options.</span>
+<span class="c1"># Those that are present in the default grid_options are set in grid_options</span>
+<span class="c1"># All other values that you set are put in a custom_options dict</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="c1"># binary_c physics options</span>
+    <span class="n">max_evolution_time</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span>  <span class="c1"># maximum stellar evolution time in Myr</span>
+ <span class="p">)</span>
+
+<span class="c1"># We can access the options through</span>
+<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;verbosity is&quot;</span><span class="p">,</span> <span class="n">population</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;verbosity&#39;</span><span class="p">])</span>
+</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>
+adding: max_evolution_time=0.1 to BSE_options
+verbosity is 1
+</pre></div></div>
+</div>
+</div>
+<div class="section" id="Adding-grid-variables">
+<h2>Adding grid variables<a class="headerlink" href="#Adding-grid-variables" title="Permalink to this headline">¶</a></h2>
+<p>The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.</p>
+<p>Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters.</p>
+<p>To add a grid variable to the population object we use <code class="docutils literal notranslate"><span class="pre">population.add_grid_variable</span></code></p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[3]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># help(population.add_grid_variable)</span>
+</pre></div>
+</div>
+</div>
+<p>All the distribution functions that we can use are stored in the <code class="docutils literal notranslate"><span class="pre">binarycpython.utils.distribution_functions</span></code> or <code class="docutils literal notranslate"><span class="pre">binarycpython/utils/distribution_functions.py</span></code> on git. If you uncomment the help statement below you can see which functions are available now:</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[4]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="kn">import</span> <span class="nn">binarycpython.utils.distribution_functions</span>
+<span class="c1"># help(binarycpython.utils.distribution_functions)</span>
+</pre></div>
+</div>
+</div>
+<p>First let us set up some global variables that will be useful throughout. * The resolution is the number of stars we simulate in our model population. * The massrange is a list of the min and max masses * The total_probability is the theoretical integral of a probability density function, i.e. 1.0. * The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log<em>L</em> are 0.5dex wide.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[5]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Set resolution and mass range that we simulate</span>
+<span class="n">resolution</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;M_1&quot;</span><span class="p">:</span> <span class="mi">40</span><span class="p">}</span> <span class="c1"># start with resolution = 10, and increase later if you want &quot;more accurate&quot; data</span>
+<span class="n">massrange</span> <span class="o">=</span> <span class="p">(</span><span class="mf">0.07</span><span class="p">,</span> <span class="mf">100.0</span><span class="p">)</span> <span class="c1"># we work with stars of mass 0.07 to 100 Msun</span>
+<span class="n">total_probability</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="c1"># theoretical integral of the mass probability density function over all masses</span>
+<span class="c1"># distribution binwidths :</span>
+<span class="c1"># (log10) luminosity distribution</span>
+<span class="n">binwidth</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">&#39;luminosity&#39;</span> <span class="p">:</span> <span class="mf">1.0</span> <span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<p>The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass <em>M</em>_1.</p>
+<div class="nbinput nblast 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="c1"># Set up the binary grid in &quot;cubic&quot; M1 - M2=q*M1 - log10 period space</span>
+
+<span class="n">population</span> <span class="o">=</span> <span class="n">Population</span><span class="p">()</span>
+
+<span class="c1"># resolution on each side of the cube, with more stars for the primary mass</span>
+<span class="n">nres</span> <span class="o">=</span> <span class="mi">10</span>
+<span class="n">resolution</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;M_1&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="o">*</span><span class="n">nres</span><span class="p">,</span>
+              <span class="s2">&quot;q&quot;</span><span class="p">:</span> <span class="n">nres</span><span class="p">,</span>
+              <span class="s2">&quot;per&quot;</span><span class="p">:</span> <span class="n">nres</span><span class="p">}</span>
+
+<span class="n">massrange</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.07</span><span class="p">,</span><span class="mi">100</span><span class="p">]</span>
+<span class="n">logperrange</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">population</span><span class="o">.</span><span class="n">add_grid_variable</span><span class="p">(</span>
+    <span class="n">name</span><span class="o">=</span><span class="s2">&quot;lnm1&quot;</span><span class="p">,</span>
+    <span class="n">longname</span><span class="o">=</span><span class="s2">&quot;Primary mass&quot;</span><span class="p">,</span>
+    <span class="n">valuerange</span><span class="o">=</span><span class="n">massrange</span><span class="p">,</span>
+    <span class="n">resolution</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2">&quot;</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">&quot;M_1&quot;</span><span class="p">]),</span>
+    <span class="n">spacingfunc</span><span class="o">=</span><span class="s2">&quot;const(math.log(</span><span class="si">{min}</span><span class="s2">), math.log(</span><span class="si">{max}</span><span class="s2">), </span><span class="si">{res}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="n">massrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="nb">max</span><span class="o">=</span><span class="n">massrange</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">res</span><span class="o">=</span><span class="n">resolution</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]),</span>
+    <span class="n">precode</span><span class="o">=</span><span class="s2">&quot;M_1=math.exp(lnm1)&quot;</span><span class="p">,</span>
+    <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1&quot;</span><span class="p">,</span>
+    <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;dlnm1&quot;</span><span class="p">,</span>
+    <span class="n">parameter_name</span><span class="o">=</span><span class="s2">&quot;M_1&quot;</span><span class="p">,</span>
+    <span class="n">condition</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>  <span class="c1"># Impose a condition on this grid variable. Mostly for a check for yourself</span>
+<span class="p">)</span>
+
+<span class="c1"># Mass ratio</span>
+<span class="n">population</span><span class="o">.</span><span class="n">add_grid_variable</span><span class="p">(</span>
+     <span class="n">name</span><span class="o">=</span><span class="s2">&quot;q&quot;</span><span class="p">,</span>
+     <span class="n">longname</span><span class="o">=</span><span class="s2">&quot;Mass ratio&quot;</span><span class="p">,</span>
+     <span class="n">valuerange</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;0.1/M_1&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
+     <span class="n">resolution</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2">&quot;</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">&#39;q&#39;</span><span class="p">]),</span>
+     <span class="n">spacingfunc</span><span class="o">=</span><span class="s2">&quot;const(</span><span class="si">{}</span><span class="s2">/M_1, 1, </span><span class="si">{}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">massrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">resolution</span><span class="p">[</span><span class="s1">&#39;q&#39;</span><span class="p">]),</span>
+     <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;flatsections(q, [{{&#39;min&#39;: </span><span class="si">{}</span><span class="s2">/M_1, &#39;max&#39;: 1.0, &#39;height&#39;: 1}}])&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">massrange</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span>
+     <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;dq&quot;</span><span class="p">,</span>
+     <span class="n">precode</span><span class="o">=</span><span class="s2">&quot;M_2 = q * M_1&quot;</span><span class="p">,</span>
+     <span class="n">parameter_name</span><span class="o">=</span><span class="s2">&quot;M_2&quot;</span><span class="p">,</span>
+     <span class="n">condition</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>  <span class="c1"># Impose a condition on this grid variable. Mostly for a check for yourself</span>
+ <span class="p">)</span>
+
+<span class="c1"># Orbital period</span>
+<span class="n">population</span><span class="o">.</span><span class="n">add_grid_variable</span><span class="p">(</span>
+    <span class="n">name</span><span class="o">=</span><span class="s2">&quot;log10per&quot;</span><span class="p">,</span> <span class="c1"># in days</span>
+    <span class="n">longname</span><span class="o">=</span><span class="s2">&quot;log10(Orbital_Period)&quot;</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">resolution</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{}</span><span class="s2">&quot;</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">&quot;per&quot;</span><span class="p">]),</span>
+    <span class="n">spacingfunc</span><span class="o">=</span><span class="s2">&quot;const(</span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">logperrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">logperrange</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="n">resolution</span><span class="p">[</span><span class="s2">&quot;per&quot;</span><span class="p">]),</span>
+    <span class="n">precode</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;orbital_period = 10.0 ** 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**</span><span class="si">{}</span><span class="s2">)</span>
+<span class="s2">sep_max = calc_sep_from_period(M_1, M_2, 10**</span><span class="si">{}</span><span class="s2">)&quot;&quot;&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">logperrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">logperrange</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span>
+    <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**</span><span class="si">{}</span><span class="s2">), math.log10(10**</span><span class="si">{}</span><span class="s2">), </span><span class="si">{}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">logperrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="n">logperrange</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span><span class="o">-</span><span class="mf">0.55</span><span class="p">),</span>
+    <span class="n">parameter_name</span><span class="o">=</span><span class="s2">&quot;orbital_period&quot;</span><span class="p">,</span>
+    <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;dlog10per&quot;</span><span class="p">,</span>
+ <span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="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>
+<p>By default, binary_c will not output anything (except for ‘SINGLE STAR LIFETIME’). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into <code class="docutils literal notranslate"><span class="pre">binary_c</span></code> (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook <code class="docutils literal notranslate"><span class="pre">notebook_custom_logging.ipynb</span></code>), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes,
+it works perfectly well.</p>
+<p>After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook <code class="docutils literal notranslate"><span class="pre">notebook_individual_systems.ipynb</span></code>).</p>
+<p>In the code below we will set up both the custom logging and a parse function to handle that output.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Create custom logging statement</span>
+<span class="c1">#</span>
+<span class="c1"># we check that the model number is zero, i.e. we&#39;re on the first timestep (stars are born on the ZAMS)</span>
+<span class="c1"># we make sure that the stellar type is &lt;= MAIN_SEQUENCE, i.e. the star is a main-sequence star</span>
+<span class="c1"># we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)</span>
+<span class="c1">#</span>
+<span class="c1"># The</span>
+<span class="c1">#</span>
+<span class="c1"># The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STARn</span>
+<span class="c1">#</span>
+<span class="c1"># where:</span>
+<span class="c1">#</span>
+<span class="c1"># n = PRIMARY    = 0 is star 0 (primary star)</span>
+<span class="c1"># n = SECONDARY  = 1 is star 1 (secondary star)</span>
+<span class="c1"># n = UNRESOLVED = 2 is the unresolved system (both stars added)</span>
+
+<span class="n">PRIMARY</span> <span class="o">=</span> <span class="mi">0</span>
+<span class="n">SECONDARY</span> <span class="o">=</span> <span class="mi">1</span>
+<span class="n">UNRESOLVED</span> <span class="o">=</span> <span class="mi">2</span>
+
+<span class="n">custom_logging_statement</span> <span class="o">=</span> <span class="s2">&quot;&quot;&quot;</span>
+<span class="s2">// select ZAMS</span>
+<span class="s2">if(stardata-&gt;model.model_number == 0 &amp;&amp;</span>
+<span class="s2">   stardata-&gt;model.time == 0)</span>
+<span class="s2">{</span>
+<span class="s2">    // loop over the stars individually (equivalent to a resolved binary)</span>
+<span class="s2">    Foreach_star(star)</span>
+<span class="s2">    {</span>
+<span class="s2">        // select main-sequence stars</span>
+<span class="s2">        if(star-&gt;stellar_type &lt;= MAIN_SEQUENCE)</span>
+<span class="s2">        {</span>
+<span class="s2">            /* Note that we use Printf - with a capital P! */</span>
+<span class="s2">           Printf(&quot;ZERO_AGE_MAIN_SEQUENCE_STAR</span><span class="si">%d</span><span class="s2"> </span><span class="si">%30.12e</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="se">\\</span><span class="s2">n&quot;,</span>
+<span class="s2">                  star-&gt;starnum,</span>
+<span class="s2">                  stardata-&gt;model.time, // 1</span>
+<span class="s2">                  stardata-&gt;common.zero_age.mass[0], // 2</span>
+<span class="s2">                  star-&gt;mass, // 3</span>
+<span class="s2">                  star-&gt;luminosity, // 4</span>
+<span class="s2">                  stardata-&gt;model.probability // 5</span>
+<span class="s2">           );</span>
+<span class="s2">        }</span>
+<span class="s2">    }</span>
+
+<span class="s2">    // unresolved MS-MS binary</span>
+<span class="s2">    if(stardata-&gt;star[0].stellar_type &lt;= MAIN_SEQUENCE &amp;&amp;</span>
+<span class="s2">       stardata-&gt;star[1].stellar_type &lt;= MAIN_SEQUENCE)</span>
+<span class="s2">    {</span>
+<span class="s2">        Printf(&quot;ZERO_AGE_MAIN_SEQUENCE_STAR</span><span class="si">%d</span><span class="s2"> </span><span class="si">%30.12e</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="se">\\</span><span class="s2">n&quot;,</span>
+<span class="s2">                  2,</span>
+<span class="s2">                  stardata-&gt;model.time, // 1</span>
+<span class="s2">                  stardata-&gt;common.zero_age.mass[0] + stardata-&gt;common.zero_age.mass[1], // 2</span>
+<span class="s2">                  stardata-&gt;star[0].mass + stardata-&gt;star[1].mass, // 3</span>
+<span class="s2">                  stardata-&gt;star[0].luminosity + stardata-&gt;star[1].luminosity, // 4</span>
+<span class="s2">                  stardata-&gt;model.probability // 5</span>
+<span class="s2">           );</span>
+<span class="s2">    }</span>
+<span class="s2">}</span>
+<span class="s2">&quot;&quot;&quot;</span>
+
+<span class="n">population</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="p">)</span>
+
+</pre></div>
+</div>
+</div>
+<p>The parse function must now catch lines that start with “ZERO_AGE_MAIN_SEQUENCE_STAR” and process the associated data.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[8]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># import the bin_data function so we can construct finite-resolution probability distributions</span>
+<span class="c1"># import the datalinedict to make a dictionary from each line of data from binary_c</span>
+<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="n">bin_data</span><span class="p">,</span><span class="n">datalinedict</span>
+<span class="kn">import</span> <span class="nn">re</span>
+
+<span class="k">def</span> <span class="nf">parse_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Example parse function</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="c1"># list of the data items</span>
+    <span class="n">parameters</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;header&quot;</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">,</span> <span class="s2">&quot;zams_mass&quot;</span><span class="p">,</span> <span class="s2">&quot;mass&quot;</span><span class="p">,</span> <span class="s2">&quot;luminosity&quot;</span><span class="p">,</span> <span class="s2">&quot;probability&quot;</span><span class="p">]</span>
+
+    <span class="c1"># Loop over the output.</span>
+    <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">():</span>
+
+        <span class="c1"># check if we match a ZERO_AGE_MAIN_SEQUENCE_STAR</span>
+        <span class="n">match</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="s1">&#39;ZERO_AGE_MAIN_SEQUENCE_STAR(\d)&#39;</span><span class="p">,</span><span class="n">line</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">match</span><span class="p">:</span>
+            <span class="n">nstar</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
+            <span class="c1">#print(&quot;matched star&quot;,nstar)</span>
+
+            <span class="c1"># obtain the line of data in dictionary form</span>
+            <span class="n">linedata</span> <span class="o">=</span> <span class="n">datalinedict</span><span class="p">(</span><span class="n">line</span><span class="p">,</span><span class="n">parameters</span><span class="p">)</span>
+
+            <span class="c1"># bin the log10(luminosity) to the nearest 0.1dex</span>
+            <span class="n">binned_log_luminosity</span> <span class="o">=</span> <span class="n">bin_data</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">linedata</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">]),</span>
+                                             <span class="n">binwidth</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">])</span>
+
+            <span class="c1"># append the data to the results_dictionary</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">][</span><span class="nb">int</span><span class="p">(</span><span class="n">nstar</span><span class="p">)][</span><span class="n">binned_log_luminosity</span><span class="p">]</span> <span class="o">+=</span> <span class="n">linedata</span><span class="p">[</span><span class="s1">&#39;probability&#39;</span><span class="p">]</span>
+
+            <span class="c1">#print (self.grid_results)</span>
+
+    <span class="c1"># verbose reporting</span>
+    <span class="c1">#print(&quot;parse out results_dictionary=&quot;,self.grid_results)</span>
+
+<span class="c1"># Add the parsing function</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="n">parse_function</span><span class="o">=</span><span class="n">parse_function</span><span class="p">,</span>
+<span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="Evolving-the-grid">
+<h2>Evolving the grid<a class="headerlink" href="#Evolving-the-grid" title="Permalink to this headline">¶</a></h2>
+<p>Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: <code class="docutils literal notranslate"><span class="pre">population.evolve()</span></code></p>
+<p>This will start up the processing of all the systems. We can control how many cores are used by settings <code class="docutils literal notranslate"><span class="pre">amt_cores</span></code>. By setting the <code class="docutils literal notranslate"><span class="pre">verbosity</span></code> of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.</p>
+<p>There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: <a class="reference external" href="https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html">grid options docs</a>, and try</p>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[9]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># set number of threads</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="c1"># verbose output is not required</span>
+    <span class="n">verbosity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
+    <span class="c1"># set number of threads (i.e. number of CPU cores we use)</span>
+    <span class="n">amt_cores</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span>
+    <span class="p">)</span>
+
+<span class="c1"># Evolve the population - this is the slow, number-crunching step</span>
+<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Running the population now, this may take a little while...&quot;</span><span class="p">)</span>
+<span class="n">analytics</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>
+<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Done population run!&quot;</span><span class="p">)</span>
+
+<span class="c1"># Show the results (debugging)</span>
+<span class="c1"># print (population.grid_results)</span>
+</pre></div>
+</div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+adding: amt_cores=4 to grid_options
+Running the population now, this may take a little while...
+Creating and loading custom logging functionality
+Generating grid code
+Generating grid code
+Constructing/adding: lnm1
+Constructing/adding: q
+Constructing/adding: log10per
+Saving grid code to grid_options
+Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py
+Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py
+Grid code loaded
+Grid has handled 2000 stars
+with a total probability of 0.6495098935846658
+Total starcount for this run will be: 2000
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:14:08,077 DEBUG    Process-2] --- Setting up processor: process-0[2021-09-10 15:14:08,080 DEBUG    Process-3] --- Setting up processor: process-1[2021-09-10 15:14:08,086 DEBUG    MainProcess] --- setting up the system_queue_filler now
+
+[2021-09-10 15:14:08,084 DEBUG    Process-4] --- Setting up processor: process-2
+
+[2021-09-10 15:14:08,117 DEBUG    Process-5] --- Setting up processor: process-3
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+Process 1 started at 2021-09-10T15:14:08.119437.        Using store memaddr &lt;capsule object &#34;STORE&#34; at 0x7f351ff53810&gt;Process 0 started at 2021-09-10T15:14:08.126435.    Using store memaddr &lt;capsule object &#34;STORE&#34; at 0x7f351ff539f0&gt;
+Process 2 started at 2021-09-10T15:14:08.138353.        Using store memaddr &lt;capsule object &#34;STORE&#34; at 0x7f351ff539f0&gt;
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+
+
+Process 3 started at 2021-09-10T15:14:08.186492.        Using store memaddr &lt;capsule object &#34;STORE&#34; at 0x7f351ff53810&gt;
+Generating grid code
+Generating grid code
+Constructing/adding: lnm1
+Constructing/adding: q
+Constructing/adding: log10per
+Saving grid code to grid_options
+Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py
+Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py
+Grid code loaded
+624/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB625/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.04e-03 ETF=15:14:23 mem:800.5MB
+626/2000  31.3% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB
+
+713/2000  35.6% complete 15:14:17 ETA=    1.3m tpr=6.00e-02 ETF=15:15:34 mem:547.8MB
+728/2000  36.4% complete 15:14:22 ETA=    7.1m tpr=3.37e-01 ETF=15:21:30 mem:548.1MB
+743/2000  37.1% complete 15:14:27 ETA=    7.0m tpr=3.34e-01 ETF=15:21:26 mem:549.5MB
+759/2000  38.0% complete 15:14:33 ETA=    7.7m tpr=3.73e-01 ETF=15:22:16 mem:550.5MB
+774/2000  38.7% complete 15:14:38 ETA=    6.9m tpr=3.35e-01 ETF=15:21:29 mem:551.1MB
+787/2000  39.4% complete 15:14:43 ETA=    7.8m tpr=3.88e-01 ETF=15:22:33 mem:551.1MB
+799/2000  40.0% complete 15:14:48 ETA=    8.5m tpr=4.24e-01 ETF=15:23:17 mem:552.5MB
+812/2000  40.6% complete 15:14:54 ETA=    8.4m tpr=4.23e-01 ETF=15:23:16 mem:554.8MB
+830/2000  41.5% complete 15:14:59 ETA=    5.5m tpr=2.80e-01 ETF=15:20:26 mem:555.2MB
+847/2000  42.4% complete 15:15:05 ETA=    6.8m tpr=3.52e-01 ETF=15:21:50 mem:555.2MB
+864/2000  43.2% complete 15:15:10 ETA=    6.2m tpr=3.28e-01 ETF=15:21:23 mem:557.0MB
+876/2000  43.8% complete 15:15:15 ETA=    8.2m tpr=4.38e-01 ETF=15:23:27 mem:559.7MB
+887/2000  44.4% complete 15:15:21 ETA=    9.2m tpr=4.95e-01 ETF=15:24:32 mem:560.5MB
+898/2000  44.9% complete 15:15:26 ETA=    9.2m tpr=4.99e-01 ETF=15:24:37 mem:560.5MB
+908/2000  45.4% complete 15:15:32 ETA=    9.5m tpr=5.23e-01 ETF=15:25:03 mem:560.5MB
+919/2000  46.0% complete 15:15:37 ETA=    8.3m tpr=4.60e-01 ETF=15:23:54 mem:560.9MB
+934/2000  46.7% complete 15:15:42 ETA=    6.4m tpr=3.60e-01 ETF=15:22:06 mem:561.7MB
+947/2000  47.4% complete 15:15:47 ETA=    7.2m tpr=4.08e-01 ETF=15:22:57 mem:561.7MB
+956/2000  47.8% complete 15:15:53 ETA=   11.1m tpr=6.39e-01 ETF=15:27:01 mem:561.7MB
+963/2000  48.1% complete 15:15:58 ETA=   12.6m tpr=7.30e-01 ETF=15:28:35 mem:561.7MB
+969/2000  48.5% complete 15:16:04 ETA=   15.2m tpr=8.85e-01 ETF=15:31:16 mem:561.9MB
+979/2000  49.0% complete 15:16:11 ETA=   11.9m tpr=7.01e-01 ETF=15:28:06 mem:562.0MB
+988/2000  49.4% complete 15:16:16 ETA=    9.7m tpr=5.76e-01 ETF=15:25:59 mem:562.0MB
+995/2000  49.8% complete 15:16:21 ETA=   12.3m tpr=7.37e-01 ETF=15:28:42 mem:562.2MB
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:16:25,175 DEBUG    MainProcess] --- Signaling stop to processes
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+1003/2000  50.1% complete 15:16:26 ETA=   11.2m tpr=6.76e-01 ETF=15:27:40 mem:563.0MB
+1015/2000  50.8% complete 15:16:32 ETA=    7.6m tpr=4.65e-01 ETF=15:24:10 mem:563.0MB
+1025/2000  51.2% complete 15:16:37 ETA=    8.1m tpr=5.01e-01 ETF=15:24:45 mem:563.0MB
+1033/2000  51.6% complete 15:16:42 ETA=   10.7m tpr=6.65e-01 ETF=15:27:26 mem:563.0MB
+1040/2000  52.0% complete 15:16:47 ETA=   12.1m tpr=7.55e-01 ETF=15:28:52 mem:563.5MB
+1048/2000  52.4% complete 15:16:53 ETA=   11.8m tpr=7.45e-01 ETF=15:28:42 mem:563.5MB
+1057/2000  52.9% complete 15:16:59 ETA=    9.1m tpr=5.78e-01 ETF=15:26:03 mem:563.6MB
+1062/2000  53.1% complete 15:17:04 ETA=   15.7m tpr=1.01e+00 ETF=15:32:47 mem:564.4MB
+1069/2000  53.5% complete 15:17:09 ETA=   12.4m tpr=7.97e-01 ETF=15:29:31 mem:564.9MB
+1077/2000  53.9% complete 15:17:15 ETA=   11.5m tpr=7.46e-01 ETF=15:28:44 mem:565.0MB
+1085/2000  54.2% complete 15:17:20 ETA=   10.0m tpr=6.55e-01 ETF=15:27:20 mem:565.0MB
+1091/2000  54.5% complete 15:17:26 ETA=   13.8m tpr=9.10e-01 ETF=15:31:13 mem:565.9MB
+1099/2000  55.0% complete 15:17:32 ETA=   12.1m tpr=8.05e-01 ETF=15:29:37 mem:566.5MB
+1114/2000  55.7% complete 15:17:37 ETA=    5.0m tpr=3.35e-01 ETF=15:22:34 mem:566.5MB
+1126/2000  56.3% complete 15:17:43 ETA=    6.8m tpr=4.64e-01 ETF=15:24:29 mem:566.5MB
+1134/2000  56.7% complete 15:17:48 ETA=    9.2m tpr=6.37e-01 ETF=15:27:00 mem:566.6MB
+1139/2000  57.0% complete 15:17:54 ETA=   16.3m tpr=1.14e+00 ETF=15:34:13 mem:567.4MB
+1148/2000  57.4% complete 15:17:59 ETA=    8.8m tpr=6.20e-01 ETF=15:26:47 mem:567.4MB
+1156/2000  57.8% complete 15:18:05 ETA=    9.3m tpr=6.60e-01 ETF=15:27:22 mem:567.5MB
+1162/2000  58.1% complete 15:18:11 ETA=   14.3m tpr=1.02e+00 ETF=15:32:28 mem:567.6MB
+1168/2000  58.4% complete 15:18:17 ETA=   15.2m tpr=1.09e+00 ETF=15:33:27 mem:568.6MB
+1177/2000  58.9% complete 15:18:23 ETA=    8.8m tpr=6.45e-01 ETF=15:27:14 mem:568.6MB
+1181/2000  59.0% complete 15:18:28 ETA=   17.8m tpr=1.30e+00 ETF=15:36:16 mem:568.7MB
+1187/2000  59.4% complete 15:18:34 ETA=   12.1m tpr=8.93e-01 ETF=15:30:40 mem:568.7MB
+1194/2000  59.7% complete 15:18:39 ETA=    9.8m tpr=7.29e-01 ETF=15:28:26 mem:568.8MB
+1202/2000  60.1% complete 15:18:44 ETA=    9.5m tpr=7.12e-01 ETF=15:28:12 mem:568.8MB
+1219/2000  61.0% complete 15:18:51 ETA=    5.3m tpr=4.07e-01 ETF=15:24:09 mem:569.7MB
+1228/2000  61.4% complete 15:18:57 ETA=    7.4m tpr=5.76e-01 ETF=15:26:21 mem:569.7MB
+1234/2000  61.7% complete 15:19:02 ETA=   11.8m tpr=9.22e-01 ETF=15:30:48 mem:571.7MB1235/2000  61.8% complete 15:19:02 ETA=   10.1m tpr=7.92e-01 ETF=15:29:08 mem:571.7MB
+
+1243/2000  62.1% complete 15:19:07 ETA=    7.3m tpr=5.79e-01 ETF=15:26:26 mem:573.4MB
+1251/2000  62.5% complete 15:19:13 ETA=    8.3m tpr=6.68e-01 ETF=15:27:33 mem:575.4MB
+1260/2000  63.0% complete 15:19:19 ETA=    8.2m tpr=6.65e-01 ETF=15:27:31 mem:575.4MB
+1268/2000  63.4% complete 15:19:24 ETA=    7.8m tpr=6.41e-01 ETF=15:27:13 mem:576.8MB
+1276/2000  63.8% complete 15:19:29 ETA=    7.6m tpr=6.30e-01 ETF=15:27:05 mem:577.0MB
+1282/2000  64.1% complete 15:19:34 ETA=   10.1m tpr=8.44e-01 ETF=15:29:40 mem:578.0MB
+1289/2000  64.5% complete 15:19:40 ETA=   10.8m tpr=9.08e-01 ETF=15:30:26 mem:578.0MB
+1295/2000  64.8% complete 15:19:46 ETA=   10.5m tpr=8.95e-01 ETF=15:30:16 mem:578.1MB
+1309/2000  65.5% complete 15:19:51 ETA=    4.3m tpr=3.70e-01 ETF=15:24:06 mem:578.1MB
+1323/2000  66.2% complete 15:19:58 ETA=    6.1m tpr=5.45e-01 ETF=15:26:07 mem:579.2MB
+1332/2000  66.6% complete 15:20:03 ETA=    6.2m tpr=5.58e-01 ETF=15:26:16 mem:579.3MB
+1338/2000  66.9% complete 15:20:09 ETA=   10.1m tpr=9.11e-01 ETF=15:30:12 mem:579.3MB
+1346/2000  67.3% complete 15:20:18 ETA=   12.5m tpr=1.14e+00 ETF=15:32:46 mem:581.5MB
+1355/2000  67.8% complete 15:20:25 ETA=    8.5m tpr=7.90e-01 ETF=15:28:54 mem:581.6MB
+1359/2000  68.0% complete 15:20:30 ETA=   13.9m tpr=1.30e+00 ETF=15:34:26 mem:581.6MB
+1366/2000  68.3% complete 15:20:38 ETA=   11.7m tpr=1.10e+00 ETF=15:32:18 mem:581.7MB
+1376/2000  68.8% complete 15:20:44 ETA=    6.1m tpr=5.89e-01 ETF=15:26:51 mem:581.7MB
+1384/2000  69.2% complete 15:20:49 ETA=    6.9m tpr=6.76e-01 ETF=15:27:46 mem:581.7MB
+1393/2000  69.7% complete 15:20:55 ETA=    6.2m tpr=6.13e-01 ETF=15:27:07 mem:581.8MB1394/2000  69.7% complete 15:20:55 ETA=    5.6m tpr=5.52e-01 ETF=15:26:29 mem:581.8MB
+
+1423/2000  71.2% complete 15:21:00 ETA=    1.6m tpr=1.69e-01 ETF=15:22:37 mem:581.9MB
+1435/2000  71.8% complete 15:21:07 ETA=    5.6m tpr=5.92e-01 ETF=15:26:42 mem:582.3MB
+1443/2000  72.2% complete 15:21:12 ETA=    6.1m tpr=6.54e-01 ETF=15:27:17 mem:582.5MB
+1445/2000  72.2% complete 15:21:18 ETA=   28.2m tpr=3.05e+00 ETF=15:49:28 mem:582.6MB
+1448/2000  72.4% complete 15:21:25 ETA=   20.0m tpr=2.18e+00 ETF=15:41:27 mem:582.6MB
+1454/2000  72.7% complete 15:21:31 ETA=    8.6m tpr=9.49e-01 ETF=15:30:09 mem:583.0MB
+1455/2000  72.8% complete 15:21:37 ETA=   54.9m tpr=6.05e+00 ETF=16:16:32 mem:583.0MB
+1459/2000  73.0% complete 15:21:43 ETA=   13.5m tpr=1.50e+00 ETF=15:35:12 mem:583.0MB
+1465/2000  73.2% complete 15:21:48 ETA=    8.6m tpr=9.65e-01 ETF=15:30:25 mem:583.0MB
+1474/2000  73.7% complete 15:21:54 ETA=    5.6m tpr=6.38e-01 ETF=15:27:30 mem:583.0MB
+1482/2000  74.1% complete 15:21:59 ETA=    5.4m tpr=6.30e-01 ETF=15:27:26 mem:583.0MB
+1485/2000  74.2% complete 15:22:04 ETA=   14.8m tpr=1.73e+00 ETF=15:36:54 mem:583.5MB
+1487/2000  74.3% complete 15:22:10 ETA=   24.9m tpr=2.91e+00 ETF=15:47:02 mem:583.5MB
+1496/2000  74.8% complete 15:22:16 ETA=    5.0m tpr=5.91e-01 ETF=15:27:13 mem:583.7MB
+1509/2000  75.5% complete 15:22:21 ETA=    3.6m tpr=4.40e-01 ETF=15:25:57 mem:583.9MB
+1523/2000  76.2% complete 15:22:27 ETA=    3.0m tpr=3.80e-01 ETF=15:25:28 mem:583.9MB
+1531/2000  76.5% complete 15:22:33 ETA=    5.9m tpr=7.60e-01 ETF=15:28:29 mem:583.9MB
+1537/2000  76.8% complete 15:22:38 ETA=    6.7m tpr=8.71e-01 ETF=15:29:21 mem:583.9MB
+1545/2000  77.2% complete 15:22:44 ETA=    5.4m tpr=7.14e-01 ETF=15:28:08 mem:584.0MB
+1555/2000  77.8% complete 15:22:49 ETA=    4.1m tpr=5.52e-01 ETF=15:26:55 mem:584.2MB
+1564/2000  78.2% complete 15:22:54 ETA=    4.2m tpr=5.78e-01 ETF=15:27:06 mem:584.2MB
+1574/2000  78.7% complete 15:23:00 ETA=    4.4m tpr=6.16e-01 ETF=15:27:23 mem:584.4MB
+1584/2000  79.2% complete 15:23:07 ETA=    4.4m tpr=6.28e-01 ETF=15:27:28 mem:584.8MB
+1594/2000  79.7% complete 15:23:12 ETA=    3.8m tpr=5.66e-01 ETF=15:27:02 mem:584.9MB
+1607/2000  80.3% complete 15:23:17 ETA=    2.5m tpr=3.86e-01 ETF=15:25:49 mem:585.0MB
+1618/2000  80.9% complete 15:23:24 ETA=    3.8m tpr=5.97e-01 ETF=15:27:12 mem:585.4MB
+1628/2000  81.4% complete 15:23:29 ETA=    3.3m tpr=5.28e-01 ETF=15:26:46 mem:585.5MB
+1635/2000  81.8% complete 15:23:34 ETA=    4.4m tpr=7.30e-01 ETF=15:28:01 mem:585.9MB
+1645/2000  82.2% complete 15:23:40 ETA=    3.4m tpr=5.81e-01 ETF=15:27:06 mem:585.9MB
+1655/2000  82.8% complete 15:23:47 ETA=    4.0m tpr=7.02e-01 ETF=15:27:49 mem:586.0MB1656/2000  82.8% complete 15:23:47 ETA=    3.7m tpr=6.39e-01 ETF=15:27:27 mem:586.0MB
+
+1664/2000  83.2% complete 15:23:54 ETA=    4.5m tpr=8.01e-01 ETF=15:28:23 mem:586.1MB
+1674/2000  83.7% complete 15:24:02 ETA=    4.5m tpr=8.27e-01 ETF=15:28:31 mem:586.2MB
+1684/2000  84.2% complete 15:24:07 ETA=    2.9m tpr=5.55e-01 ETF=15:27:03 mem:586.2MB
+1691/2000  84.5% complete 15:24:13 ETA=    4.2m tpr=8.21e-01 ETF=15:28:27 mem:586.5MB
+1699/2000  85.0% complete 15:24:19 ETA=    3.4m tpr=6.75e-01 ETF=15:27:42 mem:586.5MB
+1713/2000  85.7% complete 15:24:24 ETA=    1.9m tpr=4.07e-01 ETF=15:26:21 mem:586.6MB
+1725/2000  86.2% complete 15:24:31 ETA=    2.6m tpr=5.57e-01 ETF=15:27:04 mem:586.7MB
+1735/2000  86.8% complete 15:24:38 ETA=    3.0m tpr=6.76e-01 ETF=15:27:37 mem:586.7MB
+1745/2000  87.2% complete 15:24:44 ETA=    2.7m tpr=6.40e-01 ETF=15:27:27 mem:586.9MB
+1755/2000  87.8% complete 15:24:51 ETA=    2.8m tpr=6.88e-01 ETF=15:27:40 mem:586.9MB
+1763/2000  88.2% complete 15:24:56 ETA=    2.6m tpr=6.59e-01 ETF=15:27:32 mem:586.9MB
+1767/2000  88.3% complete 15:25:02 ETA=    5.3m tpr=1.36e+00 ETF=15:30:18 mem:586.9MB
+1776/2000  88.8% complete 15:25:09 ETA=    2.9m tpr=7.71e-01 ETF=15:28:01 mem:586.9MB
+1785/2000  89.2% complete 15:25:14 ETA=    2.1m tpr=5.90e-01 ETF=15:27:21 mem:586.9MB
+1793/2000  89.7% complete 15:25:19 ETA=    2.2m tpr=6.29e-01 ETF=15:27:29 mem:587.1MB
+1801/2000  90.0% complete 15:25:24 ETA=    2.2m tpr=6.59e-01 ETF=15:27:35 mem:587.1MB
+1812/2000  90.6% complete 15:25:29 ETA=    1.5m tpr=4.68e-01 ETF=15:26:57 mem:587.1MB
+1822/2000  91.1% complete 15:25:35 ETA=    1.6m tpr=5.54e-01 ETF=15:27:14 mem:587.4MB
+1830/2000  91.5% complete 15:25:41 ETA=    2.1m tpr=7.49e-01 ETF=15:27:48 mem:587.4MB
+1839/2000  92.0% complete 15:25:47 ETA=    1.7m tpr=6.21e-01 ETF=15:27:27 mem:587.4MB
+1847/2000  92.3% complete 15:25:52 ETA=    1.8m tpr=7.10e-01 ETF=15:27:41 mem:587.4MB
+1855/2000  92.8% complete 15:25:59 ETA=    2.0m tpr=8.17e-01 ETF=15:27:57 mem:587.6MB
+1864/2000  93.2% complete 15:26:05 ETA=    1.5m tpr=6.79e-01 ETF=15:27:37 mem:587.8MB
+1873/2000  93.7% complete 15:26:10 ETA=    1.3m tpr=6.07e-01 ETF=15:27:27 mem:588.0MB
+1884/2000  94.2% complete 15:26:16 ETA=   57.0s tpr=4.91e-01 ETF=15:27:13 mem:588.1MB
+1895/2000  94.8% complete 15:26:21 ETA=   48.7s tpr=4.63e-01 ETF=15:27:09 mem:588.8MB
+1907/2000  95.3% complete 15:26:27 ETA=   45.6s tpr=4.91e-01 ETF=15:27:12 mem:588.9MB
+1916/2000  95.8% complete 15:26:33 ETA=   57.5s tpr=6.84e-01 ETF=15:27:30 mem:589.1MB
+1926/2000  96.3% complete 15:26:39 ETA=   46.5s tpr=6.28e-01 ETF=15:27:26 mem:589.1MB
+1936/2000  96.8% complete 15:26:46 ETA=   42.0s tpr=6.57e-01 ETF=15:27:28 mem:589.1MB
+1946/2000  97.3% complete 15:26:53 ETA=   40.1s tpr=7.42e-01 ETF=15:27:33 mem:589.2MB
+1956/2000  97.8% complete 15:26:59 ETA=   25.1s tpr=5.70e-01 ETF=15:27:24 mem:589.2MB
+1966/2000  98.3% complete 15:27:04 ETA=   19.1s tpr=5.62e-01 ETF=15:27:24 mem:589.5MB
+1976/2000  98.8% complete 15:27:10 ETA=   14.4s tpr=6.01e-01 ETF=15:27:25 mem:589.5MB
+1987/2000  99.3% complete 15:27:16 ETA=    6.4s tpr=4.92e-01 ETF=15:27:22 mem:589.5MB
+1998/2000  99.9% complete 15:27:21 ETA=    1.0s tpr=4.85e-01 ETF=15:27:22 mem:589.6MB
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:27:22,382 DEBUG    Process-5] --- Process-3 is finishing.
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+Process 3 finished:
+        generator started at 2021-09-10T15:14:08.117391, done at 2021-09-10T15:27:22.400722 (total: 794.283331s of which 792.6935975551605s interfacing with binary_c).
+        Ran 499 systems with a total probability of 0.17005450973840136.
+        This thread had 0 failing systems with a total probability of 0.
+        Skipped a total of 0 systems because they had 0 probability
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:27:22,435 DEBUG    Process-5] --- Process-3 is finished.
+[2021-09-10 15:27:22,480 DEBUG    Process-3] --- Process-1 is finishing.
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+Process 1 finished:
+        generator started at 2021-09-10T15:14:08.080367, done at 2021-09-10T15:27:22.505288 (total: 794.424921s of which 793.1943278312683s interfacing with binary_c).
+        Ran 474 systems with a total probability of 0.15740832333567983.
+        This thread had 0 failing systems with a total probability of 0.
+        Skipped a total of 0 systems because they had 0 probability
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:27:22,531 DEBUG    Process-3] --- Process-1 is finished.
+[2021-09-10 15:27:22,846 DEBUG    Process-2] --- Process-0 is finishing.
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+Process 0 finished:
+        generator started at 2021-09-10T15:14:08.077117, done at 2021-09-10T15:27:22.851971 (total: 794.774854s of which 793.4976091384888s interfacing with binary_c).
+        Ran 507 systems with a total probability of 0.16018641159091498.
+        This thread had 0 failing systems with a total probability of 0.
+        Skipped a total of 0 systems because they had 0 probability
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:27:22,872 DEBUG    Process-2] --- Process-0 is finished.
+[2021-09-10 15:27:22,976 DEBUG    Process-4] --- Process-2 is finishing.
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+Process 2 finished:
+        generator started at 2021-09-10T15:14:08.084369, done at 2021-09-10T15:27:22.981706 (total: 794.897337s of which 793.4600214958191s interfacing with binary_c).
+        Ran 520 systems with a total probability of 0.1618606489196724.
+        This thread had 0 failing systems with a total probability of 0.
+        Skipped a total of 0 systems because they had 0 probability
+</pre></div></div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area stderr docutils container">
+<div class="highlight"><pre>
+[2021-09-10 15:27:22,986 DEBUG    Process-4] --- Process-2 is finished.
+</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>
+Population-0fa295ee5c76444bace8fd0ee17a3e11 finished! The total probability was: 0.6495098935846686. It took a total of 795.1383104324341s to run 2000 systems on 4 cores
+There were no errors found in this run.
+Done population run!
+</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>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[12]:
+</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">analytics</span><span class="p">)</span>
+</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>
+{&#39;population_name&#39;: &#39;0fa295ee5c76444bace8fd0ee17a3e11&#39;, &#39;evolution_type&#39;: &#39;grid&#39;, &#39;failed_count&#39;: 0, &#39;failed_prob&#39;: 0, &#39;failed_systems_error_codes&#39;: [], &#39;errors_exceeded&#39;: False, &#39;errors_found&#39;: False, &#39;total_probability&#39;: 0.6495098935846686, &#39;total_count&#39;: 2000, &#39;start_timestamp&#39;: 1631283248.057525, &#39;end_timestamp&#39;: 1631284043.1958354, &#39;total_mass_run&#39;: 41112.220964392276, &#39;total_probability_weighted_mass_run&#39;: 0.6452116023479681, &#39;zero_prob_stars_skipped&#39;: 0}
+</pre></div></div>
+</div>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[13]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># make a plot of the luminosity distribution using Seaborn and Pandas</span>
+<span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span>
+<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
+<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="n">pad_output_distribution</span>
+
+<span class="c1"># set the figure size (for a Jupyter notebook in a web browser)</span>
+<span class="n">sns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="n">rc</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;figure.figsize&#39;</span><span class="p">:(</span><span class="mi">20</span><span class="p">,</span><span class="mi">10</span><span class="p">)}</span> <span class="p">)</span>
+
+<span class="n">titles</span> <span class="o">=</span> <span class="p">{</span> <span class="mi">0</span> <span class="p">:</span> <span class="s2">&quot;Primary&quot;</span><span class="p">,</span>
+           <span class="mi">1</span> <span class="p">:</span> <span class="s2">&quot;Secondary&quot;</span><span class="p">,</span>
+           <span class="mi">2</span> <span class="p">:</span> <span class="s2">&quot;Unresolved&quot;</span> <span class="p">}</span>
+
+<span class="c1"># choose to plot the</span>
+<span class="c1"># PRIMARY, SECONDARY or UNRESOLVED</span>
+<span class="n">nstar</span> <span class="o">=</span> <span class="n">UNRESOLVED</span>
+
+<span class="n">plots</span> <span class="o">=</span> <span class="p">{}</span>
+
+<span class="c1"># pad the distribution with zeros where data is missing</span>
+<span class="k">for</span> <span class="n">n</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="mi">3</span><span class="p">):</span>
+    <span class="n">pad_output_distribution</span><span class="p">(</span><span class="n">population</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">][</span><span class="n">n</span><span class="p">],</span>
+                            <span class="n">binwidth</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">])</span>
+    <span class="n">plots</span><span class="p">[</span><span class="n">titles</span><span class="p">[</span><span class="n">n</span><span class="p">]</span> <span class="o">+</span> <span class="s1">&#39; ZAMS luminosity distribution&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">][</span><span class="n">n</span><span class="p">]</span>
+
+<span class="c1"># make pandas dataframe from our sorted dictionary of data</span>
+<span class="n">plot_data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">plots</span><span class="p">)</span>
+
+<span class="c1"># make the plot</span>
+<span class="n">p</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">lineplot</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">plot_data</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s2">&quot;$\log_</span><span class="si">{10}</span><span class="s2">$ ($L_\mathrm</span><span class="si">{ZAMS}</span><span class="s2">$ / L$_{☉}$)&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s2">&quot;Number of stars&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">yscale</span><span class="o">=</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[13]:
+</pre></div>
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+[None]
+</pre></div></div>
+</div>
+<div class="nboutput nblast docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<img alt="_images/notebook_luminosity_function_binaries_20_1.png" src="_images/notebook_luminosity_function_binaries_20_1.png" />
+</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>
+</div>
+</div>
+
+
+           </div>
+           
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="binary_c_parameters.html" class="btn btn-neutral float-right" title="Binary_c parameters" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="notebook_luminosity_function_single.html" class="btn btn-neutral float-left" title="Example use case: Zero-age stellar luminosity function" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        
+        &copy; Copyright 2021, David Hendriks, Robert Izzard
+
+    </p>
+  </div>
+    
+    
+    
+    Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
+    
+    <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
+    
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+<br><br>
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+<br><br>
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
+
+
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script>
+
+  
+  
+    
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/build/html/notebook_luminosity_function_binaries.ipynb b/docs/build/html/notebook_luminosity_function_binaries.ipynb
new file mode 100644
index 000000000..fb64dbcc9
--- /dev/null
+++ b/docs/build/html/notebook_luminosity_function_binaries.ipynb
@@ -0,0 +1,839 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Zero-age stellar luminosity function in binaries\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of binary stars using binary_c. \n",
+    "\n",
+    "Before you go through this notebook, you should look at notebook_luminosity_function.ipynb which is for the - conceptually more simple - single stars.\n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    " )\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 1.0 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set up the binary grid in \"cubic\" M1 - M2=q*M1 - log10 period space\n",
+    "\n",
+    "population = Population()\n",
+    "\n",
+    "# resolution on each side of the cube, with more stars for the primary mass\n",
+    "nres = 10\n",
+    "resolution = {\"M_1\": 2*nres,\n",
+    "              \"q\": nres,\n",
+    "              \"per\": nres}\n",
+    "\n",
+    "massrange = [0.07,100]\n",
+    "logperrange = [0.15, 5.5]\n",
+    "\n",
+    "population.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min=massrange[0],max=massrange[1],res=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",
+    "    dphasevol=\"dlnm1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")\n",
+    "\n",
+    "# Mass ratio\n",
+    "population.add_grid_variable(\n",
+    "     name=\"q\",\n",
+    "     longname=\"Mass ratio\",\n",
+    "     valuerange=[\"0.1/M_1\", 1],\n",
+    "     resolution=\"{}\".format(resolution['q']),\n",
+    "     spacingfunc=\"const({}/M_1, 1, {})\".format(massrange[0],resolution['q']),\n",
+    "     probdist=\"flatsections(q, [{{'min': {}/M_1, 'max': 1.0, 'height': 1}}])\".format(massrange[0]),\n",
+    "     dphasevol=\"dq\",\n",
+    "     precode=\"M_2 = q * M_1\",\n",
+    "     parameter_name=\"M_2\",\n",
+    "     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    " )\n",
+    "\n",
+    "# Orbital period\n",
+    "population.add_grid_variable(\n",
+    "    name=\"log10per\", # in days\n",
+    "    longname=\"log10(Orbital_Period)\",\n",
+    "    valuerange=[0.15, 5.5],\n",
+    "    resolution=\"{}\".format(resolution[\"per\"]),\n",
+    "    spacingfunc=\"const({}, {}, {})\".format(logperrange[0],logperrange[1],resolution[\"per\"]),\n",
+    "    precode=\"\"\"orbital_period = 10.0 ** 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**{})\n",
+    "sep_max = calc_sep_from_period(M_1, M_2, 10**{})\"\"\".format(logperrange[0],logperrange[1]),\n",
+    "    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**{}), math.log10(10**{}), {})\".format(logperrange[0],logperrange[1],-0.55),\n",
+    "    parameter_name=\"orbital_period\",\n",
+    "    dphasevol=\"dlog10per\",\n",
+    " )"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The \n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STARn\n",
+    "#\n",
+    "# where:\n",
+    "#\n",
+    "# n = PRIMARY    = 0 is star 0 (primary star)\n",
+    "# n = SECONDARY  = 1 is star 1 (secondary star)\n",
+    "# n = UNRESOLVED = 2 is the unresolved system (both stars added)\n",
+    "\n",
+    "PRIMARY = 0\n",
+    "SECONDARY = 1\n",
+    "UNRESOLVED = 2\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "// select ZAMS\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "    // loop over the stars individually (equivalent to a resolved binary) \n",
+    "    Foreach_star(star)\n",
+    "    {\n",
+    "        // select main-sequence stars\n",
+    "        if(star->stellar_type <= MAIN_SEQUENCE)\n",
+    "        {\n",
+    "            /* Note that we use Printf - with a capital P! */\n",
+    "           Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  star->starnum,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0], // 2\n",
+    "                  star->mass, // 3\n",
+    "                  star->luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "        }\n",
+    "    }\n",
+    "    \n",
+    "    // unresolved MS-MS binary\n",
+    "    if(stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "       stardata->star[1].stellar_type <= MAIN_SEQUENCE) \n",
+    "    {\n",
+    "        Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  2,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0] + stardata->common.zero_age.mass[1], // 2\n",
+    "                  stardata->star[0].mass + stardata->star[1].mass, // 3\n",
+    "                  stardata->star[0].luminosity + stardata->star[1].luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "    }\n",
+    "}\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "import re\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        \n",
+    "        # check if we match a ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "        match = re.search('ZERO_AGE_MAIN_SEQUENCE_STAR(\\d)',line) \n",
+    "        if match:\n",
+    "            nstar = match.group(1) \n",
+    "            #print(\"matched star\",nstar)\n",
+    "\n",
+    "            # obtain the line of data in dictionary form \n",
+    "            linedata = datalinedict(line,parameters)\n",
+    "\n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][int(nstar)][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "collapsed": true,
+    "jupyter": {
+     "outputs_hidden": true
+    },
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: amt_cores=4 to grid_options\n",
+      "Running the population now, this may take a little while...\n",
+      "Creating and loading custom logging functionality\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "Grid has handled 2000 stars\n",
+      "with a total probability of 0.6495098935846658\n",
+      "Total starcount for this run will be: 2000\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:14:08,077 DEBUG    Process-2] --- Setting up processor: process-0[2021-09-10 15:14:08,080 DEBUG    Process-3] --- Setting up processor: process-1[2021-09-10 15:14:08,086 DEBUG    MainProcess] --- setting up the system_queue_filler now\n",
+      "\n",
+      "[2021-09-10 15:14:08,084 DEBUG    Process-4] --- Setting up processor: process-2\n",
+      "\n",
+      "[2021-09-10 15:14:08,117 DEBUG    Process-5] --- Setting up processor: process-3"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 started at 2021-09-10T15:14:08.119437.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>Process 0 started at 2021-09-10T15:14:08.126435.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>\n",
+      "Process 2 started at 2021-09-10T15:14:08.138353.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "\n",
+      "Process 3 started at 2021-09-10T15:14:08.186492.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "624/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB625/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.04e-03 ETF=15:14:23 mem:800.5MB\n",
+      "626/2000  31.3% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB\n",
+      "\n",
+      "713/2000  35.6% complete 15:14:17 ETA=    1.3m tpr=6.00e-02 ETF=15:15:34 mem:547.8MB\n",
+      "728/2000  36.4% complete 15:14:22 ETA=    7.1m tpr=3.37e-01 ETF=15:21:30 mem:548.1MB\n",
+      "743/2000  37.1% complete 15:14:27 ETA=    7.0m tpr=3.34e-01 ETF=15:21:26 mem:549.5MB\n",
+      "759/2000  38.0% complete 15:14:33 ETA=    7.7m tpr=3.73e-01 ETF=15:22:16 mem:550.5MB\n",
+      "774/2000  38.7% complete 15:14:38 ETA=    6.9m tpr=3.35e-01 ETF=15:21:29 mem:551.1MB\n",
+      "787/2000  39.4% complete 15:14:43 ETA=    7.8m tpr=3.88e-01 ETF=15:22:33 mem:551.1MB\n",
+      "799/2000  40.0% complete 15:14:48 ETA=    8.5m tpr=4.24e-01 ETF=15:23:17 mem:552.5MB\n",
+      "812/2000  40.6% complete 15:14:54 ETA=    8.4m tpr=4.23e-01 ETF=15:23:16 mem:554.8MB\n",
+      "830/2000  41.5% complete 15:14:59 ETA=    5.5m tpr=2.80e-01 ETF=15:20:26 mem:555.2MB\n",
+      "847/2000  42.4% complete 15:15:05 ETA=    6.8m tpr=3.52e-01 ETF=15:21:50 mem:555.2MB\n",
+      "864/2000  43.2% complete 15:15:10 ETA=    6.2m tpr=3.28e-01 ETF=15:21:23 mem:557.0MB\n",
+      "876/2000  43.8% complete 15:15:15 ETA=    8.2m tpr=4.38e-01 ETF=15:23:27 mem:559.7MB\n",
+      "887/2000  44.4% complete 15:15:21 ETA=    9.2m tpr=4.95e-01 ETF=15:24:32 mem:560.5MB\n",
+      "898/2000  44.9% complete 15:15:26 ETA=    9.2m tpr=4.99e-01 ETF=15:24:37 mem:560.5MB\n",
+      "908/2000  45.4% complete 15:15:32 ETA=    9.5m tpr=5.23e-01 ETF=15:25:03 mem:560.5MB\n",
+      "919/2000  46.0% complete 15:15:37 ETA=    8.3m tpr=4.60e-01 ETF=15:23:54 mem:560.9MB\n",
+      "934/2000  46.7% complete 15:15:42 ETA=    6.4m tpr=3.60e-01 ETF=15:22:06 mem:561.7MB\n",
+      "947/2000  47.4% complete 15:15:47 ETA=    7.2m tpr=4.08e-01 ETF=15:22:57 mem:561.7MB\n",
+      "956/2000  47.8% complete 15:15:53 ETA=   11.1m tpr=6.39e-01 ETF=15:27:01 mem:561.7MB\n",
+      "963/2000  48.1% complete 15:15:58 ETA=   12.6m tpr=7.30e-01 ETF=15:28:35 mem:561.7MB\n",
+      "969/2000  48.5% complete 15:16:04 ETA=   15.2m tpr=8.85e-01 ETF=15:31:16 mem:561.9MB\n",
+      "979/2000  49.0% complete 15:16:11 ETA=   11.9m tpr=7.01e-01 ETF=15:28:06 mem:562.0MB\n",
+      "988/2000  49.4% complete 15:16:16 ETA=    9.7m tpr=5.76e-01 ETF=15:25:59 mem:562.0MB\n",
+      "995/2000  49.8% complete 15:16:21 ETA=   12.3m tpr=7.37e-01 ETF=15:28:42 mem:562.2MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:16:25,175 DEBUG    MainProcess] --- Signaling stop to processes\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1003/2000  50.1% complete 15:16:26 ETA=   11.2m tpr=6.76e-01 ETF=15:27:40 mem:563.0MB\n",
+      "1015/2000  50.8% complete 15:16:32 ETA=    7.6m tpr=4.65e-01 ETF=15:24:10 mem:563.0MB\n",
+      "1025/2000  51.2% complete 15:16:37 ETA=    8.1m tpr=5.01e-01 ETF=15:24:45 mem:563.0MB\n",
+      "1033/2000  51.6% complete 15:16:42 ETA=   10.7m tpr=6.65e-01 ETF=15:27:26 mem:563.0MB\n",
+      "1040/2000  52.0% complete 15:16:47 ETA=   12.1m tpr=7.55e-01 ETF=15:28:52 mem:563.5MB\n",
+      "1048/2000  52.4% complete 15:16:53 ETA=   11.8m tpr=7.45e-01 ETF=15:28:42 mem:563.5MB\n",
+      "1057/2000  52.9% complete 15:16:59 ETA=    9.1m tpr=5.78e-01 ETF=15:26:03 mem:563.6MB\n",
+      "1062/2000  53.1% complete 15:17:04 ETA=   15.7m tpr=1.01e+00 ETF=15:32:47 mem:564.4MB\n",
+      "1069/2000  53.5% complete 15:17:09 ETA=   12.4m tpr=7.97e-01 ETF=15:29:31 mem:564.9MB\n",
+      "1077/2000  53.9% complete 15:17:15 ETA=   11.5m tpr=7.46e-01 ETF=15:28:44 mem:565.0MB\n",
+      "1085/2000  54.2% complete 15:17:20 ETA=   10.0m tpr=6.55e-01 ETF=15:27:20 mem:565.0MB\n",
+      "1091/2000  54.5% complete 15:17:26 ETA=   13.8m tpr=9.10e-01 ETF=15:31:13 mem:565.9MB\n",
+      "1099/2000  55.0% complete 15:17:32 ETA=   12.1m tpr=8.05e-01 ETF=15:29:37 mem:566.5MB\n",
+      "1114/2000  55.7% complete 15:17:37 ETA=    5.0m tpr=3.35e-01 ETF=15:22:34 mem:566.5MB\n",
+      "1126/2000  56.3% complete 15:17:43 ETA=    6.8m tpr=4.64e-01 ETF=15:24:29 mem:566.5MB\n",
+      "1134/2000  56.7% complete 15:17:48 ETA=    9.2m tpr=6.37e-01 ETF=15:27:00 mem:566.6MB\n",
+      "1139/2000  57.0% complete 15:17:54 ETA=   16.3m tpr=1.14e+00 ETF=15:34:13 mem:567.4MB\n",
+      "1148/2000  57.4% complete 15:17:59 ETA=    8.8m tpr=6.20e-01 ETF=15:26:47 mem:567.4MB\n",
+      "1156/2000  57.8% complete 15:18:05 ETA=    9.3m tpr=6.60e-01 ETF=15:27:22 mem:567.5MB\n",
+      "1162/2000  58.1% complete 15:18:11 ETA=   14.3m tpr=1.02e+00 ETF=15:32:28 mem:567.6MB\n",
+      "1168/2000  58.4% complete 15:18:17 ETA=   15.2m tpr=1.09e+00 ETF=15:33:27 mem:568.6MB\n",
+      "1177/2000  58.9% complete 15:18:23 ETA=    8.8m tpr=6.45e-01 ETF=15:27:14 mem:568.6MB\n",
+      "1181/2000  59.0% complete 15:18:28 ETA=   17.8m tpr=1.30e+00 ETF=15:36:16 mem:568.7MB\n",
+      "1187/2000  59.4% complete 15:18:34 ETA=   12.1m tpr=8.93e-01 ETF=15:30:40 mem:568.7MB\n",
+      "1194/2000  59.7% complete 15:18:39 ETA=    9.8m tpr=7.29e-01 ETF=15:28:26 mem:568.8MB\n",
+      "1202/2000  60.1% complete 15:18:44 ETA=    9.5m tpr=7.12e-01 ETF=15:28:12 mem:568.8MB\n",
+      "1219/2000  61.0% complete 15:18:51 ETA=    5.3m tpr=4.07e-01 ETF=15:24:09 mem:569.7MB\n",
+      "1228/2000  61.4% complete 15:18:57 ETA=    7.4m tpr=5.76e-01 ETF=15:26:21 mem:569.7MB\n",
+      "1234/2000  61.7% complete 15:19:02 ETA=   11.8m tpr=9.22e-01 ETF=15:30:48 mem:571.7MB1235/2000  61.8% complete 15:19:02 ETA=   10.1m tpr=7.92e-01 ETF=15:29:08 mem:571.7MB\n",
+      "\n",
+      "1243/2000  62.1% complete 15:19:07 ETA=    7.3m tpr=5.79e-01 ETF=15:26:26 mem:573.4MB\n",
+      "1251/2000  62.5% complete 15:19:13 ETA=    8.3m tpr=6.68e-01 ETF=15:27:33 mem:575.4MB\n",
+      "1260/2000  63.0% complete 15:19:19 ETA=    8.2m tpr=6.65e-01 ETF=15:27:31 mem:575.4MB\n",
+      "1268/2000  63.4% complete 15:19:24 ETA=    7.8m tpr=6.41e-01 ETF=15:27:13 mem:576.8MB\n",
+      "1276/2000  63.8% complete 15:19:29 ETA=    7.6m tpr=6.30e-01 ETF=15:27:05 mem:577.0MB\n",
+      "1282/2000  64.1% complete 15:19:34 ETA=   10.1m tpr=8.44e-01 ETF=15:29:40 mem:578.0MB\n",
+      "1289/2000  64.5% complete 15:19:40 ETA=   10.8m tpr=9.08e-01 ETF=15:30:26 mem:578.0MB\n",
+      "1295/2000  64.8% complete 15:19:46 ETA=   10.5m tpr=8.95e-01 ETF=15:30:16 mem:578.1MB\n",
+      "1309/2000  65.5% complete 15:19:51 ETA=    4.3m tpr=3.70e-01 ETF=15:24:06 mem:578.1MB\n",
+      "1323/2000  66.2% complete 15:19:58 ETA=    6.1m tpr=5.45e-01 ETF=15:26:07 mem:579.2MB\n",
+      "1332/2000  66.6% complete 15:20:03 ETA=    6.2m tpr=5.58e-01 ETF=15:26:16 mem:579.3MB\n",
+      "1338/2000  66.9% complete 15:20:09 ETA=   10.1m tpr=9.11e-01 ETF=15:30:12 mem:579.3MB\n",
+      "1346/2000  67.3% complete 15:20:18 ETA=   12.5m tpr=1.14e+00 ETF=15:32:46 mem:581.5MB\n",
+      "1355/2000  67.8% complete 15:20:25 ETA=    8.5m tpr=7.90e-01 ETF=15:28:54 mem:581.6MB\n",
+      "1359/2000  68.0% complete 15:20:30 ETA=   13.9m tpr=1.30e+00 ETF=15:34:26 mem:581.6MB\n",
+      "1366/2000  68.3% complete 15:20:38 ETA=   11.7m tpr=1.10e+00 ETF=15:32:18 mem:581.7MB\n",
+      "1376/2000  68.8% complete 15:20:44 ETA=    6.1m tpr=5.89e-01 ETF=15:26:51 mem:581.7MB\n",
+      "1384/2000  69.2% complete 15:20:49 ETA=    6.9m tpr=6.76e-01 ETF=15:27:46 mem:581.7MB\n",
+      "1393/2000  69.7% complete 15:20:55 ETA=    6.2m tpr=6.13e-01 ETF=15:27:07 mem:581.8MB1394/2000  69.7% complete 15:20:55 ETA=    5.6m tpr=5.52e-01 ETF=15:26:29 mem:581.8MB\n",
+      "\n",
+      "1423/2000  71.2% complete 15:21:00 ETA=    1.6m tpr=1.69e-01 ETF=15:22:37 mem:581.9MB\n",
+      "1435/2000  71.8% complete 15:21:07 ETA=    5.6m tpr=5.92e-01 ETF=15:26:42 mem:582.3MB\n",
+      "1443/2000  72.2% complete 15:21:12 ETA=    6.1m tpr=6.54e-01 ETF=15:27:17 mem:582.5MB\n",
+      "1445/2000  72.2% complete 15:21:18 ETA=   28.2m tpr=3.05e+00 ETF=15:49:28 mem:582.6MB\n",
+      "1448/2000  72.4% complete 15:21:25 ETA=   20.0m tpr=2.18e+00 ETF=15:41:27 mem:582.6MB\n",
+      "1454/2000  72.7% complete 15:21:31 ETA=    8.6m tpr=9.49e-01 ETF=15:30:09 mem:583.0MB\n",
+      "1455/2000  72.8% complete 15:21:37 ETA=   54.9m tpr=6.05e+00 ETF=16:16:32 mem:583.0MB\n",
+      "1459/2000  73.0% complete 15:21:43 ETA=   13.5m tpr=1.50e+00 ETF=15:35:12 mem:583.0MB\n",
+      "1465/2000  73.2% complete 15:21:48 ETA=    8.6m tpr=9.65e-01 ETF=15:30:25 mem:583.0MB\n",
+      "1474/2000  73.7% complete 15:21:54 ETA=    5.6m tpr=6.38e-01 ETF=15:27:30 mem:583.0MB\n",
+      "1482/2000  74.1% complete 15:21:59 ETA=    5.4m tpr=6.30e-01 ETF=15:27:26 mem:583.0MB\n",
+      "1485/2000  74.2% complete 15:22:04 ETA=   14.8m tpr=1.73e+00 ETF=15:36:54 mem:583.5MB\n",
+      "1487/2000  74.3% complete 15:22:10 ETA=   24.9m tpr=2.91e+00 ETF=15:47:02 mem:583.5MB\n",
+      "1496/2000  74.8% complete 15:22:16 ETA=    5.0m tpr=5.91e-01 ETF=15:27:13 mem:583.7MB\n",
+      "1509/2000  75.5% complete 15:22:21 ETA=    3.6m tpr=4.40e-01 ETF=15:25:57 mem:583.9MB\n",
+      "1523/2000  76.2% complete 15:22:27 ETA=    3.0m tpr=3.80e-01 ETF=15:25:28 mem:583.9MB\n",
+      "1531/2000  76.5% complete 15:22:33 ETA=    5.9m tpr=7.60e-01 ETF=15:28:29 mem:583.9MB\n",
+      "1537/2000  76.8% complete 15:22:38 ETA=    6.7m tpr=8.71e-01 ETF=15:29:21 mem:583.9MB\n",
+      "1545/2000  77.2% complete 15:22:44 ETA=    5.4m tpr=7.14e-01 ETF=15:28:08 mem:584.0MB\n",
+      "1555/2000  77.8% complete 15:22:49 ETA=    4.1m tpr=5.52e-01 ETF=15:26:55 mem:584.2MB\n",
+      "1564/2000  78.2% complete 15:22:54 ETA=    4.2m tpr=5.78e-01 ETF=15:27:06 mem:584.2MB\n",
+      "1574/2000  78.7% complete 15:23:00 ETA=    4.4m tpr=6.16e-01 ETF=15:27:23 mem:584.4MB\n",
+      "1584/2000  79.2% complete 15:23:07 ETA=    4.4m tpr=6.28e-01 ETF=15:27:28 mem:584.8MB\n",
+      "1594/2000  79.7% complete 15:23:12 ETA=    3.8m tpr=5.66e-01 ETF=15:27:02 mem:584.9MB\n",
+      "1607/2000  80.3% complete 15:23:17 ETA=    2.5m tpr=3.86e-01 ETF=15:25:49 mem:585.0MB\n",
+      "1618/2000  80.9% complete 15:23:24 ETA=    3.8m tpr=5.97e-01 ETF=15:27:12 mem:585.4MB\n",
+      "1628/2000  81.4% complete 15:23:29 ETA=    3.3m tpr=5.28e-01 ETF=15:26:46 mem:585.5MB\n",
+      "1635/2000  81.8% complete 15:23:34 ETA=    4.4m tpr=7.30e-01 ETF=15:28:01 mem:585.9MB\n",
+      "1645/2000  82.2% complete 15:23:40 ETA=    3.4m tpr=5.81e-01 ETF=15:27:06 mem:585.9MB\n",
+      "1655/2000  82.8% complete 15:23:47 ETA=    4.0m tpr=7.02e-01 ETF=15:27:49 mem:586.0MB1656/2000  82.8% complete 15:23:47 ETA=    3.7m tpr=6.39e-01 ETF=15:27:27 mem:586.0MB\n",
+      "\n",
+      "1664/2000  83.2% complete 15:23:54 ETA=    4.5m tpr=8.01e-01 ETF=15:28:23 mem:586.1MB\n",
+      "1674/2000  83.7% complete 15:24:02 ETA=    4.5m tpr=8.27e-01 ETF=15:28:31 mem:586.2MB\n",
+      "1684/2000  84.2% complete 15:24:07 ETA=    2.9m tpr=5.55e-01 ETF=15:27:03 mem:586.2MB\n",
+      "1691/2000  84.5% complete 15:24:13 ETA=    4.2m tpr=8.21e-01 ETF=15:28:27 mem:586.5MB\n",
+      "1699/2000  85.0% complete 15:24:19 ETA=    3.4m tpr=6.75e-01 ETF=15:27:42 mem:586.5MB\n",
+      "1713/2000  85.7% complete 15:24:24 ETA=    1.9m tpr=4.07e-01 ETF=15:26:21 mem:586.6MB\n",
+      "1725/2000  86.2% complete 15:24:31 ETA=    2.6m tpr=5.57e-01 ETF=15:27:04 mem:586.7MB\n",
+      "1735/2000  86.8% complete 15:24:38 ETA=    3.0m tpr=6.76e-01 ETF=15:27:37 mem:586.7MB\n",
+      "1745/2000  87.2% complete 15:24:44 ETA=    2.7m tpr=6.40e-01 ETF=15:27:27 mem:586.9MB\n",
+      "1755/2000  87.8% complete 15:24:51 ETA=    2.8m tpr=6.88e-01 ETF=15:27:40 mem:586.9MB\n",
+      "1763/2000  88.2% complete 15:24:56 ETA=    2.6m tpr=6.59e-01 ETF=15:27:32 mem:586.9MB\n",
+      "1767/2000  88.3% complete 15:25:02 ETA=    5.3m tpr=1.36e+00 ETF=15:30:18 mem:586.9MB\n",
+      "1776/2000  88.8% complete 15:25:09 ETA=    2.9m tpr=7.71e-01 ETF=15:28:01 mem:586.9MB\n",
+      "1785/2000  89.2% complete 15:25:14 ETA=    2.1m tpr=5.90e-01 ETF=15:27:21 mem:586.9MB\n",
+      "1793/2000  89.7% complete 15:25:19 ETA=    2.2m tpr=6.29e-01 ETF=15:27:29 mem:587.1MB\n",
+      "1801/2000  90.0% complete 15:25:24 ETA=    2.2m tpr=6.59e-01 ETF=15:27:35 mem:587.1MB\n",
+      "1812/2000  90.6% complete 15:25:29 ETA=    1.5m tpr=4.68e-01 ETF=15:26:57 mem:587.1MB\n",
+      "1822/2000  91.1% complete 15:25:35 ETA=    1.6m tpr=5.54e-01 ETF=15:27:14 mem:587.4MB\n",
+      "1830/2000  91.5% complete 15:25:41 ETA=    2.1m tpr=7.49e-01 ETF=15:27:48 mem:587.4MB\n",
+      "1839/2000  92.0% complete 15:25:47 ETA=    1.7m tpr=6.21e-01 ETF=15:27:27 mem:587.4MB\n",
+      "1847/2000  92.3% complete 15:25:52 ETA=    1.8m tpr=7.10e-01 ETF=15:27:41 mem:587.4MB\n",
+      "1855/2000  92.8% complete 15:25:59 ETA=    2.0m tpr=8.17e-01 ETF=15:27:57 mem:587.6MB\n",
+      "1864/2000  93.2% complete 15:26:05 ETA=    1.5m tpr=6.79e-01 ETF=15:27:37 mem:587.8MB\n",
+      "1873/2000  93.7% complete 15:26:10 ETA=    1.3m tpr=6.07e-01 ETF=15:27:27 mem:588.0MB\n",
+      "1884/2000  94.2% complete 15:26:16 ETA=   57.0s tpr=4.91e-01 ETF=15:27:13 mem:588.1MB\n",
+      "1895/2000  94.8% complete 15:26:21 ETA=   48.7s tpr=4.63e-01 ETF=15:27:09 mem:588.8MB\n",
+      "1907/2000  95.3% complete 15:26:27 ETA=   45.6s tpr=4.91e-01 ETF=15:27:12 mem:588.9MB\n",
+      "1916/2000  95.8% complete 15:26:33 ETA=   57.5s tpr=6.84e-01 ETF=15:27:30 mem:589.1MB\n",
+      "1926/2000  96.3% complete 15:26:39 ETA=   46.5s tpr=6.28e-01 ETF=15:27:26 mem:589.1MB\n",
+      "1936/2000  96.8% complete 15:26:46 ETA=   42.0s tpr=6.57e-01 ETF=15:27:28 mem:589.1MB\n",
+      "1946/2000  97.3% complete 15:26:53 ETA=   40.1s tpr=7.42e-01 ETF=15:27:33 mem:589.2MB\n",
+      "1956/2000  97.8% complete 15:26:59 ETA=   25.1s tpr=5.70e-01 ETF=15:27:24 mem:589.2MB\n",
+      "1966/2000  98.3% complete 15:27:04 ETA=   19.1s tpr=5.62e-01 ETF=15:27:24 mem:589.5MB\n",
+      "1976/2000  98.8% complete 15:27:10 ETA=   14.4s tpr=6.01e-01 ETF=15:27:25 mem:589.5MB\n",
+      "1987/2000  99.3% complete 15:27:16 ETA=    6.4s tpr=4.92e-01 ETF=15:27:22 mem:589.5MB\n",
+      "1998/2000  99.9% complete 15:27:21 ETA=    1.0s tpr=4.85e-01 ETF=15:27:22 mem:589.6MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,382 DEBUG    Process-5] --- Process-3 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 3 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.117391, done at 2021-09-10T15:27:22.400722 (total: 794.283331s of which 792.6935975551605s interfacing with binary_c).\n",
+      "\tRan 499 systems with a total probability of 0.17005450973840136.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,435 DEBUG    Process-5] --- Process-3 is finished.\n",
+      "[2021-09-10 15:27:22,480 DEBUG    Process-3] --- Process-1 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.080367, done at 2021-09-10T15:27:22.505288 (total: 794.424921s of which 793.1943278312683s interfacing with binary_c).\n",
+      "\tRan 474 systems with a total probability of 0.15740832333567983.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,531 DEBUG    Process-3] --- Process-1 is finished.\n",
+      "[2021-09-10 15:27:22,846 DEBUG    Process-2] --- Process-0 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 0 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.077117, done at 2021-09-10T15:27:22.851971 (total: 794.774854s of which 793.4976091384888s interfacing with binary_c).\n",
+      "\tRan 507 systems with a total probability of 0.16018641159091498.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,872 DEBUG    Process-2] --- Process-0 is finished.\n",
+      "[2021-09-10 15:27:22,976 DEBUG    Process-4] --- Process-2 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 2 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.084369, done at 2021-09-10T15:27:22.981706 (total: 794.897337s of which 793.4600214958191s interfacing with binary_c).\n",
+      "\tRan 520 systems with a total probability of 0.1618606489196724.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,986 DEBUG    Process-4] --- Process-2 is finished.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Population-0fa295ee5c76444bace8fd0ee17a3e11 finished! The total probability was: 0.6495098935846686. It took a total of 795.1383104324341s to run 2000 systems on 4 cores\n",
+      "There were no errors found in this run.\n",
+      "Done population run!\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=1,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=4,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "print(\"Running the population now, this may take a little while...\")\n",
+    "analytics = population.evolve()  \n",
+    "print(\"Done population run!\")\n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '0fa295ee5c76444bace8fd0ee17a3e11', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.6495098935846686, 'total_count': 2000, 'start_timestamp': 1631283248.057525, 'end_timestamp': 1631284043.1958354, 'total_mass_run': 41112.220964392276, 'total_probability_weighted_mass_run': 0.6452116023479681, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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p9///vdq2bKlJKlFixbavn274VSIBLNnz1aPHj1Uq1YtJSQkaMiQIZoyZYrpWIggWVlZuuWWW+TxeOR2u9WkSRNt27bNdCxEmIKCAj3xxBO66qqrTEdBBPrkk080fPhw1a5dW263W0888YQ6dOhgOhYiSDAYVCgUUllZmQKBgAKBgLxer+lYMYMB0//YvHmz6tatqwceeEBnnXWWbrjhBrndbtOxEGFmzJih8vJyDR061HQURCCPx6Ozzz5bkhQKhTR+/HgNHDjQcCpEgl27dikrK6vycnZ2tnbu3GkwESJNs2bN1LFjR0nShg0b9NFHH6l///5mQyHi3HnnnbrxxhuVkpJiOgoi0MaNGxUMBnX55ZfrrLPO0muvvabU1FTTsRBBkpKS9Pvf/17Dhg1Tv379lJubq86dO5uOFTNcpgOY8vHHH+vBBx884rqGDRtq+fLluv7663X77bfrrbfe0i233KJXXnnFUErY2U89hxo3bqzi4mK99NJLZkIhohztOfTSSy/J5/PplltuUSAQ0JVXXmkoISJJOBz+0XWWZRlIgki3Zs0aXXnllbr55pvVqFEj03EQQd566y3VqVNHPXv21Lvvvms6DiJQMBjU/Pnz9corryghIUHXXHONJk6cqHPPPdd0NESIlStX6p133tGnn36q5ORk/elPf9K//vUv/fa3vzUdLSZY4Z/6jTRGbdq0Seecc44WLFgg6UB/s0ePHlq8eLHhZIgUb731lv75z38qMTFR0oEfcC1bttSrr76qpKQkw+kQKUpKSnT11VerVq1aeuyxx+TxeExHQgSYOHGi5s+fr/vvv1+S9I9//EPhcFjXXXed4WSIJAsWLNANN9yg2267TWeccYbpOIgwv/nNb7R79245nU7t379fpaWlGjlypG677TbT0RAh/va3v6m4uFjjxo2TJL366qtas2aN7r77brPBEDFeeOEF7d27VzfffLMk6bPPPtNrr72m5557znCy2EBF7n80aNBAOTk5lRvJffrpp2rTpo3hVIgk5513nqZPn65JkyZp0qRJkg6cYsBwCSfiz3/+sxo2bKgnn3yS4RKOW69evTRnzhzl5+errKxM06ZNU79+/UzHQgTZvn27rr32Wj322GMMl/CLvPjii/rggw80adIk3XDDDTrttNMYLuGEnHrqqZo1a5YKCwsVDAb15Zdf8noMJ6Rly5aaPXu2SktLFQ6HNXPmTLVr1850rJgRsxW5oxk/frzuuusuPfroo0pKStJDDz1kOhKAGLJ8+XLNmDFDTZs21ciRIyUd2Evn+eefNxsMtpeTk6Mbb7xRF198sfx+v0aPHq327dubjoUI8q9//UsVFRVH/O4zduxYnX/++QZTAYglHTp00G9/+1tdcMEF8vv96t27t0aNGmU6FiJInz59tHz5cp177rlyu91q166drrjiCtOxYgYVOQAAAAAAAJwUKnIAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASWHABAAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAEPFOO+00zZ4923QMAACAmMWACQAAoIrl5+erRYsW2rlzp+koAAAANYIBEwAAQBV47LHH9OWXX0qSVq5cqfT0dOXk5BhOdcANN9yg1atXV17esmWLOnXq9Ivuq6SkRL/97W9VXl5eVfEAAEAUYMAEAACiyrp163TRRRepa9euOuOMMzRjxozKzy1btkwjR45Up06ddMMNN+gPf/iDnnjiiZN+zEWLFmnt2rXq27evJGnFihVq2bLlSd9vVfD5fNq4caOaN29eJfeXmJioM888U08++WSV3B8AAIgODJgAAEDU8Pv9uuqqq9S7d2/Nnj1b48aN05/+9CetX79ePp9P1113nc455xzNmzdPZ555pqZPn14lj/vUU09pzJgxlZftNGCaPXu2evbsWaX3OWzYME2ePFl79uyp0vsFAACRiwETAACIGosXL1ZpaamuuOIKeTwe9ezZU6eeeqo+/PBDLV68WIFAQBdffLHcbrcGDx6sdu3aVX5tUVGRRo8erU6dOh1RJ3v00Ud1wQUX6M9//rP8fv+PHrOwsFALFixQ7969K69buXKlWrVq9aPbvvHGG7rooosq/7Rv315Lliyp/PzYsWM1fvx4SQdqbC1atNDXX38t6cBKpG7dumnChAmSpOLiYl111VW66KKLNGbMGH3++ec/+T2ZMWOGBg4ceCLfxmPyer3q3LnzUR8TAADEHpfpAAAAAFVl165dql27thyOw++h1a1bVzt37tSuXbuUk5Mjy7IqP1enTp3Kj+Pi4vTcc8/pkUceqbxu5cqV2rlzp1577TU988wzmjp1qs4888wjHnPjxo3KysqSx+ORJFVUVOj7779X69atf5RvzJgxlSudZs6cqYkTJ6p9+/aSpO3btysnJ0fz5s2rvH3btm31ySefqEePHpozZ44aNmxY+blJkyapb9++uvDCCxUOh1VUVPSjxwuFQlq0aJHuvvvu4/r+HbJz5069/PLLCgQCCofDatWqlc4555wjbtOgQQN9//33J3S/AAAgerGCCQAARI3s7Gzt2LFDoVCo8rpDg5usrCzt3LlT4XD4iM8d4na7lZ6efsT9LVy4UH369JEk9e3bVwsXLvzRYzocDgWDwcrLq1evlsvlUl5e3lFz5ufn68knn9Q999xTed3UqVM1YsQINW7cWOvWrZMk5ebmatu2bQqHw/rkk080ePDgytt7vV4tWrRIe/bskWVZSklJ+dHjLF68WG3btpXT6Txqlh8KhUJ6//33deONN+rWW2/VbbfdpiZNmuizzz474nbBYPCE7hcAAEQ3BkwAACBqtG/fXnFxcXrhhRfk9/s1d+5czZw5U8OHD1fHjh3ldDo1YcIEBQIBTZ8+Xd99993P3l9hYaGSkpIkScnJydq/f/+PblO/fn3l5+eroqJC0oFVT02aNFEgEFBFRYUqKirk8/mO+Jq7775bv//9748YaM2aNUv9+vXTmWeeqSlTplRe36lTJ33zzTfKz89XZmZm5fVnn3228vLydPnll2vMmDFav379j7JNnz5dp59++nF85w5bsmSJRo4cKZfLpY8//lhbt25V+/btVVZWdsTttmzZ8rNDNAAAEFsYMAEAgKjh8Xj07LPP6osvvlCPHj10zz336JFHHlGTJk3k8Xj01FNP6e2331a3bt30/vvva8CAAZXVtp+SnJys4uJiSQf2aEpNTf3RbVJSUtSlS5fKvZJWrFihZcuWqX379pV/hg8fXnn79957T8nJyTrttNMqr9uxY4fWrFmjq6++Ws8888wRexsNHjxYDz74oE455ZQjHtftduuaa67RpEmTdMMNN+ipp576UbbZs2dXrsD6odLSUnXq1OmIP6tWrZLT6axcAfbss89q/vz5knTEaiWfz6dvv/32iH8HAAAQ29iDCQAARLyZM2dWftysWbPKjbB/qF27dpo0aVLl5fPOO0+nnnrqUe+3c+fOevHFFzVy5EjNmjVLnTt3/snbXXvttXr22WfVv39/3Xnnnbrzzjt/8nbbt2/XSy+99KN8U6ZM0a233qqhQ4dKOrDC6dCqp0aNGqlLly4aOnSoZs+eXfk1W7durdz7KSMj44jq3yETJ078yRz16tXTqlWrfvJzfr9fL7/8si655JLK79V33313xIDpgw8+0IgRI36ylgcAAGITAyYAABAz5s2bp7y8PKWlpWny5MlatWqV+vbtW/n53/3ud1qxYoW+//57jRkzRueee64yMjJ0wQUXqE6dOrrssst+8n47d+6svLw8ffHFF+rXr99RH/+f//ynCgsLdfXVV1ded80112jatGn6xz/+UXld9+7d9fHHH1deHjdu3I/ua/Xq1brxxhvl9XoVDoePOtQ6UW63W8OGDdPjjz9euZKpWbNmGj16tKQDp9d98MEHlafdAQAASJIV/qm3uwAAAKLQG2+8oSeffFJlZWWqV6+e/vjHP2rAgAGmYwEAAEQ8BkwAAAAAAAA4KWzyDQAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAAAAAAJwUBkwAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASfl/6hNZaplFmREAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "titles = { 0 : \"Primary\",\n",
+    "           1 : \"Secondary\",\n",
+    "           2 : \"Unresolved\" }\n",
+    "\n",
+    "# choose to plot the \n",
+    "# PRIMARY, SECONDARY or UNRESOLVED\n",
+    "nstar = UNRESOLVED\n",
+    "\n",
+    "plots = {}\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "for n in range(0,3):\n",
+    "    pad_output_distribution(population.grid_results['luminosity distribution'][n],\n",
+    "                            binwidth['luminosity'])\n",
+    "    plots[titles[n] + ' ZAMS luminosity distribution'] = population.grid_results['luminosity distribution'][n]\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict(plots)\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e7541ebf-fe9a-4fb0-a88e-bb318d06f9eb",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/build/html/notebook_luminosity_function_single.html b/docs/build/html/notebook_luminosity_function_single.html
new file mode 100644
index 000000000..e2821b3be
--- /dev/null
+++ b/docs/build/html/notebook_luminosity_function_single.html
@@ -0,0 +1,1035 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" >
+<head>
+  <meta charset="utf-8">
+  
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Example use case: Zero-age stellar luminosity function &mdash; binary_c-python  documentation</title>
+  
+
+  
+  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+
+  
+  
+  
+  
+
+  
+  <!--[if lt IE 9]>
+    <script src="_static/js/html5shiv.min.js"></script>
+  <![endif]-->
+  
+    
+      <script type="text/javascript" id="documentation_options" data-url_root="./" 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 src="_static/language_data.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 async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
+        <script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true, "ignoreClass": "document", "processClass": "math|output_area"}})</script>
+    
+    <script type="text/javascript" src="_static/js/theme.js"></script>
+
+    
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="next" title="Zero-age stellar luminosity function in binaries" href="notebook_luminosity_function_binaries.html" />
+    <link rel="prev" title="Using the API functionality of binarycpython" href="notebook_api_functionality.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" alt="Documentation 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="main navigation">
+          
+            
+            
+              
+            
+            
+              <p class="caption"><span class="caption-text">Contents:</span></p>
+<ul class="current">
+<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 current"><a class="reference internal" href="example_notebooks.html">Example notebooks</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="notebook_individual_systems.html">Running individual systems with binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_custom_logging.html">Using custom logging routines with binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_population.html">Running populations with binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Example use case: Zero-age stellar luminosity function</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#Setting-up-the-Population-object">Setting up the Population object</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#Adding-grid-variables">Adding grid variables</a></li>
+<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="#ZAMS-Luminosity-distribution-with-the-initial-mass-function">ZAMS Luminosity distribution with the initial mass function</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
+</ul>
+</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="top navigation">
+        
+          <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="breadcrumbs navigation">
+
+  <ul class="wy-breadcrumbs">
+    
+      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
+        
+          <li><a href="example_notebooks.html">Example notebooks</a> &raquo;</li>
+        
+      <li>Example use case: Zero-age stellar luminosity function</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            <a href="_sources/notebook_luminosity_function_single.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="section" id="Example-use-case:-Zero-age-stellar-luminosity-function">
+<h1>Example use case: Zero-age stellar luminosity function<a class="headerlink" href="#Example-use-case:-Zero-age-stellar-luminosity-function" title="Permalink to this headline">¶</a></h1>
+<p>In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of single stars using binary_c.</p>
+<p>We start by loading in some standard Python modules and the binary_c module.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">math</span>
+<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
+
+<span class="kn">from</span> <span class="nn">binarycpython.utils.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="n">TMP_DIR</span> <span class="o">=</span> <span class="n">temp_dir</span><span class="p">(</span><span class="s2">&quot;notebooks&quot;</span><span class="p">,</span> <span class="s2">&quot;notebook_luminosity&quot;</span><span class="p">)</span>
+
+<span class="c1"># help(Population) # Uncomment this line to see the public functions of this object</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="Setting-up-the-Population-object">
+<h2>Setting up the Population object<a class="headerlink" href="#Setting-up-the-Population-object" title="Permalink to this headline">¶</a></h2>
+<p>To set up and configure the population object we need to make a new instance of the <code class="docutils literal notranslate"><span class="pre">Population</span></code> object and configure it with the <code class="docutils literal notranslate"><span class="pre">.set()</span></code> function.</p>
+<p>In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero.</p>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Create population object</span>
+<span class="n">population</span> <span class="o">=</span> <span class="n">Population</span><span class="p">()</span>
+
+<span class="c1"># If you want verbosity, set this before other things</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">verbosity</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
+
+<span class="c1"># Setting values can be done via .set(&lt;parameter_name&gt;=&lt;value&gt;)</span>
+<span class="c1"># Values that are known to be binary_c_parameters are loaded into bse_options.</span>
+<span class="c1"># Those that are present in the default grid_options are set in grid_options</span>
+<span class="c1"># All other values that you set are put in a custom_options dict</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="c1"># binary_c physics options</span>
+    <span class="n">max_evolution_time</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span>  <span class="c1"># maximum stellar evolution time in Myr</span>
+    <span class="n">tmp_dir</span><span class="o">=</span><span class="n">TMP_DIR</span><span class="p">,</span>
+<span class="p">)</span>
+
+<span class="c1"># We can access the options through</span>
+<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;verbosity is&quot;</span><span class="p">,</span> <span class="n">population</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;verbosity&#39;</span><span class="p">])</span>
+</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>
+adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_luminosity to grid_options
+adding: max_evolution_time=0.1 to BSE_options
+verbosity is 1
+</pre></div></div>
+</div>
+</div>
+<div class="section" id="Adding-grid-variables">
+<h2>Adding grid variables<a class="headerlink" href="#Adding-grid-variables" title="Permalink to this headline">¶</a></h2>
+<p>The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.</p>
+<p>Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters.</p>
+<p>To add a grid variable to the population object we use <code class="docutils literal notranslate"><span class="pre">population.add_grid_variable</span></code></p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[3]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># help(population.add_grid_variable)</span>
+</pre></div>
+</div>
+</div>
+<p>All the distribution functions that we can use are stored in the <code class="docutils literal notranslate"><span class="pre">binarycpython.utils.distribution_functions</span></code> or <code class="docutils literal notranslate"><span class="pre">binarycpython/utils/distribution_functions.py</span></code> on git. If you uncomment the help statement below you can see which functions are available now:</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[4]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="kn">import</span> <span class="nn">binarycpython.utils.distribution_functions</span>
+<span class="c1"># help(binarycpython.utils.distribution_functions)</span>
+</pre></div>
+</div>
+</div>
+<p>First let us set up some global variables that will be useful throughout. * The resolution is the number of stars we simulate in our model population. * The massrange is a list of the min and max masses * The total_probability is the theoretical integral of a probability density function, i.e. 1.0. * The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log<em>L</em> are 0.5dex wide.</p>
+<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><span class="c1"># Set resolution and mass range that we simulate</span>
+<span class="n">resolution</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;M_1&quot;</span><span class="p">:</span> <span class="mi">40</span><span class="p">}</span> <span class="c1"># start with resolution = 10, and increase later if you want &quot;more accurate&quot; data</span>
+<span class="n">massrange</span> <span class="o">=</span> <span class="p">(</span><span class="mf">0.07</span><span class="p">,</span> <span class="mf">100.0</span><span class="p">)</span> <span class="c1"># we work with stars of mass 0.07 to 100 Msun</span>
+<span class="n">total_probability</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="c1"># theoretical integral of the mass probability density function over all masses</span>
+<span class="c1"># distribution binwidths :</span>
+<span class="c1"># (log10) luminosity distribution</span>
+<span class="n">binwidth</span> <span class="o">=</span> <span class="p">{</span> <span class="s1">&#39;luminosity&#39;</span> <span class="p">:</span> <span class="mf">0.5</span> <span class="p">}</span>
+</pre></div>
+</div>
+</div>
+<p>The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass <em>M</em>_1.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[5]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Mass</span>
+<span class="n">population</span> <span class="o">=</span> <span class="n">Population</span><span class="p">()</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="n">tmp_dir</span><span class="o">=</span><span class="n">TMP_DIR</span><span class="p">,</span>
+<span class="p">)</span>
+<span class="n">population</span><span class="o">.</span><span class="n">add_grid_variable</span><span class="p">(</span>
+    <span class="n">name</span><span class="o">=</span><span class="s2">&quot;M_1&quot;</span><span class="p">,</span>
+    <span class="n">longname</span><span class="o">=</span><span class="s2">&quot;Primary mass&quot;</span><span class="p">,</span>
+    <span class="n">valuerange</span><span class="o">=</span><span class="n">massrange</span><span class="p">,</span>
+    <span class="n">resolution</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{res}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">res</span> <span class="o">=</span> <span class="n">resolution</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]),</span>
+    <span class="n">spacingfunc</span><span class="o">=</span><span class="s2">&quot;const(</span><span class="si">{min}</span><span class="s2">, </span><span class="si">{max}</span><span class="s2">, </span><span class="si">{res}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">min</span> <span class="o">=</span> <span class="n">massrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">max</span> <span class="o">=</span> <span class="n">massrange</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">res</span> <span class="o">=</span> <span class="n">resolution</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]),</span>
+    <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">{probtot}</span><span class="s2">/(</span><span class="si">{max}</span><span class="s2"> - </span><span class="si">{min}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">probtot</span> <span class="o">=</span> <span class="n">total_probability</span><span class="p">,</span> <span class="nb">min</span> <span class="o">=</span> <span class="n">massrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">max</span> <span class="o">=</span> <span class="n">massrange</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span> <span class="c1"># dprob/dm1 : all stars are equally likely so this is 1.0 / (Mmax - Mmin)</span>
+    <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;dM_1&quot;</span><span class="p">,</span>
+    <span class="n">parameter_name</span><span class="o">=</span><span class="s2">&quot;M_1&quot;</span><span class="p">,</span>
+    <span class="n">condition</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>  <span class="c1"># Impose a condition on this grid variable. Mostly for a check for yourself</span>
+<span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="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>
+<p>By default, binary_c will not output anything (except for ‘SINGLE STAR LIFETIME’). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into <code class="docutils literal notranslate"><span class="pre">binary_c</span></code> (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook <code class="docutils literal notranslate"><span class="pre">notebook_custom_logging.ipynb</span></code>), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes,
+it works perfectly well.</p>
+<p>After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook <code class="docutils literal notranslate"><span class="pre">notebook_individual_systems.ipynb</span></code>).</p>
+<p>In the code below we will set up both the custom logging and a parse function to handle that output.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[18]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Create custom logging statement</span>
+<span class="c1">#</span>
+<span class="c1"># we check that the model number is zero, i.e. we&#39;re on the first timestep (stars are born on the ZAMS)</span>
+<span class="c1"># we make sure that the stellar type is &lt;= MAIN_SEQUENCE, i.e. the star is a main-sequence star</span>
+<span class="c1"># we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)</span>
+<span class="c1">#</span>
+<span class="c1"># The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STAR</span>
+
+<span class="n">custom_logging_statement</span> <span class="o">=</span> <span class="s2">&quot;&quot;&quot;</span>
+<span class="s2">if(stardata-&gt;model.model_number == 0 &amp;&amp;</span>
+<span class="s2">   stardata-&gt;star[0].stellar_type &lt;= MAIN_SEQUENCE &amp;&amp;</span>
+<span class="s2">   stardata-&gt;model.time == 0)</span>
+<span class="s2">{</span>
+<span class="s2">   /* Note that we use Printf - with a capital P! */</span>
+<span class="s2">   Printf(&quot;ZERO_AGE_MAIN_SEQUENCE_STAR </span><span class="si">%30.12e</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="s2"> </span><span class="si">%g</span><span class="se">\\</span><span class="s2">n&quot;,</span>
+<span class="s2">          stardata-&gt;model.time, // 1</span>
+<span class="s2">          stardata-&gt;common.zero_age.mass[0], // 2</span>
+<span class="s2">          stardata-&gt;star[0].mass, // 3</span>
+<span class="s2">          stardata-&gt;star[0].luminosity, // 4</span>
+<span class="s2">          stardata-&gt;model.probability // 5</span>
+<span class="s2">      );</span>
+<span class="s2">};</span>
+<span class="s2">&quot;&quot;&quot;</span>
+
+<span class="n">population</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="p">)</span>
+
+</pre></div>
+</div>
+</div>
+<p>The parse function must now catch lines that start with “ZERO_AGE_MAIN_SEQUENCE_STAR” and process the associated data.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># import the bin_data function so we can construct finite-resolution probability distributions</span>
+<span class="c1"># import the datalinedict to make a dictionary from each line of data from binary_c</span>
+<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="n">bin_data</span><span class="p">,</span><span class="n">datalinedict</span>
+
+<span class="k">def</span> <span class="nf">parse_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Example parse function</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="c1"># list of the data items</span>
+    <span class="n">parameters</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;header&quot;</span><span class="p">,</span> <span class="s2">&quot;time&quot;</span><span class="p">,</span> <span class="s2">&quot;zams_mass&quot;</span><span class="p">,</span> <span class="s2">&quot;mass&quot;</span><span class="p">,</span> <span class="s2">&quot;luminosity&quot;</span><span class="p">,</span> <span class="s2">&quot;probability&quot;</span><span class="p">]</span>
+
+    <span class="c1"># Loop over the output.</span>
+    <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">():</span>
+        <span class="c1"># obtain the line of data in dictionary form</span>
+        <span class="n">linedata</span> <span class="o">=</span> <span class="n">datalinedict</span><span class="p">(</span><span class="n">line</span><span class="p">,</span><span class="n">parameters</span><span class="p">)</span>
+
+        <span class="c1"># Check the header and act accordingly</span>
+        <span class="k">if</span> <span class="n">linedata</span><span class="p">[</span><span class="s1">&#39;header&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;ZERO_AGE_MAIN_SEQUENCE_STAR&quot;</span><span class="p">:</span>
+
+            <span class="c1"># bin the log10(luminosity) to the nearest 0.1dex</span>
+            <span class="n">binned_log_luminosity</span> <span class="o">=</span> <span class="n">bin_data</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">linedata</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">]),</span>
+                                             <span class="n">binwidth</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">])</span>
+
+            <span class="c1"># append the data to the results_dictionary</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">][</span><span class="n">binned_log_luminosity</span><span class="p">]</span> <span class="o">+=</span> <span class="n">linedata</span><span class="p">[</span><span class="s1">&#39;probability&#39;</span><span class="p">]</span>
+
+            <span class="c1">#print (self.grid_results)</span>
+
+    <span class="c1"># verbose reporting</span>
+    <span class="c1">#print(&quot;parse out results_dictionary=&quot;,self.grid_results)</span>
+
+<span class="c1"># Add the parsing function</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="n">parse_function</span><span class="o">=</span><span class="n">parse_function</span><span class="p">,</span>
+<span class="p">)</span>
+</pre></div>
+</div>
+</div>
+</div>
+<div class="section" id="Evolving-the-grid">
+<h2>Evolving the grid<a class="headerlink" href="#Evolving-the-grid" title="Permalink to this headline">¶</a></h2>
+<p>Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: <code class="docutils literal notranslate"><span class="pre">population.evolve()</span></code></p>
+<p>This will start up the processing of all the systems. We can control how many cores are used by settings <code class="docutils literal notranslate"><span class="pre">amt_cores</span></code>. By setting the <code class="docutils literal notranslate"><span class="pre">verbosity</span></code> of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.</p>
+<p>There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: <a class="reference external" href="https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html">grid options docs</a>, and try</p>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[8]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># set number of threads</span>
+<span class="n">population</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="c1"># verbose output is not required</span>
+    <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+    <span class="c1"># set number of threads (i.e. number of CPU cores we use)</span>
+    <span class="n">amt_cores</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
+    <span class="p">)</span>
+
+<span class="c1"># Evolve the population - this is the slow, number-crunching step</span>
+<span class="n">analytics</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>
+
+<span class="c1"># Show the results (debugging)</span>
+<span class="c1"># print (population.grid_results)</span>
+</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>
+Generating grid code
+Constructing/adding: M_1
+Grid has handled 40 stars
+with a total probability of 1.0000000000000004
+Total starcount for this run will be: 40
+Generating grid code
+Constructing/adding: M_1
+Population-08f8230453084e4ca6a2391d45ce658b finished! The total probability was: 1.0000000000000002. It took a total of 1.5262682437896729s to run 40 systems on 2 cores
+There were no errors found in this run.
+OrderedDict([(&#39;luminosity distribution&#39;, OrderedDict([(2.25, 0.025), (3.75, 0.05), (4.25, 0.05), (0.25, 0.025), (3.25, 0.025), (5.25, 0.2), (4.75, 0.1), (5.75, 0.39999999999999997), (6.25, 0.125)]))])
+</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>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[9]:
+</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">analytics</span><span class="p">)</span>
+</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>
+{&#39;population_name&#39;: &#39;08f8230453084e4ca6a2391d45ce658b&#39;, &#39;evolution_type&#39;: &#39;grid&#39;, &#39;failed_count&#39;: 0, &#39;failed_prob&#39;: 0, &#39;failed_systems_error_codes&#39;: [], &#39;errors_exceeded&#39;: False, &#39;errors_found&#39;: False, &#39;total_probability&#39;: 1.0000000000000002, &#39;total_count&#39;: 40, &#39;start_timestamp&#39;: 1631124829.303065, &#39;end_timestamp&#39;: 1631124830.8293333, &#39;total_mass_run&#39;: 2001.4, &#39;total_probability_weighted_mass_run&#39;: 50.035000000000004, &#39;zero_prob_stars_skipped&#39;: 0}
+</pre></div></div>
+</div>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[10]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># make a plot of the luminosity distribution using Seaborn and Pandas</span>
+<span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span>
+<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
+<span class="kn">from</span> <span class="nn">binarycpython.utils.functions</span> <span class="kn">import</span> <span class="n">pad_output_distribution</span>
+
+<span class="c1"># set the figure size (for a Jupyter notebook in a web browser)</span>
+<span class="n">sns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> <span class="n">rc</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;figure.figsize&#39;</span><span class="p">:(</span><span class="mi">20</span><span class="p">,</span><span class="mi">10</span><span class="p">)}</span> <span class="p">)</span>
+
+<span class="c1"># this saves a lot of typing!</span>
+<span class="n">ldist</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">]</span>
+
+<span class="c1"># pad the distribution with zeros where data is missing</span>
+<span class="n">pad_output_distribution</span><span class="p">(</span><span class="n">ldist</span><span class="p">,</span>
+                        <span class="n">binwidth</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">])</span>
+
+<span class="c1"># make pandas dataframe from our sorted dictionary of data</span>
+<span class="n">plot_data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="o">.</span><span class="n">from_dict</span><span class="p">({</span><span class="s1">&#39;ZAMS luminosity distribution&#39;</span> <span class="p">:</span> <span class="n">ldist</span><span class="p">})</span>
+
+<span class="c1"># make the plot</span>
+<span class="n">p</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">lineplot</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">plot_data</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s2">&quot;$\log_</span><span class="si">{10}</span><span class="s2">$ ($L_\mathrm</span><span class="si">{ZAMS}</span><span class="s2">$ / L$_{☉}$)&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s2">&quot;Number of stars&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">yscale</span><span class="o">=</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[10]:
+</pre></div>
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+[None]
+</pre></div></div>
+</div>
+<div class="nboutput nblast docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<img alt="_images/notebook_luminosity_function_single_20_1.png" src="_images/notebook_luminosity_function_single_20_1.png" />
+</div>
+</div>
+<p>Does this look like a reasonable stellar luminosity function to you? The implication is that the most likely stellar luminosity is 105.8 L☉! Clearly, this is not very realistic… let’s see what went wrong.</p>
+</div>
+<div class="section" id="ZAMS-Luminosity-distribution-with-the-initial-mass-function">
+<h2>ZAMS Luminosity distribution with the initial mass function<a class="headerlink" href="#ZAMS-Luminosity-distribution-with-the-initial-mass-function" title="Permalink to this headline">¶</a></h2>
+<p>In the previous example, all the stars in our grid had an equal weighting. This is very unlikely to be true in reality: indeed, we know that low mass stars are far more likely than high mass stars. So we now include an initial mass function as a three-part power law based on Kroupa (2001). Kroupa’s distribution is a three-part power law: we have a function that does this for us (it’s very common to use power laws in astrophysics).</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[11]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Update the probability distribution to use the three-part power law IMF</span>
+<span class="n">population</span><span class="o">.</span><span class="n">update_grid_variable</span><span class="p">(</span>
+    <span class="n">name</span><span class="o">=</span><span class="s2">&quot;M_1&quot;</span><span class="p">,</span>
+    <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)&quot;</span><span class="p">,</span>
+<span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[12]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Clean and re-evolve the population</span>
+<span class="n">population</span><span class="o">.</span><span class="n">clean</span><span class="p">()</span>
+<span class="n">analytics</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>
+
+<span class="c1"># Show the results (debugging)</span>
+<span class="c1"># print (population.grid_results)</span>
+</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>
+Generating grid code
+Constructing/adding: M_1
+Grid has handled 40 stars
+with a total probability of 0.2182216189410787
+Total starcount for this run will be: 40
+Generating grid code
+Constructing/adding: M_1
+Population-92de7c9221c54206ab4dd10e58e09a34 finished! The total probability was: 0.21822161894107872. It took a total of 1.5900418758392334s to run 40 systems on 2 cores
+There were no errors found in this run.
+OrderedDict([(&#39;luminosity distribution&#39;, OrderedDict([(2.25, 0.0164166), (3.25, 0.00515685), (0.25, 0.189097), (3.75, 0.0037453900000000004), (4.25, 0.0014346559999999999), (5.25, 0.0007493004), (4.75, 0.001171479), (5.75, 0.00039801020000000003), (6.25, 5.2369339999999996e-05)]))])
+</pre></div></div>
+</div>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[13]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># plot luminosity distribution</span>
+<span class="n">ldist</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">]</span>
+
+<span class="c1"># pad the distribution with zeros where data is missing</span>
+<span class="n">pad_output_distribution</span><span class="p">(</span><span class="n">ldist</span><span class="p">,</span>
+                        <span class="n">binwidth</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">])</span>
+
+<span class="c1"># make pandas dataframe from our sorted dictionary of data</span>
+<span class="n">plot_data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="o">.</span><span class="n">from_dict</span><span class="p">({</span><span class="s1">&#39;ZAMS luminosity distribution&#39;</span> <span class="p">:</span> <span class="n">ldist</span><span class="p">})</span>
+
+<span class="c1"># make the plot</span>
+<span class="n">p</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">lineplot</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">plot_data</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s2">&quot;$\log_</span><span class="si">{10}</span><span class="s2">$ ($L_\mathrm</span><span class="si">{ZAMS}</span><span class="s2">$ / L$_{☉}$)&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s2">&quot;Number of stars&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">yscale</span><span class="o">=</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<div class="nboutput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[13]:
+</pre></div>
+</div>
+<div class="output_area docutils container">
+<div class="highlight"><pre>
+[None]
+</pre></div></div>
+</div>
+<div class="nboutput nblast docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<img alt="_images/notebook_luminosity_function_single_26_1.png" src="_images/notebook_luminosity_function_single_26_1.png" />
+</div>
+</div>
+<p>This distribution is peaked at low luminosity, as one expects from observations, but the resolution is clearly not great because it’s not smooth - it’s spiky!</p>
+<p>If you noticed above, the total probability of the grid was about 0.2. Given that the total probability of a probability distribution function should be 1.0, this shows that our sampling is (very) poor.</p>
+<p>We could simply increase the resolution to compensate, but this is very CPU intensive and a complete waste of time and resources. Instead, let’s try sampling the masses of the stars in a smarter way.</p>
+</div>
+</div>
+<div class="section" id="A-better-sampled-grid">
+<h1>A better-sampled grid<a class="headerlink" href="#A-better-sampled-grid" title="Permalink to this headline">¶</a></h1>
+<p>The IMF has many more low-mass stars than high-mass stars. So, instead of sampling M1 linearly, we can sample it in log space.</p>
+<p>To do this we first rename the mass grid variable so that it is clear we are working in (natural) logarithmic phase space.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[14]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Rename the old variable (M_1) because we want it to be called lnM_1 now</span>
+<span class="n">population</span><span class="o">.</span><span class="n">rename_grid_variable</span><span class="p">(</span><span class="s2">&quot;M_1&quot;</span><span class="p">,</span><span class="s2">&quot;lnM_1&quot;</span><span class="p">)</span>
+</pre></div>
+</div>
+</div>
+<p>Next, we change the spacing function so that it works in the log space. We also adapt the probability calculation so that it calculates dprob/dlnM = M * dprob/dM. Finally, we set the precode to compute M_1 because binary_c requires the actual mass, not the logarithm of the mass.</p>
+<div class="nbinput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[15]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># update the sampling, note that the IMF is dprob/dM1, and the phase</span>
+<span class="c1"># space is now sampled in lnM1, so we multiply by M_1 to</span>
+<span class="c1"># because  M * dprob/dM = dprob/dlnM</span>
+<span class="n">population</span><span class="o">.</span><span class="n">update_grid_variable</span><span class="p">(</span>
+    <span class="n">name</span><span class="o">=</span><span class="s2">&quot;lnM_1&quot;</span><span class="p">,</span>
+    <span class="n">spacingfunc</span><span class="o">=</span><span class="s2">&quot;const(math.log(</span><span class="si">{min}</span><span class="s2">), math.log(</span><span class="si">{max}</span><span class="s2">), </span><span class="si">{res}</span><span class="s2">)&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">min</span> <span class="o">=</span> <span class="n">massrange</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="nb">max</span> <span class="o">=</span> <span class="n">massrange</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">res</span> <span class="o">=</span> <span class="n">resolution</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]),</span>
+    <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1&quot;</span><span class="p">,</span>
+    <span class="n">dphasevol</span><span class="o">=</span><span class="s2">&quot;dlnM_1&quot;</span><span class="p">,</span>
+    <span class="n">parameter_name</span><span class="o">=</span><span class="s2">&quot;M_1&quot;</span><span class="p">,</span>
+    <span class="n">precode</span><span class="o">=</span><span class="s2">&quot;M_1=math.exp(lnM_1)&quot;</span><span class="p">,</span>
+<span class="p">)</span>
+<span class="c1"># print(population.grid_options[&quot;_grid_variables&quot;]) # debugging</span>
+</pre></div>
+</div>
+</div>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[16]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># Clean and re-evolve the population</span>
+<span class="n">population</span><span class="o">.</span><span class="n">clean</span><span class="p">()</span>
+<span class="n">analytics</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>
+
+<span class="c1"># Show the results (debugging)</span>
+<span class="c1"># print (population.grid_results)</span>
+</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>
+Generating grid code
+Constructing/adding: lnM_1
+Grid has handled 40 stars
+with a total probability of 0.9956307907476224
+Total starcount for this run will be: 40
+Generating grid code
+Constructing/adding: lnM_1
+Population-83f80d829dbd418aa2bc745c99b71991 finished! The total probability was: 0.9956307907476224. It took a total of 0.9961590766906738s to run 40 systems on 2 cores
+There were no errors found in this run.
+OrderedDict([(&#39;luminosity distribution&#39;, OrderedDict([(0.25, 0.0212294), (2.75, 0.00321118), (-0.25, 0.0268827), (1.25, 0.0104553), (3.75, 0.00283037), (6.25, 7.34708e-05), (-0.75, 0.0771478), (0.75, 0.030004499999999996), (2.25, 0.00921541), (3.25, 0.0045385), (1.75, 0.014776889999999999), (4.25, 0.002380189), (4.75, 0.000869303), (5.25, 0.0007310379999999999), (5.75, 0.00036002859999999996), (-2.75, 0.1961345), (-1.75, 0.2181597), (-3.25, 0.0), (-2.25, 0.2568974), (-1.25, 0.11973310000000001)]))])
+</pre></div></div>
+</div>
+<p>You should see that the total probability is very close to 1.0, as you would expect for a well-sampled grid. The total will never be exactly 1.0, but that is because we are running a simulation, not a perfect copy of reality.</p>
+<div class="nbinput docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[17]:
+</pre></div>
+</div>
+<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
+<span></span><span class="c1"># plot luminosity distribution</span>
+<span class="n">ldist</span> <span class="o">=</span> <span class="n">population</span><span class="o">.</span><span class="n">grid_results</span><span class="p">[</span><span class="s1">&#39;luminosity distribution&#39;</span><span class="p">]</span>
+
+<span class="c1"># pad the distribution with zeros where data is missing</span>
+<span class="n">pad_output_distribution</span><span class="p">(</span><span class="n">ldist</span><span class="p">,</span>
+                        <span class="n">binwidth</span><span class="p">[</span><span class="s1">&#39;luminosity&#39;</span><span class="p">])</span>
+
+<span class="c1"># make pandas dataframe from our sorted dictionary of data</span>
+<span class="n">plot_data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="o">.</span><span class="n">from_dict</span><span class="p">({</span><span class="s1">&#39;ZAMS luminosity distribution&#39;</span> <span class="p">:</span> <span class="n">ldist</span><span class="p">})</span>
+
+<span class="c1"># make the plot</span>
+<span class="n">p</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">lineplot</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">plot_data</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s2">&quot;$\log_</span><span class="si">{10}</span><span class="s2">$ ($L_\mathrm</span><span class="si">{ZAMS}</span><span class="s2">$ / L$_{☉}$)&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s2">&quot;Number of stars&quot;</span><span class="p">)</span>
+<span class="n">p</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">yscale</span><span class="o">=</span><span class="s2">&quot;log&quot;</span><span class="p">)</span>
+<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+</pre></div>
+</div>
+</div>
+<div class="nboutput nblast docutils container">
+<div class="prompt empty docutils container">
+</div>
+<div class="output_area docutils container">
+<img alt="_images/notebook_luminosity_function_single_34_0.png" src="_images/notebook_luminosity_function_single_34_0.png" />
+</div>
+</div>
+<p>Most stars are low mass red dwarfs, with small luminosities. Without the IMF weighting, our model population would have got this completely wrong!</p>
+<p>As you increase the resolution, you will see this curve becomes even smoother. The wiggles in the curve are (usually) sampling artefacts because the curve should monotonically brighten above about log(<em>L</em>/L☉)=-2.</p>
+<p>Remember you can play with the binwidth too. If you want a very accurate distribution you need a narrow binwidth, but then you’ll also need high resolution (lots of stars) so lots of CPU time, hence cost, CO2, etc.</p>
+</div>
+
+
+           </div>
+           
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="notebook_luminosity_function_binaries.html" class="btn btn-neutral float-right" title="Zero-age stellar luminosity function in binaries" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="notebook_api_functionality.html" class="btn btn-neutral float-left" title="Using the API functionality of binarycpython" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        
+        &copy; Copyright 2021, David Hendriks, Robert Izzard
+
+    </p>
+  </div>
+    
+    
+    
+    Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
+    
+    <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
+    
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+<br><br>
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+<br><br>
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
+
+
+
+</footer>
+
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+  
+
+  <script type="text/javascript">
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script>
+
+  
+  
+    
+   
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/build/html/notebook_luminosity_function_single.ipynb b/docs/build/html/notebook_luminosity_function_single.ipynb
new file mode 100644
index 000000000..fb971b34a
--- /dev/null
+++ b/docs/build/html/notebook_luminosity_function_single.ipynb
@@ -0,0 +1,716 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "# Example use case: Zero-age stellar luminosity function\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of single stars using binary_c. \n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "from binarycpython.utils.functions import temp_dir\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_luminosity\")\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_luminosity to grid_options\n",
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 0.5 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Mass\n",
+    "population = Population()\n",
+    "population.set(\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "population.add_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{res}\".format(res = resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const({min}, {max}, {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"{probtot}/({max} - {min})\".format(probtot = total_probability, min = massrange[0], max = massrange[1]), # dprob/dm1 : all stars are equally likely so this is 1.0 / (Mmax - Mmin)\n",
+    "    dphasevol=\"dM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "   /* Note that we use Printf - with a capital P! */\n",
+    "   Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR %30.12e %g %g %g %g\\\\n\",\n",
+    "          stardata->model.time, // 1\n",
+    "          stardata->common.zero_age.mass[0], // 2\n",
+    "          stardata->star[0].mass, // 3\n",
+    "          stardata->star[0].luminosity, // 4\n",
+    "          stardata->model.probability // 5\n",
+    "      );\n",
+    "};\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        # obtain the line of data in dictionary form \n",
+    "        linedata = datalinedict(line,parameters)\n",
+    "        \n",
+    "        # Check the header and act accordingly\n",
+    "        if linedata['header'] == \"ZERO_AGE_MAIN_SEQUENCE_STAR\":\n",
+    "            \n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 1.0000000000000004\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-08f8230453084e4ca6a2391d45ce658b finished! The total probability was: 1.0000000000000002. It took a total of 1.5262682437896729s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.025), (3.75, 0.05), (4.25, 0.05), (0.25, 0.025), (3.25, 0.025), (5.25, 0.2), (4.75, 0.1), (5.75, 0.39999999999999997), (6.25, 0.125)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=0,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=2,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '08f8230453084e4ca6a2391d45ce658b', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 1.0000000000000002, 'total_count': 40, 'start_timestamp': 1631124829.303065, 'end_timestamp': 1631124830.8293333, 'total_mass_run': 2001.4, 'total_probability_weighted_mass_run': 50.035000000000004, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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n9eyZcs0atQovf3225o8eXLr4WwXExkZqZqaGkmfnZOpW7duF9wmKipKI0aMaD030sGDB7V//34NHjy49a+ZM2e23v7NN99UZGSkpk6d2nrZmTNnlJeXpwceeEC/+93vzjuX0YwZM/Tzn/9co0ePPu9xAwMD9c1vflNvvfWWHn74YT3//PMXtG3cuLH1lVf/qq6uTsOGDTvvr8OHD8vhcLS+8uuFF17Q9u3bJem8Vyk1NTVp165d5/0ZAACAf+OcSwAAwKutXr269e/T09NbT3r9r6699lq99dZbrR/feeedmjJlyiXvd/jw4XrxxRd16623av369Ro+fPhFb/fggw/qhRde0KRJk/TDH/5QP/zhDy96u9OnT+uvf/3rBX0ffPCBvv/97+uGG26Q9Nkrmz5/tVO/fv00YsQI3XDDDdq4cWPr55w8ebL1XE+xsbHnHe73ueXLl1+0IykpSYcPH77odc3Nzfrb3/6mL33pS61fq3379p03Lr3zzju6+eabL3ooHgAA8E+MSwAAwC9s3bpVycnJio6O1ooVK3T48GFNmDCh9fqvf/3rOnjwoI4ePaq5c+fq9ttvV2xsrBYsWKAePXroq1/96kXvd/jw4UpOTta6des0ceLESz7+73//e1VVVemBBx5oveyb3/ymPvroI/3P//xP62VZWVl6//33Wz9etGjRBfeVm5urRx55RMHBwbIs65KD1pUKDAzUjTfeqF/96letr2BKT0/XnDlzJH32LnXvvPNO67vaAQAASJLNutj/6gIAAPAxr776qp599lnV19crKSlJjz76qCZPnmw6CwAAwOsxLgEAAAAAAKDdOKE3AAAAAAAA2o1xCQAAAAAAAO3GuAQAAAAAAIB2Y1wCAAAAAABAuzEuAQAAAAAAoN0YlwAAAAAAANBujEsAAAAAAABoN8YlAAAAAAAAtNv/D2ltZ660RybEAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "# this saves a lot of typing! \n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7d7b275e-be92-4d59-b44d-ef6f24023cc3",
+   "metadata": {},
+   "source": [
+    "Does this look like a reasonable stellar luminosity function to you? The implication is that the most likely stellar luminosity is 10<sup>5.8</sup> L<sub>☉</sub>! Clearly, this is not very realistic... let's see what went wrong."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "44586e42-b7cb-4a55-be0a-330b98b20de4",
+   "metadata": {},
+   "source": [
+    "## "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e32c3bbf-390f-45da-ad9c-cc3e7c9449dc",
+   "metadata": {},
+   "source": [
+    "## ZAMS Luminosity distribution with the initial mass function\n",
+    "\n",
+    "In the previous example, all the stars in our grid had an equal weighting. This is very unlikely to be true in reality: indeed, we know that low mass stars are far more likely than high mass stars.  So we now include an initial mass function as a three-part power law based on Kroupa (2001). Kroupa's distribution is a three-part power law: we have a function that does this for us (it's very common to use power laws in astrophysics).\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "1f37d2c0-1108-4ab9-a309-20b1e6b6e3fd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Update the probability distribution to use the three-part power law IMF \n",
+    "population.update_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)\",\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "6f4463e8-1935-45f2-8c5f-e7b215f8dc47",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.2182216189410787\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-92de7c9221c54206ab4dd10e58e09a34 finished! The total probability was: 0.21822161894107872. It took a total of 1.5900418758392334s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.0164166), (3.25, 0.00515685), (0.25, 0.189097), (3.75, 0.0037453900000000004), (4.25, 0.0014346559999999999), (5.25, 0.0007493004), (4.75, 0.001171479), (5.75, 0.00039801020000000003), (6.25, 5.2369339999999996e-05)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "cfe45a9e-1121-43b6-b6b6-4de6f8946a18",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABcnUlEQVR4nO3dd3SUZf7+8Wtm0gvpjQRIo0PovSNNiiDiBnXBsrqCsq6sK66CirroWlZ/lu/ay6oooIIIItIEhID03ksCBJIACYTQ0ub3R3TcCBjIk+SZSd6vczgn82QycyW5HTPX3M9nLHa73S4AAAAAAACgnKxmBwAAAAAAAIBro2ACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQ9zMDlCZcnLOqrjYbnaMaickxE8nT+aZHQMuivUDo1hDMIo1BKNYQzCKNQSjWEMwqrxryGq1KCjI97Kfq9YFU3GxnYKpkvBzhRGsHxjFGoJRrCEYxRqCUawhGMUaglEVvYY4RQ4AAAAAAACGUDABAAAAAADAkGp9ihwAAAAAAFWpqKhQOTnHVViYX2n3kZVlVXFxcaXdPqq/staQm5uHgoLCZLNdfW1EwQQAAAAAQAXJyTkuLy8f+fpGymKxVMp9uLlZVVhIwYTy+701ZLfbdfZsrnJyjis0NOqqb5NT5AAAAAAAqCCFhfny9a1VaeUSUNksFot8fWtd8y48CiYAAAAAACoQ5RJcXXnWMAUTAAAAAAAADKFgAgAAAACgGtq8eaPuuOPWUv+6d2+v77+f57jOV19NV8+eHXXy5IlSX9u1a1v97W/jSh07deqUevTooPfff1uSlJGRoQkTxuv220dq1Kg/6PHH/6GcnOxLcrz//tuOrzHivffe0ooVywzfzi++/vpLff31l5KkZ599ShkZx8p1O+PG/VkbNqzTrl079K9/PXPF6x09mq7nnnu6zCxdu7a9pvtfsWK5pk379JLbqWoM+QYAAAAAoBpq0aKVPvroM8fl6dOnav78b9Wz53WOY99+O0ddu/bQ3Lmzdfvtfyr19YcPH1Zubq5q1aolSVq6dLH8/Ws5Pv/ii89qwICB6tt3gCTpk08+1IsvPqdnn32xUr6fu+8eU6G3N2zYCMfHGzas05133mPo9ho1aqJ//KPJFT+fkXFM6elHysxyrXbv3lkht2MUBRMAAAAAANXc5s0b9fHHH+idd/4rT09PSdK+fXuVm3taEyZM1KRJEzRq1J2yWn890alr1+768celGjToBkklBVP37j0dn8/OPqGLFy84Lt900x+0c+eO383RtWtbrVixTpI0b94cbdy4XhMnTtaIEUPUu3dfpaSskM1m07333q9p0z7VkSOHdf/9D+q66/pqypTJatWqjVq1aqPHHvu74uMTtGfPbgUHh+iZZ/6lWrUCtHLlj3r33Tdltxerdu1oPfzwYwoODtEbb/w/rV37k2w2q7p27aG77vqzY1eVh4enTpw4rocf/qvuvnuMpk2bqrfe+kCS9N13c7V9+1b9/e+POr6H/Px8Pf/8M9q1a6ciI2vr9OlTkkpKqg8+eEdvvPGOpk37VN99962sVosaN26qCRMm6tVXX9LRo+n697+fV69e1+nNN19TUVGx4uMTFBVVW5L0pz/dK0l6/vkp2rlzuwICAvXoo08oMjJS48b9WXfd9We1bt1Wx44d1V/+cq9efPFVzZ49U5IUGRnl2IX1pz/de8WfxYgRQ3T99YO0enWKzp+/oEmTnlKjRo2vei1dCQUTAAAAAACVYOXWY1qxpXynXf0ei0Xq0jxKXZpf3VvI5+Rka/LkiXrkkccVHR3jOD5v3jfq3buPGjVqLJvNpp9+SlGnTl0dn+/du48+/vgDDRp0g06ePCG7XQoJCXV8/t57x+nppx/X+++/ozZt2qljx87q3btvub+v0NAwffrpDD377FP69NOP9Nprb2nr1s167bV/67rrSt/uvn179eijT6hBg0aaOPFhLVjwna67rp9efPFZvfnm+4qKqq3PPvtYL7/8gsaNe1CrV6fo009n6OLFi3r++X/q4sWLjtsaNeoOzZ79lV588VVFRkbp//7vNaWnH1F0dIy++26u7r239KmCX345XZI0deqXOnz4kG6//ZZSny8sLNSnn36kr7+eL6vVqpdffl7Hj2fpr3/9uz744B099NAj2rBhnQ4fPqQvv5wrPz+/S04hbNWqtR55ZKJmzvxCr776kp577qXL/szi4uI1dOhwSdKgQTc4bicnJ/uyP4t//vN5SVJAQIDeffdjffnlNH3yyQeaMsX4rjNmMAEAAAAAUE0VFxdr8uRJ6tOnf6ndR4WFhVqwYL769OkvSerdu69jJ8wvmjVL0qFDacrLy9PSpYvVq1fvUp/v2LGzZs2ap0cemaTAwCD95z+vaeLEh8udtWPHzpKkiIhItWzZWm5uboqMjNKZM2cuuW5QULAaNGgkSYqPT1Rubq527Niuxo2bOnYD3XDDcK1fv1ahoWHy9PTU2LF3acaMz3TPPWMdu7h+y2Kx6PrrB+n77+cpIyND2dnZatq0WanrbNq0Xr16lRRederUVfPmSaU+7+bmpmbNknT33aP14YfvavjwmxUWFn7JfdWpU09+fn6XHPf09FS/ftdLkvr3v14bN67/3Z/b5VzpZ/GLX37Wv/zsKgI7mAAAAAAAqATXssvoWri5WVVYWHxV1/3ww3dVWFige++9v9TxlSt/1JkzuXrssZJCqLCwUDk52crKylR4eISkkrKlS5duWrFimZYt+0FPPfWcZs6cIUnKzT2tjz56Tw888JA6duysjh0764477tbQof2Vk5OjoKCgK2ay2+2yWCwqLCwsddzd3d3xsc1m+93vy8PD45LbtNuLLzlWVFQkNzc3vfPOR9q0aYNWrVqpMWPu1Ouvv3PF2x44cIgeeugv8vDw0IABAy9zDUup+7pc1uee+7e2b9+q1atT9NBDD+iJJy4d/n2lkstq/fX27PaSwkoq+X384rc/u9+60s/iFx4enqU+VxHYwQQAAAAAQDW0du1qzZnztZ566jlHSfGLefO+0T33jNWXX87Rl1/O0ddff6fmzVtozpyvS12vd+++mjnzC7m5uZcqjXx9/bRixXJ9991cx7H09CMKDg5xDAW/nMDAQB08uF92u10rViyvmG/0Z02aNNOOHVt17NhRSdI338xU69ZttGfPLo0b92e1aNFK48Y9qNjYeB06lFbqa202m6OAiYyMUlhYuL7++isNGDDokvtp27a9Fi78XsXFxcrIOKatW7eU+nxOTo5uu22E4uMTdffdY9SuXQft379XNptbqZLnSs6fP+d4t7xvv52ttm3bS5ICAkp+dpL0449LL5u9rJ9FZWIHEwAAAAAA1dAnn3ykoqIi/f3vD5Q63r17T23YsE6PPvpkqeMjR/5R//73v3THHXc7jjVt2lwnT57QDTcMK3Vdm82ml156Va+//oree+8teXl5KTQ0TM8///Lv7j4aM2acJkwYr+DgECUltXQMyK4IwcEhevjhiXrssb+roKBQkZGR+sc/nlBoaKiaNUvS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zY4DF/TFF184Hn+GDh2qNm3a6Omnn66Q23arkFtBtZeZmalXXnlFM2fOlIeHh0aOHKkOHTooMTHR7GhwIZs3b9akSZOUmppqdhS4oJSUFK1YsUKzZs2SxWLR3XffrYULF6pv375mR4OLWLNmjVavXq1vvvlGhYWFGjhwoHr06KH4+Hizo8GFrFq1SrNmzVLPnj3NjgIXZLfbdeDAAS1dulRubjwVw7U5fPiwnnzySX3xxRcKCQnR7bffrmXLlqlHjx5mR4MLufnmm3XzzTdLkvbu3av7779f48aNq5DbZgcTrkpKSoo6duyowMBA+fj4qH///po/f77ZseBiZsyYoSeffFLh4eFmR4ELCgsL0z/+8Q95eHjI3d1dCQkJOnr0qNmx4ELat2+vjz/+WG5ubjp58qSKiork4+Njdiy4kFOnTumVV17RmDFjzI4CF3XgwAFZLBbdc889uuGGG/Tpp5+aHQkuZOHChRo4cKAiIyPl7u6uV155RS1atDA7FlzY5MmTNX78eAUHB1fI7VGb46pkZWUpLCzMcTk8PFxbtmwxMRFc0ZQpU8yOABdWv359x8epqamaN2+epk2bZmIiuCJ3d3e99tpr+uCDDzRgwABFRESYHQku5IknntD48eN17Ngxs6PAReXm5qpTp06aPHmyLly4oNGjRysuLk5dunQxOxpcQFpamtzd3fWnP/1Jx48fV69evfTggw+aHQsuKiUlRRcuXND1119fYbfJDiZcFbvdfskxi8ViQhIANd3evXt111136ZFHHlFsbKzZceCCHnjgAa1atUrHjh3TjBkzzI4DF/HFF18oKipKnTp1MjsKXFirVq30wgsvyMfHR8HBwRoxYoSWLVtmdiy4iKKiIq1atUovvviiZsyYoa1bt2rWrFlmx4KLmjZtmu68884KvU0KJlyViIgInThxwnE5KyuL05wAVLn169frjjvu0EMPPaQbb7zR7DhwMfv379fOnTslSd7e3urXr592795tciq4innz5mnlypUaOnSoXnvtNS1ZskTPPvus2bHgYtatW6dVq1Y5LtvtdmYx4aqFhoaqU6dOCg4OlpeXl6677jrOKkG55Ofna+3aterdu3eF3i4FE65K586dtWrVKmVnZ+v8+fNasGCBunfvbnYsADXIsWPHdP/99+ull17SoEGDzI4DF3TkyBFNmjRJ+fn5ys/P1+LFi9WmTRuzY8FFfPjhh5o7d65mz56tBx54QL1799Zjjz1mdiy4mDNnzuiFF17QxYsXlZeXp1mzZvFmFbhqvXr10ooVK5Sbm6uioiL9+OOPatq0qdmx4IJ2796t2NjYCp9FSV2OqxIREaHx48dr9OjRKigo0IgRI5SUlGR2LAA1yPvvv6+LFy/qX//6l+PYyJEjdcstt5iYCq6kR48e2rx5s4YNGyabzaZ+/fpRVgKoUr169XI8DhUXF+vWW29Vq1atzI4FF9GiRQvdfffduvXWW1VQUKAuXbropptuMjsWXNDhw4cVGRlZ4bdrsV9uuA4AAAAAAABwlThFDgAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQyiYAAAAAAAAYAgFEwAAAAAAAAyhYAIAAAAAAIAhFEwAAMDl9e7dWykpKWbHAAAAqLEomAAAACpYdna2GjZsqMzMTLOjAAAAVAkKJgAAgArw0ksv6ccff5Qk7dq1S8HBwYqIiDA5VYkHHnhAe/bscVw+cuSIWrVqVa7bOnv2rO6++25duHChouIBAIBqgIIJAABUK/v379eoUaPUtm1bDRo0SIsXL3Z8bvv27Ro2bJhatWqlBx54QA8++KBeeeUVw/e5adMm7du3T926dZMk7dy5U40aNTJ8uxUhPz9faWlpatCgQYXcnq+vrwYPHqxXX321Qm4PAABUDxRMAACg2igoKNCYMWPUpUsXpaSkaNKkSfr73/+uAwcOKD8/X+PGjdONN96oNWvWaPDgwVq0aFGF3O/rr7+u5ORkx2VnKphSUlLUqVOnCr3N66+/XnPmzNGJEycq9HYBAIDromACAADVxubNm3Xu3Dn9+c9/loeHhzp16qRevXrp22+/1ebNm1VYWKjRo0fL3d1d/fr1U/PmzR1fe+bMGY0YMUKtWrUqdTrZiy++qFtvvVUPP/ywCgoKLrnP3NxcrV+/Xl26dHEc27Vrlxo3bnzJdadPn65Ro0Y5/iUlJWnLli2Oz48cOVJvvPGGpJLT2Bo2bKjVq1dLKtmJ1K5dO3366aeSpLy8PI0ZM0ajRo1ScnKyli1bdtmfyeLFi9WnT59r+TGWydPTU61bt77ifQIAgJrHzewAAAAAFSUrK0uRkZGyWn99Da127drKzMxUVlaWIiIiZLFYHJ+LiopyfOzl5aV33nlHL7zwguPYrl27lJmZqc8++0xvvvmmvv/+ew0ePLjUfaalpSksLEweHh6SpIsXL+rgwYNq0qTJJfmSk5MdO52WLFmiWbNmKSkpSZJ07NgxRUREaM2aNY7rN2vWTAsXLlTHjh21atUq1atXz/G52bNnq1u3brrttttkt9t15syZS+6vuLhYmzZt0uTJk6/q5/eLzMxMffzxxyosLJTdblfjxo114403lrpO3bp1dfDgwWu6XQAAUH2xgwkAAFQb4eHhysjIUHFxsePYL8VNWFiYMjMzZbfbS33uF+7u7goODi51exs2bFDXrl0lSd26ddOGDRsuuU+r1aqioiLH5T179sjNzU1xcXFXzJmdna1XX31VTz31lOPY999/ryFDhig+Pl779++XJEVHR+vo0aOy2+1auHCh+vXr57i+p6enNm3apBMnTshisahWrVqX3M/mzZvVrFkz2Wy2K2b5reLiYn3zzTcaP368Hn30UT322GNKSEjQ0qVLS12vqKjomm4XAABUbxRMAACg2khKSpKXl5fee+89FRQU6KefftKSJUs0cOBAtWzZUjabTZ9++qkKCwu1aNEibd269XdvLzc3V35+fpIkf39/nT59+pLr1KlTR9nZ2bp48aKkkl1PCQkJKiws1MWLF3Xx4kXl5+eX+prJkyfrr3/9a6lCa8WKFerevbsGDx6s+fPnO463atVKa9euVXZ2tkJDQx3Hhw4dqri4OP3pT39ScnKyDhw4cEm2RYsW6brrrruKn9yvtmzZomHDhsnNzU3fffed0tPTlZSUpPPnz5e63pEjR363RAMAADULBRMAAKg2PDw89NZbb2n58uXq2LGjnnrqKb3wwgtKSEiQh4eHXn/9dX355Zdq166dvvnmG/Xs2dNxatvl+Pv7Ky8vT1LJjKaAgIBLrlOrVi21adPGMStp586d2r59u5KSkhz/Bg4c6Lj+119/LX9/f/Xu3dtxLCMjQ3v37tXYsWP15ptvlppt1K9fPz333HNq3759qft1d3fXfffdp9mzZ+uBBx7Q66+/fkm2lJQUxw6s3zp37pxatWpV6t/u3btls9kcO8DeeustrVu3TpJK7VbKz8/Xxo0bS30PAACgZmMGEwAAcHlLlixxfFy/fn3HIOzfat68uWbPnu24fPPNN6tXr15XvN3WrVvrww8/1LBhw7RixQq1bt36ste7//779dZbb6lHjx564okn9MQTT1z2eseOHdNHH310Sb758+fr0Ucf1YABAySV7HD6ZddTbGys2rRpowEDBiglJcXxNenp6Y7ZTyEhIaVO/fvFrFmzLpsjJiZGu3fvvuznCgoK9PHHH+v22293/Ky2bt1aqmCaO3euhgwZctnT8gAAQM1EwQQAAGqMNWvWKC4uTkFBQZozZ452796tbt26OT5/zz33aOfOnTp48KCSk5M1fPhwhYSE6NZbb1VUVJTuuuuuy95u69atFRcXp+XLl6t79+5XvP+3335bubm5Gjt2rOPYfffdpwULFuj//u//HMc6dOig7777znF50qRJl9zWnj17NH78eHl6esput1+x1LpW7u7uuv766/Xvf//bsZOpfv36GjFihKSSd6+bO3eu493uAAAAJMliv9zLXQAAANXQ9OnT9eqrr+r8+fOKiYnRQw89pJ49e5odCwAAwOVRMAEAAAAAAMAQhnwDAAAAAADAEAomAAAAAAAAGELBBAAAAAAAAEMomAAAAAAAAGAIBRMAAAAAAAAMoWACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIb8fxzqA03KlXkqAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0546f2f3-4732-4841-8ef3-565fbf6b9961",
+   "metadata": {},
+   "source": [
+    "This distribution is peaked at low luminosity, as one expects from observations, but the resolution is clearly not great because it's not smooth - it's spiky! \n",
+    "\n",
+    "If you noticed above, the total probability of the grid was about 0.2. Given that the total probability of a probability distribution function should be 1.0, this shows that our sampling is (very) poor. \n",
+    "\n",
+    "We could simply increase the resolution to compensate, but this is very CPU intensive and a complete waste of time and resources. Instead, let's try sampling the masses of the stars in a smarter way."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "673031c9-7d80-45d4-b209-301c127d3edf",
+   "metadata": {},
+   "source": [
+    "# A better-sampled grid\n",
+    "\n",
+    "The IMF has many more low-mass stars than high-mass stars. So, instead of sampling M1 linearly, we can sample it in log space. \n",
+    "\n",
+    "To do this we first rename the mass grid variable so that it is clear we are working in (natural) logarithmic phase space."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "5956f746-e3b9-4912-b75f-8eb0af66d3f6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Rename the old variable (M_1) because we want it to be called lnM_1 now\n",
+    "population.rename_grid_variable(\"M_1\",\"lnM_1\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "532f691c-c1f6-46cc-84f2-970ec1216e40",
+   "metadata": {},
+   "source": [
+    "Next, we change the spacing function so that it works in the log space. We also adapt the probability calculation so that it calculates dprob/dlnM = M * dprob/dM. Finally, we set the precode to compute M_1 because binary_c requires the actual mass, not the logarithm of the mass."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "108d470a-bb21-40b0-8387-2caa7ab0f923",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# update the sampling, note that the IMF is dprob/dM1, and the phase \n",
+    "# space is now sampled in lnM1, so we multiply by M_1 to \n",
+    "# because  M * dprob/dM = dprob/dlnM\n",
+    "population.update_grid_variable(\n",
+    "    name=\"lnM_1\",\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    dphasevol=\"dlnM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    precode=\"M_1=math.exp(lnM_1)\",\n",
+    ")\n",
+    "# print(population.grid_options[\"_grid_variables\"]) # debugging"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "fb8db646-f3d0-4ccd-81ba-7fde23f29c79",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.9956307907476224\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Population-83f80d829dbd418aa2bc745c99b71991 finished! The total probability was: 0.9956307907476224. It took a total of 0.9961590766906738s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(0.25, 0.0212294), (2.75, 0.00321118), (-0.25, 0.0268827), (1.25, 0.0104553), (3.75, 0.00283037), (6.25, 7.34708e-05), (-0.75, 0.0771478), (0.75, 0.030004499999999996), (2.25, 0.00921541), (3.25, 0.0045385), (1.75, 0.014776889999999999), (4.25, 0.002380189), (4.75, 0.000869303), (5.25, 0.0007310379999999999), (5.75, 0.00036002859999999996), (-2.75, 0.1961345), (-1.75, 0.2181597), (-3.25, 0.0), (-2.25, 0.2568974), (-1.25, 0.11973310000000001)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "182b1094-5057-4ccf-bac6-9b0e560ad4f6",
+   "metadata": {},
+   "source": [
+    "You should see that the total probability is very close to 1.0, as you would expect for a well-sampled grid. The total will never be exactly 1.0, but that is because we are running a simulation, not a perfect copy of reality."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "68ee1e56-21e5-48f4-b74c-50e48685ae94",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAB37ElEQVR4nOzdd3iV9f3/8dcZ2XtPstkhrLD3ElkyREGtA+vA0eHXqq1SRa221rb+2lpx1C3WVYaAKEtUlpAwE0YgJJCQkAGEEFbW+f2BpqUKAZJz7pOc5+O6uC7PneTcrxy8Q/LK5/O+TTabzSYAAAAAAADgCpmNDgAAAAAAAICWjYIJAAAAAAAATULBBAAAAAAAgCahYAIAAAAAAECTUDABAAAAAACgSSiYAAAAAAAA0CQUTAAAAAAAAGgSq9EB7OnYsZOqr7fZ9RwhIb46cqTKrucAnBnXAMB1AHANwNVxDcDVcQ24DrPZpKAgnx99W6sumOrrbXYvmL4/D+DKuAYArgOAawCujmsAro5rAGyRAwAAAAAAQJNQMAEAAAAAAKBJWvUWOQAAAAAAHKmurlbHjpWptrba6CgOU1pqVn19vdEx0IysVncFBYXJYrn02oiCCQAAAACAZnLsWJk8Pb3l4xMpk8lkdByHsFrNqq2lYGotbDabTp6s1LFjZQoNjbrkj2OLHAAAAAAAzaS2tlo+Pv4uUy6h9TGZTPLx8b/sVXgUTAAAAAAANCPKJbR0V/L/MAUTAAAAAAAAmoSCCQAAAACAVmjbti267bYbz/szeHBvffHFZw3v8+9/f6ihQ/vqyJHy8z524MB0/d//3X/esYqKCg0Z0kevv/6KJOnw4cN6+OEHdNNN1+vmm6/Xb3/7ax07dvQHOV5//ZWGj2mKf/7zZa1Z81WTn+d7CxZ8ogULPpEkPfvskzp8uPiKnuf+++/S5s0Z2r17p/7wh6cv+H5FRYf0+98/1WiWgQPTL+v8a9Z8rQ8+eO8Hz+NoDPkGAAAAAKAV6tq1u9566/2Gxx9+OFeff75EQ4eOaDi2ZMkiDRw4RIsXL9Stt/70vI8vKChQZWWl/P39JUmrV6+Un59/w9uff/5ZXX31WI0ZM1a1tfV699039fzzv9ezzz5vl8/njjtmNuvzTZo0teG/N2/O0IwZdzbp+Tp06KRf/7rTBd9++HCxDh0qbDTL5dqzZ1ezPE9TUTABAAAAANDKbdu2Re+884ZeffVteXh4SJL27durysrjevjhxzRr1sO6+eYZMpv/s9Fp4MDB+uab1Ro37hpJ5wqmwYOHNrz96NFynT17puHxtdder127dl40x8CB6VqzJkOS9Nlni7RlS6Yee2y2pk6doOHDR2ndujWyWCy6++779MEH76mwsED33fdLjRgxSs88M1vdu/dU9+499eijv1JSUrJycvYoODhETz/9B/n7B2jt2m/02mtzZLPVKzo6Rg899KiCg0P04ov/T5s2fSuLxayBA4fo9tvvalhV5e7uofLyMj300C90xx0z9cEHc/Xyy29IkpYuXazs7B361a9+0/A5VFdX67nnntbu3bsUGRmt48crJJ0rqd5441W9+OKr+uCD97R06RKZzSZ17NhZDz/8mP761z+pqOiQ/vzn5zRs2AjNmfM31dXVKykpWVFR0ZKkn/70bknSc889o127shUQEKjf/OZxRUZG6v7779Ltt9+lHj3SVVxcpJ/97G49//xftXDhPElSZGRUwyqsn/707gu+FlOnTtDo0WO1ceN6nT59RrNmPakOHTpe8v9LF0LBBAAAAACAHazdUaw1269s21VjBqZFaUCXS7uF/LFjRzV79mN65JHfKiYmtuH4Z599quHDR6pDh46yWCz69tt16tdvYMPbhw8fqXfeeUPjxl2jI0fKZbNJISGhDW+/++779dRTv9Xrr7+qnj17qW/f/ho+fNQVf06hoWF6772P9OyzT+q9997S3/72snbs2Ka//e3PGjHi/Ofdt2+vfvObx9WuXQc99thDWrZsqUaMuErPP/+s5sx5XVFR0Xr//Xf0l7/8Ufff/0tt2LBO7733kc6ePavnnvudzp492/BcN998mxYu/Leef/6vioyM0j/+8TcdOlSomJhYLV26WHffff5WwU8++VCSNHfuJyooOKhbb73hvLfX1tbqvffe0oIFn8tsNusvf3lOZWWl+sUvfqU33nhVDz74iDZvzlBBwUF98sli+fr6/mALYffuPfTII49p3ryP9de//km///2ffvQ1S0xM0sSJUyRJ48Zd0/A8x44d/dHX4ne/e06SFBAQoNdee0effPKB3n33DT3zTNNXnTGDCQAAAACAVqq+vl6zZ8/SyJGjz1t9VFtbq2XLPtfIkaMlScOHj2pYCfO91NQ0HTx4QFVVVVq9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hQsXasKECfzDApdQUlKiF154Qe+//74WLlyoDz/8UPv27TM6FuAw69at05o1azR//nwtWLBA2dnZWr58udGxAIdbv3695s+fb3QMwBAFBQV64okn9NJLL2nRokXauXOnvvrqK6NjwSAUTM3gD3/4g2677TajYwCGqK6u1i9+8Qt16NBBktS+fXsVFxcbnAqwv3Xr1qlv374KDAyUt7e3Ro8erc8//9zoWIDDhIWF6de//rXc3d3l5uam5ORkFRUVGR0LcKiKigq98MILmjlzptFRAEMsX75cY8eOVWRkpNzc3PTCCy+oa9euRseCQSiYmmjlypU6c+aMrr76aqOjAIZwd3fXxIkTJUn19fV68cUXNXLkSINTAfZXWlqqsLCwhsfh4eEqKSkxMBHgWG3btlW3bt0kSfn5+frss880ZMgQY0MBDvb444/rgQcekL+/v9FRAEMcOHBAdXV1+ulPf6prrrlG77//vgICAoyOBYNYjQ7QUixdulS///3vzzuWlJSkqqoqvfXWW8aEAhzsQtfBW2+9perqav36179WbW2t7r77boMSAo5js9l+cMxkMhmQBDDW3r17dffdd+uRRx5RQkKC0XEAh/n4448VFRWlfv36ad68eUbHAQxRV1enjIwMvfvuu/L29ta9996r+fPna8qUKUZHgwEomC7RmDFjNGbMmPOOffzxx3rllVd00003NRybOHGi5s6dK19fX0dHBOzux64DSTp58qTuueceBQYGas6cOXJzczMgHeBYERERysjIaHhcWlqq8PBwAxMBjpeZmamf//znevTRRzVu3Dij4wAO9dlnn6msrEwTJ07U8ePHderUKT377LN69NFHjY4GOExoaKj69eun4OBgSdKIESO0fft2CiYXZbL92K9gcUXat2+vPXv2GB0DcLh7771XISEheuqpp1jBAZdRUlKiG264QZ988om8vLw0ffp0Pf3000pLSzM6GuAQxcXFmjx5sl544QX169fP6DiAoebNm6eNGzfqD3/4g9FRAIfatm2bHnnkEX300Ufy8fHRfffdpxEjRui6664zOhoMwAomAE2yc+dOrVy5UikpKZo0aZKkc7NoXnvtNWODAXYWERGhBx54QLfccotqamo0depUyiW4lNdff11nz5497wfq6dOn64YbbjAwFQDAkbp27ao77rhDN954o2pqajRgwABde+21RseCQVjBBAAAAAAAgCbhLnIAAAAAAABoEgomAAAAAAAANAkFEwAAAAAAAJqEggkAAAAAAABNQsEEAAAAAACAJqFgAgAAAAAAQJNQMAEAAAAAAKBJKJgAAECLN3z4cK1bt87oGAAAAC6LggkAAKCZHT16VO3bt1dJSYnRUQAAAByCggkAAKAZ/OlPf9I333wjSdq9e7eCg4MVERFhcKpzfv7znysnJ6fhcWFhobp3735Fz3Xy5EndcccdOnPmTHPFAwAArQAFEwAAaFVyc3N18803Kz09XePGjdPKlSsb3padna1Jkyape/fu+vnPf65f/vKXeuGFF5p8zq1bt2rfvn0aNGiQJGnXrl3q0KFDk5+3OVRXV+vAgQNq165dszyfj4+Pxo8fr7/+9a/N8nwAAKB1oGACAACtRk1NjWbOnKkBAwZo3bp1mjVrln71q19p//79qq6u1v3336/Jkydr48aNGj9+vFasWNEs5/373/+uadOmNTx2poJp3bp16tevX7M+55gxY7Ro0SKVl5c36/MCAICWi4IJAAC0Gtu2bdOpU6d01113yd3dXf369dOwYcO0ZMkSbdu2TbW1tbrlllvk5uamq666Sl26dGn42BMnTmjq1Knq3r37edvJnn/+ed1444166KGHVFNT84NzVlZWKjMzUwMGDGg4tnv3bnXs2PEH7/vhhx/q5ptvbviTlpam7du3N7x9+vTpevHFFyWd28bWvn17bdiwQdK5lUi9evXSe++9J0mqqqrSzJkzdfPNN2vatGn66quvfvQ1WblypUaOHHk5L2OjPDw81KNHjwueEwAAuB6r0QEAAACaS2lpqSIjI2U2/+d3aNHR0SopKVFpaakiIiJkMpka3hYVFdXw356ennr11Vf1xz/+seHY7t27VVJSovfff19z5szRF198ofHjx593zgMHDigsLEzu7u6SpLNnzyovL0+dOnX6Qb5p06Y1rHRatWqV5s+fr7S0NElScXGxIiIitHHjxob3T01N1fLly9W3b1+tX79e8fHxDW9buHChBg0apJtuukk2m00nTpz4wfnq6+u1detWzZ49+5Jev++VlJTonXfeUW1trWw2mzp27KjJkyef9z5xcXHKy8u7rOcFAACtFyuYAABAqxEeHq7Dhw+rvr6+4dj3xU1YWJhKSkpks9nOe9v33NzcFBwcfN7zbd68WQMHDpQkDRo0SJs3b/7BOc1ms+rq6hoe5+TkyGq1KjEx8YI5jx49qr/+9a968sknG4598cUXmjBhgpKSkpSbmytJiomJUVFRkWw2m5YvX67/3979hTT1xnEc/8icduEWsm4EhcbYXY02Mb1xLgMxMRpSDLoRjC5cUIhXioy6EgQvRKQJQRHeCEFtDiYxhgwZ9Af6IyIrqJtGXYSQRGN/yt+FdH6szfjFLn6k7xcc2HnO9zznOefys+c8p6+vz6hvbGzUy5cv9fnzZ9XV1clqtVZc59WrVzpx4oRMJtO+Y/nVjx8/FI1GNTY2pomJCU1OTsrhcGhtba2s7vv373/ULwAAONgImAAAwIHhcrl05MgR3blzR8ViUU+ePFEymdTAwIBOnTolk8mkpaUllUolJRIJbWxs/La/nZ0dNTU1SZIsFou+fPlSUdPW1qbt7W3l83lJe7OeHA6HSqWS8vm88vm8CoVC2Tk3b97UjRs3ygKt9fV1eb1eDQ4OanV11Wh3u9169uyZtre3dezYMaP9woULstvtunLligKBgN69e1cxtkQiobNnz/6HJ/ev169fy+/3q76+XvF4XNlsVi6XS7lcrqzuw4cPvw3RAADA4ULABAAADoyGhgaFw2GlUil1dXXp1q1bmpmZkcPhUENDg+bn5/XgwQN1dHQoGo3K5/MZr7ZVY7FY9PXrV0l7azQdPXq0osZqtaq9vd1YK2lra0ubm5tyuVzGNjAwYNQ/evRIFotFvb29RtunT5/09u1bjY6O6vbt22VrG/X19Wl6elqnT58uu67ZbFYwGFQkEtH169c1Pz9fMbZ0Om3MwPrVt2/f5Ha7y7ZMJiOTyWTMAAuHw3r+/Lkklc1WKhQKevHiRdk9AACAw401mAAAwF8vmUwav51Op7EQ9q9OnjypSCRi7F+6dElnzpzZt1+Px6O7d+/K7/drfX1dHo+nat21a9cUDofV09OjUCikUChUte7jx4+6d+9exfhWV1c1MTGh/v5+SXsznH7Oejp+/Lja29vV39+vdDptnJPNZo21n2w2W9mrfz89fPiw6jhaW1uVyWSqHisWi7p//76Gh4eNZ7WxsVEWMMViMZ0/f77qa3kAAOBwImACAACHxtOnT2W329Xc3KyVlRVlMhl1d3cbx69evaqtrS29f/9egUBAQ0NDstlsunz5slpaWjQyMlK1X4/HI7vdrlQqJa/Xu+/1FxcXtbOzo9HRUaMtGAzq8ePHWlhYMNo6OzsVj8eN/ampqYq+3rx5o7GxMTU2Nmp3d3ffUOtPmc1mnTt3TrOzs8ZMJqfTqYsXL0ra+3pdLBYzvnYHAAAgSXW71f7uAgAAOICWl5c1NzenXC6n1tZWjY+Py+fz/d/DAgAA+OsRMAEAAAAAAKAmLPINAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABqQsAEAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABq8g/wlbD9p3152QAAAABJRU5ErkJggg==\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "31fe91bb-177d-4e4e-90cf-298a3f8a8b61",
+   "metadata": {},
+   "source": [
+    "Most stars are low mass red dwarfs, with small luminosities. Without the IMF weighting, our model population would have got this completely wrong! \n",
+    "\n",
+    "As you increase the resolution, you will see this curve becomes even smoother. The wiggles in the curve are (usually) sampling artefacts because the curve should monotonically brighten above about log(*L*/L<sub>☉</sub>)=-2. \n",
+    " \n",
+    "Remember you can play with the binwidth too. If you want a very accurate distribution you need a narrow binwidth, but then you'll also need high resolution (lots of stars) so lots of CPU time, hence cost, CO<sub>2</sub>, etc."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/build/html/notebook_population.html b/docs/build/html/notebook_population.html
index 5336a7fdf..0b0937d50 100644
--- a/docs/build/html/notebook_population.html
+++ b/docs/build/html/notebook_population.html
@@ -103,6 +103,9 @@
 </li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_extra_features.html">Extra features and functionality of binarycpython</a></li>
 <li class="toctree-l2"><a class="reference internal" href="notebook_api_functionality.html">Using the API functionality of binarycpython</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html">Example use case: Zero-age stellar luminosity function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_single.html#A-better-sampled-grid">A better-sampled grid</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebook_luminosity_function_binaries.html">Zero-age stellar luminosity function in binaries</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -457,9 +460,12 @@ div.rendered_html tbody tr:hover {
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
 <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="n">TMP_DIR</span> <span class="o">=</span> <span class="n">temp_dir</span><span class="p">(</span><span class="s2">&quot;notebooks&quot;</span><span class="p">,</span> <span class="s2">&quot;notebook_population&quot;</span><span class="p">)</span>
+
 <span class="c1"># help(Population) # Uncomment to see the public functions of this object</span>
 </pre></div>
 </div>
@@ -497,11 +503,12 @@ you have set them.</p>
 
 
     <span class="c1"># grid_options</span>
-    <span class="n">amt_cores</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>  <span class="c1"># grid_options</span>
+    <span class="n">amt_cores</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
+    <span class="n">tmp_dir</span><span class="o">=</span><span class="n">TMP_DIR</span><span class="p">,</span>
 
     <span class="c1"># Custom options # TODO: need to be set in grid_options probably</span>
     <span class="n">data_dir</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="n">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span>
+        <span class="n">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span>
     <span class="p">),</span>  <span class="c1"># custom_options</span>
     <span class="n">base_filename</span><span class="o">=</span><span class="s2">&quot;example_pop.dat&quot;</span><span class="p">,</span>  <span class="c1"># custom_options</span>
 <span class="p">)</span>
@@ -523,7 +530,8 @@ adding: orbital_period=45000000080 to BSE_options
 adding: max_evolution_time=15000 to BSE_options
 adding: eccentricity=0.02 to BSE_options
 adding: amt_cores=2 to grid_options
-&lt;&lt;&lt;&lt; Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/example_python_population_result to custom_options &gt;&gt;&gt;&gt;
+adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_population to grid_options
+&lt;&lt;&lt;&lt; Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/notebooks/notebook_population/example_python_population_result to custom_options &gt;&gt;&gt;&gt;
 &lt;&lt;&lt;&lt; Warning: Key does not match previously known parameter:                     adding: base_filename=example_pop.dat to custom_options &gt;&gt;&gt;&gt;
 1
 example_pop.dat
@@ -548,7 +556,7 @@ include_binary_c_version_info=False - include_binary_c_help_all (all the help in
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-Writing settings to /tmp/binary_c_python/example_python_population_result/example_pop_settings.json
+Writing settings to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json
 </pre></div></div>
 </div>
 <div class="nboutput nblast docutils container">
@@ -557,7 +565,7 @@ Writing settings to /tmp/binary_c_python/example_python_population_result/exampl
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-&#39;/tmp/binary_c_python/example_python_population_result/example_pop_settings.json&#39;
+&#39;/tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json&#39;
 </pre></div></div>
 </div>
 </div>
@@ -584,7 +592,7 @@ Writing settings to /tmp/binary_c_python/example_python_population_result/exampl
 <div class="highlight"><pre>
 Help on method add_grid_variable in module binarycpython.utils.grid:
 
-add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str=&#39;edge&#39;, branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -&gt; None method of binarycpython.utils.grid.Population instance
+add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str=&#39;centred&#39;, branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -&gt; 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.
@@ -652,7 +660,7 @@ add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolutio
                 condition = &#39;self.grid_options[&#39;binary&#39;]==1&#39;
         gridtype:
             Method on how the value range is sampled. Can be either &#39;edge&#39; (steps starting at
-            the lower edge of the value range) or &#39;center&#39;
+            the lower edge of the value range) or &#39;centred&#39;
             (steps starting at lower edge + 0.5 * stepsize).
 
 </pre></div></div>
@@ -743,7 +751,7 @@ Added grid variable: {
     &#34;dphasevol&#34;: &#34;dlnm1&#34;,
     &#34;parameter_name&#34;: &#34;M_1&#34;,
     &#34;condition&#34;: &#34;&#34;,
-    &#34;gridtype&#34;: &#34;edge&#34;,
+    &#34;gridtype&#34;: &#34;centred&#34;,
     &#34;branchpoint&#34;: 0,
     &#34;grid_variable_number&#34;: 0
 }
@@ -868,7 +876,7 @@ if(stardata-&gt;star[0].stellar_type &gt;= 13)
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-adding: parse_function=&lt;function parse_function at 0x7ff3bdf79620&gt; to grid_options
+adding: parse_function=&lt;function parse_function at 0x7f531bc3b6a8&gt; to grid_options
 </pre></div></div>
 </div>
 </div>
@@ -900,25 +908,25 @@ adding: verbosity=0 to grid_options
 Generating grid code
 Constructing/adding: lnm1
 Grid has handled 20 stars
-with a total probability of 0.05150046619238192
+with a total probability of 0.044402888438054094
 Total starcount for this run will be: 20
-EXAMPLE_COMPACT_OBJECT             2.867655467480e+01 1.33079 9.81391 0.00167028 13
 Generating grid code
 Constructing/adding: lnm1
-EXAMPLE_COMPACT_OBJECT             1.931266944719e+01 1.3933 12.3177 0.00124307 13
-EXAMPLE_COMPACT_OBJECT             4.439623364590e+01 1.38004 7.81906 0.00224431 13
-EXAMPLE_COMPACT_OBJECT             1.364277535630e+01 1.47961 15.4603 0.000925128 13
-EXAMPLE_COMPACT_OBJECT             1.017435498578e+01 1.59052 19.4046 0.000688507 13
-EXAMPLE_COMPACT_OBJECT             8.294870923827e+00 1.7197 24.3552 0.000512406 13
-EXAMPLE_COMPACT_OBJECT             6.802132608769e+00 1.84162 30.5689 0.000381347 13
-EXAMPLE_COMPACT_OBJECT             5.723570798020e+00 1.99471 38.3678 0.00028381 13
-EXAMPLE_COMPACT_OBJECT             4.933751523833e+00 2.15875 48.1564 0.000211219 13
-EXAMPLE_COMPACT_OBJECT             4.337250536639e+00 2.35209 60.4424 0.000157195 14
-EXAMPLE_COMPACT_OBJECT             3.862081089332e+00 2.56776 75.8628 0.000116989 14
-EXAMPLE_COMPACT_OBJECT             3.449960890183e+00 2.80457 95.2174 8.70668e-05 14
-EXAMPLE_COMPACT_OBJECT             3.172196856333e+00 3.05193 119.51 6.47976e-05 14
-EXAMPLE_COMPACT_OBJECT             3.069627290216e+00 3.27563 150 4.82242e-05 14
-Population-2a7732d03e594ef4b5dfe9051b41d9c0 finished! The total probability was: 0.05150046619238191. It took a total of 0.7797017097473145s to run 20 systems on 2 cores
+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.450828476484e+00 1.81563 134.653 5.27143e-05 13
+Population-f28b5f98d7ef40dcb17fc2481a6d3ced finished! The total probability was: 0.04440288843805411. It took a total of 2.785212755203247s to run 20 systems on 2 cores
 There were no errors found in this run.
 </pre></div></div>
 </div>
@@ -937,7 +945,7 @@ There were no errors found in this run.
 </div>
 <div class="output_area docutils container">
 <div class="highlight"><pre>
-{&#39;population_name&#39;: &#39;2a7732d03e594ef4b5dfe9051b41d9c0&#39;, &#39;evolution_type&#39;: &#39;grid&#39;, &#39;failed_count&#39;: 0, &#39;failed_prob&#39;: 0, &#39;failed_systems_error_codes&#39;: [], &#39;errors_exceeded&#39;: False, &#39;errors_found&#39;: False, &#39;total_probability&#39;: 0.05150046619238191, &#39;total_count&#39;: 20, &#39;start_timestamp&#39;: 1628444120.234709, &#39;end_timestamp&#39;: 1628444121.0144107, &#39;total_mass_run&#39;: 730.1048014407228, &#39;total_probability_weighted_mass_run&#39;: 0.2983275843337705, &#39;zero_prob_stars_skipped&#39;: 0}
+{&#39;population_name&#39;: &#39;f28b5f98d7ef40dcb17fc2481a6d3ced&#39;, &#39;evolution_type&#39;: &#39;grid&#39;, &#39;failed_count&#39;: 0, &#39;failed_prob&#39;: 0, &#39;failed_systems_error_codes&#39;: [], &#39;errors_exceeded&#39;: False, &#39;errors_found&#39;: False, &#39;total_probability&#39;: 0.04440288843805411, &#39;total_count&#39;: 20, &#39;start_timestamp&#39;: 1629459533.935186, &#39;end_timestamp&#39;: 1629459536.7203987, &#39;total_mass_run&#39;: 684.2544031669779, &#39;total_probability_weighted_mass_run&#39;: 0.28134439269236855, &#39;zero_prob_stars_skipped&#39;: 0}
 </pre></div></div>
 </div>
 </div>
@@ -990,7 +998,7 @@ write_binary_c_calls_to_file(output_dir:Union[str, NoneType]=None, output_filena
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
-<span></span><span class="n">example_pop</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">verbosity</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
+<span></span><span class="n">example_pop</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">verbosity</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
 <span class="n">calls_filename</span> <span class="o">=</span> <span class="n">example_pop</span><span class="o">.</span><span class="n">write_binary_c_calls_to_file</span><span class="p">()</span>
 <span class="nb">print</span><span class="p">(</span><span class="n">calls_filename</span><span class="p">)</span>
 
@@ -1008,37 +1016,17 @@ Generating grid code
 Generating grid code
 Constructing/adding: lnm1
 Saving grid code to grid_options
-Writing grid code to /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py
-Loading grid code function from /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py
+Writing grid code to /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py
+Loading grid code function from /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py
 Grid code loaded
-Writing binary_c calls to /tmp/binary_c_python/example_python_population_result/binary_c_calls.txt
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
-_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.
+Writing binary_c calls to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt
 Grid has handled 20 stars
-with a total probability of 0.05150046619238192
-/tmp/binary_c_python/example_python_population_result/binary_c_calls.txt
-binary_c M_1 2.0 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.013208238029791246
-binary_c M_1 2.5102526289471614 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.009829948023831718
-binary_c M_1 3.1506841305680684 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.0073157281034221516
-binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.005444573822104362
+with a total probability of 0.044402888438054094
+/tmp/binary_c_python/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.21587440567681548 probability 0.008236638755149857
+binary_c M_1 3.4309362899259503 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.006221155214163634
+binary_c M_1 4.257608426597089 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.004698855121516278
 </pre></div></div>
 </div>
 </div>
@@ -1050,12 +1038,7 @@ binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbit
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
-<span></span><span class="kn">import</span> <span class="nn">os</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.utils.custom_logging_functions</span> <span class="kn">import</span> <span class="n">temp_dir</span>
-
-<span class="k">def</span> <span class="nf">parse_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
+<span></span><span class="k">def</span> <span class="nf">parse_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Example parsing function</span>
 <span class="sd">    &quot;&quot;&quot;</span>
@@ -1114,11 +1097,12 @@ binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbit
     <span class="n">eccentricity</span><span class="o">=</span><span class="mf">0.02</span><span class="p">,</span>  <span class="c1"># bse_options</span>
 
     <span class="c1"># grid_options</span>
-    <span class="n">amt_cores</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>  <span class="c1"># grid_options</span>
+    <span class="n">amt_cores</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>
+    <span class="n">tmp_dir</span><span class="o">=</span><span class="n">TMP_DIR</span><span class="p">,</span>
 
     <span class="c1"># Custom options: the data directory and the output filename</span>
     <span class="n">data_dir</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="n">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span>
+        <span class="n">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span>
     <span class="p">),</span>  <span class="c1"># custom_options</span>
     <span class="n">base_filename</span><span class="o">=</span><span class="s2">&quot;example_pop.dat&quot;</span><span class="p">,</span>  <span class="c1"># custom_options</span>
 <span class="p">)</span>
@@ -1173,15 +1157,15 @@ binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbit
 <span class="n">example_pop</span><span class="o">.</span><span class="n">export_all_info</span><span class="p">()</span>
 
 <span class="c1"># remove the result file if it exists</span>
-<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</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">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">)):</span>
-    <span class="n">os</span><span class="o">.</span><span class="n">remove</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">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">))</span>
+<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</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">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">)):</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">remove</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">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">))</span>
 
 
 <span class="c1"># Evolve the population</span>
 <span class="n">example_pop</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>
 
 <span class="c1">#</span>
-<span class="k">with</span> <span class="nb">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="n">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">),</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+<span class="k">with</span> <span class="nb">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="n">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">),</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
     <span class="n">output</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 <span class="nb">print</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
@@ -1196,29 +1180,29 @@ binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbit
 Generating grid code
 Constructing/adding: lnm1
 Grid has handled 20 stars
-with a total probability of 0.05150046619238192
+with a total probability of 0.044402888438054094
 Total starcount for this run will be: 20
 Generating grid code
 Constructing/adding: lnm1
-Population-3680f3882c0a449c944462abffea2447 finished! The total probability was: 0.05150046619238191. It took a total of 0.6246354579925537s to run 20 systems on 2 cores
+Population-e45c25448b32440cb7e220f4a3562907 finished! The total probability was: 0.04440288843805411. It took a total of 1.9539172649383545s to run 20 systems on 2 cores
 There were no errors found in this run.
 
 
 time mass zams_mass probability radius stellar_type
-2.867655467480e+01 1.33079 9.81391 0.00167028 1.72498e-05 13
-1.931266944719e+01 1.3933 12.3177 0.00124307 1.72498e-05 13
-4.439623364590e+01 1.38004 7.81906 0.00224431 1.72498e-05 13
-1.364277535630e+01 1.47961 15.4603 0.000925128 1.72498e-05 13
-1.017435498578e+01 1.59052 19.4046 0.000688507 1.72498e-05 13
-8.294870923827e+00 1.7197 24.3552 0.000512406 1.72498e-05 13
-6.802132608769e+00 1.84162 30.5689 0.000381347 1.72498e-05 13
-5.723570798020e+00 1.99471 38.3678 0.00028381 1.72498e-05 13
-4.933751523833e+00 2.15875 48.1564 0.000211219 1.72498e-05 13
-4.337250536639e+00 2.35209 60.4424 0.000157195 9.97286e-06 14
-3.862081089332e+00 2.56776 75.8628 0.000116989 1.08873e-05 14
-3.449960890183e+00 2.80457 95.2174 8.70668e-05 1.18914e-05 14
-3.172196856333e+00 3.05193 119.51 6.47976e-05 1.29402e-05 14
-3.069627290216e+00 3.27563 150 4.82242e-05 1.38887e-05 14
+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.450828476484e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13
 
 </pre></div></div>
 </div>
@@ -1228,12 +1212,7 @@ time mass zams_mass probability radius stellar_type
 </pre></div>
 </div>
 <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
-<span></span><span class="kn">import</span> <span class="nn">os</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.utils.custom_logging_functions</span> <span class="kn">import</span> <span class="n">temp_dir</span>
-
-<span class="k">def</span> <span class="nf">parse_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
+<span></span><span class="k">def</span> <span class="nf">parse_function</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Example parsing function</span>
 <span class="sd">    &quot;&quot;&quot;</span>
@@ -1298,10 +1277,11 @@ time mass zams_mass probability radius stellar_type
 
     <span class="c1"># grid_options</span>
     <span class="n">amt_cores</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span>  <span class="c1"># grid_options</span>
+    <span class="n">tmp_dir</span><span class="o">=</span><span class="n">TMP_DIR</span><span class="p">,</span>
 
     <span class="c1"># Custom options: the data directory and the output filename</span>
     <span class="n">data_dir</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="n">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span>
+        <span class="n">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span>
     <span class="p">),</span>  <span class="c1"># custom_options</span>
     <span class="n">base_filename</span><span class="o">=</span><span class="s2">&quot;example_pop.dat&quot;</span><span class="p">,</span>  <span class="c1"># custom_options</span>
 <span class="p">)</span>
@@ -1399,14 +1379,14 @@ time mass zams_mass probability radius stellar_type
 <span class="n">example_pop</span><span class="o">.</span><span class="n">export_all_info</span><span class="p">()</span>
 
 <span class="c1"># remove the result file if it exists</span>
-<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</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">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">)):</span>
-    <span class="n">os</span><span class="o">.</span><span class="n">remove</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">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">))</span>
+<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</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">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">)):</span>
+    <span class="n">os</span><span class="o">.</span><span class="n">remove</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">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">))</span>
 
 <span class="c1"># Evolve the population</span>
 <span class="n">example_pop</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>
 
 <span class="c1">#</span>
-<span class="k">with</span> <span class="nb">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="n">temp_dir</span><span class="p">(),</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">),</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+<span class="k">with</span> <span class="nb">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="n">TMP_DIR</span><span class="p">,</span> <span class="s2">&quot;example_python_population_result&quot;</span><span class="p">,</span> <span class="s2">&quot;example_pop.dat&quot;</span><span class="p">),</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
     <span class="n">output</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 <span class="nb">print</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
@@ -1422,86 +1402,34 @@ Generating grid code
 Constructing/adding: lnm1
 Constructing/adding: q
 Constructing/adding: log10per
-Grid has handled 125 stars
-with a total probability of 0.0862478164626921
-Total starcount for this run will be: 125
+Grid has handled 27 stars
+with a total probability of 0.024868380796643753
+Total starcount for this run will be: 27
 Generating grid code
 Constructing/adding: lnm1
 Constructing/adding: q
 Constructing/adding: log10per
-Population-d20a4c74d20a43b881c0c9e5def5f76c finished! The total probability was: 0.08624781646269201. It took a total of 8.561265707015991s to run 125 systems on 2 cores
+Population-05128ef4c5fe4274a0356c3e99e2f2d2 finished! The total probability was: 0.024868380796643757. It took a total of 9.792905807495117s to run 27 systems on 2 cores
 There were no errors found in this run.
 
 
 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
-8.863377990313e+01 1.29444 5.88566 0 2.99283 13 5 15 15 0.02 0.000627913
-1.146421815741e+02 0 5.88566 1.33062 4.43925 15 15 13 5 0.02 0.000627913
-7.222715508467e+01 1.34922 5.88566 0 5.88566 13 5 15 15 0.02 0.000627913
-1.350021848285e+01 1.48488 17.3205 0 0.1 13 5 15 15 0.02 0.000154349
-1.171108213270e+01 1.53113 17.3205 0 0.1 13 5 15 15 0.02 0.000154349
-1.171086983243e+01 1.53177 17.3205 0 0.1 13 9 15 15 0.02 0.000154349
-1.170770599495e+01 1.53176 17.3205 0 4.40513 13 5 15 15 0.02 0.000172877
-1.230407246199e+01 1.59499 17.3205 0 4.40513 13 5 15 15 0.02 0.000610573
-1.108751340926e+01 1.70319 17.3205 0 8.71025 13 4 15 15 0.02 0.000610573
-1.941017702765e+01 1.34903 17.3205 1.65097 8.71025 13 13 13 5 0.02 0.000172877
-1.980988739731e+01 1.36979 17.3205 1.60808 8.71025 13 13 13 5 0.02 0.000121486
-3.571858031651e+01 1.53174 17.3205 1.30504 8.71025 13 13 13 5 0.02 8.42148e-05
-3.459153942631e+01 1.53176 17.3205 1.31004 8.71025 13 13 13 5 0.02 9.8162e-05
-1.687368550125e+01 1.34937 17.3205 1.73856 13.0154 13 13 13 8 0.02 0.000172877
-1.194842917007e+01 1.78096 17.3205 0 13.0154 13 8 15 15 0.02 0.000610573
-1.733614170983e+01 1.53184 17.3205 1.42375 13.0154 13 13 13 5 0.02 9.8162e-05
-1.723547465714e+01 1.38403 17.3205 1.71288 13.0154 13 13 13 8 0.02 0.000121486
-1.764340254985e+01 1.53174 17.3205 1.41264 13.0154 13 13 13 5 0.02 8.42148e-05
-1.170425790780e+01 1.52963 17.3205 0 17.3205 13 5 15 15 0.02 0.000172877
-8.922967341481e+00 1.85486 17.3205 0 17.3205 13 8 15 15 0.02 0.000610573
-1.232906623449e+01 1.41074 17.3205 1.34281 17.3205 13 13 13 8 0.02 0.000121486
-1.170775828562e+01 1.53183 17.3205 1.53183 17.3205 13 5 13 5 0.02 9.8162e-05
-1.170770422321e+01 1.53175 17.3205 1.53175 17.3205 13 5 13 5 0.02 8.42148e-05
-5.075844624794e+00 2.12303 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05
-4.766606588165e+00 2.20484 50.9713 0 0.1 14 8 15 15 0.02 3.79411e-05
-4.768305081494e+00 2.18838 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05
-4.458869865939e+00 2.29864 50.9713 0 12.8178 14 8 15 15 0.02 0.000150087
-1.806014211040e+01 2.10446 50.9713 1.40749 12.8178 13 13 13 5 0.02 2.9863e-05
-4.797342083485e+00 2.10328 50.9713 0 12.8178 13 13 15 1 0.02 4.24954e-05
-1.721374713429e+01 2.21673 50.9713 1.42212 12.8178 14 14 13 5 0.02 2.41295e-05
-4.055645404546e+00 2.47276 50.9713 0 25.5357 14 7 15 15 0.02 0.000150087
-1.806123543037e+01 2.21893 50.9713 1.40745 12.8178 14 14 13 5 0.02 2.07011e-05
-8.117519147635e+00 2.10433 50.9713 2.21473 25.5357 13 13 14 8 0.02 4.24954e-05
-8.315554923168e+00 2.15343 50.9713 2.08519 25.5357 13 13 13 8 0.02 2.9863e-05
-7.917420996633e+00 2.21892 50.9713 1.7431 25.5357 14 14 13 8 0.02 2.07011e-05
-7.693213405973e+00 2.21805 50.9713 1.78384 25.5357 14 14 13 8 0.02 2.41295e-05
-3.753837732894e+00 2.62517 50.9713 0 38.2535 14 7 15 15 0.02 0.000150087
-7.087296558990e+00 2.10417 50.9713 2.40935 38.2535 13 13 14 8 0.02 4.24954e-05
-7.007109286263e+00 2.15854 50.9713 2.28672 38.2535 13 13 14 8 0.02 2.9863e-05
-5.653200958306e+00 2.21878 50.9713 2.0587 38.2535 14 14 13 8 0.02 2.41295e-05
-5.733794947644e+00 2.21892 50.9713 1.99255 38.2535 14 14 13 8 0.02 2.07011e-05
-3.513216011269e+00 2.76647 50.9713 0 50.9713 14 7 15 15 0.02 0.000150087
-4.750574783854e+00 2.27442 50.9713 0 50.9713 14 8 15 15 0.02 4.24954e-05
-7.278384712062e+00 1.29678 50.9713 2.09216 50.9713 13 8 13 13 0.02 2.9863e-05
-4.765996194699e+00 2.20787 50.9713 2.20787 50.9713 14 8 14 8 0.02 2.07011e-05
-4.765535914728e+00 2.21331 50.9713 2.21331 50.9713 14 8 14 8 0.02 2.41295e-05
-3.104706358826e+00 3.17639 150 0 0.1 14 7 15 15 0.02 9.32641e-06
-3.069363482023e+00 3.27572 150 0 0.1 14 7 15 15 0.02 9.32641e-06
-3.047074050271e+00 3.3836 150 0 37.575 14 7 15 15 0.02 3.68933e-05
-5.974759306305e+00 3.23604 150 2.53922 37.575 14 14 14 7 0.02 1.04459e-05
-6.074084349384e+00 3.30145 150 2.13876 37.575 14 14 13 8 0.02 7.34071e-06
-5.733865371895e+00 3.29994 150 2.00498 37.575 14 14 13 8 0.02 5.93135e-06
-3.027099358410e+00 3.53631 150 0 75.05 14 7 15 15 0.02 3.68933e-05
-5.807147339697e+00 3.30197 150 1.9791 37.575 14 14 13 8 0.02 5.08861e-06
-4.862942347290e+00 3.25294 150 2.97823 75.05 14 14 14 7 0.02 1.04459e-05
-4.556479830908e+00 3.29942 150 2.73221 75.05 14 14 14 7 0.02 7.34071e-06
-3.853070305680e+00 3.29977 150 2.62486 75.05 14 14 14 7 0.02 5.93135e-06
-3.881529045940e+00 3.30149 150 2.55924 75.05 14 14 14 7 0.02 5.08861e-06
-3.015033359333e+00 3.64419 150 0 112.525 14 7 15 15 0.02 3.68933e-05
-4.126828648362e+00 3.32047 150 0 112.525 14 14 15 3 0.02 1.04459e-05
-3.990017992944e+00 3.3032 150 2.94027 112.525 14 14 14 7 0.02 7.34071e-06
-3.206771867883e+00 3.07671 150 3.11282 112.525 14 14 14 7 0.02 5.93135e-06
-3.006827156705e+00 3.72638 150 0 150 14 7 15 15 0.02 3.68933e-05
-3.218786094847e+00 3.30337 150 3.01344 112.525 14 14 14 7 0.02 5.08861e-06
-4.527722847382e+00 1.42238 150 0 150 13 5 15 15 0.02 1.04459e-05
-3.069567332611e+00 3.27804 150 3.27804 150 14 7 14 7 0.02 5.93135e-06
-5.726405299909e+00 1.29746 150 3.22759 150 13 8 14 14 0.02 7.34071e-06
-3.069626478211e+00 3.27565 150 3.27565 150 14 7 14 7 0.02 5.08861e-06
+1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487
+1.935920346899e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487
+2.123795595728e+01 1.30902 17.3205 1.58519 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.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968
+1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016
+1.772169325356e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05
+1.367065500196e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-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
+4.227002356107e+00 2.43719 73.0434 0 60.8862 14 14 15 1 0.02 7.67586e-05
+7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05
+7.394728392218e+00 1.80919 73.0434 1.79091 60.8862 13 13 13 8 0.02 4.43422e-05
 
 </pre></div></div>
 </div>
@@ -1542,9 +1470,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_population.ipynb b/docs/build/html/notebook_population.ipynb
index b6a37baa8..f6f27ee43 100644
--- a/docs/build/html/notebook_population.ipynb
+++ b/docs/build/html/notebook_population.ipynb
@@ -23,9 +23,12 @@
    "outputs": [],
    "source": [
     "import os\n",
+    "\n",
     "from binarycpython.utils.custom_logging_functions import temp_dir\n",
     "from binarycpython.utils.grid import Population\n",
     "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n",
+    "\n",
     "# help(Population) # Uncomment to see the public functions of this object"
    ]
   },
@@ -60,7 +63,8 @@
       "adding: max_evolution_time=15000 to BSE_options\n",
       "adding: eccentricity=0.02 to BSE_options\n",
       "adding: amt_cores=2 to grid_options\n",
-      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/example_python_population_result to custom_options >>>>\n",
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_population to grid_options\n",
+      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/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",
@@ -88,11 +92,12 @@
     "\n",
     "\n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "    \n",
     "    # Custom options # TODO: need to be set in grid_options probably\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -133,13 +138,13 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Writing settings to /tmp/binary_c_python/example_python_population_result/example_pop_settings.json\n"
+      "Writing settings to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n"
      ]
     },
     {
      "data": {
       "text/plain": [
-       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+       "'/tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'"
       ]
      },
      "execution_count": 3,
@@ -181,7 +186,7 @@
      "text": [
       "Help on method add_grid_variable in module binarycpython.utils.grid:\n",
       "\n",
-      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='edge', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> None method of binarycpython.utils.grid.Population instance\n",
+      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='centred', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> 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",
@@ -199,25 +204,25 @@
       "        name:\n",
       "            name of parameter. This is evaluated as a parameter and you can use it throughout\n",
       "            the rest of the function\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                name = 'lnm1'\n",
       "        longname:\n",
       "            Long name of parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                longname = 'Primary mass'\n",
       "        range:\n",
       "            Range of values to take. Does not get used really, the spacingfunction is used to\n",
       "            get the values from\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                range = [math.log(m_min), math.log(m_max)]\n",
       "        resolution:\n",
       "            Resolution of the sampled range (amount of samples).\n",
       "            TODO: check if this is used anywhere\n",
       "    \n",
-      "            Examples: \n",
+      "            Examples:\n",
       "                resolution = resolution[\"M_1\"]\n",
       "        spacingfunction:\n",
       "            Function determining how the range is sampled. You can either use a real function,\n",
@@ -230,12 +235,12 @@
       "        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",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                precode = 'M_1=math.exp(lnm1);'\n",
       "        probdist:\n",
       "            Function determining the probability that gets assigned to the sampled parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                probdist = 'Kroupa2001(M_1)*M_1'\n",
       "        dphasevol:\n",
@@ -249,7 +254,7 @@
       "                condition = 'self.grid_options['binary']==1'\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 'center'\n",
+      "            the lower edge of the value range) or 'centred'\n",
       "            (steps starting at lower edge + 0.5 * stepsize).\n",
       "\n"
      ]
@@ -313,7 +318,7 @@
       "    \"dphasevol\": \"dlnm1\",\n",
       "    \"parameter_name\": \"M_1\",\n",
       "    \"condition\": \"\",\n",
-      "    \"gridtype\": \"edge\",\n",
+      "    \"gridtype\": \"centred\",\n",
       "    \"branchpoint\": 0,\n",
       "    \"grid_variable_number\": 0\n",
       "}\n"
@@ -457,7 +462,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "adding: parse_function=<function parse_function at 0x7ff3bdf79620> to grid_options\n"
+      "adding: parse_function=<function parse_function at 0x7f531bc3b6a8> to grid_options\n"
      ]
     }
    ],
@@ -536,25 +541,25 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
-      "EXAMPLE_COMPACT_OBJECT             2.867655467480e+01 1.33079 9.81391 0.00167028 13\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "EXAMPLE_COMPACT_OBJECT             1.931266944719e+01 1.3933 12.3177 0.00124307 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.439623364590e+01 1.38004 7.81906 0.00224431 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.364277535630e+01 1.47961 15.4603 0.000925128 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.017435498578e+01 1.59052 19.4046 0.000688507 13\n",
-      "EXAMPLE_COMPACT_OBJECT             8.294870923827e+00 1.7197 24.3552 0.000512406 13\n",
-      "EXAMPLE_COMPACT_OBJECT             6.802132608769e+00 1.84162 30.5689 0.000381347 13\n",
-      "EXAMPLE_COMPACT_OBJECT             5.723570798020e+00 1.99471 38.3678 0.00028381 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.933751523833e+00 2.15875 48.1564 0.000211219 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.337250536639e+00 2.35209 60.4424 0.000157195 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.862081089332e+00 2.56776 75.8628 0.000116989 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.449960890183e+00 2.80457 95.2174 8.70668e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.172196856333e+00 3.05193 119.51 6.47976e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.069627290216e+00 3.27563 150 4.82242e-05 14\n",
-      "Population-2a7732d03e594ef4b5dfe9051b41d9c0 finished! The total probability was: 0.05150046619238191. It took a total of 0.7797017097473145s to run 20 systems on 2 cores\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.450828476484e+00 1.81563 134.653 5.27143e-05 13\n",
+      "Population-f28b5f98d7ef40dcb17fc2481a6d3ced finished! The total probability was: 0.04440288843805411. It took a total of 2.785212755203247s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n"
      ]
     }
@@ -586,7 +591,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "{'population_name': '2a7732d03e594ef4b5dfe9051b41d9c0', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.05150046619238191, 'total_count': 20, 'start_timestamp': 1628444120.234709, 'end_timestamp': 1628444121.0144107, 'total_mass_run': 730.1048014407228, 'total_probability_weighted_mass_run': 0.2983275843337705, 'zero_prob_stars_skipped': 0}\n"
+      "{'population_name': 'f28b5f98d7ef40dcb17fc2481a6d3ced', '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': 1629459533.935186, 'end_timestamp': 1629459536.7203987, 'total_mass_run': 684.2544031669779, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n"
      ]
     }
    ],
@@ -660,42 +665,22 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Saving grid code to grid_options\n",
-      "Writing grid code to /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
-      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
+      "Writing grid code to /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
+      "Loading grid code function from /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
       "Grid code loaded\n",
-      "Writing binary_c calls to /tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
+      "Writing binary_c calls to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
-      "/tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "binary_c M_1 2.0 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.013208238029791246\n",
-      "binary_c M_1 2.5102526289471614 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.009829948023831718\n",
-      "binary_c M_1 3.1506841305680684 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.0073157281034221516\n",
-      "binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.005444573822104362\n"
+      "with a total probability of 0.044402888438054094\n",
+      "/tmp/binary_c_python/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.21587440567681548 probability 0.008236638755149857\n",
+      "binary_c M_1 3.4309362899259503 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.006221155214163634\n",
+      "binary_c M_1 4.257608426597089 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.004698855121516278\n"
      ]
     }
    ],
    "source": [
-    "example_pop.set(verbosity=10)\n",
+    "example_pop.set(verbosity=1)\n",
     "calls_filename = example_pop.write_binary_c_calls_to_file()\n",
     "print(calls_filename)\n",
     "\n",
@@ -725,39 +710,34 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "Population-3680f3882c0a449c944462abffea2447 finished! The total probability was: 0.05150046619238191. It took a total of 0.6246354579925537s to run 20 systems on 2 cores\n",
+      "Population-e45c25448b32440cb7e220f4a3562907 finished! The total probability was: 0.04440288843805411. It took a total of 1.9539172649383545s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n",
       "\n",
       "\n",
       "time mass zams_mass probability radius stellar_type\n",
-      "2.867655467480e+01 1.33079 9.81391 0.00167028 1.72498e-05 13\n",
-      "1.931266944719e+01 1.3933 12.3177 0.00124307 1.72498e-05 13\n",
-      "4.439623364590e+01 1.38004 7.81906 0.00224431 1.72498e-05 13\n",
-      "1.364277535630e+01 1.47961 15.4603 0.000925128 1.72498e-05 13\n",
-      "1.017435498578e+01 1.59052 19.4046 0.000688507 1.72498e-05 13\n",
-      "8.294870923827e+00 1.7197 24.3552 0.000512406 1.72498e-05 13\n",
-      "6.802132608769e+00 1.84162 30.5689 0.000381347 1.72498e-05 13\n",
-      "5.723570798020e+00 1.99471 38.3678 0.00028381 1.72498e-05 13\n",
-      "4.933751523833e+00 2.15875 48.1564 0.000211219 1.72498e-05 13\n",
-      "4.337250536639e+00 2.35209 60.4424 0.000157195 9.97286e-06 14\n",
-      "3.862081089332e+00 2.56776 75.8628 0.000116989 1.08873e-05 14\n",
-      "3.449960890183e+00 2.80457 95.2174 8.70668e-05 1.18914e-05 14\n",
-      "3.172196856333e+00 3.05193 119.51 6.47976e-05 1.29402e-05 14\n",
-      "3.069627290216e+00 3.27563 150 4.82242e-05 1.38887e-05 14\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.450828476484e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -817,11 +797,12 @@
     "    eccentricity=0.02,  # bse_options\n",
     "    \n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -876,15 +857,15 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
@@ -912,96 +893,39 @@
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Grid has handled 125 stars\n",
-      "with a total probability of 0.0862478164626921\n",
-      "Total starcount for this run will be: 125\n",
+      "Grid has handled 27 stars\n",
+      "with a total probability of 0.024868380796643753\n",
+      "Total starcount for this run will be: 27\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Population-d20a4c74d20a43b881c0c9e5def5f76c finished! The total probability was: 0.08624781646269201. It took a total of 8.561265707015991s to run 125 systems on 2 cores\n",
+      "Population-05128ef4c5fe4274a0356c3e99e2f2d2 finished! The total probability was: 0.024868380796643757. It took a total of 9.792905807495117s to run 27 systems on 2 cores\n",
       "There were no errors found in this run.\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",
-      "8.863377990313e+01 1.29444 5.88566 0 2.99283 13 5 15 15 0.02 0.000627913\n",
-      "1.146421815741e+02 0 5.88566 1.33062 4.43925 15 15 13 5 0.02 0.000627913\n",
-      "7.222715508467e+01 1.34922 5.88566 0 5.88566 13 5 15 15 0.02 0.000627913\n",
-      "1.350021848285e+01 1.48488 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171108213270e+01 1.53113 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171086983243e+01 1.53177 17.3205 0 0.1 13 9 15 15 0.02 0.000154349\n",
-      "1.170770599495e+01 1.53176 17.3205 0 4.40513 13 5 15 15 0.02 0.000172877\n",
-      "1.230407246199e+01 1.59499 17.3205 0 4.40513 13 5 15 15 0.02 0.000610573\n",
-      "1.108751340926e+01 1.70319 17.3205 0 8.71025 13 4 15 15 0.02 0.000610573\n",
-      "1.941017702765e+01 1.34903 17.3205 1.65097 8.71025 13 13 13 5 0.02 0.000172877\n",
-      "1.980988739731e+01 1.36979 17.3205 1.60808 8.71025 13 13 13 5 0.02 0.000121486\n",
-      "3.571858031651e+01 1.53174 17.3205 1.30504 8.71025 13 13 13 5 0.02 8.42148e-05\n",
-      "3.459153942631e+01 1.53176 17.3205 1.31004 8.71025 13 13 13 5 0.02 9.8162e-05\n",
-      "1.687368550125e+01 1.34937 17.3205 1.73856 13.0154 13 13 13 8 0.02 0.000172877\n",
-      "1.194842917007e+01 1.78096 17.3205 0 13.0154 13 8 15 15 0.02 0.000610573\n",
-      "1.733614170983e+01 1.53184 17.3205 1.42375 13.0154 13 13 13 5 0.02 9.8162e-05\n",
-      "1.723547465714e+01 1.38403 17.3205 1.71288 13.0154 13 13 13 8 0.02 0.000121486\n",
-      "1.764340254985e+01 1.53174 17.3205 1.41264 13.0154 13 13 13 5 0.02 8.42148e-05\n",
-      "1.170425790780e+01 1.52963 17.3205 0 17.3205 13 5 15 15 0.02 0.000172877\n",
-      "8.922967341481e+00 1.85486 17.3205 0 17.3205 13 8 15 15 0.02 0.000610573\n",
-      "1.232906623449e+01 1.41074 17.3205 1.34281 17.3205 13 13 13 8 0.02 0.000121486\n",
-      "1.170775828562e+01 1.53183 17.3205 1.53183 17.3205 13 5 13 5 0.02 9.8162e-05\n",
-      "1.170770422321e+01 1.53175 17.3205 1.53175 17.3205 13 5 13 5 0.02 8.42148e-05\n",
-      "5.075844624794e+00 2.12303 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.766606588165e+00 2.20484 50.9713 0 0.1 14 8 15 15 0.02 3.79411e-05\n",
-      "4.768305081494e+00 2.18838 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.458869865939e+00 2.29864 50.9713 0 12.8178 14 8 15 15 0.02 0.000150087\n",
-      "1.806014211040e+01 2.10446 50.9713 1.40749 12.8178 13 13 13 5 0.02 2.9863e-05\n",
-      "4.797342083485e+00 2.10328 50.9713 0 12.8178 13 13 15 1 0.02 4.24954e-05\n",
-      "1.721374713429e+01 2.21673 50.9713 1.42212 12.8178 14 14 13 5 0.02 2.41295e-05\n",
-      "4.055645404546e+00 2.47276 50.9713 0 25.5357 14 7 15 15 0.02 0.000150087\n",
-      "1.806123543037e+01 2.21893 50.9713 1.40745 12.8178 14 14 13 5 0.02 2.07011e-05\n",
-      "8.117519147635e+00 2.10433 50.9713 2.21473 25.5357 13 13 14 8 0.02 4.24954e-05\n",
-      "8.315554923168e+00 2.15343 50.9713 2.08519 25.5357 13 13 13 8 0.02 2.9863e-05\n",
-      "7.917420996633e+00 2.21892 50.9713 1.7431 25.5357 14 14 13 8 0.02 2.07011e-05\n",
-      "7.693213405973e+00 2.21805 50.9713 1.78384 25.5357 14 14 13 8 0.02 2.41295e-05\n",
-      "3.753837732894e+00 2.62517 50.9713 0 38.2535 14 7 15 15 0.02 0.000150087\n",
-      "7.087296558990e+00 2.10417 50.9713 2.40935 38.2535 13 13 14 8 0.02 4.24954e-05\n",
-      "7.007109286263e+00 2.15854 50.9713 2.28672 38.2535 13 13 14 8 0.02 2.9863e-05\n",
-      "5.653200958306e+00 2.21878 50.9713 2.0587 38.2535 14 14 13 8 0.02 2.41295e-05\n",
-      "5.733794947644e+00 2.21892 50.9713 1.99255 38.2535 14 14 13 8 0.02 2.07011e-05\n",
-      "3.513216011269e+00 2.76647 50.9713 0 50.9713 14 7 15 15 0.02 0.000150087\n",
-      "4.750574783854e+00 2.27442 50.9713 0 50.9713 14 8 15 15 0.02 4.24954e-05\n",
-      "7.278384712062e+00 1.29678 50.9713 2.09216 50.9713 13 8 13 13 0.02 2.9863e-05\n",
-      "4.765996194699e+00 2.20787 50.9713 2.20787 50.9713 14 8 14 8 0.02 2.07011e-05\n",
-      "4.765535914728e+00 2.21331 50.9713 2.21331 50.9713 14 8 14 8 0.02 2.41295e-05\n",
-      "3.104706358826e+00 3.17639 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.069363482023e+00 3.27572 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.047074050271e+00 3.3836 150 0 37.575 14 7 15 15 0.02 3.68933e-05\n",
-      "5.974759306305e+00 3.23604 150 2.53922 37.575 14 14 14 7 0.02 1.04459e-05\n",
-      "6.074084349384e+00 3.30145 150 2.13876 37.575 14 14 13 8 0.02 7.34071e-06\n",
-      "5.733865371895e+00 3.29994 150 2.00498 37.575 14 14 13 8 0.02 5.93135e-06\n",
-      "3.027099358410e+00 3.53631 150 0 75.05 14 7 15 15 0.02 3.68933e-05\n",
-      "5.807147339697e+00 3.30197 150 1.9791 37.575 14 14 13 8 0.02 5.08861e-06\n",
-      "4.862942347290e+00 3.25294 150 2.97823 75.05 14 14 14 7 0.02 1.04459e-05\n",
-      "4.556479830908e+00 3.29942 150 2.73221 75.05 14 14 14 7 0.02 7.34071e-06\n",
-      "3.853070305680e+00 3.29977 150 2.62486 75.05 14 14 14 7 0.02 5.93135e-06\n",
-      "3.881529045940e+00 3.30149 150 2.55924 75.05 14 14 14 7 0.02 5.08861e-06\n",
-      "3.015033359333e+00 3.64419 150 0 112.525 14 7 15 15 0.02 3.68933e-05\n",
-      "4.126828648362e+00 3.32047 150 0 112.525 14 14 15 3 0.02 1.04459e-05\n",
-      "3.990017992944e+00 3.3032 150 2.94027 112.525 14 14 14 7 0.02 7.34071e-06\n",
-      "3.206771867883e+00 3.07671 150 3.11282 112.525 14 14 14 7 0.02 5.93135e-06\n",
-      "3.006827156705e+00 3.72638 150 0 150 14 7 15 15 0.02 3.68933e-05\n",
-      "3.218786094847e+00 3.30337 150 3.01344 112.525 14 14 14 7 0.02 5.08861e-06\n",
-      "4.527722847382e+00 1.42238 150 0 150 13 5 15 15 0.02 1.04459e-05\n",
-      "3.069567332611e+00 3.27804 150 3.27804 150 14 7 14 7 0.02 5.93135e-06\n",
-      "5.726405299909e+00 1.29746 150 3.22759 150 13 8 14 14 0.02 7.34071e-06\n",
-      "3.069626478211e+00 3.27565 150 3.27565 150 14 7 14 7 0.02 5.08861e-06\n",
+      "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n",
+      "1.935920346899e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n",
+      "2.123795595728e+01 1.30902 17.3205 1.58519 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.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n",
+      "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n",
+      "1.772169325356e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n",
+      "1.367065500196e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-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",
+      "4.227002356107e+00 2.43719 73.0434 0 60.8862 14 14 15 1 0.02 7.67586e-05\n",
+      "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n",
+      "7.394728392218e+00 1.80919 73.0434 1.79091 60.8862 13 13 13 8 0.02 4.43422e-05\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -1067,10 +991,11 @@
     "    \n",
     "    # grid_options\n",
     "    amt_cores=2,  # grid_options\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -1168,14 +1093,14 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv
index 8ac1e328102c8f00b236d77c3d126f5b16f1b475..b5c74453b9aa7d0c5e1ed94e55ab09313e9477ee 100644
GIT binary patch
delta 5884
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
S6p1tn8uiU)ApReA*{LYTs)daJ

delta 5411
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
N(l>j{{(pAuqqsb|i&X#s

diff --git a/docs/build/html/plot_functions.html b/docs/build/html/plot_functions.html
index 119716b2c..2c3165a51 100644
--- a/docs/build/html/plot_functions.html
+++ b/docs/build/html/plot_functions.html
@@ -473,9 +473,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index cafb1a786..ce13ca923 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -255,9 +255,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/readme_link.html b/docs/build/html/readme_link.html
index 27d15ae84..1f71ca1b4 100644
--- a/docs/build/html/readme_link.html
+++ b/docs/build/html/readme_link.html
@@ -252,12 +252,13 @@
 <p>For this it is best to set up a virtual environment. Activate the virtualenvironment and enter the cloned version of the repo.</p>
 <p>Then run:</p>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
+<span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">uninstall</span> <span class="n">binarycpython</span> <span class="o">&amp;&amp;</span> <span class="n">rm</span> <span class="n">dist</span><span class="o">/*</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
 </pre></div>
 </div>
-<p>You can find the version of this package in setup.py.</p>
+<p>This will clean the build directory, remove binarycpython from the venv, remove the dist packages, and then rebuilding and reinstalling the package. You can find the version of this package in setup.py.</p>
 <p>This will install this package into the virtual environment. Making changes to the sourcecode can be “installed” into the virtual env with the same command.</p>
 <p>If this is not the first time you install the package, but rather rebuild it because you make changes in either binary_c or binarycpython, you should ignore the currently installed version, and also skip installing the dependencies again, by executing the following command:</p>
-<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">ignore</span><span class="o">-</span><span class="n">installed</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">dependencies</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
+<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">clean</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">uninstall</span> <span class="n">binarycpython</span> <span class="o">&amp;&amp;</span> <span class="n">rm</span> <span class="n">dist</span><span class="o">/*</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">build</span> <span class="o">--</span><span class="n">force</span> <span class="o">&amp;&amp;</span> <span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">sdist</span> <span class="o">&amp;&amp;</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">--</span><span class="n">ignore</span><span class="o">-</span><span class="n">installed</span> <span class="o">--</span><span class="n">no</span><span class="o">-</span><span class="n">dependencies</span> <span class="o">-</span><span class="n">v</span> <span class="n">dist</span><span class="o">/</span><span class="n">binarycpython</span><span class="o">-&lt;</span><span class="n">version</span> <span class="n">of</span> <span class="n">this</span> <span class="n">package</span><span class="o">&gt;.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
 </pre></div>
 </div>
 <div class="section" id="after-installation">
@@ -334,9 +335,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/run_system_wrapper.html b/docs/build/html/run_system_wrapper.html
index 98017ad46..d37ea5272 100644
--- a/docs/build/html/run_system_wrapper.html
+++ b/docs/build/html/run_system_wrapper.html
@@ -283,9 +283,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index c131aef39..d01c4ead8 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -194,9 +194,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 4d686578b..b8f060aca 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["binary_c_parameters","custom_logging_functions","distribution_functions","example_notebooks","functions","grid","grid_options_defaults","grid_options_descriptions","hpc_functions","index","modules","notebook_api_functionality","notebook_custom_logging","notebook_extra_features","notebook_individual_systems","notebook_population","plot_functions","readme_link","run_system_wrapper","spacing_functions","stellar_types","useful_funcs"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:3,sphinx:56},filenames:["binary_c_parameters.rst","custom_logging_functions.rst","distribution_functions.rst","example_notebooks.rst","functions.rst","grid.rst","grid_options_defaults.rst","grid_options_descriptions.rst","hpc_functions.rst","index.rst","modules.rst","notebook_api_functionality.ipynb","notebook_custom_logging.ipynb","notebook_extra_features.ipynb","notebook_individual_systems.ipynb","notebook_population.ipynb","plot_functions.rst","readme_link.rst","run_system_wrapper.rst","spacing_functions.rst","stellar_types.rst","useful_funcs.rst"],objects:{"binarycpython.utils":{custom_logging_functions:[1,0,0,"-"],distribution_functions:[2,0,0,"-"],functions:[4,0,0,"-"],grid:[5,0,0,"-"],grid_options_defaults:[6,0,0,"-"],hpc_functions:[8,0,0,"-"],plot_functions:[16,0,0,"-"],run_system_wrapper:[18,0,0,"-"],spacing_functions:[19,0,0,"-"],stellar_types:[20,0,0,"-"],useful_funcs:[21,0,0,"-"]},"binarycpython.utils.custom_logging_functions":{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:[1,1,1,""]},"binarycpython.utils.distribution_functions":{"const":[2,1,1,""],Arenou2010_binary_fraction:[2,1,1,""],Izzard2012_period_distribution:[2,1,1,""],Kroupa2001:[2,1,1,""],Moe_di_Stefano_2017_multiplicity_fractions:[2,1,1,""],Moe_di_Stefano_2017_pdf:[2,1,1,""],build_q_table:[2,1,1,""],calc_P_integral:[2,1,1,""],calc_e_integral:[2,1,1,""],calc_total_probdens:[2,1,1,""],calculate_constants_three_part_powerlaw:[2,1,1,""],cosmic_SFH_madau_dickinson2014:[2,1,1,""],duquennoy1991:[2,1,1,""],fill_data:[2,1,1,""],flat:[2,1,1,""],flatsections:[2,1,1,""],gaussian:[2,1,1,""],gaussian_func:[2,1,1,""],gaussian_normalizing_const:[2,1,1,""],get_integration_constant_q:[2,1,1,""],get_max_multiplicity:[2,1,1,""],imf_chabrier2003:[2,1,1,""],imf_scalo1986:[2,1,1,""],imf_scalo1998:[2,1,1,""],imf_tinsley1980:[2,1,1,""],interpolate_in_mass_izzard2012:[2,1,1,""],ktg93:[2,1,1,""],linear_extrapolation_q:[2,1,1,""],merge_multiplicities:[2,1,1,""],normalize_dict:[2,1,1,""],number:[2,1,1,""],poisson:[2,1,1,""],powerlaw:[2,1,1,""],powerlaw_constant:[2,1,1,""],powerlaw_extrapolation_q:[2,1,1,""],prepare_dict:[2,1,1,""],raghavan2010_binary_fraction:[2,1,1,""],sana12:[2,1,1,""],set_opts:[2,1,1,""],three_part_powerlaw:[2,1,1,""]},"binarycpython.utils.functions":{BinaryCEncoder:[4,2,1,""],Capturing:[4,2,1,""],binarycDecoder:[4,2,1,""],binaryc_json_serializer:[4,1,1,""],call_binary_c_config:[4,1,1,""],catchtime:[4,2,1,""],convert_bytes:[4,1,1,""],count_keys_recursive:[4,1,1,""],create_arg_string:[4,1,1,""],create_hdf5:[4,1,1,""],custom_sort_dict:[4,1,1,""],example_parse_output:[4,1,1,""],extract_ensemble_json_from_string:[4,1,1,""],filter_arg_dict:[4,1,1,""],format_ensemble_results:[4,1,1,""],get_arg_keys:[4,1,1,""],get_defaults:[4,1,1,""],get_help:[4,1,1,""],get_help_all:[4,1,1,""],get_help_super:[4,1,1,""],get_moe_di_stefano_dataset:[4,1,1,""],get_size:[4,1,1,""],handle_ensemble_string_to_json:[4,1,1,""],imports:[4,1,1,""],inspect_dict:[4,1,1,""],is_capsule:[4,1,1,""],load_logfile:[4,1,1,""],make_build_text:[4,1,1,""],merge_dicts:[4,1,1,""],multiply_values_dict:[4,1,1,""],output_lines:[4,1,1,""],parse_binary_c_version_info:[4,1,1,""],recursive_change_key_to_float:[4,1,1,""],recursive_change_key_to_string:[4,1,1,""],remove_file:[4,1,1,""],return_binary_c_version_info:[4,1,1,""],subtract_dicts:[4,1,1,""],temp_dir:[4,1,1,""],update_dicts:[4,1,1,""],verbose_print:[4,1,1,""],write_binary_c_parameter_descriptions_to_rst_file:[4,1,1,""]},"binarycpython.utils.functions.BinaryCEncoder":{"default":[4,3,1,""]},"binarycpython.utils.functions.Capturing":{__enter__:[4,3,1,""],__exit__:[4,3,1,""]},"binarycpython.utils.functions.binarycDecoder":{decode:[4,3,1,""]},"binarycpython.utils.functions.catchtime":{__enter__:[4,3,1,""],__exit__:[4,3,1,""]},"binarycpython.utils.grid":{Population:[5,2,1,""]},"binarycpython.utils.grid.Population":{Moe_di_Stefano_2017:[5,3,1,""],add_grid_variable:[5,3,1,""],evolve:[5,3,1,""],evolve_single:[5,3,1,""],export_all_info:[5,3,1,""],parse_cmdline:[5,3,1,""],return_all_info:[5,3,1,""],return_binary_c_defaults:[5,3,1,""],return_binary_c_version_info:[5,3,1,""],return_population_settings:[5,3,1,""],set:[5,3,1,""],set_moe_di_stefano_settings:[5,3,1,""],write_binary_c_calls_to_file:[5,3,1,""]},"binarycpython.utils.grid_options_defaults":{grid_options_description_checker:[6,1,1,""],grid_options_help:[6,1,1,""],print_option_descriptions:[6,1,1,""],write_grid_options_to_rst_file:[6,1,1,""]},"binarycpython.utils.plot_functions":{color_by_index:[16,1,1,""],dummy:[16,1,1,""],parse_function_hr_diagram:[16,1,1,""],parse_function_masses:[16,1,1,""],parse_function_orbit:[16,1,1,""],plot_HR_diagram:[16,1,1,""],plot_masses:[16,1,1,""],plot_orbit:[16,1,1,""],plot_system:[16,1,1,""]},"binarycpython.utils.run_system_wrapper":{run_system:[18,1,1,""]},"binarycpython.utils.spacing_functions":{"const":[19,1,1,""]},"binarycpython.utils.useful_funcs":{calc_period_from_sep:[21,1,1,""],calc_sep_from_period:[21,1,1,""],maximum_mass_ratio_for_RLOF:[21,1,1,""],minimum_period_for_RLOF:[21,1,1,""],minimum_separation_for_RLOF:[21,1,1,""],ragb:[21,1,1,""],roche_lobe:[21,1,1,""],rzams:[21,1,1,""],zams_collision:[21,1,1,""]}},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:{"000":14,"0000":14,"000000000000e":14,"0001":[11,21],"000116989":15,"000121486":15,"000150087":15,"000154349":15,"000157195":15,"000172877":15,"000211219":15,"00028381":15,"000381347":15,"000512406":15,"000610573":15,"000627913":15,"000688507":15,"0007":2,"000925128":15,"001":[0,11],"00124307":15,"00167028":15,"00224431":15,"00498":15,"005444573822104362":15,"00632092":11,"006827156705e":15,"007109286263e":15,"0073157281034221516":15,"009829948023831718":15,"013208238029791246":15,"01344":15,"0141":11,"0144107":15,"015033359333e":15,"0154":15,"017435498578e":15,"027099358410e":15,"041660877905e":12,"041662558619e":12,"041662560111e":12,"041662564579e":12,"04459e":15,"047074050271e":15,"05150046619238191":15,"05150046619238192":15,"05193":15,"054":2,"055645404546e":15,"0587":15,"069363482023e":15,"069567332611e":15,"069626478211e":15,"069627290216e":15,"07011e":15,"074084349384e":15,"075844624794e":15,"07671":15,"0820":[0,11],"08519":15,"08624781646269201":15,"0862478164626921":15,"087296558990e":15,"08861e":15,"08873e":15,"08msun":[0,11],"0902":[0,11],"09216":15,"093caf0e9":0,"0x7f163859d0c0":11,"0x7f9265091598":[],"0x7fb4d41ebbf8":14,"0x7ff3bdf79620":15,"100":[0,2,11],"1000":[0,7],"10328":15,"10417":15,"10433":15,"10446":15,"104706358826e":15,"1048014407228":15,"1085":14,"108751340926e":15,"11003":14,"112":15,"11282":15,"115":2,"11582":14,"117519147635e":15,"119":15,"120000":0,"12303":15,"12325":14,"12457":14,"12460":14,"12461":14,"12462":[],"125":[0,11,15],"12500":0,"126828648362e":15,"12e":[1,12,14,15],"1300":[],"1301":14,"1302":14,"13461":14,"13462":[],"1357":12,"13876":15,"13e3":[0,11],"1403":2,"14057":12,"14059":12,"14461":14,"14462":[],"146421815741e":15,"150":15,"15000":[0,11,12,14,15],"1506841305680684":15,"15343":15,"1564":15,"15854":15,"15875":15,"15msun":2,"1612":[],"1613":[],"1614":[],"1615":[],"1616":[],"1617":14,"1618":14,"1619":14,"1620":14,"1621":14,"1628444120":15,"1628444121":15,"170425790780e":15,"170770422321e":15,"170770599495e":15,"170775828562e":15,"17089":14,"171086983243e":15,"171108213270e":15,"172196856333e":15,"17639":15,"18838":15,"18914e":15,"190":0,"19314":12,"194842917007e":15,"1951":[0,11],"1972":[0,11],"1975":[0,11],"197x":[0,11],"1980":2,"1983":21,"1986":[0,2,11],"1989":[0,11],"1991":2,"1992":0,"1993":[0,11],"1996":21,"1998":[0,2,11],"1999":[0,11],"1ckzg0p9":[9,17],"1e2":[0,11],"1e9":[0,11],"200":[0,11],"2000":[0,11],"2001":2,"2002":[0,11],"2003":[0,2,11],"2004":[0,11],"2005":[0,11],"2009":[0,11],"2010":[0,2,7,11],"2012":[0,2,11],"2013":[0,11],"2014":[0,2,11],"2015":[0,11],"2016":[0,11],"2017":[0,7,11,15],"2018":[0,1,11],"2019":[0,11],"2020":[0,11],"2021":0,"20210807":[],"20210825":0,"20484":15,"206771867883e":15,"20787":15,"21331":15,"21473":15,"21673":15,"2174":15,"21805":15,"21878":15,"218786094847e":15,"21892":15,"21893":15,"222715508467e":15,"22723621650191106":15,"22759":15,"230407246199e":15,"232906623449e":15,"234709":15,"23604":15,"2383":[],"2424":14,"24954e":15,"25294":15,"2535":15,"255":0,"257":21,"25msun":[0,11],"27442":15,"27563":15,"27565":15,"27572":15,"27804":15,"278384712062e":15,"281":21,"28672":15,"29402e":15,"29444":15,"294870923827e":15,"29678":15,"2969346":2,"29746":15,"2983275843337705":15,"29864":15,"29942":15,"29977":15,"29994":15,"2a7732d03e594ef4b5dfe9051b41d9c0":15,"2msun":[0,11],"3000":[0,11],"30145":15,"30149":15,"30197":15,"3032":15,"30337":15,"30504":15,"30e4":[0,11],"31004":15,"315554923168e":15,"3177":15,"32047":15,"3205":15,"32641e":15,"33062":15,"33079":15,"33524":12,"337250536639e":15,"34071e":15,"34281":15,"34903":15,"34922":15,"34937":15,"350021848285e":15,"35209":15,"3552":15,"364277535630e":15,"3678":15,"3680f3882c0a449c944462abffea2447":15,"36979":15,"36m":11,"38004":15,"38063":12,"3836":15,"38403":15,"38887e":15,"3933":15,"3msun":2,"4000":0,"4046":15,"40513":15,"40745":15,"40749":15,"40935":15,"41074":15,"41264":15,"41295e":15,"42148e":15,"42212":15,"42238":15,"42375":15,"42msun":[0,11],"43925":15,"439623364590e":15,"4424":15,"446":12,"449960890183e":15,"44msun":[0,11],"4500":11,"45000000080":15,"4530":[12,14],"458869865939e":15,"459153942631e":15,"45msun":[0,11],"4603":15,"47276":15,"47961":15,"47976e":15,"4838":14,"48488":15,"4e3":[0,11],"500":[0,11],"5102526289471614":15,"513216011269e":15,"517749":14,"518":14,"522806":[],"523":[],"525":15,"527722847382e":15,"52963":15,"53113":15,"53174":15,"53175":15,"53176":15,"53177":15,"53183":15,"53184":15,"5357":15,"53631":15,"53922":15,"546683":14,"556479830908e":15,"55924":15,"561265707015991":15,"56776":15,"5689":15,"571858031651e":15,"575":15,"577754":[],"59052":15,"59499":15,"5msun":[0,11],"6000":0,"600000":0,"60808":15,"6101":[],"61349":12,"6162":0,"6246354579925537":15,"62486":15,"625":0,"62517":15,"635":0,"64419":15,"65097":15,"653200958306e":15,"67365":[],"687368550125e":15,"68933e":15,"693213405973e":15,"6944":0,"6e1":2,"6e5":[0,11],"6msun":[0,11],"70319":15,"70668e":15,"71025":15,"71288":15,"716":14,"7197":15,"721374713429e":15,"723547465714e":15,"723570798020e":15,"72498e":[12,15],"72638":15,"726405299909e":15,"730":[12,15],"73221":15,"733614170983e":15,"733794947644e":15,"733865371895e":15,"7358":[11,12],"73856":15,"74037":12,"7431":15,"750574783854e":15,"753837732894e":15,"7619":0,"763":2,"764340254985e":15,"765535914728e":15,"765996194699e":15,"76647":15,"766606588165e":15,"768305081494e":15,"773581245005e":12,"774":[],"7797017097473145":15,"78096":15,"78125":0,"783":14,"78384":15,"79411e":15,"795":2,"797342083485e":15,"802132608769e":15,"80457":15,"806014211040e":15,"806123543037e":15,"807147339697e":15,"80msol":2,"81391":15,"8162e":15,"817":14,"8178":15,"81906":15,"82242e":15,"84162":15,"853070305680e":15,"85486":15,"862081089332e":15,"8628":15,"862942347290e":15,"863377990313e":15,"867655467480e":15,"878236827680e":12,"881529045940e":15,"88566":15,"8955":[],"917420996633e":15,"92267":12,"922967341481e":15,"931266944719e":15,"93135e":15,"933751523833e":15,"94027":15,"941017702765e":15,"9458":14,"9514":[],"9545065608702976":15,"9713":15,"97286e":15,"974759306305e":15,"97823":15,"9791":15,"980988739731e":15,"9863e":15,"990017992944e":15,"99198":12,"99255":15,"99283":15,"9947":14,"99471":15,"9983":14,"boolean":[0,4,5,7,11,16,21],"break":[0,11],"case":[0,4,7,11,15],"catch":[4,7,14,15],"char":7,"class":[4,5],"const":[2,5,15,19],"default":[0,1,2,4,5,6,7,11,12,13,15,18],"export":[4,5,15],"float":[0,2,4,11,13,14,19,21],"function":[0,1,2,3,5,6,7,8,9,10,12,16,17,18,19,21],"import":[4,5,11,12,13,14,15],"int":[0,1,2,4,5,6,7,11,15,19,21],"krtickov\u00e1":0,"kub\u00e1t":0,"long":[0,4,5,7,11,15,20],"new":[0,2,4,5,11,14,15],"null":[0,4,11,12,13],"paczy\u0144ski":[0,11],"public":[6,9,15],"return":[1,2,4,5,6,7,11,13,14,15,16,18,19,21],"short":[0,11,20],"super":[0,11],"switch":[0,11],"throw":[9,17],"true":[0,4,5,6,7,11,13,15,16],"try":[0,9,11,14,15,17],"void":12,"while":[0,11],Added:15,Adding:[3,14],And:[6,9,17,21],But:14,Doing:15,For:[0,4,9,11,12,14,16,17],Gas:[0,11],Its:7,NOT:[0,11,18],Not:7,One:[0,11],Pms:16,That:[0,11],The:[0,1,2,3,4,5,7,9,11,12,13,14,15,16,17,18],Then:[4,9,17],There:[2,5,6,7,11,12,13,14,15,16],These:[4,7,11,15,16],Use:[0,5,11,15],Used:[0,7,11,16],Useful:[0,5,6,11,15],Uses:[0,11,19],Using:[3,9],Was:[0,11],Will:[0,4,5,11,15,18],With:6,__arg_begin:11,__attribute__:12,__enter__:4,__exit__:4,_actually_evolve_system:7,_binary_c_bind:[4,11,12,14,21],_binary_c_config_execut:7,_binary_c_dir:7,_binary_c_execut:7,_binary_c_shared_librari:7,_calculate_multiplicity_fract:15,_commandline_input:7,_count:7,_custom_logging_shared_library_fil:7,_end_time_evolut:7,_errors_exceed:7,_errors_found:7,_evolution_type_opt:7,_failed_count:7,_failed_prob:7,_failed_systems_error_cod:7,_generate_grid_cod:7,_grid_vari:7,_loaded_ms_data:7,_main_pid:7,_population_id:7,_probtot:7,_process_run_population_grid:7,_repeat:7,_set:5,_set_ms_grid:7,_start_time_evolut:7,_store_memaddr:7,_system_gener:7,_total_mass_run:7,_total_probability_weighted_mass_run:7,_total_starcount:7,_zero_prob_stars_skip:7,a173:0,abat:[0,11],abbrevi:20,abl:11,about:[3,4,5,6,15,21],abov:[0,2,4,5,11,12,14,15],abridg:[11,12],absolut:[0,11],abund:[0,11],acceler:[0,11],accept:[4,11,15],access:[2,7,12,14,15],accord:[0,2,11],accordingli:[14,15],account:[0,7,11],accret:[0,11],accretion_limit_dynamical_multipli:[0,11],accretion_limit_eddington_lmms_multipli:[0,11],accretion_limit_eddington_steady_multipli:[0,11],accretion_limit_eddington_wd_to_remnant_multipli:[0,11],accretion_limit_thermal_multipli:[0,11],accretor:[0,11,21],act:[0,7,11,15],activ:[0,9,11,17],actual:[0,4,5,7,9,11,12,14,15,16,17],adam:[0,11],adapt:[0,11],add:[0,2,4,5,7,12,14,15,16,19,21],add_grid_vari:[5,15],added:[4,14],adding:[14,15],address:[1,7,11,12,21],admittedli:16,adress:[11,12,21],advis:12,affect:[0,11],after:[0,5,7,11,12,15],ag89:[0,11],again:[4,7,9,13,14,17],against:16,agb:[0,11],agb_3dup_algorithm:[0,11],agb_core_algorithm:[0,11],agb_core_algorithm_default:0,agb_core_algorithm_hurlei:0,agb_core_algorithm_karaka:0,agb_luminosity_algorithm:[0,11],agb_luminosity_algorithm_default:0,agb_luminosity_algorithm_hurlei:0,agb_luminosity_algorithm_karaka:0,agb_radius_algorithm:[0,11],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,age:[0,11],aging:[0,11],albedo:[0,11],algorithm:[9,11],algothim:[0,11],all:[0,1,2,4,5,6,7,9,10,11,13,14,15,16,17,18],all_info:5,alloc:11,allow:[0,2,4,7,11,12],allow_nan:4,along:[0,6,7],alpha:[0,11],alpha_c:[0,11],alphacb:[0,11],alreadi:[5,15],also:[0,3,4,5,6,9,11,12,15,17,21],altern:[0,7,11],alwai:[0,2,7,11],amanda:[0,11],amax:2,amin:2,amount:[0,4,5,6,7,11,15,19],amp:11,amt_cor:[7,15],analys:18,analyt:[5,15],analyz:14,andrew:[9,17],andronov:[0,11],angelou_lithium_cheb_decay_tim:[0,11],angelou_lithium_cheb_massfrac:[0,11],angelou_lithium_cheb_tim:[0,11],angelou_lithium_decay_funct:[0,11],angelou_lithium_decay_tim:[0,11],angelou_lithium_eagb_decay_tim:[0,11],angelou_lithium_eagb_massfrac:[0,11],angelou_lithium_eagb_tim:[0,11],angelou_lithium_gb_decay_tim:[0,11],angelou_lithium_gb_massfrac:[0,11],angelou_lithium_gb_tim:[0,11],angelou_lithium_hg_decay_tim:[0,11],angelou_lithium_hg_massfrac:[0,11],angelou_lithium_hg_tim:[0,11],angelou_lithium_lmms_decay_tim:[0,11],angelou_lithium_lmms_massfrac:[0,11],angelou_lithium_lmms_tim:[0,11],angelou_lithium_ms_decay_tim:[0,11],angelou_lithium_ms_massfrac:[0,11],angelou_lithium_ms_tim:[0,11],angelou_lithium_tpagb_decay_tim:[0,11],angelou_lithium_tpagb_massfrac:[0,11],angelou_lithium_tpagb_tim:[0,11],angelou_lithium_vrot_trigg:[0,11],angelou_lithium_vrotfrac_trigg:[0,11],angular:[0,11,16],ani:[0,2,4,5,9,11,14,15,17],anoth:[0,11],ansi:[0,11],ansi_colour:0,anyth:[0,7,11,15],anywai:[5,14,15],anywher:[5,15],api:[0,3,4,9],api_log_filename_prefix:[0,11,14],append:[1,4,14],appli:[0,11],apply_darwin_radau_correct:0,appropri:[0,7,11],approxim:[0,11],aren:[2,7],arenou2010_binary_fract:2,arg:[2,4,11,13,15,16],arg_dict:4,argopt:[0,11],argpair:[4,13],argstr:[11,12,14],argument:[0,2,4,5,7,11,14,15,18],argument_of_periastron:[0,11],argument_of_periastron_quadrupl:[0,11],argument_of_periastron_tripl:[0,11],around:[0,11,12,14],arrai:[2,4,7,14],arrow:0,artifici:[0,11],artificial_accretion_end_tim:[0,11],artificial_accretion_ignor:0,artificial_accretion_start_tim:[0,11],artificial_angular_momentum_accretion_r:[0,11],artificial_mass_accretion_r:[0,11],artificial_orbital_angular_momentum_accretion_r:[0,11],arxiv:[0,2,11],ask:[0,11,21],asplund:[0,11],assign:[5,15],assum:[0,11,16],ast871:[0,11],astronomi:[0,11],astropi:[9,16,17],atom:4,attempt:[4,5],aug:0,auto:[1,10],autogen_c_logging_cod:[1,12],automat:[0,1,6,9,11,12,17],avaibl:[9,17],avail:[0,4,7,11,12,15,16],avoid:11,awai:[0,11],axi:[0,11,16],b_1:[0,11],b_2:[0,11],b_3:[0,11],b_4:[0,11],b_inclination1:[0,11],b_inclination2:[0,11],b_inclination3:[0,11],b_inclination4:[0,11],back:[0,4,11],backward:[0,11],bagb:[0,11],barn:[0,11],base:[0,2,4,5,9,11,15,16,17,21],base_filenam:[5,15],basic:[5,15],batchmod:[0,11],beasor:[0,11],becaus:[0,2,5,7,9,11,14,17],becom:[0,1,2,4,11,12],been:[0,5,7,11,13],befor:[0,5,7,9,11,15,17],behaviour:[4,15,18],belczynski:[0,11],below:[0,3,7,11,12,15],berro:[0,11],bertolami:[0,11],best:[5,7,9,17],beta:[0,11],beta_reverse_nova:[0,11],beta_reverse_novae_geometri:0,better:[0,4,5,11,15],between:[0,2,11,19],bewar:[5,15],bh_belczynski:0,bh_fryer12_delai:0,bh_fryer12_rapid:0,bh_fryer12_startrack:0,bh_hurley2002:0,bh_prescript:[0,11],bh_spera2015:0,big:[0,7,11],biinari:15,bin:[0,9,11,17],binari:[2,5,7,9,11,14,15,16,17,21],binary_c2:[9,17],binary_c:[1,2,3,4,5,7,12,14,15,16,18],binary_c_api_funct:12,binary_c_cal:[5,15],binary_c_default:15,binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0:15,binary_c_inline_config:1,binary_c_log_cod:[1,12,14],binary_c_macro:[0,11],binary_c_output:4,binary_c_paramet:[0,11,15],binary_c_python:[4,5,11,14,15],binary_c_task_:[0,11],binary_c_write_log_cod:1,binary_grid:[0,11],binary_star:21,binaryc:[1,4,13,18],binaryc_config:1,binaryc_json_seri:4,binarycdecod:4,binarycencod:4,binarycpython3:11,binarycpython:[1,2,3,4,5,6,9,16,17,18,19,21],binarygrid:15,bind:[0,11,12,14],birth:[0,11],bit:2,bivari:[0,11],black:[0,11],black_hol:0,bloecker:[0,11],blog:1,boltzman:16,boltzmann:[0,11],bondi:[0,11],bondi_hoyle_accretion_factor:[0,11],bool:[4,5,6,13,15,16],born:[0,11],bosswissam:4,both:[0,4,11,15],bottom:[0,11,15],bound:[2,19],boundari:2,brake:[0,11],branch:[0,4,11],branch_david:0,branchpoint:[5,15],breakup:[0,11],broken:[0,11],bse:[0,2,11,12,15],bse_opt:[5,14,15],bsf:[0,11],buffer:[0,11],build:[0,1,3,4,11],build_q_tabl:2,built:[0,1,4,9,13,17],burn:[0,11],busso:[0,11],bye:[0,11],c13_eff:[0,11],c5232be5c:[],c_auto_log:7,c_log:0,c_logging_cod:[7,12,14,15],calc_e_integr:2,calc_p_integr:2,calc_period_from_sep:21,calc_sep_from_period:[15,21],calc_total_probden:2,calcul:[0,2,4,5,7,11,15,21],calculate_constants_three_part_powerlaw:2,call:[0,1,4,5,7,11,13,14,15,16,18],call_binary_c_config:4,calls_filenam:15,can:[0,1,2,4,5,7,9,11,12,13,14,15,16,17,18],cannot:[5,12],canon:7,cap:[0,11],capsul:[1,4,11],captur:[0,4,11],carbon:[0,11],carbon_oxygen_white_dwarf:0,carlo:[0,7,11],carrasco:[0,11],carri:[0,11],cast:[4,13],catchtim:4,categor:11,categori:[11,15],categoris:4,caught:[4,14],caus:21,cbdisc:[0,11],cbdisc_albedo:[0,11],cbdisc_alpha:[0,11],cbdisc_eccentricity_pumping_dermin:0,cbdisc_eccentricity_pumping_method:[0,11],cbdisc_eccentricity_pumping_non:0,cbdisc_end_evolution_after_disc:[0,11],cbdisc_fail_ring_inside_separ:[0,11],cbdisc_gamma:[0,11],cbdisc_init_djdm:[0,11],cbdisc_init_dm:[0,11],cbdisc_inner_edge_strip:[0,11],cbdisc_inner_edge_stripping_timescal:[0,11],cbdisc_kappa:[0,11],cbdisc_mass_loss_constant_r:[0,11],cbdisc_mass_loss_fuv_multipli:[0,11],cbdisc_mass_loss_inner_l2_cross_multipli:[0,11],cbdisc_mass_loss_inner_viscous_accretion_method:[0,11],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,11],cbdisc_mass_loss_inner_viscous_multipli:[0,11],cbdisc_mass_loss_ism_pressur:[0,11],cbdisc_mass_loss_ism_ram_pressure_multipli:[0,11],cbdisc_mass_loss_xray_multipli:[0,11],cbdisc_max_lifetim:[0,11],cbdisc_minimum_evaporation_timescal:[0,11],cbdisc_minimum_fr:[0,11],cbdisc_minimum_luminos:[0,11],cbdisc_minimum_mass:[0,11],cbdisc_no_wind_if_cbdisc:[0,11],cbdisc_outer_edge_strip:[0,11],cbdisc_outer_edge_stripping_timescal:[0,11],cbdisc_resonance_damp:[0,11],cbdisc_resonance_multipli:[0,11],cbdisc_torquef:[0,11],cbdisc_viscous_l2_coupl:[0,11],cbdisc_viscous_photoevaporative_coupl:[0,11],cbdisc_viscous_photoevaporative_coupling_inst:[0,11],cbdisc_viscous_photoevaporative_coupling_non:[0,11],cbdisc_viscous_photoevaporative_coupling_visc:[0,11],cee:[0,11],cell:[11,15],cemp:[0,11],cemp_cfe_minimum:[0,11],center:15,centr:5,central_object:[0,11],certain:[7,9,17],cf_amanda_log:[0,11],cflag:[9,17],chabrier:2,chandrasekhar:[0,11],chandrasekhar_mass:[0,11],chang:[0,1,2,4,5,6,7,9,11,12,15,17],chapter:[0,7,10],cheb:[0,11],check:[0,2,4,5,6,11,15,21],check_circular:4,chemic:[0,11],chen:[0,11],child:4,choic:[0,2,11,16],choos:[0,11,12,16],chose:14,chosen:[5,15],circular:[0,11],circumbinari:[0,11],circumstanti:[0,11],claei:[0,11],clark:[0,11],clean:[1,5,9,14,17],clean_up_custom_logging_fil:5,clear:4,clock:4,clone:[9,17],close:[0,11],cloud:[0,11],cls:4,cluster:8,cmdline:5,code:[0,1,5,6,9,11,12,14,15,16,17,18],collaps:[0,11],collapsar:[0,11],collect:21,collid:21,color:16,color_by_index:16,colour:[0,11],colour_log:[0,11],column:[14,15,16],column_nam:14,com:[1,4],combin:[1,4,5,7,12],combine_ensemble_with_thread_join:7,come:[2,9,17,19],comenv_bs:0,comenv_disc_angmom_fract:[0,11],comenv_disc_mass_fract:[0,11],comenv_ejection_spin_method:[0,11],comenv_ejection_spin_method_do_noth:[0,11],comenv_ejection_spin_method_sychron:[0,11],comenv_ejection_spin_method_synchron:0,comenv_merger_spin_method:[0,11],comenv_merger_spin_method_breakup:0,comenv_merger_spin_method_conserve_angmom:[0,11],comenv_merger_spin_method_conserve_omega:[0,11],comenv_merger_spin_method_specif:[0,11],comenv_ms_accret:[0,11],comenv_ms_accretion_fract:[0,11],comenv_ms_accretion_mass:[0,11],comenv_nandez2016:0,comenv_nelemans_tout:0,comenv_ns_accret:[0,11],comenv_ns_accretion_fract:[0,11],comenv_ns_accretion_mass:[0,11],comenv_post_eccentr:[0,11],comenv_prescript:[0,11],comenv_splitmass:[0,11],comenv_undef:0,command:[0,1,5,7,9,11,15,17],commandlin:15,comment:15,commit:4,common:[0,11,12,14,15],compact:15,companion:[0,11],compar:[0,7,11,15],compil:[1,9,12,15,17],compile_shared_lib:1,complet:15,complex:[5,7,12,15,16],compon:[4,16],comput:[0,8,11],condit:[5,12,15],condor:[5,7,8],condor_grid:5,config:[1,4,7,9,17],config_fil:1,configur:[2,5,14,15],conjunct:13,conserv:[0,11],consid:[0,1,2,4,5,7,11,16],constant:[0,2,11,16],construct:[0,1,11,14,15],contain:[0,1,2,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20],content:[3,4,9,11],context:4,continu:[5,15],control:[0,11,15],convect:[0,11],converg:[0,11],convert:[2,4,5],convert_byt:4,cool:[0,11],copi:[0,5,11,21],core:[0,5,7,11,15,16],core_co:12,core_h:12,core_helium_burn:0,core_mass:[0,11,12],correct:[0,2,5,14,16,21],correctli:[9,14,16,17],correspond:16,corretor:[0,11],cosmic:2,cosmic_sfh_madau_dickinson2014:2,could:[0,4,11,15],count:[4,7],count_keys_recurs:4,counter:7,coupl:[0,11],cours:16,cover:13,coverag:[9,17],cowd:[0,11],cpu:[0,11],cpython:11,crap_paramet:[0,11],creat:[2,4,5,12,14,15],create_and_load_logging_funct:[1,12],create_arg_str:4,create_hdf5:4,creation:11,critic:[0,11],cross:[0,11],ctype:1,cuntz:[0,11],current:[0,4,9,11,12,17],custom:[0,1,3,4,5,7,9,11,14,15,16,18],custom_log:[5,7,14],custom_logging_cod:[1,12,14,18],custom_logging_func_memaddr:[7,11,12],custom_logging_funct:[7,9,10,12,14,15],custom_logging_info:5,custom_logging_memaddr:12,custom_logging_print_stat:14,custom_logging_stat:15,custom_opt:[5,14,15],custom_output_funct:12,custom_sort_dict:4,custom_tmp_dir:1,customis:16,cvode:[0,11],d20a4c74d20a43b881c0c9e5def5f76c:15,dai:[0,2,11,12,14,15,21],damp:[0,11],darwin:0,dat:[0,4,15],data:[0,4,5,7,11,14,15,18],data_dict:2,data_dir:[4,5,7,15],datadir:[5,15],datafram:[14,16],dataset:[4,15],date:5,david:[0,9,11,17],david_logging_funct:[0,11],dd7:[0,11],deactiv:[0,11],deal:[4,14],death:[0,11],debug:[0,7,11,15],decai:[0,11],decid:[0,4,11,12],decod:4,decreas:[0,11],deeper:[5,15],def:[14,15],default_to_metal:[0,11],defaultdict:4,defer:[0,11],defin:[0,1,2,5,11,16],definit:[1,21],degener:[0,11],degre:[0,11],delai:0,delta_mcmin:[0,11],den:[0,11],densiti:2,depend:[0,2,9,11,16,17],deprec:[0,11],dermin:[0,11],describ:[0,2,7,11],descript:[0,2,4,7,9,10,11,13],design:[5,16],desir:[0,11],destruct:[5,15],detail:[0,4,11,14],detect:[0,11],determin:[0,5,11,12,15,21],deton:[0,11],dev:[0,11],develop:1,deviat:2,dewi:[0,11],dex:[0,11],diagnost:7,diagram:[0,11,16],dickonson:2,dict2:4,dict:[1,2,4,5,6,13,14,15,20],dict_1:4,dict_2:4,dict_kei:[13,14],dictionari:[1,2,3,4,5,6,7,15,16,20],did:[4,9,17],differ:[0,4,5,9,11,15,16,17],dimmer:[0,11],dir:[9,17],direct:[0,5,11],directli:[4,7,14],director:7,directori:[0,3,4,5,7,9,11,15,17],disabl:[0,11,15],disable_debug:[0,11],disable_end_log:[0,11],disable_ev:[0,11],disc:[0,11],disc_legacy_log:[0,11],disc_log2d:[0,11],disc_log:[0,11],disc_log_directori:[0,11],disc_log_dt:[0,11],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,11],disc_stripping_timescale_infinit:0,disc_stripping_timescale_inst:0,disc_stripping_timescale_orbit:0,disc_stripping_timescale_visc:0,disc_timestep_factor:[0,11],discret:15,discs_circumbinary_from_comenv:[0,11],discs_circumbinary_from_wind:[0,11],disk:[0,5,11],dispers:[0,11],displai:[0,11],dist:[9,17],distefano:2,distribut:[0,2,5,8,11,15],distribution_funct:[9,10,15],divid:8,dlnm1:[5,15],dlog10per:15,dlogp:2,do_dry_run:7,doc:[4,6,9,15,17],doc_fetch:2,docstr:[9,14,16,17],document:[4,6,7,10,15],doe:[0,2,4,5,7,11,12,13,14,15,21],doesn:[5,7],doesnt:6,doing:[0,1,5,6,9,11,17],don:[2,4,7],done:[0,4,5,9,11,15,17],donor:[0,11,21],donor_limit_dynamical_multipli:[0,11],donor_limit_envelope_multipli:[0,11],donor_limit_thermal_multipli:[0,11],donor_rate_algorithm_bs:0,donor_rate_algorithm_claeys2014:0,dont:11,doubl:[12,15],down:15,dphasevol:[5,15],dr2:[0,11],dr3:[0,11],drai:[0,11],dredg:[0,11],drop:14,dry:7,dstep:2,dt_limit:13,dtfac:[0,11],dtlimit:4,dtm:[1,12,15],due:[9,17],dummi:[2,16],dump:[0,4,11,14],dumpvers:[0,11],duquennoi:2,duquennoy1991:2,dure:[0,11],dust:[0,11],dwarf:[0,11],dynam:[0,11],e2_hurley_2002:0,e2_izzard:0,e2_mint:0,e2_prescript:[0,11],each:[0,2,4,5,7,11,15],eagb:[0,11],eagb_wind_beasor_etal_2020:0,eagb_wind_bs:0,eagb_wind_goldman_etal_2017:0,eagbwind:[0,11],eagbwindfac:[0,11],earli:[0,11],early_asymptotic_giant_branch:0,easi:[4,14],easier:[4,15],ecc2:2,ecc3:2,ecc:[2,5,14,15],eccentr:[0,2,11,12,14,15,16,21],eccentric_rlof_model:[0,11],eccentricity_quadrupl:[0,11],eccentricity_tripl:[0,11],echo:[0,11],eddington:[0,11],edg:[0,5,11,15],edit:12,edu:[0,11],effect:[0,2,7,11,12],effective_metal:[0,11],effici:[0,11],egg:[9,17],eggleton:[0,11,21],either:[0,4,5,7,9,11,15,17,18],eject:[0,11],elabor:12,eld:[0,11],eldridg:[0,11],electon:[0,11],electron:[0,11],element:[0,1,4,7,11,13,16],els:12,email:4,emp:[0,11],emp_feh_maximum:[0,11],emp_logg_maximum:[0,11],emp_minimum_ag:[0,11],empti:[4,6,14],enabl:[0,11],encod:4,encount:7,end:[0,2,4,7,11],end_index:2,end_timestamp:15,energi:[0,11],enhanc:[0,11],enlarg:[0,11],enough:2,ensembl:[0,4,7,11,13],ensemble_def:[0,11],ensemble_dictionari:4,ensemble_dt:[0,11],ensemble_factor_in_probability_weighted_mass:7,ensemble_filter_:[0,11],ensemble_filters_off:[0,11],ensemble_json:4,ensemble_legacy_ensembl:[0,11],ensemble_list:5,ensemble_logdt:[0,11],ensemble_logtim:[0,11],ensemble_macro:[0,11],ensemble_output_:7,ensemble_startlogtim:[0,11],ensure_ascii:4,enter:[0,9,11,17],enthalpi:[0,11],entir:[12,14],entri:[4,5],env:[9,11,16,17],envelop:[0,11],equal:[0,4,15],equat:[0,11],equation_of_state_algorithm:[0,11],equation_of_state_paczynski:0,equatori:[0,11],equival:7,errno:[9,17],error:[0,4,7,9,11,15,17],errors_exceed:15,errors_found:15,esa:2,escap:[0,11],escape_fract:[0,11],escape_veloc:[0,11],eta:[0,11],etal:[0,11],etc:[0,4,5,8,9,11,14,15,16,17,18],euler:[0,11],evalu:[2,5,15,21],evan:[0,11],evapor:[0,11],evaporate_escaped_orbiting_object:[0,11],even:13,event:[0,11],everi:[0,9,11,17],everyth:[5,7,14,15],everytim:[9,17],evid:[0,11],evolut:[0,1,5,7,11,14,15,16],evolution_split:[0,11],evolution_splitting_maxdepth:[0,11],evolution_splitting_sn_eccentricity_threshold:[0,11],evolution_splitting_sn_n:[0,11],evolution_typ:[7,15],evolutionari:[0,11,14],evolv:[0,3,5,7,11,12],evolve_popul:15,evolve_singl:[5,12,14],exact:[1,4,7],exactli:[0,11],exampl:[1,2,4,5,14,18],example_above_m:12,example_compact_object:15,example_dco:15,example_df:14,example_head:4,example_log:18,example_log_co:[1,12],example_logging_string_co:12,example_logging_string_post_m:12,example_massloss:[12,14],example_output:14,example_parse_output:4,example_pop:[14,15],example_pop_set:15,example_python_population_result:15,example_sn:12,exce:[0,7,11],except:[4,5,6,7,11,15,16],execut:[0,5,7,9,11,15,17],exist:[0,5,6,11,15],exist_ok:[4,15],exit:[0,4,11],exp:[5,15],expand:[15,18],expect:[9,11,17],experiment:[0,4,11],explain:[3,4],explicitli:[0,1,11],explod:[0,11],explos:[0,11],expoenti:[0,11],expon:[0,11],export_all_info:[5,15],express:[0,11],extend:[0,9,17],extens:11,extern:[0,11],extra:[0,3,5,7,9,11,15,18],extra_text:6,extract:[4,15],extract_ensemble_json_from_str:4,extrapol:[2,7],fabian:[0,11],fabian_imf_log:[0,11],fabian_imf_log_tim:[0,11],fabian_imf_log_timestep:[0,11],factor:[0,2,4,7,11],fade:[0,11],fail:[0,4,7,9,11,17],fail_sil:4,failed_count:15,failed_prob:15,failed_system:7,failed_system_log:7,failed_systems_error_cod:15,failed_systems_threshold:7,failsaf:14,failur:[0,11],fallback:[0,12],fallback_mass:12,fals:[0,4,5,7,11,13,15,16],fancy_parsing_funct:18,far:[0,11],farmer:[0,11],fase:15,fast:[0,11],faster:15,favorit:14,featur:[3,9,15],feed:7,ferguson:[0,11],fetch:14,few:[0,11],field:[0,11],fig:[0,2,11],figur:[7,16],file:[0,1,4,5,6,7,8,9,11,14,15,16,17,18],file_log:[0,11],filehandl:6,filenam:[0,1,4,5,7,11,14,15,18],filenotfounderror:[9,17],filepath:1,fill:14,fill_data:2,filter:[0,4,11,13],filter_arg_dict:4,filter_valu:[4,13],fin:[0,11],find:[4,5,7,9,15,17],finish:[4,15,16],first:[0,2,4,5,9,11,14,15,17,21],first_giant_branch:0,fishlock:[0,11],fit:[0,2,4,5,11,14,21],fix:[0,2,4,5,11,14,15,16],flag:[0,1,4,7,11],flash:[0,11],flat:[2,7],flatsect:[2,15],flaw:5,float_overflow_check:[0,11],flto:[9,17],fold:2,follow:[0,2,4,7,9,11,12,16,17],forc:[0,9,11,17],force_circularization_on_rlof:[0,11],force_corotation_of_primary_and_orbit:[0,11],form:[0,4,5,6,11,15],formal:[0,11],format:[0,2,4,5,11,12,14,15],format_ensemble_result:4,formula:[0,11],forward:[0,11],found:[2,9,15,17],four:[0,11],fpic:1,fraction:[0,2,7,11,15],framework:11,free_persistent_data_memaddr_and_return_json_output:11,free_store_memaddr:11,frequenc:[0,11],friction:[0,11],fring:[0,11],from:[0,2,4,5,7,13,14,15,16,21],from_binary_c_config:1,fryer:0,ftz:[9,17],full:[3,4,7,12],full_path:4,further:[2,15],fuv:[0,11],gaia:[0,2,11],gaia_colour_transform_method:[0,11],gaia_conversion_ubvri_bivariate_jordi2010:[0,11],gaia_conversion_ubvri_riello2020:[0,11],gaia_conversion_ubvri_univariate_evans2018:[0,11],gaia_conversion_ubvri_univariate_jordi2010:[0,11],gaia_conversion_ugriz_bivariate_jordi2010:[0,11],gaia_conversion_ugriz_riello2020:[0,11],gaia_conversion_ugriz_univariate_evans2018:[0,11],gaia_conversion_ugriz_univariate_jordi2010:[0,11],gaia_l_binwidth:[0,11],gaia_teff_binwidth:[0,11],gain:7,galact:[0,11],gallino:[0,11],gamma:[0,11],gap:[0,11],garcia:[0,11],gauss:[0,11],gaussian:2,gaussian_func:2,gaussian_normalizing_const:2,gb_reimers_eta:[0,11],gb_wind_beasor_etal_2020:0,gb_wind_goldman_etal_2017:0,gb_wind_reim:0,gb_wind_schroeder_cuntz_2005:0,gbwind:[0,11],gbwindfac:[0,11],gcc:[1,9,17],gce:[0,11],gener:[0,1,2,4,5,6,7,11,12,14,15,16],general_info:4,generalis:2,geometr:[0,11],gerosa:[0,11],get:[0,2,3,4,5,6,9,12,14,15,17,18,21],get_arg_kei:4,get_default:[4,13],get_help:[4,13],get_help_al:[4,5,13],get_help_sup:[4,13],get_integration_constant_q:2,get_max_multipl:2,get_moe_di_stefano_dataset:4,get_siz:4,giant:[0,11],giant_branch:0,git:[0,4,15],git_branch:4,git_build:4,github:4,gitlab:9,give:[0,2,4,11,21],given:[0,1,2,4,5,7,11,18,21],global:[0,2,11],global_dict:2,gmax:2,gmin:2,gnu:11,goe:[0,4,5,11,12,14,16],gogo:[0,11],going:[9,17],goldman:[0,11],gonna:2,good:[0,7,11,14,15,21],gov:[0,11],gravit:[0,11,15],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,11],gravitational_radiation_modulator_:[0,11],gravitational_radiation_modulator_j:[0,11],gravitational_radiation_non:0,grb:[0,11],great:[0,11],greater:[0,11],grevess:[0,11],grid:[0,3,4,5,9,10,11,12,14],grid_class:[9,10],grid_cod:5,grid_opt:[5,7,14,15],grid_options_default:6,grid_options_defaults_dict:6,grid_options_descript:[6,15],grid_options_description_check:6,grid_options_help:6,grid_vari:[7,15],grid_variable_numb:15,gridcode_filenam:7,gridtyp:[5,15],group:4,gsl:[9,17],gsl_dir:[9,17],guess:[0,2,11],h5py:[9,17],hachisu:[0,11],hachisu_disk_wind:[0,11],hachisu_ignore_qcrit:0,hachisu_qcrit:[0,11],hack:6,had:5,half:[0,11],hall:[0,11],handi:[0,11],handl:[0,3,4,5,7,11,14,18,21],handle_ensemble_string_to_json:4,happen:[0,11],hardcod:[12,15],has:[0,1,4,5,7,11,12,13,15],have:[0,2,3,4,5,6,7,9,11,12,14,15,16,17],hbb:[0,11],hbbtfac:[0,11],hdf5:4,hdf5file:4,header:[1,4,12,14,15],headerlin:15,headlin:7,hegb:0,hehg:0,height:[2,15],helium:[0,11],helium_flash_mass_loss:[0,11],helium_white_dwarf:0,help:[0,3,4,6,11,14,15],help_al:[0,11],hem:0,henc:[0,11],hendrik:[9,17],here:[1,4,5,7,11,12,14,16],hertzsprung:[0,11],hertzsprung_gap:0,hertzstrpung:[0,11],heuvel:[0,11],hewd:[0,11],hewd_hewd_ignition_mass:[0,11],hex:7,high:[0,2,11],higher:[0,2,4,7,9,11,15,17],his:2,histori:2,hold:7,hole:[0,11],home:11,homogen:[0,11],hood:14,hopefulli:[0,11],hot:[0,11],how:[0,4,5,7,11,12,14,15],howev:[0,11,12,15],hoyl:[0,11],hpc:[5,8],hpc_function:[9,10],hr_diagram:16,hrd:[0,11],hrdiag:[0,11],hrdiag_output:[0,11],html:[9,15,17],http:[0,1,2,4,11,15],hurlei:[0,11],hut:[0,11],hybrid:[0,11],hydro:[0,11],hydrogen:[0,11],ibc:[0,11],id_cor:12,idea:[15,16],idum:[0,11],ignit:[0,11],ignor:[0,5,7,9,11,12,14,15,17],iia:[0,11],iloc:14,imf:[0,2,11],imf_chabrier2003:2,imf_scalo1986:2,imf_scalo1998:2,imf_tinsley1980:2,immedi:[0,11],implement:[0,5,7,11],impli:[0,11],impos:15,improv:2,inclin:[0,11],inclination1:[0,11],inclination2:[0,11],inclination3:[0,11],inclination4:[0,11],inclini:[0,11],incliniation_quadrupl:[0,11],incliniation_tripl:[0,11],includ:[0,1,2,4,5,9,11,12,14,15,16,17],include_binary_c_default:[5,15],include_binary_c_help_al:[5,15],include_binary_c_version_info:[5,15],include_default:[5,15],include_popul:15,include_population_set:5,incom:[0,11],increas:[0,11],inde:[0,11],indent:[4,14],index:[0,2,9,11,13,14],indic:[0,2,11],individu:[3,9],individual_nova:[0,11],induc:[0,11],inertia:[0,11],info:[4,5,9,11,13,15,16,17],inform:[0,1,3,4,5,6,12,14,15,16],init:5,init_abund:[0,11],init_abund_dex:[0,11],init_abund_mult:[0,11],init_abunds_onli:[0,11],initi:[0,2,5,11,13,14],initial_abundance_hash:5,initial_abundance_mix:[0,11],initial_abunds_onli:[0,11],initial_mass:14,inner:[0,11],input:[1,2,4,5,7,9,11,13,14,16,21],input_dict:4,insert:[5,15],insid:[0,11],inspect:[4,14,16],inspect_dict:4,inspir:[1,16,21],instabl:[0,11],instanc:[4,14,15],instant:[0,11],instantli:[0,11],instead:[0,4,7,11],integ:[0,5,7,11,21],integr:2,integrals_str:2,interact:[0,6,11],interfac:[4,9,11,17],interfer:[9,17],intern:[0,7,11,13],internal_buff:[0,11],internal_buffering_off:0,internal_buffering_print:0,internal_buffering_stor:0,interpol:[2,5],interpolate_in_mass_izzard2012:2,interpolator_nam:2,intershel:[0,11],interstellar:[0,11],intger:[0,11],intro:[0,11],invers:21,involv:[0,11],inward:[0,11],ipynb:15,is_capsul:4,isfil:15,isn:[4,5],isnt:15,isotop:[0,4,11,13],isotope_hash:5,isotope_list:5,item:1,iter:4,its:[0,4,5,6,9,11,15,16,17,18],itself:[4,7,9,12,14,17],iwamoto:[0,11],izzard2012_period_distribut:2,izzard:[0,9,11,17],jager:[0,11],jaschek:2,jeff:[9,17],jia:[0,11],john:[0,11],join:[11,12,14,15],jordi:[0,11],json:[4,5,7,11,14,15],jsondecod:4,jsonencod:4,jupyt:[9,17],just:[0,2,4,5,7,11,15,21],kap:[0,11],kappa:[0,11],kaps_rentrop:[0,11],karaka:[0,11],keep:[5,15],kei:[1,2,4,5,6,7,13,14,15,16],kelvin:[0,11],keplerian:[0,11],keyword:[16,18],kick:[0,7,11],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,12,15],kim:[0,11],kind:[0,11],kippenhahn:[0,11],know:[0,1,5,6,11,13,14],known:[0,2,5,11,14,15,18],kroupa2001:[2,5,15],kroupa:2,krticka:0,ktg93:2,kwarg:[5,16,18],lambda:[0,11],lambda_c:[0,11],lambda_ce_dewi_tauri:0,lambda_ce_klencki_2020:0,lambda_ce_polytrop:0,lambda_ce_wang_2016:0,lambda_enthalpi:[0,11],lambda_ionis:[0,11],lambda_min:[0,11],lambda_mult:[0,11],lambda_multipli:[0,11],lambda_v:2,lamer:[0,11],landau:[0,11],langer:[0,11],larger:[0,11],last:2,lastli:[11,14],latter:[0,11],law:2,law_const:2,lbv:[0,11],ld_library_path:[9,17],lead:[0,11,15,21],learn:12,least:[9,17],leav:[0,11],left:[0,11],legaci:[0,11],legacy_yield:[0,11],len:[14,15],lengthen:[0,11],less:[0,1,2,3,11,14],let:[5,14,15],level:[1,4],li7:[0,11],lib:[9,11,14,17],libbinary_c:7,libcustom_logging_5d7779e8190e4b79b10c7e6a44cb0e7:14,libcustom_logging_8967553693ac4e11a49c42d4eef773e8:14,libcustom_logging_e9c2bec7f15541eb847fc6013e48e7:[],libcustom_logging_eac2dfc438a14e5a9f5be98b1b6b4294:[],libgsl:[9,17],libmemo:[9,17],librari:[0,1,5,7,11,12,18],library_path:[9,17],librinterpol:[9,17],lies:[0,11],lifetim:[0,11,15],lifshitz:[0,11],like:[0,1,4,5,7,9,11,15,16,17,19],limit:[0,11,15,16],line:[1,4,5,7,9,12,14,15,16,17],linear2:7,linear:[0,2,7,11],linear_extrapolation_q:2,linearli:19,linker:1,linspac:19,linux:11,list:[0,1,2,4,7,11,14,15,18,19],list_arg:[0,11],list_of_sub_kei:2,lit:[0,11],lithium:[0,11],lithium_gb_post_1dup:[0,11],lithium_gb_post_heflash:[0,11],lithium_hbb_multipli:[0,11],lithium_t:[0,11],littleton:[0,11],liu:[0,11],llnl:[0,11],lnm1:[5,15],load:[0,1,4,5,7,11,12,14,15,16],load_logfil:4,lobe:[0,11,21],local:2,locat:[0,2,7,9,11,17],lodder:[0,11],log10:[0,2,11,15],log10m1:7,log10p:2,log10per:15,log10pmin:2,log:[0,1,2,3,4,5,7,9,11,14,16,17,18,21],log_arg:7,log_args_dir:7,log_arrow:0,log_every_timestep:[12,14],log_fil:7,log_filenam:[0,11,14,18],log_runtime_system:7,logarithm:2,logensembletim:[0,11],logfil:[4,9,14,17],logg:[0,11],logger:15,logging_dict:1,logging_lin:12,logic:[1,5,7,12],logmass:2,logp:2,logper:2,logperiod:2,long_spectral_typ:2,longer:[0,11],longnam:[5,15],look:[1,4,9,15,17],lookback:[0,11],loon:[0,11],loop:[5,14,15],loos:16,lose:[0,11],loss:[0,11,14],lost:[0,11],lot:[4,7,15,18],low:[0,2,11],low_mass_m:0,low_mass_main_sequ:0,lower:[0,2,5,11,15,19],lsoda:[0,11],lsun:[0,11,16],lugaro:[0,11],luminos:[0,11,16],luminosity_1:16,luminosity_2:16,lynnett:[0,11],m_1:[0,5,11,12,13,14,15,18],m_2:[0,11,12,14,15],m_3:[0,11],m_4:[0,11],m_max:[2,5,15],m_min:[5,15],maccretor:[0,11],machin:[7,9,17],macro:[0,4,11,13],madau:2,maeder:[0,11],magellan:[0,11],magnet:[0,11],magnetic_braking_algorithm:[0,11],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,11],magnetic_braking_gamma:[0,11],magnitud:4,mai:[0,11],main:[0,1,7,9,11,12,15,17],main_sequ:[0,11],mainli:8,major:[0,11],make:[0,1,2,4,5,7,9,11,14,15,16,17,18],make_build_text:4,makedir:[4,15],manag:[4,9,17],mani:[0,5,7,11,13,15],manual:12,manufactur:[0,11],map:7,maria:[0,11],mass:[0,1,2,4,5,7,11,13,14,15,16,18,21],mass_1:[15,16],mass_2:[15,16],mass_accretion_for_eld:[0,11],mass_accretor:21,mass_donor:21,mass_evolut:16,mass_for_hestar_ia_low:[0,11],mass_for_hestar_ia_upp:[0,11],mass_of_pmz:[0,11],mass_str:2,massiv:[0,2,11],massless:[0,11],massless_remn:0,master:[7,16],match:[0,4,11,14,15,16],materi:[0,11],math:[5,15],matplotlib:[9,16,17],matter:[0,11],mattsson:[0,11],mattsson_mass_loss:[0,11],mattsson_orich_tpagbwind:[0,11],max:[0,2,11,12,15],max_bound:[2,19],max_evolution_tim:[0,1,11,12,14,15],max_hewd_mass:[0,11],max_model_numb:[0,11],max_multipl:2,max_neutron_star_mass:[0,11],max_queue_s:7,max_stellar_angmom_chang:[0,11],max_stellar_type_1:[0,11],max_stellar_type_2:[0,11],max_stellar_type_3:[0,11],max_stellar_type_4:[0,11],max_tim:14,max_val:2,maximum:[0,2,7,11,12,21],maximum_mass_ratio_for_instant_rlof:[0,11],maximum_mass_ratio_for_rlof:21,maximum_mcbagb_for_degenerate_carbon_ignit:[0,11],maximum_nuclear_burning_timestep:[0,11],maximum_timestep:[0,11],maximum_timestep_factor:[0,11],maxmimum:[0,11],maxwellian:[0,11],mayb:16,mayor:2,mc13_pocket_multipli:[0,11],mch:[0,11],mcmin:[0,11],mdonor:[0,11],mean:[0,2,4,5,7,9,11,17],meant:7,measur:4,medium:[0,11],mega:2,memaddr:[11,12],memori:[1,5,7,11,12,21],menv:[0,11],merg:[0,2,4,7,11],merge_dict:[4,13],merge_multipl:2,merger:[0,11],merger_angular_momentum_factor:[0,11],merger_mass_loss_fract:[0,11],mesa:[9,17],mesasdk_init:[9,17],mesasdk_root:[9,17],messag:4,mestel:[0,11],met:[5,15],metal:[0,2,11,12,14,15,21],method:[0,5,7,11,12,14,15],meynet:[0,11],might:[4,5,9,15,17],milki:[0,11],miller:[0,11],min:[2,12,15],min_bound:[2,19],min_p:2,min_per:2,min_val:2,minimal_verbos:4,minimum:[0,2,4,7,11,21],minimum_co_core_mass_for_carbon_ignit:[0,11],minimum_co_core_mass_for_neon_ignit:[0,11],minimum_donor_menv_for_comenv:[0,11],minimum_envelope_mass_for_third_dredgeup:[0,11],minimum_helium_ignition_core_mass:[0,11],minimum_mcbagb_for_nondegenerate_carbon_ignit:[0,11],minimum_orbital_period_for_instant_rlof:[0,11],minimum_period_for_rlof:21,minimum_separation_for_instant_rlof:[0,11],minimum_separation_for_rlof:21,minimum_time_between_pn:[0,11],minimum_timestep:[0,11],mint:[0,11],mint_data_cleanup:[0,11],mint_dir:[0,11],mint_disable_grid_load_warn:[0,11],mint_fallback_to_test_data:0,mint_hard_max_nshel:0,mint_hard_min_nshel:0,mint_kippenhahn:[0,11],mint_kippenhahn_companion_stellar_typ:[0,11],mint_kippenhahn_stellar_typ:[0,11],mint_maximum_nshel:0,mint_maximum_shell_mass:[0,11],mint_metal:[0,11],mint_minimum_nshel:0,mint_minimum_shell_mass:[0,11],mint_ms_rejuven:[0,11],mint_nshel:0,mint_nuclear_burn:[0,11],mint_remesh:[0,11],mint_use_zams_profil:[0,11],mira:[0,11],misc:[9,11],miscellan:[4,13],miss:[0,4,6,11],mix:[0,4,7,11],mixtur:[0,11],mmax:2,mmin:[2,7],mnra:21,model:[0,1,7,11,12,14,15],modif:3,modifi:[0,11,12],modul:[0,6,7,10,11,13,15],modulo:7,moe:[2,4,5,9,15],moe_di_stefano_2017:5,moe_di_stefano_2017_multiplicity_fract:2,moe_di_stefano_2017_pdf:2,moment:[0,11,12,15,19],momenta:[0,11,16],momentum:[0,11],mont:[0,7,11],monte_carlo_kick:[0,11],more:[0,1,3,4,5,7,9,11,12,13,14,15,16,17,19],most:[4,11],mostli:[4,6,7,15,16,18],move:[0,11],msun:[0,2,11,12,14],much:[0,4,11,15],multi:7,multipl:[0,2,4,7,11,15],multiplc:[0,11],multipli:[0,4,7,11],multiplicity_arrai:2,multiplicity_fraction_funct:7,multiplicity_model:7,multiplicity_modul:7,multiply_values_dict:[4,13],multiprocess:7,must:[0,2,11,14,15],my_stellar_data:[1,12,15],myr:[0,11,14],n100:[0,11],n100_z0:[0,11],n100h:[0,11],n100l:[0,11],n10:[0,11],n150:[0,11],n1600:[0,11],n1600c:[0,11],n200:[0,11],n20:[0,11],n300c:[0,11],n40:[0,11],naked_helium_star_giant_branch:0,naked_helium_star_hertzsprung_gap:0,naked_main_sequence_helium_star:0,name:[1,4,5,6,11,13,15,18,20],natur:[0,11],nauenberg:[0,11],nearer:[0,11],nebula:[0,11],necessari:[4,5,15],need:[0,2,5,9,11,12,14,15,17],neg:[0,4,11],neither:[0,5,11],neleman:[0,11],nelemans_gamma:[0,11],nelemans_max_frac_j_chang:[0,11],nelemans_minq:[0,11],nelemans_n_comenv:[0,11],nelemans_recalc_eccentr:[0,11],nemp:[0,11],nemp_cfe_minimum:[0,11],nemp_nfe_minimum:[0,11],nenamg:[0,11],neon:[0,11],nest:[4,5,15],network:[0,11,13],neutrn:[0,11],neutron:[0,11,15],neutron_star:0,never:[0,11],newer:[0,2,11],newli:[0,11],newopt:2,newton:[0,11],next:[4,15],nice:[1,5,16],nieuwenhuijzen:[0,11],nieuwenhuijzen_windfac:[0,11],nmax:2,no_thermohaline_mix:[0,11],noecho:[0,11],noechonow:[0,11],noel:[0,11],nolowq:7,nomin:[0,11],non:[0,7,11],nonconservative_angmom_gamma:[0,11],none:[0,1,2,4,5,6,7,11,15,21],nonetyp:15,nonzero:7,nor:[0,11],norm:7,normal:[0,4,11],normalis:[2,7],normalize_dict:2,normalize_multipl:7,notabl:15,note:[0,7,11],notebook:[9,11,12,13,14,15,17],notebook_api_funct:14,notebook_custom_log:[14,15],notebook_individual_system:[12,14,15],notebook_popul:14,noteworthi:3,noth:[5,7],notifi:18,nova:[0,11],nova_faml_multipli:[0,11],nova_irradiation_multipli:[0,11],nova_retention_algorithm_claeys2014:0,nova_retention_algorithm_const:0,nova_retention_algorithm_hillman2015:0,nova_retention_fract:[0,11],nova_retention_method:[0,11],nova_timestep_accelerator_index:[0,11],nova_timestep_accelerator_max:[0,11],nova_timestep_accelerator_num:[0,11],now:[0,2,4,11,12,14,15],nuclear:[0,11],nuclear_mass_hash:5,nuclear_mass_list:5,nucleosynthesi:[0,4,11],nucleosynthesis_sourc:[4,13],nucreacmult:[0,11],nucsyn:[9,11],nucsyn_angelou_lithium:[0,11],nucsyn_gce_outflow_check:[0,11],nucsyn_hbb:[0,11],nucsyn_metal:[0,11],nucsyn_network:[0,11],nucsyn_network_error:[0,11],nucsyn_s_process:[0,11],nucsyn_solv:[0,11],nucsyn_third_dredge_up:[0,11],nugi:[0,11],num_ansi_colour:0,number:[0,2,4,5,7,9,11,15,17],numer:4,numpi:[4,9,14,17,19],obj:4,object:[0,3,4,5,7,8,11,16],object_hook:4,object_pairs_hook:4,object_parse_funct:14,obtain:0,obvious:12,occur:[0,11,21],off:[0,11,15],off_m:14,offset:[0,11],ohio:[0,11],old:7,old_solut:[9,17],omega:[0,11],onc:[0,11],one:[0,4,5,7,11,13,15,16],onewd:0,onli:[0,4,5,7,11,12,15,21],onset:[0,11],onto:[0,2,11],opac:[0,11],opacity_algorithm:[0,11],opacity_algorithm_ferguson_op:0,opacity_algorithm_paczynski:0,opacity_algorithm_star:0,opal:[0,11],open:[14,15],opm:2,opt:[2,4,11],option:[0,1,2,4,5,9,10,11,15,17,21],orb:[5,15],orbit:[0,2,11,16,21],orbit_evolut:16,orbital_inclin:[0,11],orbital_inclinationi:[0,11],orbital_period:[0,11,12,14,15,21],orbital_period_quadrupl:[0,11],orbital_period_tripl:[0,11],orbital_phas:[0,11],orbital_phase_quadrupl:[0,11],orbital_phase_tripl:[0,11],orbiting_object:[0,11],orbiting_objects_close_pc_threshold:[0,11],orbiting_objects_log:[0,11],orbiting_objects_tides_multipli:[0,11],orbiting_objects_wind_accretion_multipli:[0,11],order:[3,4,5,15],ordereddict:4,org:[0,2,11],origin:[9,17],other:[0,1,2,4,6,7,9,11,13,14,15,16,17],otherwis:[0,5,6,7,11],out:[4,6,7,12,13],outcom:[0,11],outer:[0,11],outfil:[5,15],outfile_nam:1,outfilenam:15,output:[1,3,4,5,7,9,11,12,13,14,16,17,18,21],output_dict:14,output_dir:[5,14,15],output_fil:[4,6,14],output_filenam:[5,15],output_lin:4,outsid:[0,2,11],outward:[0,11],over:[4,5,13,14,15],overflow:[0,11],overlap:4,overrid:2,overriden:15,overshoot:[0,11],overspin_algorithm:[0,11],overspin_bs:[0,11],overspin_massloss:[0,11],overview:11,own:[5,7,9,12,14,15,17],oxygen:[0,11],oxygen_neon_white_dwarf:0,packag:[4,9,11,15,17,19],paczynski:[0,11],page:[0,9,11,15,17],pair:[0,4,11],panda:[4,9,14,16,17],pane:16,panel:[0,11],paper:[0,11],param_nam:4,paramet:[1,2,3,4,5,6,7,9,11,12,14,15,16,18,19,21],parameter_nam:[4,5,11,13,15],parameter_value_input_typ:[4,13],pars:[3,4,5,14,15,16,18],parse_binary_c_version_info:4,parse_cmdlin:5,parse_const:4,parse_float:4,parse_funct:[5,7,14,15,18],parse_function_hr_diagram:16,parse_function_mass:16,parse_function_orbit:16,parse_int:4,parsec:2,part:[2,5,11,14,15,21],partial:[0,11],particularli:[0,11],pasp:2,pass:[5,7,9,11,12,14,15,16,17,18],path:[4,7,9,14,15,17],patho:[9,17],pdf:[0,2,9,11,17],pend:[0,11],per:[0,4,5,7,11,14,15,21],percentag:[0,11],peret:[0,11],perform:[0,11],perhap:[0,11],periastron:[0,11],pericent:21,period:[0,2,11,12,14,15,16,21],period_str:2,perl:[1,15],persist:11,persistent_data:11,pgo:[0,11],phase:[0,11],phasevol:[0,11,15],phdi:[0,11],photoevapor:[0,11],php:2,physic:15,pick:16,piec:[5,15],pinnsonneault:[0,11],pisn:[0,11],pkg:[9,17],place:[0,11],placehold:16,plai:[0,11],plan:7,planetari:[0,11],plaw2:7,pleas:[0,4,11,15],plot:[0,11,14,16],plot_funct:[9,10],plot_hr_diagram:16,plot_hr_diagram_singl:16,plot_mass:16,plot_orbit:16,plot_system:16,plot_typ:16,pls:5,plu:[0,11],pms:16,pms_mass_1:16,pms_mass_2:16,pn_comenv_transition_tim:[0,11],pn_fast_wind:[0,11],pn_fast_wind_dm_agb:[0,11],pn_fast_wind_dm_gb:[0,11],pn_fast_wind_mdot_agb:[0,11],pn_fast_wind_mdot_gb:[0,11],pn_hall_fading_time_algorithm:[0,11],pn_hall_fading_time_algorithm_maximum:[0,11],pn_hall_fading_time_algorithm_minimum:[0,11],pn_resolv:[0,11],pn_resolve_maximum_envelope_mass:[0,11],pn_resolve_minimum_effective_temperatur:[0,11],pn_resolve_minimum_luminos:[0,11],pne:[0,11],pogg:[0,11],point:[0,2,4,5,9,11,17],poisson:[2,7],pol:[0,11],polytrop:[0,11],pop:12,pop_macro:12,popul:[0,2,3,5,6,8,9,11,17,19],population_id:7,population_nam:15,population_set:5,posit:[0,2,11],possibl:[0,1,2,4,6,9,11,14,17],post:[0,11,12],post_ce_adaptive_menv:[0,11],post_ce_envelope_dm_eagb:[0,11],post_ce_envelope_dm_gb:[0,11],post_ce_envelope_dm_tpagb:[0,11],post_ce_objects_have_envelop:[0,11],post_sn_orbit_bs:0,post_sn_orbit_method:[0,11],post_sn_orbit_tt98:0,postagb_legacy_log:[0,11],postagb_wind_gi:0,postagb_wind_krticka2020:0,postagb_wind_non:0,postagb_wind_use_gi:0,postagbwind:0,potenti:[0,11],power:[0,2,11],powerlaw:2,powerlaw_const:2,powerlaw_extrapolation_q:2,ppisn:[0,11],ppisn_farmer19:0,ppisn_non:0,ppisn_prescript:[0,11],ppn_envelope_mass:[0,11],pragma:12,pre:[0,11,16],pre_events_stardata:[0,11,12],pre_main_sequ:[0,11],pre_main_sequence_fit_lob:[0,11],precis:4,precod:[5,15],predefin:[2,15],predict:7,predictor:[0,11],prefer:[0,5,11],prefix:[0,11],prepar:2,prepare_dict:2,prescrib:0,prescript:[0,11,15],prescrit:[0,11],present:[2,4,5,15],preserv:[0,11],preset:16,pressur:[0,11],prev_stellar_type_1:15,prev_stellar_type_2:15,prevent:[0,7,11],previou:4,previous:[14,15],previous_stardata:[1,12,14,15],primari:[1,2,5,15,21],pringl:0,print:[4,6,7,11,12,13,14,15],print_help:[4,13],print_info:6,print_option_descript:6,print_structur:4,printf:[1,12,14,15],prior:[0,11],privat:[5,6,9],prob_dict:2,probability_weighted_mass:7,probabl:[0,1,2,5,6,7,11,12,15,16],probdist:[5,15],problem:[0,11],process:[0,4,5,7,11,15],profil:[0,11],progenitor:[0,11,15],program:[9,17],project:[0,11],proper:[6,12],properli:[0,11],properti:[0,4,7,16],prot1:[0,11],prot2:[0,11],prot3:[0,11],prot4:[0,11],provid:[0,2,5,7,11,15,18],pseudorandom:[0,11],publicli:12,puls:[0,11,21],pulsat:[0,11],pump:[0,11],purpos:[7,15,16],push_macro:12,put:[1,4,5,7,15,16],py_rinterpol:[9,17],pyenv:[9,11,17],pysiz:4,pytest:[9,17],python3:[9,11,17],python:[4,11,12,15],q_high_extrapolation_method:7,q_interpol:2,q_low_extrapolation_method:7,qcrit_bh:[0,11],qcrit_bs:0,qcrit_cheb:[0,11],qcrit_chen_han_formula:0,qcrit_chen_han_t:0,qcrit_cowd:[0,11],qcrit_degenerate_bh:[0,11],qcrit_degenerate_cheb:[0,11],qcrit_degenerate_cowd:[0,11],qcrit_degenerate_eagb:[0,11],qcrit_degenerate_gb:[0,11],qcrit_degenerate_hegb:[0,11],qcrit_degenerate_hehg:[0,11],qcrit_degenerate_hem:[0,11],qcrit_degenerate_hewd:[0,11],qcrit_degenerate_hg:[0,11],qcrit_degenerate_lmm:[0,11],qcrit_degenerate_m:[0,11],qcrit_degenerate_n:[0,11],qcrit_degenerate_onewd:[0,11],qcrit_degenerate_tpagb:[0,11],qcrit_eagb:[0,11],qcrit_gb:[0,11],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,11],qcrit_hehg:[0,11],qcrit_hem:[0,11],qcrit_hewd:[0,11],qcrit_hg:[0,11],qcrit_hjellming_webbink:0,qcrit_lmm:[0,11],qcrit_m:[0,11],qcrit_n:[0,11],qcrit_onewd:[0,11],qcrit_q_no_comenv:0,qcrit_temmink2021:0,qcrit_tpagb:[0,11],qcrit_vos2018:0,qcrits_:[0,11],qcrits_degenerate_:[0,11],qdata:2,qlimit:2,quad:7,quadrat:[0,11],quadrulpl:[0,11],quadrupl:[0,2,7,11],quantiti:16,queri:14,queue:7,quickli:14,quit:[0,4,11],r_l:21,radau:0,radi:[0,11],radiat:[0,11],radii:[0,11,21],radiu:[0,1,11,12,15,16,21],radius_1:16,radius_2:16,ragb:21,raghavan2010_binary_fract:2,raghavan:2,rai:[0,11],railton:[0,11],rais:[0,4,7,11,15],ram:[0,11],ran:7,random:[0,7,11],random_count:14,random_se:[0,11,14],random_skip:[0,11],random_system:[0,11],random_systems_se:[0,11],rang:[0,2,5,7,11,14,15,19],rapid:0,rapidli:[0,11],rappaport:[0,11],rate:[0,2,11],rather:[0,4,5,7,9,11,12,14,15,17],ratio:[0,2,11,15,21],raw:[4,5,7,11,16,18],raw_output:4,reach:[0,11],reaction:[0,11],read:[3,4,14,15],real:[5,15],realli:[0,5,6,7,11,15],reason:[0,11],rebuild:[0,9,11,17],rebuilt:[9,17],recalcul:[0,11],receiv:4,recogn:15,recombin:[0,11],recommend:[1,3,5],recompil:[9,15,17],recurs:[4,5],recursive_change_key_to_float:4,recursive_change_key_to_str:4,red:[0,11],redhat:1,redshift:2,reduc:[0,11],reduct:7,regardless:16,region:[0,11],regist:15,reignit:[0,11],reimer:[0,11],reinstal:[9,17],reject:[0,11],rejects_in_log:[0,11],rejuven:[0,11],rel:[0,11],relat:[0,11],releas:[4,9,17],reliabl:11,remain:[0,11],remesh:[0,11],remnant:[0,11],remov:[0,4,5,11,14,15],remove_fil:4,renormalis:2,rentrop:[0,11],repeat:[0,7,11],repo:[9,17],report:[0,11,15],repositori:3,repres:7,represent:[4,5,15],reproduc:[0,11],requir:[0,2,4,11,14,15,16,18],reset:[0,11],reset_pref:[0,11],reset_star:[0,11],reset_stars_default:[0,11],resolut:[0,5,7,11,15],resolv:[0,11],reson:[0,11],respect:[0,2,11],rest:[2,5,15],restructuredtext:4,result:[0,1,2,4,5,7,9,11,14,15,17],result_arrai:2,result_dict:2,retain:[0,11],rethink:4,return_all_info:5,return_arglin:11,return_binary_c_default:5,return_binary_c_version_info:[4,5,13],return_compilation_dict:1,return_help:11,return_help_al:[4,11],return_maximum_mass_ratio_for_rlof:[11,21],return_minimum_orbit_for_rlof:[11,21],return_persistent_data_memaddr:11,return_population_set:5,return_store_memaddr:11,return_version_info:[4,11],revap_in:[0,11],revap_out:[0,11],revers:[0,11,16],reverse_tim:[0,11],revis:[0,4],rewrit:5,rhagavan:7,ri0005:15,rich:[0,11],riello:[0,11],rin:[0,11],ring:[0,11],risk:[5,15],ritter:[0,11],rk2:[0,11],rk4:[0,11],rlof:[0,11,21],rlof_angular_momentum_transfer_model:[0,11],rlof_angular_momentum_transfer_model_bs:0,rlof_angular_momentum_transfer_model_conserv:0,rlof_eccentric_as_circular:[0,11],rlof_entry_threshold:[0,11],rlof_f:[0,11],rlof_interpolation_binary_c:0,rlof_interpolation_bs:0,rlof_interpolation_method:[0,11],rlof_mdot_factor:[0,11],rlof_mdot_modul:[0,11],rlof_method:[0,11],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,11],rlof_transition_objects_escap:[0,11],rob:[0,2,11,21],robert:[9,17],roch:[0,11,21],roche_lob:21,rochelob:21,rol1:14,rol2:14,room:[5,15],root:[9,17],rotat:[0,2,11],rotation:[0,11],rotationally_enhanced_expon:[0,11],rotationally_enhanced_mass_loss:[0,11],rotationally_enhanced_massloss:[0,11],rotationally_enhanced_massloss_angmom:0,rotationally_enhanced_massloss_langer_formula:[0,11],rotationally_enhanced_massloss_langer_formula_and_angmom:0,rotationally_enhanced_massloss_non:0,rout:[0,11],routin:[0,3,5,9,11,16],row:[14,16],rring:[0,11],rssd:2,rst:[4,6],rsun:16,rubric:5,run:[0,1,3,4,5,7,9,11,17,18],run_popul:11,run_system:[11,12,13,14,16,18],run_system_wrapp:[9,10,12,14],run_wrapp:3,run_zero_probability_system:7,runtim:[1,7],russel:[0,11],rzam:21,s_option:7,safe:15,sai:[0,11],said:[0,11],same:[0,4,7,9,11,14,17],sampl:[0,2,5,11,15,19],sample_valu:2,sampler:9,sana12:[2,15],sana:2,save:[0,1,2,11,12,15],save_pre_events_stardata:[0,11],scalo:2,scanf:0,scheme:[0,11],schneider:[0,11],schroeder:[0,11],script:[3,9,12,17],sdb:[0,11],sdist:[9,17],sdo:[0,11],search:9,second:[0,2,4,11,16],secondari:[2,21],section:[2,4,8,9,11,15,17],see:[0,5,9,11,12,13,14,15,16,17],seed:[0,11],seem:[9,16,17],seen:4,segment:19,seitenzahl2013_model:[0,11],seitenzahl:[0,11],select:[0,4,11,14],selected_head:4,selector:[0,11],self:[5,7,14,15],semi:[0,11],sent:[0,11],sentenc:1,sep:[2,5,14,15,21],sep_max:15,sep_min:15,separ:[0,2,4,5,6,11,12,14,15,16,21],separation_quadrupl:[0,11],separation_tripl:[0,11],separta:[0,11],seper:15,sequenc:[0,11,12],seri:[0,11],serialis:[4,5],serv:4,server:5,set:[0,1,2,3,4,5,6,7,9,12,13,14,16,17],set_moe_di_stefano_set:5,set_opt:2,setup:[9,15,17,18],sever:[6,7,13,15,16,18],sfh:2,shara:[0,11],share:[1,7,14,18],shared_lib_filenam:12,shell:[0,11],shellular:0,shorten:[0,11],should:[0,1,2,5,6,7,9,11,14,15,16,17,18],shouldn:[0,4,11],show:[0,3,7,11,14,15,16],show_plot:16,show_stellar_typ:16,shown:[0,11,16],shrinkagb:14,side:15,siess:[0,11],sigma:2,silent:4,sill:[0,11],simplest:14,simpli:[0,11],simul:[0,1,11,12,15],simulation_:5,sinc:[4,16],singl:[0,2,3,5,7,11,15,16],single_star_lifetim:[11,12,14],sit:[0,11],site:11,situat:11,size:[4,7],skip:[0,4,7,9,11,17],skipkei:4,slightli:11,slope:2,slow:[0,11],slower:[0,11],slurm:[5,7,8],slurm_grid:5,small:[0,11],small_envelope_method:[0,11],small_envelope_method_bs:0,small_envelope_method_miller_bertolami:0,smaller:[0,11],sn_impulse_liu2015:0,sn_impulse_non:0,sn_impulse_wheeler1975:0,sn_kick_companion_a:[0,11],sn_kick_companion_aic_bh:[0,11],sn_kick_companion_bh_bh:[0,11],sn_kick_companion_bh_n:[0,11],sn_kick_companion_ecap:[0,11],sn_kick_companion_grb_collapsar:[0,11],sn_kick_companion_hestaria:[0,11],sn_kick_companion_ia_chand:[0,11],sn_kick_companion_ia_chand_co:[0,11],sn_kick_companion_ia_eld:[0,11],sn_kick_companion_ia_h:[0,11],sn_kick_companion_ia_he_co:[0,11],sn_kick_companion_ia_hybrid_hecowd:[0,11],sn_kick_companion_ia_hybrid_hecowd_sublumin:[0,11],sn_kick_companion_ibc:[0,11],sn_kick_companion_ii:[0,11],sn_kick_companion_iia:[0,11],sn_kick_companion_ns_n:[0,11],sn_kick_companion_phdi:[0,11],sn_kick_companion_pisn:[0,11],sn_kick_companion_ppisn:[0,11],sn_kick_companion_tz:[0,11],sn_kick_companion_wdkick:[0,11],sn_kick_dispersion_aic_bh:[0,11],sn_kick_dispersion_bh_bh:[0,11],sn_kick_dispersion_bh_n:[0,11],sn_kick_dispersion_ecap:[0,11],sn_kick_dispersion_grb_collapsar:[0,11],sn_kick_dispersion_ia_hybrid_hecowd:[0,11],sn_kick_dispersion_ia_hybrid_hecowd_sublumin:[0,11],sn_kick_dispersion_ibc:[0,11],sn_kick_dispersion_ii:[0,11],sn_kick_dispersion_ns_n:[0,11],sn_kick_dispersion_phdi:[0,11],sn_kick_dispersion_pisn:[0,11],sn_kick_dispersion_ppisn:[0,11],sn_kick_dispersion_tz:[0,11],sn_kick_distribution_aic_bh:[0,11],sn_kick_distribution_bh_bh:[0,11],sn_kick_distribution_bh_n:[0,11],sn_kick_distribution_ecap:[0,11],sn_kick_distribution_grb_collapsar:[0,11],sn_kick_distribution_ia_hybrid_hecowd:[0,11],sn_kick_distribution_ia_hybrid_hecowd_sublumin:[0,11],sn_kick_distribution_ibc:[0,11],sn_kick_distribution_ii:[0,11],sn_kick_distribution_ns_n:[0,11],sn_kick_distribution_phdi:[0,11],sn_kick_distribution_pisn:[0,11],sn_kick_distribution_ppisn:[0,11],sn_kick_distribution_tz:[0,11],sn_none:12,sn_type:12,sneia:[0,11],snia:[0,11],snippet:[11,14],solar:[0,2,11,13,21],solver:[0,11],solver_forward_eul:0,solver_predictor_corrector:0,solver_rk2:0,solver_rk4:0,some:[0,1,2,5,7,9,11,12,13,14,15,16,17],someth:[0,5,11,14],sometim:13,somewhat:15,soon:19,sort:4,sort_kei:4,sourc:[1,2,4,5,6,7,10,16,18,19,21],source_file_filenam:7,source_list:5,sourcecod:[9,11,12,17],sourcefile_nam:1,space:[0,5,11,15,19],spacing_funct:[9,10],spacingfunc:[5,15],spacingfunct:[5,15],special:[0,11,15],specif:[0,4,11,13,14,16],specifi:[0,7,11],spectral:2,speed:[0,7,11],speedtest:[0,11],spent:4,spera:0,spheric:[0,11],spin:[0,11],spinrat:[0,11],split:[0,7,11,14,15],split_lin:14,splitlin:[11,12,14,15],splitpoint:[0,11],spread:5,sqrt:[0,11],src:[0,9,11,12,17],stabil:[0,11],stabl:[0,11],stancliff:[0,11],standard:[0,2,11],star:[1,2,7,9,11,12,13,14,15,16,21],star_with_no_mass:0,starcount:15,stardata:[0,1,11,12,14,15],stardata_dump_filenam:[0,11],stardata_load_filenam:[0,11],stardata_t:12,start:[0,1,4,5,6,7,11,14,15],start_tim:[0,11],start_timestamp:15,startrack:0,startswith:14,state:[0,11],statement:[1,12,14,15],statist:[0,11],statu:[0,1,11,15],stderr:[0,11],stdout:4,steadi:[0,11],stefan:16,stefano:[4,5,9,15],stellar:[0,2,7,11,16,20],stellar_structure_algorithm:[0,11],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,9,10,12,14,15,16],stellar_type_1:[0,11,15,16],stellar_type_2:[0,11,15,16],stellar_type_3:[0,11],stellar_type_4:[0,11],stellar_type_dict:20,stellar_type_dict_short:20,step:[4,5,12,14,15,16,19],stepsiz:[5,15],stick:7,stiff:[0,11],still:[1,7,12],stop:[0,4,11],stopfil:[0,11],storag:[0,11],store:[0,2,3,4,5,7,9,14,15,17,21],store_capsul:11,store_memaddr:[11,21],str:[1,4,5,6,15,16],straight:5,straightforward:15,straniero:[0,11],strength:[0,11],strict:4,string:[0,1,3,4,5,6,7,11,13,14,15,16,18],strip:[0,11,14],stronger:[0,11],struct:[0,11,12],structur:[0,4,7,11,16],stuff:[4,7,14,15,16],style:[0,11],sub:[0,4,11],subdict:4,subject:[0,11],sublumin:[0,11],submit:9,subroutin:8,subsequ:[0,11],subtract:4,subtract_dict:4,succe:[0,11],suggest:[0,9,11,17],suit:[9,17],sum:[0,11],sundial:[0,11],supercrit:[0,11],supernova:[0,7,11],superwind:[0,11],superwind_mira_switchon:[0,11],sure:[2,5,7,9,14,15,16,17,18],surfac:[0,11],surrei:15,surviv:[0,11],survivor:[0,11],switcher:[0,11],symmetr:[0,11],synchron:[0,11],synonym:[0,11],synthesi:[7,9,15,17],system:[0,3,4,5,7,9,11,12,15,16,17,18],system_gener:[5,15],tabl:[0,2,11],take:[0,2,4,5,7,11,15,18],taken:[0,4,11,12],tar:[9,17],target:[1,6],task:[0,2,4,5,6,8,11,15,16,18,19,21],tauri:[0,11],tbse:[0,11],technic:[12,15],teff:[0,2,11],teff_1:16,teff_2:16,teff_postagb_max:0,teff_postagb_min:0,tell:4,temp_dir:[4,14,15],temperatur:[0,2,11,16],termin:[1,9,12,15,17],test:[0,4,5,7,9,11,14,15,17,21],test_data:0,test_func:11,test_logfil:14,test_pop:15,text:[4,6],than:[0,2,4,7,9,11,15,17],thats:15,thei:[0,2,4,5,7,11,15,16],thelog:[0,11],them:[2,4,5,11,15],themselv:[2,4],thermal:[0,2,11,21],thermally_pulsing_asymptotic_giant_branch:0,thermohalin:[0,11],thesi:[0,11],thi:[0,1,2,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,21],thick:[0,11],thick_disc_end_ag:[0,11],thick_disc_logg_max:[0,11],thick_disc_logg_min:[0,11],thick_disc_start_ag:[0,11],thin:[0,11],thing:[0,2,4,5,6,11,15,18],think:[0,4,5,11],third:[0,2,11],third_dup:[0,11],third_dup_multipli:[0,11],thorn:[0,11],those:[4,5,9,15,17],thread:7,thread_id:7,three:[0,2,11,15],three_part_powerlaw:[2,15],threshold:[0,4,7,11],through:[5,11,14,15,16,18],throughout:[5,15],tidal:[0,11],tidal_strength_factor:[0,11],tide:[0,11],tides_convective_damp:[0,11],tides_hurley2002:[0,11],tides_zahn1989:[0,11],time:[0,1,2,4,5,7,9,11,12,14,15,16,17],timescal:[0,11],timestamp:7,timestep:[0,11,12,14],timestep_limit:[0,11],timestep_log:[0,11],timestep_modul:[0,11],timestep_multipli:[0,11],timestep_solver_factor:[0,11],tinslei:2,titl:6,tmp:[0,4,9,11,14,15,17],tmp_dir:[5,7,14,15],tmp_tabl:2,todo:[0,1,2,4,5,6,7,11,13,15,16,18,19,21],toler:[0,11],too:[0,4,7,9,11,17,18],took:15,top:15,topic:[0,11],torqu:[0,11],total:[0,2,4,5,7,11,15,16],total_count:15,total_mass_run:15,total_prob:15,total_probability_weighted_mass_run:15,tout:[0,11,21],tout_pringle_1992_multipli:0,tpagb:[0,11],tpagb_reimers_eta:[0,11],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,11],tpagbwindfac:[0,11],traceback:4,track:[7,16],trade:[0,11],transfer:[0,11],transform:[0,4,11],transit:[0,11],treat:[0,11],trigger:[0,11],trio:15,tripl:[0,2,7,11],truli:[0,11],tupl:1,turn:[0,4,11,14,15],two:[0,4,11,12,20,21],txt:[5,14,15,18],type:[0,1,2,4,5,6,7,11,14,15,16,19,20,21],type_chng:14,type_ia_mch_supernova_algorithm:[0,11],type_ia_sub_mch_supernova_algorithm:[0,11],typic:[0,11],ubvri:[0,11],ugriv:[0,11],unavail:0,uncom:[5,14,15],undef:12,under:[14,19],undergo:[0,11],understand:5,undescrib:6,uniform:2,union:[2,4,5,15,19,21],uniqu:[4,5,7,15],unit:[0,11,13,21],univari:[0,11],unknown:18,unless:[1,5,7],unload:5,unpars:11,unrecogn:[9,17],unsign:0,unstabl:[0,11],until:[0,2,4,11],unus:[0,7,11],unweight:15,updat:[2,4,5,9,15,17],update_dict:[4,13],upper:[0,2,11,19],usag:[0,3],use:[0,2,4,5,7,8,9,11,12,13,14,15,16,17,18],use_astropy_valu:16,use_datadir:[5,15],use_fixed_timestep_:[0,11],use_periastron_roche_radiu:[0,11],use_tabular_intershell_abundances_karakas_2012:[0,11],used:[0,1,2,4,5,7,11,12,13,14,15,16],useful:[0,4,5,7,9,11,13,14,15,17,18,21],useful_func:[9,10],user:[1,2,4,5,6,7,12,18],uses:[0,7,11,12,15],using:[0,1,5,9,12,13,14,17],usual:[0,2,7,11,15],util:[1,2,4,5,6,11,12,13,14,15,16,18,19,21],val:2,valid:[0,2,4,11,12],valu:[0,1,2,4,5,6,7,11,13,14,15,16],value_lin:14,valueerror:15,valuerang:[5,15],values_arrai:14,van:[0,11],vandenheuvel_log:[0,11],vari:[0,11,15],variabl:[0,3,4,5,7,11],variant:[0,11],variou:[0,11],vassiliadi:[0,11],veloc:[0,2,11],verbos:[1,2,4,7,9,14,15,17],verbose_print:4,veri:[0,5,11,12,14,15,19],versa:21,version:[0,4,5,9,11,13,15,17],version_info:4,version_info_dict:13,version_info_str:4,version_onli:[0,11],via:[3,5,7,11,12,15,16],vice:21,vink:[0,11],virtual:[9,17],virtualenviron:[9,17],viscos:[0,11],viscou:[0,11],visibl:12,visit:9,volum:[0,11],vrot1:[0,11],vrot2:[0,11],vrot3:[0,11],vrot4:[0,11],vrot_breakup:0,vrot_bs:0,vrot_non_rot:0,vrot_sync:0,vw93:[0,11],vw93_eagb_wind_spe:[0,11],vw93_mira_shift:[0,11],vw93_multipli:[0,11],vw93_tpagb_wind_spe:[0,11],vwind:[0,11],vwind_beta:[0,11],vwind_multipli:[0,11],wai:[0,4,5,7,11,14,16],wang:[0,11],want:[0,2,4,5,6,7,11,12,13,15,16],warmup_cpu:[0,11],warn:[0,11,14,15],wave:[0,11,15],wd_accretion_rate_new_giant_envelope_lower_limit_helium_donor:[0,11],wd_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor:[0,11],wd_accretion_rate_new_giant_envelope_lower_limit_other_donor:[0,11],wd_accretion_rate_novae_upper_limit_helium_donor:[0,11],wd_accretion_rate_novae_upper_limit_hydrogen_donor:[0,11],wd_accretion_rate_novae_upper_limit_other_donor:[0,11],wd_kick:[0,11],wd_kick_at_every_puls:0,wd_kick_at_given_puls:0,wd_kick_direct:[0,11],wd_kick_end_agb:0,wd_kick_first_rlof:0,wd_kick_pulse_numb:[0,11],wd_kick_when:[0,11],wd_sigma:[0,11],wdwd_merger_algorithm:[0,11],wdwd_merger_algorithm_bs:0,wdwd_merger_algorithm_chen2016:0,wdwd_merger_algorithm_perets2019:0,weight:[0,7,11],well:[0,4,7,9,11,12,14,17],were:[4,15],what:[0,1,2,4,5,6,7,9,11,12,14,15,17,18],whatev:[0,5,9,12,17],wheeler:[0,11],when:[0,1,2,4,5,6,7,9,11,13,14,15,17,18],whenev:[9,17],where:[0,1,2,4,5,6,7,9,11,15,17],whether:[0,2,4,5,6,7,11,13,15,16,21],which:[0,1,2,4,5,6,7,9,11,12,13,14,15,17,18,21],whichev:7,white:[0,11],white_dwarf_cooling_carrasco2014:[0,11],white_dwarf_cooling_mestel:[0,11],white_dwarf_cooling_mestel_modifi:[0,11],white_dwarf_cooling_model:[0,11],white_dwarf_radius_carrasco2014:[0,11],white_dwarf_radius_model:[0,11],white_dwarf_radius_mu:[0,11],white_dwarf_radius_nauenberg1972:[0,11],whole:[5,7,12],width:[0,11],wind:[0,11],wind_algorithm_binary_c_2020:0,wind_algorithm_hurley2002:0,wind_algorithm_non:0,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,11],wind_disc_angmom_fract:[0,11],wind_disc_mass_fract:[0,11],wind_djorb_fac:[0,11],wind_gas_to_dust_ratio:[0,11],wind_lbv_luminosity_lower_limit:[0,11],wind_mass_loss:[0,11],wind_multiplier_:[0,11],wind_nieuwenhuijzen_luminosity_lower_limit:[0,11],wind_type_multiplier_:[0,11],within:[0,4,5,9,11,12,13,15,17],without:[2,5,7,12,14],won:[0,11,14],wood:[0,11],work:[0,4,9,11,12,14,16,17],would:[0,4,11,15,16],wouldn:[5,15],wr_wind:[0,11],wr_wind_bs:0,wr_wind_eldridg:0,wr_wind_fac:[0,11],wr_wind_maeder_meynet:0,wr_wind_nugis_lam:0,wrap:[1,12],wrapper:[4,11,12,14,21],write:[1,4,5,6,7,11,12,14,15,18],write_binary_c_calls_to_fil:[5,15],write_binary_c_parameter_descriptions_to_rst_fil:4,write_grid_options_to_rst_fil:6,write_logfil:11,written:[5,6,7,11,14,15,18],written_data:14,wrlof_mass_transf:[0,11],wrlof_method:[0,11],wrlof_non:0,wrlof_q_depend:0,wrlof_quadrat:0,wrong:[9,17],wrwindfac:[0,11],wtts2:[0,11],wtts_log:[0,11],www:[0,2,11],x86_64:11,year:[0,2,11],yet:[0,4,7,11,16],yield:[0,11],you:[0,1,4,5,6,7,9,11,12,14,15,16,17,21],young:[0,11],your:[7,9,12,14,17],yourself:[15,16],zahn:[0,11],zam:[0,2,11,18,21],zams_collis:21,zams_mass:15,zams_mass_1:15,zams_mass_2:15,zero:[0,1,7,11],zero_ag:[12,14,15],zero_prob_stars_skip:15,zone:[0,11],zoom:[0,11],zoomfac_multiplier_decreas:[0,11],zoomfac_multiplier_increas:[0,11],zsolar:2,zytkow:[0,11]},titles:["Binary_c parameters","custom_logging_functions module","distribution_functions module","Example notebooks","functions module","grid_class module","Grid options and descriptions","Population grid code options","hpc_functions module","Welcome to binary_c-python\u2019s documentation!","Binarycpython code","Using the API functionality of binarycpython","Using custom logging routines with binarycpython","Extra features and functionality of binarycpython","Running individual systems with binarycpython","Running populations with binarycpython","plot_functions module","Python module for binary_c","run_system_wrapper module","spacing_functions module","stellar_types module","useful_funcs module"],titleterms:{"function":[4,11,13,14,15],"public":7,Adding:15,Using:[11,12],about:13,after:[9,17],algorithm:0,api:[11,12,14],binari:0,binary_c:[0,9,11,13,17],binarycpython:[10,11,12,13,14,15],build:[9,13,17],code:[7,10],compact:12,custom:12,custom_logging_funct:1,descript:6,dictionari:13,directli:12,distribution_funct:2,document:[9,17],environ:[9,17],evolut:12,evolv:15,exampl:[3,9,11,12,13,15,17],extra:13,faq:[9,17],featur:13,free:11,from:[9,11,12,17],full:15,get:[11,13],grid:[6,7,15],grid_class:5,handl:15,help:13,hpc_function:8,indic:9,individu:14,inform:[11,13],input:0,instal:[9,17],instruct:[9,17],issu:[9,17],log:[12,15],mass:12,misc:0,modif:13,modul:[1,2,4,5,8,9,16,17,18,19,20,21],moe:7,note:[9,17],notebook:3,noteworthi:15,nucsyn:0,object:[12,14,15],option:[6,7],output:[0,15],paramet:[0,13],pars:13,pip:[9,17],plot_funct:16,popul:[7,12,14,15],privat:7,python:[9,17],requir:[9,17],routin:12,run:[12,14,15],run_system_wrapp:18,run_wrapp:14,sampler:7,script:15,section:0,set:[11,15],singl:14,sourc:[9,17],spacing_funct:19,star:0,stefano:7,stellar_typ:20,store:11,string:12,supernova:12,system:14,tabl:9,usag:[9,11,12,17],useful_func:21,using:11,variabl:[9,15,17],via:[9,14,17],welcom:9,when:12}})
\ No newline at end of file
+Search.setIndex({docnames:["binary_c_parameters","custom_logging_functions","distribution_functions","example_notebooks","functions","grid","grid_options_defaults","grid_options_descriptions","hpc_functions","index","modules","notebook_api_functionality","notebook_custom_logging","notebook_extra_features","notebook_individual_systems","notebook_luminosity_function_binaries","notebook_luminosity_function_single","notebook_population","plot_functions","readme_link","run_system_wrapper","spacing_functions","stellar_types","useful_funcs"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,nbsphinx:3,sphinx:56},filenames:["binary_c_parameters.rst","custom_logging_functions.rst","distribution_functions.rst","example_notebooks.rst","functions.rst","grid.rst","grid_options_defaults.rst","grid_options_descriptions.rst","hpc_functions.rst","index.rst","modules.rst","notebook_api_functionality.ipynb","notebook_custom_logging.ipynb","notebook_extra_features.ipynb","notebook_individual_systems.ipynb","notebook_luminosity_function_binaries.ipynb","notebook_luminosity_function_single.ipynb","notebook_population.ipynb","plot_functions.rst","readme_link.rst","run_system_wrapper.rst","spacing_functions.rst","stellar_types.rst","useful_funcs.rst"],objects:{"binarycpython.utils":{custom_logging_functions:[1,0,0,"-"],distribution_functions:[2,0,0,"-"],functions:[4,0,0,"-"],grid:[5,0,0,"-"],grid_options_defaults:[6,0,0,"-"],hpc_functions:[8,0,0,"-"],plot_functions:[18,0,0,"-"],run_system_wrapper:[20,0,0,"-"],spacing_functions:[21,0,0,"-"],stellar_types:[22,0,0,"-"],useful_funcs:[23,0,0,"-"]},"binarycpython.utils.custom_logging_functions":{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:[1,1,1,""]},"binarycpython.utils.distribution_functions":{"const":[2,1,1,""],Arenou2010_binary_fraction:[2,1,1,""],Izzard2012_period_distribution:[2,1,1,""],Kroupa2001:[2,1,1,""],Moe_di_Stefano_2017_multiplicity_fractions:[2,1,1,""],Moe_di_Stefano_2017_pdf:[2,1,1,""],build_q_table:[2,1,1,""],calc_P_integral:[2,1,1,""],calc_e_integral:[2,1,1,""],calc_total_probdens:[2,1,1,""],calculate_constants_three_part_powerlaw:[2,1,1,""],cosmic_SFH_madau_dickinson2014:[2,1,1,""],duquennoy1991:[2,1,1,""],fill_data:[2,1,1,""],flat:[2,1,1,""],flatsections:[2,1,1,""],gaussian:[2,1,1,""],gaussian_func:[2,1,1,""],gaussian_normalizing_const:[2,1,1,""],get_integration_constant_q:[2,1,1,""],get_max_multiplicity:[2,1,1,""],imf_chabrier2003:[2,1,1,""],imf_scalo1986:[2,1,1,""],imf_scalo1998:[2,1,1,""],imf_tinsley1980:[2,1,1,""],interpolate_in_mass_izzard2012:[2,1,1,""],ktg93:[2,1,1,""],linear_extrapolation_q:[2,1,1,""],merge_multiplicities:[2,1,1,""],normalize_dict:[2,1,1,""],number:[2,1,1,""],poisson:[2,1,1,""],powerlaw:[2,1,1,""],powerlaw_constant:[2,1,1,""],powerlaw_extrapolation_q:[2,1,1,""],prepare_dict:[2,1,1,""],raghavan2010_binary_fraction:[2,1,1,""],sana12:[2,1,1,""],set_opts:[2,1,1,""],three_part_powerlaw:[2,1,1,""]},"binarycpython.utils.functions":{AutoVivificationDict:[4,2,1,""],BinaryCEncoder:[4,2,1,""],Capturing:[4,2,1,""],bin_data:[4,1,1,""],binarycDecoder:[4,2,1,""],binaryc_json_serializer:[4,1,1,""],call_binary_c_config:[4,1,1,""],catchtime:[4,2,1,""],convert_bytes:[4,1,1,""],convfloat:[4,1,1,""],count_keys_recursive:[4,1,1,""],create_arg_string:[4,1,1,""],create_hdf5:[4,1,1,""],custom_sort_dict:[4,1,1,""],datalinedict:[4,1,1,""],example_parse_output:[4,1,1,""],extract_ensemble_json_from_string:[4,1,1,""],filter_arg_dict:[4,1,1,""],format_ensemble_results:[4,1,1,""],get_arg_keys:[4,1,1,""],get_defaults:[4,1,1,""],get_help:[4,1,1,""],get_help_all:[4,1,1,""],get_help_super:[4,1,1,""],get_moe_di_stefano_dataset:[4,1,1,""],get_size:[4,1,1,""],handle_ensemble_string_to_json:[4,1,1,""],imports:[4,1,1,""],inspect_dict:[4,1,1,""],is_capsule:[4,1,1,""],load_logfile:[4,1,1,""],make_build_text:[4,1,1,""],merge_dicts:[4,1,1,""],multiply_values_dict:[4,1,1,""],output_lines:[4,1,1,""],pad_output_distribution:[4,1,1,""],parse_binary_c_version_info:[4,1,1,""],recursive_change_key_to_float:[4,1,1,""],recursive_change_key_to_string:[4,1,1,""],remove_file:[4,1,1,""],return_binary_c_version_info:[4,1,1,""],subtract_dicts:[4,1,1,""],temp_dir:[4,1,1,""],update_dicts:[4,1,1,""],verbose_print:[4,1,1,""],write_binary_c_parameter_descriptions_to_rst_file:[4,1,1,""]},"binarycpython.utils.functions.BinaryCEncoder":{"default":[4,3,1,""]},"binarycpython.utils.functions.Capturing":{__enter__:[4,3,1,""],__exit__:[4,3,1,""]},"binarycpython.utils.functions.binarycDecoder":{decode:[4,3,1,""]},"binarycpython.utils.functions.catchtime":{__enter__:[4,3,1,""],__exit__:[4,3,1,""]},"binarycpython.utils.grid":{Population:[5,2,1,""]},"binarycpython.utils.grid.Population":{Moe_di_Stefano_2017:[5,3,1,""],add_grid_variable:[5,3,1,""],clean:[5,3,1,""],evolve:[5,3,1,""],evolve_single:[5,3,1,""],export_all_info:[5,3,1,""],parse_cmdline:[5,3,1,""],rename_grid_variable:[5,3,1,""],return_all_info:[5,3,1,""],return_binary_c_defaults:[5,3,1,""],return_binary_c_version_info:[5,3,1,""],return_population_settings:[5,3,1,""],set:[5,3,1,""],set_moe_di_stefano_settings:[5,3,1,""],update_grid_variable:[5,3,1,""],vb1print:[5,3,1,""],write_binary_c_calls_to_file:[5,3,1,""]},"binarycpython.utils.grid_options_defaults":{grid_options_description_checker:[6,1,1,""],grid_options_help:[6,1,1,""],print_option_descriptions:[6,1,1,""],write_grid_options_to_rst_file:[6,1,1,""]},"binarycpython.utils.plot_functions":{color_by_index:[18,1,1,""],dummy:[18,1,1,""],parse_function_hr_diagram:[18,1,1,""],parse_function_masses:[18,1,1,""],parse_function_orbit:[18,1,1,""],plot_HR_diagram:[18,1,1,""],plot_masses:[18,1,1,""],plot_orbit:[18,1,1,""],plot_system:[18,1,1,""]},"binarycpython.utils.run_system_wrapper":{run_system:[20,1,1,""]},"binarycpython.utils.spacing_functions":{"const":[21,1,1,""]},"binarycpython.utils.useful_funcs":{calc_period_from_sep:[23,1,1,""],calc_sep_from_period:[23,1,1,""],maximum_mass_ratio_for_RLOF:[23,1,1,""],minimum_period_for_RLOF:[23,1,1,""],minimum_separation_for_RLOF:[23,1,1,""],ragb:[23,1,1,""],roche_lobe:[23,1,1,""],rzams:[23,1,1,""],zams_collision:[23,1,1,""]}},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:{"000":14,"0000":14,"0000000000000002":16,"0000000000000004":16,"000000000000e":14,"0001":[11,23],"000122339":17,"000161974":17,"000214449":17,"000220016":17,"000283924":17,"000287968":17,"00036002859999999996":16,"000375908":17,"00039801020000000003":16,"000497691":17,"000498487":17,"00065893":17,"0007":2,"0007310379999999999":16,"0007493004":16,"000869303":16,"000872405":17,"001":[0,11],"00115504":17,"001171479":16,"0014346559999999999":16,"00152924":17,"00202467":17,"002380189":16,"00283037":16,"00321118":16,"0037453900000000004":16,"0045385":16,"004698855121516278":17,"00515685":16,"006221155214163634":17,"00632092":11,"008236638755149857":17,"00921541":16,"00e":15,"0104553":16,"010905083645619543":17,"012246630357e":17,"0141":11,"014776889999999999":16,"0164166":16,"01e":15,"0212294":16,"021960493499e":17,"024868380796643753":17,"024868380796643757":17,"025":16,"0268827":16,"02e":15,"030004499999999996":16,"030499912298e":17,"035000000000004":16,"0434":17,"044142002936e":12,"044402888438054094":17,"04440288843805411":17,"044572277695e":12,"044654032097e":12,"045084306856e":12,"04e":15,"050651207308e":12,"05128ef4c5fe4274a0356c3e99e2f2d2":17,"054":2,"057525":15,"05e":15,"077":15,"077117":15,"0771478":16,"07e":15,"080":15,"080367":15,"0820":[0,11],"084":15,"084369":15,"086":15,"08e":15,"08f8230453084e4ca6a2391d45ce658b":16,"08msun":[0,11],"0902":[0,11],"094409257247e":17,"0967":17,"09e":15,"0fa295ee5c76444bace8fd0ee17a3e11":15,"0mb":15,"0mb1656":15,"0x7f351ff53810":15,"0x7f351ff539f0":15,"0x7f531bc3b6a8":17,"0x7fa6a45ed180":11,"0x7fb4d41ebbf8":14,"100":[0,2,11,15,16],"1000":[0,7,11],"1003":15,"1015":15,"1025":15,"1033":15,"1040":15,"1048":15,"105":16,"1057":15,"1062":15,"1069":15,"1077":15,"108":17,"1085":[14,15],"1091":15,"1099":15,"10e":15,"10t15":15,"11003":14,"1114":15,"1126":15,"1134":15,"1139":15,"1148":15,"115":2,"1156":15,"11582":14,"1162":15,"1168":15,"117":15,"117391":15,"1177":15,"1181":15,"1187":15,"1194":15,"119437":15,"11973310000000001":16,"11e":15,"120000":[0,11],"1202":15,"1219":15,"1228":15,"12325":14,"1234":15,"123795595728e":17,"1243":15,"12457":14,"12460":14,"12461":14,"125":[0,11,16],"12500":0,"1251":15,"1260":15,"126435":15,"1268":15,"1276":15,"1282":15,"1289":15,"1295":15,"12e":[1,12,14,15,16,17],"1301":14,"1302":14,"1309":15,"1323":15,"1332":15,"1338":15,"134":17,"1346":15,"13461":14,"1355":15,"13567":12,"1359":15,"13626":17,"1366":15,"1376":15,"1383104324341":15,"138353":15,"1384":15,"139293101586e":17,"1393":15,"13e":15,"13e3":[0,11],"1403":2,"1423":15,"1435":15,"1443":15,"1445":15,"14461":14,"1448":15,"1454":15,"1455":15,"1459":15,"1465":15,"1474":15,"1482":15,"1485":15,"1487":15,"1496":15,"14e":15,"150":[15,16,17],"15000":[0,11,12,14,17],"1509":15,"1523":15,"1531":15,"1537":15,"1545":15,"1555":15,"1564":15,"1574":15,"15740832333567983":15,"1584":15,"1594":15,"15msun":2,"16018641159091498":15,"1607":15,"1617":14,"1618":[14,15],"1618606489196724":15,"1619":14,"1620":14,"1621":14,"1621c23a5":0,"1628":15,"1629459533":17,"1629459536":17,"1631124829":16,"1631124830":16,"1631283248":15,"1631284043":15,"1635":15,"1645":15,"1655":15,"1664":15,"1674":15,"1684":15,"1691":15,"1699":15,"16e":15,"17005450973840136":15,"17089":14,"1713":15,"1725":15,"1735":15,"1745":15,"175":15,"1755":15,"1763":15,"1767":15,"1776":15,"1785":15,"1793":15,"17e":15,"1801":15,"1812":15,"181971798545e":17,"1822":15,"1830":15,"1839":15,"1847":15,"1855":15,"1864":15,"186492":15,"1865":12,"1873":15,"1884":15,"189097":16,"1895":15,"18e":15,"190":0,"1907":15,"1916":15,"1926":15,"1936":15,"1943278312683":15,"1946":15,"1951":[0,11],"1956":15,"1958354":15,"1961345":16,"1966":15,"1972":[0,11],"1975":[0,11],"1976":15,"197x":[0,11],"1980":2,"1983":23,"1986":[0,2,11],"1987":15,"1989":[0,11],"1991":2,"1992":[0,11],"1993":[0,11],"1996":23,"1998":[0,2,11,15],"1999":[0,11],"1ckzg0p9":[9,19],"1dex":[15,16],"1e2":[0,11],"1e9":[0,11],"1mb":15,"200":[0,11],"2000":[0,11,15],"2001":[2,16],"2002":[0,11],"2003":[0,2,11],"2004":[0,11],"2005":[0,11],"2009":[0,11],"2010":[0,2,7,11],"2012":[0,2,11],"2013":[0,11],"2014":[0,2,11],"2015":[0,11],"2016":[0,11],"2017":[0,7,11,17],"2018":[0,1,11],"2019":[0,11],"2020":[0,11],"2021":[0,15],"20210910":0,"20e":15,"21587440567681548":17,"2181597":16,"2182216189410787":16,"21822161894107872":16,"219029061236e":17,"21e":15,"220964392276":15,"227002356107e":17,"227955577093495":17,"22e":15,"2369339999999996e":16,"23e":15,"2403e":17,"2424":14,"24e":15,"2544031669779":17,"255":[0,11],"2568974":16,"257":23,"2572":17,"257608426597089":17,"25msun":[0,11],"27143e":17,"27e":15,"281":23,"28134439269236855":17,"283331":15,"28e":15,"29427":17,"29448":17,"29457":17,"2947":17,"2969346":2,"29e":15,"2mb":15,"2msun":[0,11],"3000":[0,11],"303065":16,"30642":17,"30902":17,"30e":15,"30e4":[0,11],"3205":17,"3228":17,"33469":12,"33699":17,"338":12,"34213":12,"34708e":16,"34e":15,"35e":15,"367065500196e":17,"36e":15,"36m":11,"37e":15,"382":15,"38788e":17,"38e":15,"39205":17,"394728392218e":17,"396133472739e":17,"396288708628e":17,"396675941641e":17,"39754":17,"39999999999999997":16,"39e":15,"3mb":15,"3msun":2,"4000":0,"400722":15,"404641347602e":17,"40e":15,"41112":15,"41e":15,"424921":15,"427601421985e":17,"42e":15,"42msun":[0,11],"4309362899259503":17,"43422e":17,"435":15,"43719":17,"4397":17,"444217227690e":17,"44e":15,"44msun":[0,11],"4500":11,"45000000080":17,"4504":17,"450828476484e":17,"451192744924e":17,"4530":[12,14],"453317880232e":17,"45407":17,"45e":15,"45msun":[0,11],"4600214958191":15,"4621":17,"462779538274e":17,"46573":17,"46e":15,"474":15,"47745":17,"480":15,"4838":[11,12,14],"4976091384888":15,"499":15,"49e":15,"4e3":[0,11],"4mb":15,"500":[0,11],"505288":15,"507":15,"508":17,"50e":15,"517749":14,"518":14,"51803":12,"520":15,"52414":17,"52415":17,"5262682437896729":16,"5294":17,"52e":15,"531":15,"546683":14,"547":15,"548":15,"5483":17,"548740826516e":17,"549":15,"54e":15,"550":15,"551":15,"552":15,"554":15,"55458":12,"555":15,"557":15,"559":15,"55e":15,"560":15,"561":15,"562":15,"563":15,"564":15,"565":15,"566":15,"567":15,"568":15,"569":15,"571":15,"5717":17,"573":15,"57443":12,"575":15,"57571":17,"576":15,"577":15,"578":15,"579":15,"579099761269e":17,"57e":15,"581":15,"582":15,"583":15,"584":15,"585":15,"58519":17,"586":15,"587":15,"588":15,"589":15,"58e":15,"5900418758392334":16,"59452":12,"59e":15,"5dex":[15,16],"5mb":15,"5mb625":15,"5msun":[0,11],"6000":[0,11],"600000":0,"60007":17,"60e":15,"6185":0,"624":15,"625":0,"626":15,"62e":15,"635":[0,11],"63e":15,"6452116023479681":15,"6495098935846658":15,"6495098935846686":15,"64e":15,"653":17,"65e":15,"66003":17,"66e":15,"674063083432e":17,"67586e":17,"684":17,"68748":17,"68e":15,"6935975551605":15,"6944":0,"69e":15,"6e1":2,"6e5":[0,11],"6mb":15,"6msun":[0,11],"70e":15,"71025":17,"71196":17,"7128":17,"713":15,"716":14,"71662":12,"71e":15,"7203987":17,"724":12,"72498e":[12,17],"728":15,"73e":15,"743":15,"7561":17,"759":15,"75e":15,"7619":0,"763":2,"7647737053496777":17,"76e":15,"772169325356e":17,"77287":17,"774":15,"774854":15,"779197348711e":17,"7809":17,"78125":0,"783":14,"785212755203247":17,"787":15,"78e":15,"79091":17,"792":15,"792905807495117":17,"793":15,"794":15,"79487":17,"795":[2,15],"799":15,"79e":15,"7mb":15,"7mb1235":15,"800":15,"802986496151e":17,"80592":17,"80919":17,"80e":15,"80msol":2,"81066":17,"812":15,"81395":12,"81495":17,"81499":17,"81529":17,"81536":17,"81563":17,"81636":17,"817":14,"81957":17,"81e":15,"82061":17,"82074":17,"82088":17,"82123":17,"8216":17,"82255":17,"8293333":16,"830":15,"83f80d829dbd418aa2bc745c99b71991":16,"846":15,"847":15,"848380621869e":12,"84e":15,"851971":15,"85e":15,"864":15,"86e":15,"872":[15,17],"876":15,"8862":17,"887":15,"88e":15,"897337":15,"898":15,"89e":15,"8mb":15,"8mb1394":15,"905335716621e":17,"908":15,"90e":15,"919":15,"91e":15,"92de7c9221c54206ab4dd10e58e09a34":16,"92e":15,"934":15,"935186":17,"935920346899e":17,"93e":15,"9436":17,"9458":14,"947":15,"9539172649383545":17,"956":15,"95e":15,"963":15,"963621764679e":17,"969":15,"97008":17,"976":15,"979":15,"97923e":17,"97e":15,"981706":15,"986":15,"988":15,"99191":12,"99192":12,"99194":12,"9947":14,"995":15,"9956307907476224":16,"9961590766906738":16,"9983":14,"99e":15,"9mb":15,"boolean":[0,4,5,7,11,18,23],"break":[0,11],"case":[0,3,4,7,9,11,15,17],"catch":[4,7,14,15,16,17],"char":7,"class":[4,5],"const":[2,5,15,16,17,21],"default":[0,1,2,4,5,6,7,11,12,13,15,16,17,20],"export":[4,5,17],"final":[15,16],"float":[0,2,4,5,11,13,14,21,23],"function":[0,1,2,3,5,6,7,8,9,10,12,18,19,20,21,23],"import":[4,5,11,12,13,14,15,16,17],"int":[0,1,2,4,5,6,7,11,15,17,21,23],"krtickov\u00e1":[0,11],"kub\u00e1t":[0,11],"long":[0,4,5,7,11,17,22],"new":[0,2,4,5,11,14,15,16,17],"null":[0,4,11,13],"paczy\u0144ski":[0,11],"public":[6,9,15,16,17],"return":[1,2,4,5,6,7,11,13,14,15,16,17,18,20,21,23],"short":[0,11,15,16,22],"super":[0,11],"switch":[0,11],"throw":[9,19],"true":[0,4,5,6,7,11,13,16,17,18],"try":[0,9,11,14,15,16,17,19],"void":12,"while":[0,11,15],Added:17,Adding:[3,14],And:[6,9,19,23],But:14,Doing:[15,16,17],For:[0,4,9,11,12,14,15,16,18,19],Gas:[0,11],Its:7,NOT:[0,5,11,20],Not:7,One:[0,11],Pms:18,That:[0,11],The:[0,1,2,3,4,5,7,9,11,12,13,14,15,16,17,18,19,20],Then:[4,9,19],There:[2,5,6,7,11,12,13,14,15,16,17,18],These:[4,7,11,15,16,17,18],Use:[0,5,11,17],Used:[0,7,11,18],Useful:[0,6,11,15,16,17],Uses:[0,4,11,21],Using:[3,9,15],Was:[0,11],Will:[0,4,5,11,17,20],With:6,__arg_begin:11,__attribute__:12,__enter__:4,__exit__:4,__iadd__:4,_actually_evolve_system:7,_binary_c_bind:[4,11,12,14,23],_binary_c_config_execut:7,_binary_c_dir:7,_binary_c_execut:7,_binary_c_shared_librari:7,_commandline_input:7,_count:7,_custom_logging_shared_library_fil:7,_end_time_evolut:7,_errors_exceed:7,_errors_found:7,_evolution_type_opt:7,_failed_count:7,_failed_prob:7,_failed_systems_error_cod:7,_generate_grid_cod:7,_grid_vari:[5,7,16],_loaded_ms_data:7,_main_pid:7,_population_id:7,_pre_run_cleanup:5,_probtot:7,_process_run_population_grid:7,_repeat:7,_set:5,_set_ms_grid:7,_start_time_evolut:7,_store_memaddr:7,_system_gener:7,_total_mass_run:7,_total_probability_weighted_mass_run:7,_total_starcount:7,_zero_prob_stars_skip:7,a173:[0,11],abat:[0,11],abbrevi:22,abl:11,about:[3,4,5,6,15,16,17,23],abov:[0,2,4,5,11,12,14,16,17],abridg:[11,12],absolut:[0,4,11],abund:[0,11],acceler:[0,11],accept:[4,17],access:[2,7,12,14,15,16,17],accord:[0,2,11],accordingli:[14,16,17],account:[0,7,11],accret:[0,11],accretion_limit_dynamical_multipli:[0,11],accretion_limit_eddington_lmms_multipli:[0,11],accretion_limit_eddington_steady_multipli:[0,11],accretion_limit_eddington_wd_to_remnant_multipli:[0,11],accretion_limit_thermal_multipli:[0,11],accretor:[0,11,23],accur:[15,16],act:[0,7,11,16,17],activ:[0,9,11,19],actual:[0,4,5,7,9,11,12,14,15,16,17,18,19],adam:[0,11],adapt:[0,11,16],add:[0,2,4,5,7,11,12,14,15,16,17,18,21,23],add_grid_vari:[5,15,16,17],added:[4,14,15],adding:[14,15,16,17],address:[1,7,11,12,23],admittedli:18,adress:[11,12,23],advis:12,affect:[0,11],after:[0,5,7,11,12,15,16,17],ag89:[0,11],again:[4,7,9,13,14,19],against:18,agb:[0,11],agb_3dup_algorithm:[0,11],agb_core_algorithm:[0,11],agb_core_algorithm_default:0,agb_core_algorithm_hurlei:0,agb_core_algorithm_karaka:0,agb_luminosity_algorithm:[0,11],agb_luminosity_algorithm_default:0,agb_luminosity_algorithm_hurlei:0,agb_luminosity_algorithm_karaka:0,agb_radius_algorithm:[0,11],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,age:[0,3,9,11],aging:[0,11],albedo:[0,11],algorithm:[9,11],algothim:[0,11],all:[0,1,2,4,5,6,7,9,10,11,13,14,15,16,17,18,19,20],all_info:5,alloc:11,allow:[0,2,4,7,11,12],allow_nan:4,along:[0,6,7],alpha:[0,11],alpha_c:[0,11],alphacb:[0,11],alreadi:[5,17],also:[0,3,4,5,6,9,11,12,15,16,17,19,23],alter:5,altern:[0,7,11],alwai:[0,2,7,11],amanda:[0,11],amax:2,amin:2,amount:[0,4,5,6,7,11,17,21],amp:11,amt_cor:[7,15,16,17],analys:20,analyt:[5,15,16,17],analyz:14,andrew:[9,19],andronov:[0,11],angelou_lithium_cheb_decay_tim:[0,11],angelou_lithium_cheb_massfrac:[0,11],angelou_lithium_cheb_tim:[0,11],angelou_lithium_decay_funct:[0,11],angelou_lithium_decay_function_exponenti:0,angelou_lithium_decay_tim:[0,11],angelou_lithium_eagb_decay_tim:[0,11],angelou_lithium_eagb_massfrac:[0,11],angelou_lithium_eagb_tim:[0,11],angelou_lithium_gb_decay_tim:[0,11],angelou_lithium_gb_massfrac:[0,11],angelou_lithium_gb_tim:[0,11],angelou_lithium_hg_decay_tim:[0,11],angelou_lithium_hg_massfrac:[0,11],angelou_lithium_hg_tim:[0,11],angelou_lithium_lmms_decay_tim:[0,11],angelou_lithium_lmms_massfrac:[0,11],angelou_lithium_lmms_tim:[0,11],angelou_lithium_ms_decay_tim:[0,11],angelou_lithium_ms_massfrac:[0,11],angelou_lithium_ms_tim:[0,11],angelou_lithium_tpagb_decay_tim:[0,11],angelou_lithium_tpagb_massfrac:[0,11],angelou_lithium_tpagb_tim:[0,11],angelou_lithium_vrot_trigg:[0,11],angelou_lithium_vrotfrac_trigg:[0,11],angular:[0,11,18],ani:[0,2,4,5,9,11,14,17,19],anoth:[0,11],ansi:[0,11],ansi_colour:[0,11],anyth:[0,4,7,11,15,16,17],anywai:[5,14,17],anywher:[5,17],api:[0,3,4,9],api_log_filename_prefix:[0,11,14],append:[1,4,14,15,16],appli:[0,11],apply_darwin_radau_correct:[0,11],appropri:[0,7,11],approxim:[0,11],aren:[2,7],arenou2010_binary_fract:2,arg:[2,4,11,13,17,18],arg_dict:4,argopt:[0,11],argpair:[4,13],argstr:[11,12,14],argument:[0,2,4,5,7,11,14,17,20],argument_of_periastron:[0,11],argument_of_periastron_quadrupl:[0,11],argument_of_periastron_tripl:[0,11],around:[0,11,12,14],arrai:[2,4,7,14],arrow:[0,11],artefact:16,artifici:[0,11],artificial_accretion_end_tim:[0,11],artificial_accretion_ignor:0,artificial_accretion_start_tim:[0,11],artificial_angular_momentum_accretion_r:[0,11],artificial_mass_accretion_r:[0,11],artificial_mass_accretion_rate_by_stellar_typ:[0,11],artificial_orbital_angular_momentum_accretion_r:[0,11],arxiv:[0,2,11],ask:[0,11,23],asplund:[0,11],assign:[5,15,16,17],associ:[15,16],assum:[0,11,18],ast871:[0,11],astronomi:[0,11],astrophys:16,astropi:[9,18,19],atom:4,attempt:[4,5],auto:[1,10],autogen_c_logging_cod:[1,12],automat:[0,1,6,9,11,12,19],autovivif:4,autovivificationdict:4,avaibl:[9,19],avail:[0,4,7,11,12,15,16,17,18],avoid:11,awai:[0,11],axi:[0,11,18],b_1:[0,11],b_2:[0,11],b_3:[0,11],b_4:[0,11],b_inclination1:[0,11],b_inclination2:[0,11],b_inclination3:[0,11],b_inclination4:[0,11],back:[0,4,11],backward:[0,11],bagb:[0,11],barn:[0,11],base:[0,2,4,5,9,11,15,16,17,18,19,23],base_filenam:[5,17],basic:[5,17],batchmod:[0,11],beasor:[0,11],becaus:[0,2,5,7,9,11,14,15,16,19],becom:[0,1,2,4,11,12,16],been:[0,5,7,11,13],befor:[0,5,7,9,11,15,16,17,19],behaviour:[4,15,16,17,20],belczynski:[0,11],below:[0,3,7,11,12,15,16,17],berro:[0,11],bertolami:[0,11],best:[5,7,9,19],beta:[0,11],beta_reverse_nova:[0,11],beta_reverse_novae_geometri:0,better:[0,3,4,5,9,11,17],between:[0,2,11,21],bewar:[5,17],bh_belczynski:[0,11],bh_fryer12_delai:[0,11],bh_fryer12_rapid:[0,11],bh_fryer12_startrack:[0,11],bh_hurley2002:[0,11],bh_prescript:[0,11],bh_spera2015:[0,11],big:[0,7,11],biinari:17,bin:[0,4,9,11,15,16,19],bin_data:[4,15,16],binari:[2,3,5,7,9,11,14,17,18,19,23],binary_c2:[9,19],binary_c:[1,2,3,4,5,7,12,14,15,16,17,18,20],binary_c_api_funct:12,binary_c_cal:[5,17],binary_c_default:17,binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11:15,binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3c:17,binary_c_inline_config:1,binary_c_log_cod:[1,12,14],binary_c_macro:[0,11],binary_c_output:4,binary_c_paramet:[15,16,17],binary_c_python:[4,5,11,14,15,16,17],binary_c_task_:[0,11],binary_c_write_log_cod:1,binary_grid:[0,11],binary_star:23,binaryc:[1,4,13,20],binaryc_config:1,binaryc_json_seri:4,binarycdecod:4,binarycencod:4,binarycpython3:11,binarycpython:[1,2,3,4,5,6,9,15,16,18,19,20,21,23],binarygrid:[15,16,17],bind:[0,11,12,14],binned_log_luminos:[15,16],binwidth:[4,15,16],birth:[0,11],bit:2,bivari:[0,11],black:[0,11],black_hol:0,bloecker:[0,11],blog:1,boltzman:18,boltzmann:[0,11],bondi:[0,11],bondi_hoyle_accretion_factor:[0,11],bool:[4,5,6,13,17,18],born:[0,11,15,16],bosswissam:4,both:[0,4,11,15,16,17],bottom:[0,11,17],bound:[2,21],boundari:2,brake:[0,11],branch:[0,4,11],branchpoint:[5,17],breakup:[0,11],brighten:16,broken:[0,11],browser:[15,16],bse:[0,2,11,12,17],bse_opt:[5,14,15,16,17],bsf:[0,11],buffer:[0,11],build:[0,1,3,4,11],build_q_tabl:2,built:[0,1,4,9,13,19],burn:[0,11],busso:[0,11],bye:[0,11],c13_eff:[0,11],c_auto_log:7,c_log:0,c_logging_cod:[7,12,14,15,16,17],calc_e_integr:2,calc_p_integr:2,calc_period_from_sep:23,calc_sep_from_period:[15,17,23],calc_total_probden:2,calcul:[0,2,4,5,7,11,16,17,23],calculate_constants_three_part_powerlaw:2,call:[0,1,4,5,7,11,13,14,16,17,18,20],call_binary_c_config:4,calls_filenam:17,can:[0,1,2,4,5,7,9,11,12,13,14,15,16,17,18,19,20],cannot:[5,12],canon:7,cap:[0,11],capit:[15,16],capsul:[1,4,11,15],captur:[0,4,11],carbon:[0,11],carbon_oxygen_white_dwarf:0,care:[15,16],carlo:[0,7,11],carrasco:[0,11],carri:[0,11],cast:[4,13],catchtim:4,categor:11,categori:[11,17],categoris:4,caught:[4,14],caus:23,cbdisc:[0,11],cbdisc_albedo:[0,11],cbdisc_alpha:[0,11],cbdisc_eccentricity_pumping_dermin:0,cbdisc_eccentricity_pumping_method:[0,11],cbdisc_eccentricity_pumping_non:0,cbdisc_end_evolution_after_disc:[0,11],cbdisc_fail_ring_inside_separ:[0,11],cbdisc_gamma:[0,11],cbdisc_init_djdm:[0,11],cbdisc_init_dm:[0,11],cbdisc_inner_edge_strip:[0,11],cbdisc_inner_edge_stripping_timescal:[0,11],cbdisc_kappa:[0,11],cbdisc_mass_loss_constant_r:[0,11],cbdisc_mass_loss_fuv_multipli:[0,11],cbdisc_mass_loss_inner_l2_cross_multipli:[0,11],cbdisc_mass_loss_inner_viscous_accretion_method:[0,11],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,11],cbdisc_mass_loss_inner_viscous_multipli:[0,11],cbdisc_mass_loss_ism_pressur:[0,11],cbdisc_mass_loss_ism_ram_pressure_multipli:[0,11],cbdisc_mass_loss_xray_multipli:[0,11],cbdisc_max_lifetim:[0,11],cbdisc_minimum_evaporation_timescal:[0,11],cbdisc_minimum_fr:[0,11],cbdisc_minimum_luminos:[0,11],cbdisc_minimum_mass:[0,11],cbdisc_no_wind_if_cbdisc:[0,11],cbdisc_outer_edge_strip:[0,11],cbdisc_outer_edge_stripping_timescal:[0,11],cbdisc_resonance_damp:[0,11],cbdisc_resonance_multipli:[0,11],cbdisc_torquef:[0,11],cbdisc_viscous_l2_coupl:[0,11],cbdisc_viscous_photoevaporative_coupl:[0,11],cbdisc_viscous_photoevaporative_coupling_inst:[0,11],cbdisc_viscous_photoevaporative_coupling_non:[0,11],cbdisc_viscous_photoevaporative_coupling_visc:[0,11],cee:[0,11],cell:[11,15,16,17],cemp:[0,11],cemp_cfe_minimum:[0,11],centr:[5,17],central_object:[0,11],certain:[7,9,19],cf_amanda_log:[0,11],cflag:[9,19],chabrier:2,chandrasekhar:[0,11],chandrasekhar_mass:[0,11],chang:[0,1,2,4,5,6,7,9,11,12,16,17,19],chapter:[0,7,10],cheb:[0,11],check:[0,2,4,5,6,11,15,16,17,23],check_circular:4,chemic:[0,11],chen:[0,11],child:4,choic:[0,2,11,18],choos:[0,11,12,15,18],chose:14,chosen:[5,15,16,17],circular:[0,11],circumbinari:[0,11],circumstanti:[0,11],claei:[0,11],clark:[0,11],clean:[1,5,9,14,16,19],clean_up_custom_logging_fil:5,clear:[4,16],clearli:16,clock:4,clone:[9,19],close:[0,11,16],cloud:[0,11],cls:4,cluster:8,cmdline:5,co2:16,code:[0,1,5,6,9,11,12,14,15,16,17,18,19,20],collaps:[0,11],collapsar:[0,11],collect:23,collid:23,color:18,color_by_index:18,colour:[0,11],colour_log:[0,11],column:[14,17,18],column_nam:14,com:[1,4],combin:[1,4,5,7,12],combine_ensemble_with_thread_join:7,come:[2,9,19,21],comenv_bs:0,comenv_disc_angmom_fract:[0,11],comenv_disc_mass_fract:[0,11],comenv_ejection_spin_method:[0,11],comenv_ejection_spin_method_do_noth:[0,11],comenv_ejection_spin_method_sychron:[0,11],comenv_ejection_spin_method_synchron:0,comenv_merger_spin_method:[0,11],comenv_merger_spin_method_breakup:0,comenv_merger_spin_method_conserve_angmom:[0,11],comenv_merger_spin_method_conserve_omega:[0,11],comenv_merger_spin_method_specif:[0,11],comenv_ms_accret:[0,11],comenv_ms_accretion_fract:[0,11],comenv_ms_accretion_mass:[0,11],comenv_nandez2016:0,comenv_nelemans_tout:0,comenv_ns_accret:[0,11],comenv_ns_accretion_fract:[0,11],comenv_ns_accretion_mass:[0,11],comenv_post_eccentr:[0,11],comenv_prescript:[0,11],comenv_splitmass:[0,11],comenv_undef:0,command:[0,1,5,7,9,11,17,19],commandlin:17,comment:17,commit:4,common:[0,11,12,14,15,16,17],compact:17,companion:[0,11],compar:[0,7,11,17],compens:16,compil:[1,9,12,17,19],compile_shared_lib:1,complet:[15,16,17],complex:[5,7,12,17,18],compon:[4,18],comput:[0,8,11,15,16],conceptu:15,condit:[5,12,15,16,17],condor:[5,7,8],condor_grid:5,config:[1,4,7,9,19],config_fil:1,configur:[2,5,14,15,16,17],conjunct:13,conserv:[0,11],consid:[0,1,2,4,5,7,11,18],constant:[0,2,11,18],construct:[0,1,11,14,15,16,17],contain:[0,1,2,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22],content:[3,4,5,9,11],context:4,continu:[5,17],control:[0,11,15,16,17],convect:[0,11],conveni:4,converg:[0,11],convert:[2,4,5],convert_byt:4,convfloat:4,cool:[0,11],copi:[0,11,16,23],core:[0,5,7,11,15,16,17,18],core_co:12,core_h:12,core_helium_burn:0,core_mass:[0,11,12],correct:[0,2,5,11,14,18,23],correctli:[9,14,18,19],correspond:18,corretor:[0,11],cosmic:2,cosmic_sfh_madau_dickinson2014:2,cost:16,could:[0,4,11,16,17],count:[4,7],count_keys_recurs:4,counter:7,coupl:[0,3,11],cours:18,cover:[13,15,16],coverag:[9,19],cowd:[0,11],cpu:[0,11,15,16],cpython:11,crap_paramet:[0,11],creat:[2,4,5,12,14,15,16,17],create_and_load_logging_funct:[1,12],create_arg_str:4,create_hdf5:4,creation:11,critic:[0,11],cross:[0,11],crunch:[15,16],ctype:1,cube:15,cubic:15,cuntz:[0,11],current:[0,4,9,11,12,15,16,19],curv:16,custom:[0,1,3,4,5,7,9,11,14,15,16,17,18,20],custom_log:[5,7,14],custom_logging_cod:[1,12,14,20],custom_logging_func_memaddr:[7,11,12],custom_logging_funct:[7,9,10,12,14,17],custom_logging_info:5,custom_logging_memaddr:12,custom_logging_print_stat:14,custom_logging_stat:[15,16,17],custom_opt:[5,14,15,16,17],custom_output_funct:12,custom_sort_dict:4,custom_tmp_dir:1,customis:18,cvode:[0,11],dai:[0,2,11,12,14,15,17,23],damp:[0,11],darwin:[0,11],dat:[0,4,17],data:[0,4,5,7,11,14,15,16,17,20],data_dict:2,data_dir:[4,5,7,17],datadir:[5,17],datafram:[14,15,16,18],datalinedict:[4,15,16],datamodel:4,dataset:[4,17],date:5,david:[9,11,19],dd7:[0,11],deactiv:[0,11],deal:[4,14],death:[0,11],debug:[0,5,7,11,15,16,17],decai:[0,11],decid:[0,4,5,11,12],decod:4,decreas:[0,11],deeper:[5,17],def:[14,15,16,17],default_to_metal:[0,11],defaultdict:4,defer:[0,11],defin:[0,1,2,5,11,18],definit:[1,15,16,23],degener:[0,11],degenerate_core_helium_merger_ignit:[0,11],degenerate_core_merger_dredgeup_fract:[0,11],degenerate_core_merger_nucsyn:[0,11],degner:[0,11],degre:[0,11],delai:[0,11],delta_mcmin:[0,11],den:[0,11],densiti:[2,15,16],depend:[0,2,9,11,18,19],deprec:[0,5,11],dermin:[0,11],describ:[0,2,7,11],descript:[0,2,4,7,9,10,11,13],design:18,desir:[0,11],destruct:[5,17],detail:[0,4,11,14],detect:[0,11],determin:[0,5,11,12,15,16,17,23],deton:[0,11],dev:[0,11],develop:1,deviat:2,dewi:[0,11],dex:[0,11],diagnost:7,diagram:[0,11,18],dickonson:2,dict2:4,dict:[1,2,4,5,6,13,14,15,16,17,22],dict_1:4,dict_2:4,dict_kei:[13,14],dictionari:[1,2,3,4,5,6,7,15,16,17,18,22],did:[4,9,19],differ:[0,4,5,9,11,15,16,17,18,19],dimmer:[0,11],dir:[9,19],direct:[0,5,11],directli:[4,7,14],director:7,directori:[0,3,4,5,7,9,11,17,19],disabl:[0,11,17],disable_debug:[0,11],disable_end_log:[0,11],disable_ev:[0,11],disc:[0,11],disc_legacy_log:[0,11],disc_log2d:[0,11],disc_log:[0,11],disc_log_directori:[0,11],disc_log_dt:[0,11],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,11],disc_stripping_timescale_infinit:0,disc_stripping_timescale_inst:0,disc_stripping_timescale_orbit:0,disc_stripping_timescale_visc:0,disc_timestep_factor:[0,11],discret:17,discs_circumbinary_from_comenv:[0,11],discs_circumbinary_from_wind:[0,11],disk:[0,5,11],dispers:[0,11],displai:[0,11],disrupt:[0,11],dist:[4,9,19],distefano:2,distribut:[0,2,3,4,5,8,11,15,17],distribution_funct:[9,10,15,16,17],divid:8,dlnm1:[5,15,17],dlnm:16,dlnm_1:16,dlog10per:[15,17],dlogp:2,dm1:16,dm_1:16,do_dry_run:7,doc:[4,6,9,15,16,17,19],doc_fetch:2,docstr:[9,14,18,19],document:[4,6,7,10,15,16,17],doe:[0,2,4,5,7,11,12,13,14,15,16,17,23],doesn:[5,7],doesnt:6,doing:[0,1,6,9,11,19],don:[2,4,7],done:[0,4,5,9,11,15,16,17,19],donor:[0,11,23],donor_limit_dynamical_multipli:[0,11],donor_limit_envelope_multipli:[0,11],donor_limit_thermal_multipli:[0,11],donor_rate_algorithm_bs:0,donor_rate_algorithm_claeys2014:0,dont:11,doubl:[12,17],down:17,dphasevol:[5,15,16,17],dprob:16,dr2:[0,11],dr3:[0,11],drai:[0,11],dredg:[0,11],drop:14,dry:7,dstep:2,dt_limit:13,dtfac:[0,11],dtlimit:4,dtm:[1,12,17],due:[9,19],dummi:[2,18],dump:[0,4,11,14],dumpvers:[0,11],duquennoi:2,duquennoy1991:2,dure:[0,11],dust:[0,11],dwarf:[0,11,16],dynam:[0,11],e2_hurley_2002:0,e2_izzard:0,e2_mint:0,e2_prescript:[0,11],e45c25448b32440cb7e220f4a3562907:17,each:[0,2,4,5,7,11,15,16,17],eagb:[0,11],eagb_wind_beasor_etal_2020:0,eagb_wind_bs:0,eagb_wind_goldman_etal_2017:0,eagbwind:[0,11],eagbwindfac:[0,11],earli:[0,11],early_asymptotic_giant_branch:0,easi:[4,14],easier:[4,17],ecc2:2,ecc3:2,ecc:[2,5,14,17],eccentr:[0,2,11,12,14,15,16,17,18,23],eccentric_rlof_model:[0,11],eccentricity_quadrupl:[0,11],eccentricity_tripl:[0,11],echo:[0,11],eddington:[0,11],edg:[0,5,11,17],edit:12,edu:[0,11],effect:[0,2,7,11,12],effective_metal:[0,11],effici:[0,11],egg:[9,19],eggleton:[0,11,23],either:[0,4,5,7,9,11,15,16,17,19,20],eject:[0,11],elabor:12,eld:[0,11],eldridg:[0,11],electon:[0,11],electron:[0,11],element:[0,1,4,7,11,13,18],email:4,emp:[0,11],emp_feh_maximum:[0,11],emp_logg_maximum:[0,11],emp_minimum_ag:[0,11],empti:[4,6,14],enabl:[0,11],encod:4,encount:7,end:[0,2,4,7,11],end_index:2,end_timestamp:[15,16,17],energi:[0,11],enhanc:[0,11],enlarg:[0,11],enough:2,ensembl:[0,4,7,11,13],ensemble_def:[0,11],ensemble_dictionari:4,ensemble_dt:[0,11],ensemble_factor_in_probability_weighted_mass:7,ensemble_filter_:[0,11],ensemble_filters_off:[0,11],ensemble_json:4,ensemble_legacy_ensembl:[0,11],ensemble_list:5,ensemble_logdt:[0,11],ensemble_logtim:[0,11],ensemble_macro:[0,11],ensemble_output_:7,ensemble_startlogtim:[0,11],ensure_ascii:4,enter:[0,9,11,19],enthalpi:[0,11],entir:[12,14],entri:[4,5],env:[9,11,18,19],envelop:[0,11],epoch:5,equal:[0,4,11,16,17],equat:[0,11],equation_of_state_algorithm:[0,11],equation_of_state_paczynski:0,equatori:[0,11],equival:[7,15],errno:[9,19],error:[0,4,7,9,11,15,16,17,19],errors_exceed:[15,16,17],errors_found:[15,16,17],esa:2,escap:[0,11],escape_fract:[0,11],escape_veloc:[0,11],eta:[0,11,15],etal:[0,11],etc:[0,4,5,8,9,11,14,16,17,18,19,20],etf:15,euler:[0,11],evalu:[2,5,17,23],evan:[0,11],evapor:[0,11],evaporate_escaped_orbiting_object:[0,11],even:[13,16],event:[0,11],everi:[0,4,9,11,19],everyth:[5,7,14,17],everytim:[9,19],evid:[0,11],evolut:[0,1,5,7,11,14,15,16,17,18],evolution_split:[0,11],evolution_splitting_maxdepth:[0,11],evolution_splitting_sn_eccentricity_threshold:[0,11],evolution_splitting_sn_n:[0,11],evolution_typ:[7,15,16,17],evolutionari:[0,11,14],evolv:[0,3,5,7,11,12],evolve_popul:17,evolve_singl:[5,12,14],exact:[1,4,7],exactli:[0,11,16],exampl:[1,2,4,5,14,15,20],example_above_m:12,example_compact_object:17,example_dco:17,example_df:14,example_head:4,example_log:20,example_log_co:[1,12],example_logging_string_co:12,example_logging_string_post_m:12,example_massloss:[12,14],example_output:14,example_parse_output:4,example_pop:[14,17],example_pop_set:17,example_python_population_result:17,example_sn:12,exce:[0,7,11],except:[4,6,7,11,15,16,17,18],execut:[0,5,7,9,11,17,19],exist:[0,4,5,6,11,17],exist_ok:[4,17],exit:[0,4,11],exp:[5,15,16,17],expand:[17,20],expect:[9,11,16,19],experiment:[0,4,11],explain:[3,4],explicitli:[0,1,11],explod:[0,11],explos:[0,11],expoenti:[0,11],expon:[0,11],export_all_info:[5,17],express:[0,11],extend:[0,9,11,19],extens:11,extern:[0,11],extra:[0,3,5,7,9,11,17,20],extra_text:6,extract:[4,17],extract_ensemble_json_from_str:4,extrapol:[2,7],eye:5,f28b5f98d7ef40dcb17fc2481a6d3c:17,fabian:[0,11],fabian_imf_log:[0,11],fabian_imf_log_tim:[0,11],fabian_imf_log_timestep:[0,11],factor:[0,2,4,7,11],fade:[0,11],fail:[0,4,7,9,11,15,19],fail_sil:4,failed_count:[15,16,17],failed_prob:[15,16,17],failed_system:7,failed_system_log:7,failed_systems_error_cod:[15,16,17],failed_systems_threshold:7,failsaf:14,failur:[0,4,11],fallback:[0,11],fals:[0,4,5,7,11,13,15,16,17,18],fancy_parsing_funct:20,far:[0,11,16],fase:17,fast:[0,11],faster:[15,16,17],favorit:14,featur:[3,4,9,17],feed:7,ferguson:[0,11],fetch:14,few:[0,11],field:[0,11],fig:[0,2,11],figsiz:[15,16],figur:[7,15,16,18],file:[0,1,4,5,6,7,8,9,11,14,17,18,19,20],file_log:[0,11],filehandl:6,filenam:[0,1,4,5,7,11,14,17,20],filenotfounderror:[9,19],filepath:1,fill:[4,14],fill_data:2,filter:[0,4,11,13],filter_arg_dict:4,filter_valu:[4,13],fin:[0,11],find:[4,5,7,9,17,19],finish:[4,15,16,17,18],finit:[15,16],first:[0,2,4,5,9,11,14,15,16,17,19,23],first_giant_branch:0,fishlock:[0,11],fit:[0,2,4,5,11,14,23],fix:[0,2,4,5,11,14,17,18],flag:[1,4,7],flash:[0,11],flat:[2,7],flatsect:[2,15,17],flaw:5,float_overflow_check:[0,11],flto:[9,19],fold:2,follow:[0,2,4,7,9,11,12,18,19],forc:[0,9,11,19],force_circularization_on_rlof:[0,11],force_corotation_of_primary_and_orbit:[0,11],foreach_star:15,form:[0,4,5,6,11,15,16,17],formal:[0,11],format:[0,2,4,5,11,12,14,15,16,17],format_ensemble_result:4,formula:[0,11],forward:[0,11],found:[2,9,15,16,17,19],four:[0,11],fpic:1,fraction:[0,2,7,11],framework:11,free_persistent_data_memaddr_and_return_json_output:11,free_store_memaddr:11,frequenc:[0,11],friction:[0,11],fring:[0,11],from:[0,2,4,5,7,13,14,15,16,17,18,23],from_binary_c_config:1,from_dict:[15,16],fryer:[0,11],ftz:[9,19],full:[3,4,7,12],full_path:4,further:[2,17],fuv:[0,11],gaia:[0,2,11],gaia_colour_transform_method:[0,11],gaia_conversion_ubvri_bivariate_jordi2010:[0,11],gaia_conversion_ubvri_riello2020:[0,11],gaia_conversion_ubvri_univariate_evans2018:[0,11],gaia_conversion_ubvri_univariate_jordi2010:[0,11],gaia_conversion_ugriz_bivariate_jordi2010:[0,11],gaia_conversion_ugriz_riello2020:[0,11],gaia_conversion_ugriz_univariate_evans2018:[0,11],gaia_conversion_ugriz_univariate_jordi2010:[0,11],gaia_l_binwidth:[0,11],gaia_teff_binwidth:[0,11],gain:7,galact:[0,11],gallino:[0,11],gamma:[0,11],gap:[0,11],garcia:[0,11],gauss:[0,11],gaussian:2,gaussian_func:2,gaussian_normalizing_const:2,gb_reimers_eta:[0,11],gb_wind_beasor_etal_2020:0,gb_wind_goldman_etal_2017:0,gb_wind_reim:0,gb_wind_schroeder_cuntz_2005:0,gbwind:[0,11],gbwindfac:[0,11],gcc:[1,9,19],gce:[0,11],gener:[0,1,2,4,5,6,7,11,12,14,15,16,17,18],general_info:4,generalis:2,geometr:[0,11],gerosa:[0,11],get:[0,2,3,4,5,6,9,12,14,15,16,17,19,20,23],get_arg_kei:4,get_default:[4,13],get_help:[4,13],get_help_al:[4,5,13],get_help_sup:[4,13],get_integration_constant_q:2,get_max_multipl:2,get_moe_di_stefano_dataset:4,get_siz:4,giant:[0,11],giant_branch:0,git:[0,4,15,16,17],git_branch:4,git_build:4,github:4,gitlab:9,give:[0,2,4,11,23],given:[0,1,2,4,5,7,11,16,20,23],global:[0,2,11,15,16],global_dict:2,gmax:2,gmin:2,gnu:11,goe:[0,4,5,11,12,14,18],gogo:[0,11],going:[9,19],goldman:[0,11],gonna:2,good:[0,7,11,14,15,16,17,23],got:16,gov:[0,11],gravit:[0,11,17],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,11],gravitational_radiation_modulator_:[0,11],gravitational_radiation_modulator_j:[0,11],gravitational_radiation_non:0,grb:[0,11],great:[0,11,16],greater:[0,11],grevess:[0,11],grid:[0,3,4,5,9,10,11,12,14],grid_class:[9,10],grid_cod:5,grid_opt:[5,14,15,16,17],grid_options_default:6,grid_options_defaults_dict:6,grid_options_descript:[6,17],grid_options_description_check:6,grid_options_help:6,grid_result:[7,15,16],grid_vari:[7,17],grid_variable_numb:[5,17],gridcode_filenam:7,gridtyp:[5,17],group:[4,15],gsl:[9,19],gsl_dir:[9,19],guess:[0,2,11],h5py:[9,19],hachisu:[0,11],hachisu_disk_wind:[0,11],hachisu_ignore_qcrit:0,hachisu_qcrit:[0,11],hack:6,had:[5,15,16],half:[0,11],hall:[0,11],handi:[0,11],handl:[0,3,4,5,7,11,14,20,23],handle_ensemble_string_to_json:4,happen:[0,11],hardcod:[12,15,16,17],has:[0,1,4,5,7,11,12,13,15,16,17],have:[0,2,3,4,5,6,7,9,11,12,14,15,16,17,18,19],hbb:[0,11],hbbtfac:[0,11],hdf5:4,hdf5file:4,header:[1,4,12,14,15,16,17],headerlin:17,headlin:7,hegb:0,hehg:0,height:[2,15,17],helium:[0,11],helium_flash_mass_loss:[0,11],helium_white_dwarf:0,help:[0,3,4,6,11,14,15,16,17],help_al:[0,11],hem:0,henc:[0,11,16],hendrik:[9,19],here:[1,4,5,7,11,12,14,18],hertzsprung:[0,11],hertzsprung_gap:0,hertzstrpung:[0,11],heuvel:[0,11],hewd:[0,11],hewd_hewd_ignition_mass:[0,11],hex:7,high:[0,2,11,16],higher:[0,2,4,7,9,11,15,16,17,19],highlight:4,his:2,histori:2,hold:7,hole:[0,11],home:11,homogen:[0,11],hood:14,hopefulli:[0,11],hot:[0,11],how:[0,4,5,7,11,12,14,15,16,17],howev:[0,11,12,15,16,17],hoyl:[0,11],hpc:[5,8],hpc_function:[9,10],hr_diagram:18,hrd:[0,11],hrdiag:[0,11],hrdiag_output:[0,11],html:[4,9,17,19],http:[0,1,2,4,11,17],hurlei:[0,11],hut:[0,11],hybrid:[0,11],hydro:[0,11],hydrogen:[0,11],iadd:4,ibc:[0,11],id_cor:12,idea:[17,18],idum:[0,11],ignit:[0,11],ignor:[0,5,7,9,11,12,14,17,19],iia:[0,11],iloc:14,imf:[0,2,11,16],imf_chabrier2003:2,imf_scalo1986:2,imf_scalo1998:2,imf_tinsley1980:2,immedi:[0,11],implement:[0,4,5,7,11],impli:[0,11],implic:16,impos:[15,16,17],improv:2,inclin:[0,11],inclination1:[0,11],inclination2:[0,11],inclination3:[0,11],inclination4:[0,11],inclini:[0,11],incliniation_quadrupl:[0,11],incliniation_tripl:[0,11],includ:[0,1,2,4,5,9,11,12,14,16,17,18,19],include_binary_c_default:[5,17],include_binary_c_help_al:[5,17],include_binary_c_version_info:[5,17],include_default:[5,17],include_popul:17,include_population_set:5,incom:[0,11],increas:[0,11,15,16],inde:[0,11,16],indent:[4,14],index:[0,2,9,11,13,14],indic:[0,2,11],individu:[3,9,15],individual_nova:[0,11],induc:[0,11],inertia:[0,11],info:[4,5,9,11,13,17,18,19],inform:[0,1,3,4,5,6,12,14,15,16,17,18],init:5,init_abund:[0,11],init_abund_dex:[0,11],init_abund_mult:[0,11],init_abunds_onli:[0,11],initi:[0,2,3,5,11,13,14],initial_abundance_hash:5,initial_abundance_mix:[0,11],initial_abunds_onli:[0,11],initial_mass:14,inner:[0,11],input:[1,2,4,5,7,9,11,13,14,18,23],input_dict:4,insert:[5,17],insid:[0,11],inspect:[4,14,18],inspect_dict:4,inspir:[1,18,23],instabl:[0,11],instanc:[4,14,15,16,17],instant:[0,11],instantli:[0,11],instead:[0,4,7,11,16],integ:[0,5,7,11,23],integr:[2,15,16],integrals_str:2,intens:16,interact:[0,6,11],interfac:[4,9,11,15,19],interfer:[9,19],intern:[0,7,11,13],internal_buff:[0,11],internal_buffering_off:0,internal_buffering_print:0,internal_buffering_stor:0,interpol:[2,5],interpolate_in_mass_izzard2012:2,interpolator_nam:2,intershel:[0,11],interstellar:[0,11],intger:[0,11],intro:[0,11],invers:23,involv:[0,11],inward:[0,11],ipynb:[15,16,17],is_capsul:4,isfil:17,isn:4,isnt:17,isotop:[0,4,11,13],isotope_hash:5,isotope_list:5,item:[1,4,15,16],iter:4,its:[0,4,5,6,9,11,15,16,17,18,19,20],itself:[4,7,9,12,14,19],iwamoto:[0,11],izzard2012_period_distribut:2,izzard:[0,9,11,19],jager:[0,11],jaschek:2,jeff:[9,19],jia:[0,11],john:[0,11],join:[11,12,14,17],jordi:[0,11],json:[4,5,7,11,14,17],jsondecod:4,jsonencod:4,jupyt:[9,15,16,19],just:[0,2,4,5,7,11,17,23],kap:[0,11],kappa:[0,11],kaps_rentrop:[0,11],karaka:[0,11],keep:[5,17],kei:[1,2,4,5,6,7,13,14,17,18],kelvin:[0,11],keplerian:[0,11],keyword:[18,20],kick:[0,7,11],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,12,17],kim:[0,11],kind:11,kippenhahn:[0,11],know:[0,1,6,11,13,14,16],known:[0,2,5,11,14,15,16,17,20],kroupa2001:[2,5,17],kroupa:[2,16],krticka:[0,11],ktg93:2,kwarg:[5,18,20],lambda:[0,11],lambda_c:[0,11],lambda_ce_dewi_tauri:0,lambda_ce_klencki_2020:0,lambda_ce_polytrop:0,lambda_ce_wang_2016:0,lambda_enthalpi:[0,11],lambda_ionis:[0,11],lambda_min:[0,11],lambda_mult:[0,11],lambda_multipli:[0,11],lambda_v:2,lamer:[0,11],landau:[0,11],langer:[0,11],larger:[0,11],last:[2,3],lastli:[11,14],later:[15,16],latter:[0,11],law:[2,16],law_const:2,lbv:[0,11],ld_library_path:[9,19],ldist:16,lead:[0,11,15,16,17,23],learn:12,least:[9,19],leav:[0,11],left:[0,11],legaci:[0,11],legacy_yield:[0,11],len:[14,17],lengthen:[0,11],less:[0,1,2,3,11,14],let:[5,14,15,16,17],level:[1,4,5],li7:[0,11],lib:[9,11,14,19],libbinary_c:7,libcustom_logging_5d7779e8190e4b79b10c7e6a44cb0e7:14,libcustom_logging_8967553693ac4e11a49c42d4eef773e8:14,libgsl:[9,19],libmemo:[9,19],librari:[0,1,5,7,11,12,20],library_path:[9,19],librinterpol:[9,19],lies:[0,11],lifetim:[0,11,15,16,17],lifshitz:[0,11],like:[0,1,4,5,7,9,11,15,16,17,18,19,21],limit:[0,11,15,16,17,18],line:[1,4,5,7,9,12,14,15,16,17,18,19],linear2:7,linear:[0,2,7,11,15,16],linear_extrapolation_q:2,linearli:[16,21],linedata:[15,16],lineplot:[15,16],linker:1,linspac:21,linux:11,list:[0,1,2,4,7,11,14,15,16,17,20,21],list_arg:[0,11],list_of_sub_kei:2,lit:[0,11],lithium:[0,11],lithium_gb_post_1dup:[0,11],lithium_gb_post_heflash:[0,11],lithium_hbb_multipli:[0,11],lithium_t:[0,11],littl:15,littleton:[0,11],liu:[0,11],llnl:[0,11],lnm1:[5,15,16,17],lnm_1:16,load:[0,1,4,5,7,11,12,14,15,16,17,18],load_logfil:4,lobe:[0,11,23],local:2,locat:[0,2,7,9,11,19],lodder:[0,11],log10:[0,2,11,15,16,17],log10m1:7,log10p:2,log10per:[15,17],log10pmin:2,log:[0,1,2,3,4,5,7,9,11,14,18,19,20,23],log_:[15,16],log_arg:7,log_args_dir:7,log_arrow:[0,11],log_dt:7,log_every_timestep:[12,14],log_fil:7,log_filenam:[0,11,14,20],log_runtime_system:7,logarithm:[2,16],logensembletim:[0,11],logfil:[4,9,14,19],logg:[0,11],logger:17,logging_dict:1,logging_lin:12,logic:[1,5,7,12],logmass:2,logp:2,logper:2,logperiod:2,logperrang:15,long_spectral_typ:2,longer:[0,11],longnam:[5,15,16,17],look:[1,4,9,15,16,17,19],lookback:[0,11],loon:[0,11],loop:[5,14,15,16,17],loos:18,lose:[0,11],loss:[0,11,14],lost:[0,11],lot:[4,7,15,16,17,20],low:[0,2,11,16],low_mass_m:0,low_mass_main_sequ:0,lower:[0,2,5,11,17,21],lsoda:[0,11],lsun:[0,11,18],lugaro:[0,11],luminos:[0,3,9,11,18],luminosity_1:18,luminosity_2:18,lynnett:[0,11],m_1:[0,5,11,12,13,14,15,16,17,20],m_2:[0,11,12,14,15,17],m_3:[0,11],m_4:[0,11],m_max:[2,5,17],m_min:[5,17],maccretor:[0,11],machin:[7,9,19],macro:[0,4,11,13],madau:2,maeder:[0,11],magellan:[0,11],magnet:[0,11],magnetic_braking_algorithm:[0,11],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,11],magnetic_braking_gamma:[0,11],magnitud:4,mai:[0,11,15],main:[0,1,7,9,11,12,15,16,17,19],main_sequ:[0,11,15,16],mainli:8,mainprocess:15,major:[0,11],make:[0,1,2,4,5,7,9,11,14,15,16,17,18,19,20],make_build_text:4,makedir:[4,17],manag:[4,9,19],mani:[0,5,7,11,13,15,16,17],manual:12,manufactur:[0,11],map:7,maria:[0,11],mass:[0,1,2,3,4,5,7,11,13,14,15,17,18,20,23],mass_1:[17,18],mass_2:[17,18],mass_accretion_for_eld:[0,11],mass_accretor:23,mass_donor:23,mass_evolut:18,mass_for_hestar_ia_low:[0,11],mass_for_hestar_ia_upp:[0,11],mass_of_pmz:[0,11],mass_str:2,massiv:[0,2,11],massless:[0,11],massless_remn:0,massrang:[15,16],master:[7,18],match:[0,4,11,14,15,17,18],materi:[0,11],math:[5,15,16,17],mathrm:[15,16],matplotlib:[9,16,18,19],matter:[0,11],mattsson:[0,11],mattsson_mass_loss:[0,11],mattsson_orich_tpagbwind:[0,11],max:[0,2,11,12,15,16,17],max_bound:[2,21],max_evolution_tim:[0,1,11,12,14,15,16,17],max_hewd_mass:[0,11],max_model_numb:[0,11],max_multipl:2,max_neutron_star_mass:[0,11],max_queue_s:7,max_stellar_angmom_chang:[0,11],max_stellar_type_1:[0,11],max_stellar_type_2:[0,11],max_stellar_type_3:[0,11],max_stellar_type_4:[0,11],max_tim:14,max_val:2,maximum:[0,2,7,11,12,15,16,23],maximum_mass_ratio_for_instant_rlof:[0,11],maximum_mass_ratio_for_rlof:23,maximum_mcbagb_for_degenerate_carbon_ignit:[0,11],maximum_nuclear_burning_timestep:[0,11],maximum_timestep:[0,11],maximum_timestep_factor:[0,11],maxmimum:[0,11],maxwellian:[0,11],mayb:18,mayor:2,mc13_pocket_multipli:[0,11],mch:[0,11],mcmin:[0,11],mdonor:[0,11],mean:[0,2,4,5,7,9,11,19],meant:7,measur:4,medium:[0,11],mega:2,mem:15,memaddr:[11,12,15],memori:[1,5,7,11,12,23],menv:[0,11],merg:[0,2,4,7,11],merge_dict:[4,13],merge_multipl:2,merger:[0,11],merger_angular_momentum_factor:[0,11],merger_mass_loss_fract:[0,11],mesa:[9,19],mesasdk_init:[9,19],mesasdk_root:[9,19],messag:4,mestel:[0,11],met:[5,17],metal:[0,2,11,12,14,15,16,17,23],method:[0,5,7,11,12,14,15,16,17],meynet:[0,11],might:[4,5,9,17,19],milki:[0,11],miller:[0,11],min:[2,12,15,16,17],min_bound:[2,21],min_p:2,min_per:2,min_val:2,minimal_verbos:4,minimum:[0,2,4,7,11,23],minimum_co_core_mass_for_carbon_ignit:[0,11],minimum_co_core_mass_for_neon_ignit:[0,11],minimum_donor_menv_for_comenv:[0,11],minimum_envelope_mass_for_third_dredgeup:[0,11],minimum_helium_ignition_core_mass:[0,11],minimum_mcbagb_for_nondegenerate_carbon_ignit:[0,11],minimum_orbital_period_for_instant_rlof:[0,11],minimum_period_for_rlof:23,minimum_separation_for_instant_rlof:[0,11],minimum_separation_for_rlof:23,minimum_time_between_pn:[0,11],minimum_timestep:[0,11],mint:[0,11],mint_data_cleanup:[0,11],mint_dir:[0,11],mint_disable_grid_load_warn:[0,11],mint_fallback_to_test_data:[0,11],mint_hard_max_nshel:[0,11],mint_hard_min_nshel:[0,11],mint_kippenhahn:[0,11],mint_kippenhahn_companion_stellar_typ:[0,11],mint_kippenhahn_stellar_typ:[0,11],mint_maximum_nshel:[0,11],mint_maximum_shell_mass:[0,11],mint_metal:[0,11],mint_minimum_nshel:[0,11],mint_minimum_shell_mass:[0,11],mint_ms_rejuven:[0,11],mint_nshel:[0,11],mint_nuclear_burn:[0,11],mint_remesh:[0,11],mint_use_zams_profil:[0,11],mira:[0,11],misc:[9,11],miscellan:[4,13],miss:[0,4,6,11,15,16],mix:[0,4,7,11],mixtur:[0,11],mmax:[2,16],mmin:[2,7,16],mnra:23,model:[0,1,7,11,12,14,15,16,17],model_numb:[15,16],modif:3,modifi:[0,11,12],modul:[0,6,7,10,11,13,15,16,17],modulo:7,moe:[2,4,5,9,17],moe_di_stefano_2017:5,moe_di_stefano_2017_multiplicity_fract:2,moe_di_stefano_2017_pdf:2,moment:[0,11,12,17,21],momenta:[0,11,18],momentum:[0,11],monoton:16,mont:[0,7,11],monte_carlo_kick:[0,11],more:[0,1,3,4,5,7,9,11,12,13,14,15,16,17,18,19,21],most:[4,11,16],mostli:[4,6,7,15,16,17,18,20],move:[0,11],msun:[0,2,11,12,14,15,16],much:[0,4,11,17],multi:7,multipl:[0,2,4,7,11],multiplc:[0,11],multipli:[0,4,7,11,16],multiplicity_arrai:2,multiplicity_fraction_funct:7,multiplicity_model:7,multiplicity_modul:7,multiply_values_dict:[4,13],multiprocess:7,must:[0,2,11,14,15,16,17],my_stellar_data:[1,12,17],myr:[0,11,14,15,16],n100:[0,11],n100_z0:[0,11],n100h:[0,11],n100l:[0,11],n10:[0,11],n150:[0,11],n1600:[0,11],n1600c:[0,11],n200:[0,11],n20:[0,11],n300c:[0,11],n40:[0,11],naked_helium_star_giant_branch:0,naked_helium_star_hertzsprung_gap:0,naked_main_sequence_helium_star:0,name:[1,4,5,6,11,13,15,16,17,20,22],narrow:16,natur:[0,11,16],nauenberg:[0,11],nearer:[0,11],nearest:[15,16],nebula:[0,11],necessari:[4,5,17],need:[0,2,5,9,11,12,14,15,16,17,19],neg:[0,4,11],neither:[0,5,11],neleman:[0,11],nelemans_gamma:[0,11],nelemans_max_frac_j_chang:[0,11],nelemans_minq:[0,11],nelemans_n_comenv:[0,11],nelemans_recalc_eccentr:[0,11],nemp:[0,11],nemp_cfe_minimum:[0,11],nemp_nfe_minimum:[0,11],nenamg:[0,11],neon:[0,11],nest:[4,5,17],network:[0,11,13],neutrn:[0,11],neutron:[0,11,17],neutron_star:0,never:[0,11,16],newdict:4,newer:[0,2,11],newli:[0,11],newmast:0,newnam:5,newopt:2,newton:[0,11],next:[4,15,16,17],nice:[1,5,18],nieuwenhuijzen:[0,11],nieuwenhuijzen_windfac:[0,11],nmax:2,no_thermohaline_mix:[0,11],noecho:[0,11],noechonow:[0,11],noel:[0,11],nolowq:7,nomin:[0,11],non:[0,7,11],nonconservative_angmom_gamma:[0,11],none:[0,1,2,4,5,6,7,11,15,16,17,23],nonetyp:17,nonzero:7,nor:[0,11],norm:7,normal:[0,4,11],normalis:[2,7],normalize_dict:2,normalize_multipl:7,notabl:17,note:[0,4,5,7,11,15,16],notebook:[9,11,12,13,14,15,16,17,19],notebook_api_funct:14,notebook_custom_log:[14,15,16,17],notebook_individual_system:[12,14,15,16,17],notebook_luminos:16,notebook_luminosity_funct:15,notebook_popul:[14,17],noteworthi:3,noth:[5,7],notic:16,notifi:20,nova:[0,11],nova_faml_multipli:[0,11],nova_irradiation_multipli:[0,11],nova_retention_algorithm_claeys2014:0,nova_retention_algorithm_const:0,nova_retention_algorithm_hillman2015:0,nova_retention_fract:[0,11],nova_retention_method:[0,11],nova_timestep_accelerator_index:[0,11],nova_timestep_accelerator_max:[0,11],nova_timestep_accelerator_num:[0,11],now:[0,2,4,5,11,12,14,15,16,17],nre:15,nstar:15,nuclear:[0,11],nuclear_mass_hash:5,nuclear_mass_list:5,nucleosynthesi:[0,4,11],nucleosynthesis_sourc:[4,13],nucreacmult:[0,11],nucsyn:[9,11],nucsyn_angelou_lithium:[0,11],nucsyn_gce_outflow_check:[0,11],nucsyn_hbb:[0,11],nucsyn_init_abund_mix_ag89:0,nucsyn_init_abund_mix_asplund2005:0,nucsyn_init_abund_mix_asplund2009:0,nucsyn_init_abund_mix_garciaberro:0,nucsyn_init_abund_mix_grevesse_noels_1993:0,nucsyn_init_abund_mix_karakas2002:0,nucsyn_init_abund_mix_kobayashi2011_asplund2009:0,nucsyn_init_abund_mix_lodders2003:0,nucsyn_init_abund_mix_lodders2010:0,nucsyn_metal:[0,11],nucsyn_network:[0,11],nucsyn_network_error:[0,11],nucsyn_s_process:[0,11],nucsyn_solv:[0,11],nucsyn_solver_cvod:0,nucsyn_solver_kaps_rentrop:0,nucsyn_solver_lsoda:0,nucsyn_solver_numb:0,nucsyn_third_dredge_up:[0,11],nugi:[0,11],num_ansi_colour:[0,11],number:[0,2,4,5,7,9,11,15,16,17,19],numer:4,numpi:[4,9,14,19,21],obj:4,object:[0,3,4,5,7,8,11,18],object_hook:4,object_pairs_hook:4,object_parse_funct:14,observ:16,obtain:[0,15,16],obvious:12,occur:[0,11,23],off:[0,11,17],off_m:14,offset:[0,11],ohio:[0,11],old:[5,7,16],old_solut:[9,19],oldnam:5,omega:[0,11],onc:[0,11],one:[0,4,5,7,11,13,16,17,18],onewd:0,onli:[0,4,5,7,11,12,15,16,17,23],onset:[0,11],onto:[0,2,11],opac:[0,11],opacity_algorithm:[0,11],opacity_algorithm_ferguson_op:0,opacity_algorithm_paczynski:0,opacity_algorithm_star:0,opal:[0,11],open:[14,17],oper:4,opm:2,opt:[2,4,11],option:[0,1,2,4,5,9,10,11,15,16,17,19,23],orb:[5,17],orbit:[0,2,11,15,18,23],orbit_evolut:18,orbital_inclin:[0,11],orbital_inclinationi:[0,11],orbital_period:[0,11,12,14,15,17,23],orbital_period_quadrupl:[0,11],orbital_period_tripl:[0,11],orbital_phas:[0,11],orbital_phase_quadrupl:[0,11],orbital_phase_tripl:[0,11],orbiting_object:[0,11],orbiting_objects_close_pc_threshold:[0,11],orbiting_objects_log:[0,11],orbiting_objects_tides_multipli:[0,11],orbiting_objects_wind_accretion_multipli:[0,11],order:[3,4,5,17],ordereddict:[4,16],org:[0,2,4,11],origin:[9,19],other:[0,1,2,4,6,7,9,11,13,14,15,16,17,18,19],otherwis:[0,4,5,6,7,11],our:[15,16],out:[4,6,7,12,13,15,16],outcom:[0,11],outer:[0,11],outfil:[5,17],outfile_nam:1,outfilenam:17,output:[1,3,4,5,7,9,11,12,13,14,18,19,20,23],output_dict:14,output_dir:[5,14,17],output_fil:[4,6,14],output_filenam:[5,17],output_lin:4,outsid:[0,2,11],outward:[0,11],over:[4,5,13,14,15,16,17],overflow:[0,11],overlap:4,overrid:[2,4,5],overriden:17,overshoot:[0,11],overspin_algorithm:[0,11],overspin_bs:[0,11],overspin_massloss:[0,11],overview:11,own:[5,7,9,12,14,17,19],oxygen:[0,11],oxygen_neon_white_dwarf:0,packag:[4,9,11,17,19,21],paczynski:[0,11],pad:[15,16],pad_output_distribut:[4,15,16],page:[0,9,11,17,19],pair:[4,5],panda:[4,9,14,15,16,18,19],pane:18,panel:[0,11],paper:[0,11],param:[4,5],param_nam:4,paramet:[1,2,3,4,5,6,7,9,11,12,14,15,16,17,18,20,21,23],parameter_nam:[4,5,11,13,15,16,17],parameter_value_input_typ:[4,13],pars:[3,4,5,14,15,16,17,18,20],parse_binary_c_version_info:4,parse_cmdlin:5,parse_const:4,parse_float:4,parse_funct:[5,7,14,15,16,17,20],parse_function_hr_diagram:18,parse_function_mass:18,parse_function_orbit:18,parse_int:4,parsec:2,part:[2,5,11,14,15,16,17,23],partial:[0,11],particularli:[0,11],pasp:2,pass:[5,7,9,11,12,14,17,18,19,20],path:[4,7,9,14,17,19],patho:[9,19],pdf:[0,2,9,11,19],peak:16,pend:[0,11],per:[0,4,5,7,11,14,15,17,23],percentag:[0,11],peret:[0,11],perfect:16,perfectli:[15,16],perform:[0,11],perhap:[0,11],periastron:[0,11],pericent:23,period:[0,2,11,12,14,15,16,17,18,23],period_str:2,perl:[1,4,15,16,17],persist:11,persistent_data:11,pgo:[0,11],phase:[0,11,15,16],phasevol:[0,11,17],photoevapor:[0,11],php:2,physic:[15,16,17],pick:18,piec:[5,17],pinnsonneault:[0,11],pkg:[9,19],place:[0,4,11],placehold:18,plai:[0,11,16],plan:7,planetari:[0,11],plaw2:7,pleas:[0,4,11,15,16,17],plot:[0,11,14,15,16,18],plot_data:[15,16],plot_funct:[9,10],plot_hr_diagram:18,plot_hr_diagram_singl:18,plot_mass:18,plot_orbit:18,plot_system:18,plot_typ:18,pls:5,plt:16,plu:[0,11],pms:18,pms_mass_1:18,pms_mass_2:18,pn_comenv_transition_tim:[0,11],pn_fast_wind:[0,11],pn_fast_wind_dm_agb:[0,11],pn_fast_wind_dm_gb:[0,11],pn_fast_wind_mdot_agb:[0,11],pn_fast_wind_mdot_gb:[0,11],pn_hall_fading_time_algorithm:[0,11],pn_hall_fading_time_algorithm_maximum:[0,11],pn_hall_fading_time_algorithm_minimum:[0,11],pn_resolv:[0,11],pn_resolve_maximum_envelope_mass:[0,11],pn_resolve_minimum_effective_temperatur:[0,11],pn_resolve_minimum_luminos:[0,11],pne:[0,11],pogg:[0,11],point:[0,2,4,5,9,11,19],poisson:[2,7],pol:[0,11],polytrop:[0,11],poor:16,pop:12,pop_macro:12,popul:[0,2,3,5,6,8,9,11,19,21],population_id:7,population_nam:[15,16,17],population_set:5,posit:[0,2,11],possibl:[0,1,2,4,6,9,11,14,19],post:[0,11,12],post_ce_adaptive_menv:[0,11],post_ce_envelope_dm_eagb:[0,11],post_ce_envelope_dm_gb:[0,11],post_ce_envelope_dm_tpagb:[0,11],post_ce_objects_have_envelop:[0,11],post_sn_orbit_bs:0,post_sn_orbit_method:[0,11],post_sn_orbit_tt98:0,postagb_legacy_log:[0,11],postagb_wind_gi:0,postagb_wind_krticka2020:[0,11],postagb_wind_non:[0,11],postagb_wind_use_gi:[0,11],postagbwind:[0,11],potenti:[0,11],power:[0,2,11,16],powerlaw:2,powerlaw_const:2,powerlaw_extrapolation_q:2,ppn_envelope_mass:[0,11],pragma:12,pre:[0,11,18],pre_events_stardata:[0,11],pre_main_sequ:[0,11],pre_main_sequence_fit_lob:[0,11],precis:4,precod:[5,15,16,17],predefin:[2,15,16,17],predict:7,predictor:[0,11],prefer:[0,5,11],prefix:[0,11],prepar:2,prepare_dict:2,prescrib:[0,11],prescript:[0,11,17],prescrit:[0,11],present:[2,4,5,15,16,17],preserv:[0,11],preset:18,pressur:[0,11],prev_stellar_type_1:17,prev_stellar_type_2:17,prevent:[0,7,11],previou:[4,16],previous:[14,17],previous_stardata:[1,12,14,17],primari:[1,2,5,15,16,17,23],pringl:[0,11],print:[4,5,6,7,11,12,13,14,15,16,17],print_help:[4,13],print_info:6,print_option_descript:6,print_structur:4,printf:[1,12,14,15,16,17],prior:[0,11],privat:[5,6,9],prob_dict:2,probability_weighted_mass:7,probabl:[0,1,2,5,6,7,11,12,15,16,17,18],probdist:[5,15,16,17],problem:[0,11],probtot:16,process:[0,4,5,7,11,15,16,17],processor:15,profil:[0,11],progenitor:[0,11,17],program:[9,19],project:[0,11],proper:[6,12],properli:[0,5,11],properti:[0,4,5,7,18],prot1:[0,11],prot2:[0,11],prot3:[0,11],prot4:[0,11],provid:[0,2,5,7,11,17,20],pseudorandom:[0,11],publicli:12,puls:[0,11,23],pump:[0,11],purpos:[7,15,16,17,18],push_macro:12,put:[1,4,5,7,15,16,17,18],py_rinterpol:[9,19],pyenv:[9,11,19],pyplot:16,pysiz:4,pytest:[9,19],python3:[9,11,19],python:[4,11,12,15,16,17],q_high_extrapolation_method:7,q_interpol:2,q_low_extrapolation_method:7,qcrit_bh:[0,11],qcrit_bs:0,qcrit_cheb:[0,11],qcrit_chen_han_formula:0,qcrit_chen_han_t:0,qcrit_cowd:[0,11],qcrit_degenerate_bh:[0,11],qcrit_degenerate_cheb:[0,11],qcrit_degenerate_cowd:[0,11],qcrit_degenerate_eagb:[0,11],qcrit_degenerate_gb:[0,11],qcrit_degenerate_hegb:[0,11],qcrit_degenerate_hehg:[0,11],qcrit_degenerate_hem:[0,11],qcrit_degenerate_hewd:[0,11],qcrit_degenerate_hg:[0,11],qcrit_degenerate_lmm:[0,11],qcrit_degenerate_m:[0,11],qcrit_degenerate_n:[0,11],qcrit_degenerate_onewd:[0,11],qcrit_degenerate_tpagb:[0,11],qcrit_eagb:[0,11],qcrit_gb:[0,11],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,11],qcrit_hehg:[0,11],qcrit_hem:[0,11],qcrit_hewd:[0,11],qcrit_hg:[0,11],qcrit_hjellming_webbink:0,qcrit_lmm:[0,11],qcrit_m:[0,11],qcrit_n:[0,11],qcrit_onewd:[0,11],qcrit_q_no_comenv:0,qcrit_temmink2021:0,qcrit_tpagb:[0,11],qcrit_vos2018:0,qcrits_:[0,11],qcrits_degenerate_:[0,11],qdata:2,qlimit:2,quad:7,quadrat:[0,11],quadrulpl:[0,11],quadrupl:[0,2,7,11],quantiti:18,queri:14,queue:7,quickli:14,quit:[0,4,11],r_l:23,radau:[0,11],radi:[0,11],radiat:[0,11],radii:[0,11,23],radiu:[0,1,11,12,17,18,23],radius_1:18,radius_2:18,ragb:23,raghavan2010_binary_fract:2,raghavan:2,rai:[0,11],railton:[0,11],rais:[0,4,7,11,17],ram:[0,11],ran:[7,15],random:[0,7,11],random_count:14,random_se:[0,11,14],random_skip:[0,11],random_system:[0,11],random_systems_se:[0,11],rang:[0,2,5,7,11,14,15,16,17,21],rapid:[0,11],rapidli:[0,11],rappaport:[0,11],rate:[0,2,11],rather:[0,4,5,7,9,11,12,14,17,19],ratio:[0,2,11,15,16,17,23],raw:[4,5,7,11,18,20],raw_output:4,reach:[0,11],reaction:[0,11],read:[3,4,14,17],real:[5,17],realist:16,realiti:16,realli:[0,5,6,7,11,17],reason:[0,11,16],rebuild:[0,9,11,19],rebuilt:[9,19],recalcul:[0,11],receiv:4,recogn:17,recombin:[0,11],recommend:[1,3],recompil:[9,15,16,17,19],recurs:[4,5],recursive_change_key_to_float:4,recursive_change_key_to_str:4,red:[0,11,16],redhat:1,redshift:2,reduc:[0,11],reduct:7,refer:4,regardless:18,region:[0,11],regist:17,reignit:[0,11],reimer:[0,11],reinstal:[9,19],reject:[0,11],rejects_in_log:[0,11],rejuven:[0,11],rel:[0,11],relat:[0,11],releas:[4,9,19],reliabl:11,remain:[0,11],rememb:16,remesh:[0,11],remnant:[0,11],remov:[0,4,5,9,11,14,17,19],remove_fil:4,renam:[5,16],rename_grid_vari:[5,16],renormalis:2,rentrop:[0,11],repeat:[0,7,11],repo:[9,19],report:[0,11,15,16,17],repositori:3,repres:7,represent:[4,5,17],reproduc:[0,11],requir:[0,2,4,11,14,15,16,17,18,20],res:[15,16],reset:[0,11],reset_pref:[0,11],reset_star:[0,11],reset_stars_default:[0,11],resolut:[0,5,7,11,15,16,17],resolv:[0,11,15],reson:[0,11],resourc:16,respect:[0,2,11],rest:[2,5,17],restructuredtext:4,result:[0,1,2,4,5,7,9,11,14,15,16,17,19],result_arrai:2,result_dict:2,results_dictionari:[15,16],retain:[0,11],rethink:4,return_all_info:5,return_arglin:11,return_binary_c_default:5,return_binary_c_version_info:[4,5,13],return_compilation_dict:1,return_help:11,return_help_al:[4,11],return_maximum_mass_ratio_for_rlof:[11,23],return_minimum_orbit_for_rlof:[11,23],return_persistent_data_memaddr:11,return_population_set:5,return_store_memaddr:11,return_version_info:[4,11],reus:5,revap_in:[0,11],revap_out:[0,11],revers:[0,11,18],reverse_tim:[0,11],revis:[0,4],rewrit:5,rhagavan:7,ri0005:17,rich:[0,11],riello:[0,11],rin:[0,11],ring:[0,11],risk:[5,17],ritter:[0,11],rk2:[0,11],rk4:[0,11],rlof:[0,11,23],rlof_angular_momentum_transfer_model:[0,11],rlof_angular_momentum_transfer_model_bs:0,rlof_angular_momentum_transfer_model_conserv:0,rlof_eccentric_as_circular:[0,11],rlof_entry_threshold:[0,11],rlof_f:[0,11],rlof_interpolation_binary_c:0,rlof_interpolation_bs:0,rlof_interpolation_method:[0,11],rlof_mdot_factor:[0,11],rlof_mdot_modul:[0,11],rlof_method:[0,11],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,11],rlof_transition_objects_escap:[0,11],rob:[0,2,11,23],robert:[9,19],roch:[0,11,23],roche_lob:23,rochelob:23,rol1:14,rol2:14,room:[5,17],root:[9,19],rotat:[0,2,11],rotation:[0,11],rotationally_enhanced_expon:[0,11],rotationally_enhanced_mass_loss:[0,11],rotationally_enhanced_massloss:[0,11],rotationally_enhanced_massloss_angmom:0,rotationally_enhanced_massloss_langer_formula:[0,11],rotationally_enhanced_massloss_langer_formula_and_angmom:0,rotationally_enhanced_massloss_non:0,rout:[0,11],routin:[0,3,5,9,11,18],row:[14,18],rring:[0,11],rssd:2,rst:[4,6],rsun:18,rubric:5,run:[0,1,3,4,5,7,9,11,15,16,19,20],run_popul:11,run_system:[11,12,13,14,18,20],run_system_wrapp:[9,10,12,14],run_wrapp:3,run_zero_probability_system:7,runtim:[1,7],russel:[0,11],rzam:23,s_option:7,safe:17,sai:[0,11],said:[0,11],same:[0,4,7,9,11,14,19],sampl:[0,2,3,5,9,11,15,17,21],sample_valu:2,sampler:9,sana12:[2,15,17],sana:2,save:[0,1,2,11,12,15,16,17],save_pre_events_stardata:[0,11],scalar:4,scalo:2,scanf:0,scheme:[0,11],schneider:[0,11],schroeder:[0,11],script:[3,9,12,19],sdb:[0,11],sdist:[9,19],sdo:[0,11],seaborn:[15,16],search:[9,15],second:[0,2,4,5,11,18],secondari:[2,15,23],section:[2,4,8,9,11,17,19],see:[0,5,9,11,12,13,14,15,16,17,18,19],seed:[0,11],seem:[9,18,19],seen:4,segment:21,seitenzahl2013_model:[0,11],seitenzahl:[0,11],select:[0,4,11,14,15],selected_head:4,selector:[0,11],self:[5,7,14,15,16,17],semi:[0,11],sent:[0,11],sentenc:1,sep:[0,2,5,14,15,17,23],sep_max:[15,17],sep_min:[15,17],separ:[0,2,4,5,6,11,12,14,17,18,23],separation_quadrupl:[0,11],separation_tripl:[0,11],separta:[0,11],seper:17,sequenc:[0,11,12,15,16],seri:[0,11],serialis:[4,5],serv:4,server:5,set:[0,1,2,3,4,5,6,7,9,12,13,14,18,19],set_moe_di_stefano_set:5,set_opt:2,set_xlabel:[15,16],set_ylabel:[15,16],setup:[9,17,19,20],sever:[6,7,13,17,18,20],sfh:2,shara:[0,11],share:[1,7,14,20],shared_lib_filenam:12,shell:[0,11],shellular:[0,11],shorten:[0,11],should:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20],shouldn:[0,4,11],show:[0,3,7,11,14,15,16,17,18],show_plot:18,show_stellar_typ:18,shown:[0,11,18],shrinkagb:14,side:[15,16,17],siess:[0,11],sigma:2,signal:15,silent:4,sill:[0,11],simpl:15,simplest:14,simpli:[0,11,16],simul:[0,1,11,12,15,16,17],simulation_:5,sinc:[4,18],singl:[0,2,3,5,7,11,15,16,17,18],single_star_lifetim:[11,12,14],sit:[0,11],site:11,situat:11,size:[4,7,15,16],skip:[0,4,7,9,11,15,19],skipkei:4,slightli:11,slope:2,slow:[0,11,15,16],slower:[0,11],slurm:[5,7,8],slurm_grid:5,small:[0,11,16],small_envelope_method:[0,11],small_envelope_method_bs:0,small_envelope_method_miller_bertolami:0,smaller:[0,11],smarter:16,smooth:16,smoother:16,sn_impulse_liu2015:0,sn_impulse_non:0,sn_impulse_wheeler1975:0,sn_kick_companion_a:[0,11],sn_kick_companion_aic_bh:[0,11],sn_kick_companion_bh_bh:[0,11],sn_kick_companion_bh_n:[0,11],sn_kick_companion_ecap:[0,11],sn_kick_companion_grb_collapsar:[0,11],sn_kick_companion_hestaria:[0,11],sn_kick_companion_ia_chand:[0,11],sn_kick_companion_ia_chand_co:[0,11],sn_kick_companion_ia_eld:[0,11],sn_kick_companion_ia_h:[0,11],sn_kick_companion_ia_he_co:[0,11],sn_kick_companion_ia_hybrid_hecowd:[0,11],sn_kick_companion_ia_hybrid_hecowd_sublumin:[0,11],sn_kick_companion_ibc:[0,11],sn_kick_companion_ii:[0,11],sn_kick_companion_iia:[0,11],sn_kick_companion_ns_n:[0,11],sn_kick_companion_tz:[0,11],sn_kick_companion_wdkick:[0,11],sn_kick_dispersion_aic_bh:[0,11],sn_kick_dispersion_bh_bh:[0,11],sn_kick_dispersion_bh_n:[0,11],sn_kick_dispersion_ecap:[0,11],sn_kick_dispersion_grb_collapsar:[0,11],sn_kick_dispersion_ia_hybrid_hecowd:[0,11],sn_kick_dispersion_ia_hybrid_hecowd_sublumin:[0,11],sn_kick_dispersion_ibc:[0,11],sn_kick_dispersion_ii:[0,11],sn_kick_dispersion_ns_n:[0,11],sn_kick_dispersion_tz:[0,11],sn_kick_distribution_aic_bh:[0,11],sn_kick_distribution_bh_bh:[0,11],sn_kick_distribution_bh_n:[0,11],sn_kick_distribution_ecap:[0,11],sn_kick_distribution_grb_collapsar:[0,11],sn_kick_distribution_ia_hybrid_hecowd:[0,11],sn_kick_distribution_ia_hybrid_hecowd_sublumin:[0,11],sn_kick_distribution_ibc:[0,11],sn_kick_distribution_ii:[0,11],sn_kick_distribution_ns_n:[0,11],sn_kick_distribution_tz:[0,11],sn_none:12,sn_type:12,sneia:[0,11],snia:[0,11],snippet:[11,14],sns:[15,16],solar:[0,2,11,13,23],solver:[0,11],solver_forward_eul:0,solver_predictor_corrector:0,solver_rk2:0,solver_rk4:0,some:[0,1,2,5,7,9,11,12,13,14,15,16,17,18,19],someth:[0,5,11,14,15,16],sometim:13,somewhat:[15,16,17],soon:21,sort:[4,15,16],sort_kei:4,sourc:[1,2,4,5,6,7,10,18,20,21,23],source_file_filenam:7,source_list:5,sourcecod:[9,11,12,19],sourcefile_nam:1,space:[0,5,11,15,16,17,21],spacing_funct:[9,10],spacingfunc:[5,15,16,17],spacingfunct:[5,17],special:[0,11,17],specif:[0,4,11,13,14,18],specifi:[0,7,11],spectral:2,speed:[0,7,11],speedtest:[0,11],spent:4,spera:[0,11],spheric:[0,11],spiki:16,spin:[0,11],spinrat:[0,11],split:[0,7,11,14,17],split_lin:14,splitlin:[11,12,14,15,16,17],splitpoint:[0,11],spread:5,sqrt:[0,11],src:[0,9,11,12,19],stabil:[0,11],stabl:[0,11],stancliff:[0,11],standard:[0,2,11,15,16],star:[1,2,7,9,11,12,13,14,15,16,17,18,23],star_with_no_mass:0,starcount:[15,16,17],stardata:[0,1,11,12,14,15,16,17],stardata_dump_filenam:[0,11],stardata_load_filenam:[0,11],stardata_t:12,starnum:15,start:[0,1,4,5,6,7,11,14,15,16,17],start_tim:[0,11],start_timestamp:[15,16,17],startrack:[0,11],startswith:14,state:[0,11],statement:[1,12,14,15,16,17],statist:[0,11],statu:[0,1,11,15,16,17],stderr:[0,11],stdout:4,steadi:[0,11],stefan:18,stefano:[4,5,9,17],stellar:[0,2,3,7,9,11,18,22],stellar_structure_algorithm:[0,11],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,9,10,12,14,15,16,17,18],stellar_type_1:[0,11,17,18],stellar_type_2:[0,11,17,18],stellar_type_3:[0,11],stellar_type_4:[0,11],stellar_type_dict:22,stellar_type_dict_short:22,step:[4,5,12,14,15,16,17,18,21],stepsiz:[5,17],stick:7,stiff:[0,11],still:[1,7,12],stop:[0,4,11,15],stopfil:[0,11],storag:[0,11],store:[0,2,3,4,5,7,9,14,15,16,17,19,23],store_capsul:11,store_memaddr:[11,23],str:[1,4,5,6,17,18],straight:5,straightforward:[15,16,17],straniero:[0,11],strength:[0,11],strict:4,strictli:[15,16],string:[0,1,3,4,5,6,7,11,13,14,15,16,17,18,20],strip:[0,11,14],stronger:[0,11],struct:[0,11,12],structur:[0,4,7,11,18],stuff:[4,7,14,17,18],style:[0,5,11],sub:[0,4,11],subdict:4,subject:[0,11],sublumin:[0,11],submit:9,subroutin:8,subsequ:[0,11],subtract:4,subtract_dict:4,succe:[0,11],suggest:[0,9,11,19],suit:[9,19],sum:[0,11],sundial:[0,11],supercrit:[0,11],supernova:[0,7,11],superwind:[0,11],superwind_mira_switchon:[0,11],sure:[2,5,7,9,14,15,16,17,18,19,20],surfac:[0,11],surrei:17,surviv:[0,11],survivor:[0,11],switcher:[0,11],symmetr:[0,11],synchron:[0,11],synonym:[0,11],synthesi:[7,9,15,16,17,19],system:[0,3,4,5,7,9,11,12,15,16,17,18,19,20],system_gener:[5,17],system_numb:5,system_queue_fil:15,tabl:[0,2,11],take:[0,2,4,5,7,11,15,17,20],taken:[0,4,11,12],tar:[9,19],target:[1,6],task:[0,2,4,5,6,8,11,17,18,20,21,23],tauri:[0,11],tbse:[0,11],technic:[12,15,16,17],teff:[0,2,11],teff_1:18,teff_2:18,teff_postagb_max:[0,11],teff_postagb_min:[0,11],tell:4,temp_dir:[4,14,16,17],temperatur:[0,2,11,18],termin:[1,9,12,17,19],test:[0,4,5,7,9,11,14,17,19,23],test_data:[0,11],test_func:11,test_logfil:14,test_pop:17,text:[4,6],than:[0,2,4,7,9,11,16,17,19],thats:17,thei:[0,2,4,5,7,11,15,17,18],thelog:[0,11],them:[2,4,5,11,17],themselv:[2,4],theoret:[15,16],thermal:[0,2,11,23],thermally_pulsing_asymptotic_giant_branch:0,thermohalin:[0,11],thesi:[0,11],thi:[0,1,2,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,23],thick:[0,11],thick_disc_end_ag:[0,11],thick_disc_logg_max:[0,11],thick_disc_logg_min:[0,11],thick_disc_start_ag:[0,11],thin:[0,11],thing:[0,2,4,5,6,11,15,16,17,20],think:[0,4,5,11],third:[0,2,11],third_dup:[0,11],third_dup_multipli:[0,11],thorn:[0,11],those:[4,5,9,15,16,17,19],thread:[5,7,15,16],thread_id:7,three:[0,2,11,16,17],three_part_powerlaw:[2,15,16,17],threshold:[0,4,7,11],through:[5,11,14,15,16,17,18,20],throughout:[5,15,16,17],tidal:[0,11],tidal_strength_factor:[0,11],tide:[0,11],tides_convective_damp:[0,11],tides_hurley2002:[0,11],tides_zahn1989:[0,11],time:[0,1,2,4,5,7,9,11,12,14,15,16,17,18,19],timescal:[0,11],timestamp:7,timestep:[0,11,12,14,15,16],timestep_limit:[0,11],timestep_log:[0,11],timestep_modul:[0,11],timestep_multipli:[0,11],timestep_solver_factor:[0,11],tinslei:2,titl:[6,15],tmp:[0,4,9,11,14,15,16,17,19],tmp_dir:[5,7,14,16,17],tmp_tabl:2,todo:[0,1,2,4,5,6,7,11,13,17,18,20,21,23],toler:[0,11],too:[0,4,7,9,11,16,19,20],took:[15,16,17],top:17,topic:[0,11],torqu:[0,11],total:[0,2,4,5,7,11,15,16,17,18],total_count:[15,16,17],total_mass_run:[15,16,17],total_prob:[15,16,17],total_probability_weighted_mass_run:[15,16,17],tout:[0,11,23],tout_pringle_1992_multipli:[0,11],tpagb:[0,11],tpagb_reimers_eta:[0,11],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,11],tpagbwindfac:[0,11],tpr:15,traceback:4,track:[7,18],trade:[0,11],transfer:[0,11],transform:[0,4,11],transit:[0,11],treat:[0,11],trigger:[0,11],trio:[15,16,17],tripl:[0,2,7,11],truli:[0,11],tupl:1,turn:[0,4,11,14,17],two:[0,4,11,12,22,23],txt:[5,14,17,20],type:[0,1,2,4,5,6,7,11,14,15,16,17,18,21,22,23],type_chng:14,type_ia_mch_supernova_algorithm:[0,11],type_ia_mch_supernova_algorithm_dd2:0,type_ia_mch_supernova_algorithm_seitenzahl2013:0,type_ia_mch_supernova_algorithm_seitenzahl2013_automat:0,type_ia_sub_mch_supernova_algorithm:[0,11],type_ia_sub_mch_supernova_algorithm_livne_arnett_1995:0,typic:[0,11],ubvri:[0,11],ugriv:[0,11],unavail:[0,11],uncom:[5,14,15,16,17],unction:11,undef:12,under:[14,21],undescrib:6,uniform:2,uninstal:[9,19],union:[2,4,5,17,21,23],uniqu:[4,5,7,17],unit:[0,11,13,23],univari:[0,11],unix:5,unknown:20,unless:[1,5,7],unlik:16,unload:5,unpars:11,unrecogn:[9,19],unresolv:15,unsign:0,unstabl:[0,11],until:[0,2,4,11],unus:[0,7,11],unweight:17,updat:[2,4,5,9,16,17,19],update_dict:[4,13],update_grid_vari:[5,16],upper:[0,2,11,21],usag:[0,3],use:[0,2,3,4,5,7,8,9,11,12,13,14,15,17,18,19,20],use_astropy_valu:18,use_datadir:[5,17],use_fixed_timestep_:[0,11],use_periastron_roche_radiu:[0,11],use_tabular_intershell_abundances_karakas_2012:[0,11],usecas:3,used:[0,1,2,4,5,7,11,12,13,14,15,16,17,18],useful:[0,4,5,7,9,11,13,14,15,16,17,19,20,23],useful_func:[9,10],user:[1,2,4,5,6,7,12,20],uses:[0,7,11,12,17],using:[0,1,5,9,12,13,14,15,16,19],usual:[0,2,4,7,11,15,16,17],util:[1,2,4,5,6,11,12,13,14,15,16,17,18,20,21,23],val:2,valid:[0,2,4,11,12],valu:[0,1,2,4,5,6,7,11,13,14,15,16,17,18],value_lin:14,valueerror:17,valuerang:[5,15,16,17],values_arrai:14,van:[0,11],vandenheuvel_log:[0,11],vari:[0,11,17],variabl:[0,3,4,5,7,11],variant:[0,11],variou:[0,11],vassiliadi:[0,11],vb1print:5,veloc:[0,2,11],venv:[9,19],verbos:[1,2,4,5,7,9,14,15,16,17,19],verbose_print:4,veri:[0,5,11,12,14,16,17,21],versa:23,version:[0,4,5,9,11,13,17,19],version_info:4,version_info_dict:13,version_info_str:4,version_onli:[0,11],via:[3,5,7,11,12,15,16,17,18],vice:23,vink:[0,11],virtual:[9,19],virtualenviron:[9,19],viscos:[0,11],viscou:[0,11],visibl:12,visit:9,volum:[0,11],vrot1:[0,11],vrot2:[0,11],vrot3:[0,11],vrot4:[0,11],vrot_breakup:0,vrot_bs:0,vrot_non_rot:0,vrot_sync:0,vw93:[0,11],vw93_eagb_wind_spe:[0,11],vw93_mira_shift:[0,11],vw93_multipli:[0,11],vw93_tpagb_wind_spe:[0,11],vwind:[0,11],vwind_beta:[0,11],vwind_multipli:[0,11],wai:[0,4,5,7,11,14,16,18],wang:[0,11],want:[0,2,4,5,6,7,11,12,13,15,16,17,18],warmup_cpu:[0,11],warn:[0,11,14,17],wast:16,wave:[0,11,17],wd_accretion_rate_new_giant_envelope_lower_limit_helium_donor:[0,11],wd_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor:[0,11],wd_accretion_rate_new_giant_envelope_lower_limit_other_donor:[0,11],wd_accretion_rate_novae_upper_limit_helium_donor:[0,11],wd_accretion_rate_novae_upper_limit_hydrogen_donor:[0,11],wd_accretion_rate_novae_upper_limit_other_donor:[0,11],wd_kick:[0,11],wd_kick_at_every_puls:0,wd_kick_at_given_puls:0,wd_kick_direct:[0,11],wd_kick_end_agb:0,wd_kick_first_rlof:0,wd_kick_pulse_numb:[0,11],wd_kick_when:[0,11],wd_sigma:[0,11],wdwd_merger_algorithm:[0,11],wdwd_merger_algorithm_bs:0,wdwd_merger_algorithm_chen2016:0,wdwd_merger_algorithm_perets2019:0,web:[15,16],weight:[0,7,11,16],well:[0,4,7,9,11,12,14,15,16,19],went:16,were:[4,15,16,17],what:[0,1,2,4,6,7,9,11,12,14,15,16,17,19,20],whatev:[0,5,9,11,12,19],wheeler:[0,11],when:[0,1,2,4,5,6,7,9,11,13,14,17,19,20],whenev:[9,19],where:[0,1,2,4,5,6,7,9,11,15,16,17,19],whether:[0,2,4,5,6,7,11,13,17,18,23],which:[0,1,2,4,5,6,7,9,11,12,13,14,15,16,17,19,20,23],whichev:7,white:[0,11],white_dwarf_cooling_carrasco2014:[0,11],white_dwarf_cooling_mestel:[0,11],white_dwarf_cooling_mestel_modifi:[0,11],white_dwarf_cooling_model:[0,11],white_dwarf_radius_carrasco2014:[0,11],white_dwarf_radius_model:[0,11],white_dwarf_radius_mu:[0,11],white_dwarf_radius_nauenberg1972:[0,11],whole:[0,5,7,11,12],wide:[15,16],width:[0,11],wiggl:16,wind:[0,11],wind_algorithm_binary_c_2020:0,wind_algorithm_hurley2002:0,wind_algorithm_non:0,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,11],wind_disc_angmom_fract:[0,11],wind_disc_mass_fract:[0,11],wind_djorb_fac:[0,11],wind_gas_to_dust_ratio:[0,11],wind_lbv_luminosity_lower_limit:[0,11],wind_mass_loss:[0,11],wind_multiplier_:[0,11],wind_nieuwenhuijzen_luminosity_lower_limit:[0,11],wind_type_multiplier_:[0,11],within:[0,4,5,9,11,12,13,17,19],without:[2,4,5,7,12,14,16],won:[0,11,14],wood:[0,11],work:[0,4,5,9,11,12,14,15,16,18,19],would:[0,4,11,16,17,18],wouldn:[5,17],wr_wind:[0,11],wr_wind_bs:0,wr_wind_eldridg:0,wr_wind_fac:[0,11],wr_wind_maeder_meynet:0,wr_wind_nugis_lam:0,wrap:[1,12],wrapper:[4,11,12,14,23],write:[1,4,5,6,7,11,12,14,15,17,20],write_binary_c_calls_to_fil:[5,17],write_binary_c_parameter_descriptions_to_rst_fil:4,write_grid_options_to_rst_fil:6,write_logfil:11,written:[5,6,7,11,14,17,20],written_data:14,wrlof_mass_transf:[0,11],wrlof_method:[0,11],wrlof_non:0,wrlof_q_depend:0,wrlof_quadrat:0,wrong:[9,16,19],wrwindfac:[0,11],wtts2:[0,11],wtts_log:[0,11],www:[0,2,11],x86_64:11,year:[0,2,11],yet:[0,4,5,7,11,18],yield:[0,11],you:[0,1,4,5,6,7,9,11,12,14,15,16,17,18,19,23],young:[0,11],your:[7,9,12,14,19],yourself:[15,16,17,18],yscale:[15,16],zahn:[0,11],zam:[0,2,3,11,15,20,23],zams_collis:23,zams_mass:[15,16,17],zams_mass_1:17,zams_mass_2:17,zero:[0,1,3,4,7,9,11],zero_ag:[12,14,15,16,17],zero_age_main_sequence_star:[15,16],zero_age_main_sequence_starn:15,zero_prob_stars_skip:[15,16,17],zone:[0,11],zoom:[0,11],zoomfac_multiplier_decreas:[0,11],zoomfac_multiplier_increas:[0,11],zsolar:2,zytkow:[0,11]},titles:["Binary_c parameters","custom_logging_functions module","distribution_functions module","Example notebooks","functions module","grid_class module","Grid options and descriptions","Population grid code options","hpc_functions module","Welcome to binary_c-python\u2019s documentation!","Binarycpython code","Using the API functionality of binarycpython","Using custom logging routines with binarycpython","Extra features and functionality of binarycpython","Running individual systems with binarycpython","Zero-age stellar luminosity function in binaries","Example use case: Zero-age stellar luminosity function","Running populations with binarycpython","plot_functions module","Python module for binary_c","run_system_wrapper module","spacing_functions module","stellar_types module","useful_funcs module"],titleterms:{"case":16,"function":[4,11,13,14,15,16,17],"public":7,Adding:[15,16,17],Using:[11,12],about:13,after:[9,19],age:[15,16],algorithm:0,api:[11,12,14],better:16,binari:[0,15],binary_c:[0,9,11,13,19],binarycpython:[10,11,12,13,14,17],build:[9,13,19],code:[7,10],compact:12,custom:12,custom_logging_funct:1,descript:6,dictionari:13,directli:12,distribut:16,distribution_funct:2,document:[9,19],environ:[9,19],evolut:12,evolv:[15,16,17],exampl:[3,9,11,12,13,16,17,19],extra:13,faq:[9,19],featur:13,free:11,from:[9,11,12,19],full:17,get:[11,13],grid:[6,7,15,16,17],grid_class:5,handl:[15,16,17],help:13,hpc_function:8,indic:9,individu:14,inform:[11,13],initi:16,input:0,instal:[9,19],instruct:[9,19],issu:[9,19],log:[12,15,16,17],luminos:[15,16],mass:[12,16],misc:0,modif:13,modul:[1,2,4,5,8,9,18,19,20,21,22,23],moe:7,note:[9,19],notebook:3,noteworthi:17,nucsyn:0,object:[12,14,15,16,17],option:[6,7],output:[0,15,16,17],paramet:[0,13],pars:13,pip:[9,19],plot_funct:18,popul:[7,12,14,15,16,17],privat:7,python:[9,19],requir:[9,19],routin:12,run:[12,14,17],run_system_wrapp:20,run_wrapp:14,sampl:16,sampler:7,script:17,section:0,set:[11,15,16,17],singl:14,sourc:[9,19],spacing_funct:21,star:0,stefano:7,stellar:[15,16],stellar_typ:22,store:11,string:12,supernova:12,system:14,tabl:9,usag:[9,11,12,19],use:16,useful_func:23,using:11,variabl:[9,15,16,17,19],via:[9,14,19],welcom:9,when:12,zam:16,zero:[15,16]}})
\ No newline at end of file
diff --git a/docs/build/html/spacing_functions.html b/docs/build/html/spacing_functions.html
index f9d19b5a8..4af76623c 100644
--- a/docs/build/html/spacing_functions.html
+++ b/docs/build/html/spacing_functions.html
@@ -262,9 +262,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/stellar_types.html b/docs/build/html/stellar_types.html
index c10033199..0bf1079a8 100644
--- a/docs/build/html/stellar_types.html
+++ b/docs/build/html/stellar_types.html
@@ -243,9 +243,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/build/html/useful_funcs.html b/docs/build/html/useful_funcs.html
index c2e0dcaca..8c504966e 100644
--- a/docs/build/html/useful_funcs.html
+++ b/docs/build/html/useful_funcs.html
@@ -441,9 +441,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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 
 
diff --git a/docs/source/_templates/footer.html b/docs/source/_templates/footer.html
index 614d6567d..e9fe70c02 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: master git revision cac51a6dc71daeeb943b70d5598350ab43901299 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
+Generated on binarycpython git branch: master git revision 9af65282f7f847c8638c85a39f03c803b635e442 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/master">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6162:20210825:093caf0e9" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch newmaster: git revision: "6185:20210910:1621c23a5" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/newmaster">git url</a>.
 
 {% endblock %}
\ No newline at end of file
diff --git a/docs/source/binary_c_parameters.rst b/docs/source/binary_c_parameters.rst
index 9d05193ac..cdce51580 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**: 6162:20210825:093caf0e9	**Built on**: Aug 25 2021 18:02:39
+	**binary_c git branch**: newmaster	**binary_c git revision**: 6185:20210910:1621c23a5	**Built on**: Sep 10 2021 15:05:46
 
 
 Section: stars
@@ -424,6 +424,11 @@ Section: stars
 | **Parameter input type**: Float(scanf)
 | **Default value**: NULL
 
+| **Parameter**: artificial_mass_accretion_rate_by_stellar_type%d
+| **Description**: Constant mass accretion rate for stellar type <n>.
+| **Parameter input type**: Float(scanf)
+| **Default value**: NULL
+
 | **Parameter**: artificial_angular_momentum_accretion_rate%d
 | **Description**: Constant angular momentum accretion for star <n>.
 | **Parameter input type**: Float(scanf)
@@ -468,13 +473,6 @@ Section: stars
 | **Default value**: 0
 | **Macros**: ['BH_HURLEY2002 = 0', 'BH_BELCZYNSKI = 1', 'BH_SPERA2015 = 2', 'BH_FRYER12_DELAYED = 3', 'BH_FRYER12_RAPID = 4', 'BH_FRYER12_STARTRACK = 5']
 
-| **Parameter**: PPISN_prescription
-| **Description**: (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019.
-| **Parameter input type**: Integer
-| **Default value**: 1
-| **Macros**: ['PPISN_NONE = 0', 'PPISN_FARMER19 = 1']
-| **Extra**: Ignore
-
 | **Parameter**: sn_kick_distribution_II
 | **Description**: 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).
 | **Parameter input type**: Integer
@@ -502,7 +500,7 @@ Section: stars
 | **Parameter**: sn_kick_distribution_GRB_COLLAPSAR
 | **Description**: 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).
 | **Parameter input type**: Integer
-| **Default value**: 0
+| **Default value**: 1
 | **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
 
 | **Parameter**: sn_kick_distribution_TZ
@@ -541,24 +539,6 @@ Section: stars
 | **Default value**: 0
 | **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
 
-| **Parameter**: sn_kick_distribution_PPISN
-| **Description**: Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Integer
-| **Default value**: 1
-| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
-
-| **Parameter**: sn_kick_distribution_PISN
-| **Description**: Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Integer
-| **Default value**: 0
-| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
-
-| **Parameter**: sn_kick_distribution_PHDIS
-| **Description**: Set the distribution of speeds applied to PHDIS supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Integer
-| **Default value**: 0
-| **Macros**: ['KICK_VELOCITY_FIXED = 0', 'KICK_VELOCITY_MAXWELLIAN = 1', 'KICK_VELOCITY_CUSTOM = 2']
-
 | **Parameter**: sn_kick_dispersion_II
 | **Description**: 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).
 | **Parameter input type**: Float
@@ -582,7 +562,7 @@ Section: stars
 | **Parameter**: sn_kick_dispersion_GRB_COLLAPSAR
 | **Description**: 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).
 | **Parameter input type**: Float
-| **Default value**: 0
+| **Default value**: 190
 
 | **Parameter**: sn_kick_dispersion_TZ
 | **Description**: 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).
@@ -614,21 +594,6 @@ Section: stars
 | **Parameter input type**: Float
 | **Default value**: 0
 
-| **Parameter**: sn_kick_dispersion_PPISN
-| **Description**: Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Float
-| **Default value**: 190
-
-| **Parameter**: sn_kick_dispersion_PISN
-| **Description**: Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Float
-| **Default value**: 0
-
-| **Parameter**: sn_kick_dispersion_PHDIS
-| **Description**: Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c).
-| **Parameter input type**: Float
-| **Default value**: 0
-
 | **Parameter**: sn_kick_companion_IA_He
 | **Description**: 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.
 | **Parameter input type**: Float
@@ -749,24 +714,6 @@ Section: stars
 | **Default value**: 0
 | **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
 
-| **Parameter**: sn_kick_companion_PPISN
-| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.
-| **Parameter input type**: Float
-| **Default value**: 0
-| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
-
-| **Parameter**: sn_kick_companion_PISN
-| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.
-| **Parameter input type**: Float
-| **Default value**: 0
-| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
-
-| **Parameter**: sn_kick_companion_PHDIS
-| **Description**: Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975.
-| **Parameter input type**: Float
-| **Default value**: 0
-| **Macros**: ['SN_IMPULSE_NONE = 0', 'SN_IMPULSE_LIU2015 = 1', 'SN_IMPULSE_WHEELER1975 = 2']
-
 | **Parameter**: wd_sigma
 | **Description**: 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.
 | **Parameter input type**: Float
@@ -827,22 +774,22 @@ Section: stars
 | **Parameter**: delta_mcmin
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lambda_min
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lambda_multiplier
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: minimum_envelope_mass_for_third_dredgeup
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0.5
 
 | **Parameter**: mass_of_pmz
 | **Description**: 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.
@@ -852,12 +799,12 @@ Section: stars
 | **Parameter**: c13_eff
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: mc13_pocket_multiplier
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: tides_convective_damping
 | **Description**: Tidal convective damping algorithm. 0=TIDES_HURLEY2002 Zahn 197x timescales + Hut, as in Hurley et al (2002), 1 = TIDES_ZAHN1989: Zahn 1989 lambdas + Hut.
@@ -879,7 +826,7 @@ Section: stars
 | **Parameter**: hbbtfac
 | **Description**: A parameter to modulate the temperature at the base of the hot-bottom burning zone in TPAGB stars. (Works only if NUCSYN is defined)
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: wind_multiplier_%d
 | **Description**: Wind multiplier for the stellar type specified by the intger %d. By default these are all 1.0.
@@ -951,7 +898,7 @@ Section: stars
 | **Parameter**: MINT_metallicity
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: -1
 
 | **Parameter**: gaia_Teff_binwidth
 | **Description**: log10(Effective temperature) bin width used to make Gaia-like HRDs
@@ -978,25 +925,25 @@ Section: stars
 | **Parameter**: AGB_core_algorithm
 | **Description**: 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).
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_CORE_ALGORITHM_DEFAULT = 0', 'AGB_CORE_ALGORITHM_HURLEY = 1', 'AGB_CORE_ALGORITHM_KARAKAS = 2']
 
 | **Parameter**: AGB_radius_algorithm
 | **Description**: Algorithm to use for calculating radii on the TPAGB.
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_RADIUS_ALGORITHM_DEFAULT = 0', 'AGB_RADIUS_ALGORITHM_HURLEY = 1', 'AGB_RADIUS_ALGORITHM_KARAKAS = 2']
 
 | **Parameter**: AGB_luminosity_algorithm
 | **Description**: Algorithm to use for calculating luminosities on the TPAGB.
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_LUMINOSITY_ALGORITHM_DEFAULT = 0', 'AGB_LUMINOSITY_ALGORITHM_HURLEY = 1', 'AGB_LUMINOSITY_ALGORITHM_KARAKAS = 2']
 
 | **Parameter**: AGB_3dup_algorithm
 | **Description**: Algorithm to use for calculating third dredge up efficiency on the TPAGB.
 | **Parameter input type**: Integer
-| **Default value**: 1
+| **Default value**: 2
 | **Macros**: ['AGB_THIRD_DREDGE_UP_ALGORITHM_DEFAULT = 0', 'AGB_THIRD_DREDGE_UP_ALGORITHM_HURLEY = 1', 'AGB_THIRD_DREDGE_UP_ALGORITHM_KARAKAS = 2', 'AGB_THIRD_DREDGE_UP_ALGORITHM_STANCLIFFE = 3']
 
 | **Parameter**: overspin_algorithm
@@ -1136,6 +1083,21 @@ Section: stars
 | **Parameter input type**: True|False
 | **Default value**: False
 
+| **Parameter**: degenerate_core_merger_nucsyn
+| **Description**: 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)
+| **Parameter input type**: True|False
+| **Default value**: False
+
+| **Parameter**: degenerate_core_helium_merger_ignition
+| **Description**: 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)
+| **Parameter input type**: True|False
+| **Default value**: True
+
+| **Parameter**: degenerate_core_merger_dredgeup_fraction
+| **Description**: If non-zero, mix this fraction of the degenerate core during a merger.(0.0).
+| **Parameter input type**: Float
+| **Default value**: 0
+
 Section: binary
 ---------------
 
@@ -1308,7 +1270,7 @@ Section: binary
 | **Parameter**: post_ce_objects_have_envelopes
 | **Description**: 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.
 | **Parameter input type**: True|False
-| **Default value**: True
+| **Default value**: False
 
 | **Parameter**: PN_comenv_transition_time
 | **Description**: 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.
@@ -1478,18 +1440,20 @@ Section: binary
 | **Parameter**: type_Ia_MCh_supernova_algorithm
 | **Description**: 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) 
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['TYPE_IA_MCH_SUPERNOVA_ALGORITHM_DD2 = 0', 'TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013 = 1', 'TYPE_IA_MCH_SUPERNOVA_ALGORITHM_SEITENZAHL2013_AUTOMATIC = 2']
 
 | **Parameter**: Seitenzahl2013_model
 | **Description**: 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).
 | **Parameter input type**: String
-| **Default value**: NULL
+| **Default value**: N100
 | **Extra**: N1
 
 | **Parameter**: type_Ia_sub_MCh_supernova_algorithm
 | **Description**: Algorithm to be used when calculating type Ia yields from sub-Chandrasekhar-mass exploders. (Currently unused.)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['TYPE_IA_SUB_MCH_SUPERNOVA_ALGORITHM_LIVNE_ARNETT_1995 = 0']
 
 | **Parameter**: max_HeWD_mass
 | **Description**: The maximum mass a HeWD can have before it ignites helium (0.7).
@@ -2130,7 +2094,7 @@ Section: nucsyn
 | **Parameter**: NeNaMgAl
 | **Description**: Enables NeNaMgAl reaction network. Requires NUCSYN and NUCSYN_HBB.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: Ignore
 
 | **Parameter**: nucsyn_network%d
@@ -2151,19 +2115,21 @@ Section: nucsyn
 | **Parameter**: nucsyn_metallicity
 | **Description**: 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!
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: -1
 | **Macros**: ['DEFAULT_TO_METALLICITY = -1']
 
 | **Parameter**: nucsyn_solver
 | **Description**: 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. 
 | **Parameter input type**: Unsigned integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['NUCSYN_SOLVER_KAPS_RENTROP = 0', 'NUCSYN_SOLVER_LSODA = 1', 'NUCSYN_SOLVER_CVODE = 2', 'NUCSYN_SOLVER_NUMBER = 3', 'NUCSYN_SOLVER_KAPS_RENTROP = 0', 'NUCSYN_SOLVER_LSODA = 1', 'NUCSYN_SOLVER_CVODE = 2', 'NUCSYN_SOLVER_NUMBER = 3']
 | **Extra**: 0
 
 | **Parameter**: initial_abundance_mix
 | **Description**: initial abundance mixture: 0=AG89, 1=Karakas 2002, 2=Lodders 2003, 3=Asplund 2005 (not available?), 4=Garcia Berro, 5=Grevesse Noels 1993
 | **Parameter input type**: Unsigned integer
-| **Default value**: NULL
+| **Default value**: 0
+| **Macros**: ['NUCSYN_INIT_ABUND_MIX_AG89 = 0', 'NUCSYN_INIT_ABUND_MIX_KARAKAS2002 = 1', 'NUCSYN_INIT_ABUND_MIX_LODDERS2003 = 2', 'NUCSYN_INIT_ABUND_MIX_ASPLUND2005 = 3', 'NUCSYN_INIT_ABUND_MIX_GARCIABERRO = 4', 'NUCSYN_INIT_ABUND_MIX_GREVESSE_NOELS_1993 = 5', 'NUCSYN_INIT_ABUND_MIX_ASPLUND2009 = 6', 'NUCSYN_INIT_ABUND_MIX_KOBAYASHI2011_ASPLUND2009 = 7', 'NUCSYN_INIT_ABUND_MIX_LODDERS2010 = 8']
 | **Extra**: 0
 
 | **Parameter**: init_abund
@@ -2187,37 +2153,38 @@ Section: nucsyn
 | **Parameter**: init_abunds_only
 | **Description**: If True, outputs only the initial abundances, then exits.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: initial_abunds_only
 | **Description**: If True, outputs only the initial abundances, then exits.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: no_thermohaline_mixing
 | **Description**: If True, disables thermohaline mixing.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: lithium_GB_post_Heflash
 | **Description**: Sets the lithium abundances after the helium flash. Requires NUCSYN and LITHIUM_TABLES.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lithium_GB_post_1DUP
 | **Description**: Sets the lithium abundance after first dredge up. Requires NUCSYN and LITHIUM_TABLES.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0
 
 | **Parameter**: lithium_hbb_multiplier
 | **Description**: Multiplies the lithium abundances on the AGB during HBB (based on Karakas/Fishlock et al models).Requires NUCSYN and LITHIUM_TABLES.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: angelou_lithium_decay_function
 | **Description**: Functional form which describes Li7 decay. Requires NUCSYN and NUCSYN_ANGELOU_LITHIUM. Choices are: 0 expoential (see angelou_lithium_decay_time).
 | **Parameter input type**: Integer
 | **Default value**: NULL
+| **Macros**: ['ANGELOU_LITHIUM_DECAY_FUNCTION_EXPONENTIAL = 0']
 
 | **Parameter**: angelou_lithium_LMMS_time
 | **Description**: 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).
@@ -2337,16 +2304,10 @@ Section: nucsyn
 Section: output
 ---------------
 
-| **Parameter**: david_logging_function
-| **Description**: Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, >0 for custom logging functions
-| **Parameter input type**: Integer
-| **Default value**: 0
-| **Extra**: Ignore
-
 | **Parameter**: cf_amanda_log
 | **Description**: Enable logging to compare to Amanda's models.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: float_overflow_checks
 | **Description**: 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)
@@ -2386,7 +2347,7 @@ Section: output
 | **Parameter**: legacy_yields
 | **Description**: Turn on ensemble legacy yield output.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 
 | **Parameter**: ensemble_defer
 | **Description**: Defer ensemble output.
@@ -2426,27 +2387,27 @@ Section: output
 | **Parameter**: EMP_logg_maximum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 4
 
 | **Parameter**: EMP_minimum_age
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 10
 
 | **Parameter**: EMP_feh_maximum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: -2
 
 | **Parameter**: CEMP_cfe_minimum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0.7
 
 | **Parameter**: NEMP_cfe_minimum
 | **Description**: 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.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1
 
 | **Parameter**: thick_disc_start_age
 | **Description**: Lookback time for the start of the thick disc star formation, e.g. 13e3 Myr. Units = Myr.
@@ -2582,99 +2543,99 @@ Section: input
 | **Parameter**: MINT_dir
 | **Description**: Location of MINT algorithm data.
 | **Parameter input type**: String
-| **Default value**: NULL
+| **Default value**: 
 | **Extra**: 
 
 | **Parameter**: MINT_data_cleanup
 | **Description**: Activate checks on incoming data to try to account for problems. Will make data-loading slower, but may fix a few things.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_MS_rejuvenation
 | **Description**: Turn on or off (hydrogen) main-sequence rejuvenation.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: 
 
 | **Parameter**: MINT_remesh
 | **Description**: Turn on or off MINT's remeshing.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: 
 
 | **Parameter**: MINT_use_ZAMS_profiles
 | **Description**: 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.)
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: True
 | **Extra**: 
 
 | **Parameter**: MINT_fallback_to_test_data
 | **Description**: If TRUE, use the MINT test_data directory as a fallback when data is unavailable. (FALSE)
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_disable_grid_load_warnings
 | **Description**: Use this to explicitly disable MINT's warnings when loading a grid with, e.g., missing or too much data.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_Kippenhahn
 | **Description**: 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.
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 0
 | **Extra**: 
 
 | **Parameter**: MINT_nshells
 | **Description**: 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)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 200
 | **Extra**: 
 
 | **Parameter**: MINT_maximum_nshells
 | **Description**: 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)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 1000
 | **Extra**: 
 
 | **Parameter**: MINT_minimum_nshells
 | **Description**: 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)
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: 10
 | **Extra**: 
 
 | **Parameter**: MINT_Kippenhahn_stellar_type
 | **Description**: Stellar type selector for Kippenhahn plots. Set to -1 to ignore, otherwise the stellar type number for which Kippenhahn plot data should be output.
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: -1
 | **Macros**: ['LOW_MASS_MS = 0', 'MS = 1', 'HG = 2', 'GIANT_BRANCH = 3', 'CHeB = 4', 'EAGB = 5', 'TPAGB = 6', 'HeMS = 7', 'HeHG = 8', 'HeGB = 9', 'HeWD = 10', 'COWD = 11', 'ONeWD = 12', 'NS = 13', 'BH = 14', 'MASSLESS_REMNANT = 15']
 | **Extra**: 
 
 | **Parameter**: MINT_Kippenhahn_companion_stellar_type
 | **Description**: 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.
 | **Parameter input type**: Integer
-| **Default value**: NULL
+| **Default value**: -1
 | **Macros**: ['LOW_MASS_MS = 0', 'MS = 1', 'HG = 2', 'GIANT_BRANCH = 3', 'CHeB = 4', 'EAGB = 5', 'TPAGB = 6', 'HeMS = 7', 'HeHG = 8', 'HeGB = 9', 'HeWD = 10', 'COWD = 11', 'ONeWD = 12', 'NS = 13', 'BH = 14', 'MASSLESS_REMNANT = 15']
 | **Extra**: 
 
 | **Parameter**: MINT_nuclear_burning
 | **Description**: Turn on or off MINT's nuclear burning algorithm.
 | **Parameter input type**: True|False
-| **Default value**: NULL
+| **Default value**: False
 | **Extra**: 
 
 | **Parameter**: MINT_minimum_shell_mass
 | **Description**: Minimum shell mass in MINT's nuclear burning routines.
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 1e-06
 | **Extra**: 
 
 | **Parameter**: MINT_maximum_shell_mass
 | **Description**: Maximum shell mass in MINT's nuclear burning routines. :
 | **Parameter input type**: Float
-| **Default value**: NULL
+| **Default value**: 0.1
 | **Extra**: 
 
 Section: i/o
diff --git a/docs/source/example_notebooks.rst b/docs/source/example_notebooks.rst
index 2f6090b9f..d15ea559a 100644
--- a/docs/source/example_notebooks.rst
+++ b/docs/source/example_notebooks.rst
@@ -13,4 +13,5 @@ The order of the notebooks below is more or less the recommended order to read.
     notebook_population.ipynb
     notebook_extra_features.ipynb
     notebook_api_functionality.ipynb
-    notebook_luminosity_function_single.ipynb
\ No newline at end of file
+    notebook_luminosity_function_single.ipynb
+    notebook_luminosity_function_binaries.ipynb
\ No newline at end of file
diff --git a/docs/source/grid_options_descriptions.rst b/docs/source/grid_options_descriptions.rst
index 319b8d56a..84538e2c4 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 1 options that are not described yet.
+There are 2 options that are not described yet.
 
 
 Public options
@@ -35,6 +35,8 @@ The following options are meant to be changed by the user.
 
 | **log_args_dir**: Directory to log the arguments to. Unused
 
+| **log_dt**: No description available yet
+
 | **log_file**: Log file for the population object. Unused
 
 | **log_runtime_systems**: Whether to log the runtime of the systems . Each systems run by the thread is logged to a file and is stored in the tmp_dir. (1 file per thread). Don't use this if you are planning to run a lot of systems. This is mostly for debugging and finding systems that take long to run. Integer, default = 0. if value is 1 then the systems are logged
@@ -47,7 +49,7 @@ The following options are meant to be changed by the user.
 
 | **multiplicity_fraction_function**: Which multiplicity fraction function to use. 0: None, 1: Arenou 2010, 2: Rhagavan 2010, 3: M&S 2017
 
-| **parse_function**: Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the grid_options['results'] dictionary, or just output results to a file
+| **parse_function**: Function that the user can provide to handle the output the binary_c. This function has to take the arguments (self, output). Its best not to return anything in this function, and just store stuff in the self.grid_results dictionary, or just output results to a file
 
 | **repeat**: Factor of how many times a system should be repeated. Consider the evolution splitting binary_c argument for supernovae kick repeating.
 
diff --git a/docs/source/notebook_api_functionality.ipynb b/docs/source/notebook_api_functionality.ipynb
index d81c31711..8d454880c 100644
--- a/docs/source/notebook_api_functionality.ipynb
+++ b/docs/source/notebook_api_functionality.ipynb
@@ -15,7 +15,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 1,
    "id": "ded7eaf6-e1ba-46c2-9f6f-9ebcb14a264d",
    "metadata": {},
    "outputs": [
@@ -30,37 +30,69 @@
       "\n",
       "FUNCTIONS\n",
       "    free_persistent_data_memaddr_and_return_json_output(...)\n",
-      "        Frees the persistent_data memory and returns the json output\n",
+      "        Frees the persistent_data memory and returns the json output.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the persistent data object (contains the ensemble)\n",
       "    \n",
       "    free_store_memaddr(...)\n",
-      "        Frees the store memaddr\n",
+      "        Frees the store memaddr.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                store capsule: capsule containing the memory adress of the store object\n",
       "    \n",
       "    return_arglines(...)\n",
       "        Return the default args for a binary_c system\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_help(...)\n",
       "        Return the help info for a given parameter\n",
+      "        \n",
+      "        Arguments:\n",
+      "                parameter: parameter name.\n",
       "    \n",
       "    return_help_all(...)\n",
       "        Return an overview of all the parameters, their description, categorized in sections\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_maximum_mass_ratio_for_RLOF(...)\n",
-      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at zams. Optionally accepts a store_capsule. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the maximum mass ratio for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_minimum_orbit_for_RLOF(...)\n",
-      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at zams. Please use the wrapper functions in utils for this except when you know what you're doing\n",
+      "        Returns a string containing the minimum orbit and separation for which a binary system does not RLOF at ZAMS. Please use the wrapper functions in utils for this except when you know what you're doing.\n",
+      "        \n",
+      "        Arguments:\n",
+      "                argstring: argument string for binary_c\n",
+      "                (opt) store_capsule: capsule containing memory adress for the store object.unction. Default = Null\n",
       "    \n",
       "    return_persistent_data_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_store_memaddr(...)\n",
       "        Return the store memory adress that will be passed to run_population\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    return_version_info(...)\n",
       "        Return the version information of the used binary_c build\n",
+      "        \n",
+      "        Arguments:\n",
+      "                No arguments.\n",
       "    \n",
       "    run_system(...)\n",
-      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things. \n",
+      "        Function to run a system. This is a general function that will be able to handle different kinds of situations: single system run with different settings, population run with different settings, etc. To avoid having too many functions doing slightly different things.\n",
       "        \n",
       "        Arguments:\n",
       "                argstring: argument string for binary_c\n",
@@ -126,7 +158,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 2,
    "id": "10a74d5a-a3d5-4543-a5bc-20d1fe885bb4",
    "metadata": {},
    "outputs": [
@@ -134,8 +166,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "<capsule object \"STORE\" at 0x7f163859d0c0>\n",
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
+      "<capsule object \"STORE\" at 0x7fa6a45ed180>\n",
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
       "\n"
      ]
     }
@@ -183,7 +215,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 3,
    "id": "318874f6-7acf-49bb-9786-299d4dffc0b3",
    "metadata": {},
    "outputs": [
@@ -217,7 +249,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 4,
    "id": "d7e757ae-579c-42a2-a310-f0401b7800e8",
    "metadata": {
     "scrolled": true,
@@ -291,6 +323,9 @@
       "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",
@@ -310,7 +345,9 @@
       "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",
@@ -318,8 +355,7 @@
       "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. 0=Hurley et al 2000/2002, 1=Belczynski (early 2000s). : (null)\n",
-      "PPISN_prescription : (Pulsational) Pair-Instability Supernova prescription: Relates initial helium core mass of star to whether the star undergoes PPISN or PISN. Requires PPISN flag to be True (see binary_c_parameters.h). 0=no ppisn, 1=Farmer et al 2019. : Ignore\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",
@@ -331,9 +367,6 @@
       "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_distribution_PPISN : Set the distribution of speeds applied to PPISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PISN : Set the distribution of speeds applied to PISN supernovae. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_distribution_PHDIS : Set the distribution of speeds applied to PHDIS supernovae. 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",
@@ -345,9 +378,6 @@
       "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_dispersion_PPISN : Set the dispersion of speeds applied to the survivor of a PPISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PISN : Set the dispersion of speeds applied to the survivor of a PISN supernova. 0=fixed, 1=maxwellian (hurley/BSE), 2=custom function (see monte_carlo_kicks.c). : (null)\n",
-      "sn_kick_dispersion_PHDIS : Set the dispersion of speeds applied to the survivor of a PHDIS supernova. 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",
@@ -368,9 +398,6 @@
       "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",
-      "sn_kick_companion_PPISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PPISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PISN : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PISN supernova. 0 = none, 1 = Liu+2015, 2 = Wheeler+ 1975. : (null)\n",
-      "sn_kick_companion_PHDIS : Set the speed (if >=0) of, or the algothim (if <0) used to calculate the kick on the companion, if it survives, in a PHDIS supernova. 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",
@@ -443,6 +470,11 @@
       "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",
@@ -709,7 +741,6 @@
       "############################################################\n",
       "##### Section Output\n",
       "############################################################\n",
-      "david_logging_function : Function to choose which kind of information gets logged Requires DAVID. Choices are: 0= None, >0 for custom logging functions : Ignore\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",
@@ -739,6 +770,7 @@
       "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",
@@ -763,8 +795,12 @@
       "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",
@@ -825,7 +861,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 20,
+   "execution_count": 5,
    "id": "3d29ca9d-ac66-4f9e-81cf-2edd14a98b79",
    "metadata": {},
    "outputs": [
@@ -854,7 +890,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 6,
    "id": "e517f561-09c6-419d-ba89-d9cb61e6ebab",
    "metadata": {},
    "outputs": [
@@ -887,7 +923,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 46,
+   "execution_count": 7,
    "id": "7da75a95-8831-4346-a584-e042ced75249",
    "metadata": {},
    "outputs": [
diff --git a/docs/source/notebook_custom_logging.ipynb b/docs/source/notebook_custom_logging.ipynb
index 05ffbccfc..84e41e6bc 100644
--- a/docs/source/notebook_custom_logging.ipynb
+++ b/docs/source/notebook_custom_logging.ipynb
@@ -11,7 +11,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 1,
    "id": "696ecbb9-1efd-48f4-a57e-2cf6dfe416f1",
    "metadata": {},
    "outputs": [],
@@ -65,7 +65,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 2,
    "id": "236cf821-09ac-4237-9b8f-6e36d2edf446",
    "metadata": {},
    "outputs": [
@@ -90,7 +90,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 3,
    "id": "feb423d5-5cc3-433c-9801-f8017abbc03a",
    "metadata": {},
    "outputs": [
@@ -110,7 +110,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 4,
    "id": "2f5defbf-c623-49ed-a238-fba52a563a58",
    "metadata": {},
    "outputs": [
@@ -155,7 +155,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 5,
    "id": "dcd74bbc-478b-43e4-b495-8c456e8d1d88",
    "metadata": {},
    "outputs": [
@@ -195,7 +195,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 6,
    "id": "77bd09b0-1a94-499d-97db-a1f991c67c12",
    "metadata": {},
    "outputs": [
@@ -203,10 +203,10 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_ABOVE_MS             1.041660877905e+02 4.99198 4.99198 6.1357 6.1357 2 1\n",
-      "EXAMPLE_ABOVE_MS             1.041662558619e+02 4.99198 4.99198 6.14057 6.1357 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662560111e+02 4.99198 4.99198 6.14057 6.14057 2 2\n",
-      "EXAMPLE_ABOVE_MS             1.041662564579e+02 4.99198 4.99198 6.14059 6.14057 2 2\n"
+      "EXAMPLE_ABOVE_MS             1.044142002936e+02 4.99194 4.99194 6.13567 6.13567 2 1\n",
+      "EXAMPLE_ABOVE_MS             1.044572277695e+02 4.99192 4.99194 7.51803 6.13567 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.044654032097e+02 4.99192 4.99192 7.81395 7.51803 2 2\n",
+      "EXAMPLE_ABOVE_MS             1.045084306856e+02 4.99191 4.99192 9.57443 7.81395 2 2\n"
      ]
     }
    ],
@@ -260,7 +260,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 7,
    "id": "30142286-34ce-433e-82c8-565e2160ff5b",
    "metadata": {},
    "outputs": [
@@ -336,7 +336,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 8,
    "id": "6f0edc65-a788-4706-a0c5-2ace030765ec",
    "metadata": {},
    "outputs": [
@@ -344,8 +344,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "SINGLE_STAR_LIFETIME 10 27.7358\n",
-      "EXAMPLE_LOG_CO             2.773581245005e+01 1.33524 9.19314 1.72498e-05 730.446 13 5\n"
+      "SINGLE_STAR_LIFETIME 10 28.4838\n",
+      "EXAMPLE_LOG_CO             2.848380621869e+01 1.33469 9.1865 1.72498e-05 724.338 13 5\n"
      ]
     }
    ],
@@ -395,7 +395,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 10,
    "id": "8f58fdf9-3e76-4c18-a1c5-eed0980d4133",
    "metadata": {},
    "outputs": [
@@ -403,8 +403,8 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "EXAMPLE_MASSLOSS             9.878236827680e+00 1.61349 8.38063 20 13 1\n",
-      "EXAMPLE_SN             9.878236827680e+00 1.61349 8.38063 20 12 13 5 1 6.74037 4.92267 6.74037 0 0\n"
+      "EXAMPLE_MASSLOSS             1.050651207308e+01 1.59452 9.34213 20 13 1\n",
+      "EXAMPLE_SN             1.050651207308e+01 1.59452 9.34213 20 12 13 5 1 6.55458 4.71662 6.55458\n"
      ]
     }
    ],
@@ -424,58 +424,27 @@
     "{\n",
     "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
     "    {\n",
-    "        if(stardata->pre_events_stardata != NULL)\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
-    "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->pre_events_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "        Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
+    "            \"%g %g %g %d \" // 2-5\n",
+    "            \"%d %d %g %g \" // 6-9\n",
+    "            \"%g %g\\\\n\", // 10-13\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->pre_events_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[ID_core(stardata->pre_events_stardata->star[0].stellar_type)],           // 9\n",
-    "\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->pre_events_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
-    "        else\n",
-    "        {\n",
-    "            Printf(\"EXAMPLE_SN %30.12e \" // 1\n",
-    "                \"%g %g %g %d \" // 2-5\n",
-    "                \"%d %d %g %g \" // 6-9\n",
-    "                \"%g %g %g %g\\\\n\", // 10-13\n",
-    "\n",
-    "                // \n",
-    "                stardata->model.time, // 1\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
     "\n",
-    "                stardata->star[0].mass, //2\n",
-    "                stardata->previous_stardata->star[0].mass, //3\n",
-    "                stardata->common.zero_age.mass[0], //4\n",
-    "                stardata->star[0].SN_type, //5\n",
+    "            stardata->star[0].mass, //2\n",
+    "            stardata->previous_stardata->star[0].mass, //3\n",
+    "            stardata->common.zero_age.mass[0], //4\n",
+    "            stardata->star[0].SN_type, //5\n",
     "\n",
-    "                stardata->star[0].stellar_type, //6\n",
-    "                stardata->previous_stardata->star[0].stellar_type, //7\n",
-    "                stardata->model.probability, //8\n",
-    "                stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
+    "            stardata->star[0].stellar_type, //6\n",
+    "            stardata->previous_stardata->star[0].stellar_type, //7\n",
+    "            stardata->model.probability, //8\n",
+    "            stardata->previous_stardata->star[0].core_mass[ID_core(stardata->previous_stardata->star[0].stellar_type)],           // 9\n",
     "\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
-    "                stardata->previous_stardata->star[0].core_mass[CORE_He],    // 11\n",
-    "                stardata->star[0].fallback, // 12\n",
-    "                stardata->star[0].fallback_mass // 13\n",
-    "            );\n",
-    "        }\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_CO],     // 10\n",
+    "            stardata->previous_stardata->star[0].core_mass[CORE_He]    // 11\n",
+    "        );\n",
     "    };\n",
     "    /* Kill the simulation to save time */\n",
     "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
@@ -491,6 +460,14 @@
     "# print (abridged) output\n",
     "print(\"\\n\".join(output.splitlines()[-2:]))"
    ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "484297c0-accb-4efc-a9c8-dbd2f32b89a6",
+   "metadata": {},
+   "outputs": [],
+   "source": []
   }
  ],
  "metadata": {
diff --git a/docs/source/notebook_luminosity_function_binaries.ipynb b/docs/source/notebook_luminosity_function_binaries.ipynb
new file mode 100644
index 000000000..fb64dbcc9
--- /dev/null
+++ b/docs/source/notebook_luminosity_function_binaries.ipynb
@@ -0,0 +1,839 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Zero-age stellar luminosity function in binaries\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of binary stars using binary_c. \n",
+    "\n",
+    "Before you go through this notebook, you should look at notebook_luminosity_function.ipynb which is for the - conceptually more simple - single stars.\n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    " )\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 1.0 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set up the binary grid in \"cubic\" M1 - M2=q*M1 - log10 period space\n",
+    "\n",
+    "population = Population()\n",
+    "\n",
+    "# resolution on each side of the cube, with more stars for the primary mass\n",
+    "nres = 10\n",
+    "resolution = {\"M_1\": 2*nres,\n",
+    "              \"q\": nres,\n",
+    "              \"per\": nres}\n",
+    "\n",
+    "massrange = [0.07,100]\n",
+    "logperrange = [0.15, 5.5]\n",
+    "\n",
+    "population.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min=massrange[0],max=massrange[1],res=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",
+    "    dphasevol=\"dlnm1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")\n",
+    "\n",
+    "# Mass ratio\n",
+    "population.add_grid_variable(\n",
+    "     name=\"q\",\n",
+    "     longname=\"Mass ratio\",\n",
+    "     valuerange=[\"0.1/M_1\", 1],\n",
+    "     resolution=\"{}\".format(resolution['q']),\n",
+    "     spacingfunc=\"const({}/M_1, 1, {})\".format(massrange[0],resolution['q']),\n",
+    "     probdist=\"flatsections(q, [{{'min': {}/M_1, 'max': 1.0, 'height': 1}}])\".format(massrange[0]),\n",
+    "     dphasevol=\"dq\",\n",
+    "     precode=\"M_2 = q * M_1\",\n",
+    "     parameter_name=\"M_2\",\n",
+    "     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    " )\n",
+    "\n",
+    "# Orbital period\n",
+    "population.add_grid_variable(\n",
+    "    name=\"log10per\", # in days\n",
+    "    longname=\"log10(Orbital_Period)\",\n",
+    "    valuerange=[0.15, 5.5],\n",
+    "    resolution=\"{}\".format(resolution[\"per\"]),\n",
+    "    spacingfunc=\"const({}, {}, {})\".format(logperrange[0],logperrange[1],resolution[\"per\"]),\n",
+    "    precode=\"\"\"orbital_period = 10.0 ** 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**{})\n",
+    "sep_max = calc_sep_from_period(M_1, M_2, 10**{})\"\"\".format(logperrange[0],logperrange[1]),\n",
+    "    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**{}), math.log10(10**{}), {})\".format(logperrange[0],logperrange[1],-0.55),\n",
+    "    parameter_name=\"orbital_period\",\n",
+    "    dphasevol=\"dlog10per\",\n",
+    " )"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The \n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STARn\n",
+    "#\n",
+    "# where:\n",
+    "#\n",
+    "# n = PRIMARY    = 0 is star 0 (primary star)\n",
+    "# n = SECONDARY  = 1 is star 1 (secondary star)\n",
+    "# n = UNRESOLVED = 2 is the unresolved system (both stars added)\n",
+    "\n",
+    "PRIMARY = 0\n",
+    "SECONDARY = 1\n",
+    "UNRESOLVED = 2\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "// select ZAMS\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "    // loop over the stars individually (equivalent to a resolved binary) \n",
+    "    Foreach_star(star)\n",
+    "    {\n",
+    "        // select main-sequence stars\n",
+    "        if(star->stellar_type <= MAIN_SEQUENCE)\n",
+    "        {\n",
+    "            /* Note that we use Printf - with a capital P! */\n",
+    "           Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  star->starnum,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0], // 2\n",
+    "                  star->mass, // 3\n",
+    "                  star->luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "        }\n",
+    "    }\n",
+    "    \n",
+    "    // unresolved MS-MS binary\n",
+    "    if(stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "       stardata->star[1].stellar_type <= MAIN_SEQUENCE) \n",
+    "    {\n",
+    "        Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR%d %30.12e %g %g %g %g\\\\n\",\n",
+    "                  2,\n",
+    "                  stardata->model.time, // 1\n",
+    "                  stardata->common.zero_age.mass[0] + stardata->common.zero_age.mass[1], // 2\n",
+    "                  stardata->star[0].mass + stardata->star[1].mass, // 3\n",
+    "                  stardata->star[0].luminosity + stardata->star[1].luminosity, // 4\n",
+    "                  stardata->model.probability // 5\n",
+    "           );\n",
+    "    }\n",
+    "}\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "import re\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        \n",
+    "        # check if we match a ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "        match = re.search('ZERO_AGE_MAIN_SEQUENCE_STAR(\\d)',line) \n",
+    "        if match:\n",
+    "            nstar = match.group(1) \n",
+    "            #print(\"matched star\",nstar)\n",
+    "\n",
+    "            # obtain the line of data in dictionary form \n",
+    "            linedata = datalinedict(line,parameters)\n",
+    "\n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][int(nstar)][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "collapsed": true,
+    "jupyter": {
+     "outputs_hidden": true
+    },
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: amt_cores=4 to grid_options\n",
+      "Running the population now, this may take a little while...\n",
+      "Creating and loading custom logging functionality\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "Grid has handled 2000 stars\n",
+      "with a total probability of 0.6495098935846658\n",
+      "Total starcount for this run will be: 2000\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:14:08,077 DEBUG    Process-2] --- Setting up processor: process-0[2021-09-10 15:14:08,080 DEBUG    Process-3] --- Setting up processor: process-1[2021-09-10 15:14:08,086 DEBUG    MainProcess] --- setting up the system_queue_filler now\n",
+      "\n",
+      "[2021-09-10 15:14:08,084 DEBUG    Process-4] --- Setting up processor: process-2\n",
+      "\n",
+      "[2021-09-10 15:14:08,117 DEBUG    Process-5] --- Setting up processor: process-3"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 started at 2021-09-10T15:14:08.119437.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>Process 0 started at 2021-09-10T15:14:08.126435.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>\n",
+      "Process 2 started at 2021-09-10T15:14:08.138353.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff539f0>"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "\n",
+      "Process 3 started at 2021-09-10T15:14:08.186492.\tUsing store memaddr <capsule object \"STORE\" at 0x7f351ff53810>\n",
+      "Generating grid code\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnm1\n",
+      "Constructing/adding: q\n",
+      "Constructing/adding: log10per\n",
+      "Saving grid code to grid_options\n",
+      "Writing grid code to /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_0fa295ee5c76444bace8fd0ee17a3e11.py\n",
+      "Grid code loaded\n",
+      "624/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB625/2000  31.2% complete 15:14:12 ETA=   11.1s tpr=8.04e-03 ETF=15:14:23 mem:800.5MB\n",
+      "626/2000  31.3% complete 15:14:12 ETA=   11.1s tpr=8.05e-03 ETF=15:14:23 mem:800.5MB\n",
+      "\n",
+      "713/2000  35.6% complete 15:14:17 ETA=    1.3m tpr=6.00e-02 ETF=15:15:34 mem:547.8MB\n",
+      "728/2000  36.4% complete 15:14:22 ETA=    7.1m tpr=3.37e-01 ETF=15:21:30 mem:548.1MB\n",
+      "743/2000  37.1% complete 15:14:27 ETA=    7.0m tpr=3.34e-01 ETF=15:21:26 mem:549.5MB\n",
+      "759/2000  38.0% complete 15:14:33 ETA=    7.7m tpr=3.73e-01 ETF=15:22:16 mem:550.5MB\n",
+      "774/2000  38.7% complete 15:14:38 ETA=    6.9m tpr=3.35e-01 ETF=15:21:29 mem:551.1MB\n",
+      "787/2000  39.4% complete 15:14:43 ETA=    7.8m tpr=3.88e-01 ETF=15:22:33 mem:551.1MB\n",
+      "799/2000  40.0% complete 15:14:48 ETA=    8.5m tpr=4.24e-01 ETF=15:23:17 mem:552.5MB\n",
+      "812/2000  40.6% complete 15:14:54 ETA=    8.4m tpr=4.23e-01 ETF=15:23:16 mem:554.8MB\n",
+      "830/2000  41.5% complete 15:14:59 ETA=    5.5m tpr=2.80e-01 ETF=15:20:26 mem:555.2MB\n",
+      "847/2000  42.4% complete 15:15:05 ETA=    6.8m tpr=3.52e-01 ETF=15:21:50 mem:555.2MB\n",
+      "864/2000  43.2% complete 15:15:10 ETA=    6.2m tpr=3.28e-01 ETF=15:21:23 mem:557.0MB\n",
+      "876/2000  43.8% complete 15:15:15 ETA=    8.2m tpr=4.38e-01 ETF=15:23:27 mem:559.7MB\n",
+      "887/2000  44.4% complete 15:15:21 ETA=    9.2m tpr=4.95e-01 ETF=15:24:32 mem:560.5MB\n",
+      "898/2000  44.9% complete 15:15:26 ETA=    9.2m tpr=4.99e-01 ETF=15:24:37 mem:560.5MB\n",
+      "908/2000  45.4% complete 15:15:32 ETA=    9.5m tpr=5.23e-01 ETF=15:25:03 mem:560.5MB\n",
+      "919/2000  46.0% complete 15:15:37 ETA=    8.3m tpr=4.60e-01 ETF=15:23:54 mem:560.9MB\n",
+      "934/2000  46.7% complete 15:15:42 ETA=    6.4m tpr=3.60e-01 ETF=15:22:06 mem:561.7MB\n",
+      "947/2000  47.4% complete 15:15:47 ETA=    7.2m tpr=4.08e-01 ETF=15:22:57 mem:561.7MB\n",
+      "956/2000  47.8% complete 15:15:53 ETA=   11.1m tpr=6.39e-01 ETF=15:27:01 mem:561.7MB\n",
+      "963/2000  48.1% complete 15:15:58 ETA=   12.6m tpr=7.30e-01 ETF=15:28:35 mem:561.7MB\n",
+      "969/2000  48.5% complete 15:16:04 ETA=   15.2m tpr=8.85e-01 ETF=15:31:16 mem:561.9MB\n",
+      "979/2000  49.0% complete 15:16:11 ETA=   11.9m tpr=7.01e-01 ETF=15:28:06 mem:562.0MB\n",
+      "988/2000  49.4% complete 15:16:16 ETA=    9.7m tpr=5.76e-01 ETF=15:25:59 mem:562.0MB\n",
+      "995/2000  49.8% complete 15:16:21 ETA=   12.3m tpr=7.37e-01 ETF=15:28:42 mem:562.2MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:16:25,175 DEBUG    MainProcess] --- Signaling stop to processes\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1003/2000  50.1% complete 15:16:26 ETA=   11.2m tpr=6.76e-01 ETF=15:27:40 mem:563.0MB\n",
+      "1015/2000  50.8% complete 15:16:32 ETA=    7.6m tpr=4.65e-01 ETF=15:24:10 mem:563.0MB\n",
+      "1025/2000  51.2% complete 15:16:37 ETA=    8.1m tpr=5.01e-01 ETF=15:24:45 mem:563.0MB\n",
+      "1033/2000  51.6% complete 15:16:42 ETA=   10.7m tpr=6.65e-01 ETF=15:27:26 mem:563.0MB\n",
+      "1040/2000  52.0% complete 15:16:47 ETA=   12.1m tpr=7.55e-01 ETF=15:28:52 mem:563.5MB\n",
+      "1048/2000  52.4% complete 15:16:53 ETA=   11.8m tpr=7.45e-01 ETF=15:28:42 mem:563.5MB\n",
+      "1057/2000  52.9% complete 15:16:59 ETA=    9.1m tpr=5.78e-01 ETF=15:26:03 mem:563.6MB\n",
+      "1062/2000  53.1% complete 15:17:04 ETA=   15.7m tpr=1.01e+00 ETF=15:32:47 mem:564.4MB\n",
+      "1069/2000  53.5% complete 15:17:09 ETA=   12.4m tpr=7.97e-01 ETF=15:29:31 mem:564.9MB\n",
+      "1077/2000  53.9% complete 15:17:15 ETA=   11.5m tpr=7.46e-01 ETF=15:28:44 mem:565.0MB\n",
+      "1085/2000  54.2% complete 15:17:20 ETA=   10.0m tpr=6.55e-01 ETF=15:27:20 mem:565.0MB\n",
+      "1091/2000  54.5% complete 15:17:26 ETA=   13.8m tpr=9.10e-01 ETF=15:31:13 mem:565.9MB\n",
+      "1099/2000  55.0% complete 15:17:32 ETA=   12.1m tpr=8.05e-01 ETF=15:29:37 mem:566.5MB\n",
+      "1114/2000  55.7% complete 15:17:37 ETA=    5.0m tpr=3.35e-01 ETF=15:22:34 mem:566.5MB\n",
+      "1126/2000  56.3% complete 15:17:43 ETA=    6.8m tpr=4.64e-01 ETF=15:24:29 mem:566.5MB\n",
+      "1134/2000  56.7% complete 15:17:48 ETA=    9.2m tpr=6.37e-01 ETF=15:27:00 mem:566.6MB\n",
+      "1139/2000  57.0% complete 15:17:54 ETA=   16.3m tpr=1.14e+00 ETF=15:34:13 mem:567.4MB\n",
+      "1148/2000  57.4% complete 15:17:59 ETA=    8.8m tpr=6.20e-01 ETF=15:26:47 mem:567.4MB\n",
+      "1156/2000  57.8% complete 15:18:05 ETA=    9.3m tpr=6.60e-01 ETF=15:27:22 mem:567.5MB\n",
+      "1162/2000  58.1% complete 15:18:11 ETA=   14.3m tpr=1.02e+00 ETF=15:32:28 mem:567.6MB\n",
+      "1168/2000  58.4% complete 15:18:17 ETA=   15.2m tpr=1.09e+00 ETF=15:33:27 mem:568.6MB\n",
+      "1177/2000  58.9% complete 15:18:23 ETA=    8.8m tpr=6.45e-01 ETF=15:27:14 mem:568.6MB\n",
+      "1181/2000  59.0% complete 15:18:28 ETA=   17.8m tpr=1.30e+00 ETF=15:36:16 mem:568.7MB\n",
+      "1187/2000  59.4% complete 15:18:34 ETA=   12.1m tpr=8.93e-01 ETF=15:30:40 mem:568.7MB\n",
+      "1194/2000  59.7% complete 15:18:39 ETA=    9.8m tpr=7.29e-01 ETF=15:28:26 mem:568.8MB\n",
+      "1202/2000  60.1% complete 15:18:44 ETA=    9.5m tpr=7.12e-01 ETF=15:28:12 mem:568.8MB\n",
+      "1219/2000  61.0% complete 15:18:51 ETA=    5.3m tpr=4.07e-01 ETF=15:24:09 mem:569.7MB\n",
+      "1228/2000  61.4% complete 15:18:57 ETA=    7.4m tpr=5.76e-01 ETF=15:26:21 mem:569.7MB\n",
+      "1234/2000  61.7% complete 15:19:02 ETA=   11.8m tpr=9.22e-01 ETF=15:30:48 mem:571.7MB1235/2000  61.8% complete 15:19:02 ETA=   10.1m tpr=7.92e-01 ETF=15:29:08 mem:571.7MB\n",
+      "\n",
+      "1243/2000  62.1% complete 15:19:07 ETA=    7.3m tpr=5.79e-01 ETF=15:26:26 mem:573.4MB\n",
+      "1251/2000  62.5% complete 15:19:13 ETA=    8.3m tpr=6.68e-01 ETF=15:27:33 mem:575.4MB\n",
+      "1260/2000  63.0% complete 15:19:19 ETA=    8.2m tpr=6.65e-01 ETF=15:27:31 mem:575.4MB\n",
+      "1268/2000  63.4% complete 15:19:24 ETA=    7.8m tpr=6.41e-01 ETF=15:27:13 mem:576.8MB\n",
+      "1276/2000  63.8% complete 15:19:29 ETA=    7.6m tpr=6.30e-01 ETF=15:27:05 mem:577.0MB\n",
+      "1282/2000  64.1% complete 15:19:34 ETA=   10.1m tpr=8.44e-01 ETF=15:29:40 mem:578.0MB\n",
+      "1289/2000  64.5% complete 15:19:40 ETA=   10.8m tpr=9.08e-01 ETF=15:30:26 mem:578.0MB\n",
+      "1295/2000  64.8% complete 15:19:46 ETA=   10.5m tpr=8.95e-01 ETF=15:30:16 mem:578.1MB\n",
+      "1309/2000  65.5% complete 15:19:51 ETA=    4.3m tpr=3.70e-01 ETF=15:24:06 mem:578.1MB\n",
+      "1323/2000  66.2% complete 15:19:58 ETA=    6.1m tpr=5.45e-01 ETF=15:26:07 mem:579.2MB\n",
+      "1332/2000  66.6% complete 15:20:03 ETA=    6.2m tpr=5.58e-01 ETF=15:26:16 mem:579.3MB\n",
+      "1338/2000  66.9% complete 15:20:09 ETA=   10.1m tpr=9.11e-01 ETF=15:30:12 mem:579.3MB\n",
+      "1346/2000  67.3% complete 15:20:18 ETA=   12.5m tpr=1.14e+00 ETF=15:32:46 mem:581.5MB\n",
+      "1355/2000  67.8% complete 15:20:25 ETA=    8.5m tpr=7.90e-01 ETF=15:28:54 mem:581.6MB\n",
+      "1359/2000  68.0% complete 15:20:30 ETA=   13.9m tpr=1.30e+00 ETF=15:34:26 mem:581.6MB\n",
+      "1366/2000  68.3% complete 15:20:38 ETA=   11.7m tpr=1.10e+00 ETF=15:32:18 mem:581.7MB\n",
+      "1376/2000  68.8% complete 15:20:44 ETA=    6.1m tpr=5.89e-01 ETF=15:26:51 mem:581.7MB\n",
+      "1384/2000  69.2% complete 15:20:49 ETA=    6.9m tpr=6.76e-01 ETF=15:27:46 mem:581.7MB\n",
+      "1393/2000  69.7% complete 15:20:55 ETA=    6.2m tpr=6.13e-01 ETF=15:27:07 mem:581.8MB1394/2000  69.7% complete 15:20:55 ETA=    5.6m tpr=5.52e-01 ETF=15:26:29 mem:581.8MB\n",
+      "\n",
+      "1423/2000  71.2% complete 15:21:00 ETA=    1.6m tpr=1.69e-01 ETF=15:22:37 mem:581.9MB\n",
+      "1435/2000  71.8% complete 15:21:07 ETA=    5.6m tpr=5.92e-01 ETF=15:26:42 mem:582.3MB\n",
+      "1443/2000  72.2% complete 15:21:12 ETA=    6.1m tpr=6.54e-01 ETF=15:27:17 mem:582.5MB\n",
+      "1445/2000  72.2% complete 15:21:18 ETA=   28.2m tpr=3.05e+00 ETF=15:49:28 mem:582.6MB\n",
+      "1448/2000  72.4% complete 15:21:25 ETA=   20.0m tpr=2.18e+00 ETF=15:41:27 mem:582.6MB\n",
+      "1454/2000  72.7% complete 15:21:31 ETA=    8.6m tpr=9.49e-01 ETF=15:30:09 mem:583.0MB\n",
+      "1455/2000  72.8% complete 15:21:37 ETA=   54.9m tpr=6.05e+00 ETF=16:16:32 mem:583.0MB\n",
+      "1459/2000  73.0% complete 15:21:43 ETA=   13.5m tpr=1.50e+00 ETF=15:35:12 mem:583.0MB\n",
+      "1465/2000  73.2% complete 15:21:48 ETA=    8.6m tpr=9.65e-01 ETF=15:30:25 mem:583.0MB\n",
+      "1474/2000  73.7% complete 15:21:54 ETA=    5.6m tpr=6.38e-01 ETF=15:27:30 mem:583.0MB\n",
+      "1482/2000  74.1% complete 15:21:59 ETA=    5.4m tpr=6.30e-01 ETF=15:27:26 mem:583.0MB\n",
+      "1485/2000  74.2% complete 15:22:04 ETA=   14.8m tpr=1.73e+00 ETF=15:36:54 mem:583.5MB\n",
+      "1487/2000  74.3% complete 15:22:10 ETA=   24.9m tpr=2.91e+00 ETF=15:47:02 mem:583.5MB\n",
+      "1496/2000  74.8% complete 15:22:16 ETA=    5.0m tpr=5.91e-01 ETF=15:27:13 mem:583.7MB\n",
+      "1509/2000  75.5% complete 15:22:21 ETA=    3.6m tpr=4.40e-01 ETF=15:25:57 mem:583.9MB\n",
+      "1523/2000  76.2% complete 15:22:27 ETA=    3.0m tpr=3.80e-01 ETF=15:25:28 mem:583.9MB\n",
+      "1531/2000  76.5% complete 15:22:33 ETA=    5.9m tpr=7.60e-01 ETF=15:28:29 mem:583.9MB\n",
+      "1537/2000  76.8% complete 15:22:38 ETA=    6.7m tpr=8.71e-01 ETF=15:29:21 mem:583.9MB\n",
+      "1545/2000  77.2% complete 15:22:44 ETA=    5.4m tpr=7.14e-01 ETF=15:28:08 mem:584.0MB\n",
+      "1555/2000  77.8% complete 15:22:49 ETA=    4.1m tpr=5.52e-01 ETF=15:26:55 mem:584.2MB\n",
+      "1564/2000  78.2% complete 15:22:54 ETA=    4.2m tpr=5.78e-01 ETF=15:27:06 mem:584.2MB\n",
+      "1574/2000  78.7% complete 15:23:00 ETA=    4.4m tpr=6.16e-01 ETF=15:27:23 mem:584.4MB\n",
+      "1584/2000  79.2% complete 15:23:07 ETA=    4.4m tpr=6.28e-01 ETF=15:27:28 mem:584.8MB\n",
+      "1594/2000  79.7% complete 15:23:12 ETA=    3.8m tpr=5.66e-01 ETF=15:27:02 mem:584.9MB\n",
+      "1607/2000  80.3% complete 15:23:17 ETA=    2.5m tpr=3.86e-01 ETF=15:25:49 mem:585.0MB\n",
+      "1618/2000  80.9% complete 15:23:24 ETA=    3.8m tpr=5.97e-01 ETF=15:27:12 mem:585.4MB\n",
+      "1628/2000  81.4% complete 15:23:29 ETA=    3.3m tpr=5.28e-01 ETF=15:26:46 mem:585.5MB\n",
+      "1635/2000  81.8% complete 15:23:34 ETA=    4.4m tpr=7.30e-01 ETF=15:28:01 mem:585.9MB\n",
+      "1645/2000  82.2% complete 15:23:40 ETA=    3.4m tpr=5.81e-01 ETF=15:27:06 mem:585.9MB\n",
+      "1655/2000  82.8% complete 15:23:47 ETA=    4.0m tpr=7.02e-01 ETF=15:27:49 mem:586.0MB1656/2000  82.8% complete 15:23:47 ETA=    3.7m tpr=6.39e-01 ETF=15:27:27 mem:586.0MB\n",
+      "\n",
+      "1664/2000  83.2% complete 15:23:54 ETA=    4.5m tpr=8.01e-01 ETF=15:28:23 mem:586.1MB\n",
+      "1674/2000  83.7% complete 15:24:02 ETA=    4.5m tpr=8.27e-01 ETF=15:28:31 mem:586.2MB\n",
+      "1684/2000  84.2% complete 15:24:07 ETA=    2.9m tpr=5.55e-01 ETF=15:27:03 mem:586.2MB\n",
+      "1691/2000  84.5% complete 15:24:13 ETA=    4.2m tpr=8.21e-01 ETF=15:28:27 mem:586.5MB\n",
+      "1699/2000  85.0% complete 15:24:19 ETA=    3.4m tpr=6.75e-01 ETF=15:27:42 mem:586.5MB\n",
+      "1713/2000  85.7% complete 15:24:24 ETA=    1.9m tpr=4.07e-01 ETF=15:26:21 mem:586.6MB\n",
+      "1725/2000  86.2% complete 15:24:31 ETA=    2.6m tpr=5.57e-01 ETF=15:27:04 mem:586.7MB\n",
+      "1735/2000  86.8% complete 15:24:38 ETA=    3.0m tpr=6.76e-01 ETF=15:27:37 mem:586.7MB\n",
+      "1745/2000  87.2% complete 15:24:44 ETA=    2.7m tpr=6.40e-01 ETF=15:27:27 mem:586.9MB\n",
+      "1755/2000  87.8% complete 15:24:51 ETA=    2.8m tpr=6.88e-01 ETF=15:27:40 mem:586.9MB\n",
+      "1763/2000  88.2% complete 15:24:56 ETA=    2.6m tpr=6.59e-01 ETF=15:27:32 mem:586.9MB\n",
+      "1767/2000  88.3% complete 15:25:02 ETA=    5.3m tpr=1.36e+00 ETF=15:30:18 mem:586.9MB\n",
+      "1776/2000  88.8% complete 15:25:09 ETA=    2.9m tpr=7.71e-01 ETF=15:28:01 mem:586.9MB\n",
+      "1785/2000  89.2% complete 15:25:14 ETA=    2.1m tpr=5.90e-01 ETF=15:27:21 mem:586.9MB\n",
+      "1793/2000  89.7% complete 15:25:19 ETA=    2.2m tpr=6.29e-01 ETF=15:27:29 mem:587.1MB\n",
+      "1801/2000  90.0% complete 15:25:24 ETA=    2.2m tpr=6.59e-01 ETF=15:27:35 mem:587.1MB\n",
+      "1812/2000  90.6% complete 15:25:29 ETA=    1.5m tpr=4.68e-01 ETF=15:26:57 mem:587.1MB\n",
+      "1822/2000  91.1% complete 15:25:35 ETA=    1.6m tpr=5.54e-01 ETF=15:27:14 mem:587.4MB\n",
+      "1830/2000  91.5% complete 15:25:41 ETA=    2.1m tpr=7.49e-01 ETF=15:27:48 mem:587.4MB\n",
+      "1839/2000  92.0% complete 15:25:47 ETA=    1.7m tpr=6.21e-01 ETF=15:27:27 mem:587.4MB\n",
+      "1847/2000  92.3% complete 15:25:52 ETA=    1.8m tpr=7.10e-01 ETF=15:27:41 mem:587.4MB\n",
+      "1855/2000  92.8% complete 15:25:59 ETA=    2.0m tpr=8.17e-01 ETF=15:27:57 mem:587.6MB\n",
+      "1864/2000  93.2% complete 15:26:05 ETA=    1.5m tpr=6.79e-01 ETF=15:27:37 mem:587.8MB\n",
+      "1873/2000  93.7% complete 15:26:10 ETA=    1.3m tpr=6.07e-01 ETF=15:27:27 mem:588.0MB\n",
+      "1884/2000  94.2% complete 15:26:16 ETA=   57.0s tpr=4.91e-01 ETF=15:27:13 mem:588.1MB\n",
+      "1895/2000  94.8% complete 15:26:21 ETA=   48.7s tpr=4.63e-01 ETF=15:27:09 mem:588.8MB\n",
+      "1907/2000  95.3% complete 15:26:27 ETA=   45.6s tpr=4.91e-01 ETF=15:27:12 mem:588.9MB\n",
+      "1916/2000  95.8% complete 15:26:33 ETA=   57.5s tpr=6.84e-01 ETF=15:27:30 mem:589.1MB\n",
+      "1926/2000  96.3% complete 15:26:39 ETA=   46.5s tpr=6.28e-01 ETF=15:27:26 mem:589.1MB\n",
+      "1936/2000  96.8% complete 15:26:46 ETA=   42.0s tpr=6.57e-01 ETF=15:27:28 mem:589.1MB\n",
+      "1946/2000  97.3% complete 15:26:53 ETA=   40.1s tpr=7.42e-01 ETF=15:27:33 mem:589.2MB\n",
+      "1956/2000  97.8% complete 15:26:59 ETA=   25.1s tpr=5.70e-01 ETF=15:27:24 mem:589.2MB\n",
+      "1966/2000  98.3% complete 15:27:04 ETA=   19.1s tpr=5.62e-01 ETF=15:27:24 mem:589.5MB\n",
+      "1976/2000  98.8% complete 15:27:10 ETA=   14.4s tpr=6.01e-01 ETF=15:27:25 mem:589.5MB\n",
+      "1987/2000  99.3% complete 15:27:16 ETA=    6.4s tpr=4.92e-01 ETF=15:27:22 mem:589.5MB\n",
+      "1998/2000  99.9% complete 15:27:21 ETA=    1.0s tpr=4.85e-01 ETF=15:27:22 mem:589.6MB\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,382 DEBUG    Process-5] --- Process-3 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 3 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.117391, done at 2021-09-10T15:27:22.400722 (total: 794.283331s of which 792.6935975551605s interfacing with binary_c).\n",
+      "\tRan 499 systems with a total probability of 0.17005450973840136.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,435 DEBUG    Process-5] --- Process-3 is finished.\n",
+      "[2021-09-10 15:27:22,480 DEBUG    Process-3] --- Process-1 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 1 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.080367, done at 2021-09-10T15:27:22.505288 (total: 794.424921s of which 793.1943278312683s interfacing with binary_c).\n",
+      "\tRan 474 systems with a total probability of 0.15740832333567983.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,531 DEBUG    Process-3] --- Process-1 is finished.\n",
+      "[2021-09-10 15:27:22,846 DEBUG    Process-2] --- Process-0 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 0 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.077117, done at 2021-09-10T15:27:22.851971 (total: 794.774854s of which 793.4976091384888s interfacing with binary_c).\n",
+      "\tRan 507 systems with a total probability of 0.16018641159091498.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,872 DEBUG    Process-2] --- Process-0 is finished.\n",
+      "[2021-09-10 15:27:22,976 DEBUG    Process-4] --- Process-2 is finishing.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Process 2 finished:\n",
+      "\tgenerator started at 2021-09-10T15:14:08.084369, done at 2021-09-10T15:27:22.981706 (total: 794.897337s of which 793.4600214958191s interfacing with binary_c).\n",
+      "\tRan 520 systems with a total probability of 0.1618606489196724.\n",
+      "\tThis thread had 0 failing systems with a total probability of 0.\n",
+      "\tSkipped a total of 0 systems because they had 0 probability\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "[2021-09-10 15:27:22,986 DEBUG    Process-4] --- Process-2 is finished.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Population-0fa295ee5c76444bace8fd0ee17a3e11 finished! The total probability was: 0.6495098935846686. It took a total of 795.1383104324341s to run 2000 systems on 4 cores\n",
+      "There were no errors found in this run.\n",
+      "Done population run!\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=1,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=4,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "print(\"Running the population now, this may take a little while...\")\n",
+    "analytics = population.evolve()  \n",
+    "print(\"Done population run!\")\n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '0fa295ee5c76444bace8fd0ee17a3e11', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.6495098935846686, 'total_count': 2000, 'start_timestamp': 1631283248.057525, 'end_timestamp': 1631284043.1958354, 'total_mass_run': 41112.220964392276, 'total_probability_weighted_mass_run': 0.6452116023479681, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAADekklEQVR4nOzddXyVZR/H8c99ask2WMLozlEjBekuUcQCRRS7O1BRxO4u8FFsQEFSUAREurs7BhtsrLdTzx/IcNJs415836+Xr+dwzn2u+3vu3c8Yv12/6zK8Xq8XERERERERERGRi2QxO4CIiIiIiIiIiBRtKjCJiIiIiIiIiEieqMAkIiIiIiIiIiJ5ogKTiIiIiIiIiIjkiQpMIiIiIiIiIiKSJyowiYiIiIiIiIhInqjAJCIiIiIiIiIieWIzO0BBSkxMw+PxXtB7QkMDOXIktYASSUmge0jySveQ5JXuIckr3UOSV7qHJK90D0le6R4qGBaLQenSAad9rVgXmDwe7wUXmE68TyQvdA9JXukekrzSPSR5pXtI8kr3kOSV7iHJK91Dl5Za5EREREREREREJE9UYBIRERERERERkTwp1i1yIiIiIiIiYj6v10tq6jEyMlLxeNznPP7wYQsej+cSJJPiSvdQ3thsDkqXDsdqPf+ykQpMIiIiIiIiUqASE+MxDIMyZSKxWm0YhnHW4202Cy6XigNy8XQPXTyv10taWjKJifGEhZU97/epRU5EREREREQKVHZ2JiEhodhs9nMWl0TEXIZhEBAQhMuVfUHvU4FJRERERERECpgXw9A/P0WKiospBOv/4SIiIiIiIiIikicqMImIiIiIiEiJcvDgAdq3b8mQIddz883XM2jQQB544C4OHz50yrEJCfE88sh9lzxjVlYmQ4Zcn+u/bt3a8corI3OO2bFjG23axDJnzh+53nvPPbfRtWs7srNztzgNGXI999xzGwDZ2dm8+earDB48kJtuupa77x7Gxo3rT8mxYsWynPfkxfz5c/nii0/yPM4JmzZtyLkWkyb9zKxZMy5qnNGjP2X06E+B49fnbO699/ZzZrnnnttYsWLZeZ//wIH9vPzyC6eMUxRpkW8REREREREpccLCwvnf/77L+fMnn3zA22+/zssvv3HKcW+88d6ljoePj2+ufOvWreWJJx7i+utvzHlu6tTJtG/fiYkTJ9C+fadc7w8MDGTJkkW0aXM5AHv27CIhIZ7AwEAAfvrpO7xeD19//SOGYbBmzSqeeOIhJkyYis2W/6WCNm3a0aZNu3wbr3btujzxRF0A1q1bQ+PGTfM85r+v9+msXLn8nFkuVFzcQfbv35fncQoDzWASERERERGREq9hw8bs3bsHgAED+vDss09y3XVXsmHDOgYM6APAqFEjePPNV7nppuu46qrezJ37J0899SgDB/bj/fffBiAtLZXhwx/n9ttv5qqrejNy5DN4vV5WrFjGsGE3MnToIEaOfIYBA/qwZ89uADIyMrjyyl5kZWWdNltiYiLPPPM4Dz/8OBUrVgLA5XIxc+Z0brvtLrZu3ZxTpDihXbuOuWY2/fHHrFxFqKNHj+B0OnG5XADExDTiySefw+12n/Ea/Xt2zsGDBy7oukybNplRo0bkXN/PP/+YYcNuZNCggWzatBGAPXt2c889t3HTTddy++0358yomjlzBkOGXM/QoYMYPvwxsrKycmZWLV26mPnz5/HFF5/w119z6NWrE2lpqTkZBw0aeMrn+O67r7n22v65zgHQpk0sAMuWLWHo0EHccstgHnjgLpKSknjnndcBGDbsJgB69+7MQw/dy5Ah17N06aJcs7x+/fUXhg69gZtvvj7nev17ptSJa3Dw4AHeffcNNm/eyJtvvpprttiZrsWoUSN45503uPPOWxgwoA9Tp/56xq/XpaYZTCIiIiIiInJJ/b32IPPXHDzj64YBXu/Fjd0mpiyXNTj/rdXheLFm9uxZNGjQMOe5li1b88ILL3Pw4IFcxyYkxPPVV98zffoUXn75eb7//md8fHy44oqe3HzzMBYunE+NGjV58cVXcTqdDBp0NZs3bwJg7949jB8/hcDAQEaP/pSZM6dz6613MGfOH7Ru3QYfH59Tsnk8Hl54YTgdOnSiQ4fOOc8vXDifqKgoKlasRNu27Zk0aQJ33XV/zustWrTi9ddfwuVyYbPZWLDgL4YOvY1du3YAcPXV1/Hoow/Qu3dnGjduStOmzenRo/dpM5yPc12X/woODubzz79m/PgfGDt2DKNGvc7Ikc8waNAQ2rXryLp1axk+/HG+//5nPv/8Yz777EtKly7DZ599xJ49u3LGadasBW3aXE7jxk1p27Y9c+f+yZ9//sEVV/RnxoypdO/eM9d5N23awNSpvzJmzLcYhsEdd9xMnTr1ch3z1VejefTRJ6lTpx7jxv3Ali2beOCBRxk//kc+//wrAJKSkhg06CaaNIk9pSXOz8+fMWO+Zdu2rTz22AP88MMvZ7xu99//CGPGfMbDDz+ea5wzXQuAw4cP8dFHX7Bjx3buvfd2evXqe35fpAKmGUwiIiIiIiJS4iQkxOesbXTTTdfi9Xq58857cl6vW7f+ad/XsmVrACIjo6hSpRqlS5fB3z+AoKAgUlKS6dKlO82ateCnn77j7bdf49ixY2RkpANQoUKlnBa1nj375KwbNGPGVHr06HPa8/3vf1+QmZmRq3gEx2cEde7cDYBOnbowbdoUnE5nzusOh4OGDRuzdOliduzYRrly0fj4+Oa8XrZsOcaO/ZG33/6QunXrM2PGVG6++XpSUlIu6Dqe73X5rxYtjh9ftWp1kpOTSU9PZ9++fbRr1xGA+vUbEBQUxJ49u7nssrbceectfPjhu7Ru3ZYaNWqdMUevXn357bdpAMyaNYPu3Xvlen3FiuW0bHkZ/v7++Pn55SrandCmzeU89dSjvPXWq1SuXJnmzVue9lz16p3+Hundux8A1avXICQkhN27d50x7+mc7VoANG/eAsMwqFq1GsnJxy5o7IKkGUwiIiIiIiJySV3W4OyzjGw2Cy6Xp0Az/HcNpv8600weu92e89hqtZ7y+vjxPzBnzmz69u3PgAHN2blzO95/pmP9e8yyZcsRFVWWuXNnc/TokdMWK5YtW8KkSRP4/POvc62LlJh4lIUL/2bTpo2MG/cDXq+XlJRk5sz5gy5duucc16FDJ+bM+YPw8Ag6duyaa+xPP/2QK6+8mrp161O3bn1uvHEod945lKVLF9Ox46lFF8i9df2J1rrzvS7/5XA4ch57vV68Xk/OdTr5PLjdbh544BG2bevHwoXzGTnyGYYOvY3w8IjTjtuoURPi4+P5888/KFs2mrCw8FM+g9d78t6yWq2ntAVec80NXHbZ5SxY8BcfffQe7duv56abbjnlXP8u2P3bvz+/1+vFZrP9c96Tn++/1y/35z7ztQBwOHxyPkthohlMIiIiIiIiIvlk6dLF9O17JV279gAMtm7dgsdz+mJZr159eeedN+jWrecpryUkxDNy5LMMH/4CERGRuV777bdpNG3anF9+mcb48ZOZMGEKN944lEmTfs51XIsWrVmxYjmLFi3ImWF0Qnz8Yf73vy9yZj0lJx8jMTGJatWqn/GzBQeHsHPndgD++mvO2S/EBQoICCQ6ujxz584Gji9qfvToEapWrca11/YnJCSEwYNvpnv3XmzZsjnXe/9dJDIMgx49evHWW6/Ts2fvU84TG9uMBQvmk5qaSlZWFvPm/XnKMcOG3UR6ehoDB17PwIHXs2XLppzznK0wdMKsWdOB4+14aWlpVKhQ8Z9rd7w9ccOGdRw5kvDPmLZTClxnuxaFmWYwiYiIiIiIiOSTgQOv5403XuaHH8bi7x9A/foxHDx4gOjo8qcc265dB1599cVT2rgAJk+eSFpaKh9++G6u52vXrsOGDeu47ba7cz1/5ZVX8913X+dqx3I4HMTExACnzsh66KHHeP/9d7juuivx9fXDbrdx5533UKlS5TN+thtuuJFRo0YwdeqvtG3b/hxX4sI9++xIXn/9JUaP/hS73cGoUa9ht9u55ZbbeeCBu/Dx8SUwsBTDh4/IWZAdIDa2OZ9++hGBgYF06NCZzp278eOP3542Y40atbj66uu49dYbKVWqFJGRp86ku/32uxk16nmsVis+Pj48+uiTwPHWuSFDrmf06LFn/Rzp6RncfPP1WCxWnntuFDabjc6duzJ37mwGDbqaWrVq57T5Va5cmdTUFEaOfIZevfqd81oUZob3v/OuipEjR1LxeC7s44WHlyI+/uJ6TkVA95Dkne4hySvdQ5JXuockr3QPyX/Fxe0mKqrSeR9/KVrkzOb1elm06G8mTpzAq6++bXacYsPj8TBx4gT27t3N/fc/YnacIu10/7+1WAxCQwNPe7xmMImIiIiIiIhcYu+99xZ//z2PN954z+woxcrTTz/KoUNxvPvuR2ZHKXFUYBIRERERERG5xO6//2Huv/9hs2MUOy+//CZQMmbBFTZa5FtERERERERERPJEBSYREREREREREckTFZhEpETbeziV1Ayn2TFERERERESKNK3BJCIlltPlZuRXy3DYLPRuXZlOTctjt6nuLiIiIiIicqH0LykRKbHcHi8utweLxeCnP7cx/ItFLNt0GK/Xa3Y0ERERERGRIkUFJhEp8Xq2rMRDAxvisFn5aOI6Xvl2BTsPJpsdS0REREQK0J9//s7QoYO46abruPHGa/juu69NyTFt2mRGjRqRr2P++OO3DBlyfc5/1113JW3axHL48KGcY4YPf4ybbro21/tWrFhGmzaxjB37Za7n582bQ5s2saxYsSznuNtvv5mbbrqOQYMG8tFH7+J2u0/Jcc89t+W8Jy8eeeQ+EhLi8zzOCa+8MpJNmzaQmprKk09e/E5+bdrEAjBx4ngmThx/xuPmz5/HDz98c9YsK1Ys4557brug848e/SmrV6/MNY6Z1CInIgLUrxpKncql+WvNQSbO28HIr5bRsl4kV11ejdBgX7PjiYiIiEg+io8/zAcfvMOYMd8QHBxCeno699xzGxUrVqJNm3Zmx8uza665gWuuuQEAr9fLU089QpMmsURERAJw7FgSW7ZspkyZUNasWUVMTKOc94aHRzBnzmwGD74557k//phJSEhpALKzs3n++eF8/PFoypWLxul08vTTj/Hzz+O4+urcBav88sYb7+XreE888QwABw8eYOvWLXke74orBpz19c2bN54zy8UU4lauXE7jxk1zjWMmFZhEpMTyOjNp77sB/4xSQEWsFgvtG0XTok4k0xbt5rcle1m+OZ6uzSrQs2Ul/Hz0LVNEREQkv6RPfvm0z/v3eRKAzAXf4jmy55TXfVpdjzWsEs7Nf+HcMv+M7z+bpKQkXC4XmZmZBAeDv78/w4ePwOHwAWDjxvW8995bZGVlEhwcwqOPPkW5ctFs3bqZ1157iaysTIKCgnn22ZFERETy9ddjmDlzOhaLhWbNWnLXXfdx+PAhnnrqEapWrZZTzBk58hWCgoKZMWMqX301moCAQKKiovDz8wdg9uzf+eGHb8jKyiIrK4snnhhOo0ZNuOee2wgKCmbnzu307XslmzdvZMSIUQCMGfMZDoeDQYOGnPazjh37JYcPH+b5509e75kzZ9CwYWOqVq3OpEk/5yowRUeXJy0tlQMH9lOuXDSZmZkcOLCPypWrHP+6ZGaSlpZKZmYGAHa7nfvvf5iMjIwzXu8VK5YxZsxnfPDBZwCMGjWCxo2b0rhxU5588hHKlYtmx45t1KpVh8aNmzJ9+hRSUpJ56aU3qFy5CgMG9OH99z9l5crlLF68gOTkZA4c2E+zZi155JEnAE75Gtx33wOkpaUxYsTTHDlyBIChQ4fRpk077rnnNoYOvY0ff/yWhIR4nnzy+NfJ4/Fw++13A/DSS8/TokUrOnXqmvM5Dh48wAsvPENGRgb16tXPeX706E8BuOmmW3j55efZsWM7AP37X02DBg2ZNOlnAKKiyhIXd5D169dx+HAcV145kNmzZzF06PGZS8eOJfHQQ/eSkHCYunXr89BDj+NwOGjTJpb5848XoKZNm8zKlctp0iSWzZs38uqrL/LSS2/w9tuvMXTobTRpEnvB92N+UYuciJRYnu0L6e+/jIZbPyV7w+yctZf8fGxc1a4aL93WgqY1w5m6cDdPfraIOav24/Z4TE4tIiIiInlVo0ZN2rZtx8CB/Rg27EY++ug93G4P5ctXwOl08sorL/Lcc6MYM+Zbrr12EK++eryY8/zzzzBkyK18/fWPdOrUlXHjfmDhwvnMnz+P0aPHMmbMt+zfv5eJEycAsG3bVq655gbGjv2JwMBAZs6cTkJCPB9//B4ffvg5n3wyhvT0dAA8Hg+TJk3gtdfe4auvvmfQoJv47ruxOZmrVavO99//TL9+V7J8+VLS09Pxer3MnDmD7t17nfZzrly5nJ9++o6RI1/B4XDkPD9t2q907NiZjh07M2fOHyQnH8v1vg4djj8PsGDBfFq1apPzWlBQEIMH3/xPe+G1vPPOGyQkJFC9eo2L+lps376VIUNu4bvvJrBp0wbi4g7y6adf0rlzN3799edTjl+7dg2jRr3GV1/9wIIFf7F9+7bTfg1++WU88+bNISqqHGPGfMOzz45k9epVucZ64IFHCQsL5+WX36Bnzz78/vtveL1eMjIyWLZsCW3bts91/Ntvv0bPnn343/++o0GDhqfJtprk5GS+/PI73nnnI9auXU2VKlXp1+9K+vW7kl69+gKQnZ3FN9+M48orr871/oMHD/Dgg4/y1Vc/kJ6ennMfnU6PHr2pVasOjz8+nGrVquc8f6H3Y37Sr+NFpETxJB/GHbcFe802WGpezvszD3F99C4s87/GvW89vu2GYvgEABAW7MdtfevRObYCP8zeytczNvPH8n1c07E69auEmvxJRERERIq2c8008m19w1lft9dqi71W24s+/yOPPMlNN93CkiWLWLJkIbfffjPPPTeSChUqcuDAPp544qGcY9PS0khKSuLIkQQuu+z4Ofv3P94W9cEH79C5czd8fI4vq9CrV1+mT59K69ZtKF26DDVr1gagatXqJCcns3btaurXj6FMmeM/T3bt2oPly5disVh46aXX+fvvv9izZzcrVy7HYjk5J6Ru3eMzZvz9/WnV6jLmzp1NuXLRREeXJyws/JTPd/ToEZ5/fjhPPvkc5cpF5zy/detmDh8+RLNmLbHZbNSsWYvp06fktNQBdOzYhRdeeIbrr7+R2bNnMmzYXblauG666Rb69buKpUsXsXTpYh555D6GDbuDgQOvv+CvQ5kyoTnXKDw8gqZNmwHHZ/usXHnglOMbNIjB3//4z+vlykWTnHyM5cuXnfI1mDFjKnfccS+ffvohCQmHadWqDUOG3HLGHNHR5YmKKsuqVSs4dCiO1q3b5CrKwfGC3YmZY1279uCVV0bmer1q1Wrs2bObhx66h5YtL+POO+897blOfC3/q2HDJlSoUPGf8bszdepkBg687oyZT+d01+Js92N+UoFJREoEr9tJ9uppZK+cAjYHtspNwbCzxVWODVXa0NFvI1lLxpM++RX8r3oewzj5l3nVckE8eUMTlm+OZ9ycbbz142rqVy3DNR2qEx0eaOKnEhEREZGLsWDBfDIy0unUqSu9evWlV6++/PrrL0yZMonbbrubcuWi+d//vgPA7XaTmHgUmy33P5+zsrJISIjH6809w93rBbfbBXBKgcLr9WIYBh7PyV2LrVYrAOnp6dx6641069aThg0bU61adSZM+CnnOB8fn5zHvXr15auvjq+B1LNn71M+n9vtZsSIp+nRo3dOQeyEqVMnk53t5Npr++ecd9Kkn3MVmMqXr4DL5WLnzh0cPnyYSpUq57y2bt1atmzZxJVXXk2XLt3/+a8b77771hkLTIZh5Pqzy+XKeWy323O9duJ6nMmJNsYTvF7vGb4GbipUqMh3341n0aKF/P338YW2v/32zItx9+rVl1mzZnDo0KGctrX/fJKcr51hGLkKgADBwSGMHfsTS5cuZuHCvxk6dBBjx/50yij//lr+278/u9frzXXPnbh3/n3tTudC78f8pBY5ESn2XPs3kDb+GbKX/YKtUmMCBryI4fA7eYBhwdGwB/79nsan2VUYhgWvKxvvv9rhDMMgtnYEL97akoEdqrN9fzLPjlnC179tJjkt24RPJSIiIiIXy9fXl08++ZCDB4/PkPF6vezatYMaNWpRqVJlkpOTc3bnmjr1V0aMeJrAwEAiIiJZunQRAL/9No3Roz+lSZNm/P77b2RlZeJyuZg27VeaNIk947ljYhqxYcNa4uMP4/F4mD17FgB79+7BYrFw441Dadq0GYsWLcBzhuUZGjZszOHDh1mxYtkpbVxwfE0gwzC49dY7cj3vdDqZNWs677zzEePHT2b8+MmMGzeJI0cSTllkukOHTrz66ou0aXN5rueDgoIYM+azXItj79y5g5o1a53xMwcHh3DgwH6ysrJITj6Wc23zy+m+Bk2bxjJhwo+MHv0pHTt25uGHnyAxMZHU1NSc91mt1ly733Xo0Inly5dy9GhCrjWWToiNbc5vv00DYO7c2WRn5/53wPz5c3nhhWdo3boNDzzwCH5+fhw+fOiU85zJmjWriIuLw+PxMH36VGJjmwMQEhLCzp3b8Xq9zJ8/71/5baeMe6H3Y37SDCYRKday1/1O1oJvMIIi8OvxMLYKDc54rDWias7jrL+/wZOagG+H27D4h+Q8b7dZ6N6iIpc1iOLXv3fx54r9LFofR69WlejarAJ229l/4yIiIiIi5mvSJJahQ4fx2GMP5MwIadGiFTffPAy73c7Ika/w7rtvkJ2djb9/AMOHPw/As8+O5I03XubDD98jODiEZ555gbCwMLZu3cwtt9yI2+2iRYtWXHXVNcTHHz7tucuUCeWBBx7lgQfuwtfXL2fx7OrVa1C9ek2uv34Avr6+NGrUhLi4g2f8DO3adeDYsWOnzEqB4wt7ly1bjltuGZzr+c6duxIZWTZX8SQgIJDeva9g0qQJ9Ot3Vc7zHTt24dNPP+SZZ17INUbFipV4+unneOWVkaSlpWIYBnXr1ufBBx87Y9aqVavRqtVlDB48kLJly9GwYeMzHnsxLrus7Slfg6uvvpa0tHRGjHiaG2+8BpvNxtCht1GqVKmc95UpE0pkZBT33ns777//KT4+vtSv34CqVauf9jwPPfQYI0c+y6+//kzt2nVzWvVOaNnyMv788w8GDx6Iw+GgXbuOVKtWnZSUZEaNGkGZMmXO+jmqVKnKyy+/wJEjCTRtGkvv3v0AuOOOe3jssQcpUyaUmJhGHDuWBBy/Z9944+Wc+/NM1+Js92N+Mrz5PSeqEDlyJDXX1MPzER5eivj4lAJKJCWB7iHzeT0evKkJWIIi8KQl4tw0D0fDHhi23H/5ZmS5uPvteQzsUJ3uLSrmei174xyyFnyH4fDFt/2wMxamDh5JY9yf21m1LYHQIF8GtK9G8zoRp0wDvhC6hySvdA9JXukekrzSPST/FRe3m6ioSud9vM1mweXS5iqn4/V6cTqdPPjg3dx338PUqlXb7EiF0oXeQ16vl/T0NG6/fSjvvvsRoaFhBZiuaDjd/28tFoPQ0NMvE6IWOREpVtyHd5A+8XnSJ7+C15WFJaA0Pk37nVJcOhdHnfb4938Ow7cUGdPfJGvxT3g9p/Y7lw0N4L4BMTx6bSMCfG18+ut6Xhq7nG37j51mVBERERGRvDly5Ah9+3ajXr36Ki7lo40b1zNgQF/69u2v4tJFUouciBQL3qw0spZOwLnhTwz/YHxaXQfWCysq/Ze1TDT+/Z8la+H3ZK+eBjYffJr2O+2xdSqX4dkhzfh73UF+nreDl8Yup1ntCAa0r0Z4iN9p3yMiIiIicqHCwsKYMeNPs2MUO3Xr1mf69NlmxyjSVGASkSLPtWslmX99iTczBXv9zvjE9sdw+OfL2IbNB9+2Q7BVaIg1ug4AnvSkXOsynWCxGLSNKUfz2pFMX7ybGUv2sHJrPJ1jK9C7VSX8fe2nvEdERERERKQ4UIFJRIqsE1t1YrNjBIbh1+MhrGGVC+RctsrHFyL0pB4lbcIz2Ks0w6f1dRi2U7cY9XFYuaJtVdo1iubnedv5bfEe5q85SL82VWjXqBw2q7qTRURERESkeNG/ckSkyPG6sshaMp7MWR/g9Xqxla+P/xXPXHRxabdzPbuS9wCwOn4dB1LjANiWtJMjGUcBOJh2iJTsVAz/ILJqtSZt8xzSf3kB55F9Zxy3dCkfbulVl2eHNKN8eADfztrCc2OWsHpbAsV4fwURERERESmBVGASkSLFtXsVaeOeJnvVFLD7wj8Lb+dl17a12XNZHb8egDHrvmXpoZUAvLfyM+YfWAzAK0ve4Y898zAsNkZmrGNubAe8mSk8vOpdfln8KV6vlyfnj2T6zj8AGLX4LWbvmQfALwe+pdXlWdx7VQNSIxfzwZ8zeOOHVXy+8gdWxa8DYPL2GWw8sgWAqZv/YHvSLgAWH1zO3pQDAKw/sonD6fEA7E7eS1LW8YXEEzKOku7MACDDlYnb477oayEiIiIiInIxVGASkSLBk3qEjJnvkfHbOxhWB369n8CvwzAM68Wva+TyuLBFb6Wpb1e6VmoPwGPN7qNd+dYA3NPoFlqVbQbATfWuIzayEQBX1ehLo6rt8b/qBTq5Aqi8dQXeY3E0joghOjAKgHKBUQQ5SgFgs9iwWmw0rhFOVJSX2Hoh7DmUwsq4DUxbsZ6k1Cz+2PsX24/tBODr1RPYcHQzXq+XsRt/YlX8WgA+Xv0liw8uB+D1ZR/w176FAIxY+Cp/7JkLwKPznmPazlkAPDjnaab+83j43y8xa/ccAF5Z+i7z/nnvB6u+YNHBZQB8uf47VhxeA8C4LZNYl7ARgJWH1170NRYREREpjA4ePMCAAX1Oeb5Nm1gT0sCAAX04ePBAnsY402f68MN3GTLk+pz/rr66L+3atch1zK233shjjz2Y67lp0ybTpk0ss2bNyPX8Tz99R5s2sTl5//zzd4YOHcRNN13HjTdew3fffX3afPnxGQGGDLk+z2P82yOP3EdCQjwHDuzn5ZdfuKgx/n3tv/jiE+bPn3vGYydN+vmUa/rfLNOmTWbUqBEXlOGll54nLu5grnEuNa3BJCJFgnPLfFx71+FoPgBHg+4Y1rx/+3J7Pdijt5PuicTPdnynt+jAsjmv1yxdPedxk4iYnMeXl2+V87hv12fxHN6BJaQsVwf1wZO0H4Cb6538i++eRrfmPH6y+QMApDVxMvnvsvyxfB9PrltEj5a30qVCRQD+1/8tjh5JB2BEq8fxtfng9Xp5NPYeghyl8Hq93BEzhDC/ULxeL4PrDKRsYCRer5crqvekclBFvF4v7Su0oWpQJbxeL3XK1CTcPwyv10tpnxD8bL54vV6y3Nm4PW68Xi97U/bnvHdp3EqCHKWoUboaX6wby811ryM2qnGer7mIiIiIXFp3331/zuOsrCzuuec2+va9Mue57du3Ybfb2LZtC4cOxREZGZXzWkREJHPm/EGXLt1znps7908CA4//IjU+/jAffPAOY8Z8Q3BwCOnp6dxzz21UrFiJNm3aFcjn+d//vsvX8d544z0AVqxYxv79Z17+4nzdeusdZ3193bo1NG7c9KxZLsaKFcu4+eZheR4nL1RgEpFCy3VwM97kw9hrtcUR0wN7jdZYSoXn2/g+VgcZS7pTvWP1cx98BoZhwRp5/P3O9bPIWvQTPs2vwh7THcM48yTRAF8713aqQccm0Yybs52Jf+1k7qoDXHl5Vfq2r4HD6gQgzK9MznsqBVXIeVw/rE7O4xZlT/4F1bniyb/I+1XrkfP4hjoDch7fHnNTzuOHm96V8/jZlo/mPH7t8hEAuD1uelfpRv2wOjjdTux5mDEmIiIiUlRMmzaZxYsXkJyczIED+2nWrCWPPPIEK1Ys4+OP38Pt9lC1ajUeeuhx3nrrVXbs2I7H4+GGG26kS5fubNu2lddeG4Xb7cbhcPDUU89RoUJF/v77Lz7//GO8Xg/lykXz6KNPUaZMaM55hw69gccee5ratevidrsZMKAPY8Z8Q1zcQd577y2ysjIJDg7h0Uefoly5aLZs2cQrr4wEoHr1muf8XO+88wZlypRh0KCTPw9Om/YrsbEtSE4+xuTJE3MVSBo1asLq1SvJyMjAz8+PuLiD+Pv7ExgYCEBSUhIul4vMzEyCg8Hf35/hw0fgcJy6Ec6/r+3Klct5+ukRANxzz20MHXobAF9/PQavFw4c2Ef79p0ICAjgr7/m4vV6eeONdylTJpQ2bWKZP38Zo0d/SkJCPHv37uHQoTh69+7HTTfdgsfj4b333mT58qUAdOvWk0GDhnD48CFeeOEZMjIysFgM7r//UerXb8CAAX14//1PeffdNzhwYD9vvvkq6empxMQ0pl+/44W4e++9nTvuuJd69ernfI4zXftRo0bQuHFT2rXrwIgRT3PkyJF/vrbD8PHxZf78eSxfvpTQ0DB+//03jh07xv79e7nzzvt4553Xef/9TwHYt28vd989jGPHjnHZZW254457iIs7yL333s748ZMBGD36+LEOhw8JCfE8+uj9fPjh59xyy2Def/9TIiOjeO+9N1m2bCmGcfJarFixjLFjv8TX15ddu3ZSrVp1nntuFHZ73n7WV4uciBQ6noxkMuZ8Qcbkl8lePQ2vx41hc+RrcQlOtsgddR/Ml/HsNdtgq9yYrMU/kTH9LTzpx875nojS/tzdvwFP3NCE4AAHo6du5KF357J5T2K+ZMorq8VKjyqdOJqZxIhFr7Hx6BazI4mIiEgx8c6KT1j4T6v+fx8v2L/0nMec6XF+Wbt2DaNGvcZXX/3AggV/sX37NgD27t3De+99wvDhz/PVV6OpVasOY8Z8w4cffsbXX49h//59/PTTd1x77SBGjx7LgAHXsH79WhITj/L66y/x8stv8NVXP9CgQUPeeuu1XOfs1q0nv/8+E4AVK5ZSrVp1AgNL8corL/Lcc6MYM+Zbrr12EK++OgqAF198jjvvvI8xY76lXLnos36e336bxrJlS3j66edz1i91uVz89tt0OnbsQseOXZkyZRIulyvnPVarlebNW7Fw4d8AzJ49i44du+S8XqNGTdq2bcfAgf0YNuxGPvroePGtfPkKXIwNG9bz1FPPMnbsT0ycOJ6QkNKMHj2W6tVr5FyXf9u2bStvv/0hn332P7755itSUlKYOHEChw4d4ptvfuTzz79m7tzZLFgwnylTJtG6dRtGjx7LnXfex5o1q3KNdf/9j1CrVh0efvhxevXqx8yZ0wGIiztIYmJiruISnPvaz5s3h6iocowZ8w3PPjuS1atX0axZC9q0uZxbb72DFi2Od0UEBwfz7bfjadPm8lzvP3jwAC+++Bpffvkta9asOmvb3eDBQwgLC+f1198lODgk5/kT1+Krr77PdS3g+EyqBx98jG+/Hc+hQ3EsXrzwzF+Y86QCk4gUGl6vh+xNc0n76UlcWxfiaNgT//4jMCzWAjmf2+vGHr093wpMhk8Avp3vxqfNjbgPbiJ9wjO49q0/r/fWrBDC8JtiGdanLsdSs3n1u5W8P2ENh46m50u2vArxCaZCqXKU9gkxO4qIiIhInp1uprnX6821cUyDBjH4+wfg6+tLuXLRJCcf/+VhhQqVcmbwLFu2hEmTJjBkyPXcffdtZGZmsnPnDlq1uoy3336Nl19+AZvNTpcu3dmwYT116tSjbNlyAPTte2XOLJsTOnfuxty5f+L1epk16ze6du3J3r27OXBgH0888RBDhlzPxx+/z4ED+0lKSiIhIYFmzY6vp9SjR+8zft6dO3fw7rtv8uKLrxIUFJTz/IIF8wkNDaNKlarExDTEYrHw999/5Xpvx46dmTPn+EY2f/01h7Zt2+d6/ZFHnmT8+MlcccUADh06yO2338zcubPPcvXPrGrVakRGRuHr60twcAixsc0BiIyMIiUl+ZTjmzSJxW63U7p0GYKCgkhLS2XFiqX07Nkbq9WKr68vXbr0YPnyJcTGNuf7779hxIinSUiI56qrBp4xR+PGTUlIiOfgwQPMmDGV7t175nr9fK59/fox/PXXHJ588mHWrFnFkCG3nPZcdevWP+3zbdpcTunSpbHb7XTs2IWVK5efMe+ZnOlaAFSpUo2IiEgsFguVKlU57fW9UGqRE5FCI2vxTzjXzMBathY+l92ItczZfwuTVw6LT55b5P7LMAwcdTtijapB5u8fk71qCtbouue1y53FMGhVL4pul1Xlu2kbmLpoN8O/WEzHJuXpc1llAv3Ma0/zt/txR8zNpDnT+WTNl1xRrRdRARGm5REREZGi74Emd5zxsc1mweXynPWYcz0+m6CgUqSmpuZ6LjHxKKVKnSy+/LfNy+v1AuDjc/J5j8fNM8+MpFat2gAcPXqEoKBgbDYb9evH8PfffzFu3PcsWvQ3l13W9pTx3O7cu/+GhoZRoUJFVq5czrJlS3joocfZu3cP5cpF56w95Ha7SUw8imGczARgPcMapRkZGTzzzBPcfvvdOTlPmDbtVw4distZoDotLZVJkybQrl2HnGOaNInltddGsWPHNoKDQ3KKa3C8QJWRkU6nTl3p1asvvXr15ddff2HKlEm0a9fxtHkMw8iV2+0+OWPKZsv9GazWs/+i2eFwnDKux+P9z1HHr3NMTCO++eYnFiyYzx9/zGTatMm8885HZ8zYo0dvfv/9N2bPnsVbb33wn9fPfe0rVKjId9+NZ9Gihfz99zx++OEbvv12/CnH/ft++rd/f3av14vNZjvl2rlcrlOu2b+d6VrA6a9dXmkGk4iYypudgTvp+G4Sjjod8G0/DL/eTxR4cQnyv0Xu36xlKuDf/zl8O92JYRi4j+zBk5JwXu/1sVvp3boyr9zWkjYxZfl9+V6e/HQhM5fuxeX25HvWC5HuzGBfykHiM87vs4iIiIgURv7+AVSoUCFnZg7Ar7/+kjNj5nw1adKMiROPFw0SEhK46abrOHQojmeffZING9ZzxRVXceutd7B58ybq1q3Phg1rc3ZS+/XXn2nS5NTFnrt378kHH7xN48ZN8fX1pVKlyiQnJ7N69UoApk79lREjniY4OISoqKiclqcz7Uz2xhsvUbt2nZz1hE44evQIS5YsZuzYHxk/fjLjx09mzJhvWb58aa7Frq1WK82ateC1116iY8euucbw9fXlk08+zPlMXq+XXbt2UKNGrTNes+DgEHbv3onX6+XAgf1s27btrNf4QjVtGsv06VNxu91kZmYyc+YMGjeO5aOP3uW336bRo0dvHnzwcbZs2ZzrfVarLVfBr0eP3kycOIGIiEjCwnIv1XE+137ChB8ZPfpTOnbszMMPP0FiYiKpqalYrdZTCouns3Dh36SkpJCVlcXvv/9GbGwLAgNLkZKSQmJiItnZ2bna2k437pmuRUHRDCYRMYXX68W1cxlZC7/DsPvhf/WLWIIjsQRHXrIMJ1rkEt0Fc07D7oNhP74DXOac0XhS4vG9/GbsVZud1/uDA324qXttOjUpz4+zt/LDH1uZvWIfAztUp3GNsPOaFZXfwv1Dea7lo1gtVn7bNZs20S0JsPtf8hwiIiIiefXMMyN5881X+PLLL3C5nFSrVoOHHnr8gsYYOnQYb775KoMHD8Tj8XDXXfcRHV2ewYNv5tVXX+Srr77AarVy770PUqZMKI8++jRPPfUITqeLqKgonnji2VPGvPzyDrz++svccce9wPGZJiNHvsK7775BdnY2/v4BDB/+fM5nePnl5/n884+oVy/mlLHi4uL47bfpVKpUmSFDrs/1WocOnWjVqjXh4SdnpUdHl6dNm8v59ddfqFSpcs7zHTt24bffpp2yTlCTJrEMHTqMxx57IGftphYtWuXsZnY6sbHNmTp1EtdddxWVKlUiJqbR2S/yBerX7yr27t3D4MHX4nQ66datJ+3adaB27To8//xwpk2bgsVi4eGHn8j1vsqVK5OamsLIkc/wzDMjiYyMIjIyih49+pz2POe69t2792LEiKe58cZrsNlsDB16G6VKlSI2tjmffvpRrplgp1OpUmUeffR+UlNT6Ny5G82btwTg+usHM2zYjURERFK3br2c41u3bssjj9zPW2+9f8q1GDLkOlwuV861WLFi2XlfzwthePNjHlQhdeRI6mmmhJ1deHgp4uNTCiiRlAS6h87Nk3yYzL/H4t67FktoRXzb3JizE9ullJ7p4p535nFtx+p0bV6xQM/lST5Mxh+f4Infgb1uR3xaXothc5z22NPdQ16vl7U7jvLTn9s4kJBGzQohXNupOpWjgk47RkHbn3qQ15a+x5U1+tCufGtTMsiZ6fuQ5JXuIckr3UPyX3Fxu4mKqnTex59okRO5WHm5h7xeL0eOJHDPPbfx9dc/5monK0lO9/9bi8UgNPT0xTHNYBKRSyp7/e9kLfoRLFZ8Wl2PvV6nAlvE+1xOtsgFAAVbYLIEReDf9ymylk7AuWY67rgt+Ha6C2vpcuf1fsMwiKkWSr0qpZm3+iAT/9rBC/9bRqt6UVzVriplgnwLNP9/RQeW5akWDxHpH87mo9uoHlIFq0lfRxERERGR/DRnzh+8+eYrPPzwEyW2uHQxVGASkUvC63FjWKwYfkHYKjXGp9V1WAJKm5rJlbOLXNQlOZ9hteHb8hps0XXI/PNzPIn7z7vAdILVYqFD42ha1o1k6sLdzFy6l+WbD9OteUV6tKyIr+PSfVuP9A/nYNoh3l/1OX2rdadrpQ7nfpOIiIiISCHXoUNnOnTobHaMIkcFJhEpUJ70JLIW/gCGgV/H27FXbY696oUtnlhQfK35v4vc+bBViCHg2tcwHH4AZG+cg71ai5w/nw8/HxsD2lejfaNyTJi3g8kLdjFv9QH6X16VNg3KYrFcmvWZygZEMrT+DTQIrcOxrGSCHKVMWRtKRERERETMpV3kRKRAeD0estfNIu3HJ3HtXIYlODJftr7MTy6Ps8B2kTuXE8Ukd+J+suZ/TdrPz+GO33nB44SF+HF733o8PbgpYSG+/G/6JkZ8uZT1u47md+QzahIRQ2LWMUYufpO5+xZcsvOKiIhIUWLg9WpNJZGi4mL+7aYCk4jkO/fhHaRPfJ6sBd9ijahKwNUv4tP0ikI3s+Vki1ycaRmspaPx6/MkuF2kT3qR7DUzLuqHr2rRwTw1qCl39KtHZraLN39YxTvjVnMgIa0AUp8qzK8Mbcq1oEFYHTz64VFERET+w+HwJSkpAZfLWeh+6SgiuXm9XtLSkrGdYVOiM1GLnIjkO+e2RXjTj+Hb6U5sVZsXusLSCTktcp1qmJrDFlWDgKteIHPel2Qt+oG4+C1YLxuK4Xv2rUv/yzAMmteJpHGNcP5Yvo/JC3by7OgltG9cjr5tqhDkX3ALFFoMC1dU70lKdiqvL/uAHpU7ERNe79xvFBERkRKhdOlwUlOPcfToITwe9zmPt1gseDz6pZVcPN1DeWOzOShdOvzC3lNAWUSkBPF6vbi2LQSvB3vNNvg0uxKf2P4XtKaQGU7uIhcIVDA1i+EbiG+Xe3BumI1723ysVvtFj2W3WejeoiKtG0Tx6/ydzFl5gIXr4+jdujKdm1bAbiu4yat2ix1fmy82i/56ERERkZMMw6BUqRBKlQo5r+PDw0sRH59SsKGkWNM9dOmpRU5E8sSdeICMKa+S+ednx2cueb0Ydt9CX1yC4wUms1vk/s0wDBz1OhE99FUMuw+elHiyVkzCex6/5TudIH8Hg7rW4oVbmlOzfAjj/tzO058vYsnGQwU2Nd3X5sN9jYZRq3R1ftw8kf2pl359KxERERERufT0K2YRuSheVxbZKyaTvWY62HzwaXMT9trtCm073On42nwLRYvcfxkWKwCuHUvJXvYL7n3r8e14O5bA0Isar1xYAPdf3ZD1u47y4x/b+GTSemYt28u1HWtQLTo4P6MDxwtlqdlprElYT7hfGaIDy+b7OUREREREpHDRDCYRuSiZc0aTvWoKtuotCbjmFRx1O2BYita3lJMtcoVzlo2jYU98O96O+8ge0iY8i3PXijyNV69yGUbc3Iybe9QmISmTUWOX88mkdSQkZeRT4pOCfYJ4uvlDdKx4OUvjVpKcrenJIiIiIiLFmWYwich586QewevMwlq6HI4mfbDX7YitXG2zY100Z06LXOGdYWOv3gpreFUy/viYzJnv4W7QDd9W1130eBaLQduG5WhWJ4IZi/cwY/EeVmxJoGuzCvRqVQk/n/z7a8Hf7kdS1jG+2zSeNtEtuapGn3wbW0REREREChcVmETknLweF861M8laPhFreBX8+zyJtYy5i2Lnh8LaIvdfluBI/PsNJ2vJOCwBIfkypq/DxhVtq3J5w3L8PG8H0xbt5q81B/55rizWfJqNFuITzINN7yQ6oCz7Uw8S4ReGPQ8LmIuIiIiISOGkApOInJXr4Gay5n+NJ3E/tkqN8Wl9g9mR8s2JFrnEQrCL3LkYVluumUtZq6Zh8Q/CXrNNnsYtE+TLrb3r0jm2PD/+sY2xv23mj+X7uKZjdRpUvbg1n/6rYqnypGSn8tbyj2hZNpara/bLl3FFRERERKTwUIFJRM4oc+H3ONf+hhEYil/X+7FVbmx2pHzlKgItcqfj9Xhw719H9v4NuPZvwPeywXneta9yVBCPXd+YlVsTGPfnNt7+aTX1qpThmg7VKR8RmOfMpRyBDKx5BbXL1CDDlYmv1adILQgvIiIiIiJnV7RW5BWRAuf1evC6sgGwlo7G0bAnAVe/VOyKS/CvFjlH0fpshsWCX49HcDTtj2vbQtJ+GYE7YVfexzUMmtQMZ+StLbiuUw12HUzmuS+X8NWMTaRmOPM8fouyTbFZbLy+7H2m7/o9z+OJiIiIiEjhoRlMIpLDfWQPmfO/xhpaCd82g7HXvtzsSAXK6XH+s4tc4W+R+y/DYsGnaT+s5WqTOftT0ie+iG+nO7FXaZrnsW1WC12aVaBV/Sgm/72L2Sv2sXxzPAPaV6NNTFkseZh55G/zo25oLWqWro7X69UsJhERERGRYkIzmEQEb3YGmQu/J/3nEXiPHcIaUdXsSJeEy+P+p0UuzuwoF81WthYBV72ArXqLnK+b1+vNl7ED/exc17kGz93cjHKh/vxv+iZe/mY5ew6lXPSYhmEwoEZfKgVVYPT6b1l2aFW+ZBUREREREXOpwCRSwjl3LCVt3FM4187EXvtyAga+jL3mZWbHuiR8rUWzRe6/DN9A/NoPwxJQGm9WGhmTX8Z1YFO+jV8+PJDHb2jCLb3qcDgxg+f/t5Tvft9CRpbrosf0er2kZqeSmp2WbzlFRERERMQ8apETKeFce1Zj+JbCr/PdWCOrmx3nkirKLXJn4s1IwZNxjIypr+Jo3BdHk34Ylrz/LsEwDC5rUJZGNcL4ed4O/li2j6WbDnNtxxo0rxNxwa1uDqud+xrfhsWw8Ofe+VQJrkjloIp5zikiIiIiIuZQgUmkhPG6nWSvnoYlKBJ79Zb4XjYIrHYMi9XsaJfcyRa5orWL3NlYQqII6D+CzL/Hkr1iEu6Dm/DtcDuWwDL5Mn6Ar53BXWvRpkFZxv62mU9/Xc+81QcY1LUmZUMDLiyrYSHTlcmfe+cTl1ZDBSYRERERkSJMLXIiJYhr33rSxg8ne9kvuOO2AmDYfUtkcQnA78Qucj5Fu0XuvwyHH34dbsO3/TDc8btIn/AsnozkfD1HlbJBDL8xlsHdarE7LoVnRy9hwtztZDndFzSOr82Xh5vexTW1+rMtaSeJmUn5mlNERERERC4NzWASKQE8aYlkLfoB1/bFGEGR+PV8BFv5+mbHMl1Oi5yr+LTI/Zu95mVYI6rh2rMSi18QAF6PC8OSP9/6LRaDDo2jaVoznHF/bmPqwt0sWn+I67vUoHGN8PMeJ9gniCx3Nl+sHUu1kCoMazA4X/KJiIiIiMilowKTSAmQ8fuHeBJ24Wh6BY6GPTFsDrMjFQouj+ufFrlyZkcpMJaQKBwhPQBwbvmb7LUz8et8J5bgqHw7R1CAg1t616Vtw3KMnbmZ9yespVH1MK7rXIPwEL/zGsPH6uD2mJsI9w/jWFYyvjZffKy6T0VEREREigq1yImUAL6XDSZgwIv4NL1CxaV/8bP5/dMi18jsKJeE4ROAJzWBtJ9H4Ny6IN/Hr1khhOeGNGNgh+ps3J3I8C8WM3nBLpwuz3m9v0pwJXwsDt5a/hHfbhyX7/lERERERKTgqMAkUoy59m8ga/lErGGV8nXGSnFxskUuzuwol4StUiMCrnoBa2hFMv/8jIw5n+N1ZubvOawWureoyKhhLWhYLZRf5u3g2TFLWL/r6Hm93261071KZzpXbIfb48bjPb/ilIiIiIiImEsFJpFizH1gI9krfjU7RqF1skWuZBSYACyBofj1fhxHk364tiwgc/anBXKeMkG+3NW/AQ8NbIjX6+XNH1bxyaR1JKZknfO9rcrGUi4wio/XfMnEbdMKJJ+IiIiIiOQvrcEkIiXWiRa5Gp1rmB3lkjIsVnxi+2MtVxvDNxAAb1YaOPwxDCNfz1W/aigjb2nO9EV7mLJwN2u2H+GKNlXoFFseq+XMv+OwGlaiAiKICojM1zwiIiIiIlIwVGASkRLrZItcKYrjLnLnYitXBzi+s1z6tDex+Afj2+6WnKJTfrHbrPRtU4WW9SL57vet/DB7G/PXxjG4W01qlA857XsMw2BAjb54vV6m7phJGd/StCrXLF9ziYiIiIhI/lGLnIiUWCWxRe60DAv2ai1w7V1D2oRncR3cXCCniSjtz/0DYri7fwPSs5y8/M0KxkzdSHJ69hnf4/F62Jm8h53Jewokk4iIiIiI5A/NYBKREitnF7kS1iL3X4ZhwRHTDWvZmmT88TEZU17B0fQKHI36YJylje3izmXQtFY49auU4dcFO5m5ZC8rt8ZzVftqXN6wHJb/tOhZLVZub3ATNouN9Uc24WP1oXpIlXzNJCIiIiIieacZTCLFmLVcHRxN+pkdo9ByukvWLnLnYg2vQsCVz2Or2oLsZb/g2rGkwM7l47BydfvqjBjanAoRgXw9YzOjvl7O7riUU461W+14vB4mbpvG1J2z8Hq9BZZLREREREQujmYwiRRjtui62KLrmh2j0HJ6T7TIlTM7SqFhOPzw7Xg77pqtsZZvAIAnOR5LUHiBnC86LIBHr2vMog2H+HH2Nl74aikdG5en/+VV8Pe15xxntVi5q+FQfG2+HMlMBCDMr0yBZBIRERERkQunGUwixZgn+TCuA5vMjlFo+Vl9j7fI+TQyO0qhYhgGtgoxGIaBO24raeOexBW3tUDP16peFC8Na0HHJuWZvXIfT32+mIXr4nLNVirtG4KP1cHHa77ky/XfaSaTiIiIiEghogKTSDHm3DSPjKmvmx2j0Dq5i5xa5M7EUrocRmAombPex5OWWKDn8ve1c0OXmjx7UzNCg3z5fMoGXvtuJfsT0k7mMSwMqj2AG2oPwOlxkenKLNBMIiIiIiJyflRgEpESy/nPLnKJnkNmRym0DJ8A/Lreh9eVTcbM9/G6zrzjW36pFFWKp29syo3da7EvPpURY5Yw7s9tZGa7AKgSXImyAZF8vHoMn68dq5lMIiIiIiKFgApMIlJi+Z/YRU4tcmdlLR2Nb4dheOJ3kDn/60tS0LEYBu0bRTPqtpa0qh/F9MV7GP7FYpZvPozX6z3eVleuGa3LNQfA4/UUeCYRERERETkzFZhEpMQ62SJ30OwohZ69clMcTfrh2rUcb+qRS3beIH8HQ3vW4clBTfD3sfPhL+t4Z9waDiem0zyqCU0iYpiwbTI/bpmomUwiIiIiIiZSgUlESiynx/nPLnJqkTsfjqb9CBjwIpZSYZf83DXKh/DczbFc26kGW/YlMfyLJUyavxOX24PdYsdmWPGiApOIiIiIiFlsZgcQkYJjBIVjLVvT7BiFlr/N/3iLXBddo/NhGBaMwFC8riyyFv2Io1EvLIGhl+z8VouFrs0q0Kx2BD/O3sqk+TtZuC6O67s0o0GNUFbGryU1O43Ly7e6ZJlEREREROQ4FZhEijFH7XY4arczO0ahlZ3TIhcElDc7TpHhTUvEuXUh7sPb8e/7NIbNcUnPX7qUD3f0q0/bhkf5ZuYW3hm3hia1wqDScrK9mbSJboHF0ARdEREREZFLST+Bi0iJdbJFLs7sKEWKJTgKv4634UnYTea8L01b+6he5TK8MLQ5V15elbXbj7J+TiVqOrtyIOUwm49uMyWTiIiIiEhJVegLTHv37uXKK680O4ZIkZS1ZDwpn99idoxCK6dFTrvIXTBbpcY4Yvvj2rYQ59qZpuWw2yz0bl2ZF29tQZ2KYfw8Zzev/zWWr9aPw+1xm5ZLRERERKSkKdQtcsnJyfzwww8EBASYHUWk6DLMDlB4OdUilyeOxn3wJOwha/GPWCKqYIsyby2r8BA/7hsQw8qt8Xw7Gw6lp/PFsXV0axVJ5dAo03KJiIiIiJQUharA9OOPPzJlypScP7/11ls8+uij3H777SamEpHi6mSLXLTZUYokw7Dg2/5WsldNwRpWyew4ADSuEU7dyu2YsmAXvx/9mTVL0rgy4mY6NK6IxaJqq4iIiIhIQSlUBaZrrrmGa665xuwYIlJCaBe5vDMcfvg0vxoAT/JhDP9gDJuPqZl87FaualeNKnv7M3nJJr6dtY356w5wY9d6VCkbZGo2EREREZHiqtCvwSQiUlCy3dn/tMhpke+88malkfbL82TOHWPaot//1aRCdZ69sheN2scRHzqHF79ezNjfNpOW6TQ7moiIiIhIsXNJCkypqan07t2bffv25Tw3efJkevbsSZcuXfj222/P+v5PP/20oCOKSAnkdLuwR28n0X3I7ChFnuETgCOmB67ti3GumWF2nByGYdC2agydajaiY9OKzFm1n6c+W8Tfaw8WmkKYiIiIiEhxYHgL+Cfs1atXM3z4cHbu3MmMGTMoX748hw4d4rrrruPnn3/G4XBw7bXX8tZbb1G9evWCjCIikktSShaDR8zgjv4N6NWmqtlxijyv18vhn98kbfNioq59Gv+qjcyOlMufOxawdM9GDq+pzubdSdSrGsqdV8ZQSW1zIiIiIiJ5VuBrMP30008899xzPPbYYznPLViwgJYtWxISEgJAt27dmDFjBvfcc0++nvvIkVQ8ngurn4WHlyI+PiVfc0jJonuo6EhITsUWvZU9x4KIjw83O06OonwPGa1uwnJ4L3E/v0VA/+ewBEWYHSnH3oRDpDmTuf/q+ixZn8D4Odu57805dGlWnr6XVcHPp1AtS5gnRfkeksJB95Dkle4hySvdQ5JXuocKhsViEBoaePrXCvrko0aNIjY2Ntdzhw8fJjz85D/mIiIiOHRILSoi+S174xzSp75mdoxCy+lx/bOLnL7/5BfD7otf1/swLFbc8TvNjpNL98qduDPmZg5nHMYbuouXbmtJm5iy/LZkL8O/WMzSTYfVNiciIiIicpFMWeT7dD/AG4a2jxbJb96UeNwHt5gdo9AKsP+zi5xPQ7OjFCuWoAgCrn0de7UWZkfJxTAMrBYrf+1bxO975mKzexjSozZPD25KKT87H09cx1s/rebQ0XSzo4qIiIiIFDmmFJgiIyNJSEjI+fPhw4eJiCg8bRQiUjJoF7mCY9h98Ho9ZC2dQNaqKWbHyeWaWlfwSNN7cHvdbEncTrXoYJ4ZEsv1nWuw48Axnhm9mF/m7SDb6TY7qoiIiIhIkWFKgal169YsXLiQo0ePkpGRwcyZM7n88svNiCIiJZjT41SLXIEy8CTHk71kAq49a8wOk8NmsRHsU4pxW37ls7Vfk+HKwGqx0Dm2AqOGtSS2dgSTF+xi+BeLWbM94dwDioiIiIiIeTOYHnzwQW688UauuOIKevfuTUxMjBlRRKQE87cHqEWuABmGgW+7m7GEViBj9sd4jhWumWIDavThzpib8bH6cDQzEYCQQB9u61OPR69rjN1m4Z1xa3h/whqOHMs0Oa2IiIiISOF2yQpMs2fPpnz58jl/7tOnD1OmTOG3335j2LBhlyqGiEgOtcgVPMPm88+i3zYyZr6HNzvD7Eg5Ah0BVAupzPitk3lj2QekOU+uvVSnUmmeH9qcq9pVZf3Oozz9xSKmLdqNy+0xMbGIiIiISOFlygwmEbk07LXb4dfzEbNjFFonWuQS1SJXoCylwvDtfBeepDiyFv9odpxTtCnXgi6VOhBg98ftObnuks1qoVeryrw4rAX1Kpdh/JztPDdmCRt3J5qYVkRERESkcFKBSaQYswRFYCtX2+wYhVaAWuQuGVu5Ovh2uhNH7JVmRzlFucAoOlRow9x9C3hj+QdkuHK3w4UF+3HvVTHcNyAGp8vD69+v5LPJ6zmWmmVSYhERERGRwsdmdgARKTiufetxH96GT5N+ZkcplE62yAUB5c95vOSNvWozADyZKXgSD2ArW8vkRLmF+pYm1C8Um2E97euNqodRt1Jppi7czfTFu1m9LYH+bavSoUk0Vot+XyMiIiIiJZt+IhYpxtz715O9crLZMQqtbO0iZ4qsv74iY8bbuJMOmB0ll/phdbi1/iB2p+zj243j8HhPXW/JYbfS//KqvHBLC6qWDeK737cy8qtlHEpMP82IIiIiIiIlhwpMIlJiBapFzhQ+ra7DsDnI+O09vNmFrzCzN2U/247tzLXo939FlfHnoWsacecV9TmanMXbP64mOT37EqYUERERESlcVGASkRIr25WlXeRMYAkMxbfz3XiT48mY/Sne08wUMlOHCm14otkDeLwe/tq/6IzHGYZBs9oR3DcghsTULN6fsIZsp/uMx4uIiIiIFGcqMIlIiaUWOfPYytbCp/V1uPesJnv5RLPjnMLH6mDOvr/5edsUEjOTznps9ehghvWuy479yXwxdSMer/fShBQRERERKURUYBKREiunRc63kdlRSiR73U7Ya10ObhfeQliU6V2lK4/F3kuQoxQ7ju0+67GxtSO4ukN1lm06zIQ52y9RQhERERGRwkO7yIkUY9boejjsvmbHKLRO7iIXDESbHafEMQwDn8uHYBjHf9fh9bgxLKffwc0MVouVsgGRTN4+g9/3zOXZlo8S6lfmjMd3a16B+GMZTF+8h7AQPzo01j0lIiIiIiWHCkwixZitfD1s5euZHaPQymmRc1UwO0qJdaK45Ny2iOyVk/Hv+xSGT4DJqXLrVLEdZQOjCPUrQ6ozjUD76fMZhsH1nWtw5Fgm38zcTGiQDzHVwi5xWhERERERc6hFTqQY8yQfxnVws9kxCq2TLXLaRc5sRmAonmNxZMz+BK+ncC367W/3IzayEXP3LWDkojc4knH0jMdaLRbu6FePChGBfDxpPXsOpVzCpCIiIiIi5lGBSaQYc26cQ8a0N8yOUWidbJHTLnJms0XVwOeywbj3riV72QSz45xWnTI1aBbZmBCf4LOuGeXrsHH/gIYE+Np4Z9xqjiZnXsKUIiIiIiLmUIFJREqsbE829ujtJLq0i1xh4KjTHnud9mSvmopz+xKz45wiwj+cATX7siVxO28s/5A0Z/oZjy1dyocHBjQky+nmnXFryMhyXcKkIiIiIiKXngpMIlJiBdgDyVjSnWpqkSs0fFoPwhJZnawF3+J1ZZsd57QshgUvXlwe91mPKx8RyF39G3DwSBofT1yHy124Wv9ERERERPKTCkwiUmKpRa7wMaw2/Lrcg1/vxzFsDrPjnFatMtV5pOnduDwuftoyEfdZCk31Kpfhxm61WLfzKN/M3HzW1joRERERkaJMBSYRKbHUIlc4WfxDsJYuh9eVTfaaGXjPMVPIDBbDwpak7SyJW0l8RsJZj23bsBy9W1di3uqDTFu0+xIlFBERERG5tGxmBxCRgmOUCscaVdPsGIVW4D8tctW71TI7ipyGa+9ashb9gCc9Cd+W15od5xStysZSP7Q2vjZfPlv7NZ0rtqNqcKXTHtu/bVUSkjKZMHcHYcF+tKgbeYnTioiIiIgULM1gEinGHHU74N/rUbNjFFpZ7iy1yBVi9ipNsdfthHPNDJzbFpod57RKOQJJyDjCnuR9ZLmzSM5OYdPRrae0whmGwc0961CzfDCjp25gy94kcwKLiIiIiBQQFZhEpMRyepzHW+Tch82OImfg0/o6rGVrkTn3S9wJhbO9rGxAJCNaPUbt0jWYt28BH64eTWJWEtnu3IuU220W7rkqhrBgP96fsIa4o2fehU5EREREpKhRgUmkGMtc9AMpo28zO0ahdaJFrppPjNlR5AwMiw3fzndj+AaSMfM9PBnJZkc6LZvFhmEYdKvcibsb3kIZ39KMXvctn6/9OtdxgX52HhjYEIvF4J2fVpOcXjh3yhMRERERuVAqMIkUd4bZAQqvTJda5IoCi18Qfl3vxRpVs9DuLHeC3WKjdpkaeL1eapepQa3S1fF4PXy7cRy7k/cCEBHix31XxZCYmsX7E9aQ7Sx8i5iLiIiIiFwoFZhEpMRSi1zRYQ2vgl/H2zHsvngzU82Oc06GYdChQhsuL9+a+PQE1iZs5EhmIhmuDHYe20216GCG9a7Ljv3JfDFlA57/rNkkIiIiIlLUqMAkIiVWToucr1rkigp34n5Sf3wc55a/zY5y3iIDIni+9RM0Cq/PvH0LeWP5hxxOT6BxzVAGdqzOss3xjJ+z3eyYIiIiIiJ5YjM7gIiIWU7uIhcMRJsdR86DJTgSa5kKZP71JZbS5bCGVzE70nnxsR5v7WtX/jLC/cOI8A/jf+t/wOPvpkOTpsxYvIfwYF86NClvclIRERERkYujGUwiUmLltMi51CJXVBxf9PsuDL9gMma+jyf9mNmRLoivzYcmETF4vV7KBURSLjCK6zrVoFyDPXw7fzlrtieYHVFERERE5KKowCRSjPm2vJZSQz8zO0ahpRa5oun4ot/34c1MJfP3D/F6XGZHumCGYdC1cge6V+5EUnYSGYE7CCubyceT1rBsl9rlRERERKToUYFJREqsky1yh8yOIhfIGlYJ33Y34z60DXfcVrPj5EmYXygjWz/JI91641N2P1/u+JSNh/bg1cLfIiIiIlKEaA0mkWIse8NsXLtW4N/zEbOjFErZnux/WuQqmh1FLoK9eiusEdWwBEWYHSXP/O1++Nvh7vbdeWcmfL/zIHVaL8fpzWZwnYEYhmF2RBERERGRs9IMJpFizJN8uMjP7ihIpeyl1CJXxFmCIvB6PWSt+BX3oW1mx8mzGmXDuatdLw4eSWfdthR8rb4YhsGs3XM4nB5vdjwRERERkTNSgUlESqwTLXKJapEr2pyZODf/RcasD/CkJ5mdJs/qVS7Djd1qcXB9edJ31ORoRiJTd85idfx63B43CRlHzI4oIiIiInIKFZhEpMQ60SKnNZiKNsPhf3zR7+x0MmZ9gNftNDtSnrVtWI7erSszb/VBFq46xgutn6Bd+dYsO7SK5xe9zp6UfWZHFBERERHJRQUmESmxTrTIVVeLXJFnDa2Ab7tb8RzaRtbf35odJ1/0b1uFlnUjmTB3Bxu2peGwOqhdpgZ9qnSjQmA003bO4vtNE/B4PWZHFRERERFRgUlESi7tIle82Ks1x9GoF85Nc3Bu/svsOHlmGAY396xDzQohjJm6kS17kwj2CaJr5Q4YhoHT4yLL7cRiWFhwYAmJmUlmRxYRERGREkwFJpFizFG3I349HjI7RqGV7T6xi9xhs6NIPnHEXoWjYU+s5eubHSVf2G0W7rmyAWHBfrw/YQ0Hj6TlvNavWg9uqnsNydkp/LhlIn/tX4TX6+VYVoqJiUVERESkpFKBSaQYswRFYCtby+wYhVagPfCfXeQamB1F8olhseDTYiCWgNJ4s9KKxaLfgX52HhjYEIvF4J1xq0lOz855zTAMghyleLbFo3SueDlrEzbw7MKX2XZkl3mBRURERKREUoFJpBhz7V1L1srJZscotNQiV3x5vR7Sp7xKxsz3isWi3xEhftw3IIak1GzeH7+GbKc71+uhfqXxt/sTHViW9uUvo0rpCszdt4AJWyfj9rjPMKqIiIiISP5RgUmkGHPtW0f2qqlmxyi0clrk3GqRK24Mw4KjSV88h3eQNf9rvF6v2ZHyrFq5YG7rU5cdB5L5fMoGPKf5TKF+ZehfvRdWi5WEjCPEpR/GarGy6vBaUrJTTUgtIiIiIiWFCkwiUmKVcmgXueLMXiUWR5O+ODf/hXPDbLPj5IumtSK4pmN1lm+OZ/yf28967FU1+nBHgyGkOdP5csP3TN/1BwAZroxLEVVEREREShgVmESkxFKLXPHnaHoF1ooNyVrwHa6Dm82Oky+6NKtApyblmbFkD7NX7DvrsVaLlQC7P082e4BulTqyNXE7w/9+iR3Hdl2asCIiIiJSYqjAJCIlVpY7S7vIFXOGYcGv4+1YgsJxH9hodpx8YRgG13WuQcNqoXw7awurtyWc8z1RAREE+5QiyCeIJhENKR8YzZK4FUzdMROXx3UJUouIiIhIcacCk4iUWEGOIO0iVwIYDn/8+z+HT9MrzI6SbywWg9v71aNiRCk+mbSe3XEp5/W+SP9wbqgzAIfVzu7kvaw/uhmrYWXz0W1kuDILOLWIiIiIFGcqMIkUY7by9XE06mV2jEJLLXIlh+HwA8C5dQGZ8/5XLBb99nXYuP/qGAL8bLwzfjVHky+sQHR1zX480PgOMt1ZfLL2f/y89fiOk07NaBIRERGRi6ACk0gxZqvQAJ/GfcyOUWipRa7k8STH49w0B+e6WWZHyRchgT48cHVDsp1u3h63mvTMCysOOax2/Gy+PNj4DrpV7sjelAMM/3sU25J2FlBiERERESmuVGASKcY8xw4Vm4WNC4Ja5EoeR5M+2Co3IWvRD7iKyZpM5cMDuat/A+KOpPPxxLW43J4LHqNiUHnC/EKxWazUCKlKuYAo1iVs5Pc9c7VGk4iIiIicFxWYRIqx7A2zyZjxttkxCi21yJU8hmHBt/0wLCFRZM76EE9KvNmR8kW9ymW4sXst1u9KZOxvmy+6BbBsQCS3NhiMv92PDUc3s+DAEiyGhd3Je8l2O/M5tYiIiIgUJyowiUiJpRa5kslw+OHX9T68XjeZf35eLNZjAmgbU44+rSvz15qDjPtja57HG1jzCh5pejcuj4sPV43mu00TAPB4L3yGlIiIiIgUfzazA4iImCWnRa5HbbOjyCVmCY7Cr/M9GP5BGIZhdpx8c0XbKiQcy2Ds9I342Qxa1ovK03j+dn8AhjUYTIA9gPj0I7y36jNuqnst1UOq5EdkERERESkmNINJREqsTHemWuRKMFv5eljLVMDrduHat87sOPnCMAyG9KhD/WqhjJm2kc17EvNl3Bqlq1EuMIpsTzYRfmGE+4WyLWknf+1fhNvjzpdziIiIiEjRpgKTiJRY2e5stcgJ2SsnkzH9zWJTZLLbLDw9pDnhIX588PNaDh5Jy7exowPLcm/jYQT7BLH80Cpm7PoDD17i0g6r0CQiIiJSwqnAJFKMWYLCsUbVNDtGoVXKrl3kBBwNe2ApHU3GHx/jSS4excZAfwcPXN0Qq8XgnXGrSU7LzvdzDKx5BY/G3gPA+6s+56sNPwAUmzWtREREROTCqMAkUow56nXGv8dDZscotNQiJwCG3Re/rvcBkDHzPbzOLJMT5Y/wED/uG9CQY6nZvDdhDdnO/J1hZBgGIT7B2Awr19bqT4cKbTiWlczLS99hW9LOfD2XiIiIiBR+KjCJSIl1okUuSS1yJZ4lKAK/TnfiSdxP5twvis0snKrlghjWpx47DyTz+eQNeArgcxmGQYOwulQJrkRKdipWw0qwI4i9KQdYGrdSu86JiIiIlBAqMIkUY5kLviPlyzvMjlFo5ewipxY5AWzl6+PT/Gpwu8DtNDtOvmlaK5xrOlZn+ZZ4xv25rUDPVb5UOR5vdh/h/qEsOLCEcVsmkeXOJsOVUaDnFRERERHz2cwOICIFrfhswZ7fTrbIlQbKmR1HCgF7TA/sMd0xDAtejwfDUjx+D9OlWQXikzL5bclewkP86NikfIGf8+qafWlfvjVWw8IrS98jJqwuV1TvWeDnFRERERFzFI+fnEVELkKWO+ufXeTizY4ihYRhGBiGBfehbaSNewrPsTizI+ULwzC4rnMNGlUP49tZW1i9LaHAz2kxLEQGRGA1rDSOaEDtMjXIdGWyJ3lfgZ9bRERERC49FZhEpMQKdgT/0yJX3+woUsgY/sGQmXp80e/s4tHeZbEY3N63HhUjS/HJpPXsjku5JOe1Wqz0qdqN2mVqMG3n77y54iOOZSVfknOLiIiIyKWjApOIlFgZ7ox/WuS0yLfkZikVjm/nu/AkxZE55wu8xWShah+HlfsHxBDoZ+Od8as5cizzkp6/e+WO3FT3WoIcpZi1ew5JWccu6flFREREpOCowCQiJdbJFjkVmORUtui6+LS8Bteu5WSvnGJ2nHwTEujDA1c3JNvp5p3xq0nPdF2yc/vb/WkSEcORzKNM2/U7S+JWXLJzi4iIiEjBUoFJpBjzbX09pW7+2OwYhVZOi5yfWuTk9Oz1u2Kr3ors5ZPwJBeftbqiwwO5u38D4o6k89HEtbjcl3aGVphfKE83f4jOFdux4MASvts0Aafn0hW6RERERCT/qcAkIiXWyV3kNINJTs8wDHwvvxm/3o9hCQo3O06+qlu5DDd1r82GXYl8/dtmvF7vJT1/mF8ZLIaFxMwkjmQcxWpYyHAVj/WuREREREoiFZhEirHsdb+TPv0ts2MUWmqRk/Nh2BzYytbC6/WSveFPvNnpZkfKN21iytL3ssrMX3OQKQt3m5KhV9Wu3NVwKHFph3lmwcusjl9nSg4RERERyRsVmESKMU/yIdyHtpodo9DSLnJyITyJ+8n6+xsyZn9WbBb9BujXpgqt6kXxy7wdLFwfZ0oGq8VKkKMUDcPqUyW4EnFphzmWdWl2uRMRERGR/KECk4iUWGqRkwthLVMen1bX4d6ziuzlk8yOk28Mw+DmnrWpXTGEL6dtZPOeRFNyBDoCGFx3IKXsgXy14Xs+XP3FJW/bExEREZGLpwKTiJRYWS61yMmFsdfrhK1mG7JXTMK5a7nZcfKNzWrh7isbEB7ixwc/r+XgkTTTshiGwY11r2VgzSvIcmczbecsnG6naXlERERE5PyowCQiJZZa5ORCGYaBb5sbsYRXIfPPz3En7jc7Ur4J8LXzwNUNsVoM3v5pNclp2aZlKRsQSfWQKqw/spHpu/5gb+oB07KIiIiIyPlRgUlESqwTLXKawSQXwrA58OtyL9aytTDsvmbHyVfhIX7cN6AhyWnZvDdhDVlOt6l5mkY24pkWj1A1uBLfbhzPX/sXmppHRERERM5MBSaRYsxRrzN+3R80O0ahdXIXuXizo0gRYwksg3/3B7EEhuLNzsDrKT6LflctF8SwPvXYeSCZzydvwOMxdx2kCP8wnG4nSdnHSM1Ow+v1kuHKMDWTiIiIiJxKBSaRYswSHIktqqbZMQottchJXnmz0kj/5XkyJr+MO2G32XHyTdNa4VzTqQYrtsTz05/bzI6D3WrnrpihdKvckYUHl/LCojdIyDhidiwRERER+RcVmESKMdeeNWStmmJ2jELr5C5yh8yOIkWVwx9Hw554jsWR/ssIMud/jTcz1exU+aJLbHk6NS3PzKV7+WP5PrPjYBgGFsNCxVLliQmvRxnf0uw4tguXx2V2NBERERFBBSaRYs21by3Zq6aZHaPQynRnqkVO8sQwDOy1Lyfgmlew1+2Ec+OfpP34BM5ti8yOlmeGYXBdpxo0qh7Gd79vYdW2BLMjAVC+VDmuq3UlKdlpvLfyMyZu0/c4ERERkcJABSYRKbGCHSFqkZN8YfgE4HvZIPyvegFLmeic54v62kwWi8HtfetRMbIUn0xax664ZLMj5Qj2KcUt9QfRpVIH9qUc4O8Di/F6zV0vSkRERKQkU4FJREqsky1y2kVO8oe1TAX8ej+BrVoLADLnjibjz8/xpCeZGywPfBxWHhgQQyk/B++OW8ORY5lmR8rRIKwuwT6l+OvAIqbsmEmmu/BkExERESlpVGASkRLrRItckgpMko8Mw8AwDLxeL5aA0ri2LybtxyfIXjMdr7torhcUHOjDA1fHkO3y8M641aRnFq7PcU3NK3i46V0YWHh35WdsS9ppdiQRERGREkcFJhEpsUJOtMj5qUVO8p9hGPg0H0DA1aOwlq1F1qIfSZ/wDK5968yOdlGiwwO5p3994o6m8+Eva3G5C0/7n8WwEOYXSnJ2CseykvF6PWS5s3F73GZHExERESkxVGASKcZs5RvgaNTT7BiFVk6LnFMzmKTgWIIj8e/+IH7dHsDrcePas9rsSBetTuUyDOlRm427E/l6xuZCt+ZRhH8YTzd/kBqlq/H9pp95Z+UnKjKJiIiIXCI2swOISMGxVYzBVjHG7BiF1sld5KqaHUVKAFulRgSUrwf/FDyyN83Fm3oUR6NeGDaHyenO32UNyhKflMGvf+8iPMSXPpdVMTtSLlaLFYCY8LoczUzEYljYkridmqWrmZxMREREpHjTDCaRYsxzLA5X3BazYxRaapGTS82w2jHsvgB44neRvWISaT89iXPnskI3G+hs+rWpQqt6Ufzy104WroszO85pNYmIoXPFdqxN2MC7Kz9ldfx6syOJiIiIFGsqMIkUY9nrZpHx27tmxyi0MlwZapET0/i2vQm/3o9j2P3InPUBGdPewJ10wOxY58UwDG7uWZvaFUMYM20jm/ckmh3pjOqH1WFQnYE0CKvDsriV7Di22+xIIiIiIsWSCkwiUmJlurOOt8i5482OIiWUrVwd/K96Hp/WN+CO30HWvP+ZHem82awW7r6yARGl/Xh/wloOJKSZHem0LIaFVmVj8Xq9TN89mxm7/jA7koiIiEixpAKTiJRYIT7/tMj51jM7ipRghsWKo34XAq55Fd92QwFwx+/CueVvvN7Cs1Pb6QT42nng6obYrAbvjFvNsbRssyOdkdVi5ZGmdzG4zkD2px7k/ZWfk5iZZHYsERERkWJDBSYRKbEy1SInhYjFLwhLcBQAzk1zyJzzOem/voQ7YZe5wc4hPMSP+wY0JDktm/fGryHLWXh3bfOz+VHKEcjRzESOZiVis9jIcGWYHUtERESkWFCBSURKLLXISWHl0+ZGfNvdgjf5MOk/P0/mvP/hyUwxO9YZVS0XxG1967HrYDKfT96Ax1O4FyxvEFaX4c0fxmF18Nqy95m0fbrZkURERESKPBWYRIoxS1Ak1sgaZscotNQiJ4WVYViw12pLwDWvYK/fBefmeaRPHInXU3hb5prUDOfaTjVYsSWen/7cZnacc7JarNgMK00iGlKnTE0yXJnsSd5ndiwRERGRIstmdgARKTiOBl1xNOhqdoxC60SLXKIrFChrdhyRUxgOf3xbX4+9Tju8yYcxLBa8WWm4E/dji6ppdrxTdGlWgfikDGYu3Ut4iB+dmpY3O9JZWS1W+lTtBsD4rb8yf/8inm/1JME+pUxOJiIiIlL0qMAkIiVWpjvzeIucq5rZUUTOylo6GkpHA5C9ZgbZKydjq94SnxbXYAkobXK63K7tVIOEY5l89/sWQoN8aVQjzOxI56Vn5c5UDa5MkCOQmbv+pHnZJoT4BJsdS0RERKTIUIucSDGWOX8sKV/dbXaMQivEcbxFrqpa5KQIcTTujaNJX1w7l5H24xNkrZqK1+00O1YOi8Xg9r71qBRZik9+XceuuGSzI50Xf7s/TSJiSMg4yvRdv7M0bqXZkURERESKFM1gEinmDAyzIxRaapGTosiw+eATeyX2mm3IWvg92UvG4dr8F/5XjsCw+5odDwAfh5X7B8Tw4tfLeXfcGp4a3JTSpXzwer14PODxeo8/9v7z2HP88fHn/vXYk/ux95/jj7+ff577z3s9Jx/nHAP/jOXNyXC6c50Yv63PdWQfCOCj3VM55omntrUNBpZcY+bO8O9cp8nwn/FzHe/xYrdZubJdVcqHB5r9pRMRERG5aCowiUiJpRY5KcosQRH4dbsf1941uOO2Yth98Xq9eNOOQrj5awgFB/rwwMCGvDR2OY9/stDsOBfFFr0PS8Axtm7ZDVYXhseOxTAwDAOLheP/axhYjH8eWwwMg3+e++ex5Z/j/3n+dO/dFZfC2z+tZviNsZQu5WP2xxYRERG5KCowiUiJFeJT+vgucr3rmB1F5KLZKsRgqxADgGv7YjLnfsHRllfgrdUFw2ZusSI6LIDHr2/Mqm0JpxZZDDAs+VOg+e97TxyT61znM77FwODf47fHg5vDGfG8s+ITbqp7DTHh+d9Su+dQCi9/u4J3x63m8Rua4OejH89ERESk6NFPMCJSYmX80yJ31KkWOSkerGVrYasSS9Lf4zFWzcan1bXYqjTDMMxrla0YWYqKkebPqLp4Fkr7BNM4ogFVgitxMO0Q/jb/fN1prmJkKe66oj7vjlvDJ5PWc9+ABlgtWiZTREREihb99CIiJdaJFrkkV7zZUUTyhSWgNH4d76Ds4JEYvgFk/v4RGVNfw5NRNBbaLqwCHQEMqnM1gfYA/rf+ez5ePRqv15uv52hQNZRB3WqydscRvp21Nd/HFxERESlomsEkUoz5thkMbQabHaPQKv1Pi1xVtchJMeNXsS7+/Ufg3DgH1/bFGD7+AHg9LgyL/uq/WIZhMKTedWS4MshyZ/HH3r/oWrE9dqs9X8Zv3yia+KQMpi/aQ3iILz1aVMqXcUVEREQuBc1gEpESKz2nRe6w2VFE8p1hseKo1wm/Pk9iWGy4kw6Q9v1jODf/hdfrMTtekVU2IJKqwZVZl7CRGbv+YF/qwXwd/6p21WhWO4Jxf25n6SZ9bxIREZGiQ7/GFCnGstf+hvvAJvy63W92lELpZIucdpGT4itn/SWvFyOwDJlzR2PZ+Ce+rQdhjahqbrgiLDaqMZWCKhLmV4axG36icnBF2ka3zPO4FsPg1t51SEzJ4vPJGygd6EP18sH5kFhERESkYGkGk0gx5jl2CPehbWbHKLROtMhV86tvdhSRAmctHY1/36fwbT8Mb0oC6RNHkjl3DJ7MFLOjFVnh/qE4PS6Ss1NIc6bj9XpJd2bkeVy7zcq9VzWgTJAP701Yw6HE9HxIKyIiIlKwVGASkRIrQy1yUsIYhgV7zcsIuOZV7DHdcO5cCq5ss2MVaQ6rnTsb3kzXSu1ZcGAJIxe/QULG0TyPW8rfwYNXNwTgnZ9Wk5rhzPOYIiIiIgVJBSYRKbFOtMglahc5KWEMhx++La8l8Pq3sASG4nVlkT7jbVwHNpkdrUiyGBYshoVKQRVoGF6fMr4hbE/ahcvjytO4kWX8ufeqBhxJzuL9CWtwutz5lFhEREQk/6nAJCIl1skWuXpmRxExheHwA8CTnIAncT8ZU14h4/eP8KQeMTlZ0VS+VDmurdWflOxU3l/1GZO2T8/zmDXKh3Br7zps3XeM0VM34vF68yGpiIiISP7TIt8iUmKdaJFLdIYDUWbHETGNtUw0AVe/RPbqaWSvmoprzyocjXrjiOmOYXOYHa/ICfYJ4pb6g6gcVJG9KfvZk7KP1mWbn1xw/QI1rxPJkWOZjJuznfAQP65qp40JREREpPBRgUmkGHPU74qteiuzYxRama6Mf1rkapgdRcR0hs2BT9MrsNe8jKyFP5C97GesEVWxldci+BejQVhdAKbs+I21CRtpEtEQP5vvRY/XvUVF4pMymLpwN2HBvrRrFJ1fUUVERETyhQpMIsWYJSQKi2bmnFFpnzJkLOlO1d51zY4iUmhYSoXj1/Ve3PG7sIZXBiBr5WTsVZthCdb3kwt1Ta3+dKnUAQN4d8Wn9K7ajWohlS94HMMwuKFrTRKSMxn72xZCg3ypXzU03/OKiIiIXCytwSRSjLn2rCJr1TSzYxRaOS1yWuRb5BQnikue1CNkr5pK2rjhZC0Zh9eZaW6wIsZiWAjzK8Ox7BSOZafgxUumKwu358IX7LZaLNzZrz7R4QF8NHEdew6lFEBiERERkYujApNIMebaswbnmrwvMltcZboztIucyDlYAkMJuOYVbNVaHC80/fQkzm2L8Gqx6QsS6R/O080fpHpIFb7fPIF3V36Kx+u54HH8fGzcPyAGPx8b745fQ2JKVgGkFREREblwKjCJSImV0yLnpxY5kbOx+Ifg12EY/n2fxvANInP2Jzg3zTU7VpFjtVgBiAmrR6Pw+hgYbEncdsHjlAny5f4BMaRnuXhn3Goyslz5HVVERETkgqnAJCIlVoYr/Z9d5DSDSeR8WKNq4N//OXzb3YK9xvENBFz71uHNSjM5WdHSNLIhHStezuqE9by78jPWJmzA6XZe0KywipGluOuK+uyPT+PjSetwey58NpSIiIhIflKBSURKrAx3plrkRC6QYbFgr9UWw+aDNzuDjFkfkPbjE2Rvmov3Ilq+SrKYsLoMrjOQeqG1mb7rD0YsfBWXx0ViZhLZ7uxzvr9B1VAGdavJuh1H+WbmFrUtioiIiKlUYBKREkstciJ5Yzj88O/zJJaQsmTN+5L0iSNxH95udqwiw2JYaFk2FothoVJQBWKjGmOz2Phxy0ReWfouANuSdnIk4+gZx2jfKJqeLSsxd9UBZizec6mii4iIiJxCBSaRYsxWMQZHwx5mxyi01CInknfWsEr49XkS3463401LJH3iSLLXzjQ7VpHTMLwefap2A6BThbb0/ufxNxt/4octvwAwf/8idifvPeW9V7arSvM6EYybs52lmw5futAiIiIi/2IzO4CIFBxbxUZQsZHZMQqtEy1ySa4aZkcRKdIMw8BevRW2io3IXjkZa4X6AHhSEjACQjAs+nHjQtQoXS3n8V0Nh5LtduJ0O5mwbQpty7WkYqnyfL95As0iG1OjdDUshsEtvepwNCWLzydvoHSgD9XLB5v4CURERKQk0gwmkWLMkxSHK26r2TEKrTJqkRPJV4bDD58WA7GGlMPrcZMx423SJzyLa88arc90kSL8wylfqhx2q52XLhtOl0rtSco6xpqEDSRkHCXVmcYbyz5kV8ou7u5fjzJBDt6bsIZDielmRxcREZESRgUmkWIse+1vZM563+wYhdaJFrmjapETyX+GBZ9mA/C6nGTMeIu0n54ie+1M7TiXB342X0o5AintG8JLlw2neVQTkrNS8Hg9OKwOEpxxUPcPvH5JvDVuOQkpKWZHFhERkRJEBSYRKbFOtsipwCSS3wzDwFa5MQEDX8K3w20YPgFkLfyO9GlvmB2tWLAYFqwWK+UCo3is2b1UCqqA3WKjeukq3N6tOUn2nTy3ZBRxqQkcyUjkcHqC2ZFFRESkmNOiCCJSYuW0yPVRi5xIQTGsduw1WmOv0Rp3wi68WcdbtzxJcWTOG4O9bkdsVWIxrPqRJK8qBpXn1vqDAOjftDE/r8rklz8OElZnB38fWMxrbZ9nd/Je3F43tUpXxzAMkxOLiIhIcaKf5kSkxEp3nthFLhyIMjuOSLFnDauc89iTnognLZHM2Z9g+AVjr9MOe50OWAJKmxewGOke0wBvehDj5mynQ1Albq5fHYfVzszdf3I0M5FnWj7CX/sX4WfzJTaykdlxRUREpBhQgUlESqwMdwb26O0kahc5kUvOVq4OAde+invvOrI3/EH2islkr5yCb/tbsddobXa8YqF7i4rEJ2Xw5+IDVChdC8Lh1gaDOZqZCMDCg0sp7RNCbGQjvts0nspBFWldrrnJqUVERKSoUoFJpBizBEdijaxudoxCK6dFrq9a5ETMYBgWbBVjsFWMwZN8mOwNf2KNqgmAc8vfeJ2Z2Gu0xnD4mZy0aDIMgxu61iQhOZNvfttCaJAvDaqGUjYgEoBHm95DpjsTt8dNXNphQnyC8Xg9jFryNv3qdCYmqCFZ7mx8rA6TP4mIiIgUBVrkW6QYc8R0x6/rfWbHKLQyXBn/tMhpkW8Rs1mCIvBteQ2WUmEAuHavJOvvsaR++yCZ88fiTtxvcsKiyWqxcGe/+kSHB/DRxHXsOXRyZznDMPCz+WG1WHmo6V30qNyZdFcG0QFRBPsGkZiZxKPznmNp3EpcHheH0g7j9XpN/DQiIiJSmKnAJCIl1skWORWYRAobvy734H/Fs9gqN8G5aS7p454mfcqreLMzzI5W5Pj52Hjg6ob4+9h4d/wajiZnnvY4wzAItAcwtP4NxEbHYBgGHSu0pWJQebYm7eCFxW+wKXErSVnH2HhkCy6P6xJ/EhERESnMVGASKcYy//ofqWM1g+lMclrk/NQiJ1IYWSOq4tfhNgJueAtH8wEYDv+cdrnsTXPxpCeZG7AIKV3KhweubkhGlot3x68hI+vcxaEQn2CuqN6TSP9wogPLck3NK6gWXJkVh9fwweovSMpKZuexPfy9fzFOt/MSfAoREREpzFRgEpESK92VrhY5kSLA4heET6Pe+HW9FwBP8mGy5n1J2ncPk/HHx7jitqh16zxUiAjkrivqsz8+jY8nrcPt8Zz3e4Mcpbi8fGscVgdtyrXgvka3EeZXhpXxa/h521QshoWFB5cxZcdv+lqIiIiUUCowiUiJlZnTIpdgdhQRuQCWoAgCBr6CvW4nXHvXkPHrS6T//CzO7UvMjlbo1a8ayuBuNVm34yjfzLy4wpzD6qBWmeMbSPSv1ovhLR7CarGyJ3kfm45uxTAMftoyifFbfwXA7XHn62cQERGRwqnQ7iK3detWPvvsM0qVKkVYWBh33XWX2ZFEpJgp4xP6zy5ydcyOIiIXyBIShW/r6/FpdhXObQtxbvgDz7E4ADwZyZCVjiUkyuSUhVO7RtEkHMtk6sLdRIT40aNlpYseyzAMSvuGAHBNrStOW0x6Y/mHVAuuzICafUnMTCLEJxjDMC76nCIiIlI4FdoCU2JiIo8//jhhYWEMGzbM7DgiUgydaJFLckYA+oeoSFFk2H1w1GmPvXY78B4vbjjX/0H2iklYy9fHUbcT1ooNMSyatP1v/S+vSnxSBuPmbCc02JfmdSLzZVyrxQrAwJr9APB4PdQtU5MI/3CcHhcvLH6D9uUvo1+1Hmw+uo0qwZVwWO35cm4RERExV6EpMP34449MmTIl589vvfUWYWFhfPbZZ/Tq1cvEZCJSXJ1skatldhQRySPDMMA4/mONvW4HsFhwbpxDxsx3MQJDsdftgKN2ewzfQJOTFg4Ww+CWXnU4mpLFF1M2UrqUDzXKhxTAeSz0qdYdgGy3k6uq96ZCqWgOp8fz3qrPGFjzClpENWXpoRU0Cm9AKYe+PiIiIkWV4S2kKzFmZWXx8ssv06lTJ9q2bXtRYxw5korHc2EfLzy8FPHxKRd1PhHQPVSUHDySxtOfL+b2vvVoUTd/fnufH3QPSV7pHjrO63Hj2rUC54bZuA9sxH/Ai1jLlMeblQYOf7VpASnp2bw0djlpmS6eHtyUyDL+QMHfQ06Pi62J24kOLMfelH18vOZL7m98G0GOUiyOW0H78m0I9ilVYOeXgqfvQ5JXuockr3QPFQyLxSA09PS/ELrg+eJO56XZhvaDDz5g/fr1TJo0iaeffvqSnFNEShbtIidSvBkWK/aqzfDv/TgB175+vLjk9ZI+5VXSf3ke5+a/8LqyzY5pqlL+Dh4Y2BCAt8etJiX90lwPu8VG3dBaBPuUol5obZ5p8QjVgquwO3kfs/fMA2B1/Dq+XP8d6c70S5JJRERE8uacBaZly5bx0UcfkZ2dTf/+/YmNjWXatGnnfYLU1FR69+7Nvn37cp6bPHkyPXv2pEuXLnz77benfd/DDz/MuHHjeOONNxg1atR5n09ETspeM52Mme+bHaPQytAuciIlhiUo/PgDr/f4ek3ubDLnjib12wfJXPQDnuTD5gY0UWRpf+67KoajyVm8P2EtTtel3fXNMAyiAiKwWqy0KNuU1y5/nmCfUiRnp3IgNQ5fmy/z9y9i7r4FF7XrnYiIiFwa51yD6fXXX+f+++/n999/JywsjPfff58HHniAnj17nnPw1atXM3z4cHbt2pXz3KFDh3j77bf5+eefcTgcXHvttbRo0YLq1avn6YOczpmmbZ1LeLimZEveFJZ7KD7rKOnx2wtNnsKmuqciGV93p9GgxoXuGhW2PFL06B46i8gr8LbrR+ae9SQvm0Ha2pmwfw3lb38PwzDwer0lrn0uPLwUD1sMXv16GWNnbeXRQbGm30NXhnfhykZdANi+ZQdOj4urwrtyJCORMP8ypmaT82P2PSRFn+4hySvdQ5fWOQtMbreb1q1bM3z4cDp37kz58uXxeDznNfhPP/3Ec889x2OPPZbz3IIFC2jZsiUhISEAdOvWjRkzZnDPPfdc3Cc4C63BJGYoTPdQZoYTj8dbaPIUNvsOx2OL3sruIxHExwebHSdHYbqHpGjSPXSe/Cthufx2ApoOxJuSQEJCKp7kw6RPe/P4znS12paoRcFrlQvi6g7VGPfndiLLbKBXi4pmR8pxY83ryHJns3b3dl5e8g7X1b6KVmVjzY4lZ6HvQ5JXuockr3QPFYyzrcF0zgKTx+NhzZo1zJkzhzvuuIMtW7ac9zpMp2ttO3z4MOHh4Tl/joiIYM2aNec1nohIfsrQLnIiAlgCSkNAaQC82RlY/IPJWvwjWct+xlatJY76nbCGVTY35CXSvXlF4pMymfDnNgJ8rLRvFG12JOB4G52vzYfShNC1UgcahNZha+IO9qUe4PLoVlgtVrMjioiIlHjnLDDdeeedPPzwwwwYMIDy5cvTsWPHPC26fbre+ZI2DV1ECodQn1AylnSnWr86ZkcRkULCGlYJ/75P4T6yF+eGP3BuXYBry1/4tLoOR4NuZscrcIZhcEOXGqRkOPnmty2EBvnSoGqo2bFy+Np86F21KwArdq5h/ZGNXFauBVnObPztfianExERKdnOWWA6fPgws2bNyvnzrFmzsFov/rdEkZGRLFu2LNf4ERERFz2eiMjFOrmLXAQQaXYcESlErKEVsLYdgk+LgTi3/I2t4vGd1pyb5uFJPoS9TgcspcJMTlkwrBYLjw2O5dF35/HRxHU8eUMTKkYWvjUsBtbsR4qzEx6vmxcXv0nb6Fb0qNLJ7FgiIiIl1jl3kfv+++9z/TkvxSWA1q1bs3DhQo4ePUpGRgYzZ87k8ssvz9OYInJ6jphu+HXJ//XNigvtIici52I4/HHU74Il6Pgvw9xH95K9ehppPzxKxm/v4tq3Dq/3/NamLEr8fe3cf3VD/H1svDt+DUeTM82OdArDMAhylMJiWGlVrhl1QmuQlHWM2Xv/wu25tDvhiYiIyHnMYKpSpQrDhw8nNjYWf3//nOe7du16USeMjIzkwQcf5MYbb8TpdDJgwABiYmIuaiwROTtLSFmzIxRqJ1rkqqpFTkTOk2/rG3A06IZz4xycm+bi2r0SIzgK/z5PYvEvPJsF5IfSpXx44OqGvPzNct4Zt4YnBzXBz+ecPzpecg6rnT5Vj7cvzto9hyk7ZxITVo9gRynsVrvJ6UREREqOc/6UkJSURFJSErt37855zjCMCyowzZ49O9ef+/TpQ58+fS4gpohcDNfulXiOxeGI6WF2lEJJLXIicjEspcLwaT4AR9N+uHYsxbV/PYZfEADZq6djLV8fa2gFk1PmjwoRgdx1RX3eGbeGjyeu474BMdis55wAb5rOFdsRE16PUN/SvLvyU8oGRHJNrf5mxxIRESkRzllgGjt27KXIISIFwLV7Fa49q1VgOoN0V7p2kRORi2ZY7dhrtMZeozUAnvQkspb9Aot/xBpVE3vdjtiqxGJYC9+snwtRv2oog7vV5KsZm/lm5hZu6l6r0G7QYhgGkf7huD1uaoRUpbRvadweNwsOLqVV2VhslqL9tRARESnMzvm37K5du/jmm29IT0/H6/Xi8XjYvXs3P/zww6XIJyJSYEJ9w9QiJyL5xuIfQuANb+Hc8hfZ62eTOfsTDL9gHI164WhwcUsLFBbtGkWTcCyTqQt3E1Haj54tK5kd6aysFiu9/tltbuXhtfyw+WfCfMtQq0x1LEbhnYElIiJSlJ3zb9iHH34Yp9PJypUriY6OZtu2bdSsWfNSZBMRKVAnW+TizY4iIsWE4RuII6YHAde+il/3h7CEV8abnQ6AJyMZ14GNeL1ek1NenP6XV6V5nQjGz9nOko2HzI5z3hpHNOCRpndTJ7Qmv2ybyph13+Iphguzi4iImO2cBaa0tDSef/552rRpw+WXX86XX37J+vXrL0U2EZEClZHTIqdd5EQkfxmGBVvFGPy7P4ijST8AnJv/ImPKq6SPf5rs9X/gzc4wOeWFsRgGt/SqQ43ywXwxZSNb9iaZHem8VQk+PuMq0B7wz85zFlbHr8PlcZmcTEREpPg4Z4EpJCQEgEqVKrF161aCgoLwePRbHxEp+nJa5PzUIiciBefEekWO+l3wbXcLWB1k/T2W1G8fJHP+WDwpRafIbbdZufeqGEKDfHh/whoOHU03O9IF6Va5IwNq9mVfygE+W/s18/YvLLIzykRERAqbcxaYKlWqxKhRo2jSpAnffPMNY8eOJTs7+1JkE5E8slVqhCOmm9kxCi21yInIpWTYHNhrtcW//3P4X/EMtspNcG6aizcr1exoFyTQz84DAxtiGAZvj1tNSnrR+7mwfKly3NPwVtqUa8nSQyv5fO3XZLiK1owyERGRwuacBaYRI0YQGxtL3bp1ufrqq1m0aBEjR468FNlEJI9slRprB7mzOLGLXJLriNlRRKQEMQwDa0Q1/DrcRuDgd7GGVcbr8ZAx6wNcu1eZHe+8RJb2574BMRxNzuL9CWtxutxmR7pgdUJr4rDayXRlku7MwMfqw45ju3GqbU5EROSinLPA9Omnn9Kt2/EZENdffz0ffvgh06ZNK/BgIpJ3nqSDuOO2mh2j0ArzCSVjSXeq+NU2O4qIlFCGTwAA3sxkPMfiyPjtHTJmf4onM8XkZOdWPTqY2/rUZdv+Y3wxZSOeItpqdnn51tzX+DYyXJm8v+pzJmydbHYkERGRIsl2phfee+89kpOTmTZtGqmpJ6duO51OZs+ezfDhwy9JQBG5eNmrp+Pat5bAG942O0qhdLJFLhKINDuOiJRgFv8Q/PuPIHvVFLJXTMa9bx0+bQZjq9IsZw2nwii2dgQDO1Tnpz+3ERbiy9Xtq5sd6aIYhkGA3Z/bGtxIuF8Y+1MPMnXnLAbW7EeIT7DZ8URERIqEM85gatiwISEhIVgsFkJCQnL+i4qK4v3337+UGUVECkROi5xbLXIiYj7DasOn6RX4XzkCIzCUzN8/wr1nldmxzqlb8wq0bxzN9EV7mLNyv9lx8qROmZqE+ZUhLu0Qe1P2Y/t/e/cdX3V1/3H8/b0zO2QDYYW9N7KHylYUBQtqHdXWra2/tk6cdY9aK1WrtlpF60bEAQi4EAQBAdlL9iaE7Nz5+wMIRUVAkpzvvff1fDx4mHtzc+/bcI25n3ve5zhc2lW6R/6g33Q0AABs76grmPr376/+/furX79+at++feX1fr9fbre7RsIBQHXKPHSK3EgqcgDsw5lRXwkj71BgzWw563eQJAX3bJAjo6EtVzNZlqULBzXT3v3lmjBttdJT4tS+SYbpWCelS05HdcxqJ8uy9NcFzyjNm6rrO/3OdCwAAGztmHsw+Xw+Pf300/L5fDrnnHPUtWtX9mACEBU4RQ6AXVkOp9wt+spyOBTM36zSifeobMoTChXbc8Wl0+HQVWe3Ub2sRD0zaak27bT/HlLH4nQ45bAcGtN8pIY0Ok1lgTL9Z/nr2lOWbzoaAAC2dMwB06OPPqqOHTtq+vTpyszM1Icffqh///vfNZENAKrVoYrcPk6RA2BjjrRceXteoOD2lSp563b5ln+qcDhkOtaPxHtd+v15HZTgdelvby1WfmG56UhVokV6UzVPa6LNRVv13Z7lKvWXqthXIl/QZzoaAAC2cswBUzAYVK9evTR79mwNHDhQ9erVUyhkv19qAPyYo1ZtObObmI5hW5UVOU6RA2BjluWQp+0gJY6+T86sPFXM+o/KPnzUlquZ0pK9+sN5HVTuC+pvby1RWUXAdKQq0zytqe7rdZsapNTT66sn6qFv/q5gKGg6FgAAtnHMAVMoFNKSJUv02WefqXfv3lq9erX8fjY6BCKBp8NwxQ+6znQM2yoJlFCRAxAxHCnZij/jJnn7XqpQ0R7J4TQd6SfVz07SNee01bY9JXrmvaUKBKPnjck4V5wkqX9uT53eoK8clkPvrf1IO0v5/wgAAMccMF111VX64x//qNGjR6tevXq66qqr9Ic//KEGogFA9ao8RY6KHIAIYVmWPK0GKHHMg3Ik1FLYV6qyaU8puG+b6WhHaJuXoYuHttDS7/M1YdpqhcNh05GqVLO0Jupdt7t2lu7Wl1vnaF3B9wqEAqqgNgcAiGFHPUXukMGDB2vw4MGVlz/55BM5nfZ8xwzAkco//5cCW5Yq6cInTEexpcy4LE6RAxCRLMeBX+FC+7YpsH2lAu/cKU+XkfJ0GFr5OdP6dair3QVl+nDORmWnxWt4j4amI1W52onZuqvnTUpyJ2r6ps/1xZY5uqXb75XkSTQdDQCAGnfMFUw/xHAJiDT2O9LaLkqpyAGIcM6cpko87wG5GnaU75u3VfreXxTcu8l0rErn9Gus7q1z9PZn6zRvxU7TcapFiidZDsuhJql56prTUUmeRM3a+rV2lOwyHQ0AgBp1wgMmAIgWnCIHIBo4ElIVP+g6xQ28VuGSfSqdeI9CRfYYnDssS5cNb6Xm9VL1wgcrtHpzgelI1aZJrUYa2XS4ygLlen/9FH2+ZbYkyR9k71IAQGw46oDpk08+kST5fHTJAUSnyoocp8gBiALuxt2UeN4Diut7qRzJWQqHw7bYm8ntcui6Ue2VkRqnp95Zop35paYjVat4V5zGdf+jRjQerBV7V+vurx/RtuIdpmMBAFDtjjpg+vvf/y5JGjNmTI2FAYCaREUOQLSx4pLkbtFXkhRYN1elb9+u8q9fVzhQYTRXUrxbN57XXpZl6Yk3F6uwNLrfwEzxJCvBnaAEd7zyUhooKyFTK/au1o6S6KwJAgAg/cwm34mJiRoyZIh27typESNG/OjzkydPrtZgAFDdDp8i18p0FACocq4GHeRu2V/+JVMU2PCt4vpfJledFsbyZKcl6IbR7fXIa9/qqXeW6M9jO8njju69PRum1Ndv212kUDikt9a8r2RPom7sfLVC4ZAcFjtVAACiy1EHTC+88IJWrFih22+/XXfccUdNZgJQReL6X246gq1leg9U5PI4RQ5AFLI88Yrre6lcjU9R+Rcvqmzyg3K3Pl3eHr+S5fIaydQ0N1VXjGitp99bqhc+XKGrzm4jhxX9h1E4LIdu7HyVygLlyi/fp6e+fV4XtBytZmmNTUcDAKDKHPWtk6SkJHXr1k3//Oc/1aZNG0lSIBBQ69atdcopp9RYQACoLocrcntMRwGAauPKba3E0ffJ3XaQgjtWS5bZVUNdW2brV6c21fyVu/TOZ+uMZqlJyZ4kZSdkqiLoU4o3WelxadpeslNbi7ebjgYAQJU46gqmQ4qKinTRRRcpMzNTwWBQO3fu1LPPPqvOnTvXRD4AJ6Fi0YcK7dmg+IHXmo5iS1TkAMQKy+1VXK8LFQ74ZDldChZsk3/JVHm7/0qWN7HG8ww5pb52F5Tp47mblFkrXqd2yq3xDKbUSczRjZ2vliQ9s/hFbS7aont73Sqn5ZQVA6u5AADR65gDpocffliPPfaYevToIUmaM2eOHnroIb355pvVHg7AyQkV7FBwZ+y8O3yiDp0iR0UOQKywXB5JUnDHGvlXfanApsWK63OJXI061WwOy9IFg5ppb2G5JkxbpYwUr9o3yazRDHZwUetfaWfJboUlPbHwWQ1s0E/ts9qYjgUAwC9yzN0Fi4uLK4dLktSzZ0+VlZVVaygAqAlU5ADEKk/L/koYeaesuGSVTXtSZTOeVai8qEYzOB0OXXV2G9XPTtIzk5Zp086afXw7SHInqkmtRir2FSsQDsjlcKnUX6otRdtMRwMA4IQdc8DkcDi0devWystbtmyR0xndJ34AiA2HK3IMmADEHmdWIyWcc5c8Xc5R4PtvVDrxHoWDgRrNEOdx6fejOyjB69Lf3lqs/MLyGn18u0iLq6U/d7lOrTNaaOrGT/Xo/Ke0v6LQdCwAAE7IMSty1157rcaMGaOePXtKkr766ivddddd1R4MAKobFTkAsc5yuuTtcrZceV0U2rdNltOlcMCnQNE+HceviVUiLdmrG8/roAcmLNDf3lqiW3/dWfHemnlsOzm0/9LghqeqYUp9pXpT9NrKd9S0Vp5Oqc3epwAA+zvmCqaBAwfq5ZdfVqdOndSxY0e98sorGjJkSE1kA4BqVUxFDgAkSc70enI3OXBKsG/hJG157vfyr/pS4XC4Rh6/XnaSrj2nnbbvLdEz7y1VIBiqkce1o0R3gjpnt1dF0KdtxTuUX16gUDikbcU7TEcDAOBnHdfbQ40bN1bjxo2rOwuAKubpOExq1d90DNsqDZTInbtO+4OtTUcBANtwN+8rx971Kv/8X3Kum6u4fr+RIymj2h+3TV66LhrSQi99vFITpq3SJUNbxvSpal6nR//X5WqFw2HN27FQE1a8pT92uUZ5qQ1NRwMA4CcdcwUTgMjlrFVXzpympmPYVlZc9oGKXHwL01EAwDYctWqrzkX3ytvr1wruWKOSt26Xb/nMGlnN1K9DXZ3Rs6G+WLxdH329sdofz+4clkNOh1PtM9toZNPhaphSX59t/kpfbZtbY6vLAAA4XgyYgCjm37BAviVTTcewrRIqcgDwkyzLIU/bgUo87z45s5souGVZja0mOqdfY3VvnaN3Pl+vuct31shj2l2CO14DG/SXJUtL967Q8r2rZVmW9pUXmI4GAEClYw6YbrrppprIAaAaBDZ8K9/SaaZj2NahilxBYK/pKABgS47kLMUP/5PiTr1CkhTYtES+JVMVDlXfHkkOy9Jlw1upeb1U/evD5Vq9uaDaHivSWJalaztcrota/UqbirbozjkPacHORaZjAQAg6Tj2YFq5cqXC4XBMd+ABRKfKitw5VOQA4Ggsy5LcXklSYONC+Vd8Jv/6eYrrf5mcabnV8phul0PXjWqv+19ZoKfeWaIbRrdXUrxbobAUDoUVCocVDkuh8MGPQzp4XVihg9cfuN3/XB/Swc//z9eHfnA/ldcd+NrK2//P7Q7d5n8z/Pj+D34c+sFtfur+Q0c+1g8z/NT9h8NSUD65ajXVm5P2663E99WjbaZGduhVLX8fAAAcj2MOmLKysnTGGWeoQ4cOSkxMrLx+3Lhx1RoMAKrb4YpcbUnZpuMAgO15+1wiZ52WqvhqgkrfuUuezmfJ03G4LMdxnRtzQpLi3brxvPa67+UFenDCwiq//5PlsCxZluRwHPynZf3gOksOSwf/acnhOPxx5W104PoD1x15G4fDkvPgP3/6/hPlsHrIUdvSCi3S1C0LVb43Q+cNaCang10wAAA175i/DXTq1EmdOnWqiSwAUKNK/MUHK3KcIgcAx8OyLLmb9pAzt7Uqvpog3/x3FdqzQfGDb6iWx8tOS9Cdl3TVmi37ZTn+d8hycHjjOPBPh2Ud+Fj/O9w5PIyp/PgnBkCHhzs/vs2RX3fkMMhOynzNNOHTJZq2cL3ml32iG3qOVYP0TNOxAAAx5pgDpuuuu07l5eXauHGjmjVrJp/Pp7i4uJrIBgDVioocAPwyjvgUxQ+8Rv4N3WV5EiRJ4fJiye2V5XRX6WNl1opXZq34Kr3PaBPv8eh3Q7oqI2uupu+ZpcffmaurBvVUq0bppqMBAGLIMdfPLl68WAMHDtSVV16pXbt2qX///lq40H7LlAH8mKtRJ3naDjYdw7YOV+TY5BsAfgl3oy5y1W0lSSr77HmVvnuXgrvWGU4Vu87t3F1/bv9HJYTT9eTCf2n8l5MUCodNxwIAxIhjDpgefvhhvfTSS6pVq5Zq166tRx55RPfff39NZANwktyNusjTfojpGLbFKXIAUHU8rU9X2Feu0kn3qXzOfxUOVJiOFJPyaqfr1l93VFpighavLtBT7yzR3uIi07EAADHgmAOm8vJyNW3atPJy//79FQwGqzUUgKoRLNim4M61pmPYVmVFLp6KHACcLFeD9ko87365Ww6Q/7upKnn7DgW2rTAdKyalJMTr/kFX61ftT9Xysnm6a9bjWrFlh+lYAIAod8wBk8vl0v79+ys3M1y/fn21hwJQNXyLPlTZjGdMx7CtkkDxwYrcHtNRACAqWJ54xfW9RPFn3iyFwwpuW2k6UsxyOBwa1K2Bft2ztxxFdfTEf1do0vxFCoVCpqMBAKLUMQdMV199tX79619r+/bt+r//+z+df/75uvrqq2siGwBUq0MVuf1U5ACgSrnqtlLieffJ02mEJMm34jMFNi8xnCo29W3aWvef8Rs1ahzW1P2v6ZFp76nCTxsBAFD1jnmK3KmnnqrGjRvrq6++UigU0jXXXHNEZQ4AIlVWXI7K5g1VI06RA4AqZ7m8kqRwKCT/8k8V2rtRruZ9FNfzfFneRMPpYktygkc3jeyvp78s1OIFCbp7zzT9+rQ2alO3geloAIAocswVTJIUCAQUCoXkcrnkdlft0bMAYAoVOQCofpbDoYSzb5en45kKrJmtkjdvk3/DAtOxYo7L6dQNA0bqD6M6qzBtvv6x8BV9s2Kn6VgAgChyzAHTO++8o4suukjfffedFixYoAsvvFBTp06tiWwAUK2oyAFAzbBcHnlPGa2Ec+6UlZCi8mlPqeLbD0zHikntmmTqT92vUFZhDz3z4UI9PON1Vfj9pmMBAKLAMStyL730kt577z1lZ2dLkrZt26Yrr7xSQ4Zw9Dlgd45adaQAvzQezaGKXN65VOQAoCY4Mxsp4Zy75Fv0kdxNTpEkhcqLZHmTKg+UQfXLy8zRHWOy9PdPJ2tteJEeejtb15/RS+kpcaajAQAi2DFXMLnd7srhkiTVrVuXmhwQIbwdz1T8wGtMx7AtKnIAUPMsh0vezmfJkZKtcMCnskn3q3za3xUq2Wc6WkxxOR36v4Fna3TO5dqx3aE7p/9TU5ZTXQQA/HJHHTAtW7ZMy5YtU4sWLXTvvfdq1apVWrt2rR555BF17ty5JjMCQLU4VJEr8FORAwAjHC65Ww1QYMtSlbx1m/wrv1A4HDadKqac1q6Z/u+CVnIkFOrdOUs1adZ6BUKcMgcAOHFHrchdf/31R1z+7LPPKj+2LEvjxo2rtlAAqkbZp88ruH2lki543HQUW6IiBwBmWQ6HPO2HytWwo8q/eFHlX/xbznVzFdfvN3IkZ5qOFzOa1c7RAwP+rFc/WasP183QrOIS3dbnCqUlJZiOBgCIIEcdMM2cObMmcwCoLuxpcVTF/gMVuQJ/XUlZpuMAQMxypNZW/Jk3y7/8U1XMe0vB3esZMNWwpLg4XXFmG/177hbN37RK97+8UJee2URtG9QxHQ0AECGOucn37t27NXHiRBUUFBxx/U033VRdmQCgRpQcqsgF2pqOAgAxz7Ic8rQ5Xa7G3WTFJUuSKhZ9JHdeZzlSaxtOFxssy9LlPYbqtIa99NSUz/T0qg/Ud/sIjT2lF5uwAwCO6ZibfF999dVasmSJwuHwEX8AINJlH6rIxTc3HQUAcJAjPkWWZSlUWiDfog9U8vYdqlg4SeGKEtPRYkZenRTdMqq/avmb6pPPS/T3D7/S/jK+/wCAn3fMFUx+v1/jx4+viSwAUKMOnyJHRQ4A7MaRUEuJ592viq8myDd/onyLP5a71QB52g2RIzHNdLyol52SqvuGXa7Jqes0tehl3Tn9G93c8wrVzUw0HQ0AYFPHXMHUpk0brV69uiayAECNOlyR4xQ5ALAjR2Ka4gdfr4Rz75GrQUf5v5sq/8ovJIkV9TXAYVk6u3dTjWw4UuFtzfWXV7/Smwu/NB0LAGBTx1zB1LlzZ40cOVJZWVlyuQ7ffMaMGdUaDMDJiz/1d6Yj2FplRe5cKnIAYGfOzIaKP/0qhbqNkuU9cLKZ79v3Fdq9QZ4Ow+Ws3cxwwug2uFVndatXoYc+naDP8teoaFqiLj6to9yuY75XDQCIIcccMI0fP16PPfaYGjRoUBN5AKDGFFORA4CI4kg5/LPacsUpsGO1Ahu/lbN2c3k6DJOzQQdZFkOP6pCW7NW9wy7Wf76Yq68W7tPK0hd1Za/haprNKXMAgAOOOWBKTU3V8OHDayILgCpW8e1khfK3KP70q01HsaXSQLHcueu0n1PkACDieNoPkbvVAPlXfSHfkikqm/qkHGl1lXD2HbI88abjRSWv260rTu+jxjnLNXH7DP1tygxd2WeY2jXOMB0NAGADxxwwDRgwQA8//LAGDx4sj8dTeX2bNm2qNRiAkxcq2K7grvWmY9hWdlxtlc0bqkZU5AAgIllurzxtB8nd+lQF1s1TcOc6WZ54hcNhBdZ8JVejLgybqsHAtq2Vl/V7vbRpg5768l0135SiP/QdLZfTaToaAMCgYw6YJk+eLEmaOnVq5XWWZbEHE4CIV1mRC1CRA4BIZjlccjfrJXezXpKk0J4NKv/sBcnzmjytT5O77SA5ElINp4wuTXJydPtFGXrgsyVas2ub/vbWYl12ZkulJyWYjgYAMOSYA6aZM2fWRA4AqHGVFTk/FTkAiCbOrDwljLxTvsUfybfoQ/m+myJ38z7ytB8mR2qO6XhRI87j0j2DfqvPF2/Rf+fM0x2zJumiZhepR5OmpqMBAAw45oDpxRdf/Mnrf/Ob31R5GACoSZUVuVFU5AAg2jizGyt+0HUKFeyQb8kU+VfNkiMtV57UQQqHQrIcbAZeFSzL0oCO9ZVQq1wTlmzQvyZ+r519/bpseFfT0QAANeyYA6bVq1dXfuzz+bRgwQJ17969WkMBQE3gFDkAiH6OWrUV1+9SebqOlOU+sB9Txdw3FNq7SZ6OZ8iZ20aWZRlOGflOadRMbWvfoOcCizR132ta9N9vdFP/CxTvPebLDQBAlDjmT/wHH3zwiMv5+fm66aabqi0QgKrj6Xim5Cs1HcO2qMgBQOxwJNQ6/HFKtgLr5qrso8fkyGggT4fhcjXuJsvBJtUnIyHOrRtGdtHTX23V4kUO3b3pK40dXF+dGjQ2HQ0AUANOeG1wenq6tm7dWh1ZAFQxZ1pdOXPYB+FoKityCVTkACCWeNqcrsTzH1Vc/8uloF/lM59VyZu3KhyoMB0t4jkcDl3Xd6T+cskQlaYv0vMr/6XPl2w0HQsAUANOaA+mcDispUuXKiMjo1pDAaga/u/nK1ycL0+7waaj2FJRoEiu3DUqoCIHADHHcrrlbtFXrua9Fdi4SKE9G2W5vAqHQ/Iv/UTuZr1lxSWZjhmx2jXJ1M2BC/XCzK/1n4VrNXfHfF034AwleOJMRwMAVJNjrmBavXp15Z81a9aoTp06euyxx2oiG4CTFPh+gXzLppuOYVsllRW5faajAAAMsSyH3I06y9v1HElSaOc6Vcz5r4pf+z+Vz35VoaI9hhNGrnrpmbrj3OHq0d2lja65+svEj7S7oMx0LABANTnhPZgAIFrkVJ4i18x0FACATThrN1PC6PvlW/KR/Mtmyr9shlxNusvT6Uw503JNx4s4TodDV5zaX58sS9d7i/N19+Q3NLhDS53dvofpaACAKnbUAdOtt9561C+yLEsPPPBAtQQCgJpy6BS5An+upEzTcQAANuFMz1X8gN8p1PVc+b6bJv/Kz+XKbS1nWq7CAZ/kdHPy3Aka1Kad2tYt1kNfz9ZHK/fJn5+lkX0byeVkY3UAiBZHHTA1a/bjd/T37dun//znP8rN5d0bAJHvUEWuwN/edBQAgA05kjIU1/N8eTufJbm8kqSKryYomL9Fno7D5WrYWZbjhM/MiVl10pL04Ok36r8z1mjKsoWaU/ae/q/Hb5Sblm46GgCgChx1wHTZZZcdcXn27Nm6+eabNWLECI0bN67agwFAdaMiBwA4HpY3sfJjZ05TBbavVPkn42Wl1pan/VC5m/WS5fIYTBg5EjxxunxYO8V/s1ezdq7So/9dot+d0UZtGnLYBgBEumPuwRQIBPT4449r4sSJuvvuuzV06NCayAWgCrjyusiZ3dh0DNsq9hdRkQMAnBB3y35yNe+jwIb58i36SBVfviTft5OVOOYhWU636XgR44JuA9RnZ2f9Y8cC/WP5U+q4uZd+13sI1UMAiGA/O2DauHGjbrzxRiUkJGjixImqU6dOTeUCUAXceV1NR7C14kDJgYpcgIocAOD4WQ6H3I1PkSuvm4LbViiUv0WW061wMCDft5PlbjVAjsQ00zFtr0FOim45v5se/XKl5i6oUMmub3Tx4JbKSEoxHQ0A8AsctTT+9ttv67zzztOgQYM0YcIEhktABAru26rgrnWmY9hWZUUunoocAODEWZYlV25redoNliQFd66V79v3VfLfP6n8838puG+b4YT2l5aYpPuHXKUxvTprtT7X3V/+XRt27DcdCwDwCxx1BdO4cePkcDj03HPP6fnnn6+8PhwOy7IsLVy4sEYCAvjlfN9OVnDX90oa+7DpKLZUWZELUJEDAJw8V92WShzziHzfTZF/5Zfyr/pSroad5OkyUs7Mhqbj2ZZlWRrcrb68tYbp3TlL9cArC3XaAI/GduttOhoA4AQcdcA0Y8aMmswBADWuJFjCKXIAgCrlSMlSXO+L5Ol8tvzLZsi3bLpcRXvkzGyocEWJ5ImXZXHy3E/p36ytOtVtrsenTdaXRXO14+NyXTNwgDxup+loAIDjcNQBU25ubk3mAIAaV1mRG01FDgBQtRzxKfJ2PUeeDsOlg5t/l3/xokIF2+XpMEyuJj1kOY953k7MSUn06I6zRur5L1P0zWLpjqJ3dGm/nmpVu77paACAY+DtEwAx6/ApcntNRwEARCnL7ZXlOPArtyuvq2RZKv/sBZW8fpN8S6Yo7CsznNB+XE6nrh4wSFePaqXiWks0/sv3tGDVbtOxAADHwIAJQMw6XJHLNx0FABAD3E17KGHUXxQ/7P/kSMlWxdevq+St2xUOBU1Hs6Vuzerqxo7XKrusq56Z/rkenDlBFX6/6VgAgKNgwAREMUetunJm55mOYVuVFbkEKnIAgJphWZZc9dsrYcQtShh5p7zdRslyOBX2V6h89qsK7d9pOqKtNM2uo9su6K7GLXzaVLZOj725QPmF5aZjAQB+AsVvIIp5O59lOoKtHa7IcYocAKDmObMby5ndWJIU3LVO/uWfyr9sulx5XeXpcIacWY3MBrQJt8uh2wZeoC++26jX1q7UHV8+pnObnKXTW3JIBwDYCQMmADGrJFAsd+467ecUOQCAYa7c1kq84DH5l34i3/KZCqz/Rs66reQ95bzKIVSs69euodLSLT2/eIH+O+17Fe2N05k9m8jl4JQ5ALADKnJAFCub8ayKX7/ZdAzbyomvQ0UOAGAbjoRa8p5ynpIu+Ku83ccoVLBdYf+BOliotIC9miS1y22gh0//s7o0zNOUXRN1+9RnVFTqMx0LACAGTED0s0wHsC9OkQMA2JHliZenwzAlnv+YnHVbSZLKP31eJW/cLN/S6QoHKgwnNCve69aVI9qqc05bFWxL1b3/+UbzN6w3HQsAYh4DJgAx61BFjlPkAAB2ZDldsqwD7xS525wuK6GWKmZPUMlrf1LFgkkKlxcbTmiOw+HQFb3O0E3DzpKv1lr9e+0/9f787xQOh01HA4CYxYAJQMyiIgcAiBTuRp2VePY4xZ91mxzZjeVbMFEl796lcChkOppRTeqm6rYzRiqztJPem75Lj388VYVlZaZjAUBMYsAEIGYV+ajIAQAii6t2cyUMvVEJo++Xt9eFshwOhX2l8i3+SOFQwHQ8I3JSUnX3iDEa0idL6z2f6p6PX9X2vSWmYwFAzGHABCBmlQQPnSK3z3QUAABOiDM9V+5GnSVJ/vXfqGLumyqddL+CBdsMJzPDYVka06e9RtYdK9/WJrr37al6c+EXpmMBQExhwAREsfjTr1LSmIdNx7CtnLiDFbnEpqajAADwi3la9lfcwGsVLtyt0nfukm/pJwqHY7M6N7h1J91zSU8l1NusT7d/qgmfrFAgGJvfCwCoaQyYAMQsTpEDAEQLd+NuSjjvPjlzW6ti9qsq++hxhYOxWZlLT4nT/YOv1ineEZq5eINunvKU1u/eaToWAEQ9BkxAFKtYOEllM/9pOoZtHarIFVCRAwBEAUdCLcUP+YO8fS+VI72eLKdL4XA4Jk9Wi3N79JuBnTVyUJbK3Lv08Ovf6OUZi7WniL2ZAKC6uEwHAFB9Qvu2Kbhno+kYtlVZkTuPihwAIDpYliVPqwGVlwNrZiuw8Vt5+14iR1yyuWCGnNWhqzrtbaJp/u2aXfiBvv78ffVPGKth3RsqJdFjOh4ARBUGTABi1uGKXK6kTNNxAACocmFfqQIbv1VwxxrF9f+NXA06mo5U4+pnpOnyM9LUdpP0+dL1mvbNRn229yN1yzxF53XvouQEBk0AUBUYMAGIWcWBooOnyHUwHQUAgGrhaTtIzjotVP7pcyqb8je5Ww6Qt+dYWe4409FqXPcGrdW9QWst7bBRz6/4UnNWf69vFpeqT8dMnd29tZLi3aYjAkBEYw8mADErJ/5ARa5hAhU5AED0cmY0UMI5d8ndfpj8Kz9X2YxnTUcyqm1uQz1y6u2669yzlNNim77yv66bnv9UE79Yr5Jyv+l4ABCxWMEEIGYdrsjVFxU5AEA0s5xuxfUYI1fDjpWrl0KlBbK8SbKcsfeSwOv0qF6WR9cPOEOzNtbT1uJMfbx5iqavS9PgZj00qGt9JcTF3vcFAE4GPzWBKObpfJbkLzcdw7YOV+Q6mo4CAECNcNVpIUkKh0Mq+2S8FKhQ3KlXyJle33AyMzLi03V2y1Plb+bXw/NmyLfPr0mz1mvad0s1pH1bDepaX/FeXjIBwPGgIgdEMWdarpzZTUzHsK3a8XWpyAEAYpJlOeTteIbCpftV+u498i3+WOFQyHQsY9xOt27rcYPuGHqBzj83RWrxpd5f/I1uema2Ppi9QWUVAdMRAcD2GMcDUcy//huFSwvkaTvIdBRbOrIil2E6DgAANcrVsJMSRjdRxZf/UcXcNxTYtEhx/X8rR0qW6WhGOCyHHJZD/Zp0kCu+Qg1attUr86fp/fXLNfWbVhrWvZFO65yrOA8voQDgp7CCCYhigfXfyL9shukYtnW4IpdvOgoAAEY44lMUN+g6xQ34rYJ7NiqwaZHpSMZ5nR6dWr+PmtStpVYtPGrWzFJenVS9880C3fTsbE2Zu0kV/qDpmABgO4zfAcSsyorceVTkAACxy7IsuZv3kTO3jayEVEmSf81sOXPbyHHwcqwa02KkgqGg9rUv0D1zXldKcRu9+WlAU+Zt0vDuDTSgU648bqfpmABgCwyYAMSsIl8hFTkAAA5yJKZJkkJlhSr/8iVZLq+8/S6Vu1EXw8nMcjqcyohL1yWtx6h5elPNb7FeH6/7XK9/UayP523S8B4NNaBjXbldDJoAxDYqcgBiVkmgWO7cdSoM7DMdBQAA23DEpyhh5F2yEtNVPu0plX32vMK+UtOxjLIsS11rd1KKJ1nxyT6lZPj1f6M6Ky2rXP+duUK3/PNrzVy4Rf5A7G6UDgCsYAIQsyorcr/ipD0AAP6XMz1XCSPvkG/hJPkWfaCSbSsVP/h6OTMbmY5mXM+63dS9TheFw2H5ts1VywaZCq7rqgnTVuujrzfqzJ6N1Kd9HbmcvJcPILYwYAKimKtxN4VrNzcdw7aK/FTkAAA4GsvpkrfbKLkadFDF12/ISkgzHck2HJZDsqQr2l0iy7KU1ClJTy14ScHNrfXy1FX6cM5GjejdSL3a1mbQBCBm8NMOiGLuxt3kaTvQdAzbOlSR2++nIgcAwNE4c5oq4ezb5UhIVbiiRKUfPabgno2mY9lCg5R6qp+cq4KK/ZLTp2vP6qTfnFNfCakVeunjlbrtua/15ZJtCoaozgGIfgyYgCgWzN+q4K71pmPYVmVFLoGKHAAAxyNUtFuh/C0qnXivKha+r3AoaDqSLeSlNtC47n9UdkKmllV8JV/DWbpuVBslxLv04kcrdftzc/XVd9sZNAGIagyYgCjmWzhJ5Z89bzqGbR2uyOWbjgIAQERwZjZS4uj75MrrIt/8d1X6/gMK7d9hOpYtOKwDL63ObzFKl7Y+Xx2aZCql3QINH+ZSnMepf324QuOen6s5S3coFAobTgsAVY8BE4CYVRwooiIHAMAJsuKSFD/wGsWddpVCBdtV8s5dCpUWmI5lG6neZLVIb6qSQKkclqXmdTN000VtNXJYktwup57/YLnu+Ndcfb2cQROA6MIm3wBiVu34XE6RAwDgF3I37SFnnRYKbFwkR0IthcNhhSuK5YhLNh3NFlI8yfp9pyslSVM3ztS0vdM0buyftHlTSO9/tUHPvb9cH8zeqLN6N1LXltlyWJbhxABwcljBBCBmFR+syO2nIgcAwC/iSEyTp/WpkqTA6lkqeeMW+dfNNZzKPizLkmVZOr1Bf13d4TLVTszS0tAMdR6wR1ed3UbhcFjPTlqmu/49T/NX7lIozIomAJGLFUwAYtbhilwn01EAAIh4ztrN5EjNUfmMZ7Rzx3eyuoyVFZdkOpYtuB0utclooVA4pHhXvOKcXnVrkq1wra0K7q2vybM36+n3lqp+dpLO7pOnTs0yZbGiCUCEYQUTEMUcaXXlyMozHcO2KitynCIHAMBJc6TWVsJZt8vT9VyVrJijkrfHKbBlqelYtuKwHBrb4hwNyxuoVfvW6uUVr8uTuUv3Xt5Vl5/RUhX+oMa/+53ufWm+Fq3ZozArmgBEEFYwAVHM22Wk6Qi2Vlx5ilx9SRmm4wAAEPEsh1Pezmcpq30PbX/3b6qY+4acdVvLcvC+9g+1SGuq6zv+Ts3TmmjGpi+0MrBGd112kRas2KfJs7/X399Zoka1kzWyb57aNc5gRRMA22PABCBmUZEDAKB6eOs0UcK5dytcVijL4VCoYLvCvlI5s1k1fIhlWWqZ3kySlOCKV6o3RfHuOMXn7NStl7TVktXF+mD2Bv3trSVqXDdFI/vkqU1eOoMmALbFgAmIYmXT/6FQ/lYl/uoB01FsqXYcp8gBAFBdLJdHVnKmJKli3tsKbPxWnk5nytP5LFkOXob8r9653dU7t7uKfMV6ZcWb6pPbQ6M7nKXurbM0Z9kufTB7g/765mI1zU3V2X3z1LphGoMmALbDWlUAMauosiLHKXIAAFSnuAGXy9W0p3wL31fpe39RcN9W05FsKdmTpFu6/UFDG56uFfmr9cD8v6pVM7cevKKnLhrcXHsLy/X464v08KsLtWLjPtNxAeAIDJgAxKzKilyAX9AAAKhOlidB8af+TnGDrlO4OF+l794l3/KZpmPZUu3EbCV5EuV2uFU7IUvp8elavX+1mjZz6KEre+jCQc21q6BMj/73Wz3y2kKt2sTvMQDsgbWpAGJWnUOnyI2hIgcAQE1w53WVM6epyr94UeKEtJ/VtFaemtbKUzgc1ntrP1KcK05/7HKN+nWqrb7t6+jzRdv00dcb9fBr36pVwzSN7JunZvVqmY4NIIYxYAIQs4o4RQ4AgBrnSKil+CF/qLxcseA9OZKz5GrWi32FfoJlWbqx81Uq8ZdpX3mBHp7/d13QYpQGdWujfh3r6rNvt+rjrzfqwQkL1SYvXSP75KlJbqrp2ABikG0HTCtXrtTzzz+v+Ph4DRs2TL179zYdCUCU4RQ5AADMODRICoeCCm5bId/29+TasFDefpfKEZdsOJ39JLgTlOBO0N6yfWqSmqfcpDraUrRNu8r2aHC3dhrQMVczv92ij7/epPtfWaB2jTM0sm+e8uqkmI4OIIbYdsBUWlqqm2++WS6XS48++igDJuAXiB94rekItkZFDgAAsyyHU/Fn3CzfkinyzX9XwbduV1y/y+Rq2NF0NFvKiE/T79pdJEl6dcXbWrJnmVqlN5fT6dCw7g11aqdczViwRVPmbtJf/jNfHZpk6Oy+eWpUm0ETgOpnmwHTG2+8oQ8++KDy8l//+lcVFxfr1ltv1cUXX2wwGYBoVejfT0UOAADDLIdD3o7D5arfTuWfPqeyqX+Tt88l8rQ+1XQ0Wzu/5bk6vbSf3A6X7p/3V3XN7qgzGg/WGT0b6bTO9TR9wRZNm7dJ9740X52aZersPnlqkMPqMADVxzYDpjFjxmjMmDGVl7/77js1btxYr7/+ui677DINHz7cYDogMlXMn6hQ8R7FD/id6Si2dKgiV+jvbDoKAAAxz5lRXwnn3Cnfog/lyusiSQr7y2W54wwnsyeH5VDtxGz5gj51yGyrvNSGKvWXatbWuRpQv7dG9Gqk0zvX0/T5mzX1m8369sVv1KV5ls7uk6d62Umm4wOIQrYZMP1QeXm5br/9dqWnp6t///6m4wARKbRvq0IF203HsC0qcgAA2IvldMvbZaQkKVxerJJ37pS7aQ95up4jy+k2G86mPE6PRjY98Gb8nG3f6P31U9Qms6Uy4tIU7/XqrD55Gti1nqZ9s1mfzN+sBat3q2vLbJ3du5Fysxg0Aag61T5gKi4u1tixY/Xss8+qXr16kqTJkyfrmWeekd/v16WXXqoLL7zwR1/XrVs3devWrbrjAYhhh06R2+9vKCnddBwAAPC/nC656reTb/FHCmz+TnGnXiFnRn3TqWytZ91ualIrT9kJmXr+u5dVHqjQdR1/q4Q4t0b2bayBXetr2jeb9Mn8LVqwcpe6tcrWWb3zVDcz0XR0AFGgWgdMixcv1rhx47Rhw4bK63bu3KknnnhC7777rjwej8aOHavu3buradOmVf74GRm/bCKflUU3GSfHLs+hnV6XfC6HbfLYzg6/3Lnr5Pf0tN33yG55EHl4DuFk8RzCyTr551CyNOoGla7prd0fPq3Sifcovf9YpfY4S5bDWSUZo1GWkhUOh9WzUSdVBH3KzErSW0s/1OlNeisvK11XNkjX2CGt9N7n6/TBrPX6ZuUuDehcT9ed11Eet72+r/wcwsniOVSzqnXA9Oabb+quu+7STTfdVHnd7Nmz1aNHD9WqVUuSNGTIEE2ZMkXXXXddlT/+3r3FCoXCJ/Q1WVnJ2r27qMqzIHbY6TlUURFQKBCyTR67SQ5kqGzeUGXm1bPV98hOzyFEJp5DOFk8h3CyqvQ5VKu54kb9RRVf/kf5n05QeUojOXOq/s3paNM2uZ0kafH3azRp5TQlhpPVObu9QgrL6/Ro+Cn11adtjt6cuVafLtiifu3qqGFt+7wY5+cQThbPoerhcFhHXczjqM4Hvv/++9W1a9cjrtu1a5eysrIqL2dnZ2vnzp3VGQMAftLhitw+01EAAMDPcMQlK27gtUo45y45c5oqHA4rsGmxwuETezM5FtVLrqu7e9ykbrU7acbmL3TPnEdU7C+RJKUkeNSlRdYx7gEAjk+Nb/L9U/8TsCyrpmMAMcHT5RwpUGE6hm0VBQrlzl2n/f4upqMAAIBjsCxLzqw8SVJw4yKVTXtSzgYdFNfvN3Ik1DIbzubS4mpJkpqnNZU/6FeSO1HTN32uRikNJLHRN4CqUa0rmH5KTk6O9uzZU3l5165dys7OrukYQExwpufKmd3YdAzbqhNXT2XzhqpBAt8jAAAiibNhB3l7XqDg1uUqfWuc/N/PNx0pIjRObagRTYaqIujTZ5u/0qLd3x34hJs3JAGcvBofMPXq1Utz5sxRfn6+ysrKNG3aNPXr16+mYwAxwb9urnzLZpiOYVuVFbkAFTkAACKJZTnkaTdYCefeIys5U+WfjFfZp88p7C83HS0ieJ0e3dHjTzojb7A2l61XXPvPtadit+lYACJcjVfkcnJydOONN+riiy+W3+/X6NGj1b59+5qOAcSEwLp5Cu3fKU+b001HsaViKnIAAEQ0Z1pdJYwcJ9/CyQpsXiI5avzlTcTyOj2SpFR3mgK7Giq+VYLhRAAiXY38BJ45c+YRl0eMGKERI0bUxEMDwFHViT9YkRtLRQ4AgEhlOVzydj1Hns5nyXI4FczfKv+qL+TtNkqWy2M6nu2luNIU2Nxcu8p3KLPUqewENv0G8MvUeEUOAOyCU+QAAIgelsMpSQpuWSr/d1NV+u7dCu7eYDZUpHAG9N7mt/Tp5q9MJwEQwRgwAYhZhytyDJgAAIgWnvZDFD/8Twr7y1T63l9UsWCSwqGg6Vi2ZcmSgm79quGvdW6zM03HARDBGDABiFmVFTlOkQMAIKq46rVV4uj75GrSTb4FE1U25QmFw2HTsWytbkKu5u1YoPfWfmQ6CoAIxS54QBRzNTlF4fJi0zFs63BFrqGkdNNxAABAFbK8iYo/7Sr5c9tILq8syzIdyfZ2lOzS5qKtCoaCch6sHALA8WLABEQxd5PupiPYWtHBilyhv6vpKAAAoJq4W/St/Ni/+iu5GneV5fIaTGRfI5sMl8NyqCJYwYAJwAmjIgdEsWD+FgV3rTcdw7bqVlbk8kxHAQAA1Sy4d5PKP3tBZVP/rnDAZzqOLTkdTi3avVS3fXWf9pTlm44DIMIwYAKimG/+RJV/8W/TMWyLU+QAAIgdzowGihtwuYJbl6ts6pMMmY4iL7WBumR3lNPipSKAE8NPDQAxq6jyFLkC01EAAEANcDfvo7j+lx0YMk1jJdP/OrQHei1vqi5sNVoFFYXaV15gNBOAyMKACUDMoiIHAEDscbfoe2DItGWZKmZPMB3HvJ/Y+7zIV6y/LXxGMzZ9UfN5AEQsNvkGELMK/fs5RQ4AgBjkbtFXcrrlzGlqOootJXuSdGX7S9U4taHpKAAiCCuYAMSsIv+hU+QKTEcBAAA1zN20hxzJmQr7SlUx902Fg37TkWyldUYLLd27UtM2fmo6CoAIwYAJiGKOtLpyZFL/OhoqcgAAILB1uXyLP1LZJ+MZMv3Aqvy1WrRrqULhkOkoACIAFTkginm7jTIdwdaKqMgBABDz3HldFe5ziSpm/Udln4xX/KDrZDndpmPZwqhmI+RxuhUOh39yryYA+F+sYAIQs4oCRZwiBwAA5Gl9qrx9LlZw02KVT39a4WDAdCRbiHN59d2e5Ro3+wHtrygyHQeAzTFgAqJY2bS/q+TtcaZj2BYVOQAAcIin9Wny9r5IgY3fyr98puk4tlEnsbaapDZSIER9EMDPoyIHRD3WMx8NFTkAAPC/PG1OlyMlW87c1qaj1Jhj/aaYnZCp37a7SDtKdqrIV6xkT1KN5AIQeVjBBCBmUZEDAAA/5KrfTpbDqeDOtSr79HmFQ9TlCn1Fun/eE5qx6QvTUQDYGAMmADGLihwAADia4N5NCqz5SuUzno35IVOKJ1mXth6r0xv0Mx0FgI0xYAIQsw5X5ApMRwEAADbjaX2avD3PV+D7+QyZJHXJ6aiNhZs1a+vXpqMAsCkGTABiVlGgUO7cdSoMFJiOAgAAbMjTboi8PQ4OmWb+U+FQ0HQko+btWKgvts5RKBwyHQWADbHJNxDF4gffYDqCrdWNr6+yeUNV/3wqcgAA4Kd52g+RFFLF3LcU3LVOrtrNTUcy5lctRireGSeLQ2QA/ARWMAGIWYcrcvtMRwEAADbmaT9MiefdXzlcCkfhCp5w+Ni3SXInakX+at0791GV+kurPxSAiMKACYhiFd+8o/LP/2U6hm1VVuTYgwkAAByDo1YdSVLF/Ikq//S5qKnLWSe4GCktrpbSvLVU4i+rnkAAIhYDJiCKhfK3KLhng+kYtlVZkeMUOQAAcLxcbgXWfq3yz15QOBR9K5mOJTepjm7odIWcDofKAuWm4wCwEQZMAGLWfh8VOQAAcGK8Hc+Up9toBdbOUfnnsTlkKqjYr3vmPKLPNs8yHQWAjbDJN4CYdbgid4rpKAAAIIJ4O50phUPyzX9X5bIU1/9yWY7Yee++ljdVo5qNUJuMVqajALCR2PkpCAA/kHuwItcgoZHpKAAAIMJ4O58lT9dzFdyxSuHyItNxaly/er20r6JAC3YuMh0FgE2wgglAzCqsPEWukaQ003EAAECE8XY+S562A2V5EhT2V0gutywrdt7Dn7pxpvLLC9Q5u4OsE90tHEDUYcAERDFPt1FS0G86hm1RkQMAACfL8iQoHPSr9MNH5EyrK2+/30TkkCms8Al/zYUtRyvBFc9wCYAkKnJAVHOm15MzixPSjia38hS5RqajAACASOZwyVWvjfyrvlTFly8pHI6kjb9/+XColjdV6wo26LH541UR9FVhJgCRiBVMQBTzr/1aYV+pPK1PMx3FlqjIAQCAqmBZljxdzpHCYfm+nSzJkrfvJRG5kulEeV0eBcNB7a/Yr+yELNNxABjEgAmIYoF1cxUq3suA6SioyAEAgKpiWZY8Xc89MGRa9IEODJkujvohU+PURrqp6w0qCZTKF/TL43SbjgTAkOj+aQcAP6MuFTkAAFCFLMuSp9soeTqeoXCgXL9gW6OItK+iQHfMflBfbZtrOgoAg1jBBCBmHarIFQbyREUOAABUhQNDptGSwrIsh0KFu2QlZ0X1RtjpcWka3GCAWqY3Mx0FgEGsYAIQs4oC+w9W5ApMRwEAAFHEsqwDw6Wi3Sp5505VfDVB4XB0L2caljdQoXBIy/auMh0FgCEMmADErNz4BlTkAABAtbGSMuVuNUD+5TNUMftVew+ZqiDam6vf07trP7D3vyeAakNFDohiribdFfaVmo5hW4dPkaMiBwAAqp5lWfJ2HyOFw/J/N1WyLHl7XmCrulxVRrmw5WgluRNt9e8HoOYwYAKimLtpD9MRbI2KHAAAqG6WZcnbY+yBIdPSaZLDqbgeY03HqhbZCVlavW+dZmz6Qr9rd5FcDl5uArGEihwQxYL5mxXc/b3pGLZFRQ4AANQEy7Lk7Xm+3O2HypmVZzpOtQqEAtpVtlv55ftMRwFQwxgwAVGsYt47Kv/iJdMxbKvQt+9gRa7AdBQAABDlLMtSXI+xcjfpLkkKbFkalXsVtUpvrju6/0kpnhQFQ0HTcQDUIAZMAGJWUaDwYEVuv+koAAAghgQ2LVHZR4+pYu4bUTdksixL+eUFumvOQ5q7Y6HpOABqEAMmADHrcEWuoekoAAAghjjrt5O79WnyL5ki37y3om7IlBGXpm45nZSbVNt0FAA1iAETgJhV6C+gIgcAAGqcZVny9r5I7tanybf4I/m+edv4kKkqH92yLI1ufpYS3QlaV7ChCu8ZgJ0xYAIQs6jIAQAAUw4MmX4td6sB8i36UP4lU8zkqMb7/vfS1/T6qneND88A1AzOjQSimDO9nsIJKaZj2FZlRe4CKnIAAKDmWZZD3j4Xy4pLlqtxN9Nxqtz5LUcp2ZMoy6rOMRYAu2AFExDFvKeMVly/y0zHsC0qcgAAwDTLcsjbbZQcyZkK+8rkW/m56UhVpn5yXe0rL9DLy99QKBwyHQdANWPABCBmFQb2y527TkVU5AAAgA34ls9UxRcvqmL+RNNRqsy+iv1amb9Ge8r2mo4CoJpRkQOiWOmUJxQuLVDiufeYjmJLufEND1TkLmxkOgoAAIA8HYYpVLBDvoWTJMuSt8tI05FOWsestmqX0UqWZSkUDslhscYBiFb81w0gZh2qyBVSkQMAADZgWQ7F9f+NXM37yLfgPVUsnGQ60klzWA4VVBTq7jmPaNHupabjAKhGrGACELOKDlbkOEUOAADYhWU5FNfvMpWHw/LNnyhHej25G3Wp/geuxoPeMuLT1LRWnlI8ydX3IACMYwUTgJh1qCJXL4FT5AAAgH1YDofi+l8ub99L5WrQsZofrHrvXjqwiunSNucrOyFTW4q2Vf8DAjCCAROAmEVFDgAA2JXlcMjTaoAsh1PBnWvlWzLFdKSTEg6HNX7RC5qw8i2Fw9W4XAqAMVTkAMQsKnIAACAS+FfPkn/FZwqHQvJ2HG46zi9iWZZ+1Xykkj1JsqwaWDYFoMaxggmIYglDb+QEuZ9Rl4ocAACIAN7eF8nVpId8896Ub/FHpuP8Yk1r5ckf9OvdNR+wigmIQgyYAMQsKnIAACASWA6n4k79nVxNuqti7pvyLf7YdKRfbFPRVs3e/o32lOWbjgKgilGRA6JYxdw3Fa4oVVy/S01HsSUqcgAAIFIcGDJdofJwWBXz3pKrYUc5atUxHeuEda/dWZ2y28nr9CgcDlOXA6IIK5iAKBbM36Lg3o2mY9gWp8gBAIBIYjmcijvtSsWfeXOVD5fCqpnKmtPhVLGvRPfPe0Ir8lfXyGMCqBkMmADELCpyAAAg0lgOp1x1WkiSKhZMku+7aSd3f6r5FURpcalK99aSw+LlKBBNqMgBiFlU5AAAQKQKh0IK7d2kwIYFkmXJ03aQ6UjHzeVw6dqOl6ssUK7dpXuVlZBhOhKAKsDIGEDMoiIHAAAileVwKG7g1XI16qKK2a/Kt3S66UgnJBwO668LntYrK940HQVAFWEFE4CYVeg7VJFrLKmW6TgAAAAnxHK4FHf61Sqf/g9VzJ4gWZKnzUDTsY6LZVk6u8kwpXiSTUcBUEVYwQREMe8p5ymuzyWmY9hWYaBA7tx1KgoUmo4CAADwi1hOl+IGXitXw07yLZmisL/CdKTj1jazleJcXk3dMNN0FABVgBVMQBRzZtQ3HcHW6sU3OlCRa97AdBQAAIBf7NCQKVxeJMvtVTgUlOVwmo51XJbtXaWPN8xQ15yOyohPNx0HwElgwAREMf+a2QoHfPK0GmA6ii0dPkWuiajIAQCASGY5XbIS0xT2lan048flbt7nhH4HDIerL9vP6V23u7rkdFCyO8lMAABVhoocEMX8a7+Wf+XnpmPY1qGKHKfIAQCAqOF0yfIkqOLLl+Rb8dmxb29Ve6Kf5XG65Qv69PiCp7V+/wazYQCcFAZMAGJWZUUugYocAACIDpbTrfhB18lZv/2BIVMEvNmY7ElWKBxSqb/MdBQAJ4EBE4CYdbgixwomAAAQPSyX5+CQqZ0qvnhJ/pVfmI70s7xOj27qdr1apDVVQQW/lwGRigETgJhFRQ4AAESrA0Om6+Ws10aBbSsUNrXJ0nEKh8N6dMF4vbbyHdNRAPxCbPINIGblxjfkFDkAABC1LJdH8YNvkBxOWZalcHmxrDh7bqZtWZYGNxigZE+y6SgAfiFWMAFRzN20h9wt+5uOYVuHKnJF/kLTUQAAAKqF5fLIcjgV3LtZxa/fJP/qr0xHOqqutTspJzFLs7Z+bToKgF+AFUxAFHM362U6gq1RkQMAALHCkZotZ1YjlX/2gmRZtv09cc62b/TRhunq27yLJLfpOABOACuYgCgW3LtZwd0bTMewLU6RAwAAscJyeRU/5Pdy1m2p8s+el3/N7APXG871QwPq99ZdPW5SZkK66SgAThADJiCKVcx7U+WzXjYdw7Y4RQ4AAMSSA0OmP8hZu8WBIdPaOaYj/Ui8K16WpAe/GK+txdtNxwFwAhgwAYhZVOQAAECssdxexQ+9Uc66rWS/9UsHxLvitK1ol/aU5ZuOAuAEsAcTgJhVWZHjFDkAABBDLLdX8cP/LMuypA35ynEUmI50hAR3gp4cfrd27SpUqb9UCe4E05EAHAdWMAGIWYU+KnIAACA2WdaB1UuJW+bo5tTJcpQVmA30Ex5bMF6vr5poOgaA48QKJgAx61BFrihQaDoKAACAESF3opxWWA5fkekoR3BYDvWsc4pSvMmmowA4TqxgAqKYI62enJkNTcewrUMVudyE+qajAAAAGBG2Dr4kDIfNBvkJ/er1VLNajbVw1xLTUQAcB1YwAVEsrscY0xFs7fApck0lpZqOAwAAUOPsuc33YdM3fa7pmz5Xk9RGSvWmmI4D4GcwYAIQsyorcn4qcgAAAHZ0Wv2+6prTkeESEAGoyAFRrPSjx1Qy8V7TMWyLihwAAIh1YYdbBaF4hR1O01F+UrInSQmueL247DXtKt1jOg6An8GACYh2dl/3bNB+/z5OkQMAADGtIrOF7io4T4HkuqajHJXDcmpl/hptLd5uOgqAn0FFDkDM2k9FDgAAwPZSvcm6r/ftcllO+YI+eZwe05EA/ARWMAGIWfXj81Q2b6jqUZEDAAAxyrt3jcalTpSryN6rg5yWQ39d+IzeXvO+6SgAjoIBE4CYRUUOAADEOivoU5azSFYoYDrKz3JYDrXNaKkmqXmmowA4CipyAGIWp8gBAICYF0H7dQ5pdJp8QZ9W5q9Ry/RmpuMA+AFWMAFRLGH4n5Q48k7TMWzrUEWOU+QAAAAiw+T1U/X04n+ryFdsOgqAH2AFE4CYdbgi11RSquk4AAAAOIbT6vdVh6y2SvYkmY4C4AdYwQREsfKvX1f5rJdNx7AtKnIAAACRJS2ulrLiM/TGqokqqGAfTcBOGDABUSyUv0XBPRtNx7CtenFU5AAAQGyrSG+m+wpGyp9U23SU4+YP+fX19vlaV7DBdBQA/4OKHICYdagiVxRoJipyAAAgFoVdXu0OpUhOt+koxy0zPkMP9BmneFe8gqGgnA6n6UgAxAomADGMihwAAIh17qJtGpMwW46SvaajnBCv06vxi17Qe+s+Mh0FwEEMmADErEOnyNVNqGc6CgAAgBHO8n3qFbdWDn+J6SgnxGE5VDextrLiM0xHAXAQFTkAMauyIuenIgcAABBpzm12poKhoDYWblbDFPbUBExjBRMQxbzdf6W4PheZjmFbVOQAAAAi27trP9Dfvv2niiNsBRYQjVjBBEQxZ0YD0xFsrbIi15KKHAAAQCTqV6+XWqY3U6IrwXQUIOaxggmIYv7VX8m38nPTMWxrvz//YEWOFUwAAACRKCchS3kpDTV5/VSV+EtNxwFiGgMmIIr518yWf9WXpmPYVmVFLsCACQAAxKZAUl29XtJDwfh001F+sUJfkT7Z9JlW5q82HQWIaQyYAMSsQxW53Hg2hQQAALEpGJ+mORXNFfQkmY7yi9VNqq2/9LpVXXI6KhwOm44DxCwGTABi1qFT5Ar9+01HAQAAMMJZUaAunvVy+IpNRzkpye4kPf/dK/p4w3TTUYCYxYAJQMw6VJErDhSZjgIAAGCEu2ibLk6aJWfpXtNRTorT4VSc0yuP02M6ChCzOEUOQMziFDkAAIDocVHrXykUDmln6W7lJGSZjgPEHFYwAVHM3ayX3C36mo5hW1TkAAAAoss7aybrsfnjVRYoNx0FiDmsYAKimLt5b9MRbI2KHAAAQHTpUaebGqbUl8fhNh0FiDmsYAKiWHDvJgX3bDAdw7bqxR2syMVTkQMAAIgG9ZPrqn1ma326ZZbKAxWm4wAxhQETEMUqvn5D5V9NMB3Dtg5V5IoDhaajAAAAGBH0pmp+RZ5C7njTUarM9pJdmrj2Qy3du8J0FCCmMGACELMKA/vkzl2nIgZMAAAgRgVScvVKSV8Fo2hT7LzUBrqj+x/VNaej6ShATGHABCBm1Y9vTEUOAADEtqBfqVapFAqYTlKlMuMzNGHFW/p08yzTUYCYwYAJQMw6VJEr8rOCCQAAxCZv/lrdm/a2PIVbTUepUi6HS0W+IpUGykxHAWIGp8gBiFlU5AAAAKLXVe1/I0naX1GoVG+K4TRA9GMFExDFHOn15MxoaDqGbVGRAwAAiF6WZemdtZP18DdPyh/0m44DRD1WMAFRLK7n+aYj2FqBP/9gRa65JN7VAgAAiDadstorKz5TsizTUYCoxwomADGrMFAgd+46FQeKTEcBAAAwKmw6QDVpUquRetU9RfN3fCt/lG1kDtgNAyYgipV+8LBKJ91vOoZtHarI1YnPNR0FAADADKdbBaF4hR1O00mqzbqC7zVh5VtasnuZ6ShAVGPABEQ7lgMf1f7KihybfAMAgNjky2imuwrOkz8levekbJHWVH/sco06Z7c3HQWIagyYAMQsKnIAAADRz7Is1U+up3fXfqC52xeYjgNELTb5BhCzKityrajIAQCA2OTJX6dxqRMVLMySlG46TrVxWU5tKNwkl4OXwEB14b8uADFrP6fIAQCAGGcFfcpyFmlnyG86SrWyLEt/6HSVnA6nygLlinfFmY4ERB0qcgBiVqGfihwAAECscDqcem/tR3romycVDAVNxwGiDiuYgCiWcObNpiPY2qGKXN3WVOQAAEBsC5sOUEOapzVRnMurUDgkp6L35DzABFYwAYhZnCIHAAAQW1pntNDghqdqef4qhcIh03GAqGLrAVMgENCvf/1rfffdd6ajABGpfPZrKv9qgukYtrU/sI+KHAAAQIxZvneVnvvuZS3Zvcx0FCCq2HrANH78eNWuXdt0DCBihfI3K7R3k+kYttUgvsmBU+TiqcgBAIDY5EtrrPsKRsqfXNd0lBrTOqOFrmp/qdpntTEdBYgqttmD6Y033tAHH3xQeXnUqFHq2LGjnE56sQCqB6fIAQCAWBd2ebU7lKKw02M6So1xWA61TG+uqRtmqm5SbXXIams6EhAVbDNgGjNmjMaMGVN5+eqrr1ZWVpaWLl2qDRs26PHHHzeYDkA0oiIHAABinatou8YkzJartJ6kdNNxaozTcmjBrsUqDZQxYAKqiG0GTD/0zDPPSJKeeuopDRgwwGwYAFHp0ClydThFDgAAxChHeYF6xa3VDl+x6Sg1ymE59Kcu1ynO5VUgFJDLYduXxkDEqPY9mIqLi3XmmWdqy5YtlddNnjxZw4cP16BBg/Tqq6/+7Ndff/31ateuXXXHBBCDDlXkiv2sYAIAADEubDpAzYtzeTV5/VQ9Nn88J8oBVaBax7SLFy/WuHHjtGHDhsrrdu7cqSeeeELvvvuuPB6Pxo4dq+7du6tp06ZV/vgZGUm/6OuyspKrOAlijV2eQxXDLpcUltcmeewm4CmRO3edrHi/bf7ODrFbHkQenkM4WTyHcLJ4DkWGvUlxkqSkJK/t/s5qIk/Lsjy5vJbS0uPlccXOPlSxwm7P6WhXrQOmN998U3fddZduuummyutmz56tHj16qFatWpKkIUOGaMqUKbruuuuq/PH37i1WKHRio/isrGTt3s1qBvxytnoOOTMP/NMueWwmI1xfZfOGKql1hn3+zmSz5xAiEs8hnCyeQzhZPIciR3FJudIlFRdX2OrvrKaeQ83im6tp3Waav365mtZqLMuyqv0xUTP4OVQ9HA7rqIt5qrUid//996tr165HXLdr1y5lZWVVXs7OztbOnTurMwYQs/yrvpR/1ZemY9jW4VPkCk1HAQAAgCFL9izT3779p5btXWk6ChDRqn0Pph8Kh3+8oogpMVA9/Ku/kn/1LNMxbOvwKXKxtaklAADAIYGkOnq9pIcC8RmmoxjTNqOVLm41Ri3Tm5mOAkS0Gh8w5eTkaM+ePZWXd+3apezs7JqOAQBqEN/kwCly8XVNRwEAADAiFF9LcyqaK+SN3b1qnA6nuuR00Kxtc7Uqf63pOEDEqvEBU69evTRnzhzl5+errKxM06ZNU79+/Wo6BgBov4+KHAAAiG2O8v3q4lkvh48V3TM2faFFu5eajgFErGrd5Pun5OTk6MYbb9TFF18sv9+v0aNHq3379jUdAwCoyAEAgJjnKtqui5NmaUdpR0kNTMcxxuVw6aau1yvZk6RQOCSHVeNrMYCIVyMDppkzZx5xecSIERoxYkRNPDQAHFVlRa41FTkAABCbLLEf7iHJniRN2TBDq/at0w0df8dewcAJqvEVTABqjrt5b9MRbO3wKXItJcXuvgMAAAA4INmdpMy4NAVCAbmdbtNxgIjCgAmIYu4WfU1HsLXDFbki01EAAABgA71zu6t3bndtLd6u3KQ6puMAEYViKRDFgns2Krhno+kYtsUpcgAAAPihRbuX6oF5T2j1vnWmowARhQETEMUq5rymijmvmY5hW4crcqxgAgAAsSnkTdH8ijwF3Ummo9hGm/QWGtVshBok1zMdBYgoDJgAxCwqcgAAINYFUurqlZK+CiRmmY5iG26nW/1ze2nx7qXaULjJdBwgYjBgAhCz6lORAwAAsS7oV6pVKgUDppPYSjAc1MR1H2rO9vmmowARg02+AcSsgoMVueIAp8gBAIDY5Nm3Tvemva0dhbUl5ZiOYxsep0d/6nKt0uPSTEcBIgYrmADErMJAvty561QSKDYdBQAAADaTGZ+hTzfP0r+WTjAdBYgIrGACopgjo4HpCLbWIL6pyuYNVe02HEELAACAHwuFQwqFw/KHAnI7ePkM/Bz+CwGiWFyvC01HsLWCylPkqMgBAADgxwY26C/LskzHACICFTkAMYuKHAAAAH6OZVl6fME/NGHFW6ajALbHCiYgipVOflCSlDDiVsNJ7ImKHAAAiHVhh0sFoXiFLafpKLbVOr2FUr0ppmMAtscKJiDqsaT3aAp8hypyRaajAAAAGOHPaKq7Cs5TRSp7dx7NsLyB6lX3FNMxANtjwAQgZu2nIgcAAGIcb0Ue2+MLnqYiBxwHKnIAYhYVOQAAEOtc+d9rXOpE+fenScowHceWWqe3UIo3yXQMwPYYMAGIWfsPniJXzClyAAAgRlkhn7KcRdoeCpiOYlvD8k43HQGICFTkAMSsQxW5YipyAAAAOAoqcsDxYQUTEMU4Pe7nUZEDAADAsVCRA44PAyYAMYuKHAAAAI6FihxwfKjIAVGs/KsJKp/9mukYtrU/sJeKHAAAgKRw2HQC+6IiBxwfBkxAFAvt3aRQ/mbTMWzrUEWuTkJd01EAAACM8Kfn6b6CkfKl1DcdxbZap7dQXmoD0zEA26MiByBmFfj3HqzItZJErx4AAMQgp0e7QykKO92mk9gWFTng+LCCCUDM2h/YR0UOAADENGfxTo1JmC1X6W7TUWzrrwue1isr3jQdA7A9BkwAYlbDQ6fIxXOKHAAAiE2O8v3qFbdWropC01Fsq1V6CzVOaWg6BmB7VOQAxCwqcgAAADgWKnLA8WHABEQxb68LTUewNSpyAAAAOJa/LnhaWQmZuqjVr0xHAWyNARMQxZyZLOX9OQ3iDlbk2lKRAwAAsS5sOoBttUpvoRQPq92BY2HABEQx/8ovJIdD7uZ9TEexpUMVuRIqcgAAIEZZskxHsD0qcsDxYZNvIIr5V8+Sf/VXpmPY1v5Avty561QSKDEdBQAAwIhgUo5eL+khf0KW6Si29dcFz+iV5ZwiBxwLAyYAMathfDOVzRuqnPjapqMAAAAYEYpL1ZyK5gp6U0xHsa3WGc3VOJWtJ4BjoSIHIGYdPkWutajIAQCAWGSVF6qLZ70cFXmSMk3HsaWhjajIAceDFUwAYtbhihynyAEAgNjkKt6hi5NmyVO6y3QU26IiBxwfBkwAYhYVOQAAABwLFTng+ER1Rc7h+GUnIvzSrwMOsctzKK7dIMnhsE0eu/E7i1Sn1U75rXI5HMmm4xyBvzOcLJ5DOFk8h3CyeA5FBk9cnFypWfLExdnu78wueYY3Hmg6An4huzyHosnPfU+tcDgcrsEsAAAAAAAAiDJU5AAAAAAAAHBSGDABAAAAAADgpDBgAgAAAAAAwElhwAQAAAAAAICTwoAJAAAAAAAAJ4UBEwAAAAAAAE4KAyYAAAAAAACcFAZMAAAAAAAAOCkMmAAAAAAAAHBSGDD9wK5du3TFFVdo5MiRGjt2rLZs2WI6EiLU8uXL1bZtW9MxEIEWLFigUaNG6eyzz9Yll1yirVu3mo6ECDF58mQNHz5cgwYN0quvvmo6DiLQ+PHjdcYZZ+iMM87QI488YjoOItjDDz+sW265xXQMRKCZM2fq3HPP1dChQ3XfffeZjoMINGnSpMr/lz388MOm48QUBkw/cNNNN+nUU0/Ve++9p7PPPluPPfaY6UiIQGVlZbr33nvl9/tNR0EE+vOf/6z7779fkyZN0ogRI/jlCsdl586deuKJJ/Taa69p0qRJeuONN7R27VrTsRBBZs+erVmzZmnixIl67733tGzZMn3yySemYyECzZkzRxMnTjQdAxFo8+bNuuuuu/T0009r8uTJWr58uT7//HPTsRBBysrKdP/99+uVV17RpEmTNH/+fM2ePdt0rJjBgOl/5Ofna+XKlRo7dqwkadSoUfrDH/5gNhQi0kMPPaRLL73UdAxEIJ/Pp9///vdq2bKlJKlFixbavn274VSIBLNnz1aPHj1Uq1YtJSQkaMiQIZoyZYrpWIggWVlZuuWWW+TxeOR2u9WkSRNt27bNdCxEmIKCAj3xxBO66qqrTEdBBPrkk080fPhw1a5dW263W0888YQ6dOhgOhYiSDAYVCgUUllZmQKBgAKBgLxer+lYMYMB0//YvHmz6tatqwceeEBnnXWWbrjhBrndbtOxEGFmzJih8vJyDR061HQURCCPx6Ozzz5bkhQKhTR+/HgNHDjQcCpEgl27dikrK6vycnZ2tnbu3GkwESJNs2bN1LFjR0nShg0b9NFHH6l///5mQyHi3HnnnbrxxhuVkpJiOgoi0MaNGxUMBnX55ZfrrLPO0muvvabU1FTTsRBBkpKS9Pvf/17Dhg1Tv379lJubq86dO5uOFTNcpgOY8vHHH+vBBx884rqGDRtq+fLluv7663X77bfrrbfe0i233KJXXnnFUErY2U89hxo3bqzi4mK99NJLZkIhohztOfTSSy/J5/PplltuUSAQ0JVXXmkoISJJOBz+0XWWZRlIgki3Zs0aXXnllbr55pvVqFEj03EQQd566y3VqVNHPXv21Lvvvms6DiJQMBjU/Pnz9corryghIUHXXHONJk6cqHPPPdd0NESIlStX6p133tGnn36q5ORk/elPf9K//vUv/fa3vzUdLSZY4Z/6jTRGbdq0Seecc44WLFgg6UB/s0ePHlq8eLHhZIgUb731lv75z38qMTFR0oEfcC1bttSrr76qpKQkw+kQKUpKSnT11VerVq1aeuyxx+TxeExHQgSYOHGi5s+fr/vvv1+S9I9//EPhcFjXXXed4WSIJAsWLNANN9yg2267TWeccYbpOIgwv/nNb7R79245nU7t379fpaWlGjlypG677TbT0RAh/va3v6m4uFjjxo2TJL366qtas2aN7r77brPBEDFeeOEF7d27VzfffLMk6bPPPtNrr72m5557znCy2EBF7n80aNBAOTk5lRvJffrpp2rTpo3hVIgk5513nqZPn65JkyZp0qRJkg6cYsBwCSfiz3/+sxo2bKgnn3yS4RKOW69evTRnzhzl5+errKxM06ZNU79+/UzHQgTZvn27rr32Wj322GMMl/CLvPjii/rggw80adIk3XDDDTrttNMYLuGEnHrqqZo1a5YKCwsVDAb15Zdf8noMJ6Rly5aaPXu2SktLFQ6HNXPmTLVr1850rJgRsxW5oxk/frzuuusuPfroo0pKStJDDz1kOhKAGLJ8+XLNmDFDTZs21ciRIyUd2Evn+eefNxsMtpeTk6Mbb7xRF198sfx+v0aPHq327dubjoUI8q9//UsVFRVH/O4zduxYnX/++QZTAYglHTp00G9/+1tdcMEF8vv96t27t0aNGmU6FiJInz59tHz5cp177rlyu91q166drrjiCtOxYgYVOQAAAAAAAJwUKnIAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASWHABAAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAEPFOO+00zZ4923QMAACAmMWACQAAoIrl5+erRYsW2rlzp+koAAAANYIBEwAAQBV47LHH9OWXX0qSVq5cqfT0dOXk5BhOdcANN9yg1atXV17esmWLOnXq9Ivuq6SkRL/97W9VXl5eVfEAAEAUYMAEAACiyrp163TRRRepa9euOuOMMzRjxozKzy1btkwjR45Up06ddMMNN+gPf/iDnnjiiZN+zEWLFmnt2rXq27evJGnFihVq2bLlSd9vVfD5fNq4caOaN29eJfeXmJioM888U08++WSV3B8AAIgODJgAAEDU8Pv9uuqqq9S7d2/Nnj1b48aN05/+9CetX79ePp9P1113nc455xzNmzdPZ555pqZPn14lj/vUU09pzJgxlZftNGCaPXu2evbsWaX3OWzYME2ePFl79uyp0vsFAACRiwETAACIGosXL1ZpaamuuOIKeTwe9ezZU6eeeqo+/PBDLV68WIFAQBdffLHcbrcGDx6sdu3aVX5tUVGRRo8erU6dOh1RJ3v00Ud1wQUX6M9//rP8fv+PHrOwsFALFixQ7969K69buXKlWrVq9aPbvvHGG7rooosq/7Rv315Lliyp/PzYsWM1fvx4SQdqbC1atNDXX38t6cBKpG7dumnChAmSpOLiYl111VW66KKLNGbMGH3++ec/+T2ZMWOGBg4ceCLfxmPyer3q3LnzUR8TAADEHpfpAAAAAFVl165dql27thyOw++h1a1bVzt37tSuXbuUk5Mjy7IqP1enTp3Kj+Pi4vTcc8/pkUceqbxu5cqV2rlzp1577TU988wzmjp1qs4888wjHnPjxo3KysqSx+ORJFVUVOj7779X69atf5RvzJgxlSudZs6cqYkTJ6p9+/aSpO3btysnJ0fz5s2rvH3btm31ySefqEePHpozZ44aNmxY+blJkyapb9++uvDCCxUOh1VUVPSjxwuFQlq0aJHuvvvu4/r+HbJz5069/PLLCgQCCofDatWqlc4555wjbtOgQQN9//33J3S/AAAgerGCCQAARI3s7Gzt2LFDoVCo8rpDg5usrCzt3LlT4XD4iM8d4na7lZ6efsT9LVy4UH369JEk9e3bVwsXLvzRYzocDgWDwcrLq1evlsvlUl5e3lFz5ufn68knn9Q999xTed3UqVM1YsQINW7cWOvWrZMk5ebmatu2bQqHw/rkk080ePDgytt7vV4tWrRIe/bskWVZSklJ+dHjLF68WG3btpXT6Txqlh8KhUJ6//33deONN+rWW2/VbbfdpiZNmuizzz474nbBYPCE7hcAAEQ3BkwAACBqtG/fXnFxcXrhhRfk9/s1d+5czZw5U8OHD1fHjh3ldDo1YcIEBQIBTZ8+Xd99993P3l9hYaGSkpIkScnJydq/f/+PblO/fn3l5+eroqJC0oFVT02aNFEgEFBFRYUqKirk8/mO+Jq7775bv//9748YaM2aNUv9+vXTmWeeqSlTplRe36lTJ33zzTfKz89XZmZm5fVnn3228vLydPnll2vMmDFav379j7JNnz5dp59++nF85w5bsmSJRo4cKZfLpY8//lhbt25V+/btVVZWdsTttmzZ8rNDNAAAEFsYMAEAgKjh8Xj07LPP6osvvlCPHj10zz336JFHHlGTJk3k8Xj01FNP6e2331a3bt30/vvva8CAAZXVtp+SnJys4uJiSQf2aEpNTf3RbVJSUtSlS5fKvZJWrFihZcuWqX379pV/hg8fXnn79957T8nJyTrttNMqr9uxY4fWrFmjq6++Ws8888wRexsNHjxYDz74oE455ZQjHtftduuaa67RpEmTdMMNN+ipp576UbbZs2dXrsD6odLSUnXq1OmIP6tWrZLT6axcAfbss89q/vz5knTEaiWfz6dvv/32iH8HAAAQ29iDCQAARLyZM2dWftysWbPKjbB/qF27dpo0aVLl5fPOO0+nnnrqUe+3c+fOevHFFzVy5EjNmjVLnTt3/snbXXvttXr22WfVv39/3Xnnnbrzzjt/8nbbt2/XSy+99KN8U6ZM0a233qqhQ4dKOrDC6dCqp0aNGqlLly4aOnSoZs+eXfk1W7durdz7KSMj44jq3yETJ078yRz16tXTqlWrfvJzfr9fL7/8si655JLK79V33313xIDpgw8+0IgRI36ylgcAAGITAyYAABAz5s2bp7y8PKWlpWny5MlatWqV+vbtW/n53/3ud1qxYoW+//57jRkzRueee64yMjJ0wQUXqE6dOrrssst+8n47d+6svLw8ffHFF+rXr99RH/+f//ynCgsLdfXVV1ded80112jatGn6xz/+UXld9+7d9fHHH1deHjdu3I/ua/Xq1brxxhvl9XoVDoePOtQ6UW63W8OGDdPjjz9euZKpWbNmGj16tKQDp9d98MEHlafdAQAASJIV/qm3uwAAAKLQG2+8oSeffFJlZWWqV6+e/vjHP2rAgAGmYwEAAEQ8BkwAAAAAAAA4KWzyDQAAAAAAgJPCgAkAAAAAAAAnhQETAAAAAAAATgoDJgAAAAAAAJwUBkwAAAAAAAA4KQyYAAAAAAAAcFIYMAEAAAAAAOCkMGACAAAAAADASfl/6hNZaplFmREAAAAASUVORK5CYII=\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "titles = { 0 : \"Primary\",\n",
+    "           1 : \"Secondary\",\n",
+    "           2 : \"Unresolved\" }\n",
+    "\n",
+    "# choose to plot the \n",
+    "# PRIMARY, SECONDARY or UNRESOLVED\n",
+    "nstar = UNRESOLVED\n",
+    "\n",
+    "plots = {}\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "for n in range(0,3):\n",
+    "    pad_output_distribution(population.grid_results['luminosity distribution'][n],\n",
+    "                            binwidth['luminosity'])\n",
+    "    plots[titles[n] + ' ZAMS luminosity distribution'] = population.grid_results['luminosity distribution'][n]\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict(plots)\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "e7541ebf-fe9a-4fb0-a88e-bb318d06f9eb",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/source/notebook_luminosity_function_single.ipynb b/docs/source/notebook_luminosity_function_single.ipynb
new file mode 100644
index 000000000..fb971b34a
--- /dev/null
+++ b/docs/source/notebook_luminosity_function_single.ipynb
@@ -0,0 +1,716 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "# Example use case: Zero-age stellar luminosity function\n",
+    "\n",
+    "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of single stars using binary_c. \n",
+    "\n",
+    "We start by loading in some standard Python modules and the binary_c module.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "import math\n",
+    "import matplotlib.pyplot as plt\n",
+    "\n",
+    "from binarycpython.utils.functions import temp_dir\n",
+    "from binarycpython.utils.grid import Population\n",
+    "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_luminosity\")\n",
+    "\n",
+    "# help(Population) # Uncomment this line to see the public functions of this object"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f268eff3-4e08-4f6b-8b59-f22dba4d2074",
+   "metadata": {},
+   "source": [
+    "## Setting up the Population object\n",
+    "To set up and configure the population object we need to make a new instance of the `Population` object and configure it with the `.set()` function.\n",
+    "\n",
+    "In our case, we only need to set the maximum evolution time to something short, because we care only about zero-age main sequence stars which have, by definition, age zero."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_luminosity to grid_options\n",
+      "adding: max_evolution_time=0.1 to BSE_options\n",
+      "verbosity is 1\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Create population object\n",
+    "population = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "population.set(verbosity=1)\n",
+    "\n",
+    "# Setting values can be done via .set(<parameter_name>=<value>)\n",
+    "# Values that are known to be binary_c_parameters are loaded into bse_options.\n",
+    "# Those that are present in the default grid_options are set in grid_options\n",
+    "# All other values that you set are put in a custom_options dict\n",
+    "population.set(\n",
+    "    # binary_c physics options\n",
+    "    max_evolution_time=0.1,  # maximum stellar evolution time in Myr\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "\n",
+    "# We can access the options through \n",
+    "print(\"verbosity is\", population.grid_options['verbosity'])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f9a65554-36ab-4a04-96ca-9f1422c307fd",
+   "metadata": {},
+   "source": [
+    "## Adding grid variables\n",
+    "The main purpose of the Population object is to handle the population synthesis side of running a set of stars. The main method to do this with binarycpython, as is the case with Perl binarygrid, is to use grid variables. These are loops over a predefined range of values, where a probability will be assigned to the systems based on the chosen probability distributions.\n",
+    "\n",
+    "Usually we use either 1 mass grid variable, or a trio of mass, mass ratio and period (other notebooks cover these examples). We can, however, also add grid sampling for e.g. eccentricity, metallicity or other parameters. \n",
+    "\n",
+    "To add a grid variable to the population object we use `population.add_grid_variable`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "68c84521-9ae8-4020-af7a-5334173db969",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# help(population.add_grid_variable)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "bd75cebe-2152-4025-b680-dc020b80889b",
+   "metadata": {},
+   "source": [
+    "All the distribution functions that we can use are stored in the `binarycpython.utils.distribution_functions` or `binarycpython/utils/distribution_functions.py` on git. If you uncomment the help statement below you can see which functions are available now:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "048db541-3e92-4c5d-a25c-9c5a34b9c857",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import binarycpython.utils.distribution_functions\n",
+    "# help(binarycpython.utils.distribution_functions)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2a9104fc-4136-4e53-8604-f24ad52fbe56",
+   "metadata": {},
+   "source": [
+    "First let us set up some global variables that will be useful throughout. \n",
+    "* The resolution is the number of stars we simulate in our model population.\n",
+    "* The massrange is a list of the min and max masses\n",
+    "* The total_probability is the theoretical integral of a probability density function, i.e. 1.0.\n",
+    "* The binwidth sets the resolution of the final distribution. If set to 0.5, the bins in log*L* are 0.5dex wide."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "aba3fe4e-18f2-4bb9-8e5c-4c6007ab038b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Set resolution and mass range that we simulate\n",
+    "resolution = {\"M_1\": 40} # start with resolution = 10, and increase later if you want \"more accurate\" data\n",
+    "massrange = (0.07, 100.0) # we work with stars of mass 0.07 to 100 Msun\n",
+    "total_probability = 1.0 # theoretical integral of the mass probability density function over all masses    \n",
+    "# distribution binwidths : \n",
+    "# (log10) luminosity distribution\n",
+    "binwidth = { 'luminosity' : 0.5 }"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b3a007b-5c17-42a7-a981-7e268e6f545c",
+   "metadata": {},
+   "source": [
+    "The next cell contains an example of adding the mass grid variable, sampling the phase space in linear mass *M*_1."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "47979841-2c26-4b26-8945-603d013dc93a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Mass\n",
+    "population = Population()\n",
+    "population.set(\n",
+    "    tmp_dir=TMP_DIR,\n",
+    ")\n",
+    "population.add_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=massrange,\n",
+    "    resolution=\"{res}\".format(res = resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const({min}, {max}, {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"{probtot}/({max} - {min})\".format(probtot = total_probability, min = massrange[0], max = massrange[1]), # dprob/dm1 : all stars are equally likely so this is 1.0 / (Mmax - Mmin)\n",
+    "    dphasevol=\"dM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "163f13ae-fec1-4ee8-b9d4-c1b75c19ff39",
+   "metadata": {},
+   "source": [
+    "## Setting logging and handling the output\n",
+    "By default, binary_c will not output anything (except for 'SINGLE STAR LIFETIME'). It is up to us to determine what will be printed. We can either do that by hardcoding the print statements into `binary_c` (see documentation binary_c) or we can use the custom logging functionality of binarycpython (see notebook `notebook_custom_logging.ipynb`), which is faster to set up and requires no recompilation of binary_c, but is somewhat more limited in its functionality. For our current purposes, it works perfectly well.\n",
+    "\n",
+    "After configuring what will be printed, we need to make a function to parse the output. This can be done by setting the parse_function parameter in the population object (see also notebook `notebook_individual_systems.ipynb`). \n",
+    "\n",
+    "In the code below we will set up both the custom logging and a parse function to handle that output."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Create custom logging statement\n",
+    "#\n",
+    "# we check that the model number is zero, i.e. we're on the first timestep (stars are born on the ZAMS)\n",
+    "# we make sure that the stellar type is <= MAIN_SEQUENCE, i.e. the star is a main-sequence star\n",
+    "# we also check that the time is 0.0 (this is not strictly required, but good to show how it is done)\n",
+    "#\n",
+    "# The Printf statement does the outputting: note that the header string is ZERO_AGE_MAIN_SEQUENCE_STAR\n",
+    "\n",
+    "custom_logging_statement = \"\"\"\n",
+    "if(stardata->model.model_number == 0 &&\n",
+    "   stardata->star[0].stellar_type <= MAIN_SEQUENCE &&\n",
+    "   stardata->model.time == 0)\n",
+    "{\n",
+    "   /* Note that we use Printf - with a capital P! */\n",
+    "   Printf(\"ZERO_AGE_MAIN_SEQUENCE_STAR %30.12e %g %g %g %g\\\\n\",\n",
+    "          stardata->model.time, // 1\n",
+    "          stardata->common.zero_age.mass[0], // 2\n",
+    "          stardata->star[0].mass, // 3\n",
+    "          stardata->star[0].luminosity, // 4\n",
+    "          stardata->model.probability // 5\n",
+    "      );\n",
+    "};\n",
+    "\"\"\"\n",
+    "\n",
+    "population.set(\n",
+    "    C_logging_code=custom_logging_statement\n",
+    ")\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ae1f1f0c-1f8b-42d8-b051-cbf8c6b51514",
+   "metadata": {},
+   "source": [
+    "The parse function must now catch lines that start with \"ZERO_AGE_MAIN_SEQUENCE_STAR\" and process the associated data."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# import the bin_data function so we can construct finite-resolution probability distributions\n",
+    "# import the datalinedict to make a dictionary from each line of data from binary_c\n",
+    "from binarycpython.utils.functions import bin_data,datalinedict\n",
+    "\n",
+    "def parse_function(self, output):\n",
+    "    \"\"\"\n",
+    "    Example parse function\n",
+    "    \"\"\"\n",
+    "    \n",
+    "    # list of the data items\n",
+    "    parameters = [\"header\", \"time\", \"zams_mass\", \"mass\", \"luminosity\", \"probability\"]\n",
+    "    \n",
+    "    # Loop over the output.\n",
+    "    for line in output.splitlines():\n",
+    "        # obtain the line of data in dictionary form \n",
+    "        linedata = datalinedict(line,parameters)\n",
+    "        \n",
+    "        # Check the header and act accordingly\n",
+    "        if linedata['header'] == \"ZERO_AGE_MAIN_SEQUENCE_STAR\":\n",
+    "            \n",
+    "            # bin the log10(luminosity) to the nearest 0.1dex\n",
+    "            binned_log_luminosity = bin_data(math.log10(linedata['luminosity']),\n",
+    "                                             binwidth['luminosity'])\n",
+    "            \n",
+    "            # append the data to the results_dictionary \n",
+    "            self.grid_results['luminosity distribution'][binned_log_luminosity] += linedata['probability'] \n",
+    "            \n",
+    "            #print (self.grid_results)\n",
+    "    \n",
+    "    # verbose reporting\n",
+    "    #print(\"parse out results_dictionary=\",self.grid_results)\n",
+    "    \n",
+    "# Add the parsing function\n",
+    "population.set(\n",
+    "    parse_function=parse_function,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91509ce5-ffe7-4937-aa87-6d7baac9ac04",
+   "metadata": {},
+   "source": [
+    "## Evolving the grid\n",
+    "Now that we configured all the main parts of the population object, we can actually run the population! Doing this is straightforward: `population.evolve()`\n",
+    "\n",
+    "This will start up the processing of all the systems. We can control how many cores are used by settings `amt_cores`. By setting the `verbosity` of the population object to a higher value we can get a lot of verbose information about the run, but for now we will set it to 0.\n",
+    "\n",
+    "There are many grid_options that can lead to different behaviour of the evolution of the grid. Please do have a look at those: [grid options docs](https://ri0005.pages.surrey.ac.uk/binary_c-python/grid_options_descriptions.html), and try  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 1.0000000000000004\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-08f8230453084e4ca6a2391d45ce658b finished! The total probability was: 1.0000000000000002. It took a total of 1.5262682437896729s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.025), (3.75, 0.05), (4.25, 0.05), (0.25, 0.025), (3.25, 0.025), (5.25, 0.2), (4.75, 0.1), (5.75, 0.39999999999999997), (6.25, 0.125)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# set number of threads\n",
+    "population.set(\n",
+    "    # verbose output is not required    \n",
+    "    verbosity=0,\n",
+    "    # set number of threads (i.e. number of CPU cores we use)\n",
+    "    amt_cores=2,\n",
+    "    )\n",
+    "\n",
+    "# Evolve the population - this is the slow, number-crunching step\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "91ab45c7-7d31-4543-aee4-127ab58e891f",
+   "metadata": {},
+   "source": [
+    "After the run is complete, some technical report on the run is returned. I stored that in `analytics`. As we can see below, this dictionary is like a status report of the evolution. Useful for e.g. debugging."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "e1f0464b-0424-4022-b34b-5b744bc2c59d",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "{'population_name': '08f8230453084e4ca6a2391d45ce658b', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 1.0000000000000002, 'total_count': 40, 'start_timestamp': 1631124829.303065, 'end_timestamp': 1631124830.8293333, 'total_mass_run': 2001.4, 'total_probability_weighted_mass_run': 50.035000000000004, 'zero_prob_stars_skipped': 0}\n"
+     ]
+    }
+   ],
+   "source": [
+    "print(analytics)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "05c6d132-abee-423e-b1a8-2039c8996fbc",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 10,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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n9eyZcs0atQovf3225o8eXLr4WwXExkZqZqaGkmfnZOpW7duF9wmKipKI0aMaD030sGDB7V//34NHjy49a+ZM2e23v7NN99UZGSkpk6d2nrZmTNnlJeXpwceeEC/+93vzjuX0YwZM/Tzn/9co0ePPu9xAwMD9c1vflNvvfWWHn74YT3//PMXtG3cuLH1lVf/qq6uTsOGDTvvr8OHD8vhcLS+8uuFF17Q9u3bJem8Vyk1NTVp165d5/0ZAACAf+OcSwAAwKutXr269e/T09NbT3r9r6699lq99dZbrR/feeedmjJlyiXvd/jw4XrxxRd16623av369Ro+fPhFb/fggw/qhRde0KRJk/TDH/5QP/zhDy96u9OnT+uvf/3rBX0ffPCBvv/97+uGG26Q9Nkrmz5/tVO/fv00YsQI3XDDDdq4cWPr55w8ebL1XE+xsbHnHe73ueXLl1+0IykpSYcPH77odc3Nzfrb3/6mL33pS61fq3379p03Lr3zzju6+eabL3ooHgAA8E+MSwAAwC9s3bpVycnJio6O1ooVK3T48GFNmDCh9fqvf/3rOnjwoI4ePaq5c+fq9ttvV2xsrBYsWKAePXroq1/96kXvd/jw4UpOTta6des0ceLESz7+73//e1VVVemBBx5oveyb3/ymPvroI/3P//xP62VZWVl6//33Wz9etGjRBfeVm5urRx55RMHBwbIs65KD1pUKDAzUjTfeqF/96letr2BKT0/XnDlzJH32LnXvvPNO67vaAQAASJLNutj/6gIAAPAxr776qp599lnV19crKSlJjz76qCZPnmw6CwAAwOsxLgEAAAAAAKDdOKE3AAAAAAAA2o1xCQAAAAAAAO3GuAQAAAAAAIB2Y1wCAAAAAABAuzEuAQAAAAAAoN0YlwAAAAAAANBujEsAAAAAAABoN8YlAAAAAAAAtNv/D2ltZ660RybEAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# make a plot of the luminosity distribution using Seaborn and Pandas\n",
+    "import seaborn as sns\n",
+    "import pandas as pd\n",
+    "from binarycpython.utils.functions import pad_output_distribution\n",
+    "\n",
+    "# set the figure size (for a Jupyter notebook in a web browser) \n",
+    "sns.set( rc = {'figure.figsize':(20,10)} )\n",
+    "\n",
+    "# this saves a lot of typing! \n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7d7b275e-be92-4d59-b44d-ef6f24023cc3",
+   "metadata": {},
+   "source": [
+    "Does this look like a reasonable stellar luminosity function to you? The implication is that the most likely stellar luminosity is 10<sup>5.8</sup> L<sub>☉</sub>! Clearly, this is not very realistic... let's see what went wrong."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "44586e42-b7cb-4a55-be0a-330b98b20de4",
+   "metadata": {},
+   "source": [
+    "## "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e32c3bbf-390f-45da-ad9c-cc3e7c9449dc",
+   "metadata": {},
+   "source": [
+    "## ZAMS Luminosity distribution with the initial mass function\n",
+    "\n",
+    "In the previous example, all the stars in our grid had an equal weighting. This is very unlikely to be true in reality: indeed, we know that low mass stars are far more likely than high mass stars.  So we now include an initial mass function as a three-part power law based on Kroupa (2001). Kroupa's distribution is a three-part power law: we have a function that does this for us (it's very common to use power laws in astrophysics).\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "1f37d2c0-1108-4ab9-a309-20b1e6b6e3fd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Update the probability distribution to use the three-part power law IMF \n",
+    "population.update_grid_variable(\n",
+    "    name=\"M_1\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)\",\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "6f4463e8-1935-45f2-8c5f-e7b215f8dc47",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.2182216189410787\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: M_1\n",
+      "Population-92de7c9221c54206ab4dd10e58e09a34 finished! The total probability was: 0.21822161894107872. It took a total of 1.5900418758392334s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(2.25, 0.0164166), (3.25, 0.00515685), (0.25, 0.189097), (3.75, 0.0037453900000000004), (4.25, 0.0014346559999999999), (5.25, 0.0007493004), (4.75, 0.001171479), (5.75, 0.00039801020000000003), (6.25, 5.2369339999999996e-05)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "cfe45a9e-1121-43b6-b6b6-4de6f8946a18",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[None]"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABcnUlEQVR4nO3dd3SUZf7+8Wtm0gvpjQRIo0PovSNNiiDiBnXBsrqCsq6sK66CirroWlZ/lu/ay6oooIIIItIEhID03ksCBJIACYTQ0ub3R3TcCBjIk+SZSd6vczgn82QycyW5HTPX3M9nLHa73S4AAAAAAACgnKxmBwAAAAAAAIBro2ACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQ9zMDlCZcnLOqrjYbnaMaickxE8nT+aZHQMuivUDo1hDMIo1BKNYQzCKNQSjWEMwqrxryGq1KCjI97Kfq9YFU3GxnYKpkvBzhRGsHxjFGoJRrCEYxRqCUawhGMUaglEVvYY4RQ4AAAAAAACGUDABAAAAAADAkGp9ihwAAAAAAFWpqKhQOTnHVViYX2n3kZVlVXFxcaXdPqq/staQm5uHgoLCZLNdfW1EwQQAAAAAQAXJyTkuLy8f+fpGymKxVMp9uLlZVVhIwYTy+701ZLfbdfZsrnJyjis0NOqqb5NT5AAAAAAAqCCFhfny9a1VaeUSUNksFot8fWtd8y48CiYAAAAAACoQ5RJcXXnWMAUTAAAAAAAADKFgAgAAAACgGtq8eaPuuOPWUv+6d2+v77+f57jOV19NV8+eHXXy5IlSX9u1a1v97W/jSh07deqUevTooPfff1uSlJGRoQkTxuv220dq1Kg/6PHH/6GcnOxLcrz//tuOrzHivffe0ooVywzfzi++/vpLff31l5KkZ599ShkZx8p1O+PG/VkbNqzTrl079K9/PXPF6x09mq7nnnu6zCxdu7a9pvtfsWK5pk379JLbqWoM+QYAAAAAoBpq0aKVPvroM8fl6dOnav78b9Wz53WOY99+O0ddu/bQ3Lmzdfvtfyr19YcPH1Zubq5q1aolSVq6dLH8/Ws5Pv/ii89qwICB6tt3gCTpk08+1IsvPqdnn32xUr6fu+8eU6G3N2zYCMfHGzas05133mPo9ho1aqJ//KPJFT+fkXFM6elHysxyrXbv3lkht2MUBRMAAAAAANXc5s0b9fHHH+idd/4rT09PSdK+fXuVm3taEyZM1KRJEzRq1J2yWn890alr1+768celGjToBkklBVP37j0dn8/OPqGLFy84Lt900x+0c+eO383RtWtbrVixTpI0b94cbdy4XhMnTtaIEUPUu3dfpaSskM1m07333q9p0z7VkSOHdf/9D+q66/pqypTJatWqjVq1aqPHHvu74uMTtGfPbgUHh+iZZ/6lWrUCtHLlj3r33Tdltxerdu1oPfzwYwoODtEbb/w/rV37k2w2q7p27aG77vqzY1eVh4enTpw4rocf/qvuvnuMpk2bqrfe+kCS9N13c7V9+1b9/e+POr6H/Px8Pf/8M9q1a6ciI2vr9OlTkkpKqg8+eEdvvPGOpk37VN99962sVosaN26qCRMm6tVXX9LRo+n697+fV69e1+nNN19TUVGx4uMTFBVVW5L0pz/dK0l6/vkp2rlzuwICAvXoo08oMjJS48b9WXfd9We1bt1Wx44d1V/+cq9efPFVzZ49U5IUGRnl2IX1pz/de8WfxYgRQ3T99YO0enWKzp+/oEmTnlKjRo2vei1dCQUTAAAAAACVYOXWY1qxpXynXf0ei0Xq0jxKXZpf3VvI5+Rka/LkiXrkkccVHR3jOD5v3jfq3buPGjVqLJvNpp9+SlGnTl0dn+/du48+/vgDDRp0g06ePCG7XQoJCXV8/t57x+nppx/X+++/ozZt2qljx87q3btvub+v0NAwffrpDD377FP69NOP9Nprb2nr1s167bV/67rrSt/uvn179eijT6hBg0aaOPFhLVjwna67rp9efPFZvfnm+4qKqq3PPvtYL7/8gsaNe1CrV6fo009n6OLFi3r++X/q4sWLjtsaNeoOzZ79lV588VVFRkbp//7vNaWnH1F0dIy++26u7r239KmCX345XZI0deqXOnz4kG6//ZZSny8sLNSnn36kr7+eL6vVqpdffl7Hj2fpr3/9uz744B099NAj2rBhnQ4fPqQvv5wrPz+/S04hbNWqtR55ZKJmzvxCr776kp577qXL/szi4uI1dOhwSdKgQTc4bicnJ/uyP4t//vN5SVJAQIDeffdjffnlNH3yyQeaMsX4rjNmMAEAAAAAUE0VFxdr8uRJ6tOnf6ndR4WFhVqwYL769OkvSerdu69jJ8wvmjVL0qFDacrLy9PSpYvVq1fvUp/v2LGzZs2ap0cemaTAwCD95z+vaeLEh8udtWPHzpKkiIhItWzZWm5uboqMjNKZM2cuuW5QULAaNGgkSYqPT1Rubq527Niuxo2bOnYD3XDDcK1fv1ahoWHy9PTU2LF3acaMz3TPPWMdu7h+y2Kx6PrrB+n77+cpIyND2dnZatq0WanrbNq0Xr16lRRederUVfPmSaU+7+bmpmbNknT33aP14YfvavjwmxUWFn7JfdWpU09+fn6XHPf09FS/ftdLkvr3v14bN67/3Z/b5VzpZ/GLX37Wv/zsKgI7mAAAAAAAqATXssvoWri5WVVYWHxV1/3ww3dVWFige++9v9TxlSt/1JkzuXrssZJCqLCwUDk52crKylR4eISkkrKlS5duWrFimZYt+0FPPfWcZs6cIUnKzT2tjz56Tw888JA6duysjh0764477tbQof2Vk5OjoKCgK2ay2+2yWCwqLCwsddzd3d3xsc1m+93vy8PD45LbtNuLLzlWVFQkNzc3vfPOR9q0aYNWrVqpMWPu1Ouvv3PF2x44cIgeeugv8vDw0IABAy9zDUup+7pc1uee+7e2b9+q1atT9NBDD+iJJy4d/n2lkstq/fX27PaSwkoq+X384rc/u9+60s/iFx4enqU+VxHYwQQAAAAAQDW0du1qzZnztZ566jlHSfGLefO+0T33jNWXX87Rl1/O0ddff6fmzVtozpyvS12vd+++mjnzC7m5uZcqjXx9/bRixXJ9991cx7H09CMKDg5xDAW/nMDAQB08uF92u10rViyvmG/0Z02aNNOOHVt17NhRSdI338xU69ZttGfPLo0b92e1aNFK48Y9qNjYeB06lFbqa202m6OAiYyMUlhYuL7++isNGDDokvtp27a9Fi78XsXFxcrIOKatW7eU+nxOTo5uu22E4uMTdffdY9SuXQft379XNptbqZLnSs6fP+d4t7xvv52ttm3bS5ICAkp+dpL0449LL5u9rJ9FZWIHEwAAAAAA1dAnn3ykoqIi/f3vD5Q63r17T23YsE6PPvpkqeMjR/5R//73v3THHXc7jjVt2lwnT57QDTcMK3Vdm82ml156Va+//oree+8teXl5KTQ0TM8///Lv7j4aM2acJkwYr+DgECUltXQMyK4IwcEhevjhiXrssb+roKBQkZGR+sc/nlBoaKiaNUvS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zY4DF/TFF184Hn+GDh2qNm3a6Omnn66Q23arkFtBtZeZmalXXnlFM2fOlIeHh0aOHKkOHTooMTHR7GhwIZs3b9akSZOUmppqdhS4oJSUFK1YsUKzZs2SxWLR3XffrYULF6pv375mR4OLWLNmjVavXq1vvvlGhYWFGjhwoHr06KH4+Hizo8GFrFq1SrNmzVLPnj3NjgIXZLfbdeDAAS1dulRubjwVw7U5fPiwnnzySX3xxRcKCQnR7bffrmXLlqlHjx5mR4MLufnmm3XzzTdLkvbu3av7779f48aNq5DbZgcTrkpKSoo6duyowMBA+fj4qH///po/f77ZseBiZsyYoSeffFLh4eFmR4ELCgsL0z/+8Q95eHjI3d1dCQkJOnr0qNmx4ELat2+vjz/+WG5ubjp58qSKiork4+Njdiy4kFOnTumVV17RmDFjzI4CF3XgwAFZLBbdc889uuGGG/Tpp5+aHQkuZOHChRo4cKAiIyPl7u6uV155RS1atDA7FlzY5MmTNX78eAUHB1fI7VGb46pkZWUpLCzMcTk8PFxbtmwxMRFc0ZQpU8yOABdWv359x8epqamaN2+epk2bZmIiuCJ3d3e99tpr+uCDDzRgwABFRESYHQku5IknntD48eN17Ngxs6PAReXm5qpTp06aPHmyLly4oNGjRysuLk5dunQxOxpcQFpamtzd3fWnP/1Jx48fV69evfTggw+aHQsuKiUlRRcuXND1119fYbfJDiZcFbvdfskxi8ViQhIANd3evXt111136ZFHHlFsbKzZceCCHnjgAa1atUrHjh3TjBkzzI4DF/HFF18oKipKnTp1MjsKXFirVq30wgsvyMfHR8HBwRoxYoSWLVtmdiy4iKKiIq1atUovvviiZsyYoa1bt2rWrFlmx4KLmjZtmu68884KvU0KJlyViIgInThxwnE5KyuL05wAVLn169frjjvu0EMPPaQbb7zR7DhwMfv379fOnTslSd7e3urXr592795tciq4innz5mnlypUaOnSoXnvtNS1ZskTPPvus2bHgYtatW6dVq1Y5LtvtdmYx4aqFhoaqU6dOCg4OlpeXl6677jrOKkG55Ofna+3aterdu3eF3i4FE65K586dtWrVKmVnZ+v8+fNasGCBunfvbnYsADXIsWPHdP/99+ull17SoEGDzI4DF3TkyBFNmjRJ+fn5ys/P1+LFi9WmTRuzY8FFfPjhh5o7d65mz56tBx54QL1799Zjjz1mdiy4mDNnzuiFF17QxYsXlZeXp1mzZvFmFbhqvXr10ooVK5Sbm6uioiL9+OOPatq0qdmx4IJ2796t2NjYCp9FSV2OqxIREaHx48dr9OjRKigo0IgRI5SUlGR2LAA1yPvvv6+LFy/qX//6l+PYyJEjdcstt5iYCq6kR48e2rx5s4YNGyabzaZ+/fpRVgKoUr169XI8DhUXF+vWW29Vq1atzI4FF9GiRQvdfffduvXWW1VQUKAuXbropptuMjsWXNDhw4cVGRlZ4bdrsV9uuA4AAAAAAABwlThFDgAAAAAAAIZQMAEAAAAAAMAQCiYAAAAAAAAYQsEEAAAAAAAAQyiYAAAAAAAAYAgFEwAAAAAAAAyhYAIAAAAAAIAhFEwAAMDl9e7dWykpKWbHAAAAqLEomAAAACpYdna2GjZsqMzMTLOjAAAAVAkKJgAAgArw0ksv6ccff5Qk7dq1S8HBwYqIiDA5VYkHHnhAe/bscVw+cuSIWrVqVa7bOnv2rO6++25duHChouIBAIBqgIIJAABUK/v379eoUaPUtm1bDRo0SIsXL3Z8bvv27Ro2bJhatWqlBx54QA8++KBeeeUVw/e5adMm7du3T926dZMk7dy5U40aNTJ8uxUhPz9faWlpatCgQYXcnq+vrwYPHqxXX321Qm4PAABUDxRMAACg2igoKNCYMWPUpUsXpaSkaNKkSfr73/+uAwcOKD8/X+PGjdONN96oNWvWaPDgwVq0aFGF3O/rr7+u5ORkx2VnKphSUlLUqVOnCr3N66+/XnPmzNGJEycq9HYBAIDromACAADVxubNm3Xu3Dn9+c9/loeHhzp16qRevXrp22+/1ebNm1VYWKjRo0fL3d1d/fr1U/PmzR1fe+bMGY0YMUKtWrUqdTrZiy++qFtvvVUPP/ywCgoKLrnP3NxcrV+/Xl26dHEc27Vrlxo3bnzJdadPn65Ro0Y5/iUlJWnLli2Oz48cOVJvvPGGpJLT2Bo2bKjVq1dLKtmJ1K5dO3366aeSpLy8PI0ZM0ajRo1ScnKyli1bdtmfyeLFi9WnT59r+TGWydPTU61bt77ifQIAgJrHzewAAAAAFSUrK0uRkZGyWn99Da127drKzMxUVlaWIiIiZLFYHJ+LiopyfOzl5aV33nlHL7zwguPYrl27lJmZqc8++0xvvvmmvv/+ew0ePLjUfaalpSksLEweHh6SpIsXL+rgwYNq0qTJJfmSk5MdO52WLFmiWbNmKSkpSZJ07NgxRUREaM2aNY7rN2vWTAsXLlTHjh21atUq1atXz/G52bNnq1u3brrttttkt9t15syZS+6vuLhYmzZt0uTJk6/q5/eLzMxMffzxxyosLJTdblfjxo114403lrpO3bp1dfDgwWu6XQAAUH2xgwkAAFQb4eHhysjIUHFxsePYL8VNWFiYMjMzZbfbS33uF+7u7goODi51exs2bFDXrl0lSd26ddOGDRsuuU+r1aqioiLH5T179sjNzU1xcXFXzJmdna1XX31VTz31lOPY999/ryFDhig+Pl779++XJEVHR+vo0aOy2+1auHCh+vXr57i+p6enNm3apBMnTshisahWrVqX3M/mzZvVrFkz2Wy2K2b5reLiYn3zzTcaP368Hn30UT322GNKSEjQ0qVLS12vqKjomm4XAABUbxRMAACg2khKSpKXl5fee+89FRQU6KefftKSJUs0cOBAtWzZUjabTZ9++qkKCwu1aNEibd269XdvLzc3V35+fpIkf39/nT59+pLr1KlTR9nZ2bp48aKkkl1PCQkJKiws1MWLF3Xx4kXl5+eX+prJkyfrr3/9a6lCa8WKFerevbsGDx6s+fPnO463atVKa9euVXZ2tkJDQx3Hhw4dqri4OP3pT39ScnKyDhw4cEm2RYsW6brrrruKn9yvtmzZomHDhsnNzU3fffed0tPTlZSUpPPnz5e63pEjR363RAMAADULBRMAAKg2PDw89NZbb2n58uXq2LGjnnrqKb3wwgtKSEiQh4eHXn/9dX355Zdq166dvvnmG/Xs2dNxatvl+Pv7Ky8vT1LJjKaAgIBLrlOrVi21adPGMStp586d2r59u5KSkhz/Bg4c6Lj+119/LX9/f/Xu3dtxLCMjQ3v37tXYsWP15ptvlppt1K9fPz333HNq3759qft1d3fXfffdp9mzZ+uBBx7Q66+/fkm2lJQUxw6s3zp37pxatWpV6t/u3btls9kcO8DeeustrVu3TpJK7VbKz8/Xxo0bS30PAACgZmMGEwAAcHlLlixxfFy/fn3HIOzfat68uWbPnu24fPPNN6tXr15XvN3WrVvrww8/1LBhw7RixQq1bt36ste7//779dZbb6lHjx564okn9MQTT1z2eseOHdNHH310Sb758+fr0Ucf1YABAySV7HD6ZddTbGys2rRpowEDBiglJcXxNenp6Y7ZTyEhIaVO/fvFrFmzLpsjJiZGu3fvvuznCgoK9PHHH+v22293/Ky2bt1aqmCaO3euhgwZctnT8gAAQM1EwQQAAGqMNWvWKC4uTkFBQZozZ452796tbt26OT5/zz33aOfOnTp48KCSk5M1fPhwhYSE6NZbb1VUVJTuuuuuy95u69atFRcXp+XLl6t79+5XvP+3335bubm5Gjt2rOPYfffdpwULFuj//u//HMc6dOig7777znF50qRJl9zWnj17NH78eHl6esput1+x1LpW7u7uuv766/Xvf//bsZOpfv36GjFihKSSd6+bO3eu493uAAAAJMliv9zLXQAAANXQ9OnT9eqrr+r8+fOKiYnRQw89pJ49e5odCwAAwOVRMAEAAAAAAMAQhnwDAAAAAADAEAomAAAAAAAAGELBBAAAAAAAAEMomAAAAAAAAGAIBRMAAAAAAAAMoWACAAAAAACAIRRMAAAAAAAAMISCCQAAAAAAAIb8fxzqA03KlXkqAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0546f2f3-4732-4841-8ef3-565fbf6b9961",
+   "metadata": {},
+   "source": [
+    "This distribution is peaked at low luminosity, as one expects from observations, but the resolution is clearly not great because it's not smooth - it's spiky! \n",
+    "\n",
+    "If you noticed above, the total probability of the grid was about 0.2. Given that the total probability of a probability distribution function should be 1.0, this shows that our sampling is (very) poor. \n",
+    "\n",
+    "We could simply increase the resolution to compensate, but this is very CPU intensive and a complete waste of time and resources. Instead, let's try sampling the masses of the stars in a smarter way."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "673031c9-7d80-45d4-b209-301c127d3edf",
+   "metadata": {},
+   "source": [
+    "# A better-sampled grid\n",
+    "\n",
+    "The IMF has many more low-mass stars than high-mass stars. So, instead of sampling M1 linearly, we can sample it in log space. \n",
+    "\n",
+    "To do this we first rename the mass grid variable so that it is clear we are working in (natural) logarithmic phase space."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "5956f746-e3b9-4912-b75f-8eb0af66d3f6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Rename the old variable (M_1) because we want it to be called lnM_1 now\n",
+    "population.rename_grid_variable(\"M_1\",\"lnM_1\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "532f691c-c1f6-46cc-84f2-970ec1216e40",
+   "metadata": {},
+   "source": [
+    "Next, we change the spacing function so that it works in the log space. We also adapt the probability calculation so that it calculates dprob/dlnM = M * dprob/dM. Finally, we set the precode to compute M_1 because binary_c requires the actual mass, not the logarithm of the mass."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "108d470a-bb21-40b0-8387-2caa7ab0f923",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# update the sampling, note that the IMF is dprob/dM1, and the phase \n",
+    "# space is now sampled in lnM1, so we multiply by M_1 to \n",
+    "# because  M * dprob/dM = dprob/dlnM\n",
+    "population.update_grid_variable(\n",
+    "    name=\"lnM_1\",\n",
+    "    spacingfunc=\"const(math.log({min}), math.log({max}), {res})\".format(min = massrange[0], max = massrange[1], res = resolution[\"M_1\"]),\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    dphasevol=\"dlnM_1\",\n",
+    "    parameter_name=\"M_1\",\n",
+    "    precode=\"M_1=math.exp(lnM_1)\",\n",
+    ")\n",
+    "# print(population.grid_options[\"_grid_variables\"]) # debugging"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "fb8db646-f3d0-4ccd-81ba-7fde23f29c79",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Grid has handled 40 stars\n",
+      "with a total probability of 0.9956307907476224\n",
+      "Total starcount for this run will be: 40\n",
+      "Generating grid code\n",
+      "Constructing/adding: lnM_1\n",
+      "Population-83f80d829dbd418aa2bc745c99b71991 finished! The total probability was: 0.9956307907476224. It took a total of 0.9961590766906738s to run 40 systems on 2 cores\n",
+      "There were no errors found in this run.\n",
+      "OrderedDict([('luminosity distribution', OrderedDict([(0.25, 0.0212294), (2.75, 0.00321118), (-0.25, 0.0268827), (1.25, 0.0104553), (3.75, 0.00283037), (6.25, 7.34708e-05), (-0.75, 0.0771478), (0.75, 0.030004499999999996), (2.25, 0.00921541), (3.25, 0.0045385), (1.75, 0.014776889999999999), (4.25, 0.002380189), (4.75, 0.000869303), (5.25, 0.0007310379999999999), (5.75, 0.00036002859999999996), (-2.75, 0.1961345), (-1.75, 0.2181597), (-3.25, 0.0), (-2.25, 0.2568974), (-1.25, 0.11973310000000001)]))])\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Clean and re-evolve the population \n",
+    "population.clean()\n",
+    "analytics = population.evolve()  \n",
+    "\n",
+    "# Show the results (debugging)\n",
+    "# print (population.grid_results)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "182b1094-5057-4ccf-bac6-9b0e560ad4f6",
+   "metadata": {},
+   "source": [
+    "You should see that the total probability is very close to 1.0, as you would expect for a well-sampled grid. The total will never be exactly 1.0, but that is because we are running a simulation, not a perfect copy of reality."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "68ee1e56-21e5-48f4-b74c-50e48685ae94",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAJWCAYAAAAUZj1OAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAB37ElEQVR4nOzdd3iV9f3/8dcZ2XtPstkhrLD3ElkyREGtA+vA0eHXqq1SRa221rb+2lpx1C3WVYaAKEtUlpAwE0YgJJCQkAGEEFbW+f2BpqUKAZJz7pOc5+O6uC7PneTcrxy8Q/LK5/O+TTabzSYAAAAAAADgCpmNDgAAAAAAAICWjYIJAAAAAAAATULBBAAAAAAAgCahYAIAAAAAAECTUDABAAAAAACgSSiYAAAAAAAA0CQUTAAAAAAAAGgSq9EB7OnYsZOqr7fZ9RwhIb46cqTKrucAnBnXAMB1AHANwNVxDcDVcQ24DrPZpKAgnx99W6sumOrrbXYvmL4/D+DKuAYArgOAawCujmsAro5rAGyRAwAAAAAAQJNQMAEAAAAAAKBJWvUWOQAAAAAAHKmurlbHjpWptrba6CgOU1pqVn19vdEx0IysVncFBYXJYrn02oiCCQAAAACAZnLsWJk8Pb3l4xMpk8lkdByHsFrNqq2lYGotbDabTp6s1LFjZQoNjbrkj2OLHAAAAAAAzaS2tlo+Pv4uUy6h9TGZTPLx8b/sVXgUTAAAAAAANCPKJbR0V/L/MAUTAAAAAAAAmoSCCQAAAACAVmjbti267bYbz/szeHBvffHFZw3v8+9/f6ihQ/vqyJHy8z524MB0/d//3X/esYqKCg0Z0kevv/6KJOnw4cN6+OEHdNNN1+vmm6/Xb3/7ax07dvQHOV5//ZWGj2mKf/7zZa1Z81WTn+d7CxZ8ogULPpEkPfvskzp8uPiKnuf+++/S5s0Z2r17p/7wh6cv+H5FRYf0+98/1WiWgQPTL+v8a9Z8rQ8+eO8Hz+NoDPkGAAAAAKAV6tq1u9566/2Gxx9+OFeff75EQ4eOaDi2ZMkiDRw4RIsXL9Stt/70vI8vKChQZWWl/P39JUmrV6+Un59/w9uff/5ZXX31WI0ZM1a1tfV699039fzzv9ezzz5vl8/njjtmNuvzTZo0teG/N2/O0IwZdzbp+Tp06KRf/7rTBd9++HCxDh0qbDTL5dqzZ1ezPE9TUTABAAAAANDKbdu2Re+884ZeffVteXh4SJL27durysrjevjhxzRr1sO6+eYZMpv/s9Fp4MDB+uab1Ro37hpJ5wqmwYOHNrz96NFynT17puHxtdder127dl40x8CB6VqzJkOS9Nlni7RlS6Yee2y2pk6doOHDR2ndujWyWCy6++779MEH76mwsED33fdLjRgxSs88M1vdu/dU9+499eijv1JSUrJycvYoODhETz/9B/n7B2jt2m/02mtzZLPVKzo6Rg899KiCg0P04ov/T5s2fSuLxayBA4fo9tvvalhV5e7uofLyMj300C90xx0z9cEHc/Xyy29IkpYuXazs7B361a9+0/A5VFdX67nnntbu3bsUGRmt48crJJ0rqd5441W9+OKr+uCD97R06RKZzSZ17NhZDz/8mP761z+pqOiQ/vzn5zRs2AjNmfM31dXVKykpWVFR0ZKkn/70bknSc889o127shUQEKjf/OZxRUZG6v7779Ltt9+lHj3SVVxcpJ/97G49//xftXDhPElSZGRUwyqsn/707gu+FlOnTtDo0WO1ceN6nT59RrNmPakOHTpe8v9LF0LBBAAAAACAHazdUaw1269s21VjBqZFaUCXS7uF/LFjRzV79mN65JHfKiYmtuH4Z599quHDR6pDh46yWCz69tt16tdvYMPbhw8fqXfeeUPjxl2jI0fKZbNJISGhDW+/++779dRTv9Xrr7+qnj17qW/f/ho+fNQVf06hoWF6772P9OyzT+q9997S3/72snbs2Ka//e3PGjHi/Ofdt2+vfvObx9WuXQc99thDWrZsqUaMuErPP/+s5sx5XVFR0Xr//Xf0l7/8Ufff/0tt2LBO7733kc6ePavnnvudzp492/BcN998mxYu/Leef/6vioyM0j/+8TcdOlSomJhYLV26WHffff5WwU8++VCSNHfuJyooOKhbb73hvLfX1tbqvffe0oIFn8tsNusvf3lOZWWl+sUvfqU33nhVDz74iDZvzlBBwUF98sli+fr6/mALYffuPfTII49p3ryP9de//km///2ffvQ1S0xM0sSJUyRJ48Zd0/A8x44d/dHX4ne/e06SFBAQoNdee0effPKB3n33DT3zTNNXnTGDCQAAAACAVqq+vl6zZ8/SyJGjz1t9VFtbq2XLPtfIkaMlScOHj2pYCfO91NQ0HTx4QFVVVVq9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hQsXasKECfzDApdQUlKiF154Qe+//74WLlyoDz/8UPv27TM6FuAw69at05o1azR//nwtWLBA2dnZWr58udGxAIdbv3695s+fb3QMwBAFBQV64okn9NJLL2nRokXauXOnvvrqK6NjwSAUTM3gD3/4g2677TajYwCGqK6u1i9+8Qt16NBBktS+fXsVFxcbnAqwv3Xr1qlv374KDAyUt7e3Ro8erc8//9zoWIDDhIWF6de//rXc3d3l5uam5ORkFRUVGR0LcKiKigq98MILmjlzptFRAEMsX75cY8eOVWRkpNzc3PTCCy+oa9euRseCQSiYmmjlypU6c+aMrr76aqOjAIZwd3fXxIkTJUn19fV68cUXNXLkSINTAfZXWlqqsLCwhsfh4eEqKSkxMBHgWG3btlW3bt0kSfn5+frss880ZMgQY0MBDvb444/rgQcekL+/v9FRAEMcOHBAdXV1+ulPf6prrrlG77//vgICAoyOBYNYjQ7QUixdulS///3vzzuWlJSkqqoqvfXWW8aEAhzsQtfBW2+9perqav36179WbW2t7r77boMSAo5js9l+cMxkMhmQBDDW3r17dffdd+uRRx5RQkKC0XEAh/n4448VFRWlfv36ad68eUbHAQxRV1enjIwMvfvuu/L29ta9996r+fPna8qUKUZHgwEomC7RmDFjNGbMmPOOffzxx3rllVd00003NRybOHGi5s6dK19fX0dHBOzux64DSTp58qTuueceBQYGas6cOXJzczMgHeBYERERysjIaHhcWlqq8PBwAxMBjpeZmamf//znevTRRzVu3Dij4wAO9dlnn6msrEwTJ07U8ePHderUKT377LN69NFHjY4GOExoaKj69eun4OBgSdKIESO0fft2CiYXZbL92K9gcUXat2+vPXv2GB0DcLh7771XISEheuqpp1jBAZdRUlKiG264QZ988om8vLw0ffp0Pf3000pLSzM6GuAQxcXFmjx5sl544QX169fP6DiAoebNm6eNGzfqD3/4g9FRAIfatm2bHnnkEX300Ufy8fHRfffdpxEjRui6664zOhoMwAomAE2yc+dOrVy5UikpKZo0aZKkc7NoXnvtNWODAXYWERGhBx54QLfccotqamo0depUyiW4lNdff11nz5497wfq6dOn64YbbjAwFQDAkbp27ao77rhDN954o2pqajRgwABde+21RseCQVjBBAAAAAAAgCbhLnIAAAAAAABoEgomAAAAAAAANAkFEwAAAAAAAJqEggkAAAAAAABNQsEEAAAAAACAJqFgAgAAAAAAQJNQMAEAAAAAAKBJKJgAAECLN3z4cK1bt87oGAAAAC6LggkAAKCZHT16VO3bt1dJSYnRUQAAAByCggkAAKAZ/OlPf9I333wjSdq9e7eCg4MVERFhcKpzfv7znysnJ6fhcWFhobp3735Fz3Xy5EndcccdOnPmTHPFAwAArQAFEwAAaFVyc3N18803Kz09XePGjdPKlSsb3padna1Jkyape/fu+vnPf65f/vKXeuGFF5p8zq1bt2rfvn0aNGiQJGnXrl3q0KFDk5+3OVRXV+vAgQNq165dszyfj4+Pxo8fr7/+9a/N8nwAAKB1oGACAACtRk1NjWbOnKkBAwZo3bp1mjVrln71q19p//79qq6u1v3336/Jkydr48aNGj9+vFasWNEs5/373/+uadOmNTx2poJp3bp16tevX7M+55gxY7Ro0SKVl5c36/MCAICWi4IJAAC0Gtu2bdOpU6d01113yd3dXf369dOwYcO0ZMkSbdu2TbW1tbrlllvk5uamq666Sl26dGn42BMnTmjq1Knq3r37edvJnn/+ed1444166KGHVFNT84NzVlZWKjMzUwMGDGg4tnv3bnXs2PEH7/vhhx/q5ptvbviTlpam7du3N7x9+vTpevHFFyWd28bWvn17bdiwQdK5lUi9evXSe++9J0mqqqrSzJkzdfPNN2vatGn66quvfvQ1WblypUaOHHk5L2OjPDw81KNHjwueEwAAuB6r0QEAAACaS2lpqSIjI2U2/+d3aNHR0SopKVFpaakiIiJkMpka3hYVFdXw356ennr11Vf1xz/+seHY7t27VVJSovfff19z5szRF198ofHjx593zgMHDigsLEzu7u6SpLNnzyovL0+dOnX6Qb5p06Y1rHRatWqV5s+fr7S0NElScXGxIiIitHHjxob3T01N1fLly9W3b1+tX79e8fHxDW9buHChBg0apJtuukk2m00nTpz4wfnq6+u1detWzZ49+5Jev++VlJTonXfeUW1trWw2mzp27KjJkyef9z5xcXHKy8u7rOcFAACtFyuYAABAqxEeHq7Dhw+rvr6+4dj3xU1YWJhKSkpks9nOe9v33NzcFBwcfN7zbd68WQMHDpQkDRo0SJs3b/7BOc1ms+rq6hoe5+TkyGq1KjEx8YI5jx49qr/+9a968sknG4598cUXmjBhgpKSkpSbmytJiomJUVFRkWw2m5YvX67/3979hTT1xnEc/8icduEWsm4EhcbYXY02Mb1xLgMxMRpSDLoRjC5cUIhXioy6EgQvRKQJQRHeCEFtDiYxhgwZ9Af6IyIrqJtGXYSQRGN/yt+FdH6szfjFLn6k7xcc2HnO9zznOefys+c8p6+vz6hvbGzUy5cv9fnzZ9XV1clqtVZc59WrVzpx4oRMJtO+Y/nVjx8/FI1GNTY2pomJCU1OTsrhcGhtba2s7vv373/ULwAAONgImAAAwIHhcrl05MgR3blzR8ViUU+ePFEymdTAwIBOnTolk8mkpaUllUolJRIJbWxs/La/nZ0dNTU1SZIsFou+fPlSUdPW1qbt7W3l83lJe7OeHA6HSqWS8vm88vm8CoVC2Tk3b97UjRs3ygKt9fV1eb1eDQ4OanV11Wh3u9169uyZtre3dezYMaP9woULstvtunLligKBgN69e1cxtkQiobNnz/6HJ/ev169fy+/3q76+XvF4XNlsVi6XS7lcrqzuw4cPvw3RAADA4ULABAAADoyGhgaFw2GlUil1dXXp1q1bmpmZkcPhUENDg+bn5/XgwQN1dHQoGo3K5/MZr7ZVY7FY9PXrV0l7azQdPXq0osZqtaq9vd1YK2lra0ubm5tyuVzGNjAwYNQ/evRIFotFvb29RtunT5/09u1bjY6O6vbt22VrG/X19Wl6elqnT58uu67ZbFYwGFQkEtH169c1Pz9fMbZ0Om3MwPrVt2/f5Ha7y7ZMJiOTyWTMAAuHw3r+/Lkklc1WKhQKevHiRdk9AACAw401mAAAwF8vmUwav51Op7EQ9q9OnjypSCRi7F+6dElnzpzZt1+Px6O7d+/K7/drfX1dHo+nat21a9cUDofV09OjUCikUChUte7jx4+6d+9exfhWV1c1MTGh/v5+SXsznH7Oejp+/Lja29vV39+vdDptnJPNZo21n2w2W9mrfz89fPiw6jhaW1uVyWSqHisWi7p//76Gh4eNZ7WxsVEWMMViMZ0/f77qa3kAAOBwImACAACHxtOnT2W329Xc3KyVlRVlMhl1d3cbx69evaqtrS29f/9egUBAQ0NDstlsunz5slpaWjQyMlK1X4/HI7vdrlQqJa/Xu+/1FxcXtbOzo9HRUaMtGAzq8ePHWlhYMNo6OzsVj8eN/ampqYq+3rx5o7GxMTU2Nmp3d3ffUOtPmc1mnTt3TrOzs8ZMJqfTqYsXL0ra+3pdLBYzvnYHAAAgSXW71f7uAgAAOICWl5c1NzenXC6n1tZWjY+Py+fz/d/DAgAA+OsRMAEAAAAAAKAmLPINAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABqQsAEAAAAAACAmhAwAQAAAAAAoCYETAAAAAAAAKgJARMAAAAAAABq8g/wlbD9p3152QAAAABJRU5ErkJggg==\n",
+      "text/plain": [
+       "<Figure size 1440x720 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# plot luminosity distribution\n",
+    "ldist = population.grid_results['luminosity distribution']\n",
+    "\n",
+    "# pad the distribution with zeros where data is missing\n",
+    "pad_output_distribution(ldist,\n",
+    "                        binwidth['luminosity'])\n",
+    "\n",
+    "# make pandas dataframe from our sorted dictionary of data\n",
+    "plot_data = pd.DataFrame.from_dict({'ZAMS luminosity distribution' : ldist})\n",
+    "\n",
+    "# make the plot\n",
+    "p = sns.lineplot(data=plot_data)\n",
+    "p.set_xlabel(\"$\\log_{10}$ ($L_\\mathrm{ZAMS}$ / L$_{☉}$)\")\n",
+    "p.set_ylabel(\"Number of stars\")\n",
+    "p.set(yscale=\"log\")\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "31fe91bb-177d-4e4e-90cf-298a3f8a8b61",
+   "metadata": {},
+   "source": [
+    "Most stars are low mass red dwarfs, with small luminosities. Without the IMF weighting, our model population would have got this completely wrong! \n",
+    "\n",
+    "As you increase the resolution, you will see this curve becomes even smoother. The wiggles in the curve are (usually) sampling artefacts because the curve should monotonically brighten above about log(*L*/L<sub>☉</sub>)=-2. \n",
+    " \n",
+    "Remember you can play with the binwidth too. If you want a very accurate distribution you need a narrow binwidth, but then you'll also need high resolution (lots of stars) so lots of CPU time, hence cost, CO<sub>2</sub>, etc."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.6.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/docs/source/notebook_population.ipynb b/docs/source/notebook_population.ipynb
index 961a3b71a..f6f27ee43 100644
--- a/docs/source/notebook_population.ipynb
+++ b/docs/source/notebook_population.ipynb
@@ -23,9 +23,12 @@
    "outputs": [],
    "source": [
     "import os\n",
+    "\n",
     "from binarycpython.utils.custom_logging_functions import temp_dir\n",
     "from binarycpython.utils.grid import Population\n",
     "\n",
+    "TMP_DIR = temp_dir(\"notebooks\", \"notebook_population\")\n",
+    "\n",
     "# help(Population) # Uncomment to see the public functions of this object"
    ]
   },
@@ -60,7 +63,8 @@
       "adding: max_evolution_time=15000 to BSE_options\n",
       "adding: eccentricity=0.02 to BSE_options\n",
       "adding: amt_cores=2 to grid_options\n",
-      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/example_python_population_result to custom_options >>>>\n",
+      "adding: tmp_dir=/tmp/binary_c_python/notebooks/notebook_population to grid_options\n",
+      "<<<< Warning: Key does not match previously known parameter:                     adding: data_dir=/tmp/binary_c_python/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",
@@ -88,11 +92,12 @@
     "\n",
     "\n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "    \n",
     "    # Custom options # TODO: need to be set in grid_options probably\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -133,13 +138,13 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Writing settings to /tmp/binary_c_python/example_python_population_result/example_pop_settings.json\n"
+      "Writing settings to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json\n"
      ]
     },
     {
      "data": {
       "text/plain": [
-       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+       "'/tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/example_pop_settings.json'"
       ]
      },
      "execution_count": 3,
@@ -181,7 +186,7 @@
      "text": [
       "Help on method add_grid_variable in module binarycpython.utils.grid:\n",
       "\n",
-      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='edge', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> None method of binarycpython.utils.grid.Population instance\n",
+      "add_grid_variable(name:str, longname:str, valuerange:Union[list, str], resolution:str, spacingfunc:str, probdist:str, dphasevol:Union[str, int], parameter_name:str, gridtype:str='centred', branchpoint:int=0, precode:Union[str, NoneType]=None, condition:Union[str, NoneType]=None) -> 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",
@@ -199,25 +204,25 @@
       "        name:\n",
       "            name of parameter. This is evaluated as a parameter and you can use it throughout\n",
       "            the rest of the function\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                name = 'lnm1'\n",
       "        longname:\n",
       "            Long name of parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                longname = 'Primary mass'\n",
       "        range:\n",
       "            Range of values to take. Does not get used really, the spacingfunction is used to\n",
       "            get the values from\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                range = [math.log(m_min), math.log(m_max)]\n",
       "        resolution:\n",
       "            Resolution of the sampled range (amount of samples).\n",
       "            TODO: check if this is used anywhere\n",
       "    \n",
-      "            Examples: \n",
+      "            Examples:\n",
       "                resolution = resolution[\"M_1\"]\n",
       "        spacingfunction:\n",
       "            Function determining how the range is sampled. You can either use a real function,\n",
@@ -230,12 +235,12 @@
       "        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",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                precode = 'M_1=math.exp(lnm1);'\n",
       "        probdist:\n",
       "            Function determining the probability that gets assigned to the sampled parameter\n",
-      "            \n",
+      "    \n",
       "            Examples:\n",
       "                probdist = 'Kroupa2001(M_1)*M_1'\n",
       "        dphasevol:\n",
@@ -249,7 +254,7 @@
       "                condition = 'self.grid_options['binary']==1'\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 'center'\n",
+      "            the lower edge of the value range) or 'centred'\n",
       "            (steps starting at lower edge + 0.5 * stepsize).\n",
       "\n"
      ]
@@ -313,7 +318,7 @@
       "    \"dphasevol\": \"dlnm1\",\n",
       "    \"parameter_name\": \"M_1\",\n",
       "    \"condition\": \"\",\n",
-      "    \"gridtype\": \"edge\",\n",
+      "    \"gridtype\": \"centred\",\n",
       "    \"branchpoint\": 0,\n",
       "    \"grid_variable_number\": 0\n",
       "}\n"
@@ -457,7 +462,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "adding: parse_function=<function parse_function at 0x7ff3bdf79620> to grid_options\n"
+      "adding: parse_function=<function parse_function at 0x7f531bc3b6a8> to grid_options\n"
      ]
     }
    ],
@@ -536,25 +541,25 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
-      "EXAMPLE_COMPACT_OBJECT             2.867655467480e+01 1.33079 9.81391 0.00167028 13\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "EXAMPLE_COMPACT_OBJECT             1.931266944719e+01 1.3933 12.3177 0.00124307 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.439623364590e+01 1.38004 7.81906 0.00224431 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.364277535630e+01 1.47961 15.4603 0.000925128 13\n",
-      "EXAMPLE_COMPACT_OBJECT             1.017435498578e+01 1.59052 19.4046 0.000688507 13\n",
-      "EXAMPLE_COMPACT_OBJECT             8.294870923827e+00 1.7197 24.3552 0.000512406 13\n",
-      "EXAMPLE_COMPACT_OBJECT             6.802132608769e+00 1.84162 30.5689 0.000381347 13\n",
-      "EXAMPLE_COMPACT_OBJECT             5.723570798020e+00 1.99471 38.3678 0.00028381 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.933751523833e+00 2.15875 48.1564 0.000211219 13\n",
-      "EXAMPLE_COMPACT_OBJECT             4.337250536639e+00 2.35209 60.4424 0.000157195 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.862081089332e+00 2.56776 75.8628 0.000116989 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.449960890183e+00 2.80457 95.2174 8.70668e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.172196856333e+00 3.05193 119.51 6.47976e-05 14\n",
-      "EXAMPLE_COMPACT_OBJECT             3.069627290216e+00 3.27563 150 4.82242e-05 14\n",
-      "Population-2a7732d03e594ef4b5dfe9051b41d9c0 finished! The total probability was: 0.05150046619238191. It took a total of 0.7797017097473145s to run 20 systems on 2 cores\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.450828476484e+00 1.81563 134.653 5.27143e-05 13\n",
+      "Population-f28b5f98d7ef40dcb17fc2481a6d3ced finished! The total probability was: 0.04440288843805411. It took a total of 2.785212755203247s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n"
      ]
     }
@@ -586,7 +591,7 @@
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "{'population_name': '2a7732d03e594ef4b5dfe9051b41d9c0', 'evolution_type': 'grid', 'failed_count': 0, 'failed_prob': 0, 'failed_systems_error_codes': [], 'errors_exceeded': False, 'errors_found': False, 'total_probability': 0.05150046619238191, 'total_count': 20, 'start_timestamp': 1628444120.234709, 'end_timestamp': 1628444121.0144107, 'total_mass_run': 730.1048014407228, 'total_probability_weighted_mass_run': 0.2983275843337705, 'zero_prob_stars_skipped': 0}\n"
+      "{'population_name': 'f28b5f98d7ef40dcb17fc2481a6d3ced', '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': 1629459533.935186, 'end_timestamp': 1629459536.7203987, 'total_mass_run': 684.2544031669779, 'total_probability_weighted_mass_run': 0.28134439269236855, 'zero_prob_stars_skipped': 0}\n"
      ]
     }
    ],
@@ -660,42 +665,22 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Saving grid code to grid_options\n",
-      "Writing grid code to /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
-      "Loading grid code function from /tmp/binary_c_python/binary_c_grid_2a7732d03e594ef4b5dfe9051b41d9c0.py\n",
+      "Writing grid code to /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
+      "Loading grid code function from /tmp/binary_c_python/notebooks/notebook_population/binary_c_grid_f28b5f98d7ef40dcb17fc2481a6d3ced.py\n",
       "Grid code loaded\n",
-      "Writing binary_c calls to /tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
-      "_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.\n",
+      "Writing binary_c calls to /tmp/binary_c_python/notebooks/notebook_population/example_python_population_result/binary_c_calls.txt\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
-      "/tmp/binary_c_python/example_python_population_result/binary_c_calls.txt\n",
-      "binary_c M_1 2.0 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.013208238029791246\n",
-      "binary_c M_1 2.5102526289471614 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.009829948023831718\n",
-      "binary_c M_1 3.1506841305680684 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.0073157281034221516\n",
-      "binary_c M_1 3.9545065608702976 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.22723621650191106 probability 0.005444573822104362\n"
+      "with a total probability of 0.044402888438054094\n",
+      "/tmp/binary_c_python/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.21587440567681548 probability 0.008236638755149857\n",
+      "binary_c M_1 3.4309362899259503 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.006221155214163634\n",
+      "binary_c M_1 4.257608426597089 eccentricity 0.02 max_evolution_time 15000 orbital_period 45000000080 phasevol 0.21587440567681548 probability 0.004698855121516278\n"
      ]
     }
    ],
    "source": [
-    "example_pop.set(verbosity=10)\n",
+    "example_pop.set(verbosity=1)\n",
     "calls_filename = example_pop.write_binary_c_calls_to_file()\n",
     "print(calls_filename)\n",
     "\n",
@@ -725,39 +710,34 @@
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Grid has handled 20 stars\n",
-      "with a total probability of 0.05150046619238192\n",
+      "with a total probability of 0.044402888438054094\n",
       "Total starcount for this run will be: 20\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
-      "Population-3680f3882c0a449c944462abffea2447 finished! The total probability was: 0.05150046619238191. It took a total of 0.6246354579925537s to run 20 systems on 2 cores\n",
+      "Population-e45c25448b32440cb7e220f4a3562907 finished! The total probability was: 0.04440288843805411. It took a total of 1.9539172649383545s to run 20 systems on 2 cores\n",
       "There were no errors found in this run.\n",
       "\n",
       "\n",
       "time mass zams_mass probability radius stellar_type\n",
-      "2.867655467480e+01 1.33079 9.81391 0.00167028 1.72498e-05 13\n",
-      "1.931266944719e+01 1.3933 12.3177 0.00124307 1.72498e-05 13\n",
-      "4.439623364590e+01 1.38004 7.81906 0.00224431 1.72498e-05 13\n",
-      "1.364277535630e+01 1.47961 15.4603 0.000925128 1.72498e-05 13\n",
-      "1.017435498578e+01 1.59052 19.4046 0.000688507 1.72498e-05 13\n",
-      "8.294870923827e+00 1.7197 24.3552 0.000512406 1.72498e-05 13\n",
-      "6.802132608769e+00 1.84162 30.5689 0.000381347 1.72498e-05 13\n",
-      "5.723570798020e+00 1.99471 38.3678 0.00028381 1.72498e-05 13\n",
-      "4.933751523833e+00 2.15875 48.1564 0.000211219 1.72498e-05 13\n",
-      "4.337250536639e+00 2.35209 60.4424 0.000157195 9.97286e-06 14\n",
-      "3.862081089332e+00 2.56776 75.8628 0.000116989 1.08873e-05 14\n",
-      "3.449960890183e+00 2.80457 95.2174 8.70668e-05 1.18914e-05 14\n",
-      "3.172196856333e+00 3.05193 119.51 6.47976e-05 1.29402e-05 14\n",
-      "3.069627290216e+00 3.27563 150 4.82242e-05 1.38887e-05 14\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.450828476484e+00 1.81563 134.653 5.27143e-05 1.72498e-05 13\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -817,11 +797,12 @@
     "    eccentricity=0.02,  # bse_options\n",
     "    \n",
     "    # grid_options\n",
-    "    amt_cores=2,  # grid_options\n",
+    "    amt_cores=2,\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -876,15 +857,15 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
@@ -912,96 +893,39 @@
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Grid has handled 125 stars\n",
-      "with a total probability of 0.0862478164626921\n",
-      "Total starcount for this run will be: 125\n",
+      "Grid has handled 27 stars\n",
+      "with a total probability of 0.024868380796643753\n",
+      "Total starcount for this run will be: 27\n",
       "Generating grid code\n",
       "Constructing/adding: lnm1\n",
       "Constructing/adding: q\n",
       "Constructing/adding: log10per\n",
-      "Population-d20a4c74d20a43b881c0c9e5def5f76c finished! The total probability was: 0.08624781646269201. It took a total of 8.561265707015991s to run 125 systems on 2 cores\n",
+      "Population-05128ef4c5fe4274a0356c3e99e2f2d2 finished! The total probability was: 0.024868380796643757. It took a total of 9.792905807495117s to run 27 systems on 2 cores\n",
       "There were no errors found in this run.\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",
-      "8.863377990313e+01 1.29444 5.88566 0 2.99283 13 5 15 15 0.02 0.000627913\n",
-      "1.146421815741e+02 0 5.88566 1.33062 4.43925 15 15 13 5 0.02 0.000627913\n",
-      "7.222715508467e+01 1.34922 5.88566 0 5.88566 13 5 15 15 0.02 0.000627913\n",
-      "1.350021848285e+01 1.48488 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171108213270e+01 1.53113 17.3205 0 0.1 13 5 15 15 0.02 0.000154349\n",
-      "1.171086983243e+01 1.53177 17.3205 0 0.1 13 9 15 15 0.02 0.000154349\n",
-      "1.170770599495e+01 1.53176 17.3205 0 4.40513 13 5 15 15 0.02 0.000172877\n",
-      "1.230407246199e+01 1.59499 17.3205 0 4.40513 13 5 15 15 0.02 0.000610573\n",
-      "1.108751340926e+01 1.70319 17.3205 0 8.71025 13 4 15 15 0.02 0.000610573\n",
-      "1.941017702765e+01 1.34903 17.3205 1.65097 8.71025 13 13 13 5 0.02 0.000172877\n",
-      "1.980988739731e+01 1.36979 17.3205 1.60808 8.71025 13 13 13 5 0.02 0.000121486\n",
-      "3.571858031651e+01 1.53174 17.3205 1.30504 8.71025 13 13 13 5 0.02 8.42148e-05\n",
-      "3.459153942631e+01 1.53176 17.3205 1.31004 8.71025 13 13 13 5 0.02 9.8162e-05\n",
-      "1.687368550125e+01 1.34937 17.3205 1.73856 13.0154 13 13 13 8 0.02 0.000172877\n",
-      "1.194842917007e+01 1.78096 17.3205 0 13.0154 13 8 15 15 0.02 0.000610573\n",
-      "1.733614170983e+01 1.53184 17.3205 1.42375 13.0154 13 13 13 5 0.02 9.8162e-05\n",
-      "1.723547465714e+01 1.38403 17.3205 1.71288 13.0154 13 13 13 8 0.02 0.000121486\n",
-      "1.764340254985e+01 1.53174 17.3205 1.41264 13.0154 13 13 13 5 0.02 8.42148e-05\n",
-      "1.170425790780e+01 1.52963 17.3205 0 17.3205 13 5 15 15 0.02 0.000172877\n",
-      "8.922967341481e+00 1.85486 17.3205 0 17.3205 13 8 15 15 0.02 0.000610573\n",
-      "1.232906623449e+01 1.41074 17.3205 1.34281 17.3205 13 13 13 8 0.02 0.000121486\n",
-      "1.170775828562e+01 1.53183 17.3205 1.53183 17.3205 13 5 13 5 0.02 9.8162e-05\n",
-      "1.170770422321e+01 1.53175 17.3205 1.53175 17.3205 13 5 13 5 0.02 8.42148e-05\n",
-      "5.075844624794e+00 2.12303 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.766606588165e+00 2.20484 50.9713 0 0.1 14 8 15 15 0.02 3.79411e-05\n",
-      "4.768305081494e+00 2.18838 50.9713 0 0.1 13 8 15 15 0.02 3.79411e-05\n",
-      "4.458869865939e+00 2.29864 50.9713 0 12.8178 14 8 15 15 0.02 0.000150087\n",
-      "1.806014211040e+01 2.10446 50.9713 1.40749 12.8178 13 13 13 5 0.02 2.9863e-05\n",
-      "4.797342083485e+00 2.10328 50.9713 0 12.8178 13 13 15 1 0.02 4.24954e-05\n",
-      "1.721374713429e+01 2.21673 50.9713 1.42212 12.8178 14 14 13 5 0.02 2.41295e-05\n",
-      "4.055645404546e+00 2.47276 50.9713 0 25.5357 14 7 15 15 0.02 0.000150087\n",
-      "1.806123543037e+01 2.21893 50.9713 1.40745 12.8178 14 14 13 5 0.02 2.07011e-05\n",
-      "8.117519147635e+00 2.10433 50.9713 2.21473 25.5357 13 13 14 8 0.02 4.24954e-05\n",
-      "8.315554923168e+00 2.15343 50.9713 2.08519 25.5357 13 13 13 8 0.02 2.9863e-05\n",
-      "7.917420996633e+00 2.21892 50.9713 1.7431 25.5357 14 14 13 8 0.02 2.07011e-05\n",
-      "7.693213405973e+00 2.21805 50.9713 1.78384 25.5357 14 14 13 8 0.02 2.41295e-05\n",
-      "3.753837732894e+00 2.62517 50.9713 0 38.2535 14 7 15 15 0.02 0.000150087\n",
-      "7.087296558990e+00 2.10417 50.9713 2.40935 38.2535 13 13 14 8 0.02 4.24954e-05\n",
-      "7.007109286263e+00 2.15854 50.9713 2.28672 38.2535 13 13 14 8 0.02 2.9863e-05\n",
-      "5.653200958306e+00 2.21878 50.9713 2.0587 38.2535 14 14 13 8 0.02 2.41295e-05\n",
-      "5.733794947644e+00 2.21892 50.9713 1.99255 38.2535 14 14 13 8 0.02 2.07011e-05\n",
-      "3.513216011269e+00 2.76647 50.9713 0 50.9713 14 7 15 15 0.02 0.000150087\n",
-      "4.750574783854e+00 2.27442 50.9713 0 50.9713 14 8 15 15 0.02 4.24954e-05\n",
-      "7.278384712062e+00 1.29678 50.9713 2.09216 50.9713 13 8 13 13 0.02 2.9863e-05\n",
-      "4.765996194699e+00 2.20787 50.9713 2.20787 50.9713 14 8 14 8 0.02 2.07011e-05\n",
-      "4.765535914728e+00 2.21331 50.9713 2.21331 50.9713 14 8 14 8 0.02 2.41295e-05\n",
-      "3.104706358826e+00 3.17639 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.069363482023e+00 3.27572 150 0 0.1 14 7 15 15 0.02 9.32641e-06\n",
-      "3.047074050271e+00 3.3836 150 0 37.575 14 7 15 15 0.02 3.68933e-05\n",
-      "5.974759306305e+00 3.23604 150 2.53922 37.575 14 14 14 7 0.02 1.04459e-05\n",
-      "6.074084349384e+00 3.30145 150 2.13876 37.575 14 14 13 8 0.02 7.34071e-06\n",
-      "5.733865371895e+00 3.29994 150 2.00498 37.575 14 14 13 8 0.02 5.93135e-06\n",
-      "3.027099358410e+00 3.53631 150 0 75.05 14 7 15 15 0.02 3.68933e-05\n",
-      "5.807147339697e+00 3.30197 150 1.9791 37.575 14 14 13 8 0.02 5.08861e-06\n",
-      "4.862942347290e+00 3.25294 150 2.97823 75.05 14 14 14 7 0.02 1.04459e-05\n",
-      "4.556479830908e+00 3.29942 150 2.73221 75.05 14 14 14 7 0.02 7.34071e-06\n",
-      "3.853070305680e+00 3.29977 150 2.62486 75.05 14 14 14 7 0.02 5.93135e-06\n",
-      "3.881529045940e+00 3.30149 150 2.55924 75.05 14 14 14 7 0.02 5.08861e-06\n",
-      "3.015033359333e+00 3.64419 150 0 112.525 14 7 15 15 0.02 3.68933e-05\n",
-      "4.126828648362e+00 3.32047 150 0 112.525 14 14 15 3 0.02 1.04459e-05\n",
-      "3.990017992944e+00 3.3032 150 2.94027 112.525 14 14 14 7 0.02 7.34071e-06\n",
-      "3.206771867883e+00 3.07671 150 3.11282 112.525 14 14 14 7 0.02 5.93135e-06\n",
-      "3.006827156705e+00 3.72638 150 0 150 14 7 15 15 0.02 3.68933e-05\n",
-      "3.218786094847e+00 3.30337 150 3.01344 112.525 14 14 14 7 0.02 5.08861e-06\n",
-      "4.527722847382e+00 1.42238 150 0 150 13 5 15 15 0.02 1.04459e-05\n",
-      "3.069567332611e+00 3.27804 150 3.27804 150 14 7 14 7 0.02 5.93135e-06\n",
-      "5.726405299909e+00 1.29746 150 3.22759 150 13 8 14 14 0.02 7.34071e-06\n",
-      "3.069626478211e+00 3.27565 150 3.27565 150 14 7 14 7 0.02 5.08861e-06\n",
+      "1.219029061236e+01 1.60007 17.3205 0 2.97008 13 5 15 15 0.02 0.000498487\n",
+      "1.935920346899e+01 1.29448 17.3205 0 8.71025 13 13 15 2 0.02 0.000498487\n",
+      "2.123795595728e+01 1.30902 17.3205 1.58519 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.779197348711e+01 1.3228 17.3205 1.71196 14.4504 13 13 13 8 0.02 0.000287968\n",
+      "1.548740826516e+01 1.52415 17.3205 1.45407 14.4504 13 13 13 5 0.02 0.000220016\n",
+      "1.772169325356e+01 1.81957 73.0434 1.46573 12.2572 13 13 13 5 0.02 4.43422e-05\n",
+      "1.367065500196e+01 1.66003 73.0434 1.79487 12.2572 13 13 13 8 0.02 7.67586e-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",
+      "4.227002356107e+00 2.43719 73.0434 0 60.8862 14 14 15 1 0.02 7.67586e-05\n",
+      "7.396288708628e+00 1.8216 73.0434 1.8216 60.8862 13 8 13 8 0.02 3.38788e-05\n",
+      "7.394728392218e+00 1.80919 73.0434 1.79091 60.8862 13 13 13 8 0.02 4.43422e-05\n",
       "\n"
      ]
     }
    ],
    "source": [
-    "import os\n",
-    "\n",
-    "from binarycpython.utils.grid import Population\n",
-    "from binarycpython.utils.custom_logging_functions import temp_dir\n",
-    "\n",
     "def parse_function(self, output):\n",
     "    \"\"\"\n",
     "    Example parsing function\n",
@@ -1067,10 +991,11 @@
     "    \n",
     "    # grid_options\n",
     "    amt_cores=2,  # grid_options\n",
+    "    tmp_dir=TMP_DIR,\n",
     "\n",
     "    # Custom options: the data directory and the output filename\n",
     "    data_dir=os.path.join(\n",
-    "        temp_dir(), \"example_python_population_result\"\n",
+    "        TMP_DIR, \"example_python_population_result\"\n",
     "    ),  # custom_options\n",
     "    base_filename=\"example_pop.dat\",  # custom_options\n",
     ")\n",
@@ -1168,14 +1093,14 @@
     "example_pop.export_all_info()\n",
     "\n",
     "# remove the result file if it exists\n",
-    "if os.path.isfile(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\")):\n",
-    "    os.remove(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"))\n",
+    "if os.path.isfile(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\")):\n",
+    "    os.remove(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"))\n",
     "\n",
     "# Evolve the population\n",
     "example_pop.evolve()\n",
     "\n",
     "# \n",
-    "with open(os.path.join(temp_dir(), \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
+    "with open(os.path.join(TMP_DIR, \"example_python_population_result\", \"example_pop.dat\"), 'r') as f:\n",
     "    output = f.read()\n",
     "print(\"\\n\")\n",
     "print(output)"
@@ -1184,7 +1109,7 @@
  ],
  "metadata": {
   "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
+   "display_name": "Python 3",
    "language": "python",
    "name": "python3"
   },
@@ -1198,7 +1123,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.5"
+   "version": "3.6.4"
   }
  },
  "nbformat": 4,
diff --git a/examples/notebook_api_functionality.ipynb b/examples/notebook_api_functionality.ipynb
index 8d454880c..020d2dc7c 100644
--- a/examples/notebook_api_functionality.ipynb
+++ b/examples/notebook_api_functionality.ipynb
@@ -5,7 +5,7 @@
    "id": "cb9d00f5-9613-471e-a4bb-6181311bf73b",
    "metadata": {},
    "source": [
-    "# Using the API functionality of binarycpython\n",
+    "# Tutorial: Using the API functionality of binary_c-python\n",
     "This notebook shows how to use the API functions that interface with binary_c. It usually is better to use wrapper functions that internally use these API functions, because most of the output here is very raw\n",
     "\n",
     "Binarycpython uses the Python-C extension framework to interface Python with C. The sourcecode for this is contained in `src/binary_c_python.c`, and the functions are available via `from binarycpython import _binary_c_bindings`.\n",
diff --git a/examples/notebook_custom_logging.ipynb b/examples/notebook_custom_logging.ipynb
index 84e41e6bc..bfdf2a5c8 100644
--- a/examples/notebook_custom_logging.ipynb
+++ b/examples/notebook_custom_logging.ipynb
@@ -5,7 +5,7 @@
    "id": "879b596b-d70c-4f90-b668-563b4ad93ffc",
    "metadata": {},
    "source": [
-    "# Using custom logging routines with binarycpython\n",
+    "# Tutorial: Using custom logging routines with binary_c-python\n",
     "In this notebook you'll learn how to use the custom logging functionality"
    ]
   },
diff --git a/examples/notebook_extra_features.ipynb b/examples/notebook_extra_features.ipynb
index b1a9ddb03..076b4098e 100644
--- a/examples/notebook_extra_features.ipynb
+++ b/examples/notebook_extra_features.ipynb
@@ -5,7 +5,7 @@
    "id": "d5c04b77-f0be-4b33-8c03-c72eb846527c",
    "metadata": {},
    "source": [
-    "# Extra features and functionality of binarycpython\n",
+    "# Tutorial: Extra features and functionality of binary_c-python\n",
     "In this notebook we'll go over some of the extra features and functionality that was not covered in the other notebooks.\n",
     "\n",
     "Within the module `binarycpython.utils.functions` there are many functions that can be useful when using binarycpython. We can see which functions are in there, again by using the `help()`"
diff --git a/examples/notebook_individual_systems.ipynb b/examples/notebook_individual_systems.ipynb
index 21d49016f..e6451e762 100644
--- a/examples/notebook_individual_systems.ipynb
+++ b/examples/notebook_individual_systems.ipynb
@@ -5,7 +5,7 @@
    "id": "a544d28c-c2e1-4c6a-b55b-8caec440743f",
    "metadata": {},
    "source": [
-    "# Running individual systems with binarycpython\n",
+    "# Tutorial: Running individual systems with binary_c-python\n",
     "This notebook will show you how to run single systems and analyze their results.\n",
     "\n",
     "It can be useful to have some functions to quickly run a single system to e.g. inspect what evolutionary steps a specific system goes through, to plot the mass loss evolution of a single star, etc. "
diff --git a/examples/notebook_luminosity_function_binaries.ipynb b/examples/notebook_luminosity_function_binaries.ipynb
index fb64dbcc9..47a96d093 100644
--- a/examples/notebook_luminosity_function_binaries.ipynb
+++ b/examples/notebook_luminosity_function_binaries.ipynb
@@ -5,7 +5,7 @@
    "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
    "metadata": {},
    "source": [
-    "# Zero-age stellar luminosity function in binaries\n",
+    "# Example use case: Zero-age stellar luminosity function in binaries\n",
     "\n",
     "In this notebook we compute the luminosity function of the zero-age main-sequence by running a population of binary stars using binary_c. \n",
     "\n",
@@ -805,14 +805,6 @@
     "p.set_ylabel(\"Number of stars\")\n",
     "p.set(yscale=\"log\")"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "e7541ebf-fe9a-4fb0-a88e-bb318d06f9eb",
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
diff --git a/examples/notebook_luminosity_function_single.ipynb b/examples/notebook_luminosity_function_single.ipynb
index fb971b34a..5980adf6d 100644
--- a/examples/notebook_luminosity_function_single.ipynb
+++ b/examples/notebook_luminosity_function_single.ipynb
@@ -430,14 +430,6 @@
     "Does this look like a reasonable stellar luminosity function to you? The implication is that the most likely stellar luminosity is 10<sup>5.8</sup> L<sub>☉</sub>! Clearly, this is not very realistic... let's see what went wrong."
    ]
   },
-  {
-   "cell_type": "markdown",
-   "id": "44586e42-b7cb-4a55-be0a-330b98b20de4",
-   "metadata": {},
-   "source": [
-    "## "
-   ]
-  },
   {
    "cell_type": "markdown",
    "id": "e32c3bbf-390f-45da-ad9c-cc3e7c9449dc",
@@ -554,9 +546,11 @@
   {
    "cell_type": "markdown",
    "id": "673031c9-7d80-45d4-b209-301c127d3edf",
-   "metadata": {},
+   "metadata": {
+    "tags": []
+   },
    "source": [
-    "# A better-sampled grid\n",
+    "## A better-sampled grid\n",
     "\n",
     "The IMF has many more low-mass stars than high-mass stars. So, instead of sampling M1 linearly, we can sample it in log space. \n",
     "\n",
diff --git a/examples/notebook_population.ipynb b/examples/notebook_population.ipynb
index f6f27ee43..fff337533 100644
--- a/examples/notebook_population.ipynb
+++ b/examples/notebook_population.ipynb
@@ -7,7 +7,7 @@
     "tags": []
    },
    "source": [
-    "# Running populations with binarycpython\n",
+    "# Tutorial: Running populations with binary_c-python\n",
     "This notebook will show you how to evolve a population of stars\n",
     "\n",
     "Much of the code in the binarycpython package is written to evolve a population of stars through the Population object, rather than running a single system. Let's go through the functionality of this object step by step and set up some example populations. \n",
-- 
GitLab