diff --git a/quad10/atomica/formulari/.gitignore b/quad10/atomica/formulari/.gitignore
new file mode 100644
index 0000000..f0de8a3
--- /dev/null
+++ b/quad10/atomica/formulari/.gitignore
@@ -0,0 +1 @@
+main.pdf
diff --git a/quad10/atomica/formulari/parcial/main.tex b/quad10/atomica/formulari/parcial/main.tex
new file mode 100644
index 0000000..8a9b97b
--- /dev/null
+++ b/quad10/atomica/formulari/parcial/main.tex
@@ -0,0 +1,148 @@
+\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{physics}
+
+\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}{1.2em}
+\pagenumbering{gobble}
+\setlength{\columnseprule}{1pt}
+
+\newcommand{\forceindent}{\leavevmode{\parindent=1em\indent}}
+
+\title{\vspace{-1em} Formulari parcial Física Atòmica i Radiació}
+\author{Adrià Vilanova Martínez}
+\date{}
+
+\everymath{\displaystyle}
+\def\hrulefilll{\leavevmode\leaders\hrule height 1.4pt\hfill\kern 0pt}
+\def\hrulefillll{\leavevmode\leaders\hrule height 2.1pt\hfill\kern 0pt}
+\newcommand*{\pcdot}{\makebox[1ex]{\textbf{$\cdot$}}}%
+\newcommand*{\Ha}{\mathcal{H}}%
+
+\begin{document}
+  \maketitle
+
+  \begin{multicols*}{2}
+    \section{Unitats atòmiques}
+
+    $m_e = e = \hbar = 1 \, \text{(u.a.)}, \quad \mu = e = \hbar = 1 \, \text{(u.a. gen.)}$.
+
+    $a_0 = \frac{\hbar^2}{m_e e^2}$ (\underline{radi de Bohr}).
+
+    $E_h = \frac{m_e e^4}{\hbar^2} \approx \SI{27.211386}{\eV}$ (\underline{energia de Hartree}).
+
+    $\alpha := \frac{e^2}{\hbar c} \approx \frac{1}{137}$ (\underline{constant d'estructura fina (FS)}).
+
+    $t_0 = \frac{\hbar^3}{m_e e^4}, \quad v_0 = \frac{e^2}{\hbar}$ (\underline{velocidad de Bohr}).
+
+    \hrulefilll
+
+    \section{Estructura grossa d'àtoms hidrogenoides}
+
+    {\small Nucli ($Q = Ze$, $M \approx Z m_p + N m_n \approx A m_p$) interaccionant electrostàticament amb electró ($Q = -e$, $m_e$).}
+
+    $\frac{1}{\mu} = \frac{1}{m_1} + \frac{1}{m_2} \implies \mu = \frac{m_1 m_2}{m_1 + m_2}$.
+
+    \hrulefill
+
+    $\Ha \psi(\mathbf{r}) = E \psi(\mathbf{r}), \quad \boxed{\Ha = - \frac{\hbar^2}{2 \mu} \laplacian_{\mathbf{r}} - \frac{Z e^2}{r}}$, \\[0.25em]
+    on $\laplacian_\mathbf{r} = \frac{1}{r} \frac{\partial^2}{\partial r^2} (r \pcdot) - \frac{\mathbf{L}^2}{r^2}, \quad \mathbf{L} := - i \mathbf{r} \times \grad$.
+
+    $\psi(\mathbf{r}, \sigma) = \ket{n \, l \, m_l \, m_s} \frac{P_{nl}(r)}{r} Y_{lm}(\theta, \phi) (\chi_{m_s} (\sigma))$.
+
+    $\bra{n' \, l' \, m_l' \, m_s'}\ket{n \, l \, m_l \, m_s} = \delta_{n' n} \, \delta_{l' l} \, \delta_{m_l' m_l} \, (\delta_{m_s' m_s}) =$ \\
+    ${}\quad = \int_0^\infty dr \, P_{n' \, l'}(r) P_{n \, l}(r) \int_{4 \pi} d\Omega \, Y^*_{l' \, m'}(\hat{r}) Y_{l m}(\hat{r}) \times$ \\
+    ${}\quad \times \left( \sum_\sigma \chi^*_{m_s'}(\sigma) \chi_{m_s}(\sigma) \right). \quad (d\mathbf{r} = r^2 \, dr \, \sin \theta \, d\theta \, d\phi)$.
+
+    $\psi_{n l m}^{(Z)}(\mathbf{r}) = Z^{3/2} \psi_{n l m}^{(Z = 1)}(Z \mathbf{r})$.
+
+    {\small $P_{nl}(r)$ satisfà l'EdS radial amb un potencial efectiu:}
+    $U_l(r) := \underbrace{- \frac{Z e^2}{r}}_{V(r)} + \underbrace{\frac{\hbar^2}{2 \mu} \frac{l(l + 1)}{r^2}}_\text{part radial de T}$.
+
+    $\left[ \smash[b]{\underbrace{- \frac{\hbar^2}{2 \mu} \frac{d^2}{dr^2}}_\text{part de T}} + U_l(r) \right] P_{nl}(r) = E_n P_{nl}(r)$ \\[0.5em]
+
+    $Y_{l m}(\theta, \phi) = (-1)^l \, Y_{l m}(\pi - \theta, \pi + \phi)$, per tant: \\
+    $F(\mathbf{r}) := f(r) Y_{l m}(\mathbf{r}) \implies F(- \mathbf{r}) = (-1)^l F(\mathbf{r})$.
+
+    $[\mathbf{L}^2, \Ha] = [L_z, \Ha] = [L_i, \mathcal{P}] = [\mathcal{P}, \Ha] = 0$.
+
+    $\int_0^\infty P(r) \frac{d^2 P(r)}{dr^2} \, dr = - \int_0^\infty \left[ \frac{dP(r)}{dr} \right]^2 \, dr$
+
+    \hrulefill
+
+    $\Ha \psi(\mathbf{r}) = E \psi(\mathbf{r}), \quad \mathbf{L}^2 \psi(\mathbf{r}) = l(l + 1) \psi(\mathbf{r})$, \\
+    $L_z \psi(\mathbf{r}) = m \psi(\mathbf{r}), \quad \mathcal{P}^2 \psi(\mathbf{r}) = p \psi(\mathbf{r}) \quad (p \in \{-1, 1\})$.
+
+    \hrulefill
+
+    \underline{Energia sist. hidrogenoide (no relativista)} $g = (2)n^2$:
+
+    $E_n = - \frac{1}{2} \frac{Z^2}{n^2} E_h, \; E_n = - \frac{1}{2} \frac{Z^2}{n^2} E_\mu, \; E_\mu = \frac{\mu}{m_e} E_h < E_h$.
+
+    {\small $E_n(M) - E_m(M = \infty) = - \frac{m_e}{m_e + M} E_n(M = \infty) > 0$.}
+
+    \underline{Th. Virial}: $V \propto \mathbf{r}^s \Rightarrow 2 \expval{T} = s \expval{V}$ {\small (Coulomb: $s = -1$).}
+
+    \underline{Efecte Lamb (volum nuclear finit)}: \\[0.2em]
+    $\Delta E_{n \, l}^{\text{vnf}} \approx \frac{2}{5} \frac{Z^4}{n^3} \delta_{l 0} \left( \frac{R_N}{a_0} \right)^2 \left( \frac{\mu}{m_e} \right)^3 E_h \geq 0$, \\[0.4em]
+    {\small $R_N \approx 2.3 \cdot 10^{-5} a_0 A^{1/3}$. (trenca $l$, creix ràpidament amb $Z$).}
+
+    \hrulefilll
+
+    \section{Estructura fina (FS) d'àtoms hidrogenoides}\vspace{-.5em}
+
+    { \small Té en compte spin i efectes relativistes, a ordre $\beta^2 \equiv \left(\frac{v}{c}\right)^2$ (amb potencial Coulombià). }
+
+    \underline{Magnetó de Bohr}: $\mu_B := \frac{e \hbar}{2 m_e c}$.
+
+    \underline{Moment dipolar magnètic orbital}: $\mathbf{M}_L = - g_L \mu_B \mathbf{L}$, amb $g_L = 1$.
+
+    \underline{Moment dipolar magnètic d'espí}: $\mathbf{M}_S = - g_S \mu_B \mathbf{S}$, amb $g_S = 2$.
+
+    $\boxed{\Ha_\text{fs} = \Ha_P + \Ha', \quad \Ha' = \Ha_\text{m} + \Ha_\text{so} + \Ha_\text{Darwin}},$ \\
+    $\Ha_{so} = \xi(r) \, \mathbf{L} \cdot \mathbf{S}$, {\small on $\xi(r) := \frac{1}{2} \frac{\hbar^2 e^2}{m_e^2 c^2} Z \frac{1}{r^3}$.}
+
+    Els $\ket{n \, l \, s \, j \, m}$ (\underline{base acoblada}) són VEPs de $\Ha'$.
+
+    $E_{nlj} = E_n + \Delta E_{nlj}, \quad \Delta E_{nlj} = \expval{\Ha_\text{m}} + \expval{\Ha_\text{SO}} + \expval{\Ha_\text{DW}}$.
+
+    {\small $\expval{\Ha_\text{SO}} = - E_n \frac{(\alpha Z)^2}{2n} \frac{j(j + 1) - l(l + 1) - \frac{3}{4}}{l\left(l + \frac{1}{2}\right)(l + 1)} (1 - \delta_{l0})$, \\
+    $\expval{\Ha_\text{m}} = - E_n \left( \frac{\alpha Z}{n} \right)^2 \left( \frac{3}{4} - \frac{n}{l + \frac{1}{2}} \right) \leq 0$, \\
+    $\expval{\Ha_\text{DW}} = - E_n \frac{(\alpha Z)^2}{n} \delta_{l0} \geq 0$.}
+
+    $\Delta E_{nj} = E_n \left( \frac{\alpha Z}{n} \right)^2 \left[ \frac{n}{j + \frac{1}{2}} - \frac{3}{4} \right] < 0$.
+
+    $E_{nj} = E_n + \Delta E_{nj}, \quad g = \begin{cases}
+      2(2j + 1), & j < n - 1/2, \\
+      2j + 1, & j = n - 1/2.
+    \end{cases}$
+
+    {\small Donat $n$, els $n$ nivells $j \in \left\{ \frac{1}{2}, \ldots, n - \frac{1}{2} \right\}$ són multiplet f.s.}
+
+    \hrulefilll
+
+    \section{Miscel·lània}
+
+    $\int_0^\infty x^n e^{-ax} \, dx = \frac{\Gamma(n + 1)}{a^{n + 1}}$, on $\Gamma(n + 1) = n!$ si $n \in \mathbb{N}$.
+
+    \underline{Coordenades esfèriques}: $\begin{cases}
+      x = r \sin \theta \cos \phi, \\
+      y = r \sin \theta \sin \phi, \\
+      z = r \cos \theta.
+    \end{cases}$
+
+    \underline{Capes}: K ($n = 1$), L ($n = 2$), M ($n = 3$), N ($n = 4$), ...
+
+    \underline{Subcapes}: s ($l = 0$), p ($l = 1$), d ($l = 2$), f ($l = 3$), ...
+  \end{multicols*}
+\end{document}
