Search
Close this search box.
Notifications
Clear all

UMAT: Calling a another subroutine in UMAT, Errors during job execution

5 Posts
3 Users
0 Likes
487 Views
Posts: 20
Topic starter
(@meta82)
Eminent Member
Joined: 16 years ago

Hi,

I am in process of implementing the Bergstroem-Boyce Model. In a first step I am just considering the hyperlastic part of it (Network A: 8-chain). I have implemented this part in a UMAT using a numerical approach for the elasticity tensor (Forward Difference Approximation with perturbation of F).

I have two problems:

1.

------------------------

In order to keep my UMAT as easy to read as possible I have tried to keep the FDA in a separate file using

call KFDA_Jaumann(dfgrd1,......)

to call the KFDA_Jaumann.for which includes the numerical approach.

Now when I run the job using the command window I get an error in the log file:

[I] Creating library standardU.lib and object standardU.exp

eightchain_Jaumann.obj : error LNK2019: unresolved external symbol _KFDA_JAUMANN@40 referenced in function _UMAT

standardU.dll : fatal error LNK1120: 1 unresolved externals

Abaqus Error: Problem during linking - Abaqus/Standard User Subroutines.

This error may be due to a mismatch in the Abaqus user subroutine arguments.

These arguments sometimes change from release to release, so user subroutines

used with a previous version of Abaqus may need to be adjusted.

Abaqus/Analysis exited with errors[/I]

To me that means it cannot find the second fortran code, although it is in the same folder as the main file. Is there a way to include this file in the command window?

2.

--------------------------------

Now in an attempt to get around this issue I included the KFDA_Jaumann.for directly in the main UMAT file and ran the job again using the command window. At first it looked like the simulation worked - no errors in the command window. However, I checked the log file and found that Abaqus aborted just before it started the actual simulation. Compiling and setting up all worked, but just before it starts with the first increment it aborts with the following error:

[I]Abaqus Error: The executable C:\Program Files\SIMULIA\Abaqus\6.8-1\exec\standard.exe

aborted with system error code 148.

Please check the .dat, .msg, and .sta files for error messages if the files

exist. If there are no error messages and you cannot resolve the problem,

please run the command abaqus job=support information=support to report and

save your system information. Use the same command to run Abaqus that you

used when the problem occurred. Please contact your local Abaqus support

office and send them the input file, the file support.log which you just

created, the executable name, and the error code.

Abaqus/Analysis exited with errors[/I]

Unfortunately, neither the .dat nor the .msg file give any clues (.sta does obviously not exist).

Has anyone had similar problems?

Thanks,

Andreas

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

1) You can use multiple source files, but if you do you need to either combine them before calling Abaqus, or performing the compilation yourself without Abaqus.

2) I am not sure why you get that error. I would add a simple print statement as the first line in your code, and then another print statement at the end of your subroutine. That way you can see if the error occurs inside your code or not.

-Jorgen

4 Replies
Posts: 20
Topic starter
(@meta82)
Eminent Member
Joined: 16 years ago

Dear Jorgen,

thanks for your reply. I have been able to solve problem 2. I used a few variables starting with letters L and M.... So they were defined as integers which resulted in division by 0 in my stress calculations.

Regarding question 1:

[I]You can use multiple source files, but if you do you need to either combine them before calling Abaqus, or performing the compilation yourself without Abaqus.[/I]

I most likely wont be able to compile them myself. Unless, I guess, Im able to figure out how to add ABA_PARAM.INC to my compiler.

What exactly do you mean by combining them before calling Abaqus? My goal is to have two separate files in order to keep the main file more clear.

Thanks,

andreas

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

(1) You can if you want copy the aba_param.inc file from the site directory inside your Abaqus installation directory, to your current directory. That way you can compile it by hand if you want.

(2) You could run a simple command to combine the files just before comiling using for example the command:

cat file1.f file2.f ... > all_files.f

(which assumes what you are using a Linux computer).

You might also want to check out my [URL= https://polymerfem.com/forums/showthread.php?t=582 ]rant[/URL] about Fortran style 😎

Reply
Posts: 3
(@MefeAceve)
New Member
Joined: 12 years ago

Is your second problem solved?I have met the some problem.

Reply
Share: