阿信老师,您好!
我叫王*,在上海读研究生,目前研一(半年在家度过…),主要研究复合材料方向。在学习子程序过程中遇到一些问题,搜索资料后没有解决,发到一些交流群里往往会被忽视,向您请教应当是直接有效,我长话短说,希望尽快得到老师回复。
问题一:在.for文件中,包含的是Abaqus帮助文档中的一个VUMAT算例,我想请问老师关于应该如何确定 Depvar 的大小,也就是用户子程序中包含多少个Solution-dependentstate variables?不会确定如图所示的数值;
图 1
1:状态变量数量;
2:控制单元删除;
问题二:如何在VS中调试Abaqus的Fortran用户子程序我按照如下方法配置软件,提交计算,并在VS中与Abaqus进行attach,Abaqus中正常计算,VS中并没什么可以调试的作用。
图 2
如下图:
图 3
整个调试页面没有变化,
图 4
以上就是我向阿信老师请教的两个问题,恳请老师给与指点。
最后祝老师工作顺利,身体健康。
谢谢老师!
王同学,你好:
对于问题1,关于在材料属性输入状态变量的个数,其实这个是和子程序相关的,如果说子程序中设定了10个状态变量,那么需要在下图中红色1位置输入10或者大于10,但是不能小于10。
图 5
如果需要在后处理的结果中看到状态变量的结果,还需要在场变量输出选项里面勾选SDV选项。
图 6
如果需要通过状态变量达到删除单元的目的,则需要将该状态变量的编号写在红色2位置,另外需要在单元属性勾选如下选项,当该状态变量为0的时候,单元会自动删除。
图 7
同时场变量需要勾选STATUS
图 8
过于问题2——子程序的调试
实际上,我不采用你这种调试方式,我采用的是直接在ABAQUS中进行调试,觉得这种方式要方便。
一般来说,采用很小的模型,比如一个单元。如果是查看子程序是否又有bug,则可以直接查看log文件,所有报错都会在里面显示。比如job名称为umatTest,那么我们只需要查看umatTest.log这个文件即可。所有报错一览无余。
如果需要监控某些变量在计算过程中的值,则可以采用PRINT的方式实现,时间关系不在举例了。也可以写入到指定文本,用write的方式。
祝顺利!
阿信
2020.06.18