理论教育 通过用户子程序定制ADAPT宏,实现有限元分析

通过用户子程序定制ADAPT宏,实现有限元分析

时间:2023-10-25 理论教育 版权反馈
【摘要】:标准的ADAPT宏并不能满足特定的分析需要。相应的用户子程序名为ADAPTMSH.MAC、ADAPTBC.MAC和ADAPTSOL.MAC。如果要同时对面和体进行划分,就要生成用户子程序ADAPTMSH.MAC来提供相应的操作。对所有体划分网格2.生成用户边界条件子程序ADAPT宏在每次求解循环时都要清除并重新划分网格,因此模型的节点和单元也要不断地改变。如果要包含这些有限单元约束,就要使用用户子程序,ADAPTBC.MAC。

通过用户子程序定制ADAPT宏,实现有限元分析

标准的ADAPT宏并不能满足特定的分析需要。例如,用户可能想同时对面和体进行网格划分,这在标准宏当中是不可以的。对于这种或其他一些类似情况,可以对ADAPT宏进行修改使之适用于特定的分析。ANSYS程序用宏这种方式完成自适应网格划分,本身就使得用户可以对其进行相应的修改以适应不同的要求。方便的是,用户不用总是通过修改ADAPT代码的方式来定制宏。宏的三个部分可以用用户子程序的方法来修改,这个方法将ADAPT宏和用户文件分开,用户可以生成子程序,由ADAPT宏来调用。这三个部分是:网格划分命令序列、边界条件命令序列和求解命令序列。相应的用户子程序名为ADAPTMSH.MAC、ADAPTBC.MAC和ADAPTSOL.MAC。下面看一下这三个子程序的功能。

1.生成用户网格划分子程序(ADAPTMSH.MAC)

默认情况下,如果模型中包含一个或多个体时,ADAPT宏将只对体划分网格而不对面进行划分。如果当前选择集中没有体,宏才对面进行划分。如果要同时对面和体进行划分,就要生成用户子程序ADAPTMSH.MAC来提供相应的操作。在重新划分网格之前要清楚所有这些实体中划分过网格的实体。子程序大致如下:

C***Subroutine ADATMSH.MAC-Your name-Job Name-Data Created

TYPE,1 !指定划分网格的单元类型属性

ACLEAR,3,5,2 !清除本程序中要重新划分网格的面和体的网格

VCLEAR,ALL

AMESH,3,5,2 !对面3和5划分网格(ADAPT不对其他面划分网格)

TYPE,2 !改变单元类型,划分体

VMESH,ALL !对所有体划分网格

2.生成用户边界条件子程序(ADAPTBC.MAC)

ADAPT宏在每次求解循环时都要清除并重新划分网格,因此模型的节点和单元也要不断地改变。这就使得所有的有限单元载荷、自由度固连、约束方程等施加在节点和单元的边界条件都不能使用。如果要包含这些有限单元约束,就要使用用户子程序,ADAPTBC.MAC。在这个子程序中,可以选择节点然后定义有限单元载荷、自由度固连和约束方程。下面是一个ADAPTBC.MAC的例子:

C***Subroutine ADAPTBC.MAC-Your name-Hob Name-Data CReated

NSEL,S,LOC,X,0 !选择X坐标为0的节点(www.daowen.com)

D。ALL,UX,0 !令选择的所有节点UX为0

NSEL,S,LOC,Y,0 !选择Y坐标为0的节点

D,ALL,UX,0 !令选择的所有节点UY为0

NSEL,ALL !选择所有节点

3.生成用户求解子程序(ADAPTSOL.MAC)

ADAPT宏中的求解命令序列很简单:

/SOLU

SOLVE

FINISH

这个默认的命令序列只能求解单个载荷步。用户可以将其他的命令序列加入用户子程序ADAPTSOL.MAC中。

4.关于用户子程序的一些其他说明

用户可以像生成其他文件一样生成这些子程序。就是说可以用APDL语言的*CREATE命令(Utility Menu|Macro|Create Macro)和APDL的*END命令,也可以用外部的文件编辑器。当ADAPT宏调用这些子程序时,软件先搜索ANSYS根目录,再搜索用户根目录,最后是当前目录。因此,要确保其他目录中不包括与所用文件同名的文件。解释行(C***)会在输出文件中出现,可以通过它来检查是否使用了正确的文件。另外,通过在运行ADAPT宏之前用/PSEARCH,OFF(Utility Menu|Macro|Macro Search Path)指定软件只搜索ANSYS根目录和用户当前目录可以从某种程度上减少文件混用的可能。不管这些子程序在什么位置,它们都能被找到,除非将ADAPT命令的KYMAC选项设为1。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