Coder Social home page Coder Social logo

khavernathy / mcmd Goto Github PK

View Code? Open in Web Editor NEW
80.0 11.0 19.0 20.98 MB

Monte Carlo and Molecular Dynamics Simulation Package

License: GNU General Public License v3.0

C++ 94.37% Shell 0.45% Cuda 1.45% QML 2.85% QMake 0.07% C 0.70% CMake 0.10%
molecular-dynamics-simulation polarization monte-carlo pdb molecular-dynamics chemistry physics physics-simulation monte-carlo-simulation periodicity

mcmd's Introduction

MCMD

This is a Monte Carlo and Molecular Dynamics Simulation software used primarily for gas sorption in crystalline materials. It is a project that began as a re-write and expansion of Massively Parallel Monte Carlo (MPMC), another code developed and maintained by our laboratory, led by Brian Space at the University of South Florida, Dept. of Chemistry, Smart Metal-organic Materials Advanced Research and Technology Transfer (SMMARTT).

MCMD simulation screenshot

Quick start:

Using a terminal,
    0. (On Windows only) Get the Linux Subsystem (easier instructions for beginners) (or equivalent software, e.g. CygWin):

  1. Download:
    git clone https://github.com/khavernathy/mcmd or download .zip file

  2. Compile:
    cd mcmd
    cd src
    bash compile.sh [ options ]
    cd ..
    export PATH=$PATH:/path/to/mcmd/

  3. Run:
    mcmd mcmd.inp

Update

cd mcmd
git pull
cd src
bash compile.sh [ options ]

Advanced compilation

Take a look at mcmd/src/compile.sh for different options in compilation (OS-specific, CUDA implementation, OpenMP, optimization on different HPC systems, etc.)


Docs

You can find details on available options, built-in potentials, etc. on the wiki page: https://github.com/khavernathy/mcmd/wiki

Contact

Douglas Franz: [email protected] University of South Florida Dept. of Chemistry

MCMD

Features

 -> Monte Carlo simulation in NPT, NVT, NVE, and μVT ensembles.
 -> Molecular Dynamics simulation in NVT, NVE, and μVT ensembles.
 -> A crystal builder to create fully parameterized supercells from unit cells.
 -> A fragment creator based around uniquely named atoms.
 -> A LAMMPS input file exporter.
 -> Trajectories and restart files in various formats.
 -> Automatic radial distribution calculator
 -> Hard-coded molecular models for easy input, including multi-molecule support
 -> Easy system basis parametrization via a, b, c, α, β, γ crystal parameters, or basis vectors
 -> Quick routines for energy/force computation
 -> Simulated annealing
 -> Any periodic cell is supported for both MC and MD; non-periodic systems also supported.
 -> Potentials available are Lennard-Jones (12-6), Tang-Toennies (6-8-10), Ewald electrostatics, and Thole-Applequist polarization.
 -> Built-in force fields from UFF, OPLS, and other sources
 -> Sample inputs are included. The program takes just one argument: the input file (which itself usually points to a file containing starting atoms).

What can be obtained from this software

The program outputs several quantities of interest:
 ->Uptake of sorbates in wt%, reduced wt%, cm^3/g, mmol/g and mg/g
 ->Excess adsorption ratio in mg/g
 ->Selectivities for multi-sorbate simulation
 ->Qst (heat of sorption) for sorbate
 ->Sorbate occupation about some site/atom (g(r))
 ->Diffusion coefficient and specific heat
 ->Trajectory and restart files to easily pickup a halted job and visualize simulation
 ->3D histogram data for visualization of sorbate occupation in a material (density visualization).
 ->Induced dipole strengths for polarization simulations

Operating System requirements

MCMD works out-of-the-box on
 -> Linux (tested on Ubuntu 16.04)
 -> Mac (tested on OS X El Capitan v10.11.6)
 -> Windows (tested using Cygwin and Windows 7 with gcc 5.4.0 installed)
 -> Raspberry Pi (3, using Raspian OS).

Visualization

We recommend Visual Molecular Dynamics (VMD) for data visualization, but the output is compatible with most other software, e.g. Avogadro, Molden, Ovito, etc.

Cite MCMD

Franz, D. M. et al. MPMC and MCMD: Free High‐Performance Simulation Software for Atomistic Systems. Adv. Theory Sim., 2019. DOI: 10.1002/adts.201900113

Selected Publications

