FEMM/hsolv/MESH.H

109 lines
2.0 KiB
C++

#define PI 3.141592653589793238462643383
#define eo 8.85418781762e-12
#define AXISYMMETRIC 1
#define PLANAR 0
#include "complex.h"
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:
double Kx,Ky; // Thermal conductivity for linear (possibly anisotropic) problems
double Kt; // Volumetric Heat Capacity, MJ/(m^3*K)
double qv; // charge density, C/m^3
int npts;
CComplex Kn[128]; // Thermal conductivity as a function of temperature
CComplex GetK(double T); // evaluate the T-k curve
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
double Tset; // Fixed value of temperature for BdryFormat=0;
double Tinf; // External temperature for convection or radiation
double qs; // Heat flux;
double beta; // radiosity coefficient
double h; // Heat transfer coefficient
private:
};
class CPointProp
{
public:
double V; // fixed nodal voltage
double qp; // point current density;
private:
};
class CCircuit
{
public:
double V,q;
int CircType;
private:
};