mattoverby / admm-elastic

ADMM ⊇ Projective Dynamics: Fast Simulation of Hyperelastic Models with Dynamic Constraints
Other
87 stars 20 forks source link

Speed up LimitedTriangleStrain::update() #3

Closed dukecyto closed 7 years ago

dukecyto commented 7 years ago

Sped up and cleaned up LimitedTriangleStrain::update() by several techniques:

In my test, this almost doubled the performance of update().

mattoverby commented 7 years ago

Wow, a lot faster! Btw I merged the triangle-strain-fix branch to master (as well as your updates). I did have to add the update to the u vector though, otherwise strain limiting won't work.

dukecyto commented 7 years ago

Thanks for merging in my changes. It's good to hear that my changes did improve the speed in someone else's environment.

I did have to add the update to the u vector though

Oh, really? Sorry about that - in my test I did not have to re-assign ui back to u, and I thought that made sense because u.segment should return the reference to the original array instead of a copy. I don't think having that explicit re-assign would affect the speed at all, but just for my better understanding of Eigen I will look into it. I am using gcc 4.6.3 (pretty old but I am stuck with it at my work) and Eigen 3.3.

2016-11-30 9:57 GMT-08:00 Matt Overby notifications@github.com:

Wow, a lot faster! Btw I merged the triangle-strain-fix branch to master (as well as your updates). I did have to add the update to the u vector though, otherwise strain limiting won't work.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mattoverby/admm-elastic/pull/3#issuecomment-263945653, or mute the thread https://github.com/notifications/unsubscribe-auth/AD-VOBPNm4hCK1FTUP9kHm8vyyPwZ4smks5rDbkLgaJpZM4K_21u .