本文整理汇总了C++中FEM_ObjectBroker::getNewTimeSeries方法的典型用法代码示例。如果您正苦于以下问题:C++ FEM_ObjectBroker::getNewTimeSeries方法的具体用法?C++ FEM_ObjectBroker::getNewTimeSeries怎么用?C++ FEM_ObjectBroker::getNewTimeSeries使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FEM_ObjectBroker
的用法示例。
在下文中一共展示了FEM_ObjectBroker::getNewTimeSeries方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lpData
int
LoadPattern::recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker)
{
// get my current database tag
// NOTE - dbTag equals 0 if not sending to a database OR has not yet been sent
int myDbTag = this->getDbTag();
// into an ID we place all info needed to determine state of LoadPattern
int numNod, numEle, numSPs;
ID lpData(11);
if (theChannel.recvID(myDbTag, cTag, lpData) < 0) {
opserr << "LoadPattern::recvSelf - channel failed to recv the initial ID\n";
return -1;
}
isConstant = lpData(7);
this->setTag(lpData(10));
if (isConstant == 0) { // we must recv the load factor in a Vector
Vector data(2);
if (theChannel.recvVector(myDbTag, cTag, data) < 0) {
opserr << "LoadPattern::recvSelf - channel failed to recv the Vector\n";
return -2;
}
loadFactor = data(0);
scaleFactor = data(1);
}
// read data about the time series
if (lpData(8) != -1) {
if (theSeries == 0) {
theSeries = theBroker.getNewTimeSeries(lpData(8));
} else if (theSeries->getClassTag() != lpData(8)) {
delete theSeries;
theSeries = theBroker.getNewTimeSeries(lpData(8));
}
if (theSeries == 0) {
opserr << "LoadPattern::recvSelf - failed to create TimeSeries\n";
return -3;
}
theSeries->setDbTag(lpData(9));
if (theSeries->recvSelf(cTag, theChannel, theBroker) < 0) {
opserr << "LoadPattern::recvSelf - the TimeSeries failed to recv\n";
return -3;
}
}
/*
if (theChannel.isDatastore() == 1) {
static ID theLastSendTag(1);
if (theChannel.recvID(myDbTag,0,theLastSendTag) == 0)
lastGeoSendTag = theLastSendTag(0);
}
*/
if (lastChannel != theChannel.getTag() || currentGeoTag != lpData(0) || theChannel.isDatastore() == 0) {
// clear out the all the components in the current load pattern
this->clearAll();
lastChannel = theChannel.getTag();
currentGeoTag = lpData(0);
numNod = lpData(1);
numEle = lpData(2);
numSPs = lpData(3);
dbNod = lpData(4);
dbEle = lpData(5);
dbSPs = lpData(6);
//
// now we rebuild the nodal loads
//
// first get the information from the domainData about the nodes
if (numNod != 0) {
ID nodeData(2*numNod);
// now receive the ID about the nodes, class tag and dbTags
if (theChannel.recvID(dbNod, currentGeoTag, nodeData) < 0) {
opserr << "LoadPAttern::recvSelf - channel failed to recv the NodalLoad ID\n";
return -2;
}
// now for each NodalLoad we 1) get a new node of the correct type from the ObjectBroker
// 2) ensure the node exists and set it's dbTag, 3) we invoke recvSelf on this new
// blank node and 4) add this node to the domain
int loc = 0;
for (int i=0; i<numNod; i++) {
int classTag = nodeData(loc);
int dbTag = nodeData(loc+1);
NodalLoad *theNode = theBroker.getNewNodalLoad(classTag);
//.........这里部分代码省略.........
示例2: idData
//.........这里部分代码省略.........
echoTimeFlag = false;
dataFlag = idData(4);
sensitivity = idData(5);
//
// get the DOF ID data
//
if (theDofs == 0 || theDofs->Size() != numDOFs) {
if (theDofs != 0)
delete theDofs;
if (numDOFs != 0) {
theDofs = new ID(numDOFs);
if (theDofs == 0 || theDofs->Size() != numDOFs) {
opserr << "NodeRecorder::recvSelf() - out of memory\n";
return -1;
}
}
}
if (theDofs != 0)
if (theChannel.recvID(0, commitTag, *theDofs) < 0) {
opserr << "NodeRecorder::recvSelf() - failed to recv dof data\n";
return -1;
}
//
// get the NODAL tag data
//
if (theNodalTags == 0 || theNodalTags->Size() != numNodes) {
if (theNodalTags != 0)
delete theNodalTags;
if (numNodes != 0) {
theNodalTags = new ID(numNodes);
if (theNodalTags == 0 || theNodalTags->Size() != numNodes) {
opserr << "NodeRecorder::recvSelf() - out of memory\n";
return -1;
}
}
}
if (theNodalTags != 0)
if (theChannel.recvID(0, commitTag, *theNodalTags) < 0) {
opserr << "NodeRecorder::recvSelf() - failed to recv dof data\n";
return -1;
}
static Vector data(2);
if (theChannel.recvVector(0, commitTag, data) < 0) {
opserr << "NodeRecorder::sendSelf() - failed to receive data\n";
return -1;
}
deltaT = data(0);
nextTimeStampToRecord = data(1);
if (theOutputHandler != 0)
delete theOutputHandler;
theOutputHandler = theBroker.getPtrNewStream(idData(2));
if (theOutputHandler == 0) {
opserr << "NodeRecorder::sendSelf() - failed to get a data output handler\n";
return -1;
}
if (theOutputHandler->recvSelf(commitTag, theChannel, theBroker) < 0) {
opserr << "NodeRecorder::sendSelf() - failed to send the DataOutputHandler\n";
return -1;
}
if (idData[7] == 1) {
timeSeriesValues = new double [numDOFs];
for (int i=0; i<numDOFs; i++)
timeSeriesValues[i] = 0.0;
theTimeSeries = new TimeSeries *[numDOFs];
ID timeSeriesTags(numDOFs);
if (theChannel.recvID(0, commitTag, timeSeriesTags) < 0) {
opserr << "EnvelopeNodeRecorder::recvSelf() - failed to recv time series tags\n";
return -1;
}
for (int i=0; i<numDOFs; i++) {
if (timeSeriesTags[i] == -1)
theTimeSeries[i] = 0;
else {
theTimeSeries[i] = theBroker.getNewTimeSeries(timeSeriesTags(i));
if (theTimeSeries[i]->recvSelf(commitTag, theChannel, theBroker) < 0) {
opserr << "EnvelopeNodeRecorder::recvSelf() - time series failed in recv\n";
return -1;
}
}
}
}
return 0;
}
示例3: idData
int
GroundMotion::recvSelf(int commitTag, Channel &theChannel,
FEM_ObjectBroker &theBroker)
{
int dbTag = this->getDbTag();
static ID idData(8);
int res = theChannel.recvID(dbTag, commitTag, idData);
if (res < 0) {
opserr << "UniformExcitation::sendSelf() - channel failed to send data\n";
return res;
}
int seriesClassTag = idData(0);
if (seriesClassTag != -1) {
int seriesDbTag = idData(1);
if (theAccelSeries == 0 || theAccelSeries->getClassTag() != seriesClassTag) {
if (theAccelSeries != 0)
delete theAccelSeries;
theAccelSeries = theBroker.getNewTimeSeries(seriesClassTag);
if (theAccelSeries == 0) {
opserr << "GroundMotionRecord::sendSelf - could not create a Series object\n";
return -2;
}
}
theAccelSeries->setDbTag(seriesDbTag);
res = theAccelSeries->recvSelf(commitTag, theChannel, theBroker);
if (res < 0) {
opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n";
return res;
}
}
seriesClassTag = idData(2);
if (seriesClassTag != -1) {
int seriesDbTag = idData(3);
if (theVelSeries == 0 || theVelSeries->getClassTag() != seriesClassTag) {
if (theVelSeries != 0)
delete theVelSeries;
theVelSeries = theBroker.getNewTimeSeries(seriesClassTag);
if (theVelSeries == 0) {
opserr << "GroundMotionRecord::sendSelf - could not create a Series object\n";
return -2;
}
}
theVelSeries->setDbTag(seriesDbTag);
res = theVelSeries->recvSelf(commitTag, theChannel, theBroker);
if (res < 0) {
opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n";
return res;
}
}
seriesClassTag = idData(4);
if (seriesClassTag != -1) {
int seriesDbTag = idData(5);
if (theDispSeries == 0 || theDispSeries->getClassTag() != seriesClassTag) {
if (theDispSeries != 0)
delete theDispSeries;
theDispSeries = theBroker.getNewTimeSeries(seriesClassTag);
if (theDispSeries == 0) {
opserr << "GroundMotionRecord::sendSelf - could not create a Series object\n";
return -2;
}
}
theDispSeries->setDbTag(seriesDbTag);
res = theDispSeries->recvSelf(commitTag, theChannel, theBroker);
if (res < 0) {
opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n";
return res;
}
}
seriesClassTag = idData(6);
if (seriesClassTag != -1) {
int seriesDbTag = idData(7);
if (theIntegrator == 0 || theIntegrator->getClassTag() != seriesClassTag) {
if (theIntegrator != 0)
delete theIntegrator;
theIntegrator = theBroker.getNewTimeSeriesIntegrator(seriesClassTag);
if (theIntegrator == 0) {
opserr << "GroundMotionRecord::sendSelf - could not create an Integrator object\n";
return -2;
}
}
theIntegrator->setDbTag(seriesDbTag);
res = theIntegrator->recvSelf(commitTag, theChannel, theBroker);
if (res < 0) {
opserr << "UniformExcitation::sendSelf() - accel series failed to send data\n";
return res;
}
}
return 0;
}