Search
Close this search box.
Notifications
Clear all

VUMAT error when the element local coordinate system is varied

6 Posts
2 Users
0 Reactions
990 Views
Posts: 8
 Aaka
Topic starter
(@Aaka)
Active Member
Joined: 6 years ago

Dear Friends,

I have been working with ABAQUS VUMAT for quite some time now. Recently I came across a very strange issue that I am hoping that someone could shed some light on.
Using Jorgens isotropic compressible Neo-Hookean hyperelastic VUMAT, I performed tests on a single cubic element. This element was simply stretched in one direction.
To better understand about ABAQUS corotational coordinate system and how the stretch and deformation gradient tensors are stored, I varied the initial local coordinate system and performed identical loading cases.
For local coordinate systems that were identical or slightly varying from the global coordinate system, the jobs could be solved and the predicted stress values were identical to the analytical solution (AWESOME!).
However, I found that for some initial local coordinate system, ABAQUS exited with error because of the failed VUMAT data check. In particular, this is the reoccurring error:
***ERROR: Bad Material definition in element number 1 instance CUBE-1: zero or
negative initial dilatational modulus caused by bad material data.
Please check your material input and any initial conditions if
necessary.

I have no idea what is going on. I only found a very few posts in internet forums who had exactly the same problem (see the links below) and they all remain unsolved:
[URL= https://abaqus.yahoogroups.narkive.com/poLEOXLU/material-orientation-in-vumat ]https://abaqus.yahoogroups.narkive.com/poLEOXLU/ma...[/URL]
[URL= https://polymerfem.com/forum/finite-element-modeling/finite-element-modeling-aa/1756-material-orientation-in-vumat ]https://polymerfem.com/forum/finite-element-modeli...[/URL]

If anyone ever experienced a similar issue and could give me some advice, it would be really appreciated. Thank you very much in advance.

Regards,

Willsen

Topic Tags
5 Replies
Posts: 3998
(@jorgen)
Member
Joined: 5 years ago

That sounds strange. Can you provide one (short) inp-file that causes that error?

-Jorgen

Topic Tags
5 Replies
Posts: 8
 Aaka
Topic starter
(@Aaka)
Active Member
Joined: 6 years ago

Hi Jorgen,

Thank you very much for your kind reply. Attached is the input file. Note that the material constants that I assigned in the material definition correspond to C10 and D1 (I modified your VUMAT a bit to make use of these constants definition). The constant values were arbitrarily selected.
I sandwiched a single cubic element between two rigid plates using tie-based constraint to allow for an extension-rotation loading. But in the attached .inp file, I simply specified a simple extension along the global x-direction while leaving the other dimension unstretched. Notice that the orientation of the global and local coordinate system are different. I found that using this local orientation, the ABAQUS job cannot be solved and resulted in error that I mentioned earlier.
Please let me know if you know what is going on.

Regards,

Willsen

*Heading
** Job name: ExtensionRotation Model name: For_Jorgen
** Generated by: Abaqus/CAE 6.14-2
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**
** PARTS
**
*Part, name=Cube
*Node
1, -0.5, -0.5, 1.
2, -0.5, 0.5, 1.
3, -0.5, -0.5, 0.
4, -0.5, 0.5, 0.
5, 0.5, -0.5, 1.
6, 0.5, 0.5, 1.
7, 0.5, -0.5, 0.
8, 0.5, 0.5, 0.
*Element, type=C3D8
1, 5, 6, 8, 7, 1, 2, 4, 3
*Nset, nset=_PickedSet2, internal, generate
1, 8, 1
*Elset, elset=_PickedSet2, internal
1,
*Nset, nset=_PickedSet15, internal
2, 4
*Elset, elset=_PickedSet15, internal
1,
*Nset, nset=_PickedSet22, internal
2, 6
*Elset, elset=_PickedSet22, internal
1,
*Elset, elset=__PickedSurf11_S1, internal
1,
*Surface, type=ELEMENT, name=_PickedSurf11, internal
__PickedSurf11_S1, S1
*Elset, elset=__PickedSurf14_S4, internal
1,
*Surface, type=ELEMENT, name=_PickedSurf14, internal
__PickedSurf14_S4, S4
*Elset, elset=__PickedSurf16_S4, internal
1,
*Surface, type=ELEMENT, name=_PickedSurf16, internal
__PickedSurf16_S4, S4
*Elset, elset=__PickedSurf21_S3, internal
1,
*Surface, type=ELEMENT, name=_PickedSurf21, internal
__PickedSurf21_S3, S3
*Orientation, name=Ori-1
1., 0., 0., 0., 1., 0.
3, 180.
** Section: Neo_Hookean_VUMAT
*Solid Section, elset=_PickedSet2, orientation=Ori-1, material=Neo_Hookean_VUMAT
,
*End Part
**
*Part, name=RigidPlate
*End Part
**
**
** ASSEMBLY
**
*Assembly, name=Assembly
**
*Instance, name=Cube-1, part=Cube
0., 0., -0.5
*End Instance
**
*Instance, name=NegativePlate, part=RigidPlate
-0.5, 0., 0.
-0.5, 0., 0., -0.5, 0., 1., 90.
*Node
1, 0., 0., 0.
*Nset, nset=NegativePlate-RefPt_, internal
1,
*Surface, type=CYLINDER, name=RigidSurface_, internal
START, 1., 0.
LINE, -1., 0.
*Rigid Body, ref node=NegativePlate-RefPt_, analytical surface=RigidSurface_
*End Instance
**
*Instance, name=PositivePlate, part=RigidPlate
0.5, 0., 0.
0.5, 0., 0., 0.5, 0., 1., 90.
*Node
1, 0., 0., 0.
*Nset, nset=PositivePlate-RefPt_, internal
1,
*Surface, type=CYLINDER, name=RigidSurface_, internal
START, -1., 0.
LINE, 1., 0.
*Rigid Body, ref node=PositivePlate-RefPt_, analytical surface=RigidSurface_
*End Instance
**
*Nset, nset=AllNode, instance=Cube-1, generate
1, 8, 1
*Nset, nset=_PickedSet31, internal, instance=NegativePlate
1,
*Nset, nset=_PickedSet36, internal, instance=PositivePlate
1,
*Elset, elset=__PickedSurf29_S2, internal, instance=Cube-1
1,
*Surface, type=ELEMENT, name=_PickedSurf29, internal
__PickedSurf29_S2, S2
*Elset, elset=__PickedSurf35_S1, internal, instance=Cube-1
1,
*Surface, type=ELEMENT, name=_PickedSurf35, internal
__PickedSurf35_S1, S1
** Constraint: TieConstraint-NegativeSurface
*Tie, name=TieConstraint-NegativeSurface, adjust=yes
_PickedSurf29, NegativePlate.RigidSurface_
** Constraint: TieConstraint-PositiveSurface
*Tie, name=TieConstraint-PositiveSurface, adjust=yes
_PickedSurf35, PositivePlate.RigidSurface_
*End Assembly
*Amplitude, name=Smooth, definition=SMOOTH STEP
0., 0., 1., 1.
**
** MATERIALS
**
*Material, name=Neo_Hookean_VUMAT
*Density
1.,
*User Material, constants=2
10., 0.1
** ----------------------------------------------------------------
**
** STEP: UniaxialTension_explicit
**
*Step, name=UniaxialTension_explicit, nlgeom=YES
*Dynamic, Explicit
, 1.
*Bulk Viscosity
0.06, 1.2
**
** BOUNDARY CONDITIONS
**
** Name: BC-PositiveSurface Type: Displacement/Rotation
*Boundary, amplitude=Smooth
_PickedSet36, 1, 1, 2.
_PickedSet36, 2, 2
_PickedSet36, 3, 3
_PickedSet36, 4, 4
_PickedSet36, 5, 5
_PickedSet36, 6, 6
** Name: BC_NegativeSurface Type: Displacement/Rotation
*Boundary, amplitude=Smooth
_PickedSet31, 1, 1
_PickedSet31, 2, 2
_PickedSet31, 3, 3
_PickedSet31, 4, 4
_PickedSet31, 5, 5
_PickedSet31, 6, 6
**
** OUTPUT REQUESTS
**
*Restart, write, number interval=1, time marks=NO
**
** FIELD OUTPUT: F-Output-1
**
*Output, field
*Node Output
A, U
*Element Output, directions=YES
E, LE, MISES, S
**
** HISTORY OUTPUT: H-Output-1
**
*Output, history
*Energy Output
ALLAE, ALLCD, ALLCW, ALLDC, ALLDMD, ALLFD, ALLIE, ALLKE, ALLMW, ALLPD, ALLPW, ALLSE, ALLVD, ALLWK, ETOTAL
*End Step

Reply
Posts: 8
 Aaka
Topic starter
(@Aaka)
Active Member
Joined: 6 years ago

Hi All,

A senior expert from Simulia, Professor Randy Marlow addressed this question. He said:

What Abaqus release are you using? There was a problem in the packager that caused the strain increments to be inconsistent with the deformation gradient if a local orientation is used that is not coincident with the global system. According the bug report, this could lead to the error that you are seeing. But this problem was supposed to be fixed in Abaqus 2016.

This could be the reason. The ABAQUS version that I am running at the moment is 6.14-2.

Reply
Posts: 3998
(@jorgen)
Member
Joined: 5 years ago

I definitely recommend that you use a more recent version of Abaqus.

-Jorgen

Reply
Posts: 8
 Aaka
Topic starter
(@Aaka)
Active Member
Joined: 6 years ago

Hi Jorgen,

Yes will do that soon and I will update what happen. Thank you very much for taking an interest in my question.

Regards,

Willsen

Reply
Share: