找回密码
 注册
Simdroid-非首页
查看: 2598|回复: 45

Marc使用谈

[复制链接]
发表于 2007-2-27 18:21:22 | 显示全部楼层 |阅读模式 来自 日本
Marc使用谈-有奖征集
畅所欲言,谈谈你的使用感受。
在此跟贴,加分鼓励。

【原创】一点心得体会

marc软件现在用户越来越多,但在使用过程中,还是有一些特别容易出问题的地方,我把自己的一点点体会与大家分享,欢迎会员也将自己的体会奉献出来,求共同进步!
1、mesh generation。
Mentat可以由几何体生成网格,也可以直接生成网格.对于一般规则的模型,建议直接生成网格,可以由点而面,由面而三维. 直接生成网格的好处是网格很规则,避免自动生成网格的不规则带来的误差.几何对称的模型生成的网格也最好是对称的.
充分利用relax的功能使网格质量更好. 对于几何形状复杂或者材料种类比较多的模型,养成边建模型边定义集合set的好习惯,这会让后面的材料属性,几何属性的定义及后处理很方便.网格分好后要check一下,特别是upside down一项,复制对称等操作会让单元翻转造成计算错误,这时就需要flip一下被翻转的单元. 最后要清理一下重复的节点或者单元,刚开始用marc的时候经常会由于有重复的节点或者单元而不能计算,清理得时候根据你的模型最小尺寸来设定tolerance.这里有一点要注意的是在用到rebar单元的时候是需要重复单元的,要注意别把rebar单元sweep掉了. 需要重复单元的时候更要定义好set, set的应用是很灵活的.
2. material properties
材料参数的单位要和模型长度单位一致.一般情况用国际单位制不会出错,对于小尺寸的模型,可以用mm作为长度的单位. 定义table的时候注意marc采用的是table和它前面的系数相乘的结果.需要定义塑性时牢记塑性应力应变数据都是真应力应变数据,试验得到的数据需要转换一下. 第一行塑性应变为0对应的是屈服强度.对于非各向同性材料定义的时候要注意方向,三维实体单元是与总体坐标一致的,而壳单元是与局部坐标一致的。必要的时候orientaions来定义材料轴的方向。
用到线膨胀系数时要注意marc用的是随温度变化的线膨胀系数,也就是温度参考点是变化的,这一点与nastran和ansys等软件不同,详情可参考2002年msc用户论文集之《MSC.Marc程序热应力计算对线膨胀系数的要求》。定义层状复合材料时注意layer1与你的实际模型对应,不注意的话很容易定义倒了,这个要查看单元的局部z坐标的方向来确定。
3.边界条件
新定义一个边界条件要new一下,不然你原来定义的就没了,刚开始用的时候比较容易忘了这个,用多了就好了。建议对每个边界条件命一个容易区分的名,工况组合的时候不容易混淆。对于特殊情况的约束,可以定义transformations来定义约束的方向。
4.Load case
对于静力线形分析,不需要定义load case就可计算;当然你要定义工况组合或者载荷变化也还是得用load case。注意多个load case的时间是累加的,比如load case1 ,load case2都是1秒,那么在计算到load case2中间的时候,时间就是1.5秒,这里要注意和table里的时间对应起来。
5 jobs
选单元类型很关键。刚开始用marc的时候不太会注意选单元类型,往往是例题用什么我们就用什么。但是很有可能你的问题和例题不一样而选择了不合适的单元。我曾经计算过一个钢结构连接部位的极限分析,弧长法壳单元,使用完全积分单元算的结果和减缩积分单元的结果就有30%的差别,而和abaqus对比的结果可以知道减缩积分单元的结果是比较准确的,而abaqus使用完全积分单元算的结果和减缩积分单元的结果基本一样。这当然和不同的软件单元技术会有差别有关,但是也提醒我们选单元要注意一般原则。一阶(线性)单元,容易形成自锁现象,对于高度非线性问题正常情况不用。
Job可以批处理运行,还可以运行完后自动退出windows系统,详细方法可以搜索版内批处理。
6 results
由于对称性有的时候我们会只做1/2,或者1/4模型,在结果处理里面把模型对称或者复制的话就会得到完整模型的结果图,出报告的时候可能用得着。还有,结果里可以进行坐标变换,比如你本来用直角坐标算得,想看看柱坐标下的应力,只需进行坐标变换变换即可,这时的comp11等就和柱坐标对应起来了。还有一点比较简单但是可能还有朋友不知道的,就是出图片的时候可以把背景换成白色的,也可以出黑白图片。
暂时啰嗦这么多,欢迎大家指正,补充。有新感想了我也会随时来补充的,希望大家共同提高。

