From 18e58c5e6ed275827b681688120f80239bf46481 Mon Sep 17 00:00:00 2001 From: Kadlec Date: Tue, 22 Apr 2025 10:45:58 -0600 Subject: [PATCH 1/6] testing ghp inputs --- ...1_ghpinputs_load_served_by_ghp_and_more.py | 29 +++++++++++++++++++ reoptjl/models.py | 26 +++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 reoptjl/migrations/0081_ghpinputs_load_served_by_ghp_and_more.py diff --git a/reoptjl/migrations/0081_ghpinputs_load_served_by_ghp_and_more.py b/reoptjl/migrations/0081_ghpinputs_load_served_by_ghp_and_more.py new file mode 100644 index 000000000..d6a2f6a59 --- /dev/null +++ b/reoptjl/migrations/0081_ghpinputs_load_served_by_ghp_and_more.py @@ -0,0 +1,29 @@ +# Generated by Django 4.0.7 on 2025-04-22 16:44 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reoptjl', '0080_electricloadoutputs_annual_electric_load_with_thermal_conversions_kwh_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='ghpinputs', + name='load_served_by_ghp', + field=models.TextField(blank=True, default='nonpeak', help_text='How to split between load served by GHP and load served by backup system'), + ), + migrations.AddField( + model_name='ghpinputs', + name='max_number_of_boreholes', + field=models.FloatField(blank=True, help_text='Maximum number of boreholes for GHX', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), + ), + migrations.AddField( + model_name='ghpinputs', + name='max_ton', + field=models.FloatField(blank=True, help_text='Maximum thermal power size constraint for GHP [ton]', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), + ), + ] diff --git a/reoptjl/models.py b/reoptjl/models.py index 47d088f7a..a525c268e 100644 --- a/reoptjl/models.py +++ b/reoptjl/models.py @@ -8261,6 +8261,32 @@ class GHPInputs(BaseModel, models.Model): blank=True, help_text="Maximum utility rebate" ) + max_ton = models.FloatField( + validators=[ + MinValueValidator(0), + MaxValueValidator(MAX_BIG_NUMBER) + ], + null=True, + blank=True, + help_text=("Maximum thermal power size constraint for GHP [ton]") + ) + + max_number_of_boreholes = models.FloatField( + validators=[ + MinValueValidator(0), + MaxValueValidator(MAX_BIG_NUMBER) + ], + null=True, + blank=True, + help_text=("Maximum number of boreholes for GHX") + ) + + load_served_by_ghp = models.TextField( + null=False, + blank=True, + default="nonpeak", + help_text="How to split between load served by GHP and load served by backup system" + ) def clean(self): From 796ea99f258cefe72a4cba204e4eaf22ed6b0512 Mon Sep 17 00:00:00 2001 From: Kadlec Date: Tue, 22 Apr 2025 13:20:22 -0600 Subject: [PATCH 2/6] debugging test --- reoptjl/testing.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reoptjl/testing.txt diff --git a/reoptjl/testing.txt b/reoptjl/testing.txt new file mode 100644 index 000000000..e69de29bb From e3011e1571e390f2e621fdd2ee0dc037c592ad2f Mon Sep 17 00:00:00 2001 From: Kadlec Date: Wed, 23 Apr 2025 14:42:46 -0600 Subject: [PATCH 3/6] update manifest.toml --- julia_src/Manifest.toml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/julia_src/Manifest.toml b/julia_src/Manifest.toml index 6729da562..4d0f7a141 100644 --- a/julia_src/Manifest.toml +++ b/julia_src/Manifest.toml @@ -922,9 +922,11 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.REopt]] deps = ["ArchGDAL", "CSV", "CoolProp", "DataFrames", "Dates", "DelimitedFiles", "HTTP", "JLD", "JSON", "JuMP", "LinDistFlow", "LinearAlgebra", "Logging", "MathOptInterface", "Requires", "Roots", "Statistics", "TestEnv"] -git-tree-sha1 = "24f902b6f67ed1d4389d21b5d42f820036b182b4" +git-tree-sha1 = "9fe6797d461a708e7b853a7236d835b076c516b7" +repo-rev = "allow_presized_GHP_GHX" +repo-url = "https://github.com/NREL/REopt.jl.git" uuid = "d36ad4e8-d74a-4f7a-ace1-eaea049febf6" -version = "0.51.0" +version = "0.51.1" [[deps.Random]] deps = ["SHA"] From f523baa051bef837202f800f9910bae931b355f8 Mon Sep 17 00:00:00 2001 From: bill-becker Date: Wed, 23 Apr 2025 15:52:51 -0600 Subject: [PATCH 4/6] Merge migration after merging develop --- reoptjl/migrations/0084_merge_20250423_2110.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 reoptjl/migrations/0084_merge_20250423_2110.py diff --git a/reoptjl/migrations/0084_merge_20250423_2110.py b/reoptjl/migrations/0084_merge_20250423_2110.py new file mode 100644 index 000000000..8ea012a9b --- /dev/null +++ b/reoptjl/migrations/0084_merge_20250423_2110.py @@ -0,0 +1,14 @@ +# Generated by Django 4.0.7 on 2025-04-23 21:10 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('reoptjl', '0081_ghpinputs_load_served_by_ghp_and_more'), + ('reoptjl', '0083_electricutilityoutputs_peak_grid_demand_kw_and_more'), + ] + + operations = [ + ] From cc225e822f248c7bf9efb41c998de1f8ef78344d Mon Sep 17 00:00:00 2001 From: Kadlec Date: Thu, 24 Apr 2025 08:47:59 -0600 Subject: [PATCH 5/6] adding ghp outputs --- ...nnual_thermal_production_mmbtu_and_more.py | 23 +++++++++++++++++++ reoptjl/models.py | 2 ++ 2 files changed, 25 insertions(+) create mode 100644 reoptjl/migrations/0085_ghpoutputs_annual_thermal_production_mmbtu_and_more.py diff --git a/reoptjl/migrations/0085_ghpoutputs_annual_thermal_production_mmbtu_and_more.py b/reoptjl/migrations/0085_ghpoutputs_annual_thermal_production_mmbtu_and_more.py new file mode 100644 index 000000000..fe4a5e62b --- /dev/null +++ b/reoptjl/migrations/0085_ghpoutputs_annual_thermal_production_mmbtu_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.0.7 on 2025-04-24 14:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reoptjl', '0084_merge_20250423_2110'), + ] + + operations = [ + migrations.AddField( + model_name='ghpoutputs', + name='annual_thermal_production_mmbtu', + field=models.FloatField(blank=True, null=True), + ), + migrations.AddField( + model_name='ghpoutputs', + name='annual_thermal_production_tonhour', + field=models.FloatField(blank=True, null=True), + ), + ] diff --git a/reoptjl/models.py b/reoptjl/models.py index b46237980..ddc2c0363 100644 --- a/reoptjl/models.py +++ b/reoptjl/models.py @@ -8435,6 +8435,8 @@ class GHPOutputs(BaseModel, models.Model): thermal_to_dhw_load_series_mmbtu_per_hour = ArrayField(models.FloatField(null=True, blank=True), default=list, null=True, blank=True) thermal_to_load_series_ton = ArrayField(models.FloatField(null=True, blank=True), default=list, null=True, blank=True) avoided_capex_by_ghp_present_value = models.FloatField(null=True, blank=True) + annual_thermal_production_mmbtu = models.FloatField(null=True, blank=True) + annual_thermal_production_tonhour = models.FloatField(null=True, blank=True) def get_input_dict_from_run_uuid(run_uuid:str): """ From 3a8a85f689b2f819921a53f7754886d84efb31a5 Mon Sep 17 00:00:00 2001 From: Kadlec Date: Wed, 21 May 2025 09:08:28 -0600 Subject: [PATCH 6/6] updating REopt.jl branch to develop --- julia_src/Manifest.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/julia_src/Manifest.toml b/julia_src/Manifest.toml index 4d0f7a141..3a3ad23cb 100644 --- a/julia_src/Manifest.toml +++ b/julia_src/Manifest.toml @@ -922,11 +922,11 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.REopt]] deps = ["ArchGDAL", "CSV", "CoolProp", "DataFrames", "Dates", "DelimitedFiles", "HTTP", "JLD", "JSON", "JuMP", "LinDistFlow", "LinearAlgebra", "Logging", "MathOptInterface", "Requires", "Roots", "Statistics", "TestEnv"] -git-tree-sha1 = "9fe6797d461a708e7b853a7236d835b076c516b7" -repo-rev = "allow_presized_GHP_GHX" +git-tree-sha1 = "37371dea02a25459d46411025a82cad3a3229a3c" +repo-rev = "develop" repo-url = "https://github.com/NREL/REopt.jl.git" uuid = "d36ad4e8-d74a-4f7a-ace1-eaea049febf6" -version = "0.51.1" +version = "0.52.0" [[deps.Random]] deps = ["SHA"]