当前位置:文档之家› 附代码基于C++的ansys二次开发

附代码基于C++的ansys二次开发

附代码基于C++的ansys二次开发
附代码基于C++的ansys二次开发

ansys二次开发

1 概述

ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。该软件具有如下特点:(1) 完备的前处理功能

ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。

(2) 强大的求解器

ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。提供的多种求解器分别适用于不同的问题及不同的硬件配置。

(3) 方便的后处理器

ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。

(4) 多种实用的二次开发工具

ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。

鉴于上述特点,近几年来,ANSYS软件在国内外工程建设和科学研究中得到了广泛的应用。但这些应用大多局限于直接运用ANSYS软件进行实际工程分析,对利用ANSYS提供的二次开发工具进行有限元软件设计却很少涉及。本文首次利用ANSYS软件的二次开发功能,以VC++6.0为工具,运用APDL语言,对ANSYS进行二次开发,编制框筒结构-桩筏基础-土相互作用体系与地震反应分析程序。

2 程序设计目标

针对某一实际工程问题,ANSYS所提供的APDL语言可对ANSYS软件进行封装。APDL语言即ANSYS软件提供的参数化设计语言,它的全称是ANSYS Parametric

Design Language。使用APDL语言可以更加有效地进行分析计算,可以轻松地进行自动化工作(循环、分支、宏等结构),而且,它是一种高效的参数化建模手段。使用APDL语言进行封装的系统可以只要求操作人员输入前处理参数,然后自动运行ANSYS进行求解。但完全用APDL编写的宏还存在弱点。比如用APDL 语言较难控制程序的进程,虽然它提供了循环语句和条件判断语句,但总的来说还是难以用来编写结构清晰的程序。它虽然提供了参数的界面输入,但功能还不是太强,交互性不够流畅。针对这种情况,本文用VC++6.0开发框筒结构-桩筏基础-土相互作用有限元分析程序(简称LWS程序)。

本程序设计目标是利用VC++6.0对ANSYS进行封装。用VC++6.0对ANSYS模拟框筒结构-桩筏基础-土相互作用进行二次开发,用户只需输入诸如地震波、计算时间步长、阻尼比等物理性能参数等,系统就能自动调用ANSYS计算程序,自动进行网格划分、地震动加载以及自动求解。该系统由于前台开发友好、方便、易用的人机交互界面,对复杂的、难于理解和掌握的ANSYS命令流进行后台封装,因此,程序设计可让即使从未认真学习过ANSYS软件的工程设计人员也能很好地借助本系统进行结构抗震性能有限元分析,具有较强的处理实际问题能力。

用户输入计算参数,即可调用后台的ANSYS命令进行计算,ANSYS把计算结果返回给用户,进行后处理。

程序设计的主要原则和功能如下:

(1)方便原则,即程序模块应具有良好的用户界面和易用性。程序前台设计采用Windows提供的标准图形用户界面(GUI),用户无须接受专门训练即可使用。同时,程序应具有良好的容错和纠错能力,避免用户操作不当造成损失。

(2)程序系统能够提供用户以下功能:

①允许用户可以根据实际计算工况,输入特定的计算参数,包括地震波选择、计算时间步长、地震波调幅与否等。

②用户在输入各种参数以后、进行计算之前可以对输入的数据进行修改、添加和删除操作,以保证输入正确的参数。

③用户通过界面调用后台的ANSYS命令流进行计算,能够得到最后的计算结果文件,供用户进行后处理和结果分析。

④用户可以添加新的功能或新的二次开发以实现程序升级。

(3)程序应具有良好的可移植性,不依赖于特定的硬件设备,只要能安装ANSYS 和VC++6.0的硬件环境都能使用本系统,保证程序使用的广泛性。

(4)程序代码应具有开放性和可重用性。这样,在进一步的设计中,能保证设计者可以方便地对代码进行修改扩充;同时,提供一定的设计接口,新的设计者可以根据接口,无须对程序进行大幅度的修改,就可以进行新的开发,以适应新的特殊要求。

程序的开发平台是Microsoft VC++6.0、ANSYS6.1,基于WindowsXP编程。程序实现是利用微软提供的Windows编程接口MFC和ANSYS公司的

ANSYS/Multiphysics产品,采用面向对象的程序设计方法。

3程序的主要模块和设计

如图3-2所示,程序的主要模块有:用户界面模块、ANSYS计算模块、VC调用接口模块和VC后处理模块,分别论述如下:

3.1 ANSYS模块

ANSYS为了满足用户的特殊需求,建立了开放的体系结构,提供了二次开发接口

APDL、UIDL和UPFs(User Programming Features,用户编程特性)等。其中,ANSYS接口允许用户将自己的VC代码连到ANSYS中去,或将ANSYS作为子程序调用,从而使ANSYS具备特殊的功能。

本文的ANSYS模块是使用APDL语言进行二次开发的。在上面的二次开发中用到了参数化设计方法。参数是APDL的变量(它们更象FORTRAN变量,而不像FORTRAN 参数),不必明确声明参数类型,所有数值变量都以双精度数存储。被使用但未声明的参数都被赋予接近0的“极小值”。在二次开发中使用参数化设计方法,增强了程序的易读性和可移植性。用户无须了解程序的具体结构只需改变参数值就可自动调用ANSYS模块。

3.2 VC调用模块

VC调用模块在该系统中起着接受用户界面的输入、创建进程调用ANSYS模块进行计算的重要作用。有两项工作是在实现在VC程序中调用ANSYS必须做的,一是要使接口程序能够修改ANSYSB的命令流文件路径及文件名称,这可通过注册表编程实现;二是要能在接口程序中运行ANSYSB应用程序,这涉及到创建进程的编程,下面分别介绍它们的具体实现。

1. 注册表编程

在Windows(98/NT/2000/XP)系统上运行ANSYS安装程序后,便在Windows系统的注册表里记录了一些信息,如初始工作路径,文件名等。利用VC平台调用ANSYS 计算模块的程序必须指定ANSYS软件的运行目录以及用APDL语言开发的ANSYS 模块程序路径,这样,ANSYS软件的批处理程序才能从给定的路径下读取命令流文件。在接口程序中修改这些注册表信息,可以使用Windows提供的注册表编辑API(Application Programming Interface)函数[30,31],具体实现如下:HKEY hSubKey; // 定义子键

LONG lRet;

