- 09 Feb, 2026 1 commit
-
-
Peter Eastman authored
* API for querying devices * CUDA and HIP implementations of getDevices() * Fix test failures * Fix test failures * CUDA returns correct devices even if no context has been created * Return a single device for Reference and CPU * Fix CI failure
-
- 23 Sep, 2025 1 commit
-
-
Evan Pretti authored
* Replace SimTK-containing file headers * Update file headers for new Tinker reader files added
-
- 12 Sep, 2025 1 commit
-
-
Evan Pretti authored
* Initial implementation of C++ API * Add kernel interface and information for API generation * API updates for updating electrode parameters * Add serialization proxy for ConstantPotentialForce * Update file headers * Add CG error tolerance and fix units on getCharges() return value * Initial implementation of matrix solver * Fixes and conjugate gradient solver * Try to fix Linux and Windows builds * Make sure charge constraint target is on total charge * Restore handling of exceptions like NonbondedForce since they won't involve electrode atoms * Ameliorate numerical instability in constrained conjugate gradient * Fix uninitialized pointers, memory leak, and style * Set CG tolerance units in Python API * Test ConstantPotentialForce serialization * Read/write ExceptionsUsePeriodicBoundaryConditions as bool * Improve constrained conjugate gradient robustness to roundoff error accumulation * Recompute matrix if electrode atoms move due to setPositions() * Tolerance is now in gradient (potential) units again * Add neutralizing background correction * Add Python API tests * Fixes for CG and nonbonded exceptions * Add initial tests checking against existing NonbondedForce behavior * Expand test suite and fix some implementation issues * Add additional tests using larger reference system * Add Gaussian test * Finish test against reference computation * CPU platform implementation * Fixes for compilation on some platforms * Fixes for constant potential with AVX/AVX2 * Test linking CPU PME library to constant potential test directly * Older SWIG versions don't support Python set to C++ set conversion * Add user guide entry * Increase speed of reference test * Conditional building constant potential CPU test is unreliable * Debugging * Miscellaneous fixes and improvements for CI * Cache charges so solver will not run if system and coordinates have not changed * Preconditioner flag, stability, and automatic detection improvements * Add GPU platform-specific constant potential kernel classes * PME and device-host I/O changes to support constant potential * Initial common constant potential implementation * Constant potential fixes: * Fix preconditioner PME position/charge save/restore logic * Fix reduction synchronization in constant potential solver kernels * Add double-float accumulation for conjugate gradient solver when double unsupported by hardware * Improve conditioning of a test system, and make sure particles are in or out of cutoff for consistency and ease of comparing between platforms * Reorder guess charges for CG when atom reordering changes positions * Remove PME queue for now * Trying to debug optimized direct space derivative kernel * Remove extraneous debugging lines * Style updates; just make CPU preconditioner double precision * Debugging updated optimized direct derivatives kernel for all but OpenCL CPU * OpenCL CPU implementation of direct space derivatives, and cleanup * Try to make test even shorter to not time out on CI * Temporary - Debugging * Debugging * Debugging * Debugging * Debugging * Remove debugging code and fix reduction synchronization * Fix other reductions * Debugging - are tests hanging or just slow on CI? * Debugging * Debugging * Fix macro for case when double precision is available on hardware * Remove changes for debugging again * Try to improve matrix solver cache locality by uploading transpose * Fixes for atom ordering and periodic images * Can't rely on reorder listener for cell offset updates * Test reducing number of contexts and timing for CI * Debugging * Remove timing code and revert debugging changes * Matrix solver and plasma term optimizations * Reduce CG solver kernel calls and downloads * Don't read back convergence flag from global memory * Update PME due to refactoring in master branch * Faster matrix solver (1st step) * Faster matrix solver for CUDA * Faster matrix solver compatibility with non-CUDA platforms * Matrix solver fixes * Use warp shuffle reductions when possible * Attempt to work around intermittent compiler crash in Intel CPU OpenCL * Optimize CG solver kernel 1 * Rework CG solver so some kernels can use more than 1 block * Don't run out of shared memory * Asynchronously download convergence flag while clearing buffers --------- Co-authored-by:Evan Pretti <pretti@sh03-17n15.int>
-
- 09 Jul, 2025 1 commit
-
-
Peter Eastman authored
* Unified storage of global parameters * Fixes to CUDA and HIP * Store global parameters as real instead of float
-
- 05 May, 2025 1 commit
-
-
Peter Eastman authored
* Use common API for kernels * More code uses common interface * Bug fixes * Unified interface for sorting * Simplified interface for FFT * Use common event API for synchronization * Minor changes to make code more consistent between platforms * Common implementation of NonbondedForce * Bug fixes * Flag to enable list of single pairs * CUDA and OpenCL use common implementation of NonbondedForce * Fixed compilation error * HIP uses common implementation of NonbondedForce
-
- 28 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Unified interface for queues * Simplified stream handling in CudaFFT3D * HIP implementation of ComputeQueue
-
- 25 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Unified interface for FFTs * AMOEBA uses unified interface for FFTs * HIP implementation of common FFT interface
-
- 23 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Add correction for self energy of neutralizing plasma * Fixed compilation errors * Update total charge in copyParametersToContext() * Bug fixes * Fixed compilation errors in HIP * Bug fix
-
- 14 Apr, 2025 1 commit
-
-
Peter Eastman authored
* Created DPDIntegrator class * Reference implementation of DPDIntegrator * Build neighbor list for DPDIntegrator * Minor fixes * Documentation for DPDIntegrator * Python API for DPDIntegrator * Preliminary OpenCL implementation of DPDIntegrator * Enable USE_PERIODIC * Use updated positions in DPD thermostat * Working on neighbor list for OpenCL DPDIntegrator * ReorderListener for particle types * Serialization for DPDIntegrator * CUDA implementation of DPDIntegrator * HIP implementation of DPDIntegrator * Fixed compile error in Python wrapper * Fixed compile error in wrappers * Fixed uninitialized memory in reference neighbor list * Added DPDIntegrator to C++ API docs * Fixed incorrect launch size * Fixed nan in DPD random number generator * Minor optimizations * Improved load balancing * Fixed an indexing error * Neighbor list uses the maximum cutoff of any force * Fixed HIP compilation error * Fixed access to invalid memory * Added test case for diffusion coefficient * Try to debug segfaults on CI * Debugging * Debugging * Debugging * Debugging * Debugging * Debugging * Possible fix * Debugging * Debugging * Debugging * Use correct block size on CPU OpenCL * Workaround for bug in Intel's OpenCL for CPUs * Removed an unnecessary define * Removed debugging code * Include Dart * More Intel workarounds * Workaround for error in NVIDIA OpenCL
-
- 10 Mar, 2025 1 commit
-
-
Peter Eastman authored
* Replace pthreads with C++ threads * Try to fix CI errors * Try including -pthread linker option
-
- 22 Nov, 2024 1 commit
-
-
Peter Eastman authored
* updateParametersInContext() can modify parameter offsets * Reordering respects parameter offsets * Implemented for CUDA and HIP
-
- 23 Sep, 2024 1 commit
-
-
Anton Gorenko authored
* PME_ORDER threads process one atom; * PME_ORDER threads access consecutive addresses; * No need to permute z indices with zindexTable; * finishSpreadCharge is needed only with fixed point charge spreading;
-
- 10 Sep, 2024 1 commit
-
-
Peter Eastman authored
* Unified lots of parallel computation code between platforms * Unified test code between platforms * Eliminated duplicated timing code
-
- 06 Sep, 2024 1 commit
-
-
Peter Eastman authored
* Optimize CustomNonbondedForce.updateParametersInContext() * Optimized uploading changed values to GPU * Optimized updateParametersInContext() for lots of bonded forces * Optimized updateParametersInContext() for CustomExternalForce * Optimized updateParametersInContext() for NonbondedForce * Code changes for HIP platform
-
- 12 Dec, 2023 1 commit
-
-
Peter Eastman authored
* Common implementation of BondedUtilities * Common implementation of UpdateStateDataKernel
-
- 11 Dec, 2023 1 commit
-
-
Peter Eastman authored
* Improved sorting of blocks when building neighbor list * Improved block sorting for OpenCL * Made sort keys more evenly distributed
-
- 02 Aug, 2023 1 commit
-
-
Emilio Gallicchio authored
* Draft integration of the Alchemical Transfer Method (ATM) plugin * Attempt to store and retrieve forces--does not compile * Implement addForce()/getForce() methods * Throw exception when specifying properties without a Platform (#4130) * Fixed DOF calculation for NoseHooverIntegrator (#4128) * Fix variance in documentation of VerletIntegrator (#4138) * Python API for ATMForce * Fixed compilation error * Minor cleanup of formatting and documentation * Files for ATMForce test cases * More cleanup * Removed variable groups * Test ATMForce with two particles * More tests for ATMForce plus fixes * Added missing header * Rework interface to pass displacements as vector of parameters * Revert "Rework interface to pass displacements as vector of parameters" This reverts commit 5e092031f31ded1137b677588f007add1c2d6f82. * Test with nonbonded force * Allow energy expression to be custom...
-
- 24 Jul, 2023 1 commit
-
-
Peter Eastman authored
* Use large blocks to optimize building the neighbor list * Large blocks optimization for OpenCL * Fix test failures * Select whether to use large blocks based on system size
-
- 20 Jul, 2023 1 commit
-
-
Peter Eastman authored
* Always use nvrtc for compilation * Install nvrtc on CI * Workaround for compiler error * Set empty values for deprecated properties
-
- 23 May, 2023 1 commit
-
-
Peter Eastman authored
* Skip neighbor list for very small systems * Fixed typos * Don't skip box size check when not using neighbor list * Made test larger to ensure it uses neighbor list
-
- 30 Mar, 2023 1 commit
-
-
Peter Eastman authored
-
- 12 Aug, 2022 1 commit
-
-
Peter Eastman authored
-
- 13 Apr, 2022 1 commit
-
-
Peter Eastman authored
-
- 01 Mar, 2022 1 commit
-
-
Peter Eastman authored
* DrudeLangevinIntegrator has getSystemTemperature() * DrudeNoseHooverIntegrator has getSystemTemperature() * StateDataReporter reports system temperature for Drude systems * Fixed incorrect return type
-
- 27 Jan, 2022 1 commit
-
-
Peter Eastman authored
* Fixed potential invalid memory access * Fixed exception
-
- 27 Dec, 2021 1 commit
-
-
Peter Eastman authored
* Optimized CudaSort for non-uniformly distributed data * Optimized OpenCLSort for non-uniformly distributed data * Further tuned distributing elements between buckets * Copied optimizations over to OpenCL
-
- 30 Nov, 2021 1 commit
-
-
Peter Eastman authored
* Use multiple streams to broadcast positions * Use multiple streams to reduce forces * Adds sync between default stream and peer-copy * Minor cleanup Co-authored-by:David Clark <daclark@nvidia.com>
-
- 04 Oct, 2021 1 commit
-
-
Peter Eastman authored
* Use cuCtxPushCurrent() and cuCtxPopCurrent() for selecting CUDA context * Fixed errors in amoeba coda * Fixed more errors in context selection
-
- 16 Sep, 2021 1 commit
-
-
Peter Eastman authored
* Allow querying current step count * Fixed error building Python wrapper
-
- 11 Aug, 2021 1 commit
-
-
Josh A. Mitchell authored
* Proof of concept matching current behaviour with Breathe * Reorganise C++ API docs to work without autosummary * Revert to Sphinx-native search * Move remaining pip deps to conda * Remove unnecessary lunrsearch templates * Remove lunrsearch from cmake * Tidy up layout of API docs * Get code blocks to work with Breathe Breathe doesn't seem to support the Doxygen <preformatted> tag. It does support the <code> tag, but better yet it supports using <verbatim> tags to embed rst into docstrings. This commit changes all <pre> tags to use RST verbatim, and updates the Python documentation machinery to support it too. * Clarified some language * Have doxygen exclude undocumented classes and have sphinx fail on warnings for C++ API docs * List custom forces and integrators last * Add breathe to documentation CI * Typo * Fix link to custom forces in extras.rst * Have Breathe process only public classes * Strip OpenMM:: prefix from rst files to avoid colons in links * Remove existing private classes from EXCLUDE_SYMBOLS * Add comment to C++ cmake describing why we promote warnings to errors * Revise documentation build instructions for new dependencies
-
- 22 May, 2021 1 commit
-
-
Peter Eastman authored
* Began converting AMOEBA to common platform * Beginning of OpenCL platform for AMOEBA * Converted AmoebaVdwForce to common platform * Cleaned up reference AMOEBA tests * Began converting AmoebaMultipoleForce to common platform * Continue converting AmoebaMultipoleForce to common platform * Bug fixes * Bug fix * Continue converting AmoebaMultipoleForce to common platform * Converting AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce to common platform * Converting AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce to common platform * Creating OpenCL version of AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce * Creating OpenCL version of AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce * Creating OpenCL version of AmoebaMultipoleForce and AmoebaGeneralizedKirkwoodForce * Converted arrays from real3 to real * Bug fix to OpenCL AmoebaGeneralizedKirkwoodForce * Fixes for AMD GPUs * Began converting HippoNonbondedForce to common platform * Continuing to convert HippoNonbondedForce to common platform * Continuing to convert HippoNonbondedForce to common platform * Working on unifying PME kernels * Fixed error on devices without 64 bit atomics * Unified PME kernels * Converted HippoNonbondedForce to common platform * Creating OpenCL implementation of HippoNonbondedForce * Continuing OpenCL implementation of HippoNonbondedForce * Mostly finished OpenCL implementation of HippoNonbondedForce * Eliminated three component vector types in host code * Fix errors on CPU OpenCL * Skip double precision tests for AMOEBA on OpenCL * Bug fixes * Bug fixes * Fixed compilation error
-
- 22 Mar, 2021 1 commit
-
-
Peter Eastman authored
* Converted RPMD plugin to common platform * Merged RPMD tests for different platforms * Try to fix errors on CPU OpenCL
-
- 19 Mar, 2021 1 commit
-
-
Peter Eastman authored
* Converted more code to common platform * Converted more code to common platform
-
- 22 Feb, 2021 1 commit
-
-
Peter Eastman authored
* Improve selection of architecture to compile for * Fixed compilation errors on older CUDA versions
-
- 11 Feb, 2021 1 commit
-
-
Peter Eastman authored
* Use command line compiler if it is explicitly specified * Don't set OPENMM_CUDA_COMPILER on Jenkins
-
- 20 Aug, 2020 1 commit
-
-
peastman authored
* Fixed range overflow with very large numbers of atoms * More fixes to overflow with large numbers of atoms * Fix test failures
-
- 28 Feb, 2020 1 commit
-
-
Andy Simmonett authored
-
- 08 Jan, 2020 1 commit
-
-
peastman authored
* Began creating common compute framework to unify code between CUDA and OpenCL * Began OpenCL implementation of common compute framework * Common implementation of CMMotionRemover * CUDA implementation of common compute interface * Converted HarmonicBondForce to common compute API * Converted standard bonded forces to common compute API * Converted ExpressionUtilities to common compute API * Created ComputeParameterSet * Converted custom bonded forces to common compute API * Converted CustomCentroidBondForce to common compute API * Converted CustomManyParticleForce to common compute API * Moved lots of duplicate code from CudaContext and OpenCLContext to ComputeContext * Converted GayBerneForce to common compute API * Removed obsolete kernels * Converted verlet integrators to common compute API * Converted Langevin and Brownian integrators to common compute API * Converted CustomIntegrator to common compute API * Converted CustomNonbondedForce to common compute API * Removed uses of a deprecated API * Fixed failing test cases * Converted GBSAOBCForce to common compute API * Began converting CustomGBForce to common compute API * Finished converting CustomGBForce to common compute API * Merged duplicated code in CudaIntegrationUtilities and OpenCLIntegrationUtilities * Converted RMSDForce and AndersenThermostat to common compute API * Converted CustomHbondForce to common compute API * Merged scripts for encoding kernel sources * Converted Drude plugin to common compute API * Fixed errors in CMake scripts * Attempt at fixing errors on Windows * Added discussion of common compute API to developer guide * Added Windows export macro for common classes * Fixed error in CMMotionRemover * Ubdated travis to newer Ubuntu version * Fixed errors on CPU OpenCL * Fixed Windows linking errors * Added missing pragma for 32 bit atomics * Replaced long long with mm_long * More fixes to Windows linking * Bug fix
-
- 11 Dec, 2019 1 commit
-
-
Andy Simmonett authored
-
- 12 Nov, 2019 1 commit
-
-
Andy Simmonett authored
-