OpenMD version 3.0

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!

OpenMD version 2.6

OpenMD version 2.6 is now available for download at openmd.org. This is a major update with many new features, analysis scripts, force fields, and samples. In particular, there is a new and incredibly useful elasticConstants utility that is now part of OpenMD. In addition to hundreds of bug fixes and performance improvements, here are some of the new features that have been added since the 2.5 release:

New potential energy forms:

  • Magnetic fields have been added to perturbations. Invoke them with magneticField = (a, b, c);
  • The Density-Readjusting Embedded Atom Method (DR-EAM) is now part of OpenMD
  • Added InversePowerSeries non-bonded interactions
  • Added ZhouRose EAM type for Rose functionals
  • Added a new fluctuating charge type, EAMPoly, which allows polynomial self-potentials.

New force fields:

  • New entries in the Water.frc force field for OPC, NE6, TIP4P-Ice, and other water models.
  • graphene.frc file for simulating sheets of graphene
  • Added an “Air” force field file and some samples
  • DR-EAM force field and samples added

Changes in the OpenMD engine:

  • NPAT, NPTsz and NPTf can all use privilegedAxis keyword for defining the “special axis” for volume modifications
  • new AlphaHull selection: “select alphaHull(2.9)
  • Added automatic file sync for StatWriter and DumpWriter (useful on afs systems)
  • Added a privilegedAxis to RNEMD engine
  • Changes for RNEMD to allow electrical currents (Current, KE+Current, KE+Pvector+Current)
  • Added option for “useSurfaceTerm” to do dipolar surface term outside of the Ewald sum
  • Added a “useSlabGeometry” flag so that 2-D surface term can be done in slab configurations
  • Added some new statFileFormat options to pull out embedding energy in metallic potentials
  • Lots of internal changes to support fluctuating charge (fluc-q) water and fluctuating density embedded atom methods (notably DR-EAM).
  • Added “doInitialOptimization” keyword to flucq section

Changes to StaticProps:

OpenMD 2.6 adds privilegedAxis functionality to spatially-dependent StaticProps modules. You can now specify which axis along which you wish to compute properties, but the default is the z-axis.

New static analysis modules:

  • RhoYZ (–pipe_density) for calculating density along two axes, e.g. ρ(y, z)
  • current density (-J, –current_density) for measuring non-equilibrium response to an applied electric field.
  • EAM density profile (-D, –eam_density) for calculating distributions of valence electron densities
  • Net charge (-q, –net_charge) for interrogating charge distributions for fluctuating charge models
  • Momentum distribution (-M, –momentum_distribution) for querying momentum distributions and looking at adherence to Maxwell-Boltzmann statistics

Changes to existing modules:

  • Added integration to g(r) (–gofr) calculation (useful for coordination calculations)

Changes to DynamicProps:

OpenMD 2.6 adds privilegedAxis functionality to spatially-dependent DynamicProps modules. You can now specify which axis along which you wish to compute correlations, but the default is the z-axis.

New correlation functions:

  • Displacement (–disp) and DisplacementZ (–dispZ) for looking at separations along specific axes in flowing systems
  • Hydrogen bond persistence correlation function: HBondPersistence (–persistence)
  • Hydrogen bond jump time correlation functions HBondJump (–jumptime) and HBondJumpZ (–jumptimeZ)
  • Legendre correlation functions (-l, –lcorr, –lcorrZ) have been converted to multipass (much faster)
  • Charge velocity autocorrelation function (-w, –wcorr) added for fluctuating charge models.

New Analysis and Utility Scripts:

In OpenMD 2.6, we have converted all of the utility scripts to python3, and made python3 a requirement. NumPy and SciPy are also now required.

  • Added powerful new elasticConstants utility that calculates the elastic properties of materials.
  • protonSampler generates proton disordered ice-Ih lattices given an (.xyz) coordinate file for the Oxygen lattice
  • Dump2XYZ now has globalID (-g) flag for printing the globalID of each Atom or StuntDouble to the xyz file (useful for debugging)
  • thermalizer can now scale the kinetic energy to match a pre-set total energy value (using the -e flag). It can also resample charge velocities to match a specific electronic temperature (with the -c flag).
  • lcorrzFit – a utility script to analyze of Legendre correlation functions (binned by Z)
  • omdLast – Makes a .omd file from the last good frame of OpenMD dump file.