[ 本帖最后由 tozhou 于 2007-4-18 18:57 编辑 ]

评分

1

查看全部评分

发表于 2007-3-1 14:37:10 | 显示全部楼层 来自 辽宁沈阳
Simdroid开发平台
楼主总结的东西很好啊!很多东西不注意还是会经常出错的!
发表于 2007-3-1 18:50:36 | 显示全部楼层 来自 合肥工业大学
总结的很好啊,再接再励啊,希望能看到更多的心得啊,呵呵
发表于 2007-3-1 19:09:11 | 显示全部楼层 来自 湖北武汉
感谢楼主,学习一下!
___________
 楼主| 发表于 2007-4-16 15:21:20 | 显示全部楼层 来自 日本
T19文件格式
要输出节点位移时,可用T19文件,以Nodal Results/Displacement为关键字开头,每行有六列数据,对应两个节点的位移。
应力输出为积分点的值,以Element Integration Point Values为关键字开头,每个积分点占一行。

Mohr-Coulomb Material
弹性材料时Yield stress程序自动输入1e20,但是在Mohr-Coulomb Material材料的C为0时有点问题,程序也输入1e20,这时可以给一比较小的值,比如0.1,要不然结果会有问题的。

Marc2005r3
Pre state 传初始应力时得打开Advanced Options-------large rotation 要不然位移也一起传过来了。
Pre state 传初始应力节点号要求连续。
第二步可以增加同类型的单元,当增加不同类型单元时,可以用Pre state里的2D to 3D试试,而且expand repetitions 设为1 ----以plane strain ele11 和beam 98为例测试过能行。
发表于 2007-4-17 09:53:36 | 显示全部楼层 来自 黑龙江哈尔滨
感谢lz的总结啊,据此我找到了多个错误。

世上还是好人多啊!
 楼主| 发表于 2007-4-17 10:31:22 | 显示全部楼层 来自 日本
用户子程序时,如果要改变fortran的配置,marc2005r3用安装光盘就可以实现。
比如我原装的intel fortran,没配置好子程序不能用,又改回了compaq的。方法如下
安装,选modify,先清除intel fortran选项,什么编辑器都不选,安装结束。
再安装,选modify,再选compaq的,安装结束。可用。

建议子程序不能用的可用此法试试。

[ 本帖最后由 tozhou 于 2007-4-17 10:32 编辑 ]
发表于 2007-4-18 10:32:38 | 显示全部楼层 来自 北京

我也插几句

个人觉得保存proc文件很重要,毕竟,发现模型有错了,只要该改proc文件就可以很快建个新模型,另外,mentat下鼠标选择感觉不太好使,还是用定义组的方式比较方便。

评分

1

查看全部评分

发表于 2007-4-18 21:39:57 | 显示全部楼层 来自 湖北武汉

使用子程序,安装fortran的经验总结

1.安装注意事项:
   1)marc各个版本与fortran版本搭配方式为,marc2003需要fortran6.0以上版本,marc2000以及marc2001需要fortran5.0以上版本,marc2005r2(或者r3)要搭配fortran6.6b。
   2)安装时候先安装fortran,重新启动计算机,这时候计算机会自动设置好fortran环境变量,然后再安装marc,当安装过程中询问是否使用子程序编译时候,选择确认所安装的fortran即可。
   一般如果你是初次安装fortran和marc只要遵循1),2)两条原则,marc会自动指向fortran编译器,不需要用户再进行其他任何操作。但是需要说明的是,当你不是初次安装的时候,应当首先考虑将fortran和marc的所有变量均从系统中删除,否则当marc再次安装的时候很容易

