Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Forcefield molecular dynamics and forcefield refactor (materialsproje…
…ct#722) * FF MD fully implemented * change MD defaults to be NVT + Langevin dynamics * add md defaults that are as consistent with vasp implementation as possible * correct typing of langevin friction coeff * Add option to ForceFieldTaskDocument to store trajectory information as pmg object * Add tests, remove dependence on pickle for trajectory i/o * fix tests, update matgl dependence * rename MD forcefield class vars to be consistent with VASP MDSetGenerator * Add option to explicitly specify thermostat as ASE MolecularDynamics object * refactoring and add T/P schedule * implement T/P schedule and attach callback func * np.nan * np.nan * small fixes * pass ASE dynamics object instead of class, update docstring * add temp ramp test and make sure upper tria matrix cell * add stresses to trajeoctroy observer, add pressure schedule test * avoid `stresses` key not in taskdoc bug * Refactory TrajectoryObserver, add option to save trajectory as either pmg or ase trajectory objects, add test for trajectory parsing * Change decomposition to upper triangular cell only when Nose-Hoover requested * Fix failing tests * Change MD default TaskDoc ionic step to only store mandatory info * update pymatgen requirement because of CifParser deprecation * Significant refactor to all forcefield jobs. Use commmon ASE calc structure, allow loading via MontyDecoder. Add check in relaxation for force convergence, attr in Forcefield taskdoc * Fix forcefield utils test and lint * Add revert_dtype env for running forcefield relax and md jobs / undo removal * refactor nequip jobs, add md default for nequip * Add GAP and Nequip MD tests, fix arg / kwarg passing in MD * remove calculator_args / ase_calculator args, revert phonon job change * remove todo about adding magmoms to forcefield traj observer as that's now implemented * Remove comments, add option to seed rng for MB velocities, turn on ideal gas stress contribution only when MD trajectory outputs (temp / velocity) are stored * Ensure CHGNet and M3GNet relax / static makers convert stress to eV/A0**3; add tests for MD NVE ensemble and specifying MolecularDynamics object as input * fix M3GNet test related to outdated cached model * Fix dependencies, amend forcefield static option parsing * linting * try to fix ci tests caused by torch / dgl incompatibility * try to fix ci tests caused by torch / dgl incompatibility * Change: default time_step, units for time_step, initialization of temperature and velocity in TrajectoryObserver, snake case change * linting / pre-commit * revert default time_step units to fs * add missing forcefields to version check in forcefield task document * allow complex schur decomposition * more snake case * Decrease number of steps in tests for speed. Fix (?) temperature / pressure scheduling * linting * fix T/P schedule * linting * replace dunder __getattribute__ --> getattr in forcefield test_md --------- Co-authored-by: Yuan Chiang <[email protected]> Co-authored-by: Yuan (Cyrus) Chiang <[email protected]> Co-authored-by: Janosh Riebesell <[email protected]>
- Loading branch information