* Created ExpandedEnsembleSampler
* Attempt at fixing test errors on Windows
* Another attempt at fixing test errors on Windows
* More output options
* Minor fixes
* Still trying to fix Windows errors
* Debugging
* Just skip the test on Windows
* Fix error on older Python
* 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
* Basic LCPO support
* Add basic test for LCPO from a prmtop file
* API for LCPOForce
* Started LCPO reference implementation
* Finished reference forces & test cases
* Use other test for finite difference since grid might have discontinuous forces
* Reference platform formatting
* Initial implementation of CPU platform
* Bugfixes
* More vectorization and improve neighbor list query speed
* Parallelize part of neighbor search
* Check box size for LCPO with periodic boundary conditions
* Fixes for updating parameters in context
* GBSAOBCForce doesn't use first & last indices for updates, so no need for this optimization here
* Changes to neighbor checking and optimization
* Fixes and minor changes
* Add global surface tension parameter
* Only process half of the pairs in the neighbor list
* Remove unnecessary checks
* Initial version of common platform implementation
* Asynchronously download neighbor list size
* Debugging
* Do pair precomputation in copyPairsToNeighborList
* Recompute interactions instead of scanning neighbor list in inner loop
* Condense position array before computations
* Also make neighbor count download asynchronous on device
* Fixes for kernel launching
* Topology-based LCPO parameter assignment
* Fixes, and use test system for LCPO with nucleic acids
* Always raise instead of warn when LCPO parameters can't be assigned
* Use Amber convention for phosphates
* 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
* 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
* 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
* 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: peastman <peastman@stanford.edu>
* 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>
* 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
* 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: Peter Eastman <peastman@stanford.edu>
* 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
* 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
* 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'
* 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