-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Research/document desired functionality of Python (scipy) integrators #6
Comments
"New" API"Old" API |
We should incorporate most of the features into our Python API. I have strikethrough the ones that are overkill/unnecessary to include for our purpose and added some comments for things that we can add. Parameters:
Returns: {we should try to keep the "Returns" API similar to solve_ivp to make it easier for users to integrate forest in their existing work}
|
I think that rather than have several specific axis-crossing event functions, it would be more flexible to have a single event function where you can specify an axis and a value along that axis for the hyperplane to exist at. So setting axis y and value 0 would give our typical x-axis crossing function, but users wouldn't be constrained to using only that event function or whatever other specific axis-crossing event function that is included in forest. |
Axis-crossing events are a special type of the more general set of affine events of the form with |
Agreed on all points above. Also, I think we also should think carefully before we expose too much Python functionality (@rjpower4 and I have discussed this previously). For example, Python-defined EOMs sound convenient and fun in theory, but ultimately may defeat the point of a rapid integration package if it suddenly requires going back-and-forth to Python each step of the integrator. The convenience of Python-defined functionality may also make people less likely to implement their model/event/whatever directly in C++ (which may then benefit the user community in general). The same could be potentially said for event functions. Not saying we shouldn't do any of those things, but it is a perspective to consider when deciding where to draw that line. For events specifically, RJ's affine event suggestion sounds great. |
I agree that we should not expose EOMs, that is why I did not explicitly include 'fun' as an input. I think it will be a good option to allow users to pass A and |
Sounds good! Thanks for documenting all this @DhruvJ22 ! |
This discussion provides some good insight for #13 as well |
We need to understand what functionality from [
scipy.integrate.solve_ivp
] (https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) we want to see incorporated into the python APIThe text was updated successfully, but these errors were encountered: