Git Product home page Git Product logo

Comments (7)

adtzlr avatar adtzlr commented on August 25, 2024 1

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.

adtzlr avatar adtzlr commented on August 25, 2024

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.

adtzlr avatar adtzlr commented on August 25, 2024

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.

adtzlr avatar adtzlr commented on August 25, 2024

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.

edwardXZ06 avatar edwardXZ06 commented on August 25, 2024

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.

adtzlr avatar adtzlr commented on August 25, 2024

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.

adtzlr avatar adtzlr commented on August 25, 2024

This issue was closed by my pull-request, feel free to open it again.

from ttb.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.