void* OPS_MidDistanceBeamIntegration(int& integrationTag, ID& secTags) { if(OPS_GetNumRemainingInputArgs() < 4) { opserr<<"insufficient arguments:integrationTag,N,secTags,locations\n"; return 0; } // inputs: integrationTag,N int iData[2]; int numData = 2; if(OPS_GetIntInput(&numData,&iData[0]) < 0) return 0; integrationTag = iData[0]; int N = iData[1]; if(N > 0) { secTags.resize(N); } else { secTags.resize(1); N = 1; } // check argumments Vector pt(N); if(OPS_GetNumRemainingInputArgs() < 2*N) { opserr<<"There must be "<<N<<"secTags and locations\n"; return 0; } // secTags int *secptr = &secTags(0); if(OPS_GetIntInput(&N,secptr) < 0) return 0; // locations double *locptr = &pt(0); if(OPS_GetDoubleInput(&N,locptr) < 0) return 0; return new MidDistanceBeamIntegration(N,pt); }
void* OPS_TrapezoidalBeamIntegration(int& integrationTag, ID& secTags) { if(OPS_GetNumRemainingInputArgs() < 3) { opserr<<"insufficient arguments:integrationTag,secTag,N\n"; return 0; } // inputs: integrationTag,secTag,N int iData[3]; int numData = 3; if(OPS_GetIntInput(&numData,&iData[0]) < 0) return 0; integrationTag = iData[0]; if(iData[2] > 0) { secTags.resize(iData[2]); } else { secTags = ID(); } for(int i=0; i<secTags.Size(); i++) { secTags(i) = iData[1]; } return new TrapezoidalBeamIntegration; }
void* OPS_HingeRadauTwoBeamIntegration(int& integrationTag, ID& secTags) { if(OPS_GetNumRemainingInputArgs() < 6) { opserr<<"insufficient arguments:integrationTag,secTagI,lpI,secTagJ,lpJ,secTagE\n"; return 0; } // inputs: int iData[6]; int numData = 6; if(OPS_GetIntInput(&numData,&iData[0]) < 0) return 0; integrationTag = iData[0]; secTags.resize(6); secTags(0) = iData[1]; secTags(1) = iData[1]; secTags(2) = iData[5]; secTags(3) = iData[5]; secTags(4) = iData[3]; secTags(5) = iData[3]; return new HingeRadauTwoBeamIntegration(iData[2],iData[4]); }