Check for extraneous or mis-categorized input parameters#647
Draft
elenya-grant wants to merge 12 commits intoNatLabRockies:developfrom
Draft
Check for extraneous or mis-categorized input parameters#647elenya-grant wants to merge 12 commits intoNatLabRockies:developfrom
elenya-grant wants to merge 12 commits intoNatLabRockies:developfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Check for extraneous or mis-categorized input parameters
This PR introduces a route to resolving Issue #251. In this PR - the user-provided technology configuration is compared against the
configattributes of the models that make up that technology after the open-mdao problem has been setup. This is only checked for technologies that have a defined control strategy or dispatch rule set (more than just a cost model and/or a performance model). This is because these are the only cases where models should be using astrict=Falsewhen creating the config attribute (currently, this basically only applies to storage cost, performance, and control models). Ideally, all converter models should, at this time, be using astrict=Truewhen creating their configuration classes, and therefore should not need to be checked after the fact.This will throw an error if the user-provided technology configuration has:
The general methodology/idea is to:
configattribute of each model for that technologyshared_parameterssectionSection 1: Type of Contribution
Section 2: Draft PR Checklist
TODO:
Type of Reviewer Feedback Requested (on Draft PR)
Structural feedback:
Implementation feedback:
Other feedback:
Section 3: General PR Checklist
docs/files are up-to-date, or added when necessaryCHANGELOG.md"A complete thought. [PR XYZ]((https://github.com/NatLabRockies/H2Integrate/pull/XYZ)", where
XYZshould be replaced with the actual number.Section 3: Related Issues
This is intended to resolve, or at least mostly resolve Issue #251
Section 4: Impacted Areas of the Software
Section 4.1: New Files
path/to/file.extensionmethod1: What and why something was changed in one sentence or less.Section 4.2: Modified Files
h2integrate/core/dict_utils.pycheck_inputs(): new method that checks for extra or mis-categorized inputsh2integrate/core/h2integrate_model.py:setup(): added call tocheck_inputsfunctionh2integrate/core/test/test_utilities.pytest_check_inputs(): tests that the check_inputs method works as expectedcreate_om_problem(): new method that is used intest_check_inputsh2integrate/core/test/inputs/no_duplicates.yaml: addeddemand_profileunder the battery performance parameters so that the battery model can be instantiated properlyExamples that need fixed tech configs:
01_onshore_steel_mn: updated combiner, battery, h2_storage02_texas_ammonia: updated combiner, battery, h2_storage12_ammonia_synloop: updated combiner, battery, h2_storage18_pyomo_heuristic_dispatch: updated battery30_pyomo_optimized_dispatch: updated battery09_co2/direct_ocean_capture: updated hopp, combiner, and battery09_co2/ocean_alkalinity_enhancement: updated batterySection 5: Additional Supporting Information
Section 6: Test Results, if applicable
Section 7 (Optional): New Model Checklist
docs/developer_guide/coding_guidelines.mdattrsclass to define theConfigto load in attributes for the modelBaseConfigorCostModelBaseConfiginitialize()method,setup()method,compute()methodCostModelBaseClasssupported_models.pycreate_financial_modelinh2integrate_model.pytest_all_examples.pydocs/user_guide/model_overview.mddocs/section<model_name>.mdis added to the_toc.yml