h2integrate 0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- h2integrate-0.2/.git-blame-ignore-revs +10 -0
- h2integrate-0.2/.github/ISSUE_TEMPLATE/bug_report.md +77 -0
- h2integrate-0.2/.github/ISSUE_TEMPLATE/config.yaml +5 -0
- h2integrate-0.2/.github/ISSUE_TEMPLATE/feature_request.md +46 -0
- h2integrate-0.2/.github/PULL_REQUEST_TEMPLATE.md +78 -0
- h2integrate-0.2/.github/workflows/ci.yml +38 -0
- h2integrate-0.2/.github/workflows/ci_docs.yml +21 -0
- h2integrate-0.2/.github/workflows/gh_pages.yml +52 -0
- h2integrate-0.2/.github/workflows/pre-commit.yml +18 -0
- h2integrate-0.2/.github/workflows/publish_to_pypi.yml +31 -0
- h2integrate-0.2/.github/workflows/publish_to_test_pypi.yml +33 -0
- h2integrate-0.2/.gitignore +132 -0
- h2integrate-0.2/.pre-commit-config.yaml +34 -0
- h2integrate-0.2/CHANGELOG.md +59 -0
- h2integrate-0.2/LICENSE +31 -0
- h2integrate-0.2/PKG-INFO +361 -0
- h2integrate-0.2/README.md +242 -0
- h2integrate-0.2/docs/CONTRIBUTING.md +114 -0
- h2integrate-0.2/docs/_autosummary/greenheart.simulation.greenheart_simulation.rst +33 -0
- h2integrate-0.2/docs/_autosummary/greenheart.tools.optimization.openmdao.rst +23 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.h2integrate_simulation.rst +33 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.rst +31 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.ammonia.ammonia.rst +37 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.ammonia.rst +30 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.desal.desal_model.rst +16 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.desal.desal_model_eco.rst +16 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.desal.rst +31 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.H2_cost_model.rst +16 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.PEM_H2_LT_electrolyzer.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.PEM_H2_LT_electrolyzer_Clusters.rst +26 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.PEM_costs_Singlitico_model.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.PEM_electrolyzer_IVcurve.rst +26 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.PEM_tools.rst +19 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.optimization_utils_linear.rst +16 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.pem_mass_and_footprint.rst +17 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.rst +41 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.run_PEM_master.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.run_h2_PEM.rst +19 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.electrolysis.run_h2_clusters.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.lined_rock_cavern.lined_rock_cavern.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.lined_rock_cavern.rst +30 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.on_turbine.on_turbine_hydrogen_storage.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.on_turbine.rst +30 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pipe_storage.rst +30 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pipe_storage.underground_pipe_storage.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pressure_vessel.compressed_gas_storage_model_20221021.Compressed_all.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pressure_vessel.compressed_gas_storage_model_20221021.Compressed_gas_function.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pressure_vessel.compressed_gas_storage_model_20221021.rst +31 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pressure_vessel.rst +32 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pressure_vessel.tankinator.rst +25 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.pressure_vessel.von_mises.rst +22 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.rst +35 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.salt_cavern.rst +30 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.salt_cavern.salt_cavern.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_storage.storage_sizing.rst +16 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_transport.h2_compression.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_transport.h2_export_pipe.rst +21 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_transport.h2_pipe_array.rst +17 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.h2_transport.rst +32 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.hydrogen.rst +33 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.offshore.all_platforms.rst +17 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.offshore.fixed_platform.rst +27 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.offshore.floating_platform.rst +27 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.offshore.rst +32 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.rst +33 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.steel.rst +30 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.simulation.technologies.steel.steel.rst +37 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.eco.electrolysis.rst +19 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.eco.finance.rst +36 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.eco.hopp_mgmt.rst +17 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.eco.hydrogen_mgmt.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.eco.rst +34 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.eco.utilities.rst +23 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.optimization.fileIO.rst +17 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.optimization.gc_PoseOptimization.rst +20 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.optimization.gc_run_greenheart.rst +16 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.optimization.mpi_tools.rst +19 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.optimization.openmdao.rst +23 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.optimization.rst +34 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.plant_sizing_estimation.rst +17 -0
- h2integrate-0.2/docs/_autosummary/h2integrate.tools.rst +32 -0
- h2integrate-0.2/docs/_config.yml +94 -0
- h2integrate-0.2/docs/_toc.yml +39 -0
- h2integrate-0.2/docs/api.md +12 -0
- h2integrate-0.2/docs/build_book.sh +2 -0
- h2integrate-0.2/docs/developer_guide/adding_a_new_technology.md +159 -0
- h2integrate-0.2/docs/developer_guide/class_structure.md +23 -0
- h2integrate-0.2/docs/developer_guide/coding_guidelines.md +15 -0
- h2integrate-0.2/docs/developer_guide/describing_whats_in_classes.md +36 -0
- h2integrate-0.2/docs/developer_guide/features_not_currently_implemented.md +12 -0
- h2integrate-0.2/docs/developer_guide/why_make_h2integrate.md +81 -0
- h2integrate-0.2/docs/examples/01-green-hydrogen.ipynb +386 -0
- h2integrate-0.2/docs/getting_started/expected_user_knowledge.md +34 -0
- h2integrate-0.2/docs/getting_started/install.md +166 -0
- h2integrate-0.2/docs/getting_started/what_h2integrate_does.md +6 -0
- h2integrate-0.2/docs/intro.md +13 -0
- h2integrate-0.2/docs/misc_resources/FAQ.md +15 -0
- h2integrate-0.2/docs/misc_resources/glossary.md +17 -0
- h2integrate-0.2/docs/user_guide/user_guide.md +11 -0
- h2integrate-0.2/environment.yml +10 -0
- h2integrate-0.2/examples/01-green-hydrogen.ipynb +441 -0
- h2integrate-0.2/examples/02-green-steel.ipynb +402 -0
- h2integrate-0.2/examples/03-green-ammonia.ipynb +387 -0
- h2integrate-0.2/examples/04-PEM_electrolyzer.ipynb +879 -0
- h2integrate-0.2/examples/README.md +53 -0
- h2integrate-0.2/examples/__init__.py +0 -0
- h2integrate-0.2/examples/inputs/floris/floris_input_lbw_6MW.yaml +70 -0
- h2integrate-0.2/examples/inputs/plant/default_fin_config.yaml +39 -0
- h2integrate-0.2/examples/inputs/plant/h2integrate_config_onshore-ammonia.yaml +360 -0
- h2integrate-0.2/examples/inputs/plant/h2integrate_config_onshore-hydrogen.yaml +308 -0
- h2integrate-0.2/examples/inputs/plant/h2integrate_config_onshore-steel.yaml +406 -0
- h2integrate-0.2/examples/inputs/plant/hopp_config.yaml +73 -0
- h2integrate-0.2/examples/inputs/power_profile/renewable_power_signal.csv +8761 -0
- h2integrate-0.2/examples/inputs/turbines/lbw_6MW.yaml +173 -0
- h2integrate-0.2/examples/inputs/weather/solar/47.5233_-92.5366_psmv3_60_2013.csv +8763 -0
- h2integrate-0.2/examples/inputs/weather/wind/47.5233_-92.5366_windtoolkit_2013_60min_100m_120m.srw +8765 -0
- h2integrate-0.2/h2integrate/__init__.py +1 -0
- h2integrate-0.2/h2integrate/simulation/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/h2integrate_simulation.py +2429 -0
- h2integrate-0.2/h2integrate/simulation/technologies/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/ammonia/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/ammonia/ammonia.py +711 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/__init__.py +1 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/desal/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/desal/desal_model.py +167 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/desal/desal_model_eco.py +136 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/H2_cost_model.py +342 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_BOP/BOP_efficiency_BOL.csv +87 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_BOP/PEM_BOP.py +136 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_BOP/README.md +26 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_H2_LT_electrolyzer.py +516 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_H2_LT_electrolyzer_Clusters.py +1171 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_costs_Singlitico_model.py +400 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_costs_custom.py +24 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_electrolyzer_IVcurve.py +657 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/PEM_tools.py +58 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/__init__.py +13 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/optimization_utils_linear.py +200 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/pem_cost_tools.py +197 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/pem_mass_and_footprint.py +93 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/run_PEM_master.py +289 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/run_h2_PEM.py +239 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/run_h2_PEM_eco.py +110 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/run_h2_clusters.py +233 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/electrolysis/test_opt.ipynb +146 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/Bulk Hydrogen Cost as Function of Capacity.docx +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/lined_rock_cavern/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/lined_rock_cavern/lined_rock_cavern.py +179 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/on_turbine/README.md +117 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/on_turbine/__init__.py +3 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/on_turbine/on_turbine_hydrogen_storage.py +527 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pipe_storage/__init__.py +3 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pipe_storage/underground_pipe_storage.py +187 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/__init__.py +8 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/compressed_gas_storage_model_20221021/Compressed_all.py +255 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/compressed_gas_storage_model_20221021/Compressed_gas_function.py +791 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/compressed_gas_storage_model_20221021/README.md +54 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/compressed_gas_storage_model_20221021/Tankinator.xlsx +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/compressed_gas_storage_model_20221021/__init__.py +6 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/material_properties.json +503 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/tankinator.py +818 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/pressure_vessel/von_mises.py +97 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/salt_cavern/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/salt_cavern/salt_cavern.py +179 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_storage/storage_sizing.py +84 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/data_tables/pipe_dimensions_metric.csv +44 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/data_tables/steel_costs_per_kg.csv +10 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/data_tables/steel_mechanical_props.csv +11 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/h2_compression.py +206 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/h2_export_pipe.py +436 -0
- h2integrate-0.2/h2integrate/simulation/technologies/hydrogen/h2_transport/h2_pipe_array.py +126 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/iron.py +365 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/load_top_down_coeffs.py +74 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/cost_coeffs.csv +27 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/cost_inputs.csv +27 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/cost_model.py +126 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/finance_model.py +212 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/perf_coeffs.csv +29 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/perf_inputs.csv +29 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_ore/perf_model.py +95 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_transport/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_transport/iron_transport.py +146 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/martin_transport/shipping_coords.csv +13 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/model_locations.yaml +53 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/peters/cost_coeffs.csv +3 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/peters/cost_inputs.csv +3 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/peters/cost_model.py +8 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/cost_coeffs.csv +38 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/cost_inputs.csv +72 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/cost_model.py +329 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/finance_model.py +262 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/perf_coeffs.csv +145 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/perf_inputs.csv +145 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner/perf_model.py +106 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner_ore/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner_ore/finance_model.py +210 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner_override/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/rosner_override/finance_model.py +265 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/stinn/cost_coeffs.csv +8 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/stinn/cost_model.py +126 -0
- h2integrate-0.2/h2integrate/simulation/technologies/iron/top_down_coeffs.csv +18 -0
- h2integrate-0.2/h2integrate/simulation/technologies/offshore/__init__.py +8 -0
- h2integrate-0.2/h2integrate/simulation/technologies/offshore/all_platforms.py +65 -0
- h2integrate-0.2/h2integrate/simulation/technologies/offshore/example_fixed_project.yaml +16 -0
- h2integrate-0.2/h2integrate/simulation/technologies/offshore/example_floating_project.yaml +16 -0
- h2integrate-0.2/h2integrate/simulation/technologies/offshore/fixed_platform.py +311 -0
- h2integrate-0.2/h2integrate/simulation/technologies/offshore/floating_platform.py +357 -0
- h2integrate-0.2/h2integrate/simulation/technologies/steel/__init__.py +0 -0
- h2integrate-0.2/h2integrate/simulation/technologies/steel/steel.py +951 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/2020ATB_NREL_Reference_7MW_200.csv +90 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/H2AModel.py +1323 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/LCA_single_scenario.py +202 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/LCA_single_scenario_ProFAST.py +221 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/__init__.py +0 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/compressor.py +160 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/h2_main.py +728 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/h2_optimize_gf.py +145 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/h2_setup_optimize.py +708 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/hopp_for_h2.py +237 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/hopp_for_h2_floris.py +226 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/hydrogen_steel_pipe_cost_functions.py +230 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/run_h2a.py +97 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/simple_cash_annuals.py +37 -0
- h2integrate-0.2/h2integrate/to_organize/H2_Analysis/simple_dispatch.py +64 -0
- h2integrate-0.2/h2integrate/to_organize/__init__.py +0 -0
- h2integrate-0.2/h2integrate/to_organize/distributed_pipe_cost_analysis.py +265 -0
- h2integrate-0.2/h2integrate/to_organize/gradient_free.py +702 -0
- h2integrate-0.2/h2integrate/to_organize/hopp_tools_steel.py +3680 -0
- h2integrate-0.2/h2integrate/to_organize/hopp_tools_steel_EPR_12oct2023.py +3758 -0
- h2integrate-0.2/h2integrate/to_organize/hydrogen_steel_pipe_cost_functions.py +231 -0
- h2integrate-0.2/h2integrate/to_organize/inputs_py.py +223 -0
- h2integrate-0.2/h2integrate/to_organize/pipelineASME.py +314 -0
- h2integrate-0.2/h2integrate/to_organize/plot_battery.py +145 -0
- h2integrate-0.2/h2integrate/to_organize/plot_power_to_load.py +154 -0
- h2integrate-0.2/h2integrate/to_organize/plot_reopt_results.py +168 -0
- h2integrate-0.2/h2integrate/to_organize/plot_results.py +315 -0
- h2integrate-0.2/h2integrate/to_organize/plot_shortfall_curtailment.py +99 -0
- h2integrate-0.2/h2integrate/to_organize/probably_to_project/__init__.py +0 -0
- h2integrate-0.2/h2integrate/to_organize/probably_to_project/landbased_nationwide_LCOH.py +548 -0
- h2integrate-0.2/h2integrate/to_organize/probably_to_project/osw-h2.py +21 -0
- h2integrate-0.2/h2integrate/to_organize/probably_to_project/osw_h2_LCOH.py +720 -0
- h2integrate-0.2/h2integrate/to_organize/probably_to_project/run_generation_only.py +291 -0
- h2integrate-0.2/h2integrate/to_organize/probably_to_project/steel_model.py +861 -0
- h2integrate-0.2/h2integrate/to_organize/run_RODeO.py +515 -0
- h2integrate-0.2/h2integrate/to_organize/run_profast_for_ammonia.py +441 -0
- h2integrate-0.2/h2integrate/to_organize/run_profast_for_h2_transmission.py +284 -0
- h2integrate-0.2/h2integrate/to_organize/run_profast_for_hydrogen.py +1064 -0
- h2integrate-0.2/h2integrate/to_organize/run_profast_for_steel.py +670 -0
- h2integrate-0.2/h2integrate/to_organize/run_reopt.py +293 -0
- h2integrate-0.2/h2integrate/tools/__init__.py +0 -0
- h2integrate-0.2/h2integrate/tools/eco/__init__.py +5 -0
- h2integrate-0.2/h2integrate/tools/eco/electrolysis.py +583 -0
- h2integrate-0.2/h2integrate/tools/eco/finance.py +1834 -0
- h2integrate-0.2/h2integrate/tools/eco/hopp_mgmt.py +198 -0
- h2integrate-0.2/h2integrate/tools/eco/hydrogen_mgmt.py +612 -0
- h2integrate-0.2/h2integrate/tools/eco/utilities.py +3679 -0
- h2integrate-0.2/h2integrate/tools/h2integrate_sim_file_utils.py +260 -0
- h2integrate-0.2/h2integrate/tools/inflation/cepci.csv +29 -0
- h2integrate-0.2/h2integrate/tools/inflation/cpi.csv +16 -0
- h2integrate-0.2/h2integrate/tools/inflation/inflate.py +26 -0
- h2integrate-0.2/h2integrate/tools/optimization/__init__.py +0 -0
- h2integrate-0.2/h2integrate/tools/optimization/fileIO.py +112 -0
- h2integrate-0.2/h2integrate/tools/optimization/gc_PoseOptimization.py +662 -0
- h2integrate-0.2/h2integrate/tools/optimization/gc_run_h2integrate.py +238 -0
- h2integrate-0.2/h2integrate/tools/optimization/mpi_tools.py +149 -0
- h2integrate-0.2/h2integrate/tools/optimization/openmdao.py +463 -0
- h2integrate-0.2/h2integrate/tools/plant_sizing_estimation.py +83 -0
- h2integrate-0.2/h2integrate/tools/plot.py +250 -0
- h2integrate-0.2/h2integrate/tools/profast_reverse_tools.py +122 -0
- h2integrate-0.2/h2integrate/tools/profast_tools.py +263 -0
- h2integrate-0.2/h2integrate.egg-info/PKG-INFO +361 -0
- h2integrate-0.2/h2integrate.egg-info/SOURCES.txt +357 -0
- h2integrate-0.2/h2integrate.egg-info/dependency_links.txt +1 -0
- h2integrate-0.2/h2integrate.egg-info/requires.txt +61 -0
- h2integrate-0.2/h2integrate.egg-info/top_level.txt +1 -0
- h2integrate-0.2/pyproject.toml +270 -0
- h2integrate-0.2/resource_files/grid/dispatch_factors_ts.csv +8760 -0
- h2integrate-0.2/resource_files/grid/pricing-data-2015-IronMtn-002_factors.csv +8760 -0
- h2integrate-0.2/resource_files/site_details.csv +2 -0
- h2integrate-0.2/resource_files/solar/27.18624_-96.9516_psmv3_60_2013.csv +8763 -0
- h2integrate-0.2/resource_files/solar/34.22_-102.75_psmv3_60_2013.csv +8763 -0
- h2integrate-0.2/resource_files/solar/34.865371_-116.783023_psmv3_60_tmy.csv +8763 -0
- h2integrate-0.2/resource_files/solar/35.2018863_-101.945027_psmv3_60_2012.csv +8763 -0
- h2integrate-0.2/resource_files/solar/39.7555_-105.2211_psmv3_60_2012.csv +8763 -0
- h2integrate-0.2/resource_files/solar/47.5233_-92.5366_psmv3_60_2013.csv +8763 -0
- h2integrate-0.2/resource_files/utility_rate_response.json +1 -0
- h2integrate-0.2/resource_files/wave/Wave_resource_timeseries.csv +2923 -0
- h2integrate-0.2/resource_files/wind/27.18624_-96.9516_windtoolkit_2013_60min_160m_200m.srw +8765 -0
- h2integrate-0.2/resource_files/wind/34.22_-102.75_windtoolkit_2013_60min_100m_120m.srw +8765 -0
- h2integrate-0.2/resource_files/wind/35.2018863_-101.945027_windtoolkit_2012_60min_100m.srw +8765 -0
- h2integrate-0.2/resource_files/wind/35.2018863_-101.945027_windtoolkit_2012_60min_80m_100m.srw +8765 -0
- h2integrate-0.2/resource_files/wind/47.5233_-92.5366_windtoolkit_2013_60min_100m_120m.srw +8765 -0
- h2integrate-0.2/setup.cfg +4 -0
- h2integrate-0.2/tests/__init__.py +3 -0
- h2integrate-0.2/tests/conftest.py +16 -0
- h2integrate-0.2/tests/h2integrate/input_files/floris/floris_input_osw_18MW.yaml +118 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/default_fin_config.yaml +39 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/h2integrate_config.yaml +344 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/h2integrate_config_onshore.yaml +368 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/hopp_config.yaml +51 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/hopp_config_wind_wave.yaml +83 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/hopp_config_wind_wave_solar.yaml +88 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/hopp_config_wind_wave_solar_battery.yaml +105 -0
- h2integrate-0.2/tests/h2integrate/input_files/plant/orbit-config-osw_18MW-stripped.yaml +68 -0
- h2integrate-0.2/tests/h2integrate/input_files/turbines/osw_18MW.yaml +204 -0
- h2integrate-0.2/tests/h2integrate/inputs/floris_input.yaml +241 -0
- h2integrate-0.2/tests/h2integrate/inputs/hopp_config.yaml +47 -0
- h2integrate-0.2/tests/h2integrate/test_ammonia.py +194 -0
- h2integrate-0.2/tests/h2integrate/test_finance.py +39 -0
- h2integrate-0.2/tests/h2integrate/test_greenheart_system.py +491 -0
- h2integrate-0.2/tests/h2integrate/test_greenheart_utilities.py +43 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/floris/floris_input_lbw_6MW.yaml +78 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/default_fin_config.yaml +39 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/h2integrate_config_onshore_mn_2030.yaml +318 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/h2integrate_config_onshore_tx_2025.yaml +271 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/h2integrate_config_onshore_tx_2030.yaml +271 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/h2integrate_config_onshore_tx_2035.yaml +271 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/hopp_config_mn_2030.yaml +73 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/hopp_config_tx_2025.yaml +73 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/hopp_config_tx_2030.yaml +73 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/plant/hopp_config_tx_2035.yaml +73 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/input/turbines/lbw_6MW.yaml +175 -0
- h2integrate-0.2/tests/h2integrate/test_greensteel/test_greensteel.py +451 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/input_files/GS_gridonly_power_signal.csv +8761 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/input_files/GS_offgrid_power_signal.csv +8761 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_PEM_bop.py +97 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_PEM_costs_Singlitico_model.py +79 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_PEM_costs_custom.py +24 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_RO_desal.py +72 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_basic_h2_cost.py +190 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_electrolyzer_physics.py +264 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_h2_transport/test_h2_compressor.py +80 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_h2_transport/test_h2_export_pipeline.py +132 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_h2_transport/test_h2_pipe_array.py +63 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_lined_rock_storage.py +64 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_pem_mass_and_footprint.py +18 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_pressure_vessel.py +317 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_pressurized_turbine.py +485 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_salt_cavern_storage.py +62 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_tankinator.py +348 -0
- h2integrate-0.2/tests/h2integrate/test_hydrogen/test_underground_pipe_storage.py +66 -0
- h2integrate-0.2/tests/h2integrate/test_iron/input/default_fin_config.yaml +39 -0
- h2integrate-0.2/tests/h2integrate/test_iron/input/h2integrate_config_modular.yaml +403 -0
- h2integrate-0.2/tests/h2integrate/test_iron/input/hopp_config.yaml +73 -0
- h2integrate-0.2/tests/h2integrate/test_iron/test_full_iron_process.py +51 -0
- h2integrate-0.2/tests/h2integrate/test_iron/test_iron_ore.py +191 -0
- h2integrate-0.2/tests/h2integrate/test_iron/test_iron_post.py +209 -0
- h2integrate-0.2/tests/h2integrate/test_iron/test_iron_win.py +211 -0
- h2integrate-0.2/tests/h2integrate/test_offshore/__init__.py +0 -0
- h2integrate-0.2/tests/h2integrate/test_offshore/test_fixed_platform.py +80 -0
- h2integrate-0.2/tests/h2integrate/test_offshore/test_floating_platform.py +102 -0
- h2integrate-0.2/tests/h2integrate/test_openmdao.py +446 -0
- h2integrate-0.2/tests/h2integrate/test_openmdao_mpi.py +208 -0
- h2integrate-0.2/tests/h2integrate/test_steel.py +298 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Migrate code style to Ruff linting and formatting
|
|
2
|
+
5010f84683f4e8c46c562c5f9cd9c17cc1459c1f
|
|
3
|
+
1c9b986be16d87df1b8b0e351c9b839b6a3d8aed
|
|
4
|
+
6208b1fcdafb48b11048dac173813d80bba6c9d9
|
|
5
|
+
b7ffc2b8e4a821680ce354e59c7362db8aa53197
|
|
6
|
+
1ebbf6b32435bff565b628cde2a28c599a1a99ef
|
|
7
|
+
ce9f96cd49ff9dbbcf75c3a32ff300515c9fa593
|
|
8
|
+
3e8d3abd343569833ece0ab4f4048a4bf43d0a94
|
|
9
|
+
9f3f5c14e406aca284d01d6dd3b9c89e3c439acb
|
|
10
|
+
36d49ab2c959ff26736c5ee01f5bcc8fd11ec24e
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Report a bug to help us improve
|
|
4
|
+
title: 'Bug report'
|
|
5
|
+
labels: "Type: Bug"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
Thank you for taking the time to report a bug. If you aren't certain whether an issue
|
|
10
|
+
is a bug, please first open a Discussion. Before submitting, please reread your
|
|
11
|
+
description to ensure that other readers can reasonably understand the issue
|
|
12
|
+
you're facing and the impact on your workflow or results.
|
|
13
|
+
|
|
14
|
+
IMPORTANT NOTES
|
|
15
|
+
|
|
16
|
+
1. Replace all example text (contained in "<>") or anywhere specifically commenting to replace the
|
|
17
|
+
text, leaving any guiding HTML comments in place (formatted like this large block so it won't
|
|
18
|
+
show up in your Bug Report text.)
|
|
19
|
+
2. Use GH flavored markdown: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax,
|
|
20
|
+
especially for code snippets, which should look like the following:
|
|
21
|
+
```python
|
|
22
|
+
a = 1
|
|
23
|
+
b = 2
|
|
24
|
+
print(a + b)
|
|
25
|
+
```
|
|
26
|
+
3. Please be as thorough as possible when describing what went wrong, and what was expected from a
|
|
27
|
+
correct solution. The amount of information required to describe the bug may differ, but more
|
|
28
|
+
information is always helpful to ensure you receive the help you need.
|
|
29
|
+
-->
|
|
30
|
+
|
|
31
|
+
<!--The title should clearly define the issue succinctly.-->
|
|
32
|
+
# Add meaningful title here
|
|
33
|
+
|
|
34
|
+
<!-- Describe your bug/issue here using as much detail as necessary. -->
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
## How to reproduce
|
|
38
|
+
|
|
39
|
+
<!-- Describe how another person with no context can recreate this issue. -->
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## Relevant output
|
|
43
|
+
|
|
44
|
+
<!-- Include any output, plots, tracebacks, or other means of communication here to add context to
|
|
45
|
+
the problem. All code and full tracebacks should be properly markdown formatted. -->
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
## System Information
|
|
49
|
+
<!-- Add your information here. -->
|
|
50
|
+
- OS: <macOS 12.4>
|
|
51
|
+
<!-- e.g. Ubuntu 20.04 or macOS 10.12 -->
|
|
52
|
+
- Python version: <3.10.4>
|
|
53
|
+
<!-- All OS: `python --version`-->
|
|
54
|
+
- H2Integrate version: <0.1.1>
|
|
55
|
+
<!--
|
|
56
|
+
Unix: pip freeze | grep h2integrate | awk -F"git@" '/git@/{print $2}' | awk -F"#egg" '/#egg/{print $1}'
|
|
57
|
+
Windows: `pip list --format freeze | findstr h2integrate`
|
|
58
|
+
-->
|
|
59
|
+
- <Installed from source using an editable installation with developer tools: `pip install -e .[develop]`>
|
|
60
|
+
- Commit hash: <commit-hash>
|
|
61
|
+
<!--
|
|
62
|
+
Unix: `pip freeze | grep h2integrate | awk -F"git@" '/git@/{print $2}' | awk -F"#egg" '/#egg/{print $1}'`
|
|
63
|
+
Windows: `pip freeze | findstr h2integrate`, then copy the full git hash between "git@" and "#egg"
|
|
64
|
+
-->
|
|
65
|
+
|
|
66
|
+
### Relevant library versions
|
|
67
|
+
<!--
|
|
68
|
+
Use `pip freeze` to gather the relevant versions, and use the markdown table formatting as
|
|
69
|
+
demonstrated below to replacing all relevant packages and their versions.
|
|
70
|
+
-->
|
|
71
|
+
| Package | Version |
|
|
72
|
+
| ------- | ------- |
|
|
73
|
+
| hopp | <3.1.1> |
|
|
74
|
+
| numpy | <1.26.4> |
|
|
75
|
+
| Pyomo | <6.8.0> |
|
|
76
|
+
| scipy | <1.14.1> |
|
|
77
|
+
| <another-relevant-package> | <version> |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: 'Feature request'
|
|
5
|
+
labels: 'Type: Enhancement'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<!--
|
|
9
|
+
Thank you for taking the time to suggest a feature. Before submitting,
|
|
10
|
+
please reread your description to ensure that other readers can reasonably
|
|
11
|
+
understand the motivation and proposed solution.
|
|
12
|
+
|
|
13
|
+
IMPORTANT NOTES
|
|
14
|
+
|
|
15
|
+
1. Leave all HTML comments in place (formatted like this large block so it won't show up in
|
|
16
|
+
your Feature Request text.)
|
|
17
|
+
2. Use GH flavored markdown: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax,
|
|
18
|
+
especially for code snippets, which should look like the following:
|
|
19
|
+
```python
|
|
20
|
+
a = 1
|
|
21
|
+
b = 2
|
|
22
|
+
print(a + b)
|
|
23
|
+
```
|
|
24
|
+
3. Please be as thorough as possible when describing what the proposed enhancement or feature should
|
|
25
|
+
do, including any finer details to guide implementation.
|
|
26
|
+
-->
|
|
27
|
+
|
|
28
|
+
<!--The title should clearly define the feature request/enhancement succinctly.-->
|
|
29
|
+
# Add meaningful title here
|
|
30
|
+
|
|
31
|
+
<!-- Describe the desired enhancement. -->
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## Proposed solution
|
|
35
|
+
|
|
36
|
+
<!-- Please include pseudocode (markdown-formatted), images, or any other visual aids to communicate the idea. -->
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
## Alternatives considered
|
|
40
|
+
|
|
41
|
+
<!-- Describe workarounds or alternatives even if hacky or incomplete. Sometimes these are the best solution! -->
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Additional context
|
|
45
|
+
|
|
46
|
+
<!-- Provide anything else that helps to communicate the idea here. -->
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
|
|
2
|
+
<!--
|
|
3
|
+
IMPORTANT NOTES
|
|
4
|
+
|
|
5
|
+
1. Use GH flavored markdown when writing your description:
|
|
6
|
+
https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax
|
|
7
|
+
|
|
8
|
+
2. If all boxes in the PR Checklist cannot be checked, this PR should be marked as a draft.
|
|
9
|
+
|
|
10
|
+
3. DO NOT DELTE ANYTHING FROM THIS TEMPLATE. If a section does not apply to you, simply write
|
|
11
|
+
"N/A" in the description.
|
|
12
|
+
|
|
13
|
+
4. Code snippets to highlight new, modified, or problematic functionality are highly encouraged,
|
|
14
|
+
though not required. Be sure to use proper code higlighting as demonstrated below.
|
|
15
|
+
|
|
16
|
+
```python
|
|
17
|
+
def a_func():
|
|
18
|
+
return 1
|
|
19
|
+
|
|
20
|
+
a = 1
|
|
21
|
+
b = a_func()
|
|
22
|
+
print(a + b)
|
|
23
|
+
```
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
<!--The title should clearly define your contribution succinctly.-->
|
|
27
|
+
# Add meaningful title here
|
|
28
|
+
|
|
29
|
+
<!-- Describe your feature here. Please include any code snippets or examples in this section. -->
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## PR Checklist
|
|
33
|
+
|
|
34
|
+
<!--Tick these boxes if they are complete, or format them as "[x]" for the markdown to render. -->
|
|
35
|
+
- [ ] `CHANGELOG.md` has been updated to describe the changes made in this PR
|
|
36
|
+
- [ ] Documentation
|
|
37
|
+
- [ ] Docstrings are up-to-date
|
|
38
|
+
- [ ] Related `docs/` files are up-to-date, or added when necessary
|
|
39
|
+
- [ ] Documentation has been rebuilt successfully
|
|
40
|
+
- [ ] Examples have been updated
|
|
41
|
+
- [ ] Tests pass (If not, and this is expected, please elaborate in the tests section)
|
|
42
|
+
- [ ] PR description thoroughly describes the new feature, bug fix, etc.
|
|
43
|
+
|
|
44
|
+
## Related issues
|
|
45
|
+
|
|
46
|
+
<!--If one exists, link to a related GitHub Issue.-->
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## Impacted areas of the software
|
|
50
|
+
|
|
51
|
+
<!--
|
|
52
|
+
Replace the below example with any added or modified files, and briefly describe what has been changed or added, and why.
|
|
53
|
+
-->
|
|
54
|
+
- `path/to/file.extension`
|
|
55
|
+
- `method1`: What and why something was changed in one sentence or less.
|
|
56
|
+
|
|
57
|
+
## Additional supporting information
|
|
58
|
+
|
|
59
|
+
<!--Add any other context about the problem here.-->
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## Test results, if applicable
|
|
63
|
+
|
|
64
|
+
<!--
|
|
65
|
+
Add the results from unit tests and regression tests here along with justification for any
|
|
66
|
+
failing test cases.
|
|
67
|
+
-->
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
<!--
|
|
71
|
+
__ For NREL use __
|
|
72
|
+
Release checklist:
|
|
73
|
+
- [ ] Update the version in h2integrate/__init__.py
|
|
74
|
+
- [ ] Verify docs builds correctly
|
|
75
|
+
- [ ] Create a tag on the main branch in the NREL/H2Integrate repository and push
|
|
76
|
+
- [ ] Ensure the Test PyPI build is successful
|
|
77
|
+
- [ ] Create a release on the main branch
|
|
78
|
+
-->
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: Testing
|
|
2
|
+
|
|
3
|
+
on: [ push, pull_request ]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
strategy:
|
|
9
|
+
matrix:
|
|
10
|
+
python-version: ["3.10", "3.11"]
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v3
|
|
14
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
15
|
+
uses: actions/setup-python@v3
|
|
16
|
+
with:
|
|
17
|
+
python-version: ${{ matrix.python-version }}
|
|
18
|
+
- name: Install dependencies
|
|
19
|
+
env:
|
|
20
|
+
SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL: True
|
|
21
|
+
run: |
|
|
22
|
+
sudo apt-get update && sudo apt-get install -y libglpk-dev glpk-utils coinor-cbc
|
|
23
|
+
python -m pip install --upgrade pip
|
|
24
|
+
pip install git+https://github.com/NREL/HOPP@develop
|
|
25
|
+
pip install ".[develop]"
|
|
26
|
+
- name: Create env file
|
|
27
|
+
run: |
|
|
28
|
+
touch .env
|
|
29
|
+
# echo NREL_API_KEY=${{ secrets.NREL_API_KEY }} >> .env
|
|
30
|
+
# cat .env
|
|
31
|
+
- name: Run tests
|
|
32
|
+
run: |
|
|
33
|
+
PYTHONPATH=. pytest tests
|
|
34
|
+
- name: Lint with flake8
|
|
35
|
+
run: |
|
|
36
|
+
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
|
37
|
+
pip install flake8
|
|
38
|
+
flake8 . --count --exit-zero --statistics --ignore=E501
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Test Documentation Build
|
|
2
|
+
|
|
3
|
+
on: [ push, pull_request ]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@v4
|
|
11
|
+
- name: Set up Python
|
|
12
|
+
uses: actions/setup-python@v5
|
|
13
|
+
with:
|
|
14
|
+
python-version: 3.11
|
|
15
|
+
- name: Install dependencies
|
|
16
|
+
run: |
|
|
17
|
+
pip install git+https://github.com/NREL/HOPP@develop
|
|
18
|
+
pip install ".[develop]"
|
|
19
|
+
- name: Build documentation
|
|
20
|
+
run: |
|
|
21
|
+
jupyter-book build docs/
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
name: deploy-book
|
|
2
|
+
|
|
3
|
+
# Run this when the master or main branch changes
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
deploy-book:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
pages: write
|
|
14
|
+
id-token: write
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
|
|
18
|
+
- name: Set up Python 3.11
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: 3.11
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: |
|
|
25
|
+
pip install git+https://github.com/NREL/HOPP@develop
|
|
26
|
+
pip install -e ".[develop]"
|
|
27
|
+
|
|
28
|
+
# (optional) Cache your executed notebooks between runs
|
|
29
|
+
# if you have config:
|
|
30
|
+
# execute:
|
|
31
|
+
# execute_notebooks: cache
|
|
32
|
+
# - name: cache executed notebooks
|
|
33
|
+
# uses: actions/cache@v3
|
|
34
|
+
# with:
|
|
35
|
+
# path: _build/.jupyter_cache
|
|
36
|
+
# key: jupyter-book-cache-${{ hashFiles('requirements.txt') }}
|
|
37
|
+
|
|
38
|
+
# Build the book
|
|
39
|
+
- name: Build the book
|
|
40
|
+
run: |
|
|
41
|
+
jupyter-book build docs/
|
|
42
|
+
|
|
43
|
+
# Upload the book's HTML as an artifact
|
|
44
|
+
- name: Upload artifact
|
|
45
|
+
uses: actions/upload-pages-artifact@v3
|
|
46
|
+
with:
|
|
47
|
+
path: "docs/_build/html"
|
|
48
|
+
|
|
49
|
+
# Deploy the book's HTML to GitHub Pages
|
|
50
|
+
- name: Deploy to GitHub Pages
|
|
51
|
+
id: deployment
|
|
52
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: pre-commit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
pre-commit:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- name: Set up Python
|
|
14
|
+
uses: actions/setup-python@v5
|
|
15
|
+
with:
|
|
16
|
+
python-version: 3.9
|
|
17
|
+
- name: Run pre-commit
|
|
18
|
+
uses: pre-commit/action@v3.0.1
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: Upload to PyPi
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
deploy:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
if: github.event.action == 'published'
|
|
11
|
+
environment:
|
|
12
|
+
name: pypi-publishing
|
|
13
|
+
url: https://pypi.org/p/h2integrate
|
|
14
|
+
permissions:
|
|
15
|
+
id-token: write
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- name: Set up Python
|
|
19
|
+
uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: 3.9
|
|
22
|
+
- name: Build package
|
|
23
|
+
run: |
|
|
24
|
+
python -m pip install --upgrade pip
|
|
25
|
+
pip install setuptools build wheel twine
|
|
26
|
+
python -m build
|
|
27
|
+
twine check --strict dist/*
|
|
28
|
+
- name: Publish package to PyPI
|
|
29
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
30
|
+
with:
|
|
31
|
+
verbose: True
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Upload to Test PyPi
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
|
|
12
|
+
environment:
|
|
13
|
+
name: pypi-publishing
|
|
14
|
+
url: https://test.pypi.org/p/h2integrate
|
|
15
|
+
permissions:
|
|
16
|
+
id-token: write
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v5
|
|
21
|
+
with:
|
|
22
|
+
python-version: 3.9
|
|
23
|
+
- name: Build package
|
|
24
|
+
run: |
|
|
25
|
+
python -m pip install --upgrade pip
|
|
26
|
+
pip install setuptools build wheel twine
|
|
27
|
+
python -m build
|
|
28
|
+
twine check --strict dist/*
|
|
29
|
+
- name: Publish package to PyPI
|
|
30
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
31
|
+
with:
|
|
32
|
+
verbose: True
|
|
33
|
+
repository-url: https://test.pypi.org/legacy/
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Created by .ignore support plugin (hsz.mobi)
|
|
2
|
+
### Python template
|
|
3
|
+
# Byte-compiled / optimized / DLL files
|
|
4
|
+
*__pycache__/*
|
|
5
|
+
*.py[cod]
|
|
6
|
+
*$py.class
|
|
7
|
+
*.pyc
|
|
8
|
+
|
|
9
|
+
log/
|
|
10
|
+
# needed for h2 test inputs: tests/analysis/results/
|
|
11
|
+
*_disp.txt
|
|
12
|
+
|
|
13
|
+
.idea/*
|
|
14
|
+
.idea/workspace.xml
|
|
15
|
+
.vscode/
|
|
16
|
+
|
|
17
|
+
.vscode/*
|
|
18
|
+
|
|
19
|
+
# Distribution / packaging
|
|
20
|
+
.Python
|
|
21
|
+
env*/*
|
|
22
|
+
build/
|
|
23
|
+
develop-eggs/
|
|
24
|
+
dist/
|
|
25
|
+
downloads/
|
|
26
|
+
eggs/
|
|
27
|
+
.eggs/
|
|
28
|
+
lib/
|
|
29
|
+
lib64/
|
|
30
|
+
parts/
|
|
31
|
+
sdist/
|
|
32
|
+
var/
|
|
33
|
+
*.egg-info/
|
|
34
|
+
.installed.cfg
|
|
35
|
+
*.egg
|
|
36
|
+
|
|
37
|
+
# PyInstaller
|
|
38
|
+
# Usually these files are written by a python script from a template
|
|
39
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
40
|
+
*.manifest
|
|
41
|
+
*.spec
|
|
42
|
+
|
|
43
|
+
# Installer logs
|
|
44
|
+
pip-log.txt
|
|
45
|
+
pip-delete-this-directory.txt
|
|
46
|
+
|
|
47
|
+
# Unit test / coverage reports
|
|
48
|
+
htmlcov/
|
|
49
|
+
.tox/
|
|
50
|
+
.coverage
|
|
51
|
+
.coverage.*
|
|
52
|
+
.cache
|
|
53
|
+
nosetests.xml
|
|
54
|
+
coverage.xml
|
|
55
|
+
*,cover
|
|
56
|
+
.hypothesis/
|
|
57
|
+
|
|
58
|
+
# Translations
|
|
59
|
+
*.mo
|
|
60
|
+
*.pot
|
|
61
|
+
|
|
62
|
+
# Django stuff:
|
|
63
|
+
*.log
|
|
64
|
+
local_settings.py
|
|
65
|
+
|
|
66
|
+
# Flask stuff:
|
|
67
|
+
instance/
|
|
68
|
+
.webassets-cache
|
|
69
|
+
|
|
70
|
+
# Scrapy stuff:
|
|
71
|
+
.scrapy
|
|
72
|
+
|
|
73
|
+
# Sphinx documentation
|
|
74
|
+
docs/_build/
|
|
75
|
+
|
|
76
|
+
# PyBuilder
|
|
77
|
+
target/
|
|
78
|
+
|
|
79
|
+
# Jupyter Notebook
|
|
80
|
+
.ipynb_checkpoints
|
|
81
|
+
|
|
82
|
+
# pyenv
|
|
83
|
+
.python-version
|
|
84
|
+
|
|
85
|
+
# celery beat schedule file
|
|
86
|
+
celerybeat-schedule
|
|
87
|
+
|
|
88
|
+
# dotenv
|
|
89
|
+
.env
|
|
90
|
+
.envrc
|
|
91
|
+
|
|
92
|
+
# virtualenv
|
|
93
|
+
.venv/
|
|
94
|
+
venv/
|
|
95
|
+
ENV/
|
|
96
|
+
|
|
97
|
+
# Spyder project settings
|
|
98
|
+
.spyderproject
|
|
99
|
+
|
|
100
|
+
# Rope project settings
|
|
101
|
+
.ropeproject
|
|
102
|
+
|
|
103
|
+
# Resource data
|
|
104
|
+
#resource_files/solar/*.csv
|
|
105
|
+
#resource_files/wind/*.srw
|
|
106
|
+
|
|
107
|
+
# Images, datafiles
|
|
108
|
+
*.png
|
|
109
|
+
*.xlsx
|
|
110
|
+
|
|
111
|
+
*.pkl
|
|
112
|
+
.DS_Store
|
|
113
|
+
*.val
|
|
114
|
+
*.db
|
|
115
|
+
*.db-shm
|
|
116
|
+
*.gz
|
|
117
|
+
*.db-wal
|
|
118
|
+
|
|
119
|
+
# H2Integrate structure specific
|
|
120
|
+
tests/h2integrate/data/*
|
|
121
|
+
tests/h2integrate/output.txt
|
|
122
|
+
tests/h2integrate/test_hydrogen/data/*
|
|
123
|
+
tests/h2integrate/test_hydrogen/output.txt
|
|
124
|
+
*speed_dir_data.csv
|
|
125
|
+
examples/h2integrate/*/data
|
|
126
|
+
examples/h2integrate/*/figures
|
|
127
|
+
tests/h2integrate/reports/
|
|
128
|
+
tests/h2integrate/test_hydrogen/output/
|
|
129
|
+
|
|
130
|
+
output*
|
|
131
|
+
snopt_history.txt
|
|
132
|
+
reports/*
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
default_language_version:
|
|
2
|
+
python: python3
|
|
3
|
+
repos:
|
|
4
|
+
- repo: https://github.com/pycqa/isort
|
|
5
|
+
rev: 5.12.0
|
|
6
|
+
hooks:
|
|
7
|
+
- id: isort
|
|
8
|
+
name: isort
|
|
9
|
+
stages: [pre-commit]
|
|
10
|
+
|
|
11
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
12
|
+
rev: v4.5.0
|
|
13
|
+
hooks:
|
|
14
|
+
- id: trailing-whitespace
|
|
15
|
+
- id: end-of-file-fixer
|
|
16
|
+
- id: check-executables-have-shebangs
|
|
17
|
+
- id: check-json
|
|
18
|
+
- id: check-yaml
|
|
19
|
+
args: [--unsafe] # allow Python constructors
|
|
20
|
+
- id: check-merge-conflict
|
|
21
|
+
- id: check-symlinks
|
|
22
|
+
- id: mixed-line-ending
|
|
23
|
+
- id: pretty-format-json
|
|
24
|
+
args: [--autofix]
|
|
25
|
+
|
|
26
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
27
|
+
# Ruff version.
|
|
28
|
+
rev: v0.8.1
|
|
29
|
+
hooks:
|
|
30
|
+
- id: ruff-format
|
|
31
|
+
types_or: [ python, pyi, jupyter ]
|
|
32
|
+
- id: ruff
|
|
33
|
+
types_or: [ python, pyi, jupyter ]
|
|
34
|
+
args: [ --fix, --unsafe-fixes]
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# CHANGELOG
|
|
2
|
+
|
|
3
|
+
## 0.2 [7 April 2025]
|
|
4
|
+
|
|
5
|
+
- Allow users to save the H2IntegrateOutput class as a yaml file and read that yaml to an instance of the output class
|
|
6
|
+
- Include new plotting capabilities: (1) hydrogen storage, production, and dispatch; (2) electricity and hydrogen dispatch
|
|
7
|
+
- Remove reference_plants from examples. Reference plants can now be found in the [ReferenceHybridSystemDesigns](https://github.com/NREL/ReferenceHybridSystemDesigns) repository.
|
|
8
|
+
- Use sentence capitalization for plot labels and legends
|
|
9
|
+
- Use "metric ton" instead of "tonne" or "metric tonne" in all internal naming and plots
|
|
10
|
+
- Fix bug in hydrogen dispatch plotting by storing time series of hydrogen demand by hour
|
|
11
|
+
- Update the PEM efficiency to 51.0 kWh/kg from 54.6 kWh/kg
|
|
12
|
+
- Bumped PySAM version to 6+ and HOPP to 3.2.0
|
|
13
|
+
- Removed defunct conda build and upload scripts
|
|
14
|
+
- Return full solution dictionary from ProFAST, allowing access to CRF and WACC
|
|
15
|
+
- Renamed code from GreenHEART to H2Integrate
|
|
16
|
+
- Added iron processing framework and capabilities [PR 90](https://github.com/NREL/H2Integrate/pull/90)
|
|
17
|
+
- Added Martin and Rosner iron ore models, performance and cost for each [PR 90](https://github.com/NREL/H2Integrate/pull/90)
|
|
18
|
+
- Added Rosner direct reduction iron (DRI) model, performance and cost [PR 90](https://github.com/NREL/H2Integrate/pull/90)
|
|
19
|
+
- Added Martin transport module for performance and cost of iron [PR 90](https://github.com/NREL/H2Integrate/pull/90)
|
|
20
|
+
- Added generalized Stinn cost model for electrolysis of arbitrary materials [PR 90](https://github.com/NREL/H2Integrate/pull/90)
|
|
21
|
+
|
|
22
|
+
## v0.1.4 [4 February 2025]
|
|
23
|
+
|
|
24
|
+
- Adds `CoolProp` to `pyproject.toml`
|
|
25
|
+
- Changes units of `lcoe_real` in `HOPPComponent` from "MW*h" to "kW*h"
|
|
26
|
+
- Adds `pre-commit`, `ruff`, and `isort` checks, and CI workflow to ensure these steps aren't
|
|
27
|
+
skipped.
|
|
28
|
+
- Updates steel cost year to 2022
|
|
29
|
+
- Updates ammonia cost year to 2022
|
|
30
|
+
- Requires HOPP 3.1.1 or higher
|
|
31
|
+
- Updates tests to be compatible with HOPP 3.1.1 with ProFAST integration
|
|
32
|
+
- Removes support for python 3.9
|
|
33
|
+
- Add steel feedstock transport costs (lime, carbon, and iron ore pellets)
|
|
34
|
+
- Allow individual debt rate, equity rate, and debt/equity ratio/split for each subsystem
|
|
35
|
+
- Add initial docs focused on new H2Integrate development
|
|
36
|
+
- New documentation CI pipeline to publish documentation at nrel.github.io/H2Integrate/ and test
|
|
37
|
+
that the documentation site will build on each pull request.
|
|
38
|
+
- Placeholder documentation content has been removed from the site build
|
|
39
|
+
|
|
40
|
+
## v0.1.3 [1 November 2024]
|
|
41
|
+
|
|
42
|
+
- Replaces the git ProFAST installation with a PyPI installation.
|
|
43
|
+
- Removed dependence on external electrolyzer repo
|
|
44
|
+
- Updated CI to use conda environments with reproducible environment artifacts
|
|
45
|
+
- Rename logger from "wisdem/weis" to "h2integrate"
|
|
46
|
+
- Remove unsupported optimization algorithms
|
|
47
|
+
|
|
48
|
+
## v0.1.2 [28 October 2024]
|
|
49
|
+
|
|
50
|
+
- Minor updates to examples for NAWEA workshop.
|
|
51
|
+
- Adds `environment.yml` for easy environment creation and H2Integrate installation.
|
|
52
|
+
|
|
53
|
+
## v0.1.1 [22 October 2024]
|
|
54
|
+
|
|
55
|
+
- ?
|
|
56
|
+
|
|
57
|
+
## v0.1 [16 October 2024]
|
|
58
|
+
|
|
59
|
+
- Project has been separated from HOPP and moved into H2Integrate, removing all HOPP infrastructure.
|
h2integrate-0.2/LICENSE
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
**Note: The ProFAST model is distributed with H2Integrate but operates under a separate license agreement. Users must agree to the license terms of ProFAST located at `ProFAST/InternalUseTermsForDownloadableSoftware-ProFAST.docx`.**
|
|
2
|
+
|
|
3
|
+
BSD 3-Clause License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2024, Alliance for Sustainable Energy, LLC
|
|
6
|
+
All rights reserved.
|
|
7
|
+
|
|
8
|
+
Redistribution and use in source and binary forms, with or without
|
|
9
|
+
modification, are permitted provided that the following conditions are met:
|
|
10
|
+
|
|
11
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
12
|
+
list of conditions and the following disclaimer.
|
|
13
|
+
|
|
14
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
15
|
+
this list of conditions and the following disclaimer in the documentation
|
|
16
|
+
and/or other materials provided with the distribution.
|
|
17
|
+
|
|
18
|
+
* Neither the name of the copyright holder nor the names of its
|
|
19
|
+
contributors may be used to endorse or promote products derived from
|
|
20
|
+
this software without specific prior written permission.
|
|
21
|
+
|
|
22
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
23
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
24
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
25
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
26
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
27
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
28
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
29
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
30
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
31
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|