顶部banner
Logo 折叠
全网首发仿真工程师项目实训
下载app
返回旧版
首页 成长助手 小邻学院 社区 发现
职业认证 企业服务 行业会议

登录解锁更多功能

还没有账号?立即注册

技术邻
技术引领职场价值
电话
0571-86682823
商务合作
service@jishulink.com
  • 全部  > 
  • CAE仿真

关于下面这个帖子中提到的问题,有大佬知道为什么吗? 20

浏览: 3869 回答: 3

Xingsheng Sun (Mechanical)(OP)18 Aug 21 21:51

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

FEA way (Mechanical)18 Aug 21 22:18

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".

Xingsheng Sun (Mechanical)(OP)18 Aug 21 23:13

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;

}

}

FEA way (Mechanical)19 Aug 21 18:31

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.

Xingsheng Sun (Mechanical)(OP)19 Aug 21 20:36

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

FEA way (Mechanical)20 Aug 21 12:14

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.

Xingsheng Sun (Mechanical)(OP)23 Aug 21 22:05

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

FEA way (Mechanical)25 Aug 21 07:53

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

Xingsheng Sun (Mechanical)(OP)25 Aug 21 18:02

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

C++ VUMAT error on the supercomputer - DASSAULT: ABAQUS FEA Solver - Eng-Tips

ABAQUS UMAT/VUMAT

全部回答 (1)

默认 最新
小程序用户_ndE4kDEn 2023年6月29日
No vumat subroutine was supplied for the user material named: material-1。同一个问题,请问您知道解决办法了吗
2023年6月29日
评论 2 点赞

相似问题

查看全部
  • ABAQUS子程序验证不通过,如何解决? 9个回答

    子程序验证报告如下: Abaqus Product Install Verification... Thu Jun 15 18:18:20 2017 Running system requirement checks. Requirement: Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows HPC

  • abaqus vumat c++为什么使用double精度无法正确获取数据? 暂无回答

    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,

  • 损伤Vumat子程序求助 4个回答

    下面是小弟写的一个损伤vumat子程序(lemaitre本构)。现在在单胞测试中发现,D_c和depl都有合理的数值,但是在一次更新后,损伤量D和塑性应变一直是0。还请各位大神帮忙指点一下! SUBROUTINE VUMAT( C Read only - 1 nblock,ndir,nshr,nstatev,nfieldv,nprops,lanneal, 2 stepTime,totalTime,

推荐阅读

Fluent UDF视频教程

Fluent UDF视频教程

技术邻小李 技术邻小李
¥200
ANSYS新版本功能速递: HFSS微放电仿真

ANSYS新版本功能速递: HFSS微放电仿真

Ansys中国 Ansys中国
免费
0#块箱梁托架法施工结构模拟

0#块箱梁托架法施工结构模拟

yudachuan1105 yudachuan1105
¥200
基于Hypermesh与ABAQUS联合仿真的摄像头模组跌落分析——工作创建以及检查

基于Hypermesh与ABAQUS联合仿真的摄像头模组跌落分析——工作创建以及检查

北鲲 北鲲
¥99
ABAQUS钢管混凝土柱温度场及耐火性能分析(未完)

ABAQUS钢管混凝土柱温度场及耐火性能分析(未完)

地下结构设计
¥40
5G终端天线仿真设计方法及其应用

5G终端天线仿真设计方法及其应用

Ansys中国 Ansys中国
免费
abaqus三维切削数值模拟(sph法)

abaqus三维切削数值模拟(sph法)

abaquser abaquser
¥30
基于ABAQUS和ANSYS接触分析

基于ABAQUS和ANSYS接触分析

宁博士CAE团队 宁博士CAE团队
免费
前沿技术!大数据分析及人工智能在优化软件中的应用

前沿技术!大数据分析及人工智能在优化软件中的应用

IDAJ中国 IDAJ中国
¥9.99
新一代智能头灯的动态设计评估与仿真

新一代智能头灯的动态设计评估与仿真

Ansys中国 Ansys中国
免费
UG培训第九课:自由曲面构造法

UG培训第九课:自由曲面构造法

luffy8610 luffy8610
¥20
应用ANSYS瞬态动力学法模拟啮合齿轮的高速转动

应用ANSYS瞬态动力学法模拟啮合齿轮的高速转动

夏日星空 夏日星空
¥35
一线科技工作者接受仿真咨询服务的全过程经验分享

一线科技工作者接受仿真咨询服务的全过程经验分享

技术邻直播 技术邻直播
免费
混凝土材性试块拉压数值模拟(ABAQUS通法建模初级案例3)

混凝土材性试块拉压数值模拟(ABAQUS通法建模初级案例3)

大平-结构工程 大平-结构工程
¥299
汽车仪表模具模流分析的实战讲解

汽车仪表模具模流分析的实战讲解

北卡 北卡
免费
UG有限元基础教程

UG有限元基础教程

moonshine🤓 moonshine🤓
免费
ABAQUS桁架结构强度分析

ABAQUS桁架结构强度分析

wj_2704 wj_2704
¥500
ADAS功能软件基础介绍

ADAS功能软件基础介绍

Alex王 Alex王
免费
使用已标定的车辆动力学模型提升开发效率

使用已标定的车辆动力学模型提升开发效率

VI-grade中国 VI-grade中国
免费
hypermesh_dyna小车碰撞护栏(无声)

hypermesh_dyna小车碰撞护栏(无声)

吴文泽 吴文泽
¥18