30.9.10

batch genetrating INP file from Excel, Run ABAQUS jobs with DOS bat and Extract XY data from odb using Python and ....

original product, please refer this source
from: http://yhtian.blogspot.com
author: Dr. Yinghui Tian


batching.... automatic...
Step1:
create folder/directory using DOS batch file - MDCases.bat:
---------------------------
md case33
md case34
...
-----------------------------
step2:
generating INP files from Excel using VBA by taking an input as template. the VBA code:

VBA CODE:
---------------------
Option Explicit
Private Sub generatefile()
Dim chanout As Integer, chanin As Integer
Dim i As Long, j As Long
Dim outfile As String, infile As String, txt As String

Worksheets("CalculationCases").Select
chanin = 20
' infile = "E:\ResearchJob\Anchor\YieldLoci\FlapEher\20degree\Case2.inp"
infile = "E:\JobsDoing\PlateAnchor\YieldLoci\20degree\Case2\Case2.inp"

For i = 23 To 58
' outfile = "E:\ResearchJob\Anchor\YieldLoci\FlapEher\20degree\Case" & (i - 3) & "\Case" & (i - 3) & ".inp"
outfile = "E:\JobsDoing\PlateAnchor\YieldLoci\20degree\Case" & (i - 3) & "\Case" & (i - 3) & ".inp"
chanout = i
Open outfile For Output As #chanout
Open infile For Input As #chanin
For j = 1 To 72729
Line Input #chanin, txt
Print #chanout, txt
Next j
Line Input #chanin, txt
Line Input #chanin, txt
If (Cells(i, 4) > 0.0001) Then
Print #chanout, "SetRPFlukeCenter, 1, 1," & Cells(i, 4)
End If
If (Cells(i, 5) > 0.0001) Then
Print #chanout, "SetRPFlukeCenter, 2, 2," & Cells(i, 5)
End If
If (Cells(i, 6) > 0.0001) Then
Print #chanout, "SetRPFlukeCenter, 6, 6," & Cells(i, 6)
End If
For j = 72732 To 72745
Line Input #chanin, txt
Print #chanout, txt
Next j
Close #chanout
Close #chanin
Next i
End Sub
-------------------------------------------
Step3.
Run the ABAQUS jobs using DOS batch file - AbaqusJobs.bat
--------------------------------------------------------------
(
cd case28
abaqus job=case28 interactive
cd..
cd case29
abaqus job=case29 interactive
cd..
cd case30
abaqus job=case30 interactive
cd..
)
----------------------------------------------------------------
the tricky thing is the bracket!!!!!
Step4.
Extract from odb using Python
---------------------------------------------------------------
from abaqus import *
from abaqusConstants import *
session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=226.010262340307, height=61.6927062869072)
session.viewports['Viewport: 1'].makeCurrent()
session.viewports['Viewport: 1'].maximize()
from viewerModules import *
for i in range(39):
odbfile = 'E:/YTian/SEPLA/YieldLoci/20degree/Case' + str(i+1) + '/Case' + str(i+1) +'.odb'
o2 = session.openOdb(name=odbfile)
session.viewports['Viewport: 1'].setValues(displayedObject=o2)
odb = session.odbs[odbfile]
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('RF', NODAL, ((COMPONENT, 'RF1'), (COMPONENT, 'RF2'), )), ('RM3', NODAL), ('U', NODAL, ((COMPONENT, 'U1'), (COMPONENT, 'U2'), )), ('UR3', NODAL), ), nodeSets=('SETRPFLUKECENTER', ))
x0 = session.xyDataObjects['RF:RF1 PI: ASSEMBLY N: 1']
x1 = session.xyDataObjects['RF:RF2 PI: ASSEMBLY N: 1']
x2 = session.xyDataObjects['RM3 PI: ASSEMBLY N: 1']
x3 = session.xyDataObjects['U:U1 PI: ASSEMBLY N: 1']
x4 = session.xyDataObjects['U:U2 PI: ASSEMBLY N: 1']
x5 = session.xyDataObjects['UR3 PI: ASSEMBLY N: 1']
outfile='Result_Case'+str(i+1)+'.dat'
session.writeXYReport(fileName=outfile, appendMode=OFF, xyData=(x0, x1, x2, x3, x4, x5))
del session.xyDataObjects['RF:RF1 PI: ASSEMBLY N: 1']
del session.xyDataObjects['RF:RF2 PI: ASSEMBLY N: 1']
del session.xyDataObjects['RM3 PI: ASSEMBLY N: 1']
del session.xyDataObjects['U:U1 PI: ASSEMBLY N: 1']
del session.xyDataObjects['U:U2 PI: ASSEMBLY N: 1']
del session.xyDataObjects['UR3 PI: ASSEMBLY N: 1']
odb.close()
-----------------------------------------------------------------------------------------
Step5.
combine the 54 XY files:
-----------------------------------------------------------------------------------------
Ncase = 54
nln = 0
infile = range(Ncase)
eofile = range(Ncase)
path = 'E:/ResearchJob/Anchor/YieldLoci/FlapEher/20degree'
filename = path + '/ResultsCombined.dat'
outfile = open(filename, 'w')

