-
Notifications
You must be signed in to change notification settings - Fork 34
Fix cross-dyadic product: Ensure minor- and major-symmetric result #44
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
Conversation
@jfriedlein I did my best in fixing it with gfortran because currently I have no FEA code / Intel Fortran at hand to test the changes. Could you check if your models converge with these changes? Many many thanks in advance 😄 |
remove empty "example" line in section overview
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Besides the small typo with the date, it looks fine.
Perfect! I checked the numeric results with my Python package adtzlr/hyperelastic but I couldn't test an actual UMAT / HYPELA2 / whatever subroutine inside a FEA package if something happened related to convergence. |
Hi @adtzlr, I tested the "fix-crossdyadic" branch for LS-Dyna:
For a more reliable and comprehensive test, we should think about unit tests. Probably that is a lot of work to set up, but once the framework is ready, it should be easy to add more and more tests and provide a quality assurance. Maybe a todo for the future. |
Yes, unit tests are indeed a great idea! Ideally would be an automated CI/CD pipeline with Github Actions. But my experience in Fortran ends with the scope of this package... I usually do some UMAT scripting but thats it. |
ah wow, very happy to hear that my document was helpful! |
make the cross-dyadic product fully symmetric, i.e.
C(i,j,k,l) = (A(i,k) B(j,l) + A(i,l) B(j,k) + B(i,k) A(j,l) + B(i,l) A(j,k))/4
closes Crossed-dyadic product is wrong #40
see also Maria Holland's Hitchhikers Guide to Abaqus, p.46. Btw, thank you @mholla for this great summary on symmetry, I've overlooked that over all these years!
rebase
identity4(T)
on the fixedcdya(T, T)
closes Rebase hardcoded fourth-order
identity4(T)
tensor oncdya(T, T)
#39remove the incorrect implementation of
the inner cross-dyadic icdya(T, T)
closes Inner-crossed dyadic product of two sym. tensors can't be stored as a 6x6 fourth-order tensor #37
Especially the first point was hard to detect because I've used the special case
A = B
in 99% of all applications where the implementation up tov1.1.2
works without any problems.