Прекращение интеграции оды после некоторого теста сходимости в DiffEqPhysics Юлия

Недавно я начал знакомиться с пакетом DiffEqPhysics и diffrentialEquations Джулии. Мне интересно, есть ли способ (например, функции обратного вызова) завершить решатель с определенным условием сходимости на выходе. Например, если результат, полученный на предыдущем шаге (или диапазон предыдущих шагов), не отличается от решения на текущем шаге пороговым значением, тогда завершите процесс после текущего шага.

1 ответ

Решение

Да, вы можете использовать обратные вызовы для этого. В обратном вызове, делая terminate!(integrator) остановит интеграцию. В документации этот пример показывает использование обратных вызовов с terminate! более подробно.

Но вместо того, чтобы строить свой собственный, для завершения в устойчивом состоянии вы можете использоватьTerminateSteadyState из библиотеки обратного вызова. Библиотека обратного вызова - это просто набор предварительно созданных обратных вызовов, и этот завершается, когда производная достаточно мала.

Другие вопросы по тегам