Change for 2020-03-25 mail

This commit is contained in:
Paul-Corbalan 2020-03-30 19:21:12 +02:00
parent 27baa0e651
commit 1a69c5deb7
1 changed files with 33 additions and 28 deletions

View File

@ -151,12 +151,12 @@ def choix(pixelsCroissance, potentielsCroissance):
choixFinal = pixelsCroissance[i] choixFinal = pixelsCroissance[i]
return([choixFinal, i]) return([choixFinal, i])
def majPotentielsCroissance(pixelsCroissance, potentielsCroissance): def majPotentielsCroissance(pixelsCroissance, potentielsCroissance, nbPart):
# mise a jour des potentiels de la liste complête # mise a jour des potentiels de la liste complête
for c in range(len(pixelsCroissance)): for c in range(len(pixelsCroissance)):
potentielsCroissance[c] = potentielsBitmap[pixelsCroissance[c][0]][pixelsCroissance[c][1]] potentielsCroissance[c] = potentielsBitmap[pixelsCroissance[c][0]][pixelsCroissance[c][1]]
def main(pixelsBitmap, pixelsCroissance, potentielsCroissance): def main(pixelsBitmap, pixelsCroissance, potentielsCroissance, nbPart):
run = True run = True
init() init()
# graine: début de décharge en haut au milieu # graine: début de décharge en haut au milieu
@ -187,7 +187,7 @@ def main(pixelsBitmap, pixelsCroissance, potentielsCroissance):
# définition des nouveaux sites de croissance potentiels # définition des nouveaux sites de croissance potentiels
croissanceRapide(nouv, pixelsBitmap, pixelsCroissance, potentielsCroissance) croissanceRapide(nouv, pixelsBitmap, pixelsCroissance, potentielsCroissance)
# mise à jour des potentiels des candidats à la croissance # mise à jour des potentiels des candidats à la croissance
majPotentielsCroissance(pixelsCroissance, potentielsCroissance) majPotentielsCroissance(pixelsCroissance, potentielsCroissance, nbPart)
res = choix(pixelsCroissance, potentielsCroissance) res = choix(pixelsCroissance, potentielsCroissance)
nouv = res[0] nouv = res[0]
# le point choisi est elimine des croissances possibles # le point choisi est elimine des croissances possibles
@ -203,7 +203,8 @@ def main(pixelsBitmap, pixelsCroissance, potentielsCroissance):
if nouv[0] == 0 or nouv[0] == N-1 or nouv[1] == N-2 or nbPart > partMax : if nouv[0] == 0 or nouv[0] == N-1 or nouv[1] == N-2 or nbPart > partMax :
run = False run = False
print("N=",N,"eta=",eta,"nbpart=",nbPart,"MAXDELTA=",MAXDELTA) print("N=", N, "eta=", eta, "nbpart=", nbPart, "MAXDELTA=", MAXDELTA)
return nbPart
# Partie rajoutée # Partie rajoutée
@ -221,7 +222,7 @@ def Save_txt(y, N, fichier):
print("", file=f) print("", file=f)
f.close() f.close()
def Print_plt(Mat, N, fichier, afficher=False): def Print_plt(Mat, N, eta, nbPart, fichier, afficher=False):
x = [] x = []
y = [] y = []
c="blue" # <--- Couleur des icones c="blue" # <--- Couleur des icones
@ -232,32 +233,36 @@ def Print_plt(Mat, N, fichier, afficher=False):
if Mat[i][j]: if Mat[i][j]:
x.append(j) x.append(j)
y.append(N-i) y.append(N-i)
plt.scatter(x,y,color=c, label=fichier, s=size, marker=mk) plt.scatter(x, y, color=c, s=size, marker=mk)
plt.title("Simulation de foudre") # title="N="+str(N)+" eta="+str(eta)+" nbpart="+str(nbPart)+" MAXDELTA="+str(MAXDELTA)
plt.legend(loc='upper left') plt.title("N="+str(N)+" eta="+str(eta)+" nbpart="+str(nbPart)+" MAXDELTA="+str(MAXDELTA))
# plt.legend(loc='upper left')
plt.axis([0,N,0,N]) plt.axis([0,N,0,N])
plt.savefig(fichier+".png") plt.savefig("..\\Image\\"+fichier+".png")
if afficher: if afficher:
plt.show() plt.show()
plt.close() plt.close()
for MAXDELTA in range(1, 17, 9): # [0.001, 0.0005, 0.0001]
MAXDELTA = MAXDELTA/1000.0 for MAXDELTA in [0.001, 0.0005, 0.0001]:
for i in range(5): # MAXDELTA = MAXDELTA/1000.0
# [64, 128, 256, 512]
for N in [64, 128, 256, 512]:
for i in range(50):
nbPart=1
# la grille est de NxN mais en réalite la mesure d'une unité h est 1/N
pixelsBitmap = [[0 for j in range(N)] for i in range(N)]
# que pour le dessin pour éviter la transposition
dessinBitmap = [[0 for j in range(N)] for i in range(N)]
# conditions initiales -1 charge négative ou 1 charge positive ou 0 non defini sera mis à jour pendant le programme avec les nouvelles charges
condInitBitmap = [[0 for j in range(N)] for i in range(N)]
potentielsBitmap = [[0.0 for j in range(N)] for i in range(N)]
pixelsCroissance = []
potentielsCroissance = []
# la grille est de NxN mais en réalite la mesure d'une unité h est 1/N nbPart=main(pixelsBitmap, pixelsCroissance, potentielsCroissance, nbPart)
pixelsBitmap = [[0 for j in range(N)] for i in range(N)]
# que pour le dessin pour éviter la transposition fichier = "foudre-"+str(N)+"-"+str(eta)+"-"+str(MAXDELTA)+"-"+str(nbPart)+"-"+datetime.now().strftime("%Y%m%d%H%M%S")
dessinBitmap = [[0 for j in range(N)] for i in range(N)] np.save("..\\Image\\"+fichier,np.array(dessinBitmap))
# conditions initiales -1 charge négative ou 1 charge positive ou 0 non defini sera mis à jour pendant le programme avec les nouvelles charges Save_txt(np.array(dessinBitmap), N, "..\\Image\\"+fichier)
condInitBitmap = [[0 for j in range(N)] for i in range(N)] Print_plt(np.array(dessinBitmap), N, eta, nbPart, fichier)
potentielsBitmap = [[0.0 for j in range(N)] for i in range(N)]
pixelsCroissance = []
potentielsCroissance = []
main(pixelsBitmap, pixelsCroissance, potentielsCroissance)
fichier = "foudre-"+str(N)+"-"+str(eta)+"-"+str(MAXDELTA)+"-"+datetime.now().strftime("%Y%m%d%H%M%S")
#np.save(fichier,np.array(dessinBitmap))
#Save_txt(np.array(dessinBitmap), N, fichier)
Print_plt(np.array(dessinBitmap), N, fichier)