#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 21 12:37:31 2022

@author: julie
"""

#Bibliothèques
import numpy as np
import matplotlib.pyplot as plt

#Caractéristiques
L =  # à compléter, Longueur de la barre en mètre
lbda =  # à compléter, conducticité du fer
h =  # à compléter
mu =  # à compléter, masse volumique du fer
c =  # à compléter, capacité thermique massique du fer
T0 =  # à compléter
T1 =  # à compléter

N = 50 # à compléter, Nombre de pas de temps pour la discrétisation temporelle
M = 2000# à compléter, Nombre de point pour la discrétisation spatiale
tmax = 5000  # Durée de l'expérience

Delta_t =  # à compléter, pas de temps en seconde (en accord avec la condition de stabilité), écrire l'expression
Delta_x = # à compléter, Pas spatial en m

#print(Delta_t)
' Calcul de la diffusivité :'
D = #à compléter
'Calcul de alpha pour la convergence'
alpha = # à compléter
print('alpha =', alpha, 'M =', M)

' Tabelau des dates et positions'
dates = np.linspace(0,tmax,M+1) # Le tableau des dates
absc = np.linspace(0,L,N+1) #tableau des abscisses

'Matrice des températures '
T = np.zeros((M+1,N+1)) #tableau des écarts de température initiaux

# test qui est qui, pour N et M petits et différents, print('T = ',T)


'Condtion aux limites : bord gauche Tg = T0, bord droit Td=T1'
T[:,0] = # à compléter
T[:,N] = # à compléter

'Condition initiale '
T[0,:] = # à compléter

# test CI et CL pour N et M petits : print(T)

'Boucle temporelle'
for k in range # à compléter
    for i in range # à compléter
        T[k+1,i] = # à compléter

#tracé toutes les 500 s
    if (k==1 or k==100 or (k*Delta_t)%500 == 0 ) :
        plt.plot(absc,T[k,:], label='t(s)= '+ str(k * Delta_t))

plt.plot(absc,T[M,:], label='t(s)= '+ str(M * Delta_t))

plt.xlabel('x (m)')
plt.ylabel('T (°C)',rotation=0)
plt.title('Diffusion thermique ')
plt.legend()
plt.grid()
plt.show()

