In RK56: remove unnecessary torque evaluation #341
Merged
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.
In the RK56 solver, the torque was evaluated after the 9th stage. However, this torque was only used in
setMaxTorque()
a bit further in that function. By removing this unnecessary torque evaluation, the RK56 solver is >10% faster.The following was not yet implemented, but is related: an additional performance gain could be achieved by not calling
setMaxTorque()
at all. It is not the cheapest function to calculate, and from a quick test it seems that not calling it would result in another ~5% improvement. The reason I saysetMaxTorque()
could be omitted, is because it just setsLastTorque
, and it seems that that parameter is only used to show the maxTorque in the GUI, as well as being used in the Euler solver to determine its adaptive time step. The calculation of the maximum torque forRelaxTorqueThreshold
does not useLastTorque
at all, so this does not add to the utility ofsetMaxTorque
. WhethersetMaxTorque()
could be removed is therefore up for debate.