% !TEX root = main.tex
\chapter{Electrostàtica en el buit}

\section{Introducció}

\begin{defi}[Densitat de càrrega]
  Les densitats de càrrega volúmica, superficial i lineal són, respectivament:
  \[ \rho(\vec{r}) = \frac{\dif q}{\dif V}, \]
  \[ \sigma(\vec{r}) = \frac{\dif q}{\dif s}, \]
  \[ \lambda(\vec{r}) = \frac{\dif q}{\dif l}. \]

  Per les càrreges puntuals normalment denotarem la seva càrrega amb la lletra $q$.
\end{defi}

\begin{prop}[Llei de Coulomb]
  \[ \vec{F_{12}} = K \frac{q_1 q_2}{r_{12}^2} \vec{e}_{12} = K \frac{q_1 q_2}{r_{12}^3} \vec{r}_{12}, \]
  on $\displaystyle \vec{a}_{12} := \frac{\vec{r}_{12}}{|| \vec{r}_{12} ||}$ és el vector que apunta de la càrrega 1 a la 2 normalitzat i $\displaystyle k = \frac{1}{4 \pi \varepsilon_0}$, on $\varepsilon_0 = \SI{8.845e-12}{\coulomb\squared \per\newton \per\meter\squared}$ és la permitivitat del buit.
\end{prop}

\begin{prop}[Principi de superposició]
  La força deguda a un sistema de càrregues és la suma de les forces deguda a cada una d'elles com si estigués sola:
  \[ \vec{F}_j = \frac{1}{4 \pi \varepsilon_0} \sum_{\substack{i=1 \\ i \neq j}}^N \frac{q_i q_j}{r_{ij}^3} \vec{r}_{ij}. \]
\end{prop}

\begin{prop}[Camp elèctric]
  El camp elèctric és:
  \[ \vec{E} = \frac{\vec{F}}{q}. \]

  Així doncs, el camp elèctric creat per una càrrega puntual és:
  \[ \vec{E} = \frac{1}{4 \pi \varepsilon_0} \frac{q_1}{r_{12}^3} \vec{r}_{12}, \]
  i el camp elèctric creat per una distribució volúmica de càrrega (és anàlog per distribucions superficials i lineals) és:
  \[ \vec{E} = \frac{1}{4 \pi \varepsilon_0} \int_V \frac{\rho(\vec{r}) \cdot \vec{r}}{r^3} \dif v. \]
\end{prop}

\section{Equacions fonamentals del camp elèctric}

\begin{obs}
  Propietats del camp elèctric.

  \begin{enumerate}
    \item Llei de Gauss:
    \[ \oint_S \vec{E} \cdot \vec{\dif S} = \frac{Q_i}{\varepsilon_0}. \]

    \item Circulació del camp sobre un camí tancat:
    \[ \oint_C \vec{E} \cdot \vec{\dif l} = 0. \]

    Això vol dir que el camp elèctric és conservador, i per tant:
    \begin{enumerate}[a)]
      \item $V(A) - V(B) = \int_C \vec{E} \cdot \vec{\int l}$ per tot camí $C$ que uneixi els punts $A$ i $B$ (és a dir, el valor del potencial a un punt $A$ respecte d'un orígen $B$ és independent del camí seguit).
      \item $\vec{E} = - \grad V$.
    \end{enumerate}
  \end{enumerate}
\end{obs}

\begin{prop}[Gauss's law in differential form]
  \[ \div \vec{E} = \frac{\rho}{\varepsilon_0}. \]
\end{prop}

\begin{prop}
  El camp elèctric al buit és irrotacional:
  \[ \curl \vec{E} = 0. \]
\end{prop}

\begin{prop}[Condicions de continuïtat del camp elèctric]
  \[ \vec{n} \cross (\vec{E}_2 - \vec{E}_1) = 0, \qquad \vec{n} \cdot (\vec{E}_2 - \vec{E}_1) = \frac{\sigma}{\varepsilon_0}. \]
\end{prop}

\section{Altres equacions}

\begin{prop}[Equació de Poisson]
  \[ \lapl V = - \frac{\rho}{\varepsilon_0}. \]
\end{prop}

\begin{prop}[Equació de Laplace]
  En els punts on no hi ha càrrega, l'equació de Poisson es pot expressar com:
  \[ \lapl V = 0. \]
\end{prop}

\begin{obs}
  Propietats del potencial elèctric:
  \begin{enumerate}
    \item Pren \underline{valors finits} (està fitat).
    \item Sempre és \underline{continu}, però no és $\mathcal{C}^2$ en general (per les condicions de continuïtat del camp elèctric).
    \item Si $\rho = 0$, not pot tenir cap màxim o mínim local.
    \item Compleix el \underline{principi de superposició} (és a dir, l'espai de solucions és un espai vectorial).
    \item És \underline{constant} en volums tancats per \underline{àrees equipotencials}.
    \item El potencial és \underline{únic}.
  \end{enumerate}
\end{obs}

\section{Dipol elèctric i moment dipolar}

\begin{defi}[Moment dipolar]
  El moment dipolar d'un dipol (que consisteix de dos càrregues puntuals $+q$ i $-q$ separades per $\vec{l}$) és:
  \[ \vec{p} = q \vec{l}. \]
\end{defi}

\begin{prop}
  El potencial creat per un dipol és:
  \[ V(p) = \frac{\vec{p} \cdot \vec{r}}{4 \pi \varepsilon_0 r^2}, \]
  i el camp elèctric creat és:
  \[ \vec{E} = - \grad V = \frac{1}{4 \pi \varepsilon_0} \left( \frac{3 (\vec{p} \cdot \vec{r}) \vec{r}}{r^5} - \frac{\vec{p}}{r^3} \right). \]
\end{prop}

\begin{prop}
  Si existeix un camp elèctric extern, l'energia d'un dipol en aquest camp és el treball que es fa per portar-lo del despatx del Varela (l'infinit) al punt on es troba, que és:
  \[ U = - \vec{p} \cdot \vec{E}. \]

  La força total que exerceix el camp sobre el dipol és
  \[ \vec{F} = (\vec{p} \cdot \nabla) \vec{E} \]
  i el moment de força electrostàtica respecte el punt mig de les dues càrregues del dipol és
  \[ \vec{\Gamma} = \vec{p} \cross \vec{E}. \]
\end{prop}
