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

allow elastically unstable structures #355

Merged

Conversation

matthewkuner
Copy link
Collaborator

@matthewkuner matthewkuner commented May 23, 2023

Summary

Introduce a task_document_kwarg to the ElasticDocument that allows the elastic workflow to still complete in the event that the structure is elastically unstable. This specifically affects the DerivedProperties field in the ElasticDocument, which will be set to none in the event that the structure is elastically unstable.

@utf I made it so that elastically unstable structures are, by default, allowed to complete. Let me know if you think this should be changed.

@codecov
Copy link

codecov bot commented May 23, 2023

Codecov Report

Merging #355 (0861f26) into main (2f54128) will decrease coverage by 0.15%.
The diff coverage is 100.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #355      +/-   ##
==========================================
- Coverage   64.74%   64.60%   -0.15%     
==========================================
  Files          74       74              
  Lines        7157     7159       +2     
  Branches      938      938              
==========================================
- Hits         4634     4625       -9     
- Misses       2224     2236      +12     
+ Partials      299      298       -1     
Impacted Files Coverage Δ
src/atomate2/vasp/jobs/elastic.py 78.31% <ø> (ø)
src/atomate2/common/schemas/elastic.py 88.65% <100.00%> (+0.11%) ⬆️
src/atomate2/vasp/flows/elastic.py 82.50% <100.00%> (+0.44%) ⬆️

... and 1 file with indirect coverage changes

@mkhorton
Copy link
Member

Can you think of a way of adding logic here that might distinguish between truly dynamically unstable materials and materials for which the fit is just poor (e.g., has gone into a non-linear regime)? It seems important to distinguish these possibilities.

Separately, how is "elastic instability" determined -- negative eigenvalues of Voigt tensor, or some other method?

@matthewkuner
Copy link
Collaborator Author

@mkhorton I was just looking to allow workflows to complete when the bulk/shear modulus are negative (which indicates elastic instability). Honestly, I'm not familiar enough with the fine details of elastic constant fitting methods to write logic for the fitting method not being applicable / identifying dynamic instability

@mkhorton
Copy link
Member

That makes sense, perfectly valid!

@matthewkuner
Copy link
Collaborator Author

matthewkuner commented May 23, 2023

@mkhorton There is someone in Mark Asta's group, Pedro, who is more familiar with the math underlying elastic constant fitting/calculations. I will see if he has any ideas about automatically determining if the fitting method is not applicable. That probably belongs in another PR though

@matthewkuner
Copy link
Collaborator Author

@utf let me know if this is good to go or if you'd like any changes made

@matthewkuner matthewkuner requested a review from utf June 9, 2023 20:47
@utf
Copy link
Member

utf commented Jun 14, 2023

Thanks @matthewkuner. Thanks for this.

@utf utf merged commit 4e46b73 into materialsproject:main Jun 14, 2023
@utf utf added the enhancement Improvements to existing features label Sep 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvements to existing features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants