当前位置:文档之家› Windows系统下实现ABAQUS计算文件批处理(2007-5-15)

Windows系统下实现ABAQUS计算文件批处理(2007-5-15)

Windows系统下实现ABAQUS计算文件批处理(2007-5-15)
Windows系统下实现ABAQUS计算文件批处理(2007-5-15)

Windows系统中ABAQUS计算文件批处理

Zengguo823

如何实现input文件批处理,一直是广大ABAQUS初学者关心的问题。在ABAQUS软件中好像并没有提供一个界面来实现这个功能,因而不得不自己想办法来实现。但在其他的一些有限元商业软件中,有的软件有这样的模块。据笔者所知Dynaform就单独有一个程序来实现多个job的计算,非常方便用户计算多个文件。自力更生,丰衣足食!现在我们来看看自己如何实现ABAQUS计算文件批处理吧。

DOS批处理文件实现方法

由于可以在命令行窗口启动计算,于是采用dos批处理文件实现是网上盛传的一种方法,这里主要有两个版本。

版本1:

call abaqus job=jobname1

call abaqus job=jobname2

call abaqus job=jobname3

call abaqus job=jobname4

试运行后发现,这些job是同时进行计算的,并不是一个接一个进行计算,这显然有违我们的初衷。那问题出在哪里呢?

问题就在于abaqus job=jobname1完成后,计算工作也许并没有完成,但这条命令已经完成,批处理文件直接转到下一个job的运行。这样运行的结果可能是(大部分情况都是如此),你要运行的job在同时计算。

有没有其他办法了呢?网上别一个版本告诉我们答案。版本2:

call abaqus job=jobname1 int

call abaqus job=jobname2 int

call abaqus job=jobname3 int

call abaqus job=jobname4 int

这里的int其实就是计算执行中的命令参数interactive。在加上int后,只有在当前计算完成后,才会转入下一个模型的计算。

计算机自动关闭

在学习使用python实现批处理之前,我们先简要介绍一下,dos中如何实现计算机的自动关闭。在dos命令行关闭计算机的命令是:

shutdown –s –f –t 60

-s 关闭本地计算机。

-f 强制关闭计算机。

-t xx 将用于系统关闭的定时器设置为xx 秒。上面的设置是60 秒。

需要说明的两点是,-f参数是用在计算机锁定的时候关闭计算机,如果只使用-s在锁定的时候就不能自动关闭计算机了。另外一点是,如果你看到关机的提示,但又不想马上关闭计算机的话,那只有进入命令行窗口,输入shutdown –a解除关闭命令。

几个常用dos下批处理版本

好,那现在dos下批处理加关机的程序应该是:

call abaqus job=jobname1 int

call abaqus job=jobname2 int

call abaqus job=jobname3 int

call abaqus job=jobname4 int

shutdown –s –f –t 60

如果要加运行参数,和平常一样在第一行加上即可,如下面使用多cpu:

call abaqus job=jobname1 cpus=2 int

call abaqus job=jobname2 cpus=2 int

call abaqus job=jobname3 cpus=2 int

call abaqus job=jobname4 cpus=2 int

如果要删除计算中生成的文件:

call abaqus j=nonJt23-2-a int

call del https://www.doczj.com/doc/633195277.html,

call del nonJt23-2-a.dat

call del nonJt23-2-a.fil

call del nonJt23-2-a.mdl

call del nonJt23-2-a.msg

call del nonJt23-2-a.prt

call del nonJt23-2-a.res

call del nonJt23-2-a.stt

如果下一个文件需要restart上一个文件:

call abaqus job=jobname1 int

call abaqus job=jobname2 oldjob=jobname1 int

call abaqus job=jobname3 oldjob=jobname2 int

call abaqus job=jobname4 oldjob=jobname3 int

使用python实现批处理

Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。

在ABAQUS中,python不仅可以实现软件界面的开发,还能够从命令行实现ABAQUS 所有功能。这里用以实现批处理的python语言也就是实现job模块的相关命令。

先看实现job批处理的python基本代码:

from abaqusConstants import *

import job

mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.inp')

