diff --git a/contents/preamble.tex b/contents/preamble.tex
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/contents/tech-solvers.tex b/contents/tech-solvers.tex
index 55f0df650432e895a22a52c6f073b32c021f6e6b..e787bc472089c0df97fe89c938f15165fa18255f 100644
--- a/contents/tech-solvers.tex
+++ b/contents/tech-solvers.tex
@@ -14,4 +14,170 @@
 \label{chap:tech:solvers}
 
 
+\section{Blade Element theory}
+\label{chap:tech:solvers:BET}
+
+Thrust, torque and power for the whole rotor:
+
+\begin{align}
+  \label{eq:tech:solvers:BET:thrust}
+  \thrust &= \nBlades (d\lift \sin\indAngle - d\drag \cos\indAngle)\\
+  \label{eq:tech:solvers:BET:torque}
+  \torque &= \nBlades (d\lift \cos\indAngle + d\drag \sin\indAngle) \aRad\\
+  \label{eq:tech:solvers:BET:power}
+  \power &= \nBlades (d\lift \cos\indAngle + d\drag \sin\indAngle) \aRad \angVel
+\end{align}
+, where $\indAngle$ is the induced angle:
+\begin{equation}
+  \label{eq:tech:solvers:BET:indAngle}
+  \tan^{-1}\indAngle = \dfrac{\aVel_A}{\aVel_T}
+\end{equation}
+
+\section{Momentum theory}
+\label{chap:tech:solvers:mom}
+Mass flow rate through the disk:
+
+\begin{equation}
+  \label{eq:tech:solvers:mom:mass}
+  \mFlow = \dens (\aVel_A + \indAxVel) d\area = \dens (\aVel_A + \indAxVel) 2 \pi y dy
+\end{equation}
+
+Thrust:
+\begin{equation}
+  \label{eq:tech:solvers:mom:thrust}
+  \begin{split}
+    d\thrust & = \mFlow \indAxWake \\
+             & = \mFlow (2\indAxVel) \\
+             & = 4\pi \dens (\aVel_A + \indAxVel) \indAxVel y dy
+  \end{split}
+\end{equation}
+Likewise, the torque is given by
+\begin{equation}
+  \label{eq:tech:solvers:mom:torque}
+  \begin{split}
+    d\torque & = \mFlow \aRad \indSwirl
+  \end{split}
+\end{equation}
+
+
+
+\section{Solvers}
+\label{chap:tech:solvers:solvers}
+\rotare implements four different solvers, all of them based on the same set of
+initial equations
+(see~\ref{eq:tech:solvers:BET:thrust}-\ref{eq:tech:solvers:BET:power} and \todo{ref
+for momentum eq}).
+
+These solver differs by introducing some additional assumptions or by modifying
+the nonlinear system of equations (mostly the momentum equations) in order to
+simplify its formulation or the convergence of its solution.
+
+\subsection{Leishman solver}
+\label{chap:tech:solvers:leishman}
+This solver is based on the methodology described in \todo{cite: Leishman}.
+
+
+
+\subsection{Induction factor}
+\label{chap:tech:solvers:indfact}
+
+This solver is commonly used for the study of propellers or wind turbines. It
+does not rely on additional assumptions, but rather on a reformulation of the
+momentum equations in terms of induction factors. This induction factors lighten
+a bit the formulation. The main drawback is that they are not compatible for the
+analysis of rotors with zero external velocity (such as helicopter in hover or
+propellers in idle).
+
+We start by defining the axial and tangential (swirl) induction factors:
+\begin{align}
+  \label{eq:tech:solvers:indfact:a}
+  \aVel_A &= (1+\axFact)\aVel_\infty \\
+  \label{eq:tech:solvers:indfact:b}
+  \aVel_T &= (1-b)\angVel \aRad
+\end{align}
+and then inject these in the momentum equations \ref{eq:tech:solvers:mom:thrust}
+and (\ref{eq:tech:solvers:mom:torque}).
+
+As it can be seen directly in Eq.\ref{eq:tech:solvers:indfact:a}, this
+formulation falls down when the free stream velocity, $\aVel_\infty$, is zero.
+In that situation, it is more interesting to keep the original formulation for
+the thrust equation (in terms of velocities) and only use the tangential inflow
+ratio in the torque equation.
+
+Using the inflow factors, the thrust equations becomes:
+\begin{equation}
+  \label{eq:tech:solvers:indfact:thurst}
+  \begin{split}
+    d\thrust & = 4\pi \dens (\aVel_A + \indAxVel) \indAxVel \aRad dy \\
+             & = 4\pi \dens (1 + \axFact) a \aVel_\infty^2 \aRad dy
+  \end{split}
+\end{equation}
+, and the torque equation becomes
+\begin{equation}
+  \label{eq:tech:solvers:indfact:thurst}
+  \begin{split}
+    d\torque & = 2\pi \aRad \dens (\aVel_A + \indAxVel) (2\tgFact\angVel\aRad) \aRad dy \\
+             & = 4\pi \aRad^3 \dens (1 + \axFact) \aVel_\infty \tgFact \angVel dy
+  \end{split}
+\end{equation}
+
+\subsubsection{Resolution}
+The system made of the Blade Element equations and the new form of the momentum
+equations is then solved using \matlab's \lst{fsolve} function in order to
+determine the value of both induction factors. The solution is initialized with
+an axial inflow factor of 0.01 and assuming no swirl is induced.
+
+
+
+\subsection{Induced velocities}
+\label{chap:tech:solvers:indvel}
+
+This solver is a pure resolution of the initial system, without any major
+rewrite or additional assumptions. It is a bit more formal, but has the benefit
+of being directly usable in any flow condition.
+
+\subsubsection{Resolution}
+The system is solved using \matlab's \lst{fsolve} function in order to determine
+directly the induced velocities at the rotor disk. The solution is initialized
+by considering that the axial induced velocity is 0.01 m/s and the tangential
+component is 0.
+
+
+\subsection{Stahlhut solver}
+\label{chap:tech:solvers:stahlhut}
+This solver relies on a complete rewriting of the system in a single nonlinear
+transcendental equation. This improves significantly the convergence of the
+system and facilitate the determination of a solution. The only drawback is that
+the equation formed is much more complex and less intuitive than the ones at the
+base of the system.
+
+
+\section{Coaxial rotors}
+\label{chap:tech:solver:coax}
+
+The analysis of coaxial rotors is currently supported for either hovering/idle
+rotors or axial flows only.
+
+In that cases, the first rotor is evaluated exactly as if it was in isolation.
+The axial and swirl velocity induced by the first rotor as then passed to the
+second rotor as inlet velocity. The contraction of the wake is then calculated
+based on the distance between the two rotors and the velocity profile is then
+adapted accordingly.
+The second rotor is then evaluated as if it was in isolation as well, but with
+the new inlet velocity profile.
+
+
+\section{Oblique flows}
+\label{chap:tech:solver:oblique}
+
+\rotare currently implements oblique flows for single isolated rotors only. The
+analysis of such flows for multi-rotor systems involves the determination of the
+actual wake geometry. This is commonly done through other methods (vortex
+sheets), which is currently out of the scope of this software.
+
+For oblique flows, the solution of the blade elements will depend on the
+azimuthal position of the blade. It is therefore required to calculate the
+forces for all azimuthal positions and then integrate around the complete
+circle.
+
 
