问题描述
我想用高斯白噪声场模拟耦合的PDE,但是找不到任何建议如何做的示例或文档。我尤其对带有噪声的类似Cahn-Hilliard的系统感兴趣:
d / dt(phi)= div(grad(psi))+ div(噪声)
psi = f(phi)+ div(grad(phi))
有没有一种方法可以在Fipy中实现呢?
解决方法
您可以将GaussianNoiseVariable
作为方程式的来源。
对于非保守字段,您可以这样做,例如
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