char RegPath[200]="SoftWare\\ANSYS, Inc.\\ANSYS\\ANSYS 6.1\\0";

lRet=RegOpenKeyEx(HKEY_CURRENT_USER,RegPath,0,KEY_ALL_ACCESS,&hSubKey ); // 打开子键

if(lRet!=ERROR_SUCCESS)return;

lRet=RegSetValueEx(hSubKey,"Extension",0,REG_SZ,(LPBYTE)"txt",3); //设置ANSYS批处理程序读取的文件扩展名

if(lRet!=ERROR_SUCCESS)return;

lRet=RegSetValueEx(hSubKey,"Jobname",0,REG_SZ,(LPBYTE)"ZHY");

//指定ANSYS模块文件名

if(lRet!=ERROR_SUCCESS)return;

lRet=RegSetValueEx(hSubKey,"WorkingDirectory",0,REG_SZ,(LPBYTE)"E:\\L WS\\Workspace ",16);

if(lRet!=ERROR_SUCCESS)return; // 键值出错返回

RegCloseKey(hSubKey); // 关闭子键

通过以上的设置后运行ANSYS批处理程序,界面变成如图3-3所示。

从图中可看出ANSYS模块工作路径E:\\LWS\\Workspace、初始文件名ZHY、ANSYS 程序文件名ZHY.txt文件、计算结果输出文件名ZHY.out都已经自动出现在ANSYS批处理程序的输入框,往下ANSYS就可以自动从ZHY.txt读取命令流进行计算并将结果输出到ZHY.out文件中。若想改ANSYS模块路径或文件名只需对上面程序稍加修改即可。

2. 多进程编程

本文在VC平台上对ANSYS进行封装,希望前台处理系统和用户的交互,而后台进行ANSYS的计算。这就要求系统具有并发性,为此,引入多进程编程机制。进程是一个正在运行程序的实例,它具有动态性、并发性、独立性、异步性和结构性等特点。系统中的进程动态产生与消亡,多个进程并发运行,分别执行各自对应的程序段,为各自的目标而工作。一个程序可以包含多个进程。

图3-3 ANSYS批处理运行界面

在VC++6.0中可以利用CreateProcess函数来创建一个进程去执行其他程序,而且可以设置该进程的优先级。CreateProcess函数的原型是:

BOOL CreateProcess(

LPCTSTR lpAppliciatonName

LPTSTR lpCommandLine

LPSECURITY_ATTRIBUTES lpProcessAttributes

LPSECURITY_ATTRIBUTES lpThreadAttributes

BOOL bInheritHandles

DWORD dwCreationFlags

LPVOID lpEnvironment

LPCTSTR lpCurrentDirectory

LPSTARTUPINFO lpStartupInfo

LPPROCESS_INFORMATION lpProcessInformation

);

当系统调用CreateProcess时,会创建一个进程内核对象,其初始使用计数是1。该进程内核对象不是进程本身,而是操作系统管理进程时使用的一个较小的数据结构。然后,系统为新进程创建一个虚拟地址空间,并将可执行文件或任何必要的DLL文件的代码和数据加载到该进程的地址空间中。接着,系统为新进程的主线程创建一个线程内核对象(其使用计数为1)。与进程内核对象一样,线程内核对象也是操作系统用来管理线程的小型数据结构。通过执行C/C++运行期启动代码,该主线程便开始运行,它最终调用WinMain、wWinMain、main或wmain

函数。如果系统成功创建了新进程和主线程,CreateProcess便返回True。PszApplicationName和pszCommandLine参数分别用于设定新进程将要使用的可执行文件的名字和传递给新进程的命令行字符串。PszApplicationName的参数可以是NULL,表示系统将使用全路径来查看可执行文件,并且不再搜索这些目录;如果参数不是NULL可以将地址传递给pszApplicationName参数中包含可运行的文件的名字字符串。当系统找到了可执行文件后,就创建一个新进程,并将可执行文件的代码和数据映射到新进程的地址空间中。

PsaProcess和psaThread参数分别设定进程对象和线程对象需要的安全性。可以为这些参数传递NULL,这种情况下,系统为这些对象赋予默认安全性描述符;也可以指定两个SECURITY_ATTRIBUTES结构,并对它们进行初始化,以便创建自己的安全性权限,并将它们赋予进程对象和线程对象。将SECRURITY_ATTRIBUTES 结构用于psaProcess和psaThread参数的另一个原因是,父进程将来生成的任何子进程都可以继承这两个对象句柄中的任何一个。本程序除了创键调用ANSYS 计算模块的进程外,无需再创建其它进程,因而,psaProcess和psaThread参数都为NULL。同理,binheritHandles参数为FALSE。

fdwCreate参数用于标识标志,以便用于规定如何来创建新进程,fdwCreate参数也可以用来设定优先级类,不过对于大多数应用程序来说不应该这样做,因为系统会为新进程赋予一个默认优先级。

PszCurDir参数允许父进程设置子进程的当前驱动器和目录。如果本参数为NULL,则新进程的工作目录将与生成新进程的应用程序的目录相同;若不为空,则必须指向包含需要的工作驱动器和工作目录的以0结尾的字符串。课题中该参数选择为NULL就可以了。

PsiStartInfo参数用于指向一个STARTUPINFO结构。当Windows创建新进程时,它将使用该结构的有关成员。大多数应用程序将要求生成的应用程序仅仅使用默认值。至少应该将该结构中的所有成员初始化为零,然后将cb(cb为STARTUPINFO 结构成员)设置为该结构的大小。STARTUPINFO结构的其他具体成员参见VC++6.0帮助系统MSDN。

PpiProcInfo参数用于指向你必须指定的PROCESS_INFORMATION结构。CreateProcess在返回之前要对该结构的成员进行初始化。该结构的形式如下面所示:

Typedef struct _PROCESS_INFORMATION{

HANDLE hProcess;

HANDLE hThread;

DWORD dwProcessId;

DWORD dwThreadId;

}PROCESS_INFORMATION;

CreateProcess在返回之前打开进程对象和线程对象,并将每个对象的与进程相关的句柄放入PROCESS_INFORMATION结构的hProcess和hThread成员中。

综上所述,课题创建进程的关键程序如下:

STARTUPINFO StartupInfo;

PROCESS_INFORMATION ProcessInfo;

memset(&StartupInfo,0,sizeof(STARTUPINFO)); //分配内存

