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_DENSITYas astatsFileFormatoption - Internals: Added
CosineSeriesBend type - Better CHARMM torsions using Chebyshev polynomials
- Restraints: Using the TwistSwing decomposition in MolecularRestraint, Added a position displacement to restraints (including absoluteZ)
- Integrators: New
LangevinPistonintegrator - 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::MethodFactoryclass - 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
ForceManagerandPerturbationwere combined into aForceModifierclass to safely extend force calculations. -
Accumulatorclass was fully refactored to remove unnecessary runtime dispatching through use ofdynamic_cast- When the type of
Accumulatoris 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
- When the type of
Changes to 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 -
--tet_param_zspatially-resolved tetrahedrality order parameter -
--tet_param_rspatially-resolved tetrahedrality order parameter around a third selection -
--tet_param_denscomputes distribution of tetrahedrality order parameters -
--tet_param_xyzvolume-resolved tetrahedrality order parameters (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
Changes to DynamicProps
New Multipass code dramatically speeds up calculation of all correlation functions
Onsager Correlation Functions:
-
--onsagerOnsager coefficients (correlations of group center of mass displacements)
Hydrodynamics-related correlation functions:
-
--vaOutProdcorrVelocity – Velocity auto outer product correlation function -
--waOutProdcorrAngular Velocity – Angular Velocity auto outer product correlation function -
--vwOutProdcorrVelocity – Angular Velocity outer product correlation function -
--wvOutProdcorrAngular Velocity – Velocity outer product correlation function -
--pjcorrMomentum – Angular Momentum cross correlation function -
--ftcorrForce – Torque cross correlation function -
--facorrForce – Force auto correlation function -
--tfcorrTorque – Force Cross correlation function -
--tacorrTorque auto correlation function
Fluctuating charge correlation functions:
-
--ckcorrCharge – Kinetic energy cross correlation function -
--cscorrCharge – Orientation order parameter (Cos theta) cross correlation function -
--wcorrCharge velocity correlation function
Hydrogen bond correlation functions:
-
--jumptimeHydrogen bond jump time correlation function -
--jumptimeZHydrogen bond jump time correlation function (binned along one axis) -
--jumptimeRHydrogen bond jump time correlation function binned by distance round a third selection -
--persistenceHydrogen bond persistence correlation function
Other new correlation functions
-
--currentCurrent density auto correlation function -
--ddispCollective Dipole displacement function (Helfand moment of Current Density) -
--rotAngleDispDisplacement correlation function for rotation (Roll, Pitch, Yaw) deviations from initial orientations
Changes to Hydro
-
AtomicBeadModel has been extended to include overlapping beads -
BoundaryElementMethod 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
.hydrowhich are JSON files that are required for rigid body Langevin Dynamics, replacing the older.difffiles.
Changes in Utility scripts
- New
stat2pcorrutility. This computes pressure correlation functions from stat file - new
waterSphereutility builds spheres of water -
waterReplacernow function in inputs containing H3O+ - New
equationofstateutility computes equations of state for crystals - New
omdCombinedscript combines solute and solvent structures
with the same box geometry (no atoms can overlap) -
vcorr2spectrumandwcorr2spectrumnow 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!