MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / OPS_updateParameter

Function OPS_updateParameter

SRC/interpreter/OpenSeesParameterCommands.cpp:463–512  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

461}
462
463int 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, &paramTag) < 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, &paramTag, true) < 0) {
507 opserr << "WARNING: parameter - failed to set parameter tag\n";
508 return -1;
509 }
510
511 return 0;
512}
513
514int OPS_getParamTags() {
515 Domain *theDomain = OPS_GetDomain();

Callers 2

Tcl_ops_updateParameterFunction · 0.85
Py_ops_updateParameterFunction · 0.85

Calls 6

OPS_GetDomainFunction · 0.70
OPS_GetIntInputFunction · 0.70
OPS_SetIntOutputFunction · 0.70
getParameterMethod · 0.45
updateParameterMethod · 0.45

Tested by

no test coverage detected