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 :
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
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
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("****************")
Attention cette deuxieme partie est intégré dans la 1ere partie du code :
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.

methode 1 : def readXYZ(lines, j)
methode 2 : def energy(Za, X, Y, Z)

merci par avance