Open fabianschoeppach opened 2 weeks ago
This PR extends the existing plugin to support tandem solar cells by introducing new schema definitions and parsers. The implementation follows a modular approach, defining separate schema packages for different components of tandem solar cells (layers, measurements, references) and a parser to handle Excel-based data input. The schema is designed to capture detailed information about tandem solar cell architectures, including layer stacks, material compositions, and synthesis processes.
classDiagram
class PerovskiteTandemSolarCell {
+General general
+Reference reference
+Layer[] layer_stack
}
class General {
+String architecture
+int number_of_terminals
+int number_of_junctions
+int number_of_cells
+String[] photoabsorber
+float[] photoabsorber_bandgaps
+float area
+float area_measured
+bool flexibility
+bool semitransparent
+bool contains_textured_layers
+bool contains_antireflectie_coating
+SubCell[] subcell
}
class Reference {
+int ID_temp
+int ID
+String free_text_comment
+String name_of_person_entering_the_data
+bool data_entered_by_author
}
class Layer {
+String name
+String functionality
+float thickness
+float area
+float surface_roughness
+String origin
+String supplier
+String supplier_brand
+Cleaning cleaning
+Synthesis synthesis
+Storage storage
+Substance[] additives
}
class SubCell {
+float area
+bool module
+bool commercial_unit
+String supplier
}
class Synthesis {
+SynthesisStep[] steps
}
class Cleaning {
+CleaningStep[] steps
}
class Storage {
+String atmosphere
+float humidity_relative
+float time_until_next_step
}
class Substance {
+String name
+String supplier
+String purity
+String concentration
+float volume
+float age
+float temperature
}
PerovskiteTandemSolarCell --> General
PerovskiteTandemSolarCell --> Reference
PerovskiteTandemSolarCell --> Layer
General --> SubCell
Layer --> Cleaning
Layer --> Synthesis
Layer --> Storage
Layer --> Substance
classDiagram
class TandemParser {
+parse(String mainfile, EntryArchive archive, BoundLogger logger, dict child_archives)
}
class EntryArchive {
+data
}
TandemParser --> EntryArchive
TandemParser : +parse()
TandemParser : -cleanup_dataframe()
TandemParser : -split_data()
TandemParser : -convert_value()
TandemParser : -partial_get()
TandemParser : -exact_get()
TandemParser : -extract_cleaning()
TandemParser : -extract_additives()
TandemParser : -extract_solvents()
TandemParser : -extract_reactants()
TandemParser : -extract_quenching_solvents()
TandemParser : -extract_perovskite_composition()
TandemParser : -extract_chalcopyrite_composition()
TandemParser : -extract_alkali_doping()
TandemParser : -extract_annealing()
TandemParser : -extract_storage()
TandemParser : -extract_reference()
TandemParser : -extract_general()
TandemParser : -extract_layer_stack()
Change | Details | Files |
---|---|---|
Added new schema package for tandem solar cells |
|
src/perovskite_tandem_database/schema_packages/schema.py src/perovskite_tandem_database/schema_packages/tandem.py |
Implemented Excel parser for tandem solar cell data |
|
src/perovskite_tandem_database/parsers/tandemparser.py src/perovskite_tandem_database/parsers/utils.py |
Set up plugin entry points and package structure |
|
pyproject.toml src/perovskite_tandem_database/parsers/__init__.py src/perovskite_tandem_database/schema_packages/__init__.py |
PR to track work on issue #8 - extending plugin to tandem solar cells.
Tasks:
Ref.
section)PublicationReference
not working?Tandem.
section)NAlayer
and)src/perovskite_solar_cell_database