pde - 将偏微分方程转换为正确的 Fipy 语法

标签 pde fipy

我想知道如何在 FiPy 中编写以下方程:

The messy equation in question

(如果有人好奇,它来自 this type of model )。我在将右侧第三项翻译成 FiPy 代码时遇到了一些麻烦。在示例中,A 和 B 都是变量。

我尝试了以下形式:

(ImplicitSourceTerm(coeff=chi_A) * (B.getGrad()) / \
 (numerix.sqrt(1 + lambda_ * (B.getGrad())^2))).getGrad()

但我想人们不能 .getGrad() 不是变量的东西。我欢迎任何帮助;非常感谢!

最佳答案

问题中术语的表示只是明确的表示。有两种方法可以隐式地表示该术语。

A 的单个方程

仅假设 A正在求解( A 的单个方程),那么所讨论的项可以表示为 ConvectionTerm .

ConvectionTerm(coeff=chi_A * B.getGrad() / \
               numerix.sqrt(1 + lambda_ * B.grad.mag**2), var=A)

查看此FAQ .

A 的多重方程和B

如果A正在与 B 一起解决(多个方程),那么可以将方程耦合起来,以便所讨论的项可以是具有 B 的扩散项作为要求解的变量(项的因变量),

DiffusionTerm(coeff=chi_A * A / \
              numerix.sqrt(1 + lambda_ * B.grad.mag**2), var=B)

A 的方程和B然后需要耦合,

coupled_eqn = eqn_A & eqn_B

参见this example .

这个选择(耦合)更好,因为 B 上有明确的时间步长限制。比 A 的时间步限制更严格对于相关术语。

注意

语法,(B.getGrad())^2问题中的内容不正确,应该是B.grad.mag**2 .

关于pde - 将偏微分方程转换为正确的 Fipy 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39303034/

相关文章:

python - NumPy:类型错误:reshape() 获得意外的关键字参数 'order'

python-3.x - 如何在 Python 3.3 上安装 Fipy

c - 为什么 (A+B) 的 FFT 不同于 FFT(A) + FFT(B)?

java - 使用 Java 代码导入 Eclipse 项目

python - Q : 'UnboundLocalError' : local variable 'exitErr' referenced before assignment

python - 如何在 FiPy 中编写带有自变量的方程项?

java - 如何将 Ivy 的依赖项添加到 Eclipse PDE 目标平台?

eclipse - 第谷无法解析 Require-Bundle : org. Sample.ide.common;bundle-version ="1.0.0.qualifier"

java - 简单 PDE 插件开发和 RCP 插件开发之间的区别