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 - Parameterfile is different from calculated bond length in- PDBfiles 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 - Linearand- Branchedmolecules will be corrected during the simulation by using the Monte Carlo moves that uses coupled-decoupled configurational-bias method, such as- Regrowth,- Intra-box swap, and- Inter-box swap.
Warning
- Bond length of the - Cyclicmolecules 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 - Cyclicmolecule that belongs to the body of the ring,- Regrowthor- CrankshaftMonte 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 - Cyclicmolecules with multiple rings (3 or more) that share edges (e.g. tricyclic), are not supported in GOMC. This is due the fact that no- Crankshaftmove can alter the angle or dihedral of this atom, without changing the bond length.