47 #ifndef Xyce_N_DEV_PDE_2DMesh__h
48 #define Xyce_N_DEV_PDE_2DMesh__h
57 #include <N_UTL_Xyce.h>
68 #define VERTEX_A 0 // vertex A
69 #define VERTEX_B 1 // vertex B
70 #define VERTEX_C 2 // vertex C
71 #define VERTEX_D 3 // vertex D
73 #define EDGE_AB 0 // edge AB
74 #define EDGE_BC 1 // edge BC
75 #define EDGE_AC 2 // edge AC
76 #define EDGE_CD 2 // edge CD
77 #define EDGE_AD 3 // edge AD
79 #define TYPE_EDGE 7 // edge label
80 #define TYPE_REGION 8 // region label
136 double xlength,
double ylength,
137 int numElectrodes, std::string & outputMeshFileName,
138 std::map<std::string,PDE_2DElectrode*> & elMap,
141 bool resizeMesh (
double xlength,
double ylength);
162 double interp (
double *F,
double r,
double z);
163 bool interpVector (
double *F,
double r,
double z,
double & xvec,
double & yvec);
165 void findCell(
double r,
double z,
int & isuccess,
166 int & inode,
int & iCell,
int iStartCell = 0);
171 double x2,
double y2,
172 double x3,
double y3);
181 bool getXVector (std::vector<double> & xvec_tmp);
182 bool getYVector (std::vector<double> & yvec_tmp);
194 double lengthAdjust (
double x1,
double y1,
double x2,
double y2);
209 std::map<std::string,PDE_2DElectrode*> & elMap);
214 std::map<std::string,PDE_2DElectrode*> & elMap);
219 int inodeA,
int inodeB,
int inodeC);
222 double x2,
double y2,
223 double x3,
double y3);
229 bool fCCWorder (
int inode1,
int inode2,
int inode3);
234 (
NADJ &nadj,
int itri,
int iVertex,
int uIntLabel,
bool fCW);
237 (
int itri,
int *ainode,
int *aiedge,
int *aitri,
int *auLabel);
551 #define LEN_IDENT 15 // identifier length
553 #define EDGESTATUS_BOUNDARY 0
554 #define EDGESTATUS_EXTERIOR 1
555 #define EDGESTATUS_INTERIOR 2
868 inline double sq(
double x)
883 os << el.
name <<
":\n";
884 os <<
" node = " << el.
nodeName <<
"\n";
885 os <<
" side = " << el.
side <<
"\n";
886 os <<
" start = " << el.
start <<
"\n";
887 os <<
" end = " << el.
end <<
"\n";