fix(MVLSlabSet): convert DIPOL vector to pure Python list before writing INCAR #4362
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
When
auto_dipole=True,MVLSlabSetwas passing a NumPy array into the INCAR’s DIPOL tag, causing pymatgen to serialize it with brackets (e.g.DIPOL = [0.1 0.2 0.3]). VASP expects three space‑separated floats without any brackets: https://www.vasp.at/wiki/index.php/DIPOL.This PR converts the computed center‑of‑mass array into a plain Python
list[float](via.tolist()), ensuring the INCAR writesDIPOL = 0.1 0.2 0.3instead of
DIPOL = [0.1 0.2 0.3]which errors out with the recent VASP 6.4.
Major changes:
MVLSlabSet.incar_updates, replacecenter_of_mass(a NumPy array) with a pure python list =com.tolist()Checklist
ruff.mypy.duecredit@due.dcitedecorators to reference relevant papers by DOI (example)Tip: Install
pre-commithooks to auto-check types and linting before every commit: