1. 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
  2. 13 Aug, 2025 1 commit
  3. 28 Mar, 2025 1 commit
  4. 26 Nov, 2024 1 commit
  5. 16 Oct, 2024 1 commit
  6. 01 Oct, 2024 1 commit
  7. 05 Sep, 2024 1 commit
  8. 23 Aug, 2024 1 commit
  9. 19 Jul, 2024 1 commit
  10. 17 Jul, 2024 1 commit
    • Peter Eastman's avatar
      Debug CI failures (#4588) · e30e5b69
      Peter Eastman authored
      * Debug CI failures
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Debugging
      
      * Removed build that was failing
      
      * Fixed URL that had changed
      e30e5b69
  11. 09 Jul, 2024 1 commit
  12. 09 Mar, 2024 1 commit
  13. 28 Sep, 2023 1 commit
  14. 20 Jul, 2023 1 commit
  15. 05 Jan, 2023 1 commit
  16. 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
  17. 04 May, 2022 1 commit
  18. 18 Mar, 2022 1 commit
  19. 03 Dec, 2021 1 commit
  20. 23 Nov, 2021 1 commit
    • Mike Henry's avatar
      Add M1 build testing to GHA (#3335) · c28ae903
      Mike Henry authored
      * lets see what blows up!
      
      * need to add env file, different name than normal
      
      * lets see if setting an env will help it find the base
      
      * try forcing the use of mamba
      
      * this should break everything, but might make osx work
      
      * lets see if this fixes the issue with the extension
      
      * ci bump
      
      * lets see if a different installer will work
      
      * single thread build to see error better
      
      * ci bump
      
      * ci bump
      
      * can't build opencl on m1
      
      * add salt to url to prevent caching
      
      * rename to reflect that we can just build CPU
      
      * going to add a M1 x86_64 buld and an arm64 build
      
      * lets see if I broke 86
      
      * now lets see what happens with arm
      
      * forgot to add new build files
      
      * try older python version
      
      * newer python?
      
      * try mini forge
      
      * ci bump
      
      * unpin doxygen and remove gromacs as a dep
      
      * double check where x86_64 libs are getting pulled in
      
      * ci bump
      
      * try and use conda compiler toolchain and set arch
      
      * weird things happend with setting arch
      
      * lets see what the arch the runner thinks it is using
      
      * try printing arch again
      
      * undo shell change
      
      * remove changes to shell
      
      * make sure I don't break other buikds
      
      * fix syntax issue and add new label to actionlint
      
      * ci bump
      
      * ci bump
      
      * lets focus on arm64 builds for now
      
      * ci bump
      
      * ci bump
      
      * try setting arch to build with arch command
      
      * split steps up so other builds don't break
      
      * see if the cmake step is the only one we need to arch-ify
      
      * cleaning things up
      
      * cleaning things up
      
      * set -j2 for make
      
      * we can use the same build step as the otehr builds
      
      * now lets see if it can install gromacs
      
      * no gromacs, no problem?
      
      * remove bit of logic stopping the build
      
      * pin doxygen to 1.9.1
      
      * try building openCL
      
      * ci bump
      
      * ci bump
      c28ae903
  21. 11 Aug, 2021 1 commit
    • Josh A. Mitchell's avatar
      Move to actively maintained dependencies for API docs (#3201) · ae2fe2fd
      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
      ae2fe2fd
  22. 15 Jun, 2021 1 commit
  23. 10 Feb, 2021 1 commit
    • Jaime Rodríguez-Guerra's avatar
      Migrate CI to GH Actions (#2964) · 6f8534dc
      Jaime Rodríguez-Guerra authored
      * Add draft GHA-based CI for Linux
      
      * Fix events
      
      * Dup key
      
      * Fix path
      
      * Update env vars
      
      * More fixes
      
      * Fix env vars again
      
      * add doxygen
      
      * add sudo
      
      * Typo
      
      * upgrade CUDA
      
      * escape newlines
      
      * more backslashes
      
      * fix CUDA_APT
      
      * more env vars fixes
      
      * fix missing file
      
      * acumulate env_vars
      
      * build python wrappers only if requested
      
      * add pytest
      
      * use $GITHUB_ENV
      
      https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
      
      * use ${GITHUB_WORKSPACE}
      
      * Pin older gromacs
      
      * add windows
      
      * Provide default values for unbound vars
      
      * fixes
      
      * this is powershell not cmd
      
      * update envs
      
      * win fix
      
      * make windows use cmd
      
      * Change install prefix
      
      * fixes
      
      * better env files
      
      * Increase timeout threshold
      
      * set xcode to 10.x
      
      * specify action version
      
      * fix sdk in macos
      
      * split jobs a bit more
      
      * build wrappers even if tests failed for c...
      6f8534dc
  24. 01 Feb, 2021 1 commit
  25. 30 Aug, 2019 2 commits
  26. 29 Aug, 2019 1 commit
  27. 10 Jun, 2019 1 commit
  28. 05 Mar, 2019 1 commit
    • Jason Swails's avatar
      Enable docker for GPU builds · a150d570
      Jason Swails authored
      I finally got nvidia-docker2 installed and actually working on my Gentoo
      machine (I had to disable their restriction of using GPU devices to
      users in the 'video' group, since the nvidia container runtime hook
      didn't run as a user with those privileges, and I can't figure out what
      user it was running as).
      
      The other GPU-enabled node I added to the Jenkins array runs Ubuntu, and
      that one already has nvidia-docker2 installed and running correctly on
      it.
      a150d570
  29. 28 Nov, 2018 1 commit
    • Jason Swails's avatar
      Use Jenkinsfile to drive the pipeline job (#2198) · 6aeccb40
      Jason Swails authored
      * Add a Jenkinsfile to drive a pipeline
      
      * Also tweaks the installation script for Jenkins to be more amenable to
      running other variants in parallel
      * Restrict packaging script to only accept Python 2.7, since I think
      that's long been the minimum supported Python version
      * Allow run-ctest.py to run tests in parallel (and take advantage of
      that in the Jenkins tests).
      
      * CUDA -> CUDA_VERSION
      
      * Jenkins will automatically post result back to GitHub.
      
      Not need to have a separate step do that explicitly.
      
      * Run as a login shell.
      
      * Force looking for CUDA node.
      
      * Make sure we load conda module.
      
      * Start building in a docker slave -- much nicer!
      
      * Try to fix up the installation a little.
      
      * Fix more build issues.
      
      * More build debugging.
      
      * Oops -- recursive :-o
      
      * Put opencl lib in library path
      
      * Try 9.2
      
      * Fix library path
      
      * More updates to Jenkins build recipes.
      
      * Try a new (simpler?) approach with building
      
      * Oops...
      6aeccb40
  30. 08 Oct, 2018 1 commit
  31. 05 Apr, 2018 1 commit
    • Jason Swails's avatar
      Use g++ instead of clang and fix PythonInstall · ec4344c7
      Jason Swails authored
      clang is tested everywhere else, and it's not as routinely up-to-date on
      my Jenkins machine.
      
      PythonInstall failed on Linux machines where the build/install
      directories had paths with spaces in them.
      ec4344c7
  32. 12 Nov, 2017 1 commit
  33. 28 Feb, 2017 7 commits