NPP dla cienkich membran
Model Nernsta-Plancka-Poissona do opisu elektrodyfuzji w cienkich membranach. Pozwala na otrzymanie profili stężeń i potencjału wewnątrz membrany.
Równanie Nernsta-Plancka podaje zależność strumienia jonów od procesów dyfuzji i migracji, podczas gdy równanie Poissona opisuje pole elektryczne powstające w wyniku ruchu jonów. Program korzysta z warunków brzegowych Chang'a-Jaffe Dirichleta dla stężeń i warunków brzegowych Dirichleta dla potencjału.
Model NPP - podstawowe wzory
Model NPP jest problemem początkowo-brzegowym. Poniżej pokazane jest rozwiązanie dla warunków brzegowych Dirichleta zarówno dla stężeń, jak i dla potencjału.
Prawo zachowania masy
Reakcje nie są uwzględnione, a zatem prawo zachowania masy przyjmuje postać:
$$
\frac{\partial c_i}{\partial t} = - \frac{\partial J_i}{\partial x}
$$
gdzie `c_i` oznacza stężenie `i`-tego jonu, a `J_i` jego strumień; `x` oznacza przestrzeń, a `t` reprezentuje czas.
Równanie Nernsta-Plancka
Równanie Nernsta-Plancka opisuje strumień jonu, uwzględniając wpływ procesów dyfuzji oraz migracji (jako suma dwóch składników):
$$
J_i= - D_i \frac{\partial c_i}{\partial x} - \frac{F}{RT} z_i D_i c_i \frac{\partial \varphi}{\partial x}
$$
gdzie `D_i` oznacza współczynnik dyfuzji i-tego jonu, a `z_i` jego ładunek; `\varphi` representuje potencjał elektryczny; `F` to stała Faradaya, `R` to stała gazowa, a `T` oznacza temperaturę.
Równanie Poissona
Równanie Poissona łączy potencjał z powstającym zaburzeniem elektro-obojętności:
$$
\frac{\partial^2 \varphi}{\partial x^2} = - \frac{F}{\varepsilon} \sum_i z_i c_i
$$
gdzie `\varepsilon` oznacza przenikalność elektryczną ośrodka.
Warunki początkowe i brzegowe
Zakładamy stałe początkowe stężenia wszyskich jonów:
`c_i (x,0) = c_{i,ST} = const`
Stosujemy warunki brzegowe Dirichleta dla potencjału, t.j. zakładamy stałe wartości potencjału na brzegach:
$$
\left\{ \begin{array}{l}
\varphi(0,t) = \varphi_L = const \\
\varphi(l,t) = \varphi_R = const \\
\end{array} \right.
$$
Warunki brzegowe Dirichleta stosujemy również dla stężeń:
$$
\left\{ \begin{array}{l}
c_i(0,t) = c_{i,L} \cdot k_{in} / k_{out} = const \\
c_i(l,t) = c_{i,R} \cdot k_{in} / k_{out} = const
\end{array} \right.
$$
Zamiennie można zastosować warunki brzegowe Changa-Jaffego:
$$
\left\{ \begin{array}{l}
J_i(0,t) = k_{in} \cdot c_{i,L} - k_{out} \cdot c_i(0,t)\\
J_i(l,t) = k_{out} \cdot c_i(l,t) - k_{in} \cdot c_{i,R}
\end{array} \right.
$$
gdzie `k_{i n}` oraz `k_{out}` są heterogenicznymi stałymi przejścia `i`-tego wchodzącego do membrany i wychodzącego z membrany.
Model NPP - rozwiązanie numeryczne
Rozwiązanie numeryczne powyższych równań opiera się na Metodzie Linii oraz metodzie jawnej Eulera.
Metoda Linii dla stężeń
Dzielimy rozpatrywany odcinek, na `n + 1` przedziałów, otrzymując punkty `x_0` do `x_{n+1}`. Odległość między kolejnymi punktami wynosi `h`. Definiujemy `c_{i,k} \equiv c_i(x_k)`, oraz definiujemy punkty pomocnicze ` x_{k-1/2} ` oraz ` x_{k+1/2} ` w odległości `h/2` od punktu `x_k`. W tych punktach wyznaczać będziemy strumienie (`J_{i,k-1/2}` oraz `J_{i,k+1/2}`).
Prawo zachowania masy dla `i`-tego składnika w `k`-tym punkcie jest wyrażone jako:
$$
\frac{dc_{i,k}}{dt} = - \frac{J_{i,k+1/2}-J_{i,k-1/2}}{h}
$$
Równanie Nernsta-Plancka dla strumieni `J_{i,k-1/2}` oraz `J_{i,k+1/2}`, zapisujemy następująco:
$$
\left\{ \begin{array}{l}
J_{i,k-1/2}= - D_i \frac{d c_{i,k-1/2}}{dx} - \frac{F}{RT} z_i D_i c_{i,k-1/2} \frac{d \varphi_{k-1/2}}{dx} \\
J_{i,k+1/2}= - D_i \frac{d c_{i,k+1/2}}{dx} - \frac{F}{RT} z_i D_i c_{i,k+1/2} \frac{d \varphi_{k+1/2}}{dx}
\end{array} \right.
$$
Następnie pochodne, występujące w równaniu Nernsta-Plancka, możemy zastąpić ilorazami różnicowymi otrzymując:
$$
\left\{ \begin{array}{l}
J_{i,k-1/2}= - D_i \frac{c_{i,k}-c_{i,k-1}}{h} - \frac{F}{RT} z_i D_i \frac{c_{i,k}+c_{i,k-1}}{2} \frac{\varphi_k -\varphi_{k-1}}{h} \\
J_{i,k+1/2}= - D_i \frac{c_{i,k+1}-c_{i,k}}{h} - \frac{F}{RT} z_i D_i \frac{c_{i,k+1}+c_{i,k}}{2} \frac{\varphi_{k+1} -\varphi_k}{h}
\end{array} \right.
$$
Po podstawieniu `J_{i,k-1/2}` oraz `J_{i,k+1/2}` do prawa zachowania masy otrzymujemy:
$$
\frac{dc_{i,k}}{dt} = \frac{D_i}{h^2} \left( c_{i,k+1}-2c_{i,k}+c_{i,k-1} \right) + \frac{F z_i D_i}{2RT h^2} \left( (c_{i,k+1}+c_{i,k})(\varphi_{k+1} -\varphi_k) - (c_{i,k}+c_{i,k-1})(\varphi_k -\varphi_{k-1}) \right).
$$
Metoda Eulera
Jeżeli `c_{i,k}` oznacza stężenie w czasie `t_j`, a `c\text{_}n e w_{i,k}` oznacza stężenie w czasie `t_{j+1}`, to wtedy:
$$
c\text{_}new_{i,k} = c_{i,k} + dt \cdot \frac{dc_{i,k}}{dt}
$$
Po wstawieniu wzoru na pochodną po czasie otrzymujemy:
$$
c\text{_}new_{i,k} = c_{i,k} + \alpha_i \left( c_{i,k+1}-2c_{i,k}+c_{i,k-1} \right) + \beta_i \bigl( (c_{i,k+1}+c_{i,k})(\varphi_{k+1} -\varphi_k) - (c_{i,k}+c_{i,k-1})(\varphi_k -\varphi_{k-1}) \bigr)
$$
gdzie `\alpha_i = \frac{dt \cdot D_i}{h^2}` oraz `\beta_i = \frac{dt \cdot F z_i D_i}{2RT h^2}`
Metoda Linii dla równania Poissona
Pochodną po położeniu zastępujemy ilorazem różnicowym otrzymując:
$$
\frac{\varphi_{k+1}-2\varphi_k+\varphi_{k-1}}{h^2} = - \frac{F}{\varepsilon} \sum_i z_i c_{i,k}
$$
Po pomnożeniu obustronnie przez `h^2` otrzymujemy równanie `i`-tego elementu:
$$
\varphi_{k-1} - 2\varphi_k + \varphi_{k+1} = - \gamma \sum_i z_i c_{i,k}
$$
gdzie `\gamma = \frac{h^2 F}{\varepsilon}`
Wiedząc, że ` \varphi_0 = \varphi_L = const` oraz `\varphi_{n+1} =\varphi_R =const` do powyższego równania podstawiamy `k=1` oraz `k=n`, otrzymując:
$$ -2\varphi_1 + \varphi_2 = - \varphi_L - \gamma \sum_i z_i c_{i,1} $$
$$ \varphi_{n-1} - 2\varphi_{n} = - \varphi_R - \gamma \sum_i z_i c_{i,n} $$
Powyższe trzy równania stanowią układ równań macierzy trójdiagonalnej:
$$
\left[ \begin{array}{ccccccccc|c}
-2 & 1 & 0 & 0 & \cdots & 0 & 0 & 0 & 0 & - \gamma \sum z_i c_{i,1} - \varphi_L \\
1 & -2 & 1 & 0 & \cdots & 0 & 0 & 0 & 0 & - \gamma \sum z_i c_{i,2} \\
0 & 1 & -2 & 1 & \cdots & 0 & 0 & 0 & 0 & - \gamma \sum z_i c_{i,3} \\
0 & 0 & 1 & -2 & \cdots & 0 & 0 & 0 & 0 & - \gamma \sum z_i c_{i,4} \\
\vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots & \vdots\\
0 & 0 & 0 & 0 & \cdots & -2 & 1 & 0 & 0 & - \gamma \sum z_i c_{i,n-3} \\
0 & 0 & 0 & 0 & \cdots & 1 & -2 & 1 & 0 & - \gamma \sum z_i c_{i,n-2} \\
0 & 0 & 0 & 0 & \cdots & 0 & 1 & -2 & 1 & - \gamma \sum z_i c_{i,n-1} \\
0 & 0 & 0 & 0 & \cdots & 0 & 0 & 1 & -2 & - \gamma \sum z_i c_{i,n} - \varphi_R \\
\end{array} \right]
$$