#include"../phy/Phy_Base.h"
#include"../material/Material_Base.h"
#include"../mesh/Mesh_Base.h"
#include"../kernel/Assemble_Base.h"
#include"../solver/Solver_Base.h"
#include"../post/Post_Base.h"
#include"../Interface/FEM_Interface.h"

#include <fstream>
#include <iostream>
#include <iomanip>
#include <string>

int main()
{
	//�������
	Phy_WaveOpticsModel phy;
	MaterialLib matLab;
	Mesh_2D mesh;
	OpticsFEM_2D_EigenFreq fem;
	Solver_EigenFreq solver;
	Post_2D_EigenFreq post;

	ifstream fd;
	std::string str;

	//�ļ���ȡ
	fd.open("bele.json");
	getline(fd, str);

	OpticsFEM_API femAPI;
	OpticsFEMData data;
	data.test1=1;
	data.test2=2;
	data.data=(char*)str.data();

	femAPI.OpticsFEM_All(data);

/*
	phy.Test_ReadData(str);
	matLab.Test_ReadData(str);
	solver.GetSolver(str);
	mesh.Test_ReadData(str);

	//��װ
	fem.GetMaterial(&matLab);
	fem.GetMesh(&mesh);
	fem.GetPhy(&phy);
	fem.GetSolver(&solver);
	fem.GetPost(&post);
	fem.Assemble();

	//���
	fem.Test_OutputMatrix();
	fem.Run();
	std::string file = "OutFile";
	fem.Post(file);
*/
	return 1;
}
