From c068d6cebfd972834996f20a61dad0ddc8318945 Mon Sep 17 00:00:00 2001
From: David Hendriks <davidhendriks93@gmail.com>
Date: Wed, 28 Jul 2021 14:22:51 +0100
Subject: [PATCH] Updated docs to include the notebooks

---
 binarycpython/utils/grid_options_defaults.py  |   4 +-
 .../doctrees/binary_c_parameters.doctree      | Bin 916523 -> 916548 bytes
 .../doctrees/custom_logging_functions.doctree | Bin 53477 -> 53515 bytes
 .../doctrees/distribution_functions.doctree   | Bin 280495 -> 280569 bytes
 docs/build/doctrees/environment.pickle        | Bin 487906 -> 520233 bytes
 docs/build/doctrees/examples.doctree          | Bin 2990 -> 3032 bytes
 docs/build/doctrees/functions.doctree         | Bin 209246 -> 209313 bytes
 docs/build/doctrees/general_examples.doctree  | Bin 17978 -> 18001 bytes
 docs/build/doctrees/grid.doctree              | Bin 113116 -> 112975 bytes
 .../doctrees/grid_options_defaults.doctree    | Bin 25084 -> 25115 bytes
 .../grid_options_descriptions.doctree         | Bin 50678 -> 51259 bytes
 docs/build/doctrees/hpc_functions.doctree     | Bin 3897 -> 3922 bytes
 docs/build/doctrees/index.doctree             | Bin 30110 -> 30135 bytes
 docs/build/doctrees/modules.doctree           | Bin 3256 -> 3281 bytes
 .../nbsphinx/notebook_population.ipynb        | 359 ++++++++
 .../doctrees/notebook_population.doctree      | Bin 0 -> 27909 bytes
 docs/build/doctrees/notebooks.doctree         | Bin 0 -> 2843 bytes
 docs/build/doctrees/plot_functions.doctree    | Bin 63126 -> 63151 bytes
 .../build/doctrees/population_example.doctree | Bin 17916 -> 17941 bytes
 docs/build/doctrees/readme_link.doctree       | Bin 26863 -> 26888 bytes
 .../build/doctrees/run_system_wrapper.doctree | Bin 14175 -> 14212 bytes
 docs/build/doctrees/spacing_functions.doctree | Bin 12373 -> 12398 bytes
 docs/build/doctrees/stellar_types.doctree     | Bin 4444 -> 4469 bytes
 docs/build/doctrees/useful_funcs.doctree      | Bin 74632 -> 76434 bytes
 docs/build/html/.buildinfo                    |   2 +-
 .../utils/custom_logging_functions.html       |  33 +-
 .../utils/distribution_functions.html         | 226 ++---
 .../binarycpython/utils/functions.html        |  69 +-
 .../_modules/binarycpython/utils/grid.html    | 274 +++---
 .../utils/grid_options_defaults.html          |  87 +-
 .../binarycpython/utils/plot_functions.html   |  15 +-
 .../utils/run_system_wrapper.html             |  17 +-
 .../utils/spacing_functions.html              |   7 +-
 .../binarycpython/utils/useful_funcs.html     |  16 +-
 docs/build/html/_modules/index.html           |   7 +-
 .../html/_sources/binary_c_parameters.rst.txt |   2 +-
 docs/build/html/_sources/examples.rst.txt     |   3 +-
 .../grid_options_descriptions.rst.txt         |  42 +-
 .../_sources/notebook_population.ipynb.txt    | 359 ++++++++
 docs/build/html/_sources/notebooks.rst.txt    |  10 +
 docs/build/html/binary_c_parameters.html      |  39 +-
 docs/build/html/custom_logging_functions.html |  55 +-
 docs/build/html/distribution_functions.html   | 115 ++-
 docs/build/html/examples.html                 |  34 +-
 docs/build/html/functions.html                |  75 +-
 docs/build/html/general_examples.html         |  34 +-
 docs/build/html/genindex.html                 |  17 +-
 docs/build/html/grid.html                     |  76 +-
 docs/build/html/grid_options_defaults.html    |  37 +-
 .../build/html/grid_options_descriptions.html |  78 +-
 docs/build/html/hpc_functions.html            |  35 +-
 docs/build/html/index.html                    |  35 +-
 docs/build/html/modules.html                  |  33 +-
 docs/build/html/notebook_population.html      | 790 ++++++++++++++++++
 docs/build/html/notebook_population.ipynb     | 359 ++++++++
 docs/build/html/notebooks.html                | 269 ++++++
 docs/build/html/objects.inv                   | Bin 2005 -> 4746 bytes
 docs/build/html/plot_functions.html           |  41 +-
 docs/build/html/population_example.html       |  38 +-
 docs/build/html/py-modindex.html              |   7 +-
 docs/build/html/readme_link.html              |  33 +-
 docs/build/html/run_system_wrapper.html       |  39 +-
 docs/build/html/search.html                   |   7 +-
 docs/build/html/searchindex.js                |   2 +-
 docs/build/html/spacing_functions.html        |  33 +-
 docs/build/html/stellar_types.html            |  33 +-
 docs/build/html/useful_funcs.html             |  42 +-
 docs/source/_templates/footer.html            |   4 +-
 docs/source/binary_c_parameters.rst           |   2 +-
 docs/source/conf.py                           |   1 +
 docs/source/examples.rst                      |   3 +-
 docs/source/grid_options_descriptions.rst     |  42 +-
 docs/source/notebook_population.ipynb         | 359 ++++++++
 docs/source/notebooks.rst                     |  10 +
 examples/notebook_population.ipynb            | 359 ++++++++
 75 files changed, 4074 insertions(+), 594 deletions(-)
 create mode 100644 docs/build/doctrees/nbsphinx/notebook_population.ipynb
 create mode 100644 docs/build/doctrees/notebook_population.doctree
 create mode 100644 docs/build/doctrees/notebooks.doctree
 create mode 100644 docs/build/html/_sources/notebook_population.ipynb.txt
 create mode 100644 docs/build/html/_sources/notebooks.rst.txt
 create mode 100644 docs/build/html/notebook_population.html
 create mode 100644 docs/build/html/notebook_population.ipynb
 create mode 100644 docs/build/html/notebooks.html
 create mode 100644 docs/source/notebook_population.ipynb
 create mode 100644 docs/source/notebooks.rst
 create mode 100644 examples/notebook_population.ipynb

diff --git a/binarycpython/utils/grid_options_defaults.py b/binarycpython/utils/grid_options_defaults.py
index 4fb5fe1b7..7f80a0e4f 100644
--- a/binarycpython/utils/grid_options_defaults.py
+++ b/binarycpython/utils/grid_options_defaults.py
@@ -786,8 +786,8 @@ def write_grid_options_to_rst_file(output_file: str) -> None:
         # Moe & di Stefano options:
         print_option_descriptions(
             f,
-            moe_distefano_default_options,
-            moe_distefano_default_options_description,
+            moe_di_stefano_default_options,
+            moe_di_stefano_default_options_description,
             "Moe & di Stefano sampler options",
             "The following options are meant to be changed by the user.",
         )
diff --git a/docs/build/doctrees/binary_c_parameters.doctree b/docs/build/doctrees/binary_c_parameters.doctree
index 39147e49b37777bd607584bb55d534f7b02de8c4..2b8b0fe1ca46d5a06a73efd23ab144570d88a675 100644
GIT binary patch
delta 408
zcmZ4e!~Dn(^9>JJY|SjJj0}tn4a|+qtt>1}O_NMb3{w=qKugQ1G&83}AwN$`%Syqk
zG)KY6Tmht5!N|zU*v!hrY_lwDAR~oFtY&j!bjIU~DXmi)r_@f-$YAY}w^A@Oz@>C@
zBD?5hSB?ZTG&dsY7sKw0DH$>uag!Z|6eh87G&6IyGjlQmF%u9o12GE_vjQ<25VHd@
z2M~kQZ~-y*c4khV-#;1cw*P11js7axBbbw!ml~gwnwMUZ5ucNpn^`i&i{ar{*6mS0
rcwaFxt>T>?n9r-ks+%E`wS0Q+FWy+jrQ1*c;x%VvTt1!o53dFQnNV(>

delta 382
zcmX@|!+iA*^9>JJY)wq8j0}tn4a|)UtWpe9Q%sZ0k_{EWKugQ1G&83}AwN$`%Syqk
zG)KY60EmnX6%387OiipzOgGE21~O7;#A-GtMrS;(n9@3>aZ2qJjSSWvc`F4o16)cc
zC$fu9cI8MgLvtgNelhI6n35rr5jWXUNMRBSM>8{LJ2NLE5HkTWGZ3=?F)I+W0Wmue
za{w_&4Hpn|Z)fJ@`Tdhob^CuN-srE}i+}LGVq{v$J3TO;SBX_OLndq4^tNBTv5ZT$
RKl#OL&d9iIy38M54FIFtW-0&x

diff --git a/docs/build/doctrees/custom_logging_functions.doctree b/docs/build/doctrees/custom_logging_functions.doctree
index 49c9e8a7f23a14b54ebb7a54e9db0a46011dced7..8564058641095488be47b9c5a05e3a42bfa0d669 100644
GIT binary patch
delta 520
zcmaF5khyyiGiw9ORECQiS>N)BTyQJROD@UG&r>MLNGwrEEG@~`oqU&npL7O$?34_#
z9&GZP@ACg-Wb~V?E2K90ub_maZhC57YEfcIYKlT~eoCs|6sX=Hpb95O-Oc$z;+#w+
zIg>Z;x7~bH`V%9FZENQWq&CTM$-!hiZQwGTB{`KqQ)II0Cp%gjZr)>;D*;oL5e`?y
z1yjY(J~=VWVDs(By;3k`*Gn*!z2F2Z^C~|e2~*}d5mT854_Mir$-CGl&DN4iPAn)c
z%|Up|IyW^pzo=3nF$E|q3zu!3(m17dibe)&4~hadh=R?Avwz4l229r4Z3QG#cc(LM
zoP2h-8LM8AUWwl1y?eAK>+cC=OhpkhMdNF44%-{a1a$f4jr;XMG&Br1YaXiPmh2JC
z$;?ZQ&q>WoFUg3{$;{0xnc~Ip@GI-&MQ5L}Toz<tn0$fh%;bNp+?$inH!%VL!QRUj

delta 495
zcmeBP#Qbz2Giw9O)LR!evcBaLKJQkVmt2yWpQligkyxUTSXz=l`9A+XsSNhmDH&ot
zSfn@K=l{vb=sVd!NNw_eK?#ZU)V$Q9#FEq$h2;E{RJ|!soq<3FPMeE`#5tLAN+t`~
z*ls>4{fQC8cC>Tl$|<P?s+7rMV4CbW(_piW+$C9{)Mf!2eI|4z^(<f|2kdesU?$~+
zW17Uz4pw$Qa<3Fj+3gZcWiL3v%KXX?NP;b#2)B?E<|dEH4l@lmADFz0ZSwwEno^m0
zB?={#1qh#6=ceZ77gZ`GPTn_5iybOG`Q0pWkaB(`<uX~Jypt6T^)_eEJ|xdrFj;T6
z6_Cu_ozA#!^2Oa|OhqM=dG^#ZCLuUlJX2byG)}3VqLIPcgDk!|X>SxbWIzG=dq1YX
ZngziA$~)x9J^94hXN;FNuRj;V1OPhUzQ_Oo

diff --git a/docs/build/doctrees/distribution_functions.doctree b/docs/build/doctrees/distribution_functions.doctree
index 1da5ab487d8e3e6976aa07ca1ccce68e92453225..a5f832e6551b727b5e2b85396944895cb9f40287 100644
GIT binary patch
delta 1789
zcmb7EeN0nV6z9DAy7E~d&{DMO!&x9K6)2*zDrjcx5D6x&%Z$VBQ65m}2lDC{1H%j|
z2u|VF-5HZ*EK6J#r{bI5M6=<tkEq+s7;_nsO_|2c#Vr1_Eha;E``RKTZrR=+_nhDF
zp8GrJ-goagbtwJ8p>)2BKf(?3`AKjYTavoD$~@&vk_Hk5ued`9Hi^MJJd%7F`tViV
z3;0Hgzybz!CD5zl1G@PtHYy+M%m7xLlQvH!vXP;GNf_~!KXn}))MYA;w0k^k#;f#m
zW=pTYZ|ak9g?{dAx-=owq^%7#8T!>V$<yU9IaW}qA{w%)pbA&jIq_FwCsZj_b!G#2
z@YbD&)o~Hd-StD%%Wq$-dS<1g{auKXl^t`UUQdTE;wcw84r)Ngm3v-MN2~JZo*n>R
z>FTZq(BiIcBfhhD91`)xeZR3Kr}lTU(b5z4O}!Q1QC{jjAJ#YZ8gXG?Mvlkj2ucm2
zKj5+!6)$tO);Gj<l~o;(T=gEs-6v_lfzt+-;zx(mz@elK{9<CsAH44ZS=n^*t}X`f
zrjymm{STMwx$?Dm^l&!bKPKqH#}bo#OoN~tA6pN4yR&9Z&9lNbSz>=u5?TX0q&5L-
zui5@_W{Gm(n!iAM#1;o}adBjL5$8MWg?1}ckRb~g$dnaQ%z{spWnq^jwr#N#3qGk)
z6k5eLS#oc&l*Ede5ufpdcp{cS=1kEi1=06Pz>xzodFX_l5mQ4y-v|qrgPolJ5mr$1
zYw!-wz_DAffSF$h;Ui|+Z$ml#8N-?IRLfnkfSq1?18OrEoIC+5iTeZy5q|}_sQQ%g
zZznLW`y9Af`0aBb#xtm9*)uXLi~ZBbS=M|uD~tIGq-xo+(otB*%!{L7W@5WXVK|Y&
zq6w&Euzdn5IA)pl%^AgCxD}SAtoZvg>OOiG8pCzNRJbl8PC;D+mC>mw*t|a5;TF9C
zp}4GUdF<#@*R}<Gf`e{d#}ygDNo;PenIyZp#o(mO@9pH-eGtjyA1H%dzsY5SOz+?1
zHY@<m+12P1G-pG=Bg+B5uwC?SV}bs9!5?VziC&LP=JROnzs%F!JUX4AvpPKfMsMuC
z5t|NKp1|eOV><K~fQ?+YAuG9|M;aoUkdbU&g7RoeIwCxn$d`J?l;@z-sIPX3P}AJz
zlIL;yh9WZ0fGU~9(CS$d_f|8B2}49;=qlT&Dj(IECZ@&4R55yQF8bO8w%5zhvXq%G
zOJzWy%gRupj>~T$IU`^sU3R45!(n)MBAX7`(Fgp()W{nP_fFXxXq7^HL$8K9L-|db
z{^%6lwjLpEUX458mxH1|C<Fu3=NoyZjh^k2Kl)fnjT1d%i8R9hv7~@3aH7QjnuM|>
zwaKuKJbD=!K_FQovc^ZdZ;YgjJRc9=k<-mcfjqLe85O|yDnhI!hw;;NUkfsEPkFt&
z1kp_jTTw9`_o2j@OcBX$MQPCx%0fszN$CLto%j}A;lV?WkE2Co<w4NWZ^n_7n{cGZ
z&KeQ>@IdL}vwnUQu|}|p=c^-TCH;cuH<oAjr+Ynq$>o*&jlm|D*W>d9L+j!uf7cM<
XIsOhWH!y*>xJ&pUpGYUx@MGNHz}ISA

delta 1745
zcmah}ZA_b06z2549p$5i3e<LG;VrXl*;1uoHb6QsF0c*QW?;c=jP3>A^}BDS9os4-
zqHHpUPI8M^Oq8fg+>gn`ckG%a?jt&lCYlj~kw}zn#>gKdKa5!-o3~$UbvpawJ?DAO
zxzD+$_nv$El=j>yE%!V(mNCVx&w<aeC1(g+vYev?l~*{-hnzwP`-*Duo!nR8Wjvzp
z0~emu=y9>e2*V7w<5QY7Y{jI;24IbYXaeWdjU?cE+wzt8e33C-uo2qv+qtV#lufq@
z=jk&4LCZE>a}#)QM^_vEK^Op!+|gy$fry=9Gk*Vwhk0lE&A965Lc*&FTR@bZ;jbY<
z?CUoqyf^#REOe%SN(o`S_l4(T-wIjv;xK?x9vx}{P~p)bJ^tg^Jmlb+<G-?nS6&)m
z-z~#Y-*Tdk3HVN2jA~m>=yCnY0+VQO4T%Q@zhti{w{ErvdJaaMnfoKG`-fX3(cUA<
zp_8H#g4i^=3FnXILr^x2{!+|}XHVK8EW0O{G)aKnlPxk_+EfHKqFsR1czl-6Wv7r-
zOtJFC*=8tgXxp`QR}FtCD6(@B`G9m-?8U~pC;l}cd*<HVfG<5-kTq7C0U6OBo(eoO
zJqY0nR<GUyI<mJC)N6f0FvuSjh2Bn!mG_AbAt3Yy#qLf^WojSyvdbQjeJnB<8HlWR
zDo4`fwf8Nc*D9ga1Yu&>14rU!7rn6uN~^#@gv(G%>tBV_90M0_K?yTT440TOU4t!D
z5rL1Qq2o(nQ9Fb~!Jtd<N1R6YIikg2rTjSX1uXvLS=b*pwdDJ=z{h<Xt^NSSECwbn
zfE^t4?gbE3%(AkJ$%>kE+1u-}>1H{Z_zVVF8r#Be$?6Q&e+7A&Ol<cIlrj^X0W)LA
zXJ9Iu!KMY+&fwSr)F~K@b*BCCZ=HR6E7jTTPpQt>vhz#eNHkJN%2%L?NwB60$!jaH
zGwCzlO!aqQU$Y_DEqEo~T3ub0Jhi-rUdhJ?>BtU6xgJ8~lP<*@apR^}x)mh@?7v@J
zRBV7S&AFl2T>=@?9q3a80m5@g&w|w)YPg5!IEOyWQd?VHeup=4_ei@2S?;IG=*JrL
zCqT{XwWxwzHzFmutV0IUQj5%VqZSbkjAZaCDu~7Mq8C1Ob<!ePu~9I(E4RhYz@|gn
zRW&~0h`mqnlB;^y7+X)7_FPQycla;GWF)CL8&jlt#prr5)R4t0v^jn5;tcJmMvrL}
z>pam~dR1)N*p5hvfiuuA8qs-<*Ca_k=#>IuS{v~QeXALvOxQ`@X+;GOh2vxEaP^7)
z`0$dFHnc&Nct0MP_4xmY(9><GGS{%Z;gG*O<dXb+NaA~>)H6Yr51{G?hbw5GfQD5t
zNA9|iOd=k%Ho3JpMHyA6Sk>kA9_0mcAb_ki+mEu-nR2otfbtV5l%<d!BuRd}e6x^h
z=FpcMNaVYD^ax0FWgdCT$htd7jqBB1)>vm_?2XF6%hPM7C%75JZs4;V*Ah22{7qpt
WU8Urjwh;GI+|STUpWe!yL4N_J`Cf_u

diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle
index 4736f93d38f415fb7a7bdc904b83a480d3293be0..9cac40f21767708fbffa9e71ccc2bc19c6d0c692 100644
GIT binary patch
delta 67201
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

delta 43996
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

diff --git a/docs/build/doctrees/examples.doctree b/docs/build/doctrees/examples.doctree
index d338f5d8552417a69007a27c5fe82a53820b2316..487fd3e3d1542a5bc3225a3cde737626765268bc 100644
GIT binary patch
delta 130
zcmZ1{enXt4fo1C1jV$HN8h$;TdHE%&N%{HN#Z%g*r1tP+<|XHprlh82=A;%+iJhX6
z;hzzh5xjX4vph57q|KYy)R-lE1amU;QsZ+{^U_N);&U={GfSp;F+BXrI{5}?sZ35r
gW--vz#N5=9$^xJnwNo;3{E9OafOO{OOfFYO0LgbUUH||9

delta 87
zcmca1zD}H_fo1CAjV$HN;;B76nR&@Mr75XtnK`M&Q(~uRWcX(UZeGkR&&)Vs^I<kM
p=E+Q4r7~F=>BT*qd5O8HC6xt0b+uD6viyoO6o7R4=E+>Hi~w(tANl|Q

diff --git a/docs/build/doctrees/functions.doctree b/docs/build/doctrees/functions.doctree
index 55930afdae733dce254051eee123bd7ff750dfd2..4fa1fa8595d451316bf9fb81bb73e75e959634b9 100644
GIT binary patch
delta 1370
zcmc&!TTB#J7~cQPf~>3pu@YHSjz||U2#c6#8|7kRZ7D%3q4ohY8DWMQv%5o>SrJ<l
zFve)sry26c^u^2K3yn3b^t?5`)R<_jtuZ#F5yiyBTVfh$G#c^DE(@#GzB(`GobUh6
zfBnwfne?8%@4fJ_%-z_sz1ezN)|}YH>&h!OgJDf5ZPpbfAB^~fa#-L?``!k^@!{Zl
zei#qlR)AXLH+?x&(SovJs|$A9YJN0<0gX@HoGyav)}^UNYyFhrD>bR9%GB)9X}e^|
zMrDfs7pMFtO!l9QADJFlm@@<}a5*1$=HG3PErmaqCDOvj%V5LYt}5q<Jz)3QWokxr
zos+&}4lug_Vhf?w^05`zb`-qU)r(%d;D^OP*$*X<M_>y!+ybBV`^BtT9Dnu0^8dmt
zyA-}}6&iMYg@^j!6d1Us4|b-V89fNM03^K84gtJ22sP}xejo&zuzC`f;>3@T>A>r<
z=QB++F~>x`Uv$c*7}902Lle<+7B<61td2r4*2f?dMAXlMA1+yW+2^qTb8x5NnPJGs
zwipz81L+P1V{q;LY+B_@BO0cxNMT*<kW4-cGc}5I3TrwCt1_S&!y{1Q?$BrpJ{p0d
zT&jh;BIexm-nH{Sdwzl^O|TXJeGWB+32jhap?kEj)ZHt#&)rNCIDg*@xa)?`aMx=n
z=EvUGa2Py8WL5_FY6g6G`wrv}Ehbq_(KU|P!cs_foH~jM>Yd3Ty?TW9NMWusopwpx
zhHTF_{=K)xj*?S#MAoppo~W~H4ZB=VBDDpzP8eEdnBC=c?OLitg27}I+&@4{*?~i3
z3bF%l!`1HsrEGkFJj-0N!^yKtGF2yMi5ihT6i*x@8;YsX%SRDP_5VY>PgA`4f<8oD
zl%lGIdt)2%n=A<Ya-5uB1uFY_gj8gLihT7W86}(ezHXFMag#nuR;+|C@x%?%kUQrg
z`JR&~AI!=>$V<=1s)f}hYGK>|Cc~>24E0nyzX<$ihE!R1TRs`970wjFAl@qyDp@WS
zb`f7FT_bwL<f5gO-G)gO<b>9e`Bwfv^INuawIF#4qIp3rEQ?%wou(=VwUB1ojjnss
X85pk+9=MlpbGa;$oM&HG3QL4Htli~m

delta 1186
zcmcgrT}V@5820^+P24KW#@v$HnKRv@sik2z=A@$NXBUxn(a${E)=upY&yiADwIoOi
zg3i_pb(6JLr2Q%KK@dfG(M4UDh|vEJ1cnh23oNkC+1%2|+s@7RK0n|0z2|-3ulvK?
z*YD@v9<yX05CVSbv&E4N`fIH#YM@<u<K8VjcI%+M|Bbtok(cHJbwuW`c&lXa+&k(9
zqx52U@q9P$bqNtq&Yp-zcRES+e;-a5;i)wK?VdqoMURUW4+Yp}PH+ijY2%2jZkF~Y
z@+D(}??06YtEC4fRc;irAWQiM3gMYPnGk-}Lv<!9$6W@{WMBn7Z-AH@c3^EWtfQU9
zu#n)x94Nq^5?HJaa(s)x2Hb2D@8??DoXwFF5e(*lF)34RDRk5`T#(0;A-D+bSQ&!t
z(=fFjff0a4{B;y;c;q-#NvrNI!lmcHM!S!}BY-V<>;mW&Y3;PQ>Z-aESj~q0F45@=
zxSacV)Ln)es76yc6rm#qDhyqQ61Xod)WorI8)T=*1#!^f!59>3%BSr;8-pkRva&YA
zAD1Ay+?+q)+{cM>p~ZBar#YxI4yHM<6~jGH%&g~ybG=~9<Nd)_G1HcrB4vAFd@HQS
zc@t2HbrWEiis_jNc$*DtFgOWCQ6DLw*C)XXINCt+vEmn~G#*`)OtlifHV|EsEs!U~
zs?3X@^SP9^D6`=W?3Yh4X=f1%2JVusTEe^VmYr1MVLMqZ11f`SYxOnCVXQ?ETdb_j
z#=2X*URI%K@F*!H>hcVMGEs{6!bJTSX`w&D<clibp`;SzM30gd#|o`Yc&Ce0vqGC(
zSYNuDv$)Jtt`m`PBowiD=A53zNXNR!ClhQ!=p!Xq)<abBUZP6jrqr@blfJBUXVSL}
z9XE-F4)&4HOJE~1L!>TmW>zVZZWtmzbN|<m*k6)&=IC<9mK&{FnS8NX2zH_!ILKTw
yLMP5=nKIz;MiEo5ycrr}nJ)l-oM&bXDc(5))zc0$)0B(fS1=!;kiN1pgUoNpn4!V|

diff --git a/docs/build/doctrees/general_examples.doctree b/docs/build/doctrees/general_examples.doctree
index 6a9ea1d82f7f59f34c616945f3276e2fab821847..e1c0cd131775ba9aff94d24ef4c79963cf4e3d71 100644
GIT binary patch
delta 73
zcmdnh!+5cWk)?rUs@q1EHYUc|o4c9j$#PD~V2_=WAr=AQZoXtYiA}OcFefuFH9jXb
aFTErqJ|{Cbvt)`F!^5wvn^Rn_F#-VYF&sz$

delta 50
zcmccE!?>%5k)?rUs{TfnHYUb7o4c9j$#QW`$zYG2k|7oW;WKh=zF<3vZF9BDHAVoy
CdJ*UV

diff --git a/docs/build/doctrees/grid.doctree b/docs/build/doctrees/grid.doctree
index 12d12b69345f33e785b43d88a98ef8f1662b729e..7a1e57aa7c4d3642e652335e52a163dc78c55582 100644
GIT binary patch
delta 1827
zcmZWpZBSHI80NVwvI>X{xFX<k_hx)4D{Dze9|kGo@F6ysPD9SJ=)x|-F0gk;cG78U
zCang;^`LL-Cu(RP8qhU%Dy`A~DyW6iSOc1le@wKTvHDTx-Yd4%{&?T_Jm-1N`|SC+
z*M6OL@%}VJ(6Cz=GL+=N&7RM3@pvrf3XiYnR`7T(cgZ}ry-s#EIXqtb;v(BKy{`E6
zy)ILCYK_-v-{@A-@=^h}l9&HhEKi><1klY+7P?u6b;09mzA|QwGvRIa<MJ|y%)Fv1
zs$Q<#U9mqW`Mvf|Z{tR{PZslha%Vn!(>|AVd$U-rH(R;WY7=5tSNNI5yNCn1QMJf2
z*33{wz47Mwp%osvGa#~`b|_Kx3FW1pLqIt@yQ>D}iY?Uhc))C-LiQY6s7;o#qihbZ
zIHufY-AfIXb+xNl*ZE?tP(D9j2#m7v3)S$k!ix`(%O=JOl<JWRaDa{e$z#u@+dOt%
zu7^*#a(OT|sd!E8^4d~Sb~!tpDt`g{dMqQkBnrJA3@a03jkC4JCKjAbrGb4&R04M<
z1szj@lUb@`Tj-x@7P#}XGJL--Y5MM^U&d&^-3`e8!iFMKyraVJ*&w@V#Dv#oK02*O
zScGHA%d|g4H(tS0S{2Dyi|Wk8N}p4<w`qrJr;ZMkVHt(C;7QslV>;|K(SZV-qtJF7
zr!6vOaOg}YN@#KmlBPHbJ}fTEj9SR|=;m-pc6*wAQ@1CYLz{eX|9|B<kpnVj#v+G0
zWXy&=a&|KeV1EoG(fk0cf>=igz=TRl51^C}BXt2xn9xN_cESRY*6u`gs@UrGIK>T)
z*4C-k|C)ywv4mg+UZtU3SecP4i;YfxUJhCG`<zYw$Etd5K9(O><o8|JBT&sA3>!ZZ
zV`5xcEypPIKC)TE55^=}Ma)%696cg3%V-gK3HdlpVS?3oTIYYG^CxSKRKpM-m&n;)
z=~(+!BO;N44-gCEn9lz0KWugF(I__U45LI_<CKohN-)r5m~Yk*bt;>Q{l>&7Ux##7
z!!;w-?u8HWWIM`P;|~*Hi2Sk_b%3Npv+7d>vxRk>nyV&nQyGeBbU!41>Rgh_zO6}Q
z13n9$R)?i1r}hKbG%cC?<Mgx5S*oh9Z3*hh_95nB{gleew_8&*)5t+I#Ayn$^+QvX
zZBAE(_dHoJN8URGCt#+@KG=|{s<Ij1BO#sJdO4d~4&yQo=&<TGth?n&bvvZHRi^st
zZU^+<XH>UdRiQfNNp<?Y?)2)E!ip<8`?~6MBf`2%&Q@LWq`C~#wtn2?Ni(@e6-1dd
zM{XYD4+svrdmQV8bcr1fnwe@gP13eDO`>2qiiL#|3*MS1SS3n%7B30~5}UZSR49>X
z^dMH!;KxXxmddx5tJK~+@!m7iq?j0gBmW-%Mm_y}gT&*wz*{~11b?MCIvui8Y;w0c
zt-YF%?)9NaNKqZ+Ae|g1kW1(GVm=!gj)y@VOElgFqW}xps`<;C<-sDMOQJFlzr%iV
zoP^8J!#lFRf=nSKv5?Qq3bu>F4&CcMiM(DcroN*{W9PT0OudFVy!*Qn4OF2(*ru%}
zsVxP+M4>Rutl^ymKySag9!8P}_`zI|=x#eq!X=4d#1kYA!j5Yc9OT%zhM6Lt4dM*}
zi4m)U{MfnODe7alw>mw|vdiA;Zgb1Ml`#_!;%MD4{5iL{@s=Ar_`0Wi9BocH(C+m0
dZtZPRCsz4fmaV;cEjQ@?Fse`+c_D&>!r%BPe18A{

delta 1941
zcma)+e^69a6vy|xU6)l57m*cZf%jHjSiu!g{9OYMP$&uh%9^xofrq=>vJ3kj>S{Ha
z+SH6Cco)uKB{BX$!XMB}cO2}8rdF1UX;Xigzd}cw$zipc(VDUQ_AQ_`&Gi1b=bn4c
z_ngmr_uhB*j`reRt>$%2BXntIn1Lrxm>qQ7ZN5Oqb!kO(JeHQ5%-a@=e3jkfwdG`G
zPY*bvRs<Y|&GFB8d0QnfjY^LP;H7lS8)|AgG667Tge0=uTB@;oDp}HD9j{e1*k=Ue
zKtSrSS`4s}{7{fjMi<T>m=#F33g0&;yj|n-mRC9jkxdswpM{+?i7i@6*4yIAWUrBw
zcvGaC?rcU~`pBaBF+Wv0?u|>)b{2X>pPyWOM;e^&mF8|~0VpS}Ap?1hj3>s1_=wj-
zMoTLi%Ks~vNam1?0pV<ACiRdVGc_*3>mjR8PYX|^uG5nMddTH7C9sxcp8bO~{5Vl6
z=_vy0l5>C2am)8N>A2?n3$RwYaK2L=le?s}pmY{1I(Q#X(+eM8$dL3uO;3PwsWmhP
z$PV8~Nw|Gq0kvRW3+PE(-@S0y9UJp%AieRc!>aJpm<P!Rr@>@{_NAgaPlbqX15`XT
zUmnaE4bqcgaAcna13p*^$zeB0-IAo}Vu2TJ)$*o0aZN4cV^b+iz)Q6-3~$xKM7&i7
zdldJi4`#p=?DRnbCJ2y|J9bbiM2-?&5uKiuLjQ64cM4%IC1R5R^9Cyii3k(aw5wb?
zcy={t0AEqVaGc@?D+s9fg8_;$%@4Cc2v+#vssUEv$$H@MW<8XQbUQsfTVZ#*`@23A
z4CXe_8t@#R+zL<QzO9fLnFr$tG%>i2z_9A{W%-L16fbycHe2cSh-{s}vwmK*vL3I<
zR@J%Pepck^8&+ET8~lI4roj3D-7v=xS1YShIgG9rT-X3vSl<Xbh{ondIIcUSL_WdR
zcOjMNqoZP7qP&zce*_hDvV=RAh2J!R1y14JCa~&GDT415!Ic+vScVWaB$j4>9a-zu
z!HM8T1U2ZcE7`w1mMz!5Jdn+tV6k>8ZC^7lE+*1lu6Iny&_`=X=R6HVVPKcJKS3_B
zFPwliQJ};2X1ZI~I$%7${yao6BRM>>7sipvKW7AS8{JhViz5qXrjpbfdM1-2**C_>
z##xom6mX>W9>)}Mr0ZG=`K^j$=5l2Hs+mj~NA&lnplv&h!q^><CJVY(8f9Z!l*>42
z*kNQ|mUVf|N<~vgOD~=(YcjNP6p`j~tCM8O7nc)d6Z+FQER$2I>dNUKZx6P%z~Ugi
zWkW#@*7s&H7OJqB!Hn!~NX0KdgbPf^AbOjEPK}KIxq^Ol5dBjH<J(8k$7$m!3l+)u
z)X4a~3jPfR|C*xfdk8-wk@2ZS#;1njLmOV%3D;#$=G__L4N~58`rpRlHdsdSTiYOu
zF`2?&nwq}b)0kN%^4X<im?OvHNuI+BGvsM1Df1*j5gy$Gc5MO$rRlUCm@vN`lBuz^
z!yQ_9(MRw=&-?5m&sI6zJiQS#74036O+Qq)&XryrW2SGi$;^zStj!jB4#>j87G?y8
zebulO-c<5>mT1Dq1U6vzUT`oUn6NgDwrc4oi^2VAz`}b2cuc#A*qd{d!_e)8xZ#n5
zI)*}^3BBns5dunjO?Nc2!4&CBjfw34I||S22QPEcM6PZ#VBY~qBsE8d<JtpYOZ?TO
zQn_}iRjSQHD%^HK2)Np)<GLLT9iYDn7#n=+W3Z_4)Iq2-|1Rf-=pbw!>akbzqQ8b0
c=q-22fdzttqZi&4LjDlUhvmVpL$ICs2M9H}FaQ7m

diff --git a/docs/build/doctrees/grid_options_defaults.doctree b/docs/build/doctrees/grid_options_defaults.doctree
index 85f8989f323ce1c8bae27de688c7dac8a4cef280..a30f5c4df06312a6b3100c35e328ecc52d10ce2b 100644
GIT binary patch
delta 145
zcmex!m~r+IM%D(FsRBtGS@|q^8&WcpOB9mx^GXsk^Cs(Cl?k)QPRS7KK^HHbEM>)o
zs(Q1&Rih|l;^d9~hry)w<OKmj5Z2~<0Y7;qdjxYb^HSq;QuESFGU9VGb2Ce(criTu
S$~yUa+%v{yoA<@rF#!Nb%Q!*+

delta 111
zcmbPzgz?W|M%D(FsUH(JvhrDS*QI18mnbCX=anQ*R<Nu=<CjjBv*JP%E8D!<id&R1
kb#irp_T)$YGr%lcFsZZoX}}NO$=~9hF)rPFH{Om303+KgR{#J2

diff --git a/docs/build/doctrees/grid_options_descriptions.doctree b/docs/build/doctrees/grid_options_descriptions.doctree
index 21e4c679b107fb157cb8ec70adfdad66409efb6e..ef9f5f153be768b3795647b853039c46c3f89296 100644
GIT binary patch
delta 3887
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
VL^sTkxvUMEl9|9Ad*AD+<iGZ6S_J?A

delta 3506
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

diff --git a/docs/build/doctrees/hpc_functions.doctree b/docs/build/doctrees/hpc_functions.doctree
index da2ff86e814c5f0b1bae3d23e1323c2e395ad97d..4fcafc7f3b5df064761c1d4e79a39e2b745defa0 100644
GIT binary patch
delta 91
zcmdlfcS(+=fn}=uMiwbn?%<r#qFjZ<yc7lJ$@Q!TlOtKBk;OLGv)*Bo>=De#%u9{W
mNzF?y$%xO%%*`yB;>GarE9>NFo?DE!Cfl<d*!+#xnGpbf=^)7f

delta 61
zcmca4w^NR#fn}=RMiwbn?&6%%qFjZ<ycC7x$@Q!TlOtKBk;OLGv)*BwT*7mU@#bcK
HUS=i$ZIKjK

diff --git a/docs/build/doctrees/index.doctree b/docs/build/doctrees/index.doctree
index 9515d8a367c083a7bc16eb5808428c7b3c03830c..7d628604db8fc2ac7160e98c9ae762d91b6a70e7 100644
GIT binary patch
delta 46
zcmbRDnsNJUMwSMascSZ}^cP9?2<BwwrN-x^=B1Zp#OGw@W|mCxVtDwKb@SvRZe{?-
CKN9Hx

delta 20
ccmdn~nsMH1MwSMasgpOd^cQVjQ^d^-0ARTYa{vGU

diff --git a/docs/build/doctrees/modules.doctree b/docs/build/doctrees/modules.doctree
index a934abb3a00f1c89d9f74c148c35a275b451e39d..e39ddcdbc7468db4e520ea49e532ac855e217618 100644
GIT binary patch
delta 44
zcmdlXc~O$3fo1BkjV$-LBzpvNGV@a7b5irtOEThfGIKLarg$+t{K~rd5!W?F0El-I
AC;$Ke

delta 18
acmca8xkHkrfo1C2jV$-LHvi_j#s~mMQU|gC

diff --git a/docs/build/doctrees/nbsphinx/notebook_population.ipynb b/docs/build/doctrees/nbsphinx/notebook_population.ipynb
new file mode 100644
index 000000000..8d2bdbf98
--- /dev/null
+++ b/docs/build/doctrees/nbsphinx/notebook_population.ipynb
@@ -0,0 +1,359 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Title page\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "from binarycpython.utils.grid import Population\n",
+    "from binarycpython.utils.functions import (\n",
+    "    get_help_all,\n",
+    "    get_help,\n",
+    "    create_hdf5,\n",
+    "    output_lines,\n",
+    ")\n",
+    "from binarycpython.utils.custom_logging_functions import temp_dir\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#########################################################\n",
+    "# This file serves as an example for running a population.\n",
+    "# The use of help(<function>) is a good way to inspect what parameters are there to use\n",
+    "#########################################################\n",
+    "\n",
+    "# Create population object\n",
+    "example_pop = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "example_pop.set(verbose=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",
+    "example_pop.set(\n",
+    "    # binary_c physics options\n",
+    "    M_1=10,  # bse_options\n",
+    "    separation=0,  # bse_options\n",
+    "    orbital_period=45000000080,  # bse_options\n",
+    "    max_evolution_time=15000,  # bse_options\n",
+    "    eccentricity=0.02,  # bse_options\n",
+    "    # Set companion to low mass\n",
+    "    M_2=0.08,  # Since in the example we run a single system, we should set the companion mass here. If we donm't do this, the code will complain.\n",
+    "    # grid_options\n",
+    "    amt_cores=2,  # grid_options\n",
+    "    verbose=1,  # verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff\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",
+    "    ),  # custom_options\n",
+    "    base_filename=\"example_pop.dat\",  # custom_options\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def parse_function(self, output):\n",
+    "    # EXAMPLE PARSE_FUNCTION\n",
+    "\n",
+    "    # extract info from the population instance\n",
+    "\n",
+    "    # Get some information from the\n",
+    "    data_dir = self.custom_options[\"data_dir\"]\n",
+    "    base_filename = self.custom_options[\"base_filename\"]\n",
+    "\n",
+    "    # Check directory, make if necessary\n",
+    "    os.makedirs(data_dir, exist_ok=True)\n",
+    "\n",
+    "    seperator = \" \"\n",
+    "\n",
+    "    # Create filename\n",
+    "    outfilename = os.path.join(data_dir, base_filename)\n",
+    "\n",
+    "    parameters = [\"time\", \"mass\", \"zams_mass\", \"probability\", \"radius\", \"stellar_type\"]\n",
+    "\n",
+    "    # Go over the output.\n",
+    "    for el in output_lines(output):\n",
+    "        headerline = el.split()[0]\n",
+    "\n",
+    "        # CHeck the header and act accordingly\n",
+    "        if headerline == \"MY_STELLAR_DATA\":\n",
+    "            values = el.split()[1:]\n",
+    "            print(values)\n",
+    "\n",
+    "            if not len(parameters) == len(values):\n",
+    "                print(\"Amount of column names isnt equal to amount of columns\")\n",
+    "                raise ValueError\n",
+    "\n",
+    "            if not os.path.exists(outfilename):\n",
+    "                with open(outfilename, \"w\") as f:\n",
+    "                    f.write(seperator.join(parameters) + \"\\n\")\n",
+    "\n",
+    "            with open(outfilename, \"a\") as f:\n",
+    "                f.write(seperator.join(values) + \"\\n\")\n",
+    "\n",
+    "\n",
+    "\n",
+    "# Creating a parsing function\n",
+    "example_pop.set(\n",
+    "    parse_function=parse_function,  # Setting the parse function thats used in the evolve_population\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2fa5188e-312f-4a05-aeda-0bd4c00629c8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "### Custom logging\n",
+    "# Log the moment when the star turns into neutron\n",
+    "example_pop.set(\n",
+    "    C_logging_code=\"\"\"\n",
+    "if(stardata->star[0].stellar_type >= 13)    \n",
+    "{\n",
+    "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
+    "    {\n",
+    "        Printf(\"MY_STELLAR_DATA %30.12e %g %g %g %g %d\\\\n\",\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
+    "            stardata->star[0].mass, // 2\n",
+    "            stardata->common.zero_age.mass[0], // 4\n",
+    "            stardata->model.probability, // 5\n",
+    "            stardata->star[0].radius, // 6\n",
+    "            stardata->star[0].stellar_type // 7\n",
+    "      );\n",
+    "    };\n",
+    "    /* Kill the simulation to save time */\n",
+    "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
+    "};\n",
+    "\"\"\"\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Add grid variables\n",
+    "resolution = {\"M_1\": 20, \"q\": 20, \"per\": 40}\n",
+    "\n",
+    "# Mass\n",
+    "example_pop.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=[2, 150],\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n",
+    "    precode=\"M_1=math.exp(lnm1)\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    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",
+    "# test_pop.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(0.1/M_1, 1, {})\".format(resolution['q']),\n",
+    "#     probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n",
+    "#     dphasevol=\"dq\",\n",
+    "#     precode=\"M_2 = q * M_1\",\n",
+    "#     parameter_name=\"M_2\",\n",
+    "#     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    "# )\n",
+    "\n",
+    "# #\n",
+    "# test_pop.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(0.15, 5.5, {})\".format(resolution[\"per\"]),\n",
+    "#    precode=\"\"\"orbital_period = 10** log10per\n",
+    "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n",
+    "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n",
+    "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n",
+    "#    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n",
+    "#    parameter_name=\"orbital_period\",\n",
+    "#    dphasevol=\"dlog10per\",\n",
+    "# )\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8c96b151-8c3b-4479-969f-6c2f898497a5",
+   "metadata": {},
+   "source": [
+    "Exporting of all the settings can be done with .export_all_info()\n",
+    "on default it exports everything, but can be supressed by turning it off:\n",
+    "  population settings (bse_options, grid_options, custom_options), turn off with include_population\n",
+    "      settings=False\n",
+    "  binary_c_defaults (all the commandline arguments that binary c accepts, and their defaults).\n",
+    "      turn off with include_binary_c_defaults=False\n",
+    "  include_binary_c_version_info (all the compilation info, and information about the compiled\n",
+    "      parameters), turn off with include_binary_c_version_info=False\n",
+    "  include_binary_c_help_all (all the help information for all the binary_c parameters),\n",
+    "      turn off with include_binary_c_help_all=Fase\n",
+    "On default it will write this to the custom_options['data_dir'], but that can be overriden by\n",
+    "  setting use_datadir=False and providing an outfile=<>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "ba83443c-64b4-4126-90b3-b1ca76c0f73d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "example_pop.export_all_info()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ef5b51a1-e56d-4bec-a5c7-b9d5bceeceba",
+   "metadata": {},
+   "source": [
+    "Executing a single system\n",
+    "This uses the M_1 orbital period etc set with the set function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "c0a9aed7-1fc9-4fe3-8bcf-4e987bfc00a9",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating the code for the shared library for the custom logging\n",
+      "['2.773586668293e+01', '1.33526', '10', '1', '1.72498e-05', '13']\n",
+      "None\n"
+     ]
+    }
+   ],
+   "source": [
+    "output = example_pop.evolve_single()\n",
+    "print(output)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "## Executing a population\n",
+    "## This uses the values generated by the grid_variables\n",
+    "example_pop.evolve()  # TODO: update this function call"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ce937b07-7292-4bb1-b2e7-d69e51bdff6e",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Wrapping up the results to an hdf5 file can be done by using the create_hdf5\n",
+    "(<directory containing data and settings>) This function takes the settings file\n",
+    "(ending in _settings.json) and the data files (ending in .dat) from the data_dir\n",
+    "and packing them into an hdf5 file, which is then written into the same data_dir directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "ad444138-f854-4fdb-8e18-49e35ac9c7e2",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating /tmp/binary_c_python/example_python_population_result/example_pop.hdf5\n",
+      "Adding settings to HDF5 file\n",
+      "Adding data to HDF5 file\n"
+     ]
+    }
+   ],
+   "source": [
+    "create_hdf5(data_dir=example_pop.custom_options[\"data_dir\"], name=\"example_pop.hdf5\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "34da69bc-fe60-4a9d-b07a-f6cd2f216964",
+   "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/notebook_population.doctree b/docs/build/doctrees/notebook_population.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..08f0c57f12317e7f4149d83f15a4840761b0faaf
GIT binary patch
literal 27909
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
KX*DRUmj4&byYr&}

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/notebooks.doctree b/docs/build/doctrees/notebooks.doctree
new file mode 100644
index 0000000000000000000000000000000000000000..f123d088aa1dfda9abcccddf71c255d92624ca9c
GIT binary patch
literal 2843
zcmZ`*&ubhv6n0|ode>gB?YPM$b}^+bX;XW1=plqsD1jbo*g{EqONC~nT`8WCrjo{9
z9|G+mB>^1@QUAdH5xw`*{PONX42wrkPw&U~-ut9Kw*EQT-KhTjzAc1Qi*w4D(u~{S
z2TZ4B&Xo%v!dHKWH{p>V8hUMYX;L2i1~gJ3GiJC7uYw;(btf}>-kjgIJatm5?zrfQ
zzSw>h9*LpvIq5RKwB?6W?RcW~r43ODI$JOJB068*dK;=pVCu;C3ku&Zh(mElZ2Eo^
z+0<`kQt>b?6Y6)Ub4DhmLq;)!P04JGc00|ewGiUFr)XY(4Om&+E)tqv8a|6UrQddR
z9=C$n7Z1fKdKAb0w~5d>pD=nQ*`zS~HBz>dL@H`-NJ@;>u34qUjT2fC#;>~lvsyL*
za&}TjKT$0T=f)znlZ(4$0xX8emCg+<#4={%7lNPOo~VI);Mc{spglqC=XLB;aS{;{
zp8^(f3cx?Z?{oaV#P1PO7GH~R#Ibmc7&hCKt5^o9&I?^CwiHTTS+N0}bm|OWE^V{-
zF-PK|A9gvQGAOB$RXwKusNEoiF3OBn{q$F$ek4_zm5k41R;h}gsUPHY!Fb_BxVVb~
z)1uP$!{=H#7`4xW-<oGS3GaPhNXF2&@BLn5s1poSnJ3(E7A`jYPSvJXtLz54J81vg
z=&EJwMZAo7{m|gm2VUQ=gX{MjXwI%t$AX(c*YW<Y#ksbF`tYtk%OKIVSgXRN%I(0?
zW?ks2g6N`;m%1Ar@i=C2$B)y}#L*(%NR3)aJz9QXxpPv@!4rqw;Ll8jGz-4}E6qw2
zrezMXKlQ^oSKLsiO~8UtjHIJ^fyHj^hQRhEmOIU|G#OTVK#jyvjJt5xixs#D{@x73
z729KJ^Wu)*i>!kZlEqA$JU}wG=%<39X(O3gn0#1Ec*ZLUxt30lmJr~vInXe~)Q=1=
zv~eWkS3HZ&wIgWOEqnfuFC?&X)RneX>iHhyNjZnR@ijFHSV6;ZnnN;lhNe6w72f%=
zR7L3sSE**u0^OBvcJ}nlN_-!$ZW3;cHbhXxGBgkhhul&Z{Jt*Ts+C@4CHRxIoi!8U
zZ$GY$-UiTn`Qpd3r*OWyv3AlQ!~`r*62K=zLc#B4RLx5|=YX4GeHSz4j|@+>VW7T(
zD@<J)r+e!Asa7-O2sk7o1(;SYg6R7(EuAK}B7aw+qxM*t7o_VtpjrteM%yTwMT7g5
z1kfrQYkw;$EH9ZRi#+zz0bdl_a<Y7~YLV2DD`{ojpZkPKOOq@n(nPu4PJ?*tM@Yt^
z|7$`*%QR}F<s&~XctMa8m_(&jzN08fC|t+J_NT(R!akc!uCK4p>x<xAoB1SO5YV)f
z;P1y1(PBJ79M6HW1F8ea&%Su_Enpd&8LpWXH&Jry=D2m^w8q^mxtmpPgv&Fy7&@Au
z|5+r>fj>bv<)j;|&MvV<Ebn{&po&H+%S|L#G;PF)p^JCHjolJccVKUnqYEPBTx9s6
zN4GK^+k0eliedV_#Ozv}JgV09l4LriHKY5JRN&4_QQvx|P_alp1g9^{0>Q)=N5#+0
ztb@!Uk!prgx5Ixg(t$0LRlNfaif5R|8~75OJ6OA)W}03So>Q3-yn+m`-UsjeCRbPJ
zo5RX^#?>5Tk;z=T@YBY>|Mkkm4{CnEK%%{*ViFDSh@)oC!8dqe93ld=i^Kb<dII20
z@dgaGBCX#Y5X0K6TlBGrPZr3xqp<!Kuf^Pg`yp^Q1yFnw#OtXQr}#e?BkT8;YgnD$
zOC|Uzx`)MD66dVdtHWHD)OrXWmCO^Jb!}0pezGR)w1+DehppG@(7hG=;7j8oLEm4u
z)$HK<1q-BjX`ly!-%WLv0a)aKYhe3%BmaQp--cf>3V0%6xbT#-AfVb|M+Ph6-A-JU
QY==dDYDPKUnPqbRKPALw8UO$Q

literal 0
HcmV?d00001

diff --git a/docs/build/doctrees/plot_functions.doctree b/docs/build/doctrees/plot_functions.doctree
index 57328fd02f2ddd260053baa71eeb415f969322ce..f0affdfdc59e0690f2070e069fceb200b846eece 100644
GIT binary patch
delta 189
zcmbRCmU;bKW|jt)sY^DpeCA*bn*4)9g;8O$45uj)TW|6b&Tv7;kc`x#RE5l9g}i))
z0w8NLH<u+=QKQLiT;YsACO_nMW=c(&tj^;xxqwH6v3PPTPdG;gd+d}9u^vp>&8<8q
zo=Nry=49rj#^<EwrI%#H=Vaz)mQ3+tc=(ldvhU|-ES;hZ43j4^?b!VO%W_5le<(vi

delta 183
zcmZ4gmU-G+W|jt)sofh{K65YzPX586GFg_>6wcC{yo@tkz#$|fwJ22~vsfW7U!kBV
zbuu59B{o5$$z5FGtiOP&iziQfCOr8Uw+?e=UixGW9uLNx$pt(jj8&6cdBS-z*kh+;
mi1pxAxVe?*#Iwn1pP#XGh%zutp2)Og@_!bt%|c)2G6Dc5;X+aX

diff --git a/docs/build/doctrees/population_example.doctree b/docs/build/doctrees/population_example.doctree
index c2f09e4dafda3abec873ad81f29dd01e9f860e01..6a13c71bb631c06a385ab1128f9652c3c2d2d912 100644
GIT binary patch
delta 47
zcmey<%{aA(k+p$kDwo?vRz(-d9>JW<ywv!d)V%bPjQE_)+{}_GUJMVvvTjy$xyA?p
Dl#CIc

delta 21
dcmbQ*!}zD0k+p$k>POd&tcot1?Om=h0svjG2qypl

diff --git a/docs/build/doctrees/readme_link.doctree b/docs/build/doctrees/readme_link.doctree
index 993113cf4c67cba24500d959f451f520e97aa898..e9622f33a0658d2e097976d6d9c3fe3e5368c872 100644
GIT binary patch
delta 46
zcmaEVk+I_vBTECz)V~{9SkokX1amU;QsZ+{^U_N);&U={GfSp;F+BXrx|uWW8501!
CzY^B~

delta 20
ccmeCU#Q6RqBTECz)F&HRSkpEur9EQ;09|+pVE_OC

diff --git a/docs/build/doctrees/run_system_wrapper.doctree b/docs/build/doctrees/run_system_wrapper.doctree
index bac76d0617cd57991a8e6869b0a4eaa34d091b4f..a6ea2f2c6c055369a77d782c380d77e53867454b 100644
GIT binary patch
delta 251
zcmcbg*OJfDz%sRRBTKgcW6ESlL66Bd1cVtCCchR4WlRF{BN-Jo&k{6aG?PlqOHn8<
z$}CA$D9K1w$jMJvNXyIta`N-1WU$9h$q?(oqGU6Ra5x9!&dD*-KY)gY$kYRkyDa0(
z%6NS8M<p9}un~G(ljCGuC(l#T0V+AAq{iq3lH-TS!ORAW0p-h;3mIFG)JLgEA@ess
uQ>o*Z>=De#%u9{WNzF?y$%xO%%*`yB;>GarE9>MGlV^<cH+!3kFaZF1f>nnA

delta 228
zcmZq4zn{m_z%n&tBTKgcWAfw)0@0J-2!t{w0$CoDy95O{&k;0ZG?7fqOHn8<$}CA$
zD9K1w$jMJn%gh0?^Yf=<u*Xix5bMEIv6(|SoP%-u<OJy-tRU5Tllx`GCzr}3Z@wwx
z%*uFlvaFH~R3cGLcrvR>{NzhYYK)E`aXzpHnAu>V$&Jc|jLnl1lnSN6cBkbRDI_Ws
fR~DC~=4!%Jg5@`VQmNyg+-dTRao*+vQxPTrtiMnO

diff --git a/docs/build/doctrees/spacing_functions.doctree b/docs/build/doctrees/spacing_functions.doctree
index 9cd4254603ca98ef74088656007aba83ddb64a59..70fd3a19e4682e01551414730b3227beb3555677 100644
GIT binary patch
delta 65
zcmV-H0KWg#VD4Z9fCQCeu>@Ex8H^EZX>Mg-Y-Mg|bZB2}X>DnAlu7{M^#zk$E#?SH
X1ONbN9gMY;;0LvnkOdI44=+XmO2`;-

delta 24
gcmaEta5aIYfn}=KMwSTO$)&o_7(F+~=m{|a0Db}p+W-In

diff --git a/docs/build/doctrees/stellar_types.doctree b/docs/build/doctrees/stellar_types.doctree
index 7d2d7a826cf471cd425845584a5e1009ea3c449d..a6440d267a247c8761eeb2c0ac1ea6bc311b716f 100644
GIT binary patch
delta 57
zcmcbk^i_$afn{peMwW6u$sWO+%)He2oYcJZl8pGA%-qb9DP9Z@zp_rQ=DWqBz{tQb
NxtnR*W_|%*MgVYF6kY%T

delta 24
gcmeyWbVrG$fn{poMwW8E$y4}lG0Jbw=VxOA0CU9%CIA2c

diff --git a/docs/build/doctrees/useful_funcs.doctree b/docs/build/doctrees/useful_funcs.doctree
index 11570d5e27fab4d435fd51ab204d43636c5ed14d..1788c284e901d0fa9672d2860baaeab237464613 100644
GIT binary patch
literal 76434
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
L5X{NPX6pX~F!o&A

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

diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo
index 0fef865eb..55a8b12a7 100644
--- a/docs/build/html/.buildinfo
+++ b/docs/build/html/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: f4e8f1e1d66809b0bdafd78f415a24e8
+config: 44b2282a912f792069bea03167435e80
 tags: 645f666f9bcd5a90fca523b33c5a78b7
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 e0517fb0b..58baa7f28 100644
--- a/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/custom_logging_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -170,11 +173,11 @@
 
 <div class="viewcode-block" id="autogen_C_logging_code"><a class="viewcode-back" href="../../../custom_logging_functions.html#binarycpython.utils.custom_logging_functions.autogen_C_logging_code">[docs]</a><span class="k">def</span> <span class="nf">autogen_C_logging_code</span><span class="p">(</span><span class="n">logging_dict</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> <span class="n">verbose</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="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function that autogenerates PRINTF statements for binaryc.</span>
+<span class="sd">    Function that auto-generates PRINTF statements for binaryc.</span>
 <span class="sd">    Input is a dictionary where the key is the header of that logging line</span>
 <span class="sd">    and items which are lists of parameters that will be put in that logging line</span>
 
-<span class="sd">    The list elements are all appended to &#39;stardata-&gt;&#39; in the autogenerated code.</span>
+<span class="sd">    The list elements are all appended to &#39;stardata-&gt;&#39; in the auto-generated code.</span>
 
 <span class="sd">    Example:</span>
 <span class="sd">        Input dictionary should look like this::</span>
@@ -190,7 +193,7 @@
 
 <span class="sd">    Args:</span>
 <span class="sd">        logging_dict: Dictionary containing lists of parameters that binary_c has to output. The keys are used by binary_c as start of the sentence.</span>
-<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicilty.</span>
+<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicitly.</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        string containing C printf statement built to output the parameters given as input.</span>
@@ -269,7 +272,7 @@
 
 <span class="sd">    Args:</span>
 <span class="sd">        code: Exact c-statement to output information in binary_c. Can be wrapped in logical statements.</span>
-<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicilty.</span>
+<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicitly.</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        string containing the custom logging code. This includes all the includes and other definitions. This code will be used as the shared library</span>
@@ -320,7 +323,7 @@
 <span class="sd">    Args:</span>
 <span class="sd">        code: string containing the custom logging code to write to a file.</span>
 <span class="sd">        filename: target filename.</span>
-<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicilty.</span>
+<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicitly.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># TODO: change this. I don&#39;t like the cwd</span>
@@ -367,13 +370,13 @@
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function to build the compile command for the shared library</span>
 
-<span class="sd">    Inspired by binary_c_inline_config command in perl</span>
+<span class="sd">    Inspired by binary_c_inline_config command in Perl</span>
 
-<span class="sd">    TODO: this function still has some cleaning up to do wrt default values for the compile command</span>
+<span class="sd">    TODO: this function still has some cleaning up to do w.r.t. default values for the compile command</span>
 <span class="sd">    # https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicilty.</span>
+<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicitly.</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        string containing the command to build the shared library</span>
@@ -475,7 +478,7 @@
 <span class="sd">        code: string containing the custom logging code</span>
 <span class="sd">        sourcefile_name: name of the file that will contain the code</span>
 <span class="sd">        outfile_name: name of the file that will be the shared library</span>
-<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicilty.</span>
+<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicitly.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># Write code to file</span>
@@ -499,7 +502,7 @@
         <span class="p">)</span>
     <span class="p">)</span>
 
-    <span class="c1"># remove extra whitespaces:</span>
+    <span class="c1"># remove extra white spaces:</span>
     <span class="n">command</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">split</span><span class="p">())</span>
 
     <span class="c1"># Execute compilation and create the library</span>
@@ -533,10 +536,10 @@
 
 <span class="sd">    Args:</span>
 <span class="sd">        custom_logging_code: string containing the custom logging code</span>
-<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicilty.</span>
+<span class="sd">        verbose: Level of verbosity. Defaults to zero if not set explicitly.</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        memory adress of the custom logging function in a int type.</span>
+<span class="sd">        memory address of the custom logging function in a capsule.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="c1">#</span>
 
@@ -547,7 +550,7 @@
 
     <span class="n">custom_logging_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">tmp_dir</span><span class="p">,</span> <span class="s2">&quot;custom_logging&quot;</span><span class="p">)</span>
 
-    <span class="c1"># Create the subdir for the custom_logging code</span>
+    <span class="c1"># Create the sub dir for the custom_logging code</span>
     <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">custom_logging_dir</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">#</span>
@@ -623,9 +626,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 51cdc6db3..ea5e18686 100644
--- a/docs/build/html/_modules/binarycpython/utils/distribution_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/distribution_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -167,12 +170,12 @@
 
 <span class="sd">Tasks:</span>
 <span class="sd">    - TODO: make some things globally present? rob does this in his module..i guess it saves</span>
-<span class="sd">        calculations but not sure if im gonna do that now</span>
+<span class="sd">        calculations but not sure if I&#39;m gonna do that now</span>
 <span class="sd">    - TODO: add eccentricity distribution: thermal</span>
 <span class="sd">    - TODO: Add SFH distributions depending on redshift</span>
 <span class="sd">    - TODO: Add metallicity distributions depending on redshift</span>
 <span class="sd">    - TODO: Add initial rotational velocity distributions</span>
-<span class="sd">    - TODO: make an n-part powerlaw thats general enough to fix the three part and the 4 part</span>
+<span class="sd">    - TODO: make an n-part power law that&#39;s general enough to fix the three part and the 4 part</span>
 <span class="sd">&quot;&quot;&quot;</span>
 
 <span class="kn">import</span> <span class="nn">gc</span>
@@ -192,7 +195,7 @@
 
 <span class="c1">###</span>
 <span class="c1"># File containing probability distributions</span>
-<span class="c1"># Mostly copied from the perl modules</span>
+<span class="c1"># Mostly copied from the Perl modules</span>
 <span class="n">LOG_LN_CONVERTER</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mf">10.0</span><span class="p">)</span>
 <span class="n">distribution_constants</span> <span class="o">=</span> <span class="p">{}</span>  <span class="c1"># To store the constants in</span>
 
@@ -201,10 +204,10 @@
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function that makes sure that the global dict is prepared to have a value set there.</span>
 <span class="sd">    This dictionary will store values and factors for the distribution functions,</span>
-<span class="sd">    so that they dont have to be calculated each time.</span>
+<span class="sd">    so that they don&#39;t have to be calculated each time.</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        global_dict: globablly acessible dictionary where factors are stored in</span>
+<span class="sd">        global_dict: globally accessible dictionary where factors are stored in</span>
 <span class="sd">        list_of_sub_keys: List of keys that must become be(come) present in the global_dict</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -295,17 +298,17 @@
     <span class="n">min_val</span><span class="p">:</span> <span class="n">Union</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">max_val</span><span class="p">:</span> <span class="n">Union</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">k</span><span class="p">:</span> <span class="n">Union</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="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function that returns the constant to normalise a powerlaw</span>
+<span class="sd">    Function that returns the constant to normalise a power law</span>
 
 <span class="sd">    TODO: what if k is -1?</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        min_val: lower bound of the range</span>
 <span class="sd">        max_val: upper bound of the range</span>
-<span class="sd">        k: powerlaw slope</span>
+<span class="sd">        k: power law slope</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        constant to normalize the given powerlaw between the min_val and max_val range</span>
+<span class="sd">        constant to normalise the given power law between the min_val and max_val range</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">k1</span> <span class="o">=</span> <span class="n">k</span> <span class="o">+</span> <span class="mf">1.0</span>
@@ -326,11 +329,11 @@
     <span class="n">x</span><span class="p">:</span> <span class="n">Union</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="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Single powerlaw with index k at x from min to max</span>
+<span class="sd">    Single power law with index k at x from min to max</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        min_val: lower bound of the powerlaw</span>
-<span class="sd">        max_val: upper bound of the powerlaw</span>
+<span class="sd">        min_val: lower bound of the power law</span>
+<span class="sd">        max_val: upper bound of the power law</span>
 <span class="sd">        k: slope of the power law</span>
 <span class="sd">        x: position at which we want to evaluate</span>
 
@@ -349,7 +352,7 @@
 
     <span class="n">powerlaw_const</span> <span class="o">=</span> <span class="n">powerlaw_constant</span><span class="p">(</span><span class="n">min_val</span><span class="p">,</span> <span class="n">max_val</span><span class="p">,</span> <span class="n">k</span><span class="p">)</span>
 
-    <span class="c1"># powerlaw</span>
+    <span class="c1"># power law</span>
     <span class="n">prob</span> <span class="o">=</span> <span class="n">powerlaw_const</span> <span class="o">*</span> <span class="p">(</span><span class="n">x</span> <span class="o">**</span> <span class="n">k</span><span class="p">)</span>
     <span class="c1"># print(</span>
     <span class="c1">#     &quot;Power law from {} to {}: const = {}, y = {}&quot;.format(</span>
@@ -369,9 +372,9 @@
     <span class="n">p3</span><span class="p">:</span> <span class="n">Union</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="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to calculate the constants for a three-part powerlaw</span>
+<span class="sd">    Function to calculate the constants for a three-part power law</span>
 
-<span class="sd">    TODO: use the powerlaw_constant function to calculate all these values</span>
+<span class="sd">    TODO: use the power law_constant function to calculate all these values</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        m0: lower bound mass</span>
@@ -442,7 +445,7 @@
     <span class="n">p3</span><span class="p">:</span> <span class="n">Union</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="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Generalized three-part power law, usually used for mass distributions</span>
+<span class="sd">    Generalised three-part power law, usually used for mass distributions</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        m: mass at which we want to evaluate the distribution.</span>
@@ -486,19 +489,19 @@
     <span class="n">gmax</span><span class="p">:</span> <span class="n">Union</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="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to calculate the normalisation constant for the gaussian</span>
+<span class="sd">    Function to calculate the normalisation constant for the Gaussian</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        mean: mean of the gaussian</span>
-<span class="sd">        sigma: standard deviation of the gaussian</span>
+<span class="sd">        mean: mean of the Gaussian</span>
+<span class="sd">        sigma: standard deviation of the Gaussian</span>
 <span class="sd">        gmin: lower bound of the range to calculate the probabilities in</span>
 <span class="sd">        gmax: upper bound of the range to calculate the probabilities in</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        normalisation constant for the gaussian distribution(mean, sigma) between gmin and gmax</span>
+<span class="sd">        normalisation constant for the Gaussian distribution(mean, sigma) between gmin and gmax</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
-    <span class="c1"># First time; calculate multipllier for given mean and sigma</span>
+    <span class="c1"># First time; calculate multiplier for given mean and sigma</span>
     <span class="n">ptot</span> <span class="o">=</span> <span class="mi">0</span>
     <span class="n">resolution</span> <span class="o">=</span> <span class="mi">1000</span>
     <span class="n">d</span> <span class="o">=</span> <span class="p">(</span><span class="n">gmax</span> <span class="o">-</span> <span class="n">gmin</span><span class="p">)</span> <span class="o">/</span> <span class="n">resolution</span>
@@ -515,15 +518,15 @@
     <span class="n">x</span><span class="p">:</span> <span class="n">Union</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">mean</span><span class="p">:</span> <span class="n">Union</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">sigma</span><span class="p">:</span> <span class="n">Union</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="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to evaluate a gaussian at a given point, but this time without any boundaries.</span>
+<span class="sd">    Function to evaluate a Gaussian at a given point, but this time without any boundaries.</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        x: location at which to evaluate the distribution</span>
-<span class="sd">        mean: mean of the gaussian</span>
-<span class="sd">        sigma: standard deviation of the gaussian</span>
+<span class="sd">        mean: mean of the Gaussian</span>
+<span class="sd">        sigma: standard deviation of the Gaussian</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        value of the gaussian at x</span>
+<span class="sd">        value of the Gaussian at x</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">gaussian_prefactor</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="mf">2.0</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">pi</span><span class="p">)</span>
 
@@ -544,13 +547,13 @@
 
 <span class="sd">    Args:</span>
 <span class="sd">        x: location at which to evaluate the distribution</span>
-<span class="sd">        mean: mean of the gaussian</span>
-<span class="sd">        sigma: standard deviation of the gaussian</span>
+<span class="sd">        mean: mean of the Gaussian</span>
+<span class="sd">        sigma: standard deviation of the Gaussian</span>
 <span class="sd">        gmin: lower bound of the range to calculate the probabilities in</span>
 <span class="sd">        gmax: upper bound of the range to calculate the probabilities in</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        &#39;probability&#39; of the gaussian distribution between the boundaries, evaluated at x</span>
+<span class="sd">        &#39;probability&#39; of the Gaussian distribution between the boundaries, evaluated at x</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># # location (X value), mean and sigma, min and max range</span>
@@ -559,7 +562,7 @@
     <span class="k">if</span> <span class="p">(</span><span class="n">x</span> <span class="o">&lt;</span> <span class="n">gmin</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">x</span> <span class="o">&gt;</span> <span class="n">gmax</span><span class="p">):</span>
         <span class="n">prob</span> <span class="o">=</span> <span class="mi">0</span>
     <span class="k">else</span><span class="p">:</span>
-        <span class="c1"># normalize over given range</span>
+        <span class="c1"># normalise over given range</span>
         <span class="c1"># TODO: add loading into global var</span>
         <span class="n">normalisation</span> <span class="o">=</span> <span class="n">gaussian_normalizing_const</span><span class="p">(</span><span class="n">mean</span><span class="p">,</span> <span class="n">sigma</span><span class="p">,</span> <span class="n">gmin</span><span class="p">,</span> <span class="n">gmax</span><span class="p">)</span>
         <span class="n">prob</span> <span class="o">=</span> <span class="n">gaussian_func</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">mean</span><span class="p">,</span> <span class="n">sigma</span><span class="p">)</span> <span class="o">/</span> <span class="n">normalisation</span>
@@ -574,7 +577,7 @@
 
 <div class="viewcode-block" id="Kroupa2001"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.Kroupa2001">[docs]</a><span class="k">def</span> <span class="nf">Kroupa2001</span><span class="p">(</span><span class="n">m</span><span class="p">:</span> <span class="n">Union</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">newopts</span><span class="p">:</span> <span class="nb">dict</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Probability distribution function for kroupa 2001 IMF, where the default values to the</span>
+<span class="sd">    Probability distribution function for Kroupa 2001 IMF, where the default values to the</span>
 <span class="sd">    three_part_powerlaw are: default = {&quot;m0&quot;: 0.1, &quot;m1&quot;: 0.5, &quot;m2&quot;: 1, &quot;mmax&quot;: 100, &quot;p1&quot;: -1.3, &quot;p2&quot;: -2.3,&quot;p3&quot;: -2.3}</span>
 
 <span class="sd">    Args:</span>
@@ -585,7 +588,7 @@
 <span class="sd">        &#39;probability&#39; of distribution function evaluated at m</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
-    <span class="c1"># Default params and override them</span>
+    <span class="c1"># Default parameters and override them</span>
     <span class="n">default</span> <span class="o">=</span> <span class="p">{</span>
         <span class="s2">&quot;m0&quot;</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
         <span class="s2">&quot;m1&quot;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span>
@@ -690,7 +693,7 @@
 
 <div class="viewcode-block" id="imf_tinsley1980"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.imf_tinsley1980">[docs]</a><span class="k">def</span> <span class="nf">imf_tinsley1980</span><span class="p">(</span><span class="n">m</span><span class="p">:</span> <span class="n">Union</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="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Probability distribution function for tinsley 1980 IMF (defined up until 80Msol): three_part_powerlaw(m, 0.1, 2.0, 10.0, 80.0, -2.0, -2.3, -3.3)</span>
+<span class="sd">    Probability distribution function for Tinsley 1980 IMF (defined up until 80Msol): three_part_powerlaw(m, 0.1, 2.0, 10.0, 80.0, -2.0, -2.3, -3.3)</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        m: mass to evaluate the distribution at</span>
@@ -717,7 +720,7 @@
 
 <div class="viewcode-block" id="imf_scalo1998"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.imf_scalo1998">[docs]</a><span class="k">def</span> <span class="nf">imf_scalo1998</span><span class="p">(</span><span class="n">m</span><span class="p">:</span> <span class="n">Union</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="o">-&gt;</span> <span class="n">Union</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="sd">&quot;&quot;&quot;</span>
-<span class="sd">    From scalo 1998</span>
+<span class="sd">    From Scalo 1998</span>
 
 <span class="sd">    Probability distribution function for Scalo 1998 IMF (defined up until 80Msol): three_part_powerlaw(m, 0.1, 1.0, 10.0, 80.0, -1.2, -2.7, -2.3)</span>
 
@@ -867,7 +870,7 @@
 <span class="sd">        amax: maximum separation of the distribution (upper bound of the range)</span>
 <span class="sd">        x0: log of minimum period of the distribution (lower bound of the range)</span>
 <span class="sd">        x1: log of maximum period of the distribution (upper bound of the range)</span>
-<span class="sd">        p: slope of the distributoon</span>
+<span class="sd">        p: slope of the distribution</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        &#39;probability&#39; of orbital period P given the other parameters</span>
@@ -880,7 +883,7 @@
         <span class="n">p1</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">+</span> <span class="n">p</span>
 
         <span class="c1"># For more details see the LyX document of binary_c for this distribution</span>
-        <span class="c1"># where the variables and normalizations are given</span>
+        <span class="c1"># where the variables and normalisations are given</span>
         <span class="c1"># we use the notation x=log(P), xmin=log(Pmin), x0=log(P0), ... to determine the</span>
         <span class="n">x</span> <span class="o">=</span> <span class="n">LOG_LN_CONVERTER</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">P</span><span class="p">)</span>
         <span class="n">xmin</span> <span class="o">=</span> <span class="n">LOG_LN_CONVERTER</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">calc_period_from_sep</span><span class="p">(</span><span class="n">M1</span><span class="p">,</span> <span class="n">M2</span><span class="p">,</span> <span class="n">amin</span><span class="p">))</span>
@@ -970,10 +973,10 @@
     <span class="c1"># save mass input and limit mass used (M1 from now on) to fitted range</span>
     <span class="n">Mwas</span> <span class="o">=</span> <span class="n">M1</span>
     <span class="n">M1</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="mf">1.15</span><span class="p">,</span> <span class="nb">min</span><span class="p">(</span><span class="mf">16.3</span><span class="p">,</span> <span class="n">M1</span><span class="p">))</span>
-    <span class="c1"># print(&quot;Izzard2012 called for M={} (trunc&#39;d to {}), P={}\n&quot;.format(Mwas, M1, P))</span>
+    <span class="c1"># print(&quot;Izzard2012 called for M={} (truncated to {}), P={}\n&quot;.format(Mwas, M1, P))</span>
 
     <span class="c1"># Calculate the normalisations</span>
-    <span class="c1"># need to normalize the distribution for this mass</span>
+    <span class="c1"># need to normalise the distribution for this mass</span>
     <span class="c1"># (and perhaps secondary mass)</span>
     <span class="n">prepare_dict</span><span class="p">(</span><span class="n">distribution_constants</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;Izzard2012&quot;</span><span class="p">,</span> <span class="n">M1</span><span class="p">])</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">distribution_constants</span><span class="p">[</span><span class="s2">&quot;Izzard2012&quot;</span><span class="p">][</span><span class="n">M1</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">log10Pmin</span><span class="p">):</span>
@@ -982,13 +985,13 @@
         <span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c1"># To prevent this loop from going recursive</span>
         <span class="n">N</span> <span class="o">=</span> <span class="mf">200.0</span>  <span class="c1"># Resolution for normalisation. I hope 1000 is enough</span>
         <span class="n">dlP</span> <span class="o">=</span> <span class="p">(</span><span class="mf">10.0</span> <span class="o">-</span> <span class="n">log10Pmin</span><span class="p">)</span> <span class="o">/</span> <span class="n">N</span>
-        <span class="n">C</span> <span class="o">=</span> <span class="mi">0</span>  <span class="c1"># normalisation const.</span>
+        <span class="n">C</span> <span class="o">=</span> <span class="mi">0</span>  <span class="c1"># normalisation constant.</span>
         <span class="k">for</span> <span class="n">lP</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">log10Pmin</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="n">dlP</span><span class="p">):</span>
             <span class="n">C</span> <span class="o">+=</span> <span class="n">dlP</span> <span class="o">*</span> <span class="n">Izzard2012_period_distribution</span><span class="p">(</span><span class="mi">10</span> <span class="o">**</span> <span class="n">lP</span><span class="p">,</span> <span class="n">M1</span><span class="p">,</span> <span class="n">log10Pmin</span><span class="p">)</span>
 
         <span class="n">distribution_constants</span><span class="p">[</span><span class="s2">&quot;Izzard2012&quot;</span><span class="p">][</span><span class="n">M1</span><span class="p">][</span><span class="n">log10Pmin</span><span class="p">]</span> <span class="o">=</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="n">C</span>
     <span class="c1"># print(</span>
-    <span class="c1">#     &quot;Normalization constant for Izzard2012 M={} (log10Pmin={}) is\</span>
+    <span class="c1">#     &quot;Normalisation constant for Izzard2012 M={} (log10Pmin={}) is\</span>
     <span class="c1">#     {}\n&quot;.format(</span>
     <span class="c1">#         M1, log10Pmin, distribution_constants[&quot;Izzard2012&quot;][M1][log10Pmin]</span>
     <span class="c1">#     )</span>
@@ -1079,7 +1082,7 @@
 <span class="sd">        z: redshift</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        Cosmic star formation rate in Solarmass year^-1 megaparsec^-3</span>
+<span class="sd">        Cosmic star formation rate in Solar mass year^-1 mega parsec^-3</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">CSFH</span> <span class="o">=</span> <span class="mf">0.015</span> <span class="o">*</span> <span class="p">((</span><span class="mi">1</span> <span class="o">+</span> <span class="n">z</span><span class="p">)</span> <span class="o">**</span> <span class="mf">2.7</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="p">(((</span><span class="mi">1</span> <span class="o">+</span> <span class="n">z</span><span class="p">)</span> <span class="o">/</span> <span class="mf">2.9</span><span class="p">)</span> <span class="o">**</span> <span class="mf">5.6</span><span class="p">))</span>
@@ -1102,8 +1105,8 @@
 <span class="c1">#</span>
 <span class="c1"># TODO: Solve the memory issues that are present. </span>
 <span class="c1">#    Are the interpolators not cleaned? </span>
-<span class="c1"># TODO: Parallellize the setting up of the interpolators</span>
-<span class="c1"># TODO: Generalize the code such that we can input other/newer tables</span>
+<span class="c1"># TODO: Parallelize the setting up of the interpolators</span>
+<span class="c1"># TODO: Generalise the code such that we can input other/newer tables</span>
 
 <span class="c1">########################################################################</span>
 
@@ -1114,7 +1117,7 @@
 
 <div class="viewcode-block" id="poisson"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.poisson">[docs]</a><span class="k">def</span> <span class="nf">poisson</span><span class="p">(</span><span class="n">lambda_val</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">nmax</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function that calculates the poisson value and normalizes</span>
+<span class="sd">    Function that calculates the Poisson value and normalises</span>
 <span class="sd">    TODO: improve the description</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -1136,7 +1139,7 @@
 
     <span class="c1"># Poisson distribution : note, n can be zero</span>
     <span class="c1">#</span>
-    <span class="c1"># nmax is the truncation : if set, we normalize</span>
+    <span class="c1"># nmax is the truncation : if set, we normalise</span>
     <span class="c1"># correctly.</span>
     <span class="n">p_val</span> <span class="o">=</span> <span class="n">_poisson</span><span class="p">(</span><span class="n">lambda_val</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
 
@@ -1161,7 +1164,7 @@
 
 <span class="k">def</span> <span class="nf">_poisson</span><span class="p">(</span><span class="n">lambda_val</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to return the poisson value</span>
+<span class="sd">    Function to return the Poisson value</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">return</span> <span class="p">(</span><span class="n">lambda_val</span> <span class="o">**</span> <span class="n">n</span><span class="p">)</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">exp</span><span class="p">(</span><span class="o">-</span><span class="n">lambda_val</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="n">math</span><span class="o">.</span><span class="n">factorial</span><span class="p">(</span><span class="n">n</span><span class="p">))</span>
@@ -1219,7 +1222,7 @@
 
 <div class="viewcode-block" id="normalize_dict"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.normalize_dict">[docs]</a><span class="k">def</span> <span class="nf">normalize_dict</span><span class="p">(</span><span class="n">result_dict</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to normalize a dictionary</span>
+<span class="sd">    Function to normalise a dictionary</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">sum_result</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">([</span><span class="n">result_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">result_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">()])</span>
@@ -1227,11 +1230,10 @@
         <span class="n">result_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">result_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">/</span> <span class="n">sum_result</span>
     <span class="k">return</span> <span class="n">result_dict</span></div>
 
-<div class="viewcode-block" id="Moe_de_Stefano_2017_multiplicity_fractions"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_multiplicity_fractions">[docs]</a><span class="k">def</span> <span class="nf">Moe_de_Stefano_2017_multiplicity_fractions</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+<div class="viewcode-block" id="Moe_di_Stefano_2017_multiplicity_fractions"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_multiplicity_fractions">[docs]</a><span class="k">def</span> <span class="nf">Moe_di_Stefano_2017_multiplicity_fractions</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function that creates a list of probability fractions and</span>
-<span class="sd">    normalizes and merges them according to the users choice.</span>
-
+<span class="sd">    normalises and merges them according to the users choice.</span>
 
 <span class="sd">    TODO: make an extrapolation functionality in this. log10(1.6e1)</span>
 <span class="sd">    is low, we can probably go a bit further</span>
@@ -1290,7 +1292,7 @@
         <span class="n">full_fractions_array</span> <span class="o">=</span> <span class="n">full_fractions_array</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">full_fractions_array</span><span class="p">)</span>
 
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_multiplicity_fractions: using model </span><span class="si">{}</span><span class="s2">: full_fractions_array: </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="s2">&quot;Poisson&quot;</span><span class="p">,</span> <span class="n">full_fractions_array</span><span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_multiplicity_fractions: using model </span><span class="si">{}</span><span class="s2">: full_fractions_array: </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="s2">&quot;Poisson&quot;</span><span class="p">,</span> <span class="n">full_fractions_array</span><span class="p">),</span>
             <span class="n">verbosity</span><span class="p">,</span>
             <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -1311,7 +1313,7 @@
         <span class="c1"># Set last value</span>
         <span class="n">full_fractions_array</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0.0</span>  <span class="c1"># no quadruples</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_multiplicity_fractions: using model </span><span class="si">{}</span><span class="s2">: full_fractions_array: </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="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">full_fractions_array</span><span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_multiplicity_fractions: using model </span><span class="si">{}</span><span class="s2">: full_fractions_array: </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="s2">&quot;data&quot;</span><span class="p">,</span> <span class="n">full_fractions_array</span><span class="p">),</span>
             <span class="n">verbosity</span><span class="p">,</span>
             <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -1320,7 +1322,7 @@
     <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;normalize_multiplicities&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;raw&quot;</span><span class="p">:</span>
         <span class="c1"># Don&#39;t multiply by the multiplicity_array, but do give a fractions array</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_multiplicity_fractions: Not normalizing (using raw results): results: </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">full_fractions_array</span><span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_multiplicity_fractions: Not normalising (using raw results): results: </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">full_fractions_array</span><span class="p">),</span>
             <span class="n">verbosity</span><span class="p">,</span>
             <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -1330,11 +1332,11 @@
         <span class="c1"># Multiply the full_multiplicity_fraction array by the multiplicity_multiplier_array, creating a weighted fractions array</span>
         <span class="n">weighted_fractions_array</span> <span class="o">=</span> <span class="n">full_fractions_array</span> <span class="o">*</span> <span class="n">multiplicity_modulator_array</span>
 
-        <span class="c1"># Normalize this so it is intotal 1:</span>
+        <span class="c1"># Normalise this so it is in total 1:</span>
         <span class="n">result</span> <span class="o">=</span> <span class="n">weighted_fractions_array</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">weighted_fractions_array</span><span class="p">)</span>
 
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_multiplicity_fractions: Normalizing with </span><span class="si">{}</span><span class="s2">. result: </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="s2">&quot;norm&quot;</span><span class="p">,</span> <span class="n">result</span><span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_multiplicity_fractions: Normalising with </span><span class="si">{}</span><span class="s2">. result: </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="s2">&quot;norm&quot;</span><span class="p">,</span> <span class="n">result</span><span class="p">),</span>
             <span class="n">verbosity</span><span class="p">,</span>
             <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -1344,17 +1346,17 @@
         <span class="c1"># (i.e. not multiplied by multiplier) and do the merging</span>
         <span class="n">result</span> <span class="o">=</span> <span class="n">merge_multiplicities</span><span class="p">(</span><span class="n">full_fractions_array</span><span class="p">,</span> <span class="n">max_multiplicity</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span><span class="p">)</span>
 
-        <span class="c1"># Then normalize to be sure</span>
+        <span class="c1"># Then normalise to be sure</span>
         <span class="n">result</span> <span class="o">=</span> <span class="n">result</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_multiplicity_fractions: Normalizing with </span><span class="si">{}</span><span class="s2">, max_multiplicity=</span><span class="si">{}</span><span class="s2"> result=</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="s2">&quot;merge&quot;</span><span class="p">,</span> <span class="n">max_multiplicity</span><span class="p">,</span> <span class="n">result</span><span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_multiplicity_fractions: Normalising with </span><span class="si">{}</span><span class="s2">, max_multiplicity=</span><span class="si">{}</span><span class="s2"> result=</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="s2">&quot;merge&quot;</span><span class="p">,</span> <span class="n">max_multiplicity</span><span class="p">,</span> <span class="n">result</span><span class="p">),</span>
             <span class="n">verbosity</span><span class="p">,</span>
             <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
 
     <span class="n">verbose_print</span><span class="p">(</span>
-        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_multiplicity_fractions: </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="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)),</span>
+        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_multiplicity_fractions: </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="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)),</span>
         <span class="n">verbosity</span><span class="p">,</span>
         <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
     <span class="p">)</span>
@@ -1382,7 +1384,7 @@
     <span class="c1"># Since the information from the table for M&amp;S is independent of any choice we make,</span>
     <span class="c1"># we need to take into account that for example our choice of minimum mass leads to</span>
     <span class="c1"># a minimum q_min that is not the same as in the table</span>
-    <span class="c1"># We should ignore those parts of the table and renormalize.</span>
+    <span class="c1"># We should ignore those parts of the table and renormalise.</span>
     <span class="c1"># If we are below the lowest value of qmin in the table we need to extrapolate the data</span>
     <span class="c1">#</span>
     <span class="c1"># Anyway, the goal of this function is to provide some extrapolated values for q when we should sample outside of the boundaries</span>
@@ -1425,9 +1427,15 @@
         <span class="c1"># qmin = options[&quot;ranges&quot;][&quot;M&quot;][</span>
         <span class="c1">#     0</span>
         <span class="c1"># ]  # TODO: this lower range must not be lower than Mmin.</span>
-        <span class="c1"># print(&quot;build_q_table qmin: {}&quot;.format(qmin))</span>
+
         <span class="n">qmin</span> <span class="o">=</span> <span class="n">options</span><span class="p">[</span><span class="s1">&#39;Mmin&#39;</span><span class="p">]</span><span class="o">/</span><span class="n">options</span><span class="p">[</span><span class="s1">&#39;M_1&#39;</span><span class="p">]</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;build_q_table qmin: </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">qmin</span><span class="p">))</span>
+        <span class="n">verbose_print</span><span class="p">(</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: build_q_table qmin: </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">qmin</span><span class="p">,</span>
+            <span class="p">),</span>
+            <span class="n">verbosity</span><span class="p">,</span>
+            <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
+        <span class="p">)</span>
 
         <span class="c1"># qmax = maximum_mass_ratio_for_RLOF(options[m], options[p])</span>
         <span class="c1"># TODO: change this to the above</span>
@@ -1440,7 +1448,13 @@
 
         <span class="n">qeps</span> <span class="o">=</span> <span class="mf">1e-8</span>  <span class="c1"># small number but such that qeps+1 != 1</span>
         <span class="k">if</span> <span class="n">qeps</span> <span class="o">+</span> <span class="mi">1</span> <span class="o">==</span> <span class="mf">1.0</span><span class="p">:</span>
-            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;qeps (= </span><span class="si">{}</span><span class="s2">) +1 == 1. Make qeps larger&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">qeps</span><span class="p">))</span>
+            <span class="n">verbose_print</span><span class="p">(</span>
+                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: build_q_table: qeps (= </span><span class="si">{}</span><span class="s2">) +1 == 1. Make qeps larger&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+                    <span class="n">qeps</span><span class="p">,</span>
+                <span class="p">),</span>
+                <span class="n">verbosity</span><span class="p">,</span>
+                <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
+            <span class="p">)</span>
 
         <span class="k">if</span> <span class="n">qmin</span> <span class="o">&gt;=</span> <span class="n">qmax</span><span class="p">:</span>
             <span class="c1"># there may be NO binaries in this part of the parameter space:</span>
@@ -1464,7 +1478,7 @@
                 <span class="n">require_extrapolation</span><span class="p">[</span><span class="s2">&quot;low&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
                 <span class="n">require_extrapolation</span><span class="p">[</span>
                     <span class="s2">&quot;high&quot;</span>
-                <span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c1"># TODO: shouldnt the extrapolation need to happen if qmax &gt; 0.95</span>
+                <span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>  <span class="c1"># TODO: shouldn&#39;t the extrapolation need to happen if qmax &gt; 0.95</span>
                 <span class="n">qdata</span><span class="p">[</span><span class="n">qmin</span><span class="p">]</span> <span class="o">=</span> <span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;rinterpolator_q&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span>
                     <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="n">m</span><span class="p">]),</span> <span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="n">p</span><span class="p">]),</span> <span class="n">qmin</span><span class="p">]</span>
                 <span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
@@ -1567,7 +1581,7 @@
                             <span class="p">)</span>
                             <span class="k">continue</span>
                         <span class="k">elif</span> <span class="n">method</span> <span class="o">==</span> <span class="s2">&quot;flat&quot;</span><span class="p">:</span>
-                            <span class="c1"># use the end value value and extrapolate it</span>
+                            <span class="c1"># use the end value and extrapolate it</span>
                             <span class="c1"># with zero slope</span>
                             <span class="n">qdata</span><span class="p">[</span><span class="n">qlimit</span><span class="p">]</span> <span class="o">=</span> <span class="n">qdata</span><span class="p">[</span><span class="n">qs</span><span class="p">[</span><span class="n">end_index</span><span class="p">]]</span>
                             <span class="n">verbose_print</span><span class="p">(</span>
@@ -1620,7 +1634,7 @@
                                 <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
                             <span class="p">)</span>
                         <span class="k">elif</span> <span class="n">method</span><span class="o">==</span><span class="s2">&quot;poly&quot;</span><span class="p">:</span>
-                            <span class="c1"># TODO: consider implementing the poly method (see perl version)</span>
+                            <span class="c1"># TODO: consider implementing the poly method (see Perl version)</span>
                             <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;M&amp;S: build_q_table: Method &#39;poly&#39; not implemented&quot;</span><span class="p">)</span>
 
                         <span class="k">else</span><span class="p">:</span>
@@ -1654,16 +1668,16 @@
 
         <span class="k">if</span> <span class="n">can_renormalize</span><span class="p">:</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: build_q_table: Renormalizing table&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: build_q_table: Renormalising table&quot;</span><span class="p">,</span>
                 <span class="n">verbosity</span><span class="p">,</span>
                 <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
             <span class="p">)</span>
 
-            <span class="c1"># now we integrate and renormalize (if the table is not all zero)</span>
+            <span class="c1"># now we integrate and renormalise (if the table is not all zero)</span>
             <span class="n">I</span> <span class="o">=</span> <span class="n">get_integration_constant_q</span><span class="p">(</span><span class="n">q_interpolator</span><span class="p">,</span> <span class="n">tmp_table</span><span class="p">,</span> <span class="n">qdata</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span><span class="p">)</span>
 
             <span class="k">if</span> <span class="n">I</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
-                <span class="c1"># normalize to 1.0 by dividing the data by 1.0/$I</span>
+                <span class="c1"># normalise to 1.0 by dividing the data by 1.0/$I</span>
                 <span class="n">q_interpolator</span><span class="o">.</span><span class="n">multiply_table_column</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mf">1.0</span> <span class="o">/</span> <span class="n">I</span><span class="p">)</span>
 
                 <span class="c1"># test this</span>
@@ -1697,7 +1711,7 @@
 
 <div class="viewcode-block" id="powerlaw_extrapolation_q"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.powerlaw_extrapolation_q">[docs]</a><span class="k">def</span> <span class="nf">powerlaw_extrapolation_q</span><span class="p">(</span><span class="n">qdata</span><span class="p">,</span> <span class="n">qs</span><span class="p">,</span> <span class="n">indices</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to do the powerlaw extrapolation at the lower end of the q range</span>
+<span class="sd">    Function to do the power law extrapolation at the lower end of the q range</span>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">newq</span> <span class="o">=</span> <span class="mf">0.05</span>
 
@@ -1751,7 +1765,7 @@
 <span class="sd">    Function to integrate the q interpolator and return the integration constant</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
-    <span class="n">dq</span> <span class="o">=</span> <span class="mf">1e-3</span>  <span class="c1"># resolution of the integration/renormalization</span>
+    <span class="n">dq</span> <span class="o">=</span> <span class="mf">1e-3</span>  <span class="c1"># resolution of the integration/renormalisation</span>
     <span class="n">I</span> <span class="o">=</span> <span class="mi">0</span>
 
     <span class="c1"># integrate: note that the value of the integral is</span>
@@ -1780,7 +1794,7 @@
 
 <div class="viewcode-block" id="fill_data"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.fill_data">[docs]</a><span class="k">def</span> <span class="nf">fill_data</span><span class="p">(</span><span class="n">sample_values</span><span class="p">,</span> <span class="n">data_dict</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function that returns the normalized array of values for given logmass and logperiod</span>
+<span class="sd">    Function that returns the normalised array of values for given logmass and logperiod</span>
 <span class="sd">    used for the e and q values</span>
 
 <span class="sd">    TODO: make sure we do the correct thing with the dstep</span>
@@ -1797,7 +1811,7 @@
         <span class="n">data</span><span class="p">[</span><span class="n">sample_value</span><span class="p">]</span> <span class="o">=</span> <span class="n">val</span>
         <span class="n">I</span> <span class="o">+=</span> <span class="n">val</span>
 
-    <span class="c1"># Normalize the data</span>
+    <span class="c1"># Normalise the data</span>
     <span class="k">for</span> <span class="n">sample_value</span> <span class="ow">in</span> <span class="n">sample_values</span><span class="p">:</span>
         <span class="n">data</span><span class="p">[</span><span class="n">sample_value</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">sample_value</span><span class="p">]</span> <span class="o">/</span> <span class="n">I</span>
 
@@ -1810,7 +1824,7 @@
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function to calculate the P integral</span>
 
-<span class="sd">    We need to renormalize this because min_per &gt; 0, and not all periods should be included</span>
+<span class="sd">    We need to renormalise this because min_per &gt; 0, and not all periods should be included</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">global</span> <span class="n">Moecache</span>
@@ -1861,7 +1875,7 @@
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Function to calculate the P integral</span>
 
-<span class="sd">    We need to renormalize this because min_per &gt; 0, and not all periods should be included</span>
+<span class="sd">    We need to renormalise this because min_per &gt; 0, and not all periods should be included</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">global</span> <span class="n">Moecache</span>
@@ -1914,9 +1928,9 @@
 
     <span class="k">return</span> <span class="n">prob_dict</span></div>
 
-<div class="viewcode-block" id="Moe_de_Stefano_2017_pdf"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_pdf">[docs]</a><span class="k">def</span> <span class="nf">Moe_de_Stefano_2017_pdf</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+<div class="viewcode-block" id="Moe_di_Stefano_2017_pdf"><a class="viewcode-back" href="../../../distribution_functions.html#binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_pdf">[docs]</a><span class="k">def</span> <span class="nf">Moe_di_Stefano_2017_pdf</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Moe &amp; distefano function to calculate the probability density.</span>
+<span class="sd">    Moe &amp; diStefano function to calculate the probability density.</span>
 
 <span class="sd">    takes a dictionary as input (in options) with options:</span>
 
@@ -1929,7 +1943,7 @@
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">verbose_print</span><span class="p">(</span>
-        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf with options:</span><span class="se">\n\t\t</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf with options:</span><span class="se">\n\t\t</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">options</span><span class="p">)</span>
         <span class="p">),</span>
         <span class="n">verbosity</span><span class="p">,</span>
@@ -1941,7 +1955,7 @@
     <span class="c1"># Get the multiplicity from the options, and if its not there, calculate it based on the</span>
     <span class="c1"># TODO: the function below makes no sense. We NEED to pass the multiplicity in the</span>
     <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;multiplicity&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
-        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Did not find a multiplicity value in the options dictionary&quot;</span>
+        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Did not find a multiplicity value in the options dictionary&quot;</span>
         <span class="n">verbose_print</span><span class="p">(</span>
             <span class="n">msg</span><span class="p">,</span>
             <span class="n">verbosity</span><span class="p">,</span>
@@ -1957,7 +1971,7 @@
     <span class="c1"># Immediately return 0 if the multiplicity modulator is 0</span>
     <span class="k">if</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;multiplicity_modulator&quot;</span><span class="p">][</span><span class="n">multiplicity</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: returning 0 because of the multiplicity modulator being 0&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: returning 0 because of the multiplicity modulator being 0&quot;</span><span class="p">,</span>
             <span class="n">verbosity</span><span class="p">,</span>
             <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -1965,12 +1979,12 @@
 
     <span class="c1">############################################################</span>
     <span class="c1"># multiplicity fraction</span>
-    <span class="c1"># Calculate the probabilty, or rather, fraction, of stars that belong to this mass</span>
+    <span class="c1"># Calculate the probability, or rather, fraction, of stars that belong to this mass</span>
 
-    <span class="n">multiplicity_probability</span> <span class="o">=</span> <span class="n">Moe_de_Stefano_2017_multiplicity_fractions</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)[</span><span class="n">multiplicity</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
+    <span class="n">multiplicity_probability</span> <span class="o">=</span> <span class="n">Moe_di_Stefano_2017_multiplicity_fractions</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="p">)[</span><span class="n">multiplicity</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
     <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;multiplicity&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">multiplicity_probability</span>
     <span class="n">verbose_print</span><span class="p">(</span>
-        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Appended multiplicity (mass1 = </span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob dict (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Appended multiplicity (mass1 = </span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob dict (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;multiplicity&#39;</span><span class="p">],</span> <span class="n">prob_dict</span>
         <span class="p">),</span>
         <span class="n">verbosity</span><span class="p">,</span>
@@ -1983,12 +1997,12 @@
     <span class="c1"># NB multiply by M1 to convert dN/dM to dN/dlnM</span>
     <span class="c1"># (dlnM = dM/M, so 1/dlnM = M/dM)</span>
 
-    <span class="c1"># TODO: Create an n-part-powerlaw method that can have breakpoints and slopes. I&#39;m using a three-part powerlaw now.</span>
-    <span class="c1"># TODO: is this actually the correct way? putting the M1 in there? Do we sample in logspace?</span>
+    <span class="c1"># TODO: Create an n-part-powerlaw method that can have breakpoints and slopes. I&#39;m using a three-part power law now.</span>
+    <span class="c1"># TODO: is this actually the correct way? putting the M1 in there? Do we sample in log space?</span>
     <span class="n">M1_probability</span> <span class="o">=</span> <span class="n">Kroupa2001</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">])</span> <span class="o">*</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]</span>
     <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;M_1&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">M1_probability</span>
     <span class="n">verbose_print</span><span class="p">(</span>
-        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Appended Mass (m=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob dict (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Appended Mass (m=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob dict (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;M_1&#39;</span><span class="p">],</span> <span class="n">prob_dict</span>
         <span class="p">),</span>
         <span class="n">verbosity</span><span class="p">,</span>
@@ -2016,7 +2030,7 @@
                 <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span> <span class="o">-</span> <span class="p">(</span><span class="n">_MS_VERBOSITY_INTERPOLATOR_LEVEL</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span>
             <span class="p">)</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Created new period interpolator: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Created new period interpolator: </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">Moecache</span><span class="p">[</span><span class="s2">&quot;rinterpolator_log10P&quot;</span><span class="p">]</span>
                 <span class="p">),</span>
                 <span class="n">verbosity</span><span class="p">,</span>
@@ -2033,7 +2047,7 @@
                     <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span> <span class="o">-</span> <span class="p">(</span><span class="n">_MS_VERBOSITY_INTERPOLATOR_LEVEL</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span>
                 <span class="p">)</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Created new q interpolator: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Created new q interpolator: </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">Moecache</span><span class="p">[</span><span class="s2">&quot;rinterpolator_q&quot;</span><span class="p">]</span>
                     <span class="p">),</span>
                     <span class="n">verbosity</span><span class="p">,</span>
@@ -2051,7 +2065,7 @@
                         <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span> <span class="o">-</span> <span class="p">(</span><span class="n">_MS_VERBOSITY_INTERPOLATOR_LEVEL</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span>
                     <span class="p">)</span>
                     <span class="n">verbose_print</span><span class="p">(</span>
-                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Created new e interpolator: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Created new e interpolator: </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">Moecache</span><span class="p">[</span><span class="s2">&quot;rinterpolator_e&quot;</span><span class="p">]</span>
                         <span class="p">),</span>
                         <span class="n">verbosity</span><span class="p">,</span>
@@ -2083,7 +2097,7 @@
         <span class="n">p_val</span> <span class="o">=</span> <span class="n">p_val</span> <span class="o">/</span> <span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;P_integrals&quot;</span><span class="p">][</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]]</span>
         <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">p_val</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Appended period (m=</span><span class="si">{}</span><span class="s2">, P=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Appended period (m=</span><span class="si">{}</span><span class="s2">, P=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">],</span> <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P&#39;</span><span class="p">],</span> <span class="n">prob_dict</span>
             <span class="p">),</span>
             <span class="n">verbosity</span><span class="p">,</span>
@@ -2109,7 +2123,7 @@
             <span class="c1"># Construct the q table</span>
             <span class="n">build_q_table</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">m_label</span><span class="p">,</span> <span class="n">p_label</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span><span class="p">)</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Created q_table (</span><span class="si">{}</span><span class="s2">) for m=</span><span class="si">{}</span><span class="s2"> p=</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">Moecache</span><span class="p">[</span>
+                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Created q_table (</span><span class="si">{}</span><span class="s2">) for m=</span><span class="si">{}</span><span class="s2"> p=</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">Moecache</span><span class="p">[</span>
                     <span class="s2">&quot;rinterpolator_q_given_</span><span class="si">{}</span><span class="s2">_log10</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">m_label</span><span class="p">,</span> <span class="n">p_label</span><span class="p">)</span>
                 <span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="n">m_label</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="n">p_label</span><span class="p">]),</span>
                 <span class="n">verbosity</span><span class="p">,</span>
@@ -2122,7 +2136,7 @@
                 <span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">([</span><span class="n">secondary_mass</span> <span class="o">/</span> <span class="n">primary_mass</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
             <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;q&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">q_prob</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: appended mass ratio (M=</span><span class="si">{}</span><span class="s2"> P=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: appended mass ratio (M=</span><span class="si">{}</span><span class="s2"> P=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span>
                     <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">],</span>
                     <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_2&quot;</span><span class="p">]</span> <span class="o">/</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span>
@@ -2149,14 +2163,14 @@
                 <span class="p">)</span>
                 <span class="n">mass_period_string</span> <span class="o">=</span> <span class="s2">&quot;</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">])</span>
 
-                <span class="c1"># Set probabilty for ecc</span>
+                <span class="c1"># Set probability for ecc</span>
                 <span class="n">ecc_val</span> <span class="o">=</span> <span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;rinterpolator_e&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">(</span>
                     <span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]),</span> <span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">]),</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;ecc&quot;</span><span class="p">]]</span>
                 <span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
                 <span class="n">ecc_val</span> <span class="o">=</span> <span class="n">ecc_val</span> <span class="o">/</span> <span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;ecc_integrals&quot;</span><span class="p">][</span><span class="n">mass_period_string</span><span class="p">]</span>
                 <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;ecc&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ecc_val</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Appended eccentricity (m=</span><span class="si">{}</span><span class="s2">, P=</span><span class="si">{}</span><span class="s2">, ecc=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Appended eccentricity (m=</span><span class="si">{}</span><span class="s2">, P=</span><span class="si">{}</span><span class="s2">, ecc=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;ecc&quot;</span><span class="p">],</span> <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;ecc&#39;</span><span class="p">],</span> <span class="n">prob_dict</span>
                     <span class="p">),</span>
                     <span class="n">verbosity</span><span class="p">,</span>
@@ -2189,7 +2203,7 @@
                 <span class="c1"># period is too short : system is not hierarchical</span>
                 <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: period2 is too short: </span><span class="si">{}</span><span class="s2"> &lt; </span><span class="si">{}</span><span class="s2">, system is not hierarchichal. Added 0 to probability list&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: period2 is too short: </span><span class="si">{}</span><span class="s2"> &lt; </span><span class="si">{}</span><span class="s2">, system is not hierarchical. Added 0 to probability list&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                         <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P1&quot;</span><span class="p">],</span> <span class="n">min_P2</span>
                     <span class="p">),</span>
                     <span class="n">verbosity</span><span class="p">,</span>
@@ -2224,7 +2238,7 @@
                 <span class="n">p_val</span> <span class="o">=</span> <span class="n">p_val</span> <span class="o">/</span> <span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;P2_integrals&quot;</span><span class="p">][</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1+M_2&quot;</span><span class="p">]]</span>
                 <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">p_val</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Appended period2 (m1=</span><span class="si">{}</span><span class="s2"> m2=</span><span class="si">{}</span><span class="s2">, P2=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Appended period2 (m1=</span><span class="si">{}</span><span class="s2"> m2=</span><span class="si">{}</span><span class="s2">, P2=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_2&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P2&quot;</span><span class="p">],</span> <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P2&#39;</span><span class="p">],</span> <span class="n">prob_dict</span>
                     <span class="p">),</span>
                     <span class="n">verbosity</span><span class="p">,</span>
@@ -2249,7 +2263,7 @@
                 <span class="c1"># Build q table</span>
                 <span class="n">build_q_table</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">m_label</span><span class="p">,</span> <span class="n">p_label</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span><span class="p">)</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Called build_q_table&quot;</span><span class="p">,</span>
+                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Called build_q_table&quot;</span><span class="p">,</span>
                     <span class="n">verbosity</span><span class="p">,</span>
                     <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
                 <span class="p">)</span>
@@ -2260,7 +2274,7 @@
                 <span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">([</span><span class="n">secondary_mass</span> <span class="o">/</span> <span class="n">primary_mass</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
                 <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;q2&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">q2_val</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: appended mass ratio (M_1+M_2=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> P=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: appended mass ratio (M_1+M_2=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> P=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1+M_2&quot;</span><span class="p">],</span>
                         <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_3&quot;</span><span class="p">],</span>
                         <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">],</span>
@@ -2278,7 +2292,7 @@
                 <span class="c1"># TODO: Implement ecc2 calculation</span>
                 <span class="k">if</span> <span class="n">multiplicity</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
                     <span class="c1"># quadruple system.</span>
-                    <span class="c1"># TODO: Ask Rob about the strructure of the quadruple. Is this only double binary quadrupples?</span>
+                    <span class="c1"># TODO: Ask Rob about the structure of the quadruple. Is this only double binary quadruples?</span>
 
                     <span class="c1">############################################################</span>
                     <span class="c1"># orbital period 3</span>
@@ -2311,7 +2325,7 @@
                     <span class="n">p_val</span> <span class="o">=</span> <span class="n">p_val</span> <span class="o">/</span> <span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;P2_integrals&quot;</span><span class="p">][</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1+M_2&quot;</span><span class="p">]]</span>
                     <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P3&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">p_val</span>
                     <span class="n">verbose_print</span><span class="p">(</span>
-                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Appended period2 (M=4) (M_1=</span><span class="si">{}</span><span class="s2"> M_2=</span><span class="si">{}</span><span class="s2">, P2=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Appended period2 (M=4) (M_1=</span><span class="si">{}</span><span class="s2"> M_2=</span><span class="si">{}</span><span class="s2">, P2=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_2&quot;</span><span class="p">],</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P2&quot;</span><span class="p">],</span> <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;P3&#39;</span><span class="p">],</span> <span class="n">prob_dict</span>
                         <span class="p">),</span>
                         <span class="n">verbosity</span><span class="p">,</span>
@@ -2337,7 +2351,7 @@
                     <span class="c1"># Calculate new q table</span>
                     <span class="n">build_q_table</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">m_label</span><span class="p">,</span> <span class="n">p_label</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="n">verbosity</span><span class="p">)</span>
                     <span class="n">verbose_print</span><span class="p">(</span>
-                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Created q_table &quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(),</span>
+                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Created q_table &quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(),</span>
                         <span class="n">verbosity</span><span class="p">,</span>
                         <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
                     <span class="p">)</span>
@@ -2348,7 +2362,7 @@
                     <span class="p">]</span><span class="o">.</span><span class="n">interpolate</span><span class="p">([</span><span class="n">secondary_mass</span> <span class="o">/</span> <span class="n">primary_mass</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span>
                     <span class="n">prob_dict</span><span class="p">[</span><span class="s1">&#39;q3&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">q3_prob</span>
                     <span class="n">verbose_print</span><span class="p">(</span>
-                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: appended mass ratio (M_1+M_2=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> P=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: appended mass ratio (M_1+M_2=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> P=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2">) probability (</span><span class="si">{}</span><span class="s2">) to the prob list (</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">options</span><span class="p">[</span><span class="s2">&quot;M_1+M_2&quot;</span><span class="p">],</span>
                             <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_3&quot;</span><span class="p">],</span>
                             <span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">],</span>
@@ -2367,7 +2381,7 @@
 
     <span class="c1"># check for input of multiplicity</span>
     <span class="k">elif</span> <span class="n">multiplicity</span> <span class="ow">not</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">5</span><span class="p">):</span>
-        <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: Unknown multiplicity </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">msg</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: Unknown multiplicity </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">multiplicity</span>
             <span class="p">)</span>
         <span class="n">verbose_print</span><span class="p">(</span>
@@ -2383,7 +2397,7 @@
     <span class="c1"># Some info</span>
     <span class="k">if</span> <span class="n">multiplicity</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=N/A log10P=N/A (</span><span class="si">{}</span><span class="s2">): </span><span class="si">{}</span><span class="s2"> -&gt; </span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=N/A log10P=N/A (</span><span class="si">{}</span><span class="s2">): </span><span class="si">{}</span><span class="s2"> -&gt; </span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                 <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span>
                 <span class="nb">len</span><span class="p">(</span><span class="n">prob_dict</span><span class="p">),</span>
                 <span class="nb">str</span><span class="p">(</span><span class="n">prob_dict</span><span class="p">),</span>
@@ -2394,7 +2408,7 @@
         <span class="p">)</span>
     <span class="k">elif</span> <span class="n">multiplicity</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2"> log10P=</span><span class="si">{}</span><span class="s2"> ecc=</span><span class="si">{}</span><span class="s2"> (</span><span class="si">{}</span><span class="s2">): </span><span class="si">{}</span><span class="s2"> -&gt; </span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2"> log10P=</span><span class="si">{}</span><span class="s2"> ecc=</span><span class="si">{}</span><span class="s2"> (</span><span class="si">{}</span><span class="s2">): </span><span class="si">{}</span><span class="s2"> -&gt; </span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                 <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span>
                 <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_2&quot;</span><span class="p">]</span> <span class="o">/</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]</span> <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;M_2&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;N/A&quot;</span><span class="p">,</span>
                 <span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">]),</span>
@@ -2408,7 +2422,7 @@
         <span class="p">)</span>
     <span class="k">elif</span> <span class="n">multiplicity</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_de_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2"> log10P=</span><span class="si">{}</span><span class="s2"> ecc=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> log10P2=</span><span class="si">{}</span><span class="s2"> ecc2=</span><span class="si">{}</span><span class="s2"> (</span><span class="si">{}</span><span class="s2">): </span><span class="si">{}</span><span class="s2"> -&gt; </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="s2">&quot;</span><span class="se">\t</span><span class="s2">M&amp;S: Moe_di_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2"> log10P=</span><span class="si">{}</span><span class="s2"> ecc=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> log10P2=</span><span class="si">{}</span><span class="s2"> ecc2=</span><span class="si">{}</span><span class="s2"> (</span><span class="si">{}</span><span class="s2">): </span><span class="si">{}</span><span class="s2"> -&gt; </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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span>
                 <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_2&quot;</span><span class="p">]</span> <span class="o">/</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]</span> <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;M_2&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;N/A&quot;</span><span class="p">,</span>
                 <span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">]),</span>
@@ -2425,7 +2439,7 @@
         <span class="p">)</span>
     <span class="k">elif</span> <span class="n">multiplicity</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;M&amp;S: Moe_de_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2"> log10P=</span><span class="si">{}</span><span class="s2"> ecc=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> log10P2=</span><span class="si">{}</span><span class="s2"> ecc2=</span><span class="si">{}</span><span class="s2"> M_4=</span><span class="si">{}</span><span class="s2"> log10P3=</span><span class="si">{}</span><span class="s2"> ecc3=</span><span class="si">{}</span><span class="s2"> (</span><span class="si">{}</span><span class="s2">) : </span><span class="si">{}</span><span class="s2"> -&gt; </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="s2">&quot;M&amp;S: Moe_di_Stefano_2017_pdf: M_1=</span><span class="si">{}</span><span class="s2"> q=</span><span class="si">{}</span><span class="s2"> log10P=</span><span class="si">{}</span><span class="s2"> ecc=</span><span class="si">{}</span><span class="s2"> M_3=</span><span class="si">{}</span><span class="s2"> log10P2=</span><span class="si">{}</span><span class="s2"> ecc2=</span><span class="si">{}</span><span class="s2"> M_4=</span><span class="si">{}</span><span class="s2"> log10P3=</span><span class="si">{}</span><span class="s2"> ecc3=</span><span class="si">{}</span><span class="s2"> (</span><span class="si">{}</span><span class="s2">) : </span><span class="si">{}</span><span class="s2"> -&gt; </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">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">],</span>
                 <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_2&quot;</span><span class="p">]</span> <span class="o">/</span> <span class="n">options</span><span class="p">[</span><span class="s2">&quot;M_1&quot;</span><span class="p">]</span> <span class="k">if</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;M_2&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;N/A&quot;</span><span class="p">,</span>
                 <span class="n">np</span><span class="o">.</span><span class="n">log10</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;P&quot;</span><span class="p">]),</span>
@@ -2468,9 +2482,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/functions.html b/docs/build/html/_modules/binarycpython/utils/functions.html
index d2a6ac3f3..1e2d750e9 100644
--- a/docs/build/html/_modules/binarycpython/utils/functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -184,7 +187,7 @@
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</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_distefano_data</span> <span class="k">as</span> <span class="nn">moe_distefano_data</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>
 
 <span class="kn">import</span> <span class="nn">py_rinterpolate</span>
 
@@ -239,7 +242,7 @@
 <span class="sd">            - If the types are of numerical type: subtract the value at dict 2 from dict 1.</span>
 <span class="sd">            - If the types are both dictionaries: call this function with the subdicts</span>
 
-<span class="sd">        WHen the keys are not of the same type:</span>
+<span class="sd">        When the keys are not of the same type:</span>
 <span class="sd">            - if the keys are all of numerical types</span>
 
 <span class="sd">    For the unique keys:</span>
@@ -368,9 +371,9 @@
     <span class="k">return</span> <span class="n">new_dict</span></div>
 
 
-<div class="viewcode-block" id="get_moe_distefano_dataset"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.get_moe_distefano_dataset">[docs]</a><span class="k">def</span> <span class="nf">get_moe_distefano_dataset</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
+<div class="viewcode-block" id="get_moe_di_stefano_dataset"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.get_moe_di_stefano_dataset">[docs]</a><span class="k">def</span> <span class="nf">get_moe_di_stefano_dataset</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">verbosity</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to get the default moe and Distefano dataset or accept a userinput.</span>
+<span class="sd">    Function to get the default moe and di Stefano dataset or accept a user input.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="k">if</span> <span class="ow">not</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;file&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
@@ -380,7 +383,7 @@
             <span class="mi">1</span><span class="p">,</span>
         <span class="p">)</span>
 
-        <span class="n">json_data</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_distefano_data</span><span class="o">.</span><span class="n">moe_distefano_2017_data</span><span class="p">)</span>
+        <span class="n">json_data</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_2017_data</span><span class="o">.</span><span class="n">moe_di_stefano_2017_data</span><span class="p">)</span>
 
     <span class="k">else</span><span class="p">:</span>
         <span class="k">if</span> <span class="ow">not</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">options</span><span class="p">[</span><span class="s2">&quot;file&quot;</span><span class="p">]):</span>
@@ -401,7 +404,7 @@
             <span class="p">)</span>
 
         <span class="k">else</span><span class="p">:</span>
-            <span class="c1"># Read input data and Clean up the data if there are whitespaces around the keys</span>
+            <span class="c1"># Read input data and Clean up the data if there are white spaces around the keys</span>
             <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">options</span><span class="p">[</span><span class="s2">&quot;file&quot;</span><span class="p">],</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">data_filehandle</span><span class="p">:</span>
                 <span class="n">datafile_data</span> <span class="o">=</span> <span class="n">data_filehandle</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
             <span class="n">datafile_data</span> <span class="o">=</span> <span class="n">datafile_data</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;&quot; &#39;</span><span class="p">,</span> <span class="s1">&#39;&quot;&#39;</span><span class="p">)</span>
@@ -518,11 +521,11 @@
 <span class="sd">    Function to remove files but with verbosity</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        file: full filepath to the file that will be removed.</span>
+<span class="sd">        file: full file path to the file that will be removed.</span>
 <span class="sd">        verbosity: current verbosity level (Optional)</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        the path of a subdirectory called binary_c_python in the TMP of the filesystem</span>
+<span class="sd">        the path of a sub directory called binary_c_python in the TMP of the file system</span>
 
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -548,7 +551,7 @@
 
 <div class="viewcode-block" id="temp_dir"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.temp_dir">[docs]</a><span class="k">def</span> <span class="nf">temp_dir</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function to create directory within the TMP directory of the filesystem</span>
+<span class="sd">    Function to create directory within the TMP directory of the file system</span>
 
 <span class="sd">    Makes use of os.makedirs exist_ok which requires python 3.2+</span>
 
@@ -556,7 +559,7 @@
 <span class="sd">        function arguments: str input where each next input will be a child of the previous full_path. e.g. temp_dir(&#39;tests&#39;, &#39;grid&#39;) will become &#39;/tmp/binary_c_python/tests/grid&#39;</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        the path of a subdirectory called binary_c_python in the TMP of the filesystem</span>
+<span class="sd">        the path of a sub directory called binary_c_python in the TMP of the file system</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">tmp_dir</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">gettempdir</span><span class="p">()</span>
@@ -579,7 +582,7 @@
 <span class="sd">     - settings file is selected by checking on files ending on settings</span>
 <span class="sd">     - data files are selected by checking on files ending with .dat</span>
 
-<span class="sd">    TODO: fix missing settingsfiles</span>
+<span class="sd">    TODO: fix missing settings files</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        data_dir: directory containing the data files and settings file</span>
@@ -662,7 +665,7 @@
 
     <span class="n">found_prev</span> <span class="o">=</span> <span class="kc">False</span>
     <span class="k">if</span> <span class="s2">&quot;BINARY_C_MACRO_HEADER&quot;</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">:</span>
-        <span class="c1"># the envvar is already present. lets save that and put that back later</span>
+        <span class="c1"># the env var is already present. lets save that and put that back later</span>
         <span class="n">found_prev</span> <span class="o">=</span> <span class="kc">True</span>
         <span class="n">prev_value</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">&quot;BINARY_C_MACRO_HEADER&quot;</span><span class="p">]</span>
 
@@ -778,7 +781,7 @@
     <span class="n">version_info_dict</span><span class="p">[</span><span class="s2">&quot;isotopes&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">isotope_dict</span> <span class="k">if</span> <span class="n">isotope_dict</span> <span class="k">else</span> <span class="kc">None</span>
 
     <span class="c1">##########################</span>
-    <span class="c1"># Argpairs:</span>
+    <span class="c1"># Arg pairs:</span>
     <span class="c1"># Split off</span>
     <span class="n">argpairs</span> <span class="o">=</span> <span class="nb">set</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">cleaned</span> <span class="k">if</span> <span class="n">el</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;ArgPair&quot;</span><span class="p">)])</span>
     <span class="n">cleaned</span> <span class="o">=</span> <span class="n">cleaned</span> <span class="o">-</span> <span class="n">argpairs</span>
@@ -902,7 +905,7 @@
 
     <span class="c1">##########################</span>
     <span class="c1"># miscellaneous:</span>
-    <span class="c1"># All those that I didnt catch with the above filters. Could try to get some more out though.</span>
+    <span class="c1"># All those that I didn&#39;t catch with the above filters. Could try to get some more out though.</span>
     <span class="c1"># TODO: filter a bit more.</span>
 
     <span class="n">misc_dict</span> <span class="o">=</span> <span class="p">{}</span>
@@ -958,7 +961,7 @@
 
 <div class="viewcode-block" id="output_lines"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.output_lines">[docs]</a><span class="k">def</span> <span class="nf">output_lines</span><span class="p">(</span><span class="n">output</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function that outputs the lines that were recieved from the binary_c run, but now as an iterator.</span>
+<span class="sd">    Function that outputs the lines that were received from the binary_c run, but now as an iterator.</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        output: raw binary_c output</span>
@@ -980,7 +983,7 @@
 <span class="sd">    This function works in two cases:</span>
 <span class="sd">    if the caught line contains output like &#39;example_header time=12.32 mass=0.94 ..&#39;</span>
 <span class="sd">    or if the line contains output like &#39;example_header 12.32 0.94&#39;</span>
-<span class="sd">    Please dont the two cases.</span>
+<span class="sd">    Please don&#39;t the two cases.</span>
 
 <span class="sd">    You can give a &#39;selected_header&#39; to catch any line that starts with that.</span>
 <span class="sd">    Then the values will be put into a dictionary.</span>
@@ -1034,7 +1037,7 @@
 
     <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">value_dicts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
         <span class="nb">print</span><span class="p">(</span>
-            <span class="s2">&quot;Sorry, didnt find any line matching your header </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">selected_header</span><span class="p">)</span>
+            <span class="s2">&quot;Sorry, didn&#39;t find any line matching your header </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">selected_header</span><span class="p">)</span>
         <span class="p">)</span>
         <span class="k">return</span> <span class="kc">None</span>
 
@@ -1101,7 +1104,7 @@
 <span class="sd">    This function is called by get_defaults()</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        arg_dict: dictionary containing the argument + default keypairs of binary_c</span>
+<span class="sd">        arg_dict: dictionary containing the argument + default key pairs of binary_c</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        filtered dictionary (pairs with NULL and Function values are removed)</span>
@@ -1271,10 +1274,10 @@
 
 <div class="viewcode-block" id="get_help_all"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.get_help_all">[docs]</a><span class="k">def</span> <span class="nf">get_help_all</span><span class="p">(</span><span class="n">print_help</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Function that reads out the output of the return_help_all api call to binary_c. This return_help_all binary_c returns all the information for the parameters, their descriptions and other properties. The output is categorized in sections.</span>
+<span class="sd">    Function that reads out the output of the return_help_all API call to binary_c. This return_help_all binary_c returns all the information for the parameters, their descriptions and other properties. The output is categorised in sections.</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        print_help: (optional, default = Tru) prints all the parameters and their descriptions.</span>
+<span class="sd">        print_help: (optional, default = True) prints all the parameters and their descriptions.</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        returns a dictionary containing dictionaries per section. These dictionaries contain the parameters and descriptions etc for all the parameters in that section</span>
@@ -1320,7 +1323,7 @@
             <span class="k">for</span> <span class="n">split_param</span> <span class="ow">in</span> <span class="n">split_params</span><span class="p">:</span>
                 <span class="n">split_param_info</span> <span class="o">=</span> <span class="n">split_param</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot; : &quot;</span><span class="p">)</span>
                 <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">split_param_info</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span>
-                    <span class="c1"># there are ocassions where the semicolon</span>
+                    <span class="c1"># there are occasions where the semicolon</span>
                     <span class="c1"># is used in the description text itself.</span>
                     <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">split_param_info</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span>
                         <span class="n">split_param_info</span> <span class="o">=</span> <span class="p">[</span>
@@ -1329,7 +1332,7 @@
                             <span class="n">split_param_info</span><span class="p">[</span><span class="mi">3</span><span class="p">],</span>
                         <span class="p">]</span>
 
-                    <span class="c1"># other occassions?</span>
+                    <span class="c1"># other occasions?</span>
 
                 <span class="c1"># Put the information in a dict</span>
                 <span class="n">param_name</span> <span class="o">=</span> <span class="n">split_param_info</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
@@ -1484,7 +1487,7 @@
 <span class="sd">            this document</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        output_file: name of the output .rst faile containing the ReStructuredText formatted output</span>
+<span class="sd">        output_file: name of the output .rst file containing the ReStructuredText formatted output</span>
 <span class="sd">            of all the binary_c parameters.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -1536,13 +1539,13 @@
 
 
 <span class="c1">########################################################</span>
-<span class="c1"># logfile functions</span>
+<span class="c1"># log file functions</span>
 <span class="c1">########################################################</span>
 
 
 <div class="viewcode-block" id="load_logfile"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.load_logfile">[docs]</a><span class="k">def</span> <span class="nf">load_logfile</span><span class="p">(</span><span class="n">logfile</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">    Experimental function that parses the generated logfile of binary_c.</span>
+<span class="sd">    Experimental function that parses the generated log file of binary_c.</span>
 
 <span class="sd">    This function is not finished and shouldn&#39;t be used yet.</span>
 
@@ -1550,7 +1553,7 @@
 <span class="sd">        - TODO:</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        - logfile: filename of the logfile you want to parse</span>
+<span class="sd">        - logfile: filename of the log file you want to parse</span>
 
 <span class="sd">    Returns:</span>
 
@@ -1938,7 +1941,7 @@
             <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">key</span><span class="p">)</span> <span class="ow">in</span> <span class="n">all_types_keys</span><span class="p">:</span>
                 <span class="n">all_types_keys</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
 
-        <span class="c1"># If there are multiple types, then we loop over them and do a piecewise sort</span>
+        <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>
             
@@ -1993,7 +1996,7 @@
 <span class="sd">        binary_c_output: raw binary_c output string</span>
 
 <span class="sd">    Returns:</span>
-<span class="sd">        json dictionary with the parsed ENSEMBLE_JSON data</span>
+<span class="sd">        JSON dictionary with the parsed ENSEMBLE_JSON data</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">json_dict</span> <span class="o">=</span> <span class="kc">None</span>
@@ -2075,7 +2078,7 @@
 
 <div class="viewcode-block" id="BinaryCEncoder.default"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.BinaryCEncoder.default">[docs]</a>    <span class="k">def</span> <span class="nf">default</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">o</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Converting function. Well, could be more precise. look at the json module</span>
+<span class="sd">        Converting function. Well, could be more precise. look at the JSON module</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="k">try</span><span class="p">:</span>
             <span class="n">str_repr</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">o</span><span class="p">)</span>
@@ -2090,13 +2093,13 @@
 
 <div class="viewcode-block" id="binaryc_json_serializer"><a class="viewcode-back" href="../../../functions.html#binarycpython.utils.functions.binaryc_json_serializer">[docs]</a><span class="k">def</span> <span class="nf">binaryc_json_serializer</span><span class="p">(</span><span class="n">obj</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Any</span><span class="p">:</span>
     <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    Custom serializer for binary_c to use when functions are present in the dictionary</span>
+<span class="sd">    Custom serialiser for binary_c to use when functions are present in the dictionary</span>
 <span class="sd">    that we want to export.</span>
 
 <span class="sd">    Function objects will be turned into str representations of themselves</span>
 
 <span class="sd">    Args:</span>
-<span class="sd">        obj: The object that might not be serializable</span>
+<span class="sd">        obj: The object that might not be serialisable</span>
 
 <span class="sd">    Returns:</span>
 <span class="sd">        Either string representation of object if the object is a function, or the object itself</span>
@@ -2150,9 +2153,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/binarycpython/utils/grid.html b/docs/build/html/_modules/binarycpython/utils/grid.html
index 80bf98e07..c6fdf1d6e 100644
--- a/docs/build/html/_modules/binarycpython/utils/grid.html
+++ b/docs/build/html/_modules/binarycpython/utils/grid.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -200,7 +203,7 @@
 
 <span class="kn">from</span> <span class="nn">binarycpython.utils.grid_options_defaults</span> <span class="kn">import</span> <span class="p">(</span>
     <span class="n">grid_options_defaults_dict</span><span class="p">,</span>
-    <span class="n">moe_distefano_default_options</span><span class="p">,</span>
+    <span class="n">moe_di_stefano_default_options</span><span class="p">,</span>
     <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
 <span class="p">)</span>
 
@@ -220,7 +223,7 @@
     <span class="n">merge_dicts</span><span class="p">,</span>
     <span class="n">update_dicts</span><span class="p">,</span>
     <span class="n">extract_ensemble_json_from_string</span><span class="p">,</span>
-    <span class="n">get_moe_distefano_dataset</span><span class="p">,</span>
+    <span class="n">get_moe_di_stefano_dataset</span><span class="p">,</span>
     <span class="n">recursive_change_key_to_float</span><span class="p">,</span>
     <span class="n">custom_sort_dict</span><span class="p">,</span>
     <span class="n">recursive_change_key_to_string</span><span class="p">,</span>
@@ -243,7 +246,7 @@
     <span class="n">get_max_multiplicity</span><span class="p">,</span>
     <span class="n">Arenou2010_binary_fraction</span><span class="p">,</span>
     <span class="n">raghavan2010_binary_fraction</span><span class="p">,</span>
-    <span class="n">Moe_de_Stefano_2017_multiplicity_fractions</span><span class="p">,</span>
+    <span class="n">Moe_di_Stefano_2017_multiplicity_fractions</span><span class="p">,</span>
 <span class="p">)</span>
 
 <span class="kn">from</span> <span class="nn">binarycpython</span> <span class="kn">import</span> <span class="n">_binary_c_bindings</span>
@@ -281,7 +284,7 @@
         <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"># 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_distefano_default_options</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">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>
 
         <span class="c1"># Write M&amp;S options to a file</span>
         <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;tmp_dir&quot;</span><span class="p">],</span> <span class="s2">&quot;moe_distefano&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>
@@ -500,7 +503,7 @@
 
 <div class="viewcode-block" id="Population.last_grid_variable"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.last_grid_variable">[docs]</a>    <span class="k">def</span> <span class="nf">last_grid_variable</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Functon that returns the last grid variable</span>
+<span class="sd">        Function that returns the last grid variable</span>
 <span class="sd">        (i.e. the one with the highest grid_variable_number)</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
@@ -531,7 +534,7 @@
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function to add grid variables to the grid_options.</span>
 
-<span class="sd">        The execution of the grid generation will be through a nested forloop.</span>
+<span class="sd">        The execution of the grid generation will be through a nested for loop.</span>
 <span class="sd">        Each of the grid variables will get create a deeper for loop.</span>
 
 <span class="sd">        The real function that generates the numbers will get written to a new file in the TMP_DIR,</span>
@@ -581,7 +584,7 @@
 <span class="sd">                Examples:</span>
 <span class="sd">                    precode = &#39;M_1=math.exp(lnm1);&#39;</span>
 <span class="sd">            probdist:</span>
-<span class="sd">                FUnction determining the probability that gets asigned to the sampled parameter</span>
+<span class="sd">                Function determining the probability that gets assigned to the sampled parameter</span>
 <span class="sd">                </span>
 <span class="sd">                Examples:</span>
 <span class="sd">                    probdist = &#39;Kroupa2001(M_1)*M_1&#39;</span>
@@ -600,8 +603,7 @@
 <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 gridtype input value</span>
-        <span class="c1"># TODO: add functionality for branchpoint</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>
@@ -636,7 +638,7 @@
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function that returns all the options that have been set.</span>
 
-<span class="sd">        Can be combined with json to make a nice file.</span>
+<span class="sd">        Can be combined with JSON to make a nice file.</span>
 
 <span class="sd">        Returns:</span>
 <span class="sd">            dictionary containing &quot;bse_options&quot;, &quot;grid_options&quot;, &quot;custom_options&quot;</span>
@@ -726,14 +728,14 @@
         <span class="n">include_binary_c_help_all</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
     <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="kc">None</span><span class="p">]:</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Function that exports the all_info to a json file</span>
+<span class="sd">        Function that exports the all_info to a JSON file</span>
 
 <span class="sd">        Tasks:</span>
-<span class="sd">            - TODO: if any of the values in the dicts here is of a not-serializable form, then we</span>
+<span class="sd">            - TODO: if any of the values in the dicts here is of a not-serialisable form, then we</span>
 <span class="sd">                need to change that to a string or something so, use a recursive function that</span>
 <span class="sd">                goes over the all_info dict and finds those that fit</span>
 <span class="sd">            - TODO: Fix to write things to the directory. which options do which etc</span>
-<span class="sd">            - TODO: theres flawed logic here. rewrite this part pls</span>
+<span class="sd">            - TODO: there&#39;s flawed logic here. rewrite this part pls</span>
 <span class="sd">            - TODO: consider actually just removing the whole &#39;output to file&#39; part and let the</span>
 <span class="sd">                user do this.</span>
 
@@ -746,7 +748,7 @@
 <span class="sd">                version info (see return_binary_c_version_info)</span>
 <span class="sd">            include_binary_c_help_all: whether to include a dict containing all the information</span>
 <span class="sd">                about the binary_c parameters (see get_help_all)</span>
-<span class="sd">            use_datadir: boolean whether to use the custom_options[&#39;data_dir&#39;] to write the file to.</span>
+<span class="sd">            use_datadir: Boolean whether to use the custom_options[&#39;data_dir&#39;] to write the file to.</span>
 <span class="sd">                If the  custom_options[&quot;base_filename&quot;] is set, the output file will be called</span>
 <span class="sd">                &lt;custom_options[&quot;base_filename&quot;]&gt;_settings.json. Otherwise a file called</span>
 <span class="sd">                simulation_&lt;date+time&gt;_settings.json will be created</span>
@@ -836,7 +838,7 @@
                 <span class="n">verbose</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="p">)</span>
 
-            <span class="c1"># Load memory adress</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>
@@ -858,7 +860,7 @@
                 <span class="n">logging_line</span><span class="p">,</span> <span class="n">verbose</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="p">)</span>
 
-            <span class="c1"># Load memory adress</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>
@@ -888,13 +890,13 @@
 
 <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">        Entrypoint function of the whole object. From here, based on the settings,</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">        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>
-<span class="sd">            grid_options[&#39;condor&#39;]: integer boolean whether to use a condor_grid evolution</span>
+<span class="sd">            grid_options[&#39;slurm&#39;]: integer Boolean whether to use a slurm_grid evolution</span>
+<span class="sd">            grid_options[&#39;condor&#39;]: integer Boolean whether to use a condor_grid evolution</span>
 
 <span class="sd">        If neither of the above is set, we continue without using HPC routines</span>
 <span class="sd">        (that doesn&#39;t mean this cannot be run on a server with many cores)</span>
@@ -908,7 +910,7 @@
 
         <span class="c1"># Check which type:</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;slurm&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
-            <span class="c1"># Execute slurm subroutines</span>
+            <span class="c1"># Execute Slurm subroutines</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">_slurm_grid</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;condor&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
@@ -1071,7 +1073,7 @@
         <span class="n">generator</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;_system_generator&quot;</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">print_results</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
 
         <span class="c1"># TODO: build in method to handle with the HPC.</span>
-        <span class="c1"># Continously fill the queue</span>
+        <span class="c1"># Continuously fill the queue</span>
         <span class="k">for</span> <span class="n">system_number</span><span class="p">,</span> <span class="n">system_dict</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">generator</span><span class="p">):</span>
             <span class="c1"># Put job in queue</span>
             <span class="n">job_queue</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="n">system_number</span><span class="p">,</span> <span class="n">system_dict</span><span class="p">))</span>
@@ -1134,13 +1136,13 @@
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function that handles running the population using multiprocessing.</span>
 
-<span class="sd">        First we set uip the multiprocessing manager and the job and result queue.</span>
+<span class="sd">        First we set up the multiprocessing manager and the job and result queue.</span>
 
 <span class="sd">        Then we spawn &lt;self.grid_options[&quot;amt_cores&quot;]&gt; amount of process instances,</span>
 <span class="sd">        and signal them to start.</span>
 
 <span class="sd">        While the processes are waiting for their instructions, we start the queue filler,</span>
-<span class="sd">        which goes over the gridcode and puts all the tasks in a queue until its full.</span>
+<span class="sd">        which goes over the grid code and puts all the tasks in a queue until its full.</span>
 
 <span class="sd">        The processes take these jobs, evolve the and store results.</span>
 
@@ -1152,7 +1154,7 @@
 
         <span class="c1"># Set process name</span>
         <span class="n">setproctitle</span><span class="o">.</span><span class="n">setproctitle</span><span class="p">(</span><span class="s1">&#39;binarycpython parent process&#39;</span><span class="p">)</span>
-        <span class="n">setproctitle</span><span class="o">.</span><span class="n">setthreadtitle</span><span class="p">(</span><span class="s2">&quot;binarycpyhon parent thread&quot;</span><span class="p">)</span>
+        <span class="n">setproctitle</span><span class="o">.</span><span class="n">setthreadtitle</span><span class="p">(</span><span class="s2">&quot;binarycpython parent thread&quot;</span><span class="p">)</span>
 
         <span class="c1"># Set up the manager object that can share info between processes</span>
         <span class="n">manager</span> <span class="o">=</span> <span class="n">multiprocessing</span><span class="o">.</span><span class="n">Manager</span><span class="p">()</span>
@@ -1329,9 +1331,9 @@
             <span class="mi">0</span><span class="p">,</span>
         <span class="p">)</span>
 
-        <span class="c1"># Set the ensemble memaddr</span>
+        <span class="c1"># Set the ensemble memory address</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>
-            <span class="c1"># set persistent data memaddr if necessary.</span>
+            <span class="c1"># set persistent data memory address if necessary.</span>
             <span class="n">persistent_data_memaddr</span> <span class="o">=</span> <span class="p">(</span>
                 <span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">return_persistent_data_memaddr</span><span class="p">()</span>
             <span class="p">)</span>
@@ -1398,7 +1400,7 @@
             <span class="c1"># they match the keys known to binary_c.</span>
             <span class="c1"># Won&#39;t do that every system cause that is a bit of a waste of computing time.</span>
             <span class="k">if</span> <span class="n">number_of_systems_run</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
-                <span class="c1"># TODO: Put this someplace else and wrap in a functioncall</span>
+                <span class="c1"># TODO: Put this someplace else and wrap in a function call</span>
                 <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">full_system_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
                     <span class="k">if</span> <span class="ow">not</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">available_keys</span><span class="p">:</span>
                         <span class="c1"># Deal with special keys</span>
@@ -1426,7 +1428,7 @@
             <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">2</span><span class="p">,</span>
+                <span class="mi">1</span><span class="p">,</span>
             <span class="p">)</span>
 
             <span class="c1"># In some cases, the whole run crashes. To be able to figure out which system</span>
@@ -1517,7 +1519,7 @@
         <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>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;Process </span><span class="si">{}</span><span class="s2">: is freeing ensemble output (using persisten_data memaddr </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="s2">&quot;Process </span><span class="si">{}</span><span class="s2">: is freeing ensemble output (using persistent_data memaddr </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="bp">self</span><span class="o">.</span><span class="n">persistent_data_memory_dict</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">process_ID</span><span class="p">]</span>
                 <span class="p">),</span>
                 <span class="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>
@@ -1572,7 +1574,7 @@
                     <span class="p">)</span>
                 <span class="p">)</span>
 
-        <span class="c1"># free store mem:</span>
+        <span class="c1"># free store memory:</span>
         <span class="n">_binary_c_bindings</span><span class="o">.</span><span class="n">free_store_memaddr</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;_store_memaddr&quot;</span><span class="p">])</span>
 
         <span class="c1"># Return a set of results and errors</span>
@@ -1656,7 +1658,7 @@
         <span class="c1"># Clean up the interpolators if they exist</span>
 
         <span class="c1"># TODO: make a cleanup function for the individual threads</span>
-        <span class="c1"># TODO: make sure this is necessary. Actually its probably not, because we have a centralized queue</span>
+        <span class="c1"># TODO: make sure this is necessary. Actually its probably not, because we have a centralised queue</span>
 
         <span class="k">return</span>
 
@@ -1691,7 +1693,7 @@
             <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"># TODO: add call to function that cleans up the temp customlogging dir,</span>
+        <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>
 
@@ -1760,14 +1762,14 @@
                 <span class="p">[</span><span class="n">key</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;ensemble_filter_&quot;</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">bse_options</span><span class="p">]</span>
             <span class="p">):</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;Warning: Running the ensemble without any filter requires alot of available RAM&quot;</span><span class="p">,</span>
+                    <span class="s2">&quot;Warning: Running the ensemble without any filter requires a lot of available RAM&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">0</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">bse_options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;ensemble_filters_off&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>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;Warning: Running the ensemble without any filter requires alot of available RAM&quot;</span><span class="p">,</span>
+                    <span class="s2">&quot;Warning: Running the ensemble without any filter requires a lot of available RAM&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">0</span><span class="p">,</span>
                 <span class="p">)</span>
@@ -1775,7 +1777,7 @@
             <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;combine_ensemble_with_thread_joining&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="kc">False</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;data_dir&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span>
                     <span class="n">verbose_print</span><span class="p">(</span>
-                        <span class="s2">&quot;Error: chosen to write the ensemble output directly to files but data_dir isnt set&quot;</span><span class="p">,</span>
+                        <span class="s2">&quot;Error: chosen to write the ensemble output directly to files but data_dir isn&#39;t set&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">0</span><span class="p">,</span>
                     <span class="p">)</span>
@@ -1789,23 +1791,24 @@
 
             <span class="c1"># Put in check</span>
             <span class="k">if</span> <span class="nb">len</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="o">==</span> <span class="mi">0</span><span class="p">:</span>
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Error: you havent defined any grid variables! Aborting&quot;</span><span class="p">)</span>
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Error: you haven&#39;t defined any grid variables! Aborting&quot;</span><span class="p">)</span>
                 <span class="k">raise</span> <span class="ne">ValueError</span>
 
             <span class="c1"># Set up the grid code with a dry run option to see total probability</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">_generate_grid_code</span><span class="p">(</span><span class="n">dry_run</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+            <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;do_dry_run&#39;</span><span class="p">]:</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_generate_grid_code</span><span class="p">(</span><span class="n">dry_run</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
 
-            <span class="c1"># Load the grid code</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">_load_grid_function</span><span class="p">()</span>
+                <span class="c1"># Load the grid code</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_load_grid_function</span><span class="p">()</span>
 
-            <span class="c1"># Do a dry run</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">_dry_run</span><span class="p">()</span>
+                <span class="c1"># Do a dry run</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_dry_run</span><span class="p">()</span>
 
-            <span class="nb">print</span><span class="p">(</span>
-                <span class="s2">&quot;Total starcount for this run will be: </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="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="nb">print</span><span class="p">(</span>
+                    <span class="s2">&quot;Total starcount for this run will be: </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="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="p">)</span>
                 <span class="p">)</span>
-            <span class="p">)</span>
 
             <span class="c1">#######################</span>
             <span class="c1"># Reset values and prepare the grid function</span>
@@ -1835,8 +1838,9 @@
             <span class="c1"># TODO: fix this function</span>
             <span class="c1"># self._load_source_file_function()</span>
 
-            <span class="c1"># Do a dry run</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">_dry_run_source_file</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="s1">&#39;do_dry_run&#39;</span><span class="p">]:</span>
+                <span class="c1"># Do a dry run</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_dry_run_source_file</span><span class="p">()</span>
 
             <span class="nb">print</span><span class="p">(</span>
                 <span class="s2">&quot;Total starcount for this run will be: </span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
@@ -1899,7 +1903,7 @@
             <span class="k">del</span> <span class="n">Moecache</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
 
     <span class="c1">###################################################</span>
-    <span class="c1"># Gridcode functions</span>
+    <span class="c1"># Grid code functions</span>
     <span class="c1">#</span>
     <span class="c1"># Function below are used to run populations with</span>
     <span class="c1"># a variable grid</span>
@@ -1917,13 +1921,13 @@
 <span class="sd">        # TODO: Add correct logging everywhere</span>
 <span class="sd">        # TODO: add part to handle separation if orbital_period is added. Idea. use default values</span>
 <span class="sd">        #   for orbital parameters and possibly overwrite those or something.</span>
-<span class="sd">        # TODO: add centering center left right for the spacing.</span>
+<span class="sd">        # TODO: add centre left right for the spacing.</span>
 <span class="sd">        # TODO: add sensible description to this function.</span>
 <span class="sd">        # TODO: Check whether all the probability and phasevol values are correct.</span>
 <span class="sd">        # TODO: import only the necessary packages/functions</span>
 <span class="sd">        # TODO: Put all the masses, eccentricities and periods in there already</span>
-<span class="sd">        # TODO: Put the certain blocks that are repeated in some subfunctions</span>
-<span class="sd">        # TODO: make sure running systems with multicplity 3+ is also possible.</span>
+<span class="sd">        # TODO: Put the certain blocks that are repeated in some sub functions</span>
+<span class="sd">        # TODO: make sure running systems with multiplicity 3+ is also possible.</span>
 
 <span class="sd">        Results in a generated file that contains a system_generator function.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
@@ -2027,8 +2031,8 @@
             <span class="n">grid_variable</span> <span class="o">=</span> <span class="n">grid_variable_el</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
 
             <span class="c1">#########################</span>
-            <span class="c1"># Setting up the forloop</span>
-            <span class="c1"># Add comment for forloop</span>
+            <span class="c1"># Setting up the for loop</span>
+            <span class="c1"># Add comment for for loop</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="n">depth</span>
                 <span class="o">+</span> <span class="s2">&quot;# for loop for </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">grid_variable</span><span class="p">[</span><span class="s2">&quot;parameter_name&quot;</span><span class="p">])</span>
@@ -2072,6 +2076,7 @@
             <span class="c1">#     + &quot;\n&quot;</span>
             <span class="c1"># )</span>
 
+            <span class="c1"># TODO: make sure this works</span>
             <span class="c1"># Adding for loop structure</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="n">depth</span>
@@ -2081,8 +2086,29 @@
                 <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"># code_string += (</span>
+            <span class="c1">#     indent * depth</span>
+            <span class="c1">#     + &quot;for {}_sample_number in range({}):&quot;.format(</span>
+            <span class="c1">#         grid_variable[&quot;name&quot;], grid_variable[&quot;resolution&quot;]</span>
+            <span class="c1">#     )</span>
+            <span class="c1">#     + &quot;\n&quot;</span>
+            <span class="c1"># )</span>
+            <span class="c1"># code_string += (</span>
+            <span class="c1">#     indent * (depth+1)</span>
+            <span class="c1">#     + &quot;{} = sampled_values_{}[0] + ((sampled_values_{}[-1]-sampled_values_{}[0])/{}) * {}_sample_number&quot;.format(</span>
+            <span class="c1">#         grid_variable[&quot;name&quot;], grid_variable[&quot;name&quot;], grid_variable[&quot;name&quot;], grid_variable[&quot;name&quot;], grid_variable[&quot;resolution&quot;], grid_variable[&quot;name&quot;]</span>
+            <span class="c1">#     )</span>
+            <span class="c1">#     + &quot;\n&quot;</span>
+            <span class="c1"># )</span>
+
+
+
+
+
+
+
             <span class="c1">#################################################################################</span>
-            <span class="c1"># Check condition and generate forloop</span>
+            <span class="c1"># Check condition and generate for loop</span>
 
             <span class="c1"># If the grid variable has a condition, write the check and the action</span>
             <span class="k">if</span> <span class="n">grid_variable</span><span class="p">[</span><span class="s2">&quot;condition&quot;</span><span class="p">]:</span>
@@ -2110,7 +2136,7 @@
                 <span class="p">)</span>
                 <span class="n">code_string</span> <span class="o">+=</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">2</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;continue&quot;</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
 
-                <span class="c1"># Add some whiteline</span>
+                <span class="c1"># Add some white line</span>
                 <span class="n">code_string</span> <span class="o">+=</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>
 
             <span class="c1">##############3</span>
@@ -2131,7 +2157,7 @@
             <span class="p">)</span>
             <span class="n">code_string</span> <span class="o">+=</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">2</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;continue&quot;</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
 
-            <span class="c1"># Add some whiteline</span>
+            <span class="c1"># Add some white line</span>
             <span class="n">code_string</span> <span class="o">+=</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>
 
             <span class="c1">#########################</span>
@@ -2223,7 +2249,7 @@
 
             <span class="c1"># The final parts of the code, where things are returned, are within the deepest loop,</span>
             <span class="c1"># but in some cases code from a higher loop needs to go under it again</span>
-            <span class="c1"># SO I think its better to put an ifstatement here that checks</span>
+            <span class="c1"># SO I think its better to put an if statement here that checks</span>
             <span class="c1"># whether this is the last loop.</span>
             <span class="k">if</span> <span class="n">loopnr</span> <span class="o">==</span> <span class="nb">len</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="o">-</span> <span class="mi">1</span><span class="p">:</span>
 
@@ -2261,7 +2287,7 @@
             <span class="p">)</span>
 
             <span class="c1"># Set phasevol</span>
-            <span class="c1"># TODO: fix. this isnt supposed to be the value that we give it here. discuss</span>
+            <span class="c1"># TODO: fix. this isn&#39;t supposed to be the value that we give it here. discuss</span>
             <span class="n">code_string</span> <span class="o">+=</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;phasevol /= phasevol_</span><span class="si">{}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                 <span class="n">grid_variable</span><span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">]</span>
             <span class="p">)</span>
@@ -2331,7 +2357,7 @@
         <span class="c1">#################################################################################</span>
         <span class="c1"># Stop of code generation. Here the code is saved and written</span>
 
-        <span class="c1"># Save the gridcode to the grid_options</span>
+        <span class="c1"># Save the grid code to the grid_options</span>
         <span class="n">verbose_print</span><span class="p">(</span>
             <span class="s2">&quot;Saving grid code to 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><span class="s2">&quot;verbosity&quot;</span><span class="p">],</span> <span class="mi">1</span>
         <span class="p">)</span>
@@ -2353,6 +2379,8 @@
 
         <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">gridcode_filename</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">code_string</span><span class="p">)</span>
+
+
     <span class="k">def</span> <span class="nf">_write_gridcode_system_call</span><span class="p">(</span>
         <span class="bp">self</span><span class="p">,</span> <span class="n">code_string</span><span class="p">,</span> <span class="n">indent</span><span class="p">,</span> <span class="n">depth</span><span class="p">,</span> <span class="n">grid_variable</span><span class="p">,</span> <span class="n">dry_run</span><span class="p">,</span> <span class="n">branchpoint</span>
     <span class="p">):</span>
@@ -2460,13 +2488,10 @@
 
         <span class="k">if</span> <span class="ow">not</span> <span class="n">dry_run</span><span class="p">:</span>
             <span class="c1"># Handling of what is returned, or what is not.</span>
-            <span class="c1"># TODO: think of whether this is a good method</span>
-            <span class="c1"># code_string += indent * (depth + 2) + &quot;if (self.grid_options[&#39;multiplicity&#39;] &gt;= 2): print(&#39;phasevol_q: &#39;,phasevol_q); print(&#39;phasevol_log10per: &#39;,phasevol_log10per);\n&quot;</span>
             <span class="n">code_string</span> <span class="o">+=</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">2</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;yield(parameter_dict)</span><span class="se">\n</span><span class="s2">&quot;</span>
 
         <span class="c1"># If its a dry run, dont do anything with it</span>
         <span class="k">else</span><span class="p">:</span>
-            <span class="c1"># code_string += indent * (depth + 2) + &quot;if (self.grid_options[&#39;multiplicity&#39;] &gt;= 2): print(phasevol_q)\n&quot;</span>
             <span class="n">code_string</span> <span class="o">+=</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">2</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;pass</span><span class="se">\n</span><span class="s2">&quot;</span>
 
         <span class="n">code_string</span> <span class="o">+=</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;#&quot;</span> <span class="o">*</span> <span class="mi">40</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
@@ -2475,7 +2500,7 @@
 
     <span class="k">def</span> <span class="nf">_load_grid_function</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Functon that loads the script containing the grid code.</span>
+<span class="sd">        Function that loads the script containing the grid code.</span>
 
 <span class="sd">        TODO: Update this description</span>
 <span class="sd">        Test function to run grid stuff. mostly to test the import</span>
@@ -2547,10 +2572,10 @@
             <span class="nb">print</span><span class="p">(</span><span class="n">info_string</span><span class="p">)</span>
 
     <span class="c1">###################################################</span>
-    <span class="c1"># Montecarlo functions</span>
+    <span class="c1"># Monte Carlo functions</span>
     <span class="c1">#</span>
     <span class="c1"># Functions below are used to run populations with</span>
-    <span class="c1"># Monte carlo</span>
+    <span class="c1"># Monte Carlo</span>
     <span class="c1">###################################################</span>
 
     <span class="c1">###################################################</span>
@@ -2593,7 +2618,7 @@
             <span class="n">minimal_verbosity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
         <span class="p">)</span>
 
-        <span class="c1"># We can choose to perform a check on the sourcefile, which checks if the lines start with &#39;binary_c&#39;</span>
+        <span class="c1"># We can choose to perform a check on the source file, which checks if the lines start with &#39;binary_c&#39;</span>
         <span class="k">if</span> <span class="n">check</span><span class="p">:</span>
             <span class="n">source_file_check_filehandle</span> <span class="o">=</span> <span class="nb">open</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;source_file_filename&quot;</span><span class="p">],</span> <span class="s2">&quot;r&quot;</span>
@@ -2618,7 +2643,7 @@
 
     <span class="k">def</span> <span class="nf">_dict_from_line_source_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Function that creates a dict from a binary_c argline</span>
+<span class="sd">        Function that creates a dict from a binary_c arg line</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">&quot;binary_c &quot;</span><span class="p">):</span>
@@ -3117,18 +3142,16 @@
         <span class="n">include_defaults</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</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 that loops over the gridcode and writes the generated parameters to a file.</span>
-<span class="sd">        In the form of a commandline call</span>
+<span class="sd">        Function that loops over the grid code and writes the generated parameters to a file.</span>
+<span class="sd">        In the form of a command line call</span>
 
-<span class="sd">        Only useful when you have a variable grid as system_generator. MC wouldnt be that useful</span>
+<span class="sd">        Only useful when you have a variable grid as system_generator. MC wouldn&#39;t be that useful</span>
 
 <span class="sd">        Also, make sure that in this export there are the basic parameters</span>
 <span class="sd">        like m1,m2,sep, orb-per, ecc, probability etc.</span>
 
 <span class="sd">        On default this will write to the datadir, if it exists</span>
 
-<span class="sd">        WARNING; dont use yet. not fully tested.</span>
-
 <span class="sd">        Tasks:</span>
 <span class="sd">            - TODO: test this function</span>
 <span class="sd">            - TODO: make sure the binary_c_python .. output file has a unique name</span>
@@ -3136,7 +3159,7 @@
 <span class="sd">        Args:</span>
 <span class="sd">            output_dir: (optional, default = None) directory where to write the file to. If custom_options[&#39;data_dir&#39;] is present, then that one will be used first, and then the output_dir</span>
 <span class="sd">            output_filename: (optional, default = None) filename of the output. If not set it will be called &quot;binary_c_calls.txt&quot;</span>
-<span class="sd">            include_defaults: (optional, default = None) whether to include the defaults of binary_c in the lines that are written. Beware that this will result in very long lines, and it might be better to just export the binary_c defaults and keep them in a seperate file.</span>
+<span class="sd">            include_defaults: (optional, default = None) whether to include the defaults of binary_c in the lines that are written. Beware that this will result in very long lines, and it might be better to just export the binary_c defaults and keep them in a separate file.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="c1"># Check if there is no compiled grid yet. If not, lets try to build it first.</span>
@@ -3155,7 +3178,7 @@
 
             <span class="c1"># Put in check</span>
             <span class="k">if</span> <span class="nb">len</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="o">==</span> <span class="mi">0</span><span class="p">:</span>
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Error: you havent defined any grid variables! Aborting&quot;</span><span class="p">)</span>
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Error: you haven&#39;t defined any grid variables! Aborting&quot;</span><span class="p">)</span>
                 <span class="k">raise</span> <span class="ne">ValueError</span>
 
             <span class="c1">#</span>
@@ -3169,7 +3192,7 @@
             <span class="c1"># Check if there is an output dir configured</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="n">binary_c_calls_output_dir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;data_dir&quot;</span><span class="p">]</span>
-            <span class="c1"># otherwise check if theres one passed to the function</span>
+            <span class="c1"># otherwise check if there&#39;s one passed to the function</span>
             <span class="k">else</span><span class="p">:</span>
                 <span class="k">if</span> <span class="ow">not</span> <span class="n">output_dir</span><span class="p">:</span>
                     <span class="nb">print</span><span class="p">(</span>
@@ -3178,7 +3201,7 @@
                     <span class="k">raise</span> <span class="ne">ValueError</span>
                 <span class="n">binary_c_calls_output_dir</span> <span class="o">=</span> <span class="n">output_dir</span>
 
-            <span class="c1"># check if theres a filename passed to the function</span>
+            <span class="c1"># check if there&#39;s a filename passed to the function</span>
             <span class="k">if</span> <span class="n">output_filename</span><span class="p">:</span>
                 <span class="n">binary_c_calls_filename</span> <span class="o">=</span> <span class="n">output_filename</span>
             <span class="c1"># otherwise use default value</span>
@@ -3253,7 +3276,7 @@
 
             <span class="c1"># TODO: Unset custom logging code</span>
 
-            <span class="c1"># TODO: Unset function memory adress</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"># remove shared library files</span>
@@ -3271,7 +3294,7 @@
             <span class="p">)</span>
 
             <span class="c1"># TODO: make sure that these also work. not fully sure if necessary tho.</span>
-            <span class="c1">#   whether its a single file, or a dict of files/memaddresses</span>
+            <span class="c1">#   whether its a single file, or a dict of files/mem addresses</span>
 
         <span class="k">if</span> <span class="n">evol_type</span> <span class="o">==</span> <span class="s2">&quot;MC&quot;</span><span class="p">:</span>
             <span class="k">pass</span>
@@ -3294,7 +3317,7 @@
 <span class="sd">        Function to set the loggers for the execution of the grid</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="c1"># Set logfile</span>
+        <span class="c1"># Set log file</span>
         <span class="n">binary_c_logfile</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_file&quot;</span><span class="p">]</span>
 
         <span class="c1"># Create directory</span>
@@ -3312,7 +3335,7 @@
             <span class="s2">&quot;</span><span class="si">%(asctime)s</span><span class="s2"> - </span><span class="si">%(name)s</span><span class="s2"> - </span><span class="si">%(levelname)s</span><span class="s2"> - </span><span class="si">%(message)s</span><span class="s2">&quot;</span>
         <span class="p">)</span>
 
-        <span class="c1"># Make and add filehandlers</span>
+        <span class="c1"># Make and add file handlers</span>
         <span class="c1"># make handler for output to file</span>
         <span class="n">handler_file</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">FileHandler</span><span class="p">(</span><span class="n">filename</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">binary_c_logfile</span><span class="p">))</span>
         <span class="n">handler_file</span><span class="o">.</span><span class="n">setFormatter</span><span class="p">(</span><span class="n">log_formatter</span><span class="p">)</span>
@@ -3388,7 +3411,7 @@
 
                 <span class="c1"># If not, write the failing systems to files unique to each process</span>
                 <span class="k">else</span><span class="p">:</span>
-                    <span class="c1"># Write arglines to file</span>
+                    <span class="c1"># Write arg lines to file</span>
                     <span class="n">argstring</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_return_argline</span><span class="p">(</span><span class="n">system_dict</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>
@@ -3406,9 +3429,9 @@
                 <span class="mi">2</span><span class="p">,</span>
             <span class="p">)</span>
 
-<div class="viewcode-block" id="Population.set_moe_distefano_settings"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.set_moe_distefano_settings">[docs]</a>    <span class="k">def</span> <span class="nf">set_moe_distefano_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>
+<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; distefano methods</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>
@@ -3423,15 +3446,15 @@
             <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">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;tmp_dir&quot;</span><span class="p">],</span> <span class="s2">&quot;moe_distefano&quot;</span><span class="p">),</span> <span class="s2">&quot;moeopts.dat&quot;</span><span class="p">),</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
                 <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</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="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span></div>
 
-    <span class="k">def</span> <span class="nf">_load_moe_distefano_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">_load_moe_di_stefano_data</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Function to load the moe &amp; distefano data</span>
+<span class="sd">        Function to load the moe &amp; di stefano data</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="c1"># Only if the grid is loaded and moecache contains information</span>
+        <span class="c1"># Only if the grid is loaded and Moecache contains information</span>
         <span class="k">if</span> <span class="p">(</span><span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;_loaded_ms_data&#39;</span><span class="p">])</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">Moecache</span><span class="p">:</span>
-            <span class="c1"># Load the json data</span>
-            <span class="n">json_data</span> <span class="o">=</span> <span class="n">get_moe_distefano_dataset</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="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="s1">&#39;verbosity&#39;</span><span class="p">])</span>
+            <span class="c1"># Load the JSON data</span>
+            <span class="n">json_data</span> <span class="o">=</span> <span class="n">get_moe_di_stefano_dataset</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="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="s1">&#39;verbosity&#39;</span><span class="p">])</span>
 
             <span class="c1"># entry of log10M1 is a list containing 1 dict. We can take the dict out of the list</span>
             <span class="n">json_data</span><span class="p">[</span><span class="s2">&quot;log10M1&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">json_data</span><span class="p">[</span><span class="s2">&quot;log10M1&quot;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
@@ -3441,7 +3464,7 @@
             <span class="k">if</span> <span class="ow">not</span> <span class="n">logmasses</span><span class="p">:</span>
                 <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;The table does not contain masses.&quot;</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
-                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: </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">msg</span><span class="p">),</span>
+                    <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: </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">msg</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">0</span><span class="p">,</span>
                 <span class="p">)</span>
@@ -3464,7 +3487,7 @@
                 <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">logperiods</span> <span class="o">==</span> <span class="n">current_logperiods</span><span class="p">):</span>
                     <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Period values are not consistent throughout the dataset&quot;</span>
                     <span class="n">verbose_print</span><span class="p">(</span>
-                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: </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">msg</span><span class="p">),</span>
+                        <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: </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">msg</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">0</span><span class="p">,</span>
                     <span class="p">)</span>
@@ -3480,7 +3503,7 @@
                     <span class="p">):</span>
                         <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Period spacing is not consistent throughout the dataset&quot;</span>
                         <span class="n">verbose_print</span><span class="p">(</span>
-                            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: </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">msg</span><span class="p">),</span>
+                            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: </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">msg</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">0</span><span class="p">,</span>
                         <span class="p">)</span>
@@ -3582,7 +3605,7 @@
                     <span class="c1">#</span>
                     <span class="n">qs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">json_data</span><span class="p">[</span><span class="s2">&quot;log10M1&quot;</span><span class="p">][</span><span class="n">logmass</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="n">logperiod</span><span class="p">][</span><span class="s2">&quot;q&quot;</span><span class="p">])</span>
 
-                    <span class="c1"># Fill the data and &#39;normalize&#39;</span>
+                    <span class="c1"># Fill the data and &#39;normalise&#39;</span>
                     <span class="n">qdata</span> <span class="o">=</span> <span class="n">fill_data</span><span class="p">(</span>
                         <span class="n">qs</span><span class="p">,</span> <span class="n">json_data</span><span class="p">[</span><span class="s2">&quot;log10M1&quot;</span><span class="p">][</span><span class="n">logmass</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="n">logperiod</span><span class="p">][</span><span class="s2">&quot;q&quot;</span><span class="p">]</span>
                     <span class="p">)</span>
@@ -3600,7 +3623,7 @@
                     <span class="c1"># eccentricity distributions as a function of mass, period, ecc</span>
                     <span class="n">eccs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">json_data</span><span class="p">[</span><span class="s2">&quot;log10M1&quot;</span><span class="p">][</span><span class="n">logmass</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="n">logperiod</span><span class="p">][</span><span class="s2">&quot;e&quot;</span><span class="p">])</span>
 
-                    <span class="c1"># Fill the data and &#39;normalize&#39;</span>
+                    <span class="c1"># Fill the data and &#39;normalise&#39;</span>
                     <span class="n">ecc_data</span> <span class="o">=</span> <span class="n">fill_data</span><span class="p">(</span>
                         <span class="n">eccs</span><span class="p">,</span> <span class="n">json_data</span><span class="p">[</span><span class="s2">&quot;log10M1&quot;</span><span class="p">][</span><span class="n">logmass</span><span class="p">][</span><span class="s2">&quot;logP&quot;</span><span class="p">][</span><span class="n">logperiod</span><span class="p">][</span><span class="s2">&quot;e&quot;</span><span class="p">]</span>
                     <span class="p">)</span>
@@ -3640,35 +3663,35 @@
                 <span class="p">)</span>
 
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: Length period_distributions table: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: Length period_distributions table: </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="nb">len</span><span class="p">(</span><span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;period_distributions&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;verbosity&quot;</span><span class="p">],</span>
                 <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
             <span class="p">)</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: Length multiplicity table: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: Length multiplicity table: </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="nb">len</span><span class="p">(</span><span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;multiplicity_table&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;verbosity&quot;</span><span class="p">],</span>
                 <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
             <span class="p">)</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: Length q table: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: Length q table: </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="nb">len</span><span class="p">(</span><span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;q_distributions&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;verbosity&quot;</span><span class="p">],</span>
                 <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
             <span class="p">)</span>
             <span class="n">verbose_print</span><span class="p">(</span>
-                <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: Length ecc table: </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="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: Length ecc table: </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="nb">len</span><span class="p">(</span><span class="n">Moecache</span><span class="p">[</span><span class="s2">&quot;ecc_distributions&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;verbosity&quot;</span><span class="p">],</span>
                 <span class="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
             <span class="p">)</span>
 
-            <span class="c1"># Write to logfile</span>
+            <span class="c1"># Write to log file</span>
             <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;tmp_dir&quot;</span><span class="p">],</span> <span class="s2">&quot;moe_distefano&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="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">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s2">&quot;tmp_dir&quot;</span><span class="p">],</span> <span class="s2">&quot;moe_distefano&quot;</span><span class="p">),</span> <span class="s2">&quot;moecache.json&quot;</span><span class="p">),</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">cache_filehandle</span><span class="p">:</span>
                 <span class="n">cache_filehandle</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">Moecache</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span>
@@ -3676,9 +3699,9 @@
             <span class="c1"># Signal that the data has been loaded</span>
             <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;_loaded_ms_data&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
 
-    <span class="k">def</span> <span class="nf">_set_moe_distefano_distributions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">_set_moe_di_stefano_distributions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Function to set the moe &amp; distefano distribution</span>
+<span class="sd">        Function to set the Moe &amp; di Stefano distribution</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="c1">############################################################</span>
@@ -3687,7 +3710,7 @@
 
         <span class="n">max_multiplicity</span> <span class="o">=</span> <span class="n">get_max_multiplicity</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;multiplicity_modulator&quot;</span><span class="p">])</span>
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: Max multiplicity = </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">max_multiplicity</span><span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: Max multiplicity = </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">max_multiplicity</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="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -3737,7 +3760,7 @@
             <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;dlnm1&quot;</span><span class="p">,</span>
             <span class="n">precode</span><span class="o">=</span><span class="s1">&#39;M_1 = np.exp(lnm1); options[&quot;M_1&quot;]=M_1&#39;</span><span class="p">,</span>
-            <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;Moe_de_Stefano_2017_pdf({{</span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2">}}, verbosity=self.grid_options[&#39;verbosity&#39;])[&#39;total_probdens&#39;] if multiplicity == 1 else 1&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+            <span class="n">probdist</span><span class="o">=</span><span class="s2">&quot;Moe_di_Stefano_2017_pdf({{</span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2">, </span><span class="si">{}</span><span class="s2">}}, verbosity=self.grid_options[&#39;verbosity&#39;])[&#39;total_probdens&#39;] if multiplicity == 1 else 1&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
                 <span class="nb">str</span><span class="p">(</span><span class="nb">dict</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="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;&#39;multiplicity&#39;: multiplicity&quot;</span><span class="p">,</span> <span class="s2">&quot;&#39;M_1&#39;: M_1&quot;</span>
             <span class="p">),</span>
         <span class="p">)</span>
@@ -3999,7 +4022,7 @@
 
         <span class="c1"># Now we are at the last part.</span>
         <span class="c1"># Here we should combine all the information that we calculate and update the options</span>
-        <span class="c1"># dictionary. This will then be passed to the Moe_de_Stefano_2017_pdf to calculate</span>
+        <span class="c1"># dictionary. This will then be passed to the Moe_di_Stefano_2017_pdf to calculate</span>
         <span class="c1"># the real probability. The trick we use is to strip the options_dict as a string</span>
         <span class="c1"># and add some keys to it:</span>
 
@@ -4018,7 +4041,7 @@
             <span class="s1">&#39;&quot;ecc3&quot;: eccentricity3&#39;</span><span class="p">,</span>
         <span class="p">)</span>
 
-        <span class="n">probdist_addition</span> <span class="o">=</span> <span class="s2">&quot;Moe_de_Stefano_2017_pdf(</span><span class="si">{}</span><span class="s2">, verbosity=self.grid_options[&#39;verbosity&#39;])[&#39;total_probdens&#39;]&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
+        <span class="n">probdist_addition</span> <span class="o">=</span> <span class="s2">&quot;Moe_di_Stefano_2017_pdf(</span><span class="si">{}</span><span class="s2">, verbosity=self.grid_options[&#39;verbosity&#39;])[&#39;total_probdens&#39;]&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
             <span class="n">updated_options</span>
         <span class="p">)</span>
 
@@ -4033,9 +4056,7 @@
         <span class="c1"># ] += &quot;; self.grid_options[&#39;m&amp;s_ensemble_options&#39;] = {}&quot;.format(o)</span>
 
         <span class="n">verbose_print</span><span class="p">(</span>
-            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_de_Stefano_2017: Added final call to the pdf function&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
-                <span class="n">max_multiplicity</span>
-            <span class="p">),</span>
+            <span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Moe_di_Stefano_2017: Added final call to the pdf function&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="n">_MS_VERBOSITY_LEVEL</span><span class="p">,</span>
         <span class="p">)</span>
@@ -4044,29 +4065,29 @@
         <span class="bp">self</span><span class="o">.</span><span class="n">grid_options</span><span class="p">[</span><span class="s1">&#39;_set_ms_grid&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span>
 
     <span class="c1">################################################################################################</span>
-<div class="viewcode-block" id="Population.Moe_de_Stefano_2017"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.Moe_de_Stefano_2017">[docs]</a>    <span class="k">def</span> <span class="nf">Moe_de_Stefano_2017</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>
+<div class="viewcode-block" id="Population.Moe_di_Stefano_2017"><a class="viewcode-back" href="../../../grid.html#binarycpython.utils.grid.Population.Moe_di_Stefano_2017">[docs]</a>    <span class="k">def</span> <span class="nf">Moe_di_Stefano_2017</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 handle setting the user input settings,</span>
 <span class="sd">        set up the data and load that into interpolators and</span>
-<span class="sd">        and then set the distribution functions</span>
+<span class="sd">        then set the distribution functions</span>
 
 <span class="sd">        Takes a dictionary as its only argument</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="c1"># Set the userinput</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">set_moe_distefano_settings</span><span class="p">(</span><span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span>
+        <span class="c1"># Set the user input</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">set_moe_di_stefano_settings</span><span class="p">(</span><span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span>
 
         <span class="c1"># Load the data</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">_load_moe_distefano_data</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_load_moe_di_stefano_data</span><span class="p">()</span>
 
         <span class="c1"># construct the grid here</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">_set_moe_distefano_distributions</span><span class="p">()</span></div>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_set_moe_di_stefano_distributions</span><span class="p">()</span></div>
 
     <span class="k">def</span> <span class="nf">_clean_interpolators</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Function to clean up the interpolators after a run</span>
 
-<span class="sd">        We look in the MoeCache global variable for items that are interpolators.</span>
+<span class="sd">        We look in the Moecache global variable for items that are interpolators.</span>
 <span class="sd">        Should be called by the general cleanup function AND the thread cleanup function</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
@@ -4092,7 +4113,12 @@
 
         <span class="c1"># Just return 1 if no option has been chosen</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;multiplicity_fraction_function&#39;</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
-            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Chosen not to use any multiplicity fraction.&quot;</span><span class="p">)</span>
+            <span class="n">verbose_print</span><span class="p">(</span>
+                <span class="s2">&quot;_calculate_multiplicity_fraction: Chosen not to use any multiplicity fraction.&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">2</span><span class="p">,</span>
+            <span class="p">)</span>
+
             <span class="k">return</span> <span class="mi">1</span>
 
         <span class="c1"># Raise an error if the multiplicity is not set</span>
@@ -4106,7 +4132,7 @@
             <span class="n">verbose_print</span><span class="p">(</span>
                 <span class="s2">&quot;_calculate_multiplicity_fraction: Using Arenou 2010 to calculate multiplicity fractions&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="mi">2</span><span class="p">,</span>
             <span class="p">)</span>
 
             <span class="n">binary_fraction</span> <span class="o">=</span> <span class="n">Arenou2010_binary_fraction</span><span class="p">(</span><span class="n">system_dict</span><span class="p">[</span><span class="s1">&#39;M_1&#39;</span><span class="p">])</span>
@@ -4117,7 +4143,7 @@
             <span class="n">verbose_print</span><span class="p">(</span>
                 <span class="s2">&quot;_calculate_multiplicity_fraction: Using Rhagavan 2010 to calculate multiplicity fractions&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="mi">2</span><span class="p">,</span>
             <span class="p">)</span>
 
             <span class="n">binary_fraction</span> <span class="o">=</span> <span class="n">raghavan2010_binary_fraction</span><span class="p">(</span><span class="n">system_dict</span><span class="p">[</span><span class="s1">&#39;M_1&#39;</span><span class="p">])</span>
@@ -4131,16 +4157,16 @@
                 <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;The M&amp;S options do not seem to be set properly. The value is </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="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="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
 
-            <span class="c1"># Second: is the moecache filled.</span>
+            <span class="c1"># Second: is the Moecache filled.</span>
             <span class="k">if</span> <span class="ow">not</span> <span class="n">Moecache</span><span class="p">:</span>
                 <span class="n">verbose_print</span><span class="p">(</span>
                     <span class="s2">&quot;_calculate_multiplicity_fraction: Moecache is empty. It needs to be filled with the data for the interpolators. Loading the data now&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="mi">2</span><span class="p">,</span>
                 <span class="p">)</span>
 
                 <span class="c1"># Load the data</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">_load_moe_distefano_data</span><span class="p">()</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">_load_moe_di_stefano_data</span><span class="p">()</span>
 
             <span class="c1"># record the prev value</span>
             <span class="n">prev_M1_value_ms</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;M_1&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
@@ -4149,7 +4175,7 @@
             <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="s1">&#39;M_1&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">system_dict</span><span class="p">[</span><span class="s1">&#39;M_1&#39;</span><span class="p">]</span>
 
             <span class="c1"># Calculate the multiplicity fraction</span>
-            <span class="n">multiplicity_fraction_list</span> <span class="o">=</span> <span class="n">Moe_de_Stefano_2017_multiplicity_fractions</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="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="n">multiplicity_fraction_list</span> <span class="o">=</span> <span class="n">Moe_di_Stefano_2017_multiplicity_fractions</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="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="c1"># Turn into dict</span>
             <span class="n">multiplicity_fraction_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">el</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">multiplicity_fraction_list</span><span class="p">[</span><span class="n">el</span><span class="p">]</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">multiplicity_fraction_list</span><span class="p">))}</span>
@@ -4165,7 +4191,7 @@
         <span class="n">verbose_print</span><span class="p">(</span>
             <span class="s2">&quot;Multiplicity: </span><span class="si">{}</span><span class="s2"> multiplicity_fraction: </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">system_dict</span><span class="p">[</span><span class="s1">&#39;multiplicity&#39;</span><span class="p">],</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="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="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>
@@ -4195,9 +4221,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 e2ee12889..3349af953 100644
--- a/docs/build/html/_modules/binarycpython/utils/grid_options_defaults.html
+++ b/docs/build/html/_modules/binarycpython/utils/grid_options_defaults.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -183,11 +186,11 @@
     <span class="c1"># general (or unordered..)</span>
     <span class="c1">##########################</span>
     <span class="s2">&quot;amt_cores&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>  <span class="c1"># total amount of cores used to evolve the population</span>
-    <span class="s2">&quot;parse_function&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># FUnction to parse the output with.</span>
+    <span class="s2">&quot;parse_function&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># Function to parse the output with.</span>
     <span class="s2">&quot;multiplicity_fraction_function&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># Which multiplicity fraction function to use. 0: None, 1: Arenou 2010, 2: Rhagavan 2010, 3: M&amp;S 2017</span>
     <span class="s2">&quot;tmp_dir&quot;</span><span class="p">:</span> <span class="n">temp_dir</span><span class="p">(),</span>  <span class="c1"># Setting the temp dir of the program</span>
     <span class="s2">&quot;_main_pid&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>  <span class="c1"># Placeholder for the main process id of the run.</span>
-    <span class="s2">&quot;combine_ensemble_with_thread_joining&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>  <span class="c1"># Flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{popuation_id}_{thread_id}.json</span>
+    <span class="s2">&quot;combine_ensemble_with_thread_joining&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>  <span class="c1"># Flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{population_id}_{thread_id}.json</span>
     <span class="s2">&quot;_commandline_input&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
     <span class="s2">&quot;log_runtime_systems&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>  <span class="c1"># whether to log the runtime of the systems (1 file per thread. stored in the tmp_dir)</span>
     <span class="s2">&quot;_actually_evolve_system&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>  <span class="c1"># Whether to actually evolve the systems of just act as if. for testing. used in _process_run_population_grid</span>
@@ -195,6 +198,7 @@
     <span class="s2">&quot;run_zero_probability_system&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="c1"># Whether to run the zero probability systems</span>
     <span class="s2">&quot;_zero_prob_stars_skipped&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
     <span class="s2">&quot;ensemble_factor_in_probability_weighted_mass&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># Whether to multiply the ensemble results by 1/probability_weighted_mass</span>
+    <span class="s2">&quot;do_dry_run&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="c1"># Whether to do a dry run to calculate the total probability for this run</span>
     <span class="c1">##########################</span>
     <span class="c1"># Execution log:</span>
     <span class="c1">##########################</span>
@@ -224,17 +228,17 @@
     <span class="c1">##########################</span>
     <span class="c1"># Custom logging</span>
     <span class="c1">##########################</span>
-    <span class="s2">&quot;C_auto_logging&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># Should contain a dictionary where the kes are they headers</span>
+    <span class="s2">&quot;C_auto_logging&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># Should contain a dictionary where the keys are they headers</span>
     <span class="c1"># and the values are lists of parameters that should be logged.</span>
-    <span class="c1"># This will get parsed by autogen_C_logging_code in custom_loggion_functions.py</span>
+    <span class="c1"># This will get parsed by autogen_C_logging_code in custom_logging_functions.py</span>
     <span class="s2">&quot;C_logging_code&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># Should contain a string which holds the logging code.</span>
     <span class="s2">&quot;custom_logging_func_memaddr&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>  <span class="c1"># Contains the custom_logging functions memory address</span>
     <span class="s2">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># file containing the .so file</span>
     <span class="c1">##########################</span>
     <span class="c1"># Store pre-loading:</span>
     <span class="c1">##########################</span>
-    <span class="s2">&quot;_store_memaddr&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>  <span class="c1"># Contains the store object memory adress, useful for preloading.</span>
-    <span class="c1"># defaults to -1 and isnt used if thats the default then.</span>
+    <span class="s2">&quot;_store_memaddr&quot;</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span>  <span class="c1"># Contains the store object memory address, useful for pre loading.</span>
+    <span class="c1"># defaults to -1 and isn&#39;t used if that&#39;s the default then.</span>
     <span class="c1">##########################</span>
     <span class="c1"># Log args: logging of arguments</span>
     <span class="c1">##########################</span>
@@ -247,7 +251,7 @@
     <span class="s2">&quot;evolution_type&quot;</span><span class="p">:</span> <span class="s2">&quot;grid&quot;</span><span class="p">,</span>  <span class="c1"># Flag for type of population evolution</span>
     <span class="s2">&quot;_evolution_type_options&quot;</span><span class="p">:</span> <span class="p">[</span>
         <span class="s2">&quot;grid&quot;</span><span class="p">,</span>
-    <span class="p">],</span>  <span class="c1"># available choices for type of population evolution. # TODO: fill later with monte carlo, sourcefile</span>
+    <span class="p">],</span>  <span class="c1"># available choices for type of population evolution. # TODO: fill later with Monte Carlo, source file</span>
     <span class="s2">&quot;_system_generator&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># value that holds the function that generates the system</span>
     <span class="c1"># (result of building the grid script)</span>
     <span class="s2">&quot;source_file_filename&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>  <span class="c1"># filename for the source</span>
@@ -599,14 +603,14 @@
     <span class="s2">&quot;_binary_c_shared_library&quot;</span><span class="p">:</span> <span class="s2">&quot;Full path to the libbinary_c file. This options is not used in the population object&quot;</span><span class="p">,</span>
     <span class="s2">&quot;verbosity&quot;</span><span class="p">:</span> <span class="s2">&quot;Verbosity of the population code. Default is 0, by which only errors will be printed. Higher values will show more output, which is good for debugging.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;binary&quot;</span><span class="p">:</span> <span class="s2">&quot;Set this to 1 if the population contains binaries. Input: int&quot;</span><span class="p">,</span>  <span class="c1"># TODO: write what effect this has.</span>
-    <span class="s2">&quot;amt_cores&quot;</span><span class="p">:</span> <span class="s2">&quot;The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multiprocessed, not multithreaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;amt_cores&quot;</span><span class="p">:</span> <span class="s2">&quot;The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multi processed, not multi threaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_start_time_evolution&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing the start timestamp of the population evolution. Set by the object itself.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: make sure this is logged to a file</span>
     <span class="s2">&quot;_end_time_evolution&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing the end timestamp of the population evolution. Set by the object itself&quot;</span><span class="p">,</span>  <span class="c1"># TODO: make sure this is logged to a file</span>
     <span class="s2">&quot;_total_starcount&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing the total amount of systems in the generator. Used and set by the population object.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_custom_logging_shared_library_file&quot;</span><span class="p">:</span> <span class="s2">&quot;filename for the custom_logging shared library. Used and set by the population object&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;_errors_found&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing a boolean flag whether errors by binary_c are encountered.&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;_errors_exceeded&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing a boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the commandline arguments of the failing systems will not be stored in the failed_system_log files.&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;source_file_filename&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable containing the source file containing lines of binary_c commandline calls. These all have to start with binary_c.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: Expand</span>
+    <span class="s2">&quot;_errors_found&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing a Boolean flag whether errors by binary_c are encountered.&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;_errors_exceeded&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing a Boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the command line arguments of the failing systems will not be stored in the failed_system_log files.&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;source_file_filename&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable containing the source file containing lines of binary_c command line calls. These all have to start with binary_c.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: Expand</span>
     <span class="s2">&quot;C_auto_logging&quot;</span><span class="p">:</span> <span class="s2">&quot;Dictionary containing parameters to be logged by binary_c. The structure of this dictionary is as follows: the key is used as the headline which the user can then catch. The value at that key is a list of binary_c system parameters (like star[0].mass)&quot;</span><span class="p">,</span>
     <span class="s2">&quot;C_logging_code&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable to store the exact code that is used for the custom_logging. In this way the user can do more complex logging, as well as putting these logging strings in files.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_failed_count&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing the amount of failed systems.&quot;</span><span class="p">,</span>
@@ -616,43 +620,44 @@
     <span class="s2">&quot;_grid_variables&quot;</span><span class="p">:</span> <span class="s2">&quot;Dictionary storing the grid_variables. These contain properties which are accessed by the _generate_grid_code function&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_population_id&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable storing a unique 32-char hex string.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_commandline_input&quot;</span><span class="p">:</span> <span class="s2">&quot;String containing the arguments passed to the population object via the command line. Set and used by the population object.&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;_system_generator&quot;</span><span class="p">:</span> <span class="s2">&quot;Function object that contains the system generator function. This can be from a grid, or a source file, or a montecarlo grid.&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;_system_generator&quot;</span><span class="p">:</span> <span class="s2">&quot;Function object that contains the system generator function. This can be from a grid, or a source file, or a Monte Carlo grid.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;gridcode_filename&quot;</span><span class="p">:</span> <span class="s2">&quot;Filename for the grid code. Set and used by the population object. TODO: allow the user to provide their own function, rather than only a generated function.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;log_args&quot;</span><span class="p">:</span> <span class="s2">&quot;Boolean to log the arguments. Unused &quot;</span><span class="p">,</span>  <span class="c1"># TODO: fix the functionality for this and describe it properly</span>
     <span class="s2">&quot;log_args_dir&quot;</span><span class="p">:</span> <span class="s2">&quot;Directory to log the arguments to. Unused&quot;</span><span class="p">,</span>  <span class="c1"># TODO: fix the functionality for this and describe it properly</span>
     <span class="s2">&quot;log_file&quot;</span><span class="p">:</span> <span class="s2">&quot;Log file for the population object. Unused&quot;</span><span class="p">,</span>  <span class="c1"># TODO: fix the functionality for this and describe it properly</span>
-    <span class="s2">&quot;custom_logging_func_memaddr&quot;</span><span class="p">:</span> <span class="s2">&quot;Memory adress where the custom_logging_function is stored. Input: int&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;custom_logging_func_memaddr&quot;</span><span class="p">:</span> <span class="s2">&quot;Memory address where the custom_logging_function is stored. Input: int&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_count&quot;</span><span class="p">:</span> <span class="s2">&quot;Counter tracking which system the generator is on.&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_probtot&quot;</span><span class="p">:</span> <span class="s2">&quot;Total probability of the population.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: check whether this is used properly throughout</span>
     <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 adress 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 commandline arguments to failed_systems log files&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;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 mulitplied 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>
+    <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>
     <span class="s2">&quot;repeat&quot;</span><span class="p">:</span> <span class="s2">&quot;Factor of how many times a system should be repeated. Consider the evolution splitting binary_c argument for supernovae kick repeating.&quot;</span><span class="p">,</span>  <span class="c1"># TODO: make sure this is used.</span>
     <span class="s2">&quot;evolution_type&quot;</span><span class="p">:</span> <span class="s2">&quot;Variable containing the type of evolution used of the grid. Multiprocessing or linear processing&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;combine_ensemble_with_thread_joining&quot;</span><span class="p">:</span> <span class="s2">&quot;BOolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_</span><span class="si">{popuation_id}</span><span class="s2">_</span><span class="si">{thread_id}</span><span class="s2">.json&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;log_runtime_systems&quot;</span><span class="p">:</span> <span class="s2">&quot;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&#39;t use this if you are planning to run alot 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&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;combine_ensemble_with_thread_joining&quot;</span><span class="p">:</span> <span class="s2">&quot;Boolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_</span><span class="si">{population_id}</span><span class="s2">_</span><span class="si">{thread_id}</span><span class="s2">.json&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;log_runtime_systems&quot;</span><span class="p">:</span> <span class="s2">&quot;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&#39;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&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_total_mass_run&quot;</span><span class="p">:</span> <span class="s2">&quot;To count the total mass that thread/process has ran&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_total_probability_weighted_mass_run&quot;</span><span class="p">:</span> <span class="s2">&quot;To count the total mass * probability for each system that thread/process has ran&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_actually_evolve_system&quot;</span><span class="p">:</span> <span class="s2">&quot;Whether to actually evolve the systems of just act as if. for testing. used in _process_run_population_grid&quot;</span><span class="p">,</span>
     <span class="s2">&quot;max_queue_size&quot;</span><span class="p">:</span> <span class="s2">&quot;Maximum size of the queue that is used to feed the processes. Don&#39;t make this too big! Default: 1000. Input: int&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_set_ms_grid&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal flag whether the M&amp;S grid has been loaded&quot;</span><span class="p">,</span>
-    <span class="s2">&quot;run_zero_probability_system&quot;</span><span class="p">:</span> <span class="s2">&quot;Whether to run the zero probability systems. Default: True. Input: boolean&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;run_zero_probability_system&quot;</span><span class="p">:</span> <span class="s2">&quot;Whether to run the zero probability systems. Default: True. Input: Boolean&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_zero_prob_stars_skipped&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal counter to track how many systems are skipped because they have 0 probability&quot;</span><span class="p">,</span>
     <span class="s2">&quot;ensemble_factor_in_probability_weighted_mass&quot;</span><span class="p">:</span> <span class="s2">&quot;Flag to multiply all the ensemble results with 1/probability_weighted_mass&quot;</span><span class="p">,</span>
     <span class="s2">&quot;multiplicity_fraction_function&quot;</span><span class="p">:</span> <span class="s2">&quot;Which multiplicity fraction function to use. 0: None, 1: Arenou 2010, 2: Rhagavan 2010, 3: M&amp;S 2017&quot;</span><span class="p">,</span>
     <span class="s2">&quot;m&amp;s_options&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal variable that holds the M&amp;S options. Don&#39;t write to this your self&quot;</span><span class="p">,</span>
     <span class="s2">&quot;_loaded_ms_data&quot;</span><span class="p">:</span> <span class="s2">&quot;Internal variable storing whether the M&amp;S data has been loaded into memory&quot;</span><span class="p">,</span>
+    <span class="s2">&quot;do_dry_run&quot;</span><span class="p">:</span> <span class="s2">&quot;Whether to do a dry run to calculate the total probability for this run&quot;</span><span class="p">,</span>
 <span class="p">}</span>
 
 <span class="c1">###</span>
 <span class="c1">#</span>
 
-<span class="c1"># Default options for the Moe &amp; Distefano grid</span>
-<span class="n">moe_distefano_default_options</span> <span class="o">=</span> <span class="p">{</span>
+<span class="c1"># Default options for the Moe &amp; di Stefano grid</span>
+<span class="n">moe_di_stefano_default_options</span> <span class="o">=</span> <span class="p">{</span>
     <span class="s2">&quot;resolutions&quot;</span><span class="p">:</span> <span class="p">{</span>
         <span class="s2">&quot;M&quot;</span><span class="p">:</span> <span class="p">[</span>
             <span class="mi">20</span><span class="p">,</span>  <span class="c1"># M1</span>
@@ -689,7 +694,7 @@
 
     <span class="c1"># multiplicity model (as a function of log10M1)</span>
     <span class="c1">#</span>
-    <span class="c1"># You can use &#39;Poisson&#39; which uses the system multiplicty</span>
+    <span class="c1"># You can use &#39;Poisson&#39; which uses the system multiplicity</span>
     <span class="c1"># given by Moe and maps this to single/binary/triple/quad</span>
     <span class="c1"># fractions.</span>
     <span class="c1">#</span>
@@ -712,16 +717,16 @@
         <span class="mi">0</span><span class="p">,</span>  <span class="c1"># triple</span>
         <span class="mi">0</span><span class="p">,</span>  <span class="c1"># quadruple</span>
     <span class="p">],</span>
-    <span class="c1"># given a mix of multiplities, you can either (noting that</span>
+    <span class="c1"># given a mix of multiplicities, you can either (noting that</span>
     <span class="c1"># here (S,B,T,Q) = appropriate modulator * model(S,B,T,Q) )</span>
     <span class="c1">#</span>
-    <span class="c1"># &#39;norm&#39;  : normalize so the whole population is 1.0</span>
+    <span class="c1"># &#39;norm&#39;  : normalise so the whole population is 1.0</span>
     <span class="c1">#           after implementing the appropriate fractions</span>
     <span class="c1">#           S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)</span>
     <span class="c1">#</span>
     <span class="c1"># &#39;raw&#39;   : stick to what is predicted, i.e.</span>
     <span class="c1">#           S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)</span>
-    <span class="c1">#           without normalization</span>
+    <span class="c1">#           without normalisation</span>
     <span class="c1">#           (in which case the total probability &lt; 1.0 unless</span>
     <span class="c1">#            all you use single, binary, triple and quadruple)</span>
     <span class="c1">#</span>
@@ -736,7 +741,7 @@
     <span class="c1">#</span>
     <span class="c1">#</span>
     <span class="c1"># note: if you only set one multiplicity_modulator</span>
-    <span class="c1"># to 1, and all the others to 0, then normalizing</span>
+    <span class="c1"># to 1, and all the others to 0, then normalising</span>
     <span class="c1"># will mean that you effectively have the same number</span>
     <span class="c1"># of stars as single, binary, triple or quad (whichever</span>
     <span class="c1"># is non-zero) i.e. the multiplicity fraction is ignored.</span>
@@ -748,14 +753,14 @@
     <span class="s2">&quot;q_high_extrapolation_method&quot;</span><span class="p">:</span> <span class="s2">&quot;linear&quot;</span><span class="p">,</span>
 <span class="p">}</span>
 
-<span class="n">moe_distefano_default_options_description</span> <span class="o">=</span> <span class="p">{</span>
+<span class="n">moe_di_stefano_default_options_description</span> <span class="o">=</span> <span class="p">{</span>
     <span class="s2">&quot;resolutions&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
     <span class="s2">&quot;ranges&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
     <span class="s2">&quot;Mmin&quot;</span><span class="p">:</span> <span class="s2">&quot;Minimum stellar mass&quot;</span><span class="p">,</span>
     <span class="s2">&quot;multiplicity_model&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;&quot;</span>
 <span class="s2">multiplicity model (as a function of log10M1)</span>
 
-<span class="s2">You can use &#39;Poisson&#39; which uses the system multiplicty</span>
+<span class="s2">You can use &#39;Poisson&#39; which uses the system multiplicity</span>
 <span class="s2">given by Moe and maps this to single/binary/triple/quad</span>
 <span class="s2">fractions.</span>
 
@@ -772,13 +777,13 @@
 <span class="s2">defaults to [1,1,0,0] i.e. singles and binaries</span>
 <span class="s2">&quot;&quot;&quot;</span><span class="p">,</span>
     <span class="s2">&quot;normalize_multiplicities&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;&quot;</span>
-<span class="s2">&#39;norm&#39;: normalize so the whole population is 1.0</span>
+<span class="s2">&#39;norm&#39;: normalise so the whole population is 1.0</span>
 <span class="s2">        after implementing the appropriate fractions</span>
 <span class="s2">        S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)</span>
-<span class="s2">        given a mix of multiplities, you can either (noting that</span>
+<span class="s2">        given a mix of multiplicities, you can either (noting that</span>
 <span class="s2">        here (S,B,T,Q) = appropriate modulator * model(S,B,T,Q) )</span>
 <span class="s2">        note: if you only set one multiplicity_modulator</span>
-<span class="s2">        to 1, and all the others to 0, then normalizing</span>
+<span class="s2">        to 1, and all the others to 0, then normalising</span>
 <span class="s2">        will mean that you effectively have the same number</span>
 <span class="s2">        of stars as single, binary, triple or quad (whichever</span>
 <span class="s2">        is non-zero) i.e. the multiplicity fraction is ignored.</span>
@@ -787,7 +792,7 @@
 
 <span class="s2">&#39;raw&#39;   : stick to what is predicted, i.e.</span>
 <span class="s2">          S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)</span>
-<span class="s2">          without normalization</span>
+<span class="s2">          without normalisation</span>
 <span class="s2">          (in which case the total probability &lt; 1.0 unless</span>
 <span class="s2">          all you use single, binary, triple and quadruple)</span>
 
@@ -827,7 +832,7 @@
 <span class="sd">        option: which option you want to have the description of</span>
 
 <span class="sd">    returns:</span>
-<span class="sd">        dict containg the option, the description if its there, otherwise empty string. And if the key doesnt exist, the dict is empty</span>
+<span class="sd">        dict containing the option, the description if its there, otherwise empty string. And if the key doesnt exist, the dict is empty</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="n">option_keys</span> <span class="o">=</span> <span class="n">grid_options_defaults_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span>
@@ -890,7 +895,7 @@
 <span class="sd">    Function that writes the descriptions of the grid options to a rst file</span>
 
 <span class="sd">    Tasks:</span>
-<span class="sd">        TODO: seperate things into private and public options</span>
+<span class="sd">        TODO: separate things into private and public options</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        output_file: target file where the grid options descriptions are written to</span>
@@ -936,12 +941,12 @@
             <span class="s2">&quot;The following options are meant to be changed by the user.&quot;</span><span class="p">,</span>
         <span class="p">)</span>
 
-        <span class="c1"># Moe &amp; Distefano options:</span>
+        <span class="c1"># Moe &amp; di Stefano options:</span>
         <span class="n">print_option_descriptions</span><span class="p">(</span>
             <span class="n">f</span><span class="p">,</span>
-            <span class="n">moe_distefano_default_options</span><span class="p">,</span>
-            <span class="n">moe_distefano_default_options_description</span><span class="p">,</span>
-            <span class="s2">&quot;Moe &amp; Distefano sampler options&quot;</span><span class="p">,</span>
+            <span class="n">moe_di_stefano_default_options</span><span class="p">,</span>
+            <span class="n">moe_di_stefano_default_options_description</span><span class="p">,</span>
+            <span class="s2">&quot;Moe &amp; di Stefano sampler options&quot;</span><span class="p">,</span>
             <span class="s2">&quot;The following options are meant to be changed by the user.&quot;</span><span class="p">,</span>
         <span class="p">)</span>
 
@@ -1000,9 +1005,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 d27308913..390e89bdd 100644
--- a/docs/build/html/_modules/binarycpython/utils/plot_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/plot_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -164,12 +167,12 @@
 <span class="sd">    plotting functions</span>
 <span class="sd">    master function: plot_system</span>
 
-<span class="sd">All the loose components here can ofcourse be used in other routines if you want.</span>
+<span class="sd">All the loose components here can of course be used in other routines if you want.</span>
 
-<span class="sd">There is no preloaded matplotlib rc, you should do that yourself</span>
+<span class="sd">There is no pre loaded matplotlib rc, you should do that yourself</span>
 
-<span class="sd">These plotting routines are designed for binary systems, and admittingly they are here mostly for </span>
-<span class="sd">inspirational purposes, since one would problably want to customize the plots. </span>
+<span class="sd">These plotting routines are designed for binary systems, and admittedly they are here mostly for </span>
+<span class="sd">inspirational purposes, since one would probably want to customise the plots. </span>
 <span class="sd">Regardless, having some plotting routines in here seemed like a nice idea</span>
 
 <span class="sd">Tasks</span>
@@ -826,9 +829,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 45ea5478f..cfa05a03b 100644
--- a/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html
+++ b/docs/build/html/_modules/binarycpython/utils/run_system_wrapper.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -179,7 +182,7 @@
 <span class="sd">    Examples:</span>
 <span class="sd">        - run_system(M_1=10): will run a system with ZAMS mass 1 = 10</span>
 <span class="sd">        - run_system(M_1=10, log_filename=&quot;~/example_log.txt&quot;): Will run a system</span>
-<span class="sd">            and write the logfile too</span>
+<span class="sd">            and write the log file too</span>
 <span class="sd">        - run_system(M_1=10, parse_function=fancy_parsing_function)</span>
 
 <span class="sd">    Tasks:</span>
@@ -192,9 +195,9 @@
 <span class="sd">    Kwargs:</span>
 <span class="sd">        custom_logging_code: Should contain a string containing the c-code for the shared library.</span>
 <span class="sd">            If this is provided binary_c will use that custom logging code to output its data</span>
-<span class="sd">        log_filename: Should contain name of the binary_c system logfile.</span>
+<span class="sd">        log_filename: Should contain name of the binary_c system log file.</span>
 <span class="sd">            Passing this will make sure that the filename gets written for a run</span>
-<span class="sd">            (its default behaviour is NOT to write a logfile for a system)</span>
+<span class="sd">            (its default behaviour is NOT to write a log file for a system)</span>
 <span class="sd">        parse_function (function): should contain a function that parses the output.</span>
 <span class="sd">            The parse function should take 1 required parameter: the output of the binaryc run</span>
 <span class="sd">            Passing this will call the parse_function by passing it the output of the binary_c call</span>
@@ -213,7 +216,7 @@
     <span class="n">func_memaddr</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
     <span class="n">write_logfile</span> <span class="o">=</span> <span class="mi">0</span>
 
-    <span class="c1"># Create dict to pass as argstring</span>
+    <span class="c1"># Create dict to pass as arg string</span>
     <span class="n">binary_c_args</span> <span class="o">=</span> <span class="p">{}</span>
 
     <span class="c1"># Check which binary_c arguments have been passed and put them into a dict</span>
@@ -225,7 +228,7 @@
         <span class="k">else</span><span class="p">:</span>
             <span class="k">if</span> <span class="ow">not</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">other_keywords</span><span class="p">:</span>
                 <span class="nb">print</span><span class="p">(</span>
-                    <span class="s2">&quot;The following keyword was not recognized and wont be used:</span><span class="se">\n\t</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="s2">&quot;The following keyword was not recognised and wont be used:</span><span class="se">\n\t</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">key</span>
                     <span class="p">)</span>
                 <span class="p">)</span>
@@ -284,9 +287,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 b2e20f040..06d3820d3 100644
--- a/docs/build/html/_modules/binarycpython/utils/spacing_functions.html
+++ b/docs/build/html/_modules/binarycpython/utils/spacing_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -206,9 +209,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 9fe021016..8ba8b4426 100644
--- a/docs/build/html/_modules/binarycpython/utils/useful_funcs.html
+++ b/docs/build/html/_modules/binarycpython/utils/useful_funcs.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -165,10 +168,13 @@
 <span class="sd">    - ZAMS_collision(m1, m2, e, sep, z) returns 1 if stars collide on the ZAMS</span>
 <span class="sd">    - roche_lobe(q): returns roche lobe radius in units of separation</span>
 <span class="sd">    - ragb(m, z): radius at first thermal pulse</span>
+<span class="sd">    - minimum_period_for_RLOF(M1, M2, metallicity, store_memaddr=-1): function to calculate the minimum period that leads to RLOF on ZAMS</span>
+<span class="sd">    - minimum_separation_for_RLOF(M1, M2, metallicity, store_memaddr=-1): function to calculate the minimum period that leads to RLOF on ZAMS</span>
+<span class="sd">    - maximum_mass_ratio_for_RLOF(M1, orbital_period, store_memaddr=None): Function to calculate the maximum mass ratio that leads to RLOF on ZAMS</span>
 
 <span class="sd">Tasks:</span>
 <span class="sd">    - TODO: check whether these functions are correct</span>
-<span class="sd">    - TODO: add unittest for maximum_mass_ratio_for_RLOF</span>
+<span class="sd">    - TODO: add unit test for maximum_mass_ratio_for_RLOF</span>
 <span class="sd">&quot;&quot;&quot;</span>
 
 <span class="kn">import</span> <span class="nn">math</span>
@@ -186,13 +192,13 @@
     <span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Wrapper function for _binary_c_bindings.return_minimum_orbit_for_RLOF</span>
 
-<span class="sd">    Handles the output and returns the minimum orbital period at which RLOF just does not occur at zams</span>
+<span class="sd">    Handles the output and returns the minimum orbital period at which RLOF just does not occur at ZAMS</span>
 
 <span class="sd">    Args:</span>
 <span class="sd">        M1: Primary mass in solar mass</span>
 <span class="sd">        M2: Secondary mass in solar mass</span>
 <span class="sd">        metallicity: metallicity</span>
-<span class="sd">        store_memaddr (optional): store memory adress</span>
+<span class="sd">        store_memaddr (optional): store memory address</span>
 <span class="sd">    Returns:</span>
 <span class="sd">        minimum orbital_period that just does not cause a RLOF at ZAMS</span>
 
@@ -560,9 +566,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html
index 191639de4..1ed7f7d1c 100644
--- a/docs/build/html/_modules/index.html
+++ b/docs/build/html/_modules/index.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -186,9 +189,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 cdca213e0..0c1a4dd88 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**: 6044:20210720:d1ed5b6c1	**Built on**: Jul 20 2021 13:54:45
+	**binary_c git branch**: branch_david	**binary_c git revision**: 6068:20210727:8955b541d	**Built on**: Jul 27 2021 22:36:46
 
 
 Section: stars
diff --git a/docs/build/html/_sources/examples.rst.txt b/docs/build/html/_sources/examples.rst.txt
index ab58720d9..16e4dc3a0 100644
--- a/docs/build/html/_sources/examples.rst.txt
+++ b/docs/build/html/_sources/examples.rst.txt
@@ -6,4 +6,5 @@ This chapter contains the source code of example scripts which show the way of u
    :hidden:                                                                     
 
    general_examples
-   population_example
\ No newline at end of file
+   population_example
+   notebooks
\ 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 5a77792e1..319b8d56a 100644
--- a/docs/build/html/_sources/grid_options_descriptions.rst.txt
+++ b/docs/build/html/_sources/grid_options_descriptions.rst.txt
@@ -13,19 +13,21 @@ The following options are meant to be changed by the user.
 
 | **C_logging_code**: Variable to store the exact code that is used for the custom_logging. In this way the user can do more complex logging, as well as putting these logging strings in files.
 
-| **amt_cores**: The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multiprocessed, not multithreaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int
+| **amt_cores**: The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multi processed, not multi threaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int
 
-| **combine_ensemble_with_thread_joining**: BOolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{popuation_id}_{thread_id}.json
+| **combine_ensemble_with_thread_joining**: Boolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{population_id}_{thread_id}.json
 
 | **condor**: Int flag whether to use a condor type population evolution. Not implemented yet.
 
-| **custom_logging_func_memaddr**: Memory adress where the custom_logging_function is stored. Input: int
+| **custom_logging_func_memaddr**: Memory address where the custom_logging_function is stored. Input: int
+
+| **do_dry_run**: Whether to do a dry run to calculate the total probability for this run
 
 | **ensemble_factor_in_probability_weighted_mass**: Flag to multiply all the ensemble results with 1/probability_weighted_mass
 
 | **evolution_type**: Variable containing the type of evolution used of the grid. Multiprocessing or linear processing
 
-| **failed_systems_threshold**: Variable storing the maximum amount of systems that are allowed to fail before logging their commandline arguments to failed_systems log files
+| **failed_systems_threshold**: Variable storing the maximum amount of systems that are allowed to fail before logging their command line arguments to failed_systems log files
 
 | **gridcode_filename**: Filename for the grid code. Set and used by the population object. TODO: allow the user to provide their own function, rather than only a generated function.
 
@@ -35,7 +37,7 @@ The following options are meant to be changed by the user.
 
 | **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 alot 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
+| **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
 
 | **m&s_options**: Internal variable that holds the M&S options. Don't write to this your self
 
@@ -49,20 +51,20 @@ The following options are meant to be changed by the user.
 
 | **repeat**: Factor of how many times a system should be repeated. Consider the evolution splitting binary_c argument for supernovae kick repeating.
 
-| **run_zero_probability_system**: Whether to run the zero probability systems. Default: True. Input: boolean
+| **run_zero_probability_system**: Whether to run the zero probability systems. Default: True. Input: Boolean
 
-| **slurm**: Int flag whether to use a slurm type population evolution.
+| **slurm**: Int flag whether to use a Slurm type population evolution.
 
-| **source_file_filename**: Variable containing the source file containing lines of binary_c commandline calls. These all have to start with binary_c.
+| **source_file_filename**: Variable containing the source file containing lines of binary_c command line calls. These all have to start with binary_c.
 
 | **tmp_dir**: Directory where certain types of output are stored. The grid code is stored in that directory, as well as the custom logging libraries. Log files and other diagnostics will usually be written to this location, unless specified otherwise
 
 | **verbosity**: Verbosity of the population code. Default is 0, by which only errors will be printed. Higher values will show more output, which is good for debugging.
 
-| **weight**: Weight factor for each system. The calculated probability is mulitplied 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.
+| **weight**: 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.
 
-Moe & Distefano sampler options
--------------------------------
+Moe & di Stefano sampler options
+--------------------------------
 The following options are meant to be changed by the user.
 
 
@@ -71,7 +73,7 @@ The following options are meant to be changed by the user.
 | **multiplicity_model**: 
 	multiplicity model (as a function of log10M1)
 	
-	You can use 'Poisson' which uses the system multiplicty
+	You can use 'Poisson' which uses the system multiplicity
 	given by Moe and maps this to single/binary/triple/quad
 	fractions.
 	
@@ -90,13 +92,13 @@ The following options are meant to be changed by the user.
 	
 
 | **normalize_multiplicities**: 
-	'norm': normalize so the whole population is 1.0
+	'norm': normalise so the whole population is 1.0
 	        after implementing the appropriate fractions
 	        S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)
-	        given a mix of multiplities, you can either (noting that
+	        given a mix of multiplicities, you can either (noting that
 	        here (S,B,T,Q) = appropriate modulator * model(S,B,T,Q) )
 	        note: if you only set one multiplicity_modulator
-	        to 1, and all the others to 0, then normalizing
+	        to 1, and all the others to 0, then normalising
 	        will mean that you effectively have the same number
 	        of stars as single, binary, triple or quad (whichever
 	        is non-zero) i.e. the multiplicity fraction is ignored.
@@ -105,7 +107,7 @@ The following options are meant to be changed by the user.
 	
 	'raw'   : stick to what is predicted, i.e.
 	          S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)
-	          without normalization
+	          without normalisation
 	          (in which case the total probability < 1.0 unless
 	          all you use single, binary, triple and quadruple)
 	
@@ -160,9 +162,9 @@ The following options are not meant to be changed by the user, as these options
 
 | **_end_time_evolution**: Variable storing the end timestamp of the population evolution. Set by the object itself
 
-| **_errors_exceeded**: Variable storing a boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the commandline arguments of the failing systems will not be stored in the failed_system_log files.
+| **_errors_exceeded**: Variable storing a Boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the command line arguments of the failing systems will not be stored in the failed_system_log files.
 
-| **_errors_found**: Variable storing a boolean flag whether errors by binary_c are encountered.
+| **_errors_found**: Variable storing a Boolean flag whether errors by binary_c are encountered.
 
 | **_evolution_type_options**: List containing the evolution type options.
 
@@ -186,9 +188,9 @@ The following options are not meant to be changed by the user, as these options
 
 | **_start_time_evolution**: Variable storing the start timestamp of the population evolution. Set by the object itself.
 
-| **_store_memaddr**: Memory adress of the store object for binary_c.
+| **_store_memaddr**: Memory address of the store object for binary_c.
 
-| **_system_generator**: Function object that contains the system generator function. This can be from a grid, or a source file, or a montecarlo grid.
+| **_system_generator**: Function object that contains the system generator function. This can be from a grid, or a source file, or a Monte Carlo grid.
 
 | **_total_mass_run**: To count the total mass that thread/process has ran
 
diff --git a/docs/build/html/_sources/notebook_population.ipynb.txt b/docs/build/html/_sources/notebook_population.ipynb.txt
new file mode 100644
index 000000000..8d2bdbf98
--- /dev/null
+++ b/docs/build/html/_sources/notebook_population.ipynb.txt
@@ -0,0 +1,359 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Title page\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "from binarycpython.utils.grid import Population\n",
+    "from binarycpython.utils.functions import (\n",
+    "    get_help_all,\n",
+    "    get_help,\n",
+    "    create_hdf5,\n",
+    "    output_lines,\n",
+    ")\n",
+    "from binarycpython.utils.custom_logging_functions import temp_dir\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#########################################################\n",
+    "# This file serves as an example for running a population.\n",
+    "# The use of help(<function>) is a good way to inspect what parameters are there to use\n",
+    "#########################################################\n",
+    "\n",
+    "# Create population object\n",
+    "example_pop = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "example_pop.set(verbose=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",
+    "example_pop.set(\n",
+    "    # binary_c physics options\n",
+    "    M_1=10,  # bse_options\n",
+    "    separation=0,  # bse_options\n",
+    "    orbital_period=45000000080,  # bse_options\n",
+    "    max_evolution_time=15000,  # bse_options\n",
+    "    eccentricity=0.02,  # bse_options\n",
+    "    # Set companion to low mass\n",
+    "    M_2=0.08,  # Since in the example we run a single system, we should set the companion mass here. If we donm't do this, the code will complain.\n",
+    "    # grid_options\n",
+    "    amt_cores=2,  # grid_options\n",
+    "    verbose=1,  # verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff\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",
+    "    ),  # custom_options\n",
+    "    base_filename=\"example_pop.dat\",  # custom_options\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def parse_function(self, output):\n",
+    "    # EXAMPLE PARSE_FUNCTION\n",
+    "\n",
+    "    # extract info from the population instance\n",
+    "\n",
+    "    # Get some information from the\n",
+    "    data_dir = self.custom_options[\"data_dir\"]\n",
+    "    base_filename = self.custom_options[\"base_filename\"]\n",
+    "\n",
+    "    # Check directory, make if necessary\n",
+    "    os.makedirs(data_dir, exist_ok=True)\n",
+    "\n",
+    "    seperator = \" \"\n",
+    "\n",
+    "    # Create filename\n",
+    "    outfilename = os.path.join(data_dir, base_filename)\n",
+    "\n",
+    "    parameters = [\"time\", \"mass\", \"zams_mass\", \"probability\", \"radius\", \"stellar_type\"]\n",
+    "\n",
+    "    # Go over the output.\n",
+    "    for el in output_lines(output):\n",
+    "        headerline = el.split()[0]\n",
+    "\n",
+    "        # CHeck the header and act accordingly\n",
+    "        if headerline == \"MY_STELLAR_DATA\":\n",
+    "            values = el.split()[1:]\n",
+    "            print(values)\n",
+    "\n",
+    "            if not len(parameters) == len(values):\n",
+    "                print(\"Amount of column names isnt equal to amount of columns\")\n",
+    "                raise ValueError\n",
+    "\n",
+    "            if not os.path.exists(outfilename):\n",
+    "                with open(outfilename, \"w\") as f:\n",
+    "                    f.write(seperator.join(parameters) + \"\\n\")\n",
+    "\n",
+    "            with open(outfilename, \"a\") as f:\n",
+    "                f.write(seperator.join(values) + \"\\n\")\n",
+    "\n",
+    "\n",
+    "\n",
+    "# Creating a parsing function\n",
+    "example_pop.set(\n",
+    "    parse_function=parse_function,  # Setting the parse function thats used in the evolve_population\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2fa5188e-312f-4a05-aeda-0bd4c00629c8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "### Custom logging\n",
+    "# Log the moment when the star turns into neutron\n",
+    "example_pop.set(\n",
+    "    C_logging_code=\"\"\"\n",
+    "if(stardata->star[0].stellar_type >= 13)    \n",
+    "{\n",
+    "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
+    "    {\n",
+    "        Printf(\"MY_STELLAR_DATA %30.12e %g %g %g %g %d\\\\n\",\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
+    "            stardata->star[0].mass, // 2\n",
+    "            stardata->common.zero_age.mass[0], // 4\n",
+    "            stardata->model.probability, // 5\n",
+    "            stardata->star[0].radius, // 6\n",
+    "            stardata->star[0].stellar_type // 7\n",
+    "      );\n",
+    "    };\n",
+    "    /* Kill the simulation to save time */\n",
+    "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
+    "};\n",
+    "\"\"\"\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Add grid variables\n",
+    "resolution = {\"M_1\": 20, \"q\": 20, \"per\": 40}\n",
+    "\n",
+    "# Mass\n",
+    "example_pop.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=[2, 150],\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n",
+    "    precode=\"M_1=math.exp(lnm1)\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    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",
+    "# test_pop.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(0.1/M_1, 1, {})\".format(resolution['q']),\n",
+    "#     probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n",
+    "#     dphasevol=\"dq\",\n",
+    "#     precode=\"M_2 = q * M_1\",\n",
+    "#     parameter_name=\"M_2\",\n",
+    "#     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    "# )\n",
+    "\n",
+    "# #\n",
+    "# test_pop.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(0.15, 5.5, {})\".format(resolution[\"per\"]),\n",
+    "#    precode=\"\"\"orbital_period = 10** log10per\n",
+    "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n",
+    "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n",
+    "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n",
+    "#    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n",
+    "#    parameter_name=\"orbital_period\",\n",
+    "#    dphasevol=\"dlog10per\",\n",
+    "# )\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8c96b151-8c3b-4479-969f-6c2f898497a5",
+   "metadata": {},
+   "source": [
+    "Exporting of all the settings can be done with .export_all_info()\n",
+    "on default it exports everything, but can be supressed by turning it off:\n",
+    "  population settings (bse_options, grid_options, custom_options), turn off with include_population\n",
+    "      settings=False\n",
+    "  binary_c_defaults (all the commandline arguments that binary c accepts, and their defaults).\n",
+    "      turn off with include_binary_c_defaults=False\n",
+    "  include_binary_c_version_info (all the compilation info, and information about the compiled\n",
+    "      parameters), turn off with include_binary_c_version_info=False\n",
+    "  include_binary_c_help_all (all the help information for all the binary_c parameters),\n",
+    "      turn off with include_binary_c_help_all=Fase\n",
+    "On default it will write this to the custom_options['data_dir'], but that can be overriden by\n",
+    "  setting use_datadir=False and providing an outfile=<>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "ba83443c-64b4-4126-90b3-b1ca76c0f73d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "example_pop.export_all_info()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ef5b51a1-e56d-4bec-a5c7-b9d5bceeceba",
+   "metadata": {},
+   "source": [
+    "Executing a single system\n",
+    "This uses the M_1 orbital period etc set with the set function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "c0a9aed7-1fc9-4fe3-8bcf-4e987bfc00a9",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating the code for the shared library for the custom logging\n",
+      "['2.773586668293e+01', '1.33526', '10', '1', '1.72498e-05', '13']\n",
+      "None\n"
+     ]
+    }
+   ],
+   "source": [
+    "output = example_pop.evolve_single()\n",
+    "print(output)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "## Executing a population\n",
+    "## This uses the values generated by the grid_variables\n",
+    "example_pop.evolve()  # TODO: update this function call"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ce937b07-7292-4bb1-b2e7-d69e51bdff6e",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Wrapping up the results to an hdf5 file can be done by using the create_hdf5\n",
+    "(<directory containing data and settings>) This function takes the settings file\n",
+    "(ending in _settings.json) and the data files (ending in .dat) from the data_dir\n",
+    "and packing them into an hdf5 file, which is then written into the same data_dir directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "ad444138-f854-4fdb-8e18-49e35ac9c7e2",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating /tmp/binary_c_python/example_python_population_result/example_pop.hdf5\n",
+      "Adding settings to HDF5 file\n",
+      "Adding data to HDF5 file\n"
+     ]
+    }
+   ],
+   "source": [
+    "create_hdf5(data_dir=example_pop.custom_options[\"data_dir\"], name=\"example_pop.hdf5\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "34da69bc-fe60-4a9d-b07a-f6cd2f216964",
+   "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/notebooks.rst.txt b/docs/build/html/_sources/notebooks.rst.txt
new file mode 100644
index 000000000..8002bcb2b
--- /dev/null
+++ b/docs/build/html/_sources/notebooks.rst.txt
@@ -0,0 +1,10 @@
+Notebooks
+=========
+The notebooks.
+
+
+.. toctree::
+    :maxdepth: 2
+    :caption: Contents:
+
+    notebook_population.ipynb
diff --git a/docs/build/html/binary_c_parameters.html b/docs/build/html/binary_c_parameters.html
index 9993c622e..d76fcd537 100644
--- a/docs/build/html/binary_c_parameters.html
+++ b/docs/build/html/binary_c_parameters.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -37,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="Example of population script" href="population_example.html" /> 
+    <link rel="prev" title="Title page" href="notebook_population.html" /> 
 </head>
 
 <body class="wy-body-for-nav">
@@ -166,11 +169,35 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="binary-c-parameters">
+  
+<style>
+/* 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="binary-c-parameters">
 <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>: 6044:20210720:d1ed5b6c1      <strong>Built on</strong>: Jul 20 2021 13:54:45</p>
+<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>: 6068:20210727:8955b541d      <strong>Built on</strong>: Jul 27 2021 22:36:46</p>
 </dd>
 </dl>
 <div class="section" id="section-stars">
@@ -3433,7 +3460,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="population_example.html" class="btn btn-neutral float-left" title="Example of population script" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
+        <a href="notebook_population.html" class="btn btn-neutral float-left" title="Title page" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
       
     </div>
   
@@ -3456,9 +3483,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/custom_logging_functions.html b/docs/build/html/custom_logging_functions.html
index 3a5d93579..40bf0c78f 100644
--- a/docs/build/html/custom_logging_functions.html
+++ b/docs/build/html/custom_logging_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,17 +174,41 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.custom_logging_functions">
+  
+<style>
+/* 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="module-binarycpython.utils.custom_logging_functions">
 <span id="custom-logging-functions-module"></span><h1>custom_logging_functions module<a class="headerlink" href="#module-binarycpython.utils.custom_logging_functions" title="Permalink to this headline">¶</a></h1>
 <p>Module containing functions for the custom logging functionality.
 The functions here make it possible for the user to define binaryc output logs on runtime</p>
 <dl class="py function">
 <dt id="binarycpython.utils.custom_logging_functions.autogen_C_logging_code">
 <code class="sig-prename descclassname">binarycpython.utils.custom_logging_functions.</code><code class="sig-name descname">autogen_C_logging_code</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">logging_dict</span></em>, <em class="sig-param"><span class="n">verbose</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/custom_logging_functions.html#autogen_C_logging_code"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.custom_logging_functions.autogen_C_logging_code" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that autogenerates PRINTF statements for binaryc.
+<dd><p>Function that auto-generates PRINTF statements for binaryc.
 Input is a dictionary where the key is the header of that logging line
 and items which are lists of parameters that will be put in that logging line</p>
-<p>The list elements are all appended to ‘stardata-&gt;’ in the autogenerated code.</p>
+<p>The list elements are all appended to ‘stardata-&gt;’ in the auto-generated code.</p>
 <p class="rubric">Example</p>
 <p>Input dictionary should look like this:</p>
 <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="s1">&#39;MY_STELLAR_DATA&#39;</span><span class="p">:</span>
@@ -198,7 +225,7 @@ and items which are lists of parameters that will be put in that logging line</p
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>logging_dict</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code>) – Dictionary containing lists of parameters that binary_c has to output. The keys are used by binary_c as start of the sentence.</p></li>
-<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicilty.</p></li>
+<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicitly.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -243,7 +270,7 @@ and items which are lists of parameters that will be put in that logging line</p
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>code</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – Exact c-statement to output information in binary_c. Can be wrapped in logical statements.</p></li>
-<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicilty.</p></li>
+<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicitly.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -264,7 +291,7 @@ and items which are lists of parameters that will be put in that logging line</p
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>code</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – string containing the custom logging code to write to a file.</p></li>
 <li><p><strong>filename</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – target filename.</p></li>
-<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicilty.</p></li>
+<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicitly.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -285,7 +312,7 @@ TODO: consider returning a status</p>
 <li><p><strong>code</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – string containing the custom logging code</p></li>
 <li><p><strong>sourcefile_name</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – name of the file that will contain the code</p></li>
 <li><p><strong>outfile_name</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – name of the file that will be the shared library</p></li>
-<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicilty.</p></li>
+<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicitly.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -305,14 +332,14 @@ I recommend using this in function in combination with a function that generates
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>custom_logging_code</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – string containing the custom logging code</p></li>
-<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicilty.</p></li>
+<li><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicitly.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-data docutils literal notranslate"><span class="pre">Tuple</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>]</p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>memory adress of the custom logging function in a int type.</p>
+<dd class="field-odd"><p>memory address of the custom logging function in a capsule.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -341,12 +368,12 @@ I recommend using this in function in combination with a function that generates
 <dt id="binarycpython.utils.custom_logging_functions.return_compilation_dict">
 <code class="sig-prename descclassname">binarycpython.utils.custom_logging_functions.</code><code class="sig-name descname">return_compilation_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">verbose</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/custom_logging_functions.html#return_compilation_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.custom_logging_functions.return_compilation_dict" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function to build the compile command for the shared library</p>
-<p>Inspired by binary_c_inline_config command in perl</p>
-<p>TODO: this function still has some cleaning up to do wrt default values for the compile command
+<p>Inspired by binary_c_inline_config command in Perl</p>
+<p>TODO: this function still has some cleaning up to do w.r.t. default values for the compile command
 # <a class="reference external" href="https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/">https://developers.redhat.com/blog/2018/03/21/compiler-and-linker-flags-gcc/</a></p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicilty.</p>
+<dd class="field-odd"><p><strong>verbose</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – Level of verbosity. Defaults to zero if not set explicitly.</p>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
@@ -393,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: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/distribution_functions.html b/docs/build/html/distribution_functions.html
index 98fb7a3d0..0261d69ff 100644
--- a/docs/build/html/distribution_functions.html
+++ b/docs/build/html/distribution_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.distribution_functions">
+  
+<style>
+/* 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="module-binarycpython.utils.distribution_functions">
 <span id="distribution-functions-module"></span><h1>distribution_functions module<a class="headerlink" href="#module-binarycpython.utils.distribution_functions" title="Permalink to this headline">¶</a></h1>
 <p>Module containing the predefined distribution functions</p>
 <p>The user can use any of these distribution functions to
@@ -186,7 +213,7 @@ generate probability distributions for sampling populations</p>
 </dd>
 <dt>Tasks:</dt><dd><ul class="simple">
 <li><dl class="simple">
-<dt>TODO: make some things globally present? rob does this in his module..i guess it saves</dt><dd><p>calculations but not sure if im gonna do that now</p>
+<dt>TODO: make some things globally present? rob does this in his module..i guess it saves</dt><dd><p>calculations but not sure if I’m gonna do that now</p>
 </dd>
 </dl>
 </li>
@@ -194,7 +221,7 @@ generate probability distributions for sampling populations</p>
 <li><p>TODO: Add SFH distributions depending on redshift</p></li>
 <li><p>TODO: Add metallicity distributions depending on redshift</p></li>
 <li><p>TODO: Add initial rotational velocity distributions</p></li>
-<li><p>TODO: make an n-part powerlaw thats general enough to fix the three part and the 4 part</p></li>
+<li><p>TODO: make an n-part power law that’s general enough to fix the three part and the 4 part</p></li>
 </ul>
 </dd>
 </dl>
@@ -246,7 +273,7 @@ and Sana’s power law (as a function of logP) at high mass</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.Kroupa2001">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">Kroupa2001</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">m</span></em>, <em class="sig-param"><span class="n">newopts</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/distribution_functions.html#Kroupa2001"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.Kroupa2001" title="Permalink to this definition">¶</a></dt>
-<dd><p>Probability distribution function for kroupa 2001 IMF, where the default values to the
+<dd><p>Probability distribution function for Kroupa 2001 IMF, where the default values to the
 three_part_powerlaw are: default = {“m0”: 0.1, “m1”: 0.5, “m2”: 1, “mmax”: 100, “p1”: -1.3, “p2”: -2.3,”p3”: -2.3}</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -265,10 +292,10 @@ three_part_powerlaw are: default = {“m0”: 0.1, “m1”: 0.5, “m2”: 1, 
 </dd></dl>
 
 <dl class="py function">
-<dt id="binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_multiplicity_fractions">
-<code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">Moe_de_Stefano_2017_multiplicity_fractions</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#Moe_de_Stefano_2017_multiplicity_fractions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_multiplicity_fractions" title="Permalink to this definition">¶</a></dt>
+<dt id="binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_multiplicity_fractions">
+<code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">Moe_di_Stefano_2017_multiplicity_fractions</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#Moe_di_Stefano_2017_multiplicity_fractions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_multiplicity_fractions" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function that creates a list of probability fractions and
-normalizes and merges them according to the users choice.</p>
+normalises and merges them according to the users choice.</p>
 <p>TODO: make an extrapolation functionality in this. log10(1.6e1)
 is low, we can probably go a bit further</p>
 <p>The default result that is returned when sampling the mass outside
@@ -277,9 +304,9 @@ of the mass range is now the last known value</p>
 </dd></dl>
 
 <dl class="py function">
-<dt id="binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_pdf">
-<code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">Moe_de_Stefano_2017_pdf</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#Moe_de_Stefano_2017_pdf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_pdf" title="Permalink to this definition">¶</a></dt>
-<dd><p>Moe &amp; distefano function to calculate the probability density.</p>
+<dt id="binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_pdf">
+<code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">Moe_di_Stefano_2017_pdf</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#Moe_di_Stefano_2017_pdf"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_pdf" title="Permalink to this definition">¶</a></dt>
+<dd><p>Moe &amp; diStefano function to calculate the probability density.</p>
 <p>takes a dictionary as input (in options) with options:</p>
 <p>M1, M2, M3, M4 =&gt; masses (Msun) [M1 required, rest optional]
 P, P2, P3 =&gt; periods (days) [number: none=binary, 2=triple, 3=quadruple]
@@ -297,14 +324,14 @@ mmax =&gt; maximum allowed stellar mass (default 80.0)</p>
 <dt id="binarycpython.utils.distribution_functions.calc_P_integral">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">calc_P_integral</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">min_P</span></em>, <em class="sig-param"><span class="n">integrals_string</span></em>, <em class="sig-param"><span class="n">interpolator_name</span></em>, <em class="sig-param"><span class="n">mass_string</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#calc_P_integral"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.calc_P_integral" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function to calculate the P integral</p>
-<p>We need to renormalize this because min_per &gt; 0, and not all periods should be included</p>
+<p>We need to renormalise this because min_per &gt; 0, and not all periods should be included</p>
 </dd></dl>
 
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.calc_e_integral">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">calc_e_integral</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">integrals_string</span></em>, <em class="sig-param"><span class="n">interpolator_name</span></em>, <em class="sig-param"><span class="n">mass_string</span></em>, <em class="sig-param"><span class="n">period_string</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#calc_e_integral"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.calc_e_integral" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function to calculate the P integral</p>
-<p>We need to renormalize this because min_per &gt; 0, and not all periods should be included</p>
+<p>We need to renormalise this because min_per &gt; 0, and not all periods should be included</p>
 </dd></dl>
 
 <dl class="py function">
@@ -316,8 +343,8 @@ mmax =&gt; maximum allowed stellar mass (default 80.0)</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.calculate_constants_three_part_powerlaw">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">calculate_constants_three_part_powerlaw</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">m0</span></em>, <em class="sig-param"><span class="n">m1</span></em>, <em class="sig-param"><span class="n">m2</span></em>, <em class="sig-param"><span class="n">m_max</span></em>, <em class="sig-param"><span class="n">p1</span></em>, <em class="sig-param"><span class="n">p2</span></em>, <em class="sig-param"><span class="n">p3</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#calculate_constants_three_part_powerlaw"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.calculate_constants_three_part_powerlaw" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to calculate the constants for a three-part powerlaw</p>
-<p>TODO: use the powerlaw_constant function to calculate all these values</p>
+<dd><p>Function to calculate the constants for a three-part power law</p>
+<p>TODO: use the power law_constant function to calculate all these values</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
@@ -368,7 +395,7 @@ mmax =&gt; maximum allowed stellar mass (default 80.0)</p>
 <dd class="field-odd"><p><strong>z</strong> – redshift</p>
 </dd>
 <dt class="field-even">Returns</dt>
-<dd class="field-even"><p>Cosmic star formation rate in Solarmass year^-1 megaparsec^-3</p>
+<dd class="field-even"><p>Cosmic star formation rate in Solar mass year^-1 mega parsec^-3</p>
 </dd>
 </dl>
 </dd></dl>
@@ -393,7 +420,7 @@ mmax =&gt; maximum allowed stellar mass (default 80.0)</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.fill_data">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">fill_data</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sample_values</span></em>, <em class="sig-param"><span class="n">data_dict</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#fill_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.fill_data" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that returns the normalized array of values for given logmass and logperiod
+<dd><p>Function that returns the normalised array of values for given logmass and logperiod
 used for the e and q values</p>
 <p>TODO: make sure we do the correct thing with the dstep</p>
 </dd></dl>
@@ -440,8 +467,8 @@ used for the e and q values</p>
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>x</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – location at which to evaluate the distribution</p></li>
-<li><p><strong>mean</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mean of the gaussian</p></li>
-<li><p><strong>sigma</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – standard deviation of the gaussian</p></li>
+<li><p><strong>mean</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mean of the Gaussian</p></li>
+<li><p><strong>sigma</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – standard deviation of the Gaussian</p></li>
 <li><p><strong>gmin</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – lower bound of the range to calculate the probabilities in</p></li>
 <li><p><strong>gmax</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – upper bound of the range to calculate the probabilities in</p></li>
 </ul>
@@ -450,7 +477,7 @@ used for the e and q values</p>
 <dd class="field-even"><p><code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]</p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>‘probability’ of the gaussian distribution between the boundaries, evaluated at x</p>
+<dd class="field-odd"><p>‘probability’ of the Gaussian distribution between the boundaries, evaluated at x</p>
 </dd>
 </dl>
 </dd></dl>
@@ -458,20 +485,20 @@ used for the e and q values</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.gaussian_func">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">gaussian_func</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span></em>, <em class="sig-param"><span class="n">mean</span></em>, <em class="sig-param"><span class="n">sigma</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#gaussian_func"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.gaussian_func" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to evaluate a gaussian at a given point, but this time without any boundaries.</p>
+<dd><p>Function to evaluate a Gaussian at a given point, but this time without any boundaries.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>x</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – location at which to evaluate the distribution</p></li>
-<li><p><strong>mean</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mean of the gaussian</p></li>
-<li><p><strong>sigma</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – standard deviation of the gaussian</p></li>
+<li><p><strong>mean</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mean of the Gaussian</p></li>
+<li><p><strong>sigma</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – standard deviation of the Gaussian</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]</p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>value of the gaussian at x</p>
+<dd class="field-odd"><p>value of the Gaussian at x</p>
 </dd>
 </dl>
 </dd></dl>
@@ -479,12 +506,12 @@ used for the e and q values</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.gaussian_normalizing_const">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">gaussian_normalizing_const</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">mean</span></em>, <em class="sig-param"><span class="n">sigma</span></em>, <em class="sig-param"><span class="n">gmin</span></em>, <em class="sig-param"><span class="n">gmax</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#gaussian_normalizing_const"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.gaussian_normalizing_const" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to calculate the normalisation constant for the gaussian</p>
+<dd><p>Function to calculate the normalisation constant for the Gaussian</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>mean</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mean of the gaussian</p></li>
-<li><p><strong>sigma</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – standard deviation of the gaussian</p></li>
+<li><p><strong>mean</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mean of the Gaussian</p></li>
+<li><p><strong>sigma</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – standard deviation of the Gaussian</p></li>
 <li><p><strong>gmin</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – lower bound of the range to calculate the probabilities in</p></li>
 <li><p><strong>gmax</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – upper bound of the range to calculate the probabilities in</p></li>
 </ul>
@@ -493,7 +520,7 @@ used for the e and q values</p>
 <dd class="field-even"><p><code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]</p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>normalisation constant for the gaussian distribution(mean, sigma) between gmin and gmax</p>
+<dd class="field-odd"><p>normalisation constant for the Gaussian distribution(mean, sigma) between gmin and gmax</p>
 </dd>
 </dl>
 </dd></dl>
@@ -547,7 +574,7 @@ used for the e and q values</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.imf_scalo1998">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">imf_scalo1998</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">m</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#imf_scalo1998"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.imf_scalo1998" title="Permalink to this definition">¶</a></dt>
-<dd><p>From scalo 1998</p>
+<dd><p>From Scalo 1998</p>
 <p>Probability distribution function for Scalo 1998 IMF (defined up until 80Msol): three_part_powerlaw(m, 0.1, 1.0, 10.0, 80.0, -1.2, -2.7, -2.3)</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -565,7 +592,7 @@ used for the e and q values</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.imf_tinsley1980">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">imf_tinsley1980</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">m</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#imf_tinsley1980"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.imf_tinsley1980" title="Permalink to this definition">¶</a></dt>
-<dd><p>Probability distribution function for tinsley 1980 IMF (defined up until 80Msol): three_part_powerlaw(m, 0.1, 2.0, 10.0, 80.0, -2.0, -2.3, -3.3)</p>
+<dd><p>Probability distribution function for Tinsley 1980 IMF (defined up until 80Msol): three_part_powerlaw(m, 0.1, 2.0, 10.0, 80.0, -2.0, -2.3, -3.3)</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>m</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – mass to evaluate the distribution at</p>
@@ -647,7 +674,7 @@ low: at 1.15</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.normalize_dict">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">normalize_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">result_dict</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#normalize_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.normalize_dict" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to normalize a dictionary</p>
+<dd><p>Function to normalise a dictionary</p>
 </dd></dl>
 
 <dl class="py function">
@@ -670,19 +697,19 @@ low: at 1.15</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.poisson">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">poisson</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">lambda_val</span></em>, <em class="sig-param"><span class="n">n</span></em>, <em class="sig-param"><span class="n">nmax</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#poisson"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.poisson" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that calculates the poisson value and normalizes
+<dd><p>Function that calculates the Poisson value and normalises
 TODO: improve the description</p>
 </dd></dl>
 
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.powerlaw">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">powerlaw</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">min_val</span></em>, <em class="sig-param"><span class="n">max_val</span></em>, <em class="sig-param"><span class="n">k</span></em>, <em class="sig-param"><span class="n">x</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#powerlaw"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.powerlaw" title="Permalink to this definition">¶</a></dt>
-<dd><p>Single powerlaw with index k at x from min to max</p>
+<dd><p>Single power law with index k at x from min to max</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>min_val</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – lower bound of the powerlaw</p></li>
-<li><p><strong>max_val</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – upper bound of the powerlaw</p></li>
+<li><p><strong>min_val</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – lower bound of the power law</p></li>
+<li><p><strong>max_val</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – upper bound of the power law</p></li>
 <li><p><strong>k</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – slope of the power law</p></li>
 <li><p><strong>x</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – position at which we want to evaluate</p></li>
 </ul>
@@ -699,21 +726,21 @@ TODO: improve the description</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.powerlaw_constant">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">powerlaw_constant</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">min_val</span></em>, <em class="sig-param"><span class="n">max_val</span></em>, <em class="sig-param"><span class="n">k</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#powerlaw_constant"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.powerlaw_constant" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that returns the constant to normalise a powerlaw</p>
+<dd><p>Function that returns the constant to normalise a power law</p>
 <p>TODO: what if k is -1?</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>min_val</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – lower bound of the range</p></li>
 <li><p><strong>max_val</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – upper bound of the range</p></li>
-<li><p><strong>k</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – powerlaw slope</p></li>
+<li><p><strong>k</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – power law slope</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]</p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>constant to normalize the given powerlaw between the min_val and max_val range</p>
+<dd class="field-odd"><p>constant to normalise the given power law between the min_val and max_val range</p>
 </dd>
 </dl>
 </dd></dl>
@@ -721,7 +748,7 @@ TODO: improve the description</p>
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.powerlaw_extrapolation_q">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">powerlaw_extrapolation_q</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">qdata</span></em>, <em class="sig-param"><span class="n">qs</span></em>, <em class="sig-param"><span class="n">indices</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#powerlaw_extrapolation_q"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.powerlaw_extrapolation_q" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to do the powerlaw extrapolation at the lower end of the q range</p>
+<dd><p>Function to do the power law extrapolation at the lower end of the q range</p>
 </dd></dl>
 
 <dl class="py function">
@@ -729,11 +756,11 @@ TODO: improve the description</p>
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">prepare_dict</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">global_dict</span></em>, <em class="sig-param"><span class="n">list_of_sub_keys</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#prepare_dict"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.prepare_dict" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function that makes sure that the global dict is prepared to have a value set there.
 This dictionary will store values and factors for the distribution functions,
-so that they dont have to be calculated each time.</p>
+so that they don’t have to be calculated each time.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>global_dict</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code>) – globablly acessible dictionary where factors are stored in</p></li>
+<li><p><strong>global_dict</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code>) – globally accessible dictionary where factors are stored in</p></li>
 <li><p><strong>list_of_sub_keys</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code>) – List of keys that must become be(come) present in the global_dict</p></li>
 </ul>
 </dd>
@@ -789,7 +816,7 @@ and is be given by dp/dlogP ~ (logP)^p for all other binary configurations (defa
 <li><p><strong>amax</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – maximum separation of the distribution (upper bound of the range)</p></li>
 <li><p><strong>x0</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – log of minimum period of the distribution (lower bound of the range)</p></li>
 <li><p><strong>x1</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – log of maximum period of the distribution (upper bound of the range)</p></li>
-<li><p><strong>p</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – slope of the distributoon</p></li>
+<li><p><strong>p</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Union</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code>]) – slope of the distribution</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -825,7 +852,7 @@ and is be given by dp/dlogP ~ (logP)^p for all other binary configurations (defa
 <dl class="py function">
 <dt id="binarycpython.utils.distribution_functions.three_part_powerlaw">
 <code class="sig-prename descclassname">binarycpython.utils.distribution_functions.</code><code class="sig-name descname">three_part_powerlaw</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">m</span></em>, <em class="sig-param"><span class="n">m0</span></em>, <em class="sig-param"><span class="n">m1</span></em>, <em class="sig-param"><span class="n">m2</span></em>, <em class="sig-param"><span class="n">m_max</span></em>, <em class="sig-param"><span class="n">p1</span></em>, <em class="sig-param"><span class="n">p2</span></em>, <em class="sig-param"><span class="n">p3</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/distribution_functions.html#three_part_powerlaw"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.distribution_functions.three_part_powerlaw" title="Permalink to this definition">¶</a></dt>
-<dd><p>Generalized three-part power law, usually used for mass distributions</p>
+<dd><p>Generalised three-part power law, usually used for mass distributions</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
@@ -884,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: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/examples.html b/docs/build/html/examples.html
index 305fa05be..75ebcda6b 100644
--- a/docs/build/html/examples.html
+++ b/docs/build/html/examples.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -89,6 +92,7 @@
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Examples</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="general_examples.html">Examples</a></li>
 <li class="toctree-l2"><a class="reference internal" href="population_example.html">Example of population script</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebooks.html">Notebooks</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -160,7 +164,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="examples">
+  
+<style>
+/* 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="examples">
 <h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h1>
 <p>This chapter contains the source code of example scripts which show the way of using certain functions</p>
 <div class="toctree-wrapper compound">
@@ -201,9 +229,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/functions.html b/docs/build/html/functions.html
index 8c75c527e..995bd180d 100644
--- a/docs/build/html/functions.html
+++ b/docs/build/html/functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.functions">
+  
+<style>
+/* 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="module-binarycpython.utils.functions">
 <span id="functions-module"></span><h1>functions module<a class="headerlink" href="#module-binarycpython.utils.functions" title="Permalink to this headline">¶</a></h1>
 <p>Module containing most of the utility functions for the binarycpython package</p>
 <p>Functions here are mostly functions used in other classes/functions, or
@@ -190,7 +217,7 @@ useful functions for the user</p>
 <dl class="py method">
 <dt id="binarycpython.utils.functions.BinaryCEncoder.default">
 <code class="sig-name descname">default</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">o</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#BinaryCEncoder.default"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.BinaryCEncoder.default" title="Permalink to this definition">¶</a></dt>
-<dd><p>Converting function. Well, could be more precise. look at the json module</p>
+<dd><p>Converting function. Well, could be more precise. look at the JSON module</p>
 </dd></dl>
 
 </dd></dl>
@@ -230,12 +257,12 @@ useful functions for the user</p>
 <dl class="py function">
 <dt id="binarycpython.utils.functions.binaryc_json_serializer">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">binaryc_json_serializer</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">obj</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#binaryc_json_serializer"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.binaryc_json_serializer" title="Permalink to this definition">¶</a></dt>
-<dd><p>Custom serializer for binary_c to use when functions are present in the dictionary
+<dd><p>Custom serialiser for binary_c to use when functions are present in the dictionary
 that we want to export.</p>
 <p>Function objects will be turned into str representations of themselves</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>obj</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code>) – The object that might not be serializable</p>
+<dd class="field-odd"><p><strong>obj</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code>) – The object that might not be serialisable</p>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-data docutils literal notranslate"><span class="pre">Any</span></code></p>
@@ -330,7 +357,7 @@ This string is missing the ‘binary_c ‘ at the start.</p>
 </ul>
 </dd>
 </dl>
-<p>TODO: fix missing settingsfiles</p>
+<p>TODO: fix missing settings files</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
@@ -363,7 +390,7 @@ detailed. Custom functions can be easier:</p>
 <p>This function works in two cases:
 if the caught line contains output like ‘example_header time=12.32 mass=0.94 ..’
 or if the line contains output like ‘example_header 12.32 0.94’
-Please dont the two cases.</p>
+Please don’t the two cases.</p>
 <p>You can give a ‘selected_header’ to catch any line that starts with that.
 Then the values will be put into a dictionary.</p>
 <dl class="simple">
@@ -403,7 +430,7 @@ process)</p></li>
 <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>json dictionary with the parsed ENSEMBLE_JSON data</p>
+<dd class="field-odd"><p>JSON dictionary with the parsed ENSEMBLE_JSON data</p>
 </dd>
 </dl>
 </dd></dl>
@@ -415,7 +442,7 @@ process)</p></li>
 <p>This function is called by get_defaults()</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>arg_dict</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code>) – dictionary containing the argument + default keypairs of binary_c</p>
+<dd class="field-odd"><p><strong>arg_dict</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code>) – dictionary containing the argument + default key pairs of binary_c</p>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
@@ -500,10 +527,10 @@ valid parameter name</p></li>
 <dl class="py function">
 <dt id="binarycpython.utils.functions.get_help_all">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">get_help_all</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">print_help</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/functions.html#get_help_all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.get_help_all" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that reads out the output of the return_help_all api call to binary_c. This return_help_all binary_c returns all the information for the parameters, their descriptions and other properties. The output is categorized in sections.</p>
+<dd><p>Function that reads out the output of the return_help_all API call to binary_c. This return_help_all binary_c returns all the information for the parameters, their descriptions and other properties. The output is categorised in sections.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>print_help</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – (optional, default = Tru) prints all the parameters and their descriptions.</p>
+<dd class="field-odd"><p><strong>print_help</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – (optional, default = True) prints all the parameters and their descriptions.</p>
 </dd>
 <dt class="field-even">Return type</dt>
 <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
@@ -536,9 +563,9 @@ the help function to get as much information as possible.</p>
 </dd></dl>
 
 <dl class="py function">
-<dt id="binarycpython.utils.functions.get_moe_distefano_dataset">
-<code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">get_moe_distefano_dataset</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#get_moe_distefano_dataset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.get_moe_distefano_dataset" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to get the default moe and Distefano dataset or accept a userinput.</p>
+<dt id="binarycpython.utils.functions.get_moe_di_stefano_dataset">
+<code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">get_moe_di_stefano_dataset</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</span></em>, <em class="sig-param"><span class="n">verbosity</span><span class="o">=</span><span class="default_value">0</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#get_moe_di_stefano_dataset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.get_moe_di_stefano_dataset" title="Permalink to this definition">¶</a></dt>
+<dd><p>Function to get the default moe and di Stefano dataset or accept a user input.</p>
 </dd></dl>
 
 <dl class="py function">
@@ -606,7 +633,7 @@ it will return the type of what the value would be in the input_dict</p>
 <dl class="py function">
 <dt id="binarycpython.utils.functions.load_logfile">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">load_logfile</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">logfile</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#load_logfile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.load_logfile" title="Permalink to this definition">¶</a></dt>
-<dd><p>Experimental function that parses the generated logfile of binary_c.</p>
+<dd><p>Experimental function that parses the generated log file of binary_c.</p>
 <p>This function is not finished and shouldn’t be used yet.</p>
 <dl class="simple">
 <dt>Tasks:</dt><dd><ul class="simple">
@@ -616,7 +643,7 @@ it will return the type of what the value would be in the input_dict</p>
 </dl>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>logfile</strong> (<em>-</em>) – filename of the logfile you want to parse</p>
+<dd class="field-odd"><p><strong>logfile</strong> (<em>-</em>) – filename of the log file you want to parse</p>
 </dd>
 </dl>
 <p>Returns:</p>
@@ -685,7 +712,7 @@ it will return the type of what the value would be in the input_dict</p>
 <dl class="py function">
 <dt id="binarycpython.utils.functions.output_lines">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">output_lines</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#output_lines"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.output_lines" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that outputs the lines that were recieved from the binary_c run, but now as an iterator.</p>
+<dd><p>Function that outputs the lines that were received from the binary_c run, but now as an iterator.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><p><strong>output</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – raw binary_c output</p>
@@ -738,7 +765,7 @@ Does not work with lists as values</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>file</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – full filepath to the file that will be removed.</p></li>
+<li><p><strong>file</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – full file path to the file that will be removed.</p></li>
 <li><p><strong>verbosity</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code>) – current verbosity level (Optional)</p></li>
 </ul>
 </dd>
@@ -746,7 +773,7 @@ Does not work with lists as values</p>
 <dd class="field-even"><p><code class="xref py py-obj docutils literal notranslate"><span class="pre">None</span></code></p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>the path of a subdirectory called binary_c_python in the TMP of the filesystem</p>
+<dd class="field-odd"><p>the path of a sub directory called binary_c_python in the TMP of the file system</p>
 </dd>
 </dl>
 </dd></dl>
@@ -782,7 +809,7 @@ dictionary</p>
 <li><p>If the types are both dictionaries: call this function with the subdicts</p></li>
 </ul>
 </dd>
-<dt>WHen the keys are not of the same type:</dt><dd><ul class="simple">
+<dt>When the keys are not of the same type:</dt><dd><ul class="simple">
 <li><p>if the keys are all of numerical types</p></li>
 </ul>
 </dd>
@@ -819,7 +846,7 @@ If that results in an empty dict, the dict will be removed too.</p>
 <dl class="py function">
 <dt id="binarycpython.utils.functions.temp_dir">
 <code class="sig-prename descclassname">binarycpython.utils.functions.</code><code class="sig-name descname">temp_dir</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/functions.html#temp_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.functions.temp_dir" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to create directory within the TMP directory of the filesystem</p>
+<dd><p>Function to create directory within the TMP directory of the file system</p>
 <p>Makes use of os.makedirs exist_ok which requires python 3.2+</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
@@ -829,7 +856,7 @@ If that results in an empty dict, the dict will be removed too.</p>
 <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>the path of a subdirectory called binary_c_python in the TMP of the filesystem</p>
+<dd class="field-odd"><p>the path of a sub directory called binary_c_python in the TMP of the file system</p>
 </dd>
 </dl>
 </dd></dl>
@@ -903,7 +930,7 @@ Writes the results to a .rst file that can be included in the docs.</p>
 </dl>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
-<dd class="field-odd"><p><strong>output_file</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – name of the output .rst faile containing the ReStructuredText formatted output
+<dd class="field-odd"><p><strong>output_file</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – name of the output .rst file containing the ReStructuredText formatted output
 of all the binary_c parameters.</p>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -948,9 +975,9 @@ of all the binary_c parameters.</p>
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/general_examples.html b/docs/build/html/general_examples.html
index d6937f484..c574cef1c 100644
--- a/docs/build/html/general_examples.html
+++ b/docs/build/html/general_examples.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -89,6 +92,7 @@
 <li class="toctree-l1 current"><a class="reference internal" href="examples.html">Examples</a><ul class="current">
 <li class="toctree-l2 current"><a class="current reference internal" href="#">Examples</a></li>
 <li class="toctree-l2"><a class="reference internal" href="population_example.html">Example of population script</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebooks.html">Notebooks</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -162,7 +166,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="examples">
+  
+<style>
+/* 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="examples">
 <h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h1>
 <p>The source code of the general examples.</p>
 <div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>  1
@@ -660,9 +688,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html
index 1a2f3c368..8c67f1634 100644
--- a/docs/build/html/genindex.html
+++ b/docs/build/html/genindex.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -443,7 +446,7 @@
 </li>
       <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.get_max_multiplicity">get_max_multiplicity() (in module binarycpython.utils.distribution_functions)</a>
 </li>
-      <li><a href="functions.html#binarycpython.utils.functions.get_moe_distefano_dataset">get_moe_distefano_dataset() (in module binarycpython.utils.functions)</a>
+      <li><a href="functions.html#binarycpython.utils.functions.get_moe_di_stefano_dataset">get_moe_di_stefano_dataset() (in module binarycpython.utils.functions)</a>
 </li>
       <li><a href="functions.html#binarycpython.utils.functions.get_size">get_size() (in module binarycpython.utils.functions)</a>
 </li>
@@ -560,11 +563,11 @@
       </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="grid.html#binarycpython.utils.grid.Population.Moe_de_Stefano_2017">Moe_de_Stefano_2017() (binarycpython.utils.grid.Population method)</a>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.Moe_di_Stefano_2017">Moe_di_Stefano_2017() (binarycpython.utils.grid.Population method)</a>
 </li>
-      <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_multiplicity_fractions">Moe_de_Stefano_2017_multiplicity_fractions() (in module binarycpython.utils.distribution_functions)</a>
+      <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_multiplicity_fractions">Moe_di_Stefano_2017_multiplicity_fractions() (in module binarycpython.utils.distribution_functions)</a>
 </li>
-      <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.Moe_de_Stefano_2017_pdf">Moe_de_Stefano_2017_pdf() (in module binarycpython.utils.distribution_functions)</a>
+      <li><a href="distribution_functions.html#binarycpython.utils.distribution_functions.Moe_di_Stefano_2017_pdf">Moe_di_Stefano_2017_pdf() (in module binarycpython.utils.distribution_functions)</a>
 </li>
       <li><a href="functions.html#binarycpython.utils.functions.multiply_values_dict">multiply_values_dict() (in module binarycpython.utils.functions)</a>
 </li>
@@ -670,7 +673,7 @@
 </li>
       <li><a href="grid.html#binarycpython.utils.grid.Population.set">set() (binarycpython.utils.grid.Population method)</a>
 </li>
-      <li><a href="grid.html#binarycpython.utils.grid.Population.set_moe_distefano_settings">set_moe_distefano_settings() (binarycpython.utils.grid.Population method)</a>
+      <li><a href="grid.html#binarycpython.utils.grid.Population.set_moe_di_stefano_settings">set_moe_di_stefano_settings() (binarycpython.utils.grid.Population method)</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
@@ -759,9 +762,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/grid.html b/docs/build/html/grid.html
index c894bac07..e12568025 100644
--- a/docs/build/html/grid.html
+++ b/docs/build/html/grid.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.grid">
+  
+<style>
+/* 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="module-binarycpython.utils.grid">
 <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>
@@ -204,11 +231,11 @@ but copying functionality isn’t recommended except if you know what you are do
 <p>Population Object. Contains all the necessary functions to set up, run and process a
 population of systems</p>
 <dl class="py method">
-<dt id="binarycpython.utils.grid.Population.Moe_de_Stefano_2017">
-<code class="sig-name descname">Moe_de_Stefano_2017</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</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/grid.html#Population.Moe_de_Stefano_2017"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.Moe_de_Stefano_2017" title="Permalink to this definition">¶</a></dt>
+<dt id="binarycpython.utils.grid.Population.Moe_di_Stefano_2017">
+<code class="sig-name descname">Moe_di_Stefano_2017</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</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/grid.html#Population.Moe_di_Stefano_2017"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.Moe_di_Stefano_2017" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function to handle setting the user input settings,
 set up the data and load that into interpolators and
-and then set the distribution functions</p>
+then set the distribution functions</p>
 <p>Takes a dictionary as its only argument</p>
 </dd></dl>
 
@@ -216,7 +243,7 @@ and then set the distribution functions</p>
 <dt id="binarycpython.utils.grid.Population.add_grid_variable">
 <code class="sig-name descname">add_grid_variable</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">name</span></em>, <em class="sig-param"><span class="n">longname</span></em>, <em class="sig-param"><span class="n">valuerange</span></em>, <em class="sig-param"><span class="n">resolution</span></em>, <em class="sig-param"><span class="n">spacingfunc</span></em>, <em class="sig-param"><span class="n">probdist</span></em>, <em class="sig-param"><span class="n">dphasevol</span></em>, <em class="sig-param"><span class="n">parameter_name</span></em>, <em class="sig-param"><span class="n">gridtype</span><span class="o">=</span><span class="default_value">'edge'</span></em>, <em class="sig-param"><span class="n">branchpoint</span><span class="o">=</span><span class="default_value">0</span></em>, <em class="sig-param"><span class="n">precode</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">condition</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/grid.html#Population.add_grid_variable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.add_grid_variable" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function to add grid variables to the grid_options.</p>
-<p>The execution of the grid generation will be through a nested forloop.
+<p>The execution of the grid generation will be through a nested for loop.
 Each of the grid variables will get create a deeper for loop.</p>
 <p>The real function that generates the numbers will get written to a new file in the TMP_DIR,
 and then loaded imported and evaluated.
@@ -261,7 +288,7 @@ sampling function (i.e. a value for lnm1 is chosen already)</p>
 <p class="rubric">Examples</p>
 <p>precode = ‘M_1=math.exp(lnm1);’</p>
 </p></li>
-<li><p><strong>probdist</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – <p>FUnction determining the probability that gets asigned to the sampled parameter</p>
+<li><p><strong>probdist</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>) – <p>Function determining the probability that gets assigned to the sampled parameter</p>
 <p class="rubric">Examples</p>
 <p>probdist = ‘Kroupa2001(M_1)*M_1’</p>
 </p></li>
@@ -288,12 +315,12 @@ the lower edge of the value range) or ‘center’
 <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>Entrypoint function of the whole object. From here, based on the settings,
+<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>
 <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>
+<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>
 </dd>
 </dl>
 <p>If neither of the above is set, we continue without using HPC routines
@@ -344,17 +371,17 @@ NOT IMPLEMENTED YET to evolve a population via a variable grid, a source file or
 <dl class="py method">
 <dt id="binarycpython.utils.grid.Population.export_all_info">
 <code class="sig-name descname">export_all_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">use_datadir</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">outfile</span><span class="o">=</span><span class="default_value">None</span></em>, <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.export_all_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.export_all_info" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function that exports the all_info to a json file</p>
+<dd><p>Function that exports the all_info to a JSON file</p>
 <dl class="simple">
 <dt>Tasks:</dt><dd><ul class="simple">
 <li><dl class="simple">
-<dt>TODO: if any of the values in the dicts here is of a not-serializable form, then we</dt><dd><p>need to change that to a string or something so, use a recursive function that
+<dt>TODO: if any of the values in the dicts here is of a not-serialisable form, then we</dt><dd><p>need to change that to a string or something so, use a recursive function that
 goes over the all_info dict and finds those that fit</p>
 </dd>
 </dl>
 </li>
 <li><p>TODO: Fix to write things to the directory. which options do which etc</p></li>
-<li><p>TODO: theres flawed logic here. rewrite this part pls</p></li>
+<li><p>TODO: there’s flawed logic here. rewrite this part pls</p></li>
 <li><dl class="simple">
 <dt>TODO: consider actually just removing the whole ‘output to file’ part and let the</dt><dd><p>user do this.</p>
 </dd>
@@ -374,7 +401,7 @@ and their default values</p></li>
 version info (see return_binary_c_version_info)</p></li>
 <li><p><strong>include_binary_c_help_all</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – whether to include a dict containing all the information
 about the binary_c parameters (see get_help_all)</p></li>
-<li><p><strong>use_datadir</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – boolean whether to use the custom_options[‘data_dir’] to write the file to.
+<li><p><strong>use_datadir</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – Boolean whether to use the custom_options[‘data_dir’] to write the file to.
 If the  custom_options[“base_filename”] is set, the output file will be called
 &lt;custom_options[“base_filename”]&gt;_settings.json. Otherwise a file called
 simulation_&lt;date+time&gt;_settings.json will be created</p></li>
@@ -406,7 +433,7 @@ simulation_&lt;date+time&gt;_settings.json will be created</p></li>
 <dl class="py method">
 <dt id="binarycpython.utils.grid.Population.last_grid_variable">
 <code class="sig-name descname">last_grid_variable</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.last_grid_variable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.last_grid_variable" title="Permalink to this definition">¶</a></dt>
-<dd><p>Functon that returns the last grid variable
+<dd><p>Function that returns the last grid variable
 (i.e. the one with the highest grid_variable_number)</p>
 </dd></dl>
 
@@ -463,7 +490,7 @@ the binary_c parameters (see get_help_all)</p></li>
 <dt id="binarycpython.utils.grid.Population.return_population_settings">
 <code class="sig-name descname">return_population_settings</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid.html#Population.return_population_settings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.return_population_settings" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function that returns all the options that have been set.</p>
-<p>Can be combined with json to make a nice file.</p>
+<p>Can be combined with JSON to make a nice file.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Return type</dt>
 <dd class="field-odd"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
@@ -498,9 +525,9 @@ in the self.grid_options</p>
 </dd></dl>
 
 <dl class="py method">
-<dt id="binarycpython.utils.grid.Population.set_moe_distefano_settings">
-<code class="sig-name descname">set_moe_distefano_settings</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</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/grid.html#Population.set_moe_distefano_settings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.set_moe_distefano_settings" title="Permalink to this definition">¶</a></dt>
-<dd><p>Function to set user input configurations for the moe &amp; distefano methods</p>
+<dt id="binarycpython.utils.grid.Population.set_moe_di_stefano_settings">
+<code class="sig-name descname">set_moe_di_stefano_settings</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">options</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/grid.html#Population.set_moe_di_stefano_settings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid.Population.set_moe_di_stefano_settings" title="Permalink to this definition">¶</a></dt>
+<dd><p>Function to set user input configurations for the moe &amp; di Stefano methods</p>
 <p>If nothing is passed then we just use the default options</p>
 </dd></dl>
 
@@ -515,13 +542,12 @@ Will have to play with the size of this.</p>
 <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>
-<dd><p>Function that loops over the gridcode and writes the generated parameters to a file.
-In the form of a commandline call</p>
-<p>Only useful when you have a variable grid as system_generator. MC wouldnt be that useful</p>
+<dd><p>Function that loops over the grid code and writes the generated parameters to a file.
+In the form of a command line call</p>
+<p>Only useful when you have a variable grid as system_generator. MC wouldn’t be that useful</p>
 <p>Also, make sure that in this export there are the basic parameters
 like m1,m2,sep, orb-per, ecc, probability etc.</p>
 <p>On default this will write to the datadir, if it exists</p>
-<p>WARNING; dont use yet. not fully tested.</p>
 <dl class="simple">
 <dt>Tasks:</dt><dd><ul class="simple">
 <li><p>TODO: test this function</p></li>
@@ -534,7 +560,7 @@ like m1,m2,sep, orb-per, ecc, probability etc.</p>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>output_dir</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Optional</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>]) – (optional, default = None) directory where to write the file to. If custom_options[‘data_dir’] is present, then that one will be used first, and then the output_dir</p></li>
 <li><p><strong>output_filename</strong> (<code class="xref py py-data docutils literal notranslate"><span class="pre">Optional</span></code>[<code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code>]) – (optional, default = None) filename of the output. If not set it will be called “binary_c_calls.txt”</p></li>
-<li><p><strong>include_defaults</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – (optional, default = None) whether to include the defaults of binary_c in the lines that are written. Beware that this will result in very long lines, and it might be better to just export the binary_c defaults and keep them in a seperate file.</p></li>
+<li><p><strong>include_defaults</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code>) – (optional, default = None) whether to include the defaults of binary_c in the lines that are written. Beware that this will result in very long lines, and it might be better to just export the binary_c defaults and keep them in a separate file.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type</dt>
@@ -581,9 +607,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: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/grid_options_defaults.html b/docs/build/html/grid_options_defaults.html
index b4e515035..fe3ca3872 100644
--- a/docs/build/html/grid_options_defaults.html
+++ b/docs/build/html/grid_options_defaults.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.grid_options_defaults">
+  
+<style>
+/* 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="module-binarycpython.utils.grid_options_defaults">
 <span id="grid-options-and-descriptions"></span><h1>Grid options and descriptions<a class="headerlink" href="#module-binarycpython.utils.grid_options_defaults" title="Permalink to this headline">¶</a></h1>
 <dl class="simple">
 <dt>Module that contains the default options for the population grid code along with the description for these options, in the form of dictionaries:</dt><dd><ul class="simple">
@@ -217,7 +244,7 @@
 <dd class="field-even"><p><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></p>
 </dd>
 <dt class="field-odd">Returns</dt>
-<dd class="field-odd"><p>dict containg the option, the description if its there, otherwise empty string. And if the key doesnt exist, the dict is empty</p>
+<dd class="field-odd"><p>dict containing the option, the description if its there, otherwise empty string. And if the key doesnt exist, the dict is empty</p>
 </dd>
 </dl>
 </dd></dl>
@@ -232,7 +259,7 @@
 <code class="sig-prename descclassname">binarycpython.utils.grid_options_defaults.</code><code class="sig-name descname">write_grid_options_to_rst_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">output_file</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/grid_options_defaults.html#write_grid_options_to_rst_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.grid_options_defaults.write_grid_options_to_rst_file" title="Permalink to this definition">¶</a></dt>
 <dd><p>Function that writes the descriptions of the grid options to a rst file</p>
 <dl class="simple">
-<dt>Tasks:</dt><dd><p>TODO: seperate things into private and public options</p>
+<dt>Tasks:</dt><dd><p>TODO: separate things into private and public options</p>
 </dd>
 </dl>
 <dl class="field-list simple">
@@ -281,9 +308,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/grid_options_descriptions.html b/docs/build/html/grid_options_descriptions.html
index ea8f97127..ec8a52d1b 100644
--- a/docs/build/html/grid_options_descriptions.html
+++ b/docs/build/html/grid_options_descriptions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -89,7 +92,7 @@
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">Population grid code options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="#public-options">Public options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="#moe-distefano-sampler-options">Moe &amp; Distefano sampler options</a></li>
+<li class="toctree-l2"><a class="reference internal" href="#moe-di-stefano-sampler-options">Moe &amp; di Stefano sampler options</a></li>
 <li class="toctree-l2"><a class="reference internal" href="#private-options">Private options</a></li>
 </ul>
 </li>
@@ -160,7 +163,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="population-grid-code-options">
+  
+<style>
+/* 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="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>
@@ -174,16 +201,19 @@ There are 1 options that are not described yet.</p>
 <div class="line"><strong>C_logging_code</strong>: Variable to store the exact code that is used for the custom_logging. In this way the user can do more complex logging, as well as putting these logging strings in files.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>amt_cores</strong>: The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multiprocessed, not multithreaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int</div>
+<div class="line"><strong>amt_cores</strong>: The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multi processed, not multi threaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>combine_ensemble_with_thread_joining</strong>: BOolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{popuation_id}_{thread_id}.json</div>
+<div class="line"><strong>combine_ensemble_with_thread_joining</strong>: Boolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{population_id}_{thread_id}.json</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>condor</strong>: Int flag whether to use a condor type population evolution. Not implemented yet.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>custom_logging_func_memaddr</strong>: Memory adress where the custom_logging_function is stored. Input: int</div>
+<div class="line"><strong>custom_logging_func_memaddr</strong>: Memory address where the custom_logging_function is stored. Input: int</div>
+</div>
+<div class="line-block">
+<div class="line"><strong>do_dry_run</strong>: Whether to do a dry run to calculate the total probability for this run</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>ensemble_factor_in_probability_weighted_mass</strong>: Flag to multiply all the ensemble results with 1/probability_weighted_mass</div>
@@ -192,7 +222,7 @@ There are 1 options that are not described yet.</p>
 <div class="line"><strong>evolution_type</strong>: Variable containing the type of evolution used of the grid. Multiprocessing or linear processing</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>failed_systems_threshold</strong>: Variable storing the maximum amount of systems that are allowed to fail before logging their commandline arguments to failed_systems log files</div>
+<div class="line"><strong>failed_systems_threshold</strong>: Variable storing the maximum amount of systems that are allowed to fail before logging their command line arguments to failed_systems log files</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>gridcode_filename</strong>: Filename for the grid code. Set and used by the population object. TODO: allow the user to provide their own function, rather than only a generated function.</div>
@@ -207,7 +237,7 @@ There are 1 options that are not described yet.</p>
 <div class="line"><strong>log_file</strong>: Log file for the population object. Unused</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>log_runtime_systems</strong>: 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 alot 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</div>
+<div class="line"><strong>log_runtime_systems</strong>: 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</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>m&amp;s_options</strong>: Internal variable that holds the M&amp;S options. Don’t write to this your self</div>
@@ -228,13 +258,13 @@ There are 1 options that are not described yet.</p>
 <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>
 </div>
 <div class="line-block">
-<div class="line"><strong>run_zero_probability_system</strong>: Whether to run the zero probability systems. Default: True. Input: boolean</div>
+<div class="line"><strong>run_zero_probability_system</strong>: Whether to run the zero probability systems. Default: True. Input: Boolean</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>slurm</strong>: Int flag whether to use a slurm type population evolution.</div>
+<div class="line"><strong>slurm</strong>: Int flag whether to use a Slurm type population evolution.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>source_file_filename</strong>: Variable containing the source file containing lines of binary_c commandline calls. These all have to start with binary_c.</div>
+<div class="line"><strong>source_file_filename</strong>: Variable containing the source file containing lines of binary_c command line calls. These all have to start with binary_c.</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>tmp_dir</strong>: Directory where certain types of output are stored. The grid code is stored in that directory, as well as the custom logging libraries. Log files and other diagnostics will usually be written to this location, unless specified otherwise</div>
@@ -243,11 +273,11 @@ There are 1 options that are not described yet.</p>
 <div class="line"><strong>verbosity</strong>: Verbosity of the population code. Default is 0, by which only errors will be printed. Higher values will show more output, which is good for debugging.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>weight</strong>: Weight factor for each system. The calculated probability is mulitplied 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.</div>
+<div class="line"><strong>weight</strong>: 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.</div>
 </div>
 </div>
-<div class="section" id="moe-distefano-sampler-options">
-<h2>Moe &amp; Distefano sampler options<a class="headerlink" href="#moe-distefano-sampler-options" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="moe-di-stefano-sampler-options">
+<h2>Moe &amp; di Stefano sampler options<a class="headerlink" href="#moe-di-stefano-sampler-options" title="Permalink to this headline">¶</a></h2>
 <p>The following options are meant to be changed by the user.</p>
 <div class="line-block">
 <div class="line"><strong>Mmin</strong>: Minimum stellar mass</div>
@@ -257,7 +287,7 @@ There are 1 options that are not described yet.</p>
 multiplicity model (as a function of log10M1)</div>
 </div>
 <blockquote>
-<div><p>You can use ‘Poisson’ which uses the system multiplicty
+<div><p>You can use ‘Poisson’ which uses the system multiplicity
 given by Moe and maps this to single/binary/triple/quad
 fractions.</p>
 <p>Alternatively, ‘data’ takes the fractions directly
@@ -277,13 +307,13 @@ combined (and there are NO quadruples).</p>
 </div></blockquote>
 <div class="line-block">
 <div class="line"><strong>normalize_multiplicities</strong>:
-‘norm’: normalize so the whole population is 1.0
+‘norm’: normalise so the whole population is 1.0
         after implementing the appropriate fractions
         S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)
-        given a mix of multiplities, you can either (noting that
+        given a mix of multiplicities, you can either (noting that
         here (S,B,T,Q) = appropriate modulator * model(S,B,T,Q) )
         note: if you only set one multiplicity_modulator
-        to 1, and all the others to 0, then normalizing
+        to 1, and all the others to 0, then normalising
         will mean that you effectively have the same number
         of stars as single, binary, triple or quad (whichever
         is non-zero) i.e. the multiplicity fraction is ignored.
@@ -293,7 +323,7 @@ combined (and there are NO quadruples).</p>
 <blockquote>
 <div><dl>
 <dt>‘raw’<span class="classifier">stick to what is predicted, i.e.</span></dt><dd><p>S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)
-without normalization
+without normalisation
 (in which case the total probability &lt; 1.0 unless
 all you use single, binary, triple and quadruple)</p>
 </dd>
@@ -358,10 +388,10 @@ q extrapolation (below 0.15) method
 <div class="line"><strong>_end_time_evolution</strong>: Variable storing the end timestamp of the population evolution. Set by the object itself</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>_errors_exceeded</strong>: Variable storing a boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the commandline arguments of the failing systems will not be stored in the failed_system_log files.</div>
+<div class="line"><strong>_errors_exceeded</strong>: Variable storing a Boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the command line arguments of the failing systems will not be stored in the failed_system_log files.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>_errors_found</strong>: Variable storing a boolean flag whether errors by binary_c are encountered.</div>
+<div class="line"><strong>_errors_found</strong>: Variable storing a Boolean flag whether errors by binary_c are encountered.</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>_evolution_type_options</strong>: List containing the evolution type options.</div>
@@ -397,10 +427,10 @@ q extrapolation (below 0.15) method
 <div class="line"><strong>_start_time_evolution</strong>: Variable storing the start timestamp of the population evolution. Set by the object itself.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>_store_memaddr</strong>: Memory adress of the store object for binary_c.</div>
+<div class="line"><strong>_store_memaddr</strong>: Memory address of the store object for binary_c.</div>
 </div>
 <div class="line-block">
-<div class="line"><strong>_system_generator</strong>: Function object that contains the system generator function. This can be from a grid, or a source file, or a montecarlo grid.</div>
+<div class="line"><strong>_system_generator</strong>: Function object that contains the system generator function. This can be from a grid, or a source file, or a Monte Carlo grid.</div>
 </div>
 <div class="line-block">
 <div class="line"><strong>_total_mass_run</strong>: To count the total mass that thread/process has ran</div>
@@ -449,9 +479,9 @@ q extrapolation (below 0.15) method
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/hpc_functions.html b/docs/build/html/hpc_functions.html
index abc4fe870..b615bb2a7 100644
--- a/docs/build/html/hpc_functions.html
+++ b/docs/build/html/hpc_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,10 +174,34 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.hpc_functions">
+  
+<style>
+/* 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="module-binarycpython.utils.hpc_functions">
 <span id="hpc-functions-module"></span><h1>hpc_functions module<a class="headerlink" href="#module-binarycpython.utils.hpc_functions" title="Permalink to this headline">¶</a></h1>
 <p>File containing functions for HPC computing, distributed tasks on clusters etc.</p>
-<p>Functions that the slurm and condor subroutines of the population object use.</p>
+<p>Functions that the Slurm and Condor subroutines of the population object use.</p>
 <p>Mainly divided in 2 sections: Slurm and Condor</p>
 </div>
 
@@ -212,9 +239,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/index.html b/docs/build/html/index.html
index 43b32b8fe..07a6be2bc 100644
--- a/docs/build/html/index.html
+++ b/docs/build/html/index.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -155,7 +158,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="welcome-to-binary-c-python-s-documentation">
+  
+<style>
+/* 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="welcome-to-binary-c-python-s-documentation">
 <h1>Welcome to binary_c-python’s documentation!<a class="headerlink" href="#welcome-to-binary-c-python-s-documentation" title="Permalink to this headline">¶</a></h1>
 </div>
 <div class="section" id="python-module-for-binary-c">
@@ -297,7 +324,7 @@
 </li>
 <li class="toctree-l1"><a class="reference internal" href="grid_options_descriptions.html">Population grid code options</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="grid_options_descriptions.html#public-options">Public options</a></li>
-<li class="toctree-l2"><a class="reference internal" href="grid_options_descriptions.html#moe-distefano-sampler-options">Moe &amp; Distefano sampler options</a></li>
+<li class="toctree-l2"><a class="reference internal" href="grid_options_descriptions.html#moe-di-stefano-sampler-options">Moe &amp; di Stefano sampler options</a></li>
 <li class="toctree-l2"><a class="reference internal" href="grid_options_descriptions.html#private-options">Private options</a></li>
 </ul>
 </li>
@@ -348,9 +375,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/modules.html b/docs/build/html/modules.html
index 17ba62ad5..af71bd8bc 100644
--- a/docs/build/html/modules.html
+++ b/docs/build/html/modules.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -169,7 +172,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="binarycpython-code">
+  
+<style>
+/* 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="binarycpython-code">
 <h1>Binarycpython code<a class="headerlink" href="#binarycpython-code" title="Permalink to this headline">¶</a></h1>
 <p>This chapter contains the (auto)documentation for all the functions and modules in the source code of binarycpython</p>
 <div class="toctree-wrapper compound">
@@ -223,9 +250,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/notebook_population.html b/docs/build/html/notebook_population.html
new file mode 100644
index 000000000..ff600f916
--- /dev/null
+++ b/docs/build/html/notebook_population.html
@@ -0,0 +1,790 @@
+
+
+<!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>Title page &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="Notebooks" href="notebooks.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="examples.html">Examples</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="general_examples.html">Examples</a></li>
+<li class="toctree-l2"><a class="reference internal" href="population_example.html">Example of population script</a></li>
+<li class="toctree-l2 current"><a class="reference internal" href="notebooks.html">Notebooks</a><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal" href="#">Title page</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="examples.html">Examples</a> &raquo;</li>
+        
+          <li><a href="notebooks.html">Notebooks</a> &raquo;</li>
+        
+      <li>Title page</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            <a href="_sources/notebook_population.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="Title-page">
+<h1>Title page<a class="headerlink" href="#Title-page" title="Permalink to this headline">¶</a></h1>
+<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="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.functions</span> <span class="kn">import</span> <span class="p">(</span>
+    <span class="n">get_help_all</span><span class="p">,</span>
+    <span class="n">get_help</span><span class="p">,</span>
+    <span class="n">create_hdf5</span><span class="p">,</span>
+    <span class="n">output_lines</span><span class="p">,</span>
+<span class="p">)</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>
+
+</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><span class="c1">#########################################################</span>
+<span class="c1"># This file serves as an example for running a population.</span>
+<span class="c1"># The use of help(&lt;function&gt;) is a good way to inspect what parameters are there to use</span>
+<span class="c1">#########################################################</span>
+
+<span class="c1"># Create population object</span>
+<span class="n">example_pop</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">example_pop</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">verbose</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">example_pop</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">M_1</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>  <span class="c1"># bse_options</span>
+    <span class="n">separation</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>  <span class="c1"># bse_options</span>
+    <span class="n">orbital_period</span><span class="o">=</span><span class="mi">45000000080</span><span class="p">,</span>  <span class="c1"># bse_options</span>
+    <span class="n">max_evolution_time</span><span class="o">=</span><span class="mi">15000</span><span class="p">,</span>  <span class="c1"># bse_options</span>
+    <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"># Set companion to low mass</span>
+    <span class="n">M_2</span><span class="o">=</span><span class="mf">0.08</span><span class="p">,</span>  <span class="c1"># Since in the example we run a single system, we should set the companion mass here. If we donm&#39;t do this, the code will complain.</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">verbose</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>  <span class="c1"># verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff</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="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>
+</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><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="c1"># EXAMPLE PARSE_FUNCTION</span>
+
+    <span class="c1"># extract info from the population instance</span>
+
+    <span class="c1"># Get some information from the</span>
+    <span class="n">data_dir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;data_dir&quot;</span><span class="p">]</span>
+    <span class="n">base_filename</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_options</span><span class="p">[</span><span class="s2">&quot;base_filename&quot;</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="n">data_dir</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">seperator</span> <span class="o">=</span> <span class="s2">&quot; &quot;</span>
+
+    <span class="c1"># Create filename</span>
+    <span class="n">outfilename</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">data_dir</span><span class="p">,</span> <span class="n">base_filename</span><span class="p">)</span>
+
+    <span class="n">parameters</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;time&quot;</span><span class="p">,</span> <span class="s2">&quot;mass&quot;</span><span class="p">,</span> <span class="s2">&quot;zams_mass&quot;</span><span class="p">,</span> <span class="s2">&quot;probability&quot;</span><span class="p">,</span> <span class="s2">&quot;radius&quot;</span><span class="p">,</span> <span class="s2">&quot;stellar_type&quot;</span><span class="p">]</span>
+
+    <span class="c1"># Go over the output.</span>
+    <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="n">output_lines</span><span class="p">(</span><span class="n">output</span><span class="p">):</span>
+        <span class="n">headerline</span> <span class="o">=</span> <span class="n">el</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
+
+        <span class="c1"># CHeck the header and act accordingly</span>
+        <span class="k">if</span> <span class="n">headerline</span> <span class="o">==</span> <span class="s2">&quot;MY_STELLAR_DATA&quot;</span><span class="p">:</span>
+            <span class="n">values</span> <span class="o">=</span> <span class="n">el</span><span class="o">.</span><span class="n">split</span><span class="p">()[</span><span class="mi">1</span><span class="p">:]</span>
+            <span class="nb">print</span><span class="p">(</span><span class="n">values</span><span class="p">)</span>
+
+            <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">values</span><span class="p">):</span>
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Amount of column names isnt equal to amount of columns&quot;</span><span class="p">)</span>
+                <span class="k">raise</span> <span class="ne">ValueError</span>
+
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">outfilename</span><span class="p">):</span>
+                <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfilename</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+                    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">seperator</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parameters</span><span class="p">)</span> <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="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfilename</span><span class="p">,</span> <span class="s2">&quot;a&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
+                <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">seperator</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> <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"># Creating a parsing function</span>
+<span class="n">example_pop</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="c1"># Setting the parse function thats used in the evolve_population</span>
+<span class="p">)</span>
+</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><span class="c1">### Custom logging</span>
+<span class="c1"># Log the moment when the star turns into neutron</span>
+<span class="n">example_pop</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
+    <span class="n">C_logging_code</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span>
+<span class="s2">if(stardata-&gt;star[0].stellar_type &gt;= 13)</span>
+<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">        Printf(&quot;MY_STELLAR_DATA </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="s2"> </span><span class="si">%d</span><span class="se">\\</span><span class="s2">n&quot;,</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;common.zero_age.mass[0], // 4</span>
+<span class="s2">            stardata-&gt;model.probability, // 5</span>
+<span class="s2">            stardata-&gt;star[0].radius, // 6</span>
+<span class="s2">            stardata-&gt;star[0].stellar_type // 7</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>
+<span class="s2">};</span>
+<span class="s2">&quot;&quot;&quot;</span>
+<span class="p">)</span>
+</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><span class="c1"># Add grid variables</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">20</span><span class="p">,</span> <span class="s2">&quot;q&quot;</span><span class="p">:</span> <span class="mi">20</span><span class="p">,</span> <span class="s2">&quot;per&quot;</span><span class="p">:</span> <span class="mi">40</span><span class="p">}</span>
+
+<span class="c1"># Mass</span>
+<span class="n">example_pop</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="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">150</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(2), math.log(150), </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">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="c1"># test_pop.add_grid_variable(</span>
+<span class="c1">#     name=&quot;q&quot;,</span>
+<span class="c1">#     longname=&quot;Mass ratio&quot;,</span>
+<span class="c1">#     valuerange=[&quot;0.1/M_1&quot;, 1],</span>
+<span class="c1">#     resolution=&quot;{}&quot;.format(resolution[&#39;q&#39;]),</span>
+<span class="c1">#     spacingfunc=&quot;const(0.1/M_1, 1, {})&quot;.format(resolution[&#39;q&#39;]),</span>
+<span class="c1">#     probdist=&quot;flatsections(q, [{&#39;min&#39;: 0.1/M_1, &#39;max&#39;: 1.0, &#39;height&#39;: 1}])&quot;,</span>
+<span class="c1">#     dphasevol=&quot;dq&quot;,</span>
+<span class="c1">#     precode=&quot;M_2 = q * M_1&quot;,</span>
+<span class="c1">#     parameter_name=&quot;M_2&quot;,</span>
+<span class="c1">#     condition=&quot;&quot;,  # Impose a condition on this grid variable. Mostly for a check for yourself</span>
+<span class="c1"># )</span>
+
+<span class="c1"># #</span>
+<span class="c1"># test_pop.add_grid_variable(</span>
+<span class="c1">#    name=&quot;log10per&quot;, # in days</span>
+<span class="c1">#    longname=&quot;log10(Orbital_Period)&quot;,</span>
+<span class="c1">#    valuerange=[0.15, 5.5],</span>
+<span class="c1">#    resolution=&quot;{}&quot;.format(resolution[&quot;per&quot;]),</span>
+<span class="c1">#    spacingfunc=&quot;const(0.15, 5.5, {})&quot;.format(resolution[&quot;per&quot;]),</span>
+<span class="c1">#    precode=&quot;&quot;&quot;orbital_period = 10** log10per</span>
+<span class="c1"># sep = calc_sep_from_period(M_1, M_2, orbital_period)</span>
+<span class="c1"># sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)</span>
+<span class="c1"># sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)&quot;&quot;&quot;,</span>
+<span class="c1">#    probdist=&quot;sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)&quot;,</span>
+<span class="c1">#    parameter_name=&quot;orbital_period&quot;,</span>
+<span class="c1">#    dphasevol=&quot;dlog10per&quot;,</span>
+<span class="c1"># )</span>
+
+</pre></div>
+</div>
+</div>
+<p>Exporting of all the settings can be done with .export_all_info() on default it exports everything, but can be supressed by turning it off: population settings (bse_options, grid_options, custom_options), turn off with include_population settings=False binary_c_defaults (all the commandline arguments that binary c accepts, and their defaults). turn off with include_binary_c_defaults=False include_binary_c_version_info (all the compilation info, and information about the compiled
+parameters), turn off with include_binary_c_version_info=False include_binary_c_help_all (all the help information for all the binary_c parameters), turn off with include_binary_c_help_all=Fase On default it will write this to the custom_options[‘data_dir’], but that can be overriden by setting use_datadir=False and providing an outfile=&lt;&gt;</p>
+<div class="nbinput 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="n">example_pop</span><span class="o">.</span><span class="n">export_all_info</span><span class="p">()</span>
+</pre></div>
+</div>
+</div>
+<div class="nboutput nblast docutils container">
+<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[5]:
+</pre></div>
+</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;
+</pre></div></div>
+</div>
+<p>Executing a single system This uses the M_1 orbital period etc set with the set function</p>
+<div class="nbinput 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="n">output</span> <span class="o">=</span> <span class="n">example_pop</span><span class="o">.</span><span class="n">evolve_single</span><span class="p">()</span>
+<span class="nb">print</span><span class="p">(</span><span class="n">output</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>
+Creating the code for the shared library for the custom logging
+[&#39;2.773586668293e+01&#39;, &#39;1.33526&#39;, &#39;10&#39;, &#39;1&#39;, &#39;1.72498e-05&#39;, &#39;13&#39;]
+None
+</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><span class="c1">## Executing a population</span>
+<span class="c1">## This uses the values generated by the grid_variables</span>
+<span class="n">example_pop</span><span class="o">.</span><span class="n">evolve</span><span class="p">()</span>  <span class="c1"># TODO: update this function call</span>
+</pre></div>
+</div>
+</div>
+<p>Wrapping up the results to an hdf5 file can be done by using the create_hdf5 () This function takes the settings file (ending in _settings.json) and the data files (ending in .dat) from the data_dir and packing them into an hdf5 file, which is then written into the same data_dir directory</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="n">create_hdf5</span><span class="p">(</span><span class="n">data_dir</span><span class="o">=</span><span class="n">example_pop</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">name</span><span class="o">=</span><span class="s2">&quot;example_pop.hdf5&quot;</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>
+Creating /tmp/binary_c_python/example_python_population_result/example_pop.hdf5
+Adding settings to HDF5 file
+Adding data to HDF5 file
+</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>
+          <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="notebooks.html" class="btn btn-neutral float-left" title="Notebooks" 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: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
+<br><br>
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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_population.ipynb b/docs/build/html/notebook_population.ipynb
new file mode 100644
index 000000000..8d2bdbf98
--- /dev/null
+++ b/docs/build/html/notebook_population.ipynb
@@ -0,0 +1,359 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Title page\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "from binarycpython.utils.grid import Population\n",
+    "from binarycpython.utils.functions import (\n",
+    "    get_help_all,\n",
+    "    get_help,\n",
+    "    create_hdf5,\n",
+    "    output_lines,\n",
+    ")\n",
+    "from binarycpython.utils.custom_logging_functions import temp_dir\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#########################################################\n",
+    "# This file serves as an example for running a population.\n",
+    "# The use of help(<function>) is a good way to inspect what parameters are there to use\n",
+    "#########################################################\n",
+    "\n",
+    "# Create population object\n",
+    "example_pop = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "example_pop.set(verbose=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",
+    "example_pop.set(\n",
+    "    # binary_c physics options\n",
+    "    M_1=10,  # bse_options\n",
+    "    separation=0,  # bse_options\n",
+    "    orbital_period=45000000080,  # bse_options\n",
+    "    max_evolution_time=15000,  # bse_options\n",
+    "    eccentricity=0.02,  # bse_options\n",
+    "    # Set companion to low mass\n",
+    "    M_2=0.08,  # Since in the example we run a single system, we should set the companion mass here. If we donm't do this, the code will complain.\n",
+    "    # grid_options\n",
+    "    amt_cores=2,  # grid_options\n",
+    "    verbose=1,  # verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff\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",
+    "    ),  # custom_options\n",
+    "    base_filename=\"example_pop.dat\",  # custom_options\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def parse_function(self, output):\n",
+    "    # EXAMPLE PARSE_FUNCTION\n",
+    "\n",
+    "    # extract info from the population instance\n",
+    "\n",
+    "    # Get some information from the\n",
+    "    data_dir = self.custom_options[\"data_dir\"]\n",
+    "    base_filename = self.custom_options[\"base_filename\"]\n",
+    "\n",
+    "    # Check directory, make if necessary\n",
+    "    os.makedirs(data_dir, exist_ok=True)\n",
+    "\n",
+    "    seperator = \" \"\n",
+    "\n",
+    "    # Create filename\n",
+    "    outfilename = os.path.join(data_dir, base_filename)\n",
+    "\n",
+    "    parameters = [\"time\", \"mass\", \"zams_mass\", \"probability\", \"radius\", \"stellar_type\"]\n",
+    "\n",
+    "    # Go over the output.\n",
+    "    for el in output_lines(output):\n",
+    "        headerline = el.split()[0]\n",
+    "\n",
+    "        # CHeck the header and act accordingly\n",
+    "        if headerline == \"MY_STELLAR_DATA\":\n",
+    "            values = el.split()[1:]\n",
+    "            print(values)\n",
+    "\n",
+    "            if not len(parameters) == len(values):\n",
+    "                print(\"Amount of column names isnt equal to amount of columns\")\n",
+    "                raise ValueError\n",
+    "\n",
+    "            if not os.path.exists(outfilename):\n",
+    "                with open(outfilename, \"w\") as f:\n",
+    "                    f.write(seperator.join(parameters) + \"\\n\")\n",
+    "\n",
+    "            with open(outfilename, \"a\") as f:\n",
+    "                f.write(seperator.join(values) + \"\\n\")\n",
+    "\n",
+    "\n",
+    "\n",
+    "# Creating a parsing function\n",
+    "example_pop.set(\n",
+    "    parse_function=parse_function,  # Setting the parse function thats used in the evolve_population\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2fa5188e-312f-4a05-aeda-0bd4c00629c8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "### Custom logging\n",
+    "# Log the moment when the star turns into neutron\n",
+    "example_pop.set(\n",
+    "    C_logging_code=\"\"\"\n",
+    "if(stardata->star[0].stellar_type >= 13)    \n",
+    "{\n",
+    "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
+    "    {\n",
+    "        Printf(\"MY_STELLAR_DATA %30.12e %g %g %g %g %d\\\\n\",\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
+    "            stardata->star[0].mass, // 2\n",
+    "            stardata->common.zero_age.mass[0], // 4\n",
+    "            stardata->model.probability, // 5\n",
+    "            stardata->star[0].radius, // 6\n",
+    "            stardata->star[0].stellar_type // 7\n",
+    "      );\n",
+    "    };\n",
+    "    /* Kill the simulation to save time */\n",
+    "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
+    "};\n",
+    "\"\"\"\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Add grid variables\n",
+    "resolution = {\"M_1\": 20, \"q\": 20, \"per\": 40}\n",
+    "\n",
+    "# Mass\n",
+    "example_pop.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=[2, 150],\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n",
+    "    precode=\"M_1=math.exp(lnm1)\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    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",
+    "# test_pop.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(0.1/M_1, 1, {})\".format(resolution['q']),\n",
+    "#     probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n",
+    "#     dphasevol=\"dq\",\n",
+    "#     precode=\"M_2 = q * M_1\",\n",
+    "#     parameter_name=\"M_2\",\n",
+    "#     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    "# )\n",
+    "\n",
+    "# #\n",
+    "# test_pop.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(0.15, 5.5, {})\".format(resolution[\"per\"]),\n",
+    "#    precode=\"\"\"orbital_period = 10** log10per\n",
+    "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n",
+    "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n",
+    "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n",
+    "#    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n",
+    "#    parameter_name=\"orbital_period\",\n",
+    "#    dphasevol=\"dlog10per\",\n",
+    "# )\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8c96b151-8c3b-4479-969f-6c2f898497a5",
+   "metadata": {},
+   "source": [
+    "Exporting of all the settings can be done with .export_all_info()\n",
+    "on default it exports everything, but can be supressed by turning it off:\n",
+    "  population settings (bse_options, grid_options, custom_options), turn off with include_population\n",
+    "      settings=False\n",
+    "  binary_c_defaults (all the commandline arguments that binary c accepts, and their defaults).\n",
+    "      turn off with include_binary_c_defaults=False\n",
+    "  include_binary_c_version_info (all the compilation info, and information about the compiled\n",
+    "      parameters), turn off with include_binary_c_version_info=False\n",
+    "  include_binary_c_help_all (all the help information for all the binary_c parameters),\n",
+    "      turn off with include_binary_c_help_all=Fase\n",
+    "On default it will write this to the custom_options['data_dir'], but that can be overriden by\n",
+    "  setting use_datadir=False and providing an outfile=<>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "ba83443c-64b4-4126-90b3-b1ca76c0f73d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "example_pop.export_all_info()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ef5b51a1-e56d-4bec-a5c7-b9d5bceeceba",
+   "metadata": {},
+   "source": [
+    "Executing a single system\n",
+    "This uses the M_1 orbital period etc set with the set function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "c0a9aed7-1fc9-4fe3-8bcf-4e987bfc00a9",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating the code for the shared library for the custom logging\n",
+      "['2.773586668293e+01', '1.33526', '10', '1', '1.72498e-05', '13']\n",
+      "None\n"
+     ]
+    }
+   ],
+   "source": [
+    "output = example_pop.evolve_single()\n",
+    "print(output)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "## Executing a population\n",
+    "## This uses the values generated by the grid_variables\n",
+    "example_pop.evolve()  # TODO: update this function call"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ce937b07-7292-4bb1-b2e7-d69e51bdff6e",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Wrapping up the results to an hdf5 file can be done by using the create_hdf5\n",
+    "(<directory containing data and settings>) This function takes the settings file\n",
+    "(ending in _settings.json) and the data files (ending in .dat) from the data_dir\n",
+    "and packing them into an hdf5 file, which is then written into the same data_dir directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "ad444138-f854-4fdb-8e18-49e35ac9c7e2",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating /tmp/binary_c_python/example_python_population_result/example_pop.hdf5\n",
+      "Adding settings to HDF5 file\n",
+      "Adding data to HDF5 file\n"
+     ]
+    }
+   ],
+   "source": [
+    "create_hdf5(data_dir=example_pop.custom_options[\"data_dir\"], name=\"example_pop.hdf5\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "34da69bc-fe60-4a9d-b07a-f6cd2f216964",
+   "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/notebooks.html b/docs/build/html/notebooks.html
new file mode 100644
index 000000000..ab64c80a4
--- /dev/null
+++ b/docs/build/html/notebooks.html
@@ -0,0 +1,269 @@
+
+
+<!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>Notebooks &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="Title page" href="notebook_population.html" />
+    <link rel="prev" title="Example of population script" href="population_example.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="examples.html">Examples</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="general_examples.html">Examples</a></li>
+<li class="toctree-l2"><a class="reference internal" href="population_example.html">Example of population script</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Notebooks</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="notebook_population.html">Title page</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="examples.html">Examples</a> &raquo;</li>
+        
+      <li>Notebooks</li>
+    
+    
+      <li class="wy-breadcrumbs-aside">
+        
+            
+            <a href="_sources/notebooks.rst.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 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="notebooks">
+<h1>Notebooks<a class="headerlink" href="#notebooks" title="Permalink to this headline">¶</a></h1>
+<p>The notebooks.</p>
+<div class="toctree-wrapper compound">
+<p class="caption"><span class="caption-text">Contents:</span></p>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="notebook_population.html">Title page</a></li>
+</ul>
+</div>
+</div>
+
+
+           </div>
+           
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="notebook_population.html" class="btn btn-neutral float-right" title="Title page" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
+      
+      
+        <a href="population_example.html" class="btn btn-neutral float-left" title="Example of population script" 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: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
+<br><br>
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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/objects.inv b/docs/build/html/objects.inv
index 77dbc4543a4042b06b62f79925729c970f39663e..4cb6e0762a38b40838d01448dffae4e83435d428 100644
GIT binary patch
delta 4663
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

delta 1900
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

diff --git a/docs/build/html/plot_functions.html b/docs/build/html/plot_functions.html
index a24848261..b6caf948e 100644
--- a/docs/build/html/plot_functions.html
+++ b/docs/build/html/plot_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.plot_functions">
+  
+<style>
+/* 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="module-binarycpython.utils.plot_functions">
 <span id="plot-functions-module"></span><h1>plot_functions module<a class="headerlink" href="#module-binarycpython.utils.plot_functions" title="Permalink to this headline">¶</a></h1>
 <p>Module that contains functionality to plot some properties of (binary) systems.</p>
 <p>Different routines are defined here to plot orbits, masses, angular momenta etc.</p>
@@ -182,10 +209,10 @@ plotting functions
 master function: plot_system</p>
 </dd>
 </dl>
-<p>All the loose components here can ofcourse be used in other routines if you want.</p>
-<p>There is no preloaded matplotlib rc, you should do that yourself</p>
-<p>These plotting routines are designed for binary systems, and admittingly they are here mostly for
-inspirational purposes, since one would problably want to customize the plots.
+<p>All the loose components here can of course be used in other routines if you want.</p>
+<p>There is no pre loaded matplotlib rc, you should do that yourself</p>
+<p>These plotting routines are designed for binary systems, and admittedly they are here mostly for
+inspirational purposes, since one would probably want to customise the plots.
 Regardless, having some plotting routines in here seemed like a nice idea</p>
 <dl class="simple">
 <dt>Tasks</dt><dd><p>TODO: This module is not finished yet.
@@ -446,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: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/population_example.html b/docs/build/html/population_example.html
index 647eecf5a..354a84148 100644
--- a/docs/build/html/population_example.html
+++ b/docs/build/html/population_example.html
@@ -30,13 +30,16 @@
         <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="next" title="Notebooks" href="notebooks.html" />
     <link rel="prev" title="Examples" href="general_examples.html" /> 
 </head>
 
@@ -89,6 +92,7 @@
 <li class="toctree-l1 current"><a class="reference internal" href="examples.html">Examples</a><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="general_examples.html">Examples</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">Example of population script</a></li>
+<li class="toctree-l2"><a class="reference internal" href="notebooks.html">Notebooks</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="binary_c_parameters.html">Binary_c parameters</a></li>
@@ -162,7 +166,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="example-of-population-script">
+  
+<style>
+/* 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-of-population-script">
 <h1>Example of population script<a class="headerlink" href="#example-of-population-script" title="Permalink to this headline">¶</a></h1>
 <p>The source code of a script to run a population of stars.</p>
 <div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>  1
@@ -580,7 +608,7 @@
   
     <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="notebooks.html" class="btn btn-neutral float-right" title="Notebooks" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
       
       
         <a href="general_examples.html" class="btn btn-neutral float-left" title="Examples" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
@@ -606,9 +634,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html
index 95e0b1124..eb74bf0b4 100644
--- a/docs/build/html/py-modindex.html
+++ b/docs/build/html/py-modindex.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -252,9 +255,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/readme_link.html b/docs/build/html/readme_link.html
index 04e576c67..e97273eb0 100644
--- a/docs/build/html/readme_link.html
+++ b/docs/build/html/readme_link.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -172,7 +175,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="python-module-for-binary-c">
+  
+<style>
+/* 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="python-module-for-binary-c">
 <h1>Python module for binary_c<a class="headerlink" href="#python-module-for-binary-c" title="Permalink to this headline">¶</a></h1>
 <p>Docstring coverage:</p>
 <a class="reference external image-reference" href="./badges/docstring_coverage.svg"><img alt="docstring coverage" src="_images/docstring_coverage.svg" /></a>
@@ -307,9 +334,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/run_system_wrapper.html b/docs/build/html/run_system_wrapper.html
index cbbe4564c..6a5470eb0 100644
--- a/docs/build/html/run_system_wrapper.html
+++ b/docs/build/html/run_system_wrapper.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.run_system_wrapper">
+  
+<style>
+/* 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="module-binarycpython.utils.run_system_wrapper">
 <span id="run-system-wrapper-module"></span><h1>run_system_wrapper module<a class="headerlink" href="#module-binarycpython.utils.run_system_wrapper" title="Permalink to this headline">¶</a></h1>
 <p>Module containing the utility function run_system,
 which handles a lot of things by analysing the passed kwargs</p>
@@ -184,7 +211,7 @@ Mostly as a useful utility function that handles all the setup of argument lists
 <ul class="simple">
 <li><p>run_system(M_1=10): will run a system with ZAMS mass 1 = 10</p></li>
 <li><dl class="simple">
-<dt>run_system(M_1=10, log_filename=”~/example_log.txt”): Will run a system</dt><dd><p>and write the logfile too</p>
+<dt>run_system(M_1=10, log_filename=”~/example_log.txt”): Will run a system</dt><dd><p>and write the log file too</p>
 </dd>
 </dl>
 </li>
@@ -203,8 +230,8 @@ Several extra arguments can be passed through the kwargs:</p>
 <dt>Kwargs:</dt><dd><dl class="simple">
 <dt>custom_logging_code: Should contain a string containing the c-code for the shared library.</dt><dd><p>If this is provided binary_c will use that custom logging code to output its data</p>
 </dd>
-<dt>log_filename: Should contain name of the binary_c system logfile.</dt><dd><p>Passing this will make sure that the filename gets written for a run
-(its default behaviour is NOT to write a logfile for a system)</p>
+<dt>log_filename: Should contain name of the binary_c system log file.</dt><dd><p>Passing this will make sure that the filename gets written for a run
+(its default behaviour is NOT to write a log file for a system)</p>
 </dd>
 <dt>parse_function (function): should contain a function that parses the output.</dt><dd><p>The parse function should take 1 required parameter: the output of the binaryc run
 Passing this will call the parse_function by passing it the output of the binary_c call
@@ -256,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: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 1de40c2f8..fe5703366 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -31,6 +31,9 @@
         <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>
 
@@ -191,9 +194,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index 70adfe832..e8f9060ba 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","examples","functions","general_examples","grid","grid_options_defaults","grid_options_descriptions","hpc_functions","index","modules","plot_functions","population_example","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,sphinx:56},filenames:["binary_c_parameters.rst","custom_logging_functions.rst","distribution_functions.rst","examples.rst","functions.rst","general_examples.rst","grid.rst","grid_options_defaults.rst","grid_options_descriptions.rst","hpc_functions.rst","index.rst","modules.rst","plot_functions.rst","population_example.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:[6,0,0,"-"],grid_options_defaults:[7,0,0,"-"],hpc_functions:[9,0,0,"-"],plot_functions:[12,0,0,"-"],run_system_wrapper:[15,0,0,"-"],spacing_functions:[16,0,0,"-"],stellar_types:[17,0,0,"-"],useful_funcs:[18,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_de_Stefano_2017_multiplicity_fractions:[2,1,1,""],Moe_de_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,""],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_distefano_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:[6,2,1,""]},"binarycpython.utils.grid.Population":{Moe_de_Stefano_2017:[6,3,1,""],add_grid_variable:[6,3,1,""],evolve:[6,3,1,""],evolve_population:[6,3,1,""],evolve_single:[6,3,1,""],export_all_info:[6,3,1,""],format_ensemble_results:[6,3,1,""],get_stream_logger:[6,3,1,""],last_grid_variable:[6,3,1,""],parse_cmdline:[6,3,1,""],return_all_info:[6,3,1,""],return_population_settings:[6,3,1,""],set:[6,3,1,""],set_moe_distefano_settings:[6,3,1,""],system_queue_filler:[6,3,1,""],write_binary_c_calls_to_file:[6,3,1,""]},"binarycpython.utils.grid_options_defaults":{grid_options_description_checker:[7,1,1,""],grid_options_help:[7,1,1,""],print_option_descriptions:[7,1,1,""],write_grid_options_to_rst_file:[7,1,1,""]},"binarycpython.utils.plot_functions":{color_by_index:[12,1,1,""],dummy:[12,1,1,""],parse_function_hr_diagram:[12,1,1,""],parse_function_masses:[12,1,1,""],parse_function_orbit:[12,1,1,""],plot_HR_diagram:[12,1,1,""],plot_masses:[12,1,1,""],plot_orbit:[12,1,1,""],plot_system:[12,1,1,""]},"binarycpython.utils.run_system_wrapper":{run_system:[15,1,1,""]},"binarycpython.utils.spacing_functions":{"const":[16,1,1,""]},"binarycpython.utils.useful_funcs":{calc_period_from_sep:[18,1,1,""],calc_sep_from_period:[18,1,1,""],maximum_mass_ratio_for_RLOF:[18,1,1,""],minimum_period_for_RLOF:[18,1,1,""],minimum_separation_for_RLOF:[18,1,1,""],ragb:[18,1,1,""],roche_lobe:[18,1,1,""],rzams:[18,1,1,""],zams_collision:[18,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:{"0001":18,"0007":2,"001":0,"002":5,"054":2,"0820":0,"08msun":0,"0902":0,"100":[0,2],"1000":[5,8],"100000000000":5,"115":2,"125":0,"12500":0,"12e":[1,13],"13e3":0,"1403":2,"150":13,"15000":[0,5,13],"15msun":2,"190":0,"1951":0,"1972":0,"1975":0,"197x":0,"1980":2,"1983":18,"1986":[0,2],"1989":0,"1991":2,"1993":0,"1996":18,"1998":[0,2],"1999":0,"1ckzg0p9":[10,14],"1e2":0,"1e9":0,"200":0,"2000":0,"2001":2,"2002":0,"2003":[0,2],"2004":0,"2005":0,"2009":0,"2010":[0,2,8],"2012":[0,2],"2013":0,"2014":[0,2],"2015":0,"2016":0,"2017":[0,8],"2018":[0,1],"2019":0,"2020":0,"2021":0,"20210720":0,"257":18,"25msun":0,"281":18,"2969346":2,"2msun":0,"3000":0,"30e4":0,"3msun":2,"4000":0,"42msun":0,"44msun":0,"45000000080":13,"4530":5,"45msun":0,"4e3":0,"500":0,"5msun":0,"600000":0,"6044":0,"625":0,"6944":0,"6e1":2,"6e5":0,"6msun":0,"7619":0,"763":2,"78125":0,"795":2,"80msol":2,"boolean":[0,4,6,8,12,18],"break":0,"case":[0,4,8],"catch":[4,5,8],"char":8,"class":[4,6],"const":[2,6,13,16],"default":[0,1,2,4,5,6,7,8,13,15],"export":[4,6,13],"float":[0,2,4,16,18],"function":[0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,18],"import":[4,5,6,13],"int":[0,1,2,4,6,7,8,16,18],"long":[0,4,6,8,17],"new":[0,2,4,6],"null":[0,4],"paczy\u0144ski":0,"public":[7,10],"return":[1,2,4,6,7,8,12,15,16,18],"short":[0,17],"super":0,"switch":0,"throw":[10,14],"true":[0,4,6,7,8,12,13],"try":[0,6,10,14],"while":0,And:[7,10,14,18],For:[0,4,10,12,14],Gas:0,Its:8,NOT:[0,6,15],Not:[8,13],One:0,Pms:12,That:0,The:[0,1,2,4,5,6,8,10,12,13,14,15],Then:[4,10,14],There:[2,5,6,7,8,12],These:[4,8,12],Use:[0,5,6],Used:[0,8,12],Useful:[0,6,7],Uses:[0,16],Was:0,Will:[0,4,6,13,15],With:7,__enter__:4,__exit__:4,_actually_evolve_system:8,_binary_c_bind:[4,5,18],_binary_c_config_execut:8,_binary_c_dir:8,_binary_c_execut:8,_binary_c_shared_librari:8,_commandline_input:8,_count:8,_custom_logging_shared_library_fil:8,_end_time_evolut:8,_errors_exceed:8,_errors_found:8,_evolution_type_opt:8,_failed_count:8,_failed_prob:8,_failed_systems_error_cod:8,_generate_grid_cod:8,_grid_vari:8,_loaded_ms_data:8,_main_pid:8,_population_id:8,_probtot:8,_process_run_population_grid:8,_repeat:8,_set:[6,13],_set_ms_grid:8,_start_time_evolut:8,_store_memaddr:8,_system_gener:8,_total_mass_run:8,_total_probability_weighted_mass_run:8,_total_starcount:8,_zero_prob_stars_skip:8,abat:0,abbrevi:17,about:[4,6,7,13,18],abov:[0,2,4,5,6],absolut:0,abund:0,acceler:0,accept:[4,13],access:8,accord:[0,2],accordingli:13,account:[0,8],accret:0,accretion_limit_dynamical_multipli:0,accretion_limit_eddington_lmms_multipli:0,accretion_limit_eddington_steady_multipli:0,accretion_limit_eddington_wd_to_remnant_multipli:0,accretion_limit_thermal_multipli:0,accretor:[0,18],acess:2,act:[0,8,13],activ:[0,10,14],actual:[0,4,6,8,10,12,14],adam:0,adapt:0,add:[2,4,6,8,12,13,16,18],add_grid_vari:[6,13],added:4,admittingli:12,adress:[1,5,8,18],affect:0,after:[0,6,8],ag89:0,again:[4,6,8,10,14],against:12,agb:0,agb_3dup_algorithm:0,agb_core_algorithm:0,agb_core_algorithm_default:0,agb_core_algorithm_hurlei:0,agb_core_algorithm_karaka:0,agb_luminosity_algorithm:0,agb_luminosity_algorithm_default:0,agb_luminosity_algorithm_hurlei:0,agb_luminosity_algorithm_karaka:0,agb_radius_algorithm:0,agb_radius_algorithm_default:0,agb_radius_algorithm_hurlei:0,agb_radius_algorithm_karaka:0,agb_third_dredge_up_algorithm_default:0,agb_third_dredge_up_algorithm_hurlei:0,agb_third_dredge_up_algorithm_karaka:0,agb_third_dredge_up_algorithm_stancliff:0,age:0,aging:0,albedo:0,algorithm:10,algothim:0,all:[0,1,2,4,5,6,7,8,10,11,12,13,14,15],all_info:6,allow:[0,2,4,5,8],allow_nan:4,along:[0,7,8],alot:[8,13],alpha:0,alpha_c:0,alphacb:0,alreadi:6,also:[0,4,5,6,7,10,14,18],altern:[0,8],alwai:[0,2,8],amanda:0,amax:2,amin:2,amount:[0,4,6,7,8,13,16],amt_cor:[6,8,13],analys:15,analyt:6,andrew:[10,14],andronov:0,angelou_lithium_cheb_decay_tim:0,angelou_lithium_cheb_massfrac:0,angelou_lithium_cheb_tim:0,angelou_lithium_decay_funct:0,angelou_lithium_decay_tim:0,angelou_lithium_eagb_decay_tim:0,angelou_lithium_eagb_massfrac:0,angelou_lithium_eagb_tim:0,angelou_lithium_gb_decay_tim:0,angelou_lithium_gb_massfrac:0,angelou_lithium_gb_tim:0,angelou_lithium_hg_decay_tim:0,angelou_lithium_hg_massfrac:0,angelou_lithium_hg_tim:0,angelou_lithium_lmms_decay_tim:0,angelou_lithium_lmms_massfrac:0,angelou_lithium_lmms_tim:0,angelou_lithium_ms_decay_tim:0,angelou_lithium_ms_massfrac:0,angelou_lithium_ms_tim:0,angelou_lithium_tpagb_decay_tim:0,angelou_lithium_tpagb_massfrac:0,angelou_lithium_tpagb_tim:0,angelou_lithium_vrot_trigg:0,angelou_lithium_vrotfrac_trigg:0,angular:[0,12],ani:[0,2,4,6,10,14],anoth:0,ansi:0,anyth:[0,8],anywai:6,anywher:6,api:[0,4],api_log_filename_prefix:0,append:[1,4],appli:0,approach:5,appropri:[0,8],approxim:0,aren:[2,8],arenou2010_binary_fract:2,arg:[2,4,12],arg_dict:4,argopt:0,argpair:4,argstr:5,argument:[0,2,4,5,6,8,13,15],argument_of_periastron:0,argument_of_periastron_quadrupl:0,argument_of_periastron_tripl:0,around:[0,5],arrai:[2,4,5,8],artifici:0,artificial_accretion_end_tim:0,artificial_accretion_ignor:0,artificial_accretion_start_tim:0,artificial_angular_momentum_accretion_r:0,artificial_mass_accretion_r:0,artificial_orbital_angular_momentum_accretion_r:0,arxiv:[0,2],asarrai:5,asign:6,ask:[0,18],asplund:0,assum:[0,12],ast871:0,astronomi:0,astropi:[10,12,14],atom:4,attempt:[4,6],auto:11,autogen_c_logging_cod:[1,5],autogener:[1,5],automat:[0,1,5,7,10,14],avaibl:[10,14],avail:[0,4,8,12],awai:0,axi:[0,12],b_1:0,b_2:0,b_3:0,b_4:0,b_inclination1:0,b_inclination2:0,b_inclination3:0,b_inclination4:0,back:[0,4],background:5,backward:0,bagb:0,barn:0,base:[0,2,4,5,6,10,12,14,18],base_filenam:[6,13],basic:[5,6],batchmod:0,beasor:0,becaus:[0,2,5,6,8,10,14],becom:[0,1,2,4],been:[0,6,8],befor:[0,6,8,10,13,14],behaviour:[4,15],behind:5,belczynski:0,below:[0,8,13],berro:0,bertolami:0,best:[6,8,10,14],beta:0,beta_reverse_nova:0,beta_reverse_novae_geometri:0,better:[0,4,6],between:[0,2,16],bewar:6,bh_belczynski:0,bh_fryer12_delai:0,bh_fryer12_rapid:0,bh_hurley2002:0,bh_prescript:0,bh_spera2015:0,big:[0,8],bin:[0,5,10,14],binari:[2,5,6,8,10,12,13,14,18],binary_c2:[10,14],binary_c:[1,2,4,5,6,8,12,13,15],binary_c_cal:6,binary_c_default:13,binary_c_inline_config:1,binary_c_log_cod:[1,5],binary_c_macro:0,binary_c_output:4,binary_c_paramet:[0,13],binary_c_python:[4,6],binary_c_task_:0,binary_c_write_log_cod:1,binary_grid:0,binary_star:18,binaryc:[1,4,15],binaryc_config:1,binaryc_json_seri:4,binarycdecod:4,binarycencod:4,binarycpython:[1,2,4,5,6,7,10,12,13,14,15,16,18],bind:0,birth:0,bit:2,bivari:0,black:0,black_hol:0,bloecker:0,blog:1,boltzman:12,boltzmann:0,bondi:0,bondi_hoyle_accretion_factor:0,bool:[4,6,7,12],born:0,bosswissam:4,both:[0,4],bottom:0,bound:[2,16],boundari:2,brake:0,branch:[0,4],branch_david:0,branchpoint:6,breakup:0,broken:0,bse:[0,2],bse_opt:[6,13],bsf:0,buffer:0,build:[0,1,4],build_q_tabl:2,built:[0,1,4,10,14],burn:0,busso:0,bye:0,c13_eff:0,c_auto_log:[8,13],c_log:0,c_logging_cod:[8,13],calc_e_integr:2,calc_p_integr:2,calc_period_from_sep:18,calc_sep_from_period:[13,18],calc_total_probden:2,calcul:[0,2,4,6,8,18],calculate_constants_three_part_powerlaw:2,call:[0,1,4,6,8,12,13,15],call_binary_c_config:4,can:[0,1,2,4,5,6,8,10,12,13,14,15],cannot:6,canon:8,cap:0,capsul:4,captur:[0,4],carbon:0,carbon_oxygen_white_dwarf:0,carlo:0,carrasco:0,carri:0,cast:[4,5],catchtim:4,categor:4,caught:4,caus:18,cbdisc:0,cbdisc_albedo:0,cbdisc_alpha:0,cbdisc_eccentricity_pumping_dermin:0,cbdisc_eccentricity_pumping_method:0,cbdisc_eccentricity_pumping_non:0,cbdisc_end_evolution_after_disc:0,cbdisc_fail_ring_inside_separ:0,cbdisc_gamma:0,cbdisc_init_djdm:0,cbdisc_init_dm:0,cbdisc_inner_edge_strip:0,cbdisc_inner_edge_stripping_timescal:0,cbdisc_kappa:0,cbdisc_mass_loss_constant_r:0,cbdisc_mass_loss_fuv_multipli:0,cbdisc_mass_loss_inner_l2_cross_multipli:0,cbdisc_mass_loss_inner_viscous_accretion_method:0,cbdisc_mass_loss_inner_viscous_accretion_method_equ:0,cbdisc_mass_loss_inner_viscous_accretion_method_gerosa_2015:0,cbdisc_mass_loss_inner_viscous_accretion_method_non:0,cbdisc_mass_loss_inner_viscous_accretion_method_young_clarke_2015:0,cbdisc_mass_loss_inner_viscous_angular_momentum_multipli:0,cbdisc_mass_loss_inner_viscous_multipli:0,cbdisc_mass_loss_ism_pressur:0,cbdisc_mass_loss_ism_ram_pressure_multipli:0,cbdisc_mass_loss_xray_multipli:0,cbdisc_max_lifetim:0,cbdisc_minimum_evaporation_timescal:0,cbdisc_minimum_fr:0,cbdisc_minimum_luminos:0,cbdisc_minimum_mass:0,cbdisc_no_wind_if_cbdisc:0,cbdisc_outer_edge_strip:0,cbdisc_outer_edge_stripping_timescal:0,cbdisc_resonance_damp:0,cbdisc_resonance_multipli:0,cbdisc_torquef:0,cbdisc_viscous_l2_coupl:0,cbdisc_viscous_photoevaporative_coupl:0,cbdisc_viscous_photoevaporative_coupling_inst:0,cbdisc_viscous_photoevaporative_coupling_non:0,cbdisc_viscous_photoevaporative_coupling_visc:0,cee:0,cemp:0,cemp_cfe_minimum:0,center:6,central_object:0,certain:[3,8,10,14],cf_amanda_log:0,cflag:[10,14],chabrier:2,chandrasekhar:0,chandrasekhar_mass:0,chang:[0,1,2,4,6,7,8,10,13,14],chapter:[0,3,8,11],cheb:0,check:[0,2,4,6,7,13,18],check_circular:4,chemic:0,chen:0,child:4,choic:[0,2,6,12],choos:[0,5,12],chosen:6,circular:0,circumbinari:0,circumstanti:0,claei:0,clark:0,clean:[1,6,10,14],clean_up_custom_logging_fil:6,clear:4,clock:4,clone:[10,14],close:0,cloud:0,cls:4,cluster:9,cmdline:6,code:[0,1,3,5,6,7,10,12,13,14,15],collaps:0,collapsar:0,collect:18,collid:18,color:12,color_by_index:12,colour:0,colour_log:0,column:[5,12,13],com:[1,4],combin:[1,4,6,8],combine_ensemble_with_thread_join:8,come:[2,10,14,16],comenv_bs:0,comenv_disc_angmom_fract:0,comenv_disc_mass_fract:0,comenv_ejection_spin_method:0,comenv_ejection_spin_method_do_noth:0,comenv_ejection_spin_method_sychron:0,comenv_ejection_spin_method_synchron:0,comenv_merger_spin_method:0,comenv_merger_spin_method_breakup:0,comenv_merger_spin_method_conserve_angmom:0,comenv_merger_spin_method_conserve_omega:0,comenv_merger_spin_method_specif:0,comenv_ms_accret:0,comenv_ms_accretion_fract:0,comenv_ms_accretion_mass:0,comenv_nandez2016:0,comenv_nelemans_tout:0,comenv_ns_accret:0,comenv_ns_accretion_fract:0,comenv_ns_accretion_mass:0,comenv_post_eccentr:0,comenv_prescript:0,comenv_splitmass:0,comenv_undef:0,command:[0,1,6,8,10,14],commandlin:[6,8,13],commit:4,common:[0,13],companion:[0,13],compar:[0,8],compil:[1,5,10,13,14],compile_shared_lib:1,complain:13,complex:[5,6,8,12],compon:[4,12],comput:[0,9],condit:[5,6,13],condor:[6,8,9],condor_grid:6,config:[1,4,8,10,14],config_fil:1,configur:[2,5,6,13],conserv:0,consid:[0,1,2,4,6,8,12],constant:[0,2,12],construct:[0,1,5],conta:7,contain:[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17],content:[4,10],context:4,continu:6,control:0,convect:0,converg:0,convert:[2,4,6],convert_byt:4,cool:0,copi:[0,6,18],core:[0,6,8,12],core_helium_burn:0,core_mass:0,correct:[2,6,12,18],correctli:[5,10,12,13,14],correspond:12,corretor:0,cosmic:2,cosmic_sfh_madau_dickinson2014:2,could:[0,4],count:[4,8],count_keys_recurs:4,counter:8,coupl:0,coverag:[10,14],cowd:0,cpu:0,crap_paramet:0,creat:[2,4,6,13],create_and_load_logging_funct:[1,5],create_arg_str:4,create_hdf5:[4,13],critic:0,cross:0,ctype:1,cuntz:0,current:[0,4,10,14],custom:[0,1,4,5,6,8,12,13,15],custom_log:[5,6,8],custom_logging_cod:[1,5,15],custom_logging_func_memaddr:[5,8],custom_logging_funct:[5,8,10,11,13],custom_logging_info:6,custom_opt:[6,13],custom_sort_dict:4,custom_tmp_dir:1,cut:5,cvode:0,d1ed5b6c1:0,dai:[0,2,5,13,18],damp:0,dat:[0,4,13],data:[0,4,5,6,8,13,15],data_dict:2,data_dir:[4,6,8,13],datadir:6,datafram:[5,12],dataset:4,date:6,david:[0,10,14],david_logging_funct:0,dd7:0,deactiv:0,deal:4,death:0,debug:[0,8],decai:0,decid:[0,4,5],decod:4,decreas:0,deeper:6,def:[5,13],default_to_metal:0,defaultdict:4,defer:0,defin:[0,1,2,6,12],definit:[1,18],degener:0,degre:0,delta_mcmin:0,den:0,densiti:2,depend:[0,2,10,12,14],deprec:0,dermin:0,describ:[0,2,5,8],descript:[0,2,4,8,10,11],design:[6,12],desir:0,destruct:6,detail:[0,4],detect:0,determin:[0,6,18],deton:0,dev:0,develop:1,deviat:2,dewi:0,dex:0,df2:5,diagnost:8,diagram:[0,12],dickonson:2,dict2:4,dict:[1,2,4,6,7,13,17],dict_1:4,dict_2:4,dictionari:[1,2,4,6,7,8,12,17],did:[4,10,14],differ:[0,4,6,10,12,14],dimmer:0,dir:[10,14],direct:[0,6],directli:[4,5,8],director:8,directori:[0,4,6,8,10,13,14],disabl:0,disable_debug:0,disable_end_log:0,disable_ev:0,disc:0,disc_legacy_log:0,disc_log2d:0,disc_log:0,disc_log_directori:0,disc_log_dt:0,disc_log_level_non:0,disc_log_level_norm:0,disc_log_level_normal_first_disc_onli:0,disc_log_level_subtimestep:0,disc_log_level_subtimestep_first_disc_onli:0,disc_n_monte_carlo_guess:0,disc_stripping_timescale_infinit:0,disc_stripping_timescale_inst:0,disc_stripping_timescale_orbit:0,disc_stripping_timescale_visc:0,disc_timestep_factor:0,discs_circumbinary_from_comenv:0,discs_circumbinary_from_wind:0,disk:[0,6],dispers:0,displai:0,dist:[10,14],distefano:[2,4,6,10],distribut:[0,2,6,9],distribution_funct:[10,11],distributoon:2,divid:9,dlnm1:[6,13],dlog10per:13,dlogp:2,doc:[4,7,10,14],doc_fetch:2,docstr:[10,12,14],document:[4,7,8,11],doe:[0,2,4,6,8,18],doesn:[6,8],doesnt:[5,7],doing:[0,1,6,7,10,14],don:8,done:[0,4,5,6,10,13,14],donm:13,donor:[0,18],donor_limit_dynamical_multipli:0,donor_limit_envelope_multipli:0,donor_limit_thermal_multipli:0,donor_rate_algorithm_bs:0,donor_rate_algorithm_claeys2014:0,dont:[2,4,5,6],dphasevol:[6,13],dr2:0,dr3:0,drai:0,dredg:0,dstep:2,dtfac:0,dtlimit:4,dtm:[1,13],dtype:5,due:[10,14],dummi:[2,12],dump:[0,4],dumpvers:0,duquennoi:2,duquennoy1991:2,dure:0,dust:0,dwarf:0,dynam:0,e2_hurley_2002:0,e2_izzard:0,e2_mint:0,e2_prescript:0,each:[0,2,4,6,8],eagb:0,eagb_wind_beasor_etal_2020:0,eagb_wind_bs:0,eagb_wind_goldman_etal_2017:0,eagbwind:0,eagbwindfac:0,earli:0,early_asymptotic_giant_branch:0,easi:4,easier:[4,5],ecc2:2,ecc3:2,ecc:[2,5,6],eccentr:[0,2,5,12,13,18],eccentric_rlof_model:0,eccentricity_quadrupl:0,eccentricity_tripl:0,echo:0,eddington:0,edg:[0,6],edu:0,effect:[0,2,8],effective_metal:0,effici:0,egg:[10,14],eggleton:[0,18],either:[0,4,5,6,8,10,14,15],eject:0,eld:0,eldridg:0,electon:0,electron:0,element:[0,1,4,8,12],email:4,emp:0,emp_feh_maximum:0,emp_logg_maximum:0,emp_minimum_ag:0,empti:[4,7],enabl:0,encod:4,encount:8,end:[0,2,4,8,13],end_index:2,energi:0,enhanc:0,enlarg:0,enough:2,ensembl:[0,4,6,8],ensemble_def:0,ensemble_dictionari:6,ensemble_dt:0,ensemble_factor_in_probability_weighted_mass:8,ensemble_filter_:0,ensemble_filters_off:0,ensemble_json:4,ensemble_legacy_ensembl:0,ensemble_list:6,ensemble_logdt:0,ensemble_logtim:0,ensemble_macro:0,ensemble_output_:8,ensemble_startlogtim:0,ensure_ascii:4,enter:[0,10,14],enthalpi:0,entir:5,entri:4,entrypoint:6,env:[10,12,14],envelop:0,equal:[4,13],equat:0,equation_of_state_algorithm:0,equation_of_state_paczynski:0,equatori:0,equival:8,errno:[10,14],error:[0,4,8,10,14],esa:2,escap:0,escape_fract:0,escape_veloc:0,eta:0,etal:0,etc:[0,4,6,9,10,12,13,14,15],euler:0,evalu:[2,6,18],evan:0,evapor:0,evaporate_escaped_orbiting_object:0,event:0,everi:[0,10,14],everyth:[6,8,13],everytim:[10,14],evid:0,evolut:[0,1,5,6,8,12],evolution_split:0,evolution_splitting_maxdepth:0,evolution_splitting_sn_eccentricity_threshold:0,evolution_splitting_sn_n:0,evolution_typ:8,evolutionari:0,evolv:[0,6,8,13],evolve_popul:[6,13],evolve_singl:[6,13],exact:[1,4,8],exactli:0,exampl:[1,2,4,6,15],example_head:4,example_header_1:5,example_header_2:5,example_log:15,example_log_co:1,example_parse_output:[4,5],example_pop:13,example_python_population_result:13,exce:[0,8],except:[4,6,7,8,12],execut:[0,6,8,10,13,14],exist:[0,6,7,13],exist_ok:[4,13],exit:[0,4],exp:[6,13],expand:15,expect:[10,14],experiment:[0,4],explain:4,explicilti:1,explicitli:0,explod:0,explos:0,expoenti:0,expon:0,export_all_info:[6,13],express:0,extend:[10,14],extern:0,extra:[0,6,8,15],extra_text:7,extract:[4,13],extract_ensemble_json_from_str:4,extrapol:[2,8],fabian:0,fabian_imf_log:0,fabian_imf_log_tim:0,fabian_imf_log_timestep:0,factor:[0,2,4,8],fade:0,fail:[0,4,8,10,14],fail_sil:4,failed_system:8,failed_system_log:8,failed_systems_threshold:8,failur:0,fals:[0,4,6,8,12,13],fancy_parsing_funct:15,far:0,farmer:0,fase:13,fast:0,feed:8,ferguson:0,few:0,field:0,fig:[0,2],figur:[8,12],file:[0,1,4,6,7,8,9,10,12,13,14],file_log:0,filehandl:7,filenam:[0,1,4,5,6,8,13,15],filenotfounderror:[10,14],filepath:[1,4],filesystem:4,fill:6,fill_data:2,filter:[0,4],filter_arg_dict:4,filter_valu:4,fin:0,find:[4,6,8,10,14],finish:[4,12],first:[0,2,4,6,10,14,18],first_giant_branch:0,fishlock:0,fit:[0,2,4,6,18],fix:[0,2,4,6,12],flag:[0,1,4,8],flash:0,flat:[2,8],flatsect:[2,13],flaw:6,float64:5,float_overflow_check:0,flto:[10,14],fold:2,follow:[0,2,4,8,10,12,14],forc:[0,10,14],force_circularization_on_rlof:0,force_corotation_of_primary_and_orbit:0,forloop:6,form:[0,4,6,7],formal:0,format:[0,2,4,5,6,13],format_ensemble_result:6,formula:0,forward:0,found:[2,10,14],four:0,fpic:1,fraction:[0,2,8],frequenc:0,friction:0,fring:0,from:[0,2,4,5,6,8,12,13,18],from_binary_c_config:1,from_dict:5,ftz:[10,14],full:[4,6,8],full_path:4,fulli:[6,13],func_memaddr:5,functon:6,further:2,fuv:0,gaia:[0,2],gaia_colour_transform_method:0,gaia_conversion_ubvri_bivariate_jordi2010:0,gaia_conversion_ubvri_riello2020:0,gaia_conversion_ubvri_univariate_evans2018:0,gaia_conversion_ubvri_univariate_jordi2010:0,gaia_conversion_ugriz_bivariate_jordi2010:0,gaia_conversion_ugriz_riello2020:0,gaia_conversion_ugriz_univariate_evans2018:0,gaia_conversion_ugriz_univariate_jordi2010:0,gaia_l_binwidth:0,gaia_teff_binwidth:0,gain:8,galact:0,gallino:0,gamma:0,gap:0,garcia:0,gauss:0,gaussian:2,gaussian_func:2,gaussian_normalizing_const:2,gb_reimers_eta:0,gb_wind_beasor_etal_2020:0,gb_wind_goldman_etal_2017:0,gb_wind_reim:0,gb_wind_schroeder_cuntz_2005:0,gbwind:0,gbwindfac:0,gcc:[1,10,14],gce:0,gener:[0,1,2,4,5,6,7,8,12,13],general_info:4,geometr:0,gerosa:0,get:[0,2,4,5,6,7,10,13,14,15,18],get_arg_kei:4,get_default:4,get_help:[4,13],get_help_al:[4,6,13],get_help_sup:4,get_integration_constant_q:2,get_max_multipl:2,get_moe_distefano_dataset:4,get_siz:4,get_stream_logg:6,gettempdir:5,giant:0,giant_branch:0,git:[0,4],git_branch:4,git_build:4,github:4,gitlab:10,give:[0,2,4,5,18],given:[0,1,2,4,5,6,8,15,18],globablli:2,global:[0,2],global_dict:2,gmax:2,gmin:2,goe:[0,4,6,12],gogo:0,going:[10,14],goldman:0,gonna:2,good:[0,8,13,18],gov:0,gravit:0,gravitational_radiation_bs:0,gravitational_radiation_bse_when_no_rlof:0,gravitational_radiation_landau_lifshitz:0,gravitational_radiation_landau_lifshitz_when_no_rlof:0,gravitational_radiation_model:0,gravitational_radiation_modulator_:0,gravitational_radiation_modulator_j:0,gravitational_radiation_non:0,grb:0,great:0,greater:0,grevess:0,grid:[0,4,6,10,11,13],grid_class:[10,11],grid_cod:6,grid_opt:[6,8,13],grid_options_default:7,grid_options_defaults_dict:7,grid_options_descript:7,grid_options_description_check:7,grid_options_help:7,grid_vari:[8,13],grid_variable_numb:6,gridcod:6,gridcode_filenam:8,gridtyp:6,group:4,gsl:[10,14],gsl_dir:[10,14],guess:[0,2],h5py:[10,14],hachisu:0,hachisu_disk_wind:0,hachisu_ignore_qcrit:0,hachisu_qcrit:0,hack:7,had:6,half:0,hall:0,handi:0,handl:[0,4,6,8,13,15,18],handle_ensemble_string_to_json:4,happen:0,has:[0,1,4,5,6,8],have:[0,2,4,5,6,7,8,10,12,13,14],hbb:0,hbbtfac:0,hdf5:[4,13],hdf5file:4,header:[1,4,5,13],headerlin:13,headlin:8,hegb:0,hehg:0,height:[2,13],helium:0,helium_flash_mass_loss:0,helium_white_dwarf:0,help:[0,4,7,13],help_al:0,hem:0,henc:0,hendrik:[10,14],here:[1,4,5,6,8,12,13],hertzsprung:0,hertzsprung_gap:0,hertzstrpung:0,heuvel:0,hewd:0,hewd_hewd_ignition_mass:0,hex:8,high:[0,2],higher:[0,2,4,8,10,14],highest:6,his:2,histori:2,hold:8,hole:0,homogen:0,hopefulli:0,hot:0,how:[0,4,5,6,8],howev:0,hoyl:0,hpc:[6,9],hpc_function:[10,11],hr_diagram:12,hrd:0,hrdiag:0,hrdiag_output:0,html:[10,14],http:[0,1,2,4],hurlei:0,hut:0,hybrid:0,hydro:0,hydrogen:0,ibc:0,idea:12,idum:0,ignit:0,ignor:[0,5,6,8,10,14],iia:0,imf:[0,2],imf_chabrier2003:2,imf_scalo1986:2,imf_scalo1998:2,imf_tinsley1980:2,immedi:0,implement:[0,6,8],impli:0,impos:13,improv:2,inclin:0,inclination1:0,inclination2:0,inclination3:0,inclination4:0,inclini:0,incliniation_quadrupl:0,incliniation_tripl:0,includ:[0,1,2,4,5,6,10,12,14],include_binary_c_default:[6,13],include_binary_c_help_al:[6,13],include_binary_c_version_info:[6,13],include_default:6,include_popul:13,include_population_set:6,incom:0,increas:0,inde:0,indent:4,index:[0,2,10],indic:[0,2],individual_nova:0,induc:0,inertia:0,info:[4,6,10,12,13,14],inform:[0,1,4,6,7,12,13],init:6,init_abund:0,init_abund_dex:0,init_abund_mult:0,init_abunds_onli:0,initi:[0,2,6],initial_abundance_hash:6,initial_abundance_mix:0,initial_abunds_onli:0,inlin:5,inner:0,input:[1,2,4,6,8,10,12,18],input_dict:4,insert:6,insid:0,inspect:[4,12,13],inspect_dict:4,inspir:[1,5,12,18],instabl:0,instanc:[4,13],instant:0,instantli:0,instead:[0,4,8],integ:[0,6,8,18],integr:2,integrals_str:2,interact:[0,7],interfac:[4,10,14],interfer:[10,14],intern:[0,8],internal_buff:0,internal_buffering_off:0,internal_buffering_print:0,internal_buffering_stor:0,interpol:[2,6],interpolate_in_mass_izzard2012:2,interpolator_nam:2,intershel:0,interstellar:0,intger:0,intro:0,invers:18,involv:0,inward:0,is_capsul:4,isn:[4,6],isnt:13,isotop:[0,4],isotope_hash:6,isotope_list:6,item:1,iter:4,its:[0,4,6,7,10,12,14,15],itself:[4,8,10,14],iwamoto:0,izzard2012_period_distribut:2,izzard:[0,10,14],jager:0,jaschek:2,jeff:[10,14],jia:0,job_queu:6,john:0,join:13,jordi:0,json:[4,6,8,13],jsondecod:4,jsonencod:4,jul:0,jupyt:[10,14],just:[0,2,4,5,6,8,18],kap:0,kappa:0,kaps_rentrop:0,karaka:0,keep:6,kei:[1,2,4,6,7,8,12],kelvin:0,keplerian:0,keypair:4,keyword:[12,15],kick:[0,8],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,13],kim:0,kind:0,kippenhahn:0,know:[0,1,6,7],known:[0,2,6,13,15],kroupa2001:[2,6],kroupa:2,ktg93:2,kwarg:[6,12,15],lambda:0,lambda_c:0,lambda_ce_dewi_tauri:0,lambda_ce_klencki_2020:0,lambda_ce_polytrop:0,lambda_ce_wang_2016:0,lambda_enthalpi:0,lambda_ionis:0,lambda_min:0,lambda_mult:0,lambda_multipli:0,lambda_v:2,lamer:0,landau:0,langer:0,larger:0,last:[2,6],last_grid_vari:6,late:5,latter:0,law:2,lbv:0,ld_library_path:[10,14],lead:0,least:[10,14],leav:0,left:0,legaci:0,legacy_yield:0,len:13,lengthen:0,less:[0,1,2],let:6,level:[1,4,6],li7:0,lib:[5,10,14],libbinary_c:8,libgsl:[10,14],libmemo:[10,14],librari:[0,1,5,6,8,15],library_path:[10,14],librinterpol:[10,14],lies:0,lifetim:0,lifshitz:0,like:[0,1,4,5,6,8,10,12,14,16],limit:[0,12],line:[1,4,5,6,8,10,12,14],linear2:8,linear:[0,2,8],linear_extrapolation_q:2,linearli:[6,16],linker:1,linspac:16,list:[0,1,2,4,8,15,16],list_arg:0,list_of_sub_kei:2,lit:0,lithium:0,lithium_gb_post_1dup:0,lithium_gb_post_heflash:0,lithium_hbb_multipli:0,lithium_t:0,littleton:0,liu:0,llnl:0,lnm1:[6,13],load:[0,1,4,5,6,8,12,13],load_logfil:4,lobe:[0,18],local:2,locat:[0,2,8,10,14],lodder:0,log10:[0,2,13],log10m1:8,log10p:2,log10per:13,log10pmin:2,log:[0,1,2,5,6,8,10,12,13,14,15,18],log_arg:8,log_args_dir:8,log_fil:8,log_filenam:[0,5,15],log_runtime_system:8,logarithm:2,logensembletim:0,logfil:[4,10,14,15],logg:0,logger:6,logging_dict:1,logging_lin:5,logic:[1,6,8],logmass:2,logp:2,logper:2,logperiod:2,long_spectral_typ:2,longer:0,longnam:[6,13],look:[1,4,10,14],lookback:0,loon:0,loop:6,loos:12,lose:0,loss:0,lost:0,lot:[4,15],low:[0,2,13],low_mass_m:0,low_mass_main_sequ:0,lower:[0,2,6,16],lsoda:0,lsun:[0,12],lugaro:0,luminos:[0,12],luminosity_1:12,luminosity_2:12,lynnett:0,m_1:[0,5,6,13,15],m_2:[0,5,13],m_3:0,m_4:0,m_max:[2,6],m_min:6,m_re:5,maccretor:0,machin:[8,10,14],macro:[0,4],madau:2,maeder:0,magellan:0,magnet:0,magnetic_braking_algorithm:0,magnetic_braking_algorithm_andronov_2003:0,magnetic_braking_algorithm_barnes_2010:0,magnetic_braking_algorithm_hurley_2002:0,magnetic_braking_algorithm_rappaport_1983:0,magnetic_braking_factor:0,magnetic_braking_gamma:0,magnitud:4,mai:0,main:[0,1,8,10,14],main_sequ:0,mainli:9,major:0,make:[0,1,2,4,5,6,8,10,12,13,14,15],make_build_text:4,makedir:[4,13],manag:[4,10,14],mani:[0,6,8],manufactur:0,map:8,maria:0,mass:[0,1,2,4,5,6,8,12,13,15,18],mass_1:[5,12],mass_2:[5,12],mass_accretion_for_eld:0,mass_accretor:18,mass_donor:18,mass_evolut:12,mass_for_hestar_ia_low:0,mass_for_hestar_ia_upp:0,mass_of_pmz:0,mass_str:2,massiv:[0,2],massless:0,massless_remn:0,master:[8,12],match:[0,4,12],materi:0,math:[6,13],matplotlib:[10,12,14],matter:0,mattsson:0,mattsson_mass_loss:0,mattsson_orich_tpagbwind:0,max:[0,2,13],max_bound:[2,16],max_evolution_tim:[0,1,5,13],max_hewd_mass:0,max_model_numb:0,max_multipl:2,max_neutron_star_mass:0,max_queue_s:8,max_stellar_angmom_chang:0,max_stellar_type_1:0,max_stellar_type_2:0,max_stellar_type_3:0,max_stellar_type_4:0,max_val:2,maximum:[0,2,8,18],maximum_mass_ratio_for_instant_rlof:0,maximum_mass_ratio_for_rlof:18,maximum_mcbagb_for_degenerate_carbon_ignit:0,maximum_nuclear_burning_timestep:0,maximum_timestep:0,maximum_timestep_factor:0,maxmimum:0,maxwellian:0,mayb:12,mayor:2,mc13_pocket_multipli:0,mch:0,mcmin:0,mdonor:0,mean:[0,2,4,6,8,10,14],meant:8,measur:4,medium:0,megaparsec:2,memaddr:5,memori:[1,5,6,8,18],menv:0,merg:[0,2,4,8],merge_dict:4,merge_multipl:2,merger:0,merger_angular_momentum_factor:0,merger_mass_loss_fract:0,mesa:[10,14],mesasdk_init:[10,14],mesasdk_root:[10,14],messag:4,mestel:0,met:6,metal:[0,2,5,18],method:[0,5,6,8],meynet:0,might:[4,6,10,14],milki:0,miller:0,min:[2,13],min_bound:[2,16],min_p:2,min_per:2,min_val:2,mind:5,minimal_verbos:4,minimum:[0,2,4,8,18],minimum_co_core_mass_for_carbon_ignit:0,minimum_co_core_mass_for_neon_ignit:0,minimum_donor_menv_for_comenv:0,minimum_envelope_mass_for_third_dredgeup:0,minimum_helium_ignition_core_mass:0,minimum_mcbagb_for_nondegenerate_carbon_ignit:0,minimum_orbital_period_for_instant_rlof:0,minimum_period_for_rlof:18,minimum_separation_for_instant_rlof:0,minimum_separation_for_rlof:18,minimum_time_between_pn:0,minimum_timestep:0,mint:0,mint_data_cleanup:0,mint_dir:0,mint_disable_grid_load_warn:0,mint_kippenhahn:0,mint_kippenhahn_companion_stellar_typ:0,mint_kippenhahn_stellar_typ:0,mint_maximum_shell_mass:0,mint_metal:0,mint_minimum_shell_mass:0,mint_ms_rejuven:0,mint_nuclear_burn:0,mint_remesh:0,mint_use_zams_profil:0,mira:0,misc:10,miscellan:4,miss:[0,4,7],mix:[0,4,8],mixtur:0,mmax:2,mmin:[2,8],mnra:18,model:[0,1,5,8,13],modifi:0,modul:[0,7,8,11],modulo:8,moe:[2,4,6,10],moe_de_stefano_2017:6,moe_de_stefano_2017_multiplicity_fract:2,moe_de_stefano_2017_pdf:2,moment:[0,13,16],momenta:[0,12],momentum:0,mont:0,monte_carlo_kick:0,montecarlo:8,more:[0,1,4,5,6,8,10,12,14,16],most:4,mostli:[4,5,7,8,12,13,15],move:0,msun:[0,2,5],much:[0,4],mulitpli:8,multipl:[0,2,4,8],multiplc:0,multipli:[0,4,8],multiplicity_arrai:2,multiplicity_fraction_funct:8,multiplicity_model:8,multiplicity_modul:8,multiplicti:8,multiply_values_dict:4,multiprocess:[6,8],multithread:8,must:[0,2],my_header_lin:13,my_sss2:5,my_stellar_data:[1,5,13],myr:[0,5],n100:0,n100_z0:0,n100h:0,n100l:0,n10:0,n150:0,n1600:0,n1600c:0,n200:0,n20:0,n300c:0,n40:0,naked_helium_star_giant_branch:0,naked_helium_star_hertzsprung_gap:0,naked_main_sequence_helium_star:0,name:[1,4,5,6,7,13,15,17],natur:0,nauenberg:0,nearer:0,nebula:0,necessari:[4,5,6,13],need:[0,2,5,6,10,13,14],neg:[0,4],neither:[0,6],neleman:0,nelemans_gamma:0,nelemans_max_frac_j_chang:0,nelemans_minq:0,nelemans_n_comenv:0,nelemans_recalc_eccentr:0,nemp:0,nemp_cfe_minimum:0,nemp_nfe_minimum:0,nenamg:0,neon:0,nest:[4,6],network:0,neutrn:0,neutron:[0,13],neutron_star:0,never:0,newer:[0,2],newli:0,newopt:2,newton:0,next:4,nice:[1,6,12,13],nieuwenhuijzen:0,nieuwenhuijzen_windfac:0,nmax:2,no_thermohaline_mix:0,noecho:0,noechonow:0,noel:0,nolowq:8,nomin:0,non:[0,8],nonconservative_angmom_gamma:0,none:[0,1,2,4,5,6,7,8,18],nonzero:8,nor:0,norm:8,normal:[0,2,4,8],normalis:2,normalize_dict:2,normalize_multipl:8,note:[0,5,8],notebook:[10,14],noth:[6,8],notifi:15,nova:0,nova_faml_multipli:0,nova_irradiation_multipli:0,nova_retention_algorithm_claeys2014:0,nova_retention_algorithm_const:0,nova_retention_algorithm_hillman2015:0,nova_retention_fract:0,nova_retention_method:0,nova_timestep_accelerator_index:0,nova_timestep_accelerator_max:0,nova_timestep_accelerator_num:0,now:[0,2,4,5],nuclear:0,nuclear_mass_hash:6,nuclear_mass_list:6,nucleosynthesi:[0,4],nucleosynthesis_sourc:4,nucreacmult:0,nucsyn:10,nucsyn_angelou_lithium:0,nucsyn_gce_outflow_check:0,nucsyn_hbb:0,nucsyn_metal:0,nucsyn_network:0,nucsyn_network_error:0,nucsyn_s_process:0,nucsyn_solv:0,nucsyn_third_dredge_up:0,nugi:0,number:[0,2,4,5,6,8,10,14],numer:4,numpi:[4,5,10,14,16],obj:4,object:[0,4,6,8,9,12,13],object_hook:4,object_pairs_hook:4,obtain:0,occur:[0,18],ofcours:12,off:[0,5,13],offset:0,ohio:0,old:8,old_solut:[10,14],omega:0,onc:0,one:[0,4,5,6,8,12],onewd:0,onli:[0,4,5,6,8,18],onset:0,onto:[0,2],opac:0,opacity_algorithm:0,opacity_algorithm_ferguson_op:0,opacity_algorithm_paczynski:0,opacity_algorithm_star:0,opal:0,open:13,opm:2,opt:[2,4],option:[0,1,2,4,5,6,10,11,13,14,18],orb:6,orbit:[0,2,12,13,18],orbit_evolut:12,orbital_inclin:0,orbital_inclinationi:0,orbital_period:[0,5,13,18],orbital_period_quadrupl:0,orbital_period_tripl:0,orbital_phas:0,orbital_phase_quadrupl:0,orbital_phase_tripl:0,orbiting_object:0,orbiting_objects_close_pc_threshold:0,orbiting_objects_log:0,orbiting_objects_tides_multipli:0,orbiting_objects_wind_accretion_multipli:0,order:[4,5,6],ordereddict:4,org:[0,2],origin:[10,14],other:[0,1,2,4,7,8,10,12,13,14],otherwis:[0,6,7,8],out:[4,7,8],outcom:0,outer:0,outfil:[6,13],outfile_nam:1,outfilenam:13,output:[1,4,5,6,8,10,12,13,14,15,18],output_dir:6,output_fil:[4,7],output_filenam:6,output_lin:[4,13],outsid:[0,2],outward:0,over:[4,6,13],overflow:0,overlap:4,overrid:[2,5],overriden:13,overshoot:0,overspin_algorithm:0,overspin_bs:0,overspin_massloss:0,own:[5,6,8,10,14],oxygen:0,oxygen_neon_white_dwarf:0,pack:13,packag:[4,10,14,16],paczynski:0,page:[0,10,14],pair:[0,4],panda:[4,5,10,12,14],pane:12,panel:0,paper:0,param_nam:4,paramet:[1,2,4,6,7,8,10,12,13,15,16,18],parameter_nam:[4,6,13],parameter_value_input_typ:4,pars:[4,5,6,12,13,15],parse_binary_c_version_info:4,parse_cmdlin:6,parse_const:4,parse_float:4,parse_funct:[6,8,13,15],parse_function_hr_diagram:12,parse_function_mass:12,parse_function_orbit:12,parse_int:4,parse_output:5,part:[2,5,6,18],partial:0,particularli:0,pasp:2,pass:[5,6,8,10,12,14,15],path:[4,8,10,13,14],patho:[10,14],pdf:[0,2,10,14],pend:0,per:[0,4,6,8,13,18],percentag:0,peret:0,perform:0,perhap:0,periastron:0,pericent:18,period:[0,2,5,12,13,18],period_str:2,perl:1,pgo:0,phase:0,phasevol:0,phdi:0,photoevapor:0,php:2,physic:13,pick:12,piec:[5,6],pinnsonneault:0,pisn:0,pkg:[10,14],place:0,placehold:12,plai:[0,6],plan:8,planetari:0,plaw2:8,pleas:[0,4],plot:[0,5,12],plot_funct:[10,11],plot_hr_diagram:12,plot_hr_diagram_singl:12,plot_mass:12,plot_orbit:12,plot_system:12,plot_typ:12,pls:6,plu:0,pms:12,pms_mass_1:12,pms_mass_2:12,pn_comenv_transition_tim:0,pn_fast_wind:0,pn_fast_wind_dm_agb:0,pn_fast_wind_dm_gb:0,pn_fast_wind_mdot_agb:0,pn_fast_wind_mdot_gb:0,pn_hall_fading_time_algorithm:0,pn_hall_fading_time_algorithm_maximum:0,pn_hall_fading_time_algorithm_minimum:0,pn_resolv:0,pn_resolve_maximum_envelope_mass:0,pn_resolve_minimum_effective_temperatur:0,pn_resolve_minimum_luminos:0,pne:0,pogg:0,point:[0,2,4,10,14],poisson:[2,8],pol:0,polytrop:0,popuation_id:8,popul:[0,2,6,7,9,10,14,16],population_set:6,posit:[0,2],possibl:[0,1,2,4,7,10,14],post:0,post_ce_adaptive_menv:0,post_ce_envelope_dm_eagb:0,post_ce_envelope_dm_gb:0,post_ce_envelope_dm_tpagb:0,post_ce_objects_have_envelop:0,post_sn_orbit_bs:0,post_sn_orbit_method:0,post_sn_orbit_tt98:0,postagb_legacy_log:0,potenti:0,power:[0,2],powerlaw:2,powerlaw_const:2,powerlaw_extrapolation_q:2,ppisn:0,ppisn_farmer19:0,ppisn_non:0,ppisn_prescript:0,ppn_envelope_mass:0,pre:[0,12],pre_events_stardata:0,pre_main_sequ:0,pre_main_sequence_fit_lob:0,precis:4,precod:[6,13],predefin:2,predict:8,predictor:0,prefer:[0,6],prefix:0,preload:12,prepar:2,prepare_dict:2,prescript:0,prescrit:0,present:[2,4,6,13],preserv:0,preset:12,pressur:0,prevent:[0,8],previou:4,previous_stardata:1,primari:[1,2,6,13,18],print:[4,5,7,8,13],print_help:4,print_info:7,print_option_descript:7,print_structur:4,printf:[1,5,13],prior:0,privat:[6,7,10],prob_dict:2,probability_weighted_mass:8,probabl:[0,1,2,6,7,8,13],probdist:[6,13],problabl:12,problem:0,process:[0,4,5,6,8],profil:0,progenitor:0,program:[10,14],project:0,proper:7,properli:0,properti:[0,4,8,12],prot1:0,prot2:0,prot3:0,prot4:0,provid:[0,2,6,8,13,15],pseudorandom:0,puls:[0,18],pulsat:0,pump:0,purpos:[8,12],put:[1,4,5,6,8,12,13],py_rinterpol:[10,14],pyenv:[10,14],pysiz:4,pytest:[10,14],python3:[5,10,14],python:[4,5],q_high_extrapolation_method:8,q_interpol:2,q_low_extrapolation_method:8,qcrit_bh:0,qcrit_bs:0,qcrit_cheb:0,qcrit_chen_han_formula:0,qcrit_chen_han_t:0,qcrit_cowd:0,qcrit_degenerate_bh:0,qcrit_degenerate_cheb:0,qcrit_degenerate_cowd:0,qcrit_degenerate_eagb:0,qcrit_degenerate_gb:0,qcrit_degenerate_hegb:0,qcrit_degenerate_hehg:0,qcrit_degenerate_hem:0,qcrit_degenerate_hewd:0,qcrit_degenerate_hg:0,qcrit_degenerate_lmm:0,qcrit_degenerate_m:0,qcrit_degenerate_n:0,qcrit_degenerate_onewd:0,qcrit_degenerate_tpagb:0,qcrit_eagb:0,qcrit_gb:0,qcrit_gb_bs:0,qcrit_gb_chen_han_formula:0,qcrit_gb_chen_han_t:0,qcrit_gb_ge2015:0,qcrit_gb_hjellming_webbink:0,qcrit_gb_q_no_comenv:0,qcrit_gb_temmink2021:0,qcrit_gb_vos2018:0,qcrit_ge2015:0,qcrit_hegb:0,qcrit_hehg:0,qcrit_hem:0,qcrit_hewd:0,qcrit_hg:0,qcrit_hjellming_webbink:0,qcrit_lmm:0,qcrit_m:0,qcrit_n:0,qcrit_onewd:0,qcrit_q_no_comenv:0,qcrit_temmink2021:0,qcrit_tpagb:0,qcrit_vos2018:0,qcrits_:0,qcrits_degenerate_:0,qdata:2,qlimit:2,quad:8,quadrat:0,quadrulpl:0,quadrupl:[0,2,8],quantiti:12,queue:[6,8],quit:[0,4],r_l:18,radi:0,radiat:0,radii:[0,18],radiu:[0,1,12,13,18],radius_1:12,radius_2:12,ragb:18,raghavan2010_binary_fract:2,raghavan:2,rai:0,railton:0,rais:[0,4,8,13],ram:0,ran:8,random:[0,8],random_se:0,random_skip:0,random_system:0,random_systems_se:0,rang:[0,2,6,8,16],rapidli:0,rappaport:0,rate:[0,2],rather:[0,4,6,8,10,14],ratio:[0,2,13,18],raw:[4,5,6,8,12,15],raw_output:4,reach:0,reaction:0,read:4,real:6,realli:[0,6,7,8],reason:0,rebuild:[0,10,14],rebuilt:[10,14],recalcul:0,reciev:4,recombin:0,recommend:[1,6],recompil:[10,14],recurs:[4,6],recursive_change_key_to_float:4,recursive_change_key_to_str:4,red:0,redhat:1,redshift:2,reduc:0,reduct:8,regardless:12,region:0,reignit:0,reimer:0,reinstal:[10,14],reject:0,rejects_in_log:0,rejuven:0,rel:0,relat:0,releas:[4,10,14],remain:0,remesh:0,remnant:0,remov:[0,4,6],remove_fil:4,renorm:2,rentrop:0,repeat:[0,8],repo:[10,14],report:0,repres:8,represent:[4,6],reproduc:0,requir:[0,2,4,5,12,13,15],reset:0,reset_pref:0,reset_star:0,reset_stars_default:0,resolut:[0,6,8,13],resolv:0,reson:0,respect:[0,2],respons:6,rest:[2,6],restructuredtext:4,result:[0,1,2,4,5,6,8,10,13,14],result_arrai:2,result_dict:2,result_example_head:5,result_example_header_1:5,result_example_header_2:5,retain:0,rethink:4,return_all_info:6,return_binary_c_version_info:[4,6],return_compilation_dict:1,return_help_al:4,return_maximum_mass_ratio_for_rlof:18,return_minimum_orbit_for_rlof:18,return_population_set:6,return_version_info:4,revap_in:0,revap_out:0,revers:[0,12],reverse_tim:0,revis:[0,4],rewrit:6,rhagavan:8,rich:0,riello:0,rin:0,ring:0,risk:6,ritter:0,rk2:0,rk4:0,rlof:[0,18],rlof_angular_momentum_transfer_model:0,rlof_angular_momentum_transfer_model_bs:0,rlof_angular_momentum_transfer_model_conserv:0,rlof_eccentric_as_circular:0,rlof_entry_threshold:0,rlof_f:0,rlof_interpolation_binary_c:0,rlof_interpolation_bs:0,rlof_interpolation_method:0,rlof_mdot_factor:0,rlof_mdot_modul:0,rlof_method:0,rlof_method_adapt:0,rlof_method_adaptive2:0,rlof_method_bs:0,rlof_method_claei:0,rlof_method_ritt:0,rlof_nonconservative_gamma_donor:0,rlof_nonconservative_gamma_isotrop:0,rlof_radiation_correct:0,rlof_transition_objects_escap:0,rob:[0,2,18],robert:[10,14],roch:[0,18],roche_lob:18,rochelob:18,room:6,root:[10,14],rotat:[0,2],rotation:0,rotationally_enhanced_expon:0,rotationally_enhanced_mass_loss:0,rotationally_enhanced_massloss:0,rotationally_enhanced_massloss_angmom:0,rotationally_enhanced_massloss_langer_formula:0,rotationally_enhanced_massloss_langer_formula_and_angmom:0,rotationally_enhanced_massloss_non:0,rout:0,routin:[0,5,6,12],row:12,rring:0,rssd:2,rst:[4,7],rsun:12,rubric:6,run:[0,1,4,5,6,8,10,13,14,15],run_example_binari:5,run_example_binary_with_custom_log:5,run_example_binary_with_run_system:5,run_example_binary_with_writing_logfil:5,run_example_custom_logging_autogener:5,run_system:[5,12,15],run_system_wrapp:[5,10,11],run_zero_probability_system:8,runtim:[1,8],russel:0,rzam:18,s_option:8,sai:0,said:0,same:[0,4,5,8,10,13,14],sampl:[0,2,6,16],sample_valu:2,sampler:10,sana12:[2,13],sana:2,save:[0,1,2,13],save_pre_events_stardata:0,scalo:2,scanf:0,scene:5,scheme:0,schneider:0,schroeder:0,script:[3,5,10,14],sdb:0,sdist:[10,14],sdo:0,search:10,second:[0,2,4,12],secondari:[2,18],section:[2,4,9,10,14],see:[0,5,6,10,12,14],seed:0,seem:[10,12,14],seen:4,segment:16,seitenzahl2013_model:0,seitenzahl:0,select:[0,4,5],selected_head:[4,5],selector:0,self:[6,8,13],semi:0,sent:0,sentenc:1,sep:[2,5,6,13,18],sep_max:13,sep_min:13,separ:[0,2,4,5,12,13,18],separation_quadrupl:0,separation_tripl:0,separta:0,seper:[6,7,13],sequenc:0,seri:0,serial:4,serializ:[4,6],serv:[4,5,13],server:6,set:[0,1,2,4,6,7,8,10,12,13,14],set_moe_distefano_set:6,set_opt:2,settingsfil:4,setup:[10,14,15],sever:[5,7,8,12,15],sfh:2,shara:0,share:[1,5,8,15],shared_lib_filenam:5,shell:0,shorten:0,should:[0,1,2,5,6,7,8,10,12,13,14,15],shouldn:[0,4],show:[0,3,8,12],show_plot:12,show_stellar_typ:12,shown:[0,12],siess:0,sigma:2,silent:4,sill:0,simpl:13,simpli:0,simul:[0,1,13],simulation_:6,sinc:[4,12,13],singl:[0,2,6,8,12,13],sit:0,size:[4,6,8],skip:[0,4,8,10,14],skipkei:4,sliced_df:5,slope:2,slow:0,slower:0,slurm:[6,8,9],slurm_grid:6,small:0,small_envelope_method:0,small_envelope_method_bs:0,small_envelope_method_miller_bertolami:0,smaller:0,sn_impulse_liu2015:0,sn_impulse_non:0,sn_impulse_wheeler1975:0,sn_kick_companion_a:0,sn_kick_companion_aic_bh:0,sn_kick_companion_bh_bh:0,sn_kick_companion_bh_n:0,sn_kick_companion_ecap:0,sn_kick_companion_grb_collapsar:0,sn_kick_companion_hestaria:0,sn_kick_companion_ia_chand:0,sn_kick_companion_ia_chand_co:0,sn_kick_companion_ia_eld:0,sn_kick_companion_ia_h:0,sn_kick_companion_ia_he_co:0,sn_kick_companion_ia_hybrid_hecowd:0,sn_kick_companion_ia_hybrid_hecowd_sublumin:0,sn_kick_companion_ibc:0,sn_kick_companion_ii:0,sn_kick_companion_iia:0,sn_kick_companion_ns_n:0,sn_kick_companion_phdi:0,sn_kick_companion_pisn:0,sn_kick_companion_ppisn:0,sn_kick_companion_tz:0,sn_kick_companion_wdkick:0,sn_kick_dispersion_aic_bh:0,sn_kick_dispersion_bh_bh:0,sn_kick_dispersion_bh_n:0,sn_kick_dispersion_ecap:0,sn_kick_dispersion_grb_collapsar:0,sn_kick_dispersion_ia_hybrid_hecowd:0,sn_kick_dispersion_ia_hybrid_hecowd_sublumin:0,sn_kick_dispersion_ibc:0,sn_kick_dispersion_ii:0,sn_kick_dispersion_ns_n:0,sn_kick_dispersion_phdi:0,sn_kick_dispersion_pisn:0,sn_kick_dispersion_ppisn:0,sn_kick_dispersion_tz:0,sn_kick_distribution_aic_bh:0,sn_kick_distribution_bh_bh:0,sn_kick_distribution_bh_n:0,sn_kick_distribution_ecap:0,sn_kick_distribution_grb_collapsar:0,sn_kick_distribution_ia_hybrid_hecowd:0,sn_kick_distribution_ia_hybrid_hecowd_sublumin:0,sn_kick_distribution_ibc:0,sn_kick_distribution_ii:0,sn_kick_distribution_ns_n:0,sn_kick_distribution_phdi:0,sn_kick_distribution_pisn:0,sn_kick_distribution_ppisn:0,sn_kick_distribution_tz:0,sneia:0,snia:0,solar:[0,18],solarmass:2,solver:0,solver_forward_eul:0,solver_predictor_corrector:0,solver_rk2:0,solver_rk4:0,some:[0,1,2,5,6,8,10,12,13,14],someth:[0,6],soon:16,sort:4,sort_kei:4,sourc:[1,2,3,4,5,6,7,8,11,12,13,15,16,18],source_file_filenam:8,source_list:6,sourcecod:[10,14],sourcefile_nam:1,space:[0,6,16],spacing_funct:[10,11],spacingfunc:[6,13],spacingfunct:6,special:0,specif:[0,4,12],specifi:[0,8],spectral:2,speed:[0,8],speedtest:0,spent:4,spheric:0,spin:0,spinrat:0,split:[0,8,13],splitpoint:0,spread:6,sqrt:0,src:[10,14],st1:5,st2:5,stabil:0,stabl:0,stancliff:0,standard:[0,2],star:[1,2,5,6,8,10,12,13,18],star_with_no_mass:0,stardata:[0,1,5,13],stardata_dump_filenam:0,stardata_load_filenam:0,start:[0,1,4,5,6,7,8],start_tim:0,state:0,statement:[1,5],statist:0,statu:[0,1],stderr:0,stdout:4,steadi:0,stefan:12,stellar:[0,2,8,12,17],stellar_structure_algorithm:0,stellar_structure_algorithm_external_funct:0,stellar_structure_algorithm_mint:0,stellar_structure_algorithm_modified_bs:0,stellar_structure_algorithm_non:0,stellar_typ:[1,10,11,12,13],stellar_type_1:[0,12],stellar_type_2:[0,12],stellar_type_3:0,stellar_type_4:0,stellar_type_dict:17,stellar_type_dict_short:17,step:[6,12,16],stepsiz:6,stick:8,stiff:0,still:[1,8],stop:[0,4],stopfil:0,storag:0,store:[0,2,4,6,8,10,14,18],store_memaddr:18,str:[1,4,6,7,12],straight:6,straniero:0,streamhandl:6,strength:0,strict:4,string:[0,1,4,6,7,8,12,15],strip:0,stronger:0,struct:0,structur:[0,4,8,12],stuff:[4,8,12,13],style:0,sub:[0,4],subdict:4,subdirectori:4,subject:0,sublumin:0,submit:10,subroutin:9,subsequ:0,subtract:4,subtract_dict:4,succe:0,suggest:[0,10,14],suit:[10,14],sum:0,sundial:0,supercrit:0,supernova:[0,8],superwind:0,superwind_mira_switchon:0,supress:13,sure:[2,6,8,10,12,14,15],surfac:0,surviv:0,survivor:0,switcher:0,symmetr:0,synchron:0,synonym:0,synthesi:[8,10,14],sys:5,system:[0,5,6,8,10,12,13,14,15],system_gener:6,system_queue_fil:6,t_re:5,tabl:[0,2],take:[0,2,4,5,6,8,13,15],taken:[0,4],tar:[10,14],target:[1,7],task:[0,2,4,5,6,7,9,12,15,16,18],tauri:0,tbse:0,teff:[0,2],teff_1:12,teff_2:12,tell:4,temp_dir:[4,13],temperatur:[0,2,12],tempfil:5,termin:[1,10,14],test:[0,4,6,8,10,14],test_log:5,test_pop:13,text:[4,7],than:[0,2,4,8,10,14],thats:[2,13],thei:[0,2,4,6,8,12],thelog:0,them:[2,4,5,6,13],themselv:[2,4],theres:6,thermal:[0,2,18],thermally_pulsing_asymptotic_giant_branch:0,thermohalin:0,thesi:0,thi:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,18],thick:0,thick_disc_end_ag:0,thick_disc_logg_max:0,thick_disc_logg_min:0,thick_disc_start_ag:0,thin:0,thing:[0,2,4,5,6,7,13,15],think:[0,4,6],third:[0,2],third_dup:0,third_dup_multipli:0,thorn:0,those:[4,5,6,10,13,14],thread:8,thread_id:8,three:[0,2],three_part_powerlaw:[2,13],threshold:[0,4,8],through:[6,12,15],throughout:6,tidal:0,tidal_strength_factor:0,tide:0,tides_convective_damp:0,tides_hurley2002:0,tides_zahn1989:0,time:[0,1,2,4,5,6,8,10,12,13,14],timescal:0,timestamp:8,timestep:0,timestep_limit:0,timestep_log:0,timestep_modul:0,timestep_multipli:0,timestep_solver_factor:0,tinslei:2,titl:7,tmp:[0,4,10,14],tmp_dir:[6,8],tmp_tabl:2,todo:[0,1,2,4,6,7,8,12,13,15,16,18],toler:0,too:[0,4,8,10,14,15],topic:0,torqu:0,total:[0,2,4,6,8,12],tout:[0,18],tpagb:0,tpagb_reimers_eta:0,tpagb_wind_beasor_etal_2020:0,tpagb_wind_bloeck:0,tpagb_wind_goldman_etal_2017:0,tpagb_wind_mattsson:0,tpagb_wind_reim:0,tpagb_wind_rob_cwind:0,tpagb_wind_van_loon:0,tpagb_wind_vw93_karaka:0,tpagb_wind_vw93_karakas_carbon_star:0,tpagb_wind_vw93_orig:0,tpagb_wind_vw93_orig_carbon_star:0,tpagbwind:0,tpagbwindfac:0,traceback:4,track:[8,12],trade:0,transfer:0,transform:[0,4],transit:0,treat:0,trigger:0,tripl:[0,2,8],tru:4,truli:0,tupl:1,turn:[0,4,13],two:[0,4,17,18],txt:[5,6,15],type:[0,1,2,4,6,7,8,12,16,17,18],type_ia_mch_supernova_algorithm:0,type_ia_sub_mch_supernova_algorithm:0,typic:0,ubvri:0,ugriv:0,uncom:6,under:16,undergo:0,understand:6,undescrib:7,uniform:2,union:[2,4,6,16,18],uniqu:[4,6,8],unit:[0,18],unittest:18,univari:0,unknown:15,unless:[1,6,8],unload:6,unrecogn:[10,14],unsign:0,unstabl:0,until:[0,2,4,6],unus:[0,8],updat:[2,4,6,10,13,14],update_dict:4,upper:[0,2,16],usag:0,use:[0,2,4,5,6,8,9,10,12,13,14,15],use_astropy_valu:12,use_datadir:[6,13],use_fixed_timestep_:0,use_periastron_roche_radiu:0,use_tabular_intershell_abundances_karakas_2012:0,used:[0,1,2,4,6,8,12,13],useful:[0,4,6,8,10,14,15,18],useful_func:[10,11],user:[1,2,4,6,7,8,15],userinput:4,uses:[0,5,8,13],using:[0,1,3,5,6,10,13,14],usr:5,usual:[0,2,8],util:[1,2,4,5,6,7,12,13,15,16,18],val:2,valid:[0,2,4],valu:[0,1,2,4,5,6,7,8,12,13],valueerror:13,valuerang:[6,13],van:0,vandenheuvel_log:0,vari:0,variabl:[0,4,6,8,13],variant:0,variou:0,vassiliadi:0,veloc:[0,2],verbos:[1,2,4,8,10,13,14],verbose_print:4,veri:[0,5,6,13,16],versa:18,version:[0,4,6,10,14],version_info:4,version_info_str:4,version_onli:0,via:[6,8,12,13],vice:18,vink:0,virtual:[10,14],virtualenviron:[10,14],viscos:0,viscou:0,visit:10,volum:0,vrot1:0,vrot2:0,vrot3:0,vrot4:0,vrot_breakup:0,vrot_bs:0,vrot_non_rot:0,vrot_sync:0,vw93:0,vw93_eagb_wind_spe:0,vw93_mira_shift:0,vw93_multipli:0,vw93_tpagb_wind_spe:0,vwind:0,vwind_beta:0,vwind_multipli:0,wai:[0,3,4,6,8,12,13],wang:0,want:[0,2,4,5,6,7,8,12,13],warmup_cpu:0,warn:[0,6],wave:0,wd_accretion_rate_new_giant_envelope_lower_limit_helium_donor:0,wd_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor:0,wd_accretion_rate_new_giant_envelope_lower_limit_other_donor:0,wd_accretion_rate_novae_upper_limit_helium_donor:0,wd_accretion_rate_novae_upper_limit_hydrogen_donor:0,wd_accretion_rate_novae_upper_limit_other_donor:0,wd_kick:0,wd_kick_at_every_puls:0,wd_kick_at_given_puls:0,wd_kick_direct:0,wd_kick_end_agb:0,wd_kick_first_rlof:0,wd_kick_pulse_numb:0,wd_kick_when:0,wd_sigma:0,wdwd_merger_algorithm:0,wdwd_merger_algorithm_bs:0,wdwd_merger_algorithm_chen2016:0,wdwd_merger_algorithm_perets2019:0,weight:[0,8],well:[0,4,8,10,14],were:4,what:[0,1,2,4,5,6,7,8,10,13,14,15],whatev:[5,6,10,14],wheeler:0,when:[0,1,2,4,5,6,7,8,10,13,14,15],whenev:[10,14],where:[0,1,2,4,6,7,8,10,14],whether:[0,2,4,6,7,8,12,18],which:[0,1,2,3,4,5,6,7,8,10,13,14,15,18],whichev:8,white:0,white_dwarf_cooling_carrasco2014:0,white_dwarf_cooling_mestel:0,white_dwarf_cooling_mestel_modifi:0,white_dwarf_cooling_model:0,white_dwarf_radius_carrasco2014:0,white_dwarf_radius_model:0,white_dwarf_radius_mu:0,white_dwarf_radius_nauenberg1972:0,whole:[6,8],width:0,wind:0,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,wind_disc_angmom_fract:0,wind_disc_mass_fract:0,wind_djorb_fac:0,wind_gas_to_dust_ratio:0,wind_lbv_luminosity_lower_limit:0,wind_mass_loss:0,wind_multiplier_:0,wind_nieuwenhuijzen_luminosity_lower_limit:0,wind_type_multiplier_:0,within:[0,4,6,10,14],without:[2,6,8],won:0,wood:0,work:[0,4,5,10,12,13,14],would:[0,4,12],wouldnt:6,wr_wind:0,wr_wind_bs:0,wr_wind_eldridg:0,wr_wind_fac:0,wr_wind_maeder_meynet:0,wr_wind_nugis_lam:0,wrap:[1,13],wrapper:[4,5,18],write:[1,4,5,6,7,8,13,15],write_binary_c_calls_to_fil:6,write_binary_c_parameter_descriptions_to_rst_fil:4,write_grid_options_to_rst_fil:7,written:[5,6,7,8,13,15],wrlof_mass_transf:0,wrlof_method:0,wrlof_non:0,wrlof_q_depend:0,wrlof_quadrat:0,wrong:[10,14],wrt:1,wrwindfac:0,wtts2:0,wtts_log:0,www:[0,2],year:[0,2],yet:[0,4,5,6,8,12,13],yield:0,you:[0,1,4,5,6,7,8,10,12,13,14,18],young:0,your:[5,8,10,14],yourself:[12,13],zahn:0,zam:[0,2,15,18],zams_collis:18,zams_mass:13,zero:[0,1,8],zero_ag:13,zone:0,zoom:0,zoomfac_multiplier_decreas:0,zoomfac_multiplier_increas:0,zsolar:2,zytkow:0},titles:["Binary_c parameters","custom_logging_functions module","distribution_functions module","Examples","functions module","Examples","grid_class module","Grid options and descriptions","Population grid code options","hpc_functions module","Welcome to binary_c-python\u2019s documentation!","Binarycpython code","plot_functions module","Example of population script","Python module for binary_c","run_system_wrapper module","spacing_functions module","stellar_types module","useful_funcs module"],titleterms:{"function":4,"public":8,after:[10,14],algorithm:0,binari:0,binary_c:[0,10,14],binarycpython:11,build:[10,14],code:[8,11],custom_logging_funct:1,descript:7,distefano:8,distribution_funct:2,document:[10,14],environ:[10,14],exampl:[3,5,10,13,14],faq:[10,14],from:[10,14],grid:[7,8],grid_class:6,hpc_function:9,indic:10,input:0,instal:[10,14],instruct:[10,14],issu:[10,14],misc:0,modul:[1,2,4,6,9,10,12,14,15,16,17,18],moe:8,note:[10,14],nucsyn:0,option:[7,8],output:0,paramet:0,pip:[10,14],plot_funct:12,popul:[8,13],privat:8,python:[10,14],requir:[10,14],run_system_wrapp:15,sampler:8,script:13,section:0,sourc:[10,14],spacing_funct:16,star:0,stellar_typ:17,tabl:10,usag:[10,14],useful_func:18,variabl:[10,14],via:[10,14],welcom:10}})
\ No newline at end of file
+Search.setIndex({docnames:["binary_c_parameters","custom_logging_functions","distribution_functions","examples","functions","general_examples","grid","grid_options_defaults","grid_options_descriptions","hpc_functions","index","modules","notebook_population","notebooks","plot_functions","population_example","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","examples.rst","functions.rst","general_examples.rst","grid.rst","grid_options_defaults.rst","grid_options_descriptions.rst","hpc_functions.rst","index.rst","modules.rst","notebook_population.ipynb","notebooks.rst","plot_functions.rst","population_example.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:[6,0,0,"-"],grid_options_defaults:[7,0,0,"-"],hpc_functions:[9,0,0,"-"],plot_functions:[14,0,0,"-"],run_system_wrapper:[17,0,0,"-"],spacing_functions:[18,0,0,"-"],stellar_types:[19,0,0,"-"],useful_funcs:[20,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,""],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:[6,2,1,""]},"binarycpython.utils.grid.Population":{Moe_di_Stefano_2017:[6,3,1,""],add_grid_variable:[6,3,1,""],evolve:[6,3,1,""],evolve_population:[6,3,1,""],evolve_single:[6,3,1,""],export_all_info:[6,3,1,""],format_ensemble_results:[6,3,1,""],get_stream_logger:[6,3,1,""],last_grid_variable:[6,3,1,""],parse_cmdline:[6,3,1,""],return_all_info:[6,3,1,""],return_population_settings:[6,3,1,""],set:[6,3,1,""],set_moe_di_stefano_settings:[6,3,1,""],system_queue_filler:[6,3,1,""],write_binary_c_calls_to_file:[6,3,1,""]},"binarycpython.utils.grid_options_defaults":{grid_options_description_checker:[7,1,1,""],grid_options_help:[7,1,1,""],print_option_descriptions:[7,1,1,""],write_grid_options_to_rst_file:[7,1,1,""]},"binarycpython.utils.plot_functions":{color_by_index:[14,1,1,""],dummy:[14,1,1,""],parse_function_hr_diagram:[14,1,1,""],parse_function_masses:[14,1,1,""],parse_function_orbit:[14,1,1,""],plot_HR_diagram:[14,1,1,""],plot_masses:[14,1,1,""],plot_orbit:[14,1,1,""],plot_system:[14,1,1,""]},"binarycpython.utils.run_system_wrapper":{run_system:[17,1,1,""]},"binarycpython.utils.spacing_functions":{"const":[18,1,1,""]},"binarycpython.utils.useful_funcs":{calc_period_from_sep:[20,1,1,""],calc_sep_from_period:[20,1,1,""],maximum_mass_ratio_for_RLOF:[20,1,1,""],minimum_period_for_RLOF:[20,1,1,""],minimum_separation_for_RLOF:[20,1,1,""],ragb:[20,1,1,""],roche_lobe:[20,1,1,""],rzams:[20,1,1,""],zams_collision:[20,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:{"0001":20,"0007":2,"001":0,"002":5,"054":2,"0820":0,"08msun":0,"0902":0,"100":[0,2],"1000":[5,8],"100000000000":5,"115":2,"125":0,"12500":0,"12e":[1,12,15],"13e3":0,"1403":2,"150":[12,15],"15000":[0,5,12,15],"15msun":2,"190":0,"1951":0,"1972":0,"1975":0,"197x":0,"1980":2,"1983":20,"1986":[0,2],"1989":0,"1991":2,"1993":0,"1996":20,"1998":[0,2],"1999":0,"1ckzg0p9":[10,16],"1e2":0,"1e9":0,"200":0,"2000":0,"2001":2,"2002":0,"2003":[0,2],"2004":0,"2005":0,"2009":0,"2010":[0,2,8],"2012":[0,2],"2013":0,"2014":[0,2],"2015":0,"2016":0,"2017":[0,8],"2018":[0,1],"2019":0,"2020":0,"2021":0,"20210727":0,"257":20,"25msun":0,"281":20,"2969346":2,"2msun":0,"3000":0,"30e4":0,"33526":12,"3msun":2,"4000":0,"42msun":0,"44msun":0,"45000000080":[12,15],"4530":5,"45msun":0,"4e3":0,"500":0,"5msun":0,"600000":0,"6068":0,"625":0,"6944":0,"6e1":2,"6e5":0,"6msun":0,"72498e":12,"7619":0,"763":2,"773586668293e":12,"78125":0,"795":2,"80msol":2,"8955b541d":0,"boolean":[0,4,6,8,14,20],"break":0,"case":[0,4,8],"catch":[4,5,8],"char":8,"class":[4,6],"const":[2,6,12,15,18],"default":[0,1,2,4,5,6,7,8,12,15,17],"export":[4,6,12,15],"float":[0,2,4,18,20],"function":[0,1,2,3,5,6,7,8,9,10,11,12,14,15,16,17,18,20],"import":[4,5,6,12,15],"int":[0,1,2,4,6,7,8,18,20],"long":[0,4,6,8,19],"new":[0,2,4,6],"null":[0,4],"paczy\u0144ski":0,"public":[7,10],"return":[1,2,4,6,7,8,14,17,18,20],"short":[0,19],"super":0,"switch":0,"throw":[10,16],"true":[0,4,6,7,8,12,14,15],"try":[0,6,10,16],"while":0,Adding:12,And:[7,10,16,20],For:[0,4,10,14,16],Gas:0,Its:8,NOT:[0,6,17],Not:[8,12,15],One:0,Pms:14,That:0,The:[0,1,2,4,5,6,8,10,12,13,14,15,16,17],Then:[4,10,16],There:[2,5,6,7,8,14],These:[4,8,14],Use:[0,5,6],Used:[0,8,14],Useful:[0,6,7],Uses:[0,18],Was:0,Will:[0,4,6,15,17],With:7,__enter__:4,__exit__:4,_actually_evolve_system:8,_binary_c_bind:[4,5,20],_binary_c_config_execut:8,_binary_c_dir:8,_binary_c_execut:8,_binary_c_shared_librari:8,_commandline_input:8,_count:8,_custom_logging_shared_library_fil:8,_end_time_evolut:8,_errors_exceed:8,_errors_found:8,_evolution_type_opt:8,_failed_count:8,_failed_prob:8,_failed_systems_error_cod:8,_generate_grid_cod:8,_grid_vari:8,_loaded_ms_data:8,_main_pid:8,_population_id:8,_probtot:8,_process_run_population_grid:8,_repeat:8,_set:[6,12,15],_set_ms_grid:8,_start_time_evolut:8,_store_memaddr:8,_system_gener:8,_total_mass_run:8,_total_probability_weighted_mass_run:8,_total_starcount:8,_zero_prob_stars_skip:8,abat:0,abbrevi:19,about:[4,6,7,12,15,20],abov:[0,2,4,5,6],absolut:0,abund:0,acceler:0,accept:[4,12,15],access:[2,8],accord:[0,2],accordingli:[12,15],account:[0,8],accret:0,accretion_limit_dynamical_multipli:0,accretion_limit_eddington_lmms_multipli:0,accretion_limit_eddington_steady_multipli:0,accretion_limit_eddington_wd_to_remnant_multipli:0,accretion_limit_thermal_multipli:0,accretor:[0,20],act:[0,8,12,15],activ:[0,10,16],actual:[0,4,6,8,10,14,16],adam:0,adapt:0,add:[2,4,6,8,12,14,15,18,20],add_grid_vari:[6,12,15],added:4,address:[1,8,20],admittedli:14,adress:[5,20],affect:0,after:[0,6,8],ag89:0,again:[4,6,8,10,16],against:14,agb:0,agb_3dup_algorithm:0,agb_core_algorithm:0,agb_core_algorithm_default:0,agb_core_algorithm_hurlei:0,agb_core_algorithm_karaka:0,agb_luminosity_algorithm:0,agb_luminosity_algorithm_default:0,agb_luminosity_algorithm_hurlei:0,agb_luminosity_algorithm_karaka:0,agb_radius_algorithm:0,agb_radius_algorithm_default:0,agb_radius_algorithm_hurlei:0,agb_radius_algorithm_karaka:0,agb_third_dredge_up_algorithm_default:0,agb_third_dredge_up_algorithm_hurlei:0,agb_third_dredge_up_algorithm_karaka:0,agb_third_dredge_up_algorithm_stancliff:0,age:0,aging:0,albedo:0,algorithm:10,algothim:0,all:[0,1,2,4,5,6,7,8,10,11,12,14,15,16,17],all_info:6,allow:[0,2,4,5,8],allow_nan:4,along:[0,7,8],alot:[12,15],alpha:0,alpha_c:0,alphacb:0,alreadi:6,also:[0,4,5,6,7,10,16,20],altern:[0,8],alwai:[0,2,8],amanda:0,amax:2,amin:2,amount:[0,4,6,7,8,12,15,18],amt_cor:[6,8,12,15],analys:17,analyt:6,andrew:[10,16],andronov:0,angelou_lithium_cheb_decay_tim:0,angelou_lithium_cheb_massfrac:0,angelou_lithium_cheb_tim:0,angelou_lithium_decay_funct:0,angelou_lithium_decay_tim:0,angelou_lithium_eagb_decay_tim:0,angelou_lithium_eagb_massfrac:0,angelou_lithium_eagb_tim:0,angelou_lithium_gb_decay_tim:0,angelou_lithium_gb_massfrac:0,angelou_lithium_gb_tim:0,angelou_lithium_hg_decay_tim:0,angelou_lithium_hg_massfrac:0,angelou_lithium_hg_tim:0,angelou_lithium_lmms_decay_tim:0,angelou_lithium_lmms_massfrac:0,angelou_lithium_lmms_tim:0,angelou_lithium_ms_decay_tim:0,angelou_lithium_ms_massfrac:0,angelou_lithium_ms_tim:0,angelou_lithium_tpagb_decay_tim:0,angelou_lithium_tpagb_massfrac:0,angelou_lithium_tpagb_tim:0,angelou_lithium_vrot_trigg:0,angelou_lithium_vrotfrac_trigg:0,angular:[0,14],ani:[0,2,4,6,10,16],anoth:0,ansi:0,anyth:[0,8],anywai:6,anywher:6,api:[0,4],api_log_filename_prefix:0,append:[1,4],appli:0,approach:5,appropri:[0,8],approxim:0,aren:[2,8],arenou2010_binary_fract:2,arg:[2,4,14],arg_dict:4,argopt:0,argpair:4,argstr:5,argument:[0,2,4,5,6,8,12,15,17],argument_of_periastron:0,argument_of_periastron_quadrupl:0,argument_of_periastron_tripl:0,around:[0,5],arrai:[2,4,5,8],artifici:0,artificial_accretion_end_tim:0,artificial_accretion_ignor:0,artificial_accretion_start_tim:0,artificial_angular_momentum_accretion_r:0,artificial_mass_accretion_r:0,artificial_orbital_angular_momentum_accretion_r:0,arxiv:[0,2],asarrai:5,ask:[0,20],asplund:0,assign:6,assum:[0,14],ast871:0,astronomi:0,astropi:[10,14,16],atom:4,attempt:[4,6],auto:[1,11],autogen_c_logging_cod:[1,5],autogener:5,automat:[0,1,5,7,10,16],avaibl:[10,16],avail:[0,4,8,14],awai:0,axi:[0,14],b_1:0,b_2:0,b_3:0,b_4:0,b_inclination1:0,b_inclination2:0,b_inclination3:0,b_inclination4:0,back:[0,4],background:5,backward:0,bagb:0,barn:0,base:[0,2,4,5,6,10,14,16,20],base_filenam:[6,12,15],basic:[5,6],batchmod:0,beasor:0,becaus:[0,2,5,6,8,10,16],becom:[0,1,2,4],been:[0,6,8],befor:[0,6,8,10,12,15,16],behaviour:[4,17],behind:5,belczynski:0,below:[0,8,15],berro:0,bertolami:0,best:[6,8,10,16],beta:0,beta_reverse_nova:0,beta_reverse_novae_geometri:0,better:[0,4,6],between:[0,2,18],bewar:6,bh_belczynski:0,bh_fryer12_delai:0,bh_fryer12_rapid:0,bh_hurley2002:0,bh_prescript:0,bh_spera2015:0,big:[0,8],bin:[0,5,10,16],binari:[2,5,6,8,10,12,14,15,16,20],binary_c2:[10,16],binary_c:[1,2,4,5,6,8,12,14,15,17],binary_c_cal:6,binary_c_default:[12,15],binary_c_inline_config:1,binary_c_log_cod:[1,5],binary_c_macro:0,binary_c_output:4,binary_c_paramet:[0,12,15],binary_c_python:[4,6,12],binary_c_task_:0,binary_c_write_log_cod:1,binary_grid:0,binary_star:20,binaryc:[1,4,17],binaryc_config:1,binaryc_json_seri:4,binarycdecod:4,binarycencod:4,binarycpython:[1,2,4,5,6,7,10,12,14,15,16,17,18,20],bind:0,birth:0,bit:2,bivari:0,black:0,black_hol:0,bloecker:0,blog:1,boltzman:14,boltzmann:0,bondi:0,bondi_hoyle_accretion_factor:0,bool:[4,6,7,14],born:0,bosswissam:4,both:[0,4],bottom:0,bound:[2,18],boundari:2,brake:0,branch:[0,4],branch_david:0,branchpoint:6,breakup:0,broken:0,bse:[0,2],bse_opt:[6,12,15],bsf:0,buffer:0,build:[0,1,4],build_q_tabl:2,built:[0,1,4,10,16],burn:0,busso:0,bye:0,c13_eff:0,c_auto_log:[8,15],c_log:0,c_logging_cod:[8,12,15],calc_e_integr:2,calc_p_integr:2,calc_period_from_sep:20,calc_sep_from_period:[12,15,20],calc_total_probden:2,calcul:[0,2,4,6,8,20],calculate_constants_three_part_powerlaw:2,call:[0,1,4,6,8,12,14,15,17],call_binary_c_config:4,can:[0,1,2,4,5,6,8,10,12,14,15,16,17],cannot:6,canon:8,cap:0,capsul:[1,4],captur:[0,4],carbon:0,carbon_oxygen_white_dwarf:0,carlo:[0,8],carrasco:0,carri:0,cast:[4,5],catchtim:4,categoris:4,caught:4,caus:20,cbdisc:0,cbdisc_albedo:0,cbdisc_alpha:0,cbdisc_eccentricity_pumping_dermin:0,cbdisc_eccentricity_pumping_method:0,cbdisc_eccentricity_pumping_non:0,cbdisc_end_evolution_after_disc:0,cbdisc_fail_ring_inside_separ:0,cbdisc_gamma:0,cbdisc_init_djdm:0,cbdisc_init_dm:0,cbdisc_inner_edge_strip:0,cbdisc_inner_edge_stripping_timescal:0,cbdisc_kappa:0,cbdisc_mass_loss_constant_r:0,cbdisc_mass_loss_fuv_multipli:0,cbdisc_mass_loss_inner_l2_cross_multipli:0,cbdisc_mass_loss_inner_viscous_accretion_method:0,cbdisc_mass_loss_inner_viscous_accretion_method_equ:0,cbdisc_mass_loss_inner_viscous_accretion_method_gerosa_2015:0,cbdisc_mass_loss_inner_viscous_accretion_method_non:0,cbdisc_mass_loss_inner_viscous_accretion_method_young_clarke_2015:0,cbdisc_mass_loss_inner_viscous_angular_momentum_multipli:0,cbdisc_mass_loss_inner_viscous_multipli:0,cbdisc_mass_loss_ism_pressur:0,cbdisc_mass_loss_ism_ram_pressure_multipli:0,cbdisc_mass_loss_xray_multipli:0,cbdisc_max_lifetim:0,cbdisc_minimum_evaporation_timescal:0,cbdisc_minimum_fr:0,cbdisc_minimum_luminos:0,cbdisc_minimum_mass:0,cbdisc_no_wind_if_cbdisc:0,cbdisc_outer_edge_strip:0,cbdisc_outer_edge_stripping_timescal:0,cbdisc_resonance_damp:0,cbdisc_resonance_multipli:0,cbdisc_torquef:0,cbdisc_viscous_l2_coupl:0,cbdisc_viscous_photoevaporative_coupl:0,cbdisc_viscous_photoevaporative_coupling_inst:0,cbdisc_viscous_photoevaporative_coupling_non:0,cbdisc_viscous_photoevaporative_coupling_visc:0,cee:0,cemp:0,cemp_cfe_minimum:0,center:6,central_object:0,certain:[3,8,10,16],cf_amanda_log:0,cflag:[10,16],chabrier:2,chandrasekhar:0,chandrasekhar_mass:0,chang:[0,1,2,4,6,7,8,10,15,16],chapter:[0,3,8,11],cheb:0,check:[0,2,4,6,7,12,15,20],check_circular:4,chemic:0,chen:0,child:4,choic:[0,2,6,14],choos:[0,5,14],chosen:6,circular:0,circumbinari:0,circumstanti:0,claei:0,clark:0,clean:[1,6,10,16],clean_up_custom_logging_fil:6,clear:4,clock:4,clone:[10,16],close:0,cloud:0,cls:4,cluster:9,cmdline:6,code:[0,1,3,5,6,7,10,12,14,15,16,17],collaps:0,collapsar:0,collect:20,collid:20,color:14,color_by_index:14,colour:0,colour_log:0,column:[5,12,14,15],com:[1,4],combin:[1,4,6,8],combine_ensemble_with_thread_join:8,come:[2,10,16,18],comenv_bs:0,comenv_disc_angmom_fract:0,comenv_disc_mass_fract:0,comenv_ejection_spin_method:0,comenv_ejection_spin_method_do_noth:0,comenv_ejection_spin_method_sychron:0,comenv_ejection_spin_method_synchron:0,comenv_merger_spin_method:0,comenv_merger_spin_method_breakup:0,comenv_merger_spin_method_conserve_angmom:0,comenv_merger_spin_method_conserve_omega:0,comenv_merger_spin_method_specif:0,comenv_ms_accret:0,comenv_ms_accretion_fract:0,comenv_ms_accretion_mass:0,comenv_nandez2016:0,comenv_nelemans_tout:0,comenv_ns_accret:0,comenv_ns_accretion_fract:0,comenv_ns_accretion_mass:0,comenv_post_eccentr:0,comenv_prescript:0,comenv_splitmass:0,comenv_undef:0,command:[0,1,6,8,10,16],commandlin:[12,15],commit:4,common:[0,12,15],companion:[0,12,15],compar:[0,8],compil:[1,5,10,12,15,16],compile_shared_lib:1,complain:[12,15],complex:[5,6,8,14],compon:[4,14],comput:[0,9],condit:[5,6,12,15],condor:[6,8,9],condor_grid:6,config:[1,4,8,10,16],config_fil:1,configur:[2,5,6,12,15],conserv:0,consid:[0,1,2,4,6,8,14],constant:[0,2,14],construct:[0,1,5],contain:[0,1,2,3,4,6,7,8,9,10,11,14,15,16,17,18,19],content:[4,10,13],context:4,continu:6,control:0,convect:0,converg:0,convert:[2,4,6],convert_byt:4,cool:0,copi:[0,6,20],core:[0,6,8,14],core_helium_burn:0,core_mass:0,correct:[2,6,14,20],correctli:[5,10,12,14,15,16],correspond:14,corretor:0,cosmic:2,cosmic_sfh_madau_dickinson2014:2,could:[0,4],count:[4,8],count_keys_recurs:4,counter:8,coupl:0,cours:14,coverag:[10,16],cowd:0,cpu:0,crap_paramet:0,creat:[2,4,6,12,15],create_and_load_logging_funct:[1,5],create_arg_str:4,create_hdf5:[4,12,15],critic:0,cross:0,ctype:1,cuntz:0,current:[0,4,10,16],custom:[0,1,4,5,6,8,12,14,15,17],custom_log:[5,6,8],custom_logging_cod:[1,5,17],custom_logging_func_memaddr:[5,8],custom_logging_funct:[5,8,10,11,12,15],custom_logging_info:6,custom_opt:[6,12,15],custom_sort_dict:4,custom_tmp_dir:1,customis:14,cut:5,cvode:0,dai:[0,2,5,12,15,20],damp:0,dat:[0,4,12,15],data:[0,4,5,6,8,12,15,17],data_dict:2,data_dir:[4,6,8,12,15],datadir:6,datafram:[5,14],dataset:4,date:6,david:[0,10,16],david_logging_funct:0,dd7:0,deactiv:0,deal:4,death:0,debug:[0,8],decai:0,decid:[0,4,5],decod:4,decreas:0,deeper:6,def:[5,12,15],default_to_metal:0,defaultdict:4,defer:0,defin:[0,1,2,6,14],definit:[1,20],degener:0,degre:0,delta_mcmin:0,den:0,densiti:2,depend:[0,2,10,14,16],deprec:0,dermin:0,describ:[0,2,5,8],descript:[0,2,4,8,10,11],design:[6,14],desir:0,destruct:6,detail:[0,4],detect:0,determin:[0,6,20],deton:0,dev:0,develop:1,deviat:2,dewi:0,dex:0,df2:5,diagnost:8,diagram:[0,14],dickonson:2,dict2:4,dict:[1,2,4,6,7,12,15,19],dict_1:4,dict_2:4,dictionari:[1,2,4,6,7,8,14,19],did:[4,10,16],differ:[0,4,6,10,14,16],dimmer:0,dir:[10,16],direct:[0,6],directli:[4,5,8],director:8,directori:[0,4,6,8,10,12,15,16],disabl:0,disable_debug:0,disable_end_log:0,disable_ev:0,disc:0,disc_legacy_log:0,disc_log2d:0,disc_log:0,disc_log_directori:0,disc_log_dt:0,disc_log_level_non:0,disc_log_level_norm:0,disc_log_level_normal_first_disc_onli:0,disc_log_level_subtimestep:0,disc_log_level_subtimestep_first_disc_onli:0,disc_n_monte_carlo_guess:0,disc_stripping_timescale_infinit:0,disc_stripping_timescale_inst:0,disc_stripping_timescale_orbit:0,disc_stripping_timescale_visc:0,disc_timestep_factor:0,discs_circumbinary_from_comenv:0,discs_circumbinary_from_wind:0,disk:[0,6],dispers:0,displai:0,dist:[10,16],distefano:2,distribut:[0,2,6,9],distribution_funct:[10,11],divid:9,dlnm1:[6,12,15],dlog10per:[12,15],dlogp:2,do_dry_run:8,doc:[4,7,10,16],doc_fetch:2,docstr:[10,14,16],document:[4,7,8,11],doe:[0,2,4,6,8,20],doesn:[6,8],doesnt:[5,7],doing:[0,1,6,7,10,16],don:[2,4,8],done:[0,4,5,6,10,12,15,16],donm:[12,15],donor:[0,20],donor_limit_dynamical_multipli:0,donor_limit_envelope_multipli:0,donor_limit_thermal_multipli:0,donor_rate_algorithm_bs:0,donor_rate_algorithm_claeys2014:0,dont:5,dphasevol:[6,12,15],dr2:0,dr3:0,drai:0,dredg:0,dry:8,dstep:2,dtfac:0,dtlimit:4,dtm:[1,12,15],dtype:5,due:[10,16],dummi:[2,14],dump:[0,4],dumpvers:0,duquennoi:2,duquennoy1991:2,dure:0,dust:0,dwarf:0,dynam:0,e2_hurley_2002:0,e2_izzard:0,e2_mint:0,e2_prescript:0,each:[0,2,4,6,8],eagb:0,eagb_wind_beasor_etal_2020:0,eagb_wind_bs:0,eagb_wind_goldman_etal_2017:0,eagbwind:0,eagbwindfac:0,earli:0,early_asymptotic_giant_branch:0,easi:4,easier:[4,5],ecc2:2,ecc3:2,ecc:[2,5,6],eccentr:[0,2,5,12,14,15,20],eccentric_rlof_model:0,eccentricity_quadrupl:0,eccentricity_tripl:0,echo:0,eddington:0,edg:[0,6],edu:0,effect:[0,2,8],effective_metal:0,effici:0,egg:[10,16],eggleton:[0,20],either:[0,4,5,6,8,10,16,17],eject:0,eld:0,eldridg:0,electon:0,electron:0,element:[0,1,4,8,14],email:4,emp:0,emp_feh_maximum:0,emp_logg_maximum:0,emp_minimum_ag:0,empti:[4,7],enabl:0,encod:4,encount:8,end:[0,2,4,8,12,15],end_index:2,energi:0,enhanc:0,enlarg:0,enough:2,ensembl:[0,4,6,8],ensemble_def:0,ensemble_dictionari:6,ensemble_dt:0,ensemble_factor_in_probability_weighted_mass:8,ensemble_filter_:0,ensemble_filters_off:0,ensemble_json:4,ensemble_legacy_ensembl:0,ensemble_list:6,ensemble_logdt:0,ensemble_logtim:0,ensemble_macro:0,ensemble_output_:8,ensemble_startlogtim:0,ensure_ascii:4,enter:[0,10,16],enthalpi:0,entir:5,entri:[4,6],env:[10,14,16],envelop:0,equal:[4,12,15],equat:0,equation_of_state_algorithm:0,equation_of_state_paczynski:0,equatori:0,equival:8,errno:[10,16],error:[0,4,8,10,16],esa:2,escap:0,escape_fract:0,escape_veloc:0,eta:0,etal:0,etc:[0,4,6,9,10,12,14,15,16,17],euler:0,evalu:[2,6,20],evan:0,evapor:0,evaporate_escaped_orbiting_object:0,event:0,everi:[0,10,16],everyth:[6,8,12,15],everytim:[10,16],evid:0,evolut:[0,1,5,6,8,14],evolution_split:0,evolution_splitting_maxdepth:0,evolution_splitting_sn_eccentricity_threshold:0,evolution_splitting_sn_n:0,evolution_typ:8,evolutionari:0,evolv:[0,6,8,12,15],evolve_popul:[6,12,15],evolve_singl:[6,12,15],exact:[1,4,8],exactli:0,exampl:[1,2,4,6,12,17],example_head:4,example_header_1:5,example_header_2:5,example_log:17,example_log_co:1,example_parse_output:[4,5],example_pop:[12,15],example_pop_set:12,example_python_population_result:[12,15],exce:[0,8],except:[4,6,7,8,14],execut:[0,6,8,10,12,15,16],exist:[0,6,7,12,15],exist_ok:[4,12,15],exit:[0,4],exp:[6,12,15],expand:17,expect:[10,16],experiment:[0,4],explain:4,explicitli:[0,1],explod:0,explos:0,expoenti:0,expon:0,export_all_info:[6,12,15],express:0,extend:[10,16],extern:0,extra:[0,6,8,17],extra_text:7,extract:[4,12,15],extract_ensemble_json_from_str:4,extrapol:[2,8],fabian:0,fabian_imf_log:0,fabian_imf_log_tim:0,fabian_imf_log_timestep:0,factor:[0,2,4,8],fade:0,fail:[0,4,8,10,16],fail_sil:4,failed_system:8,failed_system_log:8,failed_systems_threshold:8,failur:0,fals:[0,4,6,8,12,14,15],fancy_parsing_funct:17,far:0,farmer:0,fase:[12,15],fast:0,feed:8,ferguson:0,few:0,field:0,fig:[0,2],figur:[8,14],file:[0,1,4,6,7,8,9,10,12,14,15,16,17],file_log:0,filehandl:7,filenam:[0,1,4,5,6,8,12,15,17],filenotfounderror:[10,16],filepath:1,fill:6,fill_data:2,filter:[0,4],filter_arg_dict:4,filter_valu:4,fin:0,find:[4,6,8,10,16],finish:[4,14],first:[0,2,4,6,10,16,20],first_giant_branch:0,fishlock:0,fit:[0,2,4,6,20],fix:[0,2,4,6,14],flag:[0,1,4,8],flash:0,flat:[2,8],flatsect:[2,12,15],flaw:6,float64:5,float_overflow_check:0,flto:[10,16],fold:2,follow:[0,2,4,8,10,14,16],forc:[0,10,16],force_circularization_on_rlof:0,force_corotation_of_primary_and_orbit:0,form:[0,4,6,7],formal:0,format:[0,2,4,5,6,12,15],format_ensemble_result:6,formula:0,forward:0,found:[2,10,16],four:0,fpic:1,fraction:[0,2,8],frequenc:0,friction:0,fring:0,from:[0,2,4,5,6,8,12,14,15,20],from_binary_c_config:1,from_dict:5,ftz:[10,16],full:[4,6,8],full_path:4,fulli:[12,15],func_memaddr:5,further:2,fuv:0,gaia:[0,2],gaia_colour_transform_method:0,gaia_conversion_ubvri_bivariate_jordi2010:0,gaia_conversion_ubvri_riello2020:0,gaia_conversion_ubvri_univariate_evans2018:0,gaia_conversion_ubvri_univariate_jordi2010:0,gaia_conversion_ugriz_bivariate_jordi2010:0,gaia_conversion_ugriz_riello2020:0,gaia_conversion_ugriz_univariate_evans2018:0,gaia_conversion_ugriz_univariate_jordi2010:0,gaia_l_binwidth:0,gaia_teff_binwidth:0,gain:8,galact:0,gallino:0,gamma:0,gap:0,garcia:0,gauss:0,gaussian:2,gaussian_func:2,gaussian_normalizing_const:2,gb_reimers_eta:0,gb_wind_beasor_etal_2020:0,gb_wind_goldman_etal_2017:0,gb_wind_reim:0,gb_wind_schroeder_cuntz_2005:0,gbwind:0,gbwindfac:0,gcc:[1,10,16],gce:0,gener:[0,1,2,4,5,6,7,8,12,14,15],general_info:4,generalis:2,geometr:0,gerosa:0,get:[0,2,4,5,6,7,10,12,15,16,17,20],get_arg_kei:4,get_default:4,get_help:[4,12,15],get_help_al:[4,6,12,15],get_help_sup:4,get_integration_constant_q:2,get_max_multipl:2,get_moe_di_stefano_dataset:4,get_siz:4,get_stream_logg:6,gettempdir:5,giant:0,giant_branch:0,git:[0,4],git_branch:4,git_build:4,github:4,gitlab:10,give:[0,2,4,5,20],given:[0,1,2,4,5,6,8,17,20],global:[0,2],global_dict:2,gmax:2,gmin:2,goe:[0,4,6,14],gogo:0,going:[10,16],goldman:0,gonna:2,good:[0,8,12,15,20],gov:0,gravit:0,gravitational_radiation_bs:0,gravitational_radiation_bse_when_no_rlof:0,gravitational_radiation_landau_lifshitz:0,gravitational_radiation_landau_lifshitz_when_no_rlof:0,gravitational_radiation_model:0,gravitational_radiation_modulator_:0,gravitational_radiation_modulator_j:0,gravitational_radiation_non:0,grb:0,great:0,greater:0,grevess:0,grid:[0,4,6,10,11,12,15],grid_class:[10,11],grid_cod:6,grid_opt:[6,8,12,15],grid_options_default:7,grid_options_defaults_dict:7,grid_options_descript:7,grid_options_description_check:7,grid_options_help:7,grid_vari:[8,12,15],grid_variable_numb:6,gridcode_filenam:8,gridtyp:6,group:4,gsl:[10,16],gsl_dir:[10,16],guess:[0,2],h5py:[10,16],hachisu:0,hachisu_disk_wind:0,hachisu_ignore_qcrit:0,hachisu_qcrit:0,hack:7,had:6,half:0,hall:0,handi:0,handl:[0,4,6,8,15,17,20],handle_ensemble_string_to_json:4,happen:0,has:[0,1,4,5,6,8],have:[0,2,4,5,6,7,8,10,12,14,15,16],hbb:0,hbbtfac:0,hdf5:[4,12,15],hdf5file:4,header:[1,4,5,12,15],headerlin:[12,15],headlin:8,hegb:0,hehg:0,height:[2,12,15],helium:0,helium_flash_mass_loss:0,helium_white_dwarf:0,help:[0,4,7,12,15],help_al:0,hem:0,henc:0,hendrik:[10,16],here:[1,4,5,6,8,12,14,15],hertzsprung:0,hertzsprung_gap:0,hertzstrpung:0,heuvel:0,hewd:0,hewd_hewd_ignition_mass:0,hex:8,high:[0,2],higher:[0,2,4,8,10,16],highest:6,his:2,histori:2,hold:8,hole:0,homogen:0,hopefulli:0,hot:0,how:[0,4,5,6,8],howev:0,hoyl:0,hpc:[6,9],hpc_function:[10,11],hr_diagram:14,hrd:0,hrdiag:0,hrdiag_output:0,html:[10,16],http:[0,1,2,4],hurlei:0,hut:0,hybrid:0,hydro:0,hydrogen:0,ibc:0,idea:14,idum:0,ignit:0,ignor:[0,5,6,8,10,16],iia:0,imf:[0,2],imf_chabrier2003:2,imf_scalo1986:2,imf_scalo1998:2,imf_tinsley1980:2,immedi:0,implement:[0,6,8],impli:0,impos:[12,15],improv:2,inclin:0,inclination1:0,inclination2:0,inclination3:0,inclination4:0,inclini:0,incliniation_quadrupl:0,incliniation_tripl:0,includ:[0,1,2,4,5,6,10,14,16],include_binary_c_default:[6,12,15],include_binary_c_help_al:[6,12,15],include_binary_c_version_info:[6,12,15],include_default:6,include_popul:[12,15],include_population_set:6,incom:0,increas:0,inde:0,indent:4,index:[0,2,10],indic:[0,2],individual_nova:0,induc:0,inertia:0,info:[4,6,10,12,14,15,16],inform:[0,1,4,6,7,12,14,15],init:6,init_abund:0,init_abund_dex:0,init_abund_mult:0,init_abunds_onli:0,initi:[0,2,6],initial_abundance_hash:6,initial_abundance_mix:0,initial_abunds_onli:0,inlin:5,inner:0,input:[1,2,4,6,8,10,14,20],input_dict:4,insert:6,insid:0,inspect:[4,12,14,15],inspect_dict:4,inspir:[1,5,14,20],instabl:0,instanc:[4,12,15],instant:0,instantli:0,instead:[0,4,8],integ:[0,6,8,20],integr:2,integrals_str:2,interact:[0,7],interfac:[4,10,16],interfer:[10,16],intern:[0,8],internal_buff:0,internal_buffering_off:0,internal_buffering_print:0,internal_buffering_stor:0,interpol:[2,6],interpolate_in_mass_izzard2012:2,interpolator_nam:2,intershel:0,interstellar:0,intger:0,intro:0,invers:20,involv:0,inward:0,is_capsul:4,isn:[4,6],isnt:[12,15],isotop:[0,4],isotope_hash:6,isotope_list:6,item:1,iter:4,its:[0,4,6,7,10,14,16,17],itself:[4,8,10,16],iwamoto:0,izzard2012_period_distribut:2,izzard:[0,10,16],jager:0,jaschek:2,jeff:[10,16],jia:0,job_queu:6,john:0,join:[12,15],jordi:0,json:[4,6,8,12,15],jsondecod:4,jsonencod:4,jul:0,jupyt:[10,16],just:[0,2,4,5,6,8,20],kap:0,kappa:0,kaps_rentrop:0,karaka:0,keep:6,kei:[1,2,4,6,7,8,14],kelvin:0,keplerian:0,keyword:[14,17],kick:[0,8],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,kind:0,kippenhahn:0,know:[0,1,6,7],known:[0,2,6,12,15,17],kroupa2001:[2,6],kroupa:2,ktg93:2,kwarg:[6,14,17],lambda:0,lambda_c:0,lambda_ce_dewi_tauri:0,lambda_ce_klencki_2020:0,lambda_ce_polytrop:0,lambda_ce_wang_2016:0,lambda_enthalpi:0,lambda_ionis:0,lambda_min:0,lambda_mult:0,lambda_multipli:0,lambda_v:2,lamer:0,landau:0,langer:0,larger:0,last:[2,6],last_grid_vari:6,late:5,latter:0,law:2,law_const:2,lbv:0,ld_library_path:[10,16],lead:[0,20],least:[10,16],leav:0,left:0,legaci:0,legacy_yield:0,len:[12,15],lengthen:0,less:[0,1,2],let:6,level:[1,4,6],li7:0,lib:[5,10,16],libbinary_c:8,libgsl:[10,16],libmemo:[10,16],librari:[0,1,5,6,8,12,17],library_path:[10,16],librinterpol:[10,16],lies:0,lifetim:0,lifshitz:0,like:[0,1,4,5,6,8,10,14,16,18],limit:[0,14],line:[1,4,5,6,8,10,14,16],linear2:8,linear:[0,2,8],linear_extrapolation_q:2,linearli:[6,18],linker:1,linspac:18,list:[0,1,2,4,8,17,18],list_arg:0,list_of_sub_kei:2,lit:0,lithium:0,lithium_gb_post_1dup:0,lithium_gb_post_heflash:0,lithium_hbb_multipli:0,lithium_t:0,littleton:0,liu:0,llnl:0,lnm1:[6,12,15],load:[0,1,4,5,6,8,12,14,15],load_logfil:4,lobe:[0,20],local:2,locat:[0,2,8,10,16],lodder:0,log10:[0,2,12,15],log10m1:8,log10p:2,log10per:[12,15],log10pmin:2,log:[0,1,2,4,5,6,8,10,12,14,15,16,17,20],log_arg:8,log_args_dir:8,log_fil:8,log_filenam:[0,5,17],log_runtime_system:8,logarithm:2,logensembletim:0,logfil:[4,10,16],logg:0,logger:6,logging_dict:1,logging_lin:5,logic:[1,6,8],logmass:2,logp:2,logper:2,logperiod:2,long_spectral_typ:2,longer:0,longnam:[6,12,15],look:[1,4,10,16],lookback:0,loon:0,loop:6,loos:14,lose:0,loss:0,lost:0,lot:[4,8,17],low:[0,2,12,15],low_mass_m:0,low_mass_main_sequ:0,lower:[0,2,6,18],lsoda:0,lsun:[0,14],lugaro:0,luminos:[0,14],luminosity_1:14,luminosity_2:14,lynnett:0,m_1:[0,5,6,12,15,17],m_2:[0,5,12,15],m_3:0,m_4:0,m_max:[2,6],m_min:6,m_re:5,maccretor:0,machin:[8,10,16],macro:[0,4],madau:2,maeder:0,magellan:0,magnet:0,magnetic_braking_algorithm:0,magnetic_braking_algorithm_andronov_2003:0,magnetic_braking_algorithm_barnes_2010:0,magnetic_braking_algorithm_hurley_2002:0,magnetic_braking_algorithm_rappaport_1983:0,magnetic_braking_factor:0,magnetic_braking_gamma:0,magnitud:4,mai:0,main:[0,1,8,10,16],main_sequ:0,mainli:9,major:0,make:[0,1,2,4,5,6,8,10,12,14,15,16,17],make_build_text:4,makedir:[4,12,15],manag:[4,10,16],mani:[0,6,8],manufactur:0,map:8,maria:0,mass:[0,1,2,4,5,6,8,12,14,15,17,20],mass_1:[5,14],mass_2:[5,14],mass_accretion_for_eld:0,mass_accretor:20,mass_donor:20,mass_evolut:14,mass_for_hestar_ia_low:0,mass_for_hestar_ia_upp:0,mass_of_pmz:0,mass_str:2,massiv:[0,2],massless:0,massless_remn:0,master:[8,14],match:[0,4,14],materi:0,math:[6,12,15],matplotlib:[10,14,16],matter:0,mattsson:0,mattsson_mass_loss:0,mattsson_orich_tpagbwind:0,max:[0,2,12,15],max_bound:[2,18],max_evolution_tim:[0,1,5,12,15],max_hewd_mass:0,max_model_numb:0,max_multipl:2,max_neutron_star_mass:0,max_queue_s:8,max_stellar_angmom_chang:0,max_stellar_type_1:0,max_stellar_type_2:0,max_stellar_type_3:0,max_stellar_type_4:0,max_val:2,maximum:[0,2,8,20],maximum_mass_ratio_for_instant_rlof:0,maximum_mass_ratio_for_rlof:20,maximum_mcbagb_for_degenerate_carbon_ignit:0,maximum_nuclear_burning_timestep:0,maximum_timestep:0,maximum_timestep_factor:0,maxmimum:0,maxwellian:0,mayb:14,mayor:2,mc13_pocket_multipli:0,mch:0,mcmin:0,mdonor:0,mean:[0,2,4,6,8,10,16],meant:8,measur:4,medium:0,mega:2,memaddr:5,memori:[1,5,6,8,20],menv:0,merg:[0,2,4,8],merge_dict:4,merge_multipl:2,merger:0,merger_angular_momentum_factor:0,merger_mass_loss_fract:0,mesa:[10,16],mesasdk_init:[10,16],mesasdk_root:[10,16],messag:4,mestel:0,met:6,metal:[0,2,5,20],method:[0,5,6,8],meynet:0,might:[4,6,10,16],milki:0,miller:0,min:[2,12,15],min_bound:[2,18],min_p:2,min_per:2,min_val:2,mind:5,minimal_verbos:4,minimum:[0,2,4,8,20],minimum_co_core_mass_for_carbon_ignit:0,minimum_co_core_mass_for_neon_ignit:0,minimum_donor_menv_for_comenv:0,minimum_envelope_mass_for_third_dredgeup:0,minimum_helium_ignition_core_mass:0,minimum_mcbagb_for_nondegenerate_carbon_ignit:0,minimum_orbital_period_for_instant_rlof:0,minimum_period_for_rlof:20,minimum_separation_for_instant_rlof:0,minimum_separation_for_rlof:20,minimum_time_between_pn:0,minimum_timestep:0,mint:0,mint_data_cleanup:0,mint_dir:0,mint_disable_grid_load_warn:0,mint_kippenhahn:0,mint_kippenhahn_companion_stellar_typ:0,mint_kippenhahn_stellar_typ:0,mint_maximum_shell_mass:0,mint_metal:0,mint_minimum_shell_mass:0,mint_ms_rejuven:0,mint_nuclear_burn:0,mint_remesh:0,mint_use_zams_profil:0,mira:0,misc:10,miscellan:4,miss:[0,4,7],mix:[0,4,8],mixtur:0,mmax:2,mmin:[2,8],mnra:20,model:[0,1,5,8,12,15],modifi:0,modul:[0,7,8,11],modulo:8,moe:[2,4,6,10],moe_di_stefano_2017:6,moe_di_stefano_2017_multiplicity_fract:2,moe_di_stefano_2017_pdf:2,moment:[0,12,15,18],momenta:[0,14],momentum:0,mont:[0,8],monte_carlo_kick:0,more:[0,1,4,5,6,8,10,14,16,18],most:4,mostli:[4,5,7,8,12,14,15,17],move:0,msun:[0,2,5],much:[0,4],multi:8,multipl:[0,2,4,8],multiplc:0,multipli:[0,4,8],multiplicity_arrai:2,multiplicity_fraction_funct:8,multiplicity_model:8,multiplicity_modul:8,multiply_values_dict:4,multiprocess:[6,8],must:[0,2],my_header_lin:15,my_sss2:5,my_stellar_data:[1,5,12,15],myr:[0,5],n100:0,n100_z0:0,n100h:0,n100l:0,n10:0,n150:0,n1600:0,n1600c:0,n200:0,n20:0,n300c:0,n40:0,naked_helium_star_giant_branch:0,naked_helium_star_hertzsprung_gap:0,naked_main_sequence_helium_star:0,name:[1,4,5,6,7,12,15,17,19],natur:0,nauenberg:0,nearer:0,nebula:0,necessari:[4,5,6,12,15],need:[0,2,5,6,10,12,15,16],neg:[0,4],neither:[0,6],neleman:0,nelemans_gamma:0,nelemans_max_frac_j_chang:0,nelemans_minq:0,nelemans_n_comenv:0,nelemans_recalc_eccentr:0,nemp:0,nemp_cfe_minimum:0,nemp_nfe_minimum:0,nenamg:0,neon:0,nest:[4,6],network:0,neutrn:0,neutron:[0,12,15],neutron_star:0,never:0,newer:[0,2],newli:0,newopt:2,newton:0,next:4,nice:[1,6,14,15],nieuwenhuijzen:0,nieuwenhuijzen_windfac:0,nmax:2,no_thermohaline_mix:0,noecho:0,noechonow:0,noel:0,nolowq:8,nomin:0,non:[0,8],nonconservative_angmom_gamma:0,none:[0,1,2,4,5,6,7,8,12,20],nonzero:8,nor:0,norm:8,normal:[0,4],normalis:[2,8],normalize_dict:2,normalize_multipl:8,note:[0,5,8],notebook:[10,16],noth:[6,8],notifi:17,nova:0,nova_faml_multipli:0,nova_irradiation_multipli:0,nova_retention_algorithm_claeys2014:0,nova_retention_algorithm_const:0,nova_retention_algorithm_hillman2015:0,nova_retention_fract:0,nova_retention_method:0,nova_timestep_accelerator_index:0,nova_timestep_accelerator_max:0,nova_timestep_accelerator_num:0,now:[0,2,4,5],nuclear:0,nuclear_mass_hash:6,nuclear_mass_list:6,nucleosynthesi:[0,4],nucleosynthesis_sourc:4,nucreacmult:0,nucsyn:10,nucsyn_angelou_lithium:0,nucsyn_gce_outflow_check:0,nucsyn_hbb:0,nucsyn_metal:0,nucsyn_network:0,nucsyn_network_error:0,nucsyn_s_process:0,nucsyn_solv:0,nucsyn_third_dredge_up:0,nugi:0,number:[0,2,4,5,6,8,10,16],numer:4,numpi:[4,5,10,16,18],obj:4,object:[0,4,6,8,9,12,14,15],object_hook:4,object_pairs_hook:4,obtain:0,occur:[0,20],off:[0,5,12,15],offset:0,ohio:0,old:8,old_solut:[10,16],omega:0,onc:0,one:[0,4,5,6,8,14],onewd:0,onli:[0,4,5,6,8,20],onset:0,onto:[0,2],opac:0,opacity_algorithm:0,opacity_algorithm_ferguson_op:0,opacity_algorithm_paczynski:0,opacity_algorithm_star:0,opal:0,open:[12,15],opm:2,opt:[2,4],option:[0,1,2,4,5,6,10,11,12,15,16,20],orb:6,orbit:[0,2,12,14,15,20],orbit_evolut:14,orbital_inclin:0,orbital_inclinationi:0,orbital_period:[0,5,12,15,20],orbital_period_quadrupl:0,orbital_period_tripl:0,orbital_phas:0,orbital_phase_quadrupl:0,orbital_phase_tripl:0,orbiting_object:0,orbiting_objects_close_pc_threshold:0,orbiting_objects_log:0,orbiting_objects_tides_multipli:0,orbiting_objects_wind_accretion_multipli:0,order:[4,5,6],ordereddict:4,org:[0,2],origin:[10,16],other:[0,1,2,4,7,8,10,12,14,15,16],otherwis:[0,6,7,8],out:[4,7,8],outcom:0,outer:0,outfil:[6,12,15],outfile_nam:1,outfilenam:[12,15],output:[1,4,5,6,8,10,12,14,15,16,17,20],output_dir:6,output_fil:[4,7],output_filenam:6,output_lin:[4,12,15],outsid:[0,2],outward:0,over:[4,6,12,15],overflow:0,overlap:4,overrid:[2,5],overriden:[12,15],overshoot:0,overspin_algorithm:0,overspin_bs:0,overspin_massloss:0,own:[5,6,8,10,16],oxygen:0,oxygen_neon_white_dwarf:0,pack:[12,15],packag:[4,10,16,18],paczynski:0,page:[0,10,13,16],pair:[0,4],panda:[4,5,10,14,16],pane:14,panel:0,paper:0,param_nam:4,paramet:[1,2,4,6,7,8,10,12,14,15,17,18,20],parameter_nam:[4,6,12,15],parameter_value_input_typ:4,pars:[4,5,6,12,14,15,17],parse_binary_c_version_info:4,parse_cmdlin:6,parse_const:4,parse_float:4,parse_funct:[6,8,12,15,17],parse_function_hr_diagram:14,parse_function_mass:14,parse_function_orbit:14,parse_int:4,parse_output:5,parsec:2,part:[2,5,6,20],partial:0,particularli:0,pasp:2,pass:[5,6,8,10,14,16,17],path:[4,8,10,12,15,16],patho:[10,16],pdf:[0,2,10,16],pend:0,per:[0,4,6,8,12,15,20],percentag:0,peret:0,perform:0,perhap:0,periastron:0,pericent:20,period:[0,2,5,12,14,15,20],period_str:2,perl:1,pgo:0,phase:0,phasevol:0,phdi:0,photoevapor:0,php:2,physic:[12,15],pick:14,piec:[5,6],pinnsonneault:0,pisn:0,pkg:[10,16],place:0,placehold:14,plai:[0,6],plan:8,planetari:0,plaw2:8,pleas:[0,4],plot:[0,5,14],plot_funct:[10,11],plot_hr_diagram:14,plot_hr_diagram_singl:14,plot_mass:14,plot_orbit:14,plot_system:14,plot_typ:14,pls:6,plu:0,pms:14,pms_mass_1:14,pms_mass_2:14,pn_comenv_transition_tim:0,pn_fast_wind:0,pn_fast_wind_dm_agb:0,pn_fast_wind_dm_gb:0,pn_fast_wind_mdot_agb:0,pn_fast_wind_mdot_gb:0,pn_hall_fading_time_algorithm:0,pn_hall_fading_time_algorithm_maximum:0,pn_hall_fading_time_algorithm_minimum:0,pn_resolv:0,pn_resolve_maximum_envelope_mass:0,pn_resolve_minimum_effective_temperatur:0,pn_resolve_minimum_luminos:0,pne:0,pogg:0,point:[0,2,4,6,10,16],poisson:[2,8],pol:0,polytrop:0,popul:[0,2,6,7,9,10,12,16,18],population_id:8,population_set:6,posit:[0,2],possibl:[0,1,2,4,7,10,16],post:0,post_ce_adaptive_menv:0,post_ce_envelope_dm_eagb:0,post_ce_envelope_dm_gb:0,post_ce_envelope_dm_tpagb:0,post_ce_objects_have_envelop:0,post_sn_orbit_bs:0,post_sn_orbit_method:0,post_sn_orbit_tt98:0,postagb_legacy_log:0,potenti:0,power:[0,2],powerlaw:2,powerlaw_const:2,powerlaw_extrapolation_q:2,ppisn:0,ppisn_farmer19:0,ppisn_non:0,ppisn_prescript:0,ppn_envelope_mass:0,pre:[0,14],pre_events_stardata:0,pre_main_sequ:0,pre_main_sequence_fit_lob:0,precis:4,precod:[6,12,15],predefin:2,predict:8,predictor:0,prefer:[0,6],prefix:0,prepar:2,prepare_dict:2,prescript:0,prescrit:0,present:[2,4,6,12,15],preserv:0,preset:14,pressur:0,prevent:[0,8],previou:4,previous_stardata:1,primari:[1,2,6,12,15,20],print:[4,5,7,8,12,15],print_help:4,print_info:7,print_option_descript:7,print_structur:4,printf:[1,5,12,15],prior:0,privat:[6,7,10],prob_dict:2,probability_weighted_mass:8,probabl:[0,1,2,6,7,8,12,14,15],probdist:[6,12,15],problem:0,process:[0,4,5,6,8],profil:0,progenitor:0,program:[10,16],project:0,proper:7,properli:0,properti:[0,4,8,14],prot1:0,prot2:0,prot3:0,prot4:0,provid:[0,2,6,8,12,15,17],pseudorandom:0,puls:[0,20],pulsat:0,pump:0,purpos:[8,14],put:[1,4,5,6,8,12,14,15],py_rinterpol:[10,16],pyenv:[10,16],pysiz:4,pytest:[10,16],python3:[5,10,16],python:[4,5],q_high_extrapolation_method:8,q_interpol:2,q_low_extrapolation_method:8,qcrit_bh:0,qcrit_bs:0,qcrit_cheb:0,qcrit_chen_han_formula:0,qcrit_chen_han_t:0,qcrit_cowd:0,qcrit_degenerate_bh:0,qcrit_degenerate_cheb:0,qcrit_degenerate_cowd:0,qcrit_degenerate_eagb:0,qcrit_degenerate_gb:0,qcrit_degenerate_hegb:0,qcrit_degenerate_hehg:0,qcrit_degenerate_hem:0,qcrit_degenerate_hewd:0,qcrit_degenerate_hg:0,qcrit_degenerate_lmm:0,qcrit_degenerate_m:0,qcrit_degenerate_n:0,qcrit_degenerate_onewd:0,qcrit_degenerate_tpagb:0,qcrit_eagb:0,qcrit_gb:0,qcrit_gb_bs:0,qcrit_gb_chen_han_formula:0,qcrit_gb_chen_han_t:0,qcrit_gb_ge2015:0,qcrit_gb_hjellming_webbink:0,qcrit_gb_q_no_comenv:0,qcrit_gb_temmink2021:0,qcrit_gb_vos2018:0,qcrit_ge2015:0,qcrit_hegb:0,qcrit_hehg:0,qcrit_hem:0,qcrit_hewd:0,qcrit_hg:0,qcrit_hjellming_webbink:0,qcrit_lmm:0,qcrit_m:0,qcrit_n:0,qcrit_onewd:0,qcrit_q_no_comenv:0,qcrit_temmink2021:0,qcrit_tpagb:0,qcrit_vos2018:0,qcrits_:0,qcrits_degenerate_:0,qdata:2,qlimit:2,quad:8,quadrat:0,quadrulpl:0,quadrupl:[0,2,8],quantiti:14,queue:[6,8],quit:[0,4],r_l:20,radi:0,radiat:0,radii:[0,20],radiu:[0,1,12,14,15,20],radius_1:14,radius_2:14,ragb:20,raghavan2010_binary_fract:2,raghavan:2,rai:0,railton:0,rais:[0,4,8,12,15],ram:0,ran:8,random:[0,8],random_se:0,random_skip:0,random_system:0,random_systems_se:0,rang:[0,2,6,8,18],rapidli:0,rappaport:0,rate:[0,2],rather:[0,4,6,8,10,16],ratio:[0,2,12,15,20],raw:[4,5,6,8,14,17],raw_output:4,reach:0,reaction:0,read:4,real:6,realli:[0,6,7,8],reason:0,rebuild:[0,10,16],rebuilt:[10,16],recalcul:0,receiv:4,recombin:0,recommend:[1,6],recompil:[10,16],recurs:[4,6],recursive_change_key_to_float:4,recursive_change_key_to_str:4,red:0,redhat:1,redshift:2,reduc:0,reduct:8,regardless:14,region:0,reignit:0,reimer:0,reinstal:[10,16],reject:0,rejects_in_log:0,rejuven:0,rel:0,relat:0,releas:[4,10,16],remain:0,remesh:0,remnant:0,remov:[0,4,6],remove_fil:4,renormalis:2,rentrop:0,repeat:[0,8],repo:[10,16],report:0,repres:8,represent:[4,6],reproduc:0,requir:[0,2,4,5,14,15,17],reset:0,reset_pref:0,reset_star:0,reset_stars_default:0,resolut:[0,6,8,12,15],resolv:0,reson:0,respect:[0,2],respons:6,rest:[2,6],restructuredtext:4,result:[0,1,2,4,5,6,8,10,12,15,16],result_arrai:2,result_dict:2,result_example_head:5,result_example_header_1:5,result_example_header_2:5,retain:0,rethink:4,return_all_info:6,return_binary_c_version_info:[4,6],return_compilation_dict:1,return_help_al:4,return_maximum_mass_ratio_for_rlof:20,return_minimum_orbit_for_rlof:20,return_population_set:6,return_version_info:4,revap_in:0,revap_out:0,revers:[0,14],reverse_tim:0,revis:[0,4],rewrit:6,rhagavan:8,rich:0,riello:0,rin:0,ring:0,risk:6,ritter:0,rk2:0,rk4:0,rlof:[0,20],rlof_angular_momentum_transfer_model:0,rlof_angular_momentum_transfer_model_bs:0,rlof_angular_momentum_transfer_model_conserv:0,rlof_eccentric_as_circular:0,rlof_entry_threshold:0,rlof_f:0,rlof_interpolation_binary_c:0,rlof_interpolation_bs:0,rlof_interpolation_method:0,rlof_mdot_factor:0,rlof_mdot_modul:0,rlof_method:0,rlof_method_adapt:0,rlof_method_adaptive2:0,rlof_method_bs:0,rlof_method_claei:0,rlof_method_ritt:0,rlof_nonconservative_gamma_donor:0,rlof_nonconservative_gamma_isotrop:0,rlof_radiation_correct:0,rlof_transition_objects_escap:0,rob:[0,2,20],robert:[10,16],roch:[0,20],roche_lob:20,rochelob:20,room:6,root:[10,16],rotat:[0,2],rotation:0,rotationally_enhanced_expon:0,rotationally_enhanced_mass_loss:0,rotationally_enhanced_massloss:0,rotationally_enhanced_massloss_angmom:0,rotationally_enhanced_massloss_langer_formula:0,rotationally_enhanced_massloss_langer_formula_and_angmom:0,rotationally_enhanced_massloss_non:0,rout:0,routin:[0,5,6,14],row:14,rring:0,rssd:2,rst:[4,7],rsun:14,rubric:6,run:[0,1,4,5,6,8,10,12,15,16,17],run_example_binari:5,run_example_binary_with_custom_log:5,run_example_binary_with_run_system:5,run_example_binary_with_writing_logfil:5,run_example_custom_logging_autogener:5,run_system:[5,14,17],run_system_wrapp:[5,10,11],run_zero_probability_system:8,runtim:[1,8],russel:0,rzam:20,s_option:8,sai:0,said:0,same:[0,4,5,8,10,12,15,16],sampl:[0,2,6,18],sample_valu:2,sampler:10,sana12:[2,12,15],sana:2,save:[0,1,2,12,15],save_pre_events_stardata:0,scalo:2,scanf:0,scene:5,scheme:0,schneider:0,schroeder:0,script:[3,5,10,16],sdb:0,sdist:[10,16],sdo:0,search:10,second:[0,2,4,14],secondari:[2,20],section:[2,4,9,10,16],see:[0,5,6,10,14,16],seed:0,seem:[10,14,16],seen:4,segment:18,seitenzahl2013_model:0,seitenzahl:0,select:[0,4,5],selected_head:[4,5],selector:0,self:[6,8,12,15],semi:0,sent:0,sentenc:1,sep:[2,5,6,12,15,20],sep_max:[12,15],sep_min:[12,15],separ:[0,2,4,5,6,7,12,14,15,20],separation_quadrupl:0,separation_tripl:0,separta:0,seper:[12,15],sequenc:0,seri:0,serialis:[4,6],serv:[4,5,12,15],server:6,set:[0,1,2,4,6,7,8,10,12,14,15,16],set_moe_di_stefano_set:6,set_opt:2,setup:[10,16,17],sever:[5,7,8,14,17],sfh:2,shara:0,share:[1,5,8,12,17],shared_lib_filenam:5,shell:0,shorten:0,should:[0,1,2,5,6,7,8,10,12,14,15,16,17],shouldn:[0,4],show:[0,3,8,14],show_plot:14,show_stellar_typ:14,shown:[0,14],siess:0,sigma:2,silent:4,sill:0,simpl:15,simpli:0,simul:[0,1,12,15],simulation_:6,sinc:[4,12,14,15],singl:[0,2,6,8,12,14,15],sit:0,size:[4,6,8],skip:[0,4,8,10,16],skipkei:4,sliced_df:5,slope:2,slow:0,slower:0,slurm:[6,8,9],slurm_grid:6,small:0,small_envelope_method:0,small_envelope_method_bs:0,small_envelope_method_miller_bertolami:0,smaller:0,sn_impulse_liu2015:0,sn_impulse_non:0,sn_impulse_wheeler1975:0,sn_kick_companion_a:0,sn_kick_companion_aic_bh:0,sn_kick_companion_bh_bh:0,sn_kick_companion_bh_n:0,sn_kick_companion_ecap:0,sn_kick_companion_grb_collapsar:0,sn_kick_companion_hestaria:0,sn_kick_companion_ia_chand:0,sn_kick_companion_ia_chand_co:0,sn_kick_companion_ia_eld:0,sn_kick_companion_ia_h:0,sn_kick_companion_ia_he_co:0,sn_kick_companion_ia_hybrid_hecowd:0,sn_kick_companion_ia_hybrid_hecowd_sublumin:0,sn_kick_companion_ibc:0,sn_kick_companion_ii:0,sn_kick_companion_iia:0,sn_kick_companion_ns_n:0,sn_kick_companion_phdi:0,sn_kick_companion_pisn:0,sn_kick_companion_ppisn:0,sn_kick_companion_tz:0,sn_kick_companion_wdkick:0,sn_kick_dispersion_aic_bh:0,sn_kick_dispersion_bh_bh:0,sn_kick_dispersion_bh_n:0,sn_kick_dispersion_ecap:0,sn_kick_dispersion_grb_collapsar:0,sn_kick_dispersion_ia_hybrid_hecowd:0,sn_kick_dispersion_ia_hybrid_hecowd_sublumin:0,sn_kick_dispersion_ibc:0,sn_kick_dispersion_ii:0,sn_kick_dispersion_ns_n:0,sn_kick_dispersion_phdi:0,sn_kick_dispersion_pisn:0,sn_kick_dispersion_ppisn:0,sn_kick_dispersion_tz:0,sn_kick_distribution_aic_bh:0,sn_kick_distribution_bh_bh:0,sn_kick_distribution_bh_n:0,sn_kick_distribution_ecap:0,sn_kick_distribution_grb_collapsar:0,sn_kick_distribution_ia_hybrid_hecowd:0,sn_kick_distribution_ia_hybrid_hecowd_sublumin:0,sn_kick_distribution_ibc:0,sn_kick_distribution_ii:0,sn_kick_distribution_ns_n:0,sn_kick_distribution_phdi:0,sn_kick_distribution_pisn:0,sn_kick_distribution_ppisn:0,sn_kick_distribution_tz:0,sneia:0,snia:0,solar:[0,2,20],solver:0,solver_forward_eul:0,solver_predictor_corrector:0,solver_rk2:0,solver_rk4:0,some:[0,1,2,5,6,8,10,12,14,15,16],someth:[0,6],soon:18,sort:4,sort_kei:4,sourc:[1,2,3,4,5,6,7,8,11,14,15,17,18,20],source_file_filenam:8,source_list:6,sourcecod:[10,16],sourcefile_nam:1,space:[0,6,18],spacing_funct:[10,11],spacingfunc:[6,12,15],spacingfunct:6,special:0,specif:[0,4,14],specifi:[0,8],spectral:2,speed:[0,8],speedtest:0,spent:4,spheric:0,spin:0,spinrat:0,split:[0,8,12,15],splitpoint:0,spread:6,sqrt:0,src:[10,16],st1:5,st2:5,stabil:0,stabl:0,stancliff:0,standard:[0,2],star:[1,2,5,6,8,10,12,14,15,20],star_with_no_mass:0,stardata:[0,1,5,12,15],stardata_dump_filenam:0,stardata_load_filenam:0,start:[0,1,4,5,6,7,8],start_tim:0,state:0,statement:[1,5],statist:0,statu:[0,1],stderr:0,stdout:4,steadi:0,stefan:14,stefano:[4,6,10],stellar:[0,2,8,14,19],stellar_structure_algorithm:0,stellar_structure_algorithm_external_funct:0,stellar_structure_algorithm_mint:0,stellar_structure_algorithm_modified_bs:0,stellar_structure_algorithm_non:0,stellar_typ:[1,10,11,12,14,15],stellar_type_1:[0,14],stellar_type_2:[0,14],stellar_type_3:0,stellar_type_4:0,stellar_type_dict:19,stellar_type_dict_short:19,step:[6,14,18],stepsiz:6,stick:8,stiff:0,still:[1,8],stop:[0,4],stopfil:0,storag:0,store:[0,2,4,6,8,10,16,20],store_memaddr:20,str:[1,4,6,7,14],straight:6,straniero:0,streamhandl:6,strength:0,strict:4,string:[0,1,4,6,7,8,14,17],strip:0,stronger:0,struct:0,structur:[0,4,8,14],stuff:[4,8,12,14,15],style:0,sub:[0,4],subdict:4,subject:0,sublumin:0,submit:10,subroutin:9,subsequ:0,subtract:4,subtract_dict:4,succe:0,suggest:[0,10,16],suit:[10,16],sum:0,sundial:0,supercrit:0,supernova:[0,8],superwind:0,superwind_mira_switchon:0,supress:[12,15],sure:[2,6,8,10,14,16,17],surfac:0,surviv:0,survivor:0,switcher:0,symmetr:0,synchron:0,synonym:0,synthesi:[8,10,16],sys:5,system:[0,4,5,6,8,10,12,14,15,16,17],system_gener:6,system_queue_fil:6,t_re:5,tabl:[0,2],take:[0,2,4,5,6,8,12,15,17],taken:[0,4],tar:[10,16],target:[1,7],task:[0,2,4,5,6,7,9,14,17,18,20],tauri:0,tbse:0,teff:[0,2],teff_1:14,teff_2:14,tell:4,temp_dir:[4,12,15],temperatur:[0,2,14],tempfil:5,termin:[1,10,16],test:[0,4,6,8,10,16,20],test_log:5,test_pop:[12,15],text:[4,7],than:[0,2,4,8,10,16],thats:[12,15],thei:[0,2,4,6,8,14],thelog:0,them:[2,4,5,6,12,15],themselv:[2,4],thermal:[0,2,20],thermally_pulsing_asymptotic_giant_branch:0,thermohalin:0,thesi:0,thi:[0,1,2,3,4,5,6,7,8,10,11,12,14,15,16,17,18,20],thick:0,thick_disc_end_ag:0,thick_disc_logg_max:0,thick_disc_logg_min:0,thick_disc_start_ag:0,thin:0,thing:[0,2,4,5,6,7,12,15,17],think:[0,4,6],third:[0,2],third_dup:0,third_dup_multipli:0,thorn:0,those:[4,5,6,10,12,15,16],thread:8,thread_id:8,three:[0,2],three_part_powerlaw:[2,12,15],threshold:[0,4,8],through:[6,14,17],throughout:6,tidal:0,tidal_strength_factor:0,tide:0,tides_convective_damp:0,tides_hurley2002:0,tides_zahn1989:0,time:[0,1,2,4,5,6,8,10,12,14,15,16],timescal:0,timestamp:8,timestep:0,timestep_limit:0,timestep_log:0,timestep_modul:0,timestep_multipli:0,timestep_solver_factor:0,tinslei:2,titl:[7,13],tmp:[0,4,10,12,16],tmp_dir:[6,8],tmp_tabl:2,todo:[0,1,2,4,6,7,8,12,14,15,17,18,20],toler:0,too:[0,4,8,10,16,17],topic:0,torqu:0,total:[0,2,4,6,8,14],tout:[0,20],tpagb:0,tpagb_reimers_eta:0,tpagb_wind_beasor_etal_2020:0,tpagb_wind_bloeck:0,tpagb_wind_goldman_etal_2017:0,tpagb_wind_mattsson:0,tpagb_wind_reim:0,tpagb_wind_rob_cwind:0,tpagb_wind_van_loon:0,tpagb_wind_vw93_karaka:0,tpagb_wind_vw93_karakas_carbon_star:0,tpagb_wind_vw93_orig:0,tpagb_wind_vw93_orig_carbon_star:0,tpagbwind:0,tpagbwindfac:0,traceback:4,track:[8,14],trade:0,transfer:0,transform:[0,4],transit:0,treat:0,trigger:0,tripl:[0,2,8],truli:0,tupl:1,turn:[0,4,12,15],two:[0,4,19,20],txt:[5,6,17],type:[0,1,2,4,6,7,8,14,18,19,20],type_ia_mch_supernova_algorithm:0,type_ia_sub_mch_supernova_algorithm:0,typic:0,ubvri:0,ugriv:0,uncom:6,under:18,undergo:0,understand:6,undescrib:7,uniform:2,union:[2,4,6,18,20],uniqu:[4,6,8],unit:[0,20],univari:0,unknown:17,unless:[1,6,8],unload:6,unrecogn:[10,16],unsign:0,unstabl:0,until:[0,2,4,6],unus:[0,8],updat:[2,4,6,10,12,15,16],update_dict:4,upper:[0,2,18],usag:0,use:[0,2,4,5,6,8,9,10,12,14,15,16,17],use_astropy_valu:14,use_datadir:[6,12,15],use_fixed_timestep_:0,use_periastron_roche_radiu:0,use_tabular_intershell_abundances_karakas_2012:0,used:[0,1,2,4,6,8,12,14,15],useful:[0,4,6,8,10,16,17,20],useful_func:[10,11],user:[1,2,4,6,7,8,17],uses:[0,5,8,12,15],using:[0,1,3,5,6,10,12,15,16],usr:5,usual:[0,2,8],util:[1,2,4,5,6,7,12,14,15,17,18,20],val:2,valid:[0,2,4],valu:[0,1,2,4,5,6,7,8,12,14,15],valueerror:[12,15],valuerang:[6,12,15],van:0,vandenheuvel_log:0,vari:0,variabl:[0,4,6,8,12,15],variant:0,variou:0,vassiliadi:0,veloc:[0,2],verbos:[1,2,4,8,10,12,15,16],verbose_print:4,veri:[0,5,6,15,18],versa:20,version:[0,4,6,10,16],version_info:4,version_info_str:4,version_onli:0,via:[6,8,12,14,15],vice:20,vink:0,virtual:[10,16],virtualenviron:[10,16],viscos:0,viscou:0,visit:10,volum:0,vrot1:0,vrot2:0,vrot3:0,vrot4:0,vrot_breakup:0,vrot_bs:0,vrot_non_rot:0,vrot_sync:0,vw93:0,vw93_eagb_wind_spe:0,vw93_mira_shift:0,vw93_multipli:0,vw93_tpagb_wind_spe:0,vwind:0,vwind_beta:0,vwind_multipli:0,wai:[0,3,4,6,8,12,14,15],wang:0,want:[0,2,4,5,6,7,8,12,14,15],warmup_cpu:0,warn:0,wave:0,wd_accretion_rate_new_giant_envelope_lower_limit_helium_donor:0,wd_accretion_rate_new_giant_envelope_lower_limit_hydrogen_donor:0,wd_accretion_rate_new_giant_envelope_lower_limit_other_donor:0,wd_accretion_rate_novae_upper_limit_helium_donor:0,wd_accretion_rate_novae_upper_limit_hydrogen_donor:0,wd_accretion_rate_novae_upper_limit_other_donor:0,wd_kick:0,wd_kick_at_every_puls:0,wd_kick_at_given_puls:0,wd_kick_direct:0,wd_kick_end_agb:0,wd_kick_first_rlof:0,wd_kick_pulse_numb:0,wd_kick_when:0,wd_sigma:0,wdwd_merger_algorithm:0,wdwd_merger_algorithm_bs:0,wdwd_merger_algorithm_chen2016:0,wdwd_merger_algorithm_perets2019:0,weight:[0,8],well:[0,4,8,10,16],were:4,what:[0,1,2,4,5,6,7,8,10,12,15,16,17],whatev:[5,6,10,16],wheeler:0,when:[0,1,2,4,5,6,7,8,10,12,15,16,17],whenev:[10,16],where:[0,1,2,4,6,7,8,10,16],whether:[0,2,4,6,7,8,14,20],which:[0,1,2,3,4,5,6,7,8,10,12,15,16,17,20],whichev:8,white:0,white_dwarf_cooling_carrasco2014:0,white_dwarf_cooling_mestel:0,white_dwarf_cooling_mestel_modifi:0,white_dwarf_cooling_model:0,white_dwarf_radius_carrasco2014:0,white_dwarf_radius_model:0,white_dwarf_radius_mu:0,white_dwarf_radius_nauenberg1972:0,whole:[6,8],width:0,wind:0,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,wind_disc_angmom_fract:0,wind_disc_mass_fract:0,wind_djorb_fac:0,wind_gas_to_dust_ratio:0,wind_lbv_luminosity_lower_limit:0,wind_mass_loss:0,wind_multiplier_:0,wind_nieuwenhuijzen_luminosity_lower_limit:0,wind_type_multiplier_:0,within:[0,4,6,10,16],without:[2,6,8],won:0,wood:0,work:[0,4,5,10,14,15,16],would:[0,4,14],wouldn:6,wr_wind:0,wr_wind_bs:0,wr_wind_eldridg:0,wr_wind_fac:0,wr_wind_maeder_meynet:0,wr_wind_nugis_lam:0,wrap:[1,12,15],wrapper:[4,5,20],write:[1,4,5,6,7,8,12,15,17],write_binary_c_calls_to_fil:6,write_binary_c_parameter_descriptions_to_rst_fil:4,write_grid_options_to_rst_fil:7,written:[5,6,7,8,12,15,17],wrlof_mass_transf:0,wrlof_method:0,wrlof_non:0,wrlof_q_depend:0,wrlof_quadrat:0,wrong:[10,16],wrwindfac:0,wtts2:0,wtts_log:0,www:[0,2],year:[0,2],yet:[0,4,5,6,8,12,14,15],yield:0,you:[0,1,4,5,6,7,8,10,12,14,15,16,20],young:0,your:[5,8,10,16],yourself:[12,14,15],zahn:0,zam:[0,2,17,20],zams_collis:20,zams_mass:[12,15],zero:[0,1,8],zero_ag:[12,15],zone:0,zoom:0,zoomfac_multiplier_decreas:0,zoomfac_multiplier_increas:0,zsolar:2,zytkow:0},titles:["Binary_c parameters","custom_logging_functions module","distribution_functions module","Examples","functions module","Examples","grid_class module","Grid options and descriptions","Population grid code options","hpc_functions module","Welcome to binary_c-python\u2019s documentation!","Binarycpython code","Title page","Notebooks","plot_functions module","Example of population script","Python module for binary_c","run_system_wrapper module","spacing_functions module","stellar_types module","useful_funcs module"],titleterms:{"function":4,"public":8,after:[10,16],algorithm:0,binari:0,binary_c:[0,10,16],binarycpython:11,build:[10,16],code:[8,11],custom_logging_funct:1,descript:7,distribution_funct:2,document:[10,16],environ:[10,16],exampl:[3,5,10,15,16],faq:[10,16],from:[10,16],grid:[7,8],grid_class:6,hpc_function:9,indic:10,input:0,instal:[10,16],instruct:[10,16],issu:[10,16],misc:0,modul:[1,2,4,6,9,10,14,16,17,18,19,20],moe:8,note:[10,16],notebook:13,nucsyn:0,option:[7,8],output:0,page:12,paramet:0,pip:[10,16],plot_funct:14,popul:[8,15],privat:8,python:[10,16],requir:[10,16],run_system_wrapp:17,sampler:8,script:15,section:0,sourc:[10,16],spacing_funct:18,star:0,stefano:8,stellar_typ:19,tabl:10,titl:12,usag:[10,16],useful_func:20,variabl:[10,16],via:[10,16],welcom:10}})
\ No newline at end of file
diff --git a/docs/build/html/spacing_functions.html b/docs/build/html/spacing_functions.html
index 54326c897..edc139099 100644
--- a/docs/build/html/spacing_functions.html
+++ b/docs/build/html/spacing_functions.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.spacing_functions">
+  
+<style>
+/* 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="module-binarycpython.utils.spacing_functions">
 <span id="spacing-functions-module"></span><h1>spacing_functions module<a class="headerlink" href="#module-binarycpython.utils.spacing_functions" title="Permalink to this headline">¶</a></h1>
 <p>Module containing the spacing functions for the binarycpython package. Very under-populated at the moment, but more are likely to come soon</p>
 <dl class="simple">
@@ -235,9 +262,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/stellar_types.html b/docs/build/html/stellar_types.html
index 391be9d90..193b7a074 100644
--- a/docs/build/html/stellar_types.html
+++ b/docs/build/html/stellar_types.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.stellar_types">
+  
+<style>
+/* 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="module-binarycpython.utils.stellar_types">
 <span id="stellar-types-module"></span><h1>stellar_types module<a class="headerlink" href="#module-binarycpython.utils.stellar_types" title="Permalink to this headline">¶</a></h1>
 <dl class="simple">
 <dt>Module containing two stellar type dicts:</dt><dd><ul class="simple">
@@ -216,9 +243,9 @@
     
     provided by <a href="https://readthedocs.org">Read the Docs</a>.
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/build/html/useful_funcs.html b/docs/build/html/useful_funcs.html
index 2b4f5ddea..45b51577f 100644
--- a/docs/build/html/useful_funcs.html
+++ b/docs/build/html/useful_funcs.html
@@ -30,6 +30,9 @@
         <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>
 
@@ -171,7 +174,31 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
             
-  <div class="section" id="module-binarycpython.utils.useful_funcs">
+  
+<style>
+/* 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="module-binarycpython.utils.useful_funcs">
 <span id="useful-funcs-module"></span><h1>useful_funcs module<a class="headerlink" href="#module-binarycpython.utils.useful_funcs" title="Permalink to this headline">¶</a></h1>
 <p>Collection of useful functions.</p>
 <p>Part of this is copied/inspired by Rob’s binary_stars module</p>
@@ -183,11 +210,14 @@
 <li><p>ZAMS_collision(m1, m2, e, sep, z) returns 1 if stars collide on the ZAMS</p></li>
 <li><p>roche_lobe(q): returns roche lobe radius in units of separation</p></li>
 <li><p>ragb(m, z): radius at first thermal pulse</p></li>
+<li><p>minimum_period_for_RLOF(M1, M2, metallicity, store_memaddr=-1): function to calculate the minimum period that leads to RLOF on ZAMS</p></li>
+<li><p>minimum_separation_for_RLOF(M1, M2, metallicity, store_memaddr=-1): function to calculate the minimum period that leads to RLOF on ZAMS</p></li>
+<li><p>maximum_mass_ratio_for_RLOF(M1, orbital_period, store_memaddr=None): Function to calculate the maximum mass ratio that leads to RLOF on ZAMS</p></li>
 </ul>
 </dd>
 <dt>Tasks:</dt><dd><ul class="simple">
 <li><p>TODO: check whether these functions are correct</p></li>
-<li><p>TODO: add unittest for maximum_mass_ratio_for_RLOF</p></li>
+<li><p>TODO: add unit test for maximum_mass_ratio_for_RLOF</p></li>
 </ul>
 </dd>
 </dl>
@@ -257,14 +287,14 @@
 <dt id="binarycpython.utils.useful_funcs.minimum_period_for_RLOF">
 <code class="sig-prename descclassname">binarycpython.utils.useful_funcs.</code><code class="sig-name descname">minimum_period_for_RLOF</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">M1</span></em>, <em class="sig-param"><span class="n">M2</span></em>, <em class="sig-param"><span class="n">metallicity</span></em>, <em class="sig-param"><span class="n">store_memaddr</span><span class="o">=</span><span class="default_value">- 1</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/binarycpython/utils/useful_funcs.html#minimum_period_for_RLOF"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#binarycpython.utils.useful_funcs.minimum_period_for_RLOF" title="Permalink to this definition">¶</a></dt>
 <dd><p>Wrapper function for _binary_c_bindings.return_minimum_orbit_for_RLOF</p>
-<p>Handles the output and returns the minimum orbital period at which RLOF just does not occur at zams</p>
+<p>Handles the output and returns the minimum orbital period at which RLOF just does not occur at ZAMS</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
 <li><p><strong>M1</strong> – Primary mass in solar mass</p></li>
 <li><p><strong>M2</strong> – Secondary mass in solar mass</p></li>
 <li><p><strong>metallicity</strong> – metallicity</p></li>
-<li><p><strong>store_memaddr</strong> (<em>optional</em>) – store memory adress</p></li>
+<li><p><strong>store_memaddr</strong> (<em>optional</em>) – store memory address</p></li>
 </ul>
 </dd>
 <dt class="field-even">Returns</dt>
@@ -411,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: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
 
 
 
diff --git a/docs/source/_templates/footer.html b/docs/source/_templates/footer.html
index 2d75d5c50..6eb6edade 100644
--- a/docs/source/_templates/footer.html
+++ b/docs/source/_templates/footer.html
@@ -2,8 +2,8 @@
 
 {%- block extrafooter %}
 <br><br>
-Generated on binarycpython git branch: development_version/2.1.7 git revision 22f07b8a31dab843d58073f9b3da63a5f40b852b url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/development_version/2.1.7">git url</a>.
+Generated on binarycpython git branch: feature/binaryc_notebook_docs git revision 9da0c3480c4b6b62e6d4edc2d3e8b8a16079b020 url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python/-/tree/feature/binaryc_notebook_docs">git url</a>.
 <br><br>
-Using binary_c with bit branch branch_david: git revision: "6044:20210720:d1ed5b6c1" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">git url</a>.
+Using binary_c with bit branch branch_david: git revision: "6068:20210727:8955b541d" url: <a href="https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/tree/branch_david">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 cdca213e0..0c1a4dd88 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**: 6044:20210720:d1ed5b6c1	**Built on**: Jul 20 2021 13:54:45
+	**binary_c git branch**: branch_david	**binary_c git revision**: 6068:20210727:8955b541d	**Built on**: Jul 27 2021 22:36:46
 
 
 Section: stars
diff --git a/docs/source/conf.py b/docs/source/conf.py
index cb2522859..2ed92c071 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -50,6 +50,7 @@ extensions = [
     "m2r2",
     "sphinx_rtd_theme",
     "sphinx_autodoc_typehints",  # https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html
+    "nbsphinx",
 ]
 
 
diff --git a/docs/source/examples.rst b/docs/source/examples.rst
index ab58720d9..16e4dc3a0 100644
--- a/docs/source/examples.rst
+++ b/docs/source/examples.rst
@@ -6,4 +6,5 @@ This chapter contains the source code of example scripts which show the way of u
    :hidden:                                                                     
 
    general_examples
-   population_example
\ No newline at end of file
+   population_example
+   notebooks
\ No newline at end of file
diff --git a/docs/source/grid_options_descriptions.rst b/docs/source/grid_options_descriptions.rst
index 5a77792e1..319b8d56a 100644
--- a/docs/source/grid_options_descriptions.rst
+++ b/docs/source/grid_options_descriptions.rst
@@ -13,19 +13,21 @@ The following options are meant to be changed by the user.
 
 | **C_logging_code**: Variable to store the exact code that is used for the custom_logging. In this way the user can do more complex logging, as well as putting these logging strings in files.
 
-| **amt_cores**: The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multiprocessed, not multithreaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int
+| **amt_cores**: The amount of cores that the population grid will use. The multiprocessing is useful but make sure to figure out how many logical cores the machine has. The core is multi processed, not multi threaded, and will gain no extra speed when amt_cores exceeds the amount of logical cores. Input: int
 
-| **combine_ensemble_with_thread_joining**: BOolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{popuation_id}_{thread_id}.json
+| **combine_ensemble_with_thread_joining**: Boolean flag on whether to combine everything and return it to the user or if false: write it to data_dir/ensemble_output_{population_id}_{thread_id}.json
 
 | **condor**: Int flag whether to use a condor type population evolution. Not implemented yet.
 
-| **custom_logging_func_memaddr**: Memory adress where the custom_logging_function is stored. Input: int
+| **custom_logging_func_memaddr**: Memory address where the custom_logging_function is stored. Input: int
+
+| **do_dry_run**: Whether to do a dry run to calculate the total probability for this run
 
 | **ensemble_factor_in_probability_weighted_mass**: Flag to multiply all the ensemble results with 1/probability_weighted_mass
 
 | **evolution_type**: Variable containing the type of evolution used of the grid. Multiprocessing or linear processing
 
-| **failed_systems_threshold**: Variable storing the maximum amount of systems that are allowed to fail before logging their commandline arguments to failed_systems log files
+| **failed_systems_threshold**: Variable storing the maximum amount of systems that are allowed to fail before logging their command line arguments to failed_systems log files
 
 | **gridcode_filename**: Filename for the grid code. Set and used by the population object. TODO: allow the user to provide their own function, rather than only a generated function.
 
@@ -35,7 +37,7 @@ The following options are meant to be changed by the user.
 
 | **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 alot 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
+| **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
 
 | **m&s_options**: Internal variable that holds the M&S options. Don't write to this your self
 
@@ -49,20 +51,20 @@ The following options are meant to be changed by the user.
 
 | **repeat**: Factor of how many times a system should be repeated. Consider the evolution splitting binary_c argument for supernovae kick repeating.
 
-| **run_zero_probability_system**: Whether to run the zero probability systems. Default: True. Input: boolean
+| **run_zero_probability_system**: Whether to run the zero probability systems. Default: True. Input: Boolean
 
-| **slurm**: Int flag whether to use a slurm type population evolution.
+| **slurm**: Int flag whether to use a Slurm type population evolution.
 
-| **source_file_filename**: Variable containing the source file containing lines of binary_c commandline calls. These all have to start with binary_c.
+| **source_file_filename**: Variable containing the source file containing lines of binary_c command line calls. These all have to start with binary_c.
 
 | **tmp_dir**: Directory where certain types of output are stored. The grid code is stored in that directory, as well as the custom logging libraries. Log files and other diagnostics will usually be written to this location, unless specified otherwise
 
 | **verbosity**: Verbosity of the population code. Default is 0, by which only errors will be printed. Higher values will show more output, which is good for debugging.
 
-| **weight**: Weight factor for each system. The calculated probability is mulitplied 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.
+| **weight**: 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.
 
-Moe & Distefano sampler options
--------------------------------
+Moe & di Stefano sampler options
+--------------------------------
 The following options are meant to be changed by the user.
 
 
@@ -71,7 +73,7 @@ The following options are meant to be changed by the user.
 | **multiplicity_model**: 
 	multiplicity model (as a function of log10M1)
 	
-	You can use 'Poisson' which uses the system multiplicty
+	You can use 'Poisson' which uses the system multiplicity
 	given by Moe and maps this to single/binary/triple/quad
 	fractions.
 	
@@ -90,13 +92,13 @@ The following options are meant to be changed by the user.
 	
 
 | **normalize_multiplicities**: 
-	'norm': normalize so the whole population is 1.0
+	'norm': normalise so the whole population is 1.0
 	        after implementing the appropriate fractions
 	        S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)
-	        given a mix of multiplities, you can either (noting that
+	        given a mix of multiplicities, you can either (noting that
 	        here (S,B,T,Q) = appropriate modulator * model(S,B,T,Q) )
 	        note: if you only set one multiplicity_modulator
-	        to 1, and all the others to 0, then normalizing
+	        to 1, and all the others to 0, then normalising
 	        will mean that you effectively have the same number
 	        of stars as single, binary, triple or quad (whichever
 	        is non-zero) i.e. the multiplicity fraction is ignored.
@@ -105,7 +107,7 @@ The following options are meant to be changed by the user.
 	
 	'raw'   : stick to what is predicted, i.e.
 	          S/(S+B+T+Q), B/(S+B+T+Q), T/(S+B+T+Q), Q/(S+B+T+Q)
-	          without normalization
+	          without normalisation
 	          (in which case the total probability < 1.0 unless
 	          all you use single, binary, triple and quadruple)
 	
@@ -160,9 +162,9 @@ The following options are not meant to be changed by the user, as these options
 
 | **_end_time_evolution**: Variable storing the end timestamp of the population evolution. Set by the object itself
 
-| **_errors_exceeded**: Variable storing a boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the commandline arguments of the failing systems will not be stored in the failed_system_log files.
+| **_errors_exceeded**: Variable storing a Boolean flag whether the amount of errors was higher than the set threshold (failed_systems_threshold). If True, then the command line arguments of the failing systems will not be stored in the failed_system_log files.
 
-| **_errors_found**: Variable storing a boolean flag whether errors by binary_c are encountered.
+| **_errors_found**: Variable storing a Boolean flag whether errors by binary_c are encountered.
 
 | **_evolution_type_options**: List containing the evolution type options.
 
@@ -186,9 +188,9 @@ The following options are not meant to be changed by the user, as these options
 
 | **_start_time_evolution**: Variable storing the start timestamp of the population evolution. Set by the object itself.
 
-| **_store_memaddr**: Memory adress of the store object for binary_c.
+| **_store_memaddr**: Memory address of the store object for binary_c.
 
-| **_system_generator**: Function object that contains the system generator function. This can be from a grid, or a source file, or a montecarlo grid.
+| **_system_generator**: Function object that contains the system generator function. This can be from a grid, or a source file, or a Monte Carlo grid.
 
 | **_total_mass_run**: To count the total mass that thread/process has ran
 
diff --git a/docs/source/notebook_population.ipynb b/docs/source/notebook_population.ipynb
new file mode 100644
index 000000000..8d2bdbf98
--- /dev/null
+++ b/docs/source/notebook_population.ipynb
@@ -0,0 +1,359 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Title page\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "from binarycpython.utils.grid import Population\n",
+    "from binarycpython.utils.functions import (\n",
+    "    get_help_all,\n",
+    "    get_help,\n",
+    "    create_hdf5,\n",
+    "    output_lines,\n",
+    ")\n",
+    "from binarycpython.utils.custom_logging_functions import temp_dir\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#########################################################\n",
+    "# This file serves as an example for running a population.\n",
+    "# The use of help(<function>) is a good way to inspect what parameters are there to use\n",
+    "#########################################################\n",
+    "\n",
+    "# Create population object\n",
+    "example_pop = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "example_pop.set(verbose=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",
+    "example_pop.set(\n",
+    "    # binary_c physics options\n",
+    "    M_1=10,  # bse_options\n",
+    "    separation=0,  # bse_options\n",
+    "    orbital_period=45000000080,  # bse_options\n",
+    "    max_evolution_time=15000,  # bse_options\n",
+    "    eccentricity=0.02,  # bse_options\n",
+    "    # Set companion to low mass\n",
+    "    M_2=0.08,  # Since in the example we run a single system, we should set the companion mass here. If we donm't do this, the code will complain.\n",
+    "    # grid_options\n",
+    "    amt_cores=2,  # grid_options\n",
+    "    verbose=1,  # verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff\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",
+    "    ),  # custom_options\n",
+    "    base_filename=\"example_pop.dat\",  # custom_options\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def parse_function(self, output):\n",
+    "    # EXAMPLE PARSE_FUNCTION\n",
+    "\n",
+    "    # extract info from the population instance\n",
+    "\n",
+    "    # Get some information from the\n",
+    "    data_dir = self.custom_options[\"data_dir\"]\n",
+    "    base_filename = self.custom_options[\"base_filename\"]\n",
+    "\n",
+    "    # Check directory, make if necessary\n",
+    "    os.makedirs(data_dir, exist_ok=True)\n",
+    "\n",
+    "    seperator = \" \"\n",
+    "\n",
+    "    # Create filename\n",
+    "    outfilename = os.path.join(data_dir, base_filename)\n",
+    "\n",
+    "    parameters = [\"time\", \"mass\", \"zams_mass\", \"probability\", \"radius\", \"stellar_type\"]\n",
+    "\n",
+    "    # Go over the output.\n",
+    "    for el in output_lines(output):\n",
+    "        headerline = el.split()[0]\n",
+    "\n",
+    "        # CHeck the header and act accordingly\n",
+    "        if headerline == \"MY_STELLAR_DATA\":\n",
+    "            values = el.split()[1:]\n",
+    "            print(values)\n",
+    "\n",
+    "            if not len(parameters) == len(values):\n",
+    "                print(\"Amount of column names isnt equal to amount of columns\")\n",
+    "                raise ValueError\n",
+    "\n",
+    "            if not os.path.exists(outfilename):\n",
+    "                with open(outfilename, \"w\") as f:\n",
+    "                    f.write(seperator.join(parameters) + \"\\n\")\n",
+    "\n",
+    "            with open(outfilename, \"a\") as f:\n",
+    "                f.write(seperator.join(values) + \"\\n\")\n",
+    "\n",
+    "\n",
+    "\n",
+    "# Creating a parsing function\n",
+    "example_pop.set(\n",
+    "    parse_function=parse_function,  # Setting the parse function thats used in the evolve_population\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2fa5188e-312f-4a05-aeda-0bd4c00629c8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "### Custom logging\n",
+    "# Log the moment when the star turns into neutron\n",
+    "example_pop.set(\n",
+    "    C_logging_code=\"\"\"\n",
+    "if(stardata->star[0].stellar_type >= 13)    \n",
+    "{\n",
+    "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
+    "    {\n",
+    "        Printf(\"MY_STELLAR_DATA %30.12e %g %g %g %g %d\\\\n\",\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
+    "            stardata->star[0].mass, // 2\n",
+    "            stardata->common.zero_age.mass[0], // 4\n",
+    "            stardata->model.probability, // 5\n",
+    "            stardata->star[0].radius, // 6\n",
+    "            stardata->star[0].stellar_type // 7\n",
+    "      );\n",
+    "    };\n",
+    "    /* Kill the simulation to save time */\n",
+    "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
+    "};\n",
+    "\"\"\"\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Add grid variables\n",
+    "resolution = {\"M_1\": 20, \"q\": 20, \"per\": 40}\n",
+    "\n",
+    "# Mass\n",
+    "example_pop.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=[2, 150],\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n",
+    "    precode=\"M_1=math.exp(lnm1)\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    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",
+    "# test_pop.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(0.1/M_1, 1, {})\".format(resolution['q']),\n",
+    "#     probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n",
+    "#     dphasevol=\"dq\",\n",
+    "#     precode=\"M_2 = q * M_1\",\n",
+    "#     parameter_name=\"M_2\",\n",
+    "#     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    "# )\n",
+    "\n",
+    "# #\n",
+    "# test_pop.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(0.15, 5.5, {})\".format(resolution[\"per\"]),\n",
+    "#    precode=\"\"\"orbital_period = 10** log10per\n",
+    "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n",
+    "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n",
+    "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n",
+    "#    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n",
+    "#    parameter_name=\"orbital_period\",\n",
+    "#    dphasevol=\"dlog10per\",\n",
+    "# )\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8c96b151-8c3b-4479-969f-6c2f898497a5",
+   "metadata": {},
+   "source": [
+    "Exporting of all the settings can be done with .export_all_info()\n",
+    "on default it exports everything, but can be supressed by turning it off:\n",
+    "  population settings (bse_options, grid_options, custom_options), turn off with include_population\n",
+    "      settings=False\n",
+    "  binary_c_defaults (all the commandline arguments that binary c accepts, and their defaults).\n",
+    "      turn off with include_binary_c_defaults=False\n",
+    "  include_binary_c_version_info (all the compilation info, and information about the compiled\n",
+    "      parameters), turn off with include_binary_c_version_info=False\n",
+    "  include_binary_c_help_all (all the help information for all the binary_c parameters),\n",
+    "      turn off with include_binary_c_help_all=Fase\n",
+    "On default it will write this to the custom_options['data_dir'], but that can be overriden by\n",
+    "  setting use_datadir=False and providing an outfile=<>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "ba83443c-64b4-4126-90b3-b1ca76c0f73d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "example_pop.export_all_info()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ef5b51a1-e56d-4bec-a5c7-b9d5bceeceba",
+   "metadata": {},
+   "source": [
+    "Executing a single system\n",
+    "This uses the M_1 orbital period etc set with the set function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "c0a9aed7-1fc9-4fe3-8bcf-4e987bfc00a9",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating the code for the shared library for the custom logging\n",
+      "['2.773586668293e+01', '1.33526', '10', '1', '1.72498e-05', '13']\n",
+      "None\n"
+     ]
+    }
+   ],
+   "source": [
+    "output = example_pop.evolve_single()\n",
+    "print(output)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "## Executing a population\n",
+    "## This uses the values generated by the grid_variables\n",
+    "example_pop.evolve()  # TODO: update this function call"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ce937b07-7292-4bb1-b2e7-d69e51bdff6e",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Wrapping up the results to an hdf5 file can be done by using the create_hdf5\n",
+    "(<directory containing data and settings>) This function takes the settings file\n",
+    "(ending in _settings.json) and the data files (ending in .dat) from the data_dir\n",
+    "and packing them into an hdf5 file, which is then written into the same data_dir directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "ad444138-f854-4fdb-8e18-49e35ac9c7e2",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating /tmp/binary_c_python/example_python_population_result/example_pop.hdf5\n",
+      "Adding settings to HDF5 file\n",
+      "Adding data to HDF5 file\n"
+     ]
+    }
+   ],
+   "source": [
+    "create_hdf5(data_dir=example_pop.custom_options[\"data_dir\"], name=\"example_pop.hdf5\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "34da69bc-fe60-4a9d-b07a-f6cd2f216964",
+   "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/notebooks.rst b/docs/source/notebooks.rst
new file mode 100644
index 000000000..8002bcb2b
--- /dev/null
+++ b/docs/source/notebooks.rst
@@ -0,0 +1,10 @@
+Notebooks
+=========
+The notebooks.
+
+
+.. toctree::
+    :maxdepth: 2
+    :caption: Contents:
+
+    notebook_population.ipynb
diff --git a/examples/notebook_population.ipynb b/examples/notebook_population.ipynb
new file mode 100644
index 000000000..8d2bdbf98
--- /dev/null
+++ b/examples/notebook_population.ipynb
@@ -0,0 +1,359 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "bbbaafbb-fd7d-4b73-a970-93506ba35d71",
+   "metadata": {},
+   "source": [
+    "# Title page\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bf6b8673-a2b5-4b50-ad1b-e90671f57470",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import os\n",
+    "from binarycpython.utils.grid import Population\n",
+    "from binarycpython.utils.functions import (\n",
+    "    get_help_all,\n",
+    "    get_help,\n",
+    "    create_hdf5,\n",
+    "    output_lines,\n",
+    ")\n",
+    "from binarycpython.utils.custom_logging_functions import temp_dir\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "79ab50b7-591f-4883-af09-116d1835a751",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "#########################################################\n",
+    "# This file serves as an example for running a population.\n",
+    "# The use of help(<function>) is a good way to inspect what parameters are there to use\n",
+    "#########################################################\n",
+    "\n",
+    "# Create population object\n",
+    "example_pop = Population()\n",
+    "\n",
+    "# If you want verbosity, set this before other things\n",
+    "example_pop.set(verbose=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",
+    "example_pop.set(\n",
+    "    # binary_c physics options\n",
+    "    M_1=10,  # bse_options\n",
+    "    separation=0,  # bse_options\n",
+    "    orbital_period=45000000080,  # bse_options\n",
+    "    max_evolution_time=15000,  # bse_options\n",
+    "    eccentricity=0.02,  # bse_options\n",
+    "    # Set companion to low mass\n",
+    "    M_2=0.08,  # Since in the example we run a single system, we should set the companion mass here. If we donm't do this, the code will complain.\n",
+    "    # grid_options\n",
+    "    amt_cores=2,  # grid_options\n",
+    "    verbose=1,  # verbosity. Not fully configured correctly yet but having it value of 1 prints alot of stuff\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",
+    "    ),  # custom_options\n",
+    "    base_filename=\"example_pop.dat\",  # custom_options\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0c986215-93b1-4e30-ad79-f7c397e9ff7d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def parse_function(self, output):\n",
+    "    # EXAMPLE PARSE_FUNCTION\n",
+    "\n",
+    "    # extract info from the population instance\n",
+    "\n",
+    "    # Get some information from the\n",
+    "    data_dir = self.custom_options[\"data_dir\"]\n",
+    "    base_filename = self.custom_options[\"base_filename\"]\n",
+    "\n",
+    "    # Check directory, make if necessary\n",
+    "    os.makedirs(data_dir, exist_ok=True)\n",
+    "\n",
+    "    seperator = \" \"\n",
+    "\n",
+    "    # Create filename\n",
+    "    outfilename = os.path.join(data_dir, base_filename)\n",
+    "\n",
+    "    parameters = [\"time\", \"mass\", \"zams_mass\", \"probability\", \"radius\", \"stellar_type\"]\n",
+    "\n",
+    "    # Go over the output.\n",
+    "    for el in output_lines(output):\n",
+    "        headerline = el.split()[0]\n",
+    "\n",
+    "        # CHeck the header and act accordingly\n",
+    "        if headerline == \"MY_STELLAR_DATA\":\n",
+    "            values = el.split()[1:]\n",
+    "            print(values)\n",
+    "\n",
+    "            if not len(parameters) == len(values):\n",
+    "                print(\"Amount of column names isnt equal to amount of columns\")\n",
+    "                raise ValueError\n",
+    "\n",
+    "            if not os.path.exists(outfilename):\n",
+    "                with open(outfilename, \"w\") as f:\n",
+    "                    f.write(seperator.join(parameters) + \"\\n\")\n",
+    "\n",
+    "            with open(outfilename, \"a\") as f:\n",
+    "                f.write(seperator.join(values) + \"\\n\")\n",
+    "\n",
+    "\n",
+    "\n",
+    "# Creating a parsing function\n",
+    "example_pop.set(\n",
+    "    parse_function=parse_function,  # Setting the parse function thats used in the evolve_population\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2fa5188e-312f-4a05-aeda-0bd4c00629c8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "### Custom logging\n",
+    "# Log the moment when the star turns into neutron\n",
+    "example_pop.set(\n",
+    "    C_logging_code=\"\"\"\n",
+    "if(stardata->star[0].stellar_type >= 13)    \n",
+    "{\n",
+    "    if (stardata->model.time < stardata->model.max_evolution_time)\n",
+    "    {\n",
+    "        Printf(\"MY_STELLAR_DATA %30.12e %g %g %g %g %d\\\\n\",\n",
+    "            // \n",
+    "            stardata->model.time, // 1\n",
+    "            stardata->star[0].mass, // 2\n",
+    "            stardata->common.zero_age.mass[0], // 4\n",
+    "            stardata->model.probability, // 5\n",
+    "            stardata->star[0].radius, // 6\n",
+    "            stardata->star[0].stellar_type // 7\n",
+    "      );\n",
+    "    };\n",
+    "    /* Kill the simulation to save time */\n",
+    "    stardata->model.max_evolution_time = stardata->model.time - stardata->model.dtm;\n",
+    "};\n",
+    "\"\"\"\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fd197154-a8ce-4865-8929-008d3483101a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Add grid variables\n",
+    "resolution = {\"M_1\": 20, \"q\": 20, \"per\": 40}\n",
+    "\n",
+    "# Mass\n",
+    "example_pop.add_grid_variable(\n",
+    "    name=\"lnm1\",\n",
+    "    longname=\"Primary mass\",\n",
+    "    valuerange=[2, 150],\n",
+    "    resolution=\"{}\".format(resolution[\"M_1\"]),\n",
+    "    spacingfunc=\"const(math.log(2), math.log(150), {})\".format(resolution[\"M_1\"]),\n",
+    "    precode=\"M_1=math.exp(lnm1)\",\n",
+    "    probdist=\"three_part_powerlaw(M_1, 0.1, 0.5, 1.0, 150, -1.3, -2.3, -2.3)*M_1\",\n",
+    "    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",
+    "# test_pop.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(0.1/M_1, 1, {})\".format(resolution['q']),\n",
+    "#     probdist=\"flatsections(q, [{'min': 0.1/M_1, 'max': 1.0, 'height': 1}])\",\n",
+    "#     dphasevol=\"dq\",\n",
+    "#     precode=\"M_2 = q * M_1\",\n",
+    "#     parameter_name=\"M_2\",\n",
+    "#     condition=\"\",  # Impose a condition on this grid variable. Mostly for a check for yourself\n",
+    "# )\n",
+    "\n",
+    "# #\n",
+    "# test_pop.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(0.15, 5.5, {})\".format(resolution[\"per\"]),\n",
+    "#    precode=\"\"\"orbital_period = 10** log10per\n",
+    "# sep = calc_sep_from_period(M_1, M_2, orbital_period)\n",
+    "# sep_min = calc_sep_from_period(M_1, M_2, 10**0.15)\n",
+    "# sep_max = calc_sep_from_period(M_1, M_2, 10**5.5)\"\"\",\n",
+    "#    probdist=\"sana12(M_1, M_2, sep, orbital_period, sep_min, sep_max, math.log10(10**0.15), math.log10(10**5.5), -0.55)\",\n",
+    "#    parameter_name=\"orbital_period\",\n",
+    "#    dphasevol=\"dlog10per\",\n",
+    "# )\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8c96b151-8c3b-4479-969f-6c2f898497a5",
+   "metadata": {},
+   "source": [
+    "Exporting of all the settings can be done with .export_all_info()\n",
+    "on default it exports everything, but can be supressed by turning it off:\n",
+    "  population settings (bse_options, grid_options, custom_options), turn off with include_population\n",
+    "      settings=False\n",
+    "  binary_c_defaults (all the commandline arguments that binary c accepts, and their defaults).\n",
+    "      turn off with include_binary_c_defaults=False\n",
+    "  include_binary_c_version_info (all the compilation info, and information about the compiled\n",
+    "      parameters), turn off with include_binary_c_version_info=False\n",
+    "  include_binary_c_help_all (all the help information for all the binary_c parameters),\n",
+    "      turn off with include_binary_c_help_all=Fase\n",
+    "On default it will write this to the custom_options['data_dir'], but that can be overriden by\n",
+    "  setting use_datadir=False and providing an outfile=<>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "ba83443c-64b4-4126-90b3-b1ca76c0f73d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "'/tmp/binary_c_python/example_python_population_result/example_pop_settings.json'"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "example_pop.export_all_info()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ef5b51a1-e56d-4bec-a5c7-b9d5bceeceba",
+   "metadata": {},
+   "source": [
+    "Executing a single system\n",
+    "This uses the M_1 orbital period etc set with the set function"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "c0a9aed7-1fc9-4fe3-8bcf-4e987bfc00a9",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating the code for the shared library for the custom logging\n",
+      "['2.773586668293e+01', '1.33526', '10', '1', '1.72498e-05', '13']\n",
+      "None\n"
+     ]
+    }
+   ],
+   "source": [
+    "output = example_pop.evolve_single()\n",
+    "print(output)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8ea376c1-1e92-45af-8cab-9d7fdca564eb",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "## Executing a population\n",
+    "## This uses the values generated by the grid_variables\n",
+    "example_pop.evolve()  # TODO: update this function call"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ce937b07-7292-4bb1-b2e7-d69e51bdff6e",
+   "metadata": {
+    "tags": []
+   },
+   "source": [
+    "Wrapping up the results to an hdf5 file can be done by using the create_hdf5\n",
+    "(<directory containing data and settings>) This function takes the settings file\n",
+    "(ending in _settings.json) and the data files (ending in .dat) from the data_dir\n",
+    "and packing them into an hdf5 file, which is then written into the same data_dir directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "ad444138-f854-4fdb-8e18-49e35ac9c7e2",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Creating /tmp/binary_c_python/example_python_population_result/example_pop.hdf5\n",
+      "Adding settings to HDF5 file\n",
+      "Adding data to HDF5 file\n"
+     ]
+    }
+   ],
+   "source": [
+    "create_hdf5(data_dir=example_pop.custom_options[\"data_dir\"], name=\"example_pop.hdf5\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "34da69bc-fe60-4a9d-b07a-f6cd2f216964",
+   "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
+}
-- 
GitLab