在 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
我想用高斯白噪声场模拟耦合偏微分方程,但找不到任何建议如何完成的示例或文档。特别是,我对有噪声的类 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