用户登录

你在这里

如何编译用C/ c++编写的UMAT ?

刘伟杰的照片

你好,

有人知道如何在c/c++中为windows系统下的abaqus编译umat吗?

用fortran编写的Umat工作得很好,但我更喜欢用c/c++编写程序。

我已经安装了visual studio 2010 c++, intel fortran。

或者是否可以使用c/c++来进行操作?

提前感谢。

评论

弗兰克·里希特的照片

你好

我确实有一些信息,但我找不到上传附件的按钮。
直接联系我

弗兰克

刘伟杰的照片

你好,

非常感谢您发来的文件!

特别是“答案ID 737.txt”非常有帮助,它帮助我解决了编译器参数的问题。

祝你周末愉快。

亲爱的教授,

你能把文件也发给我吗?如果有子程序头的例子,会更有帮助。提前感谢!

麝猫的照片

你好,

几年前,我也决定用c++编写我的Abaqus用户子程序。基本上,在c++代码中,函数必须被调用,例如:

extern "C" void umat_(双*stress,双*statev,双*ddsdde,双*sse,双*spd,双*scd,双*rpl,双* ddsdt,双*stran,双*dstran,双*time,双*dtime,双*temp,双*dtemp,双*predef,双*dpred, char *cmname, int *ndi, int *nshr, int *ntens, int *nstatv,双*props, int *nprops,双* cods,双*drot,双*pnewdt,双*celent,双*dfgrd0,双*dfgrd1, int *noel, int *npt,Int *layer, Int *kspt, Int *kstep, Int *kinc, short cmname_len)

然后,在linux下,我使用gcc和以下选项来编译c++代码:

gcc -c -O3 -fPIC - 0 ussub。o usub.cpp

在6.13之前,Abaqus被配置为与icc进行编译/链接,因此还必须修改abaqus_v6中的编译/链接指令。Env是为了使用gcc,但现在看来gcc是默认的编译器/链接器。但是请注意,如果您使用共享库,您仍然需要修改abaqus_v6.en中的链接指令。无论如何,最后你提供编译对象给abaqus:

用户= usub有限元分析。工作=工作阿

最后,对于新的开发,我现在使用fortran——这是大多数人使用的,因此它使协作和代码共享更加直接。不管怎样,我希望这对你有帮助。

马丁

刘伟杰的照片

感谢分享在gcc下编译umat的解决方案。在未来,也许我也会转到fortran编程,现在我更喜欢c/c++,只是为了更熟悉一些。

对于win_64操作系统,我在ms visual studio下使用以下选项:

cl /c /nologo /W0 /MD /TP /EHsc /DNDEBUG /DWIN32 /DTP_IP /D_CONSOLE /DNTI /DFLT_LIC /DOL_DOC /D__LIB__ /DHKS_NT /DABQ_NTI_NET /DFAR= /D_WINDOWS /DABQ_WIN86_64 /O1 /I%I

能否分享一下用c++编写UMAT的相关文档?

谢谢大家

刘伟杰的照片

你好,

linux下uel的定义和编译命令,请参见麝猫的评论。

在win os下,使用相同的声明,我也发布了编译器命令。

如果你想知道如何写uel,你可以在这里找到一些帮助:http://万博manbetx平台m.limpotrade.com/node/7576

Weijie

麝猫的照片

亲爱的每个人,

我刚刚清理了我的框架,用c++编写Abaqus用户子程序。它在GitHub上:https://github.com/maaaaaaaaaaaaaaaaaaaaaartin/AbaqusUsub.cpp.如果你觉得有用,请告诉我。

马丁

麝猫的照片

谢谢你,马丁。这正是我目前所需要的。

祝你过得愉快。

订阅评论“如何编译用C/ c++编写的UMAT ?”

最近的评论

更多的评论

辛迪加

认购辛迪加