ANSYS经典APDL编程

在使用ANSYS的过程中的一些经验总结:

1.ANSYS中的一些关键概念的理解;

参数化程序设计语言(APDL) 参数化程序设计语言(APDL:ANSYS Parametric  Design  Language)实质上由类似于FORTRAN77的程序设计语言部分和1000多条ANS YS命令组成。其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、 函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。标准的AN SYS程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命 令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。从ANSYS命令 的功能上讲,它们分别对应ANSYS分析过程中的定义几何模型、划分单元网格、材料定义 、添加载荷和边界条件、控制和执行求解和后处理计算结果等指令。   用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而 实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化 的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后 处理。   宏是具有某种特殊功能的命令组合,实质上是参数化的用户小程序,可以当作ANSY S的命令处理,可以有输入参数或没有输入参数。   缩写是某条命令或宏的替代名称,它与被替代命令或宏存在一一对应的关系,在AN SYS中二者是完全等同的,但缩写更符合用户习惯,更易于记忆,减少敲击键盘的次数。 ANSYS工具条就是一个很好的缩写例子。 用户界面设计语言(UIDL) 标准ANSYS交互图形界面可以驱动ANSYS命令,提供命令的各类输入参数接口和控制 开关,用户在图形驱动的级别上进行有限元分析,整个过程变得直观轻松。用户图形界 面设计语言(UIDL)就是编写或改造ANSYS图形界面的专用设计语言,主要完成以下三种 图形界面的设计: 主菜单系统及菜单项 对话框和拾取对话框 帮助系统   通过用户界面设计语言(UIDL),用户可以在扩充ANSYS功能的同时建立起对应的图 形驱动界面,如在主菜单的某位置增加菜单项,设计对应的对话框、拾取对话框,实现 参数的输入和其它程序运行的控制,同时提供相应的联机帮助,使操作者能方便地获取 系统帮助。 用户程序特性(UPFs) 用户程序特性(UPFs)向用户提供丰富的FORTRAN77用户程序开发子程序和函数,用 户利用它们从开发程序源代码的级别上扩充ANSYS的功能。使用这些子程序和函数,编写 用户功能的源代码程序,在与ANSYS版本要求匹配的FORTRAN或C++编译器上重新编译和连 接,生成用户版本的ANSYS程序。另外,还提供了外部命令功能,允许用户创建ANSYS可 以利用的共享库。用户可以开发下列方面的功能程序: 开发用户子程序实现从ANSYS数据库中提取数据或将数据写入ANSYS数据库。该种子程序 可以编译连接到ANSYS中,此时ANSYS提供了10个数据库操作命令;如果作为外部命令处 理,可以在ANSYS的任何模块中运行; 利用ANSYS提供的子程序定义各种类型的载荷,其中包括BF或BFE载荷、压力载荷、对流 载荷、热通量和电荷密度等; 利用ANSYS提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层 单元失效准则等; 利用ANSYS提供的子程序定义新单元和调整节点方向矩阵; 利用ANSYS提供的子程序修改或控制ANSYS单元库中的单元; 利用UEROP创建用户优化程序; ANSYS程序作为子程序在用户程序中调用。 ANSYS数据接口 ANSYS程序在分析过程中存在大量的设计分析数据,一部分在运行时置于计算机的内 存之中,一部分以文件的形式存放在工作目录中。除LOG文件和出错文件等文本文件之外 ,其它文件都是二进制文件,分别以不同的格式进行写入,如:数据库文件、结果文件 、模态结果文件、单元矩阵文件、子结构矩阵文件、对角化刚度矩阵文件、缩减位移矩 阵文件、缩减频率矩阵文件和完整的刚度-质量矩阵文件等等。ANSYS数据接口详细地阐 述每种二进制文件的格式,然后介绍从这些数据文件提取各种数据的子程序或函数,从 而实现对二进制数据的读写和修改。显然,它满足了用户以下三种基本需要:检查或观 察过程数据或结果数据;通过修改ANSYS的数据文件达到控制或修正计算;提取结果数据 进行分析处理。 ANSYS数据接口提供了两条模型和数据库信息的转换和传递命令,即CDREAD和CDWRI TE,前者将一个符合ANSYS读入或写出格式的模型和数据库文件信息读入到ANSYS数据库 中,后者的作用正好相反。同时,为了减少转换或传递的时间,提高效率,还提供重定 向自由度映射关系和其它数据库代码化的辅助命令,如/DFLAB、NBLOCK、EBLOCK、EN等 等。该功能大大提高了ANSYS与其它有限元程序之间的模型数据的传递和转换,也实现了 ANSYS自身数据库文件代码化后便于存储或机器之间的传递。 ANSYS数据接口还阐述了图形文件的格式,帮助用户将ANSYS图形文件转换成其它格 式,如AI等。

(1)几何模型和有限元模型

几何模型是指模型的几何信息,在ANSYS中的体现就是关键点(keypoint),面(area),体(volume)等。        而有限元模型是指用于有限元计算的信息,常常和关键点,面,体等混淆的是节点(node),单元(单元)。 真正的用于有限元计算的是节点和单元,而不是所谓的关键点(keypoint)等,关键点等是创建有限元模型时的几何信 息而已。

(2) 待续。。。

2.APDL中的选择命令总结

在使用APDL编程的过程中,不管是几何建模,还是网格剖分,求解,计算,后处理等,常见的模式就是选中相
应的对象,然后对对象施加一些ansys定义好的操作。相对来讲最常用,最有技巧性的操作往往是选择(select),选
择点,线,面,体,节点,单元等施加操作的对象, 通常的选择方式有:

