【问题标题】:FiPy: spatially varying coefficient outside of gradient?FiPy:梯度之外的空间变化系数?
【发布时间】:2015-04-23 18:51:05
【问题描述】:

这可能是一个简单的问题,但是如果我想解决具有梯度之外的空间变化系数的 PDE,正确的 FiPy 语法是什么?到目前为止,我看到的所有示例都只讨论了梯度内部的系数。

例如:

d/dt(Sigma) = (1/r) d/dr (r^0.5 d/dr(nu Sigma r^0.5))

(我忽略了数字因素)

我想求解 Sigma(t,r)。 d/dr前面的(1/r)怎么处理?

我知道这个简单的方程可以被修改,这样我就不必担心梯度之外的空间变化系数(或者只是将系数移动到时间导数项内),但我必须添加更多我试图解决的实际问题的术语,这个技巧将不再有效。例如,如果我的方程式如下所示,我该怎么办:

d/dt (var) = f(r) d^2/dr^2 (var) + g(r) d/dr (var)

任何帮助将不胜感激!

【问题讨论】:

    标签: python pde fipy


    【解决方案1】:

    这可能是一个简单的问题,但是如果我想解决具有超出范围的空间变化系数的 PDE,使用什么正确的 FiPy 语法 渐变?

    我认为一般方程总是可以重写为 FiPy 仍然可以隐式地对解变量进行操作。在大多数情况下,这确实需要一个额外的源术语。

    我知道这个简单的方程可以被按摩,这样我就不用担心了 关于梯度之外的空间变化系数(或简单地说 在时间导数项内移动系数)但我必须添加 就我要解决的实际问题而言,诀窍将 不再有效。

    示例方程,

    可以表示为

    在 FiPy 中,它不会添加任何额外的术语。对于一般情况,

    方程可以表示为

    虽然有一个额外的项,但这些项仍然隐含在 \phi 中,并且额外的项可以表示为 \phi 的隐式源项,具体取决于 g/f 的符号。 FiPy 应该只使用ImplicitSourceTerm 来处理符号问题。

    请注意,在使用柱坐标时,r 经常出现在运算符之外。 FiPy 有一个网格类 CylindricalGrid1D,它在使用标准项时处理圆柱坐标(不需要和方程中的 r 空间变量)。

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 2017-06-05
      相关资源
      最近更新 更多