I am developing an UEL in which the initial stress field matters (stress-dependent), and i was wondering: how do i transfer the predefined stress field from Abaqus to my UEL ? is it through the PREDEF argument? This problem didn't rise when i was using UMAT subroutines, because the predefined stresses were transferred from abaqus to the user subroutine through the stress argument ie :UMAT(stress,....)

Thanks,

]]>The 3D version works well and results match ABQ almost exactly including time increment selected by ABQ for both built-in material model and vumat.

However, the plane stress version still has problem as below, and was hoping getting some help here.

When using small fixed time step or use "element by element" option for increment size control, vumat matches ABQ results almost exactly. in this case, vumat is compared with ABQ parallel network model with only the elastic network active as it also assumes incompressible in plane stress. However, if use automatic time increment control without "element by element" option, vumat goes into instable fairly quickly and almost all of sudden in a few increments after performing well for thousands of increments. I just could not figure out what the problem is in the vumat. it seems that vumat drives ABQ to choose too large increment resulting in instability.

files can be downloaded here

https://1drv.ms/u/s!AvzF3H-Ljv02g8FsQCGROQuwyuleew?e=E2WWmP

elastic-D.cpp -- vumat written in c. should work with abaqus 2019 - 2021, double precision

shell-shear-ABQ.inp pure shear case, ABQ built-in material model

shell-shear-vumat.inp pure shear case, vumat

shell-uniaxial-ABQ.inp uniaxial tensile case, ABQ built-in material model

shell-uniaxial-vumat.inp uniaxial tensile case, vumat

]]>

having been an avid reader of this forum for quite some time, I'm posing my first question today, hoping you can help me with my problem:

I'm currently working on the modelling of rubbers and the implementation of some material models as UMATs in Abaqus. However, I can observe the following:

I'm able to replicate some of the built-in hyperelastic models in Abaqus (NeoHooke, Mooney-Rivlin, ...). Stress results from built-in models are identical to my UMAT and also the DDSDDE when comparing it with the NeoHookean example subroutine from the Abaqus verification guide. So far so good. For linear perturbation steps (Direct solution steady-state analysis) on the other hand, my results are off significantly for prestrained as well as non-prestrained vibrations.

Does Abaqus require a modified DDSDDE for linear-perturbation steps? Am I missing something here? Has anyone been working on something similar and might have some pointers for me?

Really looking forward to your suggestions!

Thanks in advance and kind regards

jack93stadt

]]>I am trying in implement an invariant-based hyperelastic model (Holzapfel-Ogden 2009) in Abaqus using VUMAT. The constitutive model is modified to a slightly compressible form.

85The subroutine with single element under biaxial testing and triaxial shear give expected results comparing to analytical solution. However, under compression test, the model start to have weird deformation (zig-zag) which happens in both single element and larger models. I have tried both C3D8 and C3D8R elements. In single element case, C3D8R with hourglass control and distortion control solved the issue. However, in larger models, both element types behave similarly with the zig-zag shape as shown below. I wonder if anyone can give any insight on how this could be solved? Thank you!

84]]>

I am writing a UMATHT subroutine (Abaqus) to simulate rubber curing process and predict state of cure. In this effort I used the empirical model by Kamal and Sourer. The reference is shown below.

https://www.sciencedirect.com/science/article/abs/pii/S0927025609003668

the UMATHT code I written is mentioned below. The problem i noticed is, the state variable to show state of cure is not displaying in abaqus. When I inquired through the code, I realised the "time" parameter is not properly assigned to X (bolded in red color as shown below)

SUBROUTINE UMATHT(U,DUDT,DUDG,FLUX,DFDT,DFDG,

1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED,

2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,

3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

C

INCLUDE 'ABA_PARAM.INC'

C

CHARACTER*80 CMNAME

DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),

1 TIME(2),DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),

2 PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),G(1),alpha(1)

Real*8 CPu,CPc,K,TEMP,C

Real*8 B,RATE,A,D,alpha,G,X

C CPu is the specific heat capacity of uncured rubber

C CPc is the specific heat capacity of cured rubber

C RATE IS THE RATE CONSTANT

C F IS THE MATERIAL CONSTANT

C A IS THE INDUCTION TIME

C Ku is the thermal conductance of uncured rubber

C Kc is the thermal conductance of cured rubber

CPu= PROPS(1)

CPc= PROPS(2)

Ku= PROPS(3)

Kc= PROPS(4)

E = PROPS(5)

R = PROPS(6)

