#pragma once

//Geo
const int ONEDIM = 1;
const int TWODIM = 2;
const int THREEDIM = 3;

//Mesh
const int LINE = 11;
const int TRIANGLE = 21;
const int QUADRANGLE = 22;
const int TETRAHEDRON = 31;
const int PRISM = 32;

//Basis function
const int BF_LAGRANGE = 11;
const int BF_GRAD_LAGRANGE = 12;
const int BF_CURL_LAGRANGE = 13;
const int BF_NEDELEC = 21;
const int BF_CURL_NEDELEC = 23;

const int BF_MIMORDER = 1;
const int BF_MAXORDER = 2;
const int BF_LINEFUNC = 1;
const int BF_QUADFUNC = 2;

//Material
const int MAT_ISO = 0;
const int MAT_DIAG = 1;
const int MAT_ANISO = 2;
const int MAT_NEFF = 11;

//physics
const double c_const = 299792458;
const double Pi = 3.141592654;
const double epsilon0 = 8.854187817E-12;
const double mu0 = 1.256637061435917E-06;
const double Z0 = 376.7303134749689;
const double Y0 = 0.002654418729345;

//solver
const int PHY_EZ = 0;
const int PHY_ET = 1;
const int PHY_EF = 2;