From 8cbfe0ddd313b5090f6c02393c61dd54c2659d51 Mon Sep 17 00:00:00 2001
From: Robert Izzard <r.izzard@surrey.ac.uk>
Date: Wed, 11 Aug 2021 13:19:55 +0100
Subject: [PATCH] update docs for 2.2.0 release

add ensemble filter output to "binary_c version"
---
 doc/binary_c-ensemble.lyx  | 145 ++-----
 doc/binary_c2.lyx          | 757 ++++++++++++++++++++++++++++++-------
 doc/binary_c2_preamble.tex |   1 +
 doc/getting_binary_c.lyx   |  28 +-
 src/setup/version.c        |  10 +-
 ubuntu_install_binary_c.sh |   6 +-
 6 files changed, 681 insertions(+), 266 deletions(-)

diff --git a/doc/binary_c-ensemble.lyx b/doc/binary_c-ensemble.lyx
index 3559245f2..0b9f36047 100644
--- a/doc/binary_c-ensemble.lyx
+++ b/doc/binary_c-ensemble.lyx
@@ -417,7 +417,7 @@ From version 2.17,
 population ensemble
 \emph default
 .
- The ensemble is built as a 
+ The ensemble is built as an associative array, using a 
 \emph on
 hash
 \emph default
@@ -447,7 +447,15 @@ https://en.wikipedia.org/wiki/Hash_table
 
 , known as a 
 \emph on
+
+\begin_inset Quotes eld
+\end_inset
+
 hash
+\begin_inset Quotes erd
+\end_inset
+
+
 \emph default
  in 
 \begin_inset Flex ScriptingLanguage
@@ -766,122 +774,30 @@ stardata->preferences->ensemble_filters[ENSEMBLE_FILTER_NUMBER_OF_FILTERS]
 
 \end_inset
 
-where the index is defined in 
+where the index is defined in X-macros in 
 \begin_inset Flex File
 status open
 
 \begin_layout Plain Layout
-src/ensemble/ensemble_macros.h
+src/ensemble/ensemble_macros.def
 \end_layout
 
 \end_inset
 
 .
- At present these are,
-\end_layout
-
-\begin_layout Standard
+ You can obtain a list of these with
 \begin_inset listings
-lstparams "language=C"
 inline false
 status open
 
 \begin_layout Plain Layout
 
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_SCALARS 0
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_HRD 1
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_SUPERNOVAE 2
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_CHEMICALLY_PECULIAR 3
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_SPECTRAL_TYPES 4
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_INITIAL_DISTRIBUTIONS 5
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_TEST 6
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_ORBIT 7
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_MASS_FUNCTIONS 8
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_LUMINOSITY_FUNCTIONS 9
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_VEQ_FUNCTIONS 10
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_MERGED 11
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_STELLAR_TYPE_COUNTS 12
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_CHEMICAL_YIELDS 13
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_EMP 14
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_CBDISCS 15
-\end_layout
-
-\begin_layout Plain Layout
-
-\end_layout
-
-\begin_layout Plain Layout
-
-#define STELLAR_POPULATIONS_ENSEMBLE_FILTER_NUMBER_OF_FILTERS 16
+./binary_c version |grep 'Ensemble filter'
 \end_layout
 
 \end_inset
 
-
-\end_layout
-
-\begin_layout Standard
-which are all, by default, set the 
+By default, these are set to 
 \begin_inset Flex CMacro
 status open
 
@@ -891,7 +807,13 @@ TRUE
 
 \end_inset
 
-.
+ which means there is 
+\emph on
+a lot
+\emph default
+ of output.
+ You may want to be more selective, otherwise – particularly if you are
+ multithreading – you will require a lot of system memory.
 \end_layout
 
 \begin_layout Itemize
@@ -1666,7 +1588,7 @@ status open
 
 \begin_layout Plain Layout
 
-Starloop(i)
+Foreach_star(star)
 \end_layout
 
 \begin_layout Plain Layout