mdb.jobs['job-1-1'].submit()

mdb.jobs['job-1-1'].waitForCompletion()

不明白这几行不要紧,只要知道这几行干什么就可以了,这里简单解释一下。

from abaqusConstants import *

import job

导入所需的模块和常量。

mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.inp')

该行通过input文件springback_exp_form.inp生成计算任务job-1-1。inputFileName是input文件的名称,而name是计算任务名称,也就是生成的odb等文件的名称。

mdb.jobs['job-1-1'].submit()

计算文件生成后,提交计算任务。

mdb.jobs['job-1-1'].waitForCompletion()

中断python文件的执行,等待计算任务的完成。在这里waitForCompletion相当于dos 批处理下的参数interactive。

如果要在计算完成后自动关机,加入以下python代码:

import os,time,sys

o="c:\\windows\\system32\\shutdown -s -f -t 60"

os.system(o)

在python实现批处理代码中也可以加入命令行中的各个参数,如numCpus代表使用的cpu数量,explicitPrecision是设定使用explicit模块进行计算的精度等等。下面的代码表示计算任务采用2个cpu,2个domain:

mdb.JobFromInputFile(name='job-1-1',inputFileName='springback_exp_form.inp', numCpus=2, numDomains=2)

当然还有更多的其他参数,具体可以参考ABAQUS Scripting Reference Manual。

这样我们就有一个批处理python范本了:

from abaqusConstants import *

import job

