verschachtelte schleife
Verfasst: Mittwoch 13. Januar 2021, 19:04
Guten Tag Leute, ich habe ein Problem und würde mich über eine kleine Richtungsleitung in diesem Problem sehr freuen.
Vielleicht sagt jemandem dieses Problem ja was, ich gehe in einer verschachtelten schleife 2 indizes nacheinander durch
erst alle ortspunkte i und nach jedem durchlauf wird die zeit j um 1 erhöht.
Dies ist um eine Wärmeausbreitung in einem Metall Stab zu simulieren.
Also die schleife soll für del_t den ersten wert also 1 nehmen dann alle j indices iterieren bis dass array U durch ist, dann j um 1 erhöhen und wieder von vorne...
Am ende soll ein 3 D Plot entstehen Temperatur nach Ort und Zeit
Das Problem liegt hier in der schleife es sagt too many indices ,ich habe in meiner Lektüre Python 3 von Peter Kaiser jedoch keine Doppelindizierung gefunden und komme so auf keinen Fehleransatz
Vielleicht sagt jemandem dieses Problem ja was, ich gehe in einer verschachtelten schleife 2 indizes nacheinander durch
erst alle ortspunkte i und nach jedem durchlauf wird die zeit j um 1 erhöht.
Dies ist um eine Wärmeausbreitung in einem Metall Stab zu simulieren.
Code: Alles auswählen
#Berechnung
U_0_X_0 = 200 # Anfangstemperatur in Celsius im Zentrum des Laserstrahls von -1mm bis +1 mm Ortskoordinate
U_0_X_rod = 20 # Anfangstemperatur von -50mm bis -1mm und +1mm bis 50mm der Aluminiumstange
L = 0.1 # Länge Aluminium Stab [m]
I_d = 0.002 # Durchmesser Laserstrahl [m]
n = 100 # Anzahl Stützstellen
delta_x = L/n # Schrittweite der Gitterstellen (0.01m)
delta_t = 1 # Messungen pro sekunde
λ_Alu = 230 # Wärmeleitfähigkeit Alu [W/m*K]
rho_Alu = 2700 # Dichte Alu [KG/m³]
c_Alu = 88800 # Spezifische Wärmekapazität Alu [J/kG*K] (eig 888...erstmal für berechnung)
a_Alu = λ_Alu / (rho_Alu * c_Alu) # Temperaturleitfähigkeit
a_Alu_x = a_Alu * / delta_x**2 # Temperaturleitfähigkeit, und Schrittweite als 1 Koeffizient
X = np.arange(0,0.05, 0.001) #Alu Stab länge
U = np.zeros(50) #Temperatur array
U = U + U_0_X_rod # 0er array wird mit 20 beschrieben (Temp. außerhalb des Laserstrahls)
U[0] = U_0_X_0 # -1 mm
U[1] = U_0_X_0 # Temperatur an der Stelle X=0
#Plot bei t = 0 (Laserstrahl ist nur sehr kurz auf dem stab undzwar 1 mm durchmesser links)
fig, ax = plt.subplots(figsize = (10, 7))
ax.set(xlabel='länge (m)', ylabel='Temperatur (°C)',
title='Temperaturverteilung im Aluminium Stab bei t=0')
plt.plot(X,U , marker = "o")
plt.grid()
del_t = [1,2,3,4,5,6,7,8,9,10]#Zeit liste
for j in (del_t):
for i in range(len(U)-1):
U[j+1,i] = U[j,i] + a_Alu_x * del_t[j] * (U[j,i] - 2*U[j,i] + U[j,i])
Am ende soll ein 3 D Plot entstehen Temperatur nach Ort und Zeit
Das Problem liegt hier in der schleife es sagt too many indices ,ich habe in meiner Lektüre Python 3 von Peter Kaiser jedoch keine Doppelindizierung gefunden und komme so auf keinen Fehleransatz