for i in range(Ncase):
eofile[i] = 0
outfile.write(' V H M v h beta ')
filename = path + '/Result_Case' + str(i+1) + '.dat'
infile[i] = open(filename, 'r')
infile[i].readline()
infile[i].readline()
infile[i].readline()
infile[i].readline()


outfile.write('\n')
for i in range(Ncase):
outfile.write(' Case'+str(i+1)+' ')
outfile.write('\n')

while True:
# nln += 1
for i in range(Ncase):
if eofile[i] ==0:
line = infile[i].readline()
data = line.split()
if len(data) <7:
data = ['-','-','-','-','-','-','-']
eofile[i] = 1
else:
data = ['-','-','-','-','-','-','-']
outfile.write(data[1])
outfile.write(' ')
outfile.write(data[2])
outfile.write(' ')
outfile.write(data[3])
outfile.write(' ')
outfile.write(data[4])
outfile.write(' ')
outfile.write(data[5])
outfile.write(' ')
outfile.write(data[6])
outfile.write(' ')
outfile.write('\n')
if sum(eofile)==Ncase:
break

outfile.close()
for i in range(Ncase):
infile[i].close()
------------------------------------------------------------------------

19.9.10

进化的原则不是追求完美,而是讲究实效。

进化的原则不是追求完美,而是讲究实效。

12.9.10

带着儿子去漂泊

转载:http://blog.creaders.net/wdyang6/user_blog_diary.php?did=64827


一、 带着儿子去漂泊

---远方的招唤(一)

迎 春花开放得最灿烂的时候,“迎春花”义无反顾的移民加拿大了。他们家一走,他的死党“华哥”也开始蠢蠢欲动,经不住“迎春花”的一次又一次的长途电话的归 劝、引诱。第二年,还不到迎春花开放的时候,“华哥”他们家已踏上了漂泊的路程。我们是关系最好的三家,劳燕分飞,只剩下我们家在瞻前顾后、犹犹豫豫。

老 公本是有抱负之人。十五岁不到就考上了华中师范大学,十九岁读的北京师范大学的研究生,博士毕业已经多年,他说他应该读的书都读完了,马拉松式的求学路已 经结束是该他享受的时候了,最近这十年消遥自在,已经忘记了艰苦岁月里挥汗如雨的日子,麻将上的长进绝对优于学术上的长进。津津乐道的是“斗地主”、“拖 拉机”,眉飞色舞的是玩“升级”、打篮球、吹牛。

曾经心爱的派克不知不觉中已长出菁苔。

可 看到朋友们一个个前扑后续,走上闯荡之路。很有些响马人生、蓝天白云浪迹天涯的浪漫情怀。加上我极力的唆使、花言巧语的引诱,惭惭地他对于自己这样的荒费 学业有些不能把持,加上加拿大那边两哥们的加拿大长加拿大短的,他们脱口而出跳跃的专业词语,像不远处招摇的彩旗,他的心就开始浮澡起来了,在他们的极力 劝说下,试着发了两份申请,不想就成了,命运之神有时会在远处等着你或者向你平平挥手,有时会在某一个转弯令你感觉柳暗花明,远处有一根无影的线由你的命 运之神所掌管。

