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_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若有多个子程序同时存在,如何处理

答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册)

4我对VF不是很熟,是否可以用VC,C++编写子程序?

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)”。它通常比纯拉格朗日分析更高效、更精确和更稳定。

Abaqus2016版本关联子程序教程

Abaqus关联子程序 2020.10.3开始看了很多安装的资料,10.4号上午找了很久的资源,下午开始安装,严格按照视频当中的操作进行的安装,但是一直失败,因为abaqus关联子程序是有版本要求的,其中会用到visual studio和Intel visual fortran两个软件,对于abaqus、visual studio和Intel visual fortran的版本都有要求不是你想用哪个就能用哪个的,因为我一直用的abaqus2016,在网上搜到的是使用visual studio2012+Intel visual fortran2013或者visual studio2013+Intel visual fortran2013这个搭配是可以的。开始尝试了很多次,都不能成功关联,10.5我将电脑恢复了出厂设置,按照先安装visual studio2013,然后Intel visual fortran2013最后abaqus2016的顺序成功关联,所以最好是用没有安装过abaqus的电脑来关联,如果不行就恢复出厂设置试试。接下来简单记录。 一、怎么看是否关联成功 1.打开cae 2.在黑框框里会显示 3.打开abaqus检查程序会自己检查。

4.如果关联成功,程序检查完以后会出现一个文档,里面的选项都是PASS就是关联 成功,最后一项如果是错误没事的

二、安装visual studio2013

我只用FORTRAN所以这里只选择用于C++的基础类就好

跑完就好了 三、安装Intel visual Fortran2013

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_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若有多个子程序同时存在,如何处理 答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册) 4我对VF不是很熟,是否可以用VC,C++编写子程序? A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的 ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。

ABAQUS子程序

ABAQUS用户子程序 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序:

ABAQUS与FORTRAN 问题小结

ABAQUS与FORTRAN论坛问题小结 Q:索了一下论坛发现以前的问题都是不同类型的子程序,如UEL, UMA T...这样把它们放在一个.for文件里不会有误会,但是如果都是UEL的话,该怎么识别呢? A:subroutine Umat()IF (CMNAME(1:4) .EQ. 'MAT1') THENCALL UMAT_MAT1(argument_list)ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THENCALL UMAT_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中调用用户子程序UMAT A: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, user Q: abaqus job=job-name user={source-file | object-file}source-file和object-file各是什么?A: fortran的源文件(.for)或者目标文件(.o)在command下面输入以上命令行就可以正常运行. 用户子程序再调用别的fortran程序时,要加入abaqus 子程序中的include 'ABA_PARAM.INC'。 Q: 自己编写子程序需要哪些工作步骤 A: 1.建立工作目录 2.将abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc ; 3.将编好的fortran程序拷贝到工作目录; 4.编译fortran程序,将.obj文件拷贝到工作目录; 5.建立好输入文件.inp; 6.运行abaqus job=inp file name user=fortan name即可。我的要运行abq64pr11 job=inp file name user=fortan name我也学了没多久,按照这个过程成功了一个!你们试一下吧!

abaqus和Fortran程序关联

问题解决了, 首先装上VISUAL STUDIO 2005和intel visual fortran 在安装ABAQUS6.8,关键点始设置环境变量,我的机子不能自动更新,手动的。详见有关帖子 说明:本方法适用于abaqus 6.8.1的安装,并可通过用户子程序验证 方法中均假设软件安装在C:盘,虚拟光驱盘符为X:。 1 安装Visual Studio Pro 2005 (如Abaqus6.8.1要与其他有限元软件协同分析,Visual Studio Pro 2005需要安装SP1补丁) 2 安装Intel.Fortran.Pro.v9.1.034(安装时需勾选“自动更新环境变量”) 3 设置电脑环境变量: 3.1 用户变量 INCLUDE = %IFORT_COMPILER101%\IA32\Include; E:\Program Files\Microsoft Visual Studio 8\VC\include; E:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include LIB = %IFORT_COMPILER101%\IA32\Lib; E:\Program Files\Microsoft Visual Studio 8\VC\lib; E:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Lib; E:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib 3.2 系统变量 LM_LICENSE_FILE = 27003@this_host(this_host改为本机计算名) INCLUDE = %IFORT_COMPILER101%\IA32\Include;E:\Program Files\Microsoft Visual Studio 8\VC\include;E:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include LIB = %IFORT_COMPILER101%\IA32\Lib;E:\Program Files\Microsoft Visual Studio 8\VC\LIB;E:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;E:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib IFORT_COMPILER101 = C:\Program Files\Intel\Compiler\Fortran\10.1.014 LINK_F90 = sstatd.lib sstats.lib smathd.lib smaths.lib sf90mp.lib PATH = %IFORT_COMPILER101%\IA32\Bin;E:\ABAQUS\Commands;E:\Program Files\Microsoft Visual Studio 8\Common7\IDE;E:\Program Files\Microsoft Visual Studio 8\VC\bin;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;E:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;E:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;E:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin 3.3 重启电脑 4. 运行X:\win86_32\vcredist_x86-2.exe 5. 虚拟光驱载入Abaqus镜像安装文件,用记事本等文本编辑软件打开X:\SHooTERS\abaqus68_SummerEdition.dat,this_host改为本机计算名,另存为license.dat 6. 运行X:\setup.exe,安装帮助文档html document 7. 安装license X:\win86_32\license\Windows\Disk1\InstData\VM\install.exe 安装程序询问license的安装方式,选择“just install the licenseing utilities” 需要处请填上27003@hostname 8. 配置license