StartupInfo.cb=sizeof(STARTUPINFO); // 初始化

StartupInfo.dwFlags=STARTF_USESHOWWINDOW;

StartupInfo.wShowWindow=SW_SHOWMAXIMIZED;

if(!::CreateProcess(NULL,d:\\ProgramFiles\\Ansys

Inc\\ANSYS61\\bin\\intel\\AnsysB”,NULL,NULL,FALS

E,0,NULL,NULL,&StartupInfo,&ProcessInfo))

{

AfxMessageBox("error!");

GetLastError();

} // 创建进程

3. 进程的终止

要终止进程的运行可以使用如下四种方法:①主线程的进入点函数返回;②进程中的一个线程调用ExitProcess函数;③另一个进程中的线程调用TerminateProcess函数;④所有进程中的线程自动终止运行(这种情况一般不会发生)。本文采用第一种方法终止所创建的进程,即当ANSYS计算结束时通过函数返回。

在WindowsXP系统中,如果ANSYS批处理程序运行完后,窗口标题会显示“ANSYS

已完成”。本文程序开发便可通过这一特点来终止系统所创建的进程。当ANSYS 计算模块运行完毕后,系统会弹出一个消息框提示ANSYS已计算完毕,可以进行后处理了。

3.3.3 用户界面接口模块

用户界面模块主要完成系统和用户的交互。用户界面模块包括计算参数输入和程序调用两部分。计算参数输入部分的主要功能是负责输入诸如地震波数据、是否调幅、时间步长等。计算输入是由对话框构成。计算参数输入对话框界面如下:

图3-4 计算参数输入界面

程序对各参数的输入范围都进行了设定,如果用户输入的参数超过了这一设定,系统就会弹出对话框以提醒用户输入错误,需要重新输入。ANSYS程序调用通过菜单方式进行。该菜单首先不处于激活状态,而是当三维数值模拟所需参数输入完成后才得到消息激活菜单。这样设计的优点:能够提醒用户输入并检查用于三维数值模拟的相关参数,避免用户在不输入参数的情况下直接调用ANSYS进行计算而造成错误。

程序设计采用文档读写的方式将输入的计算参数插入到用APDL语言进行二次开发的ANSYS计算模块。参数化设计的ANSYS计算模块就可以根据输入的参数进行数值模拟计算。

3.3.4 ANSYS后处理模块的二次开发

ANSYS软件提供了两个后处理器,可以对结果进行时间-历程后处理

和通用后处理。对于相互作用体系地震反应分析,它可以将模拟结果用应力图、等值线(面)、动画等形式输出与转换。其中POST1通用后处理器可用于观察整个模型或模型的一部分在某一时间的模拟结果,可显示结构在地震作用下的应力图和位移变形图;时间—历程后处理器POST26用于检查模型中指定点的分析结果与时间的函数关系,可显示模型上各个节点的各变量的时程曲线。可见,对于大多数的后处理分析我们可以直接使用ANSYS的后处理器。但由于ANSYS是一个通用软件,而对某些特殊领域的后处理分析无能为力或者不是很方便,因而,需要对其进行二次开发,以减轻后处理工作和提高后处理效率。

在相互作用体系地震反应分析中,有时除了关注各物理量时程曲线外,还关心其在结构高度方向的分布(如层间位移、层间剪力、层间加速度反应等)。解决这一问题的二次开发需要结合相互作用体系地震反应分析特点进行。

(1)物理量分析

在地震反应时程分析中,我们对楼层位移时程、加速度时程、柱应力应变时程、剪力墙应力应变时程比较关心,同时还需要分析层间位移和层间加速度变化。考虑到本文将计算多种工况,本程序对常见的变量编写了后处理程序,具有通用性,极大地提高了后处理效率。

(2) 程序实现

基于上面分析,本程序是通过接口程序调用ANSYS,读入编写的后处理命令流,读取ANSYS计算的结果数据库,生成各变量的结果文件,然后用本程序的后处理模块进行读数绘图处理,进而生成结果图形。这一过程采用VC编程实现的,VC 编程的算法流程图如图3-2的后处理模块。(转贴)

基于ANSYS的二次开发技术的实现方法

第24卷第5期辽宁工学院学报V o l.24 N o.5 2004年10月JOU RNAL O F L I AON I N G I N ST ITU T E O F T ECHNOLO GY O ct.2004① 基于AN SYS的二次开发技术的实现方法 吴 鹏1,曾 红1,韩 迈2 (1.辽宁工学院,辽宁锦州 121001;2.鞍山广播电视大学,辽宁鞍山 114000) 摘 要:基于大型通用有限元分析软件AN SYS8.0环境,对AN SYS二次开发技术进行了探讨,并对AN SYS 三种开发工具进行了详细的介绍。论述了采用二次开发方法设计产品的必要性和重要性,证实了以AN SYS为平台开发专业模块的可行性,提高了工作效率,缩短了产品的开发研制周期。 关键词:AN SYS;二次开发;A PDL;U I DL;U PF s 中图分类号:T P391.72 文献标识码:B 文章编号:100521090(2004)0520025205 Realization of Secondary D evelop m en t of Technology Based on ANS Y S W U Peng1,ZEN G Hong1,HAN M ai2 (1.L iaoning Institute of T echno logy,J inzhou121001,Ch ina;2.A nshan R adi o&TV U niversity,A nshan114000,Ch ina) Key words:AN SYS;Secondary developm en t;A PDL;U I DL;U PF s Abstract:T he m ethod of secondary developm en t of techno logy on the basis of large-scale fin ite elem en t analysis softw are—AN SYS is described and app roached,w h ich details th ree k inds of de2 velop ing too ls of AN SYS.It dem on strates the necessity and i m po rtance of the m ethod of sec2 ondary developm en t of techno logy.T he feasib ility of develop ing p rofessi onal m odu le on the AN2 SYS p latfo r m is verified,w o rk ing efficiency i m p roved,and the developm en t cycle of the p roducts sho rtened. 从20世纪70年代以来,随着计算技术的飞速发展,结构分析有了很大的突破,国外相继出现了许多大型通用有限元分析程序,如AN SYS, ABAQU S,M A RC和M SC NA STRAN等,这些程序具有良好的界面、方便的前后处理和强大的计算分析功能以及开放的二次开发系统。 AN SYS软件是融热、电、磁、流体、结构、声学于一体的大型通用有限元分析软件。具有强大的求解器和前、后处理功能,为解决复杂、庞大的工程项目提供了一个强有力的工具。然而,正是由于AN2 SYS的通用性特点,使其对不同行业的专业性模块的分析不具有针对性,复杂的英文界面和繁琐的分析步骤都给从事有限元分析的技术人员造成了很大的障碍。另外,虽然AN SYS有较强大的前、后处理功能,但使用者必须具有较高的相关力学知识和丰富的分析经验,在几何建模简化和力学建模等前处理方面需要花费很多时间和精力。因此,基于这些不便因素,在熟练应用AN SYS软件的基础上,结合具体各行业的实践经验,利用AN SYS内部提供的二次开发工具,用户可在AN SYS系统中开发出具有中文界面的、特定功能的专用模块,可以有效地提高设计的效率和质量,充分体现了专业化、用户化、便 ①收稿日期:2004206228 基金项目:辽宁省教育厅科研资助项目(20032086)作者简介:吴鹏(19792),男,辽宁盘锦人,硕士生。

