Шаг времени доступа в scipy solve_ivp () - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть система ODE, которую я решаю с помощью функции scipy solve_ivp ().Это работает хорошо, но у меня возникают проблемы с доступом к временному шагу, используемому на каждом шаге.Я знаю, что solve_ivp () передает текущее время пользовательской функции, но мне нужен используемый шаг по времени, а не текущее время.Для решения этой проблемы в настоящее время я устанавливаю параметры solve_ivp () min_step и max_step как

min_step = max_step = my_time_step

, поэтому я знаю шаг по времени.Но наверняка есть лучший способ сделать это?Я не вижу никакого способа в документах solve_ivp (), который позволил бы мне получить доступ к временному шагу для данного шага.Является ли приведенное выше решение лучшим способом или я пропустил более простое решение?

Дополнительная информация:

Я использую solve_ivp () для расчета эволюции металлашарик, как он движется по воздуху.Состав воздуха, радиус шарика и скорость шарика изменяются со временем.Металлический шарик окисляется воздухом со скоростью

rate=k[air] #rate has units of [mol m-3 s-1]

для константы скорости k и молярности воздуха [воздух], которая имеет единицы моль м-3.Объем встречаемого воздуха в секунду определяется как

vol_s = pi*radius**2*velocity #vol_s has units [m3 s-1]

Где радиус - это радиус шарика (м), а скорость - это скорость шарика (м с-1).Чтобы получить общее количество воздуха, реагирующего с бусинкой, мне нужно знать объем.Vol_s * time_step дает объем, так что rate * vol_s * time_step - это количество продукта реакции в секунду.Таким образом, необходимо знать time_step.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...