@@ -1674,11 +1596,6 @@ Starloop(i)
 {
 \end_layout
 
-\begin_layout Plain Layout
-
-     SETstar(i);
-\end_layout
-
 \begin_layout Plain Layout
 
      if(born_binary == FALSE)
@@ -1909,8 +1826,8 @@ C
 
 \end_inset
 
-, and it may get it wrong (or different using a different compiler or compiler
- version).
+, and it may get it wrong (or set it differently using a different compiler
+ or compiler version).
 \end_layout
 
 \begin_layout Standard
@@ -1944,7 +1861,7 @@ star->mass
 
 \end_inset
 
- such that 
+ to avoid 
 \begin_inset listings
 lstparams "language=C"
 inline true
@@ -1957,7 +1874,7 @@ log(0)
 
 \end_inset
 
- is not calculated.
+.
 \end_layout
 
 \begin_layout Subsubsection
@@ -2046,6 +1963,16 @@ status open
 T
 \end_layout
 
+\end_inset
+
+ in 
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+src/ensemble/ensemble_log.c
+\end_layout
+
 \end_inset
 
  as the time, e.g., 
diff --git a/doc/binary_c2.lyx b/doc/binary_c2.lyx
index 5bb03af5f..40380a108 100644
--- a/doc/binary_c2.lyx
+++ b/doc/binary_c2.lyx
@@ -63,7 +63,7 @@ InsetLayout Flex:File
       Multipar 0
       LyxType       Custom
       LabelString   "File"
-      LatexType     File
+      LatexType     Command
       LatexName    filewrapper
       Decoration Classic
       HTMLStyle  
@@ -385,7 +385,7 @@ End
 \font_sans "default" "default"
 \font_typewriter "default" "default"
 \font_math "auto" "auto"
-\font_default_family default
+\font_default_family sfdefault
 \use_non_tex_fonts false
 \font_sc false
 \font_osf false
@@ -587,7 +587,7 @@ An introduction to the
 \begin_inset Newline newline
 \end_inset
 
-Version 2.1.7
+Version 2.2.0
 \begin_inset Newline newline
 \end_inset
 
@@ -973,7 +973,17 @@ OSX
 
 \end_inset
 
- is similar and you should install the GNU core utilities).
+ is similar and you should install the 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+GNU core utilities
+\end_layout
+
+\end_inset
+
+).
  Instructions which should be executed in a 
 \emph on
 bash
@@ -988,9 +998,9 @@ you should not
 \emph default
  
 \emph on
-type
+type!
 \emph default
-!, like this.
+, like this:
 \begin_inset listings
 lstparams "language=bash"
 inline false
@@ -1016,7 +1026,7 @@ scripts
 \family typewriter
 $
 \family default
- symbols)
+ symbols),
 \end_layout
 
 \begin_layout Standard
@@ -1026,6 +1036,16 @@ status open
 
 \begin_layout Plain Layout
 
+#!/bin/bash
+\end_layout
+
+\begin_layout Plain Layout
+
+# ...
+\end_layout
+
+\begin_layout Plain Layout
+
 # this is a bash script
 \end_layout
 
@@ -1050,7 +1070,7 @@ while
 \emph on
 C
 \emph default
- code looks like this
+ code looks like this,
 \end_layout
 
 \begin_layout Standard
@@ -1070,7 +1090,7 @@ x++;
 
 \end_inset
 
-and 
+ 
 \begin_inset Flex ScriptingLanguage
 status open
 
@@ -1080,7 +1100,7 @@ Perl
 
 \end_inset
 
- code looks like this 
+ code looks like this,
 \begin_inset listings
 lstparams "language=Perl"
 inline false
@@ -1099,6 +1119,45 @@ $y++;
 \end_inset
 
 
+\end_layout
+
+\begin_layout Standard
+\begin_inset Flex ScriptingLanguage
+status open
+
+\begin_layout Plain Layout
+Python
+\end_layout
+
+\end_inset
+
+ code looks like this,
+\begin_inset listings
+lstparams "language=Python"
+inline false
+status open
+
+\begin_layout Plain Layout
+
+x = x + 1
+\end_layout
+
+\begin_layout Plain Layout
+
+print(
+\begin_inset Quotes eld
+\end_inset
+
+hello binary_c world
+\begin_inset Quotes erd
+\end_inset
+
+)
+\end_layout
+
+\end_inset
+
+
 \end_layout
 
 \begin_layout Standard
