MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / addEdgeFast

Method addEdgeFast

SRC/graph/graph/Graph.cpp:236–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234}
235
236int
237Graph::addEdgeFast(int vertexTag, int otherVertexTag)
238{
239 // get pointers to the vertices, if one does not exist return
240 if (vertices.size()<=vertexTag ||
241 vertices.size()<=otherVertexTag) {
242 opserr << "WARNING: the size of vertices is not correct\n";
243 return -1;
244 }
245 Vertex *vertex1 = vertices[vertexTag];
246 Vertex *vertex2 = vertices[otherVertexTag];
247 if ((vertex1 == 0) || (vertex2 == 0)) {
248 opserr << "WARNING Graph::addEdge() - one or both of the vertices ";
249 opserr << vertexTag << " " << otherVertexTag << " not in Graph\n";
250 return -1;
251 }
252
253 // add an edge to each vertex
254 int result = vertex1->addEdge(otherVertexTag);
255 if (result == 1)
256 return 0; // already there
257 else if (result == 0) { // added to vertexTag now add to other
258 if ((result = vertex2->addEdge(vertexTag)) == 0) {
259 numEdge++;
260 }
261 else {
262 opserr << " WARNING Graph::addEdge() - " << vertexTag;
263 opserr << " added to " << otherVertexTag;
264 opserr << " adjacency - but already there in otherVertexTag!.\n";
265 opserr << *this; exit(0);
266 return -2;
267 }
268 } else {
269 opserr << " WARNING Graph::addEdge() - " << vertexTag;
270 opserr << " added to " << otherVertexTag;
271 opserr << " adjacency - but not vica versa!.\n";
272 opserr << *this; exit(0);
273 return -2;
274 }
275 return result;
276}
277
278Vertex *
279Graph::getVertexPtr(int vertexTag)

Callers 1

AnalysisModel.cppFile · 0.80

Calls 3

exitFunction · 0.85
sizeMethod · 0.45
addEdgeMethod · 0.45

Tested by

no test coverage detected