diff --git a/quad8/continuummechanics/homework/hw1/main.pdf b/quad8/continuummechanics/homework/hw1/main.pdf
new file mode 100644
index 0000000..9d82cd6
--- /dev/null
+++ b/quad8/continuummechanics/homework/hw1/main.pdf
Binary files differ
diff --git a/quad8/continuummechanics/homework/hw1/main.tex b/quad8/continuummechanics/homework/hw1/main.tex
new file mode 100644
index 0000000..f8df2db
--- /dev/null
+++ b/quad8/continuummechanics/homework/hw1/main.tex
@@ -0,0 +1,287 @@
+\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 1\\Continuum Mechanics}
+\author{Adrià Vilanova Martínez}
+\date{March 20, 2021}
+
+\begin{document}
+
+\maketitle
+
+\begin{Problem}
+  Consider a passive rotation in 2D -a rotation of rectangular axis with common origin.
+
+  \begin{enumerate}[a)]
+      \item Show that the components of vector $A$ transform according to: \[ \begin{pmatrix}
+      a_1 \\
+      a_2
+    \end{pmatrix} = \begin{pmatrix}
+      \cos \theta & - \sin \theta \\
+      \sin \theta & \cos \theta
+    \end{pmatrix} \begin{pmatrix}
+      a_1' \\
+      a_2'
+    \end{pmatrix} = \TT{B} \begin{pmatrix}
+      a_1' \\
+      a_2'
+    \end{pmatrix} \] where $(a_1, a_2)$ are the components of $A$ in orthonormal basis $\{\hat{e}_1, \hat{e}_2\}$ and $(a_1', a_2')$ are the components of $A$ in orthonormal basis $\{\hat{e}_1', \hat{e}_2'\}$, which is rotated an angle $\theta$ relative to the unprimed basis.
+
+    \item Confirm matrix $\TT{B}$ is orthonormal, that is, that its inverse is equal to its transpose. We could have anticipated that since $\TT{B}$ maps an orthonormal basis into an orthonormal basis, which implies the transformation and thus $\TT{B}$ is orthogonal.
+
+    \item Confirm also that the columns and rows of matrix $\TT{B}$ form an orthonormal basis of $\mathbb{R}_2(\mathbb{R})$.
+
+    This is general: a real $n \cross n$ matrix is orthonormal if and only if its rows and columns each form an orthonormal basis of $\mathbb{R}_n(\mathbb{R})$.
+
+    \item Realize that $\det \TT{B} = 1$, as expected for an orthogonal matrix representing a rotation. In fact, any $2 \cross 2$ orthogonal matrix with determinant 1 corresponds to a rotation (the same applies to 3D). Additionally, any $2 \cross 2$ orthogonal matrix with determinant -1 corresponds to a reflection through a line (in 3D, the statement affirms that a reflection is involder -an orthogonal $3 \cross 3$ matrix with determinant -1 thus corresponds to an improper rotation).
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solution for a):}
+
+Since we know from affine geometry courses that rotations are linear transformations, in order to check that matrix \[ A := \begin{pmatrix}
+  \cos \theta & - \sin \theta \\
+  \sin \theta & \cos \theta
+\end{pmatrix} \] is the transformation matrix which transforms the representation of vectors in orthonormal basis $E' = \{\hat{e}_1', \hat{e}_2'\}$ to their representation in orthonormal basis $E = \{\hat{e}_1, \hat{e}_2\}$, we know from linear algebra courses that it suffices to show that it correctly maps the vectors which form basis $E'$ to their corresponding images.
+
+We know that $\hat{e}_1' = (0, 1)_{E'}$ is the vector $\hat{e}_1 = (0, 1)_E$ rotated by angle $\theta$. Therefore, \[ \hat{e}_1' = (\cos \theta, \sin \theta)_E \] by using the polar coordinates parametrization of $e_1'$.
+
+Also, we know that $\hat{e}_2'$ is the vector $\hat{e}_2$ rotated by angle $\theta$, and also that since $E$ is a direct orthonormal basis of $\mathbb{R}^2$, vector $\hat{e}_2$ is vector $\hat{e}_1$ rotated by $\frac{\pi}{2}$ radians. Therefore, by the same argument used above, \[ \hat{e}_2' = \left(\cos (\theta + \frac{\pi}{2}), \sin (\theta + \frac{\pi}{2})\right)_E = (- \sin \theta, \cos \theta)_E \] where we've used the trigonometric identities $\cos (x + \frac{\pi}{2}) = - \sin x$ and $\sin (x + \frac{\pi}{2}) = \cos x$.
+
+By calculating $A \hat{e}_1'$ and $A \hat{e}_2'$ we can check that the results are the same as what we have found before.
+
+\textbf{Solution for b):}
+
+\[ \TT{B} \text{ orthonormal} \iff \TT{B}^{-1} = \TT{B}^T \iff \TT{B}^T \TT{B} = \TT{I} \]
+
+Let's calculate $\TT{B}^T \TT{B}$:
+
+\[ \TT{B}^T \TT{B} = \begin{pmatrix}
+  \cos \theta & \sin \theta \\
+  - \sin \theta & \cos \theta
+\end{pmatrix} \begin{pmatrix}
+  \cos \theta & - \sin \theta \\
+  \sin \theta & \cos \theta
+\end{pmatrix} = \]
+\[ = \begin{pmatrix}
+  \cos^2 \theta + \sin^2 \theta & - \sin \theta \cos \theta + \sin \theta \cos \theta \\
+  - \sin \theta \cos \theta + \sin \theta \cos \theta & \cos^2 \theta + \sin^2 \theta
+\end{pmatrix} = \begin{pmatrix}
+  1 & 0 \\
+  0 & 1
+\end{pmatrix} = Id \]
+
+Therefore, $\TT{B}$ is orthonormal.
+
+\textbf{Solution for c):}
+
+Let's show that columns $v_1 = (\cos \theta, \sin \theta)$ and $v_2 = (- \sin \theta, \cos \theta)$ (we assume they are expressed in basis $E$) form an orthonormal basis, by definition of an orthonormal basis:
+\[ \begin{cases}
+  (v_1, v_1) = \cos^2 \theta + \sin^2 \theta = 1 \\
+  (v_1, v_2) = - \sin \theta \cos \theta + \sin \theta \cos \theta = 0 \\
+  (v_2, v_2) = \sin^2 \theta + \cos^2 \theta = 1
+\end{cases} \]
+Therefore, they form an orthonormal basis.
+
+Let's check it for the row vectors $\tilde{v}_1 = (\cos \theta, - \sin \theta)$, $\tilde{v}_2 = (\sin \theta, \cos \theta)$ too:
+\[ \begin{cases}
+  (\tilde{v}_1, \tilde{v}_1) = \cos^2 \theta + \sin^2 \theta = 1 \\
+  (\tilde{v}_1, \tilde{v}_2) = \sin \theta \cos \theta - \sin \theta \cos \theta = 0 \\
+  (\tilde{v}_2, \tilde{v}_2) = \sin^2 \theta + \cos^2 \theta = 1
+\end{cases} \]
+Therefore, $\{\tilde{v}_1, \tilde{v}_2\}$ also form an orthonormal basis.
+
+\textbf{Solution for d):}
+
+\[ \det \TT{B} = \cos^2 \theta + \sin^2 \theta = 1 \]
+
+The fact that any $2 \times 2$ orthogonal matrix with determinant 1 represents a rotation and with determinant -1 represents a reflection through a line (and their equivalent statements in 3D) is proved in \cite{geo}.
+
+\begin{Problem}
+  Consider $\TT{B} = \vec{u} \vec{v}$. Show that $\TT{B} \cdot \vec{w} = \vec{u} (\vec{v} \cdot \vec{w})$.
+
+  We often think of the direct product between vectors in terms of its action on a vector. Note how this way of thinking about it directly shows that, in general, the direct product is not commutative: $\vec{u} \vec{v} \neq \vec{v} \vec{u}$.
+\end{Problem}
+
+\Solution
+
+Using Einstein summation convention:
+
+\[ \TT{B}_{ij} = (\vec{u} \vec{v})_{ij} = u_i v_j \implies (\TT{B} \cdot \vec{w})_i = B_{ij} w_k \delta_{jk} = B_{ij} w_j = u_i v_j w_j \]
+\[ (\vec{v} \cdot \vec{w})_j = v_i w_j \delta_{ij} = v_j w_j \implies (\vec{u} (\vec{v} \cdot \vec{w}))_i = u_i v_j w_j \]
+
+Given that we've shown that each component of both vectors in a specific basis are equal to each other, we have proven that in fact both vectors are equal to each other, thus proving the statement.
+
+\begin{Problem}
+  Consider a second rank tensor $\TT{B}$ written in terms of the $\{ \hat{e}_i, \hat{e}_j \}$ basis. Show that $\hat{e}_i \cdot \TT{B} \cdot \hat{e}_j = B_{ij}$ (the $i, j$ component of tensor $\TT{B}$).
+
+  Note this is the tensor expression analogous to the vector expression giving the $i$ component of, say, vector $u$: $u_i = \hat{e}_i \cdot \vec{u}$. In continuum mechanics, we will ofteh consider the $i, j$ component of the stress tensor; it represents the $i$ component of the force (that is, the force along $\hat{e}_i$) per unit area acting on a surface element oriented along direction $j$ (that is, on a surface element with normal along $\hat{e}_j$).
+
+  Note: In quantum mechanics, we often write this tensor expression using bra-kets: $B_{ij} = \langle \hat{e}_i | \TT{B} | \hat{e}_j \rangle$. In this context, we think of $\TT{B}$ as an operator. The quantity $\langle \hat{e}_i | \TT{B} | \hat{e}_j \rangle$ equals the expectation value of the observable represented by operator $\TT{B}$ in quantum state $| \hat{e}_i \rangle$.
+\end{Problem}
+
+\[ (\hat{e}_i \cdot \TT{B})_m = \delta_{ik} B_{lm} \delta_{kl} = B_{im} \implies \]
+\[ \implies \hat{e}_i \cdot \TT{B} \cdot \hat{e}_j = B_{im} \delta_{nj} \delta_{mn} = B_{ij} \]
+
+\begin{Problem}
+  We have stated in class that the symmetry and antisymmetry of second rank tensors are tensor properties, that is, properties that are independent of coordinate system.
+
+  To show this is the case for the symmetry property, first consider how second rank tensors transform. Then assume the tensor is symmetric in the unprimed basis to then show this is also true in the primed basis.
+\end{Problem}
+
+Let's consider a change of basis for a second rank tensor. If $S$ is the change of basis matrix (from basis $B'$ to $B$) and $A$, $A'$ are the matrix representations of a second rank tensor in basis $B$ and $B'$ respectively, we have that:\cite{multi} \[ A' = S^t A S. \]
+
+Therefore: \[ A'^t = (S^t A^t S)^t = S^t A S = A' \] using the property $(AB)^t = B^t A^t$.
+
+\begin{Problem}
+  Use index notation to show that $\TT{B} : \TT{C} = \Tr(\TT{B} \cdot \TT{C})$, where $\TT{B}$ and $\TT{C}$ are second rank tensors.
+\end{Problem}
+
+\[ \TT{B} : \TT{C} = B_{ij} C_{kl} \delta_{jk} \delta_{il} = B_{ij} C_{ji} \]
+\[ (\TT{B} \cdot \TT{C})_{il} = B_{ij} C_{kl} \delta_{jk} = B_{ij} C_{jl} \implies \Tr(\TT{B} \cdot \TT{C}) = \sum_i (\TT{B} \cdot \TT{C})_{ii} = B_{ij} C_{ji} \]
+
+\begin{Problem}
+  Use the quotient rule to show that torque is a second rank tensor.
+\end{Problem}
+
+In class we saw $\tau_{ij} = r_i F_j - r_j F_i$. The quotient rule for second rank vectors states that if we show that for every vector $v_j$ the quantities $u_i := \sum_j T_{ij} v_j$ are the components of a non-zero vector, then $T_{ij}$ are the components of a second rank tensor. It's sufficient to show this for a unit non-zerovector $\hat{e}$. Using Einstein's summation convention:  \[ u_i = T_{ij} \hat{e}_j = (r_i F_j - r_j F_i) \hat{e}_j = r_i (\vec{F} \cdot \hat{e}) - F_i (\vec{r} \cdot \hat{e}) \]
+
+The two last terms are component i of 2 vectors, and so is their difference. Therefore, by the quotient rule, this proves that torque is a second rank tensor.
+
+\newpage
+
+\begin{Problem}
+  Prove that $(\vec{u'} \cross \vec{v'})_\alpha = (\det \TT{A}) a_{\alpha i} (\vec{u} \cross \vec{v})_i$, where $\TT{A} = \{ a_{ij} \}$ is an orthogonal transformation from the unprimed to the primed basis. This shows the cross product between two (polar) vectors is a pseudovector.
+
+  It follows that the scalar $\vec{w} \cdot (\vec{u} \cross \vec{v})$, where $u$, $v$ and $w$ are (polar) vectors, is a pseudoscalar. Show this.
+\end{Problem}
+
+As we saw in class: \[ (\vec{a} \cross \vec{b})_i = \varepsilon_{ijk} a_j b_k, \]
+\[ \varepsilon'_{\alpha \beta \gamma} = \det \TT{A} a_{\alpha i} a_{\beta j} a_{\gamma k} \varepsilon_{ijk} \]
+
+Since $\TT{A}$ is the orthogonal transformation from the unprimed to the primed basis, we have that $\TT{A} \cdot \vec{u} = \vec{u'}$ and $\TT{A} \cdot \vec{v} = \vec{v'}$. This means that: \[ (\vec{u'})_i = (\TT{A} \cdot \vec{u})_i = a_{ij} u_k \delta_{jk} = a_{ik} u_k \] and \[ (\vec{v'})_i = a_{ik} v_k. \]
+
+Then:
+\[ \text{LHS} = (\vec{u'} \cross \vec{v'})_\alpha = (\det \TT{A}) a_{\alpha i} a_{\beta j} a_{\gamma k} a_{\beta m} a_{\gamma n} \varepsilon_{ijk} u_m v_n \]
+We have that columns of orthogonal matrix $\TT{A}$ make an orthonormal triad ($a_{ij} a_{ik} = \delta_{ik}$), so:
+\[ \text{LHS} = (\det \TT{A}) a_{\alpha i} \delta_{jm} \delta_{kn} \varepsilon_{ijk} u_m v_n = (\det \TT{A}) a_{\alpha i} \varepsilon_{imn} u_m v_n = (\det \TT{A}) a_{\alpha i} (\vec{u} \cross \vec{v})_i = RHS \]
+
+\printbibliography
+
+\end{document}
diff --git a/quad8/continuummechanics/homework/hw1/references.bib b/quad8/continuummechanics/homework/hw1/references.bib
new file mode 100644
index 0000000..979ce41
--- /dev/null
+++ b/quad8/continuummechanics/homework/hw1/references.bib
@@ -0,0 +1,19 @@
+@booklet{geo,
+  author={Facultat de Matemàtiques i Estadística (UPC)},
+  title={Apunts Geometría afí i euclidiana},
+  url={https://drive.google.com/file/d/1V1TodeUpnjbe-JKKufW_Qe37EIHXZAUN/view}
+}
+
+@booklet{multi,
+  author={Òscar Benedito, Ernesto Lanchares, Miquel Ortega},
+  title={Álgebra Multilineal y Geometría Proyectiva},
+  organization={ApuntsFME},
+  pages={11},
+  url={https://apuntsfme.gitlab.io/pdfs/segon/algebra_multilineal_y_geometria.pdf},
+  year={2018}
+}
+
+@online{mathe,
+  title={Cross product: matrix transformation identity},
+  url={https://math.stackexchange.com/questions/859836/cross-product-matrix-transformation-identity}
+}
