Решение случайных PDE в Fipy

#pde #stochastic #fipy

#pde #стохастический #fipy

Вопрос:

Я хотел бы смоделировать связанные PDE с гауссовым полем белого шума и не смог найти никаких примеров или документации, которые подсказывают, как это должно быть сделано. В частности, меня интересуют системы, подобные Кан-Хиллиарду, с шумом:

d / dt (phi) = div (град (psi)) div (шум)

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

Есть ли способ реализовать это в Fipy?

Ответ №1:

Вы можете добавить a 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