abaqus 子程序 简单案例

abaqus 子程序简单案例 1. 案例一:ABAQUS子程序在计算机辅助工程中的应用 在计算机辅助工程中,ABAQUS子程序是一种被广泛应用的工具,用于求解各种复杂的物理问题。它可以在ABAQUS有限元软件中调用,通过编写用户自定义的子程序来实现特定的功能。下面将介绍一些常见的ABAQUS子程序案例。 2. 案例二:ABAQUS子程序在材料力学中的应用 ABAQUS子程序在材料力学中的应用非常广泛。例如,可以通过自定义的子程序来模拟材料的非线性行为、塑性变形、断裂行为等。通过在子程序中编写相应的材料本构模型和损伤模型,可以准确地预测材料的力学性能。 3. 案例三:ABAQUS子程序在流体力学中的应用 ABAQUS子程序在流体力学中也有重要的应用。例如,可以通过自定义的子程序来模拟流体的非牛顿性、多相流动、湍流等现象。通过在子程序中编写相应的流体本构模型和湍流模型,可以准确地模拟流体的流动行为。 4. 案例四:ABAQUS子程序在结构力学中的应用 ABAQUS子程序在结构力学中也非常有用。例如,可以通过自定义的子程序来模拟结构的非线性行为、接触和摩擦、动力响应等。通过在子程序中编写相应的结构本构模型和接触模型,可以准确地预

测结构的力学性能。 5. 案例五:ABAQUS子程序在热传导中的应用 ABAQUS子程序在热传导中的应用也非常广泛。例如,可以通过自定义的子程序来模拟材料的热传导行为、热辐射、相变等。通过在子程序中编写相应的热传导模型和相变模型,可以准确地预测材料的热学性能。 6. 案例六:ABAQUS子程序在电磁场中的应用 ABAQUS子程序在电磁场中的应用也有一定的研究价值。例如,可以通过自定义的子程序来模拟电磁场的非线性行为、磁饱和、电磁感应等。通过在子程序中编写相应的电磁场模型和电磁感应模型,可以准确地模拟电磁场的行为。 7. 案例七:ABAQUS子程序在声学中的应用 ABAQUS子程序在声学领域中也有一定的应用。例如,可以通过自定义的子程序来模拟声波的传播、声源的辐射、声学场的耦合等。通过在子程序中编写相应的声学模型和耦合模型,可以准确地模拟声学现象。 8. 案例八:ABAQUS子程序在生物力学中的应用 ABAQUS子程序在生物力学中的应用也非常重要。例如,可以通过自定义的子程序来模拟生物组织的力学行为、生物材料的损伤、生物流体的流动等。通过在子程序中编写相应的生物力学模型和流体

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 学习者。最后再次感谢那些乐于分享的人。 附录1 下面摘自 https://www.360docs.net/doc/8619164438.html,/thread-900894-1-1.html(子程序通过验证官方权威的安装方法) (作者pearqiqi,转载请注明来源) 希望此贴能帮助苦于子程序长期验证不通过的朋友,能终结安装方法不明确的问题,能找到环境变量设置项的依据来源。以下方法适用于Windows下Abaqus v6.6 v6.7 v6.8 v6.9 v6.10 想要在Abaqus里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过Abaqus Verification测试子程序以及其他Abaqus功能是否能正常使用。 子程序通过验证方法: 1:先安装Microsoft Visual Studio(英文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义

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文件中的写法为: *DLOAD PY,PYNU 其中PY为单元集合名称,定义方法为: *Elset, elset=BEAM, generate 1, 5, 1 ... *ELSET,ELSET=PY BEAM 5 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 *Node 1, 0., 0. 2, 20., 0. 3, 40., 0. 4, 60., 0. 5, 80., 0. 6, 100., 0. *Element, type=B31

