×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Contact US

Log In

Come Join Us!

Are you an
Engineering professional?
Join Engine-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Engine-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

C++ VUMAT error on the supercomputer

C++ VUMAT error on the supercomputer

C++ VUMAT error on the supercomputer

(OP)
Dear folks,

I am trying to use C++ VUMAT in the abaqus on the university supercomputer, but it does not work. I have successfully tested the C++ VUMAT and abaqus on my local computer. I have also tested the Fortran VUMAT and abaqus on the supercomputer, and it works well. Could any of you shed light on how to solve this problem? Thank you so much.

The error is below:

Analysis initiated from SIMULIA established products
Abaqus JOB job1
Abaqus 3DEXPERIENCE R2018x
Abaqus License Manager checked out the following licenses:
Abaqus/Explicit checked out 5 tokens from Flexnet server .
<112 out of 117 licenses remain available>.
Begin Compiling Single Precision Abaqus/Explicit User Subroutines
Wed 18 Aug 2021 10:49:48 AM PDT
End Compiling Single Precision Abaqus/Explicit User Subroutines
Begin Linking Single Precision Abaqus/Explicit User Subroutines
Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 18.0.1.163 Build 20171018
Copyright (C) 1985-2017 Intel Corporation. All rights reserved.

GNU ld version 2.27-44.base.el7
End Linking Single Precision Abaqus/Explicit User Subroutines
Wed 18 Aug 2021 10:49:52 AM PDT
Begin Analysis Input File Processor
Wed 18 Aug 2021 10:49:52 AM PDT
Run pre
Wed 18 Aug 2021 10:49:54 AM PDT
End Analysis Input File Processor
Begin Abaqus/Explicit Packager
Wed 18 Aug 2021 10:49:54 AM PDT
Run package
Abaqus/Explicit 3DEXPERIENCE R2018x DATE 18-Aug-2021 TIME 10:49:55
-------------------------------------------------------------------------------
PREPROCESSOR WARNING MESSAGES
-------------------------------------------------------------------------------


***WARNING: There are 2 warning messages in the data (.dat) file. Please
check the data file for possible errors in the input file.


-------------------------------------------------------------------------------
USER SUBROUTINE VUMAT
-------------------------------------------------------------------------------


***WARNING: A material defined in user subroutine VUMAT must be defined as
purely elastic (using the initial elastic modulus) at the
beginning of the analysis (stepTime=0). This is an informative
message. It does not necessarily indicate that user subroutine
VUMAT is incorrectly defined.



***ERROR: NO VUMAT SUBROUTINE WAS SUPPLIED FOR THE USER MATERIAL NAMED:
MATERIAL-1

Wed 18 Aug 2021 10:49:56 AM PDT
Abaqus Error: Abaqus/Explicit Packager exited with an error - Please see the
status file for possible error messages if the file exists.
Begin Convert MFS to SFS
Wed 18 Aug 2021 10:49:56 AM PDT
Run SMASimUtility
Wed 18 Aug 2021 10:49:56 AM PDT
End Convert MFS to SFS
Abaqus/Analysis exited with errors

Best,
Xingsheng

RE: C++ VUMAT error on the supercomputer

Have you tried running any other (even very simple) C++ subroutine on that supercomputer ? Does your code have the #include <omi_for_c.h> line ? It's necessary for C++ subroutines. The requirements are explained in the documentation chapter "About user subroutines and utilities".

RE: C++ VUMAT error on the supercomputer

(OP)
Hi,

Thank you so much for your reply. I have tried running other C++ codes successfully on the cluster, and also added the line #include <omi_for_c.h>. But it still does not work. Please see below the vumat.cpp file and let me know if you notice any mistakes. Thanks again.

#include <stdio.h>
#include <omi_for_c.h>

extern "C" void vumat(long* nblock, long* ndir, long* nshr, long* nstatev, long* nfieldv, long* nprops, long* lanneal,
double *stepTime, double *totalTime, double *dt, char* cmname, double *coordMp, double *charLength,
double *props, double *density, double *strainInc, double *relSpinInc,
double *tempOld, double *stretchOld, double *defgradOld, double *fieldOld,
double *stressOld, double *stateOld, double *enerInternOld, double *enerInelasOld,
double *tempNew, double *stretchNew, double *defgradNew, double *fieldNew,
double *stressNew, double *stateNew, double *enerInternNew, double *enerInelasNew)
{

double lambda = props[0];
double shear = props[1];
long n_elem = *nblock;

for(int km = 0; km < n_elem; km++){
double epsi11 = stretchNew[0*n_elem+km]-1.0;
double epsi22 = stretchNew[1*n_elem+km]-1.0;
double epsi33 = stretchNew[2*n_elem+km]-1.0;
double epsi12 = stretchNew[3*n_elem+km];
double epsi23 = stretchNew[4*n_elem+km];
double epsi13 = stretchNew[5*n_elem+km];

double trace = (epsi11+epsi22+epsi33);
stressNew[0*n_elem+km] = 2.0*shear*epsi11+lambda*trace;
stressNew[1*n_elem+km] = 2.0*shear*epsi22+lambda*trace;
stressNew[2*n_elem+km] = 2.0*shear*epsi33+lambda*trace;
stressNew[3*n_elem+km] = 2.0*shear*epsi12;
stressNew[4*n_elem+km] = 2.0*shear*epsi23;
stressNew[5*n_elem+km] = 2.0*shear*epsi13;
}
}

