We are pleased to announce the release of OpenMD 3.0, with significant internal changes in how the code operates, numerous bug fixes, and a large expansion in capabilities.

Changes to the OpenMD engine

  • Refactored OpenMD codebase to utilize C++17 standard
  • All python-based utility scripts now default to Python3
  • Open source license changed from a custom license to the BSD 3-Clause license

New Options/Capabilities

  • New Scaled Particle Flux (SPF) reverse non-equilibrium molecular dynamics (RNEMD) to create concentration gradients
  • Added CURRENT_DENSITY as a statsFileFormat option
  • Internals: Added CosineSeries Bend type
  • Better CHARMM torsions using Chebyshev polynomials
  • Restraints: Using the TwistSwing decomposition in MolecularRestraint, Added a position displacement to restraints (including absoluteZ)
  • Integrators: New LangevinPiston integrator
  • Fluctuating Charges: added options to choose method of charge optimization
  • New Force Field option for fluctuating charge energy scaling

Changes to the Internals / API

  • RNEMD refactored: Individual methods are created using the RNEMD::MethodFactory class
  • Removed the custom Mersenne Twister implementation in favor of the C++ Standard Library’s version. Each processor now owns its own engine that is progressed independently of the other processors, while remaining deterministic when seeded.
  • Classes derived from ForceManager and Perturbation were combined into a ForceModifier class to safely extend force calculations.
  • Accumulator class was fully refactored to remove unnecessary runtime dispatching through use of dynamic_cast
    • When the type of Accumulator is known at compile time, they can be used directly with no performance hit
    • However, when polymorphic behavior is required, a combination of class template specialization and inheritance are utilized

Changes to StaticProps

New Hydrogen-Bond modules

  • --hbondz Hydrogen Bond density binned along one axis
  • --hbondr Hydrogen Bond density binned by distance from a selection
  • --hbondzvol Hydrogen Bond density binned along one axis, normalized by bin volume
  • --hbondrvol Hydrogen Bond density binned by distance, normalized by spherical shell volume

New Charge Density modules

  • --chargez Charge distribution binned along one axis
  • --charger Charge density binned by distance from a selection
  • --charge_density_z computes the continuous charge distribution along selected axis

New Number Density modules

  • --numberz Number density along one axis
  • --numberr Number density by distance from a selection
  • --countz computes the number of selected atoms along selected axis

New Mass Density modules

  • --massdensityz computes the mass density of the selection along selected axis
  • --massdensityr mass density of the selection by distance from another selection

New Tetrahedrality modules

  • --tet_param tetrahedrality order parameter
  • --tet_param_z spatially-resolved tetrahedrality order parameter
  • --tet_param_r spatially-resolved tetrahedrality order parameter around a third selection
  • --tet_param_dens computes distribution of tetrahedrality order parameters
  • --tet_param_xyz volume-resolved tetrahedrality order parameters ( voxelSize , rcut , and gaussWidth must be specified). Outputs in VTK format.

New Spatial Statistics modules useful for RNEMD simulations, note that --comsele can be used to define the selection of a central atom for radial calculations

  • --rnemdz slab-resolved RNEMD statistics (temperature, density, velocity)
  • --rnemdr shell-resolved RNEMD statistics (temperature, density, angular velocity)
  • --rnemdrt shell and angle-resolved RNEMD statistics (temperature, density, angular velocity)

New Order Parameters

  • --kirkwood_buff Kirkwood-Buff integrals ( --sele1 and --sele2 must both be specified)
  • --p2r 2nd order Legendre order parameter using r (vector) as the director axis in spherical systems.
  • --dipole_orientation spatially-resolved dipole order parameter

Changes to DynamicProps

New Multipass code dramatically speeds up calculation of all correlation functions

Onsager Correlation Functions:

  • --onsager Onsager coefficients (correlations of group center of mass displacements)

Hydrodynamics-related correlation functions:

  • --vaOutProdcorr Velocity – Velocity auto outer product correlation function
  • --waOutProdcorr Angular Velocity – Angular Velocity auto outer product correlation function
  • --vwOutProdcorr Velocity – Angular Velocity outer product correlation function
  • --wvOutProdcorr Angular Velocity – Velocity outer product correlation function
  • --pjcorr Momentum – Angular Momentum cross correlation function
  • --ftcorr Force – Torque cross correlation function
  • --facorr Force – Force auto correlation function
  • --tfcorr Torque – Force Cross correlation function
  • --tacorr Torque auto correlation function

Fluctuating charge correlation functions:

  • --ckcorr Charge – Kinetic energy cross correlation function
  • --cscorr Charge – Orientation order parameter (Cos theta) cross correlation function
  • --wcorr Charge velocity correlation function

Hydrogen bond correlation functions:

  • --jumptime Hydrogen bond jump time correlation function
  • --jumptimeZ Hydrogen bond jump time correlation function (binned along one axis)
  • --jumptimeR Hydrogen bond jump time correlation function binned by distance round a third selection
  • --persistence Hydrogen bond persistence correlation function

Other new correlation functions

  • --current Current density auto correlation function
  • --ddisp Collective Dipole displacement function (Helfand moment of Current Density)
  • --rotAngleDisp Displacement correlation function for rotation (Roll, Pitch, Yaw) deviations from initial orientations

Changes to Hydro

  • AtomicBead Model has been extended to include overlapping beads
  • BoundaryElement Method has been added for use with MSMS triangulated surfaces of general STL files.
  • Pitch matrix of molecules is computed during Hydro calculation
  • Output files now have the suffix .hydro which are JSON files that are required for rigid body Langevin Dynamics, replacing the older .diff files.

Changes in Utility scripts

  • New stat2pcorr utility. This computes pressure correlation functions from stat file
  • new waterSphere utility builds spheres of water
  • waterReplacer now function in inputs containing H3O+
  • New equationofstate utility computes equations of state for crystals
  • New omdCombined script combines solute and solvent structures
    with the same box geometry (no atoms can overlap)
  • vcorr2spectrum and wcorr2spectrum now output in wavenumbers

Changes in Samples

  • Added / updated some metal oxides and mixed metal/metal oxides (Pb3O4, Pt3O4)

ForceField Changes

  • Added CO2 molecule for CLAYFF
  • Added some support for UFF (universal force field) and MOMEC force fields

Go grab it at the Download page!