FEMM/femm/cv_problem.h

206 lines
3.4 KiB
C++

namespace cviewtype
{
/////////////////////////////////////////////////////////////////////////////
// CNode -- structure that holds information about each control point.
class CNode
{
public:
CNode();
double x,y;
int xs,ys;
BOOL IsSelected;
int BoundaryMarker;
int InGroup,InConductor;
double GetDistance(double xo, double yo);
CComplex CC();
void ToggleSelect();
private:
};
class CMeshNode
{
public:
CMeshNode();
CComplex v;
double x,y;
double msk;
int xs,ys;
BOOL Q,IsSelected;
double GetDistance(double xo, double yo);
CComplex CC();
private:
};
/////////////////////////////////////////////////////////////////////////////
// CSegment -- structure that holds information about lines joining control pts
class CSegment
{
public:
CSegment();
int n0,n1;
double MaxSideLength;
BOOL IsSelected;
BOOL Hidden;
int BoundaryMarker;
int InGroup,InConductor;
void ToggleSelect();
private:
};
class CArcSegment
{
public:
CArcSegment();
int n0,n1;
BOOL IsSelected;
BOOL Hidden;
double MaxSideLength,ArcLength;
int BoundaryMarker;
int InGroup, InConductor;
void ToggleSelect();
private:
};
/////////////////////////////////////////////////////////////////////////////
// CBlockLabel -- structure that holds block label information
class CBlockLabel
{
public:
CBlockLabel();
double x,y;
double MaxArea;
BOOL IsSelected;
int BlockType;
int InGroup;
BOOL IsExternal;
BOOL IsDefault;
void ToggleSelect();
double GetDistance(double xo, double yo);
private:
};
class CMaterialProp
{
public:
CString BlockName;
CComplex Kx,Ky; // effective conductivity
double ox,oy; // dc conductivity
CComplex ex,ey; // electrical permittivity
CMaterialProp();
private:
};
class CBoundaryProp
{
public:
CBoundaryProp();
CString BdryName;
CString InConductor;
int BdryFormat; // type of boundary condition we are applying
// 0 = Fixed Voltage
// 1 = Mixed BC
// 2 = Surface Current Density
// 3 = Periodic
// 4 = Antiperiodic
CComplex V ; // Fixed value of V for BdryFormat=0;
CComplex c0,c1; // Coefficients for BdryFormat=1;
CComplex qs; // Surface current density for Bdryformat=2;
private:
};
class CPointProp
{
public:
CPointProp();
CString PointName;
CString InConductor;
CComplex V,qp;
private:
};
class CCircuit
{
public:
CCircuit();
CString CircName;
CComplex V,q;
int CircType;
private:
};
class CElement
{
public:
int p[3];
int blk,lbl;
CComplex Jx,Jy; // elemental AC current density
CComplex jx[3], jy[3]; // smoothed AC current density at corners
CComplex ctr;
double rsqr;
int n[3]; // Add 3 ints to store elem's neigh.
// CComplex E();
private:
};
class CPointVals
{
public:
CComplex v; // voltage
CComplex Ex,Ey; // electric field intensity
CComplex Dx,Dy; // electric flux density
CComplex Jcx,Jcy; // conduction current density
CComplex Jdx,Jdy; // displacement current density
CComplex Jx,Jy; // AC current density
CComplex Kx,Ky; // effective conductivity
double ox,oy; // dc conductivity
CComplex ex,ey; // permittivity
CPointVals();
private:
};
}
using namespace cviewtype;