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