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
--hbondzHydrogen Bond density binned along one axis--hbondrHydrogen Bond density binned by distance from a selection--hbondzvolHydrogen Bond density binned along one axis, normalized by bin volume--hbondrvolHydrogen Bond density binned by distance, normalized by spherical shell volume
New Charge Density modules
--chargezCharge distribution binned along one axis--chargerCharge density binned by distance from a selection--charge_density_zcomputes the continuous charge distribution along selected axis
New Number Density modules
--numberzNumber density along one axis--numberrNumber density by distance from a selection--countzcomputes the number of selected atoms along selected axis
New Mass Density modules
--massdensityzcomputes the mass density of the selection along selected axis--massdensityrmass density of the selection by distance from another selection
New Tetrahedrality modules
--tet_paramtetrahedrality order parameter ($Q_k$)--tet_param_zspatially-resolved tetrahedrality order parameter ($Q_k(z)$)--tet_param_rspatially-resolved tetrahedrality order parameter ($Q_k(r)$) around a third selection--tet_param_denscomputes distribution of tetrahedrality order parameters ($p(Q_k)$)--tet_param_xyzvolume-resolved tetrahedrality order parameters ($Q_k(x,y,z)$) (voxelSize,rcut, andgaussWidthmust 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
--rnemdzslab-resolved RNEMD statistics (temperature, density, velocity)--rnemdrshell-resolved RNEMD statistics (temperature, density, angular velocity)--rnemdrtshell and angle-resolved RNEMD statistics (temperature, density, angular velocity)
New Order Parameters
--kirkwood_buffKirkwood-Buff integrals (--sele1and--sele2must both be specified)--p2r2nd order Legendre order parameter using r (vector) as the director axis in spherical systems.--dipole_orientationspatially-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