a于ANSYS二次开发的管系结构应力分析系统

万方数据

第3期张庆峰等:基于ANSYS二次开发的管系结构应力分析系统—-79—.大,计算结果可靠。但它要求使用者具有一定的有限元知识背简单。 景,并同时具有较强专业知识水平、较强的结构分析能力和扎实 的英语基础。鉴于上述特点,使其对压力管系的有限元分析不 具有针对性。复杂的英文界面和繁琐的分析步骤都给从事压力 管系有限元分析的技术人员造成了很大的障碍。因此,基于这 些不便因素,为适用不同层次的用户使用,利用ANSYS内部提 供的二次开发工具。把ANSYS作为结构分析工具,建立了特别 适用于结构应力分析的中文界面环境、菜单和工具杆的管系结 构分析系统模块。此模块以向导的方式来进行每一步骤,各步 骤附有帮助文件,充分体现了专业化、用户化、便捷化的特点。 如图1所示。 图3管系图 图1绘制管系图 4应用实例 利用在役压力管道系统的应力分析模块对某厂核反应器再循环装置管线进行应力分析,如图2所示。 图2核反应器再循环装置回路管线图 4.1核反应器再循环装置回路管线概况 下面是一个应用该软件对在役核压力回路管线进行应力结构分析的简例。如图3所示,假定核反应器再循环装置的回路管线中发现了二处裂纹。这些裂纹可能是由于在生产或制造过程没有操作经验或某种晶间应力腐蚀所引起的。这两个裂纹,①和②,存在于旁路与核反应再循环装置回路管线主管路相连的焊接部位,它们可认为是复合缺陷。旁路管线的内径是282mm,主管路的内径是450ram,厚度是31.76mm。这些管路和弯管是SA333GR6型材料,弹性模量是188GPa。 4.2管系的结构分析 借助ANSYS的二次开发功能,在开发“含缺陷压力管系风险分析系统”时。在结构应力分析模块中,选择了国际著名的ANSYS有限元分析软件作为结构应力分析工具,并为适用不同层次的用户的需要,针对ANSYS的管路系统模块的特征,对ANSYS进行了二次开发,建立了专用程序的同时建立起对应的图形驱动界面,使得前处理建模、计算和后处理操作等变得十分 图4管系应力分布云图 5结论 通过开发以ANSYS为平台的管系应力分析系统,证实了运用ANSYS内部提供的APDL语言和UIDL语言进行开发专业模块的可行性,并且达到了界面简洁、易操作的预期功能。 利用建立在ANSYS二次开发基础上强大的管道结构应力分析模块,可以在制定管道的检修计划时,方便地确定出管道高度应集中部位,有针对性地选择焊缝并进行射线探伤,使管线的安全状况分析更加准确。有针对性地选择焊缝并进行射线探伤,使得管道的安全状况分析更为准确。同时,也可以利用该系统为分析工具,制定出旨在降低失效风险的管道结构改进措施,优化管道结构。以较低的成本提高管道的完整性水平。 因此,该系统的推广应用,对提高企业的压力管道管理水平,保障安全生产和技术进步具有重要意义。 参考文献 1ANSYSAPDLProgrammer’sGuideRelease5.5.ANSYS。Ine. 2TheUIDLProgrammer’sGuideRelease5.5.ANSYS.Ine. 3谢禹钧,蔺永诚,等.含缺陷压力关系失效风险分析系统(I)【J】.石油化工设备,2002,31(4):4—6. 4谢禹钧,蔺永诚等.含缺陷压力关系失效风险分析系统(n)【J】.石油化工设备,2002,31(5):4~6. 5程进,江见鲸等.基于ANSYS的程序界面设计及应用。四川建筑科学研究。2002,28. 6沈士明,在役压力管道安全评定研究的现状与发展。中国机械工程。 1997.8. 7APDL参数化有限元分析技术及其应用实例,中国水利水电出版社, 2003. 万方数据

C语言程序设计 入门源代码代码集合

#include <> void print_star(void) { printf("*****************\n"); } void print_welcome(void) { printf("C language,welcome!\n"); } void main() { print_star(); print_welcome(); print_star(); getchar(); } 演示2 #include "" int sum(int i,int j) { return(i + j); } void main() { int n1,n2; printf("input 2 numbers:\n"); scanf("%d%d",&n1,&n2); printf("the sum = %d\n",sum(n1,n2)); getchar(); } 演示3 #include "" int maxnum(int,int,int); main() { int a,b,c; printf("Please enter 3 numbers:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("Maxnum is %d\n",maxnum(a,b,c));

} int maxnum(int x,int y,int z) { int max=x; if(y>max) max = y; if(z>max) max = z; return max; } 演示4 #include <> int s1(int n) { int j,s; s=0; for(j=1;j<=n;j++) s=s+j; return s; } int sum(int n) { int i,s=0; for(i=1;i<=n;i++) s=s+s1(i); return s; } void main() { int n; printf("n:"); scanf("%d",&n); printf("s=%d\n",sum(n)); } 演示5

ANSYS的二次开发技术

