diff --git a/includes/tab.h b/includes/tab.h index da7ba9b36ace5d95ba0edaaf2cb516651250f929..a84e39d587bd8f96f9c4d655b912f67e1f1cf2d8 100644 --- a/includes/tab.h +++ b/includes/tab.h @@ -5,6 +5,7 @@ #include <limits> #include <iomanip> #include <vector> +using namespace std; /** * La classe Meteriaux représente un materiau diff --git a/src/implicite.cpp b/src/implicite.cpp deleted file mode 100644 index 1bf289e13ba62e362e3d8f2c2538a7cf464ad9c7..0000000000000000000000000000000000000000 --- a/src/implicite.cpp +++ /dev/null @@ -1,135 +0,0 @@ -#include <iostream> -#include <limits> -#include <iomanip> -#include <fstream> -#include <vector> -#include "tab.h" - -using namespace std; - -Materiaux::Materiaux(const char* materiaux,double lambda, double rho, double c) -{ - materiaux_=materiaux; - lambda_= lambda; - rho_ = rho; - c_ = c; -} - -/** -Résolution de l'équation de la chaleur à 1 dimension implicite, avec la décomposition LU - -@param lambda: coefficient de diffusivité thermique -@param T: vecteur qui contient les 101 valeures de la température en Kelvin à l'instant n, le long de la barre -@return: un vecteur qui contient les 101 valeures de la température en Kelvin à l'instant n+1, le long de la barre -*/ -vector<double> resolution(double lambda, vector<double> T){ - int n= T.size(); - vector<double> d(n,0); - vector<double> l(n-1,0); - d[0]=1+2*lambda; - - for (int i =1;i<n;i++){ - l[i-1]=(-1)*lambda/d[i-1]; - d[i]=1+2*lambda+lambda*l[i-1]; - } - vector<double> y(n,0); - y[0]=T[0]; - for (int i =1;i<n;i++){ - y[i]=T[i]-l[i-1]*y[i-1]; - } - vector<double> x(n,0); - x[n-1]=y[n-1]/d[n-1]; - for (int i =n-2;i>0;i--){ - x[i]=(y[i]+lambda*x[i+1])/d[i]; - } - - return x; -} - -/** -Fait la somme de 2 vecteurs de doubles - -@param F: vecteur qui contient les 101 valeures d'apport extérieur de chaleur à l'instant n, le long de la barre -@param T: vecteur qui contient les 101 valeures de la température en Kelvin à l'instant n, le long de la barre -@return: la somme des 2 vecteurs -*/ -vector<double> sum_vect(vector <double> T,vector <double> F){ - - vector <double> res(T.size(),0); - for (size_t i=0;i<T.size();i++){ - res[i]= T[i]+F[i]; - } - return res; - -} - -/** -Calcule les valeurs de la températures pour chaque chaque couple (x,t), où x,la position, prend 100 valeurs de 0 à 1, et T prend 101 valeurs de 0 à 16 - -@param mat: materiau de la barre -@param f: valeur de la température de la source exterieure de chaleur (en K) -@param u0: valeur de la température ambiante (en K) -@return: créé les fichiers contenant les tableaux de valeur, ne retourne rien -*/ -void settab(Materiaux mat, int u0, double f) -{ - double T=16; - double L=1; - double dt, dx; - dt= T/100.; - dx= L/100.; - double coef= (mat.getlambda()*dt)/(mat.getc()*mat.getrho()*(dx*dx)); - double F2=16*f*f; - vector<double> F(101,0); - F[10]=F2/(mat.getc()*mat.getrho()); - for(int j=50;j<61;j++){ - F[j]=F2*0.75/(mat.getc()*mat.getrho()); - } - - vector<vector<double> > temp; - vector<double> tp; - temp.push_back(vector<double>(101,u0)); - - - for (int i = 1; i < 100; i++){ - tp=temp[i-1]; - tp[0]=tp[0]+coef*u0; - tp[100]=tp[100]+coef*u0; - temp.push_back(resolution(coef,sum_vect(tp,F))); - temp[i][0]=u0; - temp[i][100]=u0; - } - const char separateur(' '); - std::ofstream sortie(mat.get_mat(),std::ios::out); - - - for (int i = 0; i < 100; i++){ - for (int j = 0; j < 101; j++){ - sortie << temp[i][j] << separateur; - } - sortie<< std::endl; - } - - sortie.close(); - -} - -int main(){ - -Materiaux cuivre = Materiaux("cuivre",389, 8940,380); -Materiaux fer= Materiaux ("fer",80.2,7874,440); -Materiaux verre= Materiaux("verre",1.2,2530,840); -Materiaux polystyrene= Materiaux("polystyrene",0.1,1040,1200); - - -settab(cuivre, 273.5+13,273.5+80); -std::cout<<1<<std::endl; -settab(fer,273.5+13,273.5+80); -std::cout<<2<<std::endl; -settab(verre,273.5+13,273.5+80); -std::cout<<3<<std::endl; -settab(polystyrene,273.5+13,273.5+80); -std::cout<<4<<std::endl; - -return 0; -} diff --git a/src/main.cpp b/src/main.cpp index 7141ddff7be587aa1ec3010b04dbb9faf7a07ba7..8e8e52fb34ed091cbfcb9d753c62b14a8cdd87af 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,8 @@ #include <iostream> #include <limits> #include <iomanip> +#include <vector> + #include "../includes/tab.h" @@ -16,11 +18,11 @@ Materiaux fer2D= Materiaux ("fer2D",80.2,7874,440); Materiaux verre2D= Materiaux("verre2D",1.2,2530,840); Materiaux polystyrene2D= Materiaux("polystyrene2D",0.1,1040,1200); -settab(cuivre, 273.5+13,273.5+6000); +settab(cuivre, 273.5+13,273.5+80); settab(fer,273.5+13,273.5+80); settab(verre,273.5+13,273.5+80); settab(polystyrene,273.5+13,273.5+80); -settab2D(cuivre2D, 273.5+13,273.5+6000); +settab2D(cuivre2D, 273.5+13,273.5+80); settab2D(fer2D,273.5+13,273.5+80); settab2D(verre2D,273.5+13,273.5+80); settab2D(polystyrene2D,273.5+13,273.5+80); diff --git a/src/makefile b/src/makefile index ed7c3ef0b6709183e6e92419e7df10d36e056ec6..b013a035b52eac3f5f9784eff7adba9a4ee1e4ba 100644 --- a/src/makefile +++ b/src/makefile @@ -1,5 +1,5 @@ CC = g++ -CPPFLAGS = -std=c++11 -Wall -Wextra -Werror +CPPFLAGS = -Wall -Wextra -Werror INCLUDES=../includes TARGET = ../main diff --git a/src/tab.cpp b/src/tab.cpp index 7b52eea8d9c1bb223bc09c8a715945d8c4134174..f198d54fd9a638ef15a4bebae1c3d83c34f16f6e 100644 --- a/src/tab.cpp +++ b/src/tab.cpp @@ -2,6 +2,7 @@ #include <limits> #include <iomanip> #include <fstream> +#include <vector> #include "../includes/tab.h" using namespace std;