第八章 用户过程和非标准用法
用户可编程特性(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功能。因此用户必须使用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,SOLID64。对于分层的单元(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中,如由用户程序生成的结果文件或超单元文件。
下面列出的是一些较危险的使用方法:
在求解器中两个载荷步之间改变单元实参。这取决于所用单元类型,有些单元在实参变化后会发生问题。
不激活实体模型的交叉参考检查[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程序中使用非标准请参考下列建议:
运用工程经验仔细检验分析结果。
不要假定其他标准过程未被影响,要通过几个考题检验。
如果要获得涉及非标准使用过程的用户支持时,要给出使用的原始和扩展非标准特性。
用户可编程特性(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功能。因此用户必须使用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,SOLID64。对于分层的单元(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中,如由用户程序生成的结果文件或超单元文件。
下面列出的是一些较危险的使用方法:
在求解器中两个载荷步之间改变单元实参。这取决于所用单元类型,有些单元在实参变化后会发生问题。
不激活实体模型的交叉参考检查[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程序中使用非标准请参考下列建议:
运用工程经验仔细检验分析结果。
不要假定其他标准过程未被影响,要通过几个考题检验。
如果要获得涉及非标准使用过程的用户支持时,要给出使用的原始和扩展非标准特性。