1、ANSYS 高级分析技术指南 用户过程和非标准用法8-1第八章 用户过程和非标准用法用户可编程特性(UPFs)ANSYS程序的开放结构允许用户连接自己的 FORTRAN程序和子过程。实际上,现在用户看到的许多 ANSYS“标准” 用法都是由以前用户过程引进的。什么是 UPFs?用户可编程特性是 ANSYS的功能允许用户使用自己的 FORTRAN程序。UPFs适用于 ANSYS/Multiphysics, ANSYS/Mechanical, ANSYS/Structural, ANSYS/PrepPost和 ANSYS/University(研究版和大学版)产品系列。UPFs允许用户根据需要定制
2、 ANSYS程序,如用户定义的材料性质,用户单元类型,用户定义的失效准则等。用户还可以编写自己的优化设计算法将整个 ANSYS程序作为子过程来调用。注用户使用 UPFs必须十分小心仔细。通过连接自己的 FORTRAN程序,用户生成了一个针对用户特定计算机的 ANSYS程序版本。在并行系统中使用ANSYS时不允许使用用户可编程特性。另外,UPFs 是一种非标准的使用方法,ANSYS公司质量保证的测试程序没有包括这部分内容。用户必须负责保证用户子程序结果正确并不影响别的标准功能的运行。如何使用 UPFs?UPFs可以从简单的单元输出功能到很复杂的用户单元或用户优化算法。因此,不进行特定的程序细节描
3、述是很难完成这些子程序功能的。在 ANSYS Programmers Manual中有详细的解释。一个典型的 UPF包括下列步骤:1.在 FORTRAN77中编制用户程序。在 ANSYS中所有的用户程序源代码都是公开的。大部分完成至少一个简单的功能,因此在编制程序前应列出一份完整的可用程序表。2.编译并将用户程序连接到 ANSYS程序中。在 ANSYS Installation and Configuration Guide中有这方面的详细描述。3.用户可能要验证自己做的改动是否影响其他 ANSYS标准功能的使用。可以通过做几个 ANSYS Verification Manual中的例题来验证
4、。在 ANSYS中也有输入这些问题的方法。4.用用户认为可以满足要求的过程检验用户子程序。请牢记本步由用户完成,用户要对子程序负责。ANSYS程序将在用户使用时自动激活一些子程序,如用户单元等。例如,要激活一个用户单元,仅仅在模型建立时指定它为其中的一个单元类型(ET 命令或 MainMenuPreprocessorElement TypeAdd/Edit/Delete) ,将单元类型属性指针设置好,然后用该单元进行实体划分AMESH,VMESH 等或直接生成单元ET 等命令即可。对于其他一些 UPFs,用户需要做一些别的操作来激活它们。即,需要输入 USRCAL命令或选择下列菜单:Main
5、MenuPreprocessorLoads-Load Step Opts-OtherUser Routines或 Main MenuSolution-Load Step Opts-OtherUser Routines。如果没有做这一步,将执行标准的 ANSYS功能。例如,ANSYS 高级分析技术指南 用户过程和非标准用法8-2如果想施加对流载荷,即便连接了用户对流子程序,缺省时仍是使用标准的ANSYS功能。因此用户必须使用 USRCAL命令(或相应路径)激活正确的用户子程序才能使用用户过程。请参阅 USRCAL命令描述得到命令可以影响的用户过程列表。使用 NSVR命令定义在用户过程中要存储的另
6、外的变量数目。 (NSVR 命令无相应的路径) 。另一个有用的命令是/UCMD,可以使用户在用户过程之外生成自己的命令。(/UCMD 命令无 GUI路径。 )假定用户连接抛物线形分布压力的子程序。如果子程序名为 USERnn(nn=1 到 10) ,可以用自己的命令调用程序:/UCMD,PARAB,1PARAB将成为合法的 ANSYS命令,用来调用用户子程序 USER01。可以用命令调用 10个子程序。将/UCMD 命令嵌入启动文件(START.ANS)中,用户就可以在所有 ANSYS过程中使用用户子程序。当前 UPFs简介用户单元用户可以写单元类型添加到 ANSYS单元库中,并象标准单元一样
7、使用。可以定义不超过六个用户单元类型(USER100USER105) 。在 ANSYS示例中有结构质量单元 MASS21和三维杆单元 LINK8的程序实例。 用户单元坐标系定位用于下列单元类型:SHELL43,SHELL63,SHELL91,SHELL93,SHELL99,SHELL181,SOLID46,SOLID64。对于分层的单元(SOLID46,SHELL91,SHELL99),可以定义层的坐标系方位。 用户实参单元 COMBIN7和 COMBIN37允许输入的实参在用户自己的非线性功能中被修改。 用户摩擦系数适用于接触单元 CONTAC48和 CONTAC49。 用户塑性屈服准则允许
8、用户定义自己的塑性准则计算塑性应变并在积分点处生成切向应力应变矩阵。 用户蠕变方程允许用户定义自己的蠕变方程。 用户熔涨准则如果在分析中计入熔涨(如中子爆炸) ,可以定义合适的熔涨准则。在 ANSYS程序中没有内部的熔涨准则。 用户湿热生成允许计入由潮湿成分引起的热膨胀,限于 SHELL91单元。 用户超弹性适用于超弹性单元HYPER56,HYPER58,HYPER74,HYPER158。 用户失效准则适用于层单元 SOLID46和 SHELL99。可以定义不超过六个失效准则。 用户粘弹性对于 FLIUD141和 FLUID142单元,可以将粘弹性作为压力,温度,位置,时间,速度和速度梯度的函
9、数定义。 用户载荷体载荷如温度,热生成和频率(如中子流) ,面载荷如压力,对流,热流和电势密度可以用用户子程序定义。 用户载荷向量对于 PIPE59单元,允许用户生成复数的载荷向量用于频率范围逻辑。可以用它代表水动力载荷。 ANSYS作为子程序可以在自己的程序中将 ANSYS作为子程序调用,如用户子定义的优化算法。 用户优化可以用自己的算法和中断准则替换 ANSYS优化过程。ANSYS 高级分析技术指南 用户过程和非标准用法8-3在每个 ANSYS运行求解,载荷步,子步和平衡迭代的开始和结束使得用户介入允许用户的求解中评估和对结果进行任意运算。ANSYS程序的非标准使用在 ANSYS程序推出之
10、前要经过严格的验证。在“标准” 功能的使用中,可以保证用户得到合理的结果。但是,在一些情况下,用户可能要使用非标准技术由于其特殊性,如用户子程序,而未在 ANSYS公司经过完整验证。在这种情况下,用户必须自己验证结果的正确性。何为非标准使用?非标准使用 ANSYS的结果是无法预知的。因此,ANSYS 公司的质量保证程序并不能完全覆盖这些使用过程。ANSYS 公司不阻止非标准的使用,但用户必须在这种情况下非常注意并分析结果。例如,在 ANSYS中使用用户单元,结果将主要取决于单元的编制方法。用户必须验证结果并保证不影响程序的其他标准使用功能。下面列出了一部分 ANSYS非标准使用特性: 用户可编
11、程特性编制用户的子程序,将其连接到 ANSYS并在分析中使用。在本章前面有描述。 将在 ANSYS程序外编写并编辑的文件或程序读入 ANSYS中,如由用户程序生成的结果文件或超单元文件。下面列出的是一些较危险的使用方法: 在求解器中两个载荷步之间改变单元实参。这取决于所用单元类型,有些单元在实参变化后会发生问题。 不激活实体模型的交叉参考检查MODMSH,NOCHECH(Main menuPreprocessorchecking CtrlsModel Checking)。 关闭单元形状检查SHPP,OFF(Main MenuPreprocessorChecking CtrlsShape Checking)。 使用非公布的特性,如在 ANSYS Element reference 中未包括的单元选项或在 ANSYS Commands Reference未包括的命令。非公布的特性是“非官方”的,未验证的,在使用时要特别小心。如果 ANSYS程序发现了非标准使用,总会给出警告信息。一些建议在 ANSYS程序中使用非标准请参考下列建议: 运用工程经验仔细检验分析结果。 不要假定其他标准过程未被影响,要通过几个考题检验。 如果要获得涉及非标准使用过程的用户支持时,要给出使用的原始和扩展非标准特性。