当前位置:文档之家› ABAQUS中Fortran子程序调用方法-自己总结

ABAQUS中Fortran子程序调用方法-自己总结

ABAQUS中Fortran子程序调用方法-自己总结
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会自动选择进行操作。

2 CAE中如何调用?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文件中已经有了UVARM和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)”。它通常比纯拉格朗日分析更高效、更精确和更稳定。

FORTRAN 90 程序编程规范

FORTRAN 90 程序编程规范 Fortran 90 编程规范,使程序代码高度组织化,更加易读、易懂、易于维护,程序更加高效。使编出的程序更易懂、易于维护。 1 语言选择 数值预报创新系统软件开发应避免使用Fortran77 的某些过时特征以Fortran 90不一致的特征。选择Fortran 90 作为开发语言,并采用Fortran 90 的新功能,如动态内存的分配(dynamic memory allocation)、递归(recursion ), 模块(modules)、POINTER 、长变量名、自由格式等。 Fortran 77其中某些只是一些冗余的功能,这些功能已经过时,另外,还有一些在Fortran90 中被证明是不好的用法,建议不要使用。 2 Fortran 90 的新特性 2.1.1 建议使用的Fortran 90 新特性 建议使用Fortran 90 提供的模块(module ),并用Use ONLY 指定module 中哪些变量或派生类型定义可用于调用程序。 尽量使用数组下标三元组,这样可优化并减少所需的代码行数。为提高可读性,要在括号内表明数组的维数,例如: 1dArrayA(:) = 1dArrayB(:) + 1dArrayC(:) 2dArray(: , :) = scalar * Another2dArray(: , :) 当访问数组的子集时,例如在有限差分等式中,可以通过使用下标三元组实现。例如:2dArray(: , 2:len2) = scalar *( & Another2dArray(:, 1:len2 -1) & - Another2dArray(:, 2:len2) & ) 对程序单元(program units )命名,并使用End program ,End subroutine ,End interface ,End module 等结构再次指定“program unit ”的名称。 在逻辑表达式中使用>、 >=、 ==、 <、 <=、 /=,它们分别代 替.gt.、.ge.、.eq.、.lt.、.le.、.ne. 。新的表示方法更接近标准的数学符号 在变量定义中始终使用“::”;始终用“DIMENSION ”定义数组形状;始终用(len=)的语法格式声明字符变量的长度。

fortran语法手册

1 FORTRAN77四则运算符 + - * / ** (其中**表示乘方) 在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→() 2 FORTRAN77变量类型 2.1 隐含约定:I-N规则 凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。 如IMPLICIT REAL (I,J) 三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。 2.4 数组的说明与使用 使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例: DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3) REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2) 10FORMAT(1X,5(A2,I2,1X,A2,I4)) 2.5 使用DATA语句给数组赋初值 变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如 DATA A,B,C/-1.0,-1.0,-1.0/ DATA A/-1.0/,B/-1.0/,C/-1.0/ DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)

DATA CHN/10*' '/INTEGER NUM(1000) DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/ 3 FORTRAN77程序书写规则 程序中的变量名,不分大小写; 变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效; 一行只能写一个语句; 程序的第一个语句固定为PROGRAM 程序名称字符串 某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容; 某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容; 某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行; 某行的第7至72字符位为语句区,语句区内可以任加空格以求美观; 某行的第73至80字符位为注释区,80字符位以后不能有内容。 4 FORTRAN77关系运算符 .GT. 大于 .GE. 天于或等于 .LT. 小于 .LE. 小于或等于 .EQ. 等于 .NE. 不等于 .AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQV. 逻辑等 .NEQV. 逻辑不等 运算符优先级由高到低顺序为:()→**→*或/→+或-→.GT.或.GE.或.LT. 或.LE.或.EQ.或.NE.→.NOT.→.AND.→.OR.→.EQV.或.NEQV 5 FORTRAN77语句

