shifang157300 发表于 2012-2-11 12:22:18

ANSYS UPFs二次开发教程(原创,持续更新)

本帖最后由 shifang157300 于 2019-7-27 21:20 编辑

ANSYS UPFs二次开发教程(原创,持续更新)发布日期:2012年2月11日,最后更新日期:2019年7月27日QQ - 1549221758个人网站:http://phipsi.top/author.htmlResearch gate:https://www.researchgate.net/profile/Fang_Shi8仿真论坛:http://home.simwe.com/space-uid-334526.html
本贴第十八部分更新了Win10 + ANSYS 19.1二次开发环境搭建方法(2019年7月27日)
引言:      各位对UPFs感兴趣的朋友们,ANSYS UPFs二次开发教程回来了,我原来发过一个帖子——“基于ANSYS 12.0 UPFs 教程(原创) 持续发布”,但由于种种原因现已不能访问,故在此再开一贴,希望能够为那些奋斗在ANSYS二次开发战线上的新手提供一点帮助。关于ANSYS二次开发的详细内容可关注新书——由中国水利水电出版社出版的《ANSYS二次开发及应用实例详解》(说明:本书的销量和我没有任何利益关系,卖的多少和我无关:))。感兴趣的朋友可以关注一下。关于本贴及上述新书,或者你有什么问题,都可发邮件或者加qq向我咨询:师访(中国矿业大学博士毕业,中国科学技术大学近代力学系博士后,2017年7月已至淮阴工学院工作),pomato157300@126.com,我会为您提供必要帮助。
我的帖子汇总:(1)扩展有限元法(XFEM)漫谈(原创_持续更新):http://forum.simwe.com/thread-1245357-1-1.html(2)ANSYS UPFs二次开发教程(原创,持续更新):http://forum.simwe.com/thread-1021888-1-1.html(3)比特币(Bitcoin)价格波动曲线监控程序_基于Python编写__原创:http://forum.simwe.com/thread-1254734-1-1.html(4)地震作用下水箱晃动分析(原创,附命令流和K文件):http://forum.simwe.com/thread-1098856-1-1.html(5)ANSYS常用单元特性总结及简单实例(原创):http://forum.simwe.com/thread-1019487-1-1.html(6)ANSYS计算受压闭合裂纹的应力强度因子实例命令流(原创):http://forum.simwe.com/thread-1102153-1-1.html(7)(原创)利用Matlab对ANSYS数据进行后处理实例:http://forum.simwe.com/thread-1094497-1-1.html(8)(原创)ANSYS跌落分析全命令流模板:http://forum.simwe.com/thread-1093360-1-1.html(9)钢球入水后反弹CEL流固耦合3D模拟,附CAE文件(原创):http://forum.simwe.com/thread-1107014-1-1.html(10)ANSYS16.0新增扩展有限元XFEM裂纹扩展仿真简介(原创):http://forum.simwe.com/thread-1121373-1-1.html(11)FEAPpv简介、Linux下的编译及运行方法_原创: http://forum.simwe.com/thread-1136956-1-1.html(12)基于ANSYS的结构地震分析教程 (静力+模态+反应谱+时程) http://forum.simwe.com/thread-1176187-1-1.html
                  您的回贴,是对我最好的支持,是我更新的动力!       首先简单介绍ANSYS二次开发的工具。ANSYS二次开发工具大致有4个,分别是APDL、UPFs、UIDL及Tcl/Tk,其中后面两个用于ANSYS交互界面开发。APDL(ANSYS Parametric Design Language)大家都熟悉,ANSYS参数化设计语言,及俗称的命令流。它由类似于FORTRAN的语言部分和1000多条ANSYS命令组成。APDL是一种解释性文本语言,有顺序、选择、循环及宏等结构。利用APDL将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的实体模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。这里向大家介绍两个APDL二次开发的常用简单命令,/COM和/SYS。/COM命令可以用于在ANSYS Output窗口中输出相关信息,比如当前计算时间,塑性应变等等,这一点非常方便。/SYS用于暂停当前运算并调用外部程序,例如/SYS,D:/1.exe则会调用D盘下的1.exe可执行文件,利用这个功能,可以大大扩展APDL的分析能力。市面上APDL书籍很多,这里不再过多介绍。       UPFs是本贴的介绍对象。UPFs(User Programmable Features),即用户可编程特性,它是源代码层次的ANSYS二次开发,用户可以根据需要利用UPFs重新编译连接生成用户定制版本的ANSYS软件,例如创建新单元、定义新的材料属性、定义用户失效准则等等。使用UPFs需要安装Fortran编译器,并设置编译环境(主要是系统环境变量设置),后面以ANSYS 12.0,32位xp系统为例详细介绍安装方法。利用UPFs可以完成很多APDL很难完成的工作,比如复杂材料本构模型的开发,单元的开发,优化算法的定义,接触准则的定义等等。
