109 lines
2.0 KiB
C++
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:
|
|
};
|