mirror of https://gitlab.com/pamhyr/pamhyr2
SolverParameters: Add Scenario reference.
parent
ba4603e850
commit
4271fbb85f
|
|
@ -20,6 +20,7 @@ from copy import copy
|
|||
from tools import trace, timer
|
||||
from Solver.Solvers import solver_type_list
|
||||
|
||||
from Model.Scenario import Scenario
|
||||
from Model.Tools.PamhyrList import PamhyrModelList
|
||||
|
||||
|
||||
|
|
@ -80,13 +81,15 @@ class SolverParametersList(PamhyrModelList):
|
|||
|
||||
@classmethod
|
||||
def _db_create(cls, execute):
|
||||
execute("""
|
||||
execute(f"""
|
||||
CREATE TABLE solver_parameter(
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||
ind INTEGER NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
value TEXT NOT NULL,
|
||||
solver TEXT NOT NULL
|
||||
solver TEXT NOT NULL,
|
||||
{Scenario.create_db_add_scenario()},
|
||||
{Scenario.create_db_add_scenario_fk()}
|
||||
)
|
||||
""")
|
||||
|
||||
|
|
@ -97,7 +100,8 @@ class SolverParametersList(PamhyrModelList):
|
|||
major, minor, release = version.strip().split(".")
|
||||
|
||||
if major == minor == "0":
|
||||
if int(release) < 3:
|
||||
release = int(release)
|
||||
if release < 3:
|
||||
execute(
|
||||
"UPDATE solver_parameter SET name='mage_implicitation' " +
|
||||
"WHERE name='mage_implication'"
|
||||
|
|
@ -107,9 +111,34 @@ class SolverParametersList(PamhyrModelList):
|
|||
"WHERE name='mage_iter_type'"
|
||||
)
|
||||
|
||||
if int(release) < 4:
|
||||
def insert(name, value, ind):
|
||||
return execute(
|
||||
"INSERT INTO " +
|
||||
"solver_parameter(ind, name, value, solver) " +
|
||||
"VALUES (" +
|
||||
f"{ind}, " +
|
||||
f"'{cls._db_format(name)}', " +
|
||||
f"'{cls._db_format(value)}', " +
|
||||
f"'{cls._db_format(solver)}'" +
|
||||
")"
|
||||
)
|
||||
|
||||
if release < 4:
|
||||
cls._db_update_to_0_0_4(execute, insert)
|
||||
|
||||
if release < 7:
|
||||
cls._db_update_to_0_0_7(execute, insert)
|
||||
|
||||
if release < 14:
|
||||
cls._db_update_to_0_0_14(execute)
|
||||
|
||||
return cls._update_submodel(execute, version)
|
||||
|
||||
@classmethod
|
||||
def _db_update_to_0_0_4(cls, execute, insert):
|
||||
solvers = execute(
|
||||
"SELECT DISTINCT solver FROM solver_parameter")
|
||||
"SELECT DISTINCT solver FROM solver_parameter"
|
||||
)
|
||||
|
||||
for solver in solvers:
|
||||
if solver != "mage8":
|
||||
|
|
@ -125,24 +154,22 @@ class SolverParametersList(PamhyrModelList):
|
|||
f"WHERE solver = '{solver}'"
|
||||
)
|
||||
|
||||
def insert(name, value, ind): return execute(
|
||||
"INSERT INTO " +
|
||||
"solver_parameter(ind, name, value, solver) " +
|
||||
"VALUES (" +
|
||||
f"{ind}, " +
|
||||
f"'{cls._db_format(name)}', " +
|
||||
f"'{cls._db_format(value)}', " +
|
||||
f"'{cls._db_format(solver)}'" +
|
||||
")"
|
||||
)
|
||||
|
||||
ind = 0
|
||||
lst = []
|
||||
for v in data:
|
||||
insert(v[0], v[1], ind)
|
||||
ind += 1
|
||||
|
||||
if int(release) < 7:
|
||||
@classmethod
|
||||
def _db_update_to_0_0_7(cls, execute, insert):
|
||||
solvers = execute(
|
||||
"SELECT DISTINCT solver FROM solver_parameter"
|
||||
)
|
||||
|
||||
for solver in solvers:
|
||||
if solver != "mage8":
|
||||
continue
|
||||
|
||||
insert("mage_init_internal", "N", ind)
|
||||
ind += 1
|
||||
|
||||
|
|
@ -165,7 +192,9 @@ class SolverParametersList(PamhyrModelList):
|
|||
insert(v[0], v[1], ind)
|
||||
ind += 1
|
||||
|
||||
return cls._update_submodel(execute, version)
|
||||
@classmethod
|
||||
def _db_update_to_0_0_14(cls, execute):
|
||||
Scenario.update_db_add_scenario(execute, "solver_parameter")
|
||||
|
||||
@classmethod
|
||||
def _db_load(cls, execute, data=None):
|
||||
|
|
|
|||
Loading…
Reference in New Issue