« 解决MSC.Marc的收敛性问题 | Home | 壳单元与实体单元的计算结果比较 »

May 19, 2016

定制结果输出----一个基于MSC Marc的二次开发例子

MSC Marc是一款强大的非线性有限元计算软件。在使用该软件进行仿真的时候,软件根据计算模型提供了各种结果输出。

随着模型的变大,结果文件也随之变大,可能多达几十甚至上百G。尽管计算结果很多,但有时候有参考价值的信息也就一小部分。Marc没有提供计算的时候只输出某一结果到单独文件的功能,只能打开包含所有输出结果的文件,提取相应信息再输出。当使用后处理软件,比如MSC Mentat进行历史曲线提取的时候,需要读入整个结果文件到内存再逐步输出,这个过程非常缓慢。好在Marc提供了一百多个子程序,让用户可以达到修改本构关系、计算参数以及定制输出等多样的目的。

本文给出了一个输出反作用力到独立文件的例子。只要进行简单的修改,用户还可以用它实现输出包括位移、摩擦力等几十种信息到单独文件的功能。使用子程序的好处是可以边计算边提取结果,这样当模型计算完毕的时候,所需要的信息也提取完成,用户无需额外的时间等待结果。

关于Marc的子程序环境配置过程这里不再介绍,读者可以参考MSC的官方文档或者其它相关资料。在使用该子程序的时候,需要在结果输出面板打开impd子程序功能,并在计算面板关联本文提供的子程序。需要输出的节点保存在名为ndset的set(组)中,该组只能有一个节点。如果没有创建这个组,程序将不会计算;如果组里有多于一个的节点,程序会继续计算,但是在结果文件fort.txt中会有类似以下的错误提示:

|-------------------------------------------------------------------------|
|          Incorrect node information in Undset                           |
|    1ndset with    2nodes:             125, 126                          |
|-------------------------------------------------------------------------|

同时提供的还有一个有限元算例,建模过程用Marc所支持的流程文件编写。

结果定制输出子程序:impd.f 有限元算例:impd_demo.proc

Monthly Archives

About this Entry

This page contains a single entry by vincent published on May 19, 2016 9:38 PM.

解决MSC.Marc的收敛性问题 was the previous entry in this blog.

壳单元与实体单元的计算结果比较 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.