ANSYS的二次开发技术 ANSYS 的二次开发技术 ANSYS 提供的二次开发工具有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface Design Language,UIDL)以及用户可编程特性(User Programmable Features,UPFs)。其中,前两种可归类为标准使用特性,后一种为非标准使用特性。 ANSYS 参数化设计语言(APDL)APDL 扩展了传统有限元分析范围之外的能力,提供了建立标准化零件库、序列化分析、设计修改、设计优化以及更高级 的数据分析处理能力,包括灵敏度研究等。ANSYS 用户可编程特性(UPFs)利 用UPFs,用户可以开发下列方面的功能程序:(1) 开发用户子程序实现从ANSYS 数据库中提取数据或将数据写入ANSYS 数据库。该种子程序可以编译 连接到ANSYS 中,此时ANSYS 提供了10 个数据库操作命令;如果作为外部 命令处理,可以在ANSYS 的任何模块中运行;(2) 利用ANSYS 提供的子程序 定义各种类型的载荷,其中包括BF 或BFE 载荷、压力载荷、对流载荷、热通 量和电荷密度等;(3) 利用ANSYS 提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;(4) 利用ANSYS 提供 的子程序定义新单元和调整节点方向矩阵,ANSYS 最多可以有6 个独立的新 单元USER100-USER105;( 5) 利用ANSYS 提供的子程序修改或控制ANSYS 单元库中的单元;(6) 利用UEROP 创建用户优化程序,可以用自己的算法和 中断准则替换ANSYS 优化过程。(7) ANSYS 程序作为子程序在用户程序中调用,如用户自定义的优化算法。ANSYS 软件本身是通过FORTRAN 和C 语言 开发的。使用UPFs 进行二次开发,在安装ANSYS 的基础上,还需要Compaq Visual FORTRAN 和MS Visual C++的支持。

有限元ansys静力分析的一个小例子

有限元 学院:机电学院 专业: 姓名: 学号:

一、问题描述 如图所示的平面,板厚为0.01m,左端固定,右端作用50kg的均布载荷,对其进行静力分析。弹性模量为210GPa,泊松比为0.25. 二、分析步骤 1.启动ansys,进入ansys界面。 2.定义工作文件名 进入ANSYS/Multiphsics的的程序界面后,单击Utility Menu菜单下File中Change Jobname的按钮,会弹出Change Jobname对话框,输入gangban为工作文件名,点击ok。 3.定义分析标题 选择菜单File-Change Title在弹出的对话框中,输入Plane Model作为分析标题,单击ok。 4.重新显示 选择菜单Plot-Replot单击该按钮后,所命令的分析标题工作文件名出现在ANSYS 中。 5.选择分析类型 在弹出的对话框中,选择分析类型,由于此例属于结构分析,选择菜单Main Menu:Preferences,故选择Structural这一项,单击ok。 6.定义单元类型 选择菜单Main Menu-Preprocessor-Element Type-Add/Edit/Delete单击弹出对话框中的Add按钮,弹出单元库对话框,在材料的单元库中选Plane82单元。即在左侧的窗口中选取Solid单元,在右侧选择8节点的82单元。然后单击ok。 7.选择分析类型 定义完单元类型后,Element Type对话框中的Option按钮被激活,单击后弹出一个对话框,在Elenment behavior中选择Plane strs w/ thk,在Extra Element output 中,选择Nodal stress,单击close,关闭单元类型对话框。 8.定义实常数 选择菜单Main Menu-Preprocessor-Real Constants Add/Edit/Delete执行该命令后,在弹出Real Constants对话框中单击Add按钮,确认单元无误后,单击ok,弹出Real Constants Set Number 1,for Plane 82对话框,在thickness后面输入板的厚度0.01单击ok,单击close。 9.定义力学参数 选择菜单Main Menu-Preprocessor-Material Props-Material Model 在弹出的对

ansys二次开发及实例

ansys二次开发教程+实例 第3章ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现 3.1 概述 ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的 一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能 支持分布式并行及共享内存式并行。该软件具有如下特点: (1) 完备的前处理功能 ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有 限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边 界条件,完成ANSYS中的初步建模工作。此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出 反映实际结构的仿真计算模型。 (2) 强大的求解器 ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。除了常规的线性、 非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。提供的多种求解器分别适用于 不同的问题及不同的硬件配置。 (3) 方便的后处理器 ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。 (4) 多种实用的二次开发工具 ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interf ace Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户 不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服 准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。 鉴于上述特点,近几年来,ANSYS软件在国内外工程建设和科学研究中得到了广泛的应用。但这些应用大多局限于直接运用ANSYS软件进行实际工程分析,对利用ANSYS提供的二次开发工具进行有限元软件设计却很少涉及。本文首次利用ANSYS软件的二次开发功能,以VC++6.0为工具,运用APDL语言,对ANSYS进行二次开发,编制框筒结构-桩筏基础-土相互作用体系与地震反应分析程序。 3.2 程序设计目标 针对某一实际工程问题,ANSYS所提供的APDL语言可对ANSYS软件进行封装。APDL语言即ANSYS软件提供的参数化设计 语言,它的全称是ANSYS Parametric Design Language。使用APD L语言可以更加有效地进行分析计算,可以轻松地进行自动化工作(循环、分支、宏等结构),而且,它是一种高效的参数化建模手段。使用APDL语言进行封装的系统可以只要求操作人员输入前处理 参数,然后自动运行ANSYS进行求解。但完全用APDL编写的宏还存在弱点。比如用APDL语言较难控制程序的进程,虽然它提供了 循环语句和条件判断语句,但总的来说还是难以用来编写结构清晰的程序。它虽然提供了参数的界面输入,但功能还不是太强,交互性 不够流畅。针对这种情况,本文用VC++6.0开发框筒结构-桩筏基础-土相互作用有限元分析程序(简称LW S程序)。

C语言入门-基本运算源代码