一、一个简单的例子,线弹性材料模型usermat开发      材料的本构行为体现为应力-应变关系,usermat子程序的主要任务是定义材料的应力-应变关系,具体分为两个方面。首先由给定的应变增量计算得到应力增量 ,从而得到新的应力 ,称做应力更新过程。其次还要求usermat给出雅可比矩阵,学名是一致切线算子矩阵。usermat用户子程序仅用于最新技术单元,不支持传统单元。    (1)usermat fortran用户子程序的结构如下:*deck,usermat      USERDISTRIBparallel                              galsubroutine usermat(   &                   matId, elemId,kDomIntPt, kLayer, kSectPt,   &                   ldstep,isubst,keycut,   &                   nDirect,nShear,ncomp,nStatev,nProp,   &                   Time,dTime,Temp,dTemp,   &                   stress,statev,dsdePl,sedEl,sedPl,epseq,   &                   Strain,dStrain, epsPl, prop, coords,    &                   var0, defGrad_t, defGrad,   &                   tsstif, epsZZ,   &                   var1, var2, var3, var4, var5,   &                   var6, var7, var8)c*************************************************************************#include "impcom.inc"c      INTEGER             &               matId, elemId,   &               kDomIntPt, kLayer, kSectPt,   &               ldstep,isubst,keycut,   &               nDirect,nShear,ncomp,nStatev,nProp      DOUBLE PRECISION    &               Time,    dTime,   Temp,    dTemp,   &               sedEl,   sedPl,   epseq,   epsZZ      DOUBLE PRECISION    &               stress(ncomp), statev(nStatev),   &               dsdePl(ncomp,ncomp),   &               Strain(ncomp), dStrain (ncomp),    &               epsPl   (ncomp), prop    (nProp),    &               coords(3),       rotateM (3,3),   &               defGrad (3,3),   defGrad_t(3,3),   &               tsstif(2)cc***************** 用户定义部分*************************************c*                                                                  *c*                                                                  *c***************** 用户定义部分*************************************returnend(2)其输入输出变量说明如下:    1、usermat输入变量及其数据类型:●matId:材料号;整型。●elemId:单元号;整型。●kDomIntPt:材料积分点号;整型。●kLayer:单元层号,仅用于分层单元,用于usermat的18x族单元中仅SHELL181有分层功能;整型。●kSectPt:单元截面号;整型。●ldstep:载荷步数;整型。●isubst:载荷子步数;整型。●nDirect:正应力或正应变分量的个数,与单元类型有关;整型。●nShear:剪应力或剪应变分量的个数,与单元类型有关;整型。●ncomp:应力分量或应变分量个数,ncomp= nDirect + nShear;整型。●nStatev:状态变量个数,通过TB,STATE命令定义;整型。●nProp:材料常数个数,通过TB,USER命令定义;整型。●Temp:增量步开始时的温度;双精度。●dTemp:增量步内的温度增量;双精度。●Time:增量步开始时的时间,但并非真正的时间,仅仅是计算过程的标记;双精度。●dTime:增量步内的时间增量;双精度。●Strain(ncomp):增量步开始时的应变分量,包括机械应变及温度应变两部分;双精度数组。●dStrain(ncomp):应变增量,仅包含机械应变,温度应变成分已被去除;双精度数组。●prop(nProp):材料常数数组,由TB,USER及TB,DATA命令定义,可定义不同温度下的材料常数;双精度数组。●coords(3):当前材料积分点的坐标;双精度数组。●rotateM(3,3):大变形分析(NLGEOM,ON)时考虑刚体转动用到的增量型旋转矩阵,小变形分析时为单位矩阵;双精度矩阵。该矩阵老版本中存在,现已被废除(本贴第七部分提供了计算转动矩阵R的代码)。●defGrad_t(3,3):增量步开始时的变形梯度矩阵;双精度矩阵。●defGrad(3,3):增量步结束时的变形梯度矩阵;双精度矩阵。    2、usermat输出变量及其数据类型:●keycut:载荷切分控制参数,0—不切分,1—切分,默认情况下不进行载荷切分,当ANSYS主程序检测到收敛困难时进行载荷切分,并输出keycut=1;整型。●epsZZ:平面应力状态时垂直于平面方向的应变,仅在平面单元或壳单元考虑厚度变化时使用;双精度。●tsstif (2):横观剪切刚度,tssif(1)-GXZ,tssif(2)-GYZ;双精度数组。●dsdePl(ncomp,ncomp):一致切线算子矩阵,dsdePl(i,j)表示增量步结束时由第j个应变分量的改变引起的第i个应力分量的变化。ANSYS默认一致切线算子矩阵是对称的,若要使用非对称的一致切线算子矩阵(对于采用非关联流动法则的塑性材料模型,一致切线算子矩阵往往是非对称的),需要使用NROP,UNSYM命令打开非对称求解器;双精度矩阵。    3、usermat输入输出变量及其数据类型:●stress(ncomp):应力分量,增量步开始时由ANSYS主程序传入,需要在usermat中更新为增量步结束时的值;双精度数组。●statev(nStatev):状态变量,用于存储与材料模型有关的变量,如塑性因子、强化参数、损伤变量等,增量步开始时由ANSYS主程序传入,需要在usermat中更新为增量步结束时的值;双精度数组。●epsPl(ncomp):塑性应变分量,增量步开始时由ANSYS主程序传入,需要在usermat中更新为增量步结束时的值;双精度数组。●sedEl:弹性区标记,仅用于后处理,对计算过程无影响;双精度。●sedPl:塑性区标记,仅用于后处理,对计算过程无影响;双精度。(3)通过APDL命令很容易使用自定义材料模型。    只需在前处理部分使用下列语句即可:TB, USER, matId, NTEMPS, NPTS       关键字USER表示使用用户定义材料模型;关键字matId表示材料号;NTEMPS为温度点的个数,即可定义不同温度下的多组材料常数;NPTS表示每一温度下材料常数个数。(4)线弹性本构usermat
    附件是线弹性本构usermat源代码及测试用的命令流:二、UPFs二次开发安装及环境变量设置(以ANSYS12.0,32位xp 系统为例)(1)安装 Visual Studio 2005 professional,安装在C盘,默认安装。百度网盘下载:http://pan.baidu.com/s/1dEG0vYx若提示链接不存在,则尝试将上述网盘地址复制到浏览器地址栏打开。
(2)安装 Intel Visual Fortan 11.1.038,安装在C盘,默认安装 百度网盘:http://pan.baidu.com/s/1jGr4jo6,还要安装Intel Visual Fortran 11的函数库升级包:百度网盘:http://pan.baidu.com/s/1gdrApgv(3)安装 Ansys12.0.1,安装在C盘,默认安装。
百度网盘:http://pan.baidu.com/s/1c0CFgxq

    安装时要选中“ANSYS Customization Files”,如下图所示:(4)下面最重要的一步,设置系统环境变量:需要修改系统path环境变量,新建lib和include环境变量。环境变量的作用是让系统方便迅速的获得相关文件。三、UPFs几乎所有子程序的简单介绍    首先做一点说明,这里所说的子程序大致分为两类:一类是用户子程序,即可以被用户修改的、多以User或u开头的、可以在安装文件夹下找到(如下图所示)的、需要重新编译连接的Fortran子程序;另一类是一般的子程序,ANSYS提供给用户方便ansys二次开发的,包括子程序(subroutine,无返回值,使用时需要external声明语句)和函数(Function,有返回值,使用时不需要External声明语句)。