k0 = PROPS(7)

F = PROPS(8)

N = PROPS(9)

t0 = PROPS(10)

C Calculation of Specific Heat Capacity

CP=(CPu+CPc)

C Calculation of Thermal Conductivity

K=(Ku+Kc)

C Calculation of Rate Constant

C= E/(R*TEMP)

B=EXP(C)

RATE=k0*B

C Calculation of Induction Time

D=EXP(F/TEMP)

A=t0*D **X=TIME(1) **

C Calculation of state of cure (alpha)

G=RATE*

alpha = G/(1-G)

DUDT = CP

DU = DUDT*DTEMP

U = U+DU

DO I=1,NTGRD

FLUX(I)= -K*DTEMDX(I)

DFDG(I,I) =-K

END DO

c do i=1,nstatv

statev(1)=alpha

c end do

RETURN

END

Could you please help me a way to assign this value, so that this model can be run smoothly.

I used single element input file to run this code. It is attached.

Any suggestion is welcome.

Thanks a lot

BR,

Aravinda

]]>Several posts discuss VUMATs for hyperelastic materials. Bergstrom (2015) provides an example for the Neo-Hookean strain-energy function (also copied to several forums) that was written for older versions of Abaqus. An updated, complete subroutine is published here:

Hohenberger et al (2019). A constitutive model for both low and high strain nonlinearities in highly filled elastomers and implementation with user-defined material subroutines in Abaqus. Rubber Chemistry and Technology, 92 (4), 653-686.

It uses a modified (generalized) Yeoh strain-energy function and is confirmed to work in Abaqus v6.14 and R2018. I am sharing this here since many posts inquiring about hyperelastic VUMATs are now closed.

Regards,

Travis

I have created successfully a UMAT code for J2 elasto-plasticity with isotropic hardening

for 3D solid elements.At this point I would like to support also plane stress shell elements.

What changes in the code are suggested?

The already implemented code, takes as input the strain tensor at time tn and the strain

increment tensor and updates the stress at time tn+1 and calculates the material Jacobian

and achieve quadratic convergence. The stress and strain tensors are manipulated as 6x1

vectors and the material Jacobian as a 6x6 tensor. I know that in case of plane stress the

vectors should be 3x1 and 3x3 respectively. What else should i take into consideration?

The strain tensor as used by the umat contains olny the values of ε =

in case of CPS4R elements. What about the ε33? This should not be zero as it is calculated

from the incompressibility condition and from the plane stress constraint where

σ33 is zero. Is ε33 used by ABAQUS at all, or should I keep it only as state variable?

What about the material jacobian in plane stress? Is it calculated as in the 3D case?

Any thoughts or suggestions would be highly appreciated.

]]>I have succeeded in executing, with the classical abaqus command line window, a python script which makes use of a subroutine. No problem, calculations went fine.

But when I want to do the same from matlab, this does not work and results into an error.

system();

-> error from matlab: *WindowsError*: The system cannot find the file specified

Does someone know how to solve this problem or is it possible to do this under matlab in the first place ?

thanks

]]>I am trying to write a VUMAT to implement the Arruda-Boyce viscoplastic model. After assuming linear elasticity at the beginning of the analysis, the total deformation gradient (**F**) can be easily obtained from defgradNew.

I am a little bit confused about how to decompose **F **into its elastic and plastic components. Should I obtain the plastic components from the state variables and then, of course, find the elastic part via the product of **F** and the inverse of the plastic part?

How about the plastic flow rate, the rate of the plastic deformation, time-derivative of the deformation gradient, and the strain softening. How to incorporate these to capture the material response?

My reference is Chapter 8 of your book (Mechanics of Solid Polymers).

Thank you very much,

Warm regards,

Melly

]]>Implementing a user material model VUMAT requires input on the *DEPVAR option in Abaqus. Failure to do so results in a warning via the .DAT file

"USER SUBROUTINE UMAT WILL BE USED WITH THE STAVEV ARRAY

DIMENSIONED TO ZERO SINCE THE *DEPVAR OPTION IS NOT USED WITH THIS

MATERIAL. CONSEQUENTLY, DEFINING STATEV ENTRIES IN SUBROUTINE UMAT

WILL CAUSE CODE EXECUTION ERRORS"

I yearn to understand these SDVs, when and when not to use them. Does it depend on the material model?

Specifically to the hyperelastic models such as Neo-Hookean or Mooney-Rivlin, what are the SDVs in these two cases?

Thank you very much.

Regards,

Melly

]]>