\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}