fortran子程序参数

fortran子程序参数 一、引言 Fortran是一种广泛应用于科学计算和工程领域的编程语言。在Fortran程序中,子程序是一种常用的模块化程序设计方法,允许将重复的任务或功能封装在单独的程序段中,以提高代码的可读性和可维护性。在Fortran子程序中,参数传递是一种常见的操作,用于将数据从一个程序段传递到另一个程序段。本文档将介绍Fortran子程序参数的基本概念、传递方式以及注意事项。 二、参数传递的基本概念 在Fortran中,子程序参数可以通过传值、传引用和传指针等方式进行传递。传值是将参数作为副本传递给子程序,子程序对参数的修改不会影响原始变量的值。传引用是将参数的地址传递给子程序,子程序对参数的修改会影响原始变量的值。传指针是将变量的地址以指针的形式传递给子程序,子程序可以通过指针访问和修改该变量的值。 三、参数传递的方式 1.传值参数:传值参数是通过将数据拷贝到子程序中传递的。在函数调用时,会将原始变量的值复制一份给函数参数,函数对参数的修改不会影响原始变量。例如: ```scss subroutinemy_subroutine(value_param) implicitnone integer,intent(in)::value_param ...

endsubroutinemy_subroutine ``` 在上面的代码中,`value_param`是一个传值参数,子程序对它的修改不会影响原始变量。 2.传引用参数:传引用参数是将原始变量的地址传递给子程序。子程序可以通过该地址访问和修改原始变量的值。例如: ```scss subroutinemy_subroutine(ref_param) implicitnone integer,pointer::ref_param ... endsubroutinemy_subroutine ``` 在上面的代码中,`ref_param`是一个指向整数的指针,子程序可以通过该指针访问和修改原始变量。需要注意的是,传引用参数可能会导致数据竞争和悬挂指针等问题,需要谨慎使用。 3.传指针参数:传指针参数是将变量的地址以指针的形式传递给子程序。子程序可以通过指针访问和修改该变量的值。例如:```scss subroutinemy_subroutine(ptr_param) implicitnone integer,pointer::ptr_param(:) ... endsubroutinemy_subroutine

fortran用法总结

fortran用法总结 Fortran(Formula Translation)是一种高级编程语言,主要用于科 学计算和数值分析。它于1950年代初由IBM公司开发,是最早的高级编 程语言之一、Fortran以其高效的数值计算能力和广泛的应用领域而闻名。 一、语法结构 Fortran的语法结构遵循一定的规则,包括以下几个方面: 1. 注释:在Fortran中,注释以字符“!”开始,可以在程序中的任 何位置添加注释,用于提供代码的解释和说明。 2. 变量和数据类型:Fortran中的变量必须在使用之前进行声明, 可以使用INTEGER、REAL、DOUBLE PRECISION等数据类型。变量名由字母、数字和下划线组成,且不区分大小写。 3. 运算符:Fortran支持各种数学运算符,如加法、减法、乘法、 除法等。还支持逻辑运算符(如AND、OR、NOT)和比较运算符(如等于、大于、小于等)。 4. 控制结构:Fortran支持各种控制结构,如条件语句(IF-THEN-ELSE)、循环语句(DO、DO WHILE)和选择语句(SELECT CASE)。这些 控制结构允许程序根据条件执行不同的操作。 5. 数组:Fortran中可以使用数组来处理一组相关的数据。数组可 以是一维、二维或多维的,可以进行各种操作,如赋值、访问和修改数组 元素。

6. 函数和子程序:Fortran允许定义函数和子程序来封装代码块,以便在程序中多次调用。函数可以返回一个值,而子程序可以执行一系列操作。 二、编程实例 下面是一个简单的Fortran程序的示例,用于计算两个数的和: ``` PROGRAMADDITION IMPLICITNONE INTEGER :: num1, num2, sum WRITE(*,*) 'Enter the first number:' READ(*,*) num1 WRITE(*,*) 'Enter the second number:' READ(*,*) num2 sum = num1 + num2 WRITE(*,*) 'The sum is:', sum STOP ENDPROGRAMADDITION ``` 在这个示例中,首先使用IMPLICIT NONE语句禁止隐式声明变量。然后使用INTEGER类型声明了三个变量num1、num2和sum。接下来使用

fortran 子程序参数

fortran 子程序参数 (最新版) 目录 1.Fortran 子程序参数概述 2.Fortran 子程序参数的定义与声明 3.Fortran 子程序参数的传递与使用 4.Fortran 子程序参数的优点与局限性 正文 1.Fortran 子程序参数概述 在 Fortran 编程语言中,子程序是一种可以实现代码重用的模块化程序结构。通过将一些功能相似的代码组织成一个子程序,可以提高代码的可读性、可维护性和可重用性。为了实现子程序之间的数据交互,Fortran 提供了一种名为“子程序参数”的机制,用于在子程序之间传递数据。 2.Fortran 子程序参数的定义与声明 Fortran 子程序参数的定义与声明主要包括以下几个步骤: (1)在主程序中定义子程序。使用“subroutine”关键字定义一个子程序,并给子程序起一个名字。例如: ```fortran subroutine my_subroutine ``` (2)在子程序中声明参数。在子程序内部,使用“implicit none”语句关闭隐式参数,然后通过“parameter”语句声明子程序参数。例如:```fortran

