【摘要】:选定好了模型和模型参数,需要利用MARC的二次开发功能实现E-B模型与网格单元的对接计算。图3.4亚弹性体与Hypela2子程序前面的基本设置完成之后,重点就是E-B模型代码的编写和调试运行。由于MARC能够直接打开子程序代码窗口,所以根据Log File提供的运行信息可以很容易地实时进行修改调试,大大提高了程序的测试效率。
选定好了模型和模型参数,需要利用MARC的二次开发功能实现E-B模型与网格单元的对接计算。这里所谓的二次开发其实是利用MARC提供的种类繁多的用户子程序作为用户与软件交互的接口,MARC提供根据Frotran语言编写的用户子程序文件模板,该类模板不具有实际的分析计算功能,仅提供用户达到目的所需的各类子程序,而需要用户自主编译代码实现分析计算工作。当MARC主程序运行时,若选定运行过程中的某些子过程调用了用户子程序,则会调用用户定义的子程序替换默认的子程序来实现该子过程。
在处理除混凝土以外的堆石材料时,不能将其简单定义为弹性体,这里MARC为用户提供了一种符合其特性的材料类型——亚弹性体。而Method则选择USER SUB.HYPELA2。这就完成了调用Hypela2子程序(图3.4)的工作。
(www.xing528.com)
图3.4 亚弹性体与Hypela2子程序
前面的基本设置完成之后,重点就是E-B模型代码的编写和调试运行。由于MARC能够直接打开子程序代码窗口,所以根据Log File提供的运行信息可以很容易地实时进行修改调试,大大提高了程序的测试效率。
在编写代码的过程中,参考了相关的MARC二次开发案例,简单总结一下其数据流:调用Hypela2子程序时,第一个增量步开始启动,数据流向子程序,子程序经过一系列运算生成刚度矩阵,返回MARC主程序进行计算,得到单元和节点第一个增量步后的位移量和应变量,之后重复前面的过程,直至最后一个增量步结束。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。