Add separate solver for inhomogeneous term that during numerical integration is equal to zero #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If the dynamics of the system is defined such that there is an inhomogeneous (constant-term) component in an ODE, but if numerically, if the inhomogeneous part is zero (this could happen in the case that one or more parameters get set to zero), then because of the way the update expressions are formulated, you could get a division by zero and this results in a NaNs in the output.
To fix this, ODE-toolbox should automatically check whether setting the inhomogenous part to zero results in a division by zero, and if this is the case, return a separate solver. This is akin to checking for singularities in the propagators, but it occurs for the update expressions instead.
The new condition format could look like this (for instance, for a parameter$p$ in the inhomogeneous part):