默认原来的fortran变量环境,导致再次出现marc与fortran连接问题。
    如果你的marc需要手动使其指向fortran编译器,方法如下。
  lib设置成 D:\Program Files\Microsoft Visual Studio\DF98\LIB;D:\Program Files\Microsoft Visual Studio\VC98\LIB;D:\Program Files\Microsoft Visual Studio\DF98\IMSL\LIB
             path定义成:
             D:\Program Files\Microsoft Visual Studio\DF98\BIN;D:\Program Files\Microsoft Visual Studio\VC98\BIN;D:\Program Files\Microsoft Visual Studio\Common\MSDEV98\BIN



2.常见错误
  marc的子程序应用过程中必须的保证子程序本身的编译通过,因为fortran语言对语法的要求要比c语言严格的多,子程序输入项一般设其值为1,也可以不为1,这一项的所设定值与子程序的关系为乘积关系,相当于在子程序之前乘以所设定的常数,但不可以为0,如果是0将会由于mrac无法识别而使marc一直处于runing状态。
  在子程序的提交过程中,要确保所使用的子程序存放于所运算模型的存放目录下,当你不知道子程序是否执行的时候,可以看marc的输出文件,另外也可以直接在子程序中写出某一个变量值,后一种方法比较直接。

[ 本帖最后由 tozhou 于 2007-12-19 15:37 编辑 ]

评分

1

查看全部评分

发表于 2007-4-19 20:27:57 | 显示全部楼层 来自 陕西西安
谢谢!!学习一下!
发表于 2007-4-28 09:04:27 | 显示全部楼层 来自 河南焦作
还不错.谢谢了
发表于 2007-6-13 16:27:06 | 显示全部楼层 来自 广东广州

回复 #11 雷心听戏 的帖子

还有一个问题
当年你手动调整变量时
lib设置成 D:\Program Files\Microsoft Visual Studio\DF98\LIB;
lib是 什么东西?能不能具体步骤  新手 见笑了!
回复 不支持

使用道具 举报

发表于 2007-6-28 16:07:26 | 显示全部楼层 来自 辽宁沈阳
怎么生成proc文件?
回复 不支持

使用道具 举报

发表于 2007-6-29 17:34:37 | 显示全部楼层 来自 江苏南京
原帖由 华_2001 于 2007-6-28 16:07 发表
怎么生成proc文件?


运行完在你的运行文件的目录下会有一个proc文件的
据我了解好像要及时copy出来
因为下一个运行会覆盖掉
回复 不支持

使用道具 举报

发表于 2007-7-1 08:43:06 | 显示全部楼层 来自 浙江杭州

回复 #8 aifu82 的帖子

我也觉得有个命令流文件非常好,只要略作修改就可以得到一批数据
回复 不支持

使用道具 举报

发表于 2007-7-2 10:49:59 | 显示全部楼层 来自 北京

回复 #13 华_2001 的帖子

lib是环境变量,你在MENTAT中操作的时候会自动在工作目录下生成记录你的操作过程的proc文件mentat.proc,将它该个名字或者考到别的地方去,就不会因为重新启动mentat而被覆盖掉

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-7-2 11:19:58 | 显示全部楼层 来自 河北秦皇岛

回复 #13 华_2001 的帖子

可以在utils-procedures-creat然后起个带.proc的文件名就可以了

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2007-7-9 12:07:46 | 显示全部楼层 来自 北京
那个mentat.proc文件打开后什么也没有,哪位高人肯指教一下下
回复 不支持

使用道具 举报

发表于 2007-7-11 15:35:49 | 显示全部楼层 来自 辽宁沈阳
我刚开始用MArc
对于弹塑性问题觉得处理起来有点费劲,个人感觉
回复 不支持

使用道具 举报

发表于 2007-7-12 20:45:10 | 显示全部楼层 来自 LAN
楼主总结的东西很好啊!很多东西不注意还是会经常出错的!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 13:13 , Processed in 0.070100 second(s), 22 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表