Home > matpower4.1 > mpoption.m

mpoption

PURPOSE ^

MPOPTION Used to set and retrieve a MATPOWER options vector.

SYNOPSIS ^

function [options, names] = mpoption(varargin)

DESCRIPTION ^

MPOPTION  Used to set and retrieve a MATPOWER options vector.

   OPT = MPOPTION
       returns the default options vector

   OPT = MPOPTION(NAME1, VALUE1, NAME2, VALUE2, ...)
       returns the default options vector with new values for up to 7
       options, NAME# is the name of an option, and VALUE# is the new
       value.

   OPT = MPOPTION(OPT, NAME1, VALUE1, NAME2, VALUE2, ...)
       same as above except it uses the options vector OPT as a base
       instead of the default options vector.

   Examples:
       opt = mpoption('PF_ALG', 2, 'PF_TOL', 1e-4);
       opt = mpoption(opt, 'OPF_ALG', 565, 'VERBOSE', 2);

   The currently defined options are as follows:

      idx - NAME, default          description [options]
      ---   -------------          -----------------------------------------
   power flow options
       1  - PF_ALG, 1              AC power flow algorithm
           [   1 - Newton's method                                         ]
           [   2 - Fast-Decoupled (XB version)                             ]
           [   3 - Fast-Decoupled (BX version)                             ]
           [   4 - Gauss-Seidel                                            ]
       2  - PF_TOL, 1e-8           termination tolerance on per unit
                                   P & Q mismatch
       3  - PF_MAX_IT, 10          maximum number of iterations for
                                   Newton's method
       4  - PF_MAX_IT_FD, 30       maximum number of iterations for 
                                   fast decoupled method
       5  - PF_MAX_IT_GS, 1000     maximum number of iterations for 
                                   Gauss-Seidel method
       6  - ENFORCE_Q_LIMS, 0      enforce gen reactive power limits
                                   at expense of |V|
           [    0 - do NOT enforce limits                                  ]
           [    1 - enforce limits, simultaneous bus type conversion       ]
           [    2 - enforce limits, one-at-a-time bus type conversion      ]
       10 - PF_DC, 0               DC modeling for power flow & OPF
           [    0 - use AC formulation & corresponding algorithm options   ]
           [    1 - use DC formulation, ignore AC algorithm options        ]
   OPF options
       11 - OPF_ALG, 0             solver to use for AC OPF
           [    0 - choose default solver based on availability in the     ]
           [        following order, 540, 560                              ]
           [  300 - constr, MATLAB Optimization Toolbox 1.x and 2.x        ]
           [  320 - dense successive LP                                    ]
           [  340 - sparse successive LP (relaxed)                         ]
           [  360 - sparse successive LP (full)                            ]
           [  500 - MINOPF, MINOS-based solver, requires optional          ]
           [        MEX-based MINOPF package, available from:              ]
           [        http://www.pserc.cornell.edu/minopf/                   ]
           [  520 - fmincon, MATLAB Optimization Toolbox >= 2.x            ]
           [  540 - PDIPM, primal/dual interior point method, requires     ]
           [        optional MEX-based TSPOPF package, available from:     ]
           [        http://www.pserc.cornell.edu/tspopf/                   ]
           [  545 - SC-PDIPM, step-controlled variant of PDIPM, requires   ]
           [        TSPOPF (see 540)                                       ]
           [  550 - TRALM, trust region based augmented Langrangian        ]
           [        method, requires TSPOPF (see 540)                      ]
           [  560 - MIPS, MATLAB Interior Point Solver                     ]
           [        primal/dual interior point method (pure MATLAB)        ]
           [  565 - MIPS-sc, step-controlled variant of MIPS               ]
           [        primal/dual interior point method (pure MATLAB)        ]
           [  580 - IPOPT, requires MEX interface to IPOPT solver          ]
           [        available from: https://projects.coin-or.org/Ipopt/    ]
           [  600 - KNITRO, requires MATLAB Optimization Toolbox and       ]
                    KNITRO libraries available from: http://www.ziena.com/ ]
       16 - OPF_VIOLATION, 5e-6    constraint violation tolerance
       17 - CONSTR_TOL_X, 1e-4     termination tol on x for constr/fmincon
       18 - CONSTR_TOL_F, 1e-4     termination tol on f for constr/fmincon
       19 - CONSTR_MAX_IT, 0       max number of iterations for constr/fmincon
                                   [       0 => default                    ]
       20 - LPC_TOL_GRAD, 3e-3     termination tolerance on gradient, LP-based
                                   solver
       21 - LPC_TOL_X, 1e-4        termination tolerance on x (min step size),
                                   LP-based solver
       22 - LPC_MAX_IT, 400        maximum number of iterations, LP-based slvr
       23 - LPC_MAX_RESTART, 5     maximum number of restarts, LP-based solver
       24 - OPF_FLOW_LIM, 0        qty to limit for branch flow constraints
           [   0 - apparent power flow (limit in MVA)                      ]
           [   1 - active power flow (limit in MW)                         ]
           [   2 - current magnitude (limit in MVA at 1 p.u. voltage)      ]
       25 - OPF_IGNORE_ANG_LIM, 0  ignore angle difference limits for branches
                                   even if specified           [   0 or 1  ]
       26 - OPF_ALG_DC, 0          solver to use for DC OPF
           [    0 - choose default solver based on availability in the     ]
           [        following order: 500, 600, 700, 100, 300, 200          ]
           [  100 - BPMPD, requires optional MEX-based BPMPD_MEX package   ]
           [        available from: http://www.pserc.cornell.edu/bpmpd/    ]
           [  200 - MIPS, MATLAB Interior Point Solver                     ]
           [        primal/dual interior point method (pure MATLAB)        ]
           [  250 - MIPS-sc, step-controlled variant of MIPS               ]
           [  300 - MATLAB Optimization Toolbox, QUADPROG, LINPROG         ]
           [  400 - IPOPT, requires MEX interface to IPOPT solver          ]
                    available from: https://projects.coin-or.org/Ipopt/    ]
           [  500 - CPLEX, requires Matlab interface to CPLEX solver       ]
           [  600 - MOSEK, requires Matlab interface to MOSEK solver       ]
                    available from: http://www.mosek.com/                  ]
           [  700 - GUROBI, requires Matlab interface to Gurobi optimizer  ]
                    available from: http://www.gurobi.com/                 ]
   output options
       31 - VERBOSE, 1             amount of progress info printed
           [   0 - print no progress info                                  ]
           [   1 - print a little progress info                            ]
           [   2 - print a lot of progress info                            ]
           [   3 - print all progress info                                 ]
       32 - OUT_ALL, -1            controls pretty-printing of results
           [  -1 - individual flags control what prints                    ]
           [   0 - do not print anything                                   ]
           [       (overrides individual flags)                            ]
           [   1 - print everything                                        ]
           [       (overrides individual flags)                            ]
       33 - OUT_SYS_SUM, 1         print system summary        [   0 or 1  ]
       34 - OUT_AREA_SUM, 0        print area summaries        [   0 or 1  ]
       35 - OUT_BUS, 1             print bus detail            [   0 or 1  ]
       36 - OUT_BRANCH, 1          print branch detail         [   0 or 1  ]
       37 - OUT_GEN, 0             print generator detail      [   0 or 1  ]
                                   (OUT_BUS also includes gen info)
       38 - OUT_ALL_LIM, -1        controls what constraint info is printed
           [  -1 - individual flags control what constraint info prints    ]
           [   0 - no constraint info (overrides individual flags)         ]
           [   1 - binding constraint info (overrides individual flags)    ]
           [   2 - all constraint info (overrides individual flags)        ]
       39 - OUT_V_LIM, 1           control output of voltage limit info
           [   0 - do not print                                            ]
           [   1 - print binding constraints only                          ]
           [   2 - print all constraints                                   ]
           [   (same options for OUT_LINE_LIM, OUT_PG_LIM, OUT_QG_LIM)     ]
       40 - OUT_LINE_LIM, 1        control output of line flow limit info
       41 - OUT_PG_LIM, 1          control output of gen P limit info
       42 - OUT_QG_LIM, 1          control output of gen Q limit info
       52 - RETURN_RAW_DER, 0      return constraint and derivative info
                                   in results.raw (in fields g, dg, df, d2f)
   FMINCON options
       55 - FMC_ALG, 4             algorithm used by fmincon for OPF
                                   for Optimization Toolbox 4 and later
            [  1 - active-set                                              ]
            [  2 - interior-point, w/default 'bfgs' Hessian approx         ]
            [  3 - interior-point, w/ 'lbfgs' Hessian approx               ]
            [  4 - interior-point, w/exact user-supplied Hessian           ]
            [  5 - interior-point, w/Hessian via finite differences        ]

   KNITRO options
       58 - KNITRO_OPT, 0          a non-zero integer N indicates that all
                                   KNITRO options should be handled by a
                                   KNITRO options file named
                                   'knitro_user_options_N.txt'

   IPOPT options
       60 - IPOPT_OPT, 0           See IPOPT_OPTIONS for details.

   MINOPF options
       61 - MNS_FEASTOL, 0 (1e-3)  primal feasibility tolerance,
                                   set to value of OPF_VIOLATION by default
       62 - MNS_ROWTOL, 0  (1e-3)  row tolerance
                                   set to value of OPF_VIOLATION by default
       63 - MNS_XTOL, 0    (1e-3)  x tolerance
                                   set to value of CONSTR_TOL_X by default
       64 - MNS_MAJDAMP, 0 (0.5)   major damping parameter
       65 - MNS_MINDAMP, 0 (2.0)   minor damping parameter
       66 - MNS_PENALTY_PARM, 0 (1.0)  penalty parameter
       67 - MNS_MAJOR_IT, 0 (200)  major iterations
       68 - MNS_MINOR_IT, 0 (2500) minor iterations
       69 - MNS_MAX_IT, 0 (2500)   iterations limit
       70 - MNS_VERBOSITY, -1
           [  -1 - controlled by VERBOSE option                            ]
           [   0 - print nothing                                           ]
           [   1 - print only termination status message                   ]
           [   2 - print termination status and screen progress            ]
           [   3 - print screen progress, report file (usually fort.9)     ]
       71 - MNS_CORE, 0 (1200 * nb + 2 * (nb + ng)^2) memory allocation
       72 - MNS_SUPBASIC_LIM, 0 (2*nb + 2*ng) superbasics limit
       73 - MNS_MULT_PRICE, 0 (30) multiple price

   MIPS (including MIPS-sc), PDIPM, SC-PDIPM, and TRALM options
       81 - PDIPM_FEASTOL, 0       feasibility (equality) tolerance
                                   for MIPS, PDIPM and SC-PDIPM, set
                                   to value of OPF_VIOLATION by default
       82 - PDIPM_GRADTOL, 1e-6    gradient tolerance for MIPS, PDIPM
                                   and SC-PDIPM
       83 - PDIPM_COMPTOL, 1e-6    complementary condition (inequality)
                                   tolerance for MIPS, PDIPM and SC-PDIPM
       84 - PDIPM_COSTTOL, 1e-6    optimality tolerance for MIPS, PDIPM
                                   and SC-PDIPM
       85 - PDIPM_MAX_IT,  150     maximum number of iterations for MIPS,
                                   PDIPM and SC-PDIPM
       86 - SCPDIPM_RED_IT, 20     maximum number of MIPS-sc or SC-PDIPM
                                   reductions per iteration
       87 - TRALM_FEASTOL, 0       feasibility tolerance for TRALM
                                   set to value of OPF_VIOLATION by default
       88 - TRALM_PRIMETOL, 5e-4   primal variable tolerance for TRALM
       89 - TRALM_DUALTOL, 5e-4    dual variable tolerance for TRALM
       90 - TRALM_COSTTOL, 1e-5    optimality tolerance for TRALM
       91 - TRALM_MAJOR_IT, 40     maximum number of major iterations
       92 - TRALM_MINOR_IT, 100    maximum number of minor iterations
       93 - SMOOTHING_RATIO, 0.04  piecewise linear curve smoothing ratio
                                   used in SC-PDIPM and TRALM

   CPLEX options
       95 - CPLEX_LPMETHOD, 0      solution algorithm for continuous LPs
           [   0 - automatic: let CPLEX choose                             ]
           [   1 - primal simplex                                          ]
           [   2 - dual simplex                                            ]
           [   3 - network simplex                                         ]
           [   4 - barrier                                                 ]
           [   5 - sifting                                                 ]
           [   6 - concurrent (dual, barrier, and primal)                  ]
       96 - CPLEX_QPMETHOD, 0      solution algorithm for continuous QPs
           [   0 - automatic: let CPLEX choose                             ]
           [   1 - primal simplex optimizer                                ]
           [   2 - dual simplex optimizer                                  ]
           [   3 - network optimizer                                       ]
           [   4 - barrier optimizer                                       ]
       97 - CPLEX_OPT, 0           See CPLEX_OPTIONS for details

   MOSEK options
       111 - MOSEK_LP_ALG, 0       solution algorithm for continuous LPs
                                       (MSK_IPAR_OPTIMIZER)
           [   0 - automatic: let MOSEK choose                             ]
           [   1 - interior point                                          ]
           [   4 - primal simplex                                          ]
           [   5 - dual simplex                                            ]
           [   6 - primal dual simplex                                     ]
           [   7 - automatic simplex (MOSEK chooses which simplex method)  ]
           [   10 - concurrent                                             ]
       112 - MOSEK_MAX_IT, 0 (400)     interior point max iterations
                                           (MSK_IPAR_INTPNT_MAX_ITERATIONS)
       113 - MOSEK_GAP_TOL, 0 (1e-8)   interior point relative gap tolerance
                                           (MSK_DPAR_INTPNT_TOL_REL_GAP)
       114 - MOSEK_MAX_TIME, 0 (-1)    maximum time allowed for solver
                                           (MSK_DPAR_OPTIMIZER_MAX_TIME)
       115 - MOSEK_NUM_THREADS, 0 (1)  maximum number of threads to use
                                           (MSK_IPAR_INTPNT_NUM_THREADS)
       116 - MOSEK_OPT, 0              See MOSEK_OPTIONS for details

   Gurobi options
       121 - GRB_METHOD, 1         solution algorithm (Method)
           [   0 - primal simplex                                          ]
           [   1 - dual simplex                                            ]
           [   2 - barrier                                                 ]
           [   3 - concurrent (LP only)                                    ]
           [   4 - deterministic concurrent (LP only)                      ]
       122 - GRB_TIMELIMIT, Inf    maximum time allowed for solver (TimeLimit)
       123 - GRB_THREADS, 0 (auto) maximum number of threads to use (Threads)
       124 - GRB_OPT, 0            See GUROBI_OPTIONS for details

   deprecated options
       51 - SPARSE_QP, 1           pass sparse matrices to QP and LP
                                   solvers if possible         [   0 or 1  ]

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [options, names] = mpoption(varargin)
0002 %MPOPTION  Used to set and retrieve a MATPOWER options vector.
0003 %
0004 %   OPT = MPOPTION
0005 %       returns the default options vector
0006 %
0007 %   OPT = MPOPTION(NAME1, VALUE1, NAME2, VALUE2, ...)
0008 %       returns the default options vector with new values for up to 7
0009 %       options, NAME# is the name of an option, and VALUE# is the new
0010 %       value.
0011 %
0012 %   OPT = MPOPTION(OPT, NAME1, VALUE1, NAME2, VALUE2, ...)
0013 %       same as above except it uses the options vector OPT as a base
0014 %       instead of the default options vector.
0015 %
0016 %   Examples:
0017 %       opt = mpoption('PF_ALG', 2, 'PF_TOL', 1e-4);
0018 %       opt = mpoption(opt, 'OPF_ALG', 565, 'VERBOSE', 2);
0019 %
0020 %   The currently defined options are as follows:
0021 %
0022 %      idx - NAME, default          description [options]
0023 %      ---   -------------          -----------------------------------------
0024 %   power flow options
0025 %       1  - PF_ALG, 1              AC power flow algorithm
0026 %           [   1 - Newton's method                                         ]
0027 %           [   2 - Fast-Decoupled (XB version)                             ]
0028 %           [   3 - Fast-Decoupled (BX version)                             ]
0029 %           [   4 - Gauss-Seidel                                            ]
0030 %       2  - PF_TOL, 1e-8           termination tolerance on per unit
0031 %                                   P & Q mismatch
0032 %       3  - PF_MAX_IT, 10          maximum number of iterations for
0033 %                                   Newton's method
0034 %       4  - PF_MAX_IT_FD, 30       maximum number of iterations for
0035 %                                   fast decoupled method
0036 %       5  - PF_MAX_IT_GS, 1000     maximum number of iterations for
0037 %                                   Gauss-Seidel method
0038 %       6  - ENFORCE_Q_LIMS, 0      enforce gen reactive power limits
0039 %                                   at expense of |V|
0040 %           [    0 - do NOT enforce limits                                  ]
0041 %           [    1 - enforce limits, simultaneous bus type conversion       ]
0042 %           [    2 - enforce limits, one-at-a-time bus type conversion      ]
0043 %       10 - PF_DC, 0               DC modeling for power flow & OPF
0044 %           [    0 - use AC formulation & corresponding algorithm options   ]
0045 %           [    1 - use DC formulation, ignore AC algorithm options        ]
0046 %   OPF options
0047 %       11 - OPF_ALG, 0             solver to use for AC OPF
0048 %           [    0 - choose default solver based on availability in the     ]
0049 %           [        following order, 540, 560                              ]
0050 %           [  300 - constr, MATLAB Optimization Toolbox 1.x and 2.x        ]
0051 %           [  320 - dense successive LP                                    ]
0052 %           [  340 - sparse successive LP (relaxed)                         ]
0053 %           [  360 - sparse successive LP (full)                            ]
0054 %           [  500 - MINOPF, MINOS-based solver, requires optional          ]
0055 %           [        MEX-based MINOPF package, available from:              ]
0056 %           [        http://www.pserc.cornell.edu/minopf/                   ]
0057 %           [  520 - fmincon, MATLAB Optimization Toolbox >= 2.x            ]
0058 %           [  540 - PDIPM, primal/dual interior point method, requires     ]
0059 %           [        optional MEX-based TSPOPF package, available from:     ]
0060 %           [        http://www.pserc.cornell.edu/tspopf/                   ]
0061 %           [  545 - SC-PDIPM, step-controlled variant of PDIPM, requires   ]
0062 %           [        TSPOPF (see 540)                                       ]
0063 %           [  550 - TRALM, trust region based augmented Langrangian        ]
0064 %           [        method, requires TSPOPF (see 540)                      ]
0065 %           [  560 - MIPS, MATLAB Interior Point Solver                     ]
0066 %           [        primal/dual interior point method (pure MATLAB)        ]
0067 %           [  565 - MIPS-sc, step-controlled variant of MIPS               ]
0068 %           [        primal/dual interior point method (pure MATLAB)        ]
0069 %           [  580 - IPOPT, requires MEX interface to IPOPT solver          ]
0070 %           [        available from: https://projects.coin-or.org/Ipopt/    ]
0071 %           [  600 - KNITRO, requires MATLAB Optimization Toolbox and       ]
0072 %                    KNITRO libraries available from: http://www.ziena.com/ ]
0073 %       16 - OPF_VIOLATION, 5e-6    constraint violation tolerance
0074 %       17 - CONSTR_TOL_X, 1e-4     termination tol on x for constr/fmincon
0075 %       18 - CONSTR_TOL_F, 1e-4     termination tol on f for constr/fmincon
0076 %       19 - CONSTR_MAX_IT, 0       max number of iterations for constr/fmincon
0077 %                                   [       0 => default                    ]
0078 %       20 - LPC_TOL_GRAD, 3e-3     termination tolerance on gradient, LP-based
0079 %                                   solver
0080 %       21 - LPC_TOL_X, 1e-4        termination tolerance on x (min step size),
0081 %                                   LP-based solver
0082 %       22 - LPC_MAX_IT, 400        maximum number of iterations, LP-based slvr
0083 %       23 - LPC_MAX_RESTART, 5     maximum number of restarts, LP-based solver
0084 %       24 - OPF_FLOW_LIM, 0        qty to limit for branch flow constraints
0085 %           [   0 - apparent power flow (limit in MVA)                      ]
0086 %           [   1 - active power flow (limit in MW)                         ]
0087 %           [   2 - current magnitude (limit in MVA at 1 p.u. voltage)      ]
0088 %       25 - OPF_IGNORE_ANG_LIM, 0  ignore angle difference limits for branches
0089 %                                   even if specified           [   0 or 1  ]
0090 %       26 - OPF_ALG_DC, 0          solver to use for DC OPF
0091 %           [    0 - choose default solver based on availability in the     ]
0092 %           [        following order: 500, 600, 700, 100, 300, 200          ]
0093 %           [  100 - BPMPD, requires optional MEX-based BPMPD_MEX package   ]
0094 %           [        available from: http://www.pserc.cornell.edu/bpmpd/    ]
0095 %           [  200 - MIPS, MATLAB Interior Point Solver                     ]
0096 %           [        primal/dual interior point method (pure MATLAB)        ]
0097 %           [  250 - MIPS-sc, step-controlled variant of MIPS               ]
0098 %           [  300 - MATLAB Optimization Toolbox, QUADPROG, LINPROG         ]
0099 %           [  400 - IPOPT, requires MEX interface to IPOPT solver          ]
0100 %                    available from: https://projects.coin-or.org/Ipopt/    ]
0101 %           [  500 - CPLEX, requires Matlab interface to CPLEX solver       ]
0102 %           [  600 - MOSEK, requires Matlab interface to MOSEK solver       ]
0103 %                    available from: http://www.mosek.com/                  ]
0104 %           [  700 - GUROBI, requires Matlab interface to Gurobi optimizer  ]
0105 %                    available from: http://www.gurobi.com/                 ]
0106 %   output options
0107 %       31 - VERBOSE, 1             amount of progress info printed
0108 %           [   0 - print no progress info                                  ]
0109 %           [   1 - print a little progress info                            ]
0110 %           [   2 - print a lot of progress info                            ]
0111 %           [   3 - print all progress info                                 ]
0112 %       32 - OUT_ALL, -1            controls pretty-printing of results
0113 %           [  -1 - individual flags control what prints                    ]
0114 %           [   0 - do not print anything                                   ]
0115 %           [       (overrides individual flags)                            ]
0116 %           [   1 - print everything                                        ]
0117 %           [       (overrides individual flags)                            ]
0118 %       33 - OUT_SYS_SUM, 1         print system summary        [   0 or 1  ]
0119 %       34 - OUT_AREA_SUM, 0        print area summaries        [   0 or 1  ]
0120 %       35 - OUT_BUS, 1             print bus detail            [   0 or 1  ]
0121 %       36 - OUT_BRANCH, 1          print branch detail         [   0 or 1  ]
0122 %       37 - OUT_GEN, 0             print generator detail      [   0 or 1  ]
0123 %                                   (OUT_BUS also includes gen info)
0124 %       38 - OUT_ALL_LIM, -1        controls what constraint info is printed
0125 %           [  -1 - individual flags control what constraint info prints    ]
0126 %           [   0 - no constraint info (overrides individual flags)         ]
0127 %           [   1 - binding constraint info (overrides individual flags)    ]
0128 %           [   2 - all constraint info (overrides individual flags)        ]
0129 %       39 - OUT_V_LIM, 1           control output of voltage limit info
0130 %           [   0 - do not print                                            ]
0131 %           [   1 - print binding constraints only                          ]
0132 %           [   2 - print all constraints                                   ]
0133 %           [   (same options for OUT_LINE_LIM, OUT_PG_LIM, OUT_QG_LIM)     ]
0134 %       40 - OUT_LINE_LIM, 1        control output of line flow limit info
0135 %       41 - OUT_PG_LIM, 1          control output of gen P limit info
0136 %       42 - OUT_QG_LIM, 1          control output of gen Q limit info
0137 %       52 - RETURN_RAW_DER, 0      return constraint and derivative info
0138 %                                   in results.raw (in fields g, dg, df, d2f)
0139 %   FMINCON options
0140 %       55 - FMC_ALG, 4             algorithm used by fmincon for OPF
0141 %                                   for Optimization Toolbox 4 and later
0142 %            [  1 - active-set                                              ]
0143 %            [  2 - interior-point, w/default 'bfgs' Hessian approx         ]
0144 %            [  3 - interior-point, w/ 'lbfgs' Hessian approx               ]
0145 %            [  4 - interior-point, w/exact user-supplied Hessian           ]
0146 %            [  5 - interior-point, w/Hessian via finite differences        ]
0147 %
0148 %   KNITRO options
0149 %       58 - KNITRO_OPT, 0          a non-zero integer N indicates that all
0150 %                                   KNITRO options should be handled by a
0151 %                                   KNITRO options file named
0152 %                                   'knitro_user_options_N.txt'
0153 %
0154 %   IPOPT options
0155 %       60 - IPOPT_OPT, 0           See IPOPT_OPTIONS for details.
0156 %
0157 %   MINOPF options
0158 %       61 - MNS_FEASTOL, 0 (1e-3)  primal feasibility tolerance,
0159 %                                   set to value of OPF_VIOLATION by default
0160 %       62 - MNS_ROWTOL, 0  (1e-3)  row tolerance
0161 %                                   set to value of OPF_VIOLATION by default
0162 %       63 - MNS_XTOL, 0    (1e-3)  x tolerance
0163 %                                   set to value of CONSTR_TOL_X by default
0164 %       64 - MNS_MAJDAMP, 0 (0.5)   major damping parameter
0165 %       65 - MNS_MINDAMP, 0 (2.0)   minor damping parameter
0166 %       66 - MNS_PENALTY_PARM, 0 (1.0)  penalty parameter
0167 %       67 - MNS_MAJOR_IT, 0 (200)  major iterations
0168 %       68 - MNS_MINOR_IT, 0 (2500) minor iterations
0169 %       69 - MNS_MAX_IT, 0 (2500)   iterations limit
0170 %       70 - MNS_VERBOSITY, -1
0171 %           [  -1 - controlled by VERBOSE option                            ]
0172 %           [   0 - print nothing                                           ]
0173 %           [   1 - print only termination status message                   ]
0174 %           [   2 - print termination status and screen progress            ]
0175 %           [   3 - print screen progress, report file (usually fort.9)     ]
0176 %       71 - MNS_CORE, 0 (1200 * nb + 2 * (nb + ng)^2) memory allocation
0177 %       72 - MNS_SUPBASIC_LIM, 0 (2*nb + 2*ng) superbasics limit
0178 %       73 - MNS_MULT_PRICE, 0 (30) multiple price
0179 %
0180 %   MIPS (including MIPS-sc), PDIPM, SC-PDIPM, and TRALM options
0181 %       81 - PDIPM_FEASTOL, 0       feasibility (equality) tolerance
0182 %                                   for MIPS, PDIPM and SC-PDIPM, set
0183 %                                   to value of OPF_VIOLATION by default
0184 %       82 - PDIPM_GRADTOL, 1e-6    gradient tolerance for MIPS, PDIPM
0185 %                                   and SC-PDIPM
0186 %       83 - PDIPM_COMPTOL, 1e-6    complementary condition (inequality)
0187 %                                   tolerance for MIPS, PDIPM and SC-PDIPM
0188 %       84 - PDIPM_COSTTOL, 1e-6    optimality tolerance for MIPS, PDIPM
0189 %                                   and SC-PDIPM
0190 %       85 - PDIPM_MAX_IT,  150     maximum number of iterations for MIPS,
0191 %                                   PDIPM and SC-PDIPM
0192 %       86 - SCPDIPM_RED_IT, 20     maximum number of MIPS-sc or SC-PDIPM
0193 %                                   reductions per iteration
0194 %       87 - TRALM_FEASTOL, 0       feasibility tolerance for TRALM
0195 %                                   set to value of OPF_VIOLATION by default
0196 %       88 - TRALM_PRIMETOL, 5e-4   primal variable tolerance for TRALM
0197 %       89 - TRALM_DUALTOL, 5e-4    dual variable tolerance for TRALM
0198 %       90 - TRALM_COSTTOL, 1e-5    optimality tolerance for TRALM
0199 %       91 - TRALM_MAJOR_IT, 40     maximum number of major iterations
0200 %       92 - TRALM_MINOR_IT, 100    maximum number of minor iterations
0201 %       93 - SMOOTHING_RATIO, 0.04  piecewise linear curve smoothing ratio
0202 %                                   used in SC-PDIPM and TRALM
0203 %
0204 %   CPLEX options
0205 %       95 - CPLEX_LPMETHOD, 0      solution algorithm for continuous LPs
0206 %           [   0 - automatic: let CPLEX choose                             ]
0207 %           [   1 - primal simplex                                          ]
0208 %           [   2 - dual simplex                                            ]
0209 %           [   3 - network simplex                                         ]
0210 %           [   4 - barrier                                                 ]
0211 %           [   5 - sifting                                                 ]
0212 %           [   6 - concurrent (dual, barrier, and primal)                  ]
0213 %       96 - CPLEX_QPMETHOD, 0      solution algorithm for continuous QPs
0214 %           [   0 - automatic: let CPLEX choose                             ]
0215 %           [   1 - primal simplex optimizer                                ]
0216 %           [   2 - dual simplex optimizer                                  ]
0217 %           [   3 - network optimizer                                       ]
0218 %           [   4 - barrier optimizer                                       ]
0219 %       97 - CPLEX_OPT, 0           See CPLEX_OPTIONS for details
0220 %
0221 %   MOSEK options
0222 %       111 - MOSEK_LP_ALG, 0       solution algorithm for continuous LPs
0223 %                                       (MSK_IPAR_OPTIMIZER)
0224 %           [   0 - automatic: let MOSEK choose                             ]
0225 %           [   1 - interior point                                          ]
0226 %           [   4 - primal simplex                                          ]
0227 %           [   5 - dual simplex                                            ]
0228 %           [   6 - primal dual simplex                                     ]
0229 %           [   7 - automatic simplex (MOSEK chooses which simplex method)  ]
0230 %           [   10 - concurrent                                             ]
0231 %       112 - MOSEK_MAX_IT, 0 (400)     interior point max iterations
0232 %                                           (MSK_IPAR_INTPNT_MAX_ITERATIONS)
0233 %       113 - MOSEK_GAP_TOL, 0 (1e-8)   interior point relative gap tolerance
0234 %                                           (MSK_DPAR_INTPNT_TOL_REL_GAP)
0235 %       114 - MOSEK_MAX_TIME, 0 (-1)    maximum time allowed for solver
0236 %                                           (MSK_DPAR_OPTIMIZER_MAX_TIME)
0237 %       115 - MOSEK_NUM_THREADS, 0 (1)  maximum number of threads to use
0238 %                                           (MSK_IPAR_INTPNT_NUM_THREADS)
0239 %       116 - MOSEK_OPT, 0              See MOSEK_OPTIONS for details
0240 %
0241 %   Gurobi options
0242 %       121 - GRB_METHOD, 1         solution algorithm (Method)
0243 %           [   0 - primal simplex                                          ]
0244 %           [   1 - dual simplex                                            ]
0245 %           [   2 - barrier                                                 ]
0246 %           [   3 - concurrent (LP only)                                    ]
0247 %           [   4 - deterministic concurrent (LP only)                      ]
0248 %       122 - GRB_TIMELIMIT, Inf    maximum time allowed for solver (TimeLimit)
0249 %       123 - GRB_THREADS, 0 (auto) maximum number of threads to use (Threads)
0250 %       124 - GRB_OPT, 0            See GUROBI_OPTIONS for details
0251 %
0252 %   deprecated options
0253 %       51 - SPARSE_QP, 1           pass sparse matrices to QP and LP
0254 %                                   solvers if possible         [   0 or 1  ]
0255 
0256 %   MATPOWER
0257 %   $Id: mpoption.m,v 1.53 2011/12/01 19:15:20 cvs Exp $
0258 %   by Ray Zimmerman, PSERC Cornell
0259 %   Copyright (c) 1996-2011 by Power System Engineering Research Center (PSERC)
0260 %
0261 %   This file is part of MATPOWER.
0262 %   See http://www.pserc.cornell.edu/matpower/ for more info.
0263 %
0264 %   MATPOWER is free software: you can redistribute it and/or modify
0265 %   it under the terms of the GNU General Public License as published
0266 %   by the Free Software Foundation, either version 3 of the License,
0267 %   or (at your option) any later version.
0268 %
0269 %   MATPOWER is distributed in the hope that it will be useful,
0270 %   but WITHOUT ANY WARRANTY; without even the implied warranty of
0271 %   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0272 %   GNU General Public License for more details.
0273 %
0274 %   You should have received a copy of the GNU General Public License
0275 %   along with MATPOWER. If not, see <http://www.gnu.org/licenses/>.
0276 %
0277 %   Additional permission under GNU GPL version 3 section 7
0278 %
0279 %   If you modify MATPOWER, or any covered work, to interface with
0280 %   other modules (such as MATLAB code and MEX-files) available in a
0281 %   MATLAB(R) or comparable environment containing parts covered
0282 %   under other licensing terms, the licensors of MATPOWER grant
0283 %   you additional permission to convey the resulting work.
0284 
0285 %%-----  set up default option values  -----
0286 i = 1;
0287 if rem(nargin, 2)       %% odd number of arguments
0288     options = varargin{1};  %% base options vector passed in
0289     i = 2;                  %% start processing parameters with 2nd one
0290 else                    %% even number of parameters
0291     options = [             %% use defaults for base options vector
0292     
0293         %% power flow options
0294         1;      %% 1  - PF_ALG
0295         1e-8;   %% 2  - PF_TOL
0296         10;     %% 3  - PF_MAX_IT
0297         30;     %% 4  - PF_MAX_IT_FD
0298         1000;   %% 5  - PF_MAX_IT_GS
0299         0;      %% 6  - ENFORCE_Q_LIMS
0300         0;      %% 7  - RESERVED7
0301         0;      %% 8  - RESERVED8
0302         0;      %% 9  - RESERVED9
0303         0;      %% 10 - PF_DC
0304         
0305         %% OPF options
0306         0;      %% 11 - OPF_ALG
0307         0;      %% 12 - RESERVED12 (was OPF_ALG_POLY = 100)
0308         0;      %% 13 - RESERVED13 (was OPF_ALG_PWL = 200)
0309         0;      %% 14 - RESERVED14 (was OPF_POLY2PWL_PTS = 10)
0310         0;      %% 15 - OPF_NEQ, not a user option (number of eq constraints
0311                 %%          for copf_solver, lpopf_solver, set by program)
0312         5e-6;   %% 16 - OPF_VIOLATION
0313         1e-4;   %% 17 - CONSTR_TOL_X
0314         1e-4;   %% 18 - CONSTR_TOL_F
0315         0;      %% 19 - CONSTR_MAX_IT
0316         3e-3;   %% 20 - LPC_TOL_GRAD
0317         1e-4;   %% 21 - LPC_TOL_X
0318         400;    %% 22 - LPC_MAX_IT
0319         5;      %% 23 - LPC_MAX_RESTART
0320         0;      %% 24 - OPF_FLOW_LIM
0321         0;      %% 25 - OPF_IGNORE_ANG_LIM
0322         0;      %% 26 - OPF_ALG_DC
0323         0;      %% 27 - RESERVED27
0324         0;      %% 28 - RESERVED28
0325         0;      %% 29 - RESERVED29
0326         0;      %% 30 - RESERVED30
0327         
0328         %% output options
0329         1;      %% 31 - VERBOSE
0330         -1;     %% 32 - OUT_ALL
0331         1;      %% 33 - OUT_SYS_SUM
0332         0;      %% 34 - OUT_AREA_SUM
0333         1;      %% 35 - OUT_BUS
0334         1;      %% 36 - OUT_BRANCH
0335         0;      %% 37 - OUT_GEN
0336         -1;     %% 38 - OUT_ALL_LIM
0337         1;      %% 39 - OUT_V_LIM
0338         1;      %% 40 - OUT_LINE_LIM
0339         1;      %% 41 - OUT_PG_LIM
0340         1;      %% 42 - OUT_QG_LIM
0341         0;      %% 43 - RESERVED43 (was OUT_RAW)
0342         0;      %% 44 - RESERVED44
0343         0;      %% 45 - RESERVED45
0344         0;      %% 46 - RESERVED46
0345         0;      %% 47 - RESERVED47
0346         0;      %% 48 - RESERVED48
0347         0;      %% 49 - RESERVED49
0348         0;      %% 50 - RESERVED50
0349         
0350         %% other options
0351         1;      %% 51 - SPARSE_QP
0352         0;      %% 52 - RETURN_RAW_DER
0353         0;      %% 53 - RESERVED53
0354         0;      %% 54 - RESERVED54
0355         4;      %% 55 - FMC_ALG
0356         0;      %% 56 - RESERVED56
0357         0;      %% 57 - RESERVED57
0358         0;      %% 58 - KNITRO_OPT
0359         0;      %% 59 - RESERVED59
0360         0;      %% 60 - IPOPT_OPT
0361         
0362         %% MINOPF options
0363         0;      %% 61 - MNS_FEASTOL
0364         0;      %% 62 - MNS_ROWTOL
0365         0;      %% 63 - MNS_XTOL
0366         0;      %% 64 - MNS_MAJDAMP
0367         0;      %% 65 - MNS_MINDAMP
0368         0;      %% 66 - MNS_PENALTY_PARM
0369         0;      %% 67 - MNS_MAJOR_IT
0370         0;      %% 68 - MNS_MINOR_IT
0371         0;      %% 69 - MNS_MAX_IT
0372         -1;     %% 70 - MNS_VERBOSITY
0373         0;      %% 71 - MNS_CORE
0374         0;      %% 72 - MNS_SUPBASIC_LIM
0375         0;      %% 73 - MNS_MULT_PRICE
0376         0;      %% 74 - RESERVED74
0377         0;      %% 75 - RESERVED75
0378         0;      %% 76 - RESERVED76
0379         0;      %% 77 - RESERVED77
0380         0;      %% 78 - RESERVED78
0381         0;      %% 79 - RESERVED79
0382         0;      %% 80 - FORCE_PC_EQ_P0, for c3sopf
0383         
0384         %% MIPS, PDIPM, SC-PDIPM, and TRALM options
0385         0;      %% 81 - PDIPM_FEASTOL
0386         1e-6;   %% 82 - PDIPM_GRADTOL
0387         1e-6;   %% 83 - PDIPM_COMPTOL
0388         1e-6;   %% 84 - PDIPM_COSTTOL
0389         150;    %% 85 - PDIPM_MAX_IT
0390         20;     %% 86 - SCPDIPM_RED_IT
0391         0;      %% 87 - TRALM_FEASTOL
0392         5e-4;   %% 88 - TRALM_PRIMETOL
0393         5e-4;   %% 89 - TRALM_DUALTOL
0394         1e-5;   %% 90 - TRALM_COSTTOL
0395         40;     %% 91 - TRALM_MAJOR_IT
0396         100;    %% 92 - TRALM_MINOR_IT
0397         0.04;   %% 93 - SMOOTHING_RATIO
0398         0;      %% 94 - RESERVED94
0399         
0400         %% CPLEX options
0401         0;      %% 95 - CPLEX_LPMETHOD
0402         0;      %% 96 - CPLEX_QPMETHOD
0403         0;      %% 97 - CPLEX_OPT
0404         0;      %% 98 - RESERVED98
0405         0;      %% 99 - RESERVED99
0406         0;      %% 100 - RESERVED100
0407         0;      %% 101 - RESERVED101
0408         0;      %% 102 - RESERVED102
0409         0;      %% 103 - RESERVED103
0410         0;      %% 104 - RESERVED104
0411         0;      %% 105 - RESERVED105
0412         0;      %% 106 - RESERVED106
0413         0;      %% 107 - RESERVED107
0414         0;      %% 108 - RESERVED108
0415         0;      %% 109 - RESERVED109
0416         0;      %% 110 - RESERVED110
0417 
0418         %% MOSEK options
0419         0;      %% 111 - MOSEK_LP_ALG
0420         0;      %% 112 - MOSEK_MAX_IT
0421         0;      %% 113 - MOSEK_GAP_TOL
0422         0;      %% 114 - MOSEK_MAX_TIME
0423         0;      %% 115 - MOSEK_NUM_THREADS
0424         0;      %% 116 - MOSEK_OPT
0425         0;      %% 117 - RESERVED117
0426         0;      %% 118 - RESERVED118
0427         0;      %% 119 - RESERVED119
0428         0;      %% 120 - RESERVED120
0429 
0430         %% Gurobi options
0431         1;      %% 121 - GRB_METHOD
0432         Inf;    %% 122 - GRB_TIMELIMIT
0433         0;      %% 123 - GRB_THREADS
0434         0;      %% 124 - GRB_OPT
0435     ];
0436 end
0437 
0438 %%-----  set up option names  -----
0439 %% power flow options
0440 names = char(   'PF_ALG', ...               %% 1
0441                 'PF_TOL', ...               %% 2
0442                 'PF_MAX_IT', ...            %% 3
0443                 'PF_MAX_IT_FD', ...         %% 4
0444                 'PF_MAX_IT_GS', ...         %% 5
0445                 'ENFORCE_Q_LIMS', ...       %% 6
0446                 'RESERVED7', ...            %% 7
0447                 'RESERVED8', ...            %% 8
0448                 'RESERVED9', ...            %% 9
0449                 'PF_DC' );                  %% 10
0450 
0451 %% OPF options
0452 names = char(   names, ...
0453                 'OPF_ALG', ...              %% 11
0454                 'RESERVED12', ...           %% 12   (was OPF_ALG_POLY)
0455                 'RESERVED13', ...           %% 13   (was OPF_ALG_PWL)
0456                 'RESERVED14', ...           %% 14   (was OPF_POLY2PWL_PTS)
0457                 'OPF_NEQ', ...              %% 15
0458                 'OPF_VIOLATION', ...        %% 16
0459                 'CONSTR_TOL_X', ...         %% 17
0460                 'CONSTR_TOL_F', ...         %% 18
0461                 'CONSTR_MAX_IT', ...        %% 19
0462                 'LPC_TOL_GRAD'  );          %% 20
0463 names = char(   names, ...
0464                 'LPC_TOL_X', ...            %% 21
0465                 'LPC_MAX_IT', ...           %% 22
0466                 'LPC_MAX_RESTART', ...      %% 23
0467                 'OPF_FLOW_LIM', ...         %% 24
0468                 'OPF_IGNORE_ANG_LIM', ...   %% 25
0469                 'OPF_ALG_DC', ...           %% 26
0470                 'RESERVED27', ...           %% 27
0471                 'RESERVED28', ...           %% 28
0472                 'RESERVED29', ...           %% 29
0473                 'RESERVED30'    );          %% 30
0474 
0475 %% output options
0476 names = char(   names, ...
0477                 'VERBOSE', ...              %% 31
0478                 'OUT_ALL', ...              %% 32
0479                 'OUT_SYS_SUM', ...          %% 33
0480                 'OUT_AREA_SUM', ...         %% 34
0481                 'OUT_BUS', ...              %% 35
0482                 'OUT_BRANCH', ...           %% 36
0483                 'OUT_GEN', ...              %% 37
0484                 'OUT_ALL_LIM', ...          %% 38
0485                 'OUT_V_LIM', ...            %% 39
0486                 'OUT_LINE_LIM'  );          %% 40
0487 names = char(   names, ...
0488                 'OUT_PG_LIM', ...           %% 41
0489                 'OUT_QG_LIM', ...           %% 42
0490                 'RESERVED43', ...           %% 43 (was OUT_RAW)
0491                 'RESERVED44', ...           %% 44
0492                 'RESERVED45', ...           %% 45
0493                 'RESERVED46', ...           %% 46
0494                 'RESERVED47', ...           %% 47
0495                 'RESERVED48', ...           %% 48
0496                 'RESERVED49', ...           %% 49
0497                 'RESERVED50'    );          %% 50
0498 %% other options
0499 names = char(   names, ...
0500                 'SPARSE_QP', ...            %% 51
0501                 'RETURN_RAW_DER', ...       %% 52
0502                 'RESERVED53', ...           %% 53
0503                 'RESERVED54', ...           %% 54
0504                 'FMC_ALG', ...              %% 55
0505                 'RESERVED56', ...           %% 56
0506                 'RESERVED57', ...           %% 57
0507                 'KNITRO_OPT', ...           %% 58
0508                 'RESERVED59', ...           %% 59
0509                 'IPOPT_OPT'     );          %% 60
0510 %% MINOS options
0511 names = char(   names, ...
0512                 'MNS_FEASTOL', ...          %% 61
0513                 'MNS_ROWTOL', ...           %% 62
0514                 'MNS_XTOL', ...             %% 63
0515                 'MNS_MAJDAMP', ...          %% 64
0516                 'MNS_MINDAMP', ...          %% 65
0517                 'MNS_PENALTY_PARM', ...     %% 66
0518                 'MNS_MAJOR_IT', ...         %% 67
0519                 'MNS_MINOR_IT', ...         %% 68
0520                 'MNS_MAX_IT', ...           %% 69
0521                 'MNS_VERBOSITY' );          %% 70
0522 %% other flags
0523 names = char(   names, ...
0524                 'MNS_CORE', ...             %% 71
0525                 'MNS_SUPBASIC_LIM', ...     %% 72
0526                 'MNS_MULT_PRICE', ...       %% 73
0527                 'RESERVED74', ...           %% 74
0528                 'RESERVED75', ...           %% 75
0529                 'RESERVED76', ...           %% 76
0530                 'RESERVED77', ...           %% 77
0531                 'RESERVED78', ...           %% 78
0532                 'RESERVED79', ...           %% 79
0533                 'FORCE_PC_EQ_P0'    );      %% 80
0534 
0535 %% MIPS, PDIPM, SC-PDIPM, and TRALM options
0536 names = char(   names, ...
0537                 'PDIPM_FEASTOL', ...        %% 81
0538                 'PDIPM_GRADTOL', ...        %% 82
0539                 'PDIPM_COMPTOL', ...        %% 83
0540                 'PDIPM_COSTTOL', ...        %% 84
0541                 'PDIPM_MAX_IT', ...         %% 85
0542                 'SCPDIPM_RED_IT', ...       %% 86
0543                 'TRALM_FEASTOL', ...        %% 87
0544                 'TRALM_PRIMETOL', ...       %% 88
0545                 'TRALM_DUALTOL', ...        %% 89
0546                 'TRALM_COSTTOL', ...        %% 90
0547                 'TRALM_MAJOR_IT', ...       %% 91
0548                 'TRALM_MINOR_IT', ...       %% 92
0549                 'SMOOTHING_RATIO'   );      %% 93
0550 
0551 %% CPLEX options
0552 names = char(   names, ...
0553                 'RESERVED94', ...           %% 94
0554                 'CPLEX_LPMETHOD', ...       %% 95
0555                 'CPLEX_QPMETHOD', ...       %% 96
0556                 'CPLEX_OPT', ...            %% 97
0557                 'RESERVED98', ...           %% 98
0558                 'RESERVED99', ...           %% 99
0559                 'RESERVED100', ...          %% 100
0560                 'RESERVED101', ...          %% 101
0561                 'RESERVED102', ...          %% 102
0562                 'RESERVED103', ...          %% 103
0563                 'RESERVED104', ...          %% 104
0564                 'RESERVED105', ...          %% 105
0565                 'RESERVED106', ...          %% 106
0566                 'RESERVED107', ...          %% 107
0567                 'RESERVED108', ...          %% 108
0568                 'RESERVED109', ...          %% 109
0569                 'RESERVED110'   );          %% 110
0570 
0571 %% MOSEK options
0572 names = char(   names, ...
0573                 'MOSEK_LP_ALG', ...         %% 111
0574                 'MOSEK_MAX_IT', ...         %% 112
0575                 'MOSEK_GAP_TOL', ...        %% 113
0576                 'MOSEK_MAX_TIME', ...       %% 114
0577                 'MOSEK_NUM_THREADS', ...    %% 115
0578                 'MOSEK_OPT', ...            %% 116
0579                 'RESERVED117', ...          %% 117
0580                 'RESERVED118', ...          %% 118
0581                 'RESERVED119', ...          %% 119
0582                 'RESERVED120'   );          %% 120
0583 
0584 %% Gurobi options
0585 names = char(   names, ...
0586                 'GRB_METHOD', ...           %% 121
0587                 'GRB_TIMELIMIT', ...        %% 122
0588                 'GRB_THREADS', ...          %% 123
0589                 'GRB_OPT'   );              %% 124
0590 
0591 %%-----  process parameters  -----
0592 while i <= nargin
0593     %% get parameter name and value
0594     pname = varargin{i};
0595     pval  = varargin{i+1};
0596     
0597     %% get parameter index
0598     namestr = names';
0599     namestr = namestr(:)';
0600     namelen = size(names, 2);
0601     pidx = ceil(findstr([pname blanks(namelen-length(pname))], namestr) / namelen);
0602     if isempty(pidx)
0603         error('"%s" is not a valid named option', pname);
0604     end
0605     % fprintf('''%s'' (%d) = %d\n', pname, pidx, pval);
0606 
0607     %% update option
0608     options(pidx) = pval;
0609 
0610     i = i + 2;                              %% go to next parameter
0611 end

Generated on Mon 26-Jan-2015 15:00:13 by m2html © 2005