@@ -1225,7 +1284,7 @@ chmod +x ubuntu_install_binary_c.sh
 
 \end_inset
 
-You will need root access to update and install system packages.
+You will need root access to update and install system packages appropriately.
 \end_layout
 
 \begin_layout Subsection
@@ -1336,61 +1395,45 @@ $HOME/include
 \begin_inset Formula $\binaryc$
 \end_inset
 
- will be installed in 
-\begin_inset Flex File
+ will be installed in the 
+\begin_inset Flex Envvar
 status open
 
 \begin_layout Plain Layout
-$HOME/progs/stars/binary_c
+BINARY_C
 \end_layout
 
 \end_inset
 
- and other software will be downloaded and built in 
+ directory, usually 
 \begin_inset Flex File
 status open
 
 \begin_layout Plain Layout
-$HOME/git
+$HOME/progs/stars/binary_c
 \end_layout
 
 \end_inset
 
-.
-\end_layout
-
-\begin_layout Itemize
-First, you need access to the git server.
- Please try to log in with a 
-\emph on
-gmail
-\emph default
- account at 
-\begin_inset Flex URL
+, and other software will be downloaded and built in 
+\begin_inset Flex File
 status open
 
 \begin_layout Plain Layout
-
-gitlab.eps.surrey.ac.uk
+$HOME/git
 \end_layout
 
 \end_inset
 
- and when it blocks you, email Rob (
-\begin_inset CommandInset href
-LatexCommand href
-name "r.izzard@surrey.ac.uk"
-type "mailto:"
-literal "false"
-
-\end_inset
-
-) to ask for access.
- You will then be granted access.
+.
 \end_layout
 
 \begin_layout Itemize
-(Do this once) Add to your 
+
+\series bold
+Required
+\series default
+ (Do this once) Add to your 
 \begin_inset Flex File
 status open
 
@@ -1434,7 +1477,21 @@ BINARY_C
 \end_layout
 
 \begin_layout Itemize
-(Do this once) Set up 
+
+\series bold
+Required
+\series default
+ (Do this once in 
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+.bashrc
+\end_layout
+
+\end_inset
+
+ or manually every time) Set up 
 \begin_inset Flex Envvar
 status open
 
@@ -1527,7 +1584,11 @@ restart your shell
 \end_layout
 
 \begin_layout Itemize
-If you can, install 
+
+\series bold
+Optional
+\series default
+ If you can, install 
 \begin_inset Flex Software
 status open
 
@@ -1568,13 +1629,74 @@ libbsd
 \begin_inset Formula $\binaryc$
 \end_inset
 
- but is useful and speeds up the code.
+ but is useful and may speed up the code.
 \end_layout
 
 \begin_layout Itemize
-If you can, install RGI's custom 
+
+\series bold
+Probably required
+\series default
+ Update your 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+meson
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+ninja
+\end_layout
+
+\end_inset
+
+,
+\begin_inset listings
+inline false
+status open
+
+\begin_layout Plain Layout
+
+pip3 install --upgrade meson
+\end_layout
+
+\begin_layout Plain Layout
+
+pip3 install --upgrade ninja
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Optional
+\series default
+ If you can, install RGI's custom 
 \emph on
+
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+
+\emph off
 GSL
+\end_layout
+
+\end_inset
+
+
 \emph default
  which has a few small fixes to make it behave better.
  At present, the latest release is 2.6, please replace the 2.
@@ -1628,7 +1750,11 @@ make install
 \end_layout
 
 \begin_layout Itemize
-If you can, install 
+
+\series bold
+Optional
+\series default
+ If you can, install 
 \begin_inset Flex Software
 status open
 
@@ -1640,6 +1766,22 @@ librinterpolate
 
 .
  
