Skip to content
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

add badelf and warren_lab apps 🎅 #547

Merged
merged 67 commits into from
Dec 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
c7e26b2
Add warrenapp to Simmate
SWeav02 Nov 13, 2023
f468b76
Decrease prepop grid density
SWeav02 Nov 14, 2023
6f78ea4
Remove less useful PopAnalysis Workflows
SWeav02 Nov 14, 2023
d9aa084
Code cleanup
SWeav02 Nov 14, 2023
5638bf7
Add Covalency Check
SWeav02 Nov 16, 2023
156daef
Update to Simmate 0.14.0
SWeav02 Nov 21, 2023
7d5e219
Extensive update to badelf Database
SWeav02 Nov 21, 2023
d5650ca
Added easy command line function
SWeav02 Nov 30, 2023
ef6bda5
temporarily update pyporject.toml
SWeav02 Dec 5, 2023
19b76d7
Add electride topology function
SWeav02 Dec 6, 2023
accb555
Updated Partitioning Plane Finding
SWeav02 Dec 6, 2023
866b24b
Add rich text to BadELF output
SWeav02 Dec 7, 2023
0f01289
Add mp-pyrho dependency
SWeav02 Dec 7, 2023
67ba433
remove migrations folder
SWeav02 Dec 8, 2023
b59e46b
Update voxel grid settings
SWeav02 Dec 8, 2023
df98ea2
Added regrid functionality
SWeav02 Dec 9, 2023
aaf02c3
remove migrations folder
SWeav02 Dec 9, 2023
b422812
Several Toolkit Classes created
SWeav02 Dec 14, 2023
94d02f4
Finish class creation
SWeav02 Dec 17, 2023
d700881
fixed error with running bader code
SWeav02 Dec 17, 2023
eb90701
Added fix for improper BvAt_summed.dat
SWeav02 Dec 18, 2023
054fbc2
remove models
SWeav02 Dec 18, 2023
0f63533
update badelf app
SWeav02 Dec 19, 2023
bdaa43d
Update warrenapp (except workflows)
SWeav02 Dec 19, 2023
718da9e
update all workflows except nested
SWeav02 Dec 19, 2023
06e8bee
remove excess test files
SWeav02 Dec 19, 2023
6d45c72
fix small bug
SWeav02 Dec 19, 2023
43d23ef
Small Changes
SWeav02 Dec 19, 2023
d76ed1f
Merge branch 'badelf_class1' into main
SWeav02 Dec 19, 2023
5709f51
add proper connect import
SWeav02 Dec 19, 2023
293a852
Fix isort import order error
SWeav02 Dec 19, 2023
655946a
Merge pull request #9 from SWeav02/badelf_class1
SWeav02 Dec 19, 2023
fef7947
Fixed pytests
SWeav02 Dec 19, 2023
edc9927
Fixed potential circular import error
SWeav02 Dec 19, 2023
2b8690f
Add new workflows to workflow tests
SWeav02 Dec 19, 2023
484b9de
Merge pull request #10 from SWeav02/badelf_class1
SWeav02 Dec 19, 2023
0580af6
Update parameters
SWeav02 Dec 19, 2023
3614185
Merge pull request #11 from SWeav02/update_docs
SWeav02 Dec 19, 2023
2486acb
Fix bug with writing voxel_errors
SWeav02 Dec 20, 2023
537bc49
Merge pull request #12 from SWeav02/update_docs
SWeav02 Dec 20, 2023
c9be65f
Update naming conventions
SWeav02 Dec 20, 2023
02b9a83
black and isort
SWeav02 Dec 20, 2023
4660591
Merge pull request #13 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
2b36028
Merge pull request #14 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
1f9561a
Add WarrenLab and Badelf as default configured apps
SWeav02 Dec 20, 2023
9b786e8
Merge pull request #15 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
749094f
Update change_log and default apps
SWeav02 Dec 20, 2023
5898389
Merge pull request #16 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
f9890a4
black
SWeav02 Dec 20, 2023
8ce1b02
Merge pull request #17 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
de15150
fix typo
SWeav02 Dec 20, 2023
408c37a
Merge pull request #18 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
0dd5ce0
remove migrations
SWeav02 Dec 20, 2023
018a13e
Merge pull request #19 from SWeav02/prep_for_release
SWeav02 Dec 20, 2023
2955454
clean up all app docs
jacksund Dec 21, 2023
387a80d
Add back migrations
SWeav02 Dec 21, 2023
be3561f
Merge pull request #21 from SWeav02/prep_for_release
SWeav02 Dec 21, 2023
8105b81
Merge pull request #20 from jacksund/jacks-edits
SWeav02 Dec 21, 2023
5e413ad
Merge branch 'jacksund:main' into main
SWeav02 Dec 21, 2023
8a1f2aa
remove badelf from default apps
jacksund Dec 22, 2023
1f6511a
Merge pull request #22 from jacksund/jacks-edits
SWeav02 Dec 22, 2023
ee85069
fix workflow util unit test
jacksund Dec 22, 2023
38a3ff8
revert migrations
jacksund Dec 22, 2023
758b578
Merge pull request #23 from jacksund/fix-test
SWeav02 Dec 22, 2023
5551215
remove workflow types from test
jacksund Dec 22, 2023
b1151ce
Comment out "bad-elf-analysis" and "nested" workflow types
SWeav02 Dec 22, 2023
cfc4972
Merge pull request #24 from jacksund/fix-test
SWeav02 Dec 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions docs/apps/badelf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

