Skip to content
This repository was archived by the owner on Apr 6, 2026. It is now read-only.

Commit ad51797

Browse files
committed
Fixes to run scopflow with DCOPF?
1 parent f7ce7ff commit ad51797

2 files changed

Lines changed: 6 additions & 7 deletions

File tree

include/opflow.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ namespace OPFLOWOptions {
6565
const auto model = ExaGOStringOption("-opflow_model", "OPFLOW model name",
6666
"POWER_BALANCE_POLAR",
6767
{
68+
"DCOPF",
6869
#ifdef EXAGO_ENABLE_HIOP
6970
"POWER_BALANCE_HIOP",
7071
"PBPOLRAJAHIOP",

src/scopflow/interface/scopflow.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -695,11 +695,9 @@ PetscErrorCode SCOPFLOWSetUp(SCOPFLOW scopflow) {
695695
ierr = OPFLOWIgnoreLineflowConstraints(
696696
scopflow->opflow0, scopflow->ignore_lineflow_constraints);
697697
CHKERRQ(ierr);
698-
/* Base-case problem model should be POWER_BALANCE_POLAR */
699-
ierr = OPFLOWSetModel(scopflow->opflow0, OPFLOWMODEL_PBPOL);
698+
ierr = OPFLOWSetModel(scopflow->opflow0, scopflow->subproblem_model);
700699
CHKERRQ(ierr);
701-
/* Base-case problem solver should be IPOPT */
702-
ierr = OPFLOWSetSolver(scopflow->opflow0, OPFLOWSOLVER_IPOPT);
700+
ierr = OPFLOWSetSolver(scopflow->opflow0, scopflow->subproblem_solver);
703701
CHKERRQ(ierr);
704702
ierr = OPFLOWReadMatPowerData(scopflow->opflow0, scopflow->netfile);
705703
CHKERRQ(ierr);
@@ -801,7 +799,7 @@ PetscErrorCode SCOPFLOWSetUp(SCOPFLOW scopflow) {
801799
}
802800

803801
if (scopflow->cstart + c == 0) { /* First stage */
804-
ierr = OPFLOWSetModel(scopflow->opflows[c], OPFLOWMODEL_PBPOL);
802+
ierr = OPFLOWSetModel(scopflow->opflows[c], scopflow->subproblem_model);
805803
CHKERRQ(ierr);
806804
ierr = OPFLOWSetSolver(scopflow->opflows[c], OPFLOWSOLVER_IPOPT);
807805
CHKERRQ(ierr);
@@ -810,9 +808,9 @@ PetscErrorCode SCOPFLOWSetUp(SCOPFLOW scopflow) {
810808
} else { /* Second stages */
811809
ierr = OPFLOWHasGenSetPoint(scopflow->opflows[c], PETSC_TRUE);
812810
CHKERRQ(ierr); /* Activates ramping variables */
813-
ierr = OPFLOWSetModel(scopflow->opflows[c], OPFLOWMODEL_PBPOL);
811+
ierr = OPFLOWSetModel(scopflow->opflows[c], scopflow->subproblem_model);
814812
CHKERRQ(ierr);
815-
ierr = OPFLOWSetSolver(scopflow->opflows[c], OPFLOWSOLVER_IPOPT);
813+
ierr = OPFLOWSetSolver(scopflow->opflows[c], scopflow->subproblem_solver);
816814
CHKERRQ(ierr);
817815
// ierr = OPFLOWSetObjectiveType(scopflow->opflows[c], NO_OBJ);
818816
CHKERRQ(ierr);

0 commit comments

Comments
 (0)