+\begin_inset Formula $\binaryc$
+\end_inset
+
+ includes a version of 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+librinterpolate
+\end_layout
+
+\end_inset
+
+ as a backup, but it's useful to build and install it so you get the latest
+ version.
+ 
 \begin_inset listings
 inline false
 status open
@@ -1737,7 +1879,11 @@ distribution_functions
 \end_layout
 
 \begin_layout Itemize
-If you can, install 
+
+\series bold
+Optional
+\series default
+ If you can, install 
 \begin_inset Flex Software
 status open
 
@@ -1749,6 +1895,22 @@ libmemoize
 
 .
  
+\begin_inset Formula $\binaryc$
+\end_inset
+
+ includes a version of 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+libmemoize
+\end_layout
+
+\end_inset
+
+ as a backup, but it's useful to build and install it so you get the latest
+ version.
+ 
 \begin_inset listings
 inline false
 status open
@@ -1789,7 +1951,11 @@ ninja -C builddir install
 \end_layout
 
 \begin_layout Itemize
-If you can, install 
+
+\series bold
+Optional
+\series default
+ If you can, install 
 \begin_inset Flex Software
 status open
 
@@ -1799,27 +1965,24 @@ librchash
 
 \end_inset
 
- (this requires 
-\begin_inset Flex Software
-status open
-
-\begin_layout Plain Layout
-meson
-\end_layout
-
+.
+ 
+\begin_inset Formula $\binaryc$
 \end_inset
 
- and 
+ includes a version of 
 \begin_inset Flex Software
 status open
 
 \begin_layout Plain Layout
-ninja
+librchash
 \end_layout
 
 \end_inset
 
-).
+ as a backup, but it's useful to build and install it so you get the latest
+ version.
+ 
 \begin_inset listings
 inline false
 status open
@@ -1860,7 +2023,11 @@ ninja -C builddir install
 \end_layout
 
 \begin_layout Itemize
-Clone the 
+
+\series bold
+Required
+\series default
+ Clone the 
 \begin_inset Formula $\mainbranch$
 \end_inset
 
@@ -1869,25 +2036,7 @@ Clone the
 \end_inset
 
 .
- Remember to 
-\begin_inset Quotes eld
-\end_inset
-
-unset
-\begin_inset Quotes erd
-\end_inset
-
- the 
-\begin_inset Flex Envvar
-status open
-
-\begin_layout Plain Layout
-CFLAGS
-\end_layout
-
-\end_inset
-
- from above.
+ 
 \begin_inset listings
 inline false
 status open
@@ -1923,7 +2072,11 @@ git clone gitlab@gitlab.eps.surrey.ac.uk:ri0005/binary_c.git
 \end_layout
 
 \begin_layout Itemize
-Change to the 
+
+\series bold
+Required
+\series default
+ Change to the 
 \begin_inset Formula $\binaryc$
 \end_inset
 
@@ -2003,8 +2156,25 @@ cd ..
 \end_inset
 
 
+\begin_inset Formula $\binaryc$
+\end_inset
+
+ is now installed
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Optional
+\series default
+ If you want to use 
+\begin_inset Formula $\binarygrid$
+\end_inset
+
+: 
 \end_layout
 
+\begin_deeper
 \begin_layout Itemize
 Install 
 \begin_inset Flex Software
@@ -2232,6 +2402,64 @@ cpanm
  command.
 \end_layout
 
+\end_deeper
+\begin_layout Itemize
+
+\series bold
+Optional
+\series default
+ If you want to use 
+\begin_inset Formula $\binarycpython$
+\end_inset
+
+
+\begin_inset listings
+inline false
+status open
+
+\begin_layout Plain Layout
+
+export GSL_DIR=`gsl-config --prefix`
+\end_layout
+
+\begin_layout Plain Layout
+
+export LD_LIBRARY_PATH=
+\begin_inset Quotes erd
+\end_inset
+
+$HOME/lib:$BINARY_C:$BINARY_C/src
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+
+export LIBRARY_PATH="$LD_LIBRARY_PATH"
+\end_layout
+
+\begin_layout Plain Layout
+
+export PATH=$HOME/bin:$HOME/.local/bin:$PATH
+\end_layout
+
+\begin_layout Plain Layout
+
+pip3 install -U pip setuptools testresources
+\end_layout
+
+\begin_layout Plain Layout
+
+pip3 install git+https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python.git
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
 \begin_layout Subsection
 Running a single- or binary-star system
 \end_layout
