diff --git a/docs/assets/eu_funding_logo.png b/docs/assets/eu_funding_logo.png new file mode 100644 index 0000000..2a6ea25 Binary files /dev/null and b/docs/assets/eu_funding_logo.png differ diff --git a/docs/assets/solmates_logo.png b/docs/assets/solmates_logo.png new file mode 100644 index 0000000..651ddf9 Binary files /dev/null and b/docs/assets/solmates_logo.png differ diff --git a/docs/how_to/add_a_new_ion.md b/docs/how_to/add_a_new_ion.md new file mode 100644 index 0000000..c1b4e25 --- /dev/null +++ b/docs/how_to/add_a_new_ion.md @@ -0,0 +1,4 @@ +# how to add a new ion to the database + +!!! note "Attention" + TODO diff --git a/docs/how_to/create_a_perovskite_composition.md b/docs/how_to/create_a_perovskite_composition.md new file mode 100644 index 0000000..e0f19a4 --- /dev/null +++ b/docs/how_to/create_a_perovskite_composition.md @@ -0,0 +1,8 @@ +# How to create a perovskite composition + +A standarized perovskite composition entry can be created using the ions database. +To create one you would need to follow the steps below in which we will create a Cs0.05FA0.76MA0.16PbBr1.5I1.5 +composition entry: + + + diff --git a/docs/how_to/export_a_cation_structure.md b/docs/how_to/export_a_cation_structure.md new file mode 100644 index 0000000..c1b4e25 --- /dev/null +++ b/docs/how_to/export_a_cation_structure.md @@ -0,0 +1,4 @@ +# how to add a new ion to the database + +!!! note "Attention" + TODO diff --git a/docs/how_to/install_this_plugin.md b/docs/how_to/install_this_plugin.md index 2b45e0f..5ec38c7 100644 --- a/docs/how_to/install_this_plugin.md +++ b/docs/how_to/install_this_plugin.md @@ -1,4 +1,4 @@ # Install This Plugin -!!! note "Attention" - TODO +This plugin can be installed in an exiting NOMAD Oasis installation by following +the steps described in the [NOMAD documentation](https://nomad-lab.eu/prod/v1/staging/docs/howto/oasis/plugins_install.html). diff --git a/docs/how_to/search_for_ions.md b/docs/how_to/search_for_ions.md new file mode 100644 index 0000000..c1b4e25 --- /dev/null +++ b/docs/how_to/search_for_ions.md @@ -0,0 +1,4 @@ +# how to add a new ion to the database + +!!! note "Attention" + TODO diff --git a/docs/how_to/use_this_plugin.md b/docs/how_to/use_this_plugin.md deleted file mode 100644 index 7113c5e..0000000 --- a/docs/how_to/use_this_plugin.md +++ /dev/null @@ -1,10 +0,0 @@ -# How to Use This Plugin - -This plugin can be used in a NOMAD Oasis instalation.. - -## Add This Plugin to Your NOMAD instalation - -Read the [NOMAD plugin documentation](https://nomad-lab.eu/prod/v1/staging/docs/plugins/plugins.html#add-a-plugin-to-your-nomad) for all details on how to deploy the plugin on your NOMAD instance. - -!!! note "Attention" - TODO diff --git a/docs/index.md b/docs/index.md index 17c0f06..2b15997 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,60 +1,53 @@ # Welcome to the `nomad-perovskite-solar-cells-database` documentation +[![NOMAD](https://img.shields.io/badge/Open%20NOMAD-lightgray?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxNTAwIDE1MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE1MDAgMTUwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMxOTJFODY7c3Ryb2tlOiMxOTJFODY7c3Ryb2tlLXdpZHRoOjE0MS4zMjI3O3N0cm9rZS1taXRlcmxpbWl0OjEwO30KCS5zdDF7ZmlsbDojMkE0Q0RGO3N0cm9rZTojMkE0Q0RGO3N0cm9rZS13aWR0aDoxNDEuMzIyNztzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMTM2LjQsNjM2LjVjMTUwLjgsMCwyNzMuMS0xMjEuOSwyNzMuMS0yNzIuMlMxMjg3LjIsOTIuMSwxMTM2LjQsOTIuMWMtMTUwLjgsMC0yNzMuMSwxMjEuOS0yNzMuMSwyNzIuMgoJUzk4NS42LDYzNi41LDExMzYuNCw2MzYuNXoiLz4KPHBhdGggY2xhc3M9InN0MSIgZD0iTTEzMjksOTQ2Yy0xMDYuNC0xMDYtMjc4LjgtMTA2LTM4Ni4xLDBjLTk5LjYsOTkuMy0yNTguNywxMDYtMzY1LjEsMTguMWMtNi43LTcuNi0xMy40LTE2LjItMjEuMS0yMy45CgljLTEwNi40LTEwNi0xMDYuNC0yNzgsMC0zODQuOWMxMDYuNC0xMDYsMTA2LjQtMjc4LDAtMzg0LjlzLTI3OC44LTEwNi0zODYuMSwwYy0xMDcuMywxMDYtMTA2LjQsMjc4LDAsMzg0LjkKCWMxMDYuNCwxMDYsMTA2LjQsMjc4LDAsMzg0LjljLTYzLjIsNjMtODkuMSwxNTAtNzYuNywyMzIuMWM3LjcsNTcuMywzMy41LDExMy43LDc3LjYsMTU3LjZjMTA2LjQsMTA2LDI3OC44LDEwNiwzODYuMSwwCgljMTA2LjQtMTA2LDI3OC44LTEwNiwzODYuMSwwYzEwNi40LDEwNiwyNzguOCwxMDYsMzg2LjEsMEMxNDM1LjQsMTIyNCwxNDM1LjQsMTA1MiwxMzI5LDk0NnoiLz4KPC9zdmc+Cg==)](https://nomad-lab.eu/prod/v1/staging/gui/search/solarcells) ![](https://github.com/FAIRmat-NFDI/nomad-measurements/actions/workflows/publish.yml/badge.svg) ![](https://img.shields.io/pypi/pyversions/nomad-measurements) ![](https://img.shields.io/pypi/l/nomad-measurements) -[![NOMAD](https://img.shields.io/badge/Open%20NOMAD-lightgray?logo=data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxNTAwIDE1MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE1MDAgMTUwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMxOTJFODY7c3Ryb2tlOiMxOTJFODY7c3Ryb2tlLXdpZHRoOjE0MS4zMjI3O3N0cm9rZS1taXRlcmxpbWl0OjEwO30KCS5zdDF7ZmlsbDojMkE0Q0RGO3N0cm9rZTojMkE0Q0RGO3N0cm9rZS13aWR0aDoxNDEuMzIyNztzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMTM2LjQsNjM2LjVjMTUwLjgsMCwyNzMuMS0xMjEuOSwyNzMuMS0yNzIuMlMxMjg3LjIsOTIuMSwxMTM2LjQsOTIuMWMtMTUwLjgsMC0yNzMuMSwxMjEuOS0yNzMuMSwyNzIuMgoJUzk4NS42LDYzNi41LDExMzYuNCw2MzYuNXoiLz4KPHBhdGggY2xhc3M9InN0MSIgZD0iTTEzMjksOTQ2Yy0xMDYuNC0xMDYtMjc4LjgtMTA2LTM4Ni4xLDBjLTk5LjYsOTkuMy0yNTguNywxMDYtMzY1LjEsMTguMWMtNi43LTcuNi0xMy40LTE2LjItMjEuMS0yMy45CgljLTEwNi40LTEwNi0xMDYuNC0yNzgsMC0zODQuOWMxMDYuNC0xMDYsMTA2LjQtMjc4LDAtMzg0LjlzLTI3OC44LTEwNi0zODYuMSwwYy0xMDcuMywxMDYtMTA2LjQsMjc4LDAsMzg0LjkKCWMxMDYuNCwxMDYsMTA2LjQsMjc4LDAsMzg0LjljLTYzLjIsNjMtODkuMSwxNTAtNzYuNywyMzIuMWM3LjcsNTcuMywzMy41LDExMy43LDc3LjYsMTU3LjZjMTA2LjQsMTA2LDI3OC44LDEwNiwzODYuMSwwCgljMTA2LjQtMTA2LDI3OC44LTEwNiwzODYuMSwwYzEwNi40LDEwNiwyNzguOCwxMDYsMzg2LjEsMEMxNDM1LjQsMTIyNCwxNDM1LjQsMTA1MiwxMzI5LDk0NnoiLz4KPC9zdmc+Cg==)](https://nomad-lab.eu/prod/v1/staging/gui/search/solarcells) + ## NOMAD Perovskite Solar Cells Database [image](https://www.perovskitedatabase.com/) ### Introduction -Welcome to the NOMAD plugin for the Perovskite Solar Cell Database. This project aims to provide an open-access interface for the perovskite solar cells database in NOMAD making the data accessible and interoperable with many other materials science datasets. -The data can be accessed via the NOMAD API and explored in the [NOMAD Solar Cell APP](https://nomad-lab.eu/prod/v1/staging/gui/search/solarcells). +Welcome to the NOMAD plugin for the Perovskite Solar Cell Database. +This project aims to provide an open-access interface for the perovskite solar cells database in NOMAD making the data accessible and interoperable with many other materials science datasets. +The data can be accessed via the NOMAD API and explored in the [NOMAD Solar Cell App](https://nomad-lab.eu/prod/v1/staging/gui/search/solarcells). - [](https://nomad-lab.eu/prod/v1/staging/gui/search/solarcells) +It also contains a database of ions used in halide perovskites and a schema to create standarized perovskite composition entries. -Information about the original database is available at [perovskitedatabase.com](https://www.perovskitedatabase.com/). + [](https://nomad-lab.eu/prod/v1/staging/gui/search/solarcells) ### Key Features -- Detailed schema of perovskite solar cells. +- The perovskite solar cell database. +- A database of ions used in halide perovskites. +- A schema to create standarized perovskite composition entries. - Integration with NOMAD for data exploration and access via the API. - Augmented (meta)data including the elements of the perovskite absorbers and several standardized chemical formulas, enabling an easy featurization of the composition for ML applications. -### Installation -To be completed. - -### Acknowledgments -Special thanks to Jinzhao Li and all contributors who have made this project possible. - -### Related Resources -- [Original Paper on Nature Energy](https://www.nature.com/articles/s41560-021-00941-3) -- [NOMAD Documentation](https://nomad-lab.eu/prod/v1/staging/docs/) -
### Tutorial -To be completed... - -- [Tutorial](tutorial/tutorial.md) +- [Sharing a perovskite composition](tutorial/sharing_a_perovskite_composition.md)
### How-to guides -Coming soon... - -How-to guides provide step-by-step instructions for a wide range of tasks, with the overarching topics: +How-to guides provide step-by-step instructions for a wide range of tasks: - [Install this plugin](how_to/install_this_plugin.md) -- [Use this plugin](how_to/use_this_plugin.md) - [Contribute to this plugin](how_to/contribute_to_this_plugin.md) - [Contribute to the documentation](how_to/contribute_to_the_documentation.md) +- [Search for ions used in halide perovskites](how_to/search_for_ions.md) +- [Add a new ion to the database](how_to/add_a_new_ion.md) +- [Export a cation structure](how_to/export_a_cation_structure.md) +- [Create a perovskite composition](how_to/create_a_perovskite_composition.md)
@@ -74,3 +67,14 @@ the possible schema annotations and their arguments, and a glossary of used term
+ +### Related Resources +- [Original Paper on Nature Energy](https://www.nature.com/articles/s41560-021-00941-3) +- [NOMAD Documentation](https://nomad-lab.eu/prod/v1/staging/docs/) +- Information about the original database is available at [perovskitedatabase.com](https://www.perovskitedatabase.com/). + +### Acknowledgments +Special thanks to Jinzhao Li and all contributors who have made this project possible. +This project is supported by the FAIRmat NFDI initiative and also by by the European Union as part of the SolMates project (Project Nr. 101122288). + +SolMates Logo EU Funding Logo \ No newline at end of file diff --git a/docs/tutorial/sharing_a_perovskite_composition.md b/docs/tutorial/sharing_a_perovskite_composition.md new file mode 100644 index 0000000..5a7e9f5 --- /dev/null +++ b/docs/tutorial/sharing_a_perovskite_composition.md @@ -0,0 +1,4 @@ +# Sharing a perovskite composition in NOMAD + +!!! note "Attention" + TODO diff --git a/docs/tutorial/tutorial.md b/docs/tutorial/tutorial.md deleted file mode 100644 index a24d72a..0000000 --- a/docs/tutorial/tutorial.md +++ /dev/null @@ -1,4 +0,0 @@ -# Tutorial - -!!! note "Attention" - TODO diff --git a/mkdocs.yml b/mkdocs.yml index 13f9f1e..29a3971 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,21 +1,25 @@ site_name: nomad-perovskite-solar-cells-database site_description: This is a NOMAD plugin for the perovskite solar cells database. - - +edit_uri: "" repo_url: https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database nav: - Home: index.md - Tutorial: tutorial/tutorial.md - How-to guides: - - Install this Plugin: how_to/install_this_plugin.md - - Use this Plugin: how_to/use_this_plugin.md + - Install this plugin: how_to/install_this_plugin.md - Contribute to this plugin: how_to/contribute_to_this_plugin.md - Contribute to the documentation: how_to/contribute_to_the_documentation.md + - Search for ions: how_to/search_for_ions.md + - Add a new ion: how_to/add_a_new_ion.md + - Export a cation structure: how_to/export_a_cation_structure.md + - Create a perovskite compostion: how_to/create_a_perovskite_composition.md - Explanation: explanation/explanation.md - Reference: reference/references.md plugins: - search + - glightbox + theme: name: material palette: @@ -26,7 +30,11 @@ theme: logo: assets/nomad-plugin-logo.png favicon: assets/favicon.png features: - - navigation.instant + - navigation.path + - navigation.footer + - navigation.top + icon: + repo: fontawesome/brands/github custom_dir: docs/theme markdown_extensions: - attr_list @@ -37,17 +45,16 @@ markdown_extensions: anchor_linenums: true - pymdownx.inlinehilite - pymdownx.snippets - - pymdownx.superfences + - mkdocs-click + - pymdownx.extra - toc: permalink: True - pymdownx.arithmatex: generic: true - - attr_list - - mkdocs-click - - pymdownx.extra + extra: generator: false - homepage: https://nomad-lab.eu + homepage: https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database use_directory_urls: false extra_css: - stylesheets/extra.css diff --git a/src/perovskite_solar_cell_database/apps/perovskite_ions_app.py b/src/perovskite_solar_cell_database/apps/perovskite_ions_app.py index 3974641..e0b7836 100644 --- a/src/perovskite_solar_cell_database/apps/perovskite_ions_app.py +++ b/src/perovskite_solar_cell_database/apps/perovskite_ions_app.py @@ -69,15 +69,93 @@ yaml.safe_load( """ widgets: - - layout: - xxl: {minH: 8, minW: 12, h: 9, w: 13, y: 0, x: 0} - xl: {minH: 8, minW: 12, h: 9, w: 12, y: 0, x: 0} - lg: {minH: 8, minW: 12, h: 8, w: 12, y: 0, x: 0} - md: {minH: 8, minW: 12, h: 8, w: 12, y: 0, x: 0} - sm: {minH: 8, minW: 12, h: 8, w: 12, y: 0, x: 0} - type: periodictable + - type: periodictable scale: linear - quantity: results.material.elements + search_quantity: results.material.elements + layout: + xxl: + minH: 8 + minW: 12 + h: 9 + w: 13 + y: 0 + x: 0 + xl: + minH: 8 + minW: 12 + h: 9 + w: 12 + y: 0 + x: 0 + lg: + minH: 8 + minW: 12 + h: 8 + w: 12 + y: 0 + x: 0 + md: + minH: 8 + minW: 12 + h: 8 + w: 12 + y: 0 + x: 0 + sm: + minH: 8 + minW: 12 + h: 8 + w: 12 + y: 0 + x: 0 + - type: scatter_plot + autorange: true + size: 1000 + markers: + color: + search_quantity: results.material.topology[0].structural_type + y: + search_quantity: data.pure_substance.molar_mass#perovskite_solar_cell_database.composition.PerovskiteAIon + title: A cation molar mass + x: + search_quantity: results.material.topology[0].n_atoms + title: "" + layout: + xxl: + minH: 3 + minW: 3 + h: 6 + w: 9 + y: 0 + x: .inf + xl: + minH: 3 + minW: 3 + h: 9 + w: 18 + y: 0 + x: 12 + lg: + minH: 3 + minW: 3 + h: 8 + w: 12 + y: 0 + x: 12 + md: + minH: 3 + minW: 3 + h: 8 + w: 6 + y: 0 + x: 12 + sm: + minH: 3 + minW: 3 + h: 6 + w: 9 + y: 8 + x: 0 """ ) ), diff --git a/tests/apps/test_solar_cell_app.py b/tests/apps/test_solar_cell_app.py index 2b48230..cffd83d 100644 --- a/tests/apps/test_solar_cell_app.py +++ b/tests/apps/test_solar_cell_app.py @@ -1,5 +1,5 @@ def test_importing_app(): # This will raise an exception if pydantic model validation fails for the app - from perovskite_solar_cell_database.apps.solar_cell_app import ( + from perovskite_solar_cell_database.apps.solar_cell_app import ( # type: ignore solar_cell_app, # noqa: F401 )