diff --git a/style/definitions.sty b/style/definitions.sty
index cf08b53e3390a9c15680fd525f25076e4a198f0d..5efeae8684685ba8ed038ffa752b8f000f540122 100644
--- a/style/definitions.sty
+++ b/style/definitions.sty
@@ -61,31 +61,34 @@
 
 % --- Velocities ---------------------------------------------------------------
 \newcommand{\indSwirl}{\ensuremath{u_i}} % Swirl velocity, in-plane toward rot blade
-\newcommand{\indAxVel}{\ensuremath{u_i}} % Induced velocity, normal to rotor dis
+\newcommand{\indAxVel}{\ensuremath{v_i}} % Induced velocity, normal to rotor dis
 \newcommand{\airspeed}{\ensuremath{V_\infty}} % Freestream velocity
-\newcommand{\velA}{\ensuremath{V_A}} % Axial velocity component
-\newcommand{\velR}{\ensuremath{V_R}} % Resultant velocity at the rotor plane
-\newcommand{\velRadial}{\ensuremath{V_\text{radial}}} % Radial component of freestream velocity
-\newcommand{\velT}{\ensuremath{V_T}} % Tangential component at the rotor plane
-\newcommand{\indAxWake}{\ensuremath{w}} % Slipstream velocity downstream
+\newcommand{\aVel}{\ensuremath{V}} % Axial velocity component
+\newcommand{\indAxWake}{\ensuremath{v_w}} % Slipstream velocity downstream
+\newcommand{\indSwirlWake}{\ensuremath{u_w}} % Slipstream velocity downstream
+\newcommand{\axFact}{\ensuremath{a}} % Axial induction factor
+\newcommand{\tgFact}{\ensuremath{b}} % Tangential induciton factor
+
 
 
 \newcommand{\angVel}{\ensuremath{\Omega}} % Angular velocity
-\newcommand{\aoa}{\ensuremath{\alpha}} % Angle of attack
-\newcommand{\aoaZero}{\ensuremath{\alpha_0}} % Zero-lift angle of attack
 
 % --- Angles -------------------------------------------------------------------
-\newcommand{\sweep}{\ensuremath{\Lambda}} % Circulation
+\newcommand{\sweep}{\ensuremath{\Lambda}} % Sweep
+\newcommand{\indAngle}{\ensuremath{\phi}} % Induced angle
+\newcommand{\aoa}{\ensuremath{\alpha}} % Angle of attack
 
 % --- Others -------------------------------------------------------------------
 \newcommand{\area}{\ensuremath{A}} % (Rotor) Area
 \newcommand{\radius}{\ensuremath{R}} % Rotor radius
-\newcommand{\relRad}{\ensuremath{r}} % Nondimensional radial position along the blade
-\newcommand{\absRad}{\ensuremath{y}} % Radial distance along the blade
+\newcommand{\rRad}{\ensuremath{r}} % Nondimensional radial position along the blade
+\newcommand{\aRad}{\ensuremath{y}} % Radial distance along the blade
 \newcommand{\advRat}{\ensuremath{\mathcal{J}}} % Advance ratio
 \newcommand{\mFlow}{\ensuremath{\dot{m}}} % Mass flow rate
 
 \newcommand{\mach}{\ensuremath{\mathcal{M}}} % Mach number
+\newcommand{\reynolds}{\ensuremath{\mathcal{Re}}} % Reynolds number
+\newcommand{\dens}{\ensuremath{\rho}} % Density
 \newcommand{\nBlades}{\ensuremath{N_b}} % Number of blades
 
 % --- Forces, torques, powers, etc ---------------------------------------------