Comments (7)
Yes, after redefine the DDSDDE, STRESS and detF1 in that code, everything works.
Fine, thanks for testing it out!
Since I was trying to understand the DDSDDE by comparing my derivations with yours, and still have a couple question. I have read the document you mentioned, but that file doesn't help me much to compute DDSDDE from dS/dE. Therefore, I am wondering if you still have the derivation documents for this neo-hookean model implementation?
Giving support for this library is one thing - I'll always try to help you! But I don't have the time (at least not now) to support you with your tensor calculations in detail. A little hint: All the FEA packages calculate a geometric tangent for you (a.k.a. "initial stress stiffness"), and for some historical reasons in updated lagrange formulations they are requesting a so-called Jaumann rate of Kirchhoff or Cauchy stress. I think (!) the main reason behind this is to obtain symmetric tangent matrices for both the constitutive part inside UMAT and the internal calculated geometric stiffness.
Have a look at the pdf file inside this repo from @mholla https://github.com/mholla/hitchhikers-guide-to-abaqus - I think this will be helpful to you!
All the best,
Andreas
from ttb.
No, I have not tested it because I have no Abaqus license as I wrote in your other Issue.
For Abaqus, don't use asarray
or T%a6b6
- Abaqus has different voigt notation than this toolbox. Use asabqarray
instead. ...that is already the case for this example.
Regarding tangent calculation, see this document (section Neo-Hooke material): https://imechanica.org/files/Writing%20a%20UMAT.pdf
from ttb.
You mean this example does not work in Abaqus? Wow, thanks for reporting. I'll take a look on Monday. However, I can only double check the code - that's all I can do.
FYI: I created a subroutine for MSC.Marc (hypela2 example files), then took the umat header and pasted the code from my tested (!) hypela2 file. My goal was to make this toolbox also available for Abaqus users...
from ttb.
I think I found the error. Please rename the output variables from s
to STRESS
and D
to DDSDDE
. Will push a fix on Monday. It seems that I forgot to rename the output variables from Marc's HYPELA2 to Abaqus UMAT 😊
from ttb.
Yes, after redefine the DDSDDE, STRESS and detF1 in that code, everything works. Since I was trying to understand the DDSDDE by comparing my derivations with yours, and still have a couple question. I have read the document you mentioned, but that file doesn't help me much to compute DDSDDE from dS/dE. Therefore, I am wondering if you still have the derivation documents for this neo-hookean model implementation?
Also, I am wondering what's the difference between dya and cdya, literally you have explained it, but I didn't find any definition if I google "crossed dyadic product". While I have derivation written in tensor form, I just don't know when should I use dyadic and when should I use "crossed dyadic", since I didn't expand the tensors into indices notation. For me, all dyadic-like products look all like standard dyadic product.
from ttb.
Also, I am wondering what's the difference between dya and cdya, literally you have explained it, but I didn't find any definition if I google "crossed dyadic product". While I have derivation written in tensor form, I just don't know when should I use dyadic and when should I use "crossed dyadic", since I didn't expand the tensors into indices notation. For me, all dyadic-like products look all like standard dyadic product.
Please have a look at the readme file:
- Dyadic Product C(i,j,k,l) = A(i,j) B(k,l) written as C = A.dya.B
- Crossed Dyadic Product C(i,j,k,l) = (A(i,k) B(j,l) + A(i,l) B(j,k))/2 written as C = A.cdya.B
Again, I can't help you when to use dyadic or outer products and crossed dyadic products. You have to know which product you would like to use.
One example for crossed dyadic products are tensor derivatives w.r.t. the Tensor itself: https://en.wikipedia.org/wiki/Tensor_derivative_(continuum_mechanics)#Derivative%20of%20a%20second-order%20tensor%20with%20respect%20to%20itself
EDIT:
... dya and cdya, literally you have explained it, but I didn't find any definition if I google "crossed dyadic product"
Yes, the wording dyadic and crossed dyadic product is indeed not very common. We spoke about dyadisches Produkt and verschränkt-dyadisches Produkt (german) at my university (Graz University of Technology, Austria) and I translated both terms to english. Sometimes the dyadic product is called Tensor product (NumPy) numpy.tensordot(a, b, axes=0)
, others call it Kronecker Product as a generalization of the outer vector product.
A little example:
With crossed-dyadic product (cdya
) I refer to a operation which flips indices of a fourth order tensor and is used frequently in derivatives of a (symmetric) tensor w.r.t. the tensor itself.
I4_ijkl = d C_ij / d C_kl = (Eye_ik Eye_jl + Eye_il Eye_kl) / 2
A double contraction of this fourth-order identity tensor with a symmetric second-order tensor results in the same second-order tensor itself.
C_ij = I4_ijkl : C_kl
Again, this is just a very brief, incomplete and small example...
from ttb.
This issue was closed by my pull-request, feel free to open it again.
from ttb.
Related Issues (20)
- Cannot read uppercase extensions .F in Ubuntu HOT 6
- ttb compatibility with default r8 HOT 3
- Cmake/Makefile for ttb HOT 3
- Questions about unfixed bugs
- Collection of Figures HOT 2
- Enhance `libpower.f` HOT 1
- Inner-crossed dyadic product of two sym. tensors can't be stored as a 6x6 fourth-order tensor HOT 2
- Rebase hardcoded fourth-order `identity4(T)` tensor on `cdya(T, T)` HOT 1
- Crossed-dyadic product is wrong HOT 1
- Link to Example 3 is broken
- Assign a scalar multiplies the scalar with the array items
- Initialisation of tensor components to zero HOT 2
- Add unit tests HOT 1
- umat_nh_ttb_simple.f does not work in Abaqus HOT 7
- Collection of Ideas for the Documentation
- Docs are broken HOT 4
- Implement Polar decomposition HOT 5
- Wrong orientation of the Rotation Matrix
- Old unused print statement in `sqrt_2()`
- Enhance the docs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ttb.