<1>.  通过图元的编号来进行选择

包括给定其具体的编号,或编号的序列(等差序列:其开始,结束,步长),在APDL中相应的命令中指定Vmax,Vmin等参数;

常用的命令流有    *SEL,(其中*代表K,N A V E L等)

<2>.  通过依附关系(attached to)来选取

ANSYS中的图元是有关联关系的,低维的对象是依附于高层次的对象的,比如说关键点是依附于线,面,体,节点依附于单元的。

常用的命令流有    *SL*   (其中前一个*代表要选择的对象,后一个*代表依附的对象)

<3>.  通过位置(by location)来选择

这种方式包含在*SEL命令的参数里面。

<4>.  由材料属性,单元类型的不同进行选择

这也是一种很方便的方式, 在命令流中是通过指定*SEL的参数来执行的。

在选择方式上,即在*SEL的参数中包括选择方式的选项。即S,R,U,A等,他们的含义分别是

S:从包含所有的同类型的对象集合中选取一个集合。

R:从当前选择的对象集合中选取一个集合。

U:从当前选择的对象集合中反选取一个集合。
        A:从包含所有同类型对象的集合中选取一个集合并入当前集合。

PS:这些选择方式都是在GUI下面有相应的选项的。

3.从数据库中提取数据的方法

APDL编程的另一个重要的操作就是如何提取ANSYS数据库的信息。

<1>.*GET和*VGET命令;其中*GET是提取标量参数的命令,而*VGET是批量提取数据库的信息的命令。

<2>.等价的内嵌提取函数;

<3>.对象信息查询函数;ANSYS中提取数据库信息的查询函数是**INQR(其中**代表KP,LS,AR,VL,ND,分
别代表关键点,线,面,体,节点等的信息),但是对应于单元的查询函数是ELMIQR。
    <4>.用/INQUIRE函数来查询系统信息,包括路径,工作目录,工作文件名等。

4.常见的一些操作的模板

比如说,几何建模,划分网格,求解及其设置,后处理等都是用几行APDL就能搞定的,并且大同小异。因此总
结一些模板有利于编程。  
几何建模的一些程序:
... ...
划分网格:

1.    ASEL, 2     !选择面

SMRT,3      !网格尺寸

MSHAPE,1,2D     !网格类型
MSHKEY,0  !网格生成方式
AMESH,ALL        !划分网格
求解:
... ...
后处理:
... ... 
未完待续

时间: 2024-08-01 10:31:51

ANSYS经典APDL编程的相关文章

(Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题)  以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html “AOAPC I”是刘汝佳(大

算法竞赛入门经典+挑战编程+USACO

下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发.   一.UVaOJ http://uva.onlinejudge.org  西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ.   二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题)  以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html   "AO

TCP/IP的经典网络编程

                                                                         TCP/IP网络编程之四书五经                                                                                                                             孟岩 TCP/IP协议是眼下广域网和局域网通用的网络协议.因此.基于TCP

经典C#编程理解,概要,经典

一.NET框架 ADO.NET微软提供的一组类库,可以帮助程序员和数据库交互. CLS(公共语言规范) CTS(通用语言类型) 类库: 可以看成一个承载了N个类的容器. 类库和命名空间: 一个类库对应一个命名空间,也可以多个. 二.自动属性 public string name{set;get;} 应用场景: 当不用做逻辑判定是,可以使用自动属性. 三.封装 信息隐藏,将抽象的数据和操作结合在一起,将私有字段封装成公有属性. 1.保证数据的安全性. 2.提供清晰的对外接口. 3.类内部实现可以任

【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合

#include<stdio.h> #include<stdlib.h> char arr[3][3]; void print() {  int i=0;  for(i=0;i<3;i++)  {   printf("%c|%c|%c|\n",arr[i][0],arr[i][1],arr[i][2]);   printf("_|_|_|\n");  } } void init_arr() {  int i=0;  int j=0;  

经典趣味编程问题

相信很多人在笔试的时候会遇到类似的题目吧,问题是这样描述的: 有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数),凡报到3的人退出圈子, 问最后留下的人原来排在第几号. 这个题目的思路其实不难,首先第一轮是需要被三整除,标记下报到3的那个人,然后在循环找下一个 报到3的个,记得找到的时候需要重新清下这个,从此人在往下找,依次找到,最后会留下那个没有被标记的数,就算找到了. 有点啰嗦,还是上代码吧 int FindLastNumber(int nums) { int i,isThree

java经典程序编程知识(一)

Scanner scanner=new Scanner(System.in) Scanner是一个类,nextXxx()是Scanner的成员函数,System.in作为参数传递给Scanner的构造函数,使Scanner用键盘作为输入,然后用new在内存中实例化一个Scanner出来,使得其它变量能调用这块内存区. next()与nextLine()读取字符串 next(): 一定要读取到有效字符后才可以结束输入. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉. next()不

java经典程序编程知识(二)

static修饰的属性和方法在类初始化时加载,非静态属性和方法在对象初始化时加载. "\n"表示换行 一个数能表示成某个数的平方的形式,则称这个数为完全平方数.完全平方数是非负数. [程序12] 题目:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%:20万到40万之间时,高于20万元的部分,可提成5%:40万到60万之间时高于40万元的部分,可提成3%:6

java经典程序编程知识(三)

Java中int.String的类型转换 int->String 加上"" Integer.toString() String->int Integer.parseInt(); String[] str=scanner.nextLine().split(" ");//是字符串数组而不是字符数组 总结: length--数组的属性: length()--String的方法: size()--集合的方法: nums2=nums1;//数组之间赋值,只是改变了