Limiting Optimization Table Data Checking / Alternate API Samples
Phil Weinstein, CADSES, 12-26-2013
Below are several variations of sample calls from PowerReservoir to set up optimization variable (X,Y,Z) / TableSlot column associations, and indicate which of those columns support Optimization Limits (minimums and maximums). At this time, the "OptTableCheck" GIT branch has the first form of these methods (1a, 1b).
In all examples, the 'true' optional parameter is for a 'supportsOptMinMax' variable. For readability, we could make use of a terse 'true' constant in place of just 'true', e.g. OPT_LIMIT.
// Set optimization variable / column index associations maxTurbineQ->setXcolIndex(0, true); // opt limit maxTurbineQ->setYcolIndex(1); tailwaterTable->setXcolIndex(0, true); // opt limit tailwaterTable->setYcolIndex(1); stageFlowTailwaterTable->setXcolIndex(1, true); // opt limit stageFlowTailwaterTable->setYcolIndex(2); stageFlowTailwaterTable->setZcolIndex(0, true); // opt limit convolvedStageFlowTailwaterTable->setXcolIndex(SFTW_OUTFLOW_COL, true); convolvedStageFlowTailwaterTable->setZcolIndex(SFTW_STAGE_COL, true); plantPowerTable->setXcolIndex(1, true); // opt limit plantPowerTable->setYcolIndex(2); plantPowerTable->setZcolIndex(0, true); // opt limit |
(1a) |
// Set optimization variable / column index associations maxTurbineQ -> setXcolIndex (0, true); maxTurbineQ -> setYcolIndex (1); tailwaterTable -> setXcolIndex (0, true); tailwaterTable -> setYcolIndex (1); stageFlowTailwaterTable -> setXcolIndex (1, true); stageFlowTailwaterTable -> setYcolIndex (2); stageFlowTailwaterTable -> setZcolIndex (0, true); convolvedStageFlowTailwaterTable -> setXcolIndex (SFTW_OUTFLOW_COL, true); convolvedStageFlowTailwaterTable -> setZcolIndex (SFTW_STAGE_COL, true); plantPowerTable -> setXcolIndex (1, true); plantPowerTable -> setYcolIndex (2); plantPowerTable -> setZcolIndex (0, true); |
(1b) with code alignment |
// Set optimization variable / column index associations maxTurbineQ -> setCol ('X', 0, true); maxTurbineQ -> setCol ('Y', 1); tailwaterTable -> setCol ('X', 0, true); tailwaterTable -> setCol ('Y', 1); stageFlowTailwaterTable -> setCol ('X', 1, true); stageFlowTailwaterTable -> setCol ('Y', 2); stageFlowTailwaterTable -> setCol ('Z', 0, true); convolvedStageFlowTailwaterTable -> setCol ('X', SFTW_OUTFLOW_COL, true); convolvedStageFlowTailwaterTable -> setCol ('Z', SFTW_STAGE_COL, true); plantPowerTable -> setCol ('X', 1, true); plantPowerTable -> setCol ('Y', 2); plantPowerTable -> setCol ('Z', 0, true); |
(2) |
// Set optimization variable / column index associations maxTurbineQ -> setCol_X (0, true); maxTurbineQ -> setCol_Y (1); tailwaterTable -> setCol_X (0, true); tailwaterTable -> setCol_Y (1); stageFlowTailwaterTable -> setCol_X (1, true); stageFlowTailwaterTable -> setCol_Y (2); stageFlowTailwaterTable -> setCol_Z (0, true); convolvedStageFlowTailwaterTable -> setCol_X (SFTW_OUTFLOW_COL, true); convolvedStageFlowTailwaterTable -> setCol_Z (SFTW_STAGE_COL, true); plantPowerTable -> setCol_X (1, true); plantPowerTable -> setCol_Y (2); plantPowerTable -> setCol_Z (0, true); |
(3) |
// Set optimization variable / column index associations maxTurbineQ -> set_Xcol (0, true); maxTurbineQ -> set_Ycol (1); tailwaterTable -> set_Xcol (0, true); tailwaterTable -> set_Ycol (1); stageFlowTailwaterTable -> set_Xcol (1, true); stageFlowTailwaterTable -> set_Ycol (2); stageFlowTailwaterTable -> set_Zcol (0, true); convolvedStageFlowTailwaterTable -> setCol_X (SFTW_OUTFLOW_COL, true); convolvedStageFlowTailwaterTable -> setCol_Z (SFTW_STAGE_COL, true); plantPowerTable -> set_Xcol (1, true); plantPowerTable -> set_Ycol (2); plantPowerTable -> set_Zcol (0, true); |
(4) |