diff --git a/theory/latex/swift.tex b/theory/latex/swift.tex
index e57faff9f7ab0f6a476656781bfcc38cc7900f0c..184943a21aef5401236255a4bcb87296bb33a33a 100755
--- a/theory/latex/swift.tex
+++ b/theory/latex/swift.tex
@@ -380,7 +380,7 @@ The second loop is used to compute the accelerations (tertiary quantities). The
 \label{eq:dudt}\\
  \frac{dh_i}{dt} &=& \frac{h_i}{3}\sum_j \frac{m_j}{\rho_j} \left(\vec{v_j} - \vec{v_i} \right)
 \cdot\vec{\nabla_r}W(\vec{r}_{ij}, h_i)\\
- v_{sig,i} &=& c_i + c_j + \max_j(0, 3\hat{r}_{ij} \cdot (\vec{v}_j - \vec{v}_i))
+ v_{sig,i} &=& c_i + c_j + \max_j(0, 3\hat{r}_{ij} \cdot (\vec{v}_j - \vec{v}_i)) \label{eq:sigvel}
 \end{eqnarray}
 
 In practice the loop is here performed over all pairs of particles such that $|\vec{r}_{ij}| < \zeta h_i$ or
@@ -562,108 +562,140 @@ function. It is just a more convenient way to represent entropy.
 THESE QUANTITIES ARE CONSERVED ONLY IF ONE SINGLE TIME STEP IS USED FOR ALL PARTICLES !!
 
 
-\section{Improved SPH equations}
+\section{Gadget-2 Viscosity}
 
-The equations \ref{eq:acceleration} and \ref{eq:dudt} correspond to a non-physical system with no viscosity and no
-thermal conduction. The physical model can be improved by adding some terms which vary depending on the authors. We
-follow here, D. Price and W. Dehnen.
-These terms require second derivatives of the fields, which can be expressed in terms of the second derivative of $W$.
-However, due to discreteness effects computing the derivatives of a field using $\partial^2_{rr}W$ is very noisy even
-when using high-order polynomial. For this reason a wrong second derivative is used based on the first derivative. We
-first introduce $F(\vec{r}_{ij},h_i)$, the scalar part of the gradient of $W$. It is defined as
+ In \gadget, artificial viscosity is introduced by adding a term to both equation \ref{eq:acceleration} and
+\ref{eq:dudt}:
 
