Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Typing abstraction #9

Merged
merged 44 commits into from
Jun 9, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8332c40
Add Potential class
mattwthompson May 12, 2020
f691154
Update Potential class
mattwthompson May 13, 2020
b6bfc77
Make barebones system class
mattwthompson May 15, 2020
414453e
Merge branch 'master' into potential-1
mattwthompson May 18, 2020
c88302a
Merge branch 'master' into potential-1
mattwthompson May 18, 2020
f70fb5e
Update conda env
mattwthompson May 18, 2020
9cee3db
Update test structure
mattwthompson May 21, 2020
e9acbb6
Make separate classes for parametrized and un-parametrized potentials
mattwthompson May 21, 2020
09554cd
Store expressions as strings
mattwthompson May 21, 2020
b875977
Validate parameters with sympy and update tests
mattwthompson May 21, 2020
9c8ae08
Let independent_variables be a string
mattwthompson May 21, 2020
2531561
Copy evaluator simtk->pint function from evaluator
mattwthompson May 21, 2020
c92003e
Merge branch 'potential-1' into system-1
mattwthompson May 22, 2020
157b366
Add some templates for a class API
mattwthompson May 27, 2020
4cf3013
Merge remote-tracking branch 'origin/potential-1' into system-1
mattwthompson May 27, 2020
480e3d5
Add some basic classes
mattwthompson May 27, 2020
e575f28
Add a prototype with example
mattwthompson May 29, 2020
4b3fcee
Merge branch 'master' into system-1
mattwthompson May 29, 2020
30667ea
More clearly distinguish between toolkit and system objects and add t…
mattwthompson May 29, 2020
1ed5b1e
Add toolkit dependency
mattwthompson May 29, 2020
a12b9ff
Test constructing directly from toolkit objects
mattwthompson May 29, 2020
69c9260
Don't assume toolkit >0.7.0
mattwthompson Jun 1, 2020
d45af88
Directly use toolit atom
mattwthompson Jun 1, 2020
cd7f2f2
Add SMIRKS attribute
mattwthompson Jun 2, 2020
78710aa
Move System ForceField to PotentialCollection
mattwthompson Jun 2, 2020
b31fce0
Merge branch 'master' into potential-1
mattwthompson Jun 2, 2020
4af5cda
Switch to directly using toolkit topology
mattwthompson Jun 4, 2020
f38542d
Update gitignore
mattwthompson Jun 4, 2020
9a9148d
Rebrand System.forcefield to System.potential_collection
mattwthompson Jun 4, 2020
1732ce4
Start typing module
mattwthompson Jun 4, 2020
3ebf3bf
Remove un-used NumPy dependency
mattwthompson Jun 4, 2020
a33279c
Remove classes that mimic toolkit objects
mattwthompson Jun 4, 2020
e1dfa4a
Move SMIRNOFF-specific things into its own submodule, subclassing thi…
mattwthompson Jun 4, 2020
c8ae196
Astract ForceField into ParameterCollection
mattwthompson Jun 5, 2020
fce9b9a
Lint, fix imports
mattwthompson Jun 5, 2020
d027ed8
Rename and move around functions, fix tests
mattwthompson Jun 5, 2020
ed5d91f
Add SMIRNOFF example
mattwthompson Jun 5, 2020
3befc4b
Use the right notebook
mattwthompson Jun 5, 2020
58b6f2d
Merge branch 'potential-1' into typing-abstraction
mattwthompson Jun 5, 2020
90f2717
Add bond parameter parsing and update examples
mattwthompson Jun 5, 2020
1387fa4
Merge branch 'master' into typing-abstraction
mattwthompson Jun 5, 2020
b64c696
Initialize dicts to empty dicts, not None
mattwthompson Jun 5, 2020
e96a2c9
Assorted fixes
mattwthompson Jun 5, 2020
555ef46
Add ethanol example showing off loading Parsely and inspecting bond p…
mattwthompson Jun 5, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Lint, fix imports
  • Loading branch information
mattwthompson committed Jun 5, 2020
commit fce9b9a02c16b264fc04497f1434014040612d2b
1 change: 0 additions & 1 deletion system/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
"""

# Add imports here
from .system import *

# Handle versioneer
from ._version import get_versions
Expand Down
2 changes: 1 addition & 1 deletion system/system.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Union, Iterable, List, Dict
from typing import Union, Iterable, Dict

from pydantic import BaseModel, validator
import pint
Expand Down
1 change: 1 addition & 0 deletions system/tests/test_potential.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

u = pint.UnitRegistry()


class TestPotential(BaseTest):
def test_analytical_potential_constructor(self):
pot = AnalyticalPotential(
Expand Down
5 changes: 3 additions & 2 deletions system/tests/test_system.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import pytest
import pint

from system import System, PotentialHandler, PotentialCollection, Topology, handler_conversion
from system import System, PotentialHandler, PotentialCollection, handler_conversion
from system.tests.base_test import BaseTest


u = pint.UnitRegistry()


class TestPotentialHandler(BaseTest):
def test_handler_conversion(self, argon_ff):
collection = handler_conversion(
Expand All @@ -21,6 +21,7 @@ def test_handler_conversion(self, argon_ff):

assert collection['vdW']['[#18:1]'].parameters['sigma'] == 0.3 * u.nm


class TestSystem(BaseTest):
def test_constructor(self, argon_ff, argon_top):
"""Test the basic constructor"""
Expand Down
6 changes: 4 additions & 2 deletions system/tests/test_utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import pytest
import sympy
from simtk import unit as simtk_unit
import pint

Expand All @@ -8,6 +7,7 @@

u = pint.UnitRegistry()


def test_simtk_to_pint():
"""Test conversion from SimTK Quantity to pint Quantity."""
simtk_quantity = 10.0 * simtk_unit.nanometer
Expand All @@ -16,11 +16,13 @@ def test_simtk_to_pint():

assert pint_quantity == 10.0 * u.nanometer


def test_pint_to_simtk():
"""Test conversion from pint Quantity to SimTK Quantity."""
with pytest.raises(NotImplementedError):
pint_to_simtk(None)


@pytest.mark.parametrize(
'expr1,expr2,result',
[
Expand All @@ -31,4 +33,4 @@ def test_pint_to_simtk():
]
)
def test_compare_sympy_expr(expr1, expr2, result):
compare_sympy_expr(expr1, expr2) == result
assert compare_sympy_expr(expr1, expr2) == result
2 changes: 2 additions & 0 deletions system/typing/smirnoff.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,12 @@ def handler_conversion(forcefield, potential_collection, handler_name):

return potential_collection


class SMIRNOFFPotentialHandler(PotentialHandler):

pass


class SMIRNOFFCollection(PotentialCollection):

@classmethod
Expand Down
1 change: 1 addition & 0 deletions system/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def compare_sympy_expr(expr1, expr2):

return sympy.simplify(expr1 - expr2) == 0


def get_test_file_path(test_file):
dir_path = resource_filename('system', 'tests/files/')
test_file_path = pathlib.Path(dir_path).joinpath(test_file)
Expand Down