Skip to content

shehan807/HTMD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Molecular Dynamics Workflow

Overview

This directory contains all updated scripts relevant in basic thermophysical and structural analysis of ionic liquids. The directory organization is kept in summary.txt and created by running `python summary.py'.

To-do

  • create dataset workflow to save analysis into ML/AI-readable (e.g., SQL?)
  • high throughput MD workflow (Galaxy, Materials Project)
  • snakemake slurm workflow
  • charge fitting automation
  • implement polymerized ILs
  • clean up TI code for OPLS generality and remove excess/redundant code
  • benchmark IL TI calculations for # of H2O molecules and eq. time

Doing

  • compare OPLS with SAPT FF

Done

PACE Consulting

  • High-throughput Molecular Dynamics (MD) Overview
  • typical MD calculation of 1 molecular system is atleast a GPU job and ~100 MB - 10 GB
  • memory footprint of 1 system depends on simulation time (10-300 nanoseconds) and molecule size (roughly, 1G/10ns)
  • 1 system may have ~100 parameters to study (temperature, concentration, etc.)
  • studying ~1000s of systems quickly becomes ~10-100 TB
  • manually submitting these jobs is prohibitive
  • Solutions / Alternatives to NERSC Software
  • FireWorks: Package many small jobs into a single large job (e.g., automatically run 100 serial workflows in parallel over 100 cores)
  • MongoDB

Atomate2 / OpenMM

1. OPLS HTMD (See results):

  • extend download_opls_xml() to use BOSS v5.1 (via Docker / docker-py)

  • support for merging xml file outputs from ligpargen (see merge_xml_files)

  • user support for binary/tertiary mixtures going from concentration --> count, i.e., openff.utils.create_list_of_mol_spec_lists()

  • water_models

2. Modifying openmm.core/openmm.jobs

  • equilibration_checker() (add arguments to OpenMMFlowMaker? Or same as EquilibrationDocs? Emmet?)

    • See count_direction_changes(x, y) and smoothness_index

    • Create analogous d_density_dt() and dU_dt() functions

    • Suppose I am running a production simulation of a new ionic liquid with an unknown equilibration timescale, under NVTMaker.run_openmm, one might opt to set the n_steps based on a physical parameter (i.e., see Openmm Issue#4756:

         def run_openmm_conditionally(self, sim: Simulation, dir_name: Path, dU_dt=False, density=False,...) -> None:
             """Evolve the simulation with OpenMM for self.n_steps.
     
             Parameters
             ----------
             sim : Simulation
                 The OpenMM simulation object.
             """
             
     	should_continue = True
     	# Run the simulation
             while should_continue(sim):
     		sim.step(self.n_steps)
    
         def should_continue(self, sim: Simulation):
     	
     	# computes dU_dt
     	# computes d_density_dt
     	if property no within tol:
     		return True
     	else:
     		return False			
     	
  • Interface Simulations (eventual surface tension calculations)

3. Eventual support for SAPT-FF

  • automate partial atomic charges via gdma from Psi4

About

Automation of OPLS and SAPT FF Workflows

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published