import numpy as np
import matplotlib.pyplot as plt

## Caracteristiques du probleme
# Parametres de la barre de cuivre à renseigner
L =     # longueur en m
D =     # coefficient de diffusion en m^2/s
tauRT = L**2/D    # temps caracteristique de diffusion en s
print("temps caractéristique de diffusion en s :",tauRT)
# Conditions initiales à renseigner
Tt0 =    # en °C
# Conditions aux limites à renseigner
Tx0 =    # en °C
TxL =    # en °C

## Discretisation de l'espace et du temps
# Nombre de subdivisions spatiales du systeme et pas d'espace
nx = 8
dx = L/(nx-1)   # en m
# Duree totale, nombre d’iterations temporelles et pas de temps : (compléter lignes 21 et 22)
tf =   # en s
nt =
dt = tf/(nt-1)   # en s
print("pas de temps en s :",dt)
# Test du critere de stabilite : compléter ligne 26
if
    print("résolution erronnée => il faut augmenter le nb d'iterations temporelles")
else:
    print("condition de stabilité vérifiée")

## Tableau des temperatures
# Création, affectation des CI et des CL à renseigner
T=np.zeros((nx,nt))
for k in range(nx):
    T[k][0]=
for i in range(nt):
    T[0][i]=
    T[nx-1][i]=
# Resolution par la methode des differences finies : compléter lignes 40, 41 et 42
for i in range():
    for k in range():
        T[k][i+1]=

## Representations graphiques
# Listes des positions et des instants
x = [k*dx for k in range(nx)]
t = [i*dt for i in range(nt)]
# Evolution temporelle de la temperature au niveau des differents capteurs : compléter ligne 49 (8 courbes à tracer)
plt.plot()
plt.xlabel("t (s)")
plt.ylabel("T(xk,t) (°C)")
plt.legend(["x=0 cm","x=2,2 cm","x=4,4 cm","x=6,6 cm","x=8,8 cm","x=11 cm","x=13,2 cm","x=15,4 cm"],loc="best")
plt.title("Evolution temporelle de la température au niveau des différents capteurs")
plt.grid()
plt.show()
# Profils de temperature a différentes dates en s : compléter ligne 57 (5 courbes à tracer)
plt.plot()
plt.xlabel("x (m)")
plt.ylabel("T(x,ti) (°C)")
plt.legend(["t=0 s","t=8 s","t=40 s","t=80 s","t=800 s"],loc="best")
plt.title("Profils de température à différentes dates")
plt.grid()
plt.show()