Fortran复习题讲解

FORTRAN程序设计复习题 选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= 0.0 B) .NOT. (A*B+C) C) A2+B2/(C+D) <= 0.0 D) (A+B).NOT.A*B.GT.0.0(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/5.0 C) (3/5)*EXP(X+Y) D) (3.0/5.0)EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.0.0) D) A.LT.B.LT.C.LT.D D (4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77 表达式中,合法的是:A)相当于0.0.LE.X .AND.(.NOT.(X.GE.10.0 ))A) 0.0.LE.X .AND..NOT.X.GE.10.0 B) 0.0.GE.X.LT.10.0 C) 0.0.LE.X.GE.10. D) 10.0.LE.X.OR..AND.X.GT.0.0 D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列 C) 第6列 D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参 D) 子程序执行后,MAP将返回整型数据(子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+0.5"的值是 A) 0.5 B) 1 C) 1.0 D) 0 D (12)FORTRAN表达式"MOD(4.9,1.3)"的值是 A)1.3 B)0.0 C)4.9 D)1.0 A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符* C)关系运算符 >= D)算术运算符+ A (14下列语句函数的定义中正确的是 A)F(X,Y)=(X+Y)/(X*Y)+7.0 B)FUNCTION FUN(I,J,K)=3*I+2*J+0.5*K

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会自动为其要划分网格)。 刚体与变形体比较:刚体最大的优点是计算效率高,因为它在分析作业过程中不参与所在基于单元的计算,此外,在接触分析,如果主面是刚体的话,分析更容易收敛。 刚体约束和显示体约束与刚体部件的比较:刚体约束和显示体约束的优点是去除约束后,就可以立即变为变形体。 刚体约束与显示体约束的比较:刚体约束的部件会参与计算,而显示约束的部件不会参与计算,只是用于显示作用。 8.一般分析步与线性摄动分析步 一般分析步:每个分析步的开始状态都是前一个分析步结束时刻的模型状态; 如果不做修改的话,前一个分析步所施加的载荷,边界条件,约束都会延续到当前的分析步中;所定义的载荷,边界条件以及得到的分析结果都是总量。

fortran程序案例题汇编(14道)

