#include"Material_Base.h" #include void MaterialLib::SetNumberMat(int number) { if (_mNbrMat > 0) { delete[] _mMat; } _mNbrMat = number; _mMat = new Material[number]; } void MaterialLib::SetMat(int num, string name, int nbrDomain, int* domain, int matType, complex* epsr, complex* mur, double* sigma, complex* chihe, complex* chieh) { _mMat[num].SetName(name); _mMat[num].SetDomain(nbrDomain, domain); if (matType == MAT_ISO) { _mMat[num].SetEpsr(epsr[0]); _mMat[num].SetMur(mur[0]); _mMat[num].SetSimga(sigma[0]); _mMat[num].SetNK(sqrt(epsr[0]).real(), sqrt(epsr[0]).imag()); _mMat[num].SetChihe(chihe[0], chihe[0], chihe[0]); _mMat[num].SetChieh(chieh[0], chieh[0], chieh[0]); } else if (matType == MAT_DIAG) { _mMat[num].SetEpsr(epsr[0], epsr[1], epsr[2]); _mMat[num].SetMur(mur[0], mur[1], mur[2]); _mMat[num].SetSimga(sigma[0], sigma[1], sigma[2]); _mMat[num].SetChihe(chihe[0], chihe[1], chihe[2]); _mMat[num].SetChieh(chieh[0], chieh[1], chieh[2]); } } void MaterialLib::SetMat(int num, string name, int nbrDomain, int domain[], int matType, double n, double k) { _mMat[num].SetName(name); _mMat[num].SetDomain(nbrDomain, domain); if (matType == MAT_NEFF) { _mMat[num].SetNK(n, k); } } void MaterialLib::GetMat() { }