mdb.JobFromInputFile(name=''jobname1',inputFileName='jobname1.inp')

mdb.jobs[' jobname1'].submit()

mdb.jobs[' jobname1'].waitForCompletion()

mdb.JobFromInputFile(name=''jobname2',inputFileName='jobname2.inp')

mdb.jobs[' jobname2'].submit()

mdb.jobs[' jobname2'].waitForCompletion()

import os,time,sys

o="c:\\windows\\system32\\shutdown -s -f -t 60"

os.system(o)

如何执行呢?比如说将上面的python文件保存为python-bat.py。打开ABAQUS Command 窗口,进入python-bat.py所在目录,输入以下命令即可运行批处理文件。

abaqus cae nogui=python-bat.py

批处理文件执行中ABAQUS版本的差别

经常看到有人会问在执行批处理文件中,加入interactive参数后(或在python中使用waitForCompletion),生成的结果文件中就没有sta文件了。经本人测试,在ABAQUS 6.5中,确实存在这个问题。但在6.6版本中,可能有的用户向ABAQUS公司反映了这个问题,在新版本中该问题已经解决。在使用interactive参数时,ABAQUS同时生成sta文件,这样可以方便用户在计算完成后检查整个计算过程。

一个input文件批处理小软件

笔者根据以上介绍的dos批处理方法为大家做了一个ABAQUS批处理的小软件,在input文件特别多的情况下非常有用,可以提高工作效率。只要将要进行批处理的input文件放到一个目录当中,在软件中选定这个目录,生成并执行批处理文件即可。计算结果都放在该目录当中。由于在VC2005环境下编程,如果直接执行不能运行,请在运行软件之前,安装一下附带的VC2005配置文件。该软件在Window xp sp2,ABAQUS6.6环境测试通过。对于配置文件,如果安装了VS2005,可以在安装目录下的"\SDK\v2.0\BootStrapper\Packages\vcredist_x86"找到vcredist_x86.exe 这个文件,在目标机器上安装后即可运行该程序。

程序的最新版本与详细说明见:

https://www.doczj.com/doc/633195277.html,/forum/viewthread.php?tid=775346&highlight=%2Bzengguo823

ABAQUS模拟预应力筋的方法

ABAQUS模拟预应力筋的方法 1.降温法 这是目前很多人采用的方法。即在预应力筋施加温度荷载(降温),使预应力筋收缩,从而使混凝土获得预应力。 2.ABAQUS自带的初始应力法 直接用*Initial conditions, type=stress可以直接模拟先张法,能获得预应力筋和混凝土的后期应力增量,但无法获得预应力筋的真实应力。 3.Rebar element single 法 利用ABAQUS提供的rebar功能,模拟预应力束,给出rebar与相关实体单元的信息,通过在rebar上施加初始应力即可模拟先张法和后张法。 4. MPC法 分别定义预应力筋(比如truss单元)和混凝土,采用MPC将预应力筋与混凝土联系起来,对预应力筋施加初始应力,即可模拟预应力效应。 5.Rebar Layer法 利用ABAQUS提供的rebar layer功能,将rebar layer定义到surface,membrane或shell基上,通过对rebar施加初始应力,即可模拟先张法和后张法。 经过一段时间的使用和尝试,发现实体内施加预应力还存在不少

缺陷: 1.无法模拟早期的预应力损失,如摩擦损失,锚具回弹损失等; 2.无法准确模拟后张法中在张拉阶段净截面参与计算的问题,这 在截面高度较小,预应力筋较多时,对计算结果影响会比较大; 3.无法模拟换算截面的问题,尽管帮助文件中多次提到rebar layer的刚度被添加到surface section等中,由于surface section没有内在刚度,多次测试发现rebar layer的刚度无法添加到结构中。后尝试用shell section的方式来实现。帮助文件中没有直接提到用shell section带rebar layer埋于solid 单元的方式可以模拟预应力。经多次测试发现是可以考虑shell 和rebar layer的附加刚度,但结算结果不稳定。 几个要点: 1>.shell section能自动采用换算截面,其但 换算系数为N而不是N-1。 2>.shell section采用换算截面时,其附属的rebar layer面积也一并参与换算。 3>.若考虑预应力作用,其作用仅限于rebar layer 部分,而不及于shell section本身。 本次新增的inp文件中可对比测试shell section和surface section。见文件中相关数据行提示。 注意新问题:当rebar layer面积较大时,误差很大,需进一步解决,这也许是ABAQUS帮助文件中没直接推荐shell section with rebar

Abaqus-中显示动力学分析步骤

准静态分析——ABAQUS/Explicit 准静态过程(guasi-static process) 在过程进行的每一瞬间,系统都接近于平衡状态,以致在任意选取的短时间dt内,状态参量在整个系统的各部分都有确定的值,整个过程可以看成是由一系列极接近平衡的状态所构成,这种过程称为准静态过程。无限缓慢地压缩和无限缓慢地膨胀过程可近似看作为准静态过程。准静态过程是一种理想过程,实际上是办不到的。 准静态原为一个热力学概念,在这里引用主要是指模型在加载的过程中任意时刻所经历的中间状态都可近似地视为静力状态,因此当加载过程进行得无限缓慢时,在各个时刻模型所处的状态就可近似地看作是静态,该过程便是准静态过程。准静态啮合过程仿真主要考虑的是弧齿锥齿轮副在加载时的接触状态,以及齿面和齿根的应力变化规律,其前提是不考虑齿轮副惯性的影响。 ABAQUS/Explicit准静态分析 显式求解方法是一种真正的动态求解过程,它的最初发展是为了模拟高速冲击问题,在这类问题的求解中惯性发挥了主导性作用。当求解动力平衡的状态时,非平衡力以应力波的形式在相邻的单元之间传播。由于最小稳定时间增量一般地是非常小的值,所以大多少问题需要大量的时间增量步。 在求解准静态问题上,显式求解方法已经证明是有价值的,另外ABAQUS/Explicit在求解某些类型的静态问题方面比ABAQUS/Standard更容易。在求解复杂的接触问题时,显式过程相对于隐式过程的一个优势是更加容易。此外,当模型很大时,显式过程比隐式过程需要较少的系统资源。 将显式动态过程应用于准静态问题需要一些特殊的考虑。根据定义,由于一个静态求解是一个长时间的求解过程,所以在其固有的时间尺度上分析模拟常常在计算上是不切合实际的,它将需要大量的小的时间增量。因此,为了获得较经济的解答,必须采取一些方式来加速问题的模拟。但是带来的问题是随着问题的加速,静态平衡的状态卷入了动态平衡的状态,在这里惯性力成为更加起主导作用的力。目标是在保持惯性力的影响不显著的前提下用最短的时间进行模拟。 准静态(Quasi-static)分析也可以在ABAQUS/Standard中进行。当惯性力可以忽略时,在ABAQUS/Standard中的准静态应力分析用来模拟含时间相关材料响应(蠕变、膨胀、粘弹性和双层粘塑性)的线性或非线性问题。关于在ABAQUS/Standard中准静态分析的更多信息,请参阅ABAQUS分析用户手册(ABAQUS Analysis User’s Manual)的第6.2.5节“Quasi-static analysis”。 1. 显式动态问题类比 假设两个载满了乘客的电梯。在缓慢的情况下,门打开后你步入电梯。为了腾出空间,邻近门口的人慢慢地推他身边的人,这些被推的人再去推他身边的人,如此继续下去。这种扰动在电梯中传播,直到靠近墙边的人表示他们无法移动为止。一系列的波在电梯中传播,直到每个人都到达了一个新的平衡位置。如果你稍稍加快速度,你会比前面更用力地推动你身边的人,但是最终每个人都会停留在与缓慢的情况下相同的位置。 在快速情况下,门打开后你以很高的速度冲入电梯,电梯里的人没有时间挪动位置来重新安排他们自己以便容纳你。你将会直接地撞伤在门口的两个人,而其他人则没有受到影响。

abaqus系列教程-13ABAQUSExplicit准静态分析

13 ABAQUS/Explicit准静态分析 显式求解方法是一种真正的动态求解过程,它的最初发展是为了模拟高速冲击问题,在这类问题的求解中惯性发挥了主导性作用。当求解动力平衡的状态时,非平衡力以应力波的形式在相邻的单元之间传播。由于最小稳定时间增量一般地是非常小的值,所以大多少问题需要大量的时间增量步。 在求解准静态问题上,显式求解方法已经证明是有价值的,另外ABAQUS/Explicit 在求解某些类型的静态问题方面比ABAQUS/Standard更容易。在求解复杂的接触问题时,显式过程相对于隐式过程的一个优势是更加容易。此外,当模型成为很大时,显式过程比隐式过程需要较少的系统资源。关于隐式与显式过程的详细比较请参见第2.4节“隐式和显式过程的比较”。 将显式动态过程应用于准静态问题需要一些特殊的考虑。根据定义,由于一个静态求解是一个长时间的求解过程,所以在其固有的时间尺度上分析模拟常常在计算上是不切合实际的,它将需要大量的小的时间增量。因此,为了获得较经济的解答,必须采取一些方式来加速问题的模拟。但是带来的问题是随着问题的加速,静态平衡的状态卷入了动态平衡的状态,在这里惯性力成为更加起主导作用的力。目标是在保持惯性力的影响不显著的前提下用最短的时间进行模拟。 准静态(Quasi-static)分析也可以在ABAQUS/Standard中进行。当惯性力可以忽略时,在ABAQUS/Standard中的准静态应力分析用来模拟含时间相关材料响应(蠕变、膨胀、粘弹性和双层粘塑性)的线性或非线性问题。关于在ABAQUS/Standard中准静态分析的更多信息,请参阅ABAQUS分析用户手册(ABAQUS Analysis User’s Manual)的第6.2.5节“Quasi-static analysis”。 13.1 显式动态问题类比 为了使你能够更直观地理解在缓慢、准静态加载情况和快速加载情况之间的区别,我们应用图13-1来类比说明。

ABAQUS减少计算时间

ABAQUS/Standard与ABAQUS/Explicit各自的适用范围 ABAQUS/Explicit如何降低计算时间 对于光滑的非线性问题,ABAQUS/Standard更有效,而ABAQUS/Explicit适于求解复杂的非线性动力学问题,特别是用于模拟短暂、瞬时的动态事件,如冲击和爆炸问题。 有些复杂的接触问题(例如模拟成形),使用ABAQUS/Standard要进行大量的迭代,甚至可能难以收敛,而使用ABAQUS/Explicit就可以大大缩短计算时间。 如果一个准静态分析以它的自然时间进行,其解几乎跟它的真实静态解相同。 经常需要使用load rate scaling 或 mass scaling 获得一个准静态解,这样使用的CPU时间更短。这两种办法是缩短explicit下计算时间的加速办法。 loading rate 经常可以适当增加,只要这个解不局部化(localize)。如果loading rate增加的太多,惯性力会极大第影响求得的解的准确性; MASS scaling 可以替代“增加loading rate”来使用,其减少计算时间的功能一样。当使用率相关材料时,mass scaling更好,因为增加loading rate 人为地改变了材料属性;对于不是与率相关的材料,这两种办法都可以,但相同的缩放因子的值所引起的speedup是平方根的关系。 质量缩放因子(mass scaling factor)100等同于加载速率因子(loading rate scaling factor)10产生的计算时间的下降效果。 静态分析中,结构的最低阶模态决定了其响应,知道最小的自然频率,并且相应地,最低阶模态的周期也就知道了,可以估计能够获得合适的静态响应所要求的时间。只要时间大于最低阶模态周期,即可满足准静态响应的条件。 有必要运行一序列不同的loading rate的分析,以此来确定一个可以接受的loading rate。既要实现降低cpu求解时间的目的,又不能引起显著的动态效应。 在模拟计算的大部分过程中,变形材料的动能不应超出其内能的5%-10%。注意这两者的比值要足够小。 在准静态分析中,使用光滑的分析步幅值曲线(smooth step amplitude curve)定义位移是最高效的方式。 对于精度和效率,准静态分析要求加载尽可能地光滑。突变的、抽筋的运动会引起应力波,这可能导致噪音或不准确的解。 使用smooth step amplitude curve实现光滑地加载力或光滑地加载位移。评价结果可接受的初始标准是动能与内能相比为很小。表格(tabular)定义的幅值曲线加载,尽管也可以满足使得动能与其内能相比很小,但是光滑的加载可以减小动能的波动,产生一个满意的准静态的响应。 从Abaqus/Explicit中将模型导入到Abaqus/Standard进行高效的回弹分析。

Abaqus-中显示动力学分析步骤

Abaqus-中显示动力学分析步骤

准静态分析——ABAQUS/Explicit 准静态过程(guasi-static process) 在过程进行的每一瞬间,系统都接近于平衡状态,以致在任意选取的短时间dt内,状态参量在整个系统的各部分都有确定的值,整个过程可以看成是由一系列极接近平衡的状态所构成,这种过程称为准静态过程。无限缓慢地压缩和无限缓慢地膨胀过程可近似看作为准静态过程。准静态过程是一种理想过程,实际上是办不到的。 准静态原为一个热力学概念,在这里引用主要是指模型在加载的过程中任意时刻所经历的中间状态都可近似地视为静力状态,因此当加载过程进行得无限缓慢时,在各个时刻模型所处的状态就可近似地看作是静态,该过程便是准静态过程。准静态啮合过程仿真主要考虑的是弧齿锥齿轮副在加载时的接触状态,以及齿面和齿根的应力变化规律,其前提是不考虑齿轮副惯性的影响。 ABAQUS/Explicit准静态分析 显式求解方法是一种真正的动态求解过程,它的最初发展是为了模拟高速冲击问题,在这类问题的求解中惯性发挥了主导性作用。当求解动力平衡的状态时,非平衡力以应力波的形式在相邻的单元之间传播。由于最小稳定时间增量一般地是非常小的值,所以大多少问题需要大量的时间增量步。 在求解准静态问题上,显式求解方法已经证明是有价值的,另外ABAQUS/Explicit在求解某些类型的静态问题方面比ABAQUS/Standard更容易。在求解复杂的接触问题时,显式过程相对于隐式过程的一个优势是更加容易。此外,当模型很大时,显式过程比隐式过程需要较少的系统资源。 将显式动态过程应用于准静态问题需要一些特殊的考虑。根据定义,由于一个静态求解是一个长时间的求解过程,所以在其固有的时间尺度上分析模拟常常在计算上是不切合实际的,它将需要大量的小的时间增量。因此,为了获得较经济的解答,必须采取一些方式来加速问题的模拟。但是带来的问题是随着问题的加速,静态平衡的状态卷入了动态平衡的状态,在这里惯性力成为更加起主导作用的力。目标是在保持惯性力的影响不显著的前提下用最短的时间进行模拟。 准静态(Quasi-static)分析也可以在ABAQUS/Standard中进行。当惯性力可以忽略时,在ABAQUS/Standard中的准静态应力分析用来模拟含时间相关材料响应(蠕变、膨胀、粘弹性和双层粘塑性)的线性或非线性问题。关于在ABAQUS/Standard中准静态分析的更多信息,请参阅ABAQUS分析用户手册(ABAQUS Analysis User’s Manual)的第6.2.5节“Quasi-static analysis”。 1. 显式动态问题类比 假设两个载满了乘客的电梯。在缓慢的情况下,门打开后你步入电梯。为了腾出空间,邻近门口的人慢慢地推他身边的人,这些被推的人再去推他身边的人,如此继续下去。这种扰动在电梯中传播,直到靠近墙边的人表示他们无法移动为止。一系列的波在电梯中传播,直到每个人都到达了一个新的平衡位置。如果你稍稍加快速度,你会比前面更用力地推动你身边的人,但是最终每个人都会停留在与缓慢的情况下相同的位置。 在快速情况下,门打开后你以很高的速度冲入电梯,电梯里的人没有时间挪动位置来重新安排他们自己以便容纳你。你将会直接地撞伤在门口的两个人,而其他人则没有受到影响。

abaqus计算回弹的方法

Abaqus回弹计算过程 回弹分析我倒是做过两个,说下简要步骤吧,同样是仅供参考啊 1.首先用·explicit做成型过程的分析,加载方式选位移加载比较好,加载的幅值选smooth step(平滑变化) 2.可适当的用质量放大来加快这一准静态分析的过程 3.分析完成后可用standard观察工件的回弹,具体做法是: 1.Model-Copy Model 2.在新复制的模型中仅留下成型件,删除其他一切无关的边界条件以及上下模,包括在Explicit中定义的接触属性 3.在step模块中创建predefine field request-others-initial state-last frame/last step(导入的job名称为之前做成型分析的那个job的名称) 4.删除原来所有的后续分析步,并新建一个static,general的分析步 5.创建一个新的作业提交分析,并观察回弹 大致就是这样吧,希望对你有用! 回弹分析,从explicit导入standard计算。先copy explicit中模型进入standard模块,然后做一下改进,删除各个part、set和surface等,只留下需要回弹分析的变形体。删除分析步,删除接触和属性。然后在step中建立一个static分析步骤。设置计算为非线性。然后定义居于前面成形结果的回弹分析,在Model Tree中打开Predefined Fields,选择Initia 作为分析步,Other最为类别,选择Initial State,然后在视窗中选择需要分析的回弹体,然后点击done,然后Edit Predefined Field,选择你成形分析的job名字。然后一致ok下去,对称的边界哦条件还要施加。 你可以在amplitude中设置,比如说你分析步设置时间为6s,然后在amplitude中设置0,0;4,1(也就是在4秒时冲头应景达到了要求的位移,也就是液晶冲完,那么剩下的2秒就是停留的时间了),然后在另外设置一个分析步把冲头往回移就可以了 小弟这些天正好在做冲压回弹,刚做成功,从simwe论坛上学了很多东西。 在此讲讲小弟个人经验,回报论坛: 1.在原模型中设置restart。 2.将原model,copy另取名字 3.删除不需要的instance(以回弹分析来讲只要留下欲做回弹的instance即可) 4.重设分析步,一般改用静态隐式。(小弟把之前的分析步都删了,新建了分析步) 5.在load 模组中除去无用的边界条件,并添一个固定点或固定线。 6.在predefined field中建立initial state,选择欲做回弹的instace,job name选择原分析之odb档名(不用再加.odb),step及frame一般是选择Last. 7.再执行分析即可. 注:若想观察的是回弹量,可在initial state中勾选update reference configuration即可. 另外,多做几次,不成功的原因有时不是步骤有问题,而是自己忽略了某个小地

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