1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| # -*- coding: utf-8 -*-
"""
Created on Wed May 21 13:29:17 2014
@author: Mats
"""
import os
Name = raw_input("Entrez le nom du fichier que vous voulez: (sans l'extension)")
Traction = [0,0,0,0,0,0] # configuration du chargement [sigma11,sigma22,sigma33,sigma12,sigma13,sigma23]
Result = [0,0,0,0,0] #Variables de la matrice de rigidité 5 variables car materiau isotrope transverse
i = 0
ResultFile = open('Resultats.res','w')
while i <= 4:
## Configuration du fichier de chargement Traction.dat ##
Tractiof = open("Traction.dat",'w')
Traction = [0,0,0,0,0,0]
Traction[i] = 1
Tractiof.write('s')
Tractiof.write(Traction[0],' ',Traction[1],' ',Traction[2],' ',Traction[3],' ',Traction[4],' ',Traction[5])
Tractiof.close()
## Appel de Craft ##
os.system('Craft',Name,'.in')
## traitement des résultats ##
FEntry = open(Name,'.res')
TableSigma = []
TableEpsilon = []
CurrentLine = FEntry.readline()
while len(CurrentLine) > 0:
if CurrentLine[0] != '#':
CurrentlineList = CurrentLine.split()
if len(CurrentlineList) > 0:
TableEpsilon.append([float(CurrentlineList[5]),float(CurrentlineList[6]),float(CurrentlineList[7]),float(CurrentlineList[8]),float(CurrentlineList[9]),float(CurrentlineList[10])])
TableSigma.append([float(CurrentlineList[11]),float(CurrentlineList[12]),float(CurrentlineList[13]),float(CurrentlineList[14]),float(CurrentlineList[15]),float(CurrentlineList[16])])
CurrentLine = FEntry.readline()
FEntry.close()
if i == 0:
## Determination des 3 premieres variables materiaux ##
Result[0] = (float(TableEpsilon[0][0])/float(TableSigma[0][0]))
Result[2] = (float(TableEpsilon[0][1])/float(TableSigma[0][1]))
Result[3] = (float(TableEpsilon[0][2])/float(TableSigma[0][2]))
i += 2 # on peux sauter i = 1 car il y a redondance des variables materiau #
if i == 2:
## Determination de la 4eme variable materiau ##
Result[1] = (float(TableEpsilon[0][2])/float(TableSigma[0][2]))
i += 2 # on peux sauter i = 3 car il y a redondance des variables materiau #
if i == 4:
## Determination de la 5eme variable materiau ##
Result[4] = (float(TableEpsilon[0][4])/float(TableSigma[0][4]))
i += 1000
#Sortie des resultats dans un fichier texte
ResultFile.write('a =', Result[0])
ResultFile.write('b =', Result[1])
ResultFile.write('c =', Result[2])
ResultFile.write('d =', Result[3])
ResultFile.write('e =', Result[4]) |