Change log

The last version is 0.0.13. We are still in beta, a first official release will follow.
The changelog is given below.

Version 0.0.13

  • The algorithm for repairing an externally provided solution is now deterministic.

Version 0.0.12

  • Externally provided solutions (switch settings) can now be correctly evaluated even if the
    network is not fully connected and acyclic, as long as the disconnected components have zero power
  • Externally provided solutions that are not connected, not acyclic, or using invalid transformer
    modes can now be repaired by making a POST request to “/api/session/{sessionId}/solutions/{solutionId}/repair/{newId}”.

Version 0.0.11

  • Extended the server’s expiration date to 2021-10-01.

Version 0.0.10

  • Several HTTP API addresses have been modified to better match REST API conventions:
  • GET start/stopOptimization -> PUT runOptimization
  • POST setObjectiveWeights -> PUT objectiveWeights
  • GET getDemands -> GET demands
  • The server now handles multiple loaded networks and actions and queries on networks are located on
    paths starting with “/networks/{id}/”, where {id} is a unique network ID string.
  • The JSON input format for networks now requires all lines to contain a unique ID string property. The JSON output
    format for flow calculations (OutgoingCurrent and OutgoingPower) now includes references to these lines to
    disambiguate when several lines connect the same nodes.
  • Networks can be uploaded to the server even if no valid radial configuration is possible. Diagnostic information
    about connectivity issues is available from the address “/networks/{id}/connectivityStatus”, which returns data
    formatted according to a new JSON data constract NetworkConnectivityStatus. A human-readable analysis text including
    more details from the connectivity analysis, and also network size statistics, is available at
  • Minor modification to the SolutionInfo and related data contracts, to make the style consistent with the rest of the
  • It is now possible to add solutions (network configurations) to a session and have the service evaluate their
    quality. The Session now always contains a solution with ID “best”, which is the best solution aquired through
    optimization. If any of the uploaded solutions are better than the optimized “best” solution, optimization will use
    the best uploaded solution as starting configuration for the optimization. Before any optimization has happened, the
    “best” solution will not be feasible, or even radial.
  • The optimization procedure can now correctly handle transformers that do not have a complete set of modes, for
    example a three-winding transformer where the modes only allow for one of the buses to be the upstream terminal.
  • Fixed bugs related to handling of multiple parallel zero impedance lines.
  • Fixed several bugs related to concurrent optimization sessions.
  • Improved error messages for cycle connectivity errors in networks.
  • Improved error messages for missing fields when loading networks from JSON files.
  • Improved performance of optimization local search procedure.

Version 0.0.9

  • Replaced the IMax constraint with an IMax objective (with high default weight), penalizing the total violation of
    IMax, summed over all lines.
  • Changed the choice of default search algorithm.
  • Bug fix in flows reporting.
  • Bug-fix in KILE calculations
  • Improvements in API documentation, including a new status label for returned flows. We now return flows also for
    infeasible solutions, if computing the flow is possible.
  • Various internal improvements in network aggregation logic and algorithms.

Version 0.0.8

  • Fixed bug that prevented the reporting of new solutions.
  • Updated the user manual on how to model providers that are three-winding transformers.
  • The PGO now also returns information about the least infeasible solution that was found (if no feasible solution is
    found), along with information about which constraints that are violated.
  • Added the ability to define fractional consumer types (for aggregations of consumers).
  • Made carious internal improvements related to network analysis, network aggregation, error messages on network
    parsing, and algorithms.

Version 0.0.7

  • Removed v_min and v_max from network level: Must now be specified per bus.
  • Added powerFlow call, giving users access to physical quantities estimated by the optimizer.
  • Accepting that power demands are not given for all consumers (using zero demand as default).

Version 0.0.6

  • Added a transformer model. Users can now spesify 2- and 3-coil transformers in the network, and the optimization will
    work with these.
  • Updated the documentation system/front page.
  • Updated the user manual.

Version 0.0.5

  • Bug fix in AnalyseNetwork, related to cycles and disconnected sub networks.

Version 0.0.4

  • Added line voltage limits
  • If a network contains isolated islands that cannot possibly be connected to a provider, this sub network is ignored
    in the calculations, and will have zero flow in returned solutions. The network analysis functionality will reveal if
    such isolated sub networks exists.
  • Removed CheckNetworkConsistency parameter from loadNetwork API call. analyzeNetwork must now be explicitly used
  • Renamed “coord” field of NodeContract to “coordinates” and changed it to take an array [x,y]

Version 0.0.3

  • Added logic for aggregating the network. This also handles several parallel non-switchable and non-breaker lines
    between any pair of buses.
  • Voltage limits constraints are now implemented to handle different provider voltages.
  • KILE cost is enabled.