一、一到一百求和 #include main() { inti,sum; for(i=1,sum=0;i<=100;sum+=i++); printf("1+2+……+100=%d",sum); } 如果求偶数和,则变成:for(i=2,sum=0;I<=100;sum=sum+i,i+=2); 已知循环次数有for循环比较方便,循环次数未知用do while或while比较方便。 二、计算三角形面积 #include #include main() { float a,b,c,s,area; printf("请输入三角形的三边:\n"); scanf("%f%f%f",&a,&b,&c); while(c>a+b||a>c+b||b>a+c) { printf("所输入数据组不成三角形\n"); printf("请再次输入三角形的三边:\n"); scanf("%f%f%f",&a,&b,&c); } { s=(a+b+c)/2.; area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%5.2f,b=%5.2f,c=%5.2f,s=%7.2f \n",a,b,c,s); printf("area=%7.2f\n",area); } } 三、解一元二次方程 #include #include main() { float a,b,c,dt,p,q,x1,x2; printf("请以此输入一元二次方程系数a,b,c\n"); scanf("%f%f%f",&a,&b,&c); dt=b*b-4*a*c; if(dt>=0) { p=-b/(2*a); q=sqrt(dt)/(2*a); x1=p+q; x2=p-q; printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2); } else printf("方程无解"); } 四一箭穿心图案 main() { printf("\n"); printf(" * * * *\n"); printf(" * * * *\n"); printf(" * * *\n"); printf(" >>>------I LOVE YOU !------->\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" *\n"); } 五、得出字符ASCII码 #include main() {char c; printf("请输入一个字符:\n"); scanf("%c",&c); printf("字符是:%c,它的ASCII码是:%d\n",c,c); 六、破解密码 #include #define PASSWORD 154533 main() { inti; for (i=1;i<=999999;i++) {

ANSYS模拟大体积混凝土浇筑过程的参数分析_赵英菊

1.ANSYS分析的原理和步骤 ANSYS的热分析[1]包括稳态和瞬态两种,如果系统的温度场与时间无关,则称该系统处于稳定的热状态,简称稳态;如果系统的温度场随时间发生变化,则称系统处于瞬态。显然,大体积混凝土的浇筑过程属于瞬态分析,也属于非线性分析。 我们不仅要进行混凝土温度场的模拟还要进行应力场的模拟,所以要用到ANSYS中耦合分析,ANSYS提供了两种分析耦合场的方法:直接耦合与间接耦合。 直接耦合法的耦合单元包含所有必须的自由度,仅仅通过一次求解就能得出耦合场分析结果;间接耦合法是以特定的顺序求解单个物理场的模型,通过把第一次场分析的结果作为第二次场分析的载荷来实现两种场的耦合。如我们用到的热-应力耦合分析就是将热分析得到的节点温度作为载荷施加在后序的应力分析中来实现耦合的。基本步骤如下: 第一步:进行热分析,可选择SOLID70单元; 第二步:重新进入前处理器,转换单元类型;将热单元转换为相应的结构单元,原来的SOLID70单元将自动转换为SOLID45单元,其对应的命令是ETCHG,TTS。 第三步:设置结构分析中的材料属性; 第四步:读入热分析结果并将其作为载荷;可采用命令LDREAD读入热分析的节点温度,或点击MainMenu>Solution>LoadApply>Temperature>FromThermalAnalysis。注意,结果文件的扩展名为*.rth。 第五步:指定参考温度;在参考温度处,热应力值为零。 第六步:求解及后处理。 2.温度场的求解 2.1三种基本传热方式 (1)热传导,遵循傅里叶定律(导热基本定律):q″=-λdT dx ,式中q″为热流密度(W/m2),λ为导热系数(W/m?℃),“-”表示热量流向温度降低的方向。 (2)热对流,用牛顿冷却方程来描述:q″=β(TS-TB),式中β为对流换热系数,TS为固体表面的温度,TB为周围流体的温度。 (3)热辐射,指物体发射电磁能,并被其它物体吸收转变为热的热量交换过程。 2.2边界条件 (1)第一类边界条件是指混凝土表面温度T是时间τ的已知函数,即 T(x,y,z,τ)=Tb(τ) (2)第二类边界条件是指混凝土表面的热流量是时间的已知函数,即 -λ$T $n =T′(τ) 式中λ—— —导热系数,W/m?℃或kJ/m?h?℃,W/m?℃=3.6kJ/m?h?℃; n—— —表面外法线方向,若表面是绝热的,有:$T $n =0。 (3)第三类边界条件假定经过混凝土表面的热流量与混凝土表面温度T和气温Ta之差成正比,即 -λ$T $n =β(T-Ta) 式中β—— —表面放热系数,也称对流系数,W/m2?℃。其数值与风速va(m/s)有密切的关系,固体表面在空气中的放热系数可用以下两式计算,单位是kJ/m2?h?℃。 粗糙表面:β=23.9+14.50va(1)光滑表面:β=21.8+13.53va(2)当有模板和保温层时,可按下式计算:β=1 ∑ δ i λ i +1 β q (3)式中δi—— —各种保温材料的厚度(m); λi—— —各种保温材料的导热系数(W/m?K),可按表1取值[2]; βq—— —空气的传热系数,可取23(W/m2?K)。 表1各种保温材料的导热系数λ值(W/m?K) (4)当两种条件不同的固体接触时,如接触良好,则在接触面上温度和热流量都是连续的,即T1=T2,λ1( !T 1 !n )=λ2(!T2 !n )。 混凝土与空气接触(包括有养护条件)的边界可按照第三类边界条件处理: NSEL,,,!选择与空气接触的表面节点 SF,ALL,CONV,β,Tair,!加载表面散热系数和环境温度 混凝土与地基或基岩的边界可以按照第四类边界条件处理,通过定义两种材料的导热系数和初始温度即可。 2.3热学参数取值基本参数较容易获得,也可参考下表: 表2材料的基本热学参数 2.3.1水化热的施加在ANSYS中,混凝土的水化热是通过生热率HGEN来施加的。顾名思义,生热率就是单位时间内混凝土的生热量,即所产生的热量对时间的导数,用表达式表示为: hgen=dQ dt (4)式中:Q—— —混凝土中产生的热量; hgen—— —混凝土生热率。 混凝土的水化热放热过程与混凝土的绝热温升过程具有一致性,若取指数经验式: ANSYS模拟大体积混凝土浇筑过程的参数分析 赵英菊王社良康宁娟 (西安建筑科技大学土木工程学院陕西西安710055) 摘要:建筑工程中的大体积混凝土结构越来越多,利用有限元程序ANSYS进行施工过程的模拟仿真可以形象地给出温度场和应力场的分布情况,同时能考虑各参数随时间的变化。时变参数的选取及其在程序中的实现是仿真分析中的重点和难点,特总结归纳,并给出解决的方法供参考。 关键词:ANSYS;混凝土;浇筑;时变参数 材料名称λ材料名称λ 木模0.23黏土砖0.43 钢模58油毡0.05 草袋0.14沥青矿棉0.09~0.12 木屑0.17沥青玻璃棉毡0.05 矿渣0.47泡沫塑料制品0.03~0.05 黏土1.38~1.47泡沫混凝土0.10 干砂0.33水0.58 湿砂1.31空气0.03 名称数值单位名称数值单位 混凝土的密度2400kg/m3混凝土的导热系数2.710W/m?℃ 土壤的密度1750kg/m3土壤的导热系数0.586W/m?℃ 混凝土的比热0.963kJ/kg?℃混凝土的线膨胀系数10×10-6℃ 土壤的比热1.005kJ/kg?℃混凝土的导温系数0.0042m2/h96