implicit none parameter :: x = 0, y = 0 ``` (3)在主程序中声明子程序参数。在主程序中,使用“interface”语句声明子程序参数,并指定参数的类型和名称。例如: ```fortran interface my_subroutine subroutine my_subroutine(real :: x, real :: y) end interface ``` 3.Fortran 子程序参数的传递与使用 Fortran 子程序参数的传递与使用主要包括以下几个步骤: (1)在主程序中调用子程序。在主程序中,使用子程序名和括号内的参数列表调用子程序。例如: ```fortran call my_subroutine(3.14, 2.71) ``` (2)在子程序中使用参数。在子程序内部,可以直接使用声明的参数进行相关操作。例如: ```fortran implicit none parameter :: x = 0, y = 0 x = x + 1

Abaqus6.14-1关联fortran

Abaqus6.14-1关联fortran 系统环境:Win7,64位系统 所用软件和安装顺序为: 1、abaqus 6.14-1 2、Visual studio 2013简体中文专业版,免费,下载地址为: 链接: https://www.360docs.net/doc/8619164438.html,/s/1geBJEYf 密码: 5qvf 3、Fortran.XE2013-SP1,下载地址为: 链接: https://www.360docs.net/doc/8619164438.html,/s/1i4FJvcp 密码: 7w8i 安装后进行关联 1、在Visual Studio安装盘搜索名称为vcvarsall的文件,找到后点右键,建立该文件的快捷方式,右键点击快捷方式,选择属性,在快捷方式标签下,复制“目标”内的内容,粘贴到word,得到快捷方式地址

2、用同样的方式找到Fortran.XE2013-SP1安装盘下的ifortvars文件,提取快捷方式的地址粘贴到word 3、在abaqus的安装盘下找到abq6141.bat,(我的文件路径是D:\SIMULIA\Abaqus\Commands,在进行操作前可以复制该文件保存在别的位置,以免出错后abaqus无法启动。)右键——编辑,在原有内容前面加上以下两行: call "D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat"intel64 vs2013 其中红色部分是1和2的快捷方式地址。 4、开始,所有程序,abaqus 6.14-1,abaqus verification,静待验证结果

总结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--part 5、想导入几何模型? part步,file,import--part 6、如何定义局部坐标系 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——OK 11、如何更改CAE界面默认颜色 view->Grahphic options->viewport Background->Solid->choose the wite colour! 然后在file->save options. 12、如何施加静水压力hydrostatic load --> Pressure, 把默认的uniform 改为hydrostatic。这个仅用于standard,显式分析不支持。 13、如何检查壳单元法向 Property module/Assign/normal 14、如何输出单元体积 set步---whole model ----volume/Tickness/Corrdinate-----EVOL 15、如何显示最大、最小应力 在Visualization>Options>contour >Limits中选中Min/Max:Show Location,同样的方法可以知道具体指定值的位置。 16、如何在Visualization中显示边界条件 View——ODB display option——entity display——show boundary conditions 17、后处理有些字符(图例啊,版本号啊,坐标系啊)不想显示, viewport-viewport annotation option ,选择打勾。同样可以修改这些字体大小、位置等等。

abaqus6.13-4 vs2012 Intel_Fortran_2013 sp1_(abaqus6.13中Fortran编译器的配置)

