| 12
 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]) | 
Partager