-\begin{equation}
- \nabla_r W(\vec{r}_{ij},h_i) = F(\vec{r}_{ij},h_i) \hat{r}_{ij}
-\end{equation}
-
-which in 3D implies that
-
-\begin{equation}
- F_{ij}(h_i) \equiv F(\vec{r}_{ij},h_i) = \frac{1}{h_i^4}f'\left(\frac{|\vec{r}_{ij}|}{h_i}\right)
-\end{equation}
-
-where $f$ is the dimensionless part of the kernel introduced earlier. For symmetry reasons, we will use
-
-\begin{eqnarray}
- \bar{F}_{ij} &=& \frac{1}{2} \left(F_{ij}(h_i) + F_{ij}(h_j)\right) \\
-	      &=& \frac{1}{2h_i^4}f'\left(\frac{|\vec{r}_{ij}|}{h_i}\right) +
-\frac{1}{2h_j^4}f'\left(\frac{|\vec{r}_{ij}|}{h_j}\right) \\
-\end{eqnarray}
-
-in the equations. A decent place-holder for the second derivative of $W$ is then $-2F_{ij}/|\vec{r}_{ij}|$.
-
-\subsection{Artificial viscosity}
-
- Artificial viscosity can be introduced by adding a term to both equation \ref{eq:acceleration} and \ref{eq:dudt}:
-
-\begin{eqnarray}
-  \vec{a_i} &\stackrel{visc}{=}& 2\sum_j m_j \frac{\alpha v_{sig}\left(\vec{v}_i -
-\vec{v}_j\right)\cdot\hat{r}_{ij}}{\left(\rho_i + \rho_j\right)}\hat{r}_{ij}\cdot \bar{F}_{ij} \label{eq:visc}\\
- \frac{du_i}{dt} &\stackrel{visc}{=}& -\sum_j \frac{m_j}{(\rho_i + \rho_j)} \alpha
-v_{sig}\left[\left(\vec{v}_i-\vec{v}_j\right)\cdot\hat{r}_{ij}\right]^2 \bar{F}_{ij}
-\end{eqnarray}
-
-where $\alpha$ is the dimensionless artificial viscosity and
-
-\begin{equation}
- v_{sig} = \begin{cases}
-	    \frac{1}{2}\left[c_i + c_j - \beta\left(\vec{v}_i-\vec{v}_j\right)\cdot\hat{r}_{ij} \right] &
-\mbox{if} \quad \left(\vec{v}_i-\vec{v}_j\right)\cdot \hat{r}_{ij} < 0\\
-            0 & \mbox{if} \quad \left(\vec{v}_i-\vec{v}_j\right)\cdot \hat{r}_{ij} > 0
-            \end{cases}
-\end{equation}
-
-corresponds to the maximal (average) signal speed between pairs of particles.
-GADGET uses $\alpha=1$ (but can be changed) and $\beta=3\alpha$ (fixed). In addition, the Balsara switch is used. \\
-
-Modern implementations of SPH use a variable viscosity $\alpha_i$ for each particle. The idea behind this is to switch
-of viscosity in the part of the flows where the fluid is dissipation-less and to switch it on in shocks. This is done by
-using a shock detector and then a slow decay of the viscosity with time. Following Price, we use
-
-\begin{eqnarray}
- \frac{d\alpha_i}{dt} &=& \left(\alpha_{max}-\alpha_i\right)\mathcal{S}~+\frac{(\alpha_i-\alpha_{min})c_i\sigma}{h_i}\\
- \mathcal{S} &=& \max\left(0, -\nabla\cdot \vec{v}_i \right)
-\end{eqnarray}
-
-with (usually) $\alpha_{max} = 2$, $\alpha_{min} = 0.1$ and $\sigma=0.1$. The $\alpha$ term in (\ref{eq:visc}) is then
-replaced by $\bar\alpha = \frac{1}{2}(\alpha_i + \alpha_j)$. The same applies to $\beta$ which is now, $\beta =
-3\bar\alpha$.\\
-The divergence of the velocity field can be computed in the density loop and the exact expression is
-
-\begin{equation}
- \label{eq:div_v}
- \nabla\cdot v_i = \frac{1}{\rho_i}\sum_j m_j \left(\vec{v}_j - \vec{v}_i\right)\cdot \nabla_r W(\vec{r}_{ij},h_i) 
-\end{equation}
-
-\subsection{Thermal conductivity}
-
-The thermal conductivity  which dissipates energy at discontinuities in the energy field can be modeled by adding
-another term to the internal energy evolution equation (\ref{eq:dudt}). 
-
-\begin{equation}
- \frac{du_i}{dt} \stackrel{cond}{=} - \sum_j \alpha_u v_{sig,u}\left(u_i - u_j\right)\bar{F}_{ij}
-\end{equation}
+\begin{eqnarray*}
+  \vec{a_i} &\stackrel{visc}{=}& -\frac{1}{4}\sum_j m_j \Pi_{ij} \left(\vec{\nabla_r}W(\vec{r}_{ij},
+h_i)+\vec{\nabla_r}W(\vec{r}_{ij}, h_j)\right) (f_i+f_j)\\
+  \frac{du_i}{dt} &\stackrel{visc}{=}& \frac{1}{8} \sum_j m_j \Pi_{ij}(\vec{v}_i - \vec{v}_j)
+\left(\vec{\nabla_r}W(\vec{r}_{ij},
+h_i)+\vec{\nabla_r}W(\vec{r}_{ij}, h_j)\right) (f_i+f_j)
+\end{eqnarray*}
 
-This time, the signal velocity must vanish when we are dealing with a contact discontinuity as no energy should flow
-between the two regions in this case. A good choice is to use
+The viscosity tensor $\Pi_{ij}$ is given by:
 