c实例源代码

【实例1-1】 using System; using System、Collections、Generic; using System、Text; namespace _ { class Program { static void Main(string[] args) { System、Console、Wriine("恭喜您,学会了C#编程!"); System、Console、ReadLine(); } } } 【实例1-2】 private void Form1_Load(object sender, EventArgs e) { this、Text="这就是一窗口!"; Label lbShow = new Label(); lbShow、Location = new Point(40,50); lbShow、AutoSize = true; lbShow、Text = "恭喜您学会编程了!"; this、Controls、Add(lbShow); int[] x, y; x = new int[5] { 1,2,3,4,5}; y = new int[5]; y = x; foreach (int a in y) { lbShow、Text += a、ToString(); } this、Controls、Add(lbShow); } 【实例2-1】 using System; using System、Windows、Forms; namespace TestEnum { public partial class TestEnum : Form { //Visual Studio 、Net自动生成得构造函数,后文示例将全部省略 public TestEnum() { Initializeponent(); } enum MyEnum { a = 101, b, c, d = 201, e, f }; //声明枚举型 private void TestEnum_Load(object sender, EventArgs e) { MyEnum x = MyEnum、f; //使用枚举型 MyEnum y = (MyEnum)202; string result ="枚举数x得值为"; result += (int)x; //将x转换为整数 result += "\n枚举数y代表枚举元素" + y; lblShow、Text = result; } }

基于VB语言的EXCEL和CST以及AutoCAD与ANSYS等的二次开发

基于VB语言的EXCEL、CST以及HFSS等的二次开发 代码1:vb创建xls表,并写入内容 Set ExcelApp = CreateObject("Excel.Application") '创建EXCEL对象Set ExcelBook = ExcelApp.Workbooks.Add Set ExcelSheet = ExcelBook.Worksheets(1) '添加工作页ExcelSheet.Activate '激活工作页 ExcelApp.DisplayAlerts = False https://www.doczj.com/doc/d210968767.html,="sheet1" ExcelSheet.Range("A1").Value = 100 '设置A1的值为100 ExcelBook.SaveAs "d:\test.xls" '保存工作表 msgbox "d:\test.xls创建成功!" ExcelBook.close set excelApp=nothing set ExcelBook=nothing set ExcelSheet=nothing 将以上代码copy到记事本存为"writexls.vbs"文件,可运行测试 代码2:读execel文件 Set ExcelApp = CreateObject("Excel.Application") '创建EXCEL对象Set ExcelBook = ExcelApp.Workbooks.open("d:\test.xls") Set ExcelSheet = ExcelBook.Worksheets(1) msgbox ExcelSheet.Range("A1").Value 将以上代码copy到记事本存为"readxls.vbs"文件,可运行测试 代码3:上述代码联合调试 Dim ExcelApp,ExcelBook,ExcelSheet Set ExcelApp = CreateObject("Excel.Application") '创建EXCEL对象Set ExcelBook = ExcelApp.Workbooks.Add Set ExcelSheet = ExcelBook.Worksheets(1) '添加工作页ExcelSheet.Activate '激活工作页 ExcelApp.DisplayAlerts = False https://www.doczj.com/doc/d210968767.html,="sheet1" ExcelSheet.Range("A1").Value = 100 '设置A1的值为100 ExcelBook.SaveAs "D:\Study\VBS\Book1.xls" '保存工作表 msgbox "d:\Book1.xls创建成功!" ExcelBook.close set excelApp=nothing set ExcelBook=nothing set ExcelSheet=nothing 'ExcelApp.WorkBooks.Close 'ExcelApp.Quit

七个ansys经典入门实例

“有限元分析及应用”课程有限元分析软件ANSYS6.xed 上机指南 清华大学机械工程系 2002年9月

说明 本《有限元分析软件ANSYS6.1ed:上机指南》由清华大学机械工程系石伟老师组织编写,由助教博士生孔劲执笔, 于2002年9月完成,基本操作指南中的所有算例都在相应的软件系统中进行了实际调试和通过。 本上机指南的版权归清华大学机械工程系所有,未经同意,任何单位和个人不得翻印。

目录 Project1 简支梁的变形分析 (1) Project2 坝体的有限元建模与受力分析 (3) Project3 受内压作用的球体的应力与变形分析 (5) Project4 受热载荷作用的厚壁圆筒的有限元建模与温度场求解 (7) Project5 超静定桁架的有限元求解 (9) Project6 超静定梁的有限元求解 (11) Project7 平板的有限元建模与变形分析 (13)

Project1 梁的有限元建模与变形分析 计算分析模型如图1-1 所示, 习题文件名: beam。 NOTE:要求选择不同形状的截面分别进行计算。 梁承受均布载荷:1.0e5 Pa 图1-1梁的计算分析模型 梁截面分别采用以下三种截面(单位:m): 矩形截面:圆截面:工字形截面: B=0.1, H=0.15 R=0.1 w1=0.1,w2=0.1,w3=0.2, t1=0.0114,t2=0.0114,t3=0.007 1.1进入ANSYS 程序→ANSYSED 6.1 →Interactive →change the working directory into yours →input Initial jobname: beam→Run 1.2设置计算类型 ANSYS Main Menu: Preferences →select Structural →OK 1.3选择单元类型 ANSYS Main Menu: Preprocessor →Element Type→Add/Edit/Delete… →Add… →select Beam 2 node 188 →OK (back to Element Types window)→Close (the Element Type window) 1.4定义材料参数 ANSYS Main Menu: Preprocessor →Material Props →Material Models →Structural→Linear→Elastic→Isotropic→input EX:2.1e11, PRXY:0.3→OK 1.5定义截面 ANSYS Main Menu: Preprocessor →Sections →Beam →Common Sectns→分别定义矩形截面、圆截面和工字形截面:矩形截面:ID=1,B=0.1,H=0.15 →Apply →圆截面:ID=2,R=0.1 →Apply →工字形截面:ID=3,w1=0.1,w2=0.1,w3=0.2,t1=0.0114,t2=0.0114,t3=0.007→OK

附代码基于C 的ANSYS二次开发

ansys二次开发 1概述 ANSYS是一套功能十分强大的有限元分析软件,能实现多场及多场耦合分析;是实现前后处理、求解及多场分析统一数据库的一体化大型FEA软件;支持异种、异构平台的网络浮动,在异种、异构平台上用户界面统一、数据文件全部兼容,强大的并行计算功能支持分布式并行及共享内存式并行。该软件具有如下特点:(1)完备的前处理功能 ANSYS不仅提供了强大的实体建模及网格划分工具,可以方便地构造数学模型,而且还专门设有用户所熟悉的一些大型通用有限元软件的数据接口(如MSC/NSSTRAN,ALGOR,ABAQUS等),并允许从这些程序中读取有限元模型数据,甚至材料特性和边界条件,完成ANSYS中的初步建模工作。此外,ANSYS还具有近200种单元类型,这些丰富的单元特性能使用户方便而准确地构建出反映实际结构的仿真计算模型。 (2)强大的求解器 ANSYS提供了对各种物理场量的分析,是目前唯一能融结构、热、电磁、流体、声学等为一体的有限元软件。除了常规的线性、非线性结构静力、动力分析外,还可以解决高度非线性结构的动力分析、结构非线性及非线性屈曲分析。提供的多种求解器分别适用于不同的问题及不同的硬件配置。 (3)方便的后处理器 ANSYS的后处理分为通用后处理模块(POST1)和时间历程后处理模块(POST26)两部分。后处理结果可能包括位移、温度、应力、应变、速度以及热流等,输出形式可以有图形显示和数据列表两种。 (4)多种实用的二次开发工具 ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。 鉴于上述特点,近几年来,ANSYS软件在国内外工程建设和科学研究中得到了广泛的应用。但这些应用大多局限于直接运用ANSYS软件进行实际工程分析,对利用ANSYS提供的二次开发工具进行有限元软件设计却很少涉及。本文首次利用ANSYS软件的二次开发功能,以VC++6.0为工具,运用APDL语言,对ANSYS进行二次开发,编制框筒结构-桩筏基础-土相互作用体系与地震反应分析程序。2程序设计目标 针对某一实际工程问题,ANSYS所提供的APDL语言可对ANSYS软件进行封装。APDL语言即ANSYS软件提供的参数化设计语言,它的全称是ANSYS Parametric

完整word版整理C语言入门经典案例及源代码

精品文档 循环控制输出图案 【程序1】 题目:输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 2.程序源代码: #include stdio.h main() { int i,j,result; printf(\ ); for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/ } printf(\ );/*每一行后换行*/ } } 【程序2】 题目:要求输出国际象棋棋盘。 1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 2.程序源代码: #include stdio.h main() { int i,j; for(i=0;i<8;i++) { for(j=0;j<8;j++) if((i+j)%2==0) printf(%c%c,219,219); else printf( ); printf(\ ); } } ============================================================== 【程序3】

题目:打印楼梯,同时在楼梯上方打印两个笑脸。 1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 2.程序源代码: #include stdio.h 精品文档. 精品文档 main() { int i,j; printf(\\1\n);/*输出两个笑脸*/ for(i=1;i<11;i++) { for(j=1;j<=i;j++) printf(%c%c,219,219); printf(\ ); } } 【程序4】 题目:打印出如下图案(菱形) * *** ****** ******** ****** *** * 1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列。 2.程序源代码: main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf( ); for(k=0;k<=2*i;k++) printf(*); printf(\ ); } for(i=0;i<=2;i++) {

ansys工程实例(4经典例子)解析

输气管道受力分析(ANSYS建模) 任务和要求: 按照输气管道的尺寸及载荷情况,要求在ANSYS中建模,完成整个静力学分析过程。求出管壁的静力场分布。要求完成问题分析、求解步骤、程序代码、结果描述和总结五部分。所给的参数如下: 材料参数:弹性模量E=200Gpa; 泊松比0.26;外径R?=0.6m;内径R?=0.4m;壁厚t=0.2m。输气管体内表面的最大冲击载荷P为1Mpa。 四.问题求解 (一).问题分析 由于管道沿长度方向的尺寸远大于管道的直径,在计算过程中忽略管道的端面效应,认为在其长度方向无应变产生,即可将该问题简化为平面应变问题,选取管道横截面建立几何模型进行求解。 (二).求解步骤 定义工作文件名 选择Utility Menu→File→Chang Jobname 出现Change Jobname对话框,在[/FILNAM] Enter new jobname 输入栏中输入工作名LEILIN10074723,并将New log and eror file 设置为YES,单击[OK]按钮关闭对话框 定义单元类型 1)选择Main Meun→Preprocessor→Element Type→Add/Edit/Delte命令,出现Element Type 对话框,单击[Add]按钮,出现Library of Element types对话框。 2)在Library of Element types复选框选择Strctural、Solid、 Quad 8node 82,在Element type reference number输入栏中出入1,单击[OK]按钮关闭该对话框。 3. 定义材料性能参数 1)单击Main Meun→Preprocessor→Material Props→Material models出现Define Material Behavion 对话框。选择依次选择Structural、Linear、Elastic、Isotropic选项,出现Linear Isotropic Material Properties For Material Number 1对话框。 2)在EX输入2e11,在Prxy输入栏中输入0.26,单击OK按钮关闭该对话框。 3)在Define Material Model Behavion 对话框中选择Material→Exit命令关闭该对话框。 4.生成几何模型、划分网格 1)选择Main Meun→Preprocessor→Modeling→Create→Areas→Circle→Partail→Annulus出现Part Annulus Circ Area对话框,在WP X文本框中输入0,在WP Y文本框中输入0,在Rad1文本框中输入0.4,在Theate-1文本框中输入0,在Rad2文本框中输入0.6,在Theate-2文本框中输入90,单击OK按钮关闭该对话框。 2)选择Utility Menu→Plotctrls→Style→Colors→Reverse Video,设置显示颜色。 3)选择Utility Menu→Plot→Areas,显示所有面。 4) 选择Main Menu→Preprocessor→Modeling→Reflect→Areas,出现Reflect Areas拾取菜

相关主题
文本预览
相关文档 最新文档