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

Ansys Workbench 有限元分析虽然进入UI阶段,但是语言命令仍然是其基础核心。

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        !划分网格
求解:
... ...
后处理:
... ... 
未完待续

ANSYS经典APDL编程的更多相关文章

  1. 【转载】ANSYS的APDL与C语言混合编程(实例)

    原文地址:http://www.cnblogs.com/lyq105/archive/2010/05/04/1727557.html 本文讨论的不是利用C语言为ANSYS写扩展(或者说是用户子程序), ...

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

    http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...

  3. TCP/IP的经典网络编程

                                                                             TCP/IP网络编程之四书五经             ...

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

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  5. 数据结构编程实验——chapter10-应用经典二叉树编程

    二叉树不仅结构简单.节省内存,更重要是是这种结构有利于对数据的二分处理.之前我们提过,在二叉树的基础上能够派生很多经典的数据结构,也是下面我们将进行讨论的知识点: (1)   提高数据查找效率的二叉排 ...

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

    一.NET框架 ADO.NET微软提供的一组类库,可以帮助程序员和数据库交互. CLS(公共语言规范) CTS(通用语言类型) 类库: 可以看成一个承载了N个类的容器. 类库和命名空间: 一个类库对应 ...

  7. java经典50编程题

    菲波拉契数列:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? package com.day2; public ...

  8. 经典面试编程题--atoi()函数的实现(就是模拟手算,核心代码就一句total = 10 * total + (c - '0'); 但是要注意正负号、溢出等问题)

    一.功能简介 把一个字符串转换成整数 二.linux c库函数实现 /*** *long atol(char *nptr) - Convert string to long * *Purpose: * ...

  9. ANSYS布尔运算APDL

    目录 1.交运算 2.加运算 3.减运算 4.分割 5. 搭接 6. 互分 6.粘结 1.交运算 交运算的结果是由每个初始图元的共同部分,形成一个新的图元. 命令 功能 备注 LINL 线与线的交 A ...

随机推荐

  1. jQuery中的Ajax几种请求方法

    在网上查的几种Ajax的请求的方法: jQuery 确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯.废话少说,直接进入正题,我 ...

  2. asdddddddddddddddd

    <a href="www.baidu.com">sad</a>

  3. linux 下调试 汇编

    gcc: -c 编译后汇编,不连接 -S 编译后停止,不进行汇编 -o 编译,汇编,连接 -g 生成调试信息 -gstabs 标识符 main gdb break *标识符 :设置断点 info re ...

  4. [原创]cocos2d-x研习录-第三阶 特性之物理引擎

    游戏物理引擎是指在游戏中涉及物理现象的逻辑处理,它用于模拟现实世界的各种物理规律(如赛车碰撞.子弹飞行.物体掉落等),让玩家能够在游戏中有真实的体验. Cocos2D-x中支持Box2D和Chipmu ...

  5. elasticsearch 5.1 问题 ubuntu

    1.can not run elasticsearch as root 切换到非root用户 2.main ERROR Could not register mbeans java.security. ...

  6. kali 初始化

    关于kali使用前的一些配置,网上有很多版本,但是几乎都很雷同,或者是不全,或者是根本就没有测试过,或者是有的方法是错的(换句话说是版本变化的差异),因此让很多人接触kali时百度无数,效果一般,浪费 ...

  7. logstash无法使用conf启动

    最近刚开始学习使用logstash,再安装好后准备验证下第一个demo的时候,出现了问题 Error: Expected one of #, input, filter, output at line ...

  8. Linux--02软件安装、防火墙设置

    防火墙设置: With RHEL / CentOS , firewalld was introduced to manage iptables. IMHO, firewalld is more sui ...

  9. web前端响应式

    一.响应式概述: 不仅仅是通过屏幕尺寸来动态改变页面容器的宽度等,完整的响应式网站的实现需要考虑到这些问题:响应式布局.响应式html和css.响应式媒体.响应式javascript. 二.移动端布局 ...

  10. Intellij IDEA +MAVEN+Jetty实现SpringMVC简单查询功能

    利用 Intellij IDEA +MAVEN+Jetty实现SpringMVC读取数据库数据并显示在页面上的简单功能 1 新建maven项目,配置pom.xml <project xmlns= ...