@@ -2247,7 +2475,17 @@ $BINARY_C
 
 \end_inset
 
- directory and open the file 
+ directory and open the 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+bash
+\end_layout
+
+\end_inset
+
+ script 
 \begin_inset Flex File
 status open
 
@@ -2257,7 +2495,7 @@ tbse
 
 \end_inset
 
- (where 
+ where 
 \emph on
 tbse
 \emph default
@@ -2269,7 +2507,7 @@ test binary-star evolution
 \begin_inset Quotes erd
 \end_inset
 
-).
+.
  
 \end_layout
 
@@ -2378,7 +2616,11 @@ Do not run many stars this way, use
 \begin_inset Formula $\binarygrid2$
 \end_inset
 
+ or 
+\begin_inset Formula $\binarycpython$
+\end_inset
 
+ for such a task.
 \end_layout
 
 \begin_layout Subsection
@@ -2387,10 +2629,20 @@ Running a grid of stars with
 \end_inset
 
 
-\end_layout
+\end_layout
+
+\begin_layout Itemize
+Open the file 
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+$BINARY_C/src/perl/scripts2/template.pl
+\end_layout
+
+\end_inset
+
 
-\begin_layout Itemize
-Open the file $BINARY_C/src/perl/scripts2/template.pl
 \end_layout
 
 \begin_layout Itemize
@@ -3601,6 +3853,21 @@ oh but Perl is not Python
  don't!).
 \end_layout
 
+\begin_layout Description
+\begin_inset Formula $\binarycpython$
+\end_inset
+
+ A port of 
+\begin_inset Formula $\binarygrid$
+\end_inset
+
+ which, as of version 2.2.0, will become the default 
+\begin_inset Formula $\binaryc$
+\end_inset
+
+ population synthesis tool.
+\end_layout
+
 \begin_layout Standard
 \begin_inset Newpage pagebreak
 \end_inset
@@ -6723,7 +6990,31 @@ Valgrind
 \end_inset
 
 .
- Your system may, or may not, require this.
+ As of 
+\begin_inset Formula $\binaryc$
+\end_inset
+
+ 2.2.0 you are required to use 
+\begin_inset Flex Args
+status open
+
+\begin_layout Plain Layout
+-Dvalgrind=true
+\end_layout
+
+\end_inset
+
+ if you want to run through 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+Valgrind
+\end_layout
+
+\end_inset
+
+.
 \end_layout
 
 \begin_layout Subsubsection
@@ -6853,7 +7144,7 @@ Libraries for
 \begin_inset Formula $\binaryc$
 \end_inset
 
- uses 
+ (optionally) uses 
 \begin_inset CommandInset href
 LatexCommand href
 name "libmemoize"
@@ -6862,7 +7153,7 @@ literal "false"
 
 \end_inset
 
- and 
+, 
 \begin_inset CommandInset href
 LatexCommand href
 name "librinterpolate"
@@ -6871,7 +7162,26 @@ literal "false"
 
 \end_inset
 
