完整word版ABAQUS中Fortran子程序调用方法—自己总结
ABAQUS中Fortran子程序调用方法
第一种方法:/ o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]"2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;# ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录;4. 将.obj文件拷贝到工作目录;5. 建立好输入文件.inp;6. 运行abaqusjob=inp_name user=fortran name即可。
第二种方法:在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select 按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。
, D8 i7 d/r c6 @" |以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j用户进行二次开发时,要在命令行窗口执行下面的命令:4 O. R+ ^,@( ? abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
: j6 g' R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
Fortran入门——函数调用
Fortran⼊门——函数调⽤当我的第⼀个Fortran程序 "Hello World" 诞⽣后,我的下⼀个⽬标便是写⼀个包含函数调⽤的程序,⾄于那些什么代码格式,数据类型,语法等等全部⾛马观花浏览⼀遍,既然需要速成,那么细节⽅⾯只能略过,将来有需要可以再补。
在VS中新建⼀个 Fortran-Console Application项⽬,选择默认的EmptyProject模板。
然后添加⼀个Source⽂件。
在新添加的Source⽂件中输⼊如下代码1 integer function Add(x,y)2implicit none3 integer ::x,y4 Add=x+y5 end function如上代码所⽰便是⼀个⾮常简单的Fortran函数,写成C#代码的话如下1int Add(int x,int y)2 {3return x+y;4 }可以看到在Fortran中代码块没有C#的⼤括号表⽰法。
interger function end 等关键字皆为⼩写。
在旧版本中,貌似必须⼤写。
在Fortran函数中,参数的数据类型在函数体中定义,如"integer ::x,y",函数的返回值则需要赋给函数的名称"Add=x+y",这点着实不太习惯。
函数有了,接下来该是调⽤了,再敲点代码吧1 program main2 integer:: x,y3 integer Add4 read *, x,y5 print *,Add(x,y)6 read *,x7 end在主程序中,需要声明Add函数的类型"integer Add",否则调⽤会失败。
可以看到,⼀个简单的函数调⽤程序,相⽐C#等语⾔,在语法格式上还是有不少区别的。
ABAQUS用户子程序学习小结
ABAQUS用户子程序学习小结1 FORTRAN语言中的“I-N规则”:I、J、K、L、M、N开头的为整型变量,其他开头为实型变量;1.1 Fortran书写格式:1-5列:标号区;6列:续写标号区,一般就写"1";7-72列:语句区,本区内空格无效;注释行以C开头,本行内书写格式无要求;参考周煦《FORTRAN77结构化程序设计》,中国科学技术出版社,1995,38-40页 2 DIMENSION COORDS(3)表示声明一个含3个元素的数组,下标分别为1、2、3,访问形式为COORDS(n),n为1,3;3 子程序(*.for)文件中如何输出调试信息:WRITE(6,*)'COORDS(1)',COORDS(1),在*.dat文件中可看到输出,如果希望WRITE输出到msg文件中,则写为WRITE(7,*)'COORDS...;4 用户子程序DLOAD中COORDS数组的含义:COORDS(1)也是一个数组,存贮单元集合中所有单元积分点的X坐标,COORDS(2)存贮Y坐标,相应INP文件中的写法为:*DLOADPY,PYNU其中PY为单元集合名称,定义方法为:*Elset, elset=BEAM, generate1, 5, 1...*ELSET,ELSET=PYBEAM5 DLOAD中F的定义方法:F只有定义在单元积分点上才有效,例如:F=1.0*COORDS (1)附一个简单实例:beam.inp文件:*Heading** Job name: Job-1 Model name: beam *Preprint, echo=NO, model=NO, history=NO, contact=NO**** PARTS***Part, name=PART-1*End Part**** ASSEMBLY***Assembly, name=Assembly***Instance, name=PART-1-1, part=PART-1 *Node1, 0., 0.2, 20., 0.3, 40., 0.4, 60., 0.5, 80., 0.6, 100., 0. *Element, type=B311, 1, 22, 2, 33, 3, 44, 4, 55, 5, 6*Elset, elset=BEAM, generate1, 5, 1** Region: (Section-1-BEAM:BEAM), (Beam Orientation:BEAM)** Section: Section-1-BEAM Profile: Profile-1*Beam Section, elset=BEAM, material=STEEL, temperature=GRADIENTS, section=RECT0.2, 5.0.,0.,-1.*End Instance*Nset, nset=ENDS, instance=PART-1-11, 6*Nset, nset=_M4, internal, instance=PART-1-16,*Nset, nset=_M5, internal, instance=PART-1-11,*End Assembly**** MATERIALS***Material, name=STEEL*Elastic210000., 0.3*ELSET,ELSET=PYBEAM**** BOUNDARY CONDITIONS**** Name: Disp-BC-1 Type: Symmetry/Antisymmetry/Encastre*Boundary_M4, ENCASTRE** ---------------------------------------------------------------- **** STEP: Step-1***Step, name=Step-1*Static**** LOADS**** Name: CFORCE-1 Type: Concentrated force*DLOADPY,PYNU**** OUTPUT REQUESTS****** FIELD OUTPUT: F-Output-1 ***Output, field, variable=PRESELECT **** FIELD OUTPUT: F-Output-2 ***Output, field*Element OutputSF,**** HISTORY OUTPUT: H-Output-1 ***Output, history*Node Output, nset=ENDSCF1, CF2, CF3, CM1, CM2, CM3, RF1, RF2 RF3, RM1, RM2, RM3, U1, U2, U3, UR1 UR2, UR3*El Print, freq=999999*Node Print, freq=999999*End Stepbbb.for文件SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,1 JLTYP,SNAME) CINCLUDE 'ABA_PARAM.INC'CDIMENSION TIME(2), COORDS (3)CHARACTER*80 SNAMEWRITE(6,*)'COORDS(3)',COORDS(3)F=1.0*COORDS (1)RETURNEND运行方法:在Abaqus Command提示符后输入:abaqus job=beam user=bbb interactive 子程序如下~如何编写,调研子程序,子程序USDFLD中给固化度赋了一个初值1×10-4。
总结Abaqus操作技巧总结(个人)
Abaqus操作技巧总结打开abaqus,然后点击file——set work directory,然后选择指定文件夹,开始建模,建模完成后及时保存,在进行运算以前对已经完成的工作保存,然后点击job,修改inp文件的名称进行运算。
切记切记!!!!!!1、如何显示梁截面(如何显示三维梁模型)显示梁截面:view->assembly display option->render beam profiles,自己调节系数。
2、建立几何模型草绘sketch的时候,发现画布尺寸太小了1)这个在create part的时候就有approximate size,你可以定义合适的(比你的定性尺寸大一倍);2)如果你已经在sketch了,可以在edit菜单--sketch option ——general--grid更改3、如何更改草图精度可以在edit菜单--sketch option ——dimensions--display——decimal更改如果想调整草图网格的疏密,可以在edit菜单--sketch option ——general——grid spacing中可以修改。
4、想输出几何模型part步,file,outport--part5、想导入几何模型?part步,file,import--part6、如何定义局部坐标系Tool-Create Datum-CSYS--建立坐标系方式--选择直角坐标系or柱坐标系or球坐标7、如何在局部坐标系定义载荷laod--Edit load--CSYS-Edit(在BC中同理)选用你定义的局部坐标系8、怎么知道模型单元数目(一共有多少个单元)在mesh步,mesh verify可以查到单元类型,数目以及单元质量一目了然,可以在下面的命令行中查看单元数。
Query---element 也可以查询的。
9、想隐藏一些part以便更清楚的看见其他part,edge等view-Assembly Display Options——instance,打勾10、想打印或者保存图片File——print——file——TIFF——OK11、如何更改CAE界面默认颜色view->Grahphic options->viewport Background->Solid->choose the wite colour!然后在file->save options.12、如何施加静水压力hydrostaticload --> Pressure, 把默认的uniform 改为hydrostatic。
abaqus调用子程序的方法
Abaqus运行子程序方法试了好几种调用子程序的方法最后总算找到了最简单的了,非常感谢仿真论坛上的网友的分享:首先需要装Microsoft Visual Studio(简写mvs),再装Intel Visual Fortran(IVF)。
通常的组合是Abaqus v6.10.1可使用:MVS2008+IVF10.1 MVS2008+IVF11.1 这二种组合最好都使用英文版的。
照着附录1 方法装一般没什么问题。
但是一般都是先装abaqus后才想到去装MVS以及IVF的。
很多时候都把MVS 以及IVF装好以后才想到去验证的,而且MVS很多都是中文的,MVS不仅装的慢卸载残留也很多好麻烦。
搞了好久都验证不了,看了附录二的方法下面2个网友的回复后豁然开朗,一切都是那么简单。
附录二的方法的主要作用可能就是将VC++和Fortran的环境变量一并启动了,参考过以前版上的安装教程,通过在ABAQUS 的快捷方式中添加命令,亦能够达到同样效果,同样也是不能通过verification,但是可以运行子程序,通过在ABAQUS CAE的快捷方式的目标中,添加"D:\Program Files (x86)\Intel\Compiler\Fortran\10.1.034\em64t\bin\ifortvars.bat" && (跟附录1中的修改快捷方式的目标一样)达到了同样的效果(摘自ppengine,tcboywjr网友的回复)。
只需在搜索栏中搜索ifortvars.bat,再把路径添加上去照上面的形式修改便可。
本人用的是win7系统装的是abaqus6.10.mvs2008(中文版)IVF11,abaqus好早就装了,装MVS2008之前装了mvs2010,发现2010不好装ivf,然后又卸了装mvs2008中文,验证时出现附录Ⅰ的情况,就C++项通不过还以为装C++2010就好了,又重装了一下mvs2010的C++(囧),发现还是用不了,校园网速太慢又不想下mvs2008(英文版),最后在附录2的方法下面发现了两位网友的分享非常感谢。
ABAQUS中Fortran子程序调用方法—自己总结
第一种方法:在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for 或.f)。
第二种方法:1. 建立工作目录2. 将Abaqus安装目录\\site下的或拷贝到工作目录,并改名为;3. 将编译的fortran程序拷贝到工作目录;4. 将.obj文件拷贝到工作目录;5. 建立好输入文件.inp;6. 运行abaqus job=inp_name user=fortran name即可。
以下是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库和动态库,还有其它一些临时文件,而它的主程序(如和等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\LocalSettings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1 子程序格式(程序后缀是.f; .f90; .for;.obj)答:我试过,.for格是应该是不可以的,至少和版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for (.f,.f90应该都不行的,手册上也有讲过),只有在文件没有找到的情况下,才会去搜索,如果两者都没有,就会报错误信息。
如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。
ABAQUS中Fortran子程序调用方法—自己总结
第一种方法: 在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择您要调用的子程序文件(后缀为、for或、f)。
第二种方法:1、建立工作目录2、将Abaqus安装目录\6、4-pr11\site下的aba_param_dp、inc 或aba_param_sp、inc拷贝到工作目录,并改名为aba_param、inc;3、将编译的fortran程序拷贝到工作目录;4、将、obj文件拷贝到工作目录;5、建立好输入文件、inp;6、运行abaqus job=inp_name user=fortran name即可。
以下就是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU、lib与动态库standardU、dll,还有其它一些临时文件,而它的主程序(如standard、exe与explicit、exe等)则没有任何改变,由此瞧来ABAQUS就是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\Local Settings\Temp\中才能找到,这也就是6楼所说的藏了一些工作吧,大家不妨试一下。
1子程序格式(程序后缀就是、f; 、f90; 、for;、obj??)答:我试过,、for格就是应该就是不可以的,至少6、2与6、3版本应该就是不行,其她的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名就是、for(、f,、f90应该都不行的,手册上也有讲过),只有在username、for文件没有找到的情况下,才会去搜索username、obj,如果两者都没有,就会报错误信息。
Fortran程序总结
1.行的书写(行的长度、分行、续行)一行可以是0~132个字符,空格有意义,语句最长不超过2640个字符一行可以有多个语句,用“;”分隔一个语句可分行写,读行标记为&(放在尾部),但如为关键字,首尾均加&。
最多可有511个续行。
2.说明语句必须出现在可执行语句之前,格式说明语句(FORMAT语句)除外。
3.注释标志符:自由格式:!固定格式:C *语句分隔符:分号;(仅自由格式可以使用)续行符:自由格式:&申明标号:1到5位无符号整数空格:关键字、变量、常量内部不能用空格,但相邻两者之间须用空格4.信息处理的分类:数值处理和信息处理现代计算机工作原理:程序存储和程序控制(冯·诺依曼)1、运算器——算术运算、逻辑运算2、控制器——根据指令控制计算机工作运算器、控制器和寄存器称为中央处理器CPU3、I/O设备——提供数据传输服务4、总线——数据传输的公共通道1.机器语言:二进制代码形式,可以被计算机直接执行,不可移植2.汇编语言:用助记符来代替机器指令,容易记忆,不可移植3.高级语言:接近自然语言(英语)的程序设计语言,又称算法语言,易学、易用、易维护,可移植性好例:FORTRAN、BASIC、PASCAL、C、LISP、PROLOG等5.FORTRAN90程序是一种分块结构,由若干个程序单元块组成:主程序、外部子程序、模块、块数据单元无论是主程序单元,还是子程序单元,都是独立的程序单位,应该独立编写,它们的形式相似。
非语句行:注释语句:!后的所有字符都被编译器忽略。
可独占一行,也可在其它语句之后,空行为注释行(固定格式用C和*)6.常量的定义:常量是程序执行过程中不能变化的量。
基本数据类型有五种:整型、实型、复型、字符型和逻辑型前三种属于数值类型,后两种为非数值类型,主要用于文字处理和控制。
FORTRAN 90通过KIND值确定整数的存储开销、最大位数和取值范围,如表所示。
Abaqus6.14-1关联fortran
Abaqus6.14-1关联fortran系统环境:Win7,64位系统所用软件和安装顺序为:1、abaqus 6.14-12、Visual studio 2013简体中文专业版,免费,下载地址为:链接: /s/1geBJEYf密码: 5qvf3、Fortran.XE2013-SP1,下载地址为:链接: /s/1i4FJvcp密码: 7w8i安装后进行关联1、在Visual Studio安装盘搜索名称为vcvarsall的文件,找到后点右键,建立该文件的快捷方式,右键点击快捷方式,选择属性,在快捷方式标签下,复制“目标”内的内容,粘贴到word,得到快捷方式地址2、用同样的方式找到Fortran.XE2013-SP1安装盘下的ifortvars文件,提取快捷方式的地址粘贴到word3、在abaqus的安装盘下找到abq6141.bat,(我的文件路径是D:\SIMULIA\Abaqus\Commands,在进行操作前可以复制该文件保存在别的位置,以免出错后abaqus无法启动。
)右键——编辑,在原有内容前面加上以下两行:call "D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat"intel64 vs2013其中红色部分是1和2的快捷方式地址。
4、开始,所有程序,abaqus 6.14-1,abaqus verification,静待验证结果5、所有项均为pass,验证通过。
(完整word版)ABAQUS常用技巧归纳(图文并茂)
ABAQUS学习总结1.ABAQUS中常用的单位制。
-(有用到密度的时候要特别注意)单位制错误会造成分析结果错误,甚至不收敛。
2.ABAQUS中的时间对于静力分析,时间没有实际意义(静力分析是长期累积的结果)。
对于动力分析,时间是有意义的,跟作用的时间相关。
3.更改工作路径4.对于ABAQUS/Standard分析,增大内存磁盘空间会大大缩短计算时间;对于ABAQUS/Explicit分析,生成的临时数据大部分是存储在内存中的关键数据,不写入磁盘,加快分析速度的主要方法是提高CPU的速度。
临时文件一般存储在磁盘比较大的盘符下提高虚拟内存5.壳单元被赋予厚度后,如何查看是否正确。
梁单元被赋予截面属性后,如休查看是否正确。
可以在VIEW的DISPLAY OPTION里面查看。
6.参考点对于离散刚体和解析刚体部件,参考点必须在PART模块里面定义。
而对于刚体约束,显示休约束,耦合约束可以在PART ,ASSEMBLY,INTERRACTION,LOAD等定义参考点.PART模块里面只能定义一个参考点,而其它的模块里面可以定义很多个参考点。
7.刚体部件(离散刚体和解析刚体),刚体约束,显示体约束离散刚体:可以是任意的形状,无需定义材料属性,要定义参考点,要划分网格。
解析刚体:只能是简单形状,无需定义材料属性,要定义参考点,不需要划分网格。
刚体约束的部件:要定义材料属性,要定义参考点,要划分网格。
显示体约束的部件:要定义材料属性,要定义参考点,不需要要划分网格(ABAQUS/CAE会自动为其要划分网格)。
刚体与变形体比较:刚体最大的优点是计算效率高,因为它在分析作业过程中不参与所在基于单元的计算,此外,在接触分析,如果主面是刚体的话,分析更容易收敛。
刚体约束和显示体约束与刚体部件的比较:刚体约束和显示体约束的优点是去除约束后,就可以立即变为变形体。
刚体约束与显示体约束的比较:刚体约束的部件会参与计算,而显示约束的部件不会参与计算,只是用于显示作用。
abaqus调用子程序的方法
Abaqus运行子程序方法试了好几种调用子程序的方法最后总算找到了最简单的了,非常感谢仿真论坛上的网友的分享:首先需要装Microsoft Visual Studio(简写mvs),再装Intel Visual Fortran(IVF)。
通常的组合是Abaqus 可使用:MVS2008+ MVS2008+ 这二种组合最好都使用英文版的。
照着附录1 方法装一般没什么问题。
但是一般都是先装abaqus后才想到去装MVS以及IVF的。
很多时候都把MVS 以及 IVF装好以后才想到去验证的,而且MVS很多都是中文的,MVS不仅装的慢卸载残留也很多好麻烦。
搞了好久都验证不了,看了附录二的方法下面2个网友的回复后豁然开朗,一切都是那么简单。
附录二的方法的主要作用可能就是将VC++和Fortran的环境变量一并启动了,参考过以前版上的安装教程,通过在ABAQUS的快捷方式中添加命令,亦能够达到同样效果,同样也是不能通过verification,但是可以运行子程序,通过在ABAQUS CAE的快捷方式的目标中,添加"D:\Program Files (x86)\Intel\Compiler\Fortran\" && (跟附录1中的修改快捷方式的目标一样)达到了同样的效果(摘自ppengine,tcboywjr网友的回复)。
只需在搜索栏中搜索,再把路径添加上去照上面的形式修改便可。
本人用的是win7系统装的是(中文版)IVF11,abaqus好早就装了,装MVS2008之前装了mvs2010,发现2010不好装ivf,然后又卸了装mvs2008中文,验证时出现附录Ⅰ的情况,就C++项通不过还以为装C++2010就好了,又重装了一下mvs2010的C++(囧),发现还是用不了,校园网速太慢又不想下mvs2008(英文版),最后在附录2的方法下面发现了两位网友的分享非常感谢。
附录二的方法也试过好像运算完了会出错误,不知道什么原因。
Abaqus子程序安装及调用
Abaqus子程序安装与调用软件要求:1 Microsoft Visual Studio 20052 Intel Visual Fortran Complier 9.13 Abaqus 6.7及以上版本下面先介绍以上三个软件如何单独(即只安装其中某个软件)安装:Microsoft Visual Studio 2005 安装:建议采用默认路径,全部安装。
若是磁盘空间有限,可以只选必选模块VC++和 Framework SDK V2.0Intel Visual Fortran Complier 9.1安装:建议采用默认路径,全部安装。
Abaqus 6.X安装:1 将DVD2载入虚拟光驱进行安装2 在我的电脑-点击右键-属性-高级-环境变量中,创建系统变量,名为LM_LICENSE_FILE,并且令其值等于27003@127.0.0.1 (127.0.0.1指向你的电脑,这样就无需去查计算机名字,而且不用担心计算机名字是汉字,软件无法识别的问题)3 将DVD1载入虚拟光驱,安装License Services,其中选择Justinstall the licensing utilities。
装好License Services后,会提示时候安装Production,这是先别急着安装和退出安装向导界面。
4 右键打开虚拟光驱,复制Crack目录下的****.dat文件到已经装好的License,这个文件就是License文件。
用记事本打开该文件,第一行是“SERVER <this_host> ID=20111111 27011”,将“<this_host>”改为127.0.0.1,并将27011改为27003,以保证与LM_LICENSE_FILE的值一致,然后保存修改并关闭该文件。
5 运行License目录下的lmtools.exe,如下图操作:运行后切换到Config Services选项卡点击上图中第一个Browse,选择License目录下的lmgrd.exe点击上图中第二个Browse,选择License目录下已编辑过的***.dat 点击Save Service保存修改,再切换到Start/Stop/Reread选项卡如下图所示,点击Start Server按钮启动服务。
ABAQUS与FORTRAN 问题小结
ABAQUS与FORTRAN论坛问题小结Q:索了一下论坛发现以前的问题都是不同类型的子程序,如UEL, UMA T...这样把它们放在一个.for文件里不会有误会,但是如果都是UEL的话,该怎么识别呢?A:subroutine Umat()IF (CMNAME(1:4) .EQ. 'MAT1') THENCALLUMAT_MAT1(argument_list)ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THENCALLUMAT_MAT2(argument_list)END IF上面是区分不同umat的方法,区分uel应该类似吧Q:行abaqus的时候出现这样的提示"Problem during compilation - df.exe not found in PA TH."请问这是什么原因.A: 就是说找不到用于编译的df.exe文件(好像是Fortran的编译运行文件),在Windows控制面板的“系统”里,打开高级属性,将系统的PA TH添加上Fortran的路径,最好也一并把INCLUDE和LIB也都添加上对应的FORTRAN的路径。
Q: 如何在ABAQUS中调用用户子程序UMATA:abaqus job=*** user=*.for or *.objA: 装好fortran编译器的前提下,有两种方式:1、命令行:abaqus job=*.inp user=*.for或abaqus job=*.inp user=*.obj (可以由*.f90编译后得到)2、菜单格式:先运行CAE,在general设置中可以指定Umat用户子程序A: job=jobname user=yourfortran.for(其它类型子程序)A:如果是本构的二次开发:*material, userQ: abaqus job=job-name user={source-file | object-file}source-file和object-file各是什么?A: fortran的源文件(.for)或者目标文件(.o)在command下面输入以上命令行就可以正常运行. 用户子程序再调用别的fortran程序时,要加入abaqus 子程序中的include'ABA_PARAM.INC'。
ABAQUS中Fortran子程序调用方法-自己总结
第一种方法:在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。
第二种方法:1. 建立工作目录2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或 aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;3. 将编译的fortran程序拷贝到工作目录;4. 将.obj文件拷贝到工作目录;5. 建立好输入文件.inp;6. 运行abaqus job=inp_name user=fortran name即可。
以下是网上摘录的资料,供参考:用户进行二次开发时,要在命令行窗口执行下面的命令:abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe 等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\LocalSettings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1 子程序格式(程序后缀是.f; .f90; .for;.obj??)答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for (.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。
ABAQUS与FORTRAN问题小结
ABAQUS与FORTRA N论坛问题小结Q:索了一下论坛发现以前的问题都是不同类型的子程序,如UEL, UMA T...这样把它们放在一个.for文件里不会有误会,但是如果都是U EL的话,该怎么识别呢?A:subrout ine Umat()IF (CMNAME(1:4) .EQ. 'MAT1') THENCAL LUMAT_MA T1(argumen t_list)ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THENCAL LUMAT_MA T2(argumen t_list)END IF上面是区分不同umat的方法,区分uel应该类似吧Q:行abaqus的时候出现这样的提示"Problem duringcompila tion - df.exe not found in PA TH."请问这是什么原因.A: 就是说找不到用于编译的df.exe文件(好像是Fort ran的编译运行文件),在Window s控制面板的“系统”里,打开高级属性,将系统的PAT H添加上Fo rtran的路径,最好也一并把I NCLUDE和LIB也都添加上对应的FORTRA N的路径。
Q: 如何在ABAQ US中调用用户子程序UM A TA:abaqusjob=*** user=*.for or *.objA: 装好fortr an编译器的前提下,有两种方式:1、命令行:abaqusjob=*.inp user=*.for或 abaqusjob=*.inp user=*.obj (可以由*.f90编译后得到)2、菜单格式:先运行CAE,在genera l设置中可以指定Umat用户子程序A: job=jobname user=yourfor tran.for(其它类型子程序)A:如果是本构的二次开发:*materia l, userQ: abaqusjob=job-name user={source-file | object-file}source-file和ob ject-file各是什么?A: fortran的源文件(.for)或者目标文件(.o)在comman d下面输入以上命令行就可以正常运行.用户子程序再调用别的for tran程序时,要加入abaq us 子程序中的in clude'ABA_PAR AM.INC'。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一种方法:在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User
subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。
第二种方法:
1. 建立工作目录?崠
2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或aba_param_sp.inc 拷贝到工作目录,并改名为aba_param.inc;
3. 将编译的fortran程序拷贝到工作目录;
4.将.obj文件拷贝到工作目录;
5. 建立好输入文件.inp;
6. 运行abaqus job=inp_name user=fortran name即可。
以下是网上摘录的资料,供参考:
用户进行二次开发时,要在命令行窗口执行下面的命令:
abaqus job=job_name user=sub_name
ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。
这种运行机制与ANSYS、LS-DYNA、marc等都不同。
这些生成的临时文件要到文件夹C:\Documents and Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1子程序格式(程序后缀是.f; .f90; .for;.obj??)
答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。
如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。
2CAE中如何调用?Command下如何调用?
答:CAE中在creat job的job manager中的general中可以指定子程序;Command下用命令:abaqus j=jobname user=userfilename (无后缀);
3若有多个子程序同时存在,如何处理
答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册)++编写子程序?C,VC不是很熟,是否可以用VF我对4.
A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的
ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应
的位置,并改名为ABA_PARAM.INC即可。
据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。
在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UV ARM和UFIELD这两个subroutine,显然会造成重复定义,请查实。
用户子程序的使用
假设你的输入文件为:a.inp b.for
那么在ABAQUS Command中的命令应该是这样的:
abaqus job=a user=b
对于abaqus64pr11,command 中输入:
abq64pr11 job=a user=b就可以了。
当然首先你要用cd 命令进入输入文件所在的当前文件目录。
强烈建议使用command来操作。
子程序文件名后缀应为.for,而不是.f
ABAQUS/CAE处理有两个程序:①内核程序;②GUI (graphical user interface —图形用户界面)程序。
内核程序实际上就是它的脚本语言,它采用的是Python语言,同时扩展了Python 语言,额外提供了大约500个对象模型,对象模型之间的关系复杂。
GUI程序(图像用户界面程序)是一个方便用户输入或选择参数的图形用户接口。
ABAQUS/CAE是采用IPC协议来完成内核程序和GUI程序的通信的。
ABAQUS有限元程序通过集成Python语言向二次开发者提供了很多库函数,通过ABAQUS脚本接口(ABAQUS Scripting Interface),Python语言调用这些库函数来增强ABAQUS的交互式操作功能。
它允许用户绕过ABAQUS/CAE的
GUI(graphical user interfaces)直接与内核交互,可以大大提高工作效率或完成ABAQUS/CAE没有提供的功能。
但是因为它没有通过GUI,显的不那么直观,而且如想改变某些参数就不得不修改脚本程序,这些对一般用户来说就显的比较麻烦。
因此,对ABAQUS二次开发一般应先开发出GUI后,让用户输入或选择有关参数后,然后生成ABAQUS的脚本语言来自动处理。
ABAQUS的GUI是用ABAQUS GUI Toolkit来编写,它也是对FOX GUI Toolkit的拓展,它在编写程序时也是遵循Python语言的格式。
ABAQUS二次开发有如下几种途径:
①通过用户子程序可以开发新的模型,控制ABAQUS计算过程和计算结果;的许多缺省设置;ABAQUS通过环境初始化文件可以改变②.
③通过内核脚本可以实现前处理建模和后处理分析计算结果;
④通过GUI脚本可以创建新的图形用户界面和用户交互。
目前使用较多的是第1种方法和第3种方法。
仿真论坛上的帖子:
Abaqus中python的二次开发都是基于前后处理的(差不多就是和CAE进行交流的),要么直接利用Python生成自己需要的模型或者INP(前处理),要么就是利用Python从已有的*.odb中高效地读取自己想要的数据(后处理)。
ABAQUS的自适应网格不改变网格的拓扑结构(单元和连接的关系),它结合了纯拉格朗日分析(网格随材料移动)和欧拉分析(网格位置固定,材料在网格中流动),被称为“任意拉格朗日-欧拉分析(ALE)”。
它通常比纯拉格朗日分析更高效、更精确和更稳定。