team-mayes / atesa

Python program for automating the "Aimless Transition Ensemble Sampling and Analysis" (ATESA) aimless shooting workflow on PBS/TORQUE or Slurm.
BSD 3-Clause "New" or "Revised" License
6 stars 1 forks source link

Support for LAMMPS #3

Open tanooj-s opened 1 year ago

tanooj-s commented 1 year ago

Hi, I attended your seminar at RPI today and wanted to find out if it might be possible to add support for LAMMPS later on. I imagine this would allow extension of this methodology to more force fields relevant for things like surface catalysis.

tuckerburgin commented 1 year ago

Hi, thanks so much for your interest! Yes, it should definitely be possible to add support for LAMMPS. I am currently in the process of refactoring the code somewhat to make the process of implementing new simulation packages easier.

Unfortunately I have never worked with LAMMPS myself, so I would need some help from you in making sure the implementation is suitable and for testing it. If you're willing to help, then to get started please take a look at ATESA's documentation (specifically this page) and provide for me a suitable basic LAMMPS input file corresponding to the description of aimless_shooting_prod_amber.in as well as a corresponding batch submission script (slurm or PBS is fine) that submits that simulation job. Please also indicate the formats of any input files (input coordinates, topologies, etc.) and output files (output trajectories, coordinates, etc.) This should be enough for me to get started (though I'll probably have followup questions for you), and then once I have a basic test implementation I'd need your help testing it out as well.

Alternatively, I would be more than happy to help you attempt to write your own implementation! If you're interested in trying this out, I suggest you take a look at the CP2K branch of the code here on GitHub. All that needs to be done is to write a new class in the mdengines.py file that inherits from the MDEngine abstract base class and implements each of its methods in a way that's suitable for LAMMPS.

Thanks again!

tanooj-s commented 1 year ago

Hi thanks for your reply! I can definitely provide an example input LAMMPS file and Slurm job script along with all necessary data files. However I will need to take a look at the AMBER script you mentioned and read the documentation as well. I'll get back to you once I've done the necessary background reading.

tanooj-s commented 1 year ago

Hi sorry for the late reply. So I took a look at the AMBER input files and it should be pretty straightforward to make similar LAMMPS files for single timestep simulations and another one that resets velocities every so often for the actual aimless shooting. I wanted to ask if you would still prefer an ethyl chlorosulfite example or something else - this is primarily because I'm running into some difficulty finding compatible force field parameters and topology information to model that specific system in LAMMPS. There's also some subtlety in how dihedrals and bonds etc are defined between the different MD engines so I don't think I can just copy over the relevant AMBER force field coefficients. I am also not sure if there is a way to simulate part of the system with a QM method in LAMMPS as it appears to be so in AMBER. I was thinking instead it may be more useful to have a LAMMPS example with something like a reactive force field. Let me know if this sounds good and I can set up example scripts for a non-ethyl chlorosulfite system.

tuckerburgin commented 1 year ago

No worries! There's no need for your example input files to have anything to do with the ethyl chlorosulfite example that's in the documentation -- the purpose of that example is just to illustrate a simple application of ATESA and guide users through the basic workflow. The LAMMPS files you provide can be for any system you like, so long as there are clear definitions of two stable states to sample transitions between. At this stage, the most important thing is just having appropriate input files and a corresponding batch submission script.