本来开始的时候,老公是打算去加拿大的,有“臭味相投”的在那边照应也不会孤单,可不想,命运之神有时会在关健的时刻作弄人,偏偏这个时候,英国格拉斯哥strathclyde 大学的邀请信不期而遇的到了,方方面面比较,strathclyde 大学显而易见要优越得多,而且奖学金也高,自然就偏离了朋友们的轨道,曾经的“日不落”、曾经的多少辉煌就这样吸收了我们的眼球,不得不奔她而来了。

先 生在大学他的单位盖了十几个公章,在大学的办公楼上上下下跑了几十个回合,终于把手续办下来了,那时候办护照必须要单位的证明,不象现在那么简单,中国的 开放也不是一步到位,而且签证要到北京,山高皇帝远,确实不容易,但是那时候有一个好处,我们的单位属于铁道部,坐火车不要钱,一本工作证的就可以跑遍天 下,现有说起来,好象是在说童话,挥一挥鞭子随时随地的可以变出一辆免费的马辆,想去那就可以去那。软卧、硬卧任你享受。

老公要到北京去办签证,一时高兴,他说干脆我们全家来个北京一周游,儿子六岁了,没有去过北京,否则出国了还不知道北京是什么样子,故宫是什么样子,长城是什么样子,那岂不让洋鬼子笑话。

当时我正在准备全国的注册造价工程师考试,这样的考试刚刚开始,应该算比较容易通过,我想抓住这样的好机会一博,考四门,两年考过有效,我正参加培训,培训虽说快完了,可考试在即,可我还是经不起老公的劝说:“都要去英国了,这考试还有什么用呢?”

女人容易骗,不论老少。傻傻的就相信了,当时还在想也对,到那边谁会认你的账呢?(后来才知道,这个决定可是大错特错了,后悔就晚了,我可要规劝象我一样面临转变的你们一句,特别是女人。特别是还有一点抱负的女人,千万别把自己的专业给丢了。)

可女人也有特别的,八仙之一的韩湘子引渡他的妻子,他的妻子舍不得家里的一窝小鸡,一定要带着,结果第一次引渡不成功,都要去过神仙的日子了,可她的心里还很务实的想着她的衣食住行,多实在啊。而我轻而易举的把金元宝给舍弃了。

签证的手续虽然繁杂,可只要你准备得充分,考虑得周齐,合乎条件的一般没有什么问题。

我们就是在命运之神的牵引下不偏不离的前行。

十月的金秋。在北京的机场,儿子还抱在老公的怀里,老公眼里隐隐约约有泪有犹伤,我的心沉沉地,好似是妻子送丈夫去上战场,蓦然回首的那一幕依然就有眼前。

在英国开头的几个月,老公十分的不适应,黑呼呼纵横交错的马路、陌生的金发碧眼的面孔、吚哩哇啦的声音、安静寂莫的住居区、甚至教学大楼的厚重的防火门等等都让他思念的蚕丝越拉越长,

我能想象有着极大反差的中英物质和文化生活的差异带给他的不适应,其实这还只是表面上的或视觉上的不适应,深层次的差异会漫漫地渗透到你的骨髓里,会让你冷不丁打一个冷颤。我是完全能理解的,以至到后来我们一家团聚,我也深有同感。

老公十月份去的英国,到元月份过年,他迫不及待地回中国过年了,那时我正在办手续。

可正是这次回国,最终让他义然决然重返英国重续学业而不再犹豫。

回国后,他几乎每天都在牌桌子上,打着打着,他就觉得自己很难受,感觉自己很肤浅,象一个江湖小混混,在英国日思夜想的这般快乐的日子竟让他凭空的感到厌烦。

男人是不能失去他事业的。

这一次,真的没有人勉强他,没有人引诱他,也没有唆使他。

完全是凤凰化蝶般自己获得新生。