1、材料本构模型开发用户子程序
(1)usermat:在所有用于本构模型开发的子程序中,usermat是使用范围最广的子程序,单元的每个积分点在每个载荷子步的每次迭代均会调用usermat。usermat支持所有最新技术单元(Current-technology Elements),最新技术单元区别于传统单元。(2)UserHyper:虽然usermat功能强大,但其无法用于开发超弹性材料,若想实现超弹性材料本构的开发,必须利用UserHyper用户子程序。(3)usercreep及usercr:ANSYS提供了两个用户子程序usercreep及usercr来定义用户蠕变方程,这两个用户子程序可用来模拟材料的时间相关粘塑性/蠕变行为。usercreep利用隐式时间积分算法,而usercr利用的是显示时间积分算法。usercreep用于较长时间段的蠕变分析,如岩石及金属的长期蠕变分析;usercr用于瞬态蠕变分析。(4)user_tbelastic:用来定义线弹性材料特征,允许将弹性材料参数定义成温度或坐标的函数,支持大多数最新技术单元。user_tbelastic仅仅用于定义弹性阶段的材料本构,它可用来与许多非线性材料模型联合使用,例如BISO、BKIN、MISO、KINH、NLSIO、PLASTIC、CHABOCHE、CAST IRON、CREEP、EDP(Drucker-Prager模型)、SMA(形状记忆合金)、PRONY及GURSON等。(5)userpl:如果用户想利用传统单元定义塑性或粘塑性本构关系,则可以使用userpl。适用于LINK1、LINK8、PIPE20、BEAM23、BEAM24、PLANE42、SOLID45、PIPE60、SOLID62、SOLID65、PLANE82、SOLID92及SOLID95。(6)usersw:用户膨胀子程序usersw用于编写用户自定义的膨胀律,其调用方式是设置C72=10。(7)UserVisLaw:定义粘性模型,仅用于FLUID141及FLUID142单元。(8)userfic:用于定义用户摩擦模型,用于接触单元:CONTA171、CONTA172、CONTA173、CONTA174、CONTA175、CONTA176、CONTA177、CONTA178。(9)userfc:定义层合板类材料的破坏准则。2、单元开发用户子程序    开发单元有两种方法:用户子程序(1)和(2)联合使用是一种方法,通过UserElem用户子程序可以方便的建立新单元,ElemGetMat为新单元处理材料本构部分,难度适中;(3)和(4)联合使用是另外一种方法,该方法直接访问ANSYS单元相关数据库和文件,难度较大。(1)UserElem:从ANSYS 11.0开始新增的。使用该子程序创建单元无需直接访问ANSYS数据库。(2)ElemGetMat:用于调用ANSYS标准结构材料库,与UserElem结合使用。(3)uec100-uec105:在通过直接访问单元相关数据库和文件的方式创建单元时,用于定义单元特征参数。(4)uel100-uel105:在通过直接访问单元相关数据库和文件的方式创建单元时,用于计算各种单元矩阵(刚度矩阵、比热矩阵等)、单元载荷向量(力载荷、热流载荷等)以及所有单元输出变量。此外还要完成单元输出过程,计算需要保存的各个变量并储存在结果文件中。3、单元开发支持子程序以下子程序(注意不是用户子程序)用于单元开发:(1)nminfo:给单元特征向量定义单元名称,输入变量为单元特征向量ielc(见\ANSYS Inc\v120\ansys\customize\include文件夹下的echprm.inc),单元参考名称,输出变量为加入了单元参考名称的单元特征向量。(2)svgidx:获得保存的变量的索引。(3)svrget:获得单元保存的变量。(4)mreuse:决定在迭代过程中哪些单元矩阵及向量可被重复使用,哪些单元矩阵及向量需要重新计算。(5)rvrget:获得单元实常数。(6)propev:计算一组材料特性参数。(7)prope1:计算某一个材料特性参数,若要计算多个材料参数,可使用propev子程序。(8)pstev1:计算1维单元的材料特性参数。(9)plast1:更新单元塑性历史,用于具有一个应力(应变)分量的单元,包括LINK1、LINK8、BEAM23、BEAM24和SOLID65(增强型)单元。(10)plast3:更新单元塑性历史,用于具有4或6应力(应变)分量的单元,包括PLANE02、PLANE13、PIPE20、SHELL43、SHELL51、PIPE60、SOLID62、SOLID65、SHELL91、SHELL93、SHELL143、SOLID191。(11)creep1:更新单元蠕变历史,用于1维单元,包括LINK1、LINK8、BEAM23、BEAM24和SOLID65单元。(12)creep3:更新单元蠕变历史,用于3维单元,包括PLANE02、PLANE13、PIPE20、PLANE42、SHELL43、SOLID45、SHELL51、PIPE60、SOLID62、SOLID65、PLANE82、SHELL91、SOLID92、SHELL93、SOLID95、SHELL143及SOLID191。(13)swell1:更新单元的膨胀历史,用于1维单元,包括LINK1、LINK8、BEAM23、BEAM24。(14)swell3:更新单元的膨胀历史,用于3维单元,包括PLANE02、PLANE13、PIPE20、PLANE42、SHELL43、SOLID45、SHELL51、PIPE60、SOLID62、PLANE82、SHELL91、SOLID92、SHELL93、SOLID95、SHELL143和SOLID191。(15)usereo:在不可累加杂项数据(NMISC)中存储数据。(16)eldwrtL:将单元数据写入文件。(17)eldwrnL:将单元不可累加杂项数据写入结果文件。(18)tmpget:子程序temget用于定义当前温度载荷。(19)prsget:定义当前压力载荷。(20)cnvget:定义当前对流载荷。(21)prinst:可用于计算主应力和应力强度。其输入输出输出变量只有一个s(长度为11的数组),s(1)、s(2)、s(3)、s(4)、s(5)和s(6)分别存放σx 、σy 、σz 、σxy 、σyz 和 σzx,经子程序计算后输出主应力σ1、σ2 和σ3 保存在s(7)、s(8)和s(9)内,应力强度保存在s(10)内,s(11)内输出的是Mises等效应力。也可用来计算主应变(ε1 、ε2 和ε3 )的大小。提醒大家,这是一个很重要的子程序。4、修改和监视已存在单元的用户子程序(1)userou:用于存储用户提供的单元输出,对于需要将单元数据存入nmisc记录的所有单元,都要调用该用户子程序。该子程序通过USRCAL命令激活:USRCAL,USEROU(2)useran:单元坐标系控制,修改shell43、shell63、shell91、shell93、shell99,以及solid46、solid64、solid191单元材料性能参数和应力的方向,可通过单元关键选项调用。(3)userrc:对COMBIN7和COMBIN37单元的参数进行操作。当设置单元的keyopt(9) = 1时调用该子程序,且C1或C3必须为非零值。(4)UElMatx:访问单元矩阵和载荷向量,如频域分析的载荷向量等。主要目的是监视(或修改)单元矩阵和载荷向量。 (5)UTHICK:定义SHELL181、SHELL208、SHELL209以及SHELL281单元的初始厚度。(6)Us_Surf_Str:获取PLANE2、PLANE42、PLANE82以及SOLID45、SOLID92和SOLOD95单元的单元面应力。(7)uflex:计算单元PIPE288和PIPE289的柔性系数。当输入单元的轴向柔性系数为-10时调用该用户子程序。(8)usflex:计算单元PIPE16、PIPE17、PIPE18和PIPE60的柔性系数。当输入单元的轴向柔性系数为负数时调用该用户子程序。5、载荷用户子程序以下用户子程序用于定义载荷:(1)usrefl:可将一些标量表示的载荷(如温度、流量、热生成量、含水量等)修改成用户定义的值,该子程序在每个使用标量场载荷的载荷步及载荷子步内、每次平衡迭代过程中均会被调用,在进入该子程序之前,已获得ANSYS输入的单元或节点值信息。(2)userpr:用于改变单元压力,该子程序在每个使用单元压力的载荷步及载荷子步内、每次平衡迭代过程中均会被调用,每个单元调用一次。在进入该子程序之前,已获得ANSYS输入的单元或节点值信息。(3)usercv:用于改变单元面对流信息,该子程序在每个载荷步及载荷子步内的每次平衡迭代过程中均会被调用,每个单元调用一次。在进入该子程序之前,已获得标准ANSYS输入的对流面信息,因此利用这些信息可以随意按照用户意愿修改对流信息。(4)userfx:用于改变单元面热流信息,该子程序在每个载荷步及载荷子步内的每次平衡迭代过程中均会被调用,每个单元调用一次。仅在热流载荷形成阶段调用,热流计算阶段不调用。6、计算干预用户子程序
用户子程序对应的情况
UAnBegANSYS启动时执行
USolBeg求解开始前执行
ULdBeg载荷步开始前执行
USsBeg载荷子步开始前执行
UItBeg迭代步开始前执行
UItFin迭代步结束后执行
USsFin载荷子步结束后执行
ULdFin载荷步结束后执行
USolFin求解结束后执行
UAnFinANSYS结束前执行

