1. 10 Feb, 2026 1 commit
  2. 19 Sep, 2025 1 commit
  3. 12 Sep, 2025 1 commit
    • Evan Pretti's avatar
      Add constant potential method (#4870) · f55abcaa
      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: default avatarEvan Pretti <pretti@sh03-17n15.int>
      f55abcaa
  4. 05 May, 2025 1 commit
  5. 01 Apr, 2025 1 commit
  6. 28 Mar, 2025 1 commit
  7. 10 Mar, 2025 1 commit
  8. 24 Sep, 2024 1 commit
  9. 01 Sep, 2024 1 commit
    • Anton Gorenko's avatar
      Cleanup Cmake scripts for HIP platform · aca24d5f
      Anton Gorenko authored
      * Remove setting of link libraries, include and link dirs and compile
        flags for each target, instead let Cmake deal with them by linking the
        main library to hip::host hiprtc::hiprtc hip::hipfft;
      * Fix: custom command without ADD_CUSTOM_TARGET and ADD_DEPENDENCIES is
        executed for both static and shared targets;
      * Remove IF(APPLE) parts.
      aca24d5f
  10. 05 Apr, 2024 1 commit
  11. 08 Mar, 2024 1 commit
  12. 05 Mar, 2024 1 commit
  13. 30 Nov, 2023 1 commit
  14. 02 Oct, 2023 1 commit
  15. 20 Jul, 2023 1 commit
  16. 31 Jan, 2023 1 commit
  17. 30 Sep, 2022 1 commit
  18. 22 Jul, 2022 1 commit
    • Adel Johar's avatar
      Final HIP Platform implementation for AMD GPUs on ROCm (#3338) · a39fa14a
      Adel Johar authored
      
      
      * Support kernel files with extensions of any length (like .hip)
      
      * Do not allow to replace symbols in single-line comments
      
      * Add OPENMM_BUILD_COMMON CMake option
      
      It allows to build and install common platform files even if
      CUDA or OpenCL platforms are not built.
      This is required for HIP platform (openmm-hip) if ROCm OpenCL
      packages are not installed.
      
      * Add an option for Python wrapper to install into user packages
      
      OPENMM_PYTHON_USER_INSTALL is OFF be default.
      
      * Support FFT backends in Amoeba plugin
      
      The HIP platform supports FFT backends, this commit moves
      findLegalFFTDimension to ComputeContext, so platforms can have their own
      implementations.
      
      * Compatibility for common platform w/ new HIP platform
      
      * Do not use volatile with private and local AtomData parameters on HIP
      
      The generated code is not optimal, for example, the compiler generates
      flat_load instructions instead of ds_read.
      
      * Tune launch bounds for PME grid-related kernels and add WA for RDNA
      
      Force the compiler to use all registers for gridSpreadCharge and
      gridInterpolateForce by limiting max waves per EU to 1 on CDNA GPUs,
      RDNA GPUs work better without it.
      
      * Optimize atom data structs in GBSA and Amoeba on HIP
      
      Manually rearrange fields, add paddings and force alignments to
      have faster accesses to shared memory: ds_read and ds_write may
      work slower if addresses are not aligned by 16 bytes.
      Co-authored-by: default avatarAnton Gorenko <anton@streamhpc.com>
      Co-authored-by: default avatarNick Curtis <nicholas.curtis@amd.com>
      a39fa14a
  19. 30 Jun, 2022 1 commit
    • Peter Eastman's avatar
      Use PocketFFT (#3667) · 1dac981a
      Peter Eastman authored
      * Use PocketFFT instead of FFTW
      
      * Minor cleanup
      
      * Use PocketFFT instead of fftpack for reference platform
      
      * Remove FFTW as a dependency
      
      * Converted a test case to use PocketFFT
      
      * Fixed an incorrect comment
      1dac981a
  20. 17 Mar, 2022 1 commit
  21. 06 Dec, 2021 1 commit
  22. 17 Jul, 2021 1 commit
  23. 16 Jul, 2021 1 commit
  24. 23 Jun, 2021 1 commit
  25. 11 Jan, 2021 1 commit
  26. 02 Jun, 2020 1 commit
  27. 01 Jun, 2020 1 commit
  28. 30 Apr, 2020 1 commit
  29. 28 Mar, 2020 1 commit
  30. 08 Jan, 2020 1 commit
    • peastman's avatar
      Common compute framework to unify CUDA and OpenCL code (#2488) · edbc8407
      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
      edbc8407
  31. 30 Sep, 2019 1 commit
  32. 12 Apr, 2019 1 commit
  33. 07 Nov, 2018 1 commit
  34. 30 Jun, 2018 1 commit
  35. 03 Mar, 2018 1 commit
  36. 27 Apr, 2017 1 commit
  37. 23 Feb, 2017 1 commit
  38. 17 Feb, 2017 1 commit
  39. 16 Feb, 2017 1 commit
  40. 15 Feb, 2017 1 commit