PIPS-NLP
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
Input
OPF_Matpower
dcopflowInput.hpp
Go to the documentation of this file.
1
/* PIPS-NLP *
2
* Authors: Nai-Yuan Chiang *
3
* (C) 2015 Argonne National Laboratory */
4
5
6
#ifndef DCOPFINPUT_HPP
7
#define DCOPFINPUT_HPP
8
9
#include "
stochasticInput.hpp
"
10
#include "mpi.h"
11
12
#include "
ps.h
"
13
#include "
dcopflow.hpp
"
14
15
16
// solve problem as general stochastic programming problem
17
// min f(x_0) + \sum f(x_i)
18
// st g(x_i) = 0
19
//
20
21
// Jacobian looks like
22
// W_1 T_1
23
// W_2 T_1
24
// ...
25
// W_n T_n
26
// A
27
28
// Hessian looks like
29
// QW_1 QT_1
30
// QW_2 QT_1
31
// ...
32
// QW_n QT_n
33
// QA
34
35
36
37
// reads format written by dumpSmlModel.cpp
38
class
dcopflowInput
:
public
stochasticInput
{
39
public
:
40
dcopflowInput
(){};
41
~dcopflowInput
();
42
dcopflowInput
(
const
DCPS
* powersys, MPI_Comm comm = MPI_COMM_WORLD);
43
44
virtual
int
nScenarios
() {
return
nScenarios_
; }
45
virtual
int
nFirstStageVars
() {
return
nFirstStageVars_
; }
46
virtual
int
nFirstStageCons
() {
return
nFirstStageCons_
; }
47
virtual
int
nSecondStageVars
(
int
scen) {
return
nSecondStageVars_
[scen]; }
48
virtual
int
nSecondStageCons
(
int
scen) {
return
nSecondStageCons_
[scen]; }
49
50
virtual
bool
isFirstStageColInteger
(
int
col) {
return
false
; }
51
virtual
bool
isSecondStageColInteger
(
int
scen,
int
col) {
return
false
; }
52
53
virtual
bool
scenarioDimensionsEqual
() {
return
false
; }
54
virtual
bool
onlyBoundsVary
() {
return
false
; }
55
virtual
bool
allProbabilitiesEqual
() {
return
false
; }
56
virtual
bool
continuousRecourse
() {
return
false
; }
57
58
virtual
double
scenarioProbability
(
int
scen) {
return
1.0; }
59
60
// First stage obj and bounds
61
virtual
std::vector<double>
getFirstStageObj
(){
return
firstStageData
.
objLin
; }
62
virtual
std::vector<double>
getFirstStageColLB
(){
return
firstStageData
.
collb
; }
63
virtual
std::vector<double>
getFirstStageColUB
(){
return
firstStageData
.
colub
; }
64
virtual
std::vector<std::string>
getFirstStageColNames
() {
return
firstStageData
.
colnames
; }
65
virtual
std::vector<double>
getFirstStageRowLB
(){
return
firstStageData
.
rowlb
; }
66
virtual
std::vector<double>
getFirstStageRowUB
(){
return
firstStageData
.
rowub
; }
67
virtual
std::vector<std::string>
getFirstStageRowNames
() {
return
firstStageData
.
rownames
; }
68
69
// Second stage obj and bounds
70
virtual
std::vector<double>
getSecondStageObj
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].objLin;}
71
virtual
std::vector<double>
getSecondStageColLB
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].collb;}
72
virtual
std::vector<double>
getSecondStageColUB
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].colub;}
73
virtual
std::vector<std::string>
getSecondStageColNames
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].colnames;}
74
virtual
std::vector<double>
getSecondStageRowLB
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].rowlb;}
75
virtual
std::vector<double>
getSecondStageRowUB
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].rowub;}
76
virtual
std::vector<std::string>
getSecondStageRowNames
(
int
scen){
loadLocalScenData
(scen);
return
localData
[scen].rownames;}
77
78
// A
79
virtual
CoinPackedMatrix
getFirstStageConstraints
() {
return
Amat
; }
80
// W
81
virtual
CoinPackedMatrix
getSecondStageConstraints
(
int
scen) {
loadLocalScenData
(scen);
return
Wmat
[scen]; }
82
// T
83
virtual
CoinPackedMatrix
getLinkingConstraints
(
int
scen) {
loadLocalScenData
(scen);
return
Tmat
[scen]; }
84
85
// QA
86
// virtual CoinPackedMatrix getFirstStageHessian(){return QAmat;}
87
// QW
88
virtual
CoinPackedMatrix
getSecondStageHessian
(
int
scen){
loadLocalScenData
(scen);
return
QWmat
[scen];}
89
// QT
90
// virtual CoinPackedMatrix getSecondStageCrossHessian(int scen){loadLocalScenData(scen);return QTmat[scen];}
91
92
protected
:
93
struct
scenData
{
94
std::vector<double>
collb
,
colub
,
rowlb
,
rowub
,
objLin
;
95
std::vector<std::string>
rownames
,
colnames
;
96
bool
didLoad
;
97
scenData
() : didLoad(false) {}
98
void
initialize
(
int
nvar,
int
ncons);
99
void
copyFrom
(
scenData
s2);
100
};
101
102
virtual
void
loadLocalScenData
(
int
scen);
103
104
int
mype_
;
105
106
double
ObjScale
;
107
int
nScenarios_
,
nFirstStageVars_
,
nFirstStageCons_
;
108
std::vector<int>
nSecondStageVars_
,
nSecondStageCons_
;
109
110
scenData
firstStageData
;
111
std::vector<scenData>
localData
;
112
113
CoinPackedMatrix
Amat
,
QAmat
;
114
std::vector<CoinPackedMatrix>
Tmat
,
QTmat
,
Wmat
,
QWmat
;
115
116
// compressed Jacobian ( full system), which can be used as a preconditioner later.
117
CoinPackedMatrix
Pmat
;
118
119
120
int
nVar_Aggregaion
;
121
int
nCon_Aggregaion
;
122
123
private
:
124
void
parseZeroData
();
125
126
DCOPFLOW
*
dcopf
;
127
128
};
129
130
131
#endif
132
dcopflowInput::nSecondStageVars_
std::vector< int > nSecondStageVars_
Definition:
dcopflowInput.hpp:108
dcopflowInput::nFirstStageVars
virtual int nFirstStageVars()
Definition:
dcopflowInput.hpp:45
dcopflowInput::getSecondStageRowNames
virtual std::vector< std::string > getSecondStageRowNames(int scen)
Definition:
dcopflowInput.hpp:76
dcopflowInput::nFirstStageCons
virtual int nFirstStageCons()
Definition:
dcopflowInput.hpp:46
dcopflowInput::loadLocalScenData
virtual void loadLocalScenData(int scen)
Definition:
dcopflowInput.cpp:212
dcopflowInput::scenData::scenData
scenData()
Definition:
dcopflowInput.hpp:97
dcopflowInput::scenData::copyFrom
void copyFrom(scenData s2)
Definition:
dcopflowInput.cpp:71
dcopflowInput::getSecondStageHessian
virtual CoinPackedMatrix getSecondStageHessian(int scen)
Definition:
dcopflowInput.hpp:88
dcopflowInput::scenData::initialize
void initialize(int nvar, int ncons)
Definition:
dcopflowInput.cpp:60
ps.h
dcopflowInput::continuousRecourse
virtual bool continuousRecourse()
Definition:
dcopflowInput.hpp:56
dcopflowInput::scenData::rowub
std::vector< double > rowub
Definition:
dcopflowInput.hpp:94
dcopflowInput::getFirstStageRowNames
virtual std::vector< std::string > getFirstStageRowNames()
Definition:
dcopflowInput.hpp:67
dcopflowInput::nCon_Aggregaion
int nCon_Aggregaion
Definition:
dcopflowInput.hpp:121
dcopflowInput::nScenarios_
int nScenarios_
Definition:
dcopflowInput.hpp:107
stochasticInput
Definition:
stochasticInput.hpp:32
dcopflowInput::QTmat
std::vector< CoinPackedMatrix > QTmat
Definition:
dcopflowInput.hpp:114
DCOPFLOW
Definition:
dcopflow.hpp:14
dcopflowInput::getFirstStageColNames
virtual std::vector< std::string > getFirstStageColNames()
Definition:
dcopflowInput.hpp:64
stochasticInput.hpp
dcopflowInput::scenData::didLoad
bool didLoad
Definition:
dcopflowInput.hpp:96
dcopflowInput::Tmat
std::vector< CoinPackedMatrix > Tmat
Definition:
dcopflowInput.hpp:114
dcopflowInput::firstStageData
scenData firstStageData
Definition:
dcopflowInput.hpp:110
dcopflowInput::scenarioProbability
virtual double scenarioProbability(int scen)
Definition:
dcopflowInput.hpp:58
dcopflowInput::nSecondStageVars
virtual int nSecondStageVars(int scen)
Definition:
dcopflowInput.hpp:47
dcopflowInput::nSecondStageCons_
std::vector< int > nSecondStageCons_
Definition:
dcopflowInput.hpp:108
dcopflowInput::getSecondStageColUB
virtual std::vector< double > getSecondStageColUB(int scen)
Definition:
dcopflowInput.hpp:72
dcopflowInput::getFirstStageColUB
virtual std::vector< double > getFirstStageColUB()
Definition:
dcopflowInput.hpp:63
dcopflowInput::getFirstStageRowUB
virtual std::vector< double > getFirstStageRowUB()
Definition:
dcopflowInput.hpp:66
dcopflowInput::scenData::objLin
std::vector< double > objLin
Definition:
dcopflowInput.hpp:94
dcopflowInput::scenData
Definition:
dcopflowInput.hpp:93
dcopflowInput::nVar_Aggregaion
int nVar_Aggregaion
Definition:
dcopflowInput.hpp:120
dcopflowInput::Wmat
std::vector< CoinPackedMatrix > Wmat
Definition:
dcopflowInput.hpp:114
dcopflowInput::isSecondStageColInteger
virtual bool isSecondStageColInteger(int scen, int col)
Definition:
dcopflowInput.hpp:51
dcopflowInput::getFirstStageColLB
virtual std::vector< double > getFirstStageColLB()
Definition:
dcopflowInput.hpp:62
dcopflowInput::getSecondStageRowUB
virtual std::vector< double > getSecondStageRowUB(int scen)
Definition:
dcopflowInput.hpp:75
dcopflowInput::getLinkingConstraints
virtual CoinPackedMatrix getLinkingConstraints(int scen)
Definition:
dcopflowInput.hpp:83
dcopflowInput::allProbabilitiesEqual
virtual bool allProbabilitiesEqual()
Definition:
dcopflowInput.hpp:55
dcopflowInput::getSecondStageObj
virtual std::vector< double > getSecondStageObj(int scen)
Definition:
dcopflowInput.hpp:70
dcopflowInput::nSecondStageCons
virtual int nSecondStageCons(int scen)
Definition:
dcopflowInput.hpp:48
dcopflowInput::getSecondStageRowLB
virtual std::vector< double > getSecondStageRowLB(int scen)
Definition:
dcopflowInput.hpp:74
dcopflow.hpp
dcopflowInput::nFirstStageCons_
int nFirstStageCons_
Definition:
dcopflowInput.hpp:107
dcopflowInput::mype_
int mype_
Definition:
dcopflowInput.hpp:104
dcopflowInput::QAmat
CoinPackedMatrix QAmat
Definition:
dcopflowInput.hpp:113
dcopflowInput::getSecondStageConstraints
virtual CoinPackedMatrix getSecondStageConstraints(int scen)
Definition:
dcopflowInput.hpp:81
dcopflowInput::getFirstStageObj
virtual std::vector< double > getFirstStageObj()
Definition:
dcopflowInput.hpp:61
dcopflowInput::getFirstStageConstraints
virtual CoinPackedMatrix getFirstStageConstraints()
Definition:
dcopflowInput.hpp:79
dcopflowInput::dcopf
DCOPFLOW * dcopf
Definition:
dcopflowInput.hpp:126
dcopflowInput::scenData::rownames
std::vector< std::string > rownames
Definition:
dcopflowInput.hpp:95
dcopflowInput::scenData::colnames
std::vector< std::string > colnames
Definition:
dcopflowInput.hpp:95
dcopflowInput::scenData::colub
std::vector< double > colub
Definition:
dcopflowInput.hpp:94
dcopflowInput::scenarioDimensionsEqual
virtual bool scenarioDimensionsEqual()
Definition:
dcopflowInput.hpp:53
dcopflowInput::getSecondStageColNames
virtual std::vector< std::string > getSecondStageColNames(int scen)
Definition:
dcopflowInput.hpp:73
dcopflowInput
Definition:
dcopflowInput.hpp:38
dcopflowInput::parseZeroData
void parseZeroData()
Definition:
dcopflowInput.cpp:107
dcopflowInput::isFirstStageColInteger
virtual bool isFirstStageColInteger(int col)
Definition:
dcopflowInput.hpp:50
dcopflowInput::scenData::rowlb
std::vector< double > rowlb
Definition:
dcopflowInput.hpp:94
dcopflowInput::nFirstStageVars_
int nFirstStageVars_
Definition:
dcopflowInput.hpp:107
dcopflowInput::Amat
CoinPackedMatrix Amat
Definition:
dcopflowInput.hpp:113
dcopflowInput::localData
std::vector< scenData > localData
Definition:
dcopflowInput.hpp:111
dcopflowInput::getSecondStageColLB
virtual std::vector< double > getSecondStageColLB(int scen)
Definition:
dcopflowInput.hpp:71
dcopflowInput::ObjScale
double ObjScale
Definition:
dcopflowInput.hpp:106
dcopflowInput::nScenarios
virtual int nScenarios()
Definition:
dcopflowInput.hpp:44
dcopflowInput::dcopflowInput
dcopflowInput()
Definition:
dcopflowInput.hpp:40
DCPS
Definition:
ps.h:115
dcopflowInput::scenData::collb
std::vector< double > collb
Definition:
dcopflowInput.hpp:94
dcopflowInput::QWmat
std::vector< CoinPackedMatrix > QWmat
Definition:
dcopflowInput.hpp:114
dcopflowInput::onlyBoundsVary
virtual bool onlyBoundsVary()
Definition:
dcopflowInput.hpp:54
dcopflowInput::~dcopflowInput
~dcopflowInput()
Definition:
dcopflowInput.cpp:101
dcopflowInput::Pmat
CoinPackedMatrix Pmat
Definition:
dcopflowInput.hpp:117
dcopflowInput::getFirstStageRowLB
virtual std::vector< double > getFirstStageRowLB()
Definition:
dcopflowInput.hpp:65
Generated by
1.8.11