FiPy 中迭代求解器的细节是什么?

What are the details of the iterative solvers in FiPy?

在 fipy 中,有一个默认的方程求解器,但在手册中提到的众多可能性中,尚不清楚它是哪一个。我想知道它遵循什么样的算法(以及什么包 - Scipy,Pysparse)?时间步的积分方案是什么,即欧拉、RK2 等?

使用哪个求解器取决于您安装的内容、您使用的平台以及您是否 运行 并行。

您可以确定正在使用哪个求解器包

import fipy as fp
print(fp.solvers.solver)

您可以通过

查看默认使用的特定算法
print(fp.DefaultSolver)

对于对称(扩散)方程和

print(fp.DefaultAsymmetricSolver)

对于不对称(对流)方程。

例如,在我的 macOS 笔记本电脑上,这些都打印

<class 'fipy.solvers.petsc.linearGMRESSolver.LinearGMRESSolver'>

对于时间积分,FiPy 执行 forward-Euler 个步骤,尽管 our first example 说明了如何获得 backward-Euler 和 Crank-Nicholson 积分。

我有一个正在开发中的相关包,名为 Steppyngstounes,它提供了一些可以与 FiPy 一起使用的其他时间集成方案。