* 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
* 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
* 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>
* 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
* 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'
* 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
* fix formal charge reading and writing in pdb files; store formal charge in topology
* use formalCharge in public api
* permissive reading
* fix writing
* fix
* add test for formal charges
---------
Co-authored-by: Alex Izvorski <alex@genesistherapeutics.ai>
* Support GROMOS bond and angle types
* Support NBFIX with geometric combining rule
* Continuing GROMOS support
* Bug fixes
* Fixes to test case
* Update wrappers/python/openmm/app/gromacstopfile.py
Co-authored-by: Jason Swails <jason@entos.ai>
* Improve logic for handling dihedraltypes
---------
Co-authored-by: Jason Swails <jason@entos.ai>
* Add benchmarks from Amber20 benchmark suite to standard benchmark script
* Add ensemble option; don't change hydrogen mass in amber input files
* Download and extract .tar.gz using pure python code, no wget/tar dependencies
* Rename amber tests
* add opc and opc3 models
* update to match https://bioinformatics.cs.vt.edu/~izadi/OPC_Gromacs/opc.top
* opc box, converted from ambertools-22.0-py38h6177452_1/dat/leap/lib/opcbox.off
* change values to make serialized system match one created from prmtop as close as possible
* unit test for opc water
* opc - final values, match frcmod.opc; derivation in comments
* opc3 water - final values, shows derivation
* opc3box made from ambertools 22 dat/leap/lib/opc3box.off
* add opc3 water test
* add opc and opc3 to docs
* move tests to TestForceField.py
* move opc tests out of amoeba tests, oops
* move opcbox and opc3box pdb files
Co-authored-by: Alex Izvorski <alex@genesistherapeutics.ai>
* Adding support for new AMOEBA features
* Support modern method of specifying in-plane angles
* Implemented stretch-torsions
* Implemented angle-torsions
* More AMOEBA fixes
* Bug fix
* Converted AMOEBA 2018 force field
* Added documentation for AMOEBA 2018
* Added a missing file for tests
* nbthole
* Update charmmpsffile.py
* Update charmmpsffile.py
* Update charmmparameterset.py
fix multiple dihedral with the same periodicity and add a warning reminder for improper dihedral
* add test example for NBTHole
add system files of CYT-GUA-CYT DNA segment for testing NBThole
* Update TestCharmmFiles.py
- Test system is translated to the origin
- Energy is computed again after updating Gromacs input to reflect no-cutoff option (rcoulomb = rlist = rvdw = 0.0)