New Samples:

  • Lots of new ice structures: Hayward and Reimers unit cells, Hirsch and Ojamae unit cells
  • Cleanup of the RNEMD samples
  • New DR-EAM samples for studying image charge effects, ordered alloys, and screening by metal surfaces.
  • Added Oxide Library for binary Metal Oxides.

Go grab it at the Download page!

OpenMD version 2.5

OpenMD version 2.5 is now available for download at openmd.org.  This is a major update with many new features, system builders, analysis scripts, force fields, and samples. In addition to hundreds of bug fixes and performance improvements, here are some of the new features that have been added since the 2.4 release:

New builders:

  • New slabBuilder to create starting omd files for arbitrary surface cuts specified by Miller indices (hkl) of FCC, BCC and SC materials (can also optionally include charged capacitor plates)
  • icosahedralBuilder can now build Cuboctahedral and TruncatedCube nanoparticles, atoms now sorted by distance from center of nanoparticle
  • New atom2omd program for converting other file formats into OpenMD (.omd) format – defaults to openbabel’s atom typing in most cases

New potential energy forms:

  • Buckingham (Traditional and Modified) non-bonded interactions
  • SDK Bends and Mie Bonds to support the Shinoda, DeVane, Klein (SDK) CG force field
  • Bonded interactions (Bonds, Bends, Torsions, Inversions) may now span the periodic box – useful for polymers, graphene sheets, etc.

New force fields:

  • BKS model for Silicas and Aluminophosphates from van Beest, Kramer, and van Santen, Phys. Rev. Lett. 64(16), pp. 1955-1958 (1990)
  • BKS modified variant from Saika-Voivod, Sciortino, Grande, and Poole, Phys. Rev. E 70, 061507 (2004)
  • EAM Zhou2001 variant for alloys from Zhou et al., Acta Materialia 49(19), pp. 4005-4015 (2001)
  • EAM Zhou2004 implements parameterization in Zhou et al. Phys. Rev. B, 69, 144113 (2004)
  • EAM Zhou2005 implements EAM portion of Zhou and Wadley, J. Phys. Cond. Matter. 17 (2005) 3619-3635
  • Shinoda, DeVane, Klein (SDK) coarse grained model for lipids, surfactants, benzene, fullerenes, and ionic liquids
  • Water force field (Water.frc) has added support for most of the common non-polarizable water models (SPC*, TIP*, SSD*, OPC)