1.Fibonacci数列定义如下: F1=1 F2=1 F n=F n-1+F n-2 (n>2) 求Fibonacci数列的前30项。 integer f(30),i f(1)=1 f(2)=2 do i=3,30 f(i)=f(i-1)+f(i-2) enddo print*,f end 2.输入10个学生的总分,求每个学生的名次integer s(10),a(10),i,j do i=1,10 read*,s(i) enddo do i=1,10 a(i)=1 do j=1,10 if(s(i)

3.给定一组数,按照从小到大的顺序输出。integer a(10) integer p do i=1,10 read *,a(i) enddo do j=1,9 p=j do i=j+1,10 if (a(i)

4.输入若干名学生的学号和三门课程(语数英)的成绩,要求从键盘输入一个学生的学号,能打印出该学生的三门功课成绩和总分。 character*6,dimension(:),allocatable::xue integer,dimension(:,:),allocatable::g integer,dimension(:),allocatable::zong integer i,j,n character*6,xh print *,"请输入学生的个数" read *,n allocate(xue(n)) allocate(g(n,3)) allocate(zong(n)) do i=1,n read *,xue(i),(g(i,j),j=1,3) enddo do i=1,n zong(i)=0 do j=1,3 zong(i)=zong(i)+g(i,j) enddo enddo print *,"请输入你要打印的学生的学号" read *,xh do i=1,n if(xue(i)==xh)then print *,(g(i,j),j=1,3),zong(i) exit endif enddo end

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记 2014.10.07 目录 第七讲_FORTRAN的基本知识.ppt (2) FORTRAN语言程序设计初步 (2) FORTRAN源程序的书写格式(以77为例) (2) 变量 (2) 变量类型 (2) 算术运算符和运算优先级 (3) 赋值语句 (3) 参数语句(PARAMETER语句) (3) END语句 (3) PAUSE语句 (3) 逻辑运算和选择结构 (4) 关系表达式 (4) FORTRAN中数组的定义及使用 (4) 其他 (5) 1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5) 2. fortran里character*10 是什么意思 (5) 3. Fortran中kind是什么函数? (5)

第七讲_FORTRAN的基本知识.ppt FORTRAN语言程序设计初步 FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用 数学公式表达的问题而设计的,其数值计算的功能较强。 常用的是FORTRAN77和FORTRAN90两种标准。 1、一个程序由若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。 2、每一个程序单位都是以“END”结束的。 3、一个程序单位包括若干行。 1)语句行。由一个FORTRAN语句组成。 2)非语句行,即注释行。 4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其 他语句引用。 5、一个程序单位中各类语句的位置是有一定规定的。 6、FORTRAN源程序必须按一定的格式书写。 FORTRAN源程序的书写格式(以77为例) 每一行有80列,分别如下: 1、第1-5列为标号区。一行中第一列为“C”或“*”,该行即被认为是注释行。 2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。 3、第7-72列为语句区。 4、第73-80列,注释区。 变量 变量名:一个变量需要用一个名字(变量名)来识别。在同一个程序单位中不能用同一个变量名代表两个不同的变 量。 FORTRAN的变量名按以下规则选定: 1)第一个字符必须是字母,即变量名必须以字母开头; 2)在一个字母后面可以跟1-5为数字或字母。 如果选定的变量名超过6个字符,则只有前面6个字符有效。 注:在变量名中大写与小写字母是等价的。 变量类型 整型变量Integer、实型变量Real、双精度变量Double Precision、复型变量Complex、逻辑型变量Logical和字符型变量Character。 1、隐含约定(I-N规则) FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。 在程序中,凡是变量名以字母I,J,K,L,M,N,i,j,k,l,m,n开头的变量被默认为整型变量,以其他字母开头的变量被 默认为实型变量。 2、用类型说明语句确定变量类型 1)INTEGER语句(整型说明语句) 2)REAL语句(实型说明语句) 3)DOUBLE PRECISION语句(双精度说明语句) 4)COMPLEX语句(复型说明语句) 5)LOGICAL语句(逻辑型说明语句)

本人学习abaqus五年的经验总结-让你比做例子快十倍

