Skip to content

Conversation

@KuangYu
Copy link
Collaborator

@KuangYu KuangYu commented May 5, 2022

Merge devel to master:

  1. First draft for docs
  2. Add ADMP module
  3. Add Classical module
  4. Add sGNN module

Ericwang6 and others added 30 commits February 21, 2022 15:14
1. default thole width set to 5, in consistent with MPID
2. replace uscales (which was set to constant 1) with dscales
3. fix the argument order mistake in switch_val function, now
   when pscale=0, use thole1+thole2, otherwise use default thole width

Also, added new example (water_dimer) with fully polarizable water model
the fully polarizable water model will test intramolecular damping/exclusion
Intramolecular polarization damping bugs fixed in pme.py
feat(classical): create harmonic bond & angle generators
…holes into if pol:; api.py:396: remove U_ind from params, access it directly from pme_force
ADMP api improved, the params are now passing in correct way
1. A water model with both polarizable O and polarizable H, compare the
   results with MPID references (water_fullpol)
2. Training and testing examples for sGNN model
Add a complete example (water_fullpol), which tests the openmm api
with a full polarizable + c6/c8/c10 dispersion model, and compare
with MPID.
Fix bugs in TT damping function and add GNN intramolecular interaction module
1. Fixing bugs when lmax<2
2. Adding api interfaces for ethresh
3. Adding new examples in water_fullpol
KuangYu and others added 29 commits April 7, 2022 10:16
…urpose)

Otherwise covalent_map[pairs[:, 0], pairs[:, 1]] leads to error when jit
* fix(classical): fix import relationship

* Update

* feat(classical): make HarmonicBond and HarmonicAngle the same as GAFF

* feat(classical): Support torsion force

* fix(classical): use two attributes to save proper/improper dihedral separately

* fix(classical): Jax the parameters when creating forces

* fix(classical): fix a typo

* fix(classical): use ndarray to save indexes

* fix(classical): return sum of energies for torsion

* feat(classical): support 4th order for torsion

* feat(classical): Add UT for classical forcefields

* fix(classical): Update PDB structures needed by test cases

* fix(classical): Change atomtypes to be consistent with residues

* feat(classical): add reference energies for test cases

* fix(classical): decrease the decimal for energy comparision

* feat(classical): Use the same way of openmm for dihedral typification

* fix(classical): remove unused import

* fix(classical): add order for impropers

* fix(classical): use ndarray instead of list for index saving

* fix(classical): Add import element

* fix(classical): fix misusing between torsion.periodicity and torsion.phase

* fix(classical): misusing between periodicity and phase

* fix(classical): Correct bond connection in unit test pdb files

* Fix pdb files in unittest

* Update proper1.pdb

* feat(classical): update reference energy for improper test

* Update api.py

* feat(classical): Add wildcard testcase for improper

* set up LennardJones framework

* feat(classical): Add test case for multiple dihedrals in one molecule

* fix(classical): change the way of dihedral calculation

* start to write LJ potential

* feat(classical): Implement 12-6 potential without exclusion

* feat(classical): Add exclusion pairs for LJ force

* feat(classical): add simple test for LennardJonesForce

* fix(classical): fix imp of nbfix

* fix(classical): use more reasonable test case

* fix(classical): add reference energy

* draft for dev lj potential

* fix Zonly typo in api.py:332 which not consistent with line 475

* reduce PME force to point charge calculation

* get a preliminary result of point charge pme caclulation

* feat(classical): support loading charge from residue card and NonbondedForce card

* correct gradient of coul

* feat(classical): Add setting for force switching

* feat(classical): Add noPBC support on LJ potential

* review api.py code

* feat(classical): Use covalent map to generate exclusions

* feat(classical): Call LJ in API

* fix(classical): bug fix on misusing list and jnp.array

