bonjour,
je viens de creer un script qui me permet d'extraire des données d'un fichier : dimetylether.log, ses données sont : (Coordonnées X, Y, Z et le nombre atomique Za)
dont voici le code :
Après cela je calcule l'energie de repulsion atomique avec la deuxieme partie de mon code qui est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from math import sqrt, pow lines = open("dimethylether.log", "r").readlines() chaine = "Standard orientation" #méthode qui permet de choisir le numéro de la conformation qu'on veut. def readXYZ(chaine, num_confo): for i, line in enumerate(lines): j = 5 if chaine in line: Za = [] X = [] Y = [] Z = [] while j<14 : Za.append( (float( (lines[i + j].split())[1]) )) X.append( ( float( (lines[i + j].split())[3]) )) Y.append( ( float( (lines[i + j].split())[4]) )) Z.append( ( float( (lines[i + j].split())[5]) )) j = j + 1
Attention cette deuxieme partie est intégré dans la 1ere partie du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 E = 0 for i in range(len(Za) - 1): for j in range(i+1,len(Za)): distance = (sqrt(pow((X[i] - X[j]),2) + pow((Y[i] - Y[j]),2) + pow((Z[i] - Z[j]),2))) / 0.5291772085936 E = E + ( (Za[i] * Za[j]) / distance ) print(E) print("****************")
Ma question est : Je voudrais créer 2 methodes séparé qui me permettent de faire le travail des 2 bout de code présenté, mon souci est que c'est 2 bout de code sont imbriqués l'un dans l'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if chaine in line:
methode 1 : def readXYZ(lines, j)
methode 2 : def energy(Za, X, Y, Z)
merci par avance
Partager