RE: C++ VUMAT error on the supercomputer

Is this the entire subrutine or just a portion of it ? Part of the interface seems to be missing and keep in mind that for C++ subroutines there are additional naming conventions described in the documentation chapter mentioned above.

RE: C++ VUMAT error on the supercomputer

(OP)
Hey,

This is the entire C++ subroutine. Since I am a beginner in this field, would you be able to share any examples of C++ vumat subroutine with me? Many thanks in advance.

Best,
Xingsheng

RE: C++ VUMAT error on the supercomputer

Check the xpl_user.c file attached to the Knowledge Base article "Writing Abaqus user subroutines in C++". It might be partially outdated but should still be helpful.

RE: C++ VUMAT error on the supercomputer

(OP)
Hi, many thanks for your help!

Now the C++ vumat works well for single precision calculations, but not double precision. Could any of the folks shed light on this issue? I am contacting the abaqus support now, but think it might be much faster to get an answer here. Thank you.

The command is:

abaqus input=test.inp user=vumat.cpp job=job1 analysis interactive double

The error is:

Abaqus Error: The executable package
aborted with system error "Illegal memory reference" (signal 11).
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.

The vumat file is:

#include <stdio.h>
#include <iostream>
#include <omi_for_c.h>
//#include <aba_for_c.h>

using namespace std;

extern "C" void vumat_(long *nblock, long *ndir, long *nshr, long *nstatev, long *nfieldv, long *nprops, long *lanneal,
double *stepTime, double *totalTime, double *dt, char* cmname, double *coordMp, double *charLength,
double *props, double *density, double *strainInc, double *relSpinInc,
double *tempOld, double *stretchOld, double *defgradOld, double *fieldOld,
double *stressOld, double *stateOld, double *enerInternOld, double *enerInelasOld,
double *tempNew, double *stretchNew, double *defgradNew, double *fieldNew,
double *stressNew, double *stateNew, double *enerInternNew, double *enerInelasNew)

{
double lambda = props[0];
double shear = props[1];
long n_elem = *nblock;


for(long km = 0; km < n_elem; km++){
double epsi11 = stretchNew[0*n_elem+km]-1.0;
double epsi22 = stretchNew[1*n_elem+km]-1.0;
double epsi33 = stretchNew[2*n_elem+km]-1.0;
double epsi12 = stretchNew[3*n_elem+km];
double epsi23 = stretchNew[4*n_elem+km];
double epsi13 = stretchNew[5*n_elem+km];

double trace = (epsi11+epsi22+epsi33);
stressNew[0*n_elem+km] = 2.0*shear*epsi11+lambda*trace;
stressNew[1*n_elem+km] = 2.0*shear*epsi22+lambda*trace;
stressNew[2*n_elem+km] = 2.0*shear*epsi33+lambda*trace;
stressNew[3*n_elem+km] = 2.0*shear*epsi12;
stressNew[4*n_elem+km] = 2.0*shear*epsi23;
stressNew[5*n_elem+km] = 2.0*shear*epsi13;
}
return;
}

Best,
Xingsheng

RE: C++ VUMAT error on the supercomputer

Did you get any additional errors in the output files ? Make sure that you have enough disc space.

RE: C++ VUMAT error on the supercomputer

(OP)
Dear there,

Yes. There are problems regarding the memory space. I notice when I use the double precision, the values of VUMAT inputs are abnormal. For instance, the value of nblock is 4294967440 and the values of props are 3.16739e+26 and 0 when using double precision. But when using single precision, these values are correct nblock: 144, props: 5769 3846.

Would you be able to share some advice on why VUMAT has wrong inputs from abaqus when using double precision? Thank you so much.

Best,
Xingsheng

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Engine-Tips Forums free from inappropriate posts.
The Engine-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Engine-Tips forums is a member-only feature.

Click Here to join Engine-Tips and talk with other members! Already a Member? Login


Resources

Low-Volume Rapid Injection Molding With 3D Printed Molds
Learn methods and guidelines for using stereolithography (SLA) 3D printed molds in the injection molding process to lower costs and lead time. Discover how this hybrid manufacturing process enables on-demand mold fabrication to quickly produce small batches of thermoplastic parts. Download Now
Design for Additive Manufacturing (DfAM)
Examine how the principles of DfAM upend many of the long-standing rules around manufacturability - allowing engineers and designers to place a part’s function at the center of their design considerations. Download Now
Taking Control of Engineering Documents
This ebook covers tips for creating and managing workflows, security best practices and protection of intellectual property, Cloud vs. on-premise software solutions, CAD file management, compliance, and more. Download Now

Close Box

Join Engine-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Engine-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close