Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Implementation of Finite Strain Viscoelastic Model with Mooney-Rivlin Hyperelasticity #139

Closed
Sad-Abd opened this issue May 7, 2024 · 3 comments · Fixed by #140

Comments

@Sad-Abd
Copy link
Contributor

Sad-Abd commented May 7, 2024

Hi,
I have implemented a finite strain viscoelastic model that incorporates the Mooney-Rivlin hyperelastic model, based on the following paper:

Shutov, A. (2018). Efficient time stepping for the multiplicative Maxwell fluid including the Mooney‐Rivlin hyperelasticity. International Journal for Numerical Methods in Engineering, 113(12), 1851-1869.

The implementation has been named finite_strain_viscoelastic2 and is located in src/matadi/models/_viscoelasticity.py. This model provides an efficient time-stepping scheme for simulating the behavior of multiplicative Maxwell fluids, including the Mooney-Rivlin hyperelastic constitutive model. I believe this implementation could be a valuable addition to the main repository.
If you find this implementation useful and suitable for inclusion, I would be happy to submit a pull request with the necessary code changes and documentation. Please let me know your thoughts and if you require any further information or modifications.

Thank you for your consideration.

@adtzlr
Copy link
Owner

adtzlr commented May 7, 2024

Hi @Sad-Abd,

yes, please open a PR 👍🏻 🚀 👍🏻 , I'm open for contributions of new models!

That sounds interesting. The already implemented viscoelastic model

def finite_strain_viscoelastic(x, mu, eta, dtime):
"Finite strain viscoelastic material formulation."
# split input into the deformation gradient and the vector of state variables
F, Cin = x[0], x[-1]
# update of state variables by evolution equation
Ci = astensor(Cin) + mu / eta * dtime * det(F) ** (-2 / 3) * (F.T @ F)
Ci = det(Ci) ** (-1 / 3) * Ci
# first invariant of elastic part of right Cauchy-Green deformation tensor
I1 = det(F) ** (-2 / 3) * trace((F.T @ F) @ inv(Ci))
# first Piola-Kirchhoff stress tensor and state variable
return gradient(mu / 2 * (I1 - 3), F), asvoigt(Ci)

is of Neo-Hookean type and is based on https://doi.org/10.1016/j.cma.2013.07.004, so your referenced paper is a follow-up on that? What is the difference between these two models? Is it an extension of the viscoelastic-framework to the Mooney-Rivlin strain energy function?

I always thought that the most simple strain energy function is enough for the viscous part, like Neo-Hookean or some stretch-based approach. But I'm always open for new ideas 💡.

P.S.: Personally, I'd name your proposed function finite_strain_viscoelastic_mooney_rivlin() or at least something more verbose than ...2(). Would that be ok for you?

@Sad-Abd
Copy link
Contributor Author

Sad-Abd commented May 8, 2024

I appreciate you taking the time to review my proposal.

You're correct that the paper I referenced (Shutov, 2018) extends the viscoelastic framework to the more general Mooney-Rivlin strain energy function. As you know Neo-hookean is a special case of Mooney-Rivlin and incorporating the Mooney-Rivlin formulation can potentially improve the accuracy of the viscoelastic model for certain materials that exhibit more complex behavior.

Regarding the naming convention, I appreciate your suggestion of finite_strain_viscoelastic_mooney_rivlin(). As the maintainer, you have a better understanding of the overall package structure and naming conventions. I'm happy to follow your recommendation for a descriptive and consistent function name.

I will proceed with creating a pull request (PR) that includes the implementation of the finite strain viscoelastic model with the Mooney-Rivlin hyperelasticity. We can further discuss the integration, testing, and any other details during the PR review process.

Thank you again for your openness to contributions and for considering this implementation.

@adtzlr
Copy link
Owner

adtzlr commented May 10, 2024

Merged in #140.

@adtzlr adtzlr closed this as completed May 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants