Pumps¶
This notebook is an example on how to use pumps with and without power plants. It contains an example on how to use revisions (unavailable capacity) on pumps and plants.
Unavailable capacity is set by attribute unavailable_capacity on Plant and Pump.
"unavailable_capacity": {
"timestamps": [
"2023-01-02T00:00:00Z",
"2024-06-01T00:00:00Z",
"2024-12-01T00:00:00Z"
],
"scenarios": [
[
170,
150,
0
]
]
}
Example plot for a plant with a pump:
No revisions:¶
No revisions set
Plant revision:¶
A substantial revision set on the power plant to reduce production. Max power production is down to ~45WM from ~150MW.
Pump and plant revisions:¶
Same revision on the plant.
Pump capacity is down to ~25MW, from ~100MW.
[1]:
import os
import numpy as np
from pyltmapi import LtmSession, LtmPlot, LtmDot
import pyltm
import json
import logging
logging.basicConfig(level=logging.INFO)
from pathlib import Path
ltm_core_path = os.environ.get("LTM_CORE_PATH", str(Path("~").expanduser().joinpath("ltm/release/bin/")))
license_file = os.environ.get("LTM_CORE_LICENSE_FILE", str(Path("~").expanduser().joinpath("ltm/ltm-license.dat")))
[2]:
from IPython.display import HTML, Image, display, display_markdown
ltmapi_version = LtmSession.version()
display(f"pyltm version {ltmapi_version}")
'pyltm version PyLTM version: 0.21.0'
[3]:
def usercallback(program_info, userdata):
# print(userdata)
# print(program_info)
print(os.environ)
return True
def generate_plots(ltm):
# Water values and price series
for busbar in ltm.model.busbars():
display_markdown(f"# Busbar: {busbar}", raw=True)
# Pumped energy
if (busbar.have_water_value_results()):
pumped_energy = busbar.sum_pumped_power()
LtmPlot.make_generic_plot(pumped_energy, f"sum_pumped_power '{busbar.name}'")
energy_pumping = busbar.sum_power_used_for_pumping()
LtmPlot.make_generic_plot(energy_pumping, f"sum_power_used_for_pumping '{busbar.name}'")
# Water values
if (busbar.have_water_value_results()):
LtmPlot.make_water_value_plot(busbar.water_value_results(), busbar.name)
# Market results
if (busbar.have_market_results()):
LtmPlot.make_market_results_plot(busbar.market_result_price(), busbar.name)
# Detailed hydro results from
for busbar in ltm.model.busbars():
display_markdown(f"## {busbar}", raw=True)
LtmDot.display_dot_image(busbar.build_connection_tree())
# Busbar reservoirs
for rsv in busbar.reservoirs():
display("Reservoir")
LtmPlot.make_generic_plot(rsv.reservoir(), f"Reservoir '{rsv.name}'")
LtmPlot.make_generic_plot(rsv.discharge(), f"Discharge '{rsv.name}'")
LtmPlot.make_generic_plot(rsv.inflow(), f"Inflow '{rsv.name}'")
LtmPlot.make_generic_plot(rsv.production(), f"Production '{rsv.name}'")
LtmPlot.make_generic_plot(rsv.bypass(), f"Bypass '{rsv.name}'")
LtmPlot.make_generic_plot(rsv.spill(), f"Spill '{rsv.name}'")
[4]:
def open_and_write_model(filename: str):
session = LtmSession("ikernel", ltm_core_path=ltm_core_path, overwrite_session=True)
session.set_execute_callback(usercallback, None)
# Explicitly set license file
session.model.global_settings.ltm_license_file_path = license_file
session.model.global_settings.simulation_type=pyltm.SimulationType.Parallel
with session:
try:
# Load model from file.
session.load(filename=filename)
# print(vars(session.model.global_settings))
session.model.global_settings.model_type = pyltm.ModelType.EMPS
print("EXTRA ENV")
print(session.model.global_settings.extra_environment)
# Write model to disk, and automatically generate an output directory.
session.write_model()
print(f"python pid: {os.getpid()}") # for debugging
session.dump_model("pump_dump")
# Display model graph
LtmDot.display_dot_image(session.build_connection_tree())
LtmDot.display_dot_image(session.build_busbar_graph())
# return
# Execute/run LTM/EMPS on the model
last_rc, results = session.execute_model()
# If last return code is not 0, then there was an error.
if last_rc != 0:
err = results[0]["log_file_contents"]
LtmDot.print(err)
else:
# Make plots from the results
generate_plots(session)
except Exception as e:
print(e)
raise(e)
[5]:
open_and_write_model("pumps.json")
INFO:LtmApiModel:(ikernel) Loading model from file: pumps.json
INFO:LtmApiModel:(ikernel) LtmApiModel::maybe_generate_output_dir: output_path: /builds/energy/ltm/pyltmapi/docs/ltm-api/guides/pumps/testout_pumps/2026-03-24-134214.951-EMPS-parallell
INFO:LtmApiModel:(ikernel) Using license file '/builds/energy/ltm/pyltmapi.tmp/CI_LTM_LICENSE_FILE'
INFO:LtmApiModel:(ikernel) Using license file '/builds/energy/ltm/pyltmapi.tmp/CI_LTM_LICENSE_FILE'
INFO:Validator:(ikernel) Model validation succeeded
INFO:LtmApiModel:(ikernel) Writing model to path /builds/energy/ltm/pyltmapi/docs/ltm-api/guides/pumps/testout_pumps/2026-03-24-134214.951-EMPS-parallell
INFO:Validator:(ikernel) Model validation succeeded
INFO:LtmApiModel:(ikernel) Not deleting output dir (/builds/energy/ltm/pyltmapi/docs/ltm-api/guides/pumps/testout_pumps/2026-03-24-134214.951-EMPS-parallell), as delete_output_dir: false, and has_generated_output_dir: true
EXTRA ENV
{}
python pid: 1195
INFO:LtmApiModel:(ikernel) Model executed successfully
environ({'AZURE_TENANT_ID': 'e1f00f39-6041-45b0-b309-e0210d8b32af', 'CI_DEFAULT_BRANCH_SLUG': 'main', 'CI_PROJECT_NAMESPACE': 'energy/ltm', 'GITLAB_USER_ID': '1175', 'CI_RUNNER_VERSION': '18.9.0', 'FF_SKIP_NOOP_BUILD_STAGES': 'true', 'PYTHON_SHA256': '2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593', 'FF_USE_INIT_WITH_DOCKER_EXECUTOR': 'false', 'CI_SERVER_NAME': 'GitLab', 'CI_RUNNER_DESCRIPTION': 'Dracula (New Structure)', 'GITLAB_USER_EMAIL': 'kent.fagerjord@sintef.no', 'CI_SERVER_REVISION': '95bf6656b5a', 'FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY': 'false', 'FF_ENABLE_JOB_INPUTS_INTERPOLATION': 'true', 'CI_PIPELINE_NAME': '', 'CI_RUNNER_EXECUTABLE_ARCH': 'linux/amd64', 'CI_REGISTRY_USER': 'gitlab-ci-token', 'CI_PROJECT_TOPICS': '', 'CI_REGISTRY_PASSWORD': 'glcbt-64_CJVSs9Cx3zus6wKophn7', 'CI_API_V4_URL': 'https://gitlab.sintef.no/api/v4', 'CI_RUNNER_SHORT_TOKEN': 'JyEmKqmhu', 'CI_JOB_NAME': 'run-notebooks', 'HOSTNAME': 'runner-jyemkqmhu-project-17576-concurrent-0', 'PYTHON_VERSION': '3.13.12', 'FF_USE_JOB_ROUTER': 'false', 'GITLAB_USER_LOGIN': 'kent.fagerjord', 'CI_PROJECT_NAME': 'pyltmapi', 'CI_PIPELINE_SOURCE': 'push', 'AZURE_RESOURCE_GROUP': 'rg-ltm-services-prod-001', 'CI_JOB_STATUS': 'running', 'CI_PIPELINE_ID': '1431946', 'FF_DISABLE_POWERSHELL_STDIN': 'false', 'CI_COMMIT_REF_SLUG': 'main', 'CI_SERVER': 'yes', 'FF_SET_PERMISSIONS_BEFORE_CLEANUP': 'true', 'CI_COMMIT_SHORT_SHA': '94fc0b30', 'CI_JOB_NAME_SLUG': 'run-notebooks', 'RUNNER_TEMP_PROJECT_DIR': '/builds/energy/ltm/pyltmapi.tmp', 'FF_USE_GIT_BUNDLE_URIS': 'true', 'LTM_CORE_LICENSE_FILE': '/builds/energy/ltm/pyltmapi.tmp/CI_LTM_LICENSE_FILE', 'LTM_CORE_PATH': '/builds/energy/ltm/pyltmapi/release/bin', 'PWD': '/builds/energy/ltm/pyltmapi', 'CI_RUNNER_TAGS': '["dracula", "standard-runner"]', 'CI_PROJECT_PATH': 'energy/ltm/pyltmapi', 'FF_HASH_CACHE_KEYS': 'false', 'FF_TIMESTAMPS': 'true', 'CI_PROJECT_NAMESPACE_SLUG': 'energy-ltm', 'FF_USE_NEW_BASH_EVAL_STRATEGY': 'false', 'FF_MASK_ALL_DEFAULT_TOKENS': 'true', 'CI_SERVER_TLS_CA_FILE': '/builds/energy/ltm/pyltmapi.tmp/CI_SERVER_TLS_CA_FILE', 'FF_USE_LEGACY_S3_CACHE_ADAPTER': 'false', 'FF_WAIT_FOR_POD_TO_BE_REACHABLE': 'false', 'CI_JOB_GROUP_NAME': 'run-notebooks', 'FF_DISABLE_UMASK_FOR_KUBERNETES_EXECUTOR': 'false', 'CI_COMMIT_REF_PROTECTED': 'true', 'FF_USE_POWERSHELL_PATH_RESOLVER': 'false', 'FF_USE_DOCKER_AUTOSCALER_DIAL_STDIO': 'true', 'CI_API_GRAPHQL_URL': 'https://gitlab.sintef.no/api/graphql', 'CI_SERVER_VERSION_MINOR': '9', 'HOME': '/root', 'CI_COMMIT_SHA': '94fc0b302c5d83c4570bcf5b8f71e473b811b456', 'FF_NETWORK_PER_BUILD': 'false', 'AZURE_SUBSCRIPTION_ID': 'ca09f311-ef95-4bf0-9d74-06d3ef864284', 'CI_JOB_TIMEOUT': '3600', 'CI_PROJECT_VISIBILITY': 'public', 'CI_CONCURRENT_PROJECT_ID': '0', 'FF_SCRIPT_SECTIONS': 'false', 'FF_USE_WINDOWS_JOB_OBJECT': 'false', 'CI_COMMIT_MESSAGE': 'Release 0.21.0\n', 'CI_SERVER_SHELL_SSH_PORT': '22', 'FF_DISABLE_AUTOMATIC_TOKEN_ROTATION': 'false', 'FF_USE_DIRECT_DOWNLOAD': 'true', 'CI_PAGES_DOMAIN': 'pages.sintef.no', 'FF_PRINT_POD_EVENTS': 'false', 'CI_SERVER_VERSION': '18.9.1', 'GPG_KEY': '7169605F62C751356D054A26A821E680E5FA6305', 'FF_USE_POD_ACTIVE_DEADLINE_SECONDS': 'true', 'CI_SERVER_PORT': '443', 'CI_REGISTRY': 'gitlab.sintef.no:5050', 'CI_PAGES_HOSTNAME': 'pyltmapi-energy-ltm-ee43c4867866949a64a049a71e80d37e5813f054428.pages.sintef.no', 'CI_PROJECT_NAMESPACE_ID': '21791', 'FF_TEST_FEATURE': 'false', 'CI_PAGES_URL': 'https://pyltmapi-energy-ltm-ee43c4867866949a64a049a71e80d37e5813f054428.pages.sintef.no', 'LTM_CORE_ACCESS_TOKEN': 'tiZowXqAD9FWRkGkPY4t', 'CI_PIPELINE_IID': '686', 'CI_REPOSITORY_URL': 'https://gitlab-ci-token:glcbt-64_CJVSs9Cx3zus6wKophn7@gitlab.sintef.no/energy/ltm/pyltmapi.git', 'CI_SERVER_URL': 'https://gitlab.sintef.no', 'FF_USE_FLEETING_ACQUIRE_HEARTBEATS': 'false', 'AZURE_CDN_PROFILE': 'cdn-profile-ltm-docs', 'FF_ENABLE_BASH_EXIT_CODE_CHECK': 'false', 'GITLAB_FEATURES': '', 'FF_USE_GITALY_CORRELATION_ID': 'true', 'CI_COMMIT_DESCRIPTION': '', 'FF_USE_ADVANCED_POD_SPEC_CONFIGURATION': 'false', 'CI_TEMPLATE_REGISTRY_HOST': 'registry.gitlab.com', 'CI_JOB_STAGE': 'test', 'CI_PIPELINE_URL': 'https://gitlab.sintef.no/energy/ltm/pyltmapi/-/pipelines/1431946', 'CI_DEFAULT_BRANCH': 'main', 'FF_EXPORT_HIGH_CARDINALITY_METRICS': 'false', 'FF_GIT_URLS_WITHOUT_TOKENS': 'false', 'GITLAB_ENV': '/builds/energy/ltm/pyltmapi.tmp/gitlab_runner_env', 'CI_SERVER_VERSION_PATCH': '1', 'CI_COMMIT_TITLE': 'Release 0.21.0', 'CI_SERVER_FQDN': 'gitlab.sintef.no', 'CI_PROJECT_ROOT_NAMESPACE': 'energy', 'FF_ENABLE_JOB_CLEANUP': 'false', 'FF_RESOLVE_FULL_TLS_CHAIN': 'false', 'PYLTM_PYPI_ACCESS_TOKEN': 'gldt-X63xfsB9hjyiq7P93_LB', 'GITLAB_USER_NAME': 'Kent Fagerjord', 'CI_PROJECT_DIR': '/builds/energy/ltm/pyltmapi', 'CI_JOB_STARTED_AT_SLUG': '2026-03-24t14-37-00-01-00', 'SHLVL': '2', 'CI_RUNNER_ID': '6047', 'CI_PIPELINE_CREATED_AT': '2026-03-24T14:35:49+01:00', 'CI_COMMIT_TIMESTAMP': '2026-03-24T13:55:40+01:00', 'CI_DISPOSABLE_ENVIRONMENT': 'true', 'CI_SERVER_SHELL_SSH_HOST': 'gitlab.sintef.no', 'CI_REGISTRY_IMAGE': 'gitlab.sintef.no:5050/energy/ltm/pyltmapi', 'AZURE_STORAGE_ACCOUNT': 'stltmdocs001', 'CI_SERVER_PROTOCOL': 'https', 'AZURE_CLIENT_ID': '39610142-972f-41cd-982a-4b7f3f0c00b6', 'FF_SCRIPT_TO_STEP_MIGRATION': 'false', 'CI_COMMIT_AUTHOR': 'Kent Fagerjord <kent.fagerjord@sintef.no>', 'FF_POSIXLY_CORRECT_ESCAPES': 'false', 'CI_COMMIT_REF_NAME': 'main', 'CI_SERVER_HOST': 'gitlab.sintef.no', 'FF_USE_DUMB_INIT_WITH_KUBERNETES_EXECUTOR': 'false', 'CI_JOB_URL': 'https://gitlab.sintef.no/energy/ltm/pyltmapi/-/jobs/2819963', 'CI_JOB_TOKEN': 'glcbt-64_CJVSs9Cx3zus6wKophn7', 'CI_CONCURRENT_ID': '0', 'CI_JOB_STARTED_AT': '2026-03-24T14:37:00+01:00', 'CI_PROJECT_DESCRIPTION': '', 'CI_COMMIT_BRANCH': 'main', 'FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY': 'false', 'CI_PROJECT_CLASSIFICATION_LABEL': '', 'CI_RUNNER_REVISION': '07e534ba', 'FF_KUBERNETES_HONOR_ENTRYPOINT': 'false', 'FF_CLEAN_UP_FAILED_CACHE_EXTRACT': 'false', 'FF_USE_DYNAMIC_TRACE_FORCE_SEND_INTERVAL': 'false', 'FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR': 'false', 'CI_PROJECT_PATH_SLUG': 'energy-ltm-pyltmapi', 'CI_NODE_TOTAL': '1', 'FF_USE_GIT_NATIVE_CLONE': 'false', 'FF_USE_ADAPTIVE_REQUEST_CONCURRENCY': 'true', 'CI_JOB_ID': '2819963', 'CI_BUILDS_DIR': '/builds', 'CI_PROJECT_REPOSITORY_LANGUAGES': 'python,shell', 'DOCKER_AUTH_CONFIG': '{\n "auths": {\n "gitlab.sintef.no:5050": {\n "auth": "Z2l0bGFiK2RlcGxveS10b2tlbi00Mjp6bU1NRFV6cXlNdXZFVnhuRi1hWg=="\n }\n }\n}', 'FF_LOG_IMAGES_CONFIGURED_FOR_JOB': 'false', 'PATH': '/builds/energy/ltm/pyltmapi/release/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'CI_PROJECT_ID': '17576', 'FF_SECRET_RESOLVING_FAILS_IF_MISSING': 'true', 'CI': 'true', 'GITLAB_CI': 'true', 'CI_JOB_IMAGE': 'python:3.13', 'CI_PROJECT_TITLE': 'pyltmapi', 'CI_COMMIT_BEFORE_SHA': '0670fb2ce558ddd5e024357248d8f85d2a5a80f4', 'AZURE_CDN_ENDPOINT': 'cdn-endpoint-ltm-docs', 'LTMAPI_ARTIFACT_TOKEN': 'yUk9SpAxyVESQVrz4umZ', 'CI_SERVER_VERSION_MAJOR': '18', 'FF_USE_EXPONENTIAL_BACKOFF_STAGE_RETRY': 'true', 'CI_CONFIG_PATH': '.gitlab-ci.yml', 'FF_USE_LEGACY_GCS_CACHE_ADAPTER': 'false', 'FF_USE_FASTZIP': 'false', 'PYPI_TOKEN': 'pypi-AgEIcHlwaS5vcmcCJDFhNjg4MmJhLWEzMTgtNGMzNi04ZGIwLTUzNGZiNDYyMDc2YwACEFsxLFsicHlsdG1hcGkiXV0AAixbMixbIjNlZDIxOTJhLTU5OGMtNDQyMy05ZjhkLWZhZDNiN2YwZTQzZCJdXQAABiDQc1OXGHWbFFYLecbHFMnzVVP6vTu4H47MhEzPpio1eQ', 'CI_COMMIT_MESSAGE_IS_TRUNCATED': 'false', 'CI_LTM_LICENSE_FILE': '/builds/energy/ltm/pyltmapi.tmp/CI_LTM_LICENSE_FILE', 'CI_PROJECT_URL': 'https://gitlab.sintef.no/energy/ltm/pyltmapi', 'OLDPWD': '/', '_': '/usr/local/bin/jupyter', 'LC_CTYPE': 'C.UTF-8', 'JPY_PARENT_PID': '371', 'PYDEVD_USE_FRAME_EVAL': 'NO', 'TERM': 'xterm-color', 'CLICOLOR': '1', 'FORCE_COLOR': '1', 'CLICOLOR_FORCE': '1', 'PAGER': 'cat', 'GIT_PAGER': 'cat', 'MPLBACKEND': 'module://matplotlib_inline.backend_inline'})
environ({'AZURE_TENANT_ID': 'e1f00f39-6041-45b0-b309-e0210d8b32af', 'CI_DEFAULT_BRANCH_SLUG': 'main', 'CI_PROJECT_NAMESPACE': 'energy/ltm', 'GITLAB_USER_ID': '1175', 'CI_RUNNER_VERSION': '18.9.0', 'FF_SKIP_NOOP_BUILD_STAGES': 'true', 'PYTHON_SHA256': '2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593', 'FF_USE_INIT_WITH_DOCKER_EXECUTOR': 'false', 'CI_SERVER_NAME': 'GitLab', 'CI_RUNNER_DESCRIPTION': 'Dracula (New Structure)', 'GITLAB_USER_EMAIL': 'kent.fagerjord@sintef.no', 'CI_SERVER_REVISION': '95bf6656b5a', 'FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY': 'false', 'FF_ENABLE_JOB_INPUTS_INTERPOLATION': 'true', 'CI_PIPELINE_NAME': '', 'CI_RUNNER_EXECUTABLE_ARCH': 'linux/amd64', 'CI_REGISTRY_USER': 'gitlab-ci-token', 'CI_PROJECT_TOPICS': '', 'CI_REGISTRY_PASSWORD': 'glcbt-64_CJVSs9Cx3zus6wKophn7', 'CI_API_V4_URL': 'https://gitlab.sintef.no/api/v4', 'CI_RUNNER_SHORT_TOKEN': 'JyEmKqmhu', 'CI_JOB_NAME': 'run-notebooks', 'HOSTNAME': 'runner-jyemkqmhu-project-17576-concurrent-0', 'PYTHON_VERSION': '3.13.12', 'FF_USE_JOB_ROUTER': 'false', 'GITLAB_USER_LOGIN': 'kent.fagerjord', 'CI_PROJECT_NAME': 'pyltmapi', 'CI_PIPELINE_SOURCE': 'push', 'AZURE_RESOURCE_GROUP': 'rg-ltm-services-prod-001', 'CI_JOB_STATUS': 'running', 'CI_PIPELINE_ID': '1431946', 'FF_DISABLE_POWERSHELL_STDIN': 'false', 'CI_COMMIT_REF_SLUG': 'main', 'CI_SERVER': 'yes', 'FF_SET_PERMISSIONS_BEFORE_CLEANUP': 'true', 'CI_COMMIT_SHORT_SHA': '94fc0b30', 'CI_JOB_NAME_SLUG': 'run-notebooks', 'RUNNER_TEMP_PROJECT_DIR': '/builds/energy/ltm/pyltmapi.tmp', 'FF_USE_GIT_BUNDLE_URIS': 'true', 'LTM_CORE_LICENSE_FILE': '/builds/energy/ltm/pyltmapi.tmp/CI_LTM_LICENSE_FILE', 'LTM_CORE_PATH': '/builds/energy/ltm/pyltmapi/release/bin', 'PWD': '/builds/energy/ltm/pyltmapi', 'CI_RUNNER_TAGS': '["dracula", "standard-runner"]', 'CI_PROJECT_PATH': 'energy/ltm/pyltmapi', 'FF_HASH_CACHE_KEYS': 'false', 'FF_TIMESTAMPS': 'true', 'CI_PROJECT_NAMESPACE_SLUG': 'energy-ltm', 'FF_USE_NEW_BASH_EVAL_STRATEGY': 'false', 'FF_MASK_ALL_DEFAULT_TOKENS': 'true', 'CI_SERVER_TLS_CA_FILE': '/builds/energy/ltm/pyltmapi.tmp/CI_SERVER_TLS_CA_FILE', 'FF_USE_LEGACY_S3_CACHE_ADAPTER': 'false', 'FF_WAIT_FOR_POD_TO_BE_REACHABLE': 'false', 'CI_JOB_GROUP_NAME': 'run-notebooks', 'FF_DISABLE_UMASK_FOR_KUBERNETES_EXECUTOR': 'false', 'CI_COMMIT_REF_PROTECTED': 'true', 'FF_USE_POWERSHELL_PATH_RESOLVER': 'false', 'FF_USE_DOCKER_AUTOSCALER_DIAL_STDIO': 'true', 'CI_API_GRAPHQL_URL': 'https://gitlab.sintef.no/api/graphql', 'CI_SERVER_VERSION_MINOR': '9', 'HOME': '/root', 'CI_COMMIT_SHA': '94fc0b302c5d83c4570bcf5b8f71e473b811b456', 'FF_NETWORK_PER_BUILD': 'false', 'AZURE_SUBSCRIPTION_ID': 'ca09f311-ef95-4bf0-9d74-06d3ef864284', 'CI_JOB_TIMEOUT': '3600', 'CI_PROJECT_VISIBILITY': 'public', 'CI_CONCURRENT_PROJECT_ID': '0', 'FF_SCRIPT_SECTIONS': 'false', 'FF_USE_WINDOWS_JOB_OBJECT': 'false', 'CI_COMMIT_MESSAGE': 'Release 0.21.0\n', 'CI_SERVER_SHELL_SSH_PORT': '22', 'FF_DISABLE_AUTOMATIC_TOKEN_ROTATION': 'false', 'FF_USE_DIRECT_DOWNLOAD': 'true', 'CI_PAGES_DOMAIN': 'pages.sintef.no', 'FF_PRINT_POD_EVENTS': 'false', 'CI_SERVER_VERSION': '18.9.1', 'GPG_KEY': '7169605F62C751356D054A26A821E680E5FA6305', 'FF_USE_POD_ACTIVE_DEADLINE_SECONDS': 'true', 'CI_SERVER_PORT': '443', 'CI_REGISTRY': 'gitlab.sintef.no:5050', 'CI_PAGES_HOSTNAME': 'pyltmapi-energy-ltm-ee43c4867866949a64a049a71e80d37e5813f054428.pages.sintef.no', 'CI_PROJECT_NAMESPACE_ID': '21791', 'FF_TEST_FEATURE': 'false', 'CI_PAGES_URL': 'https://pyltmapi-energy-ltm-ee43c4867866949a64a049a71e80d37e5813f054428.pages.sintef.no', 'LTM_CORE_ACCESS_TOKEN': 'tiZowXqAD9FWRkGkPY4t', 'CI_PIPELINE_IID': '686', 'CI_REPOSITORY_URL': 'https://gitlab-ci-token:glcbt-64_CJVSs9Cx3zus6wKophn7@gitlab.sintef.no/energy/ltm/pyltmapi.git', 'CI_SERVER_URL': 'https://gitlab.sintef.no', 'FF_USE_FLEETING_ACQUIRE_HEARTBEATS': 'false', 'AZURE_CDN_PROFILE': 'cdn-profile-ltm-docs', 'FF_ENABLE_BASH_EXIT_CODE_CHECK': 'false', 'GITLAB_FEATURES': '', 'FF_USE_GITALY_CORRELATION_ID': 'true', 'CI_COMMIT_DESCRIPTION': '', 'FF_USE_ADVANCED_POD_SPEC_CONFIGURATION': 'false', 'CI_TEMPLATE_REGISTRY_HOST': 'registry.gitlab.com', 'CI_JOB_STAGE': 'test', 'CI_PIPELINE_URL': 'https://gitlab.sintef.no/energy/ltm/pyltmapi/-/pipelines/1431946', 'CI_DEFAULT_BRANCH': 'main', 'FF_EXPORT_HIGH_CARDINALITY_METRICS': 'false', 'FF_GIT_URLS_WITHOUT_TOKENS': 'false', 'GITLAB_ENV': '/builds/energy/ltm/pyltmapi.tmp/gitlab_runner_env', 'CI_SERVER_VERSION_PATCH': '1', 'CI_COMMIT_TITLE': 'Release 0.21.0', 'CI_SERVER_FQDN': 'gitlab.sintef.no', 'CI_PROJECT_ROOT_NAMESPACE': 'energy', 'FF_ENABLE_JOB_CLEANUP': 'false', 'FF_RESOLVE_FULL_TLS_CHAIN': 'false', 'PYLTM_PYPI_ACCESS_TOKEN': 'gldt-X63xfsB9hjyiq7P93_LB', 'GITLAB_USER_NAME': 'Kent Fagerjord', 'CI_PROJECT_DIR': '/builds/energy/ltm/pyltmapi', 'CI_JOB_STARTED_AT_SLUG': '2026-03-24t14-37-00-01-00', 'SHLVL': '2', 'CI_RUNNER_ID': '6047', 'CI_PIPELINE_CREATED_AT': '2026-03-24T14:35:49+01:00', 'CI_COMMIT_TIMESTAMP': '2026-03-24T13:55:40+01:00', 'CI_DISPOSABLE_ENVIRONMENT': 'true', 'CI_SERVER_SHELL_SSH_HOST': 'gitlab.sintef.no', 'CI_REGISTRY_IMAGE': 'gitlab.sintef.no:5050/energy/ltm/pyltmapi', 'AZURE_STORAGE_ACCOUNT': 'stltmdocs001', 'CI_SERVER_PROTOCOL': 'https', 'AZURE_CLIENT_ID': '39610142-972f-41cd-982a-4b7f3f0c00b6', 'FF_SCRIPT_TO_STEP_MIGRATION': 'false', 'CI_COMMIT_AUTHOR': 'Kent Fagerjord <kent.fagerjord@sintef.no>', 'FF_POSIXLY_CORRECT_ESCAPES': 'false', 'CI_COMMIT_REF_NAME': 'main', 'CI_SERVER_HOST': 'gitlab.sintef.no', 'FF_USE_DUMB_INIT_WITH_KUBERNETES_EXECUTOR': 'false', 'CI_JOB_URL': 'https://gitlab.sintef.no/energy/ltm/pyltmapi/-/jobs/2819963', 'CI_JOB_TOKEN': 'glcbt-64_CJVSs9Cx3zus6wKophn7', 'CI_CONCURRENT_ID': '0', 'CI_JOB_STARTED_AT': '2026-03-24T14:37:00+01:00', 'CI_PROJECT_DESCRIPTION': '', 'CI_COMMIT_BRANCH': 'main', 'FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY': 'false', 'CI_PROJECT_CLASSIFICATION_LABEL': '', 'CI_RUNNER_REVISION': '07e534ba', 'FF_KUBERNETES_HONOR_ENTRYPOINT': 'false', 'FF_CLEAN_UP_FAILED_CACHE_EXTRACT': 'false', 'FF_USE_DYNAMIC_TRACE_FORCE_SEND_INTERVAL': 'false', 'FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR': 'false', 'CI_PROJECT_PATH_SLUG': 'energy-ltm-pyltmapi', 'CI_NODE_TOTAL': '1', 'FF_USE_GIT_NATIVE_CLONE': 'false', 'FF_USE_ADAPTIVE_REQUEST_CONCURRENCY': 'true', 'CI_JOB_ID': '2819963', 'CI_BUILDS_DIR': '/builds', 'CI_PROJECT_REPOSITORY_LANGUAGES': 'python,shell', 'DOCKER_AUTH_CONFIG': '{\n "auths": {\n "gitlab.sintef.no:5050": {\n "auth": "Z2l0bGFiK2RlcGxveS10b2tlbi00Mjp6bU1NRFV6cXlNdXZFVnhuRi1hWg=="\n }\n }\n}', 'FF_LOG_IMAGES_CONFIGURED_FOR_JOB': 'false', 'PATH': '/builds/energy/ltm/pyltmapi/release/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'CI_PROJECT_ID': '17576', 'FF_SECRET_RESOLVING_FAILS_IF_MISSING': 'true', 'CI': 'true', 'GITLAB_CI': 'true', 'CI_JOB_IMAGE': 'python:3.13', 'CI_PROJECT_TITLE': 'pyltmapi', 'CI_COMMIT_BEFORE_SHA': '0670fb2ce558ddd5e024357248d8f85d2a5a80f4', 'AZURE_CDN_ENDPOINT': 'cdn-endpoint-ltm-docs', 'LTMAPI_ARTIFACT_TOKEN': 'yUk9SpAxyVESQVrz4umZ', 'CI_SERVER_VERSION_MAJOR': '18', 'FF_USE_EXPONENTIAL_BACKOFF_STAGE_RETRY': 'true', 'CI_CONFIG_PATH': '.gitlab-ci.yml', 'FF_USE_LEGACY_GCS_CACHE_ADAPTER': 'false', 'FF_USE_FASTZIP': 'false', 'PYPI_TOKEN': 'pypi-AgEIcHlwaS5vcmcCJDFhNjg4MmJhLWEzMTgtNGMzNi04ZGIwLTUzNGZiNDYyMDc2YwACEFsxLFsicHlsdG1hcGkiXV0AAixbMixbIjNlZDIxOTJhLTU5OGMtNDQyMy05ZjhkLWZhZDNiN2YwZTQzZCJdXQAABiDQc1OXGHWbFFYLecbHFMnzVVP6vTu4H47MhEzPpio1eQ', 'CI_COMMIT_MESSAGE_IS_TRUNCATED': 'false', 'CI_LTM_LICENSE_FILE': '/builds/energy/ltm/pyltmapi.tmp/CI_LTM_LICENSE_FILE', 'CI_PROJECT_URL': 'https://gitlab.sintef.no/energy/ltm/pyltmapi', 'OLDPWD': '/', '_': '/usr/local/bin/jupyter', 'LC_CTYPE': 'C.UTF-8', 'JPY_PARENT_PID': '371', 'PYDEVD_USE_FRAME_EVAL': 'NO', 'TERM': 'xterm-color', 'CLICOLOR': '1', 'FORCE_COLOR': '1', 'CLICOLOR_FORCE': '1', 'PAGER': 'cat', 'GIT_PAGER': 'cat', 'MPLBACKEND': 'module://matplotlib_inline.backend_inline'})
Busbar: busbar/pumpekraft¶
Busbar: busbar/tev¶
busbar/pumpekraft¶
'Reservoir'
'Reservoir'
'Reservoir'
'Reservoir'
busbar/tev¶
INFO:LtmApiModel:(ikernel) Not deleting output dir (/builds/energy/ltm/pyltmapi/docs/ltm-api/guides/pumps/testout_pumps/2026-03-24-134214.951-EMPS-parallell), as delete_output_dir: false, and has_generated_output_dir: true
INFO:LtmApiModel:(ikernel) Not deleting output dir (/builds/energy/ltm/pyltmapi/docs/ltm-api/guides/pumps/testout_pumps/2026-03-24-134214.951-EMPS-parallell), as delete_output_dir: false, and has_generated_output_dir: true