diff --git a/Documentation/Tex/MiMeS.pdf b/Documentation/Tex/MiMeS.pdf
new file mode 100644
index 0000000..91c708c
Binary files /dev/null and b/Documentation/Tex/MiMeS.pdf differ
diff --git a/Documentation/Tex/MiMeS.toc b/Documentation/Tex/MiMeS.toc
new file mode 100644
index 0000000..9115dae
--- /dev/null
+++ b/Documentation/Tex/MiMeS.toc
@@ -0,0 +1,79 @@
+\contentsline {section}{\numberline {1}Introduction}{2}{section.1}%
+\contentsline {section}{\numberline {2}Physics background}{3}{section.2}%
+\contentsline {paragraph}{The EOM}{3}{section*.2}%
+\contentsline {paragraph}{Initial conditions}{4}{figure.caption.4}%
+\contentsline {subsection}{\numberline {2.1}The WKB approximation}{4}{subsection.2.1}%
+\contentsline {paragraph}{Axion energy density}{5}{section*.5}%
+\contentsline {subsection}{\numberline {2.2}Notation}{5}{subsection.2.2}%
+\contentsline {subsection}{\numberline {2.3}Adiabatic invariant and the anharmonic factor}{6}{subsection.2.3}%
+\contentsline {paragraph}{Definition of the adiabatic invariant}{6}{section*.6}%
+\contentsline {paragraph}{Application to the axion}{6}{section*.7}%
+\contentsline {paragraph}{The role of the adiabatic invariant in the axion relic energy density}{7}{section*.9}%
+\contentsline {section}{\numberline {3}{\tt MiMeS}\xspace usage}{8}{section.3}%
+\contentsline {subsection}{\numberline {3.1}First steps}{8}{subsection.3.1}%
+\contentsline {subsubsection}{\numberline {3.1.1}Using {\tt MiMeS}\xspace in {\tt C++}\xspace }{8}{subsubsection.3.1.1}%
+\contentsline {paragraph}{Axion mass form data file}{9}{section*.10}%
+\contentsline {paragraph}{Axion mass function}{9}{section*.11}%
+\contentsline {paragraph}{The EOM solver}{9}{section*.12}%
+\contentsline {paragraph}{Changing axion mass definition}{11}{section*.13}%
+\contentsline {paragraph}{Changing initial condition}{11}{section*.14}%
+\contentsline {subsubsection}{\numberline {3.1.2}Using {\tt MiMeS}\xspace in {\tt python}\xspace }{11}{subsubsection.3.1.2}%
+\contentsline {paragraph}{Axion mass definition via a data file}{11}{section*.15}%
+\contentsline {paragraph}{Axion mass definition via a function}{12}{section*.16}%
+\contentsline {paragraph}{Importand note}{12}{section*.17}%
+\contentsline {paragraph}{The EOM solver}{12}{section*.18}%
+\contentsline {paragraph}{Changing axion mass definition}{13}{section*.19}%
+\contentsline {paragraph}{Changing the initial condition}{13}{section*.20}%
+\contentsline {paragraph}{Importand note}{13}{section*.21}%
+\contentsline {section}{\numberline {4}Assumptions and user input}{13}{section.4}%
+\contentsline {subsection}{\numberline {4.1}Options at Compile-time}{13}{subsection.4.1}%
+\contentsline {subsection}{\numberline {4.2}User input}{15}{subsection.4.2}%
+\contentsline {subsubsection}{\numberline {4.2.1}Compile-time input}{15}{subsubsection.4.2.1}%
+\contentsline {paragraph}{Files}{15}{section*.22}%
+\contentsline {subsubsection}{\numberline {4.2.2}Run-time input}{15}{subsubsection.4.2.2}%
+\contentsline {subsection}{\numberline {4.3}Complete Examples}{16}{subsection.4.3}%
+\contentsline {subsubsection}{\numberline {4.3.1}complete example in {\tt C++}\xspace }{17}{subsubsection.4.3.1}%
+\contentsline {paragraph}{Parameter choice}{18}{section*.24}%
+\contentsline {paragraph}{Template arguments}{18}{section*.25}%
+\contentsline {paragraph}{Compilation}{18}{section*.26}%
+\contentsline {paragraph}{The entire code}{18}{section*.27}%
+\contentsline {paragraph}{Alternative axion mass definition}{19}{section*.28}%
+\contentsline {subsubsection}{\numberline {4.3.2}complete example in {\tt python}\xspace }{19}{subsubsection.4.3.2}%
+\contentsline {paragraph}{Compilation of the shared library}{21}{section*.29}%
+\contentsline {paragraph}{The entire code}{21}{section*.30}%
+\contentsline {paragraph}{Alternative axion mass definition}{22}{section*.31}%
+\contentsline {subsubsection}{\numberline {4.3.3}Results}{22}{subsubsection.4.3.3}%
+\contentsline {section}{\numberline {5}Acknowledgements}{23}{section.5}%
+\contentsline {section}{\numberline {6}Summary}{23}{section.6}%
+\contentsline {section}{\numberline {A}Basics of embedded Runge-Kutta Mehtods}{23}{appendix.A}%
+\contentsline {subsection}{\numberline {A.1}Embedded RK methods}{24}{subsection.A.1}%
+\contentsline {paragraph}{Step-control}{24}{section*.35}%
+\contentsline {paragraph}{Correspondence between {\tt MiMeS}\xspace parameters and RK ones}{25}{section*.36}%
+\contentsline {subsection}{\numberline {A.2}Explicit embedded RK methods}{25}{subsection.A.2}%
+\contentsline {subsection}{\numberline {A.3}Rosenbrock methods}{25}{subsection.A.3}%
+\contentsline {paragraph}{Implementing a new Butcher tableau in {\tt NaBBODES}}{26}{section*.38}%
+\contentsline {paragraph}{How to compile {\tt MiMeS}\xspace in order to use the newly implemented method}{27}{section*.39}%
+\contentsline {section}{\numberline {B}{\tt C++}\xspace classes}{27}{appendix.B}%
+\contentsline {subsection}{\numberline {B.1}{\tt Cosmo} class}{27}{subsection.B.1}%
+\contentsline {subsection}{\numberline {B.2}{\tt AnharmonicFactor} class}{28}{subsection.B.2}%
+\contentsline {subsection}{\numberline {B.3}{\tt AxionMass} class}{28}{subsection.B.3}%
+\contentsline {subsection}{\numberline {B.4}{\tt AxionEOM} class}{29}{subsection.B.4}%
+\contentsline {subsection}{\numberline {B.5}{\tt Axion} class}{30}{subsection.B.5}%
+\contentsline {section}{\numberline {C}{\tt python}\xspace interface}{31}{appendix.C}%
+\contentsline {subsection}{\numberline {C.1}{\tt Cosmo} class}{31}{subsection.C.1}%
+\contentsline {subsection}{\numberline {C.2}{\tt AxionMass} class}{32}{subsection.C.2}%
+\contentsline {subsection}{\numberline {C.3}{\tt Axion} class}{33}{subsection.C.3}%
+\contentsline {paragraph}{Important difference between the {\tt C++}\xspace version}{35}{section*.40}%
+\contentsline {section}{\numberline {D}{\tt WKB} module}{35}{appendix.D}%
+\contentsline {section}{\numberline {E}The {\tt ScanScript} module}{35}{appendix.E}%
+\contentsline {subsection}{\numberline {E.1}The {\tt Scan} class}{35}{subsection.E.1}%
+\contentsline {subsection}{\numberline {E.2}The {\tt ScanObs} class}{36}{subsection.E.2}%
+\contentsline {subsection}{\numberline {E.3}\tt FT class}{37}{subsection.E.3}%
+\contentsline {section}{\numberline {F}Utilities}{38}{appendix.F}%
+\contentsline {subsection}{\numberline {F.1}\tt FormatFile.sh}{38}{subsection.F.1}%
+\contentsline {subsection}{\numberline {F.2}\tt timeit.sh}{39}{subsection.F.2}%
+\contentsline {subsection}{\numberline {F.3}{\tt Timer} {\tt C++}\xspace class}{39}{subsection.F.3}%
+\contentsline {subsection}{\numberline {F.4}{\tt linspace} function}{39}{subsection.F.4}%
+\contentsline {subsection}{\numberline {F.5}{\tt logspace} function}{40}{subsection.F.5}%
+\contentsline {subsection}{\numberline {F.6}{\tt map} function}{40}{subsection.F.6}%
+\contentsline {section}{\numberline {G}Quick guide to the user input}{40}{appendix.G}%
diff --git a/README.md b/README.md
index c7a758a..0ec083d 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,32 @@
-# MiMeS
+# MiMeS
Misalignment Mechanism Solver
+
+The documentation is available on [arXiv](https://arxiv.org/abs/2110.12253).
+
+
+If you wish to just use MiMeS
, clone the [stabe](https://github.com/dkaramit/MiMeS/tree/stable) branch:
+
git clone https://github.com/dkaramit/MiMeS/tree/stable
+
+
+Another option is the master branch, which is where developement mostly happens, including the implementation of the new versions of [NaBBODES
](https://github.com/dkaramit/NaBBODES.git) and [SimpleSplines
](https://github.com/dkaramit/SimpleSplines.git) (both are being developed independently by myself). This means that the code in the master branch may not always work.
+
+However, if you would like to try and run the master branch, you need to run
+git clone https://github.com/dkaramit/MiMeS.git
+cd MiMeS
+git submodule init
+git submodule update --remote
+
+
+In order to begin using MiMes
, you need a machine that can run bash
and a version of g++
that supports the C++17
standard.
+
+Once you have downloaded MiMeS
, just run
+cd MiMeS
+bash configure.sh
+make
+
+This will compile the shared libraries you'll need in order to call MiMeS
from python
. Also, it compiles some examples written in C++
. There are several examples C++
python
(including python
in jupyter
notebooks) that can be found in MiMeS/UserSpace
. So feel free to check them out. Detailed description of what MiMeS
does can be found in the [documentation](https://arxiv.org/abs/2110.12253). However, for those brave enough, almost every line of code is commented, in order to be able to follow the logic yourselves.
+
+Enjoy,
+Dimitris
+
+