第二章 ABAQUS 基本使用方法 [2](pp15)快捷键:Ctrl+Alt+左键来缩放模型;Ctrl+Alt+中键来平移模型;Ctrl+Alt+右键来旋转模型。 ②(pp16)ABAQUS/CAE 不会自动保存模型数据,用户应当每隔一段时间自己保存模型以避免意外丢失。 [3](pp17)平面应力问题的截面属性类型是Solid(实心体)而不是Shell(壳)。 ABAQUS/CAE 推荐的建模方法是把整个数值模型(如材料、边界条件、载荷等)都直接定义在几何模型上。载荷类型Pressure 的含义是单位面积上的力,正值表示压力,负值表示拉力。 [4](pp22)对于应力集中问题,使用二次单元可以提高应力结果的精度。 [5](pp23)Dismiss 和Cancel 按钮的作用都是关闭当前对话框,其区别在于:前者出现在包含只读数 据的对话框中;后者出现在允许作出修改的对话框中,点击Cancel 按钮可关闭对话框,而不保存 所修改的内容。 [6](pp26)每个模型中只能有一个装配件,它是由一个或多个实体组成的,所谓的“实体”(instance) 是部件(part)在装配件中的一种映射,一个部件可以对应多个实体。材料和截面属性定义在部件上,相互作用(interaction)、边界条件、载荷等定义在实体上,网格可以定义在部件上或实体上,对求解过程和输出结果的控制参数定义在整个模型上。 [7](pp26) ABAQUS/CAE 中的部件有两种:几何部件(native part)和网格部件(orphan mesh part)。 创建几何部件有两种方法:(1)使用Part 功能模块中的拉伸、旋转、扫掠、倒角和放样等特征来直 接创建几何部件。(2)导入已有的CAD 模型文件,方法是:点击主菜单File→Import→Part。网格部件不包含特征,只包含节点、单元、面、集合的信息。创建网格部件有三种方法:(1)导入ODB 文件中的网格。(2)导入INP 文件中的网格。(3)把几何部件转化为网格部件,方法是:进入Mesh 功能模块,点击主菜单Mesh→Create Mesh Part。 [8](pp31)初始分析步只有一个,名称是initial,它不能被编辑、重命名、替换、复制或删除。在初始分析步之后,需要创建一个或多个后续分析步,主要有两大类:(1)通用分析步(general analysis step)可以用于线性或非线性分析。常用的通用分析步包含以下类型: —Static, General: ABAQUS/Standard 静力分析 —Dynamics, Implicit: ABAQUS/Standard 隐式动力分析 —Dynamics, Explicit: ABAQUS/ Explicit 显式动态分析 (2)线性摄动分析步(linear perturbation step)只能用来分析线性问题。在ABAQUS/Explicit 中 不能使用线性摄动分析步。在ABAQUS/Standard 中以下分析类型总是采用线性摄动分析步。 —Buckle: 线性特征值屈曲。 —Frequency: 频率提取分析。 —Modal dynamics: 瞬时模态动态分析。 —Random response: 随机响应分析。 —Response spectrum: 反应谱分析。 —Steady-state dynamics: 稳态动态分析。 [9](pp33)在静态分析中,如果模型中不含阻尼或与速率相关的材料性质,“时间”就没有实际的物 理意义。为方便起见,一般都把分析步时间设为默认的 1。每创建一个分析步,ABAQUS/CAE 就会自动生成一个该分析步的输出要求。 [10] (pp34)自适应网格主要用于ABAQUS/Explicit 以及ABAQUS/Standard 中的表面磨损过程 模拟。在一般的ABAQUS/Standard 分析中,尽管也可设定自适应网格,但不会起到明显的作用。 Step 功能模块中,主菜单Other→Adaptive Mesh Domain 和Other→Adaptive Mesh Controls 分别 设置划分区域和参数。 [11](pp37)使用主菜单Field 可以定义场变量(包括初始速度场和温度场变量)。有些场变量与分析步有关,也有些仅仅作用于分析的开始阶段。使用主菜单Load Case 可以定义载荷状况。载荷状况由一系列的载荷和边界条件组成,用于静力摄动分析和稳态动力分析。

中国海洋大学Fortran程序考试典型题

1、找出100-150之间和400-450之间能被9整除的数 2、找出100-999之间的回文数 3、找出水仙花数

4、输出“*”图形 5、输入n个数,找出大于平均值的数和最小数

