序言
“我们知道,如果在三个月内交付不了代码,我们就拿不到一分钱”Bengt说,“那是一次很大的鞭策!”他们按时交付了15000行的FORTRAN代码,包含四种单元:beam、gap、truss和SPHEX,用来模拟热膨胀、蠕变、以及燃料棒和约束装置中金属的辐射溶胀。
这是1978年abaqus成立后的首个大单,也是abaqus能发展到现在的关键大单。从Bengt的话语中我们不难推断,早期的abaqus就是基于fortran开发的,所以abaqus在对外留有丰富的接口,具有很强的扩展性。尤其是对Fortran的接口非常多,这也是abaqus逐渐成为各高校和企业所关注和喜爱的原因。现在,我们在abaqus中广泛使用的子程序,大多是Fortran子程序,今天我们就来聊下它们之间的个故事。
一、Abaqus与fortran的关系
上文虽然简单的描述了下abaqus和fortran的历史渊源,但是在使用的时候这个是不够的。他们之间的逻辑关系如下图:
图1.1 abaqus与fortran关系图
如图1.1,首先Fortran不能单独存在,他必须存在于一个平台上,这个平台就是Microsoft visual Studio。因此一旦我们使用了子程序,就必须需要再装两个软件。加上abaqus,这三个软件在安装的时候 有些注意事项:
1.1、abaqus安装
在安装abaqus的时候,尤其是新版本,必须安装 CAAAPI组件。如图1.2。只有安装了开发组件,才能够实现和fortran的交互。如果不需要使用子程序,这个模块就不用安装。不过还是推荐安装。
图 1.2 安装示意图
1.2、fortran和visual Studio的版本
这个问题非常重要。通常来说,版本的高低推荐abaqus>Fortran>visual Studio。举例来说,abaqus使用2020版本,Fortran推荐使用2019,visual Studio推荐使用2017。大小顺序不能搞反,代差也不能过大。推荐代差不要大于4代。
1.3、fortran的集成
Fortran的集成其实没有想象的那么复杂,总结起来有三个要素:
a.visual Studio 正常安装,可以运行
b.Fortran 正常安装,可以运行
c.Abaqus 开发库正常安装
这三个要素如果没有问题,按照说明集成一般不会有什么事。所以在安装每一个软件的时候一定要注意报错信息。
二、FORTRAN语法
Fortran是一门专门计算的软件,在使用的过程中其实并不难。对于FORTRAN,我们需要掌握这么几点就可以进行子程序编辑了
图2.1 fortran的关键要素
其中最核心的内容就是表达式,其余的和其他语言程序差异不大。在表达式里面,共包含了四种,分别是算术表达式、逻辑表达式、关系表达式、逻辑表达式和字符表达式。
图2.2 fortran的表达式
在使用的时候一定要注意。常见的使用如:
例1:3 5-6.0*8.5/4**2 sin(x) → 3 5-6.0×8.5÷42+sinx
例2:x y>15.4 → x y.gt.15.4
例3:5≤k≤10 → k.ge.5.and.k.le.10
例4:'HE'//'LLO' → ‘HELLO'
三、焊接子程序
Abaqus支持的子程序有几十种之多,包含各个领域。其中用于焊接的子程序DFLUX是使用频率最高的几种之一。
图3.1 DFLUX的主要格式
其中核心的是DLFUX(1)和DLFUX(1)。帮助文档的原文解释摘录如下:
FLUX(1) will be passed into the routine as the magnitude of the flux specified as part of the element-based or surface-based flux definition. If the magnitude is not defined, FLUX(1) will be passed in as zero.
FLUX(2) :In heat transfer cases: , the rate of change of the flux with respect to the temperature at this point.
简而言之,FLUX(1)解决的是热通量,FLUX(2)解决的是温度。在焊接仿真中,FLUX(1)应用更为广阔。
下图是一个常见的焊接子程序,使用的是双椭球热源。
图3.2 平板对接焊的子程序