# The BadELF App

!!! note
This app is currently maintained by [Sam Weaver](https://github.com/SWeav02)

Further, this app and its BadELF algorithm is based on the following study:

- ["Counting Electrons in Electrides"](https://pubs.acs.org/doi/abs/10.1021/jacs.3c10876) (JACS 2023)

--------------------------------------------------------------------------------

## About BadELF

Bader Charge Analysis (or "Bader" for short) is a process of partitioning charge density in order to predict oxidation states. Then the Electron Localization Function (ELF) is a popular scheme for visualizing chemically important features in molecules and solids.

BadELF builds on top of these two ideas. The algorithm uses Bader segmentation of the ELF to find the electride electrons (if any) and Voronoi segmentation of the ELF to identify atoms. Thus BadELF is intended as an alternative method to run population analysis / predict oxidation states of electrides.

--------------------------------------------------------------------------------

## About this app

This app provides workflows and utilities to help with BadELF analysis.

--------------------------------------------------------------------------------

## Installation

1. Make sure you have Simmate installed and have reset your database.

2. Register the warrenapp with simmate by adding `- warrenapp.apps.WarrenConfig` to `~/simmate/my_env-apps.yaml`

3. Update your database to include custom tables from the warrenapp
``` shell
simmate database update
```

--------------------------------------------------------------------------------

## Basic Use

BadELF requires the outputs from VASP calculations (e.g. the CHGCAR, ELFCAR, etc.). You can either (a) generate these on your own or (b) run a simmate workflow that does it for you.

### (a) from VASP outputs

The BadELF algorithm can be run in a folder with VASP results. Please note that your VASP settings must produce a CHGCAR and ELFCAR with the same grid size.
``` bash
simmate-badelf run
```

### (b) from structure

If you would prefer to have Simmate handle the VASP calculation, there are workflows that will first run the required DFT and then BadELF.

These workflows are stored in the `Warren Lab` app because we are our lab's preferred VASP settings there. View the `Warren Lab` app for more information and to see the workflows available.

--------------------------------------------------------------------------------
51 changes: 51 additions & 0 deletions docs/apps/bader_henkelman.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

# The Bader App

--------------------------------------------------------------------------------

## About Bader

Bader Charge Analysis (or "Bader" for short) is a process of partitioning charge density in order to predict oxidation states. This module is specifically for the [Henkelman Group](http://theory.cm.utexas.edu/henkelman/)'s code that implements this analysis.

The code is free to everyone and can be downloaded [here](http://theory.cm.utexas.edu/henkelman/code/bader/).

--------------------------------------------------------------------------------

## About this app

This app uses Simmate tools to build workflows and utilities on top of the Henkelman Lab's Bader code.

Typically, other workflows handle calling the workflows registered here. For example, you can find workflows in the `Warren Lab` app that combine Bader, VASP, and rational settings together for you. Beginners should therefore start elsewhere.

--------------------------------------------------------------------------------

## Installation (Ubuntu 22.04)

### `bader` command

1. Download `Linux x86-64` from the Henkelman website [here](http://theory.cm.utexas.edu/henkelman/code/bader/)
2. Unpack the compressed file. There should only be one "file" in it named bader. This is the executable.
3. Move the `bader` executable to a folder of your choosing. For example, `~/jacksund/bader/bader` (within a folder named bader in my home directory)
4. run `nano ~/.bashrc` to edit your bash and add this line to the bottom:
``` bash
export PATH=/home/jacksund/bader/:$PATH
```
5. restart your terminal and try the command `bader --help`

### `chgsum.pl` and extra scripts

1. Download the scripts from [VTST-tools](http://theory.cm.utexas.edu/vtsttools/scripts.html)
2. Unpack the folder (`vtstscripts-1033`) and move it into the folder with your bader executable
3. run `nano ~/.bashrc` to edit your bash and add this line to the bottom:
``` bash
export PATH=/home/jacksund/bader/vtstscripts-1033:$PATH
```
4. restart your terminal and you're ready to try Bader analyses with Simmate!

--------------------------------------------------------------------------------

## Helpful links

- [website](http://theory.cm.utexas.edu/henkelman/code/bader/) (includes docs + guide)

--------------------------------------------------------------------------------
25 changes: 0 additions & 25 deletions docs/apps/bader_henkelman/installation.md

This file was deleted.

12 changes: 0 additions & 12 deletions docs/apps/bader_henkelman/overview.md

This file was deleted.

14 changes: 11 additions & 3 deletions docs/apps/clease.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,24 @@

# The CLEASE App

!!! danger
This app is still under early testing and not really for use outside of the Warren Lab

The CLEASE App
--------------------
--------------------------------------------------------------------------------

## About

*From their webpage:*
CLuster Expansion in Atomic Simulation Environment (CLEASE) is a package that automates the cumbersome setup and construction procedure of cluster expansion (CE). It provides a comprehensive list of tools for specifying parameters for CE, generating training structures, fitting effective cluster interaction (ECI) values and running Monte Carlo simulations.

The code is free and open-source.

--------------------------------------------------------------------------------

## Helpful links

- [gitlab](https://gitlab.com/computationalmaterials/clease/)
- [documentation](https://clease.readthedocs.io/en/stable/)
- [paper](https://doi.org/10.1088/1361-648X/ab1bbc)
- [paper](https://doi.org/10.1088/1361-648X/ab1bbc)

--------------------------------------------------------------------------------
11 changes: 9 additions & 2 deletions docs/apps/deepmd.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@

# The DeePMD App

!!! danger
This app is still under early testing and not really for use outside of the Warren Lab

The DeePMD App
--------------------
--------------------------------------------------------------------------------

## About

The Deep Potential for Molecular Dynamics (DeePMD) is a package that builds machine-learned interatomic potentials from energy and force-field data. These machine-learned potentials are particularlly powerful when trained on DFT data and then subsequently used to run molecular dynamics simulations.

The code is free and open-source.

--------------------------------------------------------------------------------

## Helpful links

- [github](https://github.com/deepmodeling/deepmd-kit)
- [documentation](https://docs.deepmodeling.org/projects/deepmd/en/master/)
- [paper](https://www.sciencedirect.com/science/article/pii/S0010465518300882)

--------------------------------------------------------------------------------
80 changes: 80 additions & 0 deletions docs/apps/warren_lab.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@

# The Warren Lab App

!!! note
This app is currently maintained by [Sam Weaver](https://github.com/SWeav02)

--------------------------------------------------------------------------------

## About

Scott Warren's Materials Discovery Lab at the University of North Carolina (Chapel Hill) lab specicializes in electrides, fluoride-ion batteries, and 2D materials.

This `Warren Lab` app contains workflows for our lab's preferred DFT settings and common analyses. By registering this app, you will add many new workflow presets that build on top of several other apps (VASP, Bader, BadELF, etc.).

--------------------------------------------------------------------------------

## Helpful links

- [Scott Warren](https://chem.unc.edu/faculty/warren-scott/) (UNC contact page)
- [lab website](https://materials-lab.io/)

--------------------------------------------------------------------------------

## Installation

1. Make sure you have Simmate installed and a working database.

2. Add the following apps to `~/simmate/my_env-apps.yaml`:
``` yaml
# Add app dependencies.
# NOTE!!! some of these are already present by default. Do not add duplicates
- simmate.apps.configs.VaspConfig
- simmate.apps.configs.BaderConfig
- simmate.apps.configs.BadelfConfig
# Add warren lab app.
- simmate.workflows.configs.WarrenLabConfig
```

3. Update your database to include custom tables:
``` bash
simmate database update
```

--------------------------------------------------------------------------------

## Workflows provided

### VASP (relaxation)

```
relaxation.vasp.warren-lab-hse
relaxation.vasp.warren-lab-hse-with-wavecar
relaxation.vasp.warren-lab-hsesol
relaxation.vasp.warren-lab-pbe
relaxation.vasp.warren-lab-pbe-metal
relaxation.vasp.warren-lab-pbe-with-wavecar
relaxation.vasp.warren-lab-pbesol
relaxation.vasp.warren-lab-scan
```

### VASP (static energy)

```
static-energy.vasp.warren-lab-hse
static-energy.vasp.warren-lab-hsesol
static-energy.vasp.warren-lab-pbe
static-energy.vasp.warren-lab-pbe-metal
static-energy.vasp.warren-lab-pbesol
static-energy.vasp.warren-lab-prebadelf-hse
static-energy.vasp.warren-lab-prebadelf-pbesol
static-energy.vasp.warren-lab-scan
```

### BadELF

```
bad-elf-analysis.badelf.badelf-pbesol
```

--------------------------------------------------------------------------------
17 changes: 0 additions & 17 deletions docs/apps/warren_lab/installation.md

This file was deleted.

12 changes: 0 additions & 12 deletions docs/apps/warren_lab/overview.md

This file was deleted.

3 changes: 3 additions & 0 deletions docs/change_log.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ There is one key exception to the rules above -- and that is with `MAJOR`=0 rele
- add `django-simple-history` support to track user changes on specific models
- add `@check_db_conn` decorator to help with database connection closures/timeouts
- add `simmate engine start-schedules` which let's you configure periodic tasks for individual apps (e.g. check a table for updates every 5 minutes). Includes error handling and email alerts. (Note: this a quick alternative to full Prefect system)
- add warren_lab app with Warren Lab preferred VASP settings
- add badelf app with class oriented tools for performing BadELF analyses
- add `simmate-badelf` command for running badelf analysis

**Fixes**

Expand Down
Loading
Loading