径向对称: 当一个量(如浓度或温度)仅依赖于到中心点的距离时,就发生径向对称。在球坐标系中,这意味着该量仅是半径 'r' 的函数,而不是角度 'θ' 或 'φ' 的函数。本质上,在给定半径的球体上的所有点的值都是相同的。轴对称: 当一个量与方位角 'φ' 无关时,就发生轴对称。这意味着该量可以随半径 'r' 和极角 'θ' 变化,但在绕中心轴旋转时保持不变。
径向对称(一维情况:u(r, t))
方程简化为:
$$ \frac{\partial u}{\partial t}=D\left[\frac{\partial^2 u}{\partial r^2}+\frac{2}{r} \frac{\partial u}{\partial r}\right] $$
有限差分近似:
时间导数:前向差分
$$ \frac{u_i^{n+1}-u_i^n}{\Delta t} $$
$r$ 的二阶导数:中心差分
$$ \frac{\partial^2 u}{\partial r^2} \approx \frac{u_{i+1}^n-2 u_i^n+u_{i-1}^n}{\Delta r^2} $$
$r$ 的一阶导数:中心差分
$$ \frac{\partial u}{\partial r} \approx \frac{u_{i+1}^n-u_{i-1}^n}{2 \Delta r} $$
数值格式:
$$ u_i^{n+1}=u_i^n+\frac{D \Delta t}{\Delta r^2}\left[u_{i+1}^n-2 u_i^n+u_{i-1}^n\right]+\frac{2 D \Delta t}{r_i \Delta r}\left(u_{i+1}^n-u_{i-1}^n\right) $$
轴对称情况(二维:$u(r, θ, t)$)
方程简化为:
$$ \frac{\partial u}{\partial t}=D\left[\frac{1}{r^2} \frac{\partial}{\partial r}\left(r^2 \frac{\partial u}{\partial r}\right)+\frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial u}{\partial \theta}\right)\right] $$
有限差分近似:
径向项:
$$ \frac{1}{r^2} \frac{\partial}{\partial r}\left(r^2 \frac{\partial u}{\partial r}\right) \approx \frac{1}{r_i^2}\left[\frac{\left(r_{i+1 / 2}^2 D_{i+1 / 2} \frac{u_{i+1}^n-u_i^n}{\Delta r}\right)-\left(r_{i-1 / 2}^2 D_{i-1 / 2} \frac{u_i^n-u_{i-1}^n}{\Delta r}\right)}{\Delta r}\right] $$
角度项:
$$ \frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial u}{\partial \theta}\right) \approx \frac{1}{r^2 \sin \theta_j}\left[\frac{\left(\sin \theta_{j+1 / 2} \frac{u_{j+1}^n-u_i^n}{\Delta \theta}\right)-\left(\sin \theta_{j-1 / 2} \frac{u_j^n-u_{j-1}^n}{\Delta \theta}\right)}{\Delta \theta}\right] $$
数值格式:
$$ u_{i, j}^{n+1}=u_{i, j}^n+D \Delta t\left[\frac{1}{r_i^2} \frac{\partial}{\partial r}\left(r^2 \frac{\partial u}{\partial r}\right)+\frac{1}{r_i^2 \sin \theta_j} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial u}{\partial \theta}\right)\right] $$
一维径向扩散实现(显式方法)
此脚本求解:
$$ \frac{\partial u}{\partial t}=D\left[\frac{\partial^2 u}{\partial r^2}+\frac{2}{r} \frac{\partial u}{\partial r}\right] $$
假设:
https://gist.github.com/viadean/12200f812d9be3979e3a788dfba7b3e8
扩展到二维轴对称情况
对于轴对称方程:
$$ \frac{\partial u}{\partial t}=D\left[\frac{1}{r^2} \frac{\partial}{\partial r}\left(r^2 \frac{\partial u}{\partial r}\right)+\frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial u}{\partial \theta}\right)\right] $$
我们可以:
数值方法:
求解:
$$ \frac{\partial u}{\partial t}=D\left[\frac{1}{r^2} \frac{\partial}{\partial r}\left(r^2 \frac{\partial u}{\partial r}\right)+\frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial u}{\partial \theta}\right)\right] $$
有限差分近似:
时间导数:前向差分
$$ \frac{u_{i, j}^{n+1}-u_{i, j}^n}{\Delta t} $$
径向项:二阶中心差分
$$ \frac{1}{r^2} \frac{\partial}{\partial r}\left(r^2 \frac{\partial u}{\partial r}\right) \approx \frac{1}{r_i^2}\left[\frac{\left(r_{i+1 / 2}^2 u_{i+1}^n-r_i^2 u_i^n\right)-\left(r_i^2 u_i^n-r_{i-1 / 2}^2 u_{i-1}^n\right)}{\Delta r^2}\right] $$
角度项:二阶中心差分
$$ \frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta}\left(\sin \theta \frac{\partial u}{\partial \theta}\right) \approx \frac{1}{r^2 \sin \theta_j}\left[\frac{\sin \theta_{j+1 / 2} u_{j+1}^n-\sin \theta_j u_j^n}{\Delta \theta}-\frac{\sin \theta_j u_j^n-\sin \theta_{j-1 / 2} u_{j-1}^n}{\Delta \theta}\right] $$
二维轴对称扩散:
https://gist.github.com/viadean/73329ad04d7686170db983ec6b1c88bd