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