diff --git a/quad10/atomica/formulari/main.tex b/quad10/atomica/formulari/main.tex
new file mode 100644
index 0000000..7168588
--- /dev/null
+++ b/quad10/atomica/formulari/main.tex
@@ -0,0 +1,412 @@
+\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{mathtools}
+\usepackage{physics}
+\usepackage{bbm}
+\usepackage{enumitem}
+\usepackage{bm}
+
+\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}{0.55em}
+\pagenumbering{gobble}
+\setlength{\columnseprule}{1pt}
+
+\newcommand{\forceindent}{\leavevmode{\parindent=1em\indent}}
+
+\title{\vspace{-1em} Formulari final 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}}%
+
+\setlist[itemize]{noitemsep, topsep=0pt}
+\setlist[enumerate]{noitemsep, topsep=0pt}
+
+\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$:
+
+    $\boxed{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_n(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{Àtoms multielectrònics}
+    \subsection{Aproximació electrostàtica}
+
+    $N$ electrons lligats al nucli ($M, Ze$).
+
+    Considerem $E_\text{kin}$ no relativista de $e^-$'s i nucli, i l'ener. potencial d'interacció electrostàtica de $e^-$'s i nucli, i els $e^-$'s entre ells.
+
+    \underline{Pr. de simetrització}: A un sist. de part. idèntiques, $[P, \Ha] = 0 \quad \forall P \in \mathcal{S}_n$.
+
+    \underline{F. compl. simètrica}: $P \psi_S = \psi_S \quad \forall P \in \mathcal{S}_n$. \\
+    \underline{F. compl. antisimètrica}: $P \psi_S = (-1)^P \psi_S \quad \forall P \in \mathcal{S}_n$. \\
+
+    \underline{Simetritzador}: $S_N := \frac{1}{N!} \sum_{P \in \mathcal{S}_n} P$. \\
+    \underline{Antisimetritzador}: $A_N := \frac{1}{N!} \sum_{P \in \mathcal{S}_n} (-1)^P P$. \\
+
+    Estats d'spin enter (bosons) són compl. simètrics. \\
+    Estats d'spin semienter (fermions) són compl. antisim.
+
+    \subsection{Aproximació de partícules independents}
+    $r_{ij} \sim R$, $r_i \sim R$. Suposant $N \ll Z$ ($\implies v_\text{ee} \ll |v_\text{en}|$): \\
+    $\Ha_\text{Aprox. e.s.} = \Ha_\text{Aprox. P.I.} + \Ha'$. $\Ha_\text{API}$ separable $\implies \Psi(q_1, \ldots, q_N)$ separable. Perquè sigui antisimètrica:
+    $\Psi(q_1, \ldots, q_N) = C \frac{1}{N!} \det \{ \psi_i(q_j) \}$, $C = \sqrt{N!}$.
+
+    \hrulefill
+
+    \underline{Regles de Slater-Condon}: Siguin $\ket{\Phi}$, $\ket{\Psi}$ determinants d'Slater normalitzats. Aleshores: $\bra{\Phi}\ket{\Psi} = \mathbbm{1}(\Phi = \Psi)$.
+
+    Operador a 1 cos. Si $F(x_1, \ldots, x_N) = \sum_{i = 1}^N f(x_i)$: \\
+    \forceindent $\bra{\Phi}F\ket{\Phi} = \sum_{i = 1}^N \underbrace{\int \phi_i(x) f(x) \phi_i(x) \, dx}_{= \bra{i}f\ket{i}}$ \\
+    \forceindent Si difereixen en 1 orbital d'spin (el $k$-èssim): $\bra{\Phi}F\ket{\Psi} = \bra{\phi_k}f\ket{\psi_k}$. \\
+    \forceindent Si difereixen en 2+ orbitals d'spin: $\bra{\Phi}F\ket{\Psi} = 0$ (ortogonalitat).
+
+    Operador a 2 cossos. Si $G(x_1, \ldots, x_N) = \sum_{i < j} g(x_i, x_j)$: \\
+    \forceindent $\bra{\Phi}G\ket{\Phi} = \sum_{i < j} \left\{ \underbrace{\bra{ij}g\ket{ij}}_{J_{ij} \text{(int. directa)}} - \underbrace{\bra{ij}g\ket{ji}}_{K_{ij} (int. d'intercanvi)} \right\}$
+    \forceindent Si difereixen en 1 orbital d'spin (el $k$-èssim): $\bra{\Phi}G\ket{\Psi} = \sum_{i \neq k} \left\{ \bra{\phi_i \phi_k}g\ket{\phi_i \psi_k} - \bra{\phi_i \phi_k}k\ket{\psi_k \phi_i} \right\}$. \\
+    \forceindent Si difereixen en 2 orbitals d'spin ($k$ i $l$): \\
+    $\bra{\Phi}G\ket{\Psi} = \bra{\phi_k \phi_l}g\ket{\psi_k \psi_l} - \bra{\phi_k \phi_l}g\ket{\psi_l \psi_k}$. \\
+    \forceindent Si difereixen en 3+ orbitals d'spin: $\bra{\Phi}G\ket{\Psi} = 0$ (ortogonalitat).
+
+    \subsection{Aproximació del camp central}
+
+    $\Ha_{CF} = \sum_i \left( - \frac{\hbar^2}{2 m_e} \laplacian_{\mathbf{r}_i} + V_\text{eff}(r_i) \right)$.
+
+    Els orbitals monoparticulars depenen de $n$ o $l$.
+
+    \underline{Capa}: $n$ i $l$ fixa.
+
+    Nombre d'$e^-$ a una capa: $0 \leq N_{nl} \leq 2(2l+1)$. \\
+    Energia de l'àtom: $E = \sum_{n, l} N_{nl} \varepsilon_{nl}$.
+
+    Conf. electrònica $\gamma$: determina la capa de cada $e^-$, i té degeneració $D_\gamma = \prod_{n, l \text{ obertes}} {2(2l + 1) \choose N_{nl}}$ i paritat $P_\gamma = (-1)^{\sum_{i = 1}^N l_i}$.
+
+    Densitat radial de l'àtom: $4 \pi r^2 \rho(r) := \sum_{n, l} N_{nl} P_{nl}^2(r)$.
+
+    \subsection{Estructura grossa en acoblament LS}
+
+    Degeneració de les confs. desapareix si intdoduïm: $\Ha_1' := H_\text{EA} - H_\text{CF}$ (interacció electrostàtica residual) i $\Ha_2' := \sum_i \xi(r_i) \mathbf{L}_i \cdot \mathbf{S}_i$ (interaccions spin-òrbita), on $\xi(r_i) = \frac{\hbar^2}{2 m_e^2 c^2} \frac{1}{r} \frac{d V_\text{eff}(r)}{dr}$. Cada configuració dona diversos termes.
+
+    Nosaltres farem acoblament LS (vàlid per àtoms petits), en què $\Ha_1' \gg \Ha_2'$.
+
+    Siguin $\mathbf{L} := \sum_i \mathbf{L}_i$, $\mathbf{S} = \sum_i \mathbf{S}_i$. Aleshores \\
+    $[\Ha_\text{EA}, \mathbf{S}] = [\Ha_\text{EA}, \mathbf{L}] = 0$.
+
+    Per tant les funcions d'ona seran: $\ket{\gamma \, L \, S \, M_L \, M_S}$.
+
+    $\Delta E(\prescript{2S + 1}{}{L}) = \bra{L \, S \, M_L \, M_S}\Ha_\text{EA}'\ket{L \, S \, M_L \, M_S}$.
+
+    \underline{Terme}: $\prescript{2S+1}{}{L}$, degeneració $D_{\gamma L S} = (2L + 1)(2S + 1)$. $2S+1$ és la \underline{multiplicitat} del terme (singlet, doblet, triplet, ...).
+    \begin{enumerate}
+      \item \textbf{Capes tancades}. $L = S = 0$. Únic terme $\prescript{1}{}{S}$.
+      \item \textbf{Un $e^-$ fora de capes tancades}: $L = l$, $S = \frac{1}{2}$. Termes són doblets $\prescript{2}{}{S}, \prescript{2}{}{P}, \ldots$
+      \item \textbf{Dos $e^-$ no equiv. ($n_1 \neq n_2$ o $l_1 \neq l_2$) fora de capes tancades}: Pr. exc. Pauli es compleix automàticament. $L = |l_1 - l_2|, \ldots l_1 + l_2$ i $S = 0, 1$. Termes són singlets i triplets.
+      \item \textbf{3+ $e^-$ no equiv. fora de capes tancades}. S'han d'acoplar moments angulars orbitals i d'espí 2 a 2 com abans.
+      \item \textbf{$e^-$ equiv. en capes obertes}: Alguns valors de $L$ i $S$ són incompatibles pel pr. exc. Pauli. Es verifica $L + S \equiv 0 (2)$ (cond. necessària i suficient).
+    \end{enumerate}
+    \underline{Regles de Hund}: Donada $\gamma$, $S \downarrow \implies E \uparrow$. I donades $\gamma, S$; $L \downarrow \implies E \uparrow$.
+
+    \subsection{Estructura fina en acoblament LS}
+
+    En la base acoblada, $\ket{\gamma \, L \, S \, J \, M}$, $\Delta E_J = \expval{\Ha_2'}$, \\
+    $\boxed{\Delta E_J = \frac{1}{2}T_{LS} [J(J + 1) - L(L + 1) - S(S + 1)].}$ \\
+    $E(\prescript{2S + 1}{}{L}_J) = E(\prescript{2S + 1}{}{L}) + \Delta E_J$.
+
+    Els termes es desdoblen en nivells de f.s \\
+    ($2S + 1$ si $S \leq L$, $2L + 1$ si $L \geq S$).
+
+    \underline{Regla de l'interval de Lambdé}: \\
+    $E(\prescript{2S + 1}{}{L}_J) - E(\prescript{2S + 1}{}{L}_{J - 1}) = T_{LS} J$. \\
+    Els àtoms que la compleixen s'anomenen \underline{regulars} (i els que no, \underline{irregulars}).
+
+    Si $T_{LS} > 0$, és un \underline{multiplet normal} ($J \uparrow \implies E \uparrow$). \\
+    Si $T_{LS} < 0$, és un \underline{multiplet invertit} ($J \uparrow \implies E \downarrow$).
+
+    Si $\gamma$ \textbf{només} té 1 capa oberta: és multiplet normal si l'ocupen menys de la meitat d'$e^-$. Si no, serà invertit.
+
+    Centre de gravetat del multiplet és l'energia del terme: $\sum_{J = |L - S|}^{L + S} (2J + 1) \Delta E_J = 0$. \\
+    Equivalentment: $E(\prescript{2S + 1}{}{L}) = \frac{\sum_J (2J + 1) \prescript{2S + 1}{}{L}_J}{\sum_J (2J + 1)}$.
+
+    \hrulefilll
+
+    \section{Àtoms i ions amb 2 electrons}
+
+    Massa $M = \infty$, càrrega $Ze$ i 2 electrons.
+
+    $\Ha_\text{EA} = - \frac{\hbar^2}{2 m_e} \laplacian_{\mathbf{r}_1} - \frac{\hbar^2}{2 m_e} \laplacian_{\mathbf{r}_2} - \frac{Z e^2}{r_1} - \frac{Z e^2}{r_2} + \frac{e^2}{r_{12}}$.
+
+    $\Ha_\text{EA}$ no depèn de l'spin $\implies \Psi(q_1, q_2) = \psi(\mathbf{r}_1, \mathbf{r}_2) \chi(1, 2).$
+
+    ($\alpha = \uparrow, \beta = \downarrow$)
+
+    Base no acoblada (pròpia de $S_1^2, S_{1z}, S_2^2, S_{2z}$): \\
+    $\alpha(1)\alpha(2)$, $\alpha(1)\beta(2)$, $\beta(1)\alpha(2)$, $\beta(1)\beta(2)$.
+
+    Base acoblada (pròpia de $S_1^2$, $S_2^2$, $S^2$, $S_z$): \\
+    $\begin{array}{l}
+      \chi_{0, 0} = \frac{1}{\sqrt{2}} [\alpha(1)\beta(2) - \beta(1)\alpha(2)], \quad \text{(singlet)} \\
+      \left. \begin{array}{l}
+        \chi_{1, +1} = \alpha(1)\alpha(2), \\
+        \chi_{1, 0} = \frac{1}{\sqrt{2}}[\alpha(1)\beta(2) + \beta(1)\alpha(2)], \\
+        \chi_{1, -1} = \beta(1)\beta(2).
+      \end{array} \right\} \, \text{(triplet)}
+    \end{array}$
+
+    La funció d'ona ha de ser antisimètrica, així que tenim: \\
+    \forceindent \underline{Paraheli}: singlet (antisim.) + part espacial sim. \\
+    \forceindent \underline{Ortoheli}: triplet (sim.) + part espacial antisim.
+
+    Termes e.g.: $n_1 l_1 n_2 l_2 \prescript{2S + 1}{}{L}$, $L \in \{ |l_1 - l_2, \ldots, l_1 + l_2 \}, S \in \{ 0, 1 \}$.
+
+    Abús de notació: $1 s \, n l \prescript{2S + 1}{}{L} \equiv n \prescript{2S + 1}{}{l}$.
+
+    \subsection{Models de partícules independients}
+
+    $\Ha_\text{EA} = H_0 + H'$, $H_0 = \sum_{i = 1}^2 h(r_i)$, $h(r) = - \frac{\hbar^2}{2 m_e} \laplacian_{\mathbf{r}} - \frac{Z_\text{eff}(r) e^2}{r}$.
+
+    De nou, la funció d'ona és determinant d'Slater.
+
+    Triplets: $\mathbf{r}_1 = \mathbf{r}_2 \implies \Psi_-(\mathbf{r}_1, \mathbf{r}_2) = 0$, \\
+    Singlets: $\mathbf{r}_1 = \mathbf{r}_2 \implies \Psi_+(\mathbf{r}_1, \mathbf{r}_2) \neq 0$.
+
+    Repulsió entre $e^-$ és positiva $\implies$ major quan $r_1 \approx r_2 \implies$ esperaríem $E_\text{trip} < E_\text{sing}$ pq $e^-$ estan un pél més separats (d'acord amb 1a regla Hund).
+
+    Escollint $Z_\text{eff} = Z$: \\
+    $E^{(0)}(n_1 l_1 \, n_2 l_2) = - \frac{1}{2} Z^2 \left( \frac{1}{n_1^2} + \frac{1}{n_2^2} \right) E_h$.
+
+    \underline{Estat fonamental}: ($1s^2 \, \prescript{1}{}{S}_0$) $\boxed{E_{Z_\text{eff}} = - \left( Z - \frac{5}{16} \right)^2 E_h}$.
+    Cada $e^-$ 1s apantalla a l'altre $\approx 5/16$.
+
+    \underline{Estats excitats}: mètode variacional millor que pertorbatiu. Ordre dels termes de menor a major energia: $\prescript{3}{}{S}, \prescript{1}{}{S}, \prescript{3}{}{P}, \prescript{1}{}{P}$.
+
+    \hrulefilll
+
+    \section{Efecte Stark}
+
+    $\bm{\varepsilon} \equiv \varepsilon \hat{z}$, $\varphi(\mathbf{r}) = - \varepsilon z, \mathbf{A}(\mathbf{r}) = 0$. \\
+    $\Ha_\varepsilon' = \sum_{i = 1}^N [-e \varphi(\mathbf{r}_i)] = e \varepsilon \sum_{i = 1}^N z_i$.
+
+    $z = r \cos \theta = r \sqrt{\frac{4 \pi}{3}} Y_{10}(\hat{r}) =: r \cdot c_{10}(\hat{r})$.
+
+    \underline{Àtoms hidrogenoides}: \\
+    {\small Suposem $\bm{\varepsilon}$ prou intens per només haver de considerar estructura grossa.}
+
+    \forceindent \underline{Estat fonamental}: ignorant l'spin, hi ha 1 estat no degenerat. No es veu afectat per l'efecte Stark lineal (1r ordre). A 2n ordre, $E_1^{(2)} = - \frac{9}{4} \frac{a_0^3}{Z^4} \varepsilon^2$.
+
+    \forceindent \underline{Nivells excitats}: hem de diag. $\bra{n \, l' \, m_l'}\Ha_\varepsilon'\ket{n \, l \, m_l}$. \\
+    És 0 si $l - l' \equiv 0 (2)$ o si $m_l' \neq m_l$. \\
+    Ordenem la base per fer-la diagonal per caixes. \\
+    És útil: $\bra{n, l - 1}r\ket{n l} = \int_0^\infty dr \, P_{n, l - 1}(r) r P_{n l}(r) = - \frac{3n}{2Z}\sqrt{n^2 - l^2} a_0$.
+
+    \underline{Àtoms multielectrònics}: \\
+    {\small Sigui $\gamma$ la seva conf. electrònica. Acceptem acoblament LS.}
+    \begin{itemize}
+      \item \underline{1r ordre de pertorbacions}:
+      \begin{itemize}
+        \item Camp elèctric intens ($\Ha_\text{SO} \ll \Ha_\varepsilon' \ll \Ha_\text{EA}$): no hi ha Stark lineal.
+        \item Camp elèctric feble ($\Ha_\varepsilon' \ll \Ha_\text{SO} \ll \Ha_\text{EA}$): no hi ha Stark lineal.
+      \end{itemize}
+      \item \underline{2n ordre de pertorbacions}:
+      \begin{itemize}
+        \item $\varepsilon$ feble: sí. $E^{(2)}_{\gamma L S J} = \varepsilon^2 (A_{\gamma L S J} + B_{\gamma L S J} M_J^2)$.
+      \end{itemize}
+    \end{itemize}
+
+    \underline{Polarizabilitat atòmica}: \\
+    $\mathbf{D} = \sum_{i = 1}^N (- e \mathbf{r}_i)$. \\
+    \begin{itemize}
+      \item Sense $\varepsilon$ extern: $\expval{\mathbf{D}} = \bra{n l m}-e \mathbf{r}\ket{n l m} = 0$ (paritat).
+      \item Amb $\varepsilon$ extern (no massa intern): $\expval{D_z} = - \frac{2}{\varepsilon} \Delta E_0^{(2)} =: \alpha_d \varepsilon$. \\
+        $\alpha_d$ és la polaritzabilitat dipolar atòmica estàtica.
+    \end{itemize}
+
+    $\alpha_d \approx - \frac{2}{3} \frac{e^2}{E_0^{(0)}} N \bar{r^2}$.
+
+    \section{Efecte Zeeman}
+
+    $\mathbf{B} = B \hat{z}, \varphi(\mathbf{r}) = 0, \mathbf{A}(\mathbf{r}) = \frac{1}{2} \mathbf{B} \times \mathbf{r}$.
+
+    \underline{Àtoms hidrogenoides}: $H_P = \frac{1}{2 m_e} \left( \mathbf{p} + \frac{e}{c}\mathbf{A} \right)^2 + \frac{e \hbar}{2 m_e c}\bm{\sigma} \cdot (\curl \mathbf{A}) + V(\mathbf{r})$.
+
+    Tindrem $H_P = H_0 + H_B' + H_B''$ (ignorem darrer terme). \\
+    $H_0 = - \frac{\hbar^2}{2m_e} \laplacian - \frac{Ze^2}{r}$, $H_B' = \mu_B \mathbf{B} \cdot (\mathbf{L} + 2 \mathbf{S}) = \mu_B B_z (L_z + 2 S_z)$.
+
+    \begin{itemize}
+      \item \underline{Efecte Paschen-Back ($H_B' \gg H_\text{SO}$)}: $B \gg Z^4 \si{\tesla}$. \\
+        $E_{n m_l m_s} = E_n + \mu_B B (m_l + 2m_s)$. \\
+        Incorporant efecte s.o.: $E(B) = E_n + \mu_BB(m_l + 2m_s) - E_n \frac{(\alpha Z)^2}{n} \frac{m_l m_s}{l(l + 1/2)(l + 1)}(1 - \delta_{l0})$.
+      \item \underline{Efecte Zeeman anòmal ($H_B' \ll H_\text{SO}$)}: funcions pròpies $\ket{nljm_j}$. \\
+        $E(B) = E_{nlj} + g_J \mu_B B m_j$, on \\
+        $g_J = 1 + \frac{j(j + 1) + s(s + 1) - l(l + 1)}{2j(j + 1)} = \frac{2j + 1}{2l + 1}$.
+      \item \underline{Camp intermig ($H_B' \sim H_\text{SO}$)}.
+    \end{itemize}
+
+    \underline{Àtoms multielectrònics}: Tractarem $H_B' + H_\text{SO}$ com una pertorbació sobre $H_\text{EA}$, on $H'_\text{SO} = T_{\gamma LS} \mathbf{L} \cdot \mathbf{S}$.
+    \begin{itemize}
+      \item \underline{Efecte Paschen-Back ($H_B' \gg H_\text{SO}$)}: \\
+        $\Delta E = \mu_B B (M_L + 2 M_S) + T_{\gamma L S} M_L M_S$.
+      \item \underline{Efecte Zeeman anòmal ($H_B' \ll H_\text{SO}$)}: Tractem els efectes sobre nivells de f.s. $\Delta E = g_J \mu_B B M_J$.
+    \end{itemize}
+
+    \section{Radiació electromagnètica}
+
+    $b_\lambda^\dagger \ket{\ldots, n_\lambda, \ldots} = \sqrt{n_\lambda + 1} \ket{\ldots, n_\lambda + 1, \ldots}$. \\
+    $b_\lambda \ket{\ldots, n_\lambda, \ldots} = \sqrt{n_\lambda} \ket{\ldots, n_\lambda - 1, \ldots}$. \\
+    $N_\lambda = b_\lambda^\dagger b_\lambda$, $\Ha_F = \sum_\lambda \hbar \omega_\lambda N_\lambda$.
+
+    \underline{Emissió/absorció d'un fotó en aprox. E1} \\
+    $\Ha_\text{E1}' = L^{-3/2} \frac{e}{m_e c} \sum_{j = 1}^N \sum_\lambda \sqrt{\frac{2 \pi \hbar c^2}{\omega_\lambda}} \hat{\bm{\pi}}_\lambda \cdot \mathbf{p}_j (b_\lambda + b_\lambda^\dagger)$. \\
+    $M_{fi} = \bra{f} H_\text{E1}'\ket{i}$. $\Delta E = \pm \hbar \omega$. \\
+    $M_{fi} = L^{-3/2} \frac{e}{m_e c} \sqrt{\frac{2 \pi \hbar c^2}{\omega_\lambda}} \bra{\Psi_f} \sum_{j = 1}^N \hat{\bm{\pi}}_\lambda \cdot \mathbf{p}_j \ket{\Psi_i} (F_\lambda^{(-)} + F_\lambda^{(+)})$,
+    $F_\lambda^{(-)} := \bra{\ldots, n_\lambda', \ldots}b_\lambda\ket{\ldots, n_\lambda, \ldots}$, \\
+    $F_\lambda^{(+)} := \bra{\ldots, n_\lambda', \ldots}b_\lambda^\dagger\ket{\ldots, n_\lambda, \ldots}$.
+    $W_{i \rightarrow f} = L^{-3} 4 \pi^2 \frac{e^2}{\hbar^2} \frac{(\varepsilon_f - \varepsilon_i)^2}{\omega_\lambda} |\hat{\bm{\pi}} \cdot \bm{r}_{fi}|^2 (F_\lambda^{(-)} + F_\lambda^{(+)})^2 \rho_L(E_f)$.
+
+    \underline{Emissió espontània}: $W_{i \rightarrow f} = \frac{4}{3} \frac{\alpha}{c^2} \omega_{fi}^3 |\bm{r}_{fi}|^2$. \\
+    Vida mitja d'un estat: $\tau_i = W_i^{-1}$. $W_i = \sum_{f: \, \varepsilon_f < \varepsilon_i} W_{i \rightarrow f}$. \\
+    Vida mitja d'un nivell $\tau_I$; $\tau_I^{-1} = \frac{1}{D_I} \sum_{i \in I} \tau_i^{-1}$. \\
+    Amplada natural del nivell: $\Gamma_I := \hbar/\tau_I$.
+
+    \underline{Emissió estimulada}: $W_{i \rightarrow f} = \frac{4 \pi^2}{3} \frac{e^2}{\hbar^2} |\bm{r}_{fi}|^2 I(\omega)$.
+
+    \underline{Absorció}: $\sigma(E) = \frac{W_{i \rightarrow f}}{(n_\lambda/L^3) c} = 4 \pi^2 \alpha E |\hat{\bm{\pi}}_\lambda \cdot \bm{r}_{fi}|^2 \delta(\varepsilon_f - (\varepsilon_i + E))$
+
+    \subsection{Regles de selecció}
+    \underline{Àtom hidrogenoide}: $j' \in \{ j, j \pm 1 \}$, $m' \in \{ m, m \pm 1 \}$, $l' \in \{ l \pm 1 \}$. \\
+    \underline{Àtom multielectrònic}: $J' \in \{ J, J \pm 1 \} (0 \not\leftrightarrow 0)$, $M' \in \{ M, M \pm 1 \}$, $(-1)^{\sum_i l_i'} \neq (-1)^{\sum_i l_i}$. \\
+    Si acoplament LS vàlid: $S' = S$, $L' \in \{ L, L \pm 1 \} (0 \not\leftrightarrow 0)$, $M_L' \in \{ M_L, M_L \pm 1 \}$.
+
+    $W_{i \rightarrow f}^\text{se,E1} = \frac{4}{3} \frac{\alpha}{c^2} \omega_{fi}^3 \sum_{q = -1}^{+1} |\bra{f}r_q\ket{i}|^2$, \\
+    $\bra{n' l' m_l' m_s'}r_q\ket{n l m_l m_s} = $ \\
+    $\bra{n' l'}r\ket{n l} [c^1(l', m_l'; l, m_l) \delta_{q, m_l' - m_l}] \delta_{m_s', m_s}$, \\
+    $c^1(l', m_l'; l, m_l) \delta_{q, m_l' - m_l} = $ \\
+    $\sqrt{\frac{2l + 1}{2l' + 1}} \bra{l100}\ket{l'0} \bra{l1m_l,m_l' - m_l}\ket{l'm_l'}$.
+
+    \hrulefilll
+
+    \section{Miscel·lània}
+
+    {\small $\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$), ...}
+
+    $c_{LM} (\hat{r}) := \sqrt{\frac{4\pi}{2L + 1}} Y_{LM} (\hat{r})$. $\bra{l-1, m}c_{10}\ket{l, m} = c^1(l-1; m; l; m) = \sqrt{\frac{l^2 - m^2}{(2l - 1)(2l + 1)}}$
+  \end{multicols*}
+\end{document}
