Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
353 commits
Select commit Hold shift + click to select a range
c45b616
customized INCAR tags
hrushikesh-s Mar 29, 2024
7250e2a
adding LTC calculators
hrushikesh-s Mar 29, 2024
82ef1c0
added anharmonicphonons block in pyproject.yaml
hrushikesh-s Mar 29, 2024
8889d3e
update the logic to use lambda=0 for TI
hrushikesh-s Mar 29, 2024
6e9da67
updating the logic to generate fixed displacements
hrushikesh-s Apr 4, 2024
c18fe93
can now run hiphive fitting individually
hrushikesh-s Apr 5, 2024
60e9a7b
adding fw configs to individual jobs
hrushikesh-s Apr 30, 2024
300da7b
new displacement strategy
hrushikesh-s May 27, 2024
4f7c264
added CHGNet MD step to generate displacement snapshots
hrushikesh-s May 28, 2024
5283d9e
updateing arguments of the MD run
hrushikesh-s May 28, 2024
2fb63c2
minor bug fixes to MD flow
hrushikesh-s May 28, 2024
a249cb8
updated MD args for running mp-23339
hrushikesh-s May 29, 2024
d5090fb
new cutoffs sampling startegy
hrushikesh-s Jun 26, 2024
49ae442
1. reorganized the imports
hrushikesh-s Jun 28, 2024
8b0019d
1. refactored the hiphive flow
hrushikesh-s Jun 28, 2024
8144b7b
Merge branch 'main' into hiphive_new_sampling_startegy
hrushikesh-s Jun 28, 2024
5239a79
Bump monty from 2024.2.2 to 2024.2.26 (#762)
dependabot[bot] Mar 8, 2024
e06dd99
Bump pytest from 8.0.2 to 8.1.0 (#761)
dependabot[bot] Mar 8, 2024
4e90106
revert to pytest 8.0.2, 8.1.0 was yanked due to breaking few plugins
janosh Mar 8, 2024
228641a
Auto-update pre-commit hooks (#756)
github-actions[bot] Mar 8, 2024
4aca655
Bump ipython from 8.22.1 to 8.22.2 (#770)
dependabot[bot] Mar 11, 2024
092baf5
Bump chgnet from 0.3.4 to 0.3.5 (#778)
dependabot[bot] Mar 18, 2024
edf646b
Bump pydantic from 2.6.3 to 2.6.4 (#777)
dependabot[bot] Mar 18, 2024
ed0458f
Bump custodian from 2024.2.15 to 2024.3.12 (#779)
dependabot[bot] Mar 18, 2024
c9a9b62
Bump phonopy from 2.21.2 to 2.22.0 (#784)
dependabot[bot] Mar 25, 2024
522b593
Bump autodoc-pydantic from 2.0.1 to 2.1.0 (#786)
dependabot[bot] Mar 25, 2024
675db1f
Bump pytest-cov from 4.1.0 to 5.0.0 (#785)
dependabot[bot] Mar 25, 2024
1132bbc
Bump python-ulid from 2.2.0 to 2.3.0 (#787)
dependabot[bot] Mar 25, 2024
0e3f11f
Bump cclib from 1.8 to 1.8.1 (#788)
dependabot[bot] Mar 25, 2024
848633a
Corrected typo in doc (#775)
rul048 Mar 28, 2024
bf6c01c
Warn on non-default `ATOMATE2_CONFIG_FILE` that's not found (#794)
janosh Apr 1, 2024
86fa57e
Porting qchem into atomate2 (#689)
rdguha1995 Apr 3, 2024
f788405
Forcefield molecular dynamics and forcefield refactor (#722)
esoteric-ephemera Apr 3, 2024
20ecb5d
Add dir_name to ForceFieldMaker and **task_document_kwargs to from_as…
QuantumChemist Apr 4, 2024
7571fad
Add flexible filename and extension to phonon new_plotter (#792)
QuantumChemist Apr 4, 2024
d17f1c3
Bump monty from 2024.2.26 to 2024.3.31 (#797)
dependabot[bot] Apr 4, 2024
a88147b
Bump phonopy from 2.22.0 to 2.22.1 (#795)
dependabot[bot] Apr 4, 2024
1a4ff45
Bump ipython from 8.22.2 to 8.23.0 (#798)
dependabot[bot] Apr 4, 2024
8d80ab9
Bump numpydoc from 1.6.0 to 1.7.0 (#796)
dependabot[bot] Apr 4, 2024
1096e99
Bump typing-extensions from 4.10.0 to 4.11.0 (#801)
dependabot[bot] Apr 8, 2024
027ef9b
Bump python-ulid from 2.3.0 to 2.4.0.post0 (#803)
dependabot[bot] Apr 8, 2024
bf9d481
Abinit workflows: static, non-scf and relaxation. (#183)
davidwaroquiers Apr 8, 2024
5f87e84
Remove `abinit` `__all__` module star exports (#804)
janosh Apr 10, 2024
26221c9
Bump pydantic from 2.6.4 to 2.7.0 (#806)
dependabot[bot] Apr 15, 2024
c2ee042
Simplify phonon `get_supercell_size()` and test clean up (#783)
janosh Apr 25, 2024
0cc0627
Add `fix_symmetry: bool = False` option to forcefield relax makers (#…
JonathanSchmidt1 Apr 26, 2024
eb0a801
Add more details to the installation guide (#810)
JaGeo Apr 26, 2024
1a2cf21
Bump mp-api from 0.40.2 to 0.41.2 (#824)
dependabot[bot] Apr 29, 2024
623201a
Bump emmet-core from 0.78.0rc4 to 0.82.2 (#823)
dependabot[bot] Apr 29, 2024
9fbd3d1
Add missing `calculator_kwargs` and remove outdated `model`/`model_kw…
janosh May 3, 2024
f95073c
Bump pydantic from 2.7.0 to 2.7.1 (#832)
dependabot[bot] May 6, 2024
faefc1e
Bump python-ulid from 2.4.0.post0 to 2.5.0 (#828)
dependabot[bot] May 6, 2024
ee70772
Bump pymatgen-analysis-defects from 2024.2.24 to 2024.4.23 (#827)
dependabot[bot] May 6, 2024
f267351
Turn `ForceFieldRelaxMaker._calculator` method into `calculator` prop…
janosh May 10, 2024
fcd1f4d
Update LobsterTaskDoc (#723)
naik-aakash May 11, 2024
a93b1ab
clean up test_lobster_task_document
janosh May 11, 2024
0cfbd60
Document the option to run LOBSTER with one jobscript only (#811)
JaGeo May 11, 2024
697d1d8
Add magnetic orderings workflow (#432)
mattmcdermott May 11, 2024
c263f2a
`from_...` class methods now return `typing_extensions.Self` (#840)
janosh May 11, 2024
a019641
Update LobsterPy version (#841)
JaGeo May 11, 2024
81f5841
CI add `repository_dispatch` event for `pymatgen_ci_trigger` (#835)
janosh May 11, 2024
ed274ab
Bump phonopy from 2.22.1 to 2.23.1 (#846)
dependabot[bot] May 13, 2024
d2fe199
Bump lobsterpy from 0.4.0 to 0.4.4 (#848)
dependabot[bot] May 13, 2024
56185f6
Bump furo from 2024.1.29 to 2024.5.6 (#847)
dependabot[bot] May 13, 2024
5296606
Fix `TrajectoryObserver.to_ase_trajectory` return type (#852)
janosh May 14, 2024
dc4eaf0
Fix title hierarchies in VASP documentation (#853)
JaGeo May 15, 2024
d474d21
fix typos
janosh May 15, 2024
7a9e856
Make Fermi Energy Optional for FHI-aims (#793)
tpurcell90 May 16, 2024
0c4da0a
Bump python-ulid from 2.5.0 to 2.6.0 (#858)
dependabot[bot] May 27, 2024
f5498c5
Bump typing-extensions from 4.11.0 to 4.12.0 (#859)
dependabot[bot] May 27, 2024
c3150fa
Bump sphinx-design from 0.5.0 to 0.6.0 (#857)
dependabot[bot] May 27, 2024
5f6abad
Bump monty from 2024.3.31 to 2024.5.24 (#860)
dependabot[bot] May 27, 2024
d53beab
Handling failures in elastic flow (#861)
gpetretto May 29, 2024
6d3754d
Bump typing-extensions from 4.12.0 to 4.12.1 (#864)
dependabot[bot] Jun 3, 2024
4b2d62f
Bump pymatgen from 2024.5.1 to 2024.5.31 (#867)
dependabot[bot] Jun 3, 2024
11ac2fc
Bump ipython from 8.23.0 to 8.25.0 (#869)
dependabot[bot] Jun 3, 2024
69f4ff5
Bump pydantic from 2.7.1 to 2.7.2 (#868)
dependabot[bot] Jun 3, 2024
d2e483e
Bump dscribe from 2.1.0 to 2.1.1 (#865)
dependabot[bot] Jun 3, 2024
36b7977
transpose matrix (#872)
JaGeo Jun 4, 2024
3db684d
Add test for supercell matrix creation in phonon workflow (#873)
JaGeo Jun 5, 2024
55aceb8
Bump typing-extensions from 4.12.1 to 4.12.2 (#877)
dependabot[bot] Jun 10, 2024
7b986d6
Bump ijson from 3.2.3 to 3.3.0 (#876)
dependabot[bot] Jun 10, 2024
7f474a3
Bump pydantic-settings from 2.2.1 to 2.3.1 (#875)
dependabot[bot] Jun 10, 2024
25f931e
Bump matgl from 1.1.1 to 1.1.2 (#882)
dependabot[bot] Jun 10, 2024
9706bd8
Bump chgnet from 0.3.5 to 0.3.8 (#881)
dependabot[bot] Jun 10, 2024
87d8c32
Bump pydantic from 2.7.2 to 2.7.3 (#884)
dependabot[bot] Jun 10, 2024
f34d369
Bump phonopy from 2.23.1 to 2.24.2 (#879)
dependabot[bot] Jun 10, 2024
13e731a
`ruff` fixes (#894)
janosh Jun 22, 2024
ff770f3
Bump pydantic from 2.7.3 to 2.7.4 (#886)
dependabot[bot] Jun 22, 2024
9770434
Bump pymatgen from 2024.5.31 to 2024.6.10 (#887)
dependabot[bot] Jun 22, 2024
2b95bd0
Bump pydantic-settings from 2.3.1 to 2.3.3 (#888)
dependabot[bot] Jun 22, 2024
738d825
Bump python-ulid from 2.6.0 to 2.7.0 (#897)
dependabot[bot] Jun 24, 2024
3d5d4dc
Bump phonopy from 2.24.2 to 2.24.3 (#898)
dependabot[bot] Jun 24, 2024
1f638c6
commenting out quality control
hrushikesh-s Mar 4, 2024
a0d76b6
adding renormalization changes from Junsoo
hrushikesh-s Mar 8, 2024
b1e5dd7
fixes
hrushikesh-s Mar 29, 2024
2f6f9f1
fixes
hrushikesh-s Mar 29, 2024
319cfc6
customized INCAR tags
hrushikesh-s Mar 29, 2024
3991202
adding LTC calculators
hrushikesh-s Mar 29, 2024
5515d1a
added anharmonicphonons block in pyproject.yaml
hrushikesh-s Mar 29, 2024
e957c61
update the logic to use lambda=0 for TI
hrushikesh-s Mar 29, 2024
4593415
updating the logic to generate fixed displacements
hrushikesh-s Apr 4, 2024
5c9e168
can now run hiphive fitting individually
hrushikesh-s Apr 5, 2024
b1f93de
adding fw configs to individual jobs
hrushikesh-s Apr 30, 2024
4bcd97e
new displacement strategy
hrushikesh-s May 27, 2024
a41d31e
added CHGNet MD step to generate displacement snapshots
hrushikesh-s May 28, 2024
a0d2050
updateing arguments of the MD run
hrushikesh-s May 28, 2024
f1217b6
minor bug fixes to MD flow
hrushikesh-s May 28, 2024
2790070
updated MD args for running mp-23339
hrushikesh-s May 29, 2024
58aedd1
new cutoffs sampling startegy
hrushikesh-s Jun 26, 2024
f92a7a4
1. reorganized the imports
hrushikesh-s Jun 28, 2024
7befb93
1. refactored the hiphive flow
hrushikesh-s Jun 28, 2024
06b2a3a
Merge branch 'hiphive_new_sampling_startegy' into hiphive
hrushikesh-s Jun 28, 2024
c61dcf7
fixes
hrushikesh-s Jun 28, 2024
dbbfa40
Merge pull request #11 from hrushikesh-s/hiphive_new_sampling_startegy
hrushikesh-s Jun 28, 2024
af590ba
ruff fixes
hrushikesh-s Jun 28, 2024
20ad5c3
mypy fixes to hiphive flow
hrushikesh-s Jun 28, 2024
bbebbd4
updated logic to remove cutoffs that result in 0 constraints!
hrushikesh-s Jun 28, 2024
5f977f0
1. no major code logic updates
hrushikesh-s Jul 29, 2024
02ff2cc
reduced the user_kpoints_settings -- "reciprocal_density" to 100
hrushikesh-s Jul 29, 2024
0aeb863
writing hiphive's flow like phonopy's flow
hrushikesh-s Nov 14, 2024
a600755
moving previous hiphive jobs into schemas
hrushikesh-s Nov 14, 2024
9163c8a
added hiphive schemas file
hrushikesh-s Nov 14, 2024
7a790a1
Bump ipython from 8.25.0 to 8.26.0 (#905)
dependabot[bot] Jul 1, 2024
355014b
Bump custodian from 2024.4.18 to 2024.6.24 (#908)
dependabot[bot] Jul 1, 2024
c4712ca
Bump phonopy from 2.24.3 to 2.25.0 (#906)
dependabot[bot] Jul 1, 2024
7677939
Bump pydantic-settings from 2.3.3 to 2.3.4 (#907)
dependabot[bot] Jul 1, 2024
147cd78
Bump lobsterpy from 0.4.4 to 0.4.5 (#913)
dependabot[bot] Jul 8, 2024
34e908b
Bump phonopy from 2.25.0 to 2.26.2 (#914)
dependabot[bot] Jul 8, 2024
13bdff1
Bump pydantic from 2.7.4 to 2.8.2 (#915)
dependabot[bot] Jul 8, 2024
66cec7a
Add possibility to use your own M3GNet potential (#911)
QuantumChemist Jul 10, 2024
32e3224
Bump sphinx from 7.2.6 to 7.4.0 (#919)
dependabot[bot] Jul 15, 2024
0ad7277
Bump phonopy from 2.26.2 to 2.26.5 (#921)
dependabot[bot] Jul 15, 2024
3b0fefe
Equation of State workflow for FHI-aims (#889)
ansobolev Jul 16, 2024
88f7b1c
Fix JobStoreDocument attribute access (#710)
mjwen Jul 18, 2024
659c938
Fix docs
Jul 18, 2024
ec2a1ed
Fix docs
Jul 18, 2024
b7bd89b
Update sphinx version
Jul 18, 2024
181f72c
Update precommit
Jul 18, 2024
208cc43
Docs: add Document Models / emmet tutorial (#917)
rkingsbury Jul 18, 2024
5898ada
Writing tutorial for high level overview of atomate2 concepts. (#757)
QuantumChemist Jul 18, 2024
83b1d92
Add elastic workflow for FHI-aims (#871)
tpurcell90 Jul 18, 2024
6580110
Tutorial for blob storage with test (#776)
jmmshn Jul 18, 2024
fa67259
Added NEP MLIP relax, static, and MD makers (#893)
naik-aakash Jul 18, 2024
35eb935
fix CP2K TaskDocument (#900)
lory-w Jul 18, 2024
b7f20e8
add additional fields as kwargs to PhononBSDOSDoc (#910)
naik-aakash Jul 18, 2024
48e61cb
Defect: Allow bulk SC calculation to be skipped. (#742)
jmmshn Jul 18, 2024
1d0c9c7
[WIP] Documentation update (#850)
AntObi Jul 18, 2024
2187f2d
Bump sphinx from 7.4.6 to 7.4.7 (#926)
dependabot[bot] Jul 22, 2024
7503383
Bump furo from 2024.5.6 to 2024.7.18 (#931)
dependabot[bot] Jul 22, 2024
a7ccf30
Bump phonopy from 2.26.5 to 2.26.6 (#930)
dependabot[bot] Jul 22, 2024
d90a7af
Bump nbmake from 1.5.3 to 1.5.4 (#929)
dependabot[bot] Jul 22, 2024
68c96a3
Bump pymatgen-analysis-defects from 2024.5.11 to 2024.7.19 (#925)
dependabot[bot] Jul 22, 2024
6fc2d95
Add `SevenNetRelaxMaker` + `SevenNetStaticMaker` to force field jobs …
janosh Jul 29, 2024
843459d
Lobster schema updates (#924)
naik-aakash Jul 30, 2024
ecb87fc
Transition to pymatgen VASP input sets (#854)
esoteric-ephemera Jul 30, 2024
9972d90
Add workflow to compute Gruneisen parameters (#752)
naik-aakash Jul 31, 2024
015e073
ruff fixes (#946)
janosh Aug 7, 2024
52d5540
Add back `symprec` kwarg to MP and MatPES set generators (#947)
janosh Aug 7, 2024
fcecc5b
Added documentation about JSONStore usage within Installation (#945)
abhardwaj73 Aug 7, 2024
2b595a9
Bump myst-parser from 3.0.1 to 4.0.0 (#950)
dependabot[bot] Aug 12, 2024
c515565
Bump pyyaml from 6.0.1 to 6.0.2 (#952)
dependabot[bot] Aug 12, 2024
714ef42
Bump furo from 2024.7.18 to 2024.8.6 (#951)
dependabot[bot] Aug 12, 2024
5c3f5d1
Bump phonopy from 2.26.6 to 2.26.7 (#949)
dependabot[bot] Aug 12, 2024
6fe2d43
Bump pytest from 8.0.2 to 8.3.2 (#937)
dependabot[bot] Aug 12, 2024
7480c2f
Bump numpydoc from 1.7.0 to 1.8.0 (#948)
dependabot[bot] Aug 12, 2024
ca54221
Remove README note about atomate2 mostly being for VASP (#957)
Andrew-S-Rosen Aug 17, 2024
8174c69
Fix MPID assignment in electrode workflow (#956)
esoteric-ephemera Aug 20, 2024
25c89f2
Update changelog
Aug 20, 2024
7a49d82
Update release.yml
utf Aug 20, 2024
dbd030d
bump ruff + auto-fixes
janosh Aug 20, 2024
049473b
Anharmonicity Quantification workflow (#901)
4kevinbeck5 Aug 24, 2024
bf8a116
Bump phonopy from 2.26.7 to 2.27.0 (#964)
dependabot[bot] Aug 26, 2024
1424fd5
Bump mp-api from 0.41.2 to 0.42.1 (#963)
dependabot[bot] Aug 26, 2024
1cdcaa6
Bump ipython from 8.26.0 to 8.27.0 (#966)
dependabot[bot] Sep 2, 2024
6c44a3a
Bump pydantic from 2.8.2 to 2.9.0 (#972)
dependabot[bot] Sep 9, 2024
106399f
Workflow for Quasi-harmonic approximation (forcefields and VASP) (#903)
JaGeo Sep 9, 2024
711de53
Bump pytest from 8.3.2 to 8.3.3 (#978)
dependabot[bot] Sep 16, 2024
46b45b4
Bump pydantic-settings from 2.3.4 to 2.5.2 (#981)
dependabot[bot] Sep 16, 2024
1481f04
Bump pydantic from 2.9.0 to 2.9.1 (#977)
dependabot[bot] Sep 16, 2024
0e8d8d1
Bump mp-api from 0.42.1 to 0.42.2 (#983)
dependabot[bot] Sep 16, 2024
e29de49
Bump sevenn from 0.9.3 to 0.9.3.post1 (#982)
dependabot[bot] Sep 16, 2024
9354b4d
Bump pydantic from 2.9.1 to 2.9.2 (#991)
dependabot[bot] Sep 23, 2024
1a80eaa
Remove emmet `==` pin in `pyproject.toml` and update version in `stri…
Andrew-S-Rosen Sep 23, 2024
0258cd9
Atomate2 OpenMM integration & broader classical MD framework (#782)
orionarcher Sep 23, 2024
4780de6
Frequency Flattening Optimizer (#863)
rohithsrinivaas Sep 24, 2024
30e38e0
Input set tutorial (#780)
JonathanSchmidt1 Sep 24, 2024
ff32a18
Including VASP surface adsorption flow (#691)
itsshawnwang Sep 24, 2024
108100f
Generalize forcefields for generic ASE calculator support (#940)
esoteric-ephemera Sep 25, 2024
031e8b5
Update changelog
Sep 26, 2024
417eb1d
Bump min supported Python to 3.10 (#992)
janosh Sep 26, 2024
981d0f1
Excise openff dependency from openmm testing (#993)
orionarcher Sep 27, 2024
98da469
Fix `prev_dir` behavior in input set generator of `MPGGAStaticMaker` …
Andrew-S-Rosen Sep 29, 2024
06276e2
Split tests (#985)
esoteric-ephemera Sep 29, 2024
ba75563
Update changelog
Sep 30, 2024
7bccd39
Allow energy minimization maker to report energies (#1004)
orionarcher Oct 1, 2024
1a22235
Bump lobsterpy from 0.4.5 to 0.4.9 (#1001)
dependabot[bot] Oct 3, 2024
ffbad05
Implementation to adjust get_supercell_size to also generate orthorho…
QuantumChemist Oct 3, 2024
f83acf2
Aims magnetic ordering (#922)
tpurcell90 Oct 3, 2024
f311df6
fix ruff PLC0206 Extracting value from dict without calling .items() …
janosh Oct 6, 2024
f6ac987
Bump chgnet from 0.3.8 to 0.4.0 (#990)
dependabot[bot] Oct 6, 2024
5ad7147
Bump ipython from 8.27.0 to 8.28.0 (#1010)
dependabot[bot] Oct 7, 2024
f1f73be
Bump python-ulid from 2.7.0 to 3.0.0 (#1015)
dependabot[bot] Oct 14, 2024
8a6cec9
Ferroelectric Workflow 2 (#1012)
fraricci Oct 15, 2024
04c96f9
Bump sphinx from 7.4.7 to 8.1.3 (#1016)
dependabot[bot] Oct 16, 2024
3dce858
Bump custodian from 2024.6.24 to 2024.10.16 (#1020)
dependabot[bot] Oct 21, 2024
d4748a7
Bump pytest-split from 0.9.0 to 0.10.0 (#1019)
dependabot[bot] Oct 21, 2024
ee10c84
Bump torch from 2.4.1 to 2.5.0 (#1018)
dependabot[bot] Oct 21, 2024
28e83c3
Bump pydantic-settings from 2.5.2 to 2.6.0 (#1021)
dependabot[bot] Oct 21, 2024
19b4c28
Bump ipython from 8.28.0 to 8.29.0 (#1025)
dependabot[bot] Oct 28, 2024
77ad2e9
Bump calorine from 2.2.1 to 3.0 (#1026)
dependabot[bot] Oct 28, 2024
a719dd0
Bump sevenn from 0.9.3.post1 to 0.10.0 (#1028)
dependabot[bot] Oct 28, 2024
332f06a
Update MACE to 0.3.6 (#1032)
orionarcher Oct 30, 2024
d715cef
Allow custom mace model by specifying "model" in calculator kwargs" (…
orionarcher Oct 31, 2024
8a3f1e4
feat: add dedicated fireworks optional dependency (Fix #1033). (#1035)
hongyi-zhao Nov 1, 2024
4b5cb36
MPMorph Flows (#938)
BryantLi-BLI Nov 1, 2024
4bb7d0e
Bump torch from 2.5.0 to 2.5.1 (#1039)
dependabot[bot] Nov 4, 2024
44eebd6
Bump pytest-cov from 5.0.0 to 6.0.0 (#1041)
dependabot[bot] Nov 4, 2024
72fea4a
Bump pydantic-settings from 2.6.0 to 2.6.1 (#1042)
dependabot[bot] Nov 4, 2024
c776471
Make testing utils importable (#1037)
jmmshn Nov 6, 2024
a3b0644
Bump sevenn from 0.10.0 to 0.10.1 (#1050)
dependabot[bot] Nov 11, 2024
ccb4b36
Update versioningit requirement from ~=1.0 to >=1,<4 (#1051)
dependabot[bot] Nov 11, 2024
5d9161e
Feat: GW workflow with VASP (#808)
yanghan234 Nov 12, 2024
bb42c85
Bump monty from 2024.7.30 to 2024.10.21 (#1027)
dependabot[bot] Nov 12, 2024
e9aa668
Update changelog
Nov 12, 2024
b9c59fc
Add trajectory reporter to openmm workflow (#1053)
orionarcher Nov 13, 2024
a07ca83
modifications based on new versions of pymatgen & hiphive
hrushikesh-s Nov 16, 2024
f7fa784
pre-commit fixes schemas/hiphive.py
hrushikesh-s Nov 21, 2024
b5eac65
pre-commit fixes jobs/hiphive.py
hrushikesh-s Nov 21, 2024
22872e5
pre-commit fixes flows/hiphive.py
hrushikesh-s Nov 21, 2024
b49c869
removing unused code
hrushikesh-s Nov 21, 2024
68eea2b
removing the gpu_fworker config tag
hrushikesh-s Nov 21, 2024
cd36b72
test_data -- Si_hiphive
hrushikesh-s Nov 21, 2024
31a8d60
tests/vasp/flows/test_hiphive.py
hrushikesh-s Nov 22, 2024
2396b42
removed old test files for hiphive
hrushikesh-s Nov 22, 2024
a97158f
Merge branch 'upstream_main' into hiphive
hrushikesh-s Nov 22, 2024
09228aa
pre-commit vasp/flows/hiphive.py
hrushikesh-s Nov 22, 2024
60c5e18
pre-commit forecefields/flows/hiphive.py
hrushikesh-s Nov 22, 2024
fb53491
pre-commit src/atomate2/settings.py
hrushikesh-s Nov 22, 2024
bb52e2b
pre-commit common/jobs/phonons.py
hrushikesh-s Nov 22, 2024
4f28310
update to pyproject.toml
hrushikesh-s Nov 22, 2024
e32f960
changing the name of "anharmonicphonons" block to "hiphive"
hrushikesh-s Nov 22, 2024
7c95b6e
added hiphive dependencies to strict
hrushikesh-s Nov 22, 2024
cc12b08
soften phono3py version
hrushikesh-s Nov 22, 2024
8f6b299
installing phono3py using conda
hrushikesh-s Nov 22, 2024
63614e2
Merge branch 'hiphive'
thomasloux Jan 2, 2026
f91d105
ruff, add function deleted in phonopy, adapted to new phonopy version
thomasloux Jan 2, 2026
9ea3709
adapt to new atomate force field classes
thomasloux Jan 2, 2026
0b8c2f5
ruff happy
thomasloux Jan 2, 2026
e9fe0dc
update phono3py version
thomasloux Jan 2, 2026
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
12 changes: 11 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,16 @@ amset = ["amset>=0.4.15", "pydash"]
cclib = ["cclib>=1.8.1"]
mp = ["mp-api>=0.37.5"]
phonons = ["phonopy>=2.43.6", "seekpath>=2.0.0"]
hiphive = [
"phonopy==2.21.2",
"hiphive @ git+https://gitlab.com/jsyony37/hiphive.git@personal#egg=hiphive",
"f90nml==1.4.4",
"spglib>=2.2.0",
"ase>=3.22.1",
"phono3py==2.8.0",
"numpy==1.26.4",
"scipy==1.14.1",
]
lobster = ["ijson>=3.2.2", "lobsterpy>=0.4.0"]
defects = [
"dscribe>=1.2.0",
Expand Down Expand Up @@ -217,7 +227,7 @@ isort.known-first-party = ["atomate2"]
isort.split-on-trailing-comma = false

[tool.ruff.format]
docstring-code-format = true
# docstring-code-format = true

[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
Expand Down
398 changes: 398 additions & 0 deletions src/atomate2/common/flows/hiphive.py

Large diffs are not rendered by default.

243 changes: 243 additions & 0 deletions src/atomate2/common/jobs/hiphive.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
"""Jobs for calculating harmonic & anharmonic props of phonon using hiPhive."""

# Basic Python packages
from __future__ import annotations

import warnings
from typing import TYPE_CHECKING

import numpy as np
import scipy as sp

# Jobflow packages
from jobflow import job
from monty.serialization import dumpfn

# Phonopy & Phono3py
from pymatgen.core.structure import Structure
from pymatgen.io.ase import AseAtomsAdaptor
from pymatgen.phonon.bandstructure import PhononBandStructureSymmLine
from pymatgen.phonon.dos import PhononDos
from pymatgen.transformations.standard_transformations import SupercellTransformation

from atomate2.common.schemas.hiphive import ForceConstants, PhononBSDOSDoc
from atomate2.utils.log import initialize_logger

warnings.filterwarnings("ignore", module="pymatgen")
warnings.filterwarnings("ignore", module="ase")

if TYPE_CHECKING:
from emmet.core.math import Matrix3D


logger = initialize_logger(level=3)

IMAGINARY_TOL = 0.1 # in THz # changed from 0.025
FIT_METHOD = "rfe"

ev2j = sp.constants.elementary_charge
hbar = sp.constants.hbar # J-s
kb = sp.constants.Boltzmann # J/K

__all__ = [
"generate_phonon_displacements",
"generate_frequencies_eigenvectors",
]

__author__ = "Alex Ganose, Junsoo Park, Zhuoying Zhu, Hrushikesh Sahasrabuddhe"
__email__ = "aganose@lbl.gov, jsyony37@lbl.gov, zyzhu@lbl.gov, hpsahasrabuddhe@lbl.gov"


@job(data=[Structure])
def generate_phonon_displacements(
structure: Structure,
supercell_matrix: np.array,
fixed_displs: list[float],
nconfigs: int = 1,
) -> list[Structure]:
"""
Generate displaced structures with phonopy.

Parameters
----------
structure: Structure object
Fully optimized input structure for phonon run
supercell_matrix: np.array
array to describe supercell matrix
displacement: float
displacement in Angstrom
sym_reduce: bool
if True, symmetry will be used to generate displacements
symprec: float
precision to determine symmetry
use_symmetrized_structure: str or None
primitive, conventional or None
kpath_scheme: str
scheme to generate kpath
code:
code to perform the computations
"""
logger.info(f"supercell_matrix = {supercell_matrix}")
supercell_structure = SupercellTransformation(
scaling_matrix=supercell_matrix
).apply_transformation(structure)
logger.info(f"supercell_structure = {supercell_structure}")
structure_data = {
"structure": structure,
"supercell_structure": supercell_structure,
"supercell_matrix": supercell_matrix,
}

dumpfn(structure_data, "structure_data.json")

rattled_structures = [
supercell_structure for _ in range(nconfigs * len(fixed_displs))
]

atoms_list = []
for idx, rattled_structure in enumerate(rattled_structures):
logger.info(f"iter number = {idx}")
atoms = AseAtomsAdaptor.get_atoms(rattled_structure)
atoms_tmp = atoms.copy()

# number of unique displs
n_displs = len(fixed_displs)

# map the index to distance from fixed_displs list
distance_mapping = {i: fixed_displs[i] for i in range(n_displs)}

# Calculate the distance based on the index pattern
distance = distance_mapping[idx % n_displs]
logger.info(f"distance_{idx % n_displs} = {distance}")

# set the random seed for reproducibility
# 6 is the number of fixed_displs
rng = np.random.default_rng(seed=(idx // n_displs)) # idx // 6 % 6

total_inds = list(enumerate(atoms))
logger.info(f"total_inds = {total_inds}")
logger.info(f"len(total_inds) = {len(total_inds)}")

def generate_normal_displacement(
distance: float, n: int, rng: np.random.Generator
) -> np.ndarray:
directions = rng.normal(size=(n, 3))
normalizer = np.linalg.norm(directions, axis=1, keepdims=True)
distance_normal_distribution = rng.normal(
distance, distance / 5, size=(n, 1)
)
displacements = distance_normal_distribution * directions / normalizer
logger.info(f"displacements = {displacements}")
return displacements

# Generate displacements
disp_normal = generate_normal_displacement(
distance, len(total_inds), rng
) # Uncomment this later
mean_displacements = np.linalg.norm(
disp_normal, axis=1
).mean() # Uncomment this later

logger.info(f"mean_displacements = {mean_displacements}")

atoms_tmp = atoms.copy()

# add the disp_normal to the all the atoms in the structure
for i in range(len(total_inds)):
atoms_tmp.positions[i] += disp_normal[i]

atoms_list.append(atoms_tmp)

# Convert back to pymatgen structure
structures_pymatgen = []
for atoms_ase in range(len(atoms_list)):
logger.info(f"atoms: {atoms_ase}")
logger.info(f"structures_ase_all[atoms]: {atoms_list[atoms_ase]}")
structure_i = AseAtomsAdaptor.get_structure(atoms_list[atoms_ase])
structures_pymatgen.append(structure_i)

for i in range(len(structures_pymatgen)):
structures_pymatgen[i].to(f"POSCAR_{i}", "poscar")

dumpfn(structures_pymatgen, "perturbed_structures.json")

return structures_pymatgen


@job(
output_schema=PhononBSDOSDoc,
data=[PhononDos, PhononBandStructureSymmLine, ForceConstants],
)
def generate_frequencies_eigenvectors(
structure: Structure,
supercell_matrix: np.array,
displacement: float,
sym_reduce: bool,
symprec: float,
use_symmetrized_structure: str | None,
kpath_scheme: str,
code: str,
displacement_data: dict[str, list],
total_dft_energy: float,
epsilon_static: Matrix3D = None,
born: Matrix3D = None,
bulk_modulus: float = None,
disp_cut: float = 0.05,
**kwargs,
) -> PhononBSDOSDoc:
"""
Analyze the phonon runs and summarize the results.

Parameters
----------
structure: Structure object
Fully optimized structure used for phonon runs
supercell_matrix: np.array
array to describe supercell
displacement: float
displacement in Angstrom used for supercell computation
sym_reduce: bool
if True, symmetry will be used in phonopy
symprec: float
precision to determine symmetry
use_symmetrized_structure: str
primitive, conventional, None are allowed
kpath_scheme: str
kpath scheme for phonon band structure computation
code: str
code to run computations
displacement_data: dict
outputs from displacements
total_dft_energy: float
total DFT energy in eV per cell
epsilon_static: Matrix3D
The high-frequency dielectric constant
born: Matrix3D
Born charges
bulk_modulus: float
Bulk modulus in GPa
disp_cut: float
Displacement cut-off in Angstrom
kwargs: dict
Additional parameters that are passed to PhononBSDOSDoc.from_forces_born
"""
logger.info("Starting generate_frequencies_eigenvectors()")
return PhononBSDOSDoc.from_forces_born(
structure=structure.remove_site_property(property_name="magmom")
if "magmom" in structure.site_properties
else structure,
supercell_matrix=supercell_matrix,
displacement=displacement,
sym_reduce=sym_reduce,
symprec=symprec,
use_symmetrized_structure=use_symmetrized_structure,
kpath_scheme=kpath_scheme,
code=code,
displacement_data=displacement_data,
total_dft_energy=total_dft_energy,
epsilon_static=epsilon_static,
born=born,
bulk_modulus=bulk_modulus,
disp_cut=disp_cut,
**kwargs,
)
13 changes: 13 additions & 0 deletions src/atomate2/common/jobs/phonons.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,15 @@ def generate_phonon_displacements(

supercells = phonon.supercells_with_displacements

from monty.serialization import dumpfn

# Convert back to pymatgen structure
structures_pymatgen = [get_pmg_structure(cell) for cell in supercells]
for i in range(len(structures_pymatgen)):
structures_pymatgen[i].to(f"POSCAR_{i}", "poscar")

dumpfn(structures_pymatgen, "perturbed_structures.json")

return [get_pmg_structure(cell) for cell in supercells]


Expand Down Expand Up @@ -281,6 +290,7 @@ def run_phonon_displacements(
"forces": [],
"uuids": [],
"dirs": [],
"structure": [],
}
phonon_job_kwargs = {}
if prev_dir is not None and prev_dir_argname is not None:
Expand All @@ -296,11 +306,13 @@ def run_phonon_displacements(
phonon_job.update_maker_kwargs(
{"_set": {"write_additional_data->phonon_info:json": info}}, dict_mod=True
)

phonon_jobs.append(phonon_job)
outputs["displacement_number"] = list(range(len(displacements)))
outputs["uuids"] = [phonon_job.output.uuid] * len(displacements)
outputs["dirs"] = [phonon_job.output.dir_name] * len(displacements)
outputs["forces"] = phonon_job.output.output.all_forces
outputs["structure"].append(phonon_job.output.output.structure)
else:
for idx, displacement in enumerate(displacements):
if prev_dir is not None:
Expand All @@ -326,6 +338,7 @@ def run_phonon_displacements(
outputs["uuids"].append(phonon_job.output.uuid)
outputs["dirs"].append(phonon_job.output.dir_name)
outputs["forces"].append(phonon_job.output.output.forces)
outputs["structure"].append(phonon_job.output.output.structure)

displacement_flow = Flow(phonon_jobs, outputs)
return Response(replace=displacement_flow)
Loading