I am trying to use a UMAT (attached) in calculix as a shared library.
I followed the procedure given in calculix documentation but the solution doesn’t proceed (please check bottom of terminal screenshot).
Here’s what I did:
Assigned UMAT as the name of the subroutine inside the file UJ2PLASEMP.f
Compiled UJ2PLASEMP.f using: abaqus make library=UJ2PLASEMP.f
This resulted in 2 files: UJ2PLASEMP-std.o and libstandardU.so
I renamed the latter file to libUJ2PLASEMP.so
In the input file, I set the material name to: @UJ2PLASEMP_UMAT
Submitted the job on the terminal
Can you please help me with this?
All files are uploaded to this folder
It would be best if you compiled everything using the same compilers. I’m not sure if Abaqus does something different internally to create the libs. I haven’t tried it this way, to be honest, but it appears to be problematic just by thinking about it.
Thank you for your reply.
I just checked the compiler in the environment file of ABAQUS. It is “gfortran”.
And while compiling CalculiX, in the Makefile, the FC variable (Fortran compiler) was also set to “gfortran”.
I have uploaded two new files to the same folder:
File from abaqus directory mentioning Fortran compiler: lin86_64.env
CalculiX Makefile: Makefile
Based on these, can you please tell me if I need to modify the ABAQUS env file?
But otherwise, is the sequence of steps I have taken alright?
I mean could it be a syntax issue because of inconsistent names for the function, library, and material, which prevents CalculiX from reading the UMAT.
Why don’t you use the umat thru the Abaqus umats and recompile ccx? It is a much cleaner approach and you will know exactly what is the problem because it won’t compile
In your Makefile I don’t see the compiler option
-DCALCULIX_EXTERNAL_BEHAVIOURS_SUPPORT
which seems to be needed to link UMAT related dynamic linked libraries to ccx. Try to compile the entire code with this option. Thank you!
It would be also a good idea to also add the option -DCALCULIX_EXTERNAL_BEHAVIOUR_DEBUG. That gives extra information about what is going on.
See the source code file external.c in the ccx source distribution.