Below is a list of scientific publications/presentations that have been facilitated by this software.

  1. Mukherjee, S. et al. Trace CO2 Capture by an Ultramicroporous Physisorbent with Low Water Affinity. Science Advances, 2019. DOI:10.1126/sciadv.aax9171

  2. Franz, D. M., Forrest, K. A., Pham, T., & Space, B. (2016). Accurate H2 Sorption Modeling in the rht-MOF NOTT-112 Using Explicit Polarization. Crystal Growth & Design, 16(10), 6024-6032. DOI:10.1021/acs.cgd.6b01058

  3. Mukherjee et al. Halogen‐C2H2 Binding in Ultramicroporous MOFs for Benchmark C2H2/CO2 Separation Selectivity. Chem. Eur. J. 2020. DOI:10.1002/chem.202000008

  4. Pham, T., Forrest, K. A., Franz, D. M., Guo, Z., Chen, B., & Space, B. (2017). Predictive models of gas sorption in a metal–organic framework with open-metal sites and small pore sizes. Physical Chemistry Chemical Physics, 19(28), 18587-18602. DOI:10.1039/C7CP02767B

  5. Pham, T., Forrest, K. A., Franz, D. M., & Space, B. (2017). Experimental and theoretical investigations of the gas adsorption sites in rht-metal-organic frameworks. CrystEngComm, 19, 4646-4665. DOI:10.1039/C7CE01032J

  6. Franz, D. M.; Dyott, Z.; Forrest, K. A.; Hogan, A.; Pham, T.; Space, B. Simulations of hydrogen, carbon dioxide, and small hydrocarbon sorption in a nitrogen-rich rht-metal–organic framework. Phys. Chem. Chem. Phys. 2017. DOI:10.1039/C7CP06885A

  7. Franz, D. M.; Djulbegovic, M.; Pham, T.; Space, B. Theoretical study of the effect of halogen substitution in molecular porous materials for CO2 and C2H2 sorption. AIMS Materials Science. 2017. DOI:10.3934/matersci.2018.2.226

  8. Forrest, K. A.; Franz, D. M.; Pham, T. ; Space, B. Investigating C2H2 sorption in a-[M3(O2CH)6] (M = Mg, Mn) Through Theoretical Studies. Cryst. Growth Des. 2018. DOI:10.1021/acs.cgd.8b00770

  9. Yu et al. Enhanced Gas Uptake in a Microporous Metal–Organic Framework via a Sorbate Induced-Fit Mechanism. J. Amer. Chem. Soc. 2019. DOI:10.1021/jacs.9b07807

  10. Pal et al. A Microporous Co-MOF for Highly Selective CO2 Sorption in High Loadings Involving Aryl C–H...O=C=O Interactions: Combined Simulation and Breakthrough Studies" ACS Inorganic Chem., 2019. DOI:10.1021/acs.inorgchem.9b01402

mcmd's People

Contributors

khavernathy avatar loganritter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mcmd's Issues

Octane water mixing example

I was testing the code, but the octane water cuda example, even though it ran, didn't show any movement on the octane molecules. Is this behaviour in any way intended, or I'm missing something?

Additionally, where can I find a list of commands and input formats aside from the examples and the source code? On the MPMC wiki, assuming this is written based on that? If using a PDB, how are the atom connections infered? Any note on PQR files?

optimize GPU force; match GPU force w/CPU force in all cases

This needs a thorough check.

Consolidate pair distance calculator to 1x instead of 3x for polarized force.
Likewise consolidate local (accumulated) force vector to save time by avoiding atomicAdd()
LJ should (probably) check mixing before computing r.

mods to restart mode

detect if input_atoms_xyz was used, otherwise restart.pdb will overwrite the .xyz

i.e.
if xyz input is used, also print restart.xyz (and use that for restart.)

Also update SA temperature in input for restart mode.

Also investigate restart overwrites of runlog.

windows 7, 8, 10 installations

make this as easy as possible.

I have done in Win7 with Gygwin and gcc manually installed but ideally this will be streamlined.

threading energy tasks for MC

stuff.zip
http://bisqwit.iki.fi/story/howto/openmp/

Initial:

RD avg =              -16295.29771 +- 0.00000 K (90.06 %)
ES avg =              -1105.17625 +- 0.00000 K (6.11 %)
Polar avg =           -694.20377 +- 0.00000 K (3.84 %)
Total potential avg = -18094.67774 +- 0.00000 K

Time for 1000 steps (100 corrtime)
182.579 s total walltime (linux comp: 156.722 s)/// mpmc: 305.507
0.1825 step/sec (linux comp: 0.1567)/// mpmc: 0.305

bash compile omp linux

Half the polarization A matrix

A will be decomposed into two 1D arrays: the diagonal, and the upper symmetric half

The Map is as follows:
codecogseqn 1

The new req. memory will be
codecogseqn 2

instead of (3N)^2

screenshot from 2017-08-19 18-23-26

optimization mode

classical via UFF bonding etc. param's

Monte Carlo opt. done;

Now do steepest descent

GUI using QML

  • make initial read function to set graphing variables etc at startup.

  • make viz for atoms

  • dropdown menu for input generator

  • Mac Apple Store app (via Qt)

  • Ubuntu App Store app (via Qt?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.