1 /*****************************************************************************/
2 /* 8888888 88888888 88888888 */
5 /* 8 88888888 88888888 */
8 /* 888888 888888888 888888888 */
10 /* A Two-Dimensional General Purpose Semiconductor Simulator. */
13 /* Last update: Jan 01, 2005 */
17 /* NINT, No.69 P.O.Box, Xi'an City, China */
19 /*****************************************************************************/
27 class Interface
// a collection of interface edges
39 vector
<int> index_array1
;
40 vector
<int> index_array2
;
41 vector
<int> gindex_array
;
42 int Find_neighbor_zone_index(int z
);
43 int Find_neighbor_node_index(int z
,int n
);
44 ZONE
*Get_neighbor_zone_pointer(int z
);
52 vector
<Interface
> interface
;
54 int Find(const char* conn
);
55 Interface
& operator[](int i
) { return interface
[i
];}
56 int size() { return interface
.size(); }
57 void Clear_flag_all() { for(int i
=0;i
<interface
.size();i
++) interface
[i
].flag
= 0;}
58 void Set_flag_all() { for(int i
=0;i
<interface
.size();i
++) interface
[i
].flag
= 1;}
59 void Clear_flag(const char *conn
){ interface
[Find(conn
)].flag
= 0;}
60 void Set_flag(const char *conn
) { interface
[Find(conn
)].flag
= 1;}
61 int Flag(const char *conn
) { return interface
[Find(conn
)].flag
; }
62 void Clear_flag(int i
) { interface
[i
].flag
= 0;}
63 void Set_flag(int i
) { interface
[i
].flag
= 1;}
64 int Flag(int i
) { return interface
[i
].flag
; }
65 int IsBelong(int inf
,int z
);
66 vector
<int> * Get_node_array(int inf
,int z
);