gamsapi 52.5.0__cp312-cp312-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gams/__init__.py +27 -0
- gams/_version.py +1 -0
- gams/connect/__init__.py +28 -0
- gams/connect/agents/__init__.py +24 -0
- gams/connect/agents/_excel/__init__.py +32 -0
- gams/connect/agents/_excel/excelagent.py +312 -0
- gams/connect/agents/_excel/workbook.py +155 -0
- gams/connect/agents/_sqlconnectors/__init__.py +42 -0
- gams/connect/agents/_sqlconnectors/_accesshandler.py +211 -0
- gams/connect/agents/_sqlconnectors/_databasehandler.py +250 -0
- gams/connect/agents/_sqlconnectors/_mysqlhandler.py +168 -0
- gams/connect/agents/_sqlconnectors/_postgreshandler.py +131 -0
- gams/connect/agents/_sqlconnectors/_pyodbchandler.py +112 -0
- gams/connect/agents/_sqlconnectors/_sqlalchemyhandler.py +74 -0
- gams/connect/agents/_sqlconnectors/_sqlitehandler.py +262 -0
- gams/connect/agents/_sqlconnectors/_sqlserverhandler.py +179 -0
- gams/connect/agents/concatenate.py +440 -0
- gams/connect/agents/connectagent.py +743 -0
- gams/connect/agents/csvreader.py +675 -0
- gams/connect/agents/csvwriter.py +151 -0
- gams/connect/agents/domainwriter.py +143 -0
- gams/connect/agents/excelreader.py +756 -0
- gams/connect/agents/excelwriter.py +467 -0
- gams/connect/agents/filter.py +223 -0
- gams/connect/agents/gamsreader.py +112 -0
- gams/connect/agents/gamswriter.py +239 -0
- gams/connect/agents/gdxreader.py +109 -0
- gams/connect/agents/gdxwriter.py +146 -0
- gams/connect/agents/labelmanipulator.py +303 -0
- gams/connect/agents/projection.py +539 -0
- gams/connect/agents/pythoncode.py +71 -0
- gams/connect/agents/rawcsvreader.py +248 -0
- gams/connect/agents/rawexcelreader.py +312 -0
- gams/connect/agents/schema/CSVReader.yaml +92 -0
- gams/connect/agents/schema/CSVWriter.yaml +44 -0
- gams/connect/agents/schema/Concatenate.yaml +52 -0
- gams/connect/agents/schema/DomainWriter.yaml +25 -0
- gams/connect/agents/schema/ExcelReader.yaml +121 -0
- gams/connect/agents/schema/ExcelWriter.yaml +78 -0
- gams/connect/agents/schema/Filter.yaml +74 -0
- gams/connect/agents/schema/GAMSReader.yaml +20 -0
- gams/connect/agents/schema/GAMSWriter.yaml +47 -0
- gams/connect/agents/schema/GDXReader.yaml +23 -0
- gams/connect/agents/schema/GDXWriter.yaml +32 -0
- gams/connect/agents/schema/LabelManipulator.yaml +99 -0
- gams/connect/agents/schema/Projection.yaml +24 -0
- gams/connect/agents/schema/PythonCode.yaml +6 -0
- gams/connect/agents/schema/RawCSVReader.yaml +34 -0
- gams/connect/agents/schema/RawExcelReader.yaml +42 -0
- gams/connect/agents/schema/SQLReader.yaml +75 -0
- gams/connect/agents/schema/SQLWriter.yaml +103 -0
- gams/connect/agents/sqlreader.py +301 -0
- gams/connect/agents/sqlwriter.py +276 -0
- gams/connect/connectdatabase.py +275 -0
- gams/connect/connectvalidator.py +93 -0
- gams/connect/errors.py +34 -0
- gams/control/__init__.py +136 -0
- gams/control/database.py +2231 -0
- gams/control/execution.py +1900 -0
- gams/control/options.py +2792 -0
- gams/control/workspace.py +1198 -0
- gams/core/__init__.py +24 -0
- gams/core/cfg/__init__.py +26 -0
- gams/core/cfg/_cfgmcc.cp312-win_amd64.pyd +0 -0
- gams/core/cfg/cfgmcc.py +519 -0
- gams/core/dct/__init__.py +26 -0
- gams/core/dct/_dctmcc.cp312-win_amd64.pyd +0 -0
- gams/core/dct/dctmcc.py +574 -0
- gams/core/embedded/__init__.py +26 -0
- gams/core/embedded/gamsemb.py +1024 -0
- gams/core/emp/__init__.py +24 -0
- gams/core/emp/emplexer.py +89 -0
- gams/core/emp/empyacc.py +281 -0
- gams/core/gdx/__init__.py +26 -0
- gams/core/gdx/_gdxcc.cp312-win_amd64.pyd +0 -0
- gams/core/gdx/gdxcc.py +866 -0
- gams/core/gev/__init__.py +26 -0
- gams/core/gev/_gevmcc.cp312-win_amd64.pyd +0 -0
- gams/core/gev/gevmcc.py +855 -0
- gams/core/gmd/__init__.py +26 -0
- gams/core/gmd/_gmdcc.cp312-win_amd64.pyd +0 -0
- gams/core/gmd/gmdcc.py +917 -0
- gams/core/gmo/__init__.py +26 -0
- gams/core/gmo/_gmomcc.cp312-win_amd64.pyd +0 -0
- gams/core/gmo/gmomcc.py +2046 -0
- gams/core/idx/__init__.py +26 -0
- gams/core/idx/_idxcc.cp312-win_amd64.pyd +0 -0
- gams/core/idx/idxcc.py +510 -0
- gams/core/numpy/__init__.py +29 -0
- gams/core/numpy/_gams2numpy.cp312-win_amd64.pyd +0 -0
- gams/core/numpy/gams2numpy.py +1048 -0
- gams/core/opt/__init__.py +26 -0
- gams/core/opt/_optcc.cp312-win_amd64.pyd +0 -0
- gams/core/opt/optcc.py +840 -0
- gams/engine/__init__.py +204 -0
- gams/engine/api/__init__.py +13 -0
- gams/engine/api/auth_api.py +7653 -0
- gams/engine/api/cleanup_api.py +751 -0
- gams/engine/api/default_api.py +887 -0
- gams/engine/api/hypercube_api.py +2629 -0
- gams/engine/api/jobs_api.py +5229 -0
- gams/engine/api/licenses_api.py +2220 -0
- gams/engine/api/namespaces_api.py +7783 -0
- gams/engine/api/usage_api.py +5627 -0
- gams/engine/api/users_api.py +5931 -0
- gams/engine/api_client.py +804 -0
- gams/engine/api_response.py +21 -0
- gams/engine/configuration.py +601 -0
- gams/engine/exceptions.py +216 -0
- gams/engine/models/__init__.py +86 -0
- gams/engine/models/bad_input.py +89 -0
- gams/engine/models/cleanable_job_result.py +104 -0
- gams/engine/models/cleanable_job_result_page.py +113 -0
- gams/engine/models/engine_license.py +107 -0
- gams/engine/models/files_not_found.py +93 -0
- gams/engine/models/forwarded_token_response.py +112 -0
- gams/engine/models/generic_key_value_pair.py +89 -0
- gams/engine/models/hypercube.py +160 -0
- gams/engine/models/hypercube_page.py +111 -0
- gams/engine/models/hypercube_summary.py +91 -0
- gams/engine/models/hypercube_token.py +97 -0
- gams/engine/models/identity_provider.py +107 -0
- gams/engine/models/identity_provider_ldap.py +121 -0
- gams/engine/models/identity_provider_oauth2.py +146 -0
- gams/engine/models/identity_provider_oauth2_scope.py +89 -0
- gams/engine/models/identity_provider_oauth2_with_secret.py +152 -0
- gams/engine/models/identity_provider_oidc.py +133 -0
- gams/engine/models/identity_provider_oidc_with_secret.py +143 -0
- gams/engine/models/inex.py +91 -0
- gams/engine/models/invitation.py +136 -0
- gams/engine/models/invitation_quota.py +106 -0
- gams/engine/models/invitation_token.py +87 -0
- gams/engine/models/job.py +165 -0
- gams/engine/models/job_no_text_entry.py +138 -0
- gams/engine/models/job_no_text_entry_page.py +111 -0
- gams/engine/models/license.py +91 -0
- gams/engine/models/log_piece.py +96 -0
- gams/engine/models/message.py +87 -0
- gams/engine/models/message_and_token.py +99 -0
- gams/engine/models/message_with_webhook_id.py +89 -0
- gams/engine/models/model_auth_token.py +87 -0
- gams/engine/models/model_configuration.py +125 -0
- gams/engine/models/model_default_instance.py +99 -0
- gams/engine/models/model_default_user_instance.py +98 -0
- gams/engine/models/model_hypercube_job.py +106 -0
- gams/engine/models/model_hypercube_usage.py +130 -0
- gams/engine/models/model_instance_info.py +116 -0
- gams/engine/models/model_instance_info_full.py +123 -0
- gams/engine/models/model_instance_pool_info.py +112 -0
- gams/engine/models/model_job_labels.py +179 -0
- gams/engine/models/model_job_usage.py +133 -0
- gams/engine/models/model_pool_usage.py +124 -0
- gams/engine/models/model_usage.py +115 -0
- gams/engine/models/model_user.py +96 -0
- gams/engine/models/model_userinstance_info.py +119 -0
- gams/engine/models/model_userinstancepool_info.py +95 -0
- gams/engine/models/model_version.py +91 -0
- gams/engine/models/models.py +120 -0
- gams/engine/models/namespace.py +104 -0
- gams/engine/models/namespace_quota.py +96 -0
- gams/engine/models/namespace_with_permission.py +96 -0
- gams/engine/models/not_found.py +91 -0
- gams/engine/models/password_policy.py +97 -0
- gams/engine/models/perm_and_username.py +89 -0
- gams/engine/models/quota.py +117 -0
- gams/engine/models/quota_exceeded.py +97 -0
- gams/engine/models/status_code_meaning.py +89 -0
- gams/engine/models/stream_entry.py +89 -0
- gams/engine/models/system_wide_license.py +92 -0
- gams/engine/models/text_entries.py +87 -0
- gams/engine/models/text_entry.py +101 -0
- gams/engine/models/time_span.py +95 -0
- gams/engine/models/time_span_pool_worker.py +99 -0
- gams/engine/models/token_forward_error.py +87 -0
- gams/engine/models/user.py +127 -0
- gams/engine/models/user_group_member.py +96 -0
- gams/engine/models/user_groups.py +108 -0
- gams/engine/models/vapid_info.py +87 -0
- gams/engine/models/webhook.py +138 -0
- gams/engine/models/webhook_parameterized_event.py +99 -0
- gams/engine/py.typed +0 -0
- gams/engine/rest.py +258 -0
- gams/magic/__init__.py +32 -0
- gams/magic/gams_magic.py +142 -0
- gams/magic/interactive.py +402 -0
- gams/tools/__init__.py +30 -0
- gams/tools/errors.py +34 -0
- gams/tools/toolcollection/__init__.py +24 -0
- gams/tools/toolcollection/alg/__init__.py +24 -0
- gams/tools/toolcollection/alg/rank.py +51 -0
- gams/tools/toolcollection/data/__init__.py +24 -0
- gams/tools/toolcollection/data/csvread.py +444 -0
- gams/tools/toolcollection/data/csvwrite.py +311 -0
- gams/tools/toolcollection/data/exceldump.py +47 -0
- gams/tools/toolcollection/data/sqlitewrite.py +276 -0
- gams/tools/toolcollection/gdxservice/__init__.py +24 -0
- gams/tools/toolcollection/gdxservice/gdxencoding.py +104 -0
- gams/tools/toolcollection/gdxservice/gdxrename.py +94 -0
- gams/tools/toolcollection/linalg/__init__.py +24 -0
- gams/tools/toolcollection/linalg/cholesky.py +57 -0
- gams/tools/toolcollection/linalg/eigenvalue.py +56 -0
- gams/tools/toolcollection/linalg/eigenvector.py +58 -0
- gams/tools/toolcollection/linalg/invert.py +55 -0
- gams/tools/toolcollection/linalg/ols.py +138 -0
- gams/tools/toolcollection/tooltemplate.py +321 -0
- gams/tools/toolcollection/win32/__init__.py +24 -0
- gams/tools/toolcollection/win32/excelmerge.py +93 -0
- gams/tools/toolcollection/win32/exceltalk.py +76 -0
- gams/tools/toolcollection/win32/msappavail.py +49 -0
- gams/tools/toolcollection/win32/shellexecute.py +54 -0
- gams/tools/tools.py +116 -0
- gams/transfer/__init__.py +35 -0
- gams/transfer/_abcs/__init__.py +37 -0
- gams/transfer/_abcs/container_abcs.py +433 -0
- gams/transfer/_internals/__init__.py +63 -0
- gams/transfer/_internals/algorithms.py +436 -0
- gams/transfer/_internals/casepreservingdict.py +124 -0
- gams/transfer/_internals/constants.py +270 -0
- gams/transfer/_internals/domainviolation.py +103 -0
- gams/transfer/_internals/specialvalues.py +172 -0
- gams/transfer/containers/__init__.py +26 -0
- gams/transfer/containers/_container.py +1794 -0
- gams/transfer/containers/_io/__init__.py +28 -0
- gams/transfer/containers/_io/containers.py +164 -0
- gams/transfer/containers/_io/gdx.py +1029 -0
- gams/transfer/containers/_io/gmd.py +872 -0
- gams/transfer/containers/_mixins/__init__.py +26 -0
- gams/transfer/containers/_mixins/ccc.py +1274 -0
- gams/transfer/syms/__init__.py +33 -0
- gams/transfer/syms/_methods/__init__.py +24 -0
- gams/transfer/syms/_methods/tables.py +120 -0
- gams/transfer/syms/_methods/toDict.py +115 -0
- gams/transfer/syms/_methods/toList.py +83 -0
- gams/transfer/syms/_methods/toValue.py +60 -0
- gams/transfer/syms/_mixins/__init__.py +32 -0
- gams/transfer/syms/_mixins/equals.py +626 -0
- gams/transfer/syms/_mixins/generateRecords.py +499 -0
- gams/transfer/syms/_mixins/pivot.py +313 -0
- gams/transfer/syms/_mixins/pve.py +627 -0
- gams/transfer/syms/_mixins/sa.py +27 -0
- gams/transfer/syms/_mixins/sapve.py +27 -0
- gams/transfer/syms/_mixins/saua.py +27 -0
- gams/transfer/syms/_mixins/sauapve.py +199 -0
- gams/transfer/syms/_mixins/spve.py +1528 -0
- gams/transfer/syms/_mixins/ve.py +936 -0
- gams/transfer/syms/container_syms/__init__.py +31 -0
- gams/transfer/syms/container_syms/_alias.py +984 -0
- gams/transfer/syms/container_syms/_equation.py +333 -0
- gams/transfer/syms/container_syms/_parameter.py +973 -0
- gams/transfer/syms/container_syms/_set.py +604 -0
- gams/transfer/syms/container_syms/_universe_alias.py +461 -0
- gams/transfer/syms/container_syms/_variable.py +321 -0
- gamsapi-52.5.0.dist-info/METADATA +150 -0
- gamsapi-52.5.0.dist-info/RECORD +257 -0
- gamsapi-52.5.0.dist-info/WHEEL +5 -0
- gamsapi-52.5.0.dist-info/licenses/LICENSE +22 -0
- gamsapi-52.5.0.dist-info/top_level.txt +1 -0
gams/control/options.py
ADDED
|
@@ -0,0 +1,2792 @@
|
|
|
1
|
+
#
|
|
2
|
+
# GAMS - General Algebraic Modeling System Python API
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2017-2026 GAMS Development Corp. <support@gams.com>
|
|
5
|
+
# Copyright (c) 2017-2026 GAMS Software GmbH <support@gams.com>
|
|
6
|
+
#
|
|
7
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
# in the Software without restriction, including without limitation the rights
|
|
10
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
# furnished to do so, subject to the following conditions:
|
|
13
|
+
#
|
|
14
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
# copies or substantial portions of the Software.
|
|
16
|
+
#
|
|
17
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
# SOFTWARE.
|
|
24
|
+
#
|
|
25
|
+
# This file was generated.
|
|
26
|
+
|
|
27
|
+
from gams.core.gmo import *
|
|
28
|
+
from gams.core.cfg import *
|
|
29
|
+
from gams.core.opt import *
|
|
30
|
+
import gams.control.workspace
|
|
31
|
+
import os
|
|
32
|
+
import tempfile
|
|
33
|
+
import sys
|
|
34
|
+
|
|
35
|
+
## @brief GAMS processing request
|
|
36
|
+
class Action(object):
|
|
37
|
+
## @brief Restart After Solve
|
|
38
|
+
RestartAfterSolve = "R"
|
|
39
|
+
## @brief CompileOnly
|
|
40
|
+
CompileOnly = "C"
|
|
41
|
+
## @brief ExecuteOnly
|
|
42
|
+
ExecuteOnly = "E"
|
|
43
|
+
## @brief Compile and Execute
|
|
44
|
+
CompileAndExecute = "CE"
|
|
45
|
+
## @brief Glue Code Generation
|
|
46
|
+
GlueCodeGeneration = "G"
|
|
47
|
+
## @brief Trace Report
|
|
48
|
+
TraceReport = "GT"
|
|
49
|
+
|
|
50
|
+
## @brief Expand file append option
|
|
51
|
+
class AppendExpand(object):
|
|
52
|
+
## @brief Reset expand file
|
|
53
|
+
Reset = 0
|
|
54
|
+
## @brief Append to expand file
|
|
55
|
+
Append = 1
|
|
56
|
+
|
|
57
|
+
## @brief Output file append option
|
|
58
|
+
class AppendOut(object):
|
|
59
|
+
## @brief Reset listing file
|
|
60
|
+
Reset = 0
|
|
61
|
+
## @brief Append to listing file
|
|
62
|
+
Append = 1
|
|
63
|
+
|
|
64
|
+
## @brief Print solution listing when asynchronous solve (Grid or Threads) is used
|
|
65
|
+
class AsyncSolLst(object):
|
|
66
|
+
## @brief Do not print solution listing into lst file for asynchronous solves
|
|
67
|
+
Off = 0
|
|
68
|
+
## @brief Print solution listing into lst file for asynchronous solves
|
|
69
|
+
On = 1
|
|
70
|
+
|
|
71
|
+
## @brief Switch to capture all model instances within a run
|
|
72
|
+
class CaptureModelInstance(object):
|
|
73
|
+
## @brief Do not capture model instances
|
|
74
|
+
Off = 0
|
|
75
|
+
## @brief Capture model instances
|
|
76
|
+
On = 1
|
|
77
|
+
|
|
78
|
+
## @brief Output case option for LST file
|
|
79
|
+
class Case(object):
|
|
80
|
+
## @brief Write listing file in mixed case
|
|
81
|
+
MixedCase = 0
|
|
82
|
+
## @brief Write listing file in upper case only
|
|
83
|
+
UpperCase = 1
|
|
84
|
+
|
|
85
|
+
## @brief Character set flag
|
|
86
|
+
class CharSet(object):
|
|
87
|
+
## @brief Use limited GAMS characters set
|
|
88
|
+
LimitedGAMSCharSet = 0
|
|
89
|
+
## @brief Accept any character in comments and text items (foreign language characters)
|
|
90
|
+
AnyChar = 1
|
|
91
|
+
|
|
92
|
+
## @brief Check errorLevel automatically after executing external program
|
|
93
|
+
class CheckErrorLevel(object):
|
|
94
|
+
## @brief Do not check errorLevel automatically after execution of external program
|
|
95
|
+
Off = 0
|
|
96
|
+
## @brief Check errorLevel automatically after execution of external program
|
|
97
|
+
On = 1
|
|
98
|
+
|
|
99
|
+
## @brief Date format
|
|
100
|
+
class DFormat(object):
|
|
101
|
+
## @brief Date as mm/dd/yy
|
|
102
|
+
Slash = 0
|
|
103
|
+
## @brief Date as dd.mm.yy
|
|
104
|
+
Dot = 1
|
|
105
|
+
## @brief Date as yy-mm-dy
|
|
106
|
+
Dash = 2
|
|
107
|
+
|
|
108
|
+
## @brief Switch default for "$on/offDigit"
|
|
109
|
+
class Digit(object):
|
|
110
|
+
## @brief Activate $offDigit
|
|
111
|
+
OffDigit = "off"
|
|
112
|
+
## @brief Activate $onDigit
|
|
113
|
+
OnDigit = "on"
|
|
114
|
+
|
|
115
|
+
## @brief Writes preprocessed input to the file input.dmp
|
|
116
|
+
class DumpOpt(object):
|
|
117
|
+
## @brief No dumpfile
|
|
118
|
+
No = 0
|
|
119
|
+
## @brief Extract referenced data from the restart file using original set element names
|
|
120
|
+
RefDataOriginalSetElementNames = 1
|
|
121
|
+
## @brief Extract referenced data from the restart file using new set element names
|
|
122
|
+
RefDataNewSetElementNames = 2
|
|
123
|
+
## @brief Extract referenced data from the restart file using new set element names and drop symbol text
|
|
124
|
+
RefDataNewSetElementNamesDropSymbolText = 3
|
|
125
|
+
## @brief Extract referenced symbol declarations from the restart file
|
|
126
|
+
RefSymbol = 4
|
|
127
|
+
## @brief (Same as 11 and therefore hidden)
|
|
128
|
+
Deprecated_10 = 10
|
|
129
|
+
## @brief Write processed input file without comments
|
|
130
|
+
InputFileWOComments = 11
|
|
131
|
+
## @brief (Same as 11 and therefore hidden)
|
|
132
|
+
Deprecated_12 = 12
|
|
133
|
+
## @brief (Same as 21 and therefore hidden)
|
|
134
|
+
Deprecated_19 = 19
|
|
135
|
+
## @brief (Same as 21 and therefore hidden)
|
|
136
|
+
Deprecated_20 = 20
|
|
137
|
+
## @brief Write processed input file with all comments
|
|
138
|
+
InputFileWithComments = 21
|
|
139
|
+
## @brief Write processed input with all comments into a separate dump file for each block
|
|
140
|
+
SplitBlocksDumpWithComments = 22
|
|
141
|
+
|
|
142
|
+
## @brief GAMS parameter logging
|
|
143
|
+
class DumpParms(object):
|
|
144
|
+
## @brief No logging
|
|
145
|
+
No = 0
|
|
146
|
+
## @brief Lists accepted/set parameters
|
|
147
|
+
AcceptedParameters = 1
|
|
148
|
+
## @brief Log of file operations plus list of accepted/set parameters
|
|
149
|
+
FileOperationsAcceptedParameters = 2
|
|
150
|
+
|
|
151
|
+
## @brief Allow implicit loading of symbols from embedded code or not
|
|
152
|
+
class ECImplicitLoad(object):
|
|
153
|
+
## @brief Do not allow implicit loading from embedded code
|
|
154
|
+
OffECImplicitLoad = "off"
|
|
155
|
+
## @brief Allow implicit loading from embedded code
|
|
156
|
+
OnECImplicitLoad = "on"
|
|
157
|
+
|
|
158
|
+
## @brief Show log line about embedded code initialization and execution or not
|
|
159
|
+
class ECLogLine(object):
|
|
160
|
+
## @brief Do not show log line about embedded code initialization and execution
|
|
161
|
+
OffECLogLine = "off"
|
|
162
|
+
## @brief Show log line about embedded code initialization and execution
|
|
163
|
+
OnECLogLine = "on"
|
|
164
|
+
|
|
165
|
+
## @brief Switch default for "$on/offEmpty"
|
|
166
|
+
class Empty(object):
|
|
167
|
+
## @brief Activate $offEmpty
|
|
168
|
+
OffEmpty = "off"
|
|
169
|
+
## @brief Activate $onEmpty
|
|
170
|
+
OnEmpty = "on"
|
|
171
|
+
|
|
172
|
+
## @brief Placing of compilation error messages
|
|
173
|
+
class ErrMsg(object):
|
|
174
|
+
## @brief Place error messages at the end of compiler listing
|
|
175
|
+
EndOfCompilerListing = 0
|
|
176
|
+
## @brief Place error messages immediately following the line with the error
|
|
177
|
+
FollowingError = 1
|
|
178
|
+
## @brief Suppress error messages
|
|
179
|
+
Suppress = 2
|
|
180
|
+
|
|
181
|
+
## @brief Limits on external programs that are allowed to be executed
|
|
182
|
+
class ExecMode(object):
|
|
183
|
+
## @brief Everything allowed
|
|
184
|
+
EverythingAllowed = 0
|
|
185
|
+
## @brief Interactive shells in $call and execute commands are prohibited
|
|
186
|
+
InteractiveShellsProhibited = 1
|
|
187
|
+
## @brief Embedded Code and all $call and execute commands are prohibited
|
|
188
|
+
CallAndExecuteProhibited = 2
|
|
189
|
+
## @brief $echo or put commands can only write to directories in or below the working or scratchdir
|
|
190
|
+
EchoAndPutOnlyToWorkdir = 3
|
|
191
|
+
## @brief $echo and put commands are not allowed
|
|
192
|
+
EchoAndPutProhibited = 4
|
|
193
|
+
|
|
194
|
+
## @brief Options for finite differences
|
|
195
|
+
class FDOpt(object):
|
|
196
|
+
## @brief All derivatives analytically, for numerical Hessian use gradient values, scale delta
|
|
197
|
+
GHAnalyticHNumericGradScale = 0
|
|
198
|
+
## @brief All derivatives analytically, for numerical Hessian use function values, scale delta
|
|
199
|
+
GHAnalyticHNumericFuncScale = 1
|
|
200
|
+
## @brief Gradient analytically, force Hessian numerically using gradient values, scale delta
|
|
201
|
+
GAnalyticFHNumericGradScale = 2
|
|
202
|
+
## @brief Gradient analytically, force Hessian numerically using function values, scale delta
|
|
203
|
+
GAnalyticFHNumericFuncScale = 3
|
|
204
|
+
## @brief Force gradient and Hessian numerically, scale delta
|
|
205
|
+
FGHNumericScale = 4
|
|
206
|
+
## @brief Same as 0, but no scale of delta
|
|
207
|
+
GHAnalyticHNumericGradNoScale = 10
|
|
208
|
+
## @brief Same as 1, but no scale of delta
|
|
209
|
+
GHAnalyticHNumericFuncNoScale = 11
|
|
210
|
+
## @brief Same as 2, but no scale of delta
|
|
211
|
+
GAnalyticFHNumericGradNoScale = 12
|
|
212
|
+
## @brief Same as 3, but no scale of delta
|
|
213
|
+
GAnalyticFHNumericFuncNoScale = 13
|
|
214
|
+
## @brief Same as 4, but no scale of delta
|
|
215
|
+
FGHNumericNoScale = 14
|
|
216
|
+
|
|
217
|
+
## @brief Casing of file names and paths (put, gdx, ref, $include, etc.)
|
|
218
|
+
class FileCase(object):
|
|
219
|
+
## @brief Causes GAMS to use default casing
|
|
220
|
+
DefaultCase = 0
|
|
221
|
+
## @brief Causes GAMS to upper case file names including path of the file
|
|
222
|
+
UpperCase = 1
|
|
223
|
+
## @brief Causes GAMS to lower case file names including path of the file
|
|
224
|
+
LowerCase = 2
|
|
225
|
+
## @brief Causes GAMS to upper case file names only (leave the path alone)
|
|
226
|
+
UpperCaseFileOnly = 3
|
|
227
|
+
## @brief Causes GAMS to lower case file names only (leave the path alone)
|
|
228
|
+
LowerCaseFileOnly = 4
|
|
229
|
+
|
|
230
|
+
## @brief Switch between filtered and domain-checked read from GDX
|
|
231
|
+
class Filtered(object):
|
|
232
|
+
## @brief Load domain checked
|
|
233
|
+
OffFiltered = "off"
|
|
234
|
+
## @brief Load filtered
|
|
235
|
+
OnFiltered = "on"
|
|
236
|
+
|
|
237
|
+
## @brief Force GAMS to process a save file created with a newer GAMS version or with execution errors
|
|
238
|
+
class ForceWork(object):
|
|
239
|
+
## @brief No translation
|
|
240
|
+
NoTranslation = 0
|
|
241
|
+
## @brief Try translation
|
|
242
|
+
TryTranslation = 1
|
|
243
|
+
|
|
244
|
+
## @brief Free external resources at the end of each embedded Python code blocks
|
|
245
|
+
class FreeEmbeddedPython(object):
|
|
246
|
+
## @brief Keep resources to reuse them potentially
|
|
247
|
+
Off = 0
|
|
248
|
+
## @brief Free resources
|
|
249
|
+
On = 1
|
|
250
|
+
|
|
251
|
+
## @brief Compression of generated GDX file
|
|
252
|
+
class gdxCompress(object):
|
|
253
|
+
## @brief Do not compress GDX files
|
|
254
|
+
DoNotCompressGDX = 0
|
|
255
|
+
## @brief Compress GDX files
|
|
256
|
+
CompressGDX = 1
|
|
257
|
+
|
|
258
|
+
## @brief Version of GDX files generated (for backward compatibility)
|
|
259
|
+
class gdxConvert(object):
|
|
260
|
+
## @brief Version 5 GDX file, does not support compression
|
|
261
|
+
Version5 = "v5"
|
|
262
|
+
## @brief Version 6 GDX file
|
|
263
|
+
Version6 = "v6"
|
|
264
|
+
## @brief Version 7 GDX file
|
|
265
|
+
Version7 = "v7"
|
|
266
|
+
|
|
267
|
+
## @brief Unload labels or UELs to GDX either squeezed or full
|
|
268
|
+
class gdxUels(object):
|
|
269
|
+
## @brief Write only the UELs to Universe, that are used by the exported symbols
|
|
270
|
+
squeezed = "Squeezed"
|
|
271
|
+
## @brief Write all UELs to Universe
|
|
272
|
+
full = "Full"
|
|
273
|
+
|
|
274
|
+
## @brief Treat fixed variables as constants
|
|
275
|
+
class HoldFixed(object):
|
|
276
|
+
## @brief Fixed variables are not treated as constants
|
|
277
|
+
FixedVarsNotTreatedAsConstants = 0
|
|
278
|
+
## @brief Fixed variables are treated as constants
|
|
279
|
+
FixedVarsTreatedAsConstants = 1
|
|
280
|
+
|
|
281
|
+
## @brief Allow HoldFixed for models solved asynchronously as well
|
|
282
|
+
class HoldFixedAsync(object):
|
|
283
|
+
## @brief Ignore HoldFixed setting for async solves
|
|
284
|
+
Off = 0
|
|
285
|
+
## @brief Allow HoldFixed for async solves
|
|
286
|
+
On = 1
|
|
287
|
+
|
|
288
|
+
## @brief Switch default for "$on/offImplicitAssign"
|
|
289
|
+
class ImplicitAssign(object):
|
|
290
|
+
## @brief Activate $offImplicitAssign
|
|
291
|
+
OffImplicitAssign = "off"
|
|
292
|
+
## @brief Activate $onImplicitAssign
|
|
293
|
+
OnImplicitAssign = "on"
|
|
294
|
+
|
|
295
|
+
## @brief Allow solver to interact via command line input
|
|
296
|
+
class InteractiveSolver(object):
|
|
297
|
+
## @brief Interaction with solvelink 0 is not supported
|
|
298
|
+
NoInteraction = 0
|
|
299
|
+
## @brief Interaction with solvelink 0 is supported
|
|
300
|
+
AllowInteraction = 1
|
|
301
|
+
|
|
302
|
+
## @brief Set mode for default upper bounds on integer variables
|
|
303
|
+
class IntVarUp(object):
|
|
304
|
+
## @brief Set default upper bound for integer variables to +INF
|
|
305
|
+
INF = 0
|
|
306
|
+
## @brief Pass a value of 100 instead of +INF to the solver as upper bound for integer variables
|
|
307
|
+
Pass100ToSolver = 1
|
|
308
|
+
## @brief Same as 0 but writes a message to the log if the level of an integer variable is greater than 100
|
|
309
|
+
INFandLog = 2
|
|
310
|
+
## @brief Same as 2 but issues an execution error if the level of an integer variable is greater than 100
|
|
311
|
+
Pass100ToSolverAndError = 3
|
|
312
|
+
|
|
313
|
+
## @brief Controls keeping or deletion of process directory and scratch files
|
|
314
|
+
class Keep(object):
|
|
315
|
+
## @brief Delete process directory
|
|
316
|
+
DeleteProcDir = 0
|
|
317
|
+
## @brief Keep process directory
|
|
318
|
+
KeepProcDir = 1
|
|
319
|
+
|
|
320
|
+
## @brief Switch default for "$on/offListing"
|
|
321
|
+
class Listing(object):
|
|
322
|
+
## @brief Activate $offListing
|
|
323
|
+
OffListing = "off"
|
|
324
|
+
## @brief Activate $onListing
|
|
325
|
+
OnListing = "on"
|
|
326
|
+
|
|
327
|
+
## @brief Amount of line tracing to the log file
|
|
328
|
+
class LogLine(object):
|
|
329
|
+
## @brief No line tracing
|
|
330
|
+
NoTracing = 0
|
|
331
|
+
## @brief Minimum line tracing
|
|
332
|
+
MinimumTracing = 1
|
|
333
|
+
## @brief Automatic and visually pleasing
|
|
334
|
+
Automatic = 2
|
|
335
|
+
|
|
336
|
+
## @brief Write title of LST file all left aligned
|
|
337
|
+
class LstTitleLeftAligned(object):
|
|
338
|
+
## @brief Split LST title into left and right aligned part
|
|
339
|
+
Off = 0
|
|
340
|
+
## @brief Write LST title completely left aligned
|
|
341
|
+
On = 1
|
|
342
|
+
|
|
343
|
+
## @brief Allows to try an experimental memory manager
|
|
344
|
+
class MemoryManager(object):
|
|
345
|
+
## @brief Established default memory manager
|
|
346
|
+
Default = 0
|
|
347
|
+
## @brief Experimental memory manager
|
|
348
|
+
Experimental = 1
|
|
349
|
+
|
|
350
|
+
## @brief Model Instance Mode
|
|
351
|
+
class MIIMode(object):
|
|
352
|
+
## @brief Default behavior
|
|
353
|
+
Off = "off"
|
|
354
|
+
## @brief Setup to inspect a single model instance
|
|
355
|
+
SingleMI = "singleMI"
|
|
356
|
+
## @brief Setup to inspect multiple model instances from one model
|
|
357
|
+
MultiMI = "multiMI"
|
|
358
|
+
|
|
359
|
+
## @brief Triggers a compilation error when new equations or variable symbols are introduced
|
|
360
|
+
class NoNewVarEqu(object):
|
|
361
|
+
## @brief AllowNewVarEqu
|
|
362
|
+
AllowNewVarEqu = 0
|
|
363
|
+
## @brief DoNotAllowNewVarEqu
|
|
364
|
+
DoNotAllowNewVarEqu = 1
|
|
365
|
+
|
|
366
|
+
## @brief Generate errors for unknown unique element in an equation
|
|
367
|
+
class On115(object):
|
|
368
|
+
## @brief No error messages
|
|
369
|
+
NoMessages = 0
|
|
370
|
+
## @brief Issue error messages
|
|
371
|
+
IssueMessages = 1
|
|
372
|
+
|
|
373
|
+
## @brief Output file page control option
|
|
374
|
+
class PageContr(object):
|
|
375
|
+
## @brief No page control, with padding
|
|
376
|
+
NoPageContrWithPadding = 0
|
|
377
|
+
## @brief FORTRAN style line printer format
|
|
378
|
+
FortranStyle = 1
|
|
379
|
+
## @brief No page control, no padding
|
|
380
|
+
NoPageContrNoPadding = 2
|
|
381
|
+
## @brief Formfeed character for new page
|
|
382
|
+
FormfeedCharNewPage = 3
|
|
383
|
+
|
|
384
|
+
## @brief Prepend GAMS system directory to library load path
|
|
385
|
+
class PrefixLoadPath(object):
|
|
386
|
+
## @brief Do not set GAMS system directory at beginning of library load path
|
|
387
|
+
Off = 0
|
|
388
|
+
## @brief Set GAMS system directory at beginning of library load path
|
|
389
|
+
On = 1
|
|
390
|
+
|
|
391
|
+
## @brief Indicator for writing workfile with previous workfile version
|
|
392
|
+
class PreviousWork(object):
|
|
393
|
+
## @brief Write workfile using the current version
|
|
394
|
+
Off = 0
|
|
395
|
+
## @brief Write workfile using the previous workfile version
|
|
396
|
+
On = 1
|
|
397
|
+
|
|
398
|
+
## @brief Monitor the memory used by the GAMS process tree
|
|
399
|
+
class ProcTreeMemMonitor(object):
|
|
400
|
+
## @brief Do not monitor memory usage for the GAMS process tree
|
|
401
|
+
Off = 0
|
|
402
|
+
## @brief Start a thread to monitor memory usage for the GAMS process tree
|
|
403
|
+
On = 1
|
|
404
|
+
|
|
405
|
+
## @brief Numeric round format for put files
|
|
406
|
+
class PutNR(object):
|
|
407
|
+
## @brief Item is displayed in F or E format
|
|
408
|
+
ForE = 0
|
|
409
|
+
## @brief Item is rounded to fit given width and decimals
|
|
410
|
+
Rounded = 1
|
|
411
|
+
## @brief Item is displayed in scientific notation
|
|
412
|
+
Scientific = 2
|
|
413
|
+
## @brief Item is rounded to fit given width
|
|
414
|
+
RoundedFloatingDec = 3
|
|
415
|
+
## @brief Item is displayed in F or E format ignoring given decimals
|
|
416
|
+
ForEFloatingDec = 4
|
|
417
|
+
|
|
418
|
+
## @brief Controls the line numbers written to a reference file
|
|
419
|
+
class ReferenceLineNo(object):
|
|
420
|
+
## @brief Actual line number of symbol reference
|
|
421
|
+
ActualLineNumber = "actual"
|
|
422
|
+
## @brief Line number where the statement with the reference starts
|
|
423
|
+
StatementStart = "start"
|
|
424
|
+
|
|
425
|
+
## @brief Switch between merge and replace when reading from GDX into non-empty symbol
|
|
426
|
+
class Replace(object):
|
|
427
|
+
## @brief Merge into existing data when loading
|
|
428
|
+
Merge = "off"
|
|
429
|
+
## @brief Replace existing data when loading
|
|
430
|
+
Replace = "on"
|
|
431
|
+
|
|
432
|
+
## @brief Save solver point in GDX file
|
|
433
|
+
class SavePoint(object):
|
|
434
|
+
## @brief No point GDX file is to be saved
|
|
435
|
+
NoPointFile = 0
|
|
436
|
+
## @brief A point GDX file from the last solve is to be saved
|
|
437
|
+
LastSolvePointFile = 1
|
|
438
|
+
## @brief A point GDX file from every solve is to be saved
|
|
439
|
+
EverySolvePointFile = 2
|
|
440
|
+
## @brief A point GDX file from the last solve is to be saved in the scratch directory
|
|
441
|
+
LastSolvePointFileScrDir = 3
|
|
442
|
+
## @brief A point GDX file from every solve is to be saved in the scratch directory
|
|
443
|
+
EverySolvePointFileScrDir = 4
|
|
444
|
+
|
|
445
|
+
## @brief Show the memory usage reported by the Operating System instead of the internal counting
|
|
446
|
+
class ShowOSMemory(object):
|
|
447
|
+
## @brief Show memory reported by internal accounting
|
|
448
|
+
InternalAccounting = 0
|
|
449
|
+
## @brief Show resident set size reported by operating system
|
|
450
|
+
RSS = 1
|
|
451
|
+
## @brief Show virtual set size reported by operating system
|
|
452
|
+
VSS = 2
|
|
453
|
+
|
|
454
|
+
## @brief Solution report print option
|
|
455
|
+
class SolPrint(object):
|
|
456
|
+
## @brief Remove solution listings following solves
|
|
457
|
+
RemoveSolLstFollowingSolves = 0
|
|
458
|
+
## @brief Include solution listings following solves
|
|
459
|
+
IncludeSolLstFollowingSolves = 1
|
|
460
|
+
## @brief Suppress all solution information
|
|
461
|
+
SuppressAllSolInfo = 2
|
|
462
|
+
|
|
463
|
+
## @brief Solver link option
|
|
464
|
+
class SolveLink(object):
|
|
465
|
+
## @brief Model instance and entire GAMS state saved to scratch directory, GAMS exits (and vacates memory), and the solver script is called. After the solver terminates, GAMS restarts from the saved state and continues to executing
|
|
466
|
+
ChainScript = 0
|
|
467
|
+
## @brief Model instance saved to scratch directory, the solver is called from a shell while GAMS remains open
|
|
468
|
+
CallScript = 1
|
|
469
|
+
## @brief Model instance saved to scratch directory, the solver is called with a spawn (if possible) or a shell (if spawn is not possible) while GAMS remains open - If this is not supported by the selected solver, it gets reset to `1` automatically
|
|
470
|
+
CallModule = 2
|
|
471
|
+
## @brief Model instance saved to scratch directory, the solver starts the solution and GAMS continues
|
|
472
|
+
AsyncGrid = 3
|
|
473
|
+
## @brief Model instance saved to scratch directory, the solver starts the solution and GAMS waits for the solver to come back but uses same submission process as 3 (test mode)
|
|
474
|
+
AsyncSimulate = 4
|
|
475
|
+
## @brief The model instance is passed to the solver in-memory - If this is not supported by the selected solver, it gets reset to `2` automatically
|
|
476
|
+
LoadLibrary = 5
|
|
477
|
+
## @brief The model instance is passed to the solver in-memory, the solver starts the solution and GAMS continues
|
|
478
|
+
LoadLibraryAsync = 6
|
|
479
|
+
## @brief The model instance is passed to the solver in-memory, the solver starts the solution and GAMS waits for the solver to come back but uses same submission process as 6 (test mode)
|
|
480
|
+
LoadLibraryAsyncSimulate = 7
|
|
481
|
+
|
|
482
|
+
## @brief Multiple solve management
|
|
483
|
+
class SolveOpt(object):
|
|
484
|
+
## @brief The solution information for all equations appearing in the model is completely replaced by the new model results; variables are only replaced if they appear in the final model
|
|
485
|
+
Merge = 0
|
|
486
|
+
## @brief The solution information for all equations and variables is merged into the existing solution information
|
|
487
|
+
Replace = 1
|
|
488
|
+
## @brief The solution information for all equations appearing in the model is completely replaced; in addition, variables appearing in the symbolic equations but removed by conditionals will be removed
|
|
489
|
+
Clear = 2
|
|
490
|
+
|
|
491
|
+
## @brief Summary of computing resources used by job steps
|
|
492
|
+
class StepSum(object):
|
|
493
|
+
## @brief No step summary
|
|
494
|
+
NoStepSummmary = 0
|
|
495
|
+
## @brief Step summary printed
|
|
496
|
+
StepSummary = 1
|
|
497
|
+
|
|
498
|
+
## @brief Error if assignment to singleton set has multiple elements
|
|
499
|
+
class strictSingleton(object):
|
|
500
|
+
## @brief Take first record if assignment to singleton set has multiple elements
|
|
501
|
+
FirstRecord = 0
|
|
502
|
+
## @brief Error if assignment to singleton set has multiple elements
|
|
503
|
+
Error = 1
|
|
504
|
+
|
|
505
|
+
## @brief String substitution options
|
|
506
|
+
class StringChk(object):
|
|
507
|
+
## @brief No substitution if symbol undefined and no error
|
|
508
|
+
NoError = 0
|
|
509
|
+
## @brief Error if symbol undefined
|
|
510
|
+
Error = 1
|
|
511
|
+
## @brief Remove entire symbol reference if undefined and no error
|
|
512
|
+
NoErrorRemoveSymbol = 2
|
|
513
|
+
|
|
514
|
+
## @brief Switch default for "$on/offSuffixDLVars"
|
|
515
|
+
class SuffixDLVars(object):
|
|
516
|
+
## @brief Activate $offSuffixDLVars
|
|
517
|
+
OffSuffixDLVars = "off"
|
|
518
|
+
## @brief Activate $onSuffixDLVars
|
|
519
|
+
OnSuffixDLVars = "on"
|
|
520
|
+
|
|
521
|
+
## @brief Switch default for "$on/offSuffixAlgebraVars"
|
|
522
|
+
class SuffixAlgebraVars(object):
|
|
523
|
+
## @brief Activate $offSuffixAlgebraVars
|
|
524
|
+
OffSuffixAlgebraVars = "off"
|
|
525
|
+
## @brief Activate $onSuffixAlgebraVars
|
|
526
|
+
OnSuffixAlgebraVars = "on"
|
|
527
|
+
|
|
528
|
+
## @brief Compiler listing option
|
|
529
|
+
class Suppress(object):
|
|
530
|
+
## @brief Standard compiler listing
|
|
531
|
+
StandardCompilerListing = 0
|
|
532
|
+
## @brief Suppress compiler listing
|
|
533
|
+
SuppressCompilerListing = 1
|
|
534
|
+
|
|
535
|
+
## @brief Changes rpower to ipower when the exponent is constant and within 1e-12 of an integer
|
|
536
|
+
class Sys10(object):
|
|
537
|
+
## @brief Disable conversion
|
|
538
|
+
Disable = 0
|
|
539
|
+
## @brief Enable conversion
|
|
540
|
+
Enable = 1
|
|
541
|
+
|
|
542
|
+
## @brief Dynamic resorting if indices in assignment/data statements are not in natural order
|
|
543
|
+
class Sys11(object):
|
|
544
|
+
## @brief Automatic optimization/restructuring of data
|
|
545
|
+
AutomaticOptimization = 0
|
|
546
|
+
## @brief No optimization
|
|
547
|
+
NoOptimization = 1
|
|
548
|
+
## @brief Always optimize/restructure
|
|
549
|
+
AlwaysOptimize = 2
|
|
550
|
+
|
|
551
|
+
## @brief Solver Status file reporting option
|
|
552
|
+
class SysOut(object):
|
|
553
|
+
## @brief Suppress additional solver generated output
|
|
554
|
+
SuppressAdditionalSolverOutput = 0
|
|
555
|
+
## @brief Include additional solver generated output
|
|
556
|
+
IncludeAdditionalSolverOutput = 1
|
|
557
|
+
|
|
558
|
+
## @brief Time format
|
|
559
|
+
class TFormat(object):
|
|
560
|
+
## @brief Time as hh:mm:ss
|
|
561
|
+
Colon = 0
|
|
562
|
+
## @brief Time as hh.mm.ss
|
|
563
|
+
Dot = 1
|
|
564
|
+
|
|
565
|
+
## @brief Trace file format option
|
|
566
|
+
class TraceOpt(object):
|
|
567
|
+
## @brief Solver and GAMS step trace
|
|
568
|
+
SolverAndGAMSStepTraceWOHeaders = 0
|
|
569
|
+
## @brief Solver and GAMS exit trace
|
|
570
|
+
SolverAndGAMSStepTrace = 1
|
|
571
|
+
## @brief Solver trace only
|
|
572
|
+
SolverStepTraceOnly = 2
|
|
573
|
+
## @brief Solver trace only in format used for GAMS performance world
|
|
574
|
+
TraceFileFormatGAMSPerformanceWorld = 3
|
|
575
|
+
## @brief Trace file format supporting NLPEC
|
|
576
|
+
TraceFileFormatSupportingNLPEC = 4
|
|
577
|
+
## @brief Gams exit trace with all available trace fields
|
|
578
|
+
TraceFileWithAllAvailableTraceFields = 5
|
|
579
|
+
|
|
580
|
+
## @brief Report underflow as a warning when abs(results) LE ZeroRes and result set to zero
|
|
581
|
+
class ZeroResRep(object):
|
|
582
|
+
## @brief No warning when a rounding occurs because of ZeroRes
|
|
583
|
+
NoWarning = 0
|
|
584
|
+
## @brief Issue warnings whenever a rounding occurs because of ZeroRes
|
|
585
|
+
IssueWarning = 1
|
|
586
|
+
|
|
587
|
+
import threading
|
|
588
|
+
|
|
589
|
+
class GamsOptions(object):
|
|
590
|
+
"""
|
|
591
|
+
@brief The GamsOptions class manages GAMS options (sometimes also called GAMS
|
|
592
|
+
parameters since they correspond to the command line parameters of the GAMS
|
|
593
|
+
executable) for a GamsJob and GamsModelInstance.
|
|
594
|
+
@details <p>There are integer (e.g. nodlim), double (e.g. reslim), and string (e.g. putdir)
|
|
595
|
+
valued options. There are also a few list options (defines to set string macros inside
|
|
596
|
+
GAMS and idir provide multiple search paths for include files) and a power option to set a
|
|
597
|
+
solver for all suitable model types (all_model_types).</p>
|
|
598
|
+
<p>Some options known from other interfaces to GAMS that are of limited use or
|
|
599
|
+
could even create problematic situations in the Python environment are not
|
|
600
|
+
settable through the GamsOptions class.</p>
|
|
601
|
+
@todo{adjust this paragraph to python specifics}
|
|
602
|
+
<p>For some options (e.g. case) other GAMS interfaces use numeric values (e.g. 0,1)
|
|
603
|
+
while the GamsOptions class has enumerated types with proper names (e.g.
|
|
604
|
+
MixedCase, UpperCase).</p>
|
|
605
|
+
"""
|
|
606
|
+
optLock = threading.Lock()
|
|
607
|
+
|
|
608
|
+
def set_all_model_types(self, value):
|
|
609
|
+
for i in range(1, gmoProc_nrofmodeltypes):
|
|
610
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), i):
|
|
611
|
+
self._selected_solvers[i] = value
|
|
612
|
+
|
|
613
|
+
## @brief Set solver for all model types
|
|
614
|
+
all_model_types = property(fset=set_all_model_types)
|
|
615
|
+
|
|
616
|
+
def get_lp(self):
|
|
617
|
+
return self._selected_solvers[gmoProc_lp]
|
|
618
|
+
|
|
619
|
+
def set_lp(self, value):
|
|
620
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_lp):
|
|
621
|
+
self._selected_solvers[gmoProc_lp] = value
|
|
622
|
+
|
|
623
|
+
## @brief Default lp solver
|
|
624
|
+
lp = property(get_lp, set_lp)
|
|
625
|
+
|
|
626
|
+
def get_mip(self):
|
|
627
|
+
return self._selected_solvers[gmoProc_mip]
|
|
628
|
+
|
|
629
|
+
def set_mip(self, value):
|
|
630
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_mip):
|
|
631
|
+
self._selected_solvers[gmoProc_mip] = value
|
|
632
|
+
|
|
633
|
+
## @brief Default mip solver
|
|
634
|
+
mip = property(get_mip, set_mip)
|
|
635
|
+
|
|
636
|
+
def get_rmip(self):
|
|
637
|
+
return self._selected_solvers[gmoProc_rmip]
|
|
638
|
+
|
|
639
|
+
def set_rmip(self, value):
|
|
640
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_rmip):
|
|
641
|
+
self._selected_solvers[gmoProc_rmip] = value
|
|
642
|
+
|
|
643
|
+
## @brief Default rmip solver
|
|
644
|
+
rmip = property(get_rmip, set_rmip)
|
|
645
|
+
|
|
646
|
+
def get_nlp(self):
|
|
647
|
+
return self._selected_solvers[gmoProc_nlp]
|
|
648
|
+
|
|
649
|
+
def set_nlp(self, value):
|
|
650
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_nlp):
|
|
651
|
+
self._selected_solvers[gmoProc_nlp] = value
|
|
652
|
+
|
|
653
|
+
## @brief Default nlp solver
|
|
654
|
+
nlp = property(get_nlp, set_nlp)
|
|
655
|
+
|
|
656
|
+
def get_mcp(self):
|
|
657
|
+
return self._selected_solvers[gmoProc_mcp]
|
|
658
|
+
|
|
659
|
+
def set_mcp(self, value):
|
|
660
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_mcp):
|
|
661
|
+
self._selected_solvers[gmoProc_mcp] = value
|
|
662
|
+
|
|
663
|
+
## @brief Default mcp solver
|
|
664
|
+
mcp = property(get_mcp, set_mcp)
|
|
665
|
+
|
|
666
|
+
def get_mpec(self):
|
|
667
|
+
return self._selected_solvers[gmoProc_mpec]
|
|
668
|
+
|
|
669
|
+
def set_mpec(self, value):
|
|
670
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_mpec):
|
|
671
|
+
self._selected_solvers[gmoProc_mpec] = value
|
|
672
|
+
|
|
673
|
+
## @brief Default mpec solver
|
|
674
|
+
mpec = property(get_mpec, set_mpec)
|
|
675
|
+
|
|
676
|
+
def get_rmpec(self):
|
|
677
|
+
return self._selected_solvers[gmoProc_rmpec]
|
|
678
|
+
|
|
679
|
+
def set_rmpec(self, value):
|
|
680
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_rmpec):
|
|
681
|
+
self._selected_solvers[gmoProc_rmpec] = value
|
|
682
|
+
|
|
683
|
+
## @brief Default rmpec solver
|
|
684
|
+
rmpec = property(get_rmpec, set_rmpec)
|
|
685
|
+
|
|
686
|
+
def get_cns(self):
|
|
687
|
+
return self._selected_solvers[gmoProc_cns]
|
|
688
|
+
|
|
689
|
+
def set_cns(self, value):
|
|
690
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_cns):
|
|
691
|
+
self._selected_solvers[gmoProc_cns] = value
|
|
692
|
+
|
|
693
|
+
## @brief Default cns solver
|
|
694
|
+
cns = property(get_cns, set_cns)
|
|
695
|
+
|
|
696
|
+
def get_dnlp(self):
|
|
697
|
+
return self._selected_solvers[gmoProc_dnlp]
|
|
698
|
+
|
|
699
|
+
def set_dnlp(self, value):
|
|
700
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_dnlp):
|
|
701
|
+
self._selected_solvers[gmoProc_dnlp] = value
|
|
702
|
+
|
|
703
|
+
## @brief Default dnlp solver
|
|
704
|
+
dnlp = property(get_dnlp, set_dnlp)
|
|
705
|
+
|
|
706
|
+
def get_rminlp(self):
|
|
707
|
+
return self._selected_solvers[gmoProc_rminlp]
|
|
708
|
+
|
|
709
|
+
def set_rminlp(self, value):
|
|
710
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_rminlp):
|
|
711
|
+
self._selected_solvers[gmoProc_rminlp] = value
|
|
712
|
+
|
|
713
|
+
## @brief Default rminlp solver
|
|
714
|
+
rminlp = property(get_rminlp, set_rminlp)
|
|
715
|
+
|
|
716
|
+
def get_minlp(self):
|
|
717
|
+
return self._selected_solvers[gmoProc_minlp]
|
|
718
|
+
|
|
719
|
+
def set_minlp(self, value):
|
|
720
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_minlp):
|
|
721
|
+
self._selected_solvers[gmoProc_minlp] = value
|
|
722
|
+
|
|
723
|
+
## @brief Default minlp solver
|
|
724
|
+
minlp = property(get_minlp, set_minlp)
|
|
725
|
+
|
|
726
|
+
def get_qcp(self):
|
|
727
|
+
return self._selected_solvers[gmoProc_qcp]
|
|
728
|
+
|
|
729
|
+
def set_qcp(self, value):
|
|
730
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_qcp):
|
|
731
|
+
self._selected_solvers[gmoProc_qcp] = value
|
|
732
|
+
|
|
733
|
+
## @brief Default qcp solver
|
|
734
|
+
qcp = property(get_qcp, set_qcp)
|
|
735
|
+
|
|
736
|
+
def get_miqcp(self):
|
|
737
|
+
return self._selected_solvers[gmoProc_miqcp]
|
|
738
|
+
|
|
739
|
+
def set_miqcp(self, value):
|
|
740
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_miqcp):
|
|
741
|
+
self._selected_solvers[gmoProc_miqcp] = value
|
|
742
|
+
|
|
743
|
+
## @brief Default miqcp solver
|
|
744
|
+
miqcp = property(get_miqcp, set_miqcp)
|
|
745
|
+
|
|
746
|
+
def get_rmiqcp(self):
|
|
747
|
+
return self._selected_solvers[gmoProc_rmiqcp]
|
|
748
|
+
|
|
749
|
+
def set_rmiqcp(self, value):
|
|
750
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_rmiqcp):
|
|
751
|
+
self._selected_solvers[gmoProc_rmiqcp] = value
|
|
752
|
+
|
|
753
|
+
## @brief Default rmiqcp solver
|
|
754
|
+
rmiqcp = property(get_rmiqcp, set_rmiqcp)
|
|
755
|
+
|
|
756
|
+
def get_emp(self):
|
|
757
|
+
return self._selected_solvers[gmoProc_emp]
|
|
758
|
+
|
|
759
|
+
def set_emp(self, value):
|
|
760
|
+
if cfgAlgCapability(self._cfg, cfgAlgNumber(self._cfg, value), gmoProc_emp):
|
|
761
|
+
self._selected_solvers[gmoProc_emp] = value
|
|
762
|
+
|
|
763
|
+
## @brief Default emp solver
|
|
764
|
+
emp = property(get_emp, set_emp)
|
|
765
|
+
|
|
766
|
+
def get_action(self):
|
|
767
|
+
return optGetStrStr(self._opt, "Action")
|
|
768
|
+
|
|
769
|
+
def set_action(self, value):
|
|
770
|
+
optSetStrStr(self._opt, "Action", value)
|
|
771
|
+
## @brief GAMS processing request
|
|
772
|
+
action = property(get_action, set_action)
|
|
773
|
+
|
|
774
|
+
def get_appendexpand(self):
|
|
775
|
+
return optGetIntStr(self._opt, "AppendExpand")
|
|
776
|
+
|
|
777
|
+
def set_appendexpand(self, value):
|
|
778
|
+
optSetIntStr(self._opt, "AppendExpand", value)
|
|
779
|
+
## @brief Expand file append option
|
|
780
|
+
appendexpand = property(get_appendexpand, set_appendexpand)
|
|
781
|
+
|
|
782
|
+
def _get_appendlog(self):
|
|
783
|
+
return optGetIntStr(self._opt, "AppendLog")
|
|
784
|
+
|
|
785
|
+
def _set_appendlog(self, value):
|
|
786
|
+
optSetIntStr(self._opt, "AppendLog", value)
|
|
787
|
+
_appendlog = property(_get_appendlog, _set_appendlog)
|
|
788
|
+
|
|
789
|
+
def get_appendout(self):
|
|
790
|
+
return optGetIntStr(self._opt, "AppendOut")
|
|
791
|
+
|
|
792
|
+
def set_appendout(self, value):
|
|
793
|
+
optSetIntStr(self._opt, "AppendOut", value)
|
|
794
|
+
## @brief Output file append option
|
|
795
|
+
appendout = property(get_appendout, set_appendout)
|
|
796
|
+
|
|
797
|
+
def get_asyncsollst(self):
|
|
798
|
+
return optGetIntStr(self._opt, "AsyncSolLst")
|
|
799
|
+
|
|
800
|
+
def set_asyncsollst(self, value):
|
|
801
|
+
optSetIntStr(self._opt, "AsyncSolLst", value)
|
|
802
|
+
## @brief Print solution listing when asynchronous solve (Grid or Threads) is used
|
|
803
|
+
asyncsollst = property(get_asyncsollst, set_asyncsollst)
|
|
804
|
+
|
|
805
|
+
def get_bratio(self):
|
|
806
|
+
return optGetDblStr(self._opt, "Bratio")
|
|
807
|
+
|
|
808
|
+
def set_bratio(self, value):
|
|
809
|
+
optSetDblStr(self._opt, "Bratio", value)
|
|
810
|
+
## @brief Basis detection threshold
|
|
811
|
+
bratio = property(get_bratio, set_bratio)
|
|
812
|
+
|
|
813
|
+
def get_capturemodelinstance(self):
|
|
814
|
+
return optGetIntStr(self._opt, "CaptureModelInstance")
|
|
815
|
+
|
|
816
|
+
def set_capturemodelinstance(self, value):
|
|
817
|
+
optSetIntStr(self._opt, "CaptureModelInstance", value)
|
|
818
|
+
## @brief Switch to capture all model instances within a run
|
|
819
|
+
capturemodelinstance = property(get_capturemodelinstance, set_capturemodelinstance)
|
|
820
|
+
|
|
821
|
+
def get_case(self):
|
|
822
|
+
return optGetIntStr(self._opt, "Case")
|
|
823
|
+
|
|
824
|
+
def set_case(self, value):
|
|
825
|
+
optSetIntStr(self._opt, "Case", value)
|
|
826
|
+
## @brief Output case option for LST file
|
|
827
|
+
case = property(get_case, set_case)
|
|
828
|
+
|
|
829
|
+
def get_cerr(self):
|
|
830
|
+
return optGetIntStr(self._opt, "CErr")
|
|
831
|
+
|
|
832
|
+
def set_cerr(self, value):
|
|
833
|
+
optSetIntStr(self._opt, "CErr", value)
|
|
834
|
+
## @brief Compile time error limit
|
|
835
|
+
cerr = property(get_cerr, set_cerr)
|
|
836
|
+
|
|
837
|
+
def get_charset(self):
|
|
838
|
+
return optGetIntStr(self._opt, "CharSet")
|
|
839
|
+
|
|
840
|
+
def set_charset(self, value):
|
|
841
|
+
optSetIntStr(self._opt, "CharSet", value)
|
|
842
|
+
## @brief Character set flag
|
|
843
|
+
charset = property(get_charset, set_charset)
|
|
844
|
+
|
|
845
|
+
def get_checkerrorlevel(self):
|
|
846
|
+
return optGetIntStr(self._opt, "CheckErrorLevel")
|
|
847
|
+
|
|
848
|
+
def set_checkerrorlevel(self, value):
|
|
849
|
+
optSetIntStr(self._opt, "CheckErrorLevel", value)
|
|
850
|
+
## @brief Check errorLevel automatically after executing external program
|
|
851
|
+
checkerrorlevel = property(get_checkerrorlevel, set_checkerrorlevel)
|
|
852
|
+
|
|
853
|
+
def _get_compilerpreview(self):
|
|
854
|
+
return optGetIntStr(self._opt, "CompilerPreview")
|
|
855
|
+
|
|
856
|
+
def _set_compilerpreview(self, value):
|
|
857
|
+
optSetIntStr(self._opt, "CompilerPreview", value)
|
|
858
|
+
_compilerpreview = property(_get_compilerpreview, _set_compilerpreview)
|
|
859
|
+
|
|
860
|
+
def _get_connectin(self):
|
|
861
|
+
return optGetStrStr(self._opt, "ConnectIn")
|
|
862
|
+
|
|
863
|
+
def _set_connectin(self, value):
|
|
864
|
+
optSetStrStr(self._opt, "ConnectIn", value)
|
|
865
|
+
_connectin = property(_get_connectin, _set_connectin)
|
|
866
|
+
|
|
867
|
+
def _get_connectout(self):
|
|
868
|
+
return optGetStrStr(self._opt, "ConnectOut")
|
|
869
|
+
|
|
870
|
+
def _set_connectout(self, value):
|
|
871
|
+
optSetStrStr(self._opt, "ConnectOut", value)
|
|
872
|
+
_connectout = property(_get_connectout, _set_connectout)
|
|
873
|
+
|
|
874
|
+
def _get_curdir(self):
|
|
875
|
+
return optGetStrStr(self._opt, "CurDir")
|
|
876
|
+
|
|
877
|
+
def _set_curdir(self, value):
|
|
878
|
+
optSetStrStr(self._opt, "CurDir", value)
|
|
879
|
+
_curdir = property(_get_curdir, _set_curdir)
|
|
880
|
+
|
|
881
|
+
def _get_debugport(self):
|
|
882
|
+
return optGetIntStr(self._opt, "DebugPort")
|
|
883
|
+
|
|
884
|
+
def _set_debugport(self, value):
|
|
885
|
+
optSetIntStr(self._opt, "DebugPort", value)
|
|
886
|
+
_debugport = property(_get_debugport, _set_debugport)
|
|
887
|
+
|
|
888
|
+
def get_decryptkey(self):
|
|
889
|
+
return optGetStrStr(self._opt, "DecryptKey")
|
|
890
|
+
|
|
891
|
+
def set_decryptkey(self, value):
|
|
892
|
+
optSetStrStr(self._opt, "DecryptKey", value)
|
|
893
|
+
## @brief Key to decrypt a text file that was encrypted via $encrypt
|
|
894
|
+
decryptkey = property(get_decryptkey, set_decryptkey)
|
|
895
|
+
|
|
896
|
+
def get_dformat(self):
|
|
897
|
+
return optGetIntStr(self._opt, "DFormat")
|
|
898
|
+
|
|
899
|
+
def set_dformat(self, value):
|
|
900
|
+
optSetIntStr(self._opt, "DFormat", value)
|
|
901
|
+
## @brief Date format
|
|
902
|
+
dformat = property(get_dformat, set_dformat)
|
|
903
|
+
|
|
904
|
+
def get_digit(self):
|
|
905
|
+
return optGetStrStr(self._opt, "Digit")
|
|
906
|
+
|
|
907
|
+
def set_digit(self, value):
|
|
908
|
+
optSetStrStr(self._opt, "Digit", value)
|
|
909
|
+
## @brief Switch default for "$on/offDigit"
|
|
910
|
+
digit = property(get_digit, set_digit)
|
|
911
|
+
|
|
912
|
+
def _get_docfile(self):
|
|
913
|
+
return optGetStrStr(self._opt, "DocFile")
|
|
914
|
+
|
|
915
|
+
def _set_docfile(self, value):
|
|
916
|
+
optSetStrStr(self._opt, "DocFile", value)
|
|
917
|
+
_docfile = property(_get_docfile, _set_docfile)
|
|
918
|
+
|
|
919
|
+
def get_domlim(self):
|
|
920
|
+
return optGetIntStr(self._opt, "DomLim")
|
|
921
|
+
|
|
922
|
+
def set_domlim(self, value):
|
|
923
|
+
optSetIntStr(self._opt, "DomLim", value)
|
|
924
|
+
## @brief Domain violation limit solver default
|
|
925
|
+
domlim = property(get_domlim, set_domlim)
|
|
926
|
+
|
|
927
|
+
def get_dumpopt(self):
|
|
928
|
+
return optGetIntStr(self._opt, "DumpOpt")
|
|
929
|
+
|
|
930
|
+
def set_dumpopt(self, value):
|
|
931
|
+
optSetIntStr(self._opt, "DumpOpt", value)
|
|
932
|
+
## @brief Writes preprocessed input to the file input.dmp
|
|
933
|
+
dumpopt = property(get_dumpopt, set_dumpopt)
|
|
934
|
+
|
|
935
|
+
def get_dumpoptgdx(self):
|
|
936
|
+
return optGetStrStr(self._opt, "DumpOptGDX")
|
|
937
|
+
|
|
938
|
+
def set_dumpoptgdx(self, value):
|
|
939
|
+
optSetStrStr(self._opt, "DumpOptGDX", value)
|
|
940
|
+
## @brief Defines a GDX file name stem created when using DumpOpt
|
|
941
|
+
dumpoptgdx = property(get_dumpoptgdx, set_dumpoptgdx)
|
|
942
|
+
|
|
943
|
+
def get_dumpparms(self):
|
|
944
|
+
return optGetIntStr(self._opt, "DumpParms")
|
|
945
|
+
|
|
946
|
+
def set_dumpparms(self, value):
|
|
947
|
+
optSetIntStr(self._opt, "DumpParms", value)
|
|
948
|
+
## @brief GAMS parameter logging
|
|
949
|
+
dumpparms = property(get_dumpparms, set_dumpparms)
|
|
950
|
+
|
|
951
|
+
def get_dumpparmslogprefix(self):
|
|
952
|
+
return optGetStrStr(self._opt, "DumpParmsLogPrefix")
|
|
953
|
+
|
|
954
|
+
def set_dumpparmslogprefix(self, value):
|
|
955
|
+
optSetStrStr(self._opt, "DumpParmsLogPrefix", value)
|
|
956
|
+
## @brief Prefix of lines triggered by DumpParms>1
|
|
957
|
+
dumpparmslogprefix = property(get_dumpparmslogprefix, set_dumpparmslogprefix)
|
|
958
|
+
|
|
959
|
+
def get_ecimplicitload(self):
|
|
960
|
+
return optGetStrStr(self._opt, "ECImplicitLoad")
|
|
961
|
+
|
|
962
|
+
def set_ecimplicitload(self, value):
|
|
963
|
+
optSetStrStr(self._opt, "ECImplicitLoad", value)
|
|
964
|
+
## @brief Allow implicit loading of symbols from embedded code or not
|
|
965
|
+
ecimplicitload = property(get_ecimplicitload, set_ecimplicitload)
|
|
966
|
+
|
|
967
|
+
def get_eclogline(self):
|
|
968
|
+
return optGetStrStr(self._opt, "ECLogLine")
|
|
969
|
+
|
|
970
|
+
def set_eclogline(self, value):
|
|
971
|
+
optSetStrStr(self._opt, "ECLogLine", value)
|
|
972
|
+
## @brief Show log line about embedded code initialization and execution or not
|
|
973
|
+
eclogline = property(get_eclogline, set_eclogline)
|
|
974
|
+
|
|
975
|
+
def get_empty(self):
|
|
976
|
+
return optGetStrStr(self._opt, "Empty")
|
|
977
|
+
|
|
978
|
+
def set_empty(self, value):
|
|
979
|
+
optSetStrStr(self._opt, "Empty", value)
|
|
980
|
+
## @brief Switch default for "$on/offEmpty"
|
|
981
|
+
empty = property(get_empty, set_empty)
|
|
982
|
+
|
|
983
|
+
def get_encryptkey(self):
|
|
984
|
+
return optGetStrStr(self._opt, "EncryptKey")
|
|
985
|
+
|
|
986
|
+
def set_encryptkey(self, value):
|
|
987
|
+
optSetStrStr(self._opt, "EncryptKey", value)
|
|
988
|
+
## @brief Key to encrypt a text file using $encrypt
|
|
989
|
+
encryptkey = property(get_encryptkey, set_encryptkey)
|
|
990
|
+
|
|
991
|
+
def get_eolcom(self):
|
|
992
|
+
return optGetStrStr(self._opt, "EolCom")
|
|
993
|
+
|
|
994
|
+
def set_eolcom(self, value):
|
|
995
|
+
optSetStrStr(self._opt, "EolCom", value)
|
|
996
|
+
## @brief Switch default for "$on/offEolCom" and "$eolCom"
|
|
997
|
+
eolcom = property(get_eolcom, set_eolcom)
|
|
998
|
+
|
|
999
|
+
def _get_epstozero(self):
|
|
1000
|
+
return optGetStrStr(self._opt, "EpsToZero")
|
|
1001
|
+
|
|
1002
|
+
def _set_epstozero(self, value):
|
|
1003
|
+
optSetStrStr(self._opt, "EpsToZero", value)
|
|
1004
|
+
_epstozero = property(_get_epstozero, _set_epstozero)
|
|
1005
|
+
|
|
1006
|
+
def get_errmsg(self):
|
|
1007
|
+
return optGetIntStr(self._opt, "ErrMsg")
|
|
1008
|
+
|
|
1009
|
+
def set_errmsg(self, value):
|
|
1010
|
+
optSetIntStr(self._opt, "ErrMsg", value)
|
|
1011
|
+
## @brief Placing of compilation error messages
|
|
1012
|
+
errmsg = property(get_errmsg, set_errmsg)
|
|
1013
|
+
|
|
1014
|
+
def _get_errnam(self):
|
|
1015
|
+
return optGetStrStr(self._opt, "ErrNam")
|
|
1016
|
+
|
|
1017
|
+
def _set_errnam(self, value):
|
|
1018
|
+
optSetStrStr(self._opt, "ErrNam", value)
|
|
1019
|
+
_errnam = property(_get_errnam, _set_errnam)
|
|
1020
|
+
|
|
1021
|
+
def get_errorlog(self):
|
|
1022
|
+
return optGetIntStr(self._opt, "ErrorLog")
|
|
1023
|
+
|
|
1024
|
+
def set_errorlog(self, value):
|
|
1025
|
+
optSetIntStr(self._opt, "ErrorLog", value)
|
|
1026
|
+
## @brief Max error message lines written to the log for each error
|
|
1027
|
+
errorlog = property(get_errorlog, set_errorlog)
|
|
1028
|
+
|
|
1029
|
+
def get_etlim(self):
|
|
1030
|
+
return optGetDblStr(self._opt, "ETLim")
|
|
1031
|
+
|
|
1032
|
+
def set_etlim(self, value):
|
|
1033
|
+
optSetDblStr(self._opt, "ETLim", value)
|
|
1034
|
+
## @brief Elapsed time limit in seconds
|
|
1035
|
+
etlim = property(get_etlim, set_etlim)
|
|
1036
|
+
|
|
1037
|
+
def get_execmode(self):
|
|
1038
|
+
return optGetIntStr(self._opt, "ExecMode")
|
|
1039
|
+
|
|
1040
|
+
def set_execmode(self, value):
|
|
1041
|
+
optSetIntStr(self._opt, "ExecMode", value)
|
|
1042
|
+
## @brief Limits on external programs that are allowed to be executed
|
|
1043
|
+
execmode = property(get_execmode, set_execmode)
|
|
1044
|
+
|
|
1045
|
+
def get_expand(self):
|
|
1046
|
+
return optGetStrStr(self._opt, "Expand")
|
|
1047
|
+
|
|
1048
|
+
def set_expand(self, value):
|
|
1049
|
+
optSetStrStr(self._opt, "Expand", value)
|
|
1050
|
+
## @brief Expanded (include) input file name
|
|
1051
|
+
expand = property(get_expand, set_expand)
|
|
1052
|
+
|
|
1053
|
+
def get_fddelta(self):
|
|
1054
|
+
return optGetDblStr(self._opt, "FDDelta")
|
|
1055
|
+
|
|
1056
|
+
def set_fddelta(self, value):
|
|
1057
|
+
optSetDblStr(self._opt, "FDDelta", value)
|
|
1058
|
+
## @brief Step size for finite differences
|
|
1059
|
+
fddelta = property(get_fddelta, set_fddelta)
|
|
1060
|
+
|
|
1061
|
+
def get_fdopt(self):
|
|
1062
|
+
return optGetIntStr(self._opt, "FDOpt")
|
|
1063
|
+
|
|
1064
|
+
def set_fdopt(self, value):
|
|
1065
|
+
optSetIntStr(self._opt, "FDOpt", value)
|
|
1066
|
+
## @brief Options for finite differences
|
|
1067
|
+
fdopt = property(get_fdopt, set_fdopt)
|
|
1068
|
+
|
|
1069
|
+
def get_ferr(self):
|
|
1070
|
+
return optGetStrStr(self._opt, "FErr")
|
|
1071
|
+
|
|
1072
|
+
def set_ferr(self, value):
|
|
1073
|
+
optSetStrStr(self._opt, "FErr", value)
|
|
1074
|
+
## @brief Alternative error message file
|
|
1075
|
+
ferr = property(get_ferr, set_ferr)
|
|
1076
|
+
|
|
1077
|
+
def get_filecase(self):
|
|
1078
|
+
return optGetIntStr(self._opt, "FileCase")
|
|
1079
|
+
|
|
1080
|
+
def set_filecase(self, value):
|
|
1081
|
+
optSetIntStr(self._opt, "FileCase", value)
|
|
1082
|
+
## @brief Casing of file names and paths (put, gdx, ref, $include, etc.)
|
|
1083
|
+
filecase = property(get_filecase, set_filecase)
|
|
1084
|
+
|
|
1085
|
+
def get_filestem(self):
|
|
1086
|
+
return optGetStrStr(self._opt, "FileStem")
|
|
1087
|
+
|
|
1088
|
+
def set_filestem(self, value):
|
|
1089
|
+
optSetStrStr(self._opt, "FileStem", value)
|
|
1090
|
+
## @brief Sets the file stem for output files which use the input file name as stem by default
|
|
1091
|
+
filestem = property(get_filestem, set_filestem)
|
|
1092
|
+
|
|
1093
|
+
def get_filestemapfromenv(self):
|
|
1094
|
+
return optGetStrStr(self._opt, "FileStemApFromEnv")
|
|
1095
|
+
|
|
1096
|
+
def set_filestemapfromenv(self, value):
|
|
1097
|
+
optSetStrStr(self._opt, "FileStemApFromEnv", value)
|
|
1098
|
+
## @brief Append a string read from an environment variable to the "FileStem"
|
|
1099
|
+
filestemapfromenv = property(get_filestemapfromenv, set_filestemapfromenv)
|
|
1100
|
+
|
|
1101
|
+
def get_filtered(self):
|
|
1102
|
+
return optGetStrStr(self._opt, "Filtered")
|
|
1103
|
+
|
|
1104
|
+
def set_filtered(self, value):
|
|
1105
|
+
optSetStrStr(self._opt, "Filtered", value)
|
|
1106
|
+
## @brief Switch between filtered and domain-checked read from GDX
|
|
1107
|
+
filtered = property(get_filtered, set_filtered)
|
|
1108
|
+
|
|
1109
|
+
def get_forceoptfile(self):
|
|
1110
|
+
return optGetIntStr(self._opt, "ForceOptFile")
|
|
1111
|
+
|
|
1112
|
+
def set_forceoptfile(self, value):
|
|
1113
|
+
optSetIntStr(self._opt, "ForceOptFile", value)
|
|
1114
|
+
## @brief Overwrites other option file section mechanism
|
|
1115
|
+
forceoptfile = property(get_forceoptfile, set_forceoptfile)
|
|
1116
|
+
|
|
1117
|
+
def get_forcework(self):
|
|
1118
|
+
return optGetIntStr(self._opt, "ForceWork")
|
|
1119
|
+
|
|
1120
|
+
def set_forcework(self, value):
|
|
1121
|
+
optSetIntStr(self._opt, "ForceWork", value)
|
|
1122
|
+
## @brief Force GAMS to process a save file created with a newer GAMS version or with execution errors
|
|
1123
|
+
forcework = property(get_forcework, set_forcework)
|
|
1124
|
+
|
|
1125
|
+
def get_forlim(self):
|
|
1126
|
+
return optGetIntStr(self._opt, "ForLim")
|
|
1127
|
+
|
|
1128
|
+
def set_forlim(self, value):
|
|
1129
|
+
optSetIntStr(self._opt, "ForLim", value)
|
|
1130
|
+
## @brief GAMS looping limit
|
|
1131
|
+
forlim = property(get_forlim, set_forlim)
|
|
1132
|
+
|
|
1133
|
+
def get_freeembeddedpython(self):
|
|
1134
|
+
return optGetIntStr(self._opt, "FreeEmbeddedPython")
|
|
1135
|
+
|
|
1136
|
+
def set_freeembeddedpython(self, value):
|
|
1137
|
+
optSetIntStr(self._opt, "FreeEmbeddedPython", value)
|
|
1138
|
+
## @brief Free external resources at the end of each embedded Python code blocks
|
|
1139
|
+
freeembeddedpython = property(get_freeembeddedpython, set_freeembeddedpython)
|
|
1140
|
+
|
|
1141
|
+
def _get_fsave(self):
|
|
1142
|
+
return optGetIntStr(self._opt, "FSave")
|
|
1143
|
+
|
|
1144
|
+
def _set_fsave(self, value):
|
|
1145
|
+
optSetIntStr(self._opt, "FSave", value)
|
|
1146
|
+
_fsave = property(_get_fsave, _set_fsave)
|
|
1147
|
+
|
|
1148
|
+
def _get_g205(self):
|
|
1149
|
+
return optGetIntStr(self._opt, "G205")
|
|
1150
|
+
|
|
1151
|
+
def _set_g205(self, value):
|
|
1152
|
+
optSetIntStr(self._opt, "G205", value)
|
|
1153
|
+
_g205 = property(_get_g205, _set_g205)
|
|
1154
|
+
|
|
1155
|
+
def get_gdxcompress(self):
|
|
1156
|
+
return optGetIntStr(self._opt, "gdxCompress")
|
|
1157
|
+
|
|
1158
|
+
def set_gdxcompress(self, value):
|
|
1159
|
+
optSetIntStr(self._opt, "gdxCompress", value)
|
|
1160
|
+
## @brief Compression of generated GDX file
|
|
1161
|
+
gdxcompress = property(get_gdxcompress, set_gdxcompress)
|
|
1162
|
+
|
|
1163
|
+
def get_gdxconvert(self):
|
|
1164
|
+
return optGetStrStr(self._opt, "gdxConvert")
|
|
1165
|
+
|
|
1166
|
+
def set_gdxconvert(self, value):
|
|
1167
|
+
optSetStrStr(self._opt, "gdxConvert", value)
|
|
1168
|
+
## @brief Version of GDX files generated (for backward compatibility)
|
|
1169
|
+
gdxconvert = property(get_gdxconvert, set_gdxconvert)
|
|
1170
|
+
|
|
1171
|
+
def _get_gdxsymbols(self):
|
|
1172
|
+
return optGetStrStr(self._opt, "gdxSymbols")
|
|
1173
|
+
|
|
1174
|
+
def _set_gdxsymbols(self, value):
|
|
1175
|
+
optSetStrStr(self._opt, "gdxSymbols", value)
|
|
1176
|
+
_gdxsymbols = property(_get_gdxsymbols, _set_gdxsymbols)
|
|
1177
|
+
|
|
1178
|
+
def get_gdxuels(self):
|
|
1179
|
+
return optGetStrStr(self._opt, "gdxUels")
|
|
1180
|
+
|
|
1181
|
+
def set_gdxuels(self, value):
|
|
1182
|
+
optSetStrStr(self._opt, "gdxUels", value)
|
|
1183
|
+
## @brief Unload labels or UELs to GDX either squeezed or full
|
|
1184
|
+
gdxuels = property(get_gdxuels, set_gdxuels)
|
|
1185
|
+
|
|
1186
|
+
def _get_gp_solveline(self):
|
|
1187
|
+
return optGetStrStr(self._opt, "GP_SolveLine")
|
|
1188
|
+
|
|
1189
|
+
def _set_gp_solveline(self, value):
|
|
1190
|
+
optSetStrStr(self._opt, "GP_SolveLine", value)
|
|
1191
|
+
_gp_solveline = property(_get_gp_solveline, _set_gp_solveline)
|
|
1192
|
+
|
|
1193
|
+
def get_griddir(self):
|
|
1194
|
+
return optGetStrStr(self._opt, "GridDir")
|
|
1195
|
+
|
|
1196
|
+
def set_griddir(self, value):
|
|
1197
|
+
optSetStrStr(self._opt, "GridDir", value)
|
|
1198
|
+
## @brief Grid file directory
|
|
1199
|
+
griddir = property(get_griddir, set_griddir)
|
|
1200
|
+
|
|
1201
|
+
def get_gridscript(self):
|
|
1202
|
+
return optGetStrStr(self._opt, "GridScript")
|
|
1203
|
+
|
|
1204
|
+
def set_gridscript(self, value):
|
|
1205
|
+
optSetStrStr(self._opt, "GridScript", value)
|
|
1206
|
+
## @brief Grid submission script
|
|
1207
|
+
gridscript = property(get_gridscript, set_gridscript)
|
|
1208
|
+
|
|
1209
|
+
def get_heaplimit(self):
|
|
1210
|
+
return optGetDblStr(self._opt, "HeapLimit")
|
|
1211
|
+
|
|
1212
|
+
def set_heaplimit(self, value):
|
|
1213
|
+
optSetDblStr(self._opt, "HeapLimit", value)
|
|
1214
|
+
## @brief Maximum Heap size allowed in MB
|
|
1215
|
+
heaplimit = property(get_heaplimit, set_heaplimit)
|
|
1216
|
+
|
|
1217
|
+
def get_holdfixed(self):
|
|
1218
|
+
return optGetIntStr(self._opt, "HoldFixed")
|
|
1219
|
+
|
|
1220
|
+
def set_holdfixed(self, value):
|
|
1221
|
+
optSetIntStr(self._opt, "HoldFixed", value)
|
|
1222
|
+
## @brief Treat fixed variables as constants
|
|
1223
|
+
holdfixed = property(get_holdfixed, set_holdfixed)
|
|
1224
|
+
|
|
1225
|
+
def get_holdfixedasync(self):
|
|
1226
|
+
return optGetIntStr(self._opt, "HoldFixedAsync")
|
|
1227
|
+
|
|
1228
|
+
def set_holdfixedasync(self, value):
|
|
1229
|
+
optSetIntStr(self._opt, "HoldFixedAsync", value)
|
|
1230
|
+
## @brief Allow HoldFixed for models solved asynchronously as well
|
|
1231
|
+
holdfixedasync = property(get_holdfixedasync, set_holdfixedasync)
|
|
1232
|
+
|
|
1233
|
+
def get_idcgdxinput(self):
|
|
1234
|
+
return optGetStrStr(self._opt, "IDCGDXInput")
|
|
1235
|
+
|
|
1236
|
+
def set_idcgdxinput(self, value):
|
|
1237
|
+
optSetStrStr(self._opt, "IDCGDXInput", value)
|
|
1238
|
+
## @brief GDX file name with data for implicit input
|
|
1239
|
+
idcgdxinput = property(get_idcgdxinput, set_idcgdxinput)
|
|
1240
|
+
|
|
1241
|
+
def get_idcgdxoutput(self):
|
|
1242
|
+
return optGetStrStr(self._opt, "IDCGDXOutput")
|
|
1243
|
+
|
|
1244
|
+
def set_idcgdxoutput(self, value):
|
|
1245
|
+
optSetStrStr(self._opt, "IDCGDXOutput", value)
|
|
1246
|
+
## @brief GDX file name for data for implicit output
|
|
1247
|
+
idcgdxoutput = property(get_idcgdxoutput, set_idcgdxoutput)
|
|
1248
|
+
|
|
1249
|
+
def _get_idcgenerategdx(self):
|
|
1250
|
+
return optGetStrStr(self._opt, "IDCGenerateGDX")
|
|
1251
|
+
|
|
1252
|
+
def _set_idcgenerategdx(self, value):
|
|
1253
|
+
optSetStrStr(self._opt, "IDCGenerateGDX", value)
|
|
1254
|
+
_idcgenerategdx = property(_get_idcgenerategdx, _set_idcgenerategdx)
|
|
1255
|
+
|
|
1256
|
+
def _get_idcgenerategdxinput(self):
|
|
1257
|
+
return optGetStrStr(self._opt, "IDCGenerateGDXInput")
|
|
1258
|
+
|
|
1259
|
+
def _set_idcgenerategdxinput(self, value):
|
|
1260
|
+
optSetStrStr(self._opt, "IDCGenerateGDXInput", value)
|
|
1261
|
+
_idcgenerategdxinput = property(_get_idcgenerategdxinput, _set_idcgenerategdxinput)
|
|
1262
|
+
|
|
1263
|
+
def _get_idcgenerategdxoutput(self):
|
|
1264
|
+
return optGetStrStr(self._opt, "IDCGenerateGDXOutput")
|
|
1265
|
+
|
|
1266
|
+
def _set_idcgenerategdxoutput(self, value):
|
|
1267
|
+
optSetStrStr(self._opt, "IDCGenerateGDXOutput", value)
|
|
1268
|
+
_idcgenerategdxoutput = property(_get_idcgenerategdxoutput, _set_idcgenerategdxoutput)
|
|
1269
|
+
|
|
1270
|
+
def _get_idcgeneratejson(self):
|
|
1271
|
+
return optGetStrStr(self._opt, "IDCGenerateJSON")
|
|
1272
|
+
|
|
1273
|
+
def _set_idcgeneratejson(self, value):
|
|
1274
|
+
optSetStrStr(self._opt, "IDCGenerateJSON", value)
|
|
1275
|
+
_idcgeneratejson = property(_get_idcgeneratejson, _set_idcgeneratejson)
|
|
1276
|
+
|
|
1277
|
+
def _get_idcjson(self):
|
|
1278
|
+
return optGetStrStr(self._opt, "IDCJSON")
|
|
1279
|
+
|
|
1280
|
+
def _set_idcjson(self, value):
|
|
1281
|
+
optSetStrStr(self._opt, "IDCJSON", value)
|
|
1282
|
+
_idcjson = property(_get_idcjson, _set_idcjson)
|
|
1283
|
+
|
|
1284
|
+
def _get_idcprotect(self):
|
|
1285
|
+
return optGetIntStr(self._opt, "IDCProtect")
|
|
1286
|
+
|
|
1287
|
+
def _set_idcprotect(self, value):
|
|
1288
|
+
optSetIntStr(self._opt, "IDCProtect", value)
|
|
1289
|
+
_idcprotect = property(_get_idcprotect, _set_idcprotect)
|
|
1290
|
+
|
|
1291
|
+
def _get_ide(self):
|
|
1292
|
+
return optGetIntStr(self._opt, "IDE")
|
|
1293
|
+
|
|
1294
|
+
def _set_ide(self, value):
|
|
1295
|
+
optSetIntStr(self._opt, "IDE", value)
|
|
1296
|
+
_ide = property(_get_ide, _set_ide)
|
|
1297
|
+
|
|
1298
|
+
def get_implicitassign(self):
|
|
1299
|
+
return optGetStrStr(self._opt, "ImplicitAssign")
|
|
1300
|
+
|
|
1301
|
+
def set_implicitassign(self, value):
|
|
1302
|
+
optSetStrStr(self._opt, "ImplicitAssign", value)
|
|
1303
|
+
## @brief Switch default for "$on/offImplicitAssign"
|
|
1304
|
+
implicitassign = property(get_implicitassign, set_implicitassign)
|
|
1305
|
+
|
|
1306
|
+
def _get_incrementalmode(self):
|
|
1307
|
+
return optGetIntStr(self._opt, "IncrementalMode")
|
|
1308
|
+
|
|
1309
|
+
def _set_incrementalmode(self, value):
|
|
1310
|
+
optSetIntStr(self._opt, "IncrementalMode", value)
|
|
1311
|
+
_incrementalmode = property(_get_incrementalmode, _set_incrementalmode)
|
|
1312
|
+
|
|
1313
|
+
def get_inlinecom(self):
|
|
1314
|
+
return optGetStrStr(self._opt, "InlineCom")
|
|
1315
|
+
|
|
1316
|
+
def set_inlinecom(self, value):
|
|
1317
|
+
optSetStrStr(self._opt, "InlineCom", value)
|
|
1318
|
+
## @brief Switch default for "$on/offInline" and "$inlineCom"
|
|
1319
|
+
inlinecom = property(get_inlinecom, set_inlinecom)
|
|
1320
|
+
|
|
1321
|
+
def _get_input(self):
|
|
1322
|
+
return optGetStrStr(self._opt, "Input")
|
|
1323
|
+
|
|
1324
|
+
def _set_input(self, value):
|
|
1325
|
+
optSetStrStr(self._opt, "Input", value)
|
|
1326
|
+
_input = property(_get_input, _set_input)
|
|
1327
|
+
|
|
1328
|
+
def _get_inputdir(self):
|
|
1329
|
+
return optGetStrStr(self._opt, "InputDir")
|
|
1330
|
+
|
|
1331
|
+
def _set_inputdir(self, value):
|
|
1332
|
+
optSetStrStr(self._opt, "InputDir", value)
|
|
1333
|
+
_inputdir = property(_get_inputdir, _set_inputdir)
|
|
1334
|
+
|
|
1335
|
+
def _get_inputdir1(self):
|
|
1336
|
+
return optGetStrStr(self._opt, "InputDir1")
|
|
1337
|
+
|
|
1338
|
+
def _set_inputdir1(self, value):
|
|
1339
|
+
optSetStrStr(self._opt, "InputDir1", value)
|
|
1340
|
+
_inputdir1 = property(_get_inputdir1, _set_inputdir1)
|
|
1341
|
+
|
|
1342
|
+
def _get_inputdir2(self):
|
|
1343
|
+
return optGetStrStr(self._opt, "InputDir2")
|
|
1344
|
+
|
|
1345
|
+
def _set_inputdir2(self, value):
|
|
1346
|
+
optSetStrStr(self._opt, "InputDir2", value)
|
|
1347
|
+
_inputdir2 = property(_get_inputdir2, _set_inputdir2)
|
|
1348
|
+
|
|
1349
|
+
def _get_inputdir3(self):
|
|
1350
|
+
return optGetStrStr(self._opt, "InputDir3")
|
|
1351
|
+
|
|
1352
|
+
def _set_inputdir3(self, value):
|
|
1353
|
+
optSetStrStr(self._opt, "InputDir3", value)
|
|
1354
|
+
_inputdir3 = property(_get_inputdir3, _set_inputdir3)
|
|
1355
|
+
|
|
1356
|
+
def _get_inputdir4(self):
|
|
1357
|
+
return optGetStrStr(self._opt, "InputDir4")
|
|
1358
|
+
|
|
1359
|
+
def _set_inputdir4(self, value):
|
|
1360
|
+
optSetStrStr(self._opt, "InputDir4", value)
|
|
1361
|
+
_inputdir4 = property(_get_inputdir4, _set_inputdir4)
|
|
1362
|
+
|
|
1363
|
+
def _get_inputdir5(self):
|
|
1364
|
+
return optGetStrStr(self._opt, "InputDir5")
|
|
1365
|
+
|
|
1366
|
+
def _set_inputdir5(self, value):
|
|
1367
|
+
optSetStrStr(self._opt, "InputDir5", value)
|
|
1368
|
+
_inputdir5 = property(_get_inputdir5, _set_inputdir5)
|
|
1369
|
+
|
|
1370
|
+
def _get_inputdir6(self):
|
|
1371
|
+
return optGetStrStr(self._opt, "InputDir6")
|
|
1372
|
+
|
|
1373
|
+
def _set_inputdir6(self, value):
|
|
1374
|
+
optSetStrStr(self._opt, "InputDir6", value)
|
|
1375
|
+
_inputdir6 = property(_get_inputdir6, _set_inputdir6)
|
|
1376
|
+
|
|
1377
|
+
def _get_inputdir7(self):
|
|
1378
|
+
return optGetStrStr(self._opt, "InputDir7")
|
|
1379
|
+
|
|
1380
|
+
def _set_inputdir7(self, value):
|
|
1381
|
+
optSetStrStr(self._opt, "InputDir7", value)
|
|
1382
|
+
_inputdir7 = property(_get_inputdir7, _set_inputdir7)
|
|
1383
|
+
|
|
1384
|
+
def _get_inputdir8(self):
|
|
1385
|
+
return optGetStrStr(self._opt, "InputDir8")
|
|
1386
|
+
|
|
1387
|
+
def _set_inputdir8(self, value):
|
|
1388
|
+
optSetStrStr(self._opt, "InputDir8", value)
|
|
1389
|
+
_inputdir8 = property(_get_inputdir8, _set_inputdir8)
|
|
1390
|
+
|
|
1391
|
+
def _get_inputdir9(self):
|
|
1392
|
+
return optGetStrStr(self._opt, "InputDir9")
|
|
1393
|
+
|
|
1394
|
+
def _set_inputdir9(self, value):
|
|
1395
|
+
optSetStrStr(self._opt, "InputDir9", value)
|
|
1396
|
+
_inputdir9 = property(_get_inputdir9, _set_inputdir9)
|
|
1397
|
+
|
|
1398
|
+
def _get_inputdir10(self):
|
|
1399
|
+
return optGetStrStr(self._opt, "InputDir10")
|
|
1400
|
+
|
|
1401
|
+
def _set_inputdir10(self, value):
|
|
1402
|
+
optSetStrStr(self._opt, "InputDir10", value)
|
|
1403
|
+
_inputdir10 = property(_get_inputdir10, _set_inputdir10)
|
|
1404
|
+
|
|
1405
|
+
def _get_inputdir11(self):
|
|
1406
|
+
return optGetStrStr(self._opt, "InputDir11")
|
|
1407
|
+
|
|
1408
|
+
def _set_inputdir11(self, value):
|
|
1409
|
+
optSetStrStr(self._opt, "InputDir11", value)
|
|
1410
|
+
_inputdir11 = property(_get_inputdir11, _set_inputdir11)
|
|
1411
|
+
|
|
1412
|
+
def _get_inputdir12(self):
|
|
1413
|
+
return optGetStrStr(self._opt, "InputDir12")
|
|
1414
|
+
|
|
1415
|
+
def _set_inputdir12(self, value):
|
|
1416
|
+
optSetStrStr(self._opt, "InputDir12", value)
|
|
1417
|
+
_inputdir12 = property(_get_inputdir12, _set_inputdir12)
|
|
1418
|
+
|
|
1419
|
+
def _get_inputdir13(self):
|
|
1420
|
+
return optGetStrStr(self._opt, "InputDir13")
|
|
1421
|
+
|
|
1422
|
+
def _set_inputdir13(self, value):
|
|
1423
|
+
optSetStrStr(self._opt, "InputDir13", value)
|
|
1424
|
+
_inputdir13 = property(_get_inputdir13, _set_inputdir13)
|
|
1425
|
+
|
|
1426
|
+
def _get_inputdir14(self):
|
|
1427
|
+
return optGetStrStr(self._opt, "InputDir14")
|
|
1428
|
+
|
|
1429
|
+
def _set_inputdir14(self, value):
|
|
1430
|
+
optSetStrStr(self._opt, "InputDir14", value)
|
|
1431
|
+
_inputdir14 = property(_get_inputdir14, _set_inputdir14)
|
|
1432
|
+
|
|
1433
|
+
def _get_inputdir15(self):
|
|
1434
|
+
return optGetStrStr(self._opt, "InputDir15")
|
|
1435
|
+
|
|
1436
|
+
def _set_inputdir15(self, value):
|
|
1437
|
+
optSetStrStr(self._opt, "InputDir15", value)
|
|
1438
|
+
_inputdir15 = property(_get_inputdir15, _set_inputdir15)
|
|
1439
|
+
|
|
1440
|
+
def _get_inputdir16(self):
|
|
1441
|
+
return optGetStrStr(self._opt, "InputDir16")
|
|
1442
|
+
|
|
1443
|
+
def _set_inputdir16(self, value):
|
|
1444
|
+
optSetStrStr(self._opt, "InputDir16", value)
|
|
1445
|
+
_inputdir16 = property(_get_inputdir16, _set_inputdir16)
|
|
1446
|
+
|
|
1447
|
+
def _get_inputdir17(self):
|
|
1448
|
+
return optGetStrStr(self._opt, "InputDir17")
|
|
1449
|
+
|
|
1450
|
+
def _set_inputdir17(self, value):
|
|
1451
|
+
optSetStrStr(self._opt, "InputDir17", value)
|
|
1452
|
+
_inputdir17 = property(_get_inputdir17, _set_inputdir17)
|
|
1453
|
+
|
|
1454
|
+
def _get_inputdir18(self):
|
|
1455
|
+
return optGetStrStr(self._opt, "InputDir18")
|
|
1456
|
+
|
|
1457
|
+
def _set_inputdir18(self, value):
|
|
1458
|
+
optSetStrStr(self._opt, "InputDir18", value)
|
|
1459
|
+
_inputdir18 = property(_get_inputdir18, _set_inputdir18)
|
|
1460
|
+
|
|
1461
|
+
def _get_inputdir19(self):
|
|
1462
|
+
return optGetStrStr(self._opt, "InputDir19")
|
|
1463
|
+
|
|
1464
|
+
def _set_inputdir19(self, value):
|
|
1465
|
+
optSetStrStr(self._opt, "InputDir19", value)
|
|
1466
|
+
_inputdir19 = property(_get_inputdir19, _set_inputdir19)
|
|
1467
|
+
|
|
1468
|
+
def _get_inputdir20(self):
|
|
1469
|
+
return optGetStrStr(self._opt, "InputDir20")
|
|
1470
|
+
|
|
1471
|
+
def _set_inputdir20(self, value):
|
|
1472
|
+
optSetStrStr(self._opt, "InputDir20", value)
|
|
1473
|
+
_inputdir20 = property(_get_inputdir20, _set_inputdir20)
|
|
1474
|
+
|
|
1475
|
+
def _get_inputdir21(self):
|
|
1476
|
+
return optGetStrStr(self._opt, "InputDir21")
|
|
1477
|
+
|
|
1478
|
+
def _set_inputdir21(self, value):
|
|
1479
|
+
optSetStrStr(self._opt, "InputDir21", value)
|
|
1480
|
+
_inputdir21 = property(_get_inputdir21, _set_inputdir21)
|
|
1481
|
+
|
|
1482
|
+
def _get_inputdir22(self):
|
|
1483
|
+
return optGetStrStr(self._opt, "InputDir22")
|
|
1484
|
+
|
|
1485
|
+
def _set_inputdir22(self, value):
|
|
1486
|
+
optSetStrStr(self._opt, "InputDir22", value)
|
|
1487
|
+
_inputdir22 = property(_get_inputdir22, _set_inputdir22)
|
|
1488
|
+
|
|
1489
|
+
def _get_inputdir23(self):
|
|
1490
|
+
return optGetStrStr(self._opt, "InputDir23")
|
|
1491
|
+
|
|
1492
|
+
def _set_inputdir23(self, value):
|
|
1493
|
+
optSetStrStr(self._opt, "InputDir23", value)
|
|
1494
|
+
_inputdir23 = property(_get_inputdir23, _set_inputdir23)
|
|
1495
|
+
|
|
1496
|
+
def _get_inputdir24(self):
|
|
1497
|
+
return optGetStrStr(self._opt, "InputDir24")
|
|
1498
|
+
|
|
1499
|
+
def _set_inputdir24(self, value):
|
|
1500
|
+
optSetStrStr(self._opt, "InputDir24", value)
|
|
1501
|
+
_inputdir24 = property(_get_inputdir24, _set_inputdir24)
|
|
1502
|
+
|
|
1503
|
+
def _get_inputdir25(self):
|
|
1504
|
+
return optGetStrStr(self._opt, "InputDir25")
|
|
1505
|
+
|
|
1506
|
+
def _set_inputdir25(self, value):
|
|
1507
|
+
optSetStrStr(self._opt, "InputDir25", value)
|
|
1508
|
+
_inputdir25 = property(_get_inputdir25, _set_inputdir25)
|
|
1509
|
+
|
|
1510
|
+
def _get_inputdir26(self):
|
|
1511
|
+
return optGetStrStr(self._opt, "InputDir26")
|
|
1512
|
+
|
|
1513
|
+
def _set_inputdir26(self, value):
|
|
1514
|
+
optSetStrStr(self._opt, "InputDir26", value)
|
|
1515
|
+
_inputdir26 = property(_get_inputdir26, _set_inputdir26)
|
|
1516
|
+
|
|
1517
|
+
def _get_inputdir27(self):
|
|
1518
|
+
return optGetStrStr(self._opt, "InputDir27")
|
|
1519
|
+
|
|
1520
|
+
def _set_inputdir27(self, value):
|
|
1521
|
+
optSetStrStr(self._opt, "InputDir27", value)
|
|
1522
|
+
_inputdir27 = property(_get_inputdir27, _set_inputdir27)
|
|
1523
|
+
|
|
1524
|
+
def _get_inputdir28(self):
|
|
1525
|
+
return optGetStrStr(self._opt, "InputDir28")
|
|
1526
|
+
|
|
1527
|
+
def _set_inputdir28(self, value):
|
|
1528
|
+
optSetStrStr(self._opt, "InputDir28", value)
|
|
1529
|
+
_inputdir28 = property(_get_inputdir28, _set_inputdir28)
|
|
1530
|
+
|
|
1531
|
+
def _get_inputdir29(self):
|
|
1532
|
+
return optGetStrStr(self._opt, "InputDir29")
|
|
1533
|
+
|
|
1534
|
+
def _set_inputdir29(self, value):
|
|
1535
|
+
optSetStrStr(self._opt, "InputDir29", value)
|
|
1536
|
+
_inputdir29 = property(_get_inputdir29, _set_inputdir29)
|
|
1537
|
+
|
|
1538
|
+
def _get_inputdir30(self):
|
|
1539
|
+
return optGetStrStr(self._opt, "InputDir30")
|
|
1540
|
+
|
|
1541
|
+
def _set_inputdir30(self, value):
|
|
1542
|
+
optSetStrStr(self._opt, "InputDir30", value)
|
|
1543
|
+
_inputdir30 = property(_get_inputdir30, _set_inputdir30)
|
|
1544
|
+
|
|
1545
|
+
def _get_inputdir31(self):
|
|
1546
|
+
return optGetStrStr(self._opt, "InputDir31")
|
|
1547
|
+
|
|
1548
|
+
def _set_inputdir31(self, value):
|
|
1549
|
+
optSetStrStr(self._opt, "InputDir31", value)
|
|
1550
|
+
_inputdir31 = property(_get_inputdir31, _set_inputdir31)
|
|
1551
|
+
|
|
1552
|
+
def _get_inputdir32(self):
|
|
1553
|
+
return optGetStrStr(self._opt, "InputDir32")
|
|
1554
|
+
|
|
1555
|
+
def _set_inputdir32(self, value):
|
|
1556
|
+
optSetStrStr(self._opt, "InputDir32", value)
|
|
1557
|
+
_inputdir32 = property(_get_inputdir32, _set_inputdir32)
|
|
1558
|
+
|
|
1559
|
+
def _get_inputdir33(self):
|
|
1560
|
+
return optGetStrStr(self._opt, "InputDir33")
|
|
1561
|
+
|
|
1562
|
+
def _set_inputdir33(self, value):
|
|
1563
|
+
optSetStrStr(self._opt, "InputDir33", value)
|
|
1564
|
+
_inputdir33 = property(_get_inputdir33, _set_inputdir33)
|
|
1565
|
+
|
|
1566
|
+
def _get_inputdir34(self):
|
|
1567
|
+
return optGetStrStr(self._opt, "InputDir34")
|
|
1568
|
+
|
|
1569
|
+
def _set_inputdir34(self, value):
|
|
1570
|
+
optSetStrStr(self._opt, "InputDir34", value)
|
|
1571
|
+
_inputdir34 = property(_get_inputdir34, _set_inputdir34)
|
|
1572
|
+
|
|
1573
|
+
def _get_inputdir35(self):
|
|
1574
|
+
return optGetStrStr(self._opt, "InputDir35")
|
|
1575
|
+
|
|
1576
|
+
def _set_inputdir35(self, value):
|
|
1577
|
+
optSetStrStr(self._opt, "InputDir35", value)
|
|
1578
|
+
_inputdir35 = property(_get_inputdir35, _set_inputdir35)
|
|
1579
|
+
|
|
1580
|
+
def _get_inputdir36(self):
|
|
1581
|
+
return optGetStrStr(self._opt, "InputDir36")
|
|
1582
|
+
|
|
1583
|
+
def _set_inputdir36(self, value):
|
|
1584
|
+
optSetStrStr(self._opt, "InputDir36", value)
|
|
1585
|
+
_inputdir36 = property(_get_inputdir36, _set_inputdir36)
|
|
1586
|
+
|
|
1587
|
+
def _get_inputdir37(self):
|
|
1588
|
+
return optGetStrStr(self._opt, "InputDir37")
|
|
1589
|
+
|
|
1590
|
+
def _set_inputdir37(self, value):
|
|
1591
|
+
optSetStrStr(self._opt, "InputDir37", value)
|
|
1592
|
+
_inputdir37 = property(_get_inputdir37, _set_inputdir37)
|
|
1593
|
+
|
|
1594
|
+
def _get_inputdir38(self):
|
|
1595
|
+
return optGetStrStr(self._opt, "InputDir38")
|
|
1596
|
+
|
|
1597
|
+
def _set_inputdir38(self, value):
|
|
1598
|
+
optSetStrStr(self._opt, "InputDir38", value)
|
|
1599
|
+
_inputdir38 = property(_get_inputdir38, _set_inputdir38)
|
|
1600
|
+
|
|
1601
|
+
def _get_inputdir39(self):
|
|
1602
|
+
return optGetStrStr(self._opt, "InputDir39")
|
|
1603
|
+
|
|
1604
|
+
def _set_inputdir39(self, value):
|
|
1605
|
+
optSetStrStr(self._opt, "InputDir39", value)
|
|
1606
|
+
_inputdir39 = property(_get_inputdir39, _set_inputdir39)
|
|
1607
|
+
|
|
1608
|
+
def _get_inputdir40(self):
|
|
1609
|
+
return optGetStrStr(self._opt, "InputDir40")
|
|
1610
|
+
|
|
1611
|
+
def _set_inputdir40(self, value):
|
|
1612
|
+
optSetStrStr(self._opt, "InputDir40", value)
|
|
1613
|
+
_inputdir40 = property(_get_inputdir40, _set_inputdir40)
|
|
1614
|
+
|
|
1615
|
+
def get_integer1(self):
|
|
1616
|
+
return optGetIntStr(self._opt, "Integer1")
|
|
1617
|
+
|
|
1618
|
+
def set_integer1(self, value):
|
|
1619
|
+
optSetIntStr(self._opt, "Integer1", value)
|
|
1620
|
+
## @brief Integer communication cell N
|
|
1621
|
+
integer1 = property(get_integer1, set_integer1)
|
|
1622
|
+
|
|
1623
|
+
def get_integer2(self):
|
|
1624
|
+
return optGetIntStr(self._opt, "Integer2")
|
|
1625
|
+
|
|
1626
|
+
def set_integer2(self, value):
|
|
1627
|
+
optSetIntStr(self._opt, "Integer2", value)
|
|
1628
|
+
## @brief Integer communication cell N
|
|
1629
|
+
integer2 = property(get_integer2, set_integer2)
|
|
1630
|
+
|
|
1631
|
+
def get_integer3(self):
|
|
1632
|
+
return optGetIntStr(self._opt, "Integer3")
|
|
1633
|
+
|
|
1634
|
+
def set_integer3(self, value):
|
|
1635
|
+
optSetIntStr(self._opt, "Integer3", value)
|
|
1636
|
+
## @brief Integer communication cell N
|
|
1637
|
+
integer3 = property(get_integer3, set_integer3)
|
|
1638
|
+
|
|
1639
|
+
def get_integer4(self):
|
|
1640
|
+
return optGetIntStr(self._opt, "Integer4")
|
|
1641
|
+
|
|
1642
|
+
def set_integer4(self, value):
|
|
1643
|
+
optSetIntStr(self._opt, "Integer4", value)
|
|
1644
|
+
## @brief Integer communication cell N
|
|
1645
|
+
integer4 = property(get_integer4, set_integer4)
|
|
1646
|
+
|
|
1647
|
+
def get_integer5(self):
|
|
1648
|
+
return optGetIntStr(self._opt, "Integer5")
|
|
1649
|
+
|
|
1650
|
+
def set_integer5(self, value):
|
|
1651
|
+
optSetIntStr(self._opt, "Integer5", value)
|
|
1652
|
+
## @brief Integer communication cell N
|
|
1653
|
+
integer5 = property(get_integer5, set_integer5)
|
|
1654
|
+
|
|
1655
|
+
def get_interactivesolver(self):
|
|
1656
|
+
return optGetIntStr(self._opt, "InteractiveSolver")
|
|
1657
|
+
|
|
1658
|
+
def set_interactivesolver(self, value):
|
|
1659
|
+
optSetIntStr(self._opt, "InteractiveSolver", value)
|
|
1660
|
+
## @brief Allow solver to interact via command line input
|
|
1661
|
+
interactivesolver = property(get_interactivesolver, set_interactivesolver)
|
|
1662
|
+
|
|
1663
|
+
def get_intvarup(self):
|
|
1664
|
+
return optGetIntStr(self._opt, "IntVarUp")
|
|
1665
|
+
|
|
1666
|
+
def set_intvarup(self, value):
|
|
1667
|
+
optSetIntStr(self._opt, "IntVarUp", value)
|
|
1668
|
+
## @brief Set mode for default upper bounds on integer variables
|
|
1669
|
+
intvarup = property(get_intvarup, set_intvarup)
|
|
1670
|
+
|
|
1671
|
+
def get_iterlim(self):
|
|
1672
|
+
return optGetIntStr(self._opt, "IterLim")
|
|
1673
|
+
|
|
1674
|
+
def set_iterlim(self, value):
|
|
1675
|
+
optSetIntStr(self._opt, "IterLim", value)
|
|
1676
|
+
## @brief Iteration limit of solver
|
|
1677
|
+
iterlim = property(get_iterlim, set_iterlim)
|
|
1678
|
+
|
|
1679
|
+
def get_jobtrace(self):
|
|
1680
|
+
return optGetStrStr(self._opt, "JobTrace")
|
|
1681
|
+
|
|
1682
|
+
def set_jobtrace(self, value):
|
|
1683
|
+
optSetStrStr(self._opt, "JobTrace", value)
|
|
1684
|
+
## @brief Job trace string to be written to the trace file at the end of a GAMS job
|
|
1685
|
+
jobtrace = property(get_jobtrace, set_jobtrace)
|
|
1686
|
+
|
|
1687
|
+
def get_keep(self):
|
|
1688
|
+
return optGetIntStr(self._opt, "Keep")
|
|
1689
|
+
|
|
1690
|
+
def set_keep(self, value):
|
|
1691
|
+
optSetIntStr(self._opt, "Keep", value)
|
|
1692
|
+
## @brief Controls keeping or deletion of process directory and scratch files
|
|
1693
|
+
keep = property(get_keep, set_keep)
|
|
1694
|
+
|
|
1695
|
+
def get_libincdir(self):
|
|
1696
|
+
return optGetStrStr(self._opt, "LibIncDir")
|
|
1697
|
+
|
|
1698
|
+
def set_libincdir(self, value):
|
|
1699
|
+
optSetStrStr(self._opt, "LibIncDir", value)
|
|
1700
|
+
## @brief LibInclude directory
|
|
1701
|
+
libincdir = property(get_libincdir, set_libincdir)
|
|
1702
|
+
|
|
1703
|
+
def get_license(self):
|
|
1704
|
+
return optGetStrStr(self._opt, "License")
|
|
1705
|
+
|
|
1706
|
+
def set_license(self, value):
|
|
1707
|
+
optSetStrStr(self._opt, "License", value)
|
|
1708
|
+
## @brief Use alternative license file
|
|
1709
|
+
license = property(get_license, set_license)
|
|
1710
|
+
|
|
1711
|
+
def get_limcol(self):
|
|
1712
|
+
return optGetIntStr(self._opt, "LimCol")
|
|
1713
|
+
|
|
1714
|
+
def set_limcol(self, value):
|
|
1715
|
+
optSetIntStr(self._opt, "LimCol", value)
|
|
1716
|
+
## @brief Maximum number of columns listed in one variable block
|
|
1717
|
+
limcol = property(get_limcol, set_limcol)
|
|
1718
|
+
|
|
1719
|
+
def get_limrow(self):
|
|
1720
|
+
return optGetIntStr(self._opt, "LimRow")
|
|
1721
|
+
|
|
1722
|
+
def set_limrow(self, value):
|
|
1723
|
+
optSetIntStr(self._opt, "LimRow", value)
|
|
1724
|
+
## @brief Maximum number of rows listed in one equation block
|
|
1725
|
+
limrow = property(get_limrow, set_limrow)
|
|
1726
|
+
|
|
1727
|
+
def get_listing(self):
|
|
1728
|
+
return optGetStrStr(self._opt, "Listing")
|
|
1729
|
+
|
|
1730
|
+
def set_listing(self, value):
|
|
1731
|
+
optSetStrStr(self._opt, "Listing", value)
|
|
1732
|
+
## @brief Switch default for "$on/offListing"
|
|
1733
|
+
listing = property(get_listing, set_listing)
|
|
1734
|
+
|
|
1735
|
+
def _get_logfile(self):
|
|
1736
|
+
return optGetStrStr(self._opt, "LogFile")
|
|
1737
|
+
|
|
1738
|
+
def _set_logfile(self, value):
|
|
1739
|
+
optSetStrStr(self._opt, "LogFile", value)
|
|
1740
|
+
_logfile = property(_get_logfile, _set_logfile)
|
|
1741
|
+
|
|
1742
|
+
def get_logline(self):
|
|
1743
|
+
return optGetIntStr(self._opt, "LogLine")
|
|
1744
|
+
|
|
1745
|
+
def set_logline(self, value):
|
|
1746
|
+
optSetIntStr(self._opt, "LogLine", value)
|
|
1747
|
+
## @brief Amount of line tracing to the log file
|
|
1748
|
+
logline = property(get_logline, set_logline)
|
|
1749
|
+
|
|
1750
|
+
def _get_logoption(self):
|
|
1751
|
+
return optGetIntStr(self._opt, "LogOption")
|
|
1752
|
+
|
|
1753
|
+
def _set_logoption(self, value):
|
|
1754
|
+
optSetIntStr(self._opt, "LogOption", value)
|
|
1755
|
+
_logoption = property(_get_logoption, _set_logoption)
|
|
1756
|
+
|
|
1757
|
+
def get_lsttitleleftaligned(self):
|
|
1758
|
+
return optGetIntStr(self._opt, "LstTitleLeftAligned")
|
|
1759
|
+
|
|
1760
|
+
def set_lsttitleleftaligned(self, value):
|
|
1761
|
+
optSetIntStr(self._opt, "LstTitleLeftAligned", value)
|
|
1762
|
+
## @brief Write title of LST file all left aligned
|
|
1763
|
+
lsttitleleftaligned = property(get_lsttitleleftaligned, set_lsttitleleftaligned)
|
|
1764
|
+
|
|
1765
|
+
def get_maxexecerror(self):
|
|
1766
|
+
return optGetIntStr(self._opt, "MaxExecError")
|
|
1767
|
+
|
|
1768
|
+
def set_maxexecerror(self, value):
|
|
1769
|
+
optSetIntStr(self._opt, "MaxExecError", value)
|
|
1770
|
+
## @brief Execution time error limit
|
|
1771
|
+
maxexecerror = property(get_maxexecerror, set_maxexecerror)
|
|
1772
|
+
|
|
1773
|
+
def _get_maxgenericfiles(self):
|
|
1774
|
+
return optGetIntStr(self._opt, "MaxGenericFiles")
|
|
1775
|
+
|
|
1776
|
+
def _set_maxgenericfiles(self, value):
|
|
1777
|
+
optSetIntStr(self._opt, "MaxGenericFiles", value)
|
|
1778
|
+
_maxgenericfiles = property(_get_maxgenericfiles, _set_maxgenericfiles)
|
|
1779
|
+
|
|
1780
|
+
def get_maxprocdir(self):
|
|
1781
|
+
return optGetIntStr(self._opt, "MaxProcDir")
|
|
1782
|
+
|
|
1783
|
+
def set_maxprocdir(self, value):
|
|
1784
|
+
optSetIntStr(self._opt, "MaxProcDir", value)
|
|
1785
|
+
## @brief Maximum number of 225* process directories
|
|
1786
|
+
maxprocdir = property(get_maxprocdir, set_maxprocdir)
|
|
1787
|
+
|
|
1788
|
+
def _get_mcprholdfx(self):
|
|
1789
|
+
return optGetIntStr(self._opt, "MCPRHoldfx")
|
|
1790
|
+
|
|
1791
|
+
def _set_mcprholdfx(self, value):
|
|
1792
|
+
optSetIntStr(self._opt, "MCPRHoldfx", value)
|
|
1793
|
+
_mcprholdfx = property(_get_mcprholdfx, _set_mcprholdfx)
|
|
1794
|
+
|
|
1795
|
+
def get_memorymanager(self):
|
|
1796
|
+
return optGetIntStr(self._opt, "MemoryManager")
|
|
1797
|
+
|
|
1798
|
+
def set_memorymanager(self, value):
|
|
1799
|
+
optSetIntStr(self._opt, "MemoryManager", value)
|
|
1800
|
+
## @brief Allows to try an experimental memory manager
|
|
1801
|
+
memorymanager = property(get_memorymanager, set_memorymanager)
|
|
1802
|
+
|
|
1803
|
+
def get_miimode(self):
|
|
1804
|
+
return optGetStrStr(self._opt, "MIIMode")
|
|
1805
|
+
|
|
1806
|
+
def set_miimode(self, value):
|
|
1807
|
+
optSetStrStr(self._opt, "MIIMode", value)
|
|
1808
|
+
## @brief Model Instance Mode
|
|
1809
|
+
miimode = property(get_miimode, set_miimode)
|
|
1810
|
+
|
|
1811
|
+
def get_multi(self):
|
|
1812
|
+
return optGetStrStr(self._opt, "Multi")
|
|
1813
|
+
|
|
1814
|
+
def set_multi(self, value):
|
|
1815
|
+
optSetStrStr(self._opt, "Multi", value)
|
|
1816
|
+
## @brief Switch default for "$on/offMulti[R]"
|
|
1817
|
+
multi = property(get_multi, set_multi)
|
|
1818
|
+
|
|
1819
|
+
def _get_multipass(self):
|
|
1820
|
+
return optGetIntStr(self._opt, "MultiPass")
|
|
1821
|
+
|
|
1822
|
+
def _set_multipass(self, value):
|
|
1823
|
+
optSetIntStr(self._opt, "MultiPass", value)
|
|
1824
|
+
_multipass = property(_get_multipass, _set_multipass)
|
|
1825
|
+
|
|
1826
|
+
def _get_netlicense(self):
|
|
1827
|
+
return optGetStrStr(self._opt, "NetLicense")
|
|
1828
|
+
|
|
1829
|
+
def _set_netlicense(self, value):
|
|
1830
|
+
optSetStrStr(self._opt, "NetLicense", value)
|
|
1831
|
+
_netlicense = property(_get_netlicense, _set_netlicense)
|
|
1832
|
+
|
|
1833
|
+
def _get_nocr(self):
|
|
1834
|
+
return optGetIntStr(self._opt, "NoCr")
|
|
1835
|
+
|
|
1836
|
+
def _set_nocr(self, value):
|
|
1837
|
+
optSetIntStr(self._opt, "NoCr", value)
|
|
1838
|
+
_nocr = property(_get_nocr, _set_nocr)
|
|
1839
|
+
|
|
1840
|
+
def get_nodlim(self):
|
|
1841
|
+
return optGetIntStr(self._opt, "NodLim")
|
|
1842
|
+
|
|
1843
|
+
def set_nodlim(self, value):
|
|
1844
|
+
optSetIntStr(self._opt, "NodLim", value)
|
|
1845
|
+
## @brief Node limit in branch and bound tree
|
|
1846
|
+
nodlim = property(get_nodlim, set_nodlim)
|
|
1847
|
+
|
|
1848
|
+
def get_nonewvarequ(self):
|
|
1849
|
+
return optGetIntStr(self._opt, "NoNewVarEqu")
|
|
1850
|
+
|
|
1851
|
+
def set_nonewvarequ(self, value):
|
|
1852
|
+
optSetIntStr(self._opt, "NoNewVarEqu", value)
|
|
1853
|
+
## @brief Triggers a compilation error when new equations or variable symbols are introduced
|
|
1854
|
+
nonewvarequ = property(get_nonewvarequ, set_nonewvarequ)
|
|
1855
|
+
|
|
1856
|
+
def get_on115(self):
|
|
1857
|
+
return optGetIntStr(self._opt, "On115")
|
|
1858
|
+
|
|
1859
|
+
def set_on115(self, value):
|
|
1860
|
+
optSetIntStr(self._opt, "On115", value)
|
|
1861
|
+
## @brief Generate errors for unknown unique element in an equation
|
|
1862
|
+
on115 = property(get_on115, set_on115)
|
|
1863
|
+
|
|
1864
|
+
def get_optca(self):
|
|
1865
|
+
return optGetDblStr(self._opt, "OptCA")
|
|
1866
|
+
|
|
1867
|
+
def set_optca(self, value):
|
|
1868
|
+
optSetDblStr(self._opt, "OptCA", value)
|
|
1869
|
+
## @brief Absolute Optimality criterion solver default
|
|
1870
|
+
optca = property(get_optca, set_optca)
|
|
1871
|
+
|
|
1872
|
+
def get_optcr(self):
|
|
1873
|
+
return optGetDblStr(self._opt, "OptCR")
|
|
1874
|
+
|
|
1875
|
+
def set_optcr(self, value):
|
|
1876
|
+
optSetDblStr(self._opt, "OptCR", value)
|
|
1877
|
+
## @brief Relative Optimality criterion solver default
|
|
1878
|
+
optcr = property(get_optcr, set_optcr)
|
|
1879
|
+
|
|
1880
|
+
def get_optdir(self):
|
|
1881
|
+
return optGetStrStr(self._opt, "OptDir")
|
|
1882
|
+
|
|
1883
|
+
def set_optdir(self, value):
|
|
1884
|
+
optSetStrStr(self._opt, "OptDir", value)
|
|
1885
|
+
## @brief Option file directory
|
|
1886
|
+
optdir = property(get_optdir, set_optdir)
|
|
1887
|
+
|
|
1888
|
+
def get_optfile(self):
|
|
1889
|
+
return optGetIntStr(self._opt, "OptFile")
|
|
1890
|
+
|
|
1891
|
+
def set_optfile(self, value):
|
|
1892
|
+
optSetIntStr(self._opt, "OptFile", value)
|
|
1893
|
+
## @brief Default option file
|
|
1894
|
+
optfile = property(get_optfile, set_optfile)
|
|
1895
|
+
|
|
1896
|
+
def get_output(self):
|
|
1897
|
+
return optGetStrStr(self._opt, "Output")
|
|
1898
|
+
|
|
1899
|
+
def set_output(self, value):
|
|
1900
|
+
optSetStrStr(self._opt, "Output", value)
|
|
1901
|
+
## @brief Listing file name
|
|
1902
|
+
output = property(get_output, set_output)
|
|
1903
|
+
|
|
1904
|
+
def get_pagecontr(self):
|
|
1905
|
+
return optGetIntStr(self._opt, "PageContr")
|
|
1906
|
+
|
|
1907
|
+
def set_pagecontr(self, value):
|
|
1908
|
+
optSetIntStr(self._opt, "PageContr", value)
|
|
1909
|
+
## @brief Output file page control option
|
|
1910
|
+
pagecontr = property(get_pagecontr, set_pagecontr)
|
|
1911
|
+
|
|
1912
|
+
def get_pagesize(self):
|
|
1913
|
+
return optGetIntStr(self._opt, "PageSize")
|
|
1914
|
+
|
|
1915
|
+
def set_pagesize(self, value):
|
|
1916
|
+
optSetIntStr(self._opt, "PageSize", value)
|
|
1917
|
+
## @brief Output file page size (=0 no paging)
|
|
1918
|
+
pagesize = property(get_pagesize, set_pagesize)
|
|
1919
|
+
|
|
1920
|
+
def get_pagewidth(self):
|
|
1921
|
+
return optGetIntStr(self._opt, "PageWidth")
|
|
1922
|
+
|
|
1923
|
+
def set_pagewidth(self, value):
|
|
1924
|
+
optSetIntStr(self._opt, "PageWidth", value)
|
|
1925
|
+
## @brief Output file page width
|
|
1926
|
+
pagewidth = property(get_pagewidth, set_pagewidth)
|
|
1927
|
+
|
|
1928
|
+
def _get_pid2error(self):
|
|
1929
|
+
return optGetIntStr(self._opt, "PID2Error")
|
|
1930
|
+
|
|
1931
|
+
def _set_pid2error(self, value):
|
|
1932
|
+
optSetIntStr(self._opt, "PID2Error", value)
|
|
1933
|
+
_pid2error = property(_get_pid2error, _set_pid2error)
|
|
1934
|
+
|
|
1935
|
+
def get_plicense(self):
|
|
1936
|
+
return optGetStrStr(self._opt, "PLicense")
|
|
1937
|
+
|
|
1938
|
+
def set_plicense(self, value):
|
|
1939
|
+
optSetStrStr(self._opt, "PLicense", value)
|
|
1940
|
+
## @brief Privacy license file name
|
|
1941
|
+
plicense = property(get_plicense, set_plicense)
|
|
1942
|
+
|
|
1943
|
+
def get_prefixloadpath(self):
|
|
1944
|
+
return optGetIntStr(self._opt, "PrefixLoadPath")
|
|
1945
|
+
|
|
1946
|
+
def set_prefixloadpath(self, value):
|
|
1947
|
+
optSetIntStr(self._opt, "PrefixLoadPath", value)
|
|
1948
|
+
## @brief Prepend GAMS system directory to library load path
|
|
1949
|
+
prefixloadpath = property(get_prefixloadpath, set_prefixloadpath)
|
|
1950
|
+
|
|
1951
|
+
def get_previouswork(self):
|
|
1952
|
+
return optGetIntStr(self._opt, "PreviousWork")
|
|
1953
|
+
|
|
1954
|
+
def set_previouswork(self, value):
|
|
1955
|
+
optSetIntStr(self._opt, "PreviousWork", value)
|
|
1956
|
+
## @brief Indicator for writing workfile with previous workfile version
|
|
1957
|
+
previouswork = property(get_previouswork, set_previouswork)
|
|
1958
|
+
|
|
1959
|
+
def _get_procdir(self):
|
|
1960
|
+
return optGetStrStr(self._opt, "ProcDir")
|
|
1961
|
+
|
|
1962
|
+
def _set_procdir(self, value):
|
|
1963
|
+
optSetStrStr(self._opt, "ProcDir", value)
|
|
1964
|
+
_procdir = property(_get_procdir, _set_procdir)
|
|
1965
|
+
|
|
1966
|
+
def _get_procdirpath(self):
|
|
1967
|
+
return optGetStrStr(self._opt, "ProcDirPath")
|
|
1968
|
+
|
|
1969
|
+
def _set_procdirpath(self, value):
|
|
1970
|
+
optSetStrStr(self._opt, "ProcDirPath", value)
|
|
1971
|
+
_procdirpath = property(_get_procdirpath, _set_procdirpath)
|
|
1972
|
+
|
|
1973
|
+
def get_proctreememmonitor(self):
|
|
1974
|
+
return optGetIntStr(self._opt, "ProcTreeMemMonitor")
|
|
1975
|
+
|
|
1976
|
+
def set_proctreememmonitor(self, value):
|
|
1977
|
+
optSetIntStr(self._opt, "ProcTreeMemMonitor", value)
|
|
1978
|
+
## @brief Monitor the memory used by the GAMS process tree
|
|
1979
|
+
proctreememmonitor = property(get_proctreememmonitor, set_proctreememmonitor)
|
|
1980
|
+
|
|
1981
|
+
def get_proctreememticks(self):
|
|
1982
|
+
return optGetIntStr(self._opt, "ProcTreeMemTicks")
|
|
1983
|
+
|
|
1984
|
+
def set_proctreememticks(self, value):
|
|
1985
|
+
optSetIntStr(self._opt, "ProcTreeMemTicks", value)
|
|
1986
|
+
## @brief Set wait interval between memory monitor checks: ticks = milliseconds
|
|
1987
|
+
proctreememticks = property(get_proctreememticks, set_proctreememticks)
|
|
1988
|
+
|
|
1989
|
+
def get_profile(self):
|
|
1990
|
+
return optGetIntStr(self._opt, "Profile")
|
|
1991
|
+
|
|
1992
|
+
def set_profile(self, value):
|
|
1993
|
+
optSetIntStr(self._opt, "Profile", value)
|
|
1994
|
+
## @brief Execution profiling
|
|
1995
|
+
profile = property(get_profile, set_profile)
|
|
1996
|
+
|
|
1997
|
+
def get_profilefile(self):
|
|
1998
|
+
return optGetStrStr(self._opt, "ProfileFile")
|
|
1999
|
+
|
|
2000
|
+
def set_profilefile(self, value):
|
|
2001
|
+
optSetStrStr(self._opt, "ProfileFile", value)
|
|
2002
|
+
## @brief Write profile information to this file
|
|
2003
|
+
profilefile = property(get_profilefile, set_profilefile)
|
|
2004
|
+
|
|
2005
|
+
def _get_comport(self):
|
|
2006
|
+
return optGetIntStr(self._opt, "ComPort")
|
|
2007
|
+
|
|
2008
|
+
def _set_comport(self, value):
|
|
2009
|
+
optSetIntStr(self._opt, "ComPort", value)
|
|
2010
|
+
_comport = property(_get_comport, _set_comport)
|
|
2011
|
+
|
|
2012
|
+
def get_profiletol(self):
|
|
2013
|
+
return optGetDblStr(self._opt, "ProfileTol")
|
|
2014
|
+
|
|
2015
|
+
def set_profiletol(self, value):
|
|
2016
|
+
optSetDblStr(self._opt, "ProfileTol", value)
|
|
2017
|
+
## @brief Minimum time a statement must use to appear in profile generated output
|
|
2018
|
+
profiletol = property(get_profiletol, set_profiletol)
|
|
2019
|
+
|
|
2020
|
+
def get_putdir(self):
|
|
2021
|
+
return optGetStrStr(self._opt, "PutDir")
|
|
2022
|
+
|
|
2023
|
+
def set_putdir(self, value):
|
|
2024
|
+
optSetStrStr(self._opt, "PutDir", value)
|
|
2025
|
+
## @brief Put file directory
|
|
2026
|
+
putdir = property(get_putdir, set_putdir)
|
|
2027
|
+
|
|
2028
|
+
def get_putnd(self):
|
|
2029
|
+
return optGetIntStr(self._opt, "PutND")
|
|
2030
|
+
|
|
2031
|
+
def set_putnd(self, value):
|
|
2032
|
+
optSetIntStr(self._opt, "PutND", value)
|
|
2033
|
+
## @brief Number of decimals for put files
|
|
2034
|
+
putnd = property(get_putnd, set_putnd)
|
|
2035
|
+
|
|
2036
|
+
def get_putnr(self):
|
|
2037
|
+
return optGetIntStr(self._opt, "PutNR")
|
|
2038
|
+
|
|
2039
|
+
def set_putnr(self, value):
|
|
2040
|
+
optSetIntStr(self._opt, "PutNR", value)
|
|
2041
|
+
## @brief Numeric round format for put files
|
|
2042
|
+
putnr = property(get_putnr, set_putnr)
|
|
2043
|
+
|
|
2044
|
+
def get_putps(self):
|
|
2045
|
+
return optGetIntStr(self._opt, "PutPS")
|
|
2046
|
+
|
|
2047
|
+
def set_putps(self, value):
|
|
2048
|
+
optSetIntStr(self._opt, "PutPS", value)
|
|
2049
|
+
## @brief Page size for put files
|
|
2050
|
+
putps = property(get_putps, set_putps)
|
|
2051
|
+
|
|
2052
|
+
def get_putpw(self):
|
|
2053
|
+
return optGetIntStr(self._opt, "PutPW")
|
|
2054
|
+
|
|
2055
|
+
def set_putpw(self, value):
|
|
2056
|
+
optSetIntStr(self._opt, "PutPW", value)
|
|
2057
|
+
## @brief Page width for put files
|
|
2058
|
+
putpw = property(get_putpw, set_putpw)
|
|
2059
|
+
|
|
2060
|
+
def get_reference(self):
|
|
2061
|
+
return optGetStrStr(self._opt, "Reference")
|
|
2062
|
+
|
|
2063
|
+
def set_reference(self, value):
|
|
2064
|
+
optSetStrStr(self._opt, "Reference", value)
|
|
2065
|
+
## @brief Symbol reference file
|
|
2066
|
+
reference = property(get_reference, set_reference)
|
|
2067
|
+
|
|
2068
|
+
def get_referencelineno(self):
|
|
2069
|
+
return optGetStrStr(self._opt, "ReferenceLineNo")
|
|
2070
|
+
|
|
2071
|
+
def set_referencelineno(self, value):
|
|
2072
|
+
optSetStrStr(self._opt, "ReferenceLineNo", value)
|
|
2073
|
+
## @brief Controls the line numbers written to a reference file
|
|
2074
|
+
referencelineno = property(get_referencelineno, set_referencelineno)
|
|
2075
|
+
|
|
2076
|
+
def _get_relpath(self):
|
|
2077
|
+
return optGetIntStr(self._opt, "RelPath")
|
|
2078
|
+
|
|
2079
|
+
def _set_relpath(self, value):
|
|
2080
|
+
optSetIntStr(self._opt, "RelPath", value)
|
|
2081
|
+
_relpath = property(_get_relpath, _set_relpath)
|
|
2082
|
+
|
|
2083
|
+
def get_replace(self):
|
|
2084
|
+
return optGetStrStr(self._opt, "Replace")
|
|
2085
|
+
|
|
2086
|
+
def set_replace(self, value):
|
|
2087
|
+
optSetStrStr(self._opt, "Replace", value)
|
|
2088
|
+
## @brief Switch between merge and replace when reading from GDX into non-empty symbol
|
|
2089
|
+
replace = property(get_replace, set_replace)
|
|
2090
|
+
|
|
2091
|
+
def get_reslim(self):
|
|
2092
|
+
return optGetDblStr(self._opt, "ResLim")
|
|
2093
|
+
|
|
2094
|
+
def set_reslim(self, value):
|
|
2095
|
+
optSetDblStr(self._opt, "ResLim", value)
|
|
2096
|
+
## @brief Wall-clock time limit for solver
|
|
2097
|
+
reslim = property(get_reslim, set_reslim)
|
|
2098
|
+
|
|
2099
|
+
def _get_restart(self):
|
|
2100
|
+
return optGetStrStr(self._opt, "Restart")
|
|
2101
|
+
|
|
2102
|
+
def _set_restart(self, value):
|
|
2103
|
+
optSetStrStr(self._opt, "Restart", value)
|
|
2104
|
+
_restart = property(_get_restart, _set_restart)
|
|
2105
|
+
|
|
2106
|
+
def _get_restartnamed(self):
|
|
2107
|
+
return optGetStrStr(self._opt, "RestartNamed")
|
|
2108
|
+
|
|
2109
|
+
def _set_restartnamed(self, value):
|
|
2110
|
+
optSetStrStr(self._opt, "RestartNamed", value)
|
|
2111
|
+
_restartnamed = property(_get_restartnamed, _set_restartnamed)
|
|
2112
|
+
|
|
2113
|
+
def _get_save(self):
|
|
2114
|
+
return optGetStrStr(self._opt, "Save")
|
|
2115
|
+
|
|
2116
|
+
def _set_save(self, value):
|
|
2117
|
+
optSetStrStr(self._opt, "Save", value)
|
|
2118
|
+
_save = property(_get_save, _set_save)
|
|
2119
|
+
|
|
2120
|
+
def _get_saveobfuscate(self):
|
|
2121
|
+
return optGetStrStr(self._opt, "SaveObfuscate")
|
|
2122
|
+
|
|
2123
|
+
def _set_saveobfuscate(self, value):
|
|
2124
|
+
optSetStrStr(self._opt, "SaveObfuscate", value)
|
|
2125
|
+
_saveobfuscate = property(_get_saveobfuscate, _set_saveobfuscate)
|
|
2126
|
+
|
|
2127
|
+
def get_savepoint(self):
|
|
2128
|
+
return optGetIntStr(self._opt, "SavePoint")
|
|
2129
|
+
|
|
2130
|
+
def set_savepoint(self, value):
|
|
2131
|
+
optSetIntStr(self._opt, "SavePoint", value)
|
|
2132
|
+
## @brief Save solver point in GDX file
|
|
2133
|
+
savepoint = property(get_savepoint, set_savepoint)
|
|
2134
|
+
|
|
2135
|
+
def _get_scrdir(self):
|
|
2136
|
+
return optGetStrStr(self._opt, "ScrDir")
|
|
2137
|
+
|
|
2138
|
+
def _set_scrdir(self, value):
|
|
2139
|
+
optSetStrStr(self._opt, "ScrDir", value)
|
|
2140
|
+
_scrdir = property(_get_scrdir, _set_scrdir)
|
|
2141
|
+
|
|
2142
|
+
def _get_scrext(self):
|
|
2143
|
+
return optGetStrStr(self._opt, "ScrExt")
|
|
2144
|
+
|
|
2145
|
+
def _set_scrext(self, value):
|
|
2146
|
+
optSetStrStr(self._opt, "ScrExt", value)
|
|
2147
|
+
_scrext = property(_get_scrext, _set_scrext)
|
|
2148
|
+
|
|
2149
|
+
def get_scriptexit(self):
|
|
2150
|
+
return optGetStrStr(self._opt, "ScriptExit")
|
|
2151
|
+
|
|
2152
|
+
def set_scriptexit(self, value):
|
|
2153
|
+
optSetStrStr(self._opt, "ScriptExit", value)
|
|
2154
|
+
## @brief Program or script to be executed at the end of a GAMS run
|
|
2155
|
+
scriptexit = property(get_scriptexit, set_scriptexit)
|
|
2156
|
+
|
|
2157
|
+
def _get_scriptfrst(self):
|
|
2158
|
+
return optGetStrStr(self._opt, "ScriptFrst")
|
|
2159
|
+
|
|
2160
|
+
def _set_scriptfrst(self, value):
|
|
2161
|
+
optSetStrStr(self._opt, "ScriptFrst", value)
|
|
2162
|
+
_scriptfrst = property(_get_scriptfrst, _set_scriptfrst)
|
|
2163
|
+
|
|
2164
|
+
def _get_scriptnext(self):
|
|
2165
|
+
return optGetStrStr(self._opt, "ScriptNext")
|
|
2166
|
+
|
|
2167
|
+
def _set_scriptnext(self, value):
|
|
2168
|
+
optSetStrStr(self._opt, "ScriptNext", value)
|
|
2169
|
+
_scriptnext = property(_get_scriptnext, _set_scriptnext)
|
|
2170
|
+
|
|
2171
|
+
def _get_scrnam(self):
|
|
2172
|
+
return optGetStrStr(self._opt, "ScrNam")
|
|
2173
|
+
|
|
2174
|
+
def _set_scrnam(self, value):
|
|
2175
|
+
optSetStrStr(self._opt, "ScrNam", value)
|
|
2176
|
+
_scrnam = property(_get_scrnam, _set_scrnam)
|
|
2177
|
+
|
|
2178
|
+
def get_seed(self):
|
|
2179
|
+
return optGetIntStr(self._opt, "Seed")
|
|
2180
|
+
|
|
2181
|
+
def set_seed(self, value):
|
|
2182
|
+
optSetIntStr(self._opt, "Seed", value)
|
|
2183
|
+
## @brief Random number seed
|
|
2184
|
+
seed = property(get_seed, set_seed)
|
|
2185
|
+
|
|
2186
|
+
def _get_serverrun(self):
|
|
2187
|
+
return optGetIntStr(self._opt, "ServerRun")
|
|
2188
|
+
|
|
2189
|
+
def _set_serverrun(self, value):
|
|
2190
|
+
optSetIntStr(self._opt, "ServerRun", value)
|
|
2191
|
+
_serverrun = property(_get_serverrun, _set_serverrun)
|
|
2192
|
+
|
|
2193
|
+
def get_showosmemory(self):
|
|
2194
|
+
return optGetIntStr(self._opt, "ShowOSMemory")
|
|
2195
|
+
|
|
2196
|
+
def set_showosmemory(self, value):
|
|
2197
|
+
optSetIntStr(self._opt, "ShowOSMemory", value)
|
|
2198
|
+
## @brief Show the memory usage reported by the Operating System instead of the internal counting
|
|
2199
|
+
showosmemory = property(get_showosmemory, set_showosmemory)
|
|
2200
|
+
|
|
2201
|
+
def get_solprint(self):
|
|
2202
|
+
return optGetIntStr(self._opt, "SolPrint")
|
|
2203
|
+
|
|
2204
|
+
def set_solprint(self, value):
|
|
2205
|
+
optSetIntStr(self._opt, "SolPrint", value)
|
|
2206
|
+
## @brief Solution report print option
|
|
2207
|
+
solprint = property(get_solprint, set_solprint)
|
|
2208
|
+
|
|
2209
|
+
def get_solvelink(self):
|
|
2210
|
+
return optGetIntStr(self._opt, "SolveLink")
|
|
2211
|
+
|
|
2212
|
+
def set_solvelink(self, value):
|
|
2213
|
+
optSetIntStr(self._opt, "SolveLink", value)
|
|
2214
|
+
## @brief Solver link option
|
|
2215
|
+
solvelink = property(get_solvelink, set_solvelink)
|
|
2216
|
+
|
|
2217
|
+
def get_solveopt(self):
|
|
2218
|
+
return optGetIntStr(self._opt, "SolveOpt")
|
|
2219
|
+
|
|
2220
|
+
def set_solveopt(self, value):
|
|
2221
|
+
optSetIntStr(self._opt, "SolveOpt", value)
|
|
2222
|
+
## @brief Multiple solve management
|
|
2223
|
+
solveopt = property(get_solveopt, set_solveopt)
|
|
2224
|
+
|
|
2225
|
+
def _get_solver(self):
|
|
2226
|
+
return optGetStrStr(self._opt, "Solver")
|
|
2227
|
+
|
|
2228
|
+
def _set_solver(self, value):
|
|
2229
|
+
optSetStrStr(self._opt, "Solver", value)
|
|
2230
|
+
_solver = property(_get_solver, _set_solver)
|
|
2231
|
+
|
|
2232
|
+
def _get_solvercntr(self):
|
|
2233
|
+
return optGetStrStr(self._opt, "SolverCntr")
|
|
2234
|
+
|
|
2235
|
+
def _set_solvercntr(self, value):
|
|
2236
|
+
optSetStrStr(self._opt, "SolverCntr", value)
|
|
2237
|
+
_solvercntr = property(_get_solvercntr, _set_solvercntr)
|
|
2238
|
+
|
|
2239
|
+
def _get_solverdict(self):
|
|
2240
|
+
return optGetStrStr(self._opt, "SolverDict")
|
|
2241
|
+
|
|
2242
|
+
def _set_solverdict(self, value):
|
|
2243
|
+
optSetStrStr(self._opt, "SolverDict", value)
|
|
2244
|
+
_solverdict = property(_get_solverdict, _set_solverdict)
|
|
2245
|
+
|
|
2246
|
+
def _get_solverinst(self):
|
|
2247
|
+
return optGetStrStr(self._opt, "SolverInst")
|
|
2248
|
+
|
|
2249
|
+
def _set_solverinst(self, value):
|
|
2250
|
+
optSetStrStr(self._opt, "SolverInst", value)
|
|
2251
|
+
_solverinst = property(_get_solverinst, _set_solverinst)
|
|
2252
|
+
|
|
2253
|
+
def _get_solvermatr(self):
|
|
2254
|
+
return optGetStrStr(self._opt, "SolverMatr")
|
|
2255
|
+
|
|
2256
|
+
def _set_solvermatr(self, value):
|
|
2257
|
+
optSetStrStr(self._opt, "SolverMatr", value)
|
|
2258
|
+
_solvermatr = property(_get_solvermatr, _set_solvermatr)
|
|
2259
|
+
|
|
2260
|
+
def _get_solversolu(self):
|
|
2261
|
+
return optGetStrStr(self._opt, "SolverSolu")
|
|
2262
|
+
|
|
2263
|
+
def _set_solversolu(self, value):
|
|
2264
|
+
optSetStrStr(self._opt, "SolverSolu", value)
|
|
2265
|
+
_solversolu = property(_get_solversolu, _set_solversolu)
|
|
2266
|
+
|
|
2267
|
+
def _get_solverstat(self):
|
|
2268
|
+
return optGetStrStr(self._opt, "SolverStat")
|
|
2269
|
+
|
|
2270
|
+
def _set_solverstat(self, value):
|
|
2271
|
+
optSetStrStr(self._opt, "SolverStat", value)
|
|
2272
|
+
_solverstat = property(_get_solverstat, _set_solverstat)
|
|
2273
|
+
|
|
2274
|
+
def _get_sparserun(self):
|
|
2275
|
+
return optGetStrStr(self._opt, "SparseRun")
|
|
2276
|
+
|
|
2277
|
+
def _set_sparserun(self, value):
|
|
2278
|
+
optSetStrStr(self._opt, "SparseRun", value)
|
|
2279
|
+
_sparserun = property(_get_sparserun, _set_sparserun)
|
|
2280
|
+
|
|
2281
|
+
def _get_sqacmex(self):
|
|
2282
|
+
return optGetStrStr(self._opt, "SqaCmex")
|
|
2283
|
+
|
|
2284
|
+
def _set_sqacmex(self, value):
|
|
2285
|
+
optSetStrStr(self._opt, "SqaCmex", value)
|
|
2286
|
+
_sqacmex = property(_get_sqacmex, _set_sqacmex)
|
|
2287
|
+
|
|
2288
|
+
def get_stepsum(self):
|
|
2289
|
+
return optGetIntStr(self._opt, "StepSum")
|
|
2290
|
+
|
|
2291
|
+
def set_stepsum(self, value):
|
|
2292
|
+
optSetIntStr(self._opt, "StepSum", value)
|
|
2293
|
+
## @brief Summary of computing resources used by job steps
|
|
2294
|
+
stepsum = property(get_stepsum, set_stepsum)
|
|
2295
|
+
|
|
2296
|
+
def get_strictsingleton(self):
|
|
2297
|
+
return optGetIntStr(self._opt, "strictSingleton")
|
|
2298
|
+
|
|
2299
|
+
def set_strictsingleton(self, value):
|
|
2300
|
+
optSetIntStr(self._opt, "strictSingleton", value)
|
|
2301
|
+
## @brief Error if assignment to singleton set has multiple elements
|
|
2302
|
+
strictsingleton = property(get_strictsingleton, set_strictsingleton)
|
|
2303
|
+
|
|
2304
|
+
def get_stringchk(self):
|
|
2305
|
+
return optGetIntStr(self._opt, "StringChk")
|
|
2306
|
+
|
|
2307
|
+
def set_stringchk(self, value):
|
|
2308
|
+
optSetIntStr(self._opt, "StringChk", value)
|
|
2309
|
+
## @brief String substitution options
|
|
2310
|
+
stringchk = property(get_stringchk, set_stringchk)
|
|
2311
|
+
|
|
2312
|
+
def _get_subsys(self):
|
|
2313
|
+
return optGetStrStr(self._opt, "SubSys")
|
|
2314
|
+
|
|
2315
|
+
def _set_subsys(self, value):
|
|
2316
|
+
optSetStrStr(self._opt, "SubSys", value)
|
|
2317
|
+
_subsys = property(_get_subsys, _set_subsys)
|
|
2318
|
+
|
|
2319
|
+
def get_suffixdlvars(self):
|
|
2320
|
+
return optGetStrStr(self._opt, "SuffixDLVars")
|
|
2321
|
+
|
|
2322
|
+
def set_suffixdlvars(self, value):
|
|
2323
|
+
optSetStrStr(self._opt, "SuffixDLVars", value)
|
|
2324
|
+
## @brief Switch default for "$on/offSuffixDLVars"
|
|
2325
|
+
suffixdlvars = property(get_suffixdlvars, set_suffixdlvars)
|
|
2326
|
+
|
|
2327
|
+
def get_suffixalgebravars(self):
|
|
2328
|
+
return optGetStrStr(self._opt, "SuffixAlgebraVars")
|
|
2329
|
+
|
|
2330
|
+
def set_suffixalgebravars(self, value):
|
|
2331
|
+
optSetStrStr(self._opt, "SuffixAlgebraVars", value)
|
|
2332
|
+
## @brief Switch default for "$on/offSuffixAlgebraVars"
|
|
2333
|
+
suffixalgebravars = property(get_suffixalgebravars, set_suffixalgebravars)
|
|
2334
|
+
|
|
2335
|
+
def get_suppress(self):
|
|
2336
|
+
return optGetIntStr(self._opt, "Suppress")
|
|
2337
|
+
|
|
2338
|
+
def set_suppress(self, value):
|
|
2339
|
+
optSetIntStr(self._opt, "Suppress", value)
|
|
2340
|
+
## @brief Compiler listing option
|
|
2341
|
+
suppress = property(get_suppress, set_suppress)
|
|
2342
|
+
|
|
2343
|
+
def get_symbol(self):
|
|
2344
|
+
return optGetStrStr(self._opt, "Symbol")
|
|
2345
|
+
|
|
2346
|
+
def set_symbol(self, value):
|
|
2347
|
+
optSetStrStr(self._opt, "Symbol", value)
|
|
2348
|
+
## @brief Symbol table file
|
|
2349
|
+
symbol = property(get_symbol, set_symbol)
|
|
2350
|
+
|
|
2351
|
+
def get_symprefix(self):
|
|
2352
|
+
return optGetStrStr(self._opt, "SymPrefix")
|
|
2353
|
+
|
|
2354
|
+
def set_symprefix(self, value):
|
|
2355
|
+
optSetStrStr(self._opt, "SymPrefix", value)
|
|
2356
|
+
## @brief Prefix all symbols encountered during compilation by the specified string in work file
|
|
2357
|
+
symprefix = property(get_symprefix, set_symprefix)
|
|
2358
|
+
|
|
2359
|
+
def get_sys10(self):
|
|
2360
|
+
return optGetIntStr(self._opt, "Sys10")
|
|
2361
|
+
|
|
2362
|
+
def set_sys10(self, value):
|
|
2363
|
+
optSetIntStr(self._opt, "Sys10", value)
|
|
2364
|
+
## @brief Changes rpower to ipower when the exponent is constant and within 1e-12 of an integer
|
|
2365
|
+
sys10 = property(get_sys10, set_sys10)
|
|
2366
|
+
|
|
2367
|
+
def get_sys11(self):
|
|
2368
|
+
return optGetIntStr(self._opt, "Sys11")
|
|
2369
|
+
|
|
2370
|
+
def set_sys11(self, value):
|
|
2371
|
+
optSetIntStr(self._opt, "Sys11", value)
|
|
2372
|
+
## @brief Dynamic resorting if indices in assignment/data statements are not in natural order
|
|
2373
|
+
sys11 = property(get_sys11, set_sys11)
|
|
2374
|
+
|
|
2375
|
+
def get_sys12(self):
|
|
2376
|
+
return optGetIntStr(self._opt, "Sys12")
|
|
2377
|
+
|
|
2378
|
+
def set_sys12(self, value):
|
|
2379
|
+
optSetIntStr(self._opt, "Sys12", value)
|
|
2380
|
+
## @brief Pass model with generation errors to solver
|
|
2381
|
+
sys12 = property(get_sys12, set_sys12)
|
|
2382
|
+
|
|
2383
|
+
def _get_sys14(self):
|
|
2384
|
+
return optGetIntStr(self._opt, "Sys14")
|
|
2385
|
+
|
|
2386
|
+
def _set_sys14(self, value):
|
|
2387
|
+
optSetIntStr(self._opt, "Sys14", value)
|
|
2388
|
+
_sys14 = property(_get_sys14, _set_sys14)
|
|
2389
|
+
|
|
2390
|
+
def _get_sys15(self):
|
|
2391
|
+
return optGetIntStr(self._opt, "Sys15")
|
|
2392
|
+
|
|
2393
|
+
def _set_sys15(self, value):
|
|
2394
|
+
optSetIntStr(self._opt, "Sys15", value)
|
|
2395
|
+
_sys15 = property(_get_sys15, _set_sys15)
|
|
2396
|
+
|
|
2397
|
+
def _get_sys16(self):
|
|
2398
|
+
return optGetIntStr(self._opt, "Sys16")
|
|
2399
|
+
|
|
2400
|
+
def _set_sys16(self, value):
|
|
2401
|
+
optSetIntStr(self._opt, "Sys16", value)
|
|
2402
|
+
_sys16 = property(_get_sys16, _set_sys16)
|
|
2403
|
+
|
|
2404
|
+
def _get_sys17(self):
|
|
2405
|
+
return optGetIntStr(self._opt, "Sys17")
|
|
2406
|
+
|
|
2407
|
+
def _set_sys17(self, value):
|
|
2408
|
+
optSetIntStr(self._opt, "Sys17", value)
|
|
2409
|
+
_sys17 = property(_get_sys17, _set_sys17)
|
|
2410
|
+
|
|
2411
|
+
def _get_sys18(self):
|
|
2412
|
+
return optGetIntStr(self._opt, "Sys18")
|
|
2413
|
+
|
|
2414
|
+
def _set_sys18(self, value):
|
|
2415
|
+
optSetIntStr(self._opt, "Sys18", value)
|
|
2416
|
+
_sys18 = property(_get_sys18, _set_sys18)
|
|
2417
|
+
|
|
2418
|
+
def _get_sys19(self):
|
|
2419
|
+
return optGetIntStr(self._opt, "Sys19")
|
|
2420
|
+
|
|
2421
|
+
def _set_sys19(self, value):
|
|
2422
|
+
optSetIntStr(self._opt, "Sys19", value)
|
|
2423
|
+
_sys19 = property(_get_sys19, _set_sys19)
|
|
2424
|
+
|
|
2425
|
+
def _get_sysdir(self):
|
|
2426
|
+
return optGetStrStr(self._opt, "SysDir")
|
|
2427
|
+
|
|
2428
|
+
def _set_sysdir(self, value):
|
|
2429
|
+
optSetStrStr(self._opt, "SysDir", value)
|
|
2430
|
+
_sysdir = property(_get_sysdir, _set_sysdir)
|
|
2431
|
+
|
|
2432
|
+
def get_sysincdir(self):
|
|
2433
|
+
return optGetStrStr(self._opt, "SysIncDir")
|
|
2434
|
+
|
|
2435
|
+
def set_sysincdir(self, value):
|
|
2436
|
+
optSetStrStr(self._opt, "SysIncDir", value)
|
|
2437
|
+
## @brief SysInclude directory
|
|
2438
|
+
sysincdir = property(get_sysincdir, set_sysincdir)
|
|
2439
|
+
|
|
2440
|
+
def get_sysout(self):
|
|
2441
|
+
return optGetIntStr(self._opt, "SysOut")
|
|
2442
|
+
|
|
2443
|
+
def set_sysout(self, value):
|
|
2444
|
+
optSetIntStr(self._opt, "SysOut", value)
|
|
2445
|
+
## @brief Solver Status file reporting option
|
|
2446
|
+
sysout = property(get_sysout, set_sysout)
|
|
2447
|
+
|
|
2448
|
+
def get_tabin(self):
|
|
2449
|
+
return optGetIntStr(self._opt, "TabIn")
|
|
2450
|
+
|
|
2451
|
+
def set_tabin(self, value):
|
|
2452
|
+
optSetIntStr(self._opt, "TabIn", value)
|
|
2453
|
+
## @brief Tab spacing
|
|
2454
|
+
tabin = property(get_tabin, set_tabin)
|
|
2455
|
+
|
|
2456
|
+
def get_tformat(self):
|
|
2457
|
+
return optGetIntStr(self._opt, "TFormat")
|
|
2458
|
+
|
|
2459
|
+
def set_tformat(self, value):
|
|
2460
|
+
optSetIntStr(self._opt, "TFormat", value)
|
|
2461
|
+
## @brief Time format
|
|
2462
|
+
tformat = property(get_tformat, set_tformat)
|
|
2463
|
+
|
|
2464
|
+
def get_threads(self):
|
|
2465
|
+
return optGetIntStr(self._opt, "Threads")
|
|
2466
|
+
|
|
2467
|
+
def set_threads(self, value):
|
|
2468
|
+
optSetIntStr(self._opt, "Threads", value)
|
|
2469
|
+
## @brief Number of processors to be used by a solver
|
|
2470
|
+
threads = property(get_threads, set_threads)
|
|
2471
|
+
|
|
2472
|
+
def get_threadsasync(self):
|
|
2473
|
+
return optGetIntStr(self._opt, "ThreadsAsync")
|
|
2474
|
+
|
|
2475
|
+
def set_threadsasync(self, value):
|
|
2476
|
+
optSetIntStr(self._opt, "ThreadsAsync", value)
|
|
2477
|
+
## @brief Limit on number of threads to be used for asynchronous solves (solveLink=6)
|
|
2478
|
+
threadsasync = property(get_threadsasync, set_threadsasync)
|
|
2479
|
+
|
|
2480
|
+
def get_timer(self):
|
|
2481
|
+
return optGetIntStr(self._opt, "Timer")
|
|
2482
|
+
|
|
2483
|
+
def set_timer(self, value):
|
|
2484
|
+
optSetIntStr(self._opt, "Timer", value)
|
|
2485
|
+
## @brief Instruction timer threshold in milliseconds
|
|
2486
|
+
timer = property(get_timer, set_timer)
|
|
2487
|
+
|
|
2488
|
+
def get_trace(self):
|
|
2489
|
+
return optGetStrStr(self._opt, "Trace")
|
|
2490
|
+
|
|
2491
|
+
def set_trace(self, value):
|
|
2492
|
+
optSetStrStr(self._opt, "Trace", value)
|
|
2493
|
+
## @brief Trace file name
|
|
2494
|
+
trace = property(get_trace, set_trace)
|
|
2495
|
+
|
|
2496
|
+
def get_tracelevel(self):
|
|
2497
|
+
return optGetIntStr(self._opt, "TraceLevel")
|
|
2498
|
+
|
|
2499
|
+
def set_tracelevel(self, value):
|
|
2500
|
+
optSetIntStr(self._opt, "TraceLevel", value)
|
|
2501
|
+
## @brief Modelstat/Solvestat threshold used in conjunction with action=GT
|
|
2502
|
+
tracelevel = property(get_tracelevel, set_tracelevel)
|
|
2503
|
+
|
|
2504
|
+
def get_traceopt(self):
|
|
2505
|
+
return optGetIntStr(self._opt, "TraceOpt")
|
|
2506
|
+
|
|
2507
|
+
def set_traceopt(self, value):
|
|
2508
|
+
optSetIntStr(self._opt, "TraceOpt", value)
|
|
2509
|
+
## @brief Trace file format option
|
|
2510
|
+
traceopt = property(get_traceopt, set_traceopt)
|
|
2511
|
+
|
|
2512
|
+
def get_user1(self):
|
|
2513
|
+
return optGetStrStr(self._opt, "User1")
|
|
2514
|
+
|
|
2515
|
+
def set_user1(self, value):
|
|
2516
|
+
optSetStrStr(self._opt, "User1", value)
|
|
2517
|
+
## @brief User string N
|
|
2518
|
+
user1 = property(get_user1, set_user1)
|
|
2519
|
+
|
|
2520
|
+
def get_user2(self):
|
|
2521
|
+
return optGetStrStr(self._opt, "User2")
|
|
2522
|
+
|
|
2523
|
+
def set_user2(self, value):
|
|
2524
|
+
optSetStrStr(self._opt, "User2", value)
|
|
2525
|
+
## @brief User string N
|
|
2526
|
+
user2 = property(get_user2, set_user2)
|
|
2527
|
+
|
|
2528
|
+
def get_user3(self):
|
|
2529
|
+
return optGetStrStr(self._opt, "User3")
|
|
2530
|
+
|
|
2531
|
+
def set_user3(self, value):
|
|
2532
|
+
optSetStrStr(self._opt, "User3", value)
|
|
2533
|
+
## @brief User string N
|
|
2534
|
+
user3 = property(get_user3, set_user3)
|
|
2535
|
+
|
|
2536
|
+
def get_user4(self):
|
|
2537
|
+
return optGetStrStr(self._opt, "User4")
|
|
2538
|
+
|
|
2539
|
+
def set_user4(self, value):
|
|
2540
|
+
optSetStrStr(self._opt, "User4", value)
|
|
2541
|
+
## @brief User string N
|
|
2542
|
+
user4 = property(get_user4, set_user4)
|
|
2543
|
+
|
|
2544
|
+
def get_user5(self):
|
|
2545
|
+
return optGetStrStr(self._opt, "User5")
|
|
2546
|
+
|
|
2547
|
+
def set_user5(self, value):
|
|
2548
|
+
optSetStrStr(self._opt, "User5", value)
|
|
2549
|
+
## @brief User string N
|
|
2550
|
+
user5 = property(get_user5, set_user5)
|
|
2551
|
+
|
|
2552
|
+
def get_warnings(self):
|
|
2553
|
+
return optGetIntStr(self._opt, "Warnings")
|
|
2554
|
+
|
|
2555
|
+
def set_warnings(self, value):
|
|
2556
|
+
optSetIntStr(self._opt, "Warnings", value)
|
|
2557
|
+
## @brief Number of warnings permitted before a run terminates
|
|
2558
|
+
warnings = property(get_warnings, set_warnings)
|
|
2559
|
+
|
|
2560
|
+
def _get_workdir(self):
|
|
2561
|
+
return optGetStrStr(self._opt, "WorkDir")
|
|
2562
|
+
|
|
2563
|
+
def _set_workdir(self, value):
|
|
2564
|
+
optSetStrStr(self._opt, "WorkDir", value)
|
|
2565
|
+
_workdir = property(_get_workdir, _set_workdir)
|
|
2566
|
+
|
|
2567
|
+
def get_workfactor(self):
|
|
2568
|
+
return optGetDblStr(self._opt, "WorkFactor")
|
|
2569
|
+
|
|
2570
|
+
def set_workfactor(self, value):
|
|
2571
|
+
optSetDblStr(self._opt, "WorkFactor", value)
|
|
2572
|
+
## @brief Memory Estimate multiplier for some solvers
|
|
2573
|
+
workfactor = property(get_workfactor, set_workfactor)
|
|
2574
|
+
|
|
2575
|
+
def get_workspace(self):
|
|
2576
|
+
return optGetDblStr(self._opt, "WorkSpace")
|
|
2577
|
+
|
|
2578
|
+
def set_workspace(self, value):
|
|
2579
|
+
optSetDblStr(self._opt, "WorkSpace", value)
|
|
2580
|
+
## @brief Work space for some solvers in MB
|
|
2581
|
+
workspace = property(get_workspace, set_workspace)
|
|
2582
|
+
|
|
2583
|
+
def _get_writeoutput(self):
|
|
2584
|
+
return optGetIntStr(self._opt, "writeOutput")
|
|
2585
|
+
|
|
2586
|
+
def _set_writeoutput(self, value):
|
|
2587
|
+
optSetIntStr(self._opt, "writeOutput", value)
|
|
2588
|
+
_writeoutput = property(_get_writeoutput, _set_writeoutput)
|
|
2589
|
+
|
|
2590
|
+
def _get_xsave(self):
|
|
2591
|
+
return optGetStrStr(self._opt, "XSave")
|
|
2592
|
+
|
|
2593
|
+
def _set_xsave(self, value):
|
|
2594
|
+
optSetStrStr(self._opt, "XSave", value)
|
|
2595
|
+
_xsave = property(_get_xsave, _set_xsave)
|
|
2596
|
+
|
|
2597
|
+
def _get_xsaveobfuscate(self):
|
|
2598
|
+
return optGetStrStr(self._opt, "XSaveObfuscate")
|
|
2599
|
+
|
|
2600
|
+
def _set_xsaveobfuscate(self, value):
|
|
2601
|
+
optSetStrStr(self._opt, "XSaveObfuscate", value)
|
|
2602
|
+
_xsaveobfuscate = property(_get_xsaveobfuscate, _set_xsaveobfuscate)
|
|
2603
|
+
|
|
2604
|
+
def get_zerores(self):
|
|
2605
|
+
return optGetDblStr(self._opt, "ZeroRes")
|
|
2606
|
+
|
|
2607
|
+
def set_zerores(self, value):
|
|
2608
|
+
optSetDblStr(self._opt, "ZeroRes", value)
|
|
2609
|
+
## @brief The results of certain operations will be set to zero if abs(result) LE ZeroRes
|
|
2610
|
+
zerores = property(get_zerores, set_zerores)
|
|
2611
|
+
|
|
2612
|
+
def get_zeroresrep(self):
|
|
2613
|
+
return optGetIntStr(self._opt, "ZeroResRep")
|
|
2614
|
+
|
|
2615
|
+
def set_zeroresrep(self, value):
|
|
2616
|
+
optSetIntStr(self._opt, "ZeroResRep", value)
|
|
2617
|
+
## @brief Report underflow as a warning when abs(results) LE ZeroRes and result set to zero
|
|
2618
|
+
zeroresrep = property(get_zeroresrep, set_zeroresrep)
|
|
2619
|
+
|
|
2620
|
+
def _get_gdx(self):
|
|
2621
|
+
return optGetStrStr(self._opt, "GDX")
|
|
2622
|
+
|
|
2623
|
+
def _set_gdx(self, value):
|
|
2624
|
+
optSetStrStr(self._opt, "GDX", os.path.splitext(value)[0] + ".gdx")
|
|
2625
|
+
|
|
2626
|
+
gdx = property(_get_gdx, _set_gdx)
|
|
2627
|
+
|
|
2628
|
+
|
|
2629
|
+
def __init__(self, ws, opt_from=None, opt_file=None):
|
|
2630
|
+
"""
|
|
2631
|
+
@brief Constructor
|
|
2632
|
+
@param ws GamsWorkspace containing GamsOptions
|
|
2633
|
+
@param opt_from GamsOptions used to initialize the new object
|
|
2634
|
+
@param opt_file Parameter used to initialize the new objectfile
|
|
2635
|
+
"""
|
|
2636
|
+
|
|
2637
|
+
ws._debug_out("---- Entering GamsOptions constructor ----", 0)
|
|
2638
|
+
|
|
2639
|
+
## @brief GAMS Dash Options
|
|
2640
|
+
self.defines = {}
|
|
2641
|
+
self._selected_solvers = []
|
|
2642
|
+
self.idir = []
|
|
2643
|
+
self._opt = new_optHandle_tp()
|
|
2644
|
+
self._cfg = new_cfgHandle_tp()
|
|
2645
|
+
|
|
2646
|
+
self._workspace = ws
|
|
2647
|
+
|
|
2648
|
+
ret = optCreateD(self._opt, self._workspace._system_directory, GMS_SSSIZE)
|
|
2649
|
+
if not ret[0]:
|
|
2650
|
+
raise gams.control.workspace.GamsException(ret[1])
|
|
2651
|
+
def_file = self._workspace._system_directory + os.sep + "optgams.def"
|
|
2652
|
+
GamsOptions.optLock.acquire()
|
|
2653
|
+
rc = optReadDefinition(self._opt, def_file)
|
|
2654
|
+
GamsOptions.optLock.release()
|
|
2655
|
+
if rc:
|
|
2656
|
+
for i in range(1, optMessageCount(self._opt)):
|
|
2657
|
+
ret = optGetMessage(self._opt, i)
|
|
2658
|
+
raise gams.control.workspace.GamsException(
|
|
2659
|
+
"Problem reading definition file " + def_file
|
|
2660
|
+
)
|
|
2661
|
+
|
|
2662
|
+
ret = cfgCreateD(self._cfg, self._workspace._system_directory, GMS_SSSIZE)
|
|
2663
|
+
if not ret[0]:
|
|
2664
|
+
raise gams.control.workspace.GamsException(ret[1])
|
|
2665
|
+
if gams.control.workspace._is_win:
|
|
2666
|
+
conf_file = "gmscmpnt.txt"
|
|
2667
|
+
else:
|
|
2668
|
+
conf_file = "gmscmpun.txt"
|
|
2669
|
+
|
|
2670
|
+
if cfgReadConfigGUC(
|
|
2671
|
+
self._cfg,
|
|
2672
|
+
self._workspace._system_directory + os.sep + conf_file,
|
|
2673
|
+
self._workspace._system_directory
|
|
2674
|
+
):
|
|
2675
|
+
raise gams.control.workspace.GamsException(
|
|
2676
|
+
"Error reading config file"
|
|
2677
|
+
+ self._workspace._system_directory
|
|
2678
|
+
+ os.sep
|
|
2679
|
+
+ conf_file
|
|
2680
|
+
)
|
|
2681
|
+
|
|
2682
|
+
if opt_from:
|
|
2683
|
+
#TODO: mktemp is depricated, but mkstemp created a file and we don't want that
|
|
2684
|
+
pf_file_name = tempfile.mktemp(
|
|
2685
|
+
prefix=self._workspace.scratch_file_prefix,
|
|
2686
|
+
dir=self._workspace._working_directory,
|
|
2687
|
+
)
|
|
2688
|
+
optWriteParameterFile(opt_from._opt, pf_file_name)
|
|
2689
|
+
optReadParameterFile(self._opt, pf_file_name)
|
|
2690
|
+
|
|
2691
|
+
#Copy special options
|
|
2692
|
+
for s in opt_from.idir:
|
|
2693
|
+
self.idir.append(s)
|
|
2694
|
+
for s in opt_from._selected_solvers:
|
|
2695
|
+
self._selected_solvers.append(s)
|
|
2696
|
+
for k, v in iter(opt_from.defines.items()):
|
|
2697
|
+
self.defines[k] = v
|
|
2698
|
+
|
|
2699
|
+
if self._workspace._debug < gams.control.workspace.DebugLevel.KeepFiles:
|
|
2700
|
+
try:
|
|
2701
|
+
os.remove(pf_file_name)
|
|
2702
|
+
except:
|
|
2703
|
+
pass
|
|
2704
|
+
|
|
2705
|
+
elif opt_file:
|
|
2706
|
+
if not os.path.isabs(opt_file):
|
|
2707
|
+
opt_file = os.path.join(self._workspace._working_directory, opt_file)
|
|
2708
|
+
if 0 != optReadParameterFile(self._opt, opt_file):
|
|
2709
|
+
msg_list = []
|
|
2710
|
+
for i in range(1, optMessageCount(self._opt) + 1):
|
|
2711
|
+
msg_list.append(optGetMessage(self._opt, i)[0])
|
|
2712
|
+
msg = "\n".join(msg_list)
|
|
2713
|
+
raise gams.control.workspace.GamsException(
|
|
2714
|
+
f"Problem reading parameter file {opt_file}:\n{msg}"
|
|
2715
|
+
)
|
|
2716
|
+
|
|
2717
|
+
for i in range(1,41):
|
|
2718
|
+
if optGetDefinedStr(self._opt, "InputDir" + str(i)):
|
|
2719
|
+
self.idir.append(optGetStrStr(self._opt, "InputDir" + str(i)))
|
|
2720
|
+
|
|
2721
|
+
key = ""
|
|
2722
|
+
val = ""
|
|
2723
|
+
ret = optGetFromAnyStrList(self._opt, 1)
|
|
2724
|
+
while 0 != ret[0]:
|
|
2725
|
+
key = ret[1]
|
|
2726
|
+
val = ret[2]
|
|
2727
|
+
if key.startswith("--"):
|
|
2728
|
+
key = key[2:]
|
|
2729
|
+
self.defines[key] = val
|
|
2730
|
+
ret = optGetFromAnyStrList(self._opt, 1)
|
|
2731
|
+
|
|
2732
|
+
# No clue what to do about SolverOptions
|
|
2733
|
+
|
|
2734
|
+
self._selected_solvers.append("") # gmoProc_none
|
|
2735
|
+
for i in range(1, gmoProc_nrofmodeltypes):
|
|
2736
|
+
self._selected_solvers.append(
|
|
2737
|
+
cfgAlgName(self._cfg, cfgDefaultAlg(self._cfg, i))
|
|
2738
|
+
)
|
|
2739
|
+
|
|
2740
|
+
for i in range(1, gmoProc_nrofmodeltypes):
|
|
2741
|
+
if optGetDefinedStr(self._opt, cfgModelTypeName(self._cfg, i)):
|
|
2742
|
+
self._selected_solvers[i] = optGetStrStr(
|
|
2743
|
+
self._opt, cfgModelTypeName(self._cfg,i)
|
|
2744
|
+
)
|
|
2745
|
+
|
|
2746
|
+
else:
|
|
2747
|
+
self._selected_solvers.append("") # gmoProc_none
|
|
2748
|
+
for i in range(1, gmoProc_nrofmodeltypes):
|
|
2749
|
+
self._selected_solvers.append(
|
|
2750
|
+
cfgAlgName(self._cfg, cfgDefaultAlg(self._cfg, i))
|
|
2751
|
+
)
|
|
2752
|
+
|
|
2753
|
+
|
|
2754
|
+
def export(self, file_path):
|
|
2755
|
+
"""
|
|
2756
|
+
@brief Write GamsOptions into a parameter file
|
|
2757
|
+
@param file_path The path used to write the parameter file. A relative path is relative to the GAMS working directory.
|
|
2758
|
+
"""
|
|
2759
|
+
|
|
2760
|
+
if os.path.isabs(file_path):
|
|
2761
|
+
optWriteParameterFile(self._opt, file_path)
|
|
2762
|
+
else:
|
|
2763
|
+
file_path = os.path.join(self._workspace._working_directory, file_path)
|
|
2764
|
+
optWriteParameterFile(self._opt, file_path)
|
|
2765
|
+
file = open(file_path, "a")
|
|
2766
|
+
file.write("EolOnly=1" + "\n")
|
|
2767
|
+
if len(self.idir) > 0:
|
|
2768
|
+
if len(self.idir) > 40:
|
|
2769
|
+
raise gams.control.workspace.GamsException(
|
|
2770
|
+
"Cannot handle more than 40 IDirs"
|
|
2771
|
+
)
|
|
2772
|
+
for i in range(1, len(self.idir)):
|
|
2773
|
+
file.write("InputDir" + str(i) + "=" + self.idir[i-1] + "\n")
|
|
2774
|
+
|
|
2775
|
+
# SolverOptions ???
|
|
2776
|
+
for i in range(1, gmoProc_nrofmodeltypes):
|
|
2777
|
+
file.write(
|
|
2778
|
+
cfgModelTypeName(self._cfg, i) + "=" + self._selected_solvers[i] + "\n"
|
|
2779
|
+
)
|
|
2780
|
+
|
|
2781
|
+
if len(self.defines) > 0:
|
|
2782
|
+
for k,v in self.defines:
|
|
2783
|
+
file.write("--" + k + "=" + v + "\n")
|
|
2784
|
+
file.close()
|
|
2785
|
+
|
|
2786
|
+
def __del__(self):
|
|
2787
|
+
self._workspace._debug_out("---- Entering GamsOptions destructor ----", 0)
|
|
2788
|
+
if self._opt != None:
|
|
2789
|
+
optFree(self._opt)
|
|
2790
|
+
if self._cfg != None:
|
|
2791
|
+
cfgFree(self._cfg)
|
|
2792
|
+
|