Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ Classify the change according to the following categories:
##### Removed
### Patches

## add-capex-constraint
### Minor Updates
#### Added
- Add **Financial** inputs **min_initial_capital_costs_before_incentives** and **max_initial_capital_costs_before_incentives**
- Add **CHP** output **initial_capital_costs**

## v3.12.3
### Minor Updates
### Added
Expand All @@ -49,7 +55,7 @@ Classify the change according to the following categories:

## v3.12.0
### Major Updates
### Added
#### Added
- Add inputs:
- **ElectricUtility.cambium_cef_metric** to utilize clean energy data from NREL's Cambium database
- **ElectricUtility.renewable_energy_fraction_series** to supply a custom grid clean or renewable energy scalar or series
Expand Down
4 changes: 2 additions & 2 deletions julia_src/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -922,9 +922,9 @@ 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 = "9946abe774e30d82f786e68296ad1fdf8bb7dba4"
git-tree-sha1 = "0790dface6f78d2cadae8020470a4e73ee531f93"
uuid = "d36ad4e8-d74a-4f7a-ace1-eaea049febf6"
version = "0.51.1"
version = "0.52.0"

[[deps.Random]]
deps = ["SHA"]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 4.0.7 on 2025-05-08 04:49

import django.core.validators
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('reoptjl', '0084_merge_20250424_1814'),
]

operations = [
migrations.AddField(
model_name='financialinputs',
name='max_initial_capital_costs_before_incentives',
field=models.FloatField(blank=True, help_text='Maximum up-front capital cost for all technologies, excluding replacement costs and incentives [\$].', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(1000000000000.0)]),
),
migrations.AddField(
model_name='financialinputs',
name='min_initial_capital_costs_before_incentives',
field=models.FloatField(blank=True, help_text='Minimum up-front capital cost for all technologies, excluding replacement costs and incentives [\$].', null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(1000000000000.0)]),
),
]
18 changes: 18 additions & 0 deletions reoptjl/migrations/0086_chpoutputs_initial_capital_costs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.0.7 on 2025-05-08 18:51

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('reoptjl', '0085_financialinputs_max_initial_capital_costs_before_incentives_and_more'),
]

operations = [
migrations.AddField(
model_name='chpoutputs',
name='initial_capital_costs',
field=models.FloatField(blank=True, help_text='Initial capital costs of the CHP system, before incentives [\\$]', null=True),
),
]
22 changes: 22 additions & 0 deletions reoptjl/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -786,6 +786,24 @@ class FinancialInputs(BaseModel, models.Model):
default=0.0,
help_text=("Only applicable when off_grid_flag is true. These per year costs are considered tax deductible for owner.")
)
min_initial_capital_costs_before_incentives = models.FloatField(
validators=[
MinValueValidator(0),
MaxValueValidator(1e12)
],
blank=True,
null=True,
help_text=("Minimum up-front capital cost for all technologies, excluding replacement costs and incentives [\$].")
)
max_initial_capital_costs_before_incentives = models.FloatField(
validators=[
MinValueValidator(0),
MaxValueValidator(1e12)
],
blank=True,
null=True,
help_text=("Maximum up-front capital cost for all technologies, excluding replacement costs and incentives [\$].")
)
CO2_cost_per_tonne = models.FloatField(
validators=[
MinValueValidator(0),
Expand Down Expand Up @@ -4728,6 +4746,10 @@ class CHPOutputs(BaseModel, models.Model):
models.FloatField(null=True, blank=True),
default = list,
)
initial_capital_costs = models.FloatField(
null=True, blank=True,
help_text="Initial capital costs of the CHP system, before incentives [\$]"
)

def clean():
pass
Expand Down
4 changes: 3 additions & 1 deletion reoptjl/test/posts/all_inputs_test.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"PM25_onsite_fuelburn_cost_per_tonne": null,
"NOx_cost_escalation_rate_fraction": null,
"SO2_cost_escalation_rate_fraction": null,
"PM25_cost_escalation_rate_fraction": null
"PM25_cost_escalation_rate_fraction": null,
"min_initial_capital_costs_before_incentives": null,
"max_initial_capital_costs_before_incentives": null
},
"ElectricLoad": {
"annual_kwh": 190000.0,
Expand Down