1. 02 Dec, 2025 1 commit
  2. 12 Nov, 2025 1 commit
    • Peter Eastman's avatar
      Created PythonForce (#5122) · 2fbed592
      Peter Eastman authored
      * Initial implementation of PythonForce
      
      * Continuing implementation of PythonForce
      
      * Tests for PythonForce
      
      * Fix memory leaks
      
      * Documentation for PythonForce
      
      * Fixed incorrect return type
      
      * Fix compilation error on Python older than 3.12
      
      * Handle all dtypes
      
      * Optimizations to PythonForce
      
      * Optimized getPositions()
      
      * Test all platforms
      
      * Fix test failures
      2fbed592
  3. 22 Oct, 2025 1 commit
  4. 14 Oct, 2025 2 commits
    • João Morado's avatar
      Update AMOEBA XML, .prm files, and parsing of Tinker files (#5086) · eaf56f96
      João Morado authored
      * Correct AmoebaAngleTorsion in test_Amoeba18Nucleic of TestForceField
      
      * Update processTinkerForceField to handle latest .prm Tinker files
      
      * Update amoeba2018 XML files
      
      * Update amoeba2013 XML files
      
      * Update amoeba2009 XML files
      
      * Adapt addTorTor to new format in the .prm files
      
      * Fix TorsionTorsion
      
      * Also update the total energy in test_Amoeba18Nucleic
      
      * Update amoebabio18.prm
      
      * Fix nucleic acid test energies
      
      * Correct AmoebaAngleTorsionForce params
      
      * Add new addTorTor to TinkerFiles
      
      * Revert unit fix
      
      * Change to .pdb file which Tinker likes
      
      * Update test_Amoeba18BPTI
      
      * Remove trailing zeros from XML files
      
      * Leave trailing zeros only on 2018 ff
      
      * New element names in 2018
      
      * More digits for surfaceAreaFactor
      
      * More digits for surfaceAreaFactor
      
      * More digits
      
      * Remove debugging print
      
      * Add support to 2009 and 2013 AMOEBA ffs to processTinkerForceField.py
      
      * Add FF specific residues XML files
      
      * Delete old residuesFinal.xml
      
      * Update AMOEBA XML ffs
      
      * Update FFs
      
      * Fix some formatting issues
      
      * Fix "." in scientific notation
      
      * Remove old assertions
      eaf56f96
    • João Morado's avatar
      Cleanup TinkerReader, ForceField, and amoebaforces (#5080) · 489e2c46
      João Morado authored
      * Fresh branch refactoring the new AMOEBA code
      
      * Finish cleaning up AmoebaAngleForce and AmoebaInPlaneAngleForce
      
      * Cleanup AmoebaTorsionTorsionForce
      
      * Cleanup AmoebaOutOfPlaneBend
      
      * Cleanup AmoebaMultipoleForce
      
      * Remove unnecessary gkForce
      
      * Simplify usage of atomClasses in ForceField
      
      * Formatting
      
      * Fix type of class on WCA
      
      * Simplify angle forces
      
      * Add parsing of units to PiTorsion and StretchBond, and misc. formatting adjustments
      
      * Update code per review feedback
      
      * Clearly defined API for TorsionTorsion,  and correct matching for UB,
      
      * Unindent break statements
      
      * Raise ValueError if classes and types are mixed in a Urey-Bradley term definition
      489e2c46
  5. 24 Sep, 2025 1 commit
  6. 19 Sep, 2025 1 commit
    • João Morado's avatar
      Reader of Tinker files (#4769) · 939e0af5
      João Morado authored
      
      
      * Add basic version of TinkerFiles
      
      * Refactor TinkerFiles
      
      * Update docstring, type hints, and fix bug when setting box vectors
      
      * Small fixes
      
      * Add unit tests for the TinkerFiles class
      
      * Fixes and updates to TinkerFiles
      
      * Add simuteTinker example
      
      * Update Modeller to work with AMOEBA force fields
      
      * Small fixes
      
      * Relax type hinting
      
      * Fix indices in modeller
      
      * Fix modeller indices
      
      * Fix type hints and usage of Quantity
      
      * Remove numpy protector
      
      * Add reader of .seq files
      
      * Add topology parsing of some protein residues, waters, ions, and generic molecules.
      
      * Miscellaneous improvements
      
      * Update amino acids and nucleotides list
      
      * Various fixes to XML writing, and separate XML writing into a new class
      
      * Comments/warnings
      
      * Add nucleic topological definitions
      
      * Improved handling of peptide residues
      
      * Fix for CYX (disulfide bonds)
      
      * Refactor the topology creation methods
      
      * General improvements, and add support for nucleic-like residues
      
      * No need to handle MP, DP, TP
      
      * Minor improvements
      
      * General refactoring, add automatic determination of topology
      
      * Add TinkerAtomType dataclass, and remove references to biotypes as they are not needed
      
      * Re-add missing parsing of forces and scalars
      
      * Updates to createSystem()
      
      * Add AMOEBA forces
      
      * Add angle-related forces to createSystem
      
      * Add placeholders for missing forces
      
      * Beginning of support for AmoebaMultipoleForce
      
      * Finished support for AmoebaMultipoleForce
      
      * Support for AmoebaVdwForce
      
      * TinkerFiles supports vdw
      
      * Misc updates, and add AmoebaTorsionTorsion, AmoebaWcaDispersion, and AmoebaGeneralizedKirkwood
      
      * Remove XML writer
      
      * Fixes
      
      * Fix wrong indentation in _findBitorsions
      
      * Remove pdb debugging
      
      * Documentation and fixes
      
      * Remove files
      
      * Revert checks in AmoebaVdwForceBuilder and ## @private  markers
      
      * Remove duplicated static methods _getChiralAtomIndex
      
      * Fix GK force
      
      * Fix WcaDispersion force
      
      * Fix WcaDisp
      
      * Fixes and updates
      
      * Cleanup and removing duplicated code
      
      * Bug fixes
      
      * A few more unit conversions
      
      * Minor cleanup
      
      * Misc fixes and updates
      
      * Fix Add AmoebaStretchBendForce
      
      * Simplify force builders
      
      * Update ForceField
      
      * Fix AmoebaPiTorsionForce
      
      * Only add AmoebaWcaDispersionForce if using implicitSolvent
      
      * Simplify amoebaforces
      
      * Stretch torsion and angle torsion
      
      * Misc. fixes
      
      * Improve tests
      
      * Fix cap group identification
      
      * Add/improve tests
      
      * Remove whitespaces from residue names
      
      * Improve tests
      
      * Consistent use of atomClasses list
      
      * Fix match condition in AmoebaOutOfPlaneBendForceBuilder
      
      * Fix AmoebaStretchBendForce
      
      * Final fix for AmoebaStretchBendForce
      
      * Fix AmoebaAngleForce
      
      * Small fixes and improvements
      
      * Update assertion tolerances
      
      * Simplify torsion-torsion force creation
      
      * Small fixes in the tests
      
      * Review comments, type hints, docs for tinkerfiles.py
      
      * Only use standard PDB for AA
      
      * Type hint and docs for amoebaforces
      
      * Reduce tolerances for failing tests
      
      * Fixed error with ZOnly axis type when x particle is not specified
      
      ---------
      Co-authored-by: default avatarpeastman <peastman@stanford.edu>
      939e0af5
  7. 16 Sep, 2025 1 commit
  8. 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
  9. 08 Sep, 2025 1 commit
  10. 22 Aug, 2025 1 commit
    • feiglab's avatar
      NBFIX in Gromacs for 1-4 pairs (#5050) · 44524bd1
      feiglab authored
      * fix to correctly read Gromacs topology files for CHARMM force field
      
      * updated fix to correctly read topology files with NBFIX and different combination rules
      
      * fixes to read topology files with NBFIX and different combination rules
      
      * changed default for useDispersionCorrection to True
      
      * changed docstring default for useDispersionCorrection to 'True'
      
      * fix scaling of 1-4 LJ pairs when NBFIX is used
      
      * apply NBFIXes to 1-4 pairs if no pair parameters are given
      
      * rerun CI
      44524bd1
  11. 13 Aug, 2025 1 commit
  12. 12 Aug, 2025 1 commit
    • Emilio Gallicchio's avatar
      Variable distance-based displacements for ATMForce (#4776) · 3645e1ee
      Emilio Gallicchio authored
      
      
      * Variable displacements based on particle positions
      
      * set variable displacements when adding particles
      
      * update documentation
      
      * address compilation error in OpenMMFortranWrapper
      
      * update python API tests
      
      * fix stray 'and'
      
      * addParticle() without arguments add a particle that is not displaced
      
      * pack displacement particles into int4
      
      * put back default displacement removed in error
      
      * ATMForce interface with coordinate transformation objects
      
      * revise variable displacement API
      
      * documentation, formatting, serialization
      
      * Fixed C and Fortran wrappers
      
      * Fixed Python wrappers
      
      * Fixed factory
      
      * Sort files to ensure classes are listed in the correct order
      
      * Converted APIUnits test to new ATMForce API
      
      * write class name
      
      * skip the documentation for forward declarations
      
      * undo 9e91d0b since it does not fix the doc build
      
      * remove temporary doc files for nested classes
      
      * Clean away tabs
      
      ---------
      Co-authored-by: default avatarPeter Eastman <peastman@stanford.edu>
      3645e1ee
  13. 11 Aug, 2025 1 commit
    • Peter Eastman's avatar
      Adaptive quantum thermal bath (#4995) · 2af004b6
      Peter Eastman authored
      * Began implementing QTBIntegrator
      
      * Adaptation and deconvolution
      
      * Continuing reference implementation
      
      * Continuing to implement QTBIntegrator
      
      * Use common thread pool
      
      * More tests, documentation, and threading
      
      * Fix segfault
      
      * Serialize adapted friction when creating a State
      
      * Beginning of GPU implementation
      
      * Added missing files
      
      * Bug fixes
      
      * Fixed inverse FFT
      
      * Continuing GPU implementation
      
      * Checkpointing
      
      * Bug fixes
      
      * Test cases run faster
      
      * Changes needed for latest main branch
      
      * Minor optimizations
      
      * Documentation
      
      * Fixed atom reordering
      
      * Added parahydrogen test case
      
      * Workaround for bug in Microsoft's compiler
      
      * Added a Python test
      
      * Normalize kernel in deconvolution
      
      * Minor documentation improvements
      2af004b6
  14. 07 Aug, 2025 1 commit
    • feiglab's avatar
      fix for scaled 1-4 LJ interactions when NBFIX is present in Gromacs topology file (#5032) · d2a5d7e4
      feiglab authored
      * fix to correctly read Gromacs topology files for CHARMM force field
      
      * updated fix to correctly read topology files with NBFIX and different combination rules
      
      * fixes to read topology files with NBFIX and different combination rules
      
      * changed default for useDispersionCorrection to True
      
      * changed docstring default for useDispersionCorrection to 'True'
      
      * fix scaling of 1-4 LJ pairs when NBFIX is used
      d2a5d7e4
  15. 06 Aug, 2025 1 commit
    • feiglab's avatar
      Fix reading of Gromacs topologies created from CHARMM force field (#5026) · 0a4edb84
      feiglab authored
      * fix to correctly read Gromacs topology files for CHARMM force field
      
      * updated fix to correctly read topology files with NBFIX and different combination rules
      
      * fixes to read topology files with NBFIX and different combination rules
      
      * changed default for useDispersionCorrection to True
      
      * changed docstring default for useDispersionCorrection to 'True'
      0a4edb84
  16. 25 Jul, 2025 1 commit
  17. 23 Jul, 2025 2 commits
  18. 03 Jul, 2025 1 commit
  19. 02 Jul, 2025 1 commit
  20. 05 Jun, 2025 1 commit
  21. 02 May, 2025 1 commit
  22. 22 Apr, 2025 1 commit
  23. 17 Apr, 2025 1 commit
  24. 16 Apr, 2025 1 commit
  25. 02 Apr, 2025 1 commit
    • Stefan Doerr's avatar
      Fixing XTC/DCD time and step writing (#4879) · 2ff294c6
      Stefan Doerr authored
      * add tests for correctness of step and time written in XTC and DCD
      
      * improve tests
      
      * improve xtc tests
      
      * fix XTC/DCD time/step writing
      
      * different approach by changing the reporters to not pass currentStep as firstStep but instead interval
      
      * undo change
      2ff294c6
  26. 14 Mar, 2025 1 commit
  27. 10 Mar, 2025 1 commit
  28. 06 Mar, 2025 2 commits
  29. 13 Feb, 2025 1 commit
  30. 11 Feb, 2025 1 commit
  31. 18 Jan, 2025 1 commit
  32. 14 Jan, 2025 1 commit
  33. 03 Dec, 2024 1 commit
  34. 20 Nov, 2024 1 commit
    • Michael J. Schnieders's avatar
      Updates to AmoebaVdwForce, AmoebaGeneralizedKirkwoodForce and AmoebaWcaDispersionForce (#4647) · 61a908cd
      Michael J. Schnieders authored
      * Update the AMOEBA OpenMM API for vdW, GK and WCA
      
      * Changes needed for the Corrigan et al Generalized Kirkwood model and minor changes to the vdW force to support CpHMD
      
      * Add casts to real for uses of POW in GK; Pass force by reference within the WCA kernel
      
      * Update swigInputConfig for Amoeba vdW and GK forces
      
      * Update TestAPIUnits.testAmoebaVdwForce
      
      * Set the units for getSolventDielectric and getSoluteDielectric to None
      
      * Update default dispersion offset parameter for the AmoebaWcaDispersionForce
      
      * Remove overloaded getParticleParameters and setParticleParameters from AmoebaGeneralizedKirkwoodForce
      
      * Update the AmoebaWcaDispersionForce TestAPIUnits tests to reflect using the correct units for the C++ parameter default values; Update the alanine-dipeptide-amoeba-forces to reflect the updated GK model
      
      * Move neck descreening constants into AmoebaGeneralizedKirkwoodForceImpl; set the default GK dielecticOffset to 0.09; set the default WCA shctd parameter to 0.82
      
      * Fix Python test cases for WCA and GK
      
      * Load AMOEBA/GK parameters into an array of float4
      
      * Cleaned up the AmoebaGeneralizedKirkwoodForce based on feedback from Peter; the one case where backwards compatibility remains a challenge is application of the dielectric offset parameter - in the prior code this was only applied to the nonpolar cavity term, but not to calculation of Born radii; in this revision the dielectric offset is applied to BOTH the nonpolar cavity term and to calculation of Born radii. At this point I can't think of elegant way to maintain backwards compatibility that isn't confusing, nor does it make sense (at least to me) to only apply the concept of the dieletric offset to one aspect (i.e. only to nonpolar cavity or only to Born radii calculation) but not to both.
      
      * Remove 'using std::vector' from AmoebaGeneralizedKirkwoodForceImpl.h; divide by 10 instead of multiplying by 0.1f in amoebaGk.cc
      
      * Added a parameter called descreenOffset, which is applied during calculation of effective Born radii for GK. The parameter dielectricOffset is only used for the nonpolar cavity term consistent with its prior use. All tests in TestAmoebaGeneralizedKirkwoodForce.h are now backwards compatible with their behavior prior to this PR.
      
      * Change two constants in amoebaGk.cc to single precision; Improved the documentation for getNeckConstants in AmoebaGeneralizedKirkwoodForceImpl.h
      
      * Fix comment for setTanhRescaling in AmoebaGeneralizedKirkwoodForce.h, Fix comment for setTanhParameters in AmoebaReferenceGeneralizedKirkwoodForce.h; set the type of parameter GeneralizedKirkwoodTanhRescaling to bool in AmoebaGeneralizedKirkwoodForceProxy.cpp; In ReferenceCalcAmoebaGeneralizedKirkwoodForceKernel return references of per particle parameters instead of copies; update AmoebaReferenceKernels.h method signatures for per particle parameters to return const vector references
      
      * Minor tweaks to the documentation for the tanh rescaling flag
      
      * Improve the comments for the get and setTanhParameters in AmoebaGeneralizedKirkwoodForce.h and AmoebaReferenceGeneralizedKirkwoodForce.h
      61a908cd
  35. 02 Oct, 2024 1 commit
    • Marc Schuh's avatar
      Increase describeNextReport readability and allow requesting more values (#4671) · 693756ba
      Marc Schuh authored
      * added type checking for Simulation.step()
      
      * changed how to check if step is an integer number
      
      * allow for dicts to be returned from Reporter.describeNextReport
      remove deprecated getState parameters ( #4437 )
      
      * convert old format into new format
      
      * update docstring
      
      * nested set comprehension to set.union
      
      * Allow 'periodic':None
      update describeNextReport in all occurrences in the code
      
      * debug
      
      * update documentation
      
      * add a reporter for energyParameterDerivative
      
      * Revert "add a reporter for energyParameterDerivative"
      
      This reverts commit 1d44dc3f60153defb6252ab56a3b85350fa24826.
      
      * Edit documentation
      693756ba
  36. 02 Sep, 2024 1 commit
  37. 25 Jul, 2024 1 commit