% !TEX root = main.tex
\chapter{Electrostàtica en dielèctrics}

\section{Introducció}

\begin{defi}
  Depenent de com es comporten en presència d'un camp elèctric, els materials es poden dividir entre:
  \begin{itemize}
    \item \underline{Materials dielèctrics}: les seves càrregues, sota l'acció d'una força elèctrica, pateixen desplacaments petits respecte l'equilibri.

    \item \underline{Materials conductors}: part de les seves càrregues, sota l'acció d'una força elèctrica, poden moure's gairebé lliurement per tot el material.
  \end{itemize}
\end{defi}

\begin{defi}
  Quan un medi s'introdueix en un camp elèctric té lloc el fenòmen de la polarització. En funció dels tipus de molècules que els constitueixen, podem dividir els medis en:
  \begin{enumerate}
    \item \underline{Dielèctrics de molècules no polars}: el moment dipolar per a cada molècula és nul.

    \item \underline{Dielèctrics de molècules polars}: cada molècula presenta un moment dipolar $\vec{p}_0 \neq 0$, però la seva distribució a l'atzar fa que el moment dipolar total sigui nul.
  \end{enumerate}
\end{defi}

\begin{defi}
  Quan un material està sotmès a un camp elèctric poden tenir lloc els següents fenòmens:
  \begin{enumerate}
    \item \underline{Polarització electrònica}: en una molècula on el centre de càrrega positiva i negativa coincideixen, en aplicar el camp elèctric els dos es separen i apareix un moment dipolar no nul.

    \item \underline{Polarització iònica}: en una molècula no polar que consisteixi d'enllaços iònics, si els àtoms estan diferentment carregats poden apropar-se/allunyar-se depenent del camp elèctric, i donar un moment dipolar no nul.

    \item \underline{Polarització dipolar}: un dielèctric de molècules polars es polaritzarà sota l'acció d'un camp elèctric ja que les molècules tendiran a dirigir-se en el sentit del camp.
  \end{enumerate}
\end{defi}

\begin{defi}[Vector polarització]
  El vector polarització $\vec{P}$ es defineix com el moment dipolar per unitat de volum:
  \[ \vec{P} := \frac{\dif p}{\dif v}. \]
\end{defi}

\begin{prop}
  El potencial creat per un medi polaritzat és:
  \[ V(P) = \frac{1}{4 \pi \varepsilon_0} \int_V \frac{\vec{P} \cdot \vec{r}}{r^3} \dif v. \]
\end{prop}

\begin{prop}
  En comptes d'utilitzar l'expressió anterior, podem expressar la polarització com si fos una densitat de càrrega de la següent manera:
  \[ \begin{cases}
    \sigma_P = \vec{P} \cdot \vec{n}, \\
    \rho_P = - \div \vec{P}.
  \end{cases} \]
  i calcular el potencial i el camp considerant les càrregues pures i les de polarització:
  \[ \begin{cases}
    \displaystyle V = \frac{1}{4 \pi \varepsilon_0} \left( \int_V \frac{\rho + \rho_P}{r} \dif v + \int_S \frac{\sigma + \sigma_P}{r} \dif s \right), \\
    \displaystyle \vec{E} = \frac{1}{4 \pi \varepsilon_0} \left( \int_V \frac{(\rho + \rho_P) \vec{r}}{r^3} \dif v + \int_S \frac{(\sigma + \sigma_P) \vec{r}}{r^3} \dif s \right).
  \end{cases} \]

  Sempre es té que la càrrega de polarització és nul·la:
  \[ Q_P = \int_V \rho_P \dif v + \int_S \sigma_P \dif s = 0. \]
\end{prop}

\section{Equacions fonamentals en medis dielèctrics}

\begin{defi}
  El vector desplaçament és:
  \[ \vec{D} := \varepsilon_0 \vec{E} + \vec{P}. \]
\end{defi}

\begin{prop}
  Les equacions fonamentals en medis dielèctrics són les següents:
  \begin{align*}
    \oint_S \vec{D} \vec{\dif S} &= Q_i & \oint_C \vec{E} \vec{\dif l} &= 0 \\
    \div \vec{D} &= \rho & \curl \vec{E} &= 0 \\
    \vec{n} \cdot (\vec{D_2} - \vec{D_1}) &= \sigma & \vec{n} \cross (\vec{E_2} - \vec{E_1}) &= 0
  \end{align*}
\end{prop}

\section{Susceptibilitat elèctrica i permititivat}

\begin{defi}
  Per poder determinar les densitats de càrrega de polarització necessitem saber el valor de $\vec{P}$, i per això necessitem saber quina relació hi ha entre $\vec{P}$ i $\vec{E}_{ext}$. Per això, dividim els materials en diferents grups segons la relació:

  \begin{enumerate}
    \item \underline{Polarització permanent}: materials que encara amb absència de camp elèctrics presenten una polarització.

    \item \underline{Dielèctrics no lineals}: Relació entre $\vec{P}$ i $\vec{E}$ no lineal:
    \[ P_i = \sum_{j = 1}^3 \alpha_{ij} E_j + \sum_{j = 1}^3 \sum_{k = 1}^3 \beta_{ijk} E_j E_k + \cdots. \]

    \item \underline{Dielèctrics lineals:} Relació entre $\vec{P}$ i $\vec{E}$ lineal:
    \[ P_i = \varepsilon_0 \sum_{j = 1}^3 \chi_{ij} E_j. \]
    Definim $\TT{\chi}$ com el tensor de susceptibilitat elèctrica, que pot dependre de la posició i de la direcció del camp.

    \item \underline{Dielèctrics lineals i isòtrops:} Dielèctric lineal en què la polarització no depèn de la direcció del camp, i per tant:
    \[ \vec{P} = \varepsilon_0 \chi \vec{E}, \quad \chi \in \mathbb{R}^+. \]
  \end{enumerate}
\end{defi}

\begin{defi}
  En un dielèctric LI (lineal i isotròpic) podem definir:
  \begin{itemize}
    \item \underline{Permitivitat relativa}: $\varepsilon_r := 1 + \chi$.
    \item \underline{Permitivitat}: $\varepsilon := \varepsilon_0 \varepsilon_r$.
  \end{itemize}
\end{defi}

\begin{prop}
  En un dielèctric LI tenim:
  \[ \vec{D} = \varepsilon_0 \vec{E} + \vec{P} = \varepsilon_0 (1 + \chi) \vec{E} = \varepsilon_0 \varepsilon_r \vec{E} = \varepsilon \vec{E}. \]
\end{prop}

\section{Equacions fonamentals en dielèctrics lineals i isòtrops}

\begin{prop}
  En medis LI les equacions fonamentals generals per dielèctrics es particularitzen així:
  \begin{align*}
    \curl \vec{E} &= 0, \\
    \div (\varepsilon \vec{E}) &= \rho, \\
    \vec{n} \cross (\vec{E}_2 - \vec{E}_1) &= 0, \\
    \vec{n} \cdot (\varepsilon_2 \vec{E_2} - \varepsilon_1 \vec{E_1}) &= \sigma.
  \end{align*}
\end{prop}

\begin{obs}
  Si el dielèctric a més de lineal i isòtrop és homogeni, la segona equació es pot expressar de la següent manera:
  \[ \div \vec{E} = \frac{\rho}{\varepsilon}. \]
\end{obs}
