本文整理汇总了C++中Domain::getLoadPatterns方法的典型用法代码示例。如果您正苦于以下问题:C++ Domain::getLoadPatterns方法的具体用法?C++ Domain::getLoadPatterns怎么用?C++ Domain::getLoadPatterns使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Domain
的用法示例。
在下文中一共展示了Domain::getLoadPatterns方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: patternsToJSON
mObject patternsToJSON(void) {
LoadPatternIter &thePatterns = theDomain.getLoadPatterns();
LoadPattern *thePattern;
TimeSeries *theSeries;
NodalLoadIter *nli;
NodalLoad *nload;
const Vector *load_vec;
// TODO:
// ElementalLoadIter *eli;
// SP_ConstraintIter *spci;
mObject patterns, pattern, nloads;
mArray arr;
mValue tmp, tmp2, tmp3;
char tag_str[15];
int i, size;
patterns.clear();
while ((thePattern = thePatterns()) != 0) {
pattern.clear();
// TODO:
tmp = thePattern->getClassType();
pattern["type"] = tmp;
theSeries = thePattern->getTimeSeries();
tmp2 = theSeries->getTag();
sprintf(tag_str, "%d", tmp2.get_int());
pattern["tsTag"] = tag_str;
nli = &(thePattern->getNodalLoads());
nloads.clear();
while((nload = (*nli)()) != 0) {
tmp2 = nload->getNodeTag();
sprintf(tag_str, "%d", tmp2.get_int());
load_vec = nload->getLoadValue();
size = load_vec->Size();
arr.clear();
for (i = 0; i < size; i++) {
tmp3 = (*load_vec)(i);
arr.push_back(tmp3);
}
nloads[tag_str] = arr;
}
pattern["nodalLoads"] = nloads;
tmp2 = thePattern->getTag();
sprintf(tag_str, "%d", tmp2.get_int());
patterns[tag_str] = pattern;
}
return patterns;
}
示例2: while
int
PFEMIntegrator::formSensitivityRHS(int passedGradNumber)
{
sensitivityFlag = 1;
// Set a couple of data members
gradNumber = passedGradNumber;
// Get pointer to the SOE
LinearSOE *theSOE = this->getLinearSOE();
// Get the analysis model
AnalysisModel *theModel = this->getAnalysisModel();
// Randomness in external load (including randomness in time series)
// Get domain
Domain *theDomain = theModel->getDomainPtr();
// Loop through nodes to zero the unbalaced load
Node *nodePtr;
NodeIter &theNodeIter = theDomain->getNodes();
while ((nodePtr = theNodeIter()) != 0)
nodePtr->zeroUnbalancedLoad();
// Loop through load patterns to add external load sensitivity
LoadPattern *loadPatternPtr;
LoadPatternIter &thePatterns = theDomain->getLoadPatterns();
double time;
while((loadPatternPtr = thePatterns()) != 0) {
time = theDomain->getCurrentTime();
loadPatternPtr->applyLoadSensitivity(time);
}
// Randomness in element/material contributions
// Loop through FE elements
FE_Element *elePtr;
FE_EleIter &theEles = theModel->getFEs();
while((elePtr = theEles()) != 0) {
theSOE->addB( elePtr->getResidual(this), elePtr->getID() );
}
// Loop through DOF groups (IT IS IMPORTANT THAT THIS IS DONE LAST!)
DOF_Group *dofPtr;
DOF_GrpIter &theDOFs = theModel->getDOFs();
while((dofPtr = theDOFs()) != 0) {
theSOE->addB( dofPtr->getUnbalance(this), dofPtr->getID() );
}
// Reset the sensitivity flag
sensitivityFlag = 0;
return 0;
}