-\begin{equation}
- v_{sig,u} = \sqrt{\frac{2|P_i-P_j|}{\rho_i+\rho_j}}
-\end{equation}
+\begin{eqnarray*}
+ \Pi_{ij} &=& -\alpha \frac{\left(c_i + c_j - 3w_{ij}\right)w_{ij}}{\rho_i + \rho_j} \\
+ w_{ij} &=& \min\left(0, \frac{(\vec{v}_i - \vec{v}_j)\cdot(\vec{r}_i - \vec{r}_j}{|r_{ij}|}\right)
+\end{eqnarray*}
 
-Once again, the $\alpha$-term is made to decay far from any discontinuity. In this case, the equation reads
+The $w_{ij}$ term can be re-used to express the signal velocity \ref{eq:sigvel}. The viscosity parameter $\alpha$
+usually takes value in the range $[0.5, 2]$. The Balsara switch $(f_i+f_j)$ is built from two terms that are
+pre-computed in the density loop:
 
-\begin{eqnarray}
- \frac{d\alpha_{u,i}}{dt} &=&  \mathcal{S}_u - \frac{\alpha_{u,i}c_i\sigma}{h_i}  \\
- \mathcal{S}_u &=& \frac{h_i \nabla^2 u_i}{10}
-\end{eqnarray}
+\begin{eqnarray*}
+ f_i &=& \frac{|\vec\nabla \times \vec{v}_i|}{|\vec\nabla \cdot \vec{v}_i| + |\vec\nabla \times \vec{v}_i| +
+10^{-4}\frac{c_j}{h_j}} \\
+ \vec\nabla \times \vec{v}_i &=& -\frac{1}{\rho_i}\sum_j m_j (\vec{v}_j - \vec{v}_i)\times
+\vec{\nabla_r}W(\vec{r}_{ij}, h_i) \\
+ \vec\nabla \cdot \vec{v}_i &=& \frac{1}{\rho_i}\sum_j m_j (\vec{v}_j - \vec{v}_i)\cdot \vec{\nabla_r}W(\vec{r}_{ij},
+h_i)
+\end{eqnarray*}
 
-where again $\sigma=0.1$ as in the viscosity terms. As in the velocity divergence case, the laplacian of $u$ can be
-computed in the density loop and reads
 
-\begin{equation}
- \nabla^2 u_i = \frac{2}{\rho_i} \sum_j m_j \left(u_j - u_i\right) \frac{F_{ij}}{|\vec{r}_{ij}|}
-\end{equation}
+% The equations \ref{eq:acceleration} and \ref{eq:dudt} correspond to a non-physical system with no viscosity and no
+% thermal conduction. The physical model can be improved by adding some terms which vary depending on the authors. We
+% follow here, D. Price and W. Dehnen.
+% These terms require second derivatives of the fields, which can be expressed in terms of the second derivative of $W$.
+% However, due to discreteness effects computing the derivatives of a field using $\partial^2_{rr}W$ is very noisy even
+% when using high-order polynomial. For this reason a wrong second derivative is used based on the first derivative. We
+% first introduce $F(\vec{r}_{ij},h_i)$, the scalar part of the gradient of $W$. It is defined as
+% 
+% \begin{equation}
+%  \nabla_r W(\vec{r}_{ij},h_i) = F(\vec{r}_{ij},h_i) \hat{r}_{ij}
+% \end{equation}
+% 
+% which in 3D implies that
+% 
+% \begin{equation}
+%  F_{ij}(h_i) \equiv F(\vec{r}_{ij},h_i) = \frac{1}{h_i^4}f'\left(\frac{|\vec{r}_{ij}|}{h_i}\right)
+% \end{equation}
+% 
+% where $f$ is the dimensionless part of the kernel introduced earlier. For symmetry reasons, we will use
+% 
+% \begin{eqnarray}
+%  \bar{F}_{ij} &=& \frac{1}{2} \left(F_{ij}(h_i) + F_{ij}(h_j)\right) \\
+% 	      &=& \frac{1}{2h_i^4}f'\left(\frac{|\vec{r}_{ij}|}{h_i}\right) +
+% \frac{1}{2h_j^4}f'\left(\frac{|\vec{r}_{ij}|}{h_j}\right) \\
+% \end{eqnarray}
+% 
+% in the equations. A decent place-holder for the second derivative of $W$ is then $-2F_{ij}/|\vec{r}_{ij}|$.
+% 
+% \subsection{Artificial viscosity}
+% 
+%  Artificial viscosity can be introduced by adding a term to both equation \ref{eq:acceleration} and \ref{eq:dudt}:
+% 
+% \begin{eqnarray}
+%   \vec{a_i} &\stackrel{visc}{=}& 2\sum_j m_j \frac{\alpha v_{sig}\left(\vec{v}_i -
+% \vec{v}_j\right)\cdot\hat{r}_{ij}}{\left(\rho_i + \rho_j\right)}\hat{r}_{ij}\cdot \bar{F}_{ij} \label{eq:visc}\\
+%  \frac{du_i}{dt} &\stackrel{visc}{=}& -\sum_j \frac{m_j}{(\rho_i + \rho_j)} \alpha
+% v_{sig}\left[\left(\vec{v}_i-\vec{v}_j\right)\cdot\hat{r}_{ij}\right]^2 \bar{F}_{ij}
+% \end{eqnarray}
+% 
+% where $\alpha$ is the dimensionless artificial viscosity and
+% 
+% \begin{equation}
+%  v_{sig} = \begin{cases}
+% 	    \frac{1}{2}\left[c_i + c_j - \beta\left(\vec{v}_i-\vec{v}_j\right)\cdot\hat{r}_{ij} \right] &
+% \mbox{if} \quad \left(\vec{v}_i-\vec{v}_j\right)\cdot \hat{r}_{ij} < 0\\
+%             0 & \mbox{if} \quad \left(\vec{v}_i-\vec{v}_j\right)\cdot \hat{r}_{ij} > 0
+%             \end{cases}
+% \end{equation}
+% 
+% corresponds to the maximal (average) signal speed between pairs of particles.
+% GADGET uses $\alpha=1$ (but can be changed) and $\beta=3\alpha$ (fixed). In addition, the Balsara switch is used. \\
+% 
+% Modern implementations of SPH use a variable viscosity $\alpha_i$ for each particle. The idea behind this is to switch
+% of viscosity in the part of the flows where the fluid is dissipation-less and to switch it on in shocks. This is done by
+% using a shock detector and then a slow decay of the viscosity with time. Following Price, we use
+% 
+% \begin{eqnarray}
+%  \frac{d\alpha_i}{dt} &=& \left(\alpha_{max}-\alpha_i\right)\mathcal{S}~+\frac{(\alpha_i-\alpha_{min})c_i\sigma}{h_i}\\
+%  \mathcal{S} &=& \max\left(0, -\nabla\cdot \vec{v}_i \right)
+% \end{eqnarray}
+% 
+% with (usually) $\alpha_{max} = 2$, $\alpha_{min} = 0.1$ and $\sigma=0.1$. The $\alpha$ term in (\ref{eq:visc}) is then
+% replaced by $\bar\alpha = \frac{1}{2}(\alpha_i + \alpha_j)$. The same applies to $\beta$ which is now, $\beta =
+% 3\bar\alpha$.\\
+% The divergence of the velocity field can be computed in the density loop and the exact expression is
+% 
+% \begin{equation}
+%  \label{eq:div_v}
+%  \nabla\cdot v_i = \frac{1}{\rho_i}\sum_j m_j \left(\vec{v}_j - \vec{v}_i\right)\cdot \nabla_r W(\vec{r}_{ij},h_i) 
+% \end{equation}
+% 
+% \subsection{Thermal conductivity}
+% 
+% The thermal conductivity  which dissipates energy at discontinuities in the energy field can be modeled by adding
+% another term to the internal energy evolution equation (\ref{eq:dudt}). 
+% 
+% \begin{equation}
+%  \frac{du_i}{dt} \stackrel{cond}{=} - \sum_j \alpha_u v_{sig,u}\left(u_i - u_j\right)\bar{F}_{ij}
+% \end{equation}
+% 
+% This time, the signal velocity must vanish when we are dealing with a contact discontinuity as no energy should flow
+% between the two regions in this case. A good choice is to use
+% 
+% \begin{equation}
+%  v_{sig,u} = \sqrt{\frac{2|P_i-P_j|}{\rho_i+\rho_j}}
+% \end{equation}
+% 
+% Once again, the $\alpha$-term is made to decay far from any discontinuity. In this case, the equation reads
+% 
+% \begin{eqnarray}
+%  \frac{d\alpha_{u,i}}{dt} &=&  \mathcal{S}_u - \frac{\alpha_{u,i}c_i\sigma}{h_i}  \\
+%  \mathcal{S}_u &=& \frac{h_i \nabla^2 u_i}{10}
+% \end{eqnarray}
+% 
+% where again $\sigma=0.1$ as in the viscosity terms. As in the velocity divergence case, the laplacian of $u$ can be
+% computed in the density loop and reads
+% 
+% \begin{equation}
+%  \nabla^2 u_i = \frac{2}{\rho_i} \sum_j m_j \left(u_j - u_i\right) \frac{F_{ij}}{|\vec{r}_{ij}|}
+% \end{equation}