diff --git a/cost/Cost_Database.xlsx b/cost/Cost_Database.xlsx index f184e8a..859fd04 100644 Binary files a/cost/Cost_Database.xlsx and b/cost/Cost_Database.xlsx differ diff --git a/cost/cost_scaling.py b/cost/cost_scaling.py index 2270401..b6f5ecb 100644 --- a/cost/cost_scaling.py +++ b/cost/cost_scaling.py @@ -25,14 +25,21 @@ def non_standard_cost_scale(account, unit_cost, scaling_variable_value, exponent cost = cost_multiplier * unit_cost * pow(scaling_variable_value,exponent) elif account == 253: - if params['Enrichment'] < 0.1: - cost_premium = 1 - elif 0.1 <= params['Enrichment'] < 0.2: - cost_premium = 1.15 - elif 0.2 <= params['Enrichment']: + params['Enrichment Category'] = 'HALEU' if params['Enrichment'] >= 0.1 else 'LEU' + if params['Enrichment'] >= 0.2: print("\033[91m ERROR: Enrichment is too high \033[0m") raise ValueError("Enrichment is too high") - cost = cost_premium * unit_cost *pow(scaling_variable_value,exponent) + + if params['Enrichment Category']== 'LEU': + # LEU: standard commercial SWU pricing + cost = unit_cost * pow(scaling_variable_value,exponent) # unit_cost = $184.2/SWU from DB + else: + # HALEU: premium until sufficient market volume + noak_units = params['NOAK Unit Number'] + haleu_threshold = params.get('HALEU NOAK Threshold', 100) + effective_unit_cost = 184.2 if noak_units >= haleu_threshold else unit_cost # unit_cost = $1000/SWU from DB + cost = effective_unit_cost * pow(scaling_variable_value,exponent) + elif account == 711: cost_multiplier = params['FTEs Per Onsite Operator Per Year'] cost = cost_multiplier * unit_cost * pow(scaling_variable_value,exponent) diff --git a/mouse.egg-info/PKG-INFO b/mouse.egg-info/PKG-INFO new file mode 100644 index 0000000..c3384aa --- /dev/null +++ b/mouse.egg-info/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 2.4 +Name: mouse +Version: 0.1.0 +License-File: LICENSE +License-File: NOTICE.txt +Requires-Dist: numpy +Requires-Dist: pandas +Requires-Dist: openpyxl +Requires-Dist: watts +Dynamic: license-file diff --git a/mouse.egg-info/SOURCES.txt b/mouse.egg-info/SOURCES.txt new file mode 100644 index 0000000..792f577 --- /dev/null +++ b/mouse.egg-info/SOURCES.txt @@ -0,0 +1,40 @@ +LICENSE +NOTICE.txt +README.md +pyproject.toml +assets/__init__.py +core_design/__init__.py +core_design/correction_factor.py +core_design/drums.py +core_design/openmc_materials_database.py +core_design/openmc_template_GCMR.py +core_design/openmc_template_HPMR.py +core_design/openmc_template_LTMR.py +core_design/peaking_factor.py +core_design/pins_arrangement.py +core_design/utils.py +cost/__init__.py +cost/code_of_account_processing.py +cost/cost_escalation.py +cost/cost_estimation.py +cost/cost_scaling.py +cost/non_direct_cost.py +cost/params_registry.py +cost/sampling.py +cost_drivers_and_markets/__init__.py +cost_drivers_and_markets/lcoe.py +cost_drivers_and_markets/retail_price.py +mouse.egg-info/PKG-INFO +mouse.egg-info/SOURCES.txt +mouse.egg-info/dependency_links.txt +mouse.egg-info/requires.txt +mouse.egg-info/top_level.txt +reactor_engineering_evaluation/BOP.py +reactor_engineering_evaluation/__init__.py +reactor_engineering_evaluation/fuel_calcs.py +reactor_engineering_evaluation/operation.py +reactor_engineering_evaluation/tools.py +reactor_engineering_evaluation/vessels_calcs.py +webapp/__init__.py +webapp/app.py +webapp/reactor_config.py \ No newline at end of file diff --git a/mouse.egg-info/requires.txt b/mouse.egg-info/requires.txt new file mode 100644 index 0000000..9115fbf --- /dev/null +++ b/mouse.egg-info/requires.txt @@ -0,0 +1,4 @@ +numpy +pandas +openpyxl +watts diff --git a/mouse.egg-info/top_level.txt b/mouse.egg-info/top_level.txt new file mode 100644 index 0000000..ec42dda --- /dev/null +++ b/mouse.egg-info/top_level.txt @@ -0,0 +1,6 @@ +assets +core_design +cost +cost_drivers_and_markets +reactor_engineering_evaluation +webapp