| 461 | } |
| 462 | |
| 463 | int OPS_updateParameter() { |
| 464 | Domain *theDomain = OPS_GetDomain(); |
| 465 | if (theDomain == 0) return -1; |
| 466 | |
| 467 | // check at least two arguments so don't segemnt fault on strcmp |
| 468 | if (OPS_GetNumRemainingInputArgs() < 1) { |
| 469 | opserr << "WARNING need to specify a parameter tag\n"; |
| 470 | opserr << "Want: updateParameter tag <specific parameter args> .. see " |
| 471 | "manual for valid parameter types and arguments\n"; |
| 472 | return -1; |
| 473 | } |
| 474 | |
| 475 | // Figure out which parameter we are dealing with |
| 476 | int paramTag; |
| 477 | int num = 1; |
| 478 | if (OPS_GetIntInput(&num, ¶mTag) < 0) { |
| 479 | opserr << "WARNING: parameter - failed to get parameter tag\n"; |
| 480 | return -1; |
| 481 | } |
| 482 | |
| 483 | if (OPS_GetNumRemainingInputArgs() < 1) { |
| 484 | opserr << "WARNING parameter -- insufficient number of arguments for " |
| 485 | "parameter with tag " |
| 486 | << paramTag << '\n'; |
| 487 | return -1; |
| 488 | } |
| 489 | |
| 490 | // check existence |
| 491 | Parameter *theParameter = theDomain->getParameter(paramTag); |
| 492 | if (theParameter == 0) { |
| 493 | opserr << "WARNNG: parameter " << paramTag << " not exists\n"; |
| 494 | return -1; |
| 495 | } |
| 496 | |
| 497 | // update values |
| 498 | double newValue; |
| 499 | if (OPS_GetDouble(&num, &newValue) < 0) { |
| 500 | opserr << "WARNING updateParameter -- invalid parameter value\n"; |
| 501 | return -1; |
| 502 | } |
| 503 | |
| 504 | theDomain->updateParameter(paramTag, newValue); |
| 505 | |
| 506 | if (OPS_SetIntOutput(&num, ¶mTag, true) < 0) { |
| 507 | opserr << "WARNING: parameter - failed to set parameter tag\n"; |
| 508 | return -1; |
| 509 | } |
| 510 | |
| 511 | return 0; |
| 512 | } |
| 513 | |
| 514 | int OPS_getParamTags() { |
| 515 | Domain *theDomain = OPS_GetDomain(); |
no test coverage detected