泊松-玻尔兹曼方程

关键词: 非线性 Poisson-Boltzmann方程 泰勒展开

非线性泊松-玻尔兹曼方程(Poisson-Boltzmann Equation) 在物理学、生物学和化学等学科中有着广泛的应用。

这个模型最早在一个世纪以前由 Debye 和 Hückel 提出,并且进一步被 Kirkwood 所发展。在过去的二十多年里,对该模型的研究兴趣主要集中在数值计算方面。

数值求解非线性泊松-玻尔兹曼方程的困难主要来自方程的非线性指数项。这需要发展一些迭代技术,而不是直接采用标准的数值方法来离散。作为先导性研究,这里尝试将指数项先进行泰勒展开,再进行有限元离散求解

下面分别针对正指数和负指数这两种不同情况的概念模型,使用 FEtch 系统求解两个简单的一维算例。

正指数项

含正指数项的非线性泊松方程 \(-\frac{d^2u}{d x^2} =\exp \left(u\right)\)

解析解为 \(u=\ln \left(\frac{1}{2} \text{sech}^2\left(\frac{x}{2}\right)\right)\)

取 [0,1] 的封闭区域,边值为

\[u(0)=-0.693147\\ u(1)=-0.933376\]

将指数项泰勒展开,得

\[\exp(u)=1+u+\frac{u^2}{2}+\frac{u^3}{6}+O\left(u^4\right)\]

采用有限元方法进行数值求解。取 2 节点线性单元,均匀网格剖分,单元长度为 dx=0.01。

计算结果

负指数项

含负指数项的非线性泊松方程 \(-\frac{d^2u}{d x^2} =\exp \left(-u\right)\)

解析解为 \(u=\ln \left(2 \sinh ^2\left(\frac{x}{2}\right)\right)\)

取 [0.1,1] 的封闭区域,边值为

\[u(0.1)=-5.29748\\ u(1)=-0.610497\]

将指数项泰勒展开,得

\[\exp(-u)=1-u+\frac{u^2}{2}-\frac{u^3}{6}+\frac{u^4}{24}+O\left(u^5\right)\]

采用有限元方法进行数值求解。取 2 节点线性单元,均匀网格剖分,单元长度为 dx=0.01。

计算结果

讨论

如果直接针对指数型原函数进行有限元离散,迭代计算对初值会非常敏感,容易出现不收敛的情况。例如,对于含正指数项的算例,当迭代初值为 -50 时,就会求解失败。

如果采用级数展开的方法,则阶次越高计算结果越精确。正指数情况,3 阶展开精度已经基本满足需要。负指数情况,需要 4 阶以上的级数展开。级数展开方法对初值不敏感,收敛性更好。

因此,前期迭代可以考虑采用级数展开方法,计算得到初步的近似值后,继续采用指数型原函数进行迭代,直至计算收敛。




打赏一个
取消

感谢您的支持,我们会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝或微信扫一扫,即可进行扫码打赏哦