-
Notifications
You must be signed in to change notification settings - Fork 24
Feature/bert basic #81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
b7a2ed8
a7e3778
43808e1
aae1054
ff5a447
6e9935c
bacfbc6
c758104
663700a
2705327
27606ee
c3b8665
53f8c8a
81e60a8
12d25a0
86b219c
c9c8813
43e4bf7
2e07166
a65c78d
3b687ad
3582018
366a2bb
2522fc0
47e0920
c30b051
6216c44
4aa7019
f7c9884
b6a5c57
348e559
a39b015
98efbd1
1a4afbf
85f7847
6231d3a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| 1. [Oystein Ulleberg, 2003](https://www.sciencedirect.com/science/article/pii/S0360319902000332?via%3Dihub) | ||
| "Modeling of advanced alkaline electrolyzers: a system simulation approach" | ||
|
|
||
|
|
||
| 2. [Gambou, Guilbert,et al 2022](https://www.mdpi.com/1996-1073/15/9/3452) | ||
| "A Comprehensive Survey of Alkaline Electrolyzer Modeling: Electrical | ||
| Domain and Specific Electrolyte Conductivity" | ||
|
|
||
|
|
||
| 3. [Haug ,Kreitz, 2017](https://www.sciencedirect.com/science/article/pii/S0360319917318633) | ||
| "Process modelling of an alkaline water electrolyzer" | ||
|
|
||
|
|
||
| 4. [Henou, Agbossou, 2014](https://www.sciencedirect.com/science/article/pii/S0378775313017527) | ||
| - "Simulation tool based on a physics model and an electrical | ||
| analogy for an alkaline electrolyser" | ||
| - Notes: | ||
| - cited by [Gambou, Guilbert,et al 2022] | ||
| - HAS ALL THE VALUES FOR VARIABLES USED IN [Gambou, Guilbert,et al 2022] | ||
|
|
||
| 5. [Hammoudi,Henao, 2012](https://www.sciencedirect.com/science/article/pii/S036031991201590X) | ||
| - "New multi-physics approach for modelling andn design of | ||
| alkaline electrolyzers" | ||
| - Notes: | ||
| - Referenced by [Henou, Agbossou, 2014] for theta calculation | ||
| (electrode coverage) | ||
| - Eqn 44 for bubble stuff | ||
| - j_lim=300 kA/m^2 | ||
| - includes other efficiency losses | ||
| - cites: https://www.sciencedirect.com/science/article/pii/S0360128509000598 | ||
|
|
||
| 6. [Brauns,2021](https://iopscience.iop.org/article/10.1149/1945-7111/abda57/pdf) | ||
| - bibtex label: | ||
| - "Evaluation of Diaphragms and Membranes as Separators for Alkaline Water Electrolysis" by Jorn Brauns et all 2021. J. Electrochem Soc 168 014510 | ||
| - Notes: | ||
| - good numbers | ||
| - electrolyte flow rate of 350 mL/min | ||
| - total electrolyte volume of 10L | ||
| - has supplementary material (need to checkout) | ||
| - in "material stability" it mentions stuff about DEGRADATION | ||
|
|
||
| 7. [NEL Report](https://www.energy.gov/sites/default/files/2022-02/2-Intro-Liquid%20Alkaline%20Workshop.pdf) | ||
| - bibtex label: | ||
|
|
||
|
|
||
| 8. [Brauns, Turek 2020](https://www.mdpi.com/2227-9717/8/2/248) | ||
| - bibtex label: | ||
| - "Alkaline Water Electrolysis Powered by Renewable Energy: A Review" | ||
|
|
||
|
|
||
| 9. [Eigeldinger, Vogt 2000](https://www.sciencedirect.com/science/article/pii/S0013468600005132) | ||
| - bibtex label: Eigeldinger_2000 | ||
| - "The bubble coverage of gas evolving electrodes in a flowing electrolyte" | ||
| - Notes: | ||
| - Ref 15 of Henou 2014 for current density and theta stuff | ||
| - has current density equation with theta included | ||
|
|
||
| 10. [Haug, Koj, Turek 2017](https://www.sciencedirect.com/science/article/pii/S0360319916336588) | ||
| "Influence of process conditions on gas purity in alkaline water electrolysis" | ||
| by Phillip Haug, Motthias Koj, Thomas Turek [2017] | ||
|
|
||
|
|
||
| 11. [Niroula, Chaudhary, Subedi, Thapa 2003](https://iopscience.iop.org/article/10.1088/1757-899X/1279/1/012005/pdf) | ||
|
|
||
| "Parametric Modelling and Optimization of Alkaline Electrolyzer for the Production | ||
| of Green Hydrogen" by S. Niroula, C Chaudhary, A Subedi, and B S Thapa | ||
| [2003] doi:10.1088/1757-899X/1279/1/012005 | ||
|
|
||
|
|
||
| 12. [Vogt,Balzer 2005](https://www.sciencedirect.com/science/article/pii/S001346860400948X?via%3Dihub) | ||
| "The bubble coverage of gas-evolving electrodes in stagnant electrolytes" | ||
| by H. Vogt and R.J. Balzer | ||
| Volume 50, Issue 10, 15 March 2005, Pages 2073-2079 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| from typing import Any, Dict | ||
|
|
||
| import attrs | ||
|
|
||
| from electrolyzer.tools.type_dec import FromDictMixin | ||
|
|
||
|
|
||
| class BaseClass(FromDictMixin): | ||
| """ | ||
| BaseClass object class. This class does the logging and MixIn class inheritance. | ||
| """ | ||
|
|
||
| @classmethod | ||
| def get_model_defaults(cls) -> Dict[str, Any]: | ||
| """Produces a dictionary of the keyword arguments and their defaults. | ||
| Returns | ||
| ------- | ||
| Dict[str, Any] | ||
| Dictionary of keyword argument: default. | ||
| """ | ||
| return {el.name: el.default for el in attrs.fields(cls)} | ||
|
|
||
| def _get_model_dict(self) -> dict: | ||
| """Convenience method that wraps the `attrs.asdict` method. Returns the object's | ||
| parameters as a dictionary. | ||
| Returns | ||
| ------- | ||
| dict | ||
| The provided or default, if no input provided, | ||
| model settings as a dictionary. | ||
| """ | ||
| return attrs.asdict(self) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -105,6 +105,55 @@ def _run_electrolyzer_opt(modeling_options, power_signal): | |
| return tot_kg, max_curr_density | ||
|
|
||
|
|
||
| def run_LCA(elec_sys, plant_life_years: int): | ||
| sys_refurb = pd.DataFrame() | ||
| sys_aep = pd.DataFrame() | ||
| sys_ah2 = pd.DataFrame() | ||
| years = list(np.arange(0, plant_life_years, 1)) | ||
| for i, stack in enumerate(elec_sys.stacks): | ||
| id = i + 1 | ||
| refturb_schedule, ahp_kg, aep_kWh = stack.estimate_life_performance_from_year( | ||
| plant_life_years | ||
| ) | ||
| sys_aep = pd.concat( | ||
| [ | ||
| sys_aep, | ||
| pd.DataFrame( | ||
| dict(zip(["Stack {}".format(id)], [aep_kWh])), index=years | ||
| ), | ||
| ] | ||
| ) | ||
| sys_ah2 = pd.concat( | ||
| [ | ||
| sys_ah2, | ||
| pd.DataFrame(dict(zip(["Stack {}".format(id)], [ahp_kg])), index=years), | ||
| ] | ||
| ) | ||
| sys_refurb = pd.concat( | ||
| [ | ||
| sys_refurb, | ||
| pd.DataFrame( | ||
| dict(zip(["Stack {}".format(id)], [refturb_schedule])), index=years | ||
| ), | ||
| ] | ||
| ) | ||
| # df_index = [ | ||
| # [f"stack {id}"]*plant_life_years, | ||
| # list(np.arange(0,plant_life_years,1)) | ||
| # ] | ||
| # temp_df = pd.DataFrame(dict(zip( | ||
| # ["AEP [kWh/year]","Refurb Schedule","AHP [kg/year]"], | ||
| # [aep_kWh,ahp_kg,refturb_schedule])), | ||
| # index=df_index | ||
| # ) | ||
| # stack_LCA = pd.concat([stack_LCA,temp_df]) | ||
| return { | ||
| "Refurb Schedule": sys_refurb, | ||
| "AEP [kWh/year]": sys_aep, | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is AEP here the input power to the electrolyzer system?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see now that it is, maybe we can call it power_used? I'm open to discussion on this! |
||
| "AHP [kg/year]": sys_ah2, | ||
| } | ||
|
|
||
|
|
||
| def run_electrolyzer(input_modeling, power_signal, optimize=False): | ||
| """ | ||
| Runs an electrolyzer simulation based on a YAML configuration file and power | ||
|
|
||
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see this class is added in this PR but not used anywhere yet. Is that intended?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes. It will be updated in a following PR to function as a general base-class for the classes.