|
nec2++ 2.1.1
|
The partition of every segment end into the node it belongs to. More...
Public Member Functions | |
| nec_node_partition (std::vector< segment_endpoint > &endpoints, int64_t segment_count) | |
| Class the ends of every final segment into the nodes they meet at. | |
| bool | shares_one_node (int64_t segment_a, int64_t segment_b) const |
| Report whether two segments meet at exactly one node. | |
The partition of every segment end into the node it belongs to.
build_connections() records at most one contact per segment end, so a node where three or more ends meet is recorded as a cycle rather than as a clique and pairs that are not adjacent in that cycle look unconnected. Classing the ends geometrically recovers the clique: every end in contact with any other end of its class belongs to that class, whatever order the connection record happened to link them in.
| nec_node_partition::nec_node_partition | ( | std::vector< segment_endpoint > & | endpoints, |
| int64_t | segment_count ) |
Class the ends of every final segment into the nodes they meet at.
| endpoints | Both ends of every segment, reordered by the sweep. |
| segment_count | The number of final segments the ends belong to. |
| bool nec_node_partition::shares_one_node | ( | int64_t | segment_a, |
| int64_t | segment_b ) const |
Report whether two segments meet at exactly one node.
| segment_a | One segment index. |
| segment_b | The other segment index. |
One node in common is a junction: the currents of both segments are continuous through it, which bounds the error a center inside the joined wire introduces. Two segments holding both nodes in common are not joined end to end but laid one along the other, so their volumes coincide over their whole length and the pair carries no such continuity.