Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Atomate2 OpenMM integration & broader classical MD framework (materia…
…lsproject#782) * Move remaining content from common.py to renamed base.py. * Update core.py with skeleton code for openff_job and generate_interchange methods. * Complete Calculation, CalculationInput, and CalculationOutput schemas for classical_md.openmm.tasks.py * Implement BaseOpenMMMaker for classical_md.openmm workflow * Update core jobs for classical_md.openmm to be compatible with new BaseOpenMMMaker * Add MoleculeSpec to classical_md.schemas and modify OpenMMTaskDoc * Implement attribute inheritance logic for base openmm maker and openmm jobs * Add from/as_dict functions for openff topology, interchange, molecule, and quantity * Fix serialization issues with conflicting pydantic versions between Interchange and atomate2 * Implement anneal and production workflows * Update resolve_attr logic to set missing attributes * Change ClassicalMDTaskDocument to OpenMMTaskDocument in base.py * Store interchange intermediate as a JSON string to fix parsing issues * Implement temperature change logic in TempChangeMaker * Improve state reporter to append to state file * Output taskdoc_json file to directory for easy building * Enhance documentation for all components * Implement micromamba for testing environment * Change all docstrings to numpy format * Add CodeCov for classical_md tests * Rename "steps" argument to "n_steps" and "output_steps" to "steps" in CalculationOutput * Add support for writing trajectory to HDF5 file * Implement MDAReporter for trajectory output * Add embed_traj argument to base_openmm_maker * Add traj_blob keyword and switch interchange to type HexBytes * Move classical_md schemas to emmet * Implement OPLS force field support through ligpargen * Create FauxInterchange object for OPLS compatibility * Refactor OpenMMFlowMaker and BaseOpenMMMaker * Add XMLMoleculeFF class for manipulating XML files representing OpenMM-compatible ForceFields * Split utilities and jobs in jobs/opls.py into separate files * Refactor utilities to isolate OpenFF dependency * Add support for MACE-based interchanges * Update OpenMM tutorial * Support BaseOpenMMMaker returning structures * Implement reading and writing of structure to/from OpenMMTaskDocument --------- Co-authored-by: Alex Ganose <[email protected]> Co-authored-by: Orion Cohen <[email protected]> Co-authored-by: Janosh Riebesell <[email protected]>
- Loading branch information