diff --git a/quad8/electro/resum/tema2.tex b/quad8/electro/resum/tema2.tex
new file mode 100644
index 0000000..fb1dfc2
--- /dev/null
+++ b/quad8/electro/resum/tema2.tex
@@ -0,0 +1,125 @@
+% !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}
