diff --git a/reoptjl/migrations/0059_processheatloadinputs_and_more.py b/reoptjl/migrations/0059_processheatloadinputs_and_more.py new file mode 100644 index 000000000..c9966fcc7 --- /dev/null +++ b/reoptjl/migrations/0059_processheatloadinputs_and_more.py @@ -0,0 +1,226 @@ +# Generated by Django 4.0.7 on 2024-05-07 16:49 + +import django.contrib.postgres.fields +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion +import reoptjl.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reoptjl', '0058_merge_20240425_1527'), + ] + + operations = [ + migrations.CreateModel( + name='ProcessHeatLoadInputs', + fields=[ + ('meta', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='ProcessHeatLoadInputs', serialize=False, to='reoptjl.apimeta')), + ('annual_mmbtu', models.FloatField(blank=True, help_text='Annual site process heat consumption, used to scale simulated load profile [MMBtu]', null=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(100000000.0)])), + ('fuel_loads_mmbtu_per_hour', django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True), blank=True, default=list, help_text='Typical load over all hours in one year. Must be hourly (8,760 samples), 30 minute (17,520 samples), or 15 minute (35,040 samples). All non-net load values must be greater than or equal to zero. ', size=None)), + ], + bases=(reoptjl.models.BaseModel, models.Model), + ), + migrations.AddField( + model_name='absorptionchillerinputs', + name='heating_load_input', + field=models.TextField(blank=True, choices=[('DomesitHotWater', 'Domesithotwater'), ('SpaceHeating', 'Spaceheating'), ('ProcessHeat', 'Processheat')], help_text='Absorption chiller heat input - determines what heating load is added to by absorption chiller use', null=True), + ), + migrations.AddField( + model_name='boilerinputs', + name='can_serve_dhw', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if boiler can serve domestic hot water load', null=True), + ), + migrations.AddField( + model_name='boilerinputs', + name='can_serve_process_heat', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if boiler can serve process heat load', null=True), + ), + migrations.AddField( + model_name='boilerinputs', + name='can_serve_space_heating', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if boiler can serve space heating load', null=True), + ), + migrations.AddField( + model_name='boileroutputs', + name='thermal_to_dhw_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='boileroutputs', + name='thermal_to_process_heat_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='boileroutputs', + name='thermal_to_space_heating_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='chpinputs', + name='can_serve_dhw', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if CHP can serve hot water load', null=True), + ), + migrations.AddField( + model_name='chpinputs', + name='can_serve_process_heat', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if CHP can serve process heat load', null=True), + ), + migrations.AddField( + model_name='chpinputs', + name='can_serve_space_heating', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if CHP can serve space heating load', null=True), + ), + migrations.AddField( + model_name='existingboilerinputs', + name='can_serve_dhw', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if the existing boiler can serve domestic hot water load', null=True), + ), + migrations.AddField( + model_name='existingboilerinputs', + name='can_serve_process_heat', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if the existing boiler can serve process heat load', null=True), + ), + migrations.AddField( + model_name='existingboilerinputs', + name='can_serve_space_heating', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if the existing boiler can serve space heating load', null=True), + ), + migrations.AddField( + model_name='existingboilerinputs', + name='retire_in_optimal', + field=models.BooleanField(blank=True, default=False, help_text='Boolean indicator if the existing boiler is unavailable in the optimal case (still used in BAU)', null=True), + ), + migrations.AddField( + model_name='existingboileroutputs', + name='thermal_to_dhw_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='existingboileroutputs', + name='thermal_to_process_heat_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='existingboileroutputs', + name='thermal_to_space_heating_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='ghpinputs', + name='can_serve_process_heat', + field=models.BooleanField(blank=True, default=False, help_text='Boolean indicator if GHP can serve process heat load', null=True), + ), + migrations.AddField( + model_name='ghpinputs', + name='can_serve_space_heating', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if GHP can serve space heating load', null=True), + ), + migrations.AddField( + model_name='heatingloadoutputs', + name='annual_calculated_process_heat_boiler_fuel_load_mmbtu', + field=models.FloatField(blank=True, default=0, help_text='Annual site process heat boiler fuel load [MMBTU]', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), + ), + migrations.AddField( + model_name='heatingloadoutputs', + name='annual_calculated_process_heat_thermal_load_mmbtu', + field=models.FloatField(blank=True, default=0, help_text='Annual site process heat load [MMBTU]', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), + ), + migrations.AddField( + model_name='heatingloadoutputs', + name='process_heat_boiler_fuel_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), blank=True, default=list, help_text='Hourly process heat boiler fuel load [MMBTU/hr]', size=None), + ), + migrations.AddField( + model_name='heatingloadoutputs', + name='process_heat_thermal_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), blank=True, default=list, help_text='Hourly process heat load [MMBTU/hr]', size=None), + ), + migrations.AddField( + model_name='hotthermalstorageinputs', + name='can_serve_dhw', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if hot thermal storage can serve space heating load', null=True), + ), + migrations.AddField( + model_name='hotthermalstorageinputs', + name='can_serve_process_heat', + field=models.BooleanField(blank=True, default=False, help_text='Boolean indicator if hot thermal storage can serve process heat load', null=True), + ), + migrations.AddField( + model_name='hotthermalstorageinputs', + name='can_serve_space_heating', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if hot thermal storage can serve space heating load', null=True), + ), + migrations.AddField( + model_name='hotthermalstorageoutputs', + name='storage_to_dhw_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='hotthermalstorageoutputs', + name='storage_to_process_heat_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='hotthermalstorageoutputs', + name='storage_to_space_heating_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='pvinputs', + name='can_serve_dhw', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if steam turbine can serve space heating load', null=True), + ), + migrations.AddField( + model_name='pvinputs', + name='can_serve_process_heat', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if steam turbine can serve process heat load', null=True), + ), + migrations.AddField( + model_name='pvinputs', + name='can_serve_space_heating', + field=models.BooleanField(blank=True, default=True, help_text='Boolean indicator if steam turbine can serve space heating load', null=True), + ), + migrations.AddField( + model_name='steamturbineoutputs', + name='thermal_to_dhw_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='steamturbineoutputs', + name='thermal_to_process_heat_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AddField( + model_name='steamturbineoutputs', + name='thermal_to_space_heating_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, null=True), default=list, size=None), + ), + migrations.AlterField( + model_name='heatingloadoutputs', + name='dhw_boiler_fuel_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), blank=True, default=list, help_text='Hourly domestic hot water boiler fuel load [MMBTU/hr]', size=None), + ), + migrations.AlterField( + model_name='heatingloadoutputs', + name='space_heating_boiler_fuel_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), blank=True, default=list, help_text='Hourly space heating boiler fuel load [MMBTU/hr]', size=None), + ), + migrations.AlterField( + model_name='heatingloadoutputs', + name='space_heating_thermal_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), blank=True, default=list, help_text='Hourly space heating load [MMBTU/hr]', size=None), + ), + migrations.AlterField( + model_name='heatingloadoutputs', + name='total_heating_boiler_fuel_load_series_mmbtu_per_hour', + field=django.contrib.postgres.fields.ArrayField(base_field=models.FloatField(blank=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(100000000.0)]), blank=True, default=list, help_text='Hourly total boiler fuel load [MMBTU/hr]', size=None), + ), + migrations.AlterField( + model_name='pvinputs', + name='tilt', + field=models.FloatField(blank=True, help_text='PV system tilt angle. Default tilt is 20 degrees for fixed arrays (rooftop or ground-mounted) and 0 degrees for axis-tracking systems.', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(90)]), + ), + ]