int LoadPattern::setParameter(const char **argv, int argc, Parameter ¶m) { if (theSeries == 0) { opserr << "set/update/activate parameter is illegaly called in LoadPattern " << endln; return 0; } if (argc < 1) return -1; // Nodal load if (strstr(argv[0],"loadAtNode") != 0) { if (argc < 3) return -1; RVisRandomProcessDiscretizer = false; int nodeNumber = atoi(argv[1]); NodalLoad *thePossibleNodalLoad; NodalLoad *theNodalLoad = 0; NodalLoadIter &theNodalIter = this->getNodalLoads(); while ((thePossibleNodalLoad = theNodalIter()) != 0) { if ( nodeNumber == thePossibleNodalLoad->getNodeTag() ) { theNodalLoad = thePossibleNodalLoad; } } if (theNodalLoad != 0) return theNodalLoad->setParameter(&argv[2], argc-2, param); else return -1; } else if (strstr(argv[0],"elementPointLoad") != 0 || strstr(argv[0],"elementLoad") != 0) { if (argc < 3) return -1; RVisRandomProcessDiscretizer = false; int eleNumber = atoi(argv[1]); ElementalLoad *theEleLoad = 0; ElementalLoadIter &theEleLoadIter = this->getElementalLoads(); while ((theEleLoad = theEleLoadIter()) != 0) { int eleTag = theEleLoad->getElementTag(); if (eleNumber == eleTag) { return theEleLoad->setParameter(&argv[2], argc-2, param); } } return -1; } else if (strstr(argv[0],"randomProcessDiscretizer") != 0) { if (argc < 2) return -1; RVisRandomProcessDiscretizer = true; return theSeries->setParameter(&argv[1], argc-1, param); } // Unknown parameter else return -1; }