7、用户自定义命令子程序    user01到user10,用户可以利用这10个子程序来定义用户ANSYS命令。利用/UCMD命令为调用相关子程序(user01到user10)的用户命令命名。8、支持子程序(1)GetRForce:该函数用于获得节点反力值(返回对应指针)。(2)GetStackDisp:该函数用于获得当前位移值(存储在快速访问数据中,返回对应指针)。(3)ElResultStrt:该子程序用于从分析结果中获得载荷数据。(4)ElResultGet:获得选择的坐标点的结果。(5)ElInterp:给定坐标点的xyz坐标及相应容差,获得包含该坐标点单元号。9、访问ANSYS数据库的子程序    这部分内容包括选择或获得节点及单元的子程序、节点信息相关子程序、单元特征相关子程序、耦合及约束相关子程序、节点载荷子程序、单元载荷子程序、结果信息子程序,由于内容较多,参见附件:10、方便用户开发的子程序内容包括通用子程序、向量操作子程序和矩阵操作子程序,见附件:

四、关于usermat与初始应力场inistate命令的矛盾(2012.02.23更新)
    单独把这一个小问题拿出来说明是有原因的。ANSYS的inistate命令用于定义初始应力场(或初始应变场),在岩土工程中应用十分广泛(初始地应力平衡,类似于ABAQUS的geostatic载荷步),但是,本构开发子程序usermat.f不能直接和inistate命令联合使用,经过摸索,发现可以在usermat中使用 call get_ElmData('ISIG',elemId,kDomIntPt,i,sigi(1))来解决这个困扰我近半年的问题!希望这点经验可以帮助到你。:)
五、关于ANSYS 14.0的二次开发环境设置(2012.03.07更新)
    类似于ANSYS 12.0,只需用Visual Studio 2008替换Visual Studio 2005即可,即Intel Fortran 11.1+Visual Studio 2008,环境变量设置参考ANSYS 12.0设置。
六、关于Programmer's Manual for Mechanical APDL的第一部分Ⅰ:Guide to interfacing with ANSYS(2012.05.06更新)
      细心的朋友会注意到,与ANSYS UPFs帮助文档(Ⅱ:Guide to ANSYS User Programmable Features)并列的是Ⅰ:Guide to interfacing with ANSYS。


      该手册主要介绍的ANSYS数据结构,绝大多数情况下不会用到,用户若想获得ANSYS数据可以通过*vget、*vwrite、*vput等命令获取。但有时,详细了解ANSYS数据结构及其相关操作程序还是十分必要的。
       该手册共分为4部分:
(1)Format of Binary Data Files
      主要介绍ANSYS分析过程中产生的二进制文件的数据结构,这些二进制文件在下一次迭代计算时还会用到,也就是说它们是随着计算的进行不断更新的。常见二进制文件有:结构分析及耦合场分析*.RST文件,热分析*.RTH文件,磁场分析*.RMG文件,流场分析*.RFL文件,此外还有*.EMAT单元矩阵文件,*.SUB子结构矩阵文件,*.FULL刚度质量矩阵文件等。
      每种ANSYS二进制文件都由很多个记录(Record)组成。而且都有一个标准文件头,由100个整型数据组成,紧接着是具体文件的文件头,如*.RST文件的文件头,其中以ptr开头的表示指针,指向某一LOC号,LOC所在位置即为具体数据。需要注意的是LOC所在位置的数据可能仍是指针,继续指向下一层数据。
      利用/AUX2命令可以将二进制文件(以RST文件为例)转换成ASCII格式文本文件:
      /AUX2
      FILE, , RST
      FORM, LONG
      DUMP, ALL
执行以上命令后可得文本文件。打开该文本文件,参照手册中对RST文件的详细数据结构说明,即可找到相关数据。
(2)Accessing Binary Data Files
      主要介绍用于读、写、修改ANSYS二进制文件的程序。其中两个演示性的Fortran程序:ResRdDemo.f用于将ANSYS二进制文件输出到ANSYS Output窗口中;ResWrDemo.f说明如何写ANSYS二进制文件。其他程序大家可参考帮助手册。
(3)The CDWRITE (CDB) File Format
      介绍CDB文件格式及相关命令。CDB文件是模型文件,用于与其他软件互导,该文件包含节点、单元、载荷等信息。
(4)ANSYS Graphics File Format
   介绍图形文件格式。
七. 邓肯-张本构usermat程序(2013.3.5更新)

邓肯-张本构模型是一种非线性弹性本构模型,广泛应用于土石坝工程及地基工程,有E-ν模型和E-B模型两种,参数可由常规三轴试验获得,应用方便。
附件:usermat程序:,命令流:
第十五部分更新了:正交各向异性材料usermat!(Updated on 2014.1.1)
第十六部分更新了:ANSYS15.0+Win7 64位UPFs二次开发环境设置方法(Updated on 2014.3.6)
第十七部分更新了:再论usermat,通过Newton-Raphson迭代解析usermat执行过程(Updated on 2015.4.20)

