示例#1
0
void
LoadPattern::applyLoad(double pseudoTime)
{
  // first determine the load factor
  if (theSeries != 0 && isConstant != 0) {
    loadFactor = theSeries->getFactor(pseudoTime);
    loadFactor *= scaleFactor;
  }

  NodalLoad *nodLoad;
  NodalLoadIter &theNodalIter = this->getNodalLoads();

  while ((nodLoad = theNodalIter()) != 0)
    nodLoad->applyLoad(loadFactor);
    
  ElementalLoad *eleLoad;
  ElementalLoadIter &theElementalIter = this->getElementalLoads();
  while ((eleLoad = theElementalIter()) != 0)
    eleLoad->applyLoad(loadFactor);

  SP_Constraint *sp;
  SP_ConstraintIter &theIter = this->getSPs();
  while ((sp = theIter()) != 0)
    sp->applyConstraint(loadFactor);
}
示例#2
0
void 
FireLoadPattern::applyLoad(double time)
{
  // first determine the load factor
  if (theSeries1 != 0 && isConstant != 0) {
    loadFactors(0) = theSeries1->getFactor(time);
    loadFactors(1) = theSeries2->getFactor(time);
    loadFactors(2) = theSeries3->getFactor(time);
    loadFactors(3) = theSeries4->getFactor(time);
    loadFactors(4) = theSeries5->getFactor(time);
    loadFactors(5) = theSeries6->getFactor(time);
    loadFactors(6) = theSeries7->getFactor(time);
    loadFactors(7) = theSeries8->getFactor(time);
    loadFactors(8) = theSeries9->getFactor(time);
  }
  //this is a fire load pattern so we always need multiple timeseries
  ElementalLoad *eleLoad;
  ElementalLoadIter &theElementalIter = this->getElementalLoads();
  while ((eleLoad = theElementalIter()) != 0)
    eleLoad->applyLoad(loadFactors);
}