#define PI 3.141592653589793238462643383
#define eo 8.85418781762e-12
#define AXISYMMETRIC 1
#define PLANAR 0

class CNode
{
	public:
		
		double x,y;
		int bc;
		int InConductor;

	private:

};

class CElement
{
	public:

		int p[3];		// nodes at the corners of the element
		int e[3];		// boundary condition applied to each edge of the element
		int blk;		// block property applied to the element
		int lbl;		// block label associated with the element

	private:
};

class CBlockLabel
{
	public:

		double x,y;
		double MaxArea;
		int BlockType,InGroup;
		BOOL IsExternal;
		BOOL IsDefault;
	private:

};

class CCommonPoint
{
	public:
		int x,y,t;

	private:
};

/////////////////////////////////////////////////////////////////////////////
// Classes that hold property data:  CMaterialProp, CBoundaryProp, CPointProp

class CMaterialProp
{
	public:

		CComplex ex,ey;		// permittivity, relative
		double ox,oy;		// conductivity
		CComplex kx,ky;

	private:
};

class CBoundaryProp
{
	public:
	
		int BdryFormat;			// type of boundary condition we are applying
								// 0 = fixed voltage
								// 1 = mixed BC
								// 2 = surface charge
								// 3 = periodic
								// 4 = antiperiodic

		CComplex V;				// set value of V for BdryFormat=0;
		CComplex qs;			// surface current density
		CComplex c0,c1;			// coefficients for mixed BC

	private:
};

class CPointProp
{
	public:

		CComplex V;			// fixed nodal voltage 
		CComplex qp;		// point current density;

	private:
};

class CCircuit
{
	public:

		CComplex V,q;
		int CircType;

	private:
};
