1. 11 Nov, 2025 1 commit
  2. 23 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. 23 Jul, 2025 1 commit
    • Peter Eastman's avatar
      Virtual site for symmetric molecules (#4185) · bb3073d4
      Peter Eastman authored
      * Reference implementation of SymmetrySite
      
      * Common implementation of SymmetrySite
      
      * Removed duplicated code
      
      * Serialization for SymmetrySite
      
      * Fixed compilation error building C wrapper
      
      * Added SymmetrySite to user guide
      
      * Bug fix
      
      * Added P21 test case
      bb3073d4
  5. 02 Jul, 2025 1 commit
  6. 23 Apr, 2025 1 commit
  7. 14 Apr, 2025 1 commit
    • Peter Eastman's avatar
      DPDIntegrator (#4799) · de180e4e
      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
      de180e4e
  8. 21 Mar, 2025 1 commit
  9. 10 Mar, 2025 1 commit
  10. 27 Nov, 2024 1 commit
  11. 22 Nov, 2024 1 commit
  12. 10 Sep, 2024 2 commits
  13. 06 Sep, 2024 1 commit
    • Peter Eastman's avatar
      Optimize updateParametersInContext() (#4610) · 78902bed
      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
      78902bed
  14. 17 Feb, 2024 1 commit
  15. 02 Feb, 2024 1 commit
  16. 16 Sep, 2023 1 commit
  17. 14 Jul, 2023 1 commit
  18. 09 Nov, 2022 1 commit
  19. 21 Jun, 2022 1 commit
  20. 19 May, 2022 1 commit
  21. 17 May, 2022 1 commit
  22. 11 May, 2022 1 commit
  23. 17 Apr, 2022 1 commit
  24. 15 Apr, 2022 1 commit
  25. 14 Apr, 2022 1 commit
    • Peter Eastman's avatar
      Vectorized CpuCustomNonbondedForce (#3568) · c8981916
      Peter Eastman authored
      * Began vectorizing CustomNonbondedForce
      
      * Refactored CpuCustomNonbondedForce to support multiple vector sizes
      
      * AVX implementation of CpuCustomNonbondedForce
      
      * Fixed compilation errors
      c8981916
  26. 27 Jan, 2022 1 commit
    • Peter Eastman's avatar
      CustomNonbondedForce supports computed values (#3412) · 33c694d4
      Peter Eastman authored
      * Reference implementation of computed values for CustomNonbondedForce
      
      * CPU implementation of computed values for CustomNonbondedForce
      
      * Common implementation of computed values for CustomNonbondedForce
      
      * Serialization of computed values
      
      * ForceField supports computed values
      33c694d4
  27. 02 Nov, 2021 1 commit
    • Peter Eastman's avatar
      updateParametersInContext() can change tabulated functions (#3307) · 27bcb657
      Peter Eastman authored
      * updateParametersInContext() can change tabulated functions
      
      * Fixed error in building C wrappers
      
      * updateParametersInContext() can change tabulated functions for CustomCentroidBondForce
      
      * CustomNonbondedForce can update tabulated functions
      
      * CustomGBForce can update tabulated functions
      
      * CustomManyParticleForce can update tabulated functions
      
      * CustomHbondForce can update tabulated functions
      27bcb657
  28. 20 Sep, 2021 1 commit
  29. 28 Feb, 2021 1 commit
    • Peter Eastman's avatar
      Point based geometric functions for custom forces (#3037) · a85c2428
      Peter Eastman authored
      * Began implementing geometric functions on points
      
      * Started common implementation of point functions
      
      * Completed implementation of point functions for CustomCompoundBondForce
      
      * Implemented point functions for CustomCentroidBondForce
      
      * Implemented point functions for CustomManyParticleForce
      
      * Use point functions to simplify implementation of custom forces
      
      * Removed unnecessary code
      
      * Fixed typo
      a85c2428
  30. 09 Feb, 2021 1 commit
  31. 28 Jan, 2021 1 commit
  32. 25 Nov, 2020 1 commit
  33. 20 Aug, 2020 1 commit
  34. 15 Jun, 2020 1 commit
  35. 09 Jun, 2020 1 commit
  36. 01 Jun, 2020 2 commits
  37. 18 May, 2020 1 commit
  38. 30 Apr, 2020 1 commit
    • dwtowner's avatar
      [WIP] CPU: Refactored code to be generic across vector CPU platforms. (#2661) · 91952b51
      dwtowner authored
      * CPU: Refactored code to be generic across vector CPU platforms.
      
      Ewald and non-Ewald interactions now share a common code base, templated on
      their interaction type.
      
      The vec4 and vec8 implementations have been replaced by a single generic implementation
      class which is templated on SIMD type. Currently works for SIMD4 and SIMD8 types, but
      can be extended in future to support other types (e.g., AVX-512).
      
      Modified runtime CPU support to lay groundwork for future SIMD types.
      
      Pulled out some vector utility functions (gather pair, reduce),
      and refactored the AVX CPU code to make use of them.
      
      * CPU: Fixed coding standards and incorrect header include.
      
      * CPU: Fixed code review comments from PR #2661
      
      * CPU: Fixed CI build issues.
      
      * CPU: Further CI fixes.
      
      * CPU: Fix for unit test failure on MacOS.
      
      Reverted optimised code to go back to a version which is thought to work
      on MacOS. The optimisation will be ...
      91952b51