6、把一个数值型数组的相同数删除到只剩一个 7、形成一个5*5矩阵,对角线元素为“i”,其余为“j”program juzhen implicit none integer I,J integer,parameter::size=5 integer::a(size,size) forall(I=1:size,J=1:size,I>J) a(I,J)=j forall(I=1:size,J=1:size,I==J) a(I,J)=i forall(I=1:size,J=1:size,I

integer,allocatable::c(:) write(*,*) "输入数组A的数据个数" read(*,*) n write(*,*) "输入数组B的数据个数" read(*,*) m l=m+n allocate (a(n)) allocate (b(m)) allocate (c(l)) write(*,*) "从小到大输入A的元素" do i=1,n read(*,*) a(i) end do write(*,*) "从小到大输入B的元素" do i=1,m read(*,*) b(i) end do do i=1,n c(i)=a(i) end do i=1 do while(i=c(n))then n=n+1 c(n)=b(i) goto 10 else if(b(i)>c(j).and.b(i)

(完整)总结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 ,选择打勾。同样可以修改这些字体大小、位置等等。

fortran程序实例

1)实例3—求多个半径下的圆周长 ! z3.f90 --Fortran95 ! FUNCTIONS: ! z3 - Entry point of console application. !************************************************************************* ! PROGRAM: z3 ! PURPOSE: Entry point for the console application. !************************************************************************ program z3 ! 求多个半径下的圆周长 ! 主程序 ! PROGRAM Z3 PRINT *, 'R=',1.2,'C=',C(1.2) PRINT *, 'R=',3.4,'C=',C(3.4) PRINT *, 'R=',15.6,'C=',C(15.6) PRINT *, 'R=',567.3,'C=',C(567.3) END program z3 !子程序 FUNCTION C(R) PI=3.1415926 C=2*PI*R RETURN ! Body of z3 end

2)实例4—键盘与显示器输入/输出 a)Fortran 基本操作 b)程序指令 ! ZXZ_I_O.f90 ! FUNCTIONS: ! ZXZ_I_O - Entry point of console application. ! PROGRAM: ZXZ_I_O ! PURPOSE: Entry point for the console application. !***************输入、输出样式种种************************** program ZXZ_I_O implicit none !变量声明的位置 INTEGER(2) i; INTEGER(4) j; INTEGER(4) m; REAL n INTEGER A,B ! Variables PRINT*,'输入整数A'; READ*, A PRINT*,'输入整数B'; READ*, B B=A+B PRINT*,'B=A+B=',B WRITE(*,*) 'A*B=',A*B PRINT* ,'以上为计算机的计算结果,注意B的值'

Fortran常用函数

1、RANDOM_NUMBER Syntax ['sint?ks] n. 语法 CALL RANDOM_NUMBER (harvest结果) Intrinsic Subroutine(固有子程序):Returns a pseudorandom number greater than or equal to zero and less than one from the uniform distribution. 返回大于或等于0且小于1,服从均匀分布的随机数 2、RNNOA/ DRNNOA (Single/Double precision) Generate pseudorandom numbers from a standard normal distribution using an acceptance/rejection method. 产生服从标准正态分布的随机数 Usage(用法) CALL RNNOA (NR, R) Arguments(参数) NR— Number of random numbers to generate. (Input) 要产生随机数的个数 R— Vector of length NR containing the random standard normal deviates. (Output) 输出长度为NR,随机正态分布的向量 Comments(注解) The routine RNSET can be used to initialize the seed of the random number generator. The routine RNOPT can be used to select the form of the generator. 程序RNSET可以用来初始化随机数发生器的种子 Example In this example, RNNOA is used to generate five pseudorandom deviates from a standard normal distribution. INTEGER ISEED, NOUT, NR REAL R(5) EXTERNAL RNNOA, RNSET, UMACH C CALL UMACH (2, NOUT) NR = 5 ISEED = 123457 CALL RNSET (ISEED) CALL RNNOA (NR, R) WRITE (NOUT,99999) R 99999 FORMAT (' Standard normal random deviates: ', 5F8.4) END Output Standard normal random deviates: 2.0516 1.0833 0.0826 1.2777 -1.2260

FORTRAN程序设计复习题及答案

FORTRAN程序设计复习题 一、选择题 B (1)下列各FORTRAN表达式中合法的是 A) S+T*2P >= B) .NOT. (A*B+C) C) A2+B2/(C+D) <= D) (A+B).NOT.A*B.GT.(.NOT.只跟一个表达式) C (2)数学式(3/5)ex+y的FORTRAN表达式是 A) 3*EXP(X+Y)/5 B) 3*E* *(X+Y)/ C) (3/5)*EXP(X+Y)D) EXP(X+Y) D (3)下列FORTRAN77表达式中不合法的是 A) A.GT.B.EQV.C.GT.D B) A.AND.B.AND.C.AND.D C) .NOT.(X.LE.D) A.LT.B.LT.C.LT.D D(4)下列叙述中不正确的是 A) FORTRAN子程序可以单独编译 B) 对一个FORTRAN源程序进行编译和连接无误后可生成可执行文件 C) 即使编译和连接都正确无误,FORTRAN程序运行时仍可能出错 D) FORTRAN连接的主要任务是把函数库中的函数翻译成机器指令(正确描述:主要任务为连接目标文件) B (5)在下列FORTRAN77运算符中,优先级最高的是 A) .AND. B) .NOT. C) .OR. D) .EQ. B (6)FORTRAN表达式"6/5+9/2**3/2"的值为 A) 33 B) 1 C) 5 D) 3 A (7)下列FORTRAN77表达式中,合法的是: A) .AND.. B) 10.0 C) D) 提示:A)相当于 .AND.(.NOT.()) D (8)关于编译一个FORTRAN源程序文件,下列说法中错误的是 A) 允许编译只有一个主程序而没有子程序的源文件 B) 允许编译有多个子程序的源文件 C) 允许编译只有一个子程序而没有主程序的源文件 D) 允许编译有多个主程序的源文件 C (9)在FORTRAN77源程序中,续行标志符必须放在 A) 第1列 B) 第1-6列C) 第6列D) 第5列 D (10)下列关于"SUBROUTIN E MAP(X,Y)"语句行的叙述中,不正确的是 A) 这是子程序的第一个语句 B) 字符串"MAP"是子程序名 C) 变量X是子程序的形参D) 子程序执行后,MAP将返回整型数据 提示:子程序无返回值,自定义函数才有) A (11)FORTRAN表达式"2/4+"的值是 A) B) 1 C) D) 0 提示:2/4默认等于整型,=》 D (12)FORTRAN表达式"MOD,"的值是 A) B)0.0 C) D) A (13下列FORTRAN运算符中,优先级最低的是 A)逻辑运算符.AND. B)算术运算符*

