diff --git a/quad8/fiesta/formulari/formulari.pdf b/quad8/fiesta/formulari/formulari.pdf
new file mode 100644
index 0000000..8483901
--- /dev/null
+++ b/quad8/fiesta/formulari/formulari.pdf
Binary files differ
diff --git a/quad8/fiesta/formulari/formulari.tex b/quad8/fiesta/formulari/formulari.tex
new file mode 100644
index 0000000..aaae981
--- /dev/null
+++ b/quad8/fiesta/formulari/formulari.tex
@@ -0,0 +1,175 @@
+\documentclass[a4paper,11pt]{article}
+
+\usepackage[portrait,margin=0.5in,top=0.5in,bottom=0.5in]{geometry}
+\usepackage{amsmath,multicol,siunitx,amsfonts,adjustbox}
+\usepackage[tiny]{titlesec}
+\usepackage[version=4]{mhchem}
+\usepackage[overload]{abraces}
+
+\usepackage[utf8]{inputenc}
+\usepackage[spanish]{babel}
+\titlespacing{\section}{0pt}{5pt}{0pt}
+\titlespacing{\subsection}{0pt}{5pt}{0pt}
+\titlespacing{\subsubsection}{0pt}{5pt}{0pt}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{.5em}
+\pagenumbering{gobble}
+\setlength{\columnseprule}{1pt}
+
+\newcommand{\forceindent}{\leavevmode{\parindent=1em\indent}}
+
+\title{\vspace{-1em} Formulari Física Estadística}
+\author{Adrià Vilanova Martínez}
+\date{}
+
+\def\dbar{{\mathchar'26\mkern-12mu d}}
+\everymath{\displaystyle}
+\DeclareSIUnit{\atmosphere}{atm}
+\def\hrulefilll{\leavevmode\leaders\hrule height 1.4pt\hfill\kern 0pt}
+\def\hrulefillll{\leavevmode\leaders\hrule height 2.1pt\hfill\kern 0pt}
+
+\begin{document}
+  \maketitle
+
+  \begin{multicols*}{3}
+    \section{Microcanonical ensemble $(N, V, E)$}
+
+    \subsection{Introduction}
+
+    $S = K_b \log \Omega$.
+
+    \underline{Basic relations:}
+
+    \begin{adjustbox}{width=\textwidth/3}
+      $\begin{array}{cc}
+        \frac{1}{T} = \left( \frac{\partial S}{\partial E} \right)_{N, V} & \frac{P}{T} = \left( \frac{\partial S}{\partial V} \right)_{E, N} \\
+        \mu = - T \left( \frac{\partial S}{\partial N} \right)_{E, V} & C(T) = \frac{\partial E}{\partial T}
+      \end{array}$
+    \end{adjustbox}
+
+    \underline{Potentials:} $\begin{cases}
+      F = E - TS, \\
+      G = F + PV, \\
+      H = E + PV
+    \end{cases}$
+
+    \subsection{Ideal gas}
+
+    $H(\vec{q}, \vec{p}) = \sum_{i = 1}^N H_i(\vec{q_i}, \vec{p_i}) = \sum_{i = 1}^N \frac{p_i^2}{2m}$
+
+    %$H_i(\vec{q_i}, \vec{p_i}) \, \psi_{\vec{n_i}} = \varepsilon_{\vec{n_i}} \, \psi_{\vec{n_i}}$
+
+    $PV = \frac{2}{3} E$ (valid for ideal classic and quantum gasses)
+
+    For a reversible adiabatic process the entropy is constant, and thus: $PV^{\frac{5}{3}} = \text{const.}$
+
+    $C_V = \frac{3}{2} N K_B$, $C_P = \frac{5}{2} N K_B$
+
+    $\mu = K_B T \log\left( \frac{N \lambda^3}{V} \right)$
+
+    $\lambda = \sqrt{\frac{h^2}{2 \pi m K_B T}}$
+
+    $\begin{array}{l}
+      S(E, N, V) = \frac{3}{2} N K_B \left( - \log(\lambda) \right. \\
+      \left. + \frac{2}{3} \log\left( \frac{V}{N} \right) + \frac{5}{3} \right)
+    \end{array}$
+
+    \section{Canonical ensemble $(N, V, T)$}
+
+    \underline{Partition function:}
+
+    $Z = \sum_{E_i} \Omega(E_i) e^{- \beta E_i}$
+
+    $P(E_i) = \frac{1}{Z} \Omega(E_i) e^{- \beta E_i}$
+
+    $\langle E \rangle = - \left( \frac{\partial \log Z}{\partial \beta} \right)_{N, V}$
+
+    $\sigma_E = \sqrt{K_B T^2 C_v}$
+
+    $F = - K_B T \log Z$
+
+    \underline{Thermodynamic relations:}
+
+    $\begin{array}{ll}
+      P = - \left( \frac{\partial F}{\partial V} \right)_{T, N} & S = \left( \frac{\partial F}{\partial T} \right)_{V, N} \\
+      \mu = \left( \frac{\partial F}{\partial N} \right)_{T, V}
+    \end{array}$
+
+    \underline{Identical part.:} $Z(N) = \frac{[Z(1)]^N}{N!}$
+
+    \underline{Localized part.:} $Z(N) = [Z(1)]^N$
+
+    \underline{Single-particle partition function:}
+    $Z(1) = \frac{1}{h^3} \int e^{- \beta H(\vec{q_i}, \vec{p_i})} d\vec{q_i} d\vec{p_i}$
+
+    \underline{Equipartition theorem:} $\langle x_i \cdot \frac{\partial H}{\partial x_j} \rangle = K_B T \delta_{ij}$
+
+    $H = \sum_{i = 1}^n a_i x_i^{\eta_i} \Rightarrow E = K_B T \sum_{i = 1}^{6n} \frac{1}{\eta_i}$
+
+    \section{Grand canonical ensemble $(\mu, V, T)$}
+
+    $Q = \sum_{N = 0}^\infty \sum_E \Omega(N, E) e^{- \beta (E - \mu N)}$
+
+    $P(E, N) = \frac{1}{Q} \Omega(N, E) e^{- \beta (E - \mu N)}$
+
+    \underline{Fugacity:} $z := e^{\beta \mu}$
+
+    $Q = \sum_{N = 0}^\infty z^N \sum_E \Omega(N, E) e^{- \beta E} = \sum_{N = 0}^\infty z^N Z(N)$
+
+    \begin{adjustbox}{width=\textwidth/3}
+      $\begin{cases}
+        Z(N) = \frac{1}{N!} [Z(1)]^N \implies Q = e^{z Z(1)} \\
+        Z(N) = [Z(1)]^N \implies Q = \frac{1}{1 - z Z(1)} \\
+      \end{cases}$
+    \end{adjustbox}
+
+    $\alpha = - \beta \mu$
+
+    $\langle E \rangle = - \left( \frac{\partial \log Q}{\partial \beta} \right)_{\alpha, V}$
+
+    \begin{adjustbox}{width=\textwidth/3}
+      $\sigma_E^2 = \left( \frac{\partial^2 \log Q}{\partial \beta^2} \right)_{\alpha, V} = - \left( \frac{\partial \langle E \rangle}{\partial \beta} \right)_{\alpha, V}$
+    \end{adjustbox}
+
+    \begin{adjustbox}{width=\textwidth/3}
+      $\langle N \rangle = - \left( \frac{\partial \log Q}{\partial \alpha} \right)_{\beta, V} = z \left( \frac{\partial \log Q}{\partial z} \right)_{T, V}$
+    \end{adjustbox}
+
+    \begin{adjustbox}{width=\textwidth/3}
+      $\sigma_N^2 = \left( \frac{\partial^2 \log Q}{\partial \alpha^2} \right)_{\beta, V} = - \left( \frac{\partial \langle N \rangle}{\partial \alpha} \right)_{\beta, V}$
+    \end{adjustbox}
+
+    $\Xi = U - TS - \mu N = - K_B T \log Q$
+
+    \underline{Thermodynamic relations:}
+
+    $\begin{array}{ll}
+      PV = - \Xi & N = - \left( \frac{\partial \Xi}{\partial \mu} \right)_{T, V} \\
+      S = - \left( \frac{\partial \Xi}{\partial T} \right)_{V, \mu}
+    \end{array}$
+
+    (isolating $\mu$ from the first 2 eqs. we get the eq. of state)
+
+    \section{Quantum statistical mechanics}
+
+    $E_k = \sum_i n_i \varepsilon_i$, $Z = \sum_k e^{- \beta E_k}$
+
+    $Z = \sum_{\{ n_i \}} f(\{ n_i \}) e^{- \beta E_k}$
+
+    Distinguishable: $g(\{ n_i \}) = \frac{N!}{n_1! n_2! \cdots n_N!}$
+
+    Indistinguishable: $g(\{ n_i \}) = 1$
+
+    $Q = \prod_i \sum_{n_i = 0}^{n_{i, max}} (z e^{- \beta \varepsilon_i})^{n_i}$
+
+    \section{Miscelanea}
+
+    \underline{Vol($d$-sphere):}
+    $V_d(R) = \frac{\pi^{\frac{d}{2}} R^d}{\Gamma\left( 1 + \frac{d}{2} \right)}$
+
+    \underline{Stirling:} $\log n! \approx n \log n - n$
+
+    $\sum_{n = 0}^N x^n = \frac{x^{N + 1} - 1}{x - 1}$
+
+  \end{multicols*}
+\end{document}
diff --git a/quad8/fiesta/homework/entrega3/main.tex b/quad8/fiesta/homework/entrega3/main.tex
new file mode 100644
index 0000000..f795bee
--- /dev/null
+++ b/quad8/fiesta/homework/entrega3/main.tex
@@ -0,0 +1,126 @@
+\documentclass[11pt,a4paper,dvipsnames]{article}
+\usepackage[utf8]{inputenc}
+
+\input{../preamble.tex}
+
+\title{Entrega 3 de problemes\\Física Estadística}
+\author{Adrià Vilanova Martínez}
+\date{21 de juny, 2021}
+
+\showcorrectionsfalse % Change "true" to "false" in order to show corrections as
+                      % if they weren't corrections (in black instead of red).
+
+\begin{document}
+
+\maketitle
+
+\begin{Problem}
+  Un sistema està format per dues partícules idèntiques sense interacció, que poden estar cadascuna d'elles en 4 estats monoparticulars d'energies $0$, $\varepsilon$, $2 \varepsilon$ i $3 \varepsilon$. Escriviu la funció de partició canònica del sistema en funció de la variable $x = e^{- \beta \varepsilon}$ en els casos següents:
+
+  \begin{enumerate}[(a)]
+    \item Les dues partícules són distingibles i no tenen degeneració d'espín.
+    \item Les dues partícules son indistingibles i tenen espín zero (estadística de Bose-Einstein).
+    \item Les dues partícules son indistingibles i tenen espín $1/2$ (estadística de Fermi-Dirac). Noteu que, en aquest cas, cal tenir en compte la orientació de l'espín per determinar els diferents micro-estats, així com la seva degeneració.
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solució per (a):} \\
+Tenim:
+\[ Z_1(T) = e^{- \beta 0} + e^{- \beta} + e^{- 2 \beta} + e^{- 3 \beta} = 1 + x + x^2 + x^3. \]
+
+I en aquest cas, per ser dues partícules distingibles sense degeneració d'espín tenim:
+\[ Z_2(T) = (Z_1(T))^2 = (1 + x + x^2 + x^3)^2. \]
+
+\textbf{Solució per (b):} \\
+En aquest cas, pel fet de ser indstingibles, hem de restar al càlcul anterior els estats degenerats (només els hem de comptar un cop). Si representem els estats de les dues partícules amb la parella $(n_1, n_2)$, on $n_1, n_2 \in \{ 0, 1, 2, 3 \}$ són els estats de les dues partícules i pel fet que són indistingibles $(n_1, n_2) = (n_2, n_1)$, abans estàvem comptant 2 cops els següents estats: $(0, 1)$, $(0, 2)$, $(0, 3)$, $(1, 2)$, $(1, 3)$, $(2, 3)$. Aquests estats tenen energies $E_i = n_1 + n_2$. Així doncs, tenim:
+\[ Z(T) = (1 + x + x^2 + x^3)^2 - x - x^2 - 2x^3 - x^4 - x^5 = \]
+\[ = (1 + 2x + 3x^2 + 4x^3 + 3x^4 + 2x^5 + x^6) - x - x^2 - 2x^3 - x^4 - x^5 = \]
+\[ = 1 + x + 2x^2 + 2x^3 + 2x^4 + x^5 + x^6. \]
+
+\textbf{Solució per (c):} \\
+En aquest cas, si els dos fermions estan en el mateix estat, l'spin de les dues partícules ha de ser diferent i per tant els estats $(0, 0)$, $(1, 1)$, $(2, 2)$ i $(3, 3)$ tenen degeneració 1.
+
+En quant als altres estats --$(0, 1)$, $(0, 2)$, $(0, 3)$, $(1, 2)$, $(1, 3)$, $(2, 3)$-- en ser diferents els estats de les dues partícules, cada partícula pot tenir un estat de l'espín qualsevol, donant les combinacions $\uparrow \uparrow$, $\downarrow \uparrow$, $\uparrow \downarrow$ i $\downarrow \downarrow$ (és a dir, degeneració 4).
+
+Notem que aquí estem considerant tant $\downarrow \uparrow$ com $\uparrow \downarrow$, ja que tot i que les partícules siguin indistingibles, són diferents els estats $(0 \downarrow, 1 \uparrow)$ i $(0 \uparrow, 1 \downarrow)$.
+
+Això ens dona la següent funció de partició:
+\[ Z(T) = 1 + x^2 + x^4 + x^6 + 4(x + x^2 + 2x^3 + x^4 + x^5). \]
+
+\newpage
+
+\begin{Problem}
+  Els modes normals de vibració d'un sòlid format per $N$ àtoms en una xarxa tridimensional donen lloc, en determinades circumstàncies, a ones amb una relació de dispersió de la forma
+  \[ \omega = A | \vec{k} |^n, \]
+  amb 3 modes de vibració per a cada freqüència.
+
+  \begin{enumerate}[(a)]
+    \item Determineu la densitat d'estats $g(\omega)$.
+    \item Sabent que les freqüències estan acotades entre $0$ i $\omega_\text{max}$, determineu $\omega_\text{max}$.
+    \item Doneu una expressió per a la capacitat calorífica a volum constant (podeu deixar una integral numèrica indicada).
+    \item Trobeu i discutiu els límits d'alta i baixa temperatura.
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solució per (a):} \\
+Tenim que:
+\[ d\omega = n A |k|^{n - 1} dk. \]
+Aleshores:
+\[ g(\omega) d\omega = g(k(\omega)) \frac{dk}{d\omega} d\omega = \frac{4 \pi V}{(2 \pi)^3} \frac{k^2}{n A k^{n - 1}} d\omega = \frac{3V}{2 n \pi^2} \frac{\omega^{\frac{3}{n} - 1}}{A^{\frac{3}{n}}} d\omega. \]
+
+\textbf{Solució per (b):} \\
+Tal com hem vist a teoria:
+\[ 3N = \int_{\omega_\text{min}}^{\omega_\text{max}} g(\omega) \, d\omega = \underbrace{\frac{3V}{2 n \pi^2} A^{- \frac{3}{n}}}_{:= C} \int_0^{\omega_\text{max}} \omega^{\frac{3}{n} - 1} d\omega = \]
+\[ = \frac{C}{\frac{3}{n}} \left[ \omega^{\frac{3}{n}} \right]_0^{\omega_\text{max}} = \frac{1}{3} Cn \omega_\text{max}^{3/n} \implies \]
+\[ \implies \omega_\text{max} = \left( \frac{9}{Cn} \right)^\frac{n}{3} = A \left( \frac{6 \pi^2 N}{V} \right)^\frac{n}{3}. \]
+
+\textbf{Solució per (c):} \\
+Tenint en compte que $\varepsilon = \hbar \omega$ podem calcular l'energia interna mitjana:
+\[ U = \int_0^{\omega_\text{max}} \frac{\hbar \omega}{e^{\beta \hbar \omega} - 1} g(\omega) \, d\omega. \]
+Aleshores, definint $s := \beta \hbar \omega$:
+\[ C_V = - \frac{1}{K_B T^2} \left( \frac{\partial U}{\partial \beta} \right)_V = \frac{9 N K_B}{n s_\text{max}^{3/n}} \underbrace{\int_0^{s_\text{max}} \frac{s^{1 + \frac{3}{n}} e^s}{(e^s - 1)^2} \, ds}_{:= I(s_\text{max})}. \]
+Desfent el canvi de variables:
+\[ C_V = \frac{9 N K_B}{n} \left( \frac{K_B T}{\hbar \omega_\text{max}} \right)^\frac{3}{n} I(s_\text{max}). \]
+
+\textbf{Solució per (d):} \\
+Per a temperatures baixes:
+\[ \lim_{T \to 0} C_V = \frac{9 N K_B}{n} \left( \frac{K_B}{\hbar \omega_\text{max}} \right)^\frac{3}{n} \lim_{T \to 0} (T^\frac{3}{n} I(s_\text{max})). \]
+A aquest límit tenim que $s_\text{max} \propto \frac{1}{T}$, així que $s_\text{max}$ tendeix a una constant i $I(s_\text{max})$ també (anomenem-la $I(T = 0)$). En aquest cas, veiem que la capacitat calorífica es fa zero, degut al fet que $T^\frac{3}{n} \to 0$.
+
+Per a temperatures altes, utilitzant Taylor a l'expressió de dins de la integral obtenim:
+\[ \lim_{T \to \infty} C_V = 3 N K_B, \]
+que coincideix amb el teorema d'equipartició que vam veure a la part clàssica de la teoria.
+
+\newpage
+
+\begin{Problem}
+  El grafè està format per una monocapa d'àtoms de carboni. Els electrons a la banda de conducció del material es mouen dins d'aquesta capa com un gas bidimensional amb una relació de dispersió lineal donada per:
+  \[ \varepsilon(k) = \hbar v k, \]
+  on $v$ és una velocitat constant. Per a una mostra de grafè d'àrea $A = L_x L_y$, els vectors d'ona permesos per les condicions de contorn són de la forma $\vec{k} = \frac{2 \pi}{L_x} m \hat{x} + \frac{2 \pi}{L_y} n \hat{y}$, amb $m, n \in \mathbb{Z}$ i $\hat{x}, \hat{y}$ vectors unitaris.
+
+  \begin{enumerate}[(a)]
+    \item Calculeu la densitat d'estats a la banda de conducció en termes d'energia, $g(\varepsilon)$, tenint en compte que cada electró contribueix, a més, amb un factor 2 degut a la degeneració del seu espí.
+    \item Si considerem que per a temperatures $T$ baixes el potencial químic del gas $\mu(T)$ és nul, trobeu una expressió de l'energia interna $U(T, A)$ dels electrons tenint en compte que l'energia de l'estat fonamental $U(T = 0, A) = U_0 = 0$. Expresseu el resultat en termes d'una integral adimensional $I$ que no cal que avalueu explícitament.
+    \item Determineu l'exponent $n$ característic de la dependència de la calor específica en la temperatura $C_A(T, A) \sim T^n$ a àrea constant i temperatures baixes per als electrons del grafè.
+  \end{enumerate}
+\end{Problem}
+
+\textbf{Solució per (a):} \\
+Tenim que:
+\[ \varepsilon = \hbar v k = \hbar v \sqrt{k_x^2 + k_y^2} = \hbar v 2 \pi \sqrt{ \left(\frac{m}{L_x}\right)^2 + \left(\frac{n}{L_y}\right)^2 }. \]
+Aleshores:
+\[ g(\varepsilon) \, d\varepsilon = 2 g(k) \frac{dk}{d\varepsilon} d\varepsilon = 2 \frac{A}{(2 \pi)^2} 4 \pi k \frac{1}{\hbar v} \, d\varepsilon = 2 \frac{A}{\pi (\hbar v)^2} \varepsilon. \]
+%\[ = 2A \sqrt{ \left(\frac{m}{L_x}\right)^2 + \left(\frac{n}{L_y}\right)^2 } \, d\varepsilon = \]
+%\[ = 2 \sqrt{(m L_y)^2 + (n L_x)^2}. \]
+
+\textbf{Solució per (b):}
+\[ U = \tilde{U_0} + \int_0^b \frac{g(\varepsilon)}{e^{\beta \varepsilon} - 1} \, d \varepsilon = \tilde{U_0} + 2 \frac{A}{\pi (\hbar v)^2} \int_0^b \frac{\varepsilon}{e^{\beta \varepsilon} - 1} \, d \varepsilon. \]
+Com $U(T = 0, A) = 0$, aleshores $\tilde{U_0} = 0$.
+
+\begin{Problem}
+  Considereu un sistema de $N$ fermions lliures. Els estats monoparticulars tenen energies $\varepsilon_n = (4n + 1) \varepsilon_0$ amb $n \in \mathbb{N}^*$ i degeneració $g_n = 2n - 1$. Determineu l'energia del nivell de Fermi i l'energia total del sistema per a $T = 0$.
+\end{Problem}
+
+Em sap greu, però no sé fer aquest exercici.
+
+\end{document}
