Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Access to nodal stress values during UMAT

Status
Not open for further replies.

robidpra

Mechanical
Mar 24, 2020
12
BE
Hello,

I'm currently writing a UMAT. The constitutive equations of the material are based on the gradient in pressure stress (∇p) of the previous increment. I know it's possible to access the pressure stress at the integration points in the UMAT, but with some test simulations (C3D8 elements), the nodal stress values differ a lot from the integration point stress values. For this reason, I want to calculate the gradient based on the nodal stress values (i.e. averaged over the elements connected).
Is there any way I can access these nodal values in my UMAT? I saw that there is a user subroutine GETVRMAVGATNODE that could do what I want, but it has to be called in subroutine UMESHMOTION, used for adaptive meshing, and I do not have an adaptive mesh.
Or would it be possible to code a subroutine that does the averaging for each node, after each increment is completed?

Many thanks!
 
Replies continue below

Recommended for you

Nodal stresses differ from those obtained at integration points because they are extrapolated from these points. The most accurate stress values are at integration points.

Maybe you could do this using UEXTERNALDB subroutine.
 
I did some test simulations, and I got for example this element:
eng-tips1_lei9my.png


So the pressure values on this element range from -260 to -393 MPa if you look at the nodal values (see the legend), but if I extract the pressure values on the integration points, they only range from -323.9 to -323.3. This will give a huge difference in gradient!

For reference, this is the position of the element within my assembly. For a real model, I will make the elements smaller and the nodal values will be closer to the integration point variables, but still, the difference here is immense!

eng-tips2_eppirc.png


That's why I would prefer to use the nodal stress value, as I think they will provide me more accurate information when calculating the pressure gradient.

What would you suggest with UEXTERNALDB? Write the pressure values to an external file that could be read in?

EDIT: I checked with a finer elements, and the problem is still the same.
 
Yes, what I mean is that with UEXTERNALDB subroutine it should be possible to write stresses at the beginning of each increment to common block or external file for use by UMAT.
 
I tried something now with URDFIL:
First I adapted my input file to write the stress invariants to the results .fil file, (Using *EL FILE).
And after each increment, URDFIL reads in the stress invariants from the .fil file, and saves it into a common block.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top