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

Function OPS_GenericClient

SRC/element/generic/GenericClient.cpp:49–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47
48
49void* OPS_GenericClient()
50{
51 int ndf = OPS_GetNDF();
52 if (OPS_GetNumRemainingInputArgs() < 7) {
53 opserr << "WARNING insufficient arguments\n";
54 opserr << "Want: element genericClient eleTag -node Ndi Ndj ... -dof dofNdi -dof dofNdj ... -server ipPort <ipAddr> <-ssl> <-udp> <-dataSize size> <-noRayleigh>\n";
55 return 0;
56 }
57
58 // tags
59 int tag;
60 int numdata = 1;
61 if (OPS_GetIntInput(&numdata, &tag) < 0) {
62 opserr << "WARNING: invalid tag\n";
63 return 0;
64 }
65
66 // nodes
67 const char* type = OPS_GetString();
68 if (strcmp(type, "-node") != 0) {
69 opserr << "WARNING expecting -node Ndi Ndj ...\n";
70 return 0;
71 }
72 ID nodes(32);
73 int numNodes = 0;
74 while (OPS_GetNumRemainingInputArgs() > 0) {
75 int node;
76 numdata = 1;
77 int numArgs = OPS_GetNumRemainingInputArgs();
78 if (OPS_GetIntInput(&numdata, &node) < 0) {
79 if (numArgs > OPS_GetNumRemainingInputArgs()) {
80 // move current arg back by one
81 OPS_ResetCurrentInputArg(-1);
82 }
83 break;
84 }
85 nodes(numNodes++) = node;
86 }
87 nodes.resize(numNodes);
88
89 // dofs
90 int numDOF = 0;
91 ID *dofs = new ID[numNodes];
92 for (int i = 0; i < numNodes; i++) {
93 type = OPS_GetString();
94 if (strcmp(type, "-dof") != 0 && strcmp(type, "-dir") != 0) {
95 opserr << "WARNING expecting -dof dofNd"
96 << i+1 << ", but got " << type << endln;
97 return 0;
98 }
99 ID dofsi(ndf);
100 int numDOFi = 0;
101 while (OPS_GetNumRemainingInputArgs() > 0) {
102 int dof;
103 numdata = 1;
104 int numArgs = OPS_GetNumRemainingInputArgs();
105 if (OPS_GetIntInput(&numdata, &dof) < 0) {
106 if (numArgs > OPS_GetNumRemainingInputArgs()) {

Callers 1

Calls 6

OPS_GetNDFFunction · 0.50
OPS_GetIntInputFunction · 0.50
OPS_GetStringFunction · 0.50
OPS_ResetCurrentInputArgFunction · 0.50
resizeMethod · 0.45

Tested by

no test coverage detected