Abaqus遇到的问题小结

Abaqus遇到的问题小结 1.Abaqus量纲系统(SI):m、N、Kg、s、Pa、J、Kg/m3。 2.有限元单元类型(Element Type):实体单元、壳单元、杆件单元(梁Beam、桁架Truss) 怎样将部件的不同部分设定为不同的子集 tools >partition cell/plane(如果是要分层使用,则进行分割,分别赋予不同的属性;或者对其中的单元进行设置Set;如果要在运算中替换则需要在关键词里添加语句定义) 4.建模的过程中输入的尺寸被自动降低精度(四舍五入),请问如何设置尺寸精度(小数点位数) 在 sketch option里打开sketch模块(左下角最下面)打开sketchoption 对话框,其中decimal places 表示小数点位数,默认为2,最高能调到6 。 中出现,Dependent partinstances connot be edited ,怎么办 mesh on part , mesh on instance一个非独立实体只是原始部件的一个指针,可以对原始部件划分网格,但是不能对一个非独立实体划分网格,即mesh on part。 方法:左边模型树里面,Assembly->instances里面的子选项右击,点Make independent;或者点击model旁边的Part,对part进行网格划分。 6.材料属性中拉伸强度和压缩强度怎么定义 计算结果有每个计算节点的应力,计算中用不到强度值(弹性力学三组基本方程不涉及强度,求解过程用不到)。(强度值是用来校核的:断裂,屈服或超过线性变形) 7.如何选择创建独立实体还是非独立实体 如果集合中包含许多具有相同性质的部件,则创建非独立实体(Dependent)。反之,如果集合中包含许多不同性质的部件,则创建独立实体(Independent)要有优势些。 8.地基土的分层问题 方法1:定义为一个part,然后partition分层赋材料属性,不需要设置接触。(超级赞!!!)

FORTRAN知识点总结

