Introduction
GPU Optimized Monte Carlo (GOMC) is open-source software for simulating many-body molecular systems using the Metropolis Monte Carlo algorithm. GOMC is written in object oriented C++, which was chosen since it offers a good balance between code development time, interoperability with existing software elements, and code performance. The software may be compiled as a single-threaded application, a multi-threaded application using OpenMP, or to use many-core heterogeneous CPU-GPU architectures using OpenMP and CUDA. GOMC officially supports Windows 7 or newer and most modern distribution of GNU/Linux. This software has the ability to compile on recent versions of macOS (x64 & ARM); however, such a platform is not officially supported.
GOMC employs widely-used simulation file types (PDB, PSF, CHARMM-style parameter file) and supports polar and non-polar linear and branched molecules. GOMC can be used to study vapor-liquid and liquid-liquid equilibria, adsorption in porous materials, surfactant self-assembly, and condensed phase structure for complex molecules.
To cite GOMC software, please refer to GOMC paper.
GOMC supported ensembles:
Canonical (NVT)
Isobaric-isothermal (NPT)
Grand canonical (\(\mu\) VT)
Constant volume Gibbs (NVT-Gibbs)
Constant pressure Gibbs (NPT-Gibbs)
GOMC supported Monte Carlo moves:
Rigid-body displacement
Rigid-body rotation
Force-biased Multiparticle move (Rigid-body displacement or rotation of all molecules)
Brownian Motion Multiparticle move (Rigid-body displacement or rotation of all molecules)
Regrowth using coupled-decoupled configurational-bias
Crankshaft using combination of crankshaft and coupled-decoupled configurational-bias
Intra-box swap using coupled-decoupled configurational-bias
Intra-box molecular exchange Monte Carlo
Intra-box targeted swap using coupled-decoupled configurational-bias
Inter-box swap using coupled-decoupled configurational-bias
Inter-box targeted swap using coupled-decoupled configurational-bias
Inter-box molecular exchange monter carlo
Volume exchange (both isotropic and anisotropic)
GOMC supported force fields:
OPLS
CHARMM
TraPPE
Mie
Martini
GOMC supported molecules:
Polar molecules (using Ewald summation)
Non-polar molecules (standard LJ and Mie potential)
Linear molecules (using coupled-decoupled configurational-bias)
Branched molecules (using coupled-decoupled configurational-bias)
Cyclic molecules (using combination of coupled-decoupled configurational-bias and crankshaft to sample intramolecular degrees of freedom of cyclic molecules)
Large biomolecules can be loaded into GOMC (although current sampling is limited to crankshaft to sample intramolecular degrees of freedom)
Note
Biomolecules often have defined secondary structure which is maintained through improper terms, CMAP, and missing angles and dihedrals.
These complexities make sampling incorrect (improper, CMAP) or impossible (missing angles and dihedrals) in GOMC and these molecules should be held fixed.
Note
It is important to start the simulation with correct molecular geometry such as correct bond length, angles, and dihedral.
In GOMC if the defined bond length in
Parameter
file is different from calculated bond length inPDB
files by more than 0.02 \(Å\), you will receive a warning message with detailed information (box, residue id, specified bond length, and calculated bond length)
Important
Molecular geometry of
Linear
andBranched
molecules will be corrected during the simulation by using the Monte Carlo moves that uses coupled-decoupled configurational-bias method, such asRegrowth
,Intra-box swap
, andInter-box swap
.
Warning
Bond length of the
Cyclic
molecules that belong to the body of rings will never be changed. Incorrect bond length may result in incorrect simulation results.To sample the angles and dihedrals of a
Cyclic
molecule that belongs to the body of the ring,Regrowth
orCrankshaft
Monte Carlo move must be used.Any atom or group attached to the body of the ring, will uses coupled-decoupled configurational-bias to sample the molecular geometry.
Flexible
Cyclic
molecules with multiple rings (3 or more) that share edges (e.g. tricyclic), are not supported in GOMC. This is due the fact that noCrankshaft
move can alter the angle or dihedral of this atom, without changing the bond length.