#include <iostream>
#include <fstream>
#include <Math.h>
#include "Resolution_analytique.h"
#include "Resolution_numerique.h"
#include "Algo_Thomas.h"

using namespace std;

int main()
{
    cout << "  ******************************************************************" << endl;
    cout << "* Resolution d'un probleme aux limites pour une equation parabolique *" << endl;
    cout << "  ******************************************************************\n" << endl;
    cout << "\t \t \t Auteurs :\n" << "\n" << "\t CARRIERE Amandine" << "\n \t \t - \n" << "\t LAFOSSE MARIN Sheryl" << "\n \t \t - \n" << "\t MAZODIER Alice" << "\n \t \t - \n" << "\t SROUSSI Mathieu" << endl;
    cout << "____________________________________________________________________\n\n" << endl;
    cout << "\t Sujet 2 : \n" << endl;
    cout << "\t\t Ut = Uxx + Ux \n \t \t U(x,0)=exp(-0.5x)*x*(x-1) \n \t \t U(0,t)=0 ; U(1,t)=1 \n\n" << endl;
    cout << "____________________________________________________________________\n\n" << endl;

    cout << "Quelle m�thode de r�solution d�sirez-vous utiliser ?" << endl;
    cout << "1 - Resolution analytique" << endl;
    cout << "2 - Resolution num�rique" << endl;

    int choix;
    double pasX, pasT;
//    cin >> choix;
    choix = 1;

//    cout << "Veuillez donner une valeur de pas pour l'espace temps " << endl;
//    cin >> pasT;
//    cout << "Veuillez donner une valeur de pas pour la dimension spaciale " << endl;
//    cin >> pasX;
    pasT = 0.02;
    pasX = 0.02;

    if(choix == 1){
        int dim;
        cout << "\t Resolution analytique \n" << endl;
        cout << "Quelle dimension desirez-vous ? (50 conseill�) \n" << endl;
//        cin >> dim;
        dim=50;
        startAnalytique(pasX, pasT, dim);
    }
    else if(choix == 2){
        //on consid�re le rectangle [0,L]X[0,T]
        double T;
        cout << "Donnez une valeur pour T " << endl;
        cin >> T;
        double L;
        cout << "Donnez une valeur pour L " << endl;
        cin >> L;
        cout << "\t Resolution num�rique" << endl;
        startNumerique(pasX,pasT,T,L);
    }
    else{
        cout << "\t Choix incorrect" << endl;
    }


    return 0;
}
