在 Fipy 中求解随机偏微分方程

Solving stochastic PDEs in Fipy

我想用高斯白噪声场模拟耦合偏微分方程,但找不到任何建议如何完成的示例或文档。特别是,我对有噪声的类 Cahn-Hilliard 系统很感兴趣:

d/dt(phi) = div(grad(psi)) + div(噪声)

psi = f(phi) + div(grad(phi))

有没有办法在 Fipy 中实现这个?

您可以添加 GaussianNoiseVariable 作为方程式的来源。

对于 non-conserved 字段,您可以这样做,例如,

noise = fp.GaussianNoiseVariable(mesh=..., mean=..., variance=...)
  :
  :
eq = fp.TransientTerm(...) == fp.DiffusionTerm(...) + ... + noise

for step in steps:
   noise.scramble()
      :
      :
   eq.solve(...)

对于保守场,您将使用:

eq = fp.TransientTerm(...) == fp.DiffusionTerm(...) + ... + noise.faceGrad.divergence