|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- filePath='E:/Temp/'
- Emod = [9000 for i in xrange(20)]
- EdgeEltList = map(int, open(r'E:\Temp\fanyan-20ceng-force-model-EdgeEltList.txt').readline().split(','))
- b = zip(EdgeEltList,range(20))
- DICx = map(float, open(r'E:\Temp\fanyan-20ceng-force-model-DIC-le11.txt').readline().split(','))
- DICy = map(float, open(r'E:\Temp\fanyan-20ceng-force-model-DIC-le22.txt').readline().split(','))
- DICxy= map(float, open(r'E:\Temp\fanyan-20ceng-force-model-DIC-le12.txt').readline().split(','))
- J1 = [(DICx[i]+DICy[i]) for i in xrange(20)]
- J2=[(DICx[i]*DICy[i]+DICxy[i]**2/4) for i in xrange(20)]
- #Read input file
- inputTxt = open(filePath + '20ceng-force-model.inp').readlines()
- fileNameNew='fanyan-20ceng-0'
- for i in xrange(20):
- inputTxt[525 + i*3] = str(Emod[i])+', 0.3\n' ##modify some lines in inp file
- open(filePath + fileNameNew + '.inp','w').writelines(inputTxt)
- for iLoad in xrange(10):
- fileNameNew='fanyan-20ceng-' + str(iLoad)
-
- temp = []
- for i in open(filePath + fileNameNew + '.rpt'):
- try: temp.append(map(float, i.split()))
- except: pass
-
- dataFromFile = [i for i in temp if i!=[]]
-
- keyslist = [dataFromFile[i][0] for i in xrange(len(dataFromFile))]
- valslistX = [dataFromFile[i][1] for i in xrange(len(dataFromFile))]
- valslistY = [dataFromFile[i][2] for i in xrange(len(dataFromFile))]
- valslistXY = [dataFromFile[i][3] for i in xrange(len(dataFromFile))]
- J11 = [(valslistX[i]+valslistY[i]) for i in xrange(160)] #160=total number of elts
- J22=[(valslistX[i]*valslistY[i]+valslistXY[i]**2/4) for i in xrange(160)]
-
- for i,j in b:
- a=[(J1[j]-J11[i])/J1[j]]
- c=[(J2[j]-J22[i])/J2[j]]
-
-
- for i,j in b:
- if a[j]>c[j]:
- Emod[j]=Emod[j]+Emod[j]*((J1[j]-J11[i])/J1[j])
- else:
- Emod[j]=Emod[j]+Emod[j]*((J2[j]-J22[i])/J2[j])
- #Write strain value
- open(filePath+fileNameNew+'-Emod.txt','w').writelines([str(i)+'\t'+str(Emod[j])+'\n' for i,j in b]) ##space(kongge) and enter(huanhang)
-
-
复制代码
数组下标越界,应该是一个只有n个元素的数组L,你想获取L[m],m>=n
|
|