How to implement hyperelastic and viscoelastic constitutive laws? #548
Unanswered
Qin-Shaowen
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi, thanks for this great library.
I am simulating a rubber cord undergoing very large torsion (up to ~100 full turns) and releasing it. At such large shear strains, the default constant
youngs_modulusandshear_modulusare not sufficient to capture the nonlinear material behavior. I need two things:Hyperelasticity: The torque-twist relation becomes nonlinear at large twists, and the bending stiffness may also depend on the local twist due to the Poynting effect (axial-torsional coupling inherent to rubber-like materials). I would like to use a strain energy density function (e.g., neo-Hookean, Mooney-Rivlin, or Ogden) to compute the internal forces and moments.
Viscoelasticity: Rubber damping is significant and strain-rate dependent. I need to add viscous stress components to the internal forces/torques.
Is there a way to customize the constitutive law within PyElastica’s Cosserat rod model? Specifically:
bend_matrixandshear_matrixdepend on the local strains (curvature, twist, shear) or to update them at each time step?If not yet implemented, could you point me to the relevant part of the source code where the internal forces are assembled, so I can try to subclass and override it?
Thanks for any guidance!
All reactions