PDA

View Full Version : User element and constitutive tensor



DaVinci
2008-08-19, 02:12
Hi :grin:

I created a 3D 8-noded solid hexahedral user element (UEL) in Abaqus.
In order to do this I needed the constitutive tensor(6x6) to be defined in the user element. I therefore hard coded the Const Tensor into the user element. Normally the constitutive tensor is define in a user material.
I used this constitutive tensor to create the stiffness matrix, 'AMATRX', as in:

K = B(transposed) * C * B * weight *det_jacobian

for illustration. of stiffness matrix formation.

Are there any problems which may arise?
Is there some other way to use the actual constitutive tensor, rather than hard-coding?

I should add that I ran the user element, successfully. (I think):cool:
The log file gave syntax errors, which I fixed, so I assumed that it was using the user element.

I am not sure that it is being used, as I compared the output with a single element test, and a standard element, and it gave the exact same result.

I think I may have a problem with the input file. :frown:
How do I make sure that the user element is definitely being used?
Also, how do I use the user element, and user material together?

Jorgen
2008-08-19, 19:48
I think your approach seems right. My guess is that you need to "hard-code" the constitutive response in the UEL as well as in the UMAT.

You can add print statements in your UEL to make sure it runs as intended.

I suspect that you should be able to use both a UEL and UMAT at the same time by adding them to the same source file.

- Jorgen

DaVinci
2008-08-20, 00:34
Hi :)
Thanks for the response. :cool:

I have tried printing to a file from the subroutine, but this has been unsuccessful.
How exactly is this achieved?



When you say source file, what exactly are you referring to? Is it the file I created my user element in. I've never seen a user element and user material in the same file before. :confused:
How is this achieved?

Regards
Davinci

Frank
2008-08-20, 02:00
Hello,

writing from subroutines can be achieved in this manner:

open(15,file='path\filename.ext',position='append' )
write(15,*) TIME(2), RPL
close(15)

Refer to:

Testing and debugging
When developing user subroutines, test them thoroughly on smaller examples in which the user subroutine is the only complicated aspect of the model before attempting to use them in production analysis work.
If needed, debug output can be written to the ABAQUS/Standard message (.msg) file using FORTRAN unit 7 or to the ABAQUS/Standard data (.dat) file or the ABAQUS/Explicit status (.sta) file using FORTRAN unit 6; these units should not be opened by your routines since they are already opened by ABAQUS.
FORTRAN units 15 through 1 or units greater than 100 can be used to read or write other userspecified information. The use of other FORTRAN units may interfere with ABAQUS file operations; see “FORTRAN unit numbers used by ABAQUS,” Section 3.6.1. You must open these FORTRAN units; and because of the use of scratch directories, the full pathname for the file must be used in the OPEN statement

Frank

DaVinci
2008-08-25, 07:21
Hi Jorgen

When you say source file, what exactly are you referring to? Is it the file I created my user element in. I've never seen a user element and user material in the same file before.
How is this achieved?

Regards
Davinci

DaVinci
2008-08-25, 07:23
Hi Jorgen

When you say source file, what exactly are you referring to? Is it the file I created my user element in. I've never seen a user element and user material in the same file before.
How is this achieved?

Regards
Davinci

Jorgen
2008-08-26, 19:41
For everyone's reference: you can add multiple user-subroutines into one source file.

-Jorgen

DaVinci
2008-09-03, 03:06
Just wanted to say that I have found an example of a case where uhyper and umat are used in the same file. It actually very simple. :cool:

It is the "umathrt3.f" file in the Abaqus documentation.

It works just as any other subroutines do, just in series, and in the same file.

Davinci

Frank
2008-09-03, 09:26
Hello,

I would like to remind you:

26.15 User-defined elements
Material definitions (“Material data definition,” Section 16.1.2) are not relevant to user-defined
element types. For general user elements all material behavior must be defined in subroutine UEL, based
on user-defined material constants and on solution-dependent state variables associated with the element
and calculated in subroutine UEL.

This is the only advice I can give you. I couldn't excavate a single
example explaining how this is done.

Frank

DaVinci
2008-11-10, 08:55
Hi everyone

I have created a 3D 8-noded user element.
I am running a single element displacement test.
Why is it that I can apply a displacement boundary condition, but not a force?

When I try to use a force, I get the error message:


***WARNING: ELEMENT 5 INSTANCE PART-1-1 CANNOT BE USED AS AN UNDERLYING
ELEMENT TO DEFINE A SURFACE IN THIS CURRENT VERSION. THIS ELEMENT
WILL NOT BE CONSIDERED AS PART OF THIS SURFACE.

Please advise.

Kind Regards
Davinci

Jorgen
2008-11-12, 19:39
It should work also with a force boundary condition.
I must say, however, that the error message you listed is quite odd.

I am not sure how to interpret it :eek:

DaVinci
2008-11-13, 03:18
Hi the error message is from a cook membrane test with the UEL.

There were 8 elements in total, 4 of which had a shear force applied to one surface, and they each gave the error stated before.

If I changed the shear force to a shear displacement, it worked.

But this is not the way the standard cook membrane test should be performed.

DaVinci
2009-09-17, 08:30
To answer my own question:

Forces can be applied directly to nodes in UELs, however pressures cannot be used as surfaces are not allowed/defined for UELs fro some reason. (as I understand it)

Anybody know how to get around this?

Jorgen
2009-09-20, 14:51
I afraid that I don't have a good answer to that.
Anyone else with suggestions?

-Jorgen