顶部banner
Logo 折叠
学习从这里开始
下载app
返回旧版
首页 成长助手 小邻学院 社区 发现
职业认证 企业服务 行业会议

登录解锁更多功能

还没有账号?立即注册

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

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

浏览: 3724 回答: 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 点赞

相似问题

查看全部
  • 损伤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,

  • 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,

推荐阅读

转子旋转的周期性模型-水冷电机散热仿真

转子旋转的周期性模型-水冷电机散热仿真

技术邻小李 技术邻小李
¥100
step by step 教你如何在abaqus中使用实体单元和连接单元建立螺栓连接

step by step 教你如何在abaqus中使用实体单元和连接单元建立螺栓连接

幻想飞翔 幻想飞翔
¥30
2020全英华人汽车工程协会年会Part 2——汽车产品工程研发的数字化未来

2020全英华人汽车工程协会年会Part 2——汽车产品工程研发的数字化未来

陈东陈 陈东陈
免费
测量不确定度的应用实践

测量不确定度的应用实践

HBK测试与测量 HBK测试与测量
免费
无网格划分软件midas MeshFree - 功能培训

无网格划分软件midas MeshFree - 功能培训

MIDAS官方 MIDAS官方
免费
探究实时仿真GPU求解器加速汽车行业设计创新

探究实时仿真GPU求解器加速汽车行业设计创新

Ansys中国 Ansys中国
免费
Fluent中升力和阻力的计算

Fluent中升力和阻力的计算

宁博士CAE团队 宁博士CAE团队
免费
【入门案例02】Abaqus——钢筋混凝土构件的碳纤维布+钢板加固模拟

【入门案例02】Abaqus——钢筋混凝土构件的碳纤维布+钢板加固模拟

臻元咨询
¥30
张量计算课程合集

张量计算课程合集

引垂思汀 引垂思汀
¥50
精品课程A30-考虑初始缺陷的栓焊连接组合节点滞回模拟

精品课程A30-考虑初始缺陷的栓焊连接组合节点滞回模拟

大平-结构工程 大平-结构工程
¥598
vof案例-射流

vof案例-射流

CFD流 CFD流
免费
线控底盘市场趋势分析

线控底盘市场趋势分析

小木匠砍树 小木匠砍树
免费
用EVOLVE对接INSPIRE,加速产品迭代优化

用EVOLVE对接INSPIRE,加速产品迭代优化

咸鱼氮泵 咸鱼氮泵
免费
遗传算法解决(TSP)商旅问题matlab代码超详细解说(适用于新手)

遗传算法解决(TSP)商旅问题matlab代码超详细解说(适用于新手)

活泼可男_matlab教学 活泼可男_matlab教学
¥10
船舶行进过程中的流场分布规律分析

船舶行进过程中的流场分布规律分析

龙樱 龙樱
免费
BOX-3D变宽斜钢箱梁绘图及功能更新演示

BOX-3D变宽斜钢箱梁绘图及功能更新演示

敦樸DUNPU 敦樸DUNPU
免费
abaqus埋地管道受力分析

abaqus埋地管道受力分析

冷月 冷月
¥25
基于iSIGHT+Workbench的开孔平板性能优化

基于iSIGHT+Workbench的开孔平板性能优化

sjktzy sjktzy
¥5
Hyperworks CFD v2022.1前后处理教程

Hyperworks CFD v2022.1前后处理教程

ALTAIR ALTAIR
免费
品索设计-Creo自学练习集讲解(草绘部分)

品索设计-Creo自学练习集讲解(草绘部分)

深圳品索设计Creo培训 深圳品索设计Creo培训
免费