-, written by RGI, and RGI's customized Gnu Scientific Library (at 
+ and 
+\begin_inset CommandInset href
+LatexCommand href
+name "librchash"
+target "https://gitlab.eps.surrey.ac.uk/ri0005/librchash"
+literal "false"
+
+\end_inset
+
+, written by RGI, and RGI's customized 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+Gnu Scientific Library
+\end_layout
+
+\end_inset
+
+ (at 
 \begin_inset CommandInset href
 LatexCommand href
 name "this link"
@@ -6897,6 +7207,7 @@ GSL
 \end_inset
 
  should work.
+ 
 \end_layout
 
 \begin_layout Standard
@@ -6910,7 +7221,7 @@ Meson
 
 \end_inset
 
- knows about the locations of your libraries.
+ knows about the locations of your libraries should you choose to use them.
  Usually it is sufficient to set their locations (i.e.
 \begin_inset space ~
 \end_inset
@@ -7118,6 +7429,7 @@ $HOME/bin/gsl-config
 \end_inset
 
  to run first.
+ 
 \end_layout
 
 \begin_layout Subsubsection
@@ -8017,6 +8329,119 @@ xclip
 ).
 \end_layout
 
+\begin_layout Subsubsection
+Testing many (random) systems
+\end_layout
+
+\begin_layout Standard
+Sometimes the best thing to do is test many random systems.
+ You can do this with the 
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+test_random.pl
+\end_layout
+
+\end_inset
+
+ script.
+ I usually run it with something like:
+\begin_inset listings
+lstparams "language=bash"
+inline false
+status open
+
+\begin_layout Plain Layout
+
+cd $BINARY_C
+\end_layout
+
+\begin_layout Plain Layout
+
+nice -n +19 ./src/perl/scripts2/test_random.pl threads=cpu newlogs logtimes
+ updatetime=0.25 sleeptime=0.25 valgrind
+\end_layout
+
+\end_inset
+
+where the options are
+\end_layout
+
+\begin_layout Description
+nice
+\begin_inset space ~
+\end_inset
+
+-n
+\begin_inset space ~
+\end_inset
+
++19 to make sure we only use idle CPU cycles
+\end_layout
+
+\begin_layout Description
+threads=cpu this uses 
+\begin_inset Formula $N-1$
+\end_inset
+
+ threads, where 
+\begin_inset Formula $N$
+\end_inset
+
+ is the number of CPU cores (this leaves one for managing the runs)
+\end_layout
+
+\begin_layout Description
+newlogs Makes a new log file in 
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+$HOME/binary_c_test_random.log
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Description
+logtimes Makes a file 
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+$HOME/binary_c_test_random.logtimes
+\end_layout
+
+\end_inset
+
+ containing data that tells us how long each system takes to run
+\end_layout
+
+\begin_layout Description
+updatetime=0.25 Number of seconds between updating the screen
+\end_layout
+
+\begin_layout Description
+sleeptime=0.25 Internal sleep time before checking things
+\end_layout
+
+\begin_layout Description
+valgrind Run binary_c through 
+\begin_inset Flex Software
+status open
+
+\begin_layout Plain Layout
+valgrind
+\end_layout
+
+\end_inset
+
+ (warning will be slow, but thorough)
+\end_layout
+
 \begin_layout Subsection
 Directory structure
 \end_layout
@@ -8110,6 +8535,34 @@ as well as latest
 \begin_inset Flex File
 status open
 
+\begin_layout Plain Layout
+src/python
+\end_layout
+
+\end_inset
+
+ contains some experimental 
+\begin_inset Flex ScriptingLanguage
+status open
+
+\begin_layout Plain Layout
+Python
+\end_layout
+
+\end_inset
+
+ scripts.
+ These are designed to work with 
+\begin_inset Formula $\binarycpython$
+\end_inset
+
+: please see its repository for those scripts.
+\end_layout
+
+\begin_layout Itemize
+\begin_inset Flex File
+status open
+
 \begin_layout Plain Layout
 unit_tests
 \end_layout
@@ -8162,7 +8615,7 @@ Ninja
 \end_layout
 
 \begin_layout Subsection
-Building binary_grid2: the population synthesis module
+Building binary_grid2: the (old?) population synthesis module
 \end_layout
 
 \begin_layout Standard
@@ -8175,7 +8628,39 @@ This section describes in some detail the installation of
 2
 \emph default
 .
- Note that sometimes you will require the latest version of pieces of software,
+ If you prefer to use 
+\begin_inset Flex ScriptingLanguage
+status open
+
+\begin_layout Plain Layout
+Python
+\end_layout
+
+\end_inset
+
+ I recommend installing 
+\begin_inset Formula $\binarycpython$
+\end_inset
+
+ instead (Sec.
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "subsec:Running-a-grid-python"
+plural "false"
+caps "false"
+noprefix "false"
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+Note that sometimes you will require the latest version of pieces of software,
  in particular 
 \begin_inset Flex ScriptingLanguage
 status open
@@ -18489,7 +18974,11 @@ name "subsec:binary_c_parameters.h"
 
 The options in this file are non-nucleosynthesis, (single or) binary stellar
  evolution options.
- This file also automatically includes many header files, 
+ This file also automatically includes many other header files, e.g.
+\begin_inset space ~
+\end_inset
+
+
 \begin_inset Flex HeaderFile
 status open
 
@@ -18519,6 +19008,27 @@ catch-all
 
  at the top of each source code file.
  
+\end_layout
+
+\begin_layout Standard
+You can activate the 
+\begin_inset Formula $\MINT$
+\end_inset
+
+ library from in here by uncommenting,
+\begin_inset listings
+lstparams "language=C"
+inline false
+status open
+
+\begin_layout Plain Layout
+
+//#define MINT
+\end_layout
+
+\end_inset
+
+
 \end_layout
 
 \begin_layout Subsection
@@ -19003,6 +19513,10 @@ NUCSYN_NETWORK_NeNaMgAl
  (NeNa and MgAl cycles/chains).
  
 \family typewriter
+
+\begin_inset Newline newline
+\end_inset
+
 NUCSYN_NORMALIZE_NUCLEONS
 \family default
  preserves the number of nucleons in the burning routine, which should prevent
@@ -19031,57 +19545,6 @@ NUCSYN_S_PROCESS
 
 -process, you might well want this.
  
-\family typewriter
-NUCSYN_EXTENDED_S_PROCESS
-\family default
- does the same for isotopes, but is not properly implemented yet.
- If you want to implement this then you should probably remove the elemental
- part, and I have not had a reason to do this yet (elements are observed\SpecialChar ldots
-
- isotopes are not).
- The 
-\begin_inset Quotes eld
-\end_inset
-
-
-\begin_inset Formula $^{13}\mathrm{C}$
-\end_inset
-
--efficiency
-\begin_inset Quotes erd
-\end_inset
-
- is set to its default by 
-\family typewriter
-DEFAULT_C13_EFFICIENCY
-\family default
- (usually 
-\begin_inset Formula $1$
-\end_inset
-
-) but see also 
-\begin_inset CommandInset citation
-LatexCommand citet
-key "2007A&A...469.1013B"
-literal "true"
-
-\end_inset
-
-.
- If you define 
-\family typewriter
-C13_POCKET_CORRECTION
-\family default
- then the amount of 
-\begin_inset Formula $s$
-\end_inset
-
--process material is correctly for a change in intershell mass, the standard
- being 
-\family typewriter
-STD_M_C13_POCKET
-\family default
-.
 \end_layout
 
 \begin_layout Itemize
@@ -19826,9 +20289,9 @@ MATTSSON_MASS_LOSS
 \begin_layout Itemize
 
 \family typewriter
-LITHIUM_TAB
+LITHIUM_TABLES
 \family default
-LES experiments to introduce lithium as a function of mass and pulse number
+ experiments to introduce lithium as a function of mass and pulse number
  in HBBing stars.
 \end_layout
 
diff --git a/doc/binary_c2_preamble.tex b/doc/binary_c2_preamble.tex
index 389dc33f5..2940af0af 100644
--- a/doc/binary_c2_preamble.tex
+++ b/doc/binary_c2_preamble.tex
@@ -13,6 +13,7 @@
 \usepackage{tikz}
 \usetikzlibrary{calc,shadings}
 \usepackage[scaled=0.85]{beramono}
+\usepackage{gillius2}
 
 %\usepackage[usenames, dvipsnames]{color}
 \definecolor{Sectioncolour2}{RGB}{210,180,180} 
diff --git a/doc/getting_binary_c.lyx b/doc/getting_binary_c.lyx
index 076b92264..1e4688408 100644
--- a/doc/getting_binary_c.lyx
+++ b/doc/getting_binary_c.lyx
@@ -485,7 +485,7 @@ status open
 
 \begin_layout Plain Layout
 
-https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.1.6.zip
+https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.2.0.zip
 \end_layout
 
 \end_inset
@@ -500,7 +500,7 @@ status open
 
 \begin_layout Plain Layout
 
-https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.1.6.tar.gz
+https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.2.0.tar.gz
 \end_layout
 
 \end_inset
@@ -515,7 +515,7 @@ status open
 
 \begin_layout Plain Layout
 
-https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.1.6.tar.bz2
+https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/2.1.6/binary_c-2.2.0.tar.bz2
 \end_layout
 
 \end_inset
@@ -536,6 +536,10 @@ https://gitlab.eps.surrey.ac.uk/ri0005/binary_c/-/archive/master/binary_c-master
 \end_inset
 
  
+\begin_inset Newline newline
+\end_inset
+
+You should check on the server for the latest release version.
 \end_layout
 
 \begin_layout Subsubsection
@@ -933,11 +937,27 @@ this loads a bash shell in the directory of
 \end_layout
 
 \begin_layout Enumerate
-Further information can be found in the file 
+Further information can be found in the file
+\begin_inset Newline newline
+\end_inset
+
+ 
+\family typewriter
+
+\begin_inset Flex File
+status open
+
+\begin_layout Plain Layout
+
 \family typewriter
 /home/binary_c/progs/stars/binary_c/doc/README.docker
 \end_layout
 
+\end_inset
+
+
+\end_layout
+
 \begin_layout Enumerate
 The following bash script allows you to run an X11-enabled terminal with
  
diff --git a/src/setup/version.c b/src/setup/version.c
index 7a7f6f678..a776a923c 100644
--- a/src/setup/version.c
+++ b/src/setup/version.c
@@ -1939,10 +1939,16 @@ void version(struct stardata_t * RESTRICT const stardata)
     Show_enum(ENSEMBLE_NUMBER);
 #endif
     Macrotest(STELLAR_POPULATIONS_ENSEMBLE_SPARSE);
-    Show_enum(STELLAR_POPULATIONS_ENSEMBLE_FILTER_NUMBER);
+Show_enum(STELLAR_POPULATIONS_ENSEMBLE_FILTER_NUMBER);
 #ifdef STELLAR_POPULATIONS_ENSEMBLE
     {
-        unsigned int i;
+        unsigned int i = 0;
+#undef X
+#define X(FILTER) Printf("Ensemble filter %u is %s\n",  \
+                         i++,                           \
+                         Stringize(FILTER));
+        STELLAR_POPULATIONS_ENSEMBLE_FILTER_LIST;
+#undef X
         for(i=0;i<ENSEMBLE_NUMBER;i++)
         {
             Printf("Ensemble %u is %s\n",
diff --git a/ubuntu_install_binary_c.sh b/ubuntu_install_binary_c.sh
index 4679da756..2e02bf62a 100755
--- a/ubuntu_install_binary_c.sh
+++ b/ubuntu_install_binary_c.sh
@@ -4,7 +4,7 @@
 #
 # script to install binary_c
 #
-# tested on Ubuntu 20.10/21.04, binary_c 2.2
+# tested on Ubuntu 20.10/21.04, binary_c 2.2.0
 #
 # Note: this will ask you to choose python3.9
 #       as your default python. You do NOT have to
@@ -300,9 +300,7 @@ function install_binary_c_python
     pip3 install -U pip setuptools testresources
 
     # choose a binary_c-python install method
-    #    pip3 install git+https://$GITLAB/binary_c-python.git
-    pip3 install git+https://gitlab.eps.surrey.ac.uk/ri0005/binary_c-python.git@development_version/2.1.7
-
+    pip3 install git+https://$GITLAB/binary_c-python.git
 }
 
 function update_packages
-- 
GitLab