4 ms·
So, I don't know Rust very well and their code is not really documented at all, so this is just a guess. But... It seem that the default world container assign
by kyzyl 13y ago
So, I don't know Rust very well and their code is not really documented at all, so this is just a guess. But...
It seem that the default world container assigns an integrator called "BodySmpEulerIntegrator", for which I can't seem to find the source. In any case, with a name like that I would have two predictions:
a) 'Smp' stands for 'simple' in which case this would be a stock/naive/vanilla Euler integrator. If that's indeed true, then I suspect the answer is that it will NOT handle the transition to SE(n>2), as they tend to blow up when the Hamiltonian becomes at all stiff. That is usually the case for your standard 6N+2 dof system in 3D.
b) 'Smp' stands for 'symplectic', which would make the default integrator some form of symplectic euler integrator. To my knowledge any SI should handle a 3D non-timevariant, non-chaotic Hamiltonian. This seems much more likely, given the amount of effort they've put in. Indeed, if you look at the examples that have a 2- and 3-D version, they don't seem to reassign the integrator.
That's a lot of guess-work on my part, though.
- unwind 13y agoThis would appear to be the source of BodySmpEulerIntegrator, or at least a starting-point (I don't know Rust): https://github.com/sebcrozet/nphysics/blob/916199c0a672194826b2696c97c5a5597b070c54/src/integration/body_integrator.rs#L86 https://github.com/sebcrozet/nphysics/blob/916199c0a67219482....
- dbaupp 13y agoIt calls[1] into a module called `euler`[2], and that looks like a very basic euler integrator. [1]: https://github.com/sebcrozet/nphysics/blob/916199c0a672194826b2696c97c5a5597b070c54/src/integration/body_integrator.rs#L134 https://github.com/sebcrozet/nphysics/blob/916199c0a67219482... [2]: https://github.com/sebcrozet/nphysics/blob/916199c0a672194826b2696c97c5a5597b070c54/src/integration/euler.rs#L38 https://github.com/sebcrozet/nphysics/blob/916199c0a67219482...
- kyzyl 13y agoWell again the code is nearly completely opaque to me (goes to show you that there is such a thing as too much abstraction) but again based off of the name "semi_implicit_integrate" it would be crazy for this to be anything but a Semi-Implicit Euler integrator. That falls into the class of symplectic integrators, so it should handle SE(3) fine. There is also a explicit method in there, which probably won't handle it very well. On the other hand, I hesitate to argue with the author about their own code... or are you just the OP?
- dbaupp 13y agoI'm just an interested onlooker, yes.