Changes in the OpenMD engine:

  • New stats file queries for net_charge, charge_momentum, electronic_kinetic
  • New stat file keyword: statFilePrecision
  • New NVE propagator for fluctuating charges. Set it with the propagator keyword in a flucq{} block.
  • Minimizer now reports to stats and dump files at each minimization step
  • Added a stats report file (.report) after run is completed (also written to stdout at end of run
  • When outputElectricField is turned on, the local field calculation is now done even when a site is not electrostatic
  • Added outputSelection keyword for rnemd{} blocks so that data can be collected for specific StuntDoubles that aren’t the exchange objects
  • Added dividingSurface keyword for rnemd{} blocks for instances when the dividing surface area should not be calculated using a convex hull
  • Added an outputDensity keyword which will adds EAM-style densities to site lines in dump files

Changes to StaticProps:

New static analysis modules:

  • Coordination Number (--cn) – number of atoms within a cutoff distance
  • Secondary Coordination Number (--scn) – mean coordination number of neighboring atoms
  • Generalized Coordination Number (--gcn) – coordination numbers described in F. Calle-Vallejo et al., Science 350(6257) pp. 185-189 (2015)
  • Tetrahedrality order parameter (--tet_param) computes distributions of P(Q) described in Errington and Debenedetti, Nature 409, pp. 318-321 (2001), but allowing for arbitrary numbers of neighbors
  • New --densityfield and --velocityfield analyzers for volume and stream line rendering
  • New 3-dimensional pair distribution  (--r_theta_omega) module for computing g(r, cos(θ), cos(ω))

Changes to existing modules:

  • Hxy (height of a surface) has been completely rewritten with new interpolation and gridding scheme, and new 2-d FFTs of the surface
  • HullVolume module now uses convex hulls and not alpha shapes
  • Many one-dimensional distribution functions now can compute using a --privilegedAxis (GofRZ, GofZ, RNEMDZStats)

Changes to DynamicProps:

New correlation functions:

  • Momentum / Angular momentum cross correlation functions (--pjcorr)
  • ForceTorque and TorqueForce cross correlation function (--ftcorr and --tfcorr)
  • Force and Torque autocorrelation functions (--facorr and --tacorr)

New Analysis and Utility Scripts:

  • New slipLength calculator for shearing simulations of solid / liquid simulations in slip boundary conditions
  • New solLiqFricCalc script for calculating solid liquid friction coefficients from results in .rnemd files
  • New stat2tension calculator for computing surface tensions from pressure tensors in stat files
  • New hbtetAnalyzer for doing analysis on Hydrogen Bond Tetrahedrality matrices
  • New funcflExtractor utility pulls density, embedding functional, and Z(r) information from DYNAMO86-style funcfl files
  • omd2omd can now rotate as well as replicating and translating the simulation box

New Samples:

  • New Graphene sheet sample demonstrating structures that span the box
  • New tip4p-ice sample

Go grab it at the Download page!

OpenMD version 2.4

We are pleased to announce the availability of OpenMD version 2.4. In addition to bug fixes and performance improvements, there are new features that have been added to the code since the 2.3 release:

New Features:

  • Added Mie potentials for non-bonded interactions
  • We now have an initial implementation of fluctuating-density EAM models
  • A new omd2omd utility replaces the md2md script. omd2omd is able to do box repeats and translations without splitting up individual molecules.
  • Added a normalization option to vcorr2spectrum
  • All of the analysis programs (StaticProps, DynamicProps, SequentialProps) now provide revision and meta-data in their output files
  • Added arithmetic mixing rule option to GB (Gay-Berne) potentials.
  • Added support for selecting Bonds, Bends, Torsions, Inversions, and Molecules in parallel environments.
  • Added “potentialSelection” keyword for reporting Potential Energy for a selection in a stat file.
  • Added an option to use force field files with or without the scaled bond and bend force constants (e.g. Amber and Charmm use k (r-r0)2 while TraPPE and OpenMD default to k/2 * (r-r0)2).
  • New modules for StaticProps:
    • Distance-dependent Kirkwood factors (dipolar and quadrupolar)
    • Tetrahedrality matrices for hydrogen bonds
    • Generalized Coordination Numbers (GCN)
    • Added PotDiff module
  • New modules for StaticProps:
    • Much (10-1000x) faster for many correlation functions
    • HydrogenBond Jump time calculator
    • RCorrFuncZ: does root mean squared displacements binned by z coordinates

Build Fixes:

  • Build is now git-aware
  • Many fixes to allow building with different versions of the qhull library
  • Updated force field files and samples

Bug fixes

  • Bug-fix in pack2md (contributed by Hythem Sidky)
  • Fixes in InteractionManager to catch rare cases for explicit non-bonded interactions could erase themselves
  • Simple change to allow printing information from final frame in dump and stat files
  • Fixed typos in how Stats module displayed column titles
  • Fixed some long-standing issues with bin counting and fixed normalization of g(r,cos(theta))
  • Fixed a parallel constraint bug in Rattle/Shake
  • Fixed correlation functions with changing populations in selections
  • Fix for directional atom types and Gay Berne potential (contributed by Hythem Sidky)
  • P2 order parameter is now calculated from row for directional atom types. This is consistent with the Gay-Berne module.
  • Atom spacing in constructed polyhedra in icosahedralBuilder was off by 1/sqrt(2).
  • A number of fixes to allow fluctuating charge potentials to use the multipolar Ewald sum.

Go grab it at the Download page!

OpenMD version 2.3

We are pleased to announce the availability of OpenMD version 2.3. In addition to bug fixes and significant performance improvements, there are new features that have been added to the code since the 2.2 release:

New Features:

  • 20% performance improvement
  • New analysis code: SequentialProps, which can be used to compute time-dependent contact angles for droplets spreading on surfaces.
  • Selection syntax now allows selection of objects at the molecule-level or particular bonds, bends, torsions, etc.
  • New post-processing scripts:
    • vcorr2spectrum – allows easy calculation of vibrational power spectra
    • stat2dielectric – allows computation of dielectric constants
    • mdShrink – Skips every n frames of an OpenMD dump file and loads it into new dump file
  • New modules for StaticProps:
    • System-wide Multipole Sums (dipole and quadrupole)
    • Geometric Hydrogen Bond statistics
    • Tetrahedrality parameters sorted by Z, or prepared for volume rendering
    • New FCCofR and IcosahedralOfR analyzers for local orientational ordering statistics
    • Now allows 3-selection operation of the 2-dimensional g(r) analyzers
  • New module for DynamicsProps: Frequency Fluctuation Correlation Function
  • New perturbation: Uniform Electric Field Gradients
  • New integrator: NPA integration (constant normal pressure and surface area)
  • New stats options: Box Quadrupole
  • More useful md-solvator error messages (will now exit when solute and solvent boxes are not identical).
  • Changes to allow topology-based force-field overrides in include files.
  • To increase performance, we have deprecated the cutoffPolicy option

Build Fixes:

  • Build now looks for numpy in python installation
  • Simpler and easier builds by linking dynamically with qhull
  • Updated the manual and code documentation
  • Builds that use g++ to compile now turn on -Wall by default

Bug fixes

  • Fixes for md2md utility script
  • Selection fixes when selecting using integer parameters
  • Fixes to HullFinder (and by extension to RNEMD) for getSurfaceArea() call
  • Fixes for torsion types which define 180_is_trans
  • Fixed a selection non-overlap issue when doing particle time correlation functions
  • Fixed older samples to use newer syntax
  • Fixed the progress bar to write 100% when a simulation is done

Go grab it at the Download page!

OpenMD version 2.2

We are pleased to announce the availability of OpenMD version 2.2. This is primarily a performance and bug-fix release, but there are some new features that have been added to the code since the 2.1 release:

  • New non-bonded constraints can now be specified within a molecule
  • RNEMD statistics now give reasonable error bars based on 95% confidence intervals
  • The pAngle module in StaticProps can now use multiple selections or selection offsets to define vectors
  • Fixes to deal with deprecation of MPI C++ bindings in openmpi. We’ve reverted back to the C calls
  • Fixes for compilation with MPICH
  • Fixes to the g(r,θ) and g(r,ω) modules in StaticProps
  • Memory reporting and memory management fixes in the BlockSnapshotManager – this fixed correlation functions for very large trajectory files
  • Bond extension autocorrelation function (–bondcorr) was added to DynamicProps
  • Fixed BondType parser bugs
  • Made some of the information messages a bit less scary
  • Added some interesting builder samples
  • Started some internal work to migrate to git

Go grab it at the Download page!

OpenMD version 2.1

We are pleased to announce the availability of OpenMD version 2.1. This is primarily a performance and bug-fix release, but there are some new features that have been added to the code since the 2.0 release:

  • The electrostatics code has been completely re-written and two new real-space methods are available for testing for multipole-multipole interactions (look for upcoming papers on this subject).
  • We’ve added some spatial analysis tools to  StaticProps that can compute properties as a function of the z-axis (in periodic boundaries) or as a function of radius (in non-periodic simulations). These properties include: temperature, density, velocity, angular velocity, and tetrahedral order parameters.
  • OpenMD now builds on a much wider array of compilers.
  • New perturbation: Static electric fields can be applied to the simulation.
  • The reverse non-equilibrium molecular dynamics (RNEMD) methods now allow for exchanges in non-periodic geometries.
  • New utility program: “recenter”  which centers non-periodic simulations at specified points in space.
  • New builder utility: “icosahedralBuilder” which creates single-component nanoparticles in interesting geometries like:
    • Mackay Icosahedra
    • truncated decahedra (e.g. pentagonal rods)
    • ino-decahedra
    • curling-stone decahedra
    • other common nanoparticle geometries
  • New samples (and sample builders) to test the multipole electrostatics code for multipolar crystals.
  • New bonded potential function: HarmonicInversionType for GROMOS and CHARMM-style force fields.
  • Inversions can now be specified using center and satellites keywords.
  • Added  “region” constraints for fluctuating charge force fields.
  • New electrostatic method: single-processor implementation of a multipolar Ewald sum.
  • New correlation function: COH(z,t), which is a spatially-resolved OH bond time correlation function for water.
  • Significant performance boost over 2.0

Reproducibility in parallel OpenMD simulations

There’s an interesting issue with of how OpenMD distributes load on parallel (MPI) architectures.  At the very beginning of a parallel simulation, the molecules are distributed among the processors using a short Monte Carlo procedure to divide the labor.  This ensures that each processor has an approximately equal number of atoms to work with, and that the row- and column- distribution of atoms in the force decomposition is roughly equitable.  The Monte Carlo procedure involves the use of a pseudo-random number to make processor assignments. So, if you run the same parallel simulation multiple times, the distribution of atoms on the processors can change from run to run.  This shouldn’t be a problem if the MD algorithms are all working as they should, right?

However, one thing that many people forget is a specific limitation of floating point arithmetic.  Due to roundoff errors, the associative laws of algebra do not necessarily hold for floating-point numbers. For example, on a computer, the sum

(x+y)+z

can have a different answer than

x+(y+z)

when x = 1030y = -1030 and z = 1.  In the first case, the answer we get is 1, while roundoff might give us 0 for the second expression.   The addition-ordering roundoff issue can have effects on a simulation that are somewhat subtle.  If you add up the forces on an atom in a different order, the total force might change by a small amount (perhaps 1 part in 1010). When we use this force to move that atom, we’ll be off by a small amount (perhaps 1 part in 109). These small errors can start to make real differences in the microstate of a simulation (i.e. the configuration of the atoms), but shouldn’t alter the macrostate (i.e. the temperature, pressure, etc.).

That said, whenever there’s a random element to the order in which quantities are added up, we can get simulations that are not reproducible.  And non-reproducibility is, in general, not good.  So, how do we get around this issue in OpenMD?   We let the user introduce a static seed for the random number generator that ensures that we always start with exactly the same set of pseudo-random numbers.  If we seed the random number generator, then on the same number of processors, we’ll always get the same division of atoms, and we’ll get reproducible simulations.

To use this feature simply add a seed value to your <MetaData> section:

seed = 8675309;

This seed can be any large positive integer (an unsigned long int).

Once the seed is set, you can run on MPI clusters and be reasonably sure of getting reproducible simulations for runs with the same number of processors.  However, if you mix runs of different numbers of processors, then the roundoff issue will reappear.

OpenMD version 2.0

We are pleased to announce the availability of OpenMD version 2.0. This version represents a complete rewrite of the low-level force routines into C++. Here are some features that have been added to the code since the latest release:

  • The low-level loops, non-bonded interactions, and parallelization have been completely rewritten into C++ and should be faster.
  • The build system has been converted to CMake, which makes builds approximately 4 times faster than previous versions.
  • Multiple overlapping non-bonded interactions can be defined explicitly for two atom types.
  • There’s a new velocity-shearing and scaling (VSS) method for reverse non-equilibrium molecular dynamics (RNEMD).
  • We have added a completely new optimization library.
  • The selection syntax has been parallelized and now works during parallel simulations.
  • New correlation functions:  Selection survival correlation functions.
  • New correlation functions: Helfand-moments for thermal conductivity [Viscardy et al. JCP 126, 184513 (2007)]
  • Users can specify an electric field and we have added an architecture for external perturbations.
  • OpenMD now uses Gay-Berne strength parameter mixing ideas from Wu et al. [J. Chem. Phys. 135, 155104 (2011)]. This helps get the dissimilar particle mixing behavior to be the same whichever order the two particles come in. This does require that the force field file to specify explicitly the values for epsilon in the cross (X), side-by-side (S),  and end-to-end (E) configurations.

There are also a few hundred bugs that have been fixed in this release.

OpenMD version 1.1.5

We are pleased to announce the release of OpenMD version 1.1.5. This version is a bugfix release, and is recommended for all users of OpenMD. New things include:

  • Added the LangevinHull integrator and sample files.
  • Added “hull” token to selection syntax
  • BUGFIX: Added a check to make sure value matches data type of ForceField parameters
  • BUGFIX: We now traverse the base chains for NON-bonded interactions as well as bonded. This allows one to specify Metal – non-Metal interactions based on base types instead of exact matches.
  • Matched default Charges for OH and HO (Hydroxyl) to the values from OPLS paper.
  • BUGFIX: Changed dumpwriter to synchronize file writing to avoid file descriptor issues on large machines (>1000 nodes).
  • Added support for a stress correlation function.
  • BUGFIX: fixed a rare cutoff bug in calc_eam_prepair_rho
  • Added a staticProps module to compute the length of a nanorod
  • PERFORMANCE: Updated the BlockSnapshotManager to use a specified memory footprint in constructor and not to rely on physmem and residentMem to figure out free memory. DynamicProps is the only program that uses the BlockSnapshotManager, so substantial changes were needed there as well.
  • Fixed a clang compilation problem
  • Added the ability to output particle potential in the dump files
  • Added Momentum correlation function
  • Imported changes from Vector from development branch.
  • Added P4 order parameter to the computation done during director axis and P2 computation.
  • Added support to print Thermal Helfand Moment in the stat file.
  • Fixed typo in thermo.
  • Added RNEMD integrator.
  • Added vector source capability for the P2 order parameter in staticProps.