* fix(classical): correctly support NoCutoff

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* feat(classical): Support more Coulomb potentials (deepmodeling#9)

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* imporve colvalent_map support

* Update PME code (deepmodeling#8)

* get a preliminary result of point charge pme caclulation

* correct gradient of coul

* review api.py code

* feat(classical): Support more Coulomb potentials (deepmodeling#9)

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* imporve colvalent_map support

Co-authored-by: Roy Kid <lijichen365@126.com>

* feat(classical): add testcases for NoCutoff Coulomb potential and a large GAFF molecule

* feat(classical): Support differentiable 1-4 scale

* Devel (deepmodeling#9)

* feat(classical): Support differentiable mscale & add test cases (deepmodeling#10)

* Update PME code (deepmodeling#8)

* get a preliminary result of point charge pme caclulation

* correct gradient of coul

* review api.py code

* feat(classical): Support more Coulomb potentials (deepmodeling#9)

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* imporve colvalent_map support

Co-authored-by: Roy Kid <lijichen365@126.com>

* feat(classical): add testcases for NoCutoff Coulomb potential and a large GAFF molecule

* feat(classical): Support differentiable 1-4 scale

Co-authored-by: Roy Kid <lijichen365@126.com>

* formate code; add example XML section to parseElement docstring

Co-authored-by: Roy Kid <lijichen365@126.com>

* feat(classical): add more GAFF2 test cases.

* fix(classical): remove unnecessary lines

Co-authored-by: Roy-Kid <42854324+Roy-Kid@users.noreply.github.com>
Co-authored-by: Roy Kid <lijichen365@126.com>
…odeling#10)

* fix(classical): fix import relationship

* Update

* feat(classical): make HarmonicBond and HarmonicAngle the same as GAFF

* feat(classical): Support torsion force

* fix(classical): use two attributes to save proper/improper dihedral separately

* fix(classical): Jax the parameters when creating forces

* fix(classical): fix a typo

* fix(classical): use ndarray to save indexes

* fix(classical): return sum of energies for torsion

* feat(classical): support 4th order for torsion

* feat(classical): Add UT for classical forcefields

* fix(classical): Update PDB structures needed by test cases

* fix(classical): Change atomtypes to be consistent with residues

* feat(classical): add reference energies for test cases

* fix(classical): decrease the decimal for energy comparision

* feat(classical): Use the same way of openmm for dihedral typification

* fix(classical): remove unused import

* fix(classical): add order for impropers

* fix(classical): use ndarray instead of list for index saving

* fix(classical): Add import element

* fix(classical): fix misusing between torsion.periodicity and torsion.phase

* fix(classical): misusing between periodicity and phase

* fix(classical): Correct bond connection in unit test pdb files

* Fix pdb files in unittest

* Update proper1.pdb

* feat(classical): update reference energy for improper test

* Update api.py

* feat(classical): Add wildcard testcase for improper

* set up LennardJones framework

* feat(classical): Add test case for multiple dihedrals in one molecule

* fix(classical): change the way of dihedral calculation

* start to write LJ potential

* feat(classical): Implement 12-6 potential without exclusion

* feat(classical): Add exclusion pairs for LJ force

* feat(classical): add simple test for LennardJonesForce

* fix(classical): fix imp of nbfix

* fix(classical): use more reasonable test case

* fix(classical): add reference energy

* draft for dev lj potential

* fix Zonly typo in api.py:332 which not consistent with line 475

* reduce PME force to point charge calculation

* get a preliminary result of point charge pme caclulation

* feat(classical): support loading charge from residue card and NonbondedForce card

* correct gradient of coul

* feat(classical): Add setting for force switching

* feat(classical): Add noPBC support on LJ potential

* review api.py code

* feat(classical): Use covalent map to generate exclusions

* feat(classical): Call LJ in API

* fix(classical): bug fix on misusing list and jnp.array

* fix(classical): correctly support NoCutoff

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* feat(classical): Support more Coulomb potentials (deepmodeling#9)

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* imporve colvalent_map support

* Update PME code (deepmodeling#8)

* get a preliminary result of point charge pme caclulation

* correct gradient of coul

* review api.py code

* feat(classical): Support more Coulomb potentials (deepmodeling#9)

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* imporve colvalent_map support

Co-authored-by: Roy Kid <lijichen365@126.com>

* feat(classical): add testcases for NoCutoff Coulomb potential and a large GAFF molecule

* feat(classical): Support differentiable 1-4 scale

* Devel (deepmodeling#9)

* feat(classical): Support differentiable mscale & add test cases (deepmodeling#10)

* Update PME code (deepmodeling#8)

* get a preliminary result of point charge pme caclulation

* correct gradient of coul

* review api.py code

* feat(classical): Support more Coulomb potentials (deepmodeling#9)

* fix(classical): fix misusing variables

* feat(classical): add a testcase for two LJ molecules

* fix(classical): correct setting of LJ case

* feat(classical): add a testcase for large molecule (including 1-4) interactions

* feat(classical): Add support for reaction-field and no-cutoff in Coulomb potential

* imporve colvalent_map support

Co-authored-by: Roy Kid <lijichen365@126.com>

* feat(classical): add testcases for NoCutoff Coulomb potential and a large GAFF molecule

* feat(classical): Support differentiable 1-4 scale

Co-authored-by: Roy Kid <lijichen365@126.com>

* formate code; add example XML section to parseElement docstring

Co-authored-by: Roy Kid <lijichen365@126.com>

* feat(classical): add more GAFF2 test cases.

* fix(classical): remove unnecessary lines

Co-authored-by: Roy-Kid <42854324+Roy-Kid@users.noreply.github.com>
Co-authored-by: Roy Kid <lijichen365@126.com>

Co-authored-by: Roy-Kid <42854324+Roy-Kid@users.noreply.github.com>
Co-authored-by: Roy Kid <lijichen365@126.com>
feat(classical): implement nonbonded exclusions as pre-factor instead of counting them twice
Conflicts:
	dmff/api.py
	dmff/settings.py
Add new (short range) potentials and improve ADMPPmeForce by allowing external jit
Add convert_harm2cart in admp/multipole.py
README.md improved.
theory.md editted
Update docs with clean commit history
@KuangYu KuangYu merged commit df21c94 into deepmodeling:master May 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants