Recent Releases of OpenMD

OpenMD - Version 3.1 (October 2024)

What's Changed

Major changes

  • A new Charged-SPF method and SPF-2.0 by @crdrisko allow charge separation capabilities in scaled particle flux (SPF) - reverse non-equilibrium molecular dynamics (RNEMD) in https://github.com/OpenMD/OpenMD/pull/28
  • All perl-based utility scripts have been converted to Python3
  • Charge overrides can added in the atom definitions, allowing for simulations using GAFF force field
  • OpenMD can now perturb a system using an electromagnetic field from plane wave light (with 4 polarization options)

Internals / API - CMake build process now finds NumPy and uses FetchContent_Populate for some dependencies - Activity and concentration calculations in RNEMD now handle rigid bodies correctly - More robust atom type wildcard matching to support GAFF force field - Added atom type wildcard matching for inversion potentials - Added ability to skip all interatomic interactions with skipPairLoop = "true"; - Introduced code safety measures for very short-range electrostatics - Fixed a rare issue with simulations of one molecule in Langevin Dynamics without periodic boundary conditions - Added options to prevent subtracting center of mass drift (conserveLinearMomentum = false;) and angular drift (conserveAngularMomentum = false;). These are both set true by default.

StaticProps - Added (--p2z) (2nd order Legendre polynomial correlations using z as director axis) - Added translational order parameter by z (--trans_param_z) - Adding ObjectCount (--count) and MoleculeCount (--mcount) modules - Legendre Correlation Functions now work for rigid bodies as well as directional atoms - Fixed a box volume issue in Current Density (--current_density) module - Added printout of confidence intervals to tetrahedrality by z (--tet_param_z) - Fixed a printing bug in BondOrderParameter (--bo) module - Removed printout of integral of $g(r)$ from .gofr files (--gofr module) - Fixed Hbond donor identification (--hbond, --hbondz, --hbondzvol, --hbondr, --hbondrvol, --tet_hb)

DynamicProps - DynamicProps now allows a bit of time fuzz on time correlation functions for situations where sampleTime is not a multiple of dt. - Fixed an undeclared variable bug that was causing issues in time correlation functions - Fixed Hbond donor identification (--jumptime, --jumptimeZ, --jumptimeR, --persistence)

Hydro - Updated small matrix inversion in hydrodynamics code - Pitch matrices, pitch axes, and moments of pitch are now printed in hydro file - hydro files have new JSON format - Updated hydroExplainer to parse the new JSON-based hydro files in OpenMD 3

Utilities - Allowing non-zero start index for water objects in waterReplacer - Wrapping and translating in omd2omd has been fixed, also added --noWrap and --noCOM flags for this utility - The solid liquid friction calculator (solLiqFricCalc) has been modernized to Python3 - waterBoxer and waterSphere were converted from Perl to Python3 - Fixed base type checking for fictitious sites in ReplacementVisitor (used by Dump2XYZ) - omd-solvator can now handle omd files which have all options in pvqj strings

Samples - Entirely new sample documentation in MarkDown that illustrates how to run the samples and provides expected results. - Samples with python scripts were modernized to Python3

ForceFields - Added GAFF2 force field - Added support for four new water models: OPC, OPC3, TIP3P-FB, TIP4P-FB - Added 12-6 vdW and 12-6-4 models for aqueous ions, tuned for specific water models - Comments in frc files can now start with #

Scientific Software - Peer-reviewed - C++
Published by crdrisko about 1 year ago

OpenMD - Version 3.0 (December 2023)

OpenMD 3.0 is a major release with significant internal changes in how the code operates, numerous bug fixes, and a large expansion in capabilities.

Major changes - 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

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

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. - Derived ForceManagers and Perturbations were combined into a ForceModifier class to safely extend force calculations. - Accumulator class was fully refactored to remove unnecessary runtime dispatching through dynamic_casts - 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

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 ($Q_k$)
  • --tet_param_z spatially-resolved tetrahedrality order parameter ($Q_k(z)$)
  • --tet_param_r spatially-resolved tetrahedrality order parameter ($Q_k(r)$) around a third selection
  • --tet_param_dens computes distribution of tetrahedrality order parameters ($p(Q_k)$)
  • --tet_param_xyz volume-resolved tetrahedrality order parameters ($Q_k(x,y,z)$) (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 $S(z)$, where $S = (3 \cos^2\theta - 1)/2$ and $\theta$ is measured relative to selected ($z$) axis.

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

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.

Utilities - New stat2pcorr utility. This computes pressure correlation functions from stat file $\langle (P(t)-\langle P \rangle ) \cdot (P(0)-\langle P\rangle )\rangle / \langle (P(0) - \langle P \rangle)^2 \rangle$ - 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

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

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

Scientific Software - Peer-reviewed - C++
Published by crdrisko about 2 years ago

OpenMD - Version 2.6 (August 2019)

Scientific Software - Peer-reviewed - C++
Published by gezelter almost 4 years ago