# Remarks on UMAT for plane stress problem

There are a lot of sample UMAT subroutines for plane strain or 3D problems. However, it is difficult to find an example for the plane stress problem online. Even the UMAT manual does not provide enough information. I have tried the UMAT subroutine for the plane stress problem for a while. The following remarks may be useful for collegues who have interest.

1. The stress components σ11, σ22, σ12 should be returned to UMAT.  The other three stress components equal to zero, known as the basic assumption of the plane stress problem.

2. The deformation gradient Fij provided by ABAQUS is a 3*3 matrix, even for a plane stress problem. However, the components F13, F23, F31, F32 are all set to zero by ABAQUS, although these terms may not be zero depending on the specific constitutive law. As to F33, ABAQUS provides a value by solving det(Fij)=1, which corresponds to the incompressible case. Hence, only four components of the Fij are reliable, i.e. F11, F12, F21, F22.

3. For a specific constitutive law, the terms F31, F32, F13, F23, F33 may be determined from the stress free conditions σ12=0, σ13=0, σ33=0 and by restricting the rotation to be inplane (Rij rotates wrt x3 only). In this case, one can recover the 3D deformation gradient Fij for other usage, e.g. computing the strain energy, material Jacobian, and among others.

4. The stress components σ11, σ22, σ12  can be calculated easily once the deformation gradient Fij is obtained from Step 3. In general, one should not use the Fij provided by ABAQUS for plane stress problem. Admittedly, the incorrect Fij passed to UMAT will result in acceptable solution in small deformation or incompressible cases.

5. The material Jacobian Cij is a 3*3 matrix for the plane stress problem. However, the stiffness is quite different from that of the 3D or plane strain cases. Note that the elastic tensors of the plane stress and plane strain problems are quite distinct when the Poisson's ratio ν→0.5.  Therefore, the following procedure can be used: i) Compute the Jacobian Cij for 3D problem, which is a 6*6 matrix; ii) Compute the compliance Sij=inv(Cij); iii) Eliminate the terms in Sij related to σ12, σ13, σ33 so it results in a 3*3 matrix; 4) Compute Cij=inv(Sij) to obtain the Jacobian for the plane stress problem.

Thank you for these instructions.
To spread the word, post on the ABAQUS mailing list
https://groups.yahoo.com/group/ABAQUS

Frank

### UMAT error

Mr. Zhang,

Your post has bee very informative. However after trying tho implement them, Abaqus throws an error  at me.

What I did is calculate the F33 by imposing the Sigma33 = 0 constraint and calculate F33 iteratively from this equation (non-linear root finding method). Then I used this F33 for finding the stress value returned to Abaqus.

For the material Jacobian, first I determined the 6x6 matrix first and reduce it to the 3x3 matrix by substituting for D3 in Tau1, Tau2 and Tau4 expressions and taking the coefficients of the D1, D2 and D3 as the components of the 3x3 material jacobian matrix.

(here F represents the deformation gradient, Tau represents the variation in Kirchoff Stress and D represents the rate of deformation)

However when I use this UMAT with the CPS8R element, Abaqus throws up the following error:

"ERROR in job messaging system: Error in connection to analysis.
Error in job 2D-CPS8R-TrialUMAT: Abaqus/Standard Analysis exited with an error - Please see the message file for possible error messages if the file exists. Job 2D-CPS8R-TrialUMAT aborted due to errors."

For debugging the UMAT I have opened a "debug.log" file in the UMAT and have given write out of variables to this debug log file. However I cannot find the debug.log file in the job directory which might mean that Abaqus is not reading the UMAT file. I have already checked the link with Fortran compiler. The "Data Check" completes successfully but on submitting the job the above error shows up.

Could you please give any pointers on what I am doing wrong?

I would have attached the UMAT and inp but could not find how!