From 6b0c1a045ed3291d987602e13fe7b3ff873345f9 Mon Sep 17 00:00:00 2001
From: Kjetil Brakstad <64000017+kjbrak@users.noreply.github.com>
Date: Mon, 16 Dec 2024 13:28:36 +0100
Subject: [PATCH] Ecalc 1687 docs tests coupling (#738)
chore: move all examples from docs to libecalc
---
.../about/modelling/examples/advanced.mdx | 32 +-
.../examples/advanced/base_profile.csv | 23 -
.../examples/advanced/compressor_chart.csv | 12 -
.../examples/advanced/compressor_sampled.csv | 5 -
.../modelling/examples/advanced/genset.csv | 8 -
.../modelling/examples/advanced/model.yaml | 269 -
.../examples/advanced/pump_chart.csv | 10 -
docs/docs/about/modelling/examples/drogon.mdx | 8 +-
.../about/modelling/examples/image001.png | Bin 6952 -> 0 bytes
.../mabinogian_gas_compressor.csv.pdf | Bin 54004 -> 0 bytes
.../examples/mabinogian_gas_compressor.svg | 464 -
.../modelling/examples/mabinogian_genset.csv | 23 -
.../examples/mabinogian_genset.csv.pdf | Bin 47970 -> 0 bytes
.../modelling/examples/mabinogian_genset.pdf | Bin 47970 -> 0 bytes
.../modelling/examples/mabinogian_genset.svg | 446 -
.../examples/mabinogian_pumpchart.pdf | Bin 55174 -> 0 bytes
.../examples/mabinogian_pumpchart.svg | 678 -
docs/docs/about/modelling/examples/simple.mdx | 26 +-
.../examples/simple/compressor_sampled.csv | 17 -
.../compressor_sampled_with_turbine.csv | 7 -
.../modelling/examples/simple/genset.csv | 8 -
.../modelling/examples/simple/model.yaml | 104 -
.../examples/simple/production_data.csv | 14 -
.../modelling/examples/simple/pump_chart.csv | 7 -
.../examples/simple/pump_sampled.csv | 9 -
docs/docusaurus.config.ts | 11 +
docs/package-lock.json | 18 +
docs/package.json | 1 +
src/libecalc/examples/__init__.py | 1 +
src/libecalc/examples/advanced/model.yaml | 91 +-
src/libecalc/examples/advanced/pump_chart.csv | 2 +-
src/libecalc/examples/drogon/__init__.py | 27 +
.../libecalc}/examples/drogon/drogon_mean.csv | 0
.../libecalc}/examples/drogon/genset.csv | 0
.../libecalc}/examples/drogon/model.yaml | 0
.../examples/drogon/wi_200bar_ssp.csv | 0
.../examples/simple/production_data.csv | 1 +
tests/conftest.py | 15 +-
.../test_json_advanced_model_v3.json | 206679 +++++++++++----
39 files changed, 150001 insertions(+), 59015 deletions(-)
delete mode 100644 docs/docs/about/modelling/examples/advanced/base_profile.csv
delete mode 100644 docs/docs/about/modelling/examples/advanced/compressor_chart.csv
delete mode 100644 docs/docs/about/modelling/examples/advanced/compressor_sampled.csv
delete mode 100644 docs/docs/about/modelling/examples/advanced/genset.csv
delete mode 100644 docs/docs/about/modelling/examples/advanced/model.yaml
delete mode 100644 docs/docs/about/modelling/examples/advanced/pump_chart.csv
delete mode 100755 docs/docs/about/modelling/examples/image001.png
delete mode 100755 docs/docs/about/modelling/examples/mabinogian_gas_compressor.csv.pdf
delete mode 100644 docs/docs/about/modelling/examples/mabinogian_gas_compressor.svg
delete mode 100755 docs/docs/about/modelling/examples/mabinogian_genset.csv
delete mode 100755 docs/docs/about/modelling/examples/mabinogian_genset.csv.pdf
delete mode 100755 docs/docs/about/modelling/examples/mabinogian_genset.pdf
delete mode 100644 docs/docs/about/modelling/examples/mabinogian_genset.svg
delete mode 100755 docs/docs/about/modelling/examples/mabinogian_pumpchart.pdf
delete mode 100644 docs/docs/about/modelling/examples/mabinogian_pumpchart.svg
delete mode 100644 docs/docs/about/modelling/examples/simple/compressor_sampled.csv
delete mode 100644 docs/docs/about/modelling/examples/simple/compressor_sampled_with_turbine.csv
delete mode 100644 docs/docs/about/modelling/examples/simple/genset.csv
delete mode 100644 docs/docs/about/modelling/examples/simple/model.yaml
delete mode 100644 docs/docs/about/modelling/examples/simple/production_data.csv
delete mode 100644 docs/docs/about/modelling/examples/simple/pump_chart.csv
delete mode 100644 docs/docs/about/modelling/examples/simple/pump_sampled.csv
create mode 100644 src/libecalc/examples/drogon/__init__.py
rename {docs/docs/about/modelling => src/libecalc}/examples/drogon/drogon_mean.csv (100%)
rename {docs/docs/about/modelling => src/libecalc}/examples/drogon/genset.csv (100%)
rename {docs/docs/about/modelling => src/libecalc}/examples/drogon/model.yaml (100%)
rename {docs/docs/about/modelling => src/libecalc}/examples/drogon/wi_200bar_ssp.csv (100%)
diff --git a/docs/docs/about/modelling/examples/advanced.mdx b/docs/docs/about/modelling/examples/advanced.mdx
index 677f1ee030..ecdf5f7518 100644
--- a/docs/docs/about/modelling/examples/advanced.mdx
+++ b/docs/docs/about/modelling/examples/advanced.mdx
@@ -1,11 +1,11 @@
import CodeLinesFromFile from "../../../../src/components/CodeLinesFromFile";
import CodeBlock from '@theme/CodeBlock';
-import compressorChartCsv from '!!raw-loader!./advanced/compressor_chart.csv';
-import compressorSampledCsv from '!!raw-loader!./advanced/compressor_sampled.csv';
-import genset from '!!raw-loader!./advanced/genset.csv';
-import pumpChart from '!!raw-loader!./advanced/pump_chart.csv';
-import baseProfile from '!!raw-loader!./advanced/base_profile.csv';
-import yamlModel from '!!raw-loader!./advanced/model.yaml';
+import compressorChartCsv from '!!raw-loader!@examples/advanced/compressor_chart.csv';
+import compressorSampledCsv from '!!raw-loader!@examples/advanced/compressor_sampled.csv';
+import genset from '!!raw-loader!@examples/advanced/genset.csv';
+import pumpChart from '!!raw-loader!@examples/advanced/pump_chart.csv';
+import baseProfile from '!!raw-loader!@examples/advanced/base_profile.csv';
+import yamlModel from '!!raw-loader!@examples/advanced/model.yaml';
# Advanced model example
This is a model very similar to [Simple example](/about/modelling/examples/simple.mdx). The main difference is the use of more advanced
@@ -115,7 +115,7 @@ Here we specify:
- Gas turbine
- Simplified compressor train model
-{yamlModel}
+{yamlModel}
See [MODELS](/about/references/MODELS.md) for further details.
@@ -126,7 +126,7 @@ by allowing descriptive variable names and avoid duplications.
For our model, we specify the following variables:
-{yamlModel}
+{yamlModel}
We reference the [TIME_SERIES](#time_series) `SIM` using the column names from the CSV file.
@@ -259,7 +259,7 @@ We will now fill in the final placeholders with detailed [ENERGY_USAGE_MODEL](/a
`Fixed production loads A` has a load of 7.6 MW with additional 4.1 MW when the field gas injection rate is positive:
-{yamlModel}
+{yamlModel}
`Gas export compressor system A` is represented by a consumer system of two simplified compressor train models.
The system has defined the variable [gasratea_cd](#variables) and will run two different
@@ -270,7 +270,7 @@ setting that returns a valid result for the compressors.
See [COMPRESSOR_SYSTEM](/about/modelling/setup/installations/compressor_models_in_calculations/compressor_system.md) for further details.
The compressor model is then defined:
-{yamlModel}
+{yamlModel}
`Water injection pump system A` is variable and its energy function is dependent on the field's water
injection rate (`WATER_INJ`) that is set in the variable [water_injection_rate](#variables) as `SIM;WATER_INJ`.
@@ -280,34 +280,34 @@ is also defined.
This PUMP_SYSTEM behaves much the same as the COMPRESSOR_SYSTEM above.
See [PUMP_SYSTEM](/about/modelling/setup/installations/pump_models_in_calculations.md#pump_system-energy-usage-model) for further details.
-{yamlModel}
+{yamlModel}
`Single pump A` has an energy function that is dependent on the seawater injection rate, same as the system above.
It uses the pump_chart defined in [FACILITY_INPUTS](#facility_inputs) above.
The pump model is then defined:
-{yamlModel}
+{yamlModel}
The `Flare A` is changing on the 1st of July 2020 and 1st of January 2030. Therefore, we need to use a different constant
fuel consumption value before and after this date. This is done using the variable [flare_a_fuel_rate_sm3_day](#variables).
The model becomes:
-{yamlModel}
+{yamlModel}
`Base production loads B` has a load of 7.6 :
-{yamlModel}
+{yamlModel}
The `Flare B` is changing on the 1st of July 2020 and 1st of January 2030. Therefore, we need to use a different constant
fuel consumption value before and after this date. This is done using the variable [flare_a_fuel_rate_sm3_day](#variables).
The model becomes:
-{yamlModel}
+{yamlModel}
The `Gas export compressors B` is a variable fuel consumer whose energy function depends on the field gas production rate (`GAS_PROD`) defined
in the variable [gasrateb_cd](#variables) as `SIM;GAS_PROD`, and put to the condition [gas_export_condition](#variables) as `SIM;GAS_PROD > 0`
The model is specified:
-{yamlModel}
+{yamlModel}
## Full eCalc YAML model
{yamlModel}
diff --git a/docs/docs/about/modelling/examples/advanced/base_profile.csv b/docs/docs/about/modelling/examples/advanced/base_profile.csv
deleted file mode 100644
index a97ba579de..0000000000
--- a/docs/docs/about/modelling/examples/advanced/base_profile.csv
+++ /dev/null
@@ -1,23 +0,0 @@
-DATE, OIL_PROD, WATER_PROD, GAS_PROD, WATER_INJ, GAS_LIFT
-01.01.2020, 1000, 20000, 4000000, 30000, 1200000
-01.01.2021, 1000, 20000, 4000000, 30000, 1200000
-01.01.2022, 1000, 20000, 4000000, 30000, 1200000
-01.01.2023, 2500, 21000, 4000000, 30000, 1200000
-01.01.2024, 3000, 22000, 4500000, 28000, 1300000
-01.01.2025, 3500, 23000, 5000000, 26000, 1350000
-01.01.2026, 4000, 24000, 5500000, 25000, 1400000
-01.01.2027, 4000, 25000, 6000000, 24000, 1400000
-01.01.2028, 4000, 20000, 6000000, 23000, 1400000
-01.01.2029, 5000, 20000, 5500000, 22000, 1350000
-01.01.2030, 9000, 20000, 5000000, 21000, 1300000
-01.01.2031, 5000, 20000, 3000000, 22000, 1300000
-01.01.2032, 4000, 22100, 3000000, 23000, 2000000
-01.01.2033, 4000, 22100, 3000000, 23000, 2000000
-01.01.2034, 1200, 25000, 1000000, 21000, 2000000
-01.01.2035, 1100, 25000, 1000000, 20000, 1500000
-01.01.2036, 1000, 22000, 500000, 18000, 1400000
-01.01.2037, 900, 20000, 500000, 17000, 1400000
-01.01.2038, 800, 18000, 500000, 17000, 1400000
-01.01.2039, 700, 18000, 200000, 17000, 1400000
-01.01.2040, 600, 10000, 200000, 15000, 1400000
-01.01.2041, 0, 0, 0, 0, 0
\ No newline at end of file
diff --git a/docs/docs/about/modelling/examples/advanced/compressor_chart.csv b/docs/docs/about/modelling/examples/advanced/compressor_chart.csv
deleted file mode 100644
index 0fcd7d9c09..0000000000
--- a/docs/docs/about/modelling/examples/advanced/compressor_chart.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-RATE, HEAD, EFFICIENCY, SPEED
-# [m3/h], [m], [frac], [rpm]
-3000, 8500, 0.72, 7500
-3500, 8000, 0.75, 7500
-4000, 7500, 0.74, 7500
-4500, 6500, 0.70, 7500
-4100, 16500, 0.72, 10500
-4600, 16000, 0.73, 10500
-5000, 15500, 0.74, 10500
-5500, 14500, 0.74, 10500
-6000, 13500, 0.72, 10500
-6500, 12000, 0.70, 10500
\ No newline at end of file
diff --git a/docs/docs/about/modelling/examples/advanced/compressor_sampled.csv b/docs/docs/about/modelling/examples/advanced/compressor_sampled.csv
deleted file mode 100644
index 3d21a6c1ba..0000000000
--- a/docs/docs/about/modelling/examples/advanced/compressor_sampled.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-RATE, FUEL
-0, 0
-0.01, 100
-10, 500
-20, 1200
\ No newline at end of file
diff --git a/docs/docs/about/modelling/examples/advanced/genset.csv b/docs/docs/about/modelling/examples/advanced/genset.csv
deleted file mode 100644
index cc8961f575..0000000000
--- a/docs/docs/about/modelling/examples/advanced/genset.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-POWER, FUEL
-# [MW], [Sm3/d]
-0, 0
-0.1, 75000
-10, 80000
-20, 100000
-50, 500000
-100, 1000000
diff --git a/docs/docs/about/modelling/examples/advanced/model.yaml b/docs/docs/about/modelling/examples/advanced/model.yaml
deleted file mode 100644
index 95c2e6f953..0000000000
--- a/docs/docs/about/modelling/examples/advanced/model.yaml
+++ /dev/null
@@ -1,269 +0,0 @@
-# mafro : 160524
-# Advanced v2: Regularity 0.87 / 0.95 + GEFAC rate conversion in variables
-# https://equinor.github.io/ecalc/docs/about/modelling/examples/advanced
-# Exercise for Equinor University course May 2024.
-TIME_SERIES:
- - NAME: SIM
- TYPE: DEFAULT
- FILE: base_profile.csv
-
-FACILITY_INPUTS:
- - NAME: genset
- FILE: genset.csv
- TYPE: ELECTRICITY2FUEL
- - NAME: gasexp
- FILE: compressor_sampled.csv
- TYPE: COMPRESSOR_TABULAR
- - NAME: pump_chart
- FILE: pump_chart.csv
- TYPE: PUMP_CHART_SINGLE_SPEED
- UNITS:
- RATE: AM3_PER_HOUR
- HEAD: M
- EFFICIENCY: PERCENTAGE
-
-FUEL_TYPES:
- - NAME: fuel_gas
- CATEGORY: FUEL-GAS
- EMISSIONS:
- - NAME: CO2
- FACTOR: 2.20 #kg/Sm3
- - NAME: CH4
- FACTOR: 0.01 #kg/Sm3
- - NAME: bad_fuel_gas
- CATEGORY: FUEL-GAS
- EMISSIONS:
- - NAME: CO2
- FACTOR: 5.0 #kg/Sm3
- - NAME: CH4
- FACTOR: 0.01 #kg/Sm3
-
-MODELS:
- - NAME: generic_from_design_point_compressor_chart
- TYPE: COMPRESSOR_CHART
- CHART_TYPE: GENERIC_FROM_DESIGN_POINT
- POLYTROPIC_EFFICIENCY: 0.75
- DESIGN_RATE: 10000
- DESIGN_HEAD: 80
- UNITS:
- RATE: AM3_PER_HOUR
- HEAD: KJ_PER_KG
- EFFICIENCY: FRACTION
- - NAME: predefined_variable_speed_compressor_chart
- TYPE: COMPRESSOR_CHART
- CHART_TYPE: VARIABLE_SPEED
- UNITS:
- RATE: AM3_PER_HOUR
- HEAD: M # M or KJ_PER_KG
- EFFICIENCY: FRACTION
- CURVES:
- FILE: compressor_chart.csv
- - NAME: medium_fluid
- TYPE: FLUID
- FLUID_MODEL_TYPE: PREDEFINED
- EOS_MODEL: SRK
- GAS_TYPE: MEDIUM
- - NAME: turbine
- TYPE: TURBINE
- LOWER_HEATING_VALUE: 38 # MJ/Sm3
- TURBINE_LOADS: [0, 2.352, 4.589, 6.853, 9.125, 11.399, 13.673, 15.947, 18.223, 20.496, 22.767] # MW
- TURBINE_EFFICIENCIES: [0, 0.138, 0.210, 0.255, 0.286, 0.310, 0.328, 0.342, 0.353, 0.360, 0.362]
- - NAME: simplified_compressor_train_model
- TYPE: SIMPLIFIED_VARIABLE_SPEED_COMPRESSOR_TRAIN
- FLUID_MODEL: medium_fluid
- COMPRESSOR_TRAIN:
- STAGES:
- - INLET_TEMPERATURE: 30
- COMPRESSOR_CHART: generic_from_design_point_compressor_chart
- - INLET_TEMPERATURE: 30
- COMPRESSOR_CHART: generic_from_design_point_compressor_chart
- - INLET_TEMPERATURE: 30
- COMPRESSOR_CHART: predefined_variable_speed_compressor_chart
-
- - NAME: trainB
- TYPE: VARIABLE_SPEED_COMPRESSOR_TRAIN
- FLUID_MODEL: medium_fluid
- COMPRESSOR_TRAIN:
- STAGES:
- - INLET_TEMPERATURE: 30
- COMPRESSOR_CHART: predefined_variable_speed_compressor_chart
- - INLET_TEMPERATURE: 30
- COMPRESSOR_CHART: predefined_variable_speed_compressor_chart
- - NAME: trainBturbine
- TYPE: COMPRESSOR_WITH_TURBINE
- COMPRESSOR_MODEL: trainB
- TURBINE_MODEL: turbine
-
-VARIABLES:
- hydrocarbon_export_sm3_per_day:
- VALUE: SIM;OIL_PROD {+} SIM;GAS_PROD {/} 1000
- gas_export_rate_sm3_per_day:
- VALUE: SIM;GAS_PROD
- water_injection_rate:
- VALUE: SIM;WATER_INJ
- gas_export_condition:
- VALUE: SIM;GAS_PROD > 0
- base_production_load_mw:
- VALUE: 7.6 {+} 4.1 {*} (SIM;GAS_LIFT > 0)
- water_injection_condition:
- VALUE: SIM;WATER_PROD >0
- flare_a_fuel_rate_sm3_day:
- 2020-06-01:
- VALUE: 5000
- 2030-01-01:
- VALUE: 2000
- flare_b_fuel_rate_sm3_day:
- 2020-06-01:
- VALUE: 10000
- 2030-01-01:
- VALUE: 7000
-
- pea:
- VALUE: 0.95 # 0.87
- peb:
- VALUE: 0.95
- gasratea_cd:
- VALUE: $var.gas_export_rate_sm3_per_day {*} $var.pea
- gasrateb_cd:
- VALUE: $var.gas_export_rate_sm3_per_day {*} $var.peb
- winjratea_cd:
- VALUE: $var.water_injection_rate {*} $var.pea
- hcexpa_cd:
- VALUE: $var.hydrocarbon_export_sm3_per_day {*} $var.pea
- hcexpb_cd:
- VALUE: $var.hydrocarbon_export_sm3_per_day {*} $var.peb
-
-INSTALLATIONS:
- - NAME: Installation A
- HCEXPORT: $var.hcexpa_cd
- FUEL: fuel_gas
- CATEGORY: FIXED
- REGULARITY: $var.pea
- GENERATORSETS:
- - NAME: Generator set A
- CATEGORY: TURBINE-GENERATOR
- ELECTRICITY2FUEL: genset
- CONSUMERS:
- - NAME: Fixed production loads A
- CATEGORY: FIXED-PRODUCTION-LOAD
- ENERGY_USAGE_MODEL:
- TYPE: DIRECT
- LOAD: $var.base_production_load_mw
- CONSUMPTION_RATE_TYPE: STREAM_DAY # (This is default)
- - NAME: Gas export compressors system A
- CATEGORY: COMPRESSOR
- ENERGY_USAGE_MODEL:
- TYPE: COMPRESSOR_SYSTEM
- COMPRESSORS:
- - NAME: train1_A
- COMPRESSOR_MODEL: simplified_compressor_train_model
- - NAME: train2_A
- COMPRESSOR_MODEL: simplified_compressor_train_model
- TOTAL_SYSTEM_RATE: $var.gasratea_cd
- OPERATIONAL_SETTINGS:
- - RATE_FRACTIONS: [1.0, 0.0]
- SUCTION_PRESSURE: 20
- DISCHARGE_PRESSURE: 120
- - RATE_FRACTIONS: [0.5, 0.5]
- SUCTION_PRESSURE: 20
- DISCHARGE_PRESSURE: 120
- - NAME: Water injection pump system A
- CATEGORY: PUMP
- ENERGY_USAGE_MODEL:
- TYPE: PUMP_SYSTEM
- PUMPS:
- - NAME: pump1
- CHART: pump_chart
- - NAME: pump2
- CHART: pump_chart
- - NAME: pump3
- CHART: pump_chart
- - NAME: pump4
- CHART: pump_chart
- FLUID_DENSITY: 1026
- TOTAL_SYSTEM_RATE: $var.winjratea_cd
- CONDITION: $var.water_injection_condition
- OPERATIONAL_SETTINGS:
- - RATE_FRACTIONS: [1, 0, 0, 0]
- SUCTION_PRESSURES: [3, 3, 3, 3]
- DISCHARGE_PRESSURES: [200, 200, 200, 200]
- CROSSOVER: [2, 0, 0, 0]
- - RATE_FRACTIONS: [0.5, 0.5, 0, 0]
- SUCTION_PRESSURE: 3
- DISCHARGE_PRESSURE: 200
- - RATE_FRACTIONS: [0.33, 0.33, 0.34, 0]
- SUCTION_PRESSURE: 3
- DISCHARGE_PRESSURE: 200
- - RATE_FRACTIONS: [0.25, 0.25, 0.25, 0.25]
- SUCTION_PRESSURE: 3
- DISCHARGE_PRESSURE: 200
- - NAME: Single pump A
- CATEGORY: PUMP
- ENERGY_USAGE_MODEL:
- TYPE: PUMP
- CONDITION: $var.water_injection_condition
- ENERGYFUNCTION: pump_chart
- RATE: 5000 {*} $var.pea
- SUCTION_PRESSURE: 3
- DISCHARGE_PRESSURE: 200
- FLUID_DENSITY: 1026
- FUELCONSUMERS:
- - NAME: Flare A
- CATEGORY: FLARE
- ENERGY_USAGE_MODEL:
- TYPE: DIRECT
- FUELRATE: $var.flare_a_fuel_rate_sm3_day
- CONSUMPTION_RATE_TYPE: STREAM_DAY # (This is default)
-
- - NAME: Installation B
- HCEXPORT: $var.hcexpb_cd
- FUEL: bad_fuel_gas
- CATEGORY: FIXED
- REGULARITY: $var.peb
- GENERATORSETS:
- - NAME: Generator set B
- CATEGORY: TURBINE-GENERATOR
- ELECTRICITY2FUEL: genset
- CONSUMERS:
- - NAME: Fixed production loads B
- CATEGORY: FIXED-PRODUCTION-LOAD
- ENERGY_USAGE_MODEL:
- TYPE: DIRECT
- LOAD: 7.6
- CONSUMPTION_RATE_TYPE: STREAM_DAY # (This is default)
- FUELCONSUMERS:
- - NAME: Flare B
- CATEGORY: FLARE
- ENERGY_USAGE_MODEL:
- TYPE: DIRECT
- FUELRATE: $var.flare_b_fuel_rate_sm3_day
- CONSUMPTION_RATE_TYPE: STREAM_DAY # (This is default)
-
- - NAME: Gas export compressors B
- CATEGORY: GAS-DRIVEN-COMPRESSOR
- FUEL: fuel_gas
- ENERGY_USAGE_MODEL:
- TYPE: COMPRESSOR_SYSTEM
- COMPRESSORS:
- - NAME: train1_B
- COMPRESSOR_MODEL: trainBturbine
- - NAME: train2_B
- COMPRESSOR_MODEL: trainBturbine
- - NAME: train3_B
- COMPRESSOR_MODEL: trainBturbine
- - NAME: train4_B
- COMPRESSOR_MODEL: trainBturbine
- TOTAL_SYSTEM_RATE: $var.gasrateb_cd
- OPERATIONAL_SETTINGS:
- - RATE_FRACTIONS: [1, 0, 0, 0]
- SUCTION_PRESSURE: 20
- DISCHARGE_PRESSURE: 200
- - RATE_FRACTIONS: [0.5, 0.5, 0, 0]
- SUCTION_PRESSURE: 20
- DISCHARGE_PRESSURE: 200
- - RATE_FRACTIONS: [0.34, 0.33, 0.33, 0]
- SUCTION_PRESSURE: 20
- DISCHARGE_PRESSURE: 200
- - RATE_FRACTIONS: [0.25, 0.25, 0.25, 0.25]
- SUCTION_PRESSURE: 20
- DISCHARGE_PRESSURE: 200
\ No newline at end of file
diff --git a/docs/docs/about/modelling/examples/advanced/pump_chart.csv b/docs/docs/about/modelling/examples/advanced/pump_chart.csv
deleted file mode 100644
index 8b8f3e01c8..0000000000
--- a/docs/docs/about/modelling/examples/advanced/pump_chart.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-RATE, HEAD, EFFICIENCY, SPEED
-# [m3/h], [m], [%], [rpm]
-250, 2350, 50, 10000
-300, 2300, 55, 10000
-350, 2250, 60, 10000
-400, 2200, 70, 10000
-450, 2150, 75, 10000
-500, 2100, 80, 10000
-550, 2050, 75, 10000
-600, 2000, 70, 10000
\ No newline at end of file
diff --git a/docs/docs/about/modelling/examples/drogon.mdx b/docs/docs/about/modelling/examples/drogon.mdx
index ef5f5dbdf6..08d7ffe2c3 100644
--- a/docs/docs/about/modelling/examples/drogon.mdx
+++ b/docs/docs/about/modelling/examples/drogon.mdx
@@ -1,9 +1,9 @@
import CodeLinesFromFile from "../../../../src/components/CodeLinesFromFile";
import CodeBlock from '@theme/CodeBlock';
-import yamlModel from '!!raw-loader!./drogon/model.yaml';
-import genset from '!!raw-loader!./drogon/genset.csv';
-import wi200barSSP from '!!raw-loader!./drogon/wi_200bar_ssp.csv';
-import drogonMean from '!!raw-loader!./drogon/drogon_mean.csv';
+import yamlModel from '!!raw-loader!@examples/drogon/model.yaml';
+import genset from '!!raw-loader!@examples/drogon/genset.csv';
+import wi200barSSP from '!!raw-loader!@examples/drogon/wi_200bar_ssp.csv';
+import drogonMean from '!!raw-loader!@examples/drogon/drogon_mean.csv';
# Drogon model example
diff --git a/docs/docs/about/modelling/examples/image001.png b/docs/docs/about/modelling/examples/image001.png
deleted file mode 100755
index 977a92755d3fe745b41f23a2f9c56933a6bad5d3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 6952
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