Нелинейный HJB PDE с использованием Fipy, PDE translation

Я пытаюсь решить нелинейное уравнение PDE HJB с помощью FiPy, но у меня возникают некоторые трудности с переводом PDE в правильный синтаксис FiPy:

Я пробовал что-то вроде: eqX = TransientTerm () == -DiffusionTerm (coeff = 1) + (phi.faceGrad * phi.faceGrad), и это не работает из-за квадрата градиента

Мое уравнение: (du / dt = - \ delta u + || \ grad (u) || ^ 2)

Позволяет ли FiPy решать такие уравнения? если нет, есть ли пакет или способ решить эту проблему с использованием конечной разницы? Спасибо!


person jessi_123    schedule 03.05.2020    source источник


Ответы (1)


Можно преобразовать последний член в диффузионный и исходный, чтобы уравнение можно было переписать как

eqn = TransientTerm() = DiffusionTerm(u - 1) - u * u.faceGrad.divergence

Это не приведет к ошибке, но может быть не очень стабильным

person wd15    schedule 03.05.2020
comment
phi.grad.dot(phi.grad) - еще одна возможность - person jeguyer; 04.05.2020