bolhengzh 发表于 2014-5-23 14:33:44

本帖最后由 bolhengzh 于 2014-5-23 14:56 编辑

shifang157300 发表于 2014-1-8 09:42
帖子的第十四部分有相关说明,具体我没试过,所以也没有太多经验。你如果实现了,别忘了在这个帖子里分享 ...
      经过自己长时间地学习研究,参考师老师帖子第十四部分的相关说明,实现了ANSYS14.5在win7 64位环境下的UPFs二次开发编译连接(即ANSYS14.5-Visual Studio 2008-Intel Fortran11.1.038)。现将经验分享给大家,水平有限难免有疏漏或错误之处,恳请大家批评指正。

shifang157300 发表于 2012-2-11 12:25:56

本帖最后由 shifang157300 于 2019-8-2 20:28 编辑

八、关于大变形和变形梯度矩阵F的极分解(2012.06.08更新)
    使用过Usermat进行二次开发的朋友会注意到usermat中有两个矩阵,defGrad_t(3,3),defGrad(3,3)。这两个矩阵是变形梯度矩阵,用于大变形分析材料本构的开发。defGrad_t(3,3):增量步开始时的变形梯度矩阵。defGrad(3,3):增量步结束时的变形梯度矩阵。变形梯度矩阵F可以通过极分解求出R和U,即F=R*U,R称为刚体转动矩阵,U称为右伸长张量矩阵。很老版本的ANSYS usermat提供了rotateM(3,3),实际上是R的增量矩阵,现在usermat已将其舍弃。所以,对于需要用到R的用户来说,获得R是一项较难的任务。我现在把我写的由变形梯度矩阵F求解刚体转动矩阵R和右伸长张量矩阵U的程序贡献给大家,以便为需要利用usermat开发大变形材料本构的朋友提供便利。该程序可以很方便的移植到usermat或者ABAQUS的umat中。    极分解理论如下所述,具体可参考庄茁译《连续体和结构的非线性有限元》,P108。

程序说明部分如下:      PROGRAM ROT
C*******************************************************************
CThis program calculates the rotation matrix R of deformation    *
Cgradient tensor F for polar decomposition, F=RU. U is an      *
Csymmetrical matrix. R is an unsymmetrical matrix. The right   *
Cstretch tensor U can be calculated bycalculateing eigenvalues *
Candeigenvectors of trans(F)*F. JACOBIN method is suitable   *
Cto get the eigenvalues andeigenvectors for symmetrical matrix.*
C------------------------------------------------------------------*
CVersion:1.1   DATE:2012_06_05                                 *
CSHI FANG, China University of Mining and Technology.            *
CEmail: pomato157300@126.com                                     *
C*******************************************************************
程序ROT见附件:该程序内部输入的变形梯度矩阵F和求解结果如下图所示:程序运行后的窗口输出信息:本ROT程序稍加修改即可编写进usermat。
九、Mohr-Coulomb模型(2012.10.15更新并上传源代码)       

基于Mohr-Coulomb破坏准则的本构模型十分常用,可用于模拟岩石、混凝土等材料的破坏,使用usermat可以开发这一本构模型。下图为利用usermat开发的 Mohr-Coulomb模型模拟的常规三轴试验剪切破碎带(中间黑点为弱化单元):


下图为利用usermat开发的 Mohr-Coulomb模型分析边坡稳定性塑性区分布图:

附件1:Mohr-Coulomb Fortran源代码——
附件2:边坡稳定性分析命令流——

十、关于编译连接时的f_comp.err文件(2012.07.20更新)
    高版本的ANSYS在编译连接时,假如遇到语法错误,同样可以通过编译,这往往会误导用户。而ANSYS9.0由于使用的Visual Fortran编译器,因而在编译过程中的DOS窗口中直接提示语法错误,非常直观。那么对于高版本的ANSYS,如何检查语法错误呢?看下图(以ANSYS12.0为例说明):

注意到图中文件f_comp.err文件,编译过程中的语法错误提示全在该文件中。

十一、材料参数服从Weibull分布的实现方法(类似于RFPA)(2012.07.21更新)
    RFPA软件很多人都应该知道,可用来模拟岩石的破裂过程,其核心思想是各个单元的材料参数不同,且各单元参数随机的服从Weibull分布,比如弹性模量E和粘聚力c等。该思想用于模拟岩石破裂过程是有效的。当然,不只在岩石力学领域,在其他学科范围内,有时将材料参数按照某一分布函数随机的给单元赋值,可能也是有用的。这里提供材料参数服从Weibull分布的实现方法。
    3参数Weibull概率密度函数为:
      
   实现方法是USolBeg.F,其在求解开始前执行,目的是利用它来输出各单元的材料参数,通过USERCAL,usolbeg可调用该用户子程序。
   USolBeg.F的具体代码如下:
*deck,USolBeg      USERDISTRIB      lcase                           jas
      subroutine USolBeg
c **********a user subroutine called before solution**********
c
c         This program is used to make the material property of
c         elements follow the Weibull distribution.
c         To be executed before solution.
c         APDL COMMAND:USERCAL,usolbeg
c         师访,China University of Mining and Technology(CUMT).
c         Email:15996873039@126.com;   DATE:2012.07.21.
c
c         *** copyright(c) 2009 SAS IP, Inc.All rights reserved.
c         *** ansys, inc.
c
#include "impcom.inc"
#include "echprm.inc"
#include "ansysdef.inc"
#include "elempr.inc"
#include "DofObj.inc"
      EXTERNAL elmiqr
   INTEGER i,j,NumElem,NElmPart,elmiqr,n,BoolV(10000),signal
   integer out,m,Lamda,Varia(10000)
   double precision seed,C0,TEMP1
c--------------------------------------------------------
      !获得单元个数
   NumElem =elmiqr(0,DB_NUMDEFINED)
c
    do,i=1,10000
          BoolV(i)=0
          Varia(i)=0
      enddo
c   Weibull参数:
      m=3
      Lamda=5
c   材料参数值的下限:
      C0=15
c
   do i=C0,C0+10 !C取11个值
         TEMP1=m*(((i-C0)/Lamda)**(m-1.0D0))*exp(-((i-C0)/Lamda)**m)/Lamda
          NElmPart=anint(NumElem*TEMP1) !计算每个C值对应的单元数