F O R T R A N 第2章FORTRAN90基础知识: 程序单元的概念: fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。每个程序只有一个主程序单元。各单元体的程序体形式上相同。 程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。 语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。 字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。 数据结构: 整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回; 实型REAL ,小数形式和指数形式;复型COMPLEX (种别类

型参数值取实部与虚部中较大者); 字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成; 逻辑型LOGICAL。 派生数据类型TYPE; 数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A); 字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。 变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。 第3章基本语句: 类型说明语句:类型说明(种别说明),属性说明::变量名表 尽量避免把两个实数作相等或不相等的比较。淘汰隐式说明IMPLICIT NONE 种别说明:种别参数即对可移植数据精度和范围进行选择的机制 KIND(X) 返回变元X的种别参数值 SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。N指十进制有效位数,m指明值范围内以10为底的幂次。

几个fortran程序

计算圆周率 REAL R,R1,R2,PI ISEED=RTC() N0=0 N=300000 DO I=1,N R1=RAN(ISEED) R2=RAN(ISEED) R=SQRT(R1*R1+R2*R2) IF(R<1.0)N0=N0+1 END DO PI=4.0*N0/N WRITE(*,*)PI END 一)蒙特卡洛计算生日问题 假设有N个人在一起,各自的生日为365天之一,根据概率理论,与很多人的直觉相反,只需23个人便有大于50%的几率人群中至少有2个人生日相同。 INTEGER M(1:10000), NUMBER1(0:364), NUMBER2 REAL X,Y ISEED=RTC() DO J=1, 10000 NUMBER1=0 X=RAN(ISEED) NUMBER1(0)=INT(365*X+1) JJJ=1 DO I=1,364 Y=RAN(ISEED) NUMBER2=INT(365*Y+1) ETR=COUNT(NUMBER1.EQ.NUMBER2) IF (ETR= =1) THEN EXIT ELSE JJJ=JJJ+1 M(J)=JJJ NUMBER1(I)=NUMBER2 END IF END DO END DO DO I=1,10000 IF(M(I).LE.23) SUM=SUM+1 END DO PRINT *,SUM/10000 END 二)MONTE CARLO SIMULATION OF ONE DIMENSIONAL DIFFUSION 蒙特卡罗计算一维扩散问题

INTEGER X,XX(1:1000,1:1000) REAL XXM(1:1000) ! X:INSTANTANEOUS POSITION OF ATOM ! XX(J,I):X*X ,J:第几天实验,I:第几步跳跃 ! XXM(I): THE MEAN OF XX WRITE(*,*) "实验天数JMAX,实验次数IMAX" READ(*,*) JMAX,IMAX ISEED=RTC() DO J=1,JMAX !第几天实验 X=0 !!! DO I=1,IMAX !第几步跳跃 RN=RAN(ISEED) IF(RN<0.5)THEN X=X+1 ELSE X=X-1 END IF XX(J,I)=X*X END DO END DO OPEN(1,FILE="C:\DIF1.DAT") DO I=1,IMAX XXM=0.0 XXM(I)=1.0*SUM(XX(1:JMAX,I))/JMAX !! WRITE(1,*) I, XXM(I) END DO CLOSE(1) END 三维的! 三)通过该程序了解FORTRAN语言如何画图(通过像素画图)USE MSFLIB INTEGER XR,YR !在的区域中画一个圆 PARAMETER XR=400,YR=400 INTEGER R, S(1:XR,1:YR) X0=XR/2 ! 圆心位置X0,YO Y0=YR/2 R=MIN(X0-10,Y0-10) !圆半径 S=0 !像素的初始状态(颜色) DO I=1,XR DO J=1,YR IF((I-X0)**2+(J-Y0)**2<=R**2)S(I,J)=10 IER=SETCOLOR(S(I,J)) IER=SETPIXEL(I,J) END DO END DO END

相关主题
文本预览
相关文档 最新文档