#include "P_sistemaEc.h"
#include <iostream>
#include <string>
#include <math.h>
#include <fstream>
#include <stdlib.h>
#include <string.h>
#define PI 3.14159265358979323846264338327950288419716939937510

using namespace std;


int main(int argc, char** argv)
{
	int verb = 0; // por omision se ocultan las matrices locales
//	cout << "\nMostrar las matridez locales de rigidez ? 0/1: ";
//	if( !(cin >> verb)) cout << "Simbolo desconocido. Castigado!.\n";

// se crea un objeto de la clase Sistema_ecuaciones. Esto ejecutara el constructor.
	Sistema_ecuaciones prueba(argv[1]);



// Se crea el sistema de ecuaciones base para comenzar a trabajar.
	prueba.getStiffness(verb);

// Se puede utilizar lo siguiente para mostrar la matriz global. Cuidado con el tamanhio
//	cout << "\nMostrar la matridez global de rigidez ? 0/1: ";
//	verb=0; cin >> verb; if( verb==1 ){ cout<<"\n Matriz global" << endl; prueba.print_global(); }

// se genera el vector de terminos independientes, la "b" de Ax=b
	prueba.rightSide();

// Se ha prototipado estas funciones para empezar a tabajar con la transformacion de kelvin. Esta caracteristica queda fuera de Femsii 1.0.0
//	prueba.dirichletPto(); // DIRICHLET POR PUNTO	
//	prueba.paresHomologos();
//	prueba.kelvin();

// Se llama a la funcion que crea impone las condiciones dirichlet al sistema de ecuaciones.
	prueba.dirichletLin();
	
// Se crea un archivo binario tipo PETSc para almacenar la matriz creada, y el vectorde terminos independientes. Este archivo lo utilizara femsii_solve.cpp
	prueba.aBinario();

//	cout << "\nMostrar la matridez global de rigidez ? 0/1: ";
//	verb=0; cin >> verb; if( verb==1 ){ cout<<"\n Matriz global" << endl; prueba.print_global(); }

	return 0;
}
