diff --git a/quad8/continuummechanics/notes/.gitignore b/quad8/continuummechanics/notes/.gitignore
new file mode 100644
index 0000000..f0de8a3
--- /dev/null
+++ b/quad8/continuummechanics/notes/.gitignore
@@ -0,0 +1 @@
+main.pdf
diff --git a/quad8/continuummechanics/notes/README.md b/quad8/continuummechanics/notes/README.md
new file mode 100644
index 0000000..7c3c5ea
--- /dev/null
+++ b/quad8/continuummechanics/notes/README.md
@@ -0,0 +1 @@
+Comentari ràpid: els apunts es van quedar a mig fer, per això falta algun capítol i els darrers temes no estan complerts.
diff --git a/quad8/continuummechanics/notes/img/beam_coordinate_system.pdf b/quad8/continuummechanics/notes/img/beam_coordinate_system.pdf
new file mode 100644
index 0000000..046f193
--- /dev/null
+++ b/quad8/continuummechanics/notes/img/beam_coordinate_system.pdf
Binary files differ
diff --git a/quad8/continuummechanics/notes/img/elasticity.png b/quad8/continuummechanics/notes/img/elasticity.png
new file mode 100644
index 0000000..463caa9
--- /dev/null
+++ b/quad8/continuummechanics/notes/img/elasticity.png
Binary files differ
diff --git a/quad8/continuummechanics/notes/latexmkrc b/quad8/continuummechanics/notes/latexmkrc
new file mode 100644
index 0000000..1ffd353
--- /dev/null
+++ b/quad8/continuummechanics/notes/latexmkrc
@@ -0,0 +1,2 @@
+$ENV{'TEXINPUTS'}='./../apuntsgenerics_package//:' . $ENV{'TEXINPUTS'};
+$ENV{'BSTINPUTS'}='./../apuntsgenerics_package//:' . $ENV{'BSTINPUTS'};
diff --git a/quad8/continuummechanics/notes/main.pdf b/quad8/continuummechanics/notes/main.pdf
new file mode 100644
index 0000000..e4ebc34
--- /dev/null
+++ b/quad8/continuummechanics/notes/main.pdf
Binary files differ
diff --git a/quad8/continuummechanics/notes/main.tex b/quad8/continuummechanics/notes/main.tex
new file mode 100644
index 0000000..eaa328c
--- /dev/null
+++ b/quad8/continuummechanics/notes/main.tex
@@ -0,0 +1,37 @@
+\documentclass[12pt,english]{notes}
+
+\usepackage{apuntsgenerics}
+\input{preamble.tex}
+
+\title{Continuum Mechanics}
+\author{Aina Gaya}
+\author{Adrià Vilanova}
+
+\titlemonth{Primavera 2021}
+
+\newcommand{\ex}{\text{Ex}}
+
+\begin{document}
+
+{
+  \setlength{\parskip}{0em}
+  \makecover
+}
+
+\input{notes2}
+
+\input{notes3}
+
+\input{notes4}
+
+\input{notes5}
+
+\input{notes6}
+
+\input{notes7}
+
+\input{notes8}
+
+\printindex
+
+\end{document}
diff --git a/quad8/continuummechanics/notes/notes2.tex b/quad8/continuummechanics/notes/notes2.tex
new file mode 100644
index 0000000..e2f1441
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes2.tex
@@ -0,0 +1,254 @@
+% !TEX root = main.tex
+\chapter{The stress tensor and mechanical equilibrium}
+\section{Introduction}
+In the case of continuum media, we distinguish between 2 types of forces:
+\begin{enumerate}
+  \item \textbf{Body (or contact) forces}: we think of them as force fields acting on and within the material.
+
+  \item \textbf{Contact forces}: they always act on surfaces. They can be separated into:
+
+  \begin{enumerate}
+    \item Normal
+    \item Tangential
+  \end{enumerate}
+\end{enumerate}
+
+\begin{example}
+  Gravity. It penetrates all bodies from afar and acts on a material particle of mass $dM$ with a force $d\vec{F} = \vec{g} \, dM$, where $dM = \underbrace{\rho}_{\text{density}} dV$ and $d\vec{F} = \underbrace{\vec{f}}_{\rho \vec{g}} dV$.
+
+  $\vec{g}$ is the force per unit mass, and $\vec{f}$ is the force per unit volume.
+\end{example}
+
+
+
+In order to represent forces, we use stress fields. Those have dimensions of $\displaystyle \frac{\text{force}}{\text{area}}$, and so their S.I. unit is $\si{\pascal} = \si{\newton \per \meter\squared}$.
+
+We can distinguish 2 types of stresses:
+\begin{enumerate}
+  \item \textbf{Normal stresses}: related to the normal forces acting on surfaces.
+
+  \item \textbf{Shear (or tangential) stresses}: related to tangential fores acting on surfaces.
+\end{enumerate}
+
+Solids (either at rest or in motion) and fluids in motion can sustain shear stresses (in addition to normal stresses), while fluids at rest can only sustain normal stresses (they have no shear rigidity).
+
+But we can also distinguish stresses between the following 2 types:
+\begin{enumerate}
+  \item \textbf{External stresses}: act at the interface between the system and the environment (fluids under external stresses flow, while solids deform).
+
+  \item \textbf{Internal stresses}: act at any internal ``imaginary'' surface. They will be represented by the stress tensor. In absecne of external forces there is usually no internal stress in a material.
+\end{enumerate}
+
+%\begin{example}
+%  Consider the macroscopic solid object shown in \ref{figure:stressDefinitionDiagram}. % TODO: Escriure aquest exemple
+%\end{example}
+
+\section{The nine components of stress}
+Consider an arbitrary surface and assume the z-axis is perpendicular to it.
+
+% TODO: Afegir figura
+
+Then, we can define the following stresses:
+\begin{itemize}
+  \item $\pmb{\sigma_{xz}}$: \textbf{shear stress} corresponding to force $\pmb{dF_x}$ applied along the \textbf{x}-direction to a material surface element $dS_z$ with normal in the z-direction.
+
+  \item $\pmb{\sigma_{yz}}$: \textbf{shear stress} corresponding to force $\pmb{dF_y}$ applied along the \textbf{y}-direction to a material surface element $dS_z$ with normal in the z-direction.
+
+  \item $\pmb{\sigma_{zz}}$: \textbf{normal stress} corresponding to force $\pmb{dF_z}$ applied along the \textbf{z}-direction to a material surface element $dS_z$ with normal in the z-direction.
+\end{itemize}
+
+Continuing this argument for surface elements with normal along $x$ or $y$, it appears to be necessary to use at least 9 numbers to indicate the state of stress in a given point of a material in a cartesian coordinate system.
+
+Cauchy's stress hypothesis tells us that, in fact, only those 9 numbers are necessary:
+
+\begin{prop}[Cauchy's stress hypothesis]
+  \index{Cauchy's!stress hypothesis}
+  The nine components $\sigma_{ij}$ ($i, j \in \{ x, y, z \}$) are all that is needed to determine the force $d\vec{F} = (dF_x, dF_y, dF_z)$ on a point in an arbitrary surface element, $d\vec{S} = (dS_x, dS_y, dS_z)$, according to the following rule:
+  \begin{equation}
+    \label{eq:cauchyStressHypRule}
+    \begin{cases}
+      dF_x = \sigma_{xx} dS_x + \sigma_{xy} dS_y + \sigma_{xz} dS_z \\
+      dF_y = \sigma_{yx} dS_x + \sigma_{yy} dS_y + \sigma_{yz} dS_z \\
+      dF_z = \sigma_{zx} dS_x + \sigma_{zy} dS_y + \sigma_{zz} dS_z.
+    \end{cases}
+  \end{equation}
+  Using the Einstein summation convention, we can express the previous rule as \[ dF_i = \sigma_{ij} dS_j. \]
+\end{prop}
+
+This leads us to the definition of the stress tensor:
+
+\begin{defi}[Stress!tensor]
+  The \underline{stress tensor} is the second-rank tensor $\TT{\sigma}$, whose components in cartesian coordinates are $\sigma_{ij}$: the force $dF_i$ applied along the $i$-direction to a material surface element $dS_j$ with normal in the $j$-direction.
+\end{defi}
+
+\begin{obs}
+  $\TT{\sigma}$ is a second-rank tensor because of the quotient rule.
+\end{obs}
+
+\begin{obs}
+  From \eqref{eq:cauchyStressHypRule} we can see that $d\vec{F} = \TT{\sigma} \cdot d\vec{S} = \TT{\sigma} \cdot \hat{n} \, dS$, where $\hat{n}$ is the vector normal to the surface. This lets us define the stress vector.
+\end{obs}
+
+\begin{defi}[Stress!vector]
+  The \underline{stress vector} is \[ \frac{d\vec{F}}{dS} = \TT{\sigma} \cdot \hat{n}. \]
+\end{defi}
+
+\begin{obs}
+  Although the stress vector is a vector, it is not a vector field in the strict sense of the word, because it also depends on the normal to the surface on which it acts.
+
+  In contrast, $\TT{\sigma}$ is, in general, a tensor field:
+  \[ \sigma_{ij} \equiv \sigma_{ij} (\vec{x}, t) \quad i, j \in \{ x, y, z \}. \]
+\end{obs}
+
+\section{Mechanical pressure}
+In hydrostatic equilibrium, the only contact force is pressure since there are no shear stresses (the fluid is still). Hence,
+\[ d\vec{F} = -p d\vec{S}. \]
+Since also $d\vec{F} = \TT{\sigma} dS$, we find
+\[ \TT{\sigma} = -p \TT{I} \]
+which can also be expressed as $\sigma_{ij} = -p\delta_{ij}$.
+
+% TODO: Afegir 2 punts dels apunts (el primer és la convenció que $p > 0$ vol dir que la força es dirigeix cap al material, i el segon no em va donar temps d'apuntar-lo, s'ha de mirar la gravació)
+
+
+Generally (solids at rest/motion and fluids at motion), $\TT{\sigma}$ will also have off-diagonal non-vanishing components, and its diagonal components will be different from each other. A diagonal component behaves as a (negative) pressure.
+
+However, there is no unique way of defining the pressure, so wherever pressure is used (outside of the case corresponding to hydrostatic equilibrium), it must be accompanied by a suitable definition.
+
+Sometimes, the pressure will be identified with the mechanical pressure, defined as:
+\begin{equation}
+  \label{eq:pressure}
+  p = -\frac{1}{3} (\sigma_{xx} + \sigma_{yy} + \sigma_{zz}) = -\frac{1}{3} \Tr(\TT{\sigma}).
+\end{equation}
+
+\begin{obs}
+  $\Tr(\TT{\sigma})$ is an invariant of $\TT{\sigma}$. Hence, $p$ defined in this way ensures it is a scalar field, taking the same value in all coordinate systems.
+\end{obs}
+
+\section{Total force and mechanical equilibrium}
+Including a body force $d\vec{F}_b = \vec{f} dV$ (for example $\vec{f} = \rho \vec{g}$), the total force on a body of volume $V$ with surface $S$ is:
+\[ \vec{F} = \int_V \vec{f} \dif V + \oint_S \TT{\sigma} \cdot \dif \vec{S} \quad \text{(integral formulation)} \]
+or
+\[ F_i = \int_V f_i \dif V + \oint_S \sum_j \sigma_{ij} \dif S_j \notate[X]{{}={}}{1.25}{\scriptstyle \text{Gauss's theorem}} \int_V f_i \dif V + \int_V \sum_j \partial_j \sigma_{ij} \dif V = \int_V \lp f_i + \sum_j \partial_j \sigma_{ij} \rp \dif V \implies \]
+\[ \implies \vec{F} = \int_V (\vec{f} + \text{div}\, \TT{\sigma}) \dif V. \]
+
+This lets us define an effective force density:
+
+\begin{defi}[Effective force density]
+  The \underline{effective force density} is
+  \[ \vec{f}^* = \vec{f} + \text{div}\, \TT{\sigma} = \vec{f} + \div \TT{\sigma}^T. \quad (\text{local formulation}) \]
+\end{defi}
+
+\begin{obs}
+  $\vec{f}^*$ is not a long-range volume force, but a local expression that for a tiny material particle equals the sum of the true long-range force (e.g. gravity) and all the short-range contact forces acting on its surface.
+\end{obs}
+
+\begin{obs}
+  \[ \underbrace{\text{div}\, \TT{\sigma} = \div \TT{\sigma}^T}_{\substack{\text{expression valid in} \\ \text{any coordinate system}}} = \underbrace{\begin{pmatrix}
+    \partial_x & \partial_y & \partial_z
+  \end{pmatrix} \begin{pmatrix}
+    \sigma_{xx} & \sigma_{yx} & \sigma_{zx} \\
+    \sigma_{xy} & \sigma_{yy} & \sigma_{zy} \\
+    \sigma_{xz} & \sigma_{yz} & \sigma_{zz}
+  \end{pmatrix}}_{\text{expression in cartesian components}}. \]
+\end{obs}
+
+Mechanical equilibrium (translational) will be reached if $\vec{F} = 0 \quad \forall V$, which is equivalent to
+\[ \vec{f}^* = 0 \quad \forall \text{ material particles}. \quad \lp \substack{\text{local condition} \\ \text{for mech. eq.}} \rp \] % TODO(avm99963): Maybe delete the parenthesis part?
+
+This yields the following condition:
+
+\begin{prop}
+  A material is in mechanical equilibrium (translational) if it satisfies \underline{Cauchy's equilibrium equation}\index{Cauchy's!equilibrium equation}:
+  \[ \vec{f} + \div \TT{\sigma}^T = 0 \]
+  or
+  \[ f_i + \sum_j \partial_j \sigma_{ij} = 0, \quad i \in \{ x, y, z \}. \]
+\end{prop}
+
+\begin{obs}
+  Cauchy's equilibrium equation is a PDE governing mechanical equilibrium in all kinds of continuous matter. Written in detail:
+  \[ \begin{cases}
+    f_x + \partial_x \sigma_{xx} + \partial_y \sigma_{xy} + \partial_z \sigma_{xz} = 0 \\
+    f_y + \partial_x \sigma_{yx} + \partial_y \sigma_{yy} + \partial_z \sigma_{yz} = 0 \\
+    f_z + \partial_x \sigma_{zx} + \partial_y \sigma_{zy} + \partial_z \sigma_{zz} = 0.
+  \end{cases} \]
+\end{obs}
+
+These equations must be supplemented by constitutive equations, connecting the stress tensor with the variables describing the state of the material (state of deformation or deformation rate), to determine the stress distribution in continuous matter.
+
+\begin{example}
+  Fluid at rest in the presence of a gravitational field.
+
+  As seen in \eqref{eq:pressure}, $\TT{\sigma} = -p \TT{I}$, and the fluid is under the influence of gravity: $\vec{f} = \rho \vec{g}$, where $\vec{g}$ is the acceleration of gravity.
+
+  \index{Hydrostatic equilibrium}If we impose mechanical equilibrium:
+  \[ 0 = f_i + \partial_j \sigma_{ij} = \rho g_i + \partial_j(-p \delta_{ij}) = \rho g_i - \partial_i p \implies \]
+  \[ \implies \rho \vec{g} - \grad p = 0. \quad \text{(hydrostatic equilibrium)} \]
+\end{example}
+
+\section{Moments of force and symmetry of $\TT{\sigma}$}
+An additional condition which is normally imposed on $\TT{\sigma}$ is its symmetry, that is:
+\[ \sigma_{ij} = \sigma_{ji} \quad \forall i, j. \]
+
+This reduces the number of independent stress components from 9 to 6.
+
+In order to justify the assumption that $\TT{\sigma}$ is symmetric, let's consider a material particle shaped as a rectangular box of sides $a$, $b$, $c$ in mechanical equilibrium:
+
+% TODO: Afegir figura
+
+We can calculate the torque about the center $M$, which will be:
+\[ \vec{M_z} = \sigma_{xy} \, ac \, \frac{b}{2} \lp -\hat{k} \rp + \sigma_{xy} \, ac \, \frac{b}{2} \lp - \hat{k} \rp + \sigma_{yx} \, bc \, \frac{a}{2} \hat{k} + \sigma_{yx} \, bc \, \frac{a}{2} \hat{k} = \]
+\[ = abc (- \sigma_{xy} + \sigma_{yx}) \hat{k}. \]
+
+Thus, if $\sigma_{yx} \neq \sigma_{xy}$, there's a resultant moment of force on the box.  In mechanical equilibrium we must require $M_z = 0$, and consequently $\sigma_{yx} = \sigma_{xy}$. Similarly, requiring $M_x = 0 \implies \sigma_{zy} = \sigma_{yz}$, and $M_z = 0 \implies \sigma_{xz} = \sigma_{zx}$.
+
+\begin{obs}
+  This means that $\TT{\sigma} \text{ symmetric} \implies \vec{M} = 0 \quad \forall V$ in mechanical equilibrium.
+
+  However, keep in mind that in general, for $\vec{M} = 0$, $\TT{\sigma}$ doesn't need to be symmetric (there's another condition that needs to be fulfilled). In fact, there are theories that do not assume $\sigma$ symmetric.
+\end{obs}
+
+Let's take a deeper look at the moments of inertia: the total moment of force is
+\[ \vec{M} = \int_V \vec{x} \cross \dif \vec{F} = \int_V \vec{x} \cross \vec{F}^* \dif V. \]
+
+If we impose mechanical equilibrium ($\vec{f}^*$) everywhere, then $\vec{M} = 0$. This is true even if $\TT{\sigma}$ is not symmetric.
+
+Now consider that
+\[ \vec{M} = \sum_i \hat{e}_i M_i = \int_V \sum_{i, j, k} \hat{e}_i \varepsilon_{ijk} x_j f_k^* \dif V = \int_V \sum_{i, j, k} \hat{e}_i \varepsilon_{ijk} x_j \lp f_k + \sum_l \partial_l \sigma_{kl} \rp \dif V = \]
+\[ = \int_V \sum_{i, j, k} \hat{e}_i \varepsilon_{ijk} \lp x_j f_k + \sum_l \partial_l (x_j \sigma_{kl}) - \sigma_{kj} \rp \dif V = \]
+\begin{equation}
+  \label{eq:momentumOfForces}
+  = \vec{M} =
+  \underbrace{\int_V \vec{x} \cross \vec{f} \dif V}_{\substack{\text{moment of external} \\ \text{body forces}}} +
+  \underbrace{\oint_S \vec{x} \cross \TT{\sigma} \cdot \dif \vec{S}}_{\substack{\text{moment of external} \\ \text{surfaces forces}}} +
+  \underbrace{\int_V \sum_{i, j, k} \hat{e}_i \, \varepsilon_{ijk} \, \sigma_{jk} \dif V}_{\substack{\text{kind of internal moment} \\ \text{associated with the material} \\ \text{in the body}}}.
+\end{equation}
+
+The last term vanishes $\forall V$ iff $\TT{\sigma}$ is symmetric.
+
+% TODO: Repasar la següent observació:
+\begin{obs}
+  In our earlier justification, we only calculated the moment of the external forces acting on a material particle. But the external moment does not need to vanish in equilibrium if the stress tensor is asymmetric. Hence, only the sum of the second and third terms in \eqref{eq:momentumOfForces} must vanish.
+\end{obs}
+
+\begin{obs}
+  Important: in normal elastic materials where stress only depends on deformation, $\TT{\sigma}$ is automatically symmetric. The symmetry of $\TT{\sigma}$ must then be viewed as a constitutive equation when adopted in general.
+\end{obs}
+
+As $\TT{\sigma}$ is symmetric, it can be diagonalized. This means we can find the principal directions of stress with their associated principal tensions or stresses.
+
+$\TT{\sigma}$ can be described by an ellipsoid with 3 principal axes. For surfaces normal to these axes, the stresses correspond to pulls or pushes perpendicular to the surfaces. There are no shear forces along these faces. For any stress, we can always choose our axes so that the shear components are zero.
+
+If the ellipsoid is a sphere, there are only normal forces in any direction: hydrostatic pressure.
+
+As for $\TT{\sigma}$, the principal basis (the stress tensor ellipsoid) is generally different from point to point in space.
+
+\section{Boundary conditions for $\TT{\sigma}$}
+$\TT{\sigma}$ is a collection of quantities that may be assumed, like hydrostatic pressure, to be continuous in regions where material properties change continuously.
+
+Across real boundaries (surfaces or interfaces), where material properties may change abruptly, Newton's third law demands (in the absence of surface tension) that the 2 sides act on each other with equal and opposite forces. Since the surface elements of the 2 sides are opposite to each other, it follows that the stress vector, $\TT{\sigma} \cdot \hat{n}$, must be continuous across a surface with normal $\hat{n}$ (in the absence of surface tension). Then:
+\[ [ \TT{\sigma} \cdot \hat{n} ] = 0, \]
+where $[ \cdot ] \equiv \text{difference between the 2 sides of the interface}$.
+
+However, this does not mean that all components of $\TT{\sigma}$ should be continuous. Since it is a vector condition, it imposes continuity on 3 linear combinations of stress components, but leaves 3 other linear combinations free to jump discontinuously.
+
+In particular, $[ \TT{\sigma} \cdot \hat{n} ] = 0 \centernot\implies \text{continuity of mechanical pressure}$. Hence, the appealing intuitive meaning of pressure in hydrostatic loses its meaning.
diff --git a/quad8/continuummechanics/notes/notes3.tex b/quad8/continuummechanics/notes/notes3.tex
new file mode 100644
index 0000000..2688d53
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes3.tex
@@ -0,0 +1,48 @@
+% !TEX root = main.tex
+\chapter{The strain tensor (el tensor de deformacions)}
+
+\section{Deformations}
+\begin{defi}[Displacement vector]
+  The \underline{displacement vector} is:
+  \[\vec{u}(\vec{r}) = \vec{r'} - \vec{r}, \]
+  and determines the displacement of materials particles in the medium.
+\end{defi}
+
+\section{Strain tensor and Cauchy's strain tensor}
+\begin{defi}[Strain!tensor]
+  The \underline{strain tensor} $\TT{u}$ characterizes the local deformations state of the medium, and is defined as:
+  \[ u_{ik} = \frac{1}{2} \left( \partial_k u_i + \partial_i u_k + \sum_l \partial_i u_l \cdot \partial_k u_l \right). \]
+\end{defi}
+
+\begin{obs}
+  By definition $\TT{u}$ is symmetric. Thus, it can be diagonalized at every point; that is, we can find 3 axes such as that
+  \[ \TT{u} = \begin{pmatrix}
+    u^{(1)} & 0 & 0 \\
+    0 & u^{(2)} & 0 \\
+    0 & 0 & u^{(3)}
+  \end{pmatrix}. \]
+
+  The eigenvalues of $\TT{u}$ correspond, for small deformations, to the relative change in length along the principal directions:
+  \[ \frac{\dif x_i' - \dif x_i}{\dif x_i} \approx u^{(i)}. \]
+\end{obs}
+
+\begin{defi}[Cauchy's!strain tensor]
+  For small deformations, we can neglect the last term of the strain tensor, and use \underline{Cauchy's strain tensor}:
+  \[ \TT{u} = \left( \grad \vec{u} + (\grad \TT{u})^T \right) \]
+\end{defi}
+
+\begin{obs}
+  In the limit of small deformations, the volume changes as:
+  \[ \frac{\dif V' - \dif V}{\dif V} \approx u^{(1)} + u^{(2)} + u^{(3)} = \Tr(\TT{u}) = \div \vec{u}. \]
+
+  Note the trace of a matrix is an invariant under change of representation, so this always holds.
+\end{obs}
+
+\begin{obs}
+  \index{Incompressibility}
+  The previous observation means we can impose incompressibility by imposing $\Tr(\TT{u}) = \div \vec{u} = 0.$
+\end{obs}
+
+\begin{obs}
+  The strain tensor contains all the information about the local geometric changes caused by the displacement: it's a good measure of the local deformation.
+\end{obs}
diff --git a/quad8/continuummechanics/notes/notes4.tex b/quad8/continuummechanics/notes/notes4.tex
new file mode 100644
index 0000000..28122f1
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes4.tex
@@ -0,0 +1,122 @@
+% !TEX root = main.tex
+\chapter{Elasticity}
+
+We are going to connect forces and strains in solids. We define $\varepsilon = \frac{\Delta L}{L_0}$.
+
+\begin{figure}[h!]
+    \centering
+    \includegraphics[scale=0.5]{img/elasticity.png}
+    \caption{Diagram showing the different regimes of an elastic material.}
+    \label{fig:elasticity_graph}
+\end{figure}
+
+In figure \ref{fig:elasticity_graph}, we can distinguish four zones:
+\begin{itemize}
+    \item \underline{Elastic deformation} (reversible): includes a linear part (small $\varepsilon$).
+    \item \underline{Yield stress}: plastic deformation begins.
+    \item \underline{Plastic deformation} (irreversible).
+    \item \underline{Rupture}: defines ``tensile strength''.
+\end{itemize}
+
+We can distinguish 2 types of materials:
+
+\begin{enumerate}
+  \item \underline{Brittle materials}: they don't present plastic behavior (like glass). Abrupt break-up at threshold \footnote{umbral} $\varepsilon$.
+  \item \underline{Ductile materials}: they do present plastic behavior before rupturing, like in figure \ref{fig:elasticity_graph}.
+\end{enumerate}
+
+Our focus will be linear elastic regime. We are looking for a linar relation between stress and strain. It will be valid for small $\varepsilon$, and the rank of validity depends on the material. When stresses grow large, most materials deform more than predicted by Hooke's law and in the end reach the elasticity limit, where they either become plastic or break.
+
+In continuous matter we do not fo into the microscopic interactions responsible for elastic behaviour (\textit{but it's super cool}). A lot of materials can be characterized with few (just two) parameters: the Young's modulus $Y$\footnote{Oju, que que Lautrup li diu $E$} and the Poisson's ratio $\nu$. We'll see this in the next section.
+
+%\begin{defi}[Young's!modulus] % NOTE(Aina): m'estic fent bastnat de lio amb això- crec que no ho vam definir a classe, sino que vam fer direcament el tensor d'elasticitat i no trobo al llibreque surti. no se
+                               % NOTE(Adri): Okey, ho he comentat :)
+%  The \underline{Young's modulus}
+%\end{defi}
+
+%\begin{defi}[Poisson's!ratio]
+%  The \underline{Poisson's ratio}
+%\end{defi}
+
+\section{Hooke's law in tensorial form for homogeneous and isotropic materials}
+It's the most general $\TT{\sigma} - \TT{u}$ relation. The linearity stress-strain can be expressed as:
+$$\sigma_{ij} = \sum_{k,l} E_{ijkl} u_{kl}$$
+Where $E_{ijkl}$ are the components of the tensor of elasticity. This relation is valid even for anisotropic materials.
+
+If the medium is isotropic: %TODOOOOOOOOOOOOOOO
+\[ \boxed{\sigma_{ij} = 2\mu u_{ij} + \lambda(\sum_k u_{kk})\delta_{ij}.} \]
+
+\index{Lamé coefficients}
+  Hooke's law for isotropic materials is a good assumption, but it's not strict. $\lambda$ and $\mu$ are the \textbf{Lamé coefficients}. They are constants. $\lambda$ has no special name, but $\mu$ is called \textit{shear modulus}, because it controls the magnitude of shear stresses.
+
+\begin{obs}
+  Lamé coefficents must be mesured in pressure units, because the strain tensor is dimensionless.
+\end{obs}
+
+\begin{obs}
+  If $u_{ij} = 0 \; \forall i, j$, then $\sigma_{ij} = 0 \; \forall i,j$. Hooke's law gives the additional stress due to the deformation.
+\end{obs}
+
+\begin{obs}
+  $\mu = 0$ implies $\sigma_{ij} (i \neq j) = 0$ (meaning $\TT{\sigma}$ is diagonal). The behavior is ``similar'' to a fluid at rest.
+\end{obs}
+
+\begin{obs}
+  Stress and strain depend on representations, Euler (the stress and the strain tensors are both viewed as functions of the actual position) or Lagrange (where the tensors are viewed as functions of the position of a material particle in the undeformed body). This distinction is not relevant for small deformations.
+\end{obs}
+
+\begin{obs}
+  Linearity implies superposition principle:
+  \[ \left. \begin{array}{r}
+    \{ \text{stresses} \}_1 \longrightarrow \{ \text{strains} \}_1 \\
+    \{ \text{stresses} \}_2 \longrightarrow \{ \text{strains} \}_2
+  \end{array} \right\} \implies \{ \text{stresses} \}_1 + \{ \text{stresses} \}_2 \longrightarrow \{ \text{strains} \}_1 + \{ \text{strains} \}_2. \]
+\end{obs}
+
+\section{Relation between Lamé coefficients and other elastic moduli}
+%example simple shear
+
+%streched rod-lke object laid out along x-direction...
+
+$$ \boxed{\lambda = \frac{Y \nu}{(1-2\nu)(1+\nu)}} $$
+$$ \boxed{\mu = \frac{Y}{2(1+\nu)}} $$
+
+Since $\sigma_{ii} = (2\mu + 3\lambda) u_{ii}$ and the stress tensor in Hooke's law respresents the change in stress due to deformation, the change in mechanical pressure caused by deformation is: %mathpix
+
+% Això d'aquí abaix és una cosa que he fet per l'entregable (i ho he esborrat pq no s'havia de fer així hehe), però que serveix pels apunts (ho posaré bonic i en el lloc correcte més tard, per això ho poso comentat):
+%The difference in mechanical pressure is:
+$$ \Delta p = - \frac{1}{3} \Tr \TT{\sigma} \notate[X]{{}={}}{1.25}{\scriptstyle \text{Hooke's law}}
+- \frac{1}{3} (2 \mu + 3 \lambda) \sum_i u_{ii} \approx - \left( \lambda + \frac{2}{3} \mu \right) \frac{\Delta V}{V}. $$
+
+This can be rewritten in terms of $Y$ and $\nu$:
+$$ \Delta p = - \left( \frac{Y \nu}{(1 - 2 \nu)(1 + \nu)} + \frac{2}{3} \frac{Y}{2 (1 + \nu)} \right) \frac{\Delta V}{V} = - \frac{3 Y \nu + Y (1 - 2 \nu)}{3 (1 - 2\nu) (1 + \nu)} \frac{\Delta V}{V} = $$
+$$ = - Y \frac{1 + \nu}{3 (1 - 2 \nu) (1 + \nu)} \frac{\Delta V}{V} = - \frac{Y}{3 (1 - 2 \nu)} \frac{\Delta V}{V}. $$
+
+\section{Inverting Hooke's law}
+It can be shown that, by inverting Hooke's law, we obtain:
+\[ u_{ij} = \frac{\sigma_{ij}}{2 \mu} - \frac{\lambda}{2 \mu (3 \lambda + 2 \mu)} \left( \sum_{k} \sigma_{kk} \right) \delta_{ij}, \]
+which can also be expressed as:
+\[ u_{ij} = \frac{1 + \nu}{Y} \sigma_{ij} - \frac{\nu}{Y} \left( \sum_k \sigma_{kk} \right) \delta_{ij}. \]
+
+Furthermore, we can express $Y$ and $\nu$ in terms of the Lamé coefficients:
+\[ \boxed{Y = \frac{\lambda}{2(\lambda + \mu)}} \]
+\[ \boxed{\nu = \mu \frac{3 \lambda + 2 \mu}{\lambda + \mu}} \]
+
+\section{Positivity constraints}
+To do.
+
+%\section{Hooke's law in anisotropic materials} %extra material al igual ho faig -- Totalment :')
+%
+\section{Elastic energy}
+
+\begin{defi}[Elastic energy density]
+  The \underline{elastic energy density} (stored in internal stresses of the material is):
+  \[ u_\text{elastic} = \frac{1}{2} \sum_{i, j, k, l} E_{ikjl} u_{ij} u_{kl} = \frac{1}{2} \sigma_{ij} u_{ij} = \frac{1}{2} \TT{\sigma} : \TT{u}. \]
+
+  For isotropic materials, this can be written as:
+  \[ u_\text{elastic} = \mu \Tr (\TT{u}^2) + \frac{1}{2} \lambda \left( \Tr(\TT{u}) \right)^2 = \frac{1 + \nu}{2Y} \Tr(\TT{u}^2) - \frac{\nu}{2Y} \left( \Tr(\TT{\sigma}) \right)^2. \]
+\end{defi}
+
+\section{Total energy in a conservative external field}
+Let's consider $\vec{f}$: an external field of conservative forces (e.g. gravitational field, which will be the most recurring in this course). Then, in this case, we have:
+\[ u_\text{total} = \underbrace{- \vec{f} \cdot \vec{u}}_{u_\text{p}} + \underbrace{\frac{1}{2} \TT{\sigma} : \TT{u}}_{u_\text{elastic}}. \quad \text{(elastic density)} \]
diff --git a/quad8/continuummechanics/notes/notes5.tex b/quad8/continuummechanics/notes/notes5.tex
new file mode 100644
index 0000000..057603d
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes5.tex
@@ -0,0 +1,73 @@
+% !TEX root = main.tex
+\chapter{Basic elastostatics}
+\section{Navier-Cauchy equilibrium equation}
+
+\begin{prop}[Navier-Cauchy equilibrium equation]
+  \index{Navier-Cauchy equilibrium equation}
+  If we assume isotropic materials and small deformations, by combining the mechanical equilibrium equation, Hooke's law and Cauchy's strain tensor, we arrive at the Navier-Cauchy equilibrium equation:
+  \[ \vec{f} + \mu \laplacian \vec{u} + (\lambda + \mu) \grad \div \vec{u}. \]
+\end{prop}
+
+\begin{obs}
+  Note that this equation is linear, so the superposition principle holds.
+\end{obs}
+
+\begin{obs}
+  The boundary conditions will depend on the elastostatic problem.
+
+  In some cases, a part of the body is ``glued'' to a hard surface where the displacement has to vanish, and where the environment provides the external reaction forces necessary to balance the surface stresses. On the remainder part of the body surface, explicit external forces implement the ``user control'' of the deformation. In regions where the external forces vanish, the body surface is said to be free.
+
+  \textbf{Remember:} for the body to remain at rest, the total external force and the total external moment of force must always be zero.
+\end{obs}
+
+\begin{obs}[Unicity of solutions]
+  For linearly elastic problems, solutions to the mechanical equilibrium equations are unique (see Lautrup for the development).
+\end{obs}
+
+\section{The bent beam}
+Geometrically, a bent beam consists of a bundle of straight parallel lines or rays, covering the same cross-section inany plane orthogonal tothe lines. Assume it is made of homogeneous, istropic, elastic material.
+
+\begin{defi}[bending,!Pure]
+  \underline{Pure bending} is a bending process with the following properties: there are no body forces, external stresses are applied to the terminal cross-sections only, and on average, these stresses should not stretch or compress the beam, but only provide external moments of force at the terminals that only involve normal stresses.
+
+  This means some rays will be stretched and some compressed, but on average there will be no stretching or compression.
+\end{defi}
+
+\begin{defi}[bending,!Uniform]
+  In \underline{uniform bending}, stresses and strains are the same everywhere along the beam.
+
+  This is only possible if the originally straight beam of length $L$ is deformed to become a section of a circular ring of radius $R$ with every ray becoming part of a perfect circle.
+\end{defi}
+
+Let's choose a coordinate system for the beam:
+
+\begin{figure}[h!]
+    \centering
+    \includegraphics[scale=0.5]{img/beam_coordinate_system.pdf}
+    \caption{Diagram showing the beam (in purple) in a coordinate system.}
+    \label{fig:beam_coordinate_system}
+\end{figure}
+
+As shown in figure \ref{fig:beam_coordinate_system}, we've chosen the $z$-axis for the beam, and the terminal cross-sections of the beam are at $z = 0$, $z = L$.
+
+We impose the centroid of the cross section to be at the middle:
+\[ \int_A x \, \dif A = \int_A y \, \dif A = 0. \]
+
+% TODO: No tinc ni idea de què és el neutral ray
+
+\begin{prop}[Euler-Bernouilli law]
+  \index{Euler-Bernouilli law}
+  The bending moment is:
+  \[ M_b = Y I K = \frac{Y I}{R}, \]
+  where $Y I$ is called the flexural rigidity.
+\end{prop}
+
+The bending energy per unit beam length is:
+\[ \frac{\dif U}{\dif l} = \frac{Y I}{2 R^2} = \frac{M_b^2}{2 Y I}. \]
+
+\begin{obs}
+  Note that this magnitude is constant for pure bending where all cross-sections are equivalent.
+\end{obs}
+
+% TODO:
+To do: acabar aquest tema. % Me'l salto per ara perquè és un pal terrible hehe
diff --git a/quad8/continuummechanics/notes/notes6.tex b/quad8/continuummechanics/notes/notes6.tex
new file mode 100644
index 0000000..dd6b46e
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes6.tex
@@ -0,0 +1,3 @@
+% !TEX root = main.tex
+\chapter{Elastic waves}
+To do
diff --git a/quad8/continuummechanics/notes/notes7.tex b/quad8/continuummechanics/notes/notes7.tex
new file mode 100644
index 0000000..d70cb15
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes7.tex
@@ -0,0 +1,186 @@
+% !TEX root = main.tex
+\chapter{Kinematics of fluids}
+
+We will study fluid motion. There are two possible descriptions of the flow, Eulerian (throgh a velocity field) and Lagrangian (following the particles as they move). We will use the first one.
+
+\section{Acceleration of a fluid particle}
+
+The change in velocity of the fluid particle results from the explicit variation of the velocity field with time, if the flow is non-stationary, and the probing of the velocity field by the particle, if the field is non-uniform.
+
+$$ \frac{d \vec{v}}{dt} = \frac{\partial \vec{v}}{\partial t} + (\vec{v} \cdot \vec{\nabla} ) \vec{v} $$
+
+The first term is the Lagrangian derivative (how the velocity of the fluid particle changes in time), the second is the temporal change of the velocity at a fixed location (Eulerian derivative), and the third the temporal change of the velocity at a fixed time (convective derivative).
+
+\section{Some definitions}
+
+\begin{itemize}
+  \index{Stream!line}
+  \item \textbf{Streamlines:} field lines of the vector field $\vec{v} (\vec{r}, t)$. They are defined as the tangents, at every point, to the velocity vector $\vec{v}$. This condition can be expressed as $d\vec{r} \parallel \vec{v}$. A small displacement along the line is co-linear with $\vec{v}$.
+
+  \index{Stream!tube}
+  \item \textbf{Stream tubes:} set of streamlines which pass through a closed space curve. It is a conduct of impermeable walls with infinitessimal cross-section.
+
+  \index{Particle trajectory}
+  \item \textbf{Particle trajectories:} path that a fluid particle follows in time. It is also a set of successive positions through which the fluid particle passes as it moves. We obtain the particle trajectories by integrating with respect to time the Lagrangian velocity,
+
+  $$ \vec{r} (t) = \vec{r}_0 + \int_{t_0}^t \vec{v}(\vec{r}_0,t') dt'. $$
+
+  \index{flow,!Stationary}
+  \item \textbf{Stationary flow:} the velocity doesn't depend on time, this is,
+
+  $$ \frac{\partial \vec{v}}{\partial t} = 0. $$
+
+  \index{Flow rate}
+  \item \textbf{Flow rate:} the flow rate (or rate of flow) in area $A$ is defined as:
+  \[ Q := \int_A \vec{v} \cdot \dif \vec{S}. \]
+\end{itemize}
+
+\begin{obs}
+  If a flow is stationary, then the streamlines and path lines coincide. In general, they don't.
+\end{obs}
+
+\section{Deformations in flows}
+In fluid mechanics, the concepts of strain rate (change, per unit time, of the quantity under consideration) and rate of rotation replace those, for solids, of strain and rotation.
+
+\begin{defi}[Velocity gradient tensor]
+  We define the \textbf{velocity gradient tensor}, $\TT{G}$, as
+
+  $$ G_{ij} = \frac{\partial v_i}{\partial x_j} \to \TT{G} = \operatorname{grad} \vec{v} $$
+\end{defi}
+
+We can decompose it into symmetric and antisymmetric parts. $\TT{e}$ gives the rate of strain (pure deformation rate). It is symmetric by definition, and gives information about elongations and dilations.
+
+$\TT{w}$ gives the rate of rotation. It is antisymmetric by definition.
+
+$$ w_{ij} = \frac{1}{2}\left(\frac{\partial v_i}{\partial x_j} - \frac{\partial v_j}{\partial x_i}\right) $$
+
+\begin{defi}[Vortex vector]
+  We can associate a dual vector to this antisymmetric part: the \textbf{vortex vector}, which is a local angular velocity of rotation of the fluid element.
+
+  $$ \vec{\Omega} = \frac{1}{2} \vec{\nabla} \times \vec{v} = \frac{1}{2} \vec{w} \to \Omega_i = \frac{1}{2} \varepsilon_{ijk} (-w_{jk}), $$
+  where $w = \vec{\nabla} \times \vec{v} $ is the vorticity.
+\end{defi}
+
+We can decompose $\TT{e}$ into spherical and deviatoric parts:
+$$ \TT{e} = \operatorname{sph} (\TT{e}) + \operatorname{dev} (\TT{e}) = \TT{t} + \TT{d}, $$
+where $\TT{t} = \frac{1}{3}\delta_{ij} e_{ll}$ gives the volume rate of expansion of the elements of the fluid, and $\TT{d} = e_{ij} - \frac{1}{3}\delta_{ij} e_{ll}$ gives the deformation rates at constant volume of the flow elements.
+
+In summary, $G_{ij} = t_{ij} + d_{ij} + w_{ij}$. $t_{ij}$ is a diagonal tensor representing the change in volume of fluid elements. It is zero for incompressible fluids. $d_{ij}$ is a non-trace symmetric tensor related to the deformations of fluid elements at constant volume, and $w_{ij}$ is an antisymmetric tensor representing the solid-body rotation of fluid elements.
+
+\section{The stream function}
+
+It allows simplifying the treatment of the vector velocity field $\vec{v}$ of an incompressible fluid for the case where it only depends on two coordinates (2D flows or axisymmetric flows).
+
+\index{Potential vector}
+Since $\vec{\nabla} \cdot (\vec{\nabla} \times \vec{A}) = 0$ (all curls are solenoidal) we can introduce a vector function $\vec{A}$ that fulfills $\vec{v} = \vec{\nabla} \times \vec{A}$. This is the potential vector.
+
+Let's see how we can define the stream function in the two cases.
+
+\subsection{2D flows}
+We'll suppose that $\vec{v} = (v_x(x, y), v_y(x, y), 0)$, and also that the flow is incompressible. This means:
+\[ \div \vec{v} = \partial_x v_x + \partial_y v_y = 0. \]
+
+\index{Stream!function}
+This is automatically satisfied if $v_x = \partial_y \psi$ and $v_y = - \partial_x \psi$. The scalar function $\psi(x, y)$ is called the \underline{stream function}.
+
+In this case, the vector potential is $\vec{A} = \psi \hat{e}_z$.
+
+In polar coordinates $(r, \phi)$, incompressibility implies:
+\[ \begin{cases}
+  v_r = \frac{1}{r} \partial_\phi \psi, \\
+  v_\phi = - \partial_r \psi.
+\end{cases} \]
+
+\begin{obs}
+  Properties:
+
+  \begin{itemize}
+    \item The $\psi = \text{const.}$ lines coincide with the streamlines.
+    \item $\Delta \psi = \psi_2 - \psi_1$ represents the flow rate of fluid in a stream tube of rectangular cross-section located between streamlines $\psi = \psi_1$ and $\psi = \psi_2$ and unit depth in the $z$-direction.
+
+    This shows the flow rate in such a stream tube is constant everywhere along the tube.
+  \end{itemize}
+\end{obs}
+
+\subsection{Axisymmetric flows}
+\index{Stokes'!stream function}
+Axisymmetric flows are flows with an axis of symetry relative to which the velocity field is rotationally invariant. In this context, $\psi$ is called the \underline{Stokes' stream function}.
+
+\begin{itemize}
+  \item \underline{Cylindrical symmetry}: In cylindrical coordinates $(r, \phi, z)$, when $\vec{v}$ is independent of $\phi$:
+  \[ \div \vec{v} = 0 \implies \begin{cases}
+    v_r = \frac{1}{r} \partial_z \psi, \\
+    v_z = - \frac{1}{r} \partial_r \psi.
+  \end{cases} \]
+
+  \item \underline{Spherical symmetry}: In spherical coordinates $(r, \theta, \phi)$, when $\vec{v}$ is independent of $\phi$:
+  \[ \div \vec{v} = 0 \implies \begin{cases}
+    v_r = \frac{1}{r^2 \sin \theta} \partial_\theta \psi, \\
+    v_\phi = - \frac{1}{r \sin \theta} \partial_r \psi.
+  \end{cases} \]
+\end{itemize}
+
+\begin{obs}
+  Note for axisymmetric flows, $\psi$ has units of $\text{velocity} \cdot \text{area}$ ($\si{\meter\cubed\per\second}$, ``flow rate'') while for 2D flows, it has units of $\text{velocity} \cdot \text{area}$ ($\si{\meter\squared\per\second}$, ``flow rate'' per unit length).
+\end{obs}
+
+\section{Circulation and vorticity}
+\begin{defi}[Circulation of a velocity field]
+  Given vector field $\vec{v}(\vec{r}, t)$, we define its \underline{circulation}, at an instant $t$ along curve $C$ (which could be closed or not) as the line integral of the velocity field:
+  \[ \int_C \vec{v} \cdot \dif \vec{l}, \]
+  and its value depends, in general, of $C$, and its starting and ending points.
+\end{defi}
+
+\begin{prop}
+  Let's consider the case in which $C$ is a closed path. In this case:
+  \[ \Gamma = \oint_C \vec{v} \cdot \dif \vec{l} \notate[X]{{}={}}{1.25}{\scriptstyle \text{Stokes' theorem}} \int_A (\curl \vec{v}) \cdot \dif \vec{S} = \int_A \vec{\omega} \cdot \dif \vec{S}, \]
+  where $A$ is a surface containing the curve $C$ as a boundary.
+
+  The circulation per unit area along a path around a given point equals the component of the vorticity $\vec{\omega}$ normal to the planar surface containing the path. That is, the vorticity $\vec{\omega}$ represents the circulation around the unit area perpendicular to $\vec{\omega}$.
+\end{prop}
+
+\begin{defi}[Vorticity tube]
+  A vorticity tube is a volume from which vorticity lines (the lines parallel to the vorticity field) don't come in or out.
+\end{defi}
+
+\begin{defi}
+  \index{flow,!Rotational}\index{flow,!Irrotational}
+  If $\vec{\omega} = 0 \, \forall \vec{r}$, the flow is called \underline{irrotational}; otherwise, it is called \underline{rotational}.
+
+  Note that if $\vec{\omega} \neq 0$ but constant, we can use a coordinate system that rotates at angular speed $\vec{\Omega} = \frac{\vec{\omega}}{2}$ in which the flow is irrotational.
+\end{defi}
+
+\subsection{Rotational flow}
+$\curl \vec{v} = \vec{\omega}(\vec{r}, t)$ is a vector field that can be represented using vorticity lines and tubes.
+
+\[ \div \vec{\omega} = \div (\curl \vec{v}) = 0, \]
+which means that $\vec{\omega}$ is solenoidal. There are no sources or sinks of $\vec{\omega}$. Hence, vorticity lines close onto themselves or expand the limits of our system.
+
+Also, we have that the flux across closed surface A is:
+\[ \oint_A \vec{\omega} \cdot \dif \vec{S} \notate[X]{{}={}}{1.25}{\scriptstyle \text{Gauss theorem}} \int_V (\div \vec{\omega}) \, \dif V' = 0. \]
+
+Considering a vorticity tube between surface elements $\dif S_1$ and $\dif S_2$, we then see that $\omega_1 \dif S_1 = \omega_2 \dif S_2$. Hence, the vorticity flux is the same across all surface elements of the vorticity tube.
+
+\subsection{Irrotational flow}
+\index{Velocity potential}
+In this case, $\vec{\omega} = \curl \vec{v} = 0$ everywhere. Since $\curl (\div \Phi) = 0$ always, we can write $\vec{v} = \grad \Phi$. We call $\Phi$ the \underline{velocity potential}.
+
+\begin{prop}
+  In irrotational flows, the circulation of the velocity field along a curve can be expressed in terms of the velocity potential as:
+  \[ \int_\alpha^\beta \vec{v} \cdot \dif \vec{l} = \Phi_\beta - \Phi_\alpha. \]
+
+  Thus:
+  \[ \Phi(\vec{r}) = \Phi(\vec{r_0}) + \int_{\vec{r_0}}^{\vec{r}} \vec{v} \cdot d\vec{l}. \]
+
+  Furthermore, if $A$ is a simply connected surface and its boundary $\partial A$ is a curve $C$, then:
+  \[ \oint_{C} \vec{v} \cdot \dif \vec{l} = 0. \]
+\end{prop}
+
+\begin{obs}
+  Equipotential surfaces ($\Phi = \text{const.}$) are by definition such that $\vec{v}$ is perpendicular to them.
+\end{obs}
+
+\begin{prop}
+  If the flow is incompressible ($\div \vec{v} = 0$), then $\Phi$ satisfies Laplace's equation:
+  \[ 0 = \div \vec{v} = \div (\curl \Phi) = \laplacian \Phi. \]
+\end{prop}
diff --git a/quad8/continuummechanics/notes/notes8.tex b/quad8/continuummechanics/notes/notes8.tex
new file mode 100644
index 0000000..4d25f1d
--- /dev/null
+++ b/quad8/continuummechanics/notes/notes8.tex
@@ -0,0 +1,114 @@
+% !TEX root = main.tex
+\chapter{The continuity equation}
+
+The continuity equation expresses mass conservation locally.
+
+$$ \frac{\partial \rho}{\partial t} + \vec{\nabla} \cdot (\rho \vec{v}) = 0 $$
+
+Alternative expression:
+$$ \frac{d \rho}{d t} + \rho \vec{\nabla} \cdot \vec{v} = 0 $$
+
+The local incompressibility condition, $\vec{\nabla} \cdot \vec{v} = 0$, is equivalent to saying that the density of each fluid element is a constant during the flow, $\frac{d l}{dt} = 0$.
+
+It can be demonstrated that, in an stationary flow, the mass flux along a stream tube is constant.
+
+In presence of mass sources or sinks, the continuity equation:
+
+$$ \frac{\partial \rho}{\partial t} + \vec{\nabla} \cdot (\rho \vec{v}) = \Lambda $$
+
+Where $\Lambda$ is the mass created (positive) or destroyed (negative) per unit time and volume.
+
+\section{Equation of motion for a fluid}
+
+We will apply Newton's second law to a volume of fluid, $V$, comoving with the fluid. If we use Reynolds transport theorem and the continuity equation, we get the \textbf{local equation of motion} (for a fluid particle).
+
+$$ \rho \frac{\partial \vec{v}}{\partial t} + \rho (\vec{v} \cdot \vec{\nabla})\vec{v} = \vec{f} + \vec{\nabla} \cdot \TT{\sigma} $$
+
+This equation governs the dynamics of all continuous matter. Different types of materials are characterized by different expressions of $\TT{\sigma}$.
+
+\section{Streses in Newtonial fluids}
+
+For fluids at rest (this is, in hydrostatic equilibrium), we have $\TT{\sigma} = -p \TT{I}$. Now, for fluids in motion, we need to split the stress tensor and separate the part corresponding to preassure stresses. We get
+$$\TT{\sigma} = -p \TT{I} + \TT{\sigma}'$$
+Where we have defined $ \TT{\sigma}'$ as the viscosity stress tensor, associated with deformations caused by the motion.
+
+This tensor is symmetric and depends in $\TT{e}$. It is the symmetric parti of $\TT{\sigma}$ resulting from the deformation of the elements of the fluid.
+
+We define a \textbf{Newtonial fluid} as the fluid with components $\sigma'_{ij}$ that depend linearly on the components $e_{ij}$: $$\sigma'_{ij} = A_{ijkl} e_{kl}$$
+
+In an \textbf{isotropic media} the viscosity tensor must be related to $e_{ij}$ in a way that does not depent at all on the coordinate directions.
+
+$$ \sigma'_{ij} = 2Ae_{ij} + B e_{ll} \delta_{ij} $$
+
+Where A and B are constants, fluid properties. We can define $\eta = A$ (which tells about viscosity) and $\xi = \frac{2}{3}\eta + B$, the second vicosity.
+
+We get:
+
+$$ \sigma'_{ij} = \eta\left(2e_{ij} - \frac{2}{3}e_{ll} \delta_{ij}\right) + \xi e_{ll} \delta_{ij} $$
+
+The first term expresses deformation without volume change, and the second one isotropic dilation.
+
+For an incompressible fluid, $ \sigma'_{ij} = 2\eta e_{ij} $
+
+\section{Navier-Stokes equation}
+
+The Navier Stokes equation:
+
+$$
+\rho\left(\frac{\partial \vec{v}}{\partial t}+\vec{v} \cdot \nabla \vec{v}\right)=\vec{f}-\nabla p+\eta \nabla^{2} \vec{v}+\left(\frac{\eta}{3}+\xi\right) \nabla(\nabla \cdot \vec{v})
+$$
+
+If the fluid is incompressible, it reduces to
+
+$$
+\rho\left(\frac{\partial \vec{v}}{\partial t}+\vec{v} \cdot \nabla \vec{v}\right)=\vec{f}-\nabla p+\eta \nabla^{2} \vec{v}
+$$
+
+If we have an ideal fluid, $\eta = 0$,
+
+$$
+\rho\left(\frac{\partial \vec{v}}{\partial t}+\vec{v} \cdot \nabla \vec{v}\right)=\vec{f}-\nabla p
+$$
+This is the Euler's equation.
+
+We can find a dimensionless form (......)
+
+Reynolds number: $\frac{1}{Re} = \frac{\eta}{\rho \pi L}$ \\
+Froude number: $\frac{1}{Fr} = \frac{L f}{p \pi^2}$
+
+
+(...)
+
+Limiting behaviours:
+
+$$ Re = \frac{|\rho(\vec{v} \cdot \vec{\nabla})\vec{v}|}{|\eta \nabla^2 \vec{v}|} $$
+
+If $Re << 1$, then the viscous term dominates over the convective term.
+We get the Stokes equation:
+
+$$
+\rho\frac{\partial \vec{v}}{\partial t}=\vec{f}-\nabla p+\eta \nabla^{2} \vec{v}
+$$
+
+If $Re >> 1$, then we have the ideal fluid behavior or dry water behavior, and we get Euler's equation again.
+
+Even if $Re >> 1$, the geometry of a given problem may lead to a zero convective term. Also, near walls, friction plays a role and viscous effects cannot be neglected.
+
+\section{Boundary conditions}
+
+\subsection{Fluid-solid interface}
+The solid is assumed undeformable. We have a condition for the normal component of the velocity (it must be continuos):
+
+$$ \vec{v}_s \cdot \hat{n} = \vec{v}_f \cdot \hat{n} $$
+We will distinguish between:
+\begin{itemize}
+    \item \textbf{Ideal fluids ($\eta = 0$)}: we have no restriction on $\vec{v}_f \cdot \hat{t}$. The fluid can slip parallel to solid surface.
+    \item \textbf{Real fluids:} we have the no-slip restriction: they are tangencially attatched, and the tangencial components must match: $\vec{v}_s \cdot \hat{t} = \vec{v}_f \cdot \hat{t}$. With the condition for the normal component, we get $\vec{v}_s = \vec{v}_f$
+\end{itemize}
+Note that if the surface tension $\gamma$ is zero, we have
+
+$$ \sigma_s \cdot \hat{n} = \sigma_f \cdot \hat{n} $$
+
+This is not significant if the solid is undeformable.
+
+\subsection{Fluid-fluid interface}
diff --git a/quad8/continuummechanics/notes/preamble.tex b/quad8/continuummechanics/notes/preamble.tex
new file mode 100644
index 0000000..e4f99ee
--- /dev/null
+++ b/quad8/continuummechanics/notes/preamble.tex
@@ -0,0 +1,20 @@
+\usepackage{physics} % For the \laplacian command
+
+\setlength{\parskip}{1em}
+
+% Plantilles del notate
+\def\myupbracefill#1{\rotatebox{90}{\stretchto{\{}{#1}}}
+\def\rlwd{.5pt}
+\newcommand\notate[4][B]{%
+  \if B#1\else\def\myupbracefill##1{}\fi%
+  \def\useanchorwidth{T}%
+  \setbox0=\hbox{$\displaystyle#2$}%
+  \def\stackalignment{c}\stackunder[-6pt]{%
+    \def\stackalignment{c}\stackunder[-1.5pt]{%
+      \stackunder[2pt]{\strut $\displaystyle#2$}{\myupbracefill{\wd0}}}{%
+    \rule{\rlwd}{#3\baselineskip}}}{%
+  \strut\kern9pt$\rightarrow$\smash{\rlap{$~#4$}}}%
+}
+
+% Tensor commands:
+\newcommand*{\TT}[1]{\bar{\bar{#1}}}