c         随机选择NElmPart个单元,并赋值为C
          if(NElmPart.NE.0)then
         signal=0   
         do j=1,NumElem*20
                  call random_seed(size=n)
                  call random_number(seed)
                  out=anint(NumElem*seed)
                if(BoolV(out).eq.0)then !假如该单元未被选择,则:
                         Varia(out)=i
                        BoolV(out)=1
                        signal=signal+1    !已赋值的单元数
                     if(signal.eq.NElmPart)then
                            exit !单元数够了,跳出DO循环
                      endif
                endif
         !单元数不够,输出警告!
                if(j.eq.NumElem*3.and.signal.ne.NElmPart)then
                   write(*,"(A35)") "Elementnot selected!"
                endif
          enddo
       endif
    enddo
c   将单元号及对应C值写入Weibull.dat文件
      OPEN(10,FILE='Weibull.dat',status='replace')
      do i=1,NumElem
          if(Varia(i).eq.0.0D0) then
399          Varia(i)=C0+5   
          endif
!输出数据时可以乘以一个系数,以便获得合适的数值范围
         write(10,500) i,Varia(i)*1.0D6/5.0D0
    enddo
500   FORMAT(i8,f18.6)
      close(10)
      return
      end
USolBeg.F执行后在工作路径下会生成Weibull.dat文件,第一列为单元号,第二列为对应的材料属性值:

通过USolBeg.F输出单元信息后,即可利用usermat或uel等用户子程序进行计算,下图是不同网格划分密度下单元材料属性的分布图,显示效果要比RFPA好得多。
   
相关附件:输出文件:

十二、灵活使用common语句(2012.08.28更新)
    由common语句定义的公共数据区在fortran编程中十分有用,可用共享各个程序之间的数据。在ANSYS UPfs二次开发中,灵活使用common语句能大大提高编程效率。下面举个例子说明。
    一个程序中有如下语句:
                        COMMON /TEMP/ A1,B1

在其他程序中有如下语句:
                        COMMON /TEMP/ A2,B2
则A1,B1和A2,B2共同属于公共数据块TEMP,有如下关系成立:
                        A1=A2
                        B1=B2
任何一个程序中数据的变化另一个程序中的数据也相应变化。具体可参考fortran书籍。
您的回贴,是对我最好的支持,是我更新的动力!

十三、利用户子程序usrefl实现塑性热升温过程(2012.08.28更新)
    大家知道,在金属发生塑性变形的过程中,一部分塑性功会转化成热量(塑性热),造成局部升温。在ANSYS14.0之前,软件本身无法模拟塑性热,ANSYS14.0中的SOLID226耦合场分析单元可以计算塑性热。实际上,利用usrefl用户子程序可以实现塑性热升温的计算过程,也可用于模拟形状记忆合金(SMA)相变升温过程。
      usrefl可以将一些标量表示的载荷(如温度、流量、热生成量、含水量等)修改成用户定义的值,该子程序在每个使用标量场载荷的载荷步及载荷子步内、每次平衡迭代过程中均会被调用。思路如下,在usrefl中通过获得塑性应变值计算塑性热,进而计算温度增加值,最后修改温度即可。
      附件是通过usrefl修改温度载荷的例子:

十四. Win7 64位下 ANSYS 13、14、14.5安装及系统设置方法(2013.10.7)
需要的软件是Visual Studio 2008,Intel Fortran11.1.038,把这两个个直接装到c盘(默认安装),ANSYS装到D盘,不需要任何设置,就可以编译成功,适用于ANSYS13,14,14.5。感谢张洪才老师提供本方法。
Intel Fortran11.1.038编译器下载地址:http://pan.baidu.com/s/1eMmi3,编译器升级包下载地址:http://pan.baidu.com/s/1zeXHA关于ANSYS15.0 在Win7 64位下的UPFs设置方法,参见第十六部分,楼主亲测!

十五. 正交各向异性本构usermat代码及与ANSYS自带模型对比(2014.1.1)
    新年(2014)第一天,花了点时间写了这个三维正交各向异性材料的usermat,程序很简单,供大家研究学习。其中有一个需要注意的问题,ANSYS在输入正交各向异性材料时共9个参数,其中PRXY,PRYZ,PRXZ为三个主泊松比,而正交各向异性本构还需要另外的三个次泊松比(NUXY,NUYZ,NUXZ),次泊松比v21需要利用v12/v21=E1/E2求得,v32和v31同理。本usermat程序在ANSYS 12.0下调试通过。
    应力应变关系矩阵D中的元素表达式(参考文献:)为:

    Uermat程序下载链接:
    复合材料分析算例。有四层结构的层合板,纤维角度分别为0度,90度,90度和0度,solid186单元。下图为ANSYS自带正交各向异性本构的结果:

下图为usermat计算结果:

