Hello Jorgen and all,

I have coded a UMAT subroutine for modelling ortotropic non-linear elastic behaviour of a reinforced plastic. Basically the subroutine recalculates a tangent stiffness matrix of the material for each strain increment based in analytical micromechanical models and then it uses this stiffness matrix, that I directly use as the DDSDDE, to update the stresses at the end of the increment.

The subroutine works well when in Abaqus when the nlgeom is not activated (nlgeom=no), which in the begining seemed reasonable because I expected strains lower than 5% (based in the data from the tensile and flexural experiments I have done). But when analysing results of my simulations of these tests I get in some cases localized strains near 30%. So I though that I should activate the nlgeom.

When activating the nlgeom=yes I get convergence problems of the system has xx negative eigen values finishing with the solution appears to be diverging. This starts to happen approximately at half the displacement I want to impose. In the range I achieve a solution the resulta are very similar to the obtainded with small deflections theory (nlgeom=no).

At the begining I though that it could be a problem related with the consistency of the Jacobian, but I am using the Jacobian to update the stresses STRESS=STRESS + DDSDDE*DSTRAN so it must be consistent by definition, must it?

I have ensured by using ORIENTATIONs that my material axis rotate.

I have checked that my updated stiffness matrix is always definite positive.

I even have tried to run with the RIKS algorithm but I do not improve the convergence.

Could you give me any indication to solve the problem?

what should I consider in the subroutine when changing to nlgeom=yes?

Best regards