diff --git a/quad8/continuummechanics/homework/hw2/main.tex b/quad8/continuummechanics/homework/hw2/main.tex
new file mode 100644
index 0000000..cba6f9e
--- /dev/null
+++ b/quad8/continuummechanics/homework/hw2/main.tex
@@ -0,0 +1,492 @@
+\documentclass[11pt,a4paper,dvipsnames]{article}
+\usepackage[utf8]{inputenc}
+\usepackage{lmodern}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{mathtools}
+\usepackage{parskip}
+\usepackage{xcolor}
+\usepackage{tcolorbox}
+\usepackage{hyperref}
+\usepackage{geometry}
+\usepackage{physics}
+\usepackage{systeme,mathtools}
+\usepackage[usestackEOL]{stackengine}
+\usepackage{scalerel}
+\usepackage{graphicx}
+\usepackage{enumerate}
+\usepackage{tikz}
+\usepackage[labelfont=bf]{caption}
+\usepackage{siunitx}
+\usepackage{cancel}
+\usepackage{fbox}
+\usepackage{multicol}
+\usepackage{amsthm}
+\usepackage[shortlabels]{enumitem}
+\usetikzlibrary{positioning}
+\geometry{top=25mm}
+
+% Plantilla per l'interior d'un conjunt
+\newcommand{\interior}[1]{%
+  {\kern0pt#1}^{\mathrm{o}}%
+}
+
+% 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$}}}%
+}
+
+% Plantilles dels boxes
+%%%% START DEFINING LBOXED, RBOXED %%%%
+\newcommand{\lboxed}[1]{\fbox[blt]{\mathsurround=0pt$\displaystyle#1$}}
+\newcommand{\rboxed}[1]{\fbox[brt]{\mathsurround=0pt$\displaystyle#1$}}
+
+% Plantilles pels problemes
+\newcounter{problem}
+\newcounter{solution}
+
+\newcommand{\green}[1]{\textbf{\color{ForestGreen} #1}}
+
+\newcommand{\separator}{\noindent\hfil\rule{0.75\textwidth}{0.4pt}\hfil}
+
+\newenvironment{Problem}{%
+    \stepcounter{problem}%
+    \begin{tcolorbox}[colback=cyan!10!white,parbox=false]
+        \textbf{Problem \theproblem.}~%
+        \setcounter{solution}{0}}{%
+    \end{tcolorbox}
+}
+
+\newenvironment{FreeProblem}{%
+    \begin{tcolorbox}[colback=cyan!10!white,parbox=false]
+        \setcounter{solution}{0}}{%
+    \end{tcolorbox}
+}
+
+\newcommand\Solution{%
+    \textbf{Solution:}\\%
+}
+
+\newcommand\Context{%
+    \textbf{Context:}\\%
+}
+
+\newcommand\Lema{%
+    \textbf{Lema:} %
+}
+
+\newcommand\Proposition{%
+    \textbf{Proposition:} %
+}
+
+\newcommand\Theorem{%
+    \textbf{Theorem:} %
+}
+
+\newcommand\Proof{%
+    \textbf{Proof:}\\%
+}
+
+\newcommand\QED{\square}
+
+\newcommand\ASolution{%
+    \stepcounter{solution}%
+    \textbf{Solution \thesolution:}\\%
+}
+
+
+\newcommand{\asection}[2]{
+\setcounter{section}{#1}
+\addtocounter{section}{-1}
+\section{#2}
+}
+
+% Tensor commands:
+\newcommand*{\TT}[1]{\bar{\bar{#1}}}
+
+%\usepackage{biblatex}
+%\addbibresource{references.bib}
+
+\title{Homework 2\\Continuum Mechanics}
+\author{Adrià Vilanova Martínez}
+\date{March 28, 2021}
+
+\begin{document}
+
+\maketitle
+
+\begin{Problem}
+  Consider vector $\vec{a}$. Show that $\nabla \cross \vec{a} = 2 \vec{v}$, where $\vec{v}$ is the dual vector associated to the antisymmetric part of the second rank tensor $\nabla \vec{a}$.
+
+  In fluid mechanics, the tensor $\nabla \vec{v}$, with $\vec{v}$ the velocity, plays a relevant role. Its antisymmetric part contains information about the rotation of material particles. In fact, the dual vector associated to this antisymmetric part is the angular velocity of the material particle, which is half the vorticity at a point within the fluid. In elasticity, the same ideas apply with the displacement vector $\vec{u}$ playing the role of the velocity.
+\end{Problem}
+
+\Solution
+
+We know that \[ (\nabla \vec{a})_{ij} = \partial_i a_j. \]
+
+Therefore the antisymmetric part of tensor $\nabla \vec{a}$ is (component by component) \[ ((\nabla \vec{a})_A)_{ij} = \frac{1}{2} ((\nabla \vec{a})_{ij} - (\nabla \vec{a})_{ji}) = \frac{1}{2} (\partial_i a_j - \partial_j a_i). \]
+
+Finally, its associated dual vector multiplied by 2 ($2 \vec{v}$) will be, by definition of the dual vector: \[ \begin{cases}
+  2 v_x = 2 ((\nabla \vec{a})_A)_{yz} = \partial_y a_z - \partial_z a_y \\
+  2 v_y = 2 ((\nabla \vec{a})_A)_{zx} = \partial_z a_x - \partial_x a_z \\
+  2 v_z = 2 ((\nabla \vec{a})_A)_{xy} = \partial_x a_y - \partial_y a_x.
+\end{cases} \]
+
+Now, we also know that
+\[ ( \nabla \cross \vec{a} )_i = \varepsilon_{ijk} \partial_j a_k, \]
+from which we obtain the same components of twice the dual vector:
+\[ \begin{cases}
+  (\nabla \cross \vec{a})_x = \partial_y a_z - \partial_z a_y \\
+  (\nabla \cross \vec{a})_y = \partial_z a_x - \partial_x a_z \\
+  (\nabla \cross \vec{a})_z = \partial_x a_y - \partial_y a_x.
+\end{cases} \]
+
+Thus, $\nabla \cross \vec{a} = 2 \vec{v}$.
+
+\begin{Problem}
+  Consider Lautrup's appendix D, which you can find posted as a pdf in ``campus virtual''.
+
+  \begin{enumerate}[a)]
+    \item Write down the $\phi\phi$-component of $\nabla \vec{a}$ in the cylindrical basis.
+    \item Write down the $\phi\theta$-component of $\nabla \vec{a}$ in the spherical basis.
+    \item Write down the $\phi$-component of $\nabla \cdot \TT{T}$, with $\TT{T}$ a second rank tensor, in the cylindrical basis.
+    \item The Laplacian of a vector $\vec{a}$ in the Cartesian basis is \\ $\nabla^2 \vec{a} = \nabla \cdot \nabla \vec{a} = \left( \partial_{xx} a_x + \partial_{yy} a_x + \partial_{zz} a_x \right) \hat{e}_x + \left( \partial_{xx} a_y + \partial_{yy} a_y + \partial_{zz} a_y \right) \hat{e}_y + \\ + \left( \partial_{xx} a_z + \partial_{yy} a_z + \partial_{zz} a_z \right) \hat{e}_z$. Using index notation, the $k$ component is $\partial_i \partial_j a_k$. Look at the Laplacian expression in the cylindrical and spherical bases. There are additional terms compared to those in the Cartesian basis. Very briefly explain why this is the case.
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solution for a):}
+\[ (\nabla \vec{a})_{\phi\phi} = \frac{1}{r} (\partial_\phi a_\phi + a_r) \]
+
+\textbf{Solution for b):}
+\[ (\nabla \vec{a})_{\phi \theta} = \frac{1}{r \sin \theta} \partial_\phi a_\theta - \frac{a_\phi}{r \tan \theta} \]
+
+\textbf{Solution for c):}
+\[ \nabla \cdot \TT{T} = \nabla_i T_{ij} \hat{e}_j \implies (\nabla \cdot \TT{T})_\phi = \partial_r T_{r \phi} + \frac{1}{r} \partial_\phi T_{\phi \phi} + \partial_z T_{z \phi} + \frac{1}{r} T_{\phi r} + \frac{1}{r} T_{r \phi} \]
+
+\textbf{Solution for d):}
+
+There are additional terms in the Laplacian expression in cylindrical and spherical bases because of the fact that the del operator ($\nabla$) in those other bases is developed by applying the chain rule to the expresion in cartesian coordinates (which introduces ``complexity'' to the operator) and when calculating the second partial derivatives in order to express the Laplacian, all the basis vectors are no longer constant (their spatial variation matters), as opposed to the natural (cartesian) basis.
+
+\begin{Problem}
+  In class, we have considered material particles subjected to normal and shear forces in mechanical equilibrium. Translational equilibrium requires $\sum \vec{F} = 0$. Assuming the stress tensor is symmetric guarantees that the total torque or momentum of force is $\vec{M} = 0$.
+
+  In this problem we are going to look at this a bit more carefully; we will clearly see that choosing $\TT{\sigma}$ symmetric is one (very good) option, but that, in general, $\TT{\sigma}$ does not need to be symmetric. We will also practice with index notation adn tensor calculus. As usual, use summation convention.
+
+  \begin{enumerate}[a)]
+    \item The total moment of force is \[ \vec{M} = \int_V \vec{x} \cross d\vec{F} = \int_V \vec{x} \cross \vec{f^*} dV' \] where $\vec{f^*}$ is the total specific (per volume) force, including body and contact forces.
+
+    Show that the i-component of $\vec{M}$ is \[ M_i = \int_v \varepsilon_{ijk} x_j (f_k + \partial_l \sigma_{kl}) dV' \] where $f_k$ is the k-component of the body force.
+
+    \item Then, show that \[ M_i = \int_V \varepsilon_{ijk} (x_j f_k + \partial_l (x_j \sigma_{kl}) - \sigma_{kj}) dV'. \]
+
+    \item Use Gauss's theorem to show that \[ \int_V \varepsilon_{ijk} \partial_l(x_j \sigma_{kl}) dV' = \oint_A (\vec{x} \cross \TT{\sigma} \cdot d\vec{S})_i. \]
+
+    \item Now, realize $- \varepsilon_{ijk} \sigma_{kj} = \varepsilon_{ijk} \sigma_{jk}$.
+  \end{enumerate}
+
+  Using the results in (c) and (d), we then have: \[ \vec{M} = \int_V \vec{x} \cross \vec{f} dV' + \oint_A \vec{x} \cross \TT{\sigma} \cdot d\vec{S} + \int_v \hat{e}_i \varepsilon_{ijk} \sigma_{jk} dV'. \]
+
+  In the absence of body forces, taking $\TT{\sigma}$ symmetric guarantees that $\vec{M} = 0$. In this case, we showed in class that the second term is zero. The third term is also zero, since a permutation of indices $j, k$ changes the sign in $\varepsilon_{ijk}$.
+
+  However, $\vec{M} = 0$ does not require $\TT{\sigma}$ to be symmetric. In the absence of body forces, only the sum of the 2nd and 3rd tirms in $\vec{M}$ must vanish. There are, in fact, generalizations of classical continuum theory that use non-symmetric stress tensors. In classical continuum theory, however, we choose $\TT{\sigma}$ symmetric and develop a coherent theory with this selection.
+\end{Problem}
+
+\newpage
+
+\textbf{Solution for a):}
+\[ M_i = \left( \int_V \vec{x} \cross \vec{f^*} dV' \right)_i = \int_V (\vec{x} \cross \vec{f^*})_i \, dV' \notate[X]{{}={}}{1.25}{\scriptstyle (\vec{B} \cross \vec{C})_i = \varepsilon_{ijk} B_j C_k} \int_V \varepsilon_{ijk} x_j f^*_k \, dV' \notate[X]{{}={}}{1.25}{\scriptstyle f^*_i := f_i + \partial_j \sigma_{ij}} \int_V \varepsilon_{ijk} x_j (f_k + \partial_l \sigma_{kl}) \, dV' \]
+
+\textbf{Solution for b):}
+
+We must show that $\varepsilon_{ijk} x_j \partial_l \sigma_{kl} = \varepsilon_{ijk} (\partial_l (x_j \sigma_{kl}) - \sigma_{kj})$.
+
+If we take into account that $\vec{x} = (x, y, z)$, then $\partial_i x_j = \delta_{ij}$, then it is clear that \[ \varepsilon_{ijk} (\partial_l (x_j \sigma_{kl}) - \sigma_{kj}) = \varepsilon_{ijk} ((\partial_l x_j) \sigma_{kl} + x_j (\partial_l \sigma_{kl}) - \sigma_{kj}) = \varepsilon_{ijk} (\delta_{lj} \sigma_{kl} + x_j (\partial_l \sigma_{kl}) - \sigma_{kj}) = \]
+\[ = \varepsilon_{ijk} (\sigma_{kj} + x_j (\partial_l \sigma_{kl}) - \sigma_{kj}) = \varepsilon_{ijk} x_j (\partial_l \sigma_{kl}). \]
+
+\textbf{Solution for c):}
+
+Gauss's theorem in general states that
+\[ \int_V \partial_l T_{jkl} \, dV' = \oint_A T_{jkl} n_l \, dS. \]
+
+In our case, if we take $T_{jkl} = x_j \sigma_{kl}$, we get:
+\[ \int_V \partial_l (x_j \sigma_{kl}) \, dV' = \oint_A x_j \underbrace{\sigma_{kl} n_l \, dS}_{= (\TT{\sigma} \cdot \vec{dS})_k} \implies \]
+\[ \implies \int_V \varepsilon_{ijk} \partial_l (x_j \sigma_{kl}) \, dV' = \oint_A \underbrace{\varepsilon_{ijk} x_j (\TT{\sigma} \cdot \vec{dS})_k}_{= (\vec{x} \cross \TT{\sigma} \cdot \vec{dS})_i} \implies \]
+\[ \implies \int_V \varepsilon_{ijk} \partial_l (x_j \sigma_{kl}) \, dV' = \oint_A (\vec{x} \cross \TT{\sigma} \cdot \vec{dS})_i. \]
+
+\textbf{Solution for d):}
+
+If two of more of $\{i, j, k\}$ are equal, then this is trivial.
+
+Otherwise, consider the permutation $(i, j, k)$. Then $(i, j, k)(j, k) = (i, k, j)$ has the opposite sign of the original permutation, since we have transposed 2 elements of the permutation. Since $\varepsilon_{ijk}$ gives us the sign of the permutation, this means $- \varepsilon_{ijk} = \varepsilon_{ikj}$.
+
+Thus, we have: \[ -\varepsilon_{ijk} \sigma_{kj} = \varepsilon_{ikj} \sigma_{kj} \]
+
+Since $\{j, k\}$ are the indices we are summing over, we can change their names (in particular swap them) and the result will be the same. In conclusion:
+\[ \varepsilon_{ikj} \sigma_{kj} = \varepsilon_{ijk} \sigma_{jk} \]
+which proves the statement.
+
+\begin{Problem}
+  Consider a rigid body rotation through angle $\phi$ around the z-axis. In matrix form: \[ \begin{pmatrix}
+    x' \\
+    y' \\
+    z'
+  \end{pmatrix} = \begin{pmatrix}
+    \cos \phi & - \sin \phi & 0 \\
+    \sin \phi & \cos \phi & 0 \\
+    0 & 0 & 1
+  \end{pmatrix} \begin{pmatrix}
+    x \\
+    y \\
+    z
+  \end{pmatrix}. \]
+
+  Note this rotation matrix is not the one associated to a rotation of axes, which we call a passive rotation. In the case considered here, the basis remains the same; it is the vector that is rotated by angle $\phi$. We call this an active rotation.
+
+  Note also that the matrix above is the inverse of the matrix associated to a rotation of axes by angle $\phi$ around the z-axis. You can easily visualize that an active rotation by angle $\phi$ followed by a passive rotation of axes by the same angle $\phi$ leaves the vector unchanged. Hence the matrices representing active and passive rotations are inverses of one another; since the transformations are orthogonal, we can also say they are transposes of one another.
+
+  \begin{enumerate}[a)]
+    \item Find the displacement field induced by the active rotation above.
+    \item Find $\text{grad}\, \vec{u} = (\nabla \vec{u})^T$.
+    \item Remember that $d\vec{r'} = d\vec{r} + \text{grad}\, \vec{u} \cdot d\vec{r}$. Confirm that $|d\vec{r'}| = |d\vec{r}|$; this indicates there is no deformation of the body.
+    \item Confirm the strain tensor $\TT{u} = 0$ (you will need to use the full expression for $\TT{u}$; not Cauchy's strain tensor).
+  \end{enumerate}
+
+  Note: for slowing varying displacement fields, the angle $\phi$ is small, and to leading order, $\text{grad}\, \vec{u} = (\nabla \vec{u})^T$ becomes antisymmetric. This connects to what we said in class: For $\displaystyle \left| \frac{\partial u_i}{\partial x_k} \right| \ll 1$, $\text{grad}\, \vec{u} = \TT{u} + \TT{w}$, where $\TT{u}$ is Cauchy's strain tensor and $\TT{w}$ is an antisymmetric tensor related to the rotation of material particles. In this problem, since there is no deformation, for small $\phi$, $\text{grad}\, \vec{u} = \TT{w}$.
+\end{Problem}
+
+\textbf{Solution for a):}
+\[ \vec{u}(\vec{r}) = \vec{r'} - \vec{r} = \begin{pmatrix}
+  \cos \phi - 1 & - \sin \phi & 0 \\
+  \sin \phi & \cos \phi - 1 & 0 \\
+  0 & 0 & 0
+\end{pmatrix} \begin{pmatrix}
+  x \\
+  y \\
+  z
+\end{pmatrix} = \begin{pmatrix}
+  (\cos \phi - 1) \cdot x - \sin \phi \cdot y \\
+  \sin \phi \cdot x + (\cos \phi - 1) \cdot y \\
+  0
+\end{pmatrix} \]
+
+\textbf{Solution for b):}
+\[ \text{grad}\, \vec{u} = \begin{pmatrix}
+  \cos \phi - 1 & - \sin \phi & 0 \\
+  \sin \phi & \cos \phi - 1 & 0 \\
+  0 & 0 & 0
+\end{pmatrix} \]
+
+\textbf{Solution for c):}
+\[ d\vec{r'} = d\vec{r} + \text{grad}\, \vec{u} \cdot d\vec{r} = (Id + \text{grad}\, \vec{u}) \cdot d\vec{r} \implies \]
+\[ \implies | d\vec{r'} | = | (Id + \text{grad}\, \vec{u}) \cdot d\vec{r} | = \left| \begin{pmatrix}
+  \cos \phi & - \sin \phi & 0 \\
+  \sin \phi & \cos \phi & 0 \\
+  0 & 0 & 1
+\end{pmatrix} d\vec{r} \right| = \left| \begin{pmatrix}
+  \cos \phi \cdot dr_x - \sin \phi \cdot dr_y \\
+  \sin \phi \cdot dr_x + \cos \phi \cdot dr_y \\
+  dr_z
+\end{pmatrix} \right| = \]
+\[ = \sqrt{(\cos \phi \cdot dr_x - \sin \phi \cdot dr_y)^2 + (\sin \phi \cdot dr_x + \cos \phi \cdot dr_y)^2 + dr_z^2} = \]
+\[ = \sqrt{(\sin^2 \phi + \cos^2 \phi) dr_x^2 + (\sin^2 \phi + \cos^2 \phi) dr_y^2 + dr_z^2} = \]
+\[ = \sqrt{dr_x^2 + dr_y^2 + dr_z^2} = |dr| \]
+
+\textbf{Solution for d):}
+
+We could show that each component is zero, by using the following expression: \[ u_{ik} = \frac{1}{2} \left[ \frac{\partial u_i}{\partial x_k} + \frac{\partial u_k}{\partial x_i} + \sum_l \frac{\partial u_l}{\partial x_i} \cdot \frac{\partial u_l}{\partial x_k} \right] \]
+
+However, we know from the definition of the strain tensor that \[ | d\vec{r'} |^2 = | d\vec{r} |^2 + 2 \sum_{i, k} u_{ik} \, dx_i dx_k \] and since we have shown that $| d\vec{r'} |^2 = | d\vec{r} |^2$, we have that \[ \sum_{i, k} u_{ik} \, dx_i dx_k = 0 \] and since $\{ dx_i dx_k \}_{i, k}$ are linearly independent, we have that \[ u_{ik} = 0 \quad \forall i, k \] which means that $\TT{u} = 0$.
+
+\begin{Problem}
+  \begin{enumerate}[a)]
+    \item In class, we have considered the homogeneous (also called uniform) stretching along the x-direction of a solid clamped on its left-most side and having an equilibrium length along this direction equal to $L$.
+
+    Write down Cauchy's strain tensor, knowing that the stretch of the right-most point of the solid is $\Delta L$.
+
+    \item Consider the \textit{pure shear} deformation of the solid considered in class (see Fig. 1).
+
+    Write down Cauchy's strain tensor (assume small deformations as we did in class).
+
+    \item Now consider a \textit{simple shear} deformation (see Fig. 2). Write down the second rank tensor $\text{grad}\, \vec{u} = (\nabla \vec{u})^T$, for small $\theta$. You will see it is not symmetric.
+
+    Obtain the symmetric and antisymmetric parts. Realize that the symmetric part is Cauchy's strain tensor.
+
+    The antisymmetric part informs about rotations of material particles. Since it is a second rank tensor, we have a dual vector we can associate to it, which we know is related to $\nabla \cross \vec{u}$. We then see we can think of rotations in terms of the antisymmetric part of $\text{grad}\, \vec{u}$ (or $\nabla \vec{u}$), or in terms of the vector $\nabla \cross \vec{u}$.
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solution for a):}
+
+Homogenous stretching along the x-direction keeping the left-most side clamped means that \[ \vec{r'} = \begin{pmatrix}
+  k x \\
+  y \\
+  z
+\end{pmatrix} \] where $k \in \mathbb{R}$ is a constant.
+
+Therefore: \[ \vec{u}(\vec{r}) = \vec{r'} - \vec{r} = \begin{pmatrix}
+  (k - 1) x \\
+  0 \\
+  0
+\end{pmatrix}. \]
+
+We have \[ \text{grad}\, \vec{u} = \begin{pmatrix}
+  k - 1 & 0 & 0 \\
+  0 & 0 & 0 \\
+  0 & 0 & 0
+\end{pmatrix} \] and this lets us calculate Cauchy's strain tensor:
+\[ \TT{u} = \frac{1}{2} (\text{grad}\, \vec{u} + (\text{grad}\, \vec{u})^T) \notate[X]{{}={}}{1}{\scriptstyle \text{grad}\, \vec{u} \text{ is symmetric}} \text{grad}\, \vec{u} \]
+
+Since $\Delta L = (k - 1) L$, we have that $k - 1 = \frac{\Delta L}{L}$, and thus: \[ \TT{u} = \begin{pmatrix}
+  \frac{\Delta L}{L} & 0 & 0 \\
+  0 & 0 & 0 \\
+  0 & 0 & 0
+\end{pmatrix} \]
+
+\textbf{Solution for b):}
+
+In questions b) and c) we will ignore the third dimension, due to the fact that the displacement there is 0, and therefore the gradient of the displacement vector and Cauchy's strain tensor are zero in that direction.
+
+The application that gives $\vec{r'}$ as a function of $\vec{r}$ (the \textit{simple shear} deformation) is a linear application $A$ that satisfies
+\[ \begin{cases}
+  A(e_1) = e_1 + \tan\left(\frac{\theta}{2}\right) e_2 \\
+  A(e_2) = \tan\left(\frac{\theta}{2}\right) e_1 + e_2.
+\end{cases} \]
+
+Therefore: \[ \vec{r'} = A \vec{r} \quad \text{where} \quad A = \begin{pmatrix}
+  1 & \tan\left(\frac{\theta}{2}\right) \\
+  \tan\left(\frac{\theta}{2}\right) & 1
+\end{pmatrix} \] and \[ \vec{u}(\vec{r}) = \vec{r'} - \vec{r} = \begin{pmatrix}
+  0 & \tan\left(\frac{\theta}{2}\right) \\
+  \tan\left(\frac{\theta}{2}\right) & 0
+\end{pmatrix} \vec{r} \; \approx \; \begin{pmatrix}
+  0 & \frac{\theta}{2} \\
+  \frac{\theta}{2} & 0
+\end{pmatrix} \vec{r} = \frac{\theta}{2} \begin{pmatrix}
+  y \\
+  x
+\end{pmatrix}. \]
+
+Let's calculate the gradient of the displacement vector in order to calculate the strain tensor: \[ \text{grad}\, \vec{u} = \frac{\theta}{2} \begin{pmatrix}
+  0 & 1 \\
+  1 & 0
+\end{pmatrix}. \]
+
+Due to the fact that it is a symmetrical second-rank tensor, we conclude that the strain tensor is \[ \TT{u} = \frac{1}{2} (\text{grad}\, \vec{u} + (\text{grad}\, \vec{u})^T) = \text{grad}\, \vec{u} \]
+
+\textbf{Solution for c):}
+
+In this case the application $B$ which gives $\vec{r'}$ as a function of $\vec{r}$ is also linear, and satisfies
+\[ \begin{cases}
+  B(e_1) = e_1 \\
+  B(e_2) = \tan(\theta) e_1 + e_2.
+\end{cases} \]
+
+Therefore: \[ \vec{r'} = B \vec{r} \quad \text{where} \quad B = \begin{pmatrix}
+  1 & \tan(\theta) \\
+  0 & 1
+\end{pmatrix} \] and \[ \vec{u}(\vec{r}) = \vec{r'} - \vec{r} = \begin{pmatrix}
+  0 & \tan(\theta) \\
+  0 & 0
+\end{pmatrix} \vec{r} \; \approx \; \begin{pmatrix}
+  0 & \theta \\
+  0 & 0
+\end{pmatrix} \vec{r} = \begin{pmatrix}
+  \theta y \\
+  0
+\end{pmatrix}. \]
+
+At this point we can calculate the gradient of the displacement vector: \[ \text{grad}\, \vec{u} = \begin{pmatrix}
+  0 & \theta \\
+  0 & 0
+\end{pmatrix} \] which is not symmetric if $\theta \neq 0$.
+
+Let's get the symmetric and antisymmetric parts: \[ \begin{cases}
+  \displaystyle (\text{grad}\, \vec{u})_S = \frac{1}{2} \left( \text{grad}\, \vec{u} + (\text{grad}\, \vec{u})^T \right) = \frac{\theta}{2} \begin{pmatrix}
+    0 & 1 \\
+    1 & 0
+  \end{pmatrix} \\
+  \displaystyle (\text{grad}\, \vec{u})_A = \frac{1}{2} \left( \text{grad}\, \vec{u} - (\text{grad}\, \vec{u})^T \right) = \frac{\theta}{2} \begin{pmatrix}
+    0 & 1 \\
+    -1 & 0
+  \end{pmatrix}.
+\end{cases} \]
+
+As we saw in theory, Cauchy's strain tensor is defined as $\TT{u} := \frac{1}{2} \left( \nabla \vec{u} + (\nabla \vec{u})^T \right)$, so the antisymmetric part of the gradient is indeed Cauchy's strain tensor, due to the fact that $\nabla \vec{u} = (\text{grad}\, \vec{u})^T$.
+
+\newpage
+
+\begin{Problem}
+  Consider the displacement field $\vec{u} = (Ax + Cy, Cx - By, 0)$, where $A$, $B$, $C$ are small constants.
+
+  \begin{enumerate}[a)]
+    \item Compute Cauchy's strain tensor.
+    \item Find a condition to ensure that the volume remains constant.
+    \item Determine, in this case, the principal strain axes and the relative length change along the principal directions.
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solution for a):}
+\[ \text{grad}\, \vec{u} = \begin{pmatrix}
+  A & C & 0 \\
+  C & -B & 0 \\
+  0 & 0 & 0
+\end{pmatrix} \]
+\[ \TT{u} \notate[X]{{}={}}{1}{\scriptstyle \text{grad}\, \vec{u} \text{ is symmetric}} \text{grad}\, \vec{u} \]
+
+\textbf{Solution for b):}
+In theory class we saw that when the deformation is small enough, one condition to have incompressibility is that $\nabla \cdot \vec{u} = 0$. In this particular case, this gives us the following condition: \[ A - B = 0 \implies A = B. \]
+
+\textbf{Solution for c):}
+Let's find the principal strain axes (which correspond to the eigenvectors of $\TT{u}$):
+
+A trivial eigenvector is $\hat{e}_z$ with associated eigenvalue $0$, since $\TT{u} \cdot \hat{e}_z = 0$
+
+Let's find the eigenvalues with the following equation: \[ \det (\TT{u} - \lambda \TT{I}) = 0 \iff 0 = \det \begin{pmatrix}
+  A - \lambda & C & 0 \\
+  C & - B - \lambda & 0 \\
+  0 & 0 & - \lambda
+\end{pmatrix} = - \lambda ((A - \lambda)(- B - \lambda) - C^2) \iff \]
+\[ \iff \begin{cases}
+  \lambda = 0, \text{ or} \\
+  (A - \lambda)(- B - \lambda) - C^2 = 0 \iff \lambda^2 - (A - B) \lambda - AB - C^2 = 0 \iff
+\end{cases} \]
+\[ \iff \lambda_\pm = \frac{A - B \pm \sqrt{A^2 + B^2 - 2AB - 4(- AB - C^2)}}{2} = \]
+\[ = \frac{1}{2} \left( A - B \pm \sqrt{(A + B)^2 + 4 C^2} \right). \]
+
+$\lambda = 0$, $\lambda_+$ and $\lambda_-$ are the principal strain values, and if we suppose $A = B$ (the condition we found for volume to be conserved) we have
+\[ \lambda_\pm = \pm \frac{1}{2} \sqrt{(2A)^2 + 4C^2} = \pm \sqrt{A^2 + C^2} \]
+and their corresponding directions are given by the following equations:
+\[ \begin{cases}
+  (\TT{u} - \lambda_+ \TT{I}) v_+ = 0 \iff \begin{pmatrix}
+    A - \sqrt{A^2 + C^2} & C & 0 \\
+    C & - A - \sqrt{A^2 + C^2} & 0 \\
+    0 & 0 & - \sqrt{A^2 + C^2}
+  \end{pmatrix} v_+ = 0 \iff \\
+  \iff [ v_+ ] = \left[ \begin{pmatrix}
+    - \frac{C}{A - \sqrt{A^2 + C^2}}, & 1, & 0
+  \end{pmatrix} \right] \\ \\
+  \hline \\
+  (\TT{u} - \lambda_- \TT{I}) v_- = 0 \iff \begin{pmatrix}
+    A + \sqrt{A^2 + C^2} & C & 0 \\
+    C & - A + \sqrt{A^2 + C^2} & 0 \\
+    0 & 0 & \sqrt{A^2 + C^2}
+  \end{pmatrix} v_- = 0 \iff \\
+  \iff [ v_- ] = \left[ \begin{pmatrix}
+    - \frac{C}{A + \sqrt{A^2 + C^2}}, & 1, & 0
+  \end{pmatrix} \right]
+\end{cases} \]
+
+%\printbibliography
+
+\end{document}