命令流下载。ANSYS自带本构命令流:
usermat命令流:
第十五部分汇总pdf
十六.ANSYS15.0+Win764位安装及UPFs二次开发环境设置(2014.3.6新增,2017.3.2更新)
本部分给出Win7系统下UPFs二次开发环境设置方法。本部分所提供的方法仅用于个人研究学习,商业用途请购买正版软件,并按照软件商提供的方法操作。为保证Win7 64位系统。
    用到的软件为:
    (1)64位ANSYS15.0;    (2)Visual Studio 2010;    (3)Intel Fortran Composer XE 2013 SP1。    16.1.软件的安装(可参考帖子:http://forum.simwe.com/thread-1094988-1-1.html,建议安装在D盘):    将ANSYS15.0安装在D盘。    ANSYS15.0 BT下载:;破解文件下载:。    安装方法如下(注意安装过程中别忘了选择安装customalize文件夹):    Step1 If you have installed an earlier version of ANSYS, please make sure to uninstall it, the ANSYS License Manager in especial (This can be done by deleting the"\ANSYS Inc\Shared Files" folder, if it can not be deleted,then end the related processes in the task manager and try again!).    Step 2Install only ANSYS products on disk D, do not install ANSYS License Manager. When askfor Hostname 1, just select Skip this configuration!    Step 3After installation, Put ansyslmd.ini and license.dat into the followingdirectory:         D:\Program Files\ANSYS Inc\SharedFiles\Licensing\    Modify thesecond line of the ansyslmd.ini into the following line:         LICKEYFIL=D:\Program Files\ANSYS Inc\SharedFiles\Licensing\license.dat    安装Visual Studio 2010,下载地址:百度网盘,http://pan.baidu.com/s/1ntjr3dB。安装在C盘,默认安装设置。安装完成后切勿进行关于Visual Studio 2010的Windows Update更新。    安装Intel Fortran Composer XE 2013 SP1,下载地址:百度网盘,http://pan.baidu.com/s/1hq88u2K。安装在C盘,默认安装设置。    16.2.环境变量的设置   Path环境变用如下path环境变量替换(每一行表示一条环境变量,各条环境变量之间用分号(;)隔开),以下环境变量基于本文安装路径,若安装路径不同,请进行相关调整:       新增Include环境变量:
   
    16.3 修改ANSCUST.BAT文件    本步骤不是必须步骤,但为了保证成功编译,需要将将编译文件夹D:\ProgramFiles\ANSYS Inc\v150\ansys\custom\user\winx64下的ANSCUST.BAT的第28行由:                call "%IFORT_COMPILER12%\bin\compilervars.bat" %IFORT_PLATFORM% vs2010改为:                call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\compilervars.bat" %IFORT_PLATFORM% vs2010    16.4 编译连接注意事项    将用户子程序拷贝到D:\ProgramFiles\ANSYS Inc\v150\ansys\custom\user\winx64下,运行 开始 >ANSYS 15.0 >Utilities下的ANS_ADMIN,单击其中的Relink ANSYS,当编译程序询问Do you want to link the Wind Turbine Aeroelasticlibrary with Mechanical APDL? (Y or N):时,输入N。编译连接完成后,将出现“LINK WASSUCCESSFUL!”的提示。最后,当编译程序询问Do you want to copythe runtime DLLs? (Y or N):,在第一次编译时需要输入Y,程序将自动把ansys.exe运行所需的D:\Program Files\ANSYS Inc\v150\ansys\bin\winx64下的dll动态链接库文件拷贝到编译目录下,以后的编译过程中无需再次拷贝。    第十六部分总结下载:
16.5 安装设置失败的解决办法!!!(2017年3月16号更新)    
(1)找不到*dll文件等问题。原因:环境变量设置问题。解决办法:在计算机中搜索该文件,将其路径添加到path环境变量,若不起作用,直接将其拷贝到编译路径下。
(2)拒绝访问,无法连接到ANSYS等问题。将D:\ProgramFiles\ANSYS Inc\v150\ansys\custom\user\winx64文件夹拷贝到其它地方(比如C盘或D盘根目录),再单击其中的ANSCUST.BAT即可。
(3)提示”转换到coff期间失败“。原因:系统中存在多个不同版本的cvtres.exe文件从而产生冲突。共有4个解决方案(优先尝试解决方案1和方案2,另外还可参考本贴445楼网友的回复)。
   解决方案1:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin和C:\Windows\Microsoft.NET\Framework\v4.0.30319这两个文件夹里 的cvtres.exe冲突,删除前者(2017.03.02新增,感谢Simwe网友macliqi的经验反馈)。   
    解决方案2:搜索c盘下的cvtres.exe文件,仅保留C:\Windows\Microsoft.NET\Framework64\v4.0.30319下的cvtres.exe,其余搜到的cvtres.exe全部删除!(2017.03.16新增,感谢Simwe网友rainerun的经验反馈)。
    解决方案3:重装系统,安装Win7官方原版镜像,ANSYS安装时仅仅选择二次开发必要的组件,即:

    解决方案4:直接将Win7升级到Win10可解决该问题(2016.02.23新增,感谢steven0105的建议)
另:
关于ANSYS 18.0在Win10下的安装,可参考simwe网友rainerun发的帖子:
http://forum.simwe.com/thread-1259943-1-1.html

十七.再论usermat,通过Newton-Raphson迭代解析usermat执行过程(2015.4.20更新)

    Usermat是ANSYS二次开发中最重要的一个函数,这里通过非线性系统的Newton-Raphson迭代求解过程来说明usermat的两个作用:①更新应力;②给出应力应变关系矩阵。





关于usermat几点补充说明:
(1)usermat中的dStrain指的是上述载荷子步间的应变增量,而非迭代步之间的应变增量。(2)usermat中的状态变量statev指的是上一个载荷子步的状态变量,在本载荷子步的各个迭代步之间不发生变化。
本部分对于PDF文件:
十八、Win10 + ANSYS 19.1二次开发环境搭建(2019.07.27更新)
很久没碰ANSYS 二次开发了,暑假时间相对自由,研究了一下Win10下 ANSYS 19.1的二次开发环境搭建问题,现总结如下:(1)安装ANSYS 19.1。
(2)安装Visual Studio 2015,专业版,update3,安装过程中需要勾选C++。百度网盘链接:https://pan.baidu.com/s/1yKa64Oebok3cwK4whN5JSA
提取码:6rhn
(3)安装Intel Parallel Studio XE 2017 Update5。百度网盘链接:链接:https://pan.baidu.com/s/1scdaAjxd7UqC_yk-QJCKmQ 提取码:i93a
(4) 以管理员身份运行ANS_ADMIN 19.1,单击Relink ANSYS,按照提示编译Fortran文件即可。
说明:无需设置环境变量。



liucai01 发表于 2021-7-27 22:20:38

WIN10+ANSYS19.2能成功,多谢,其它版本最好不在win10上测试,因为老软件可能不支持新系统,我尝试多个版本都难成功,IA64与X64也是不同的计算配置,谢谢老师,真是中国ansys二次开发第一人啊!

zhang_xxx 发表于 2012-10-21 09:29:56

顶顶顶,好贴,欢迎楼主继续更新

shifang157300 发表于 2012-5-8 17:02:31

本帖最后由 shifang157300 于 2012-5-8 17:06 编辑

hyg258 发表于 2012-5-8 15:03 http://forum.simwe.com/static/image/common/back.gif
楼主:请问怎样获得单元的各方向的应力、应变及主应力等,并能用于其它计算??? ...

使用get_ElmData和prinst两个子程序。get_ElmData用来获取获得单元积分点的应力、应变、塑性应变、蠕变应变、热应变、初始应力、累积等效塑性应变、累积等效蠕变应变以及状态变量等数据。prinst用来计算主应力及其主方向(或主应变及其主方向)。

aimi 发表于 2021-8-2 13:42:18

ansys是每次修改完fortran程序都要重新编译下,还一直以为是编译连接没成功,真是太傻了:L

hubiao 发表于 2017-12-19 10:46:57

能不能出一个蠕变本构方程的二次开发,楼主大大:P

shifang157300 发表于 2017-4-12 15:18:45

咿呀咿呀 发表于 2017-4-12 11:24
师老师,您好,请问我在调用计算干预子程序USolBeg时,编译显示错误,这是为啥? ...

把编译目录下之前生成的文件都删除再试试

waronblack 发表于 2016-10-9 09:52:42

本帖最后由 waronblack 于 2016-10-13 16:38 编辑

楼主好!我在做弹性损伤模型的二次开发,当然是在您的教材实例的基础上。在你的例子中,只是研究加载一次后,模型的损伤情况。而我需要研究逐级加载时模型的损伤情况,这里面用到了历史最大应变的概念。我引入两个状态变量:svar(1)存储当前应变,在Usermat中更新;svar(2)存储历史最大应变,在ULdFin中更新。但我发现了三个问题。
1.当Usermat中statev(1)等于一变量,比如Damage或者elemId时,在ULdFin中调用get_ElmData函数,无法得到statev(1)的值,各单元各积分点的svar(1)均等于0(我在ULdFin中用svar表示状态变量)。如果在Usermat中令Damage=0.2,或直接令statev(1)=0.2,都可以使得ULdFin中的svar(1)=0.2。

2.ULdFin中put_ElmData可以更新数据库中的状态变量,这一点通过get_ElmData命令得到某一单元某一积分点的状态变量,并通过print命令可以在Output窗口显示出来。但是在后处理中,通过PLNSOL命令发现,其所显示的云图中的状态变量还是Usermat中的statev值,并没有被ULdFin命令更新。

3.后处理中通过PRNSOL命令,发现列表显示的状态变量结果,只显示了386个单元,而非全部单元数512,这一问题在教材实例中就有了。

问题3不算重要,问题1、2比较要紧。希望得到楼主回复,不胜感激!

shifang157300 发表于 2013-10-11 09:26:43

拂尘看月 发表于 2013-10-10 17:01
师老师,您好。谢谢您的帖子,提供了很多资源和参考。现在想向你求助,你这里面的Fortran 11.1.038版本,我 ...

你再试下百度网盘:
Intel Fortran11.1.038编译器下载地址:http://pan.baidu.com/s/1eMmi3,编译器升级包下载地址:http://pan.baidu.com/s/1zeXHA

shifang157300 发表于 2012-2-11 12:23:31

本帖最后由 shifang157300 于 2014-6-10 16:46 编辑

占位



shifang157300 发表于 2012-2-11 12:25:28

本帖最后由 shifang157300 于 2014-6-10 16:49 编辑

占位,以备更新

shifang157300 发表于 2012-2-11 12:26:30

本帖最后由 shifang157300 于 2014-6-23 09:32 编辑

占位:victory::victory:

shifang157300 发表于 2012-2-11 12:26:57

本帖最后由 shifang157300 于 2014-6-10 16:49 编辑

占位

shifang157300 发表于 2012-2-13 11:42:48

本帖最后由 shifang157300 于 2014-6-10 16:46 编辑

占位

lioushui336 发表于 2012-2-13 21:10:37

学习ing,谢谢楼主

shifang157300 发表于 2012-2-20 09:31:59

本帖最后由 shifang157300 于 2016-8-23 13:35 编辑

我的帖子汇总:(1)扩展有限元法(XFEM)漫谈(原创_持续更新):http://forum.simwe.com/thread-1245357-1-1.html(2)ANSYS UPFs二次开发教程(原创,持续更新):http://forum.simwe.com/thread-1021888-1-1.html(3)地震作用下水箱晃动分析(原创,附命令流和K文件):http://forum.simwe.com/thread-1098856-1-1.html(4)ANSYS常用单元特性总结及简单实例(原创):http://forum.simwe.com/thread-1019487-1-1.html(5)ANSYS计算受压闭合裂纹的应力强度因子实例命令流(原创):http://forum.simwe.com/thread-1102153-1-1.html(6)(原创)利用Matlab对ANSYS数据进行后处理实例:http://forum.simwe.com/thread-1094497-1-1.html(7)(原创)ANSYS跌落分析全命令流模板:http://forum.simwe.com/thread-1093360-1-1.html(8)钢球入水后反弹CEL流固耦合3D模拟,附CAE文件(原创):http://forum.simwe.com/thread-1107014-1-1.html(9)ANSYS16.0新增扩展有限元XFEM裂纹扩展仿真简介(原创):http://forum.simwe.com/thread-1121373-1-1.html(10)FEAPpv简介、Linux下的编译及运行方法_原创: http://forum.simwe.com/thread-1136956-1-1.html(11)基于ANSYS的结构地震分析教程 (静力+模态+反应谱+时程) http://forum.simwe.com/thread-1176187-1-1.html

饿狼鼎 发表于 2012-2-20 15:21:42

楼主厉害~!

huimonk 发表于 2012-2-22 01:07:12

楼主厉害~!

qunxing123 发表于 2012-3-1 12:34:56

顶楼主,正要学习如何修改本构模型呢

SUS301 发表于 2012-3-1 16:08:50

感謝分享好資料!

wuweide127 发表于 2012-3-2 23:41:27

首先谢谢楼主的无私奉献!

我按照楼主的提示,以及upf的文档尝试,可是在rulink这一步生成ansys的时候,总是出现这样的error,请问是什么意思呢?
谢谢!

lovecan 发表于 2012-3-3 00:29:51

这个很好必须顶 :victory:

shifang157300 发表于 2012-3-3 09:35:53

wuweide127 发表于 2012-3-2 23:41 static/image/common/back.gif
首先谢谢楼主的无私奉献!

我按照楼主的提示,以及upf的文档尝试,可是在rulink这一步生成ansys的时候,总 ...

提示输入Y or N时,应输入Y

wuweide127 发表于 2012-3-5 18:14:39

shifang157300 发表于 2012-3-3 09:35 static/image/common/back.gif
提示输入Y or N时,应输入Y

谢谢楼主的回复,我输入的就是Y

另外,我的系统是64位的windows7,会不会是这个产生的影响呢?

shifang157300 发表于 2012-3-5 18:59:51

wuweide127 发表于 2012-3-5 18:14 static/image/common/back.gif
谢谢楼主的回复,我输入的就是Y

另外,我的系统是64位的windows7,会不会是这个产生的影响呢? ...

恩,有这种可能

LythRum 发表于 2012-3-5 20:43:52

不认识,北京校区的么?先顶再看

shifang157300 发表于 2012-3-5 20:51:50

LythRum 发表于 2012-3-5 20:43 static/image/common/back.gif
不认识,北京校区的么?先顶再看

徐州校区
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: ANSYS UPFs二次开发教程(原创,持续更新)