abaqus6.13-4+vs2012+IntelFortran2013 SP1 (abaqus6.13-4中Fortran编译器的配置) 目前Abaqus的最新版本已经是 6.13-4,Intel Fortran编译器的最新版本也已经到了IntelParallel Studio XE 2013 SP1 Fortran Compiler, visual studio的版本也有2012了。 想要在Abaqus里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过Abaqus Verification测试子程序以及其他Abaqus功能是否能正常使用。 一、ABAQUS 与Intel Fortran及Visual Studio的兼容性介绍: 大家知道ABAUQS如果需要用User Subroutine必须有Intel Fortran,而Intel Fortran又必须在Visual Studio的环境下运行。三者之间存在的两两兼容问题,必须引起注意。 目前用的比较多的配搭: Abaqus 6.9+VS2005+Intel Fortran 9.1/10.0/10.1 Abaqus 6.10/6.11/6.12+VS2008+Intel Fortran 10.1 Abaqus 6.13-4+VS2012+Intel Fortran XE2013 SP1(我所使用的)

二、ABAQUS 、Intel Fortran、Visual Studio的安装顺序及安装方法: (1)、安装顺序: step1、安装visual studio(VS)(必须在Intel Fortran XE2013安装之前): 一般而言安装VS没有任何难度,需要注意的一点是对于64位系统需要安装64位支持,而在有些版本中该模块是默认安装中没有选中的。为了避免漏装可以在安装时选择完全安装(complete)。此外,为了避免因为非英文版VS产生的各种不可预料的整合问题,建议使用英文版VS。 step 2、安装intel visual fortran (IVF)。 为了实现IVF和VS的整合(integration to visual studio),step 2需要在step 1之后进行。一般情况下,IVF会在安装时自动检测支持的VS版本并进行整合;对于64位系统同样需要安装64位系统支持,推荐完全安装(For Advanced User)。在VS的help中查看”about Microsoft Visual Studio”,整合成功的话可以在已安装组件列表中找到”Intel(R) Fortran Compiler Integration ” step 3、安装ABAQUS。 step3 相对前两步相对独立,甚至可以先于1、2进行。 (2)、安装方法及下载地址: 1、Abaqus6.13-4: 百度网盘:https://www.360docs.net/doc/8619164438.html,/s/1hq7PjlM 这是个种子,里面包含window,linux,版本,和帮助文件。

总结Abaqus操作技巧总结(个人)演示教学

总结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--part 5、想导入几何模型? part步,file,import--part 6、如何定义局部坐标系 Tool-Create Datum-CSYS--建立坐标系方式--选择直角坐标系or柱坐标系or球坐标 7、如何在局部坐标系定义载荷 laod--Edit load--CSYS-Edit(在BC中同理)选用你定义

abaqus个人学习笔记小结1【范本模板】

1、abaqus中的力载荷 集中力concentrated force、压强pressure(垂直于表面)、表面分布力surface traction (设定沿着某方向) pressure只能施加在面上(几何的面,单元的面),为垂直于表面的分布力; surface traction只能施加在面上(几何的面,单元的面),为沿着某一方向的分布力;concentrated force只能施加在点上(几何的点,节点),要使得集中力产生的效果等同于分布力,则需要将集中力施加在参考点上,然后将参考点与作用面上的节点进行耦合约束coupling(distributed coupling),而不要直接施加在节点上. 一般,如果不要求等效均布力,则集中力最好施加在几何的点上。确实需要施加节点力,则施加在节点上. 对于有限元软件,所有的力载荷本质上都由程序处理成节点力。 2、abaqus计算热电耦合出现Too many attempts made for this increment (1)调整一下计算载荷施加的速度或者调整载荷大小,要么把计算步长设置的小一点,尝试次数设的多一点.这个提示是说计算的过程中直到设定的尝试次数极限仍然求解失败。(2) 分析步主要有初始分析步和后续分析步,每个分析步可以用来描述一个分析过程,例如在后续分析步中施加不同荷载,在初始分析步中施加边界条件等。 增量步是在分析步里面根据模型计算收敛情况设置的,简单模型可以设置较少的增量步,并可使初始增量为1;复杂模型设置多一点增量步,并减少初始增量值。超过设置的允许增量步数,则计算停止。 (3)检查模型,是否存在刚体位移,过约束,接触定义不当等问题 (4)分别建立四个边界条件,BC—1,BC—2,BC-3,BC-4,每一个边界条件定义板的一边固结的支承条件就行了。之前是建立了一个BC—1,四边的约束都定义在 BC-1里面,就算不下去了,不清楚原因。仅供参考学习。 (5)1。可以把初始增量步最小增量步调小,最大增量步的数目调大。这个方法一般很难解决2。用不同的方法重新划分网格,并不是越细越好。3。接触有问题,适当配合方式和接触对参数。4。如果施加载荷比较复杂的话,可以细分分析步。你多尝试修改几次应该能把问题解决,多交流. 3、Inp文件中的部件名称命名要求:英文字母(+数字),不可以有句号!

相关文档
最新文档