Shyft release 4.26.14
Overview
Closes #864 (closed) #874 (closed) #876 (closed) #870 (closed) #877 (closed)
New reserve attributes to energy market model
- Nominal production, see #864 (closed) . Notice that this issue updates the stm storage model, so stm.hps, stm sys models needs to be regenerated from scratch, reading old 'blobs' will crash/fail. The current impl. is not automagic with bw compat serialisation(as pr. promise, we will not freeze and verison the stm family of models until early 2023). The change in the turbine-description, that might be used i the core models, is properly done with automagic reading old models and propagating max-prod to nom-prod as a very reasonable and safe default.
Fixes and improvements for the py expose of TimeAxis,time
Ref. to #874 (closed)
Types are now enforced, so a backward compatibility node for python scripters:
- Constructs like TimeAxis(t0,dt,n), where n= t0-t1/dt, e.g a float like div, then the quick fix(same as before) would be TimeAxis(t0,dt,int(n))
- Pickle support for time changed previously returning seconds as float, now ticks (us) int. This will break any persisted pickle stored time
- Pickle support for UtcTime, based on time, added (could replace existing workarounds in python code)
Fixes null_ts.extend(b) issue
As reported and well prepared by @ole.andreas.ramsdal , in issue #876 (closed)
Adds STM shop timeout/cancel control
Ref. to #870 (closed)
- New method exposed to DStmClient: kill_optimization(model_id) . Use to kill ongoing optimization immediately
- New variable exposed to ComputeNodeInfo: kill_count . If using dstm in master-slave mode, kill_count will keep count of how many times a compute node has been killed
- By providing shop_command::set_timelimit before start-cmds, the node will calculate a more accurate hard timeout. If no timelimit is provided, default timeout is 10 hours
- Note! A node kills itself by internally raising sigterm signal
Example valid usage of set_timelimit:
shop_commands= shop.ShopCommandList()
shop_commands.extend([
shop.ShopCommand.set_code_full(),
shop.ShopCommand.set_timelimit(60), # Timelimit must provided before start_sim
shop.ShopCommand.start_sim(3),
shop.ShopCommand.set_code_incremental(),
shop.ShopCommand.set_timelimit(30), # Timelimit must provided before new start_sim
shop.ShopCommand.start_sim(2)
])
The hard timeout is total_timelimit*1.5
. The 1.5 multiplier is used to allow shop to exit normally on its internal timeout if possible.
In the above example, the hard timeout is (603+302)*1.5 = 360
Resolve/enhance the user specified time-series attribute
Ref. to #877 (closed) This fix makes the user specified attribute more closely resemble native ts attributes.
Improved dstm/log
-
LogConfig now takes a file argument, and logs are then written to the specified file. -
Timestamp format is change to iso, eg. 2020-10-12T23:30:20.123456Z
...
Edited by Sigbjørn Helset