Notifications
Clear all

Compiling user routine into object file.

17 Posts
6 Users
0 Likes
3,087 Views
lucky
Posts: 6
Topic starter
(@lucky)
Active Member
Joined: 13 years ago

Hi All,

I need to run multiple jobs on different compute nodes of a cluster. For that I need to first compile my user subroutine into an *.o file.

Has anybody tried compiling a user subroutine into an object file on Linux with out using ABAQUS ?

I am assuming once I compile the code into an object file I will not the Intel Fortran License for all the nodes. I have only one Intel Fortran license that too not for compute node.

Regards

16 Replies
Jorgen
Posts: 3974
(@jorgen)
Member
Joined: 3 years ago

Yes, you can compile the code on one computer and then use output on other nodes that do not have a compiler. Note that you should not compile to an object file, though. You should compile it to a shared library, i.e. a so-file.

You can perform this compilation using the command:
abaqus make library=[file.f]

The compilation can also be performed without using Abaqus.

-Jorgen

16 Replies
Jorgen
Posts: 3974
(@jorgen)
Member
Joined: 3 years ago

Yes, you can compile the code on one computer and then use output on other nodes that do not have a compiler. Note that you should not compile to an object file, though. You should compile it to a shared library, i.e. a so-file.

You can perform this compilation using the command:

abaqus make library=[file.f]

The compilation can also be performed without using Abaqus.

-Jorgen

Reply
lucky
Posts: 6
Topic starter
(@lucky)
Active Member
Joined: 13 years ago

re:

Hi Jorgen,

I compile it exactly as you told:

abaqus make library=myumat.f

and it gives me the following files:

myumat-std-o

libstandardU.so

Then I tried the *.so file on abaqus job command to run the simulation like this:

(1) abaqus job=myinput input=myinput user=libstandardU.so

also

(2) abaqus job=myinput input=myinput user=myumat.f

(with the above *.so library file in the local directory)

But neither work out.

(1) Showed Error: The following file(s) could not be located: libstandardU.f, libstandardU.o

(2) showed Error: A license for FCompL could not be obtained.

Am I missing something here?

Thanks for your reply.

A

Reply
Jorgen
Posts: 3974
(@jorgen)
Member
Joined: 3 years ago

Once you have the libstandardU.so file you should copy that file to a location that can be read by each node. Then you need to add the following line your your abaqus_v6.env file on each node:

usub_lib_dir = path to the directory where libstandardU.so is stored

Then run abaqus without any user=... option.

- Jorgen

Reply
lucky
Posts: 6
Topic starter
(@lucky)
Active Member
Joined: 13 years ago

Result Files Missing

Thanks Jorgen,

It worked pretty well. However, I am missing the text files I write within my program. I wanted to save those files in the same directory where I run my input file. I could not locate them even in the ABAQUS home directory.

Alankar

Reply
Jorgen
Posts: 3974
(@jorgen)
Member
Joined: 3 years ago

Have you tried to provide the full path name when you open the text files?

-Jorgen

Reply
Page 1 / 3
Share: