解释一下扩散方程

(各向同性的)扩散方程:

    \[\frac{\partial\phi(\vec{r},t)}{\partial t} = \nabla \cdot \big[ D(\phi,\vec{r}) \ \nabla\phi(\vec{r},t) \big]\]

\phi(\vec{r},t)是某点某时刻的浓度,D(\phi,\vec{r})是某点在浓度\phi下的扩散系数。如果扩散系数D是常数,那么扩散方程退化为热传导方程:

    \[\frac{\partial\phi(\vec{r},t)}{\partial t} = D\nabla^2\phi(\vec{r},t)\]

扩散方程很好理解,方程中D(\phi,\vec{r}) \ \nabla\phi(\vec{r},t)就是(负的)扩散过程中的浓度流。某点某时刻浓度流的大小等于该点的(负的)浓度梯度乘以扩散系数。
而(负的)浓度流的散度自然就是浓度随时间的变化率。

事实上扩散方程是可以直接从连续性方程得出的:

    \[\frac{\partial\phi}{\partial t}+\nabla\cdot\mathbf{j}=0\]

如果浓度流正比于该点的(负的)密度梯度(Fick’s law),那么:

    \[\mathbf{j}=-D(\phi)\,\nabla\phi(\vec{r},t)\]

直接带入连续性方程就给出了扩散方程。

对于各向异性扩散,浓度流的方向跟(负的)浓度梯度的方向可能并不重合,此时扩散系数就必须是一个张量,相应的矩阵是对称正定的。

    \[\frac{\partial\phi(\vec{r},t)}{\partial t} = \sum_{i=1}^3\sum_{j=1}^3 \frac{\partial}{\partial x_i}\left(D_{ij}(\phi,\vec{r})\frac{\partial \phi(\vec{r},t)}{\partial x_j}\right)\]

参见:
https://en.wikipedia.org/wiki/Diffusion_equation