diff --git a/hoomd/md/pair/pair.py b/hoomd/md/pair/pair.py index 3ee54f11ee..90ab1a1d2c 100644 --- a/hoomd/md/pair/pair.py +++ b/hoomd/md/pair/pair.py @@ -12,7 +12,7 @@ from hoomd.data.parameterdicts import ParameterDict, TypeParameterDict from hoomd.data.typeparam import TypeParameter import numpy as np -from hoomd.data.typeconverter import OnlyFrom, nonnegative_real +from hoomd.data.typeconverter import OnlyFrom, nonnegative_real, positive_real class Pair(force.Force): @@ -257,7 +257,7 @@ class Gaussian(Pair): * ``epsilon`` (`float`, **required**) - energy parameter :math:`\varepsilon` :math:`[\mathrm{energy}]` - * ``sigma`` (`float`, **required**) - particle size :math:`\sigma` + * ``sigma`` (`float`, **required**) - particle size :math:`\sigma > 0` :math:`[\mathrm{length}]` Type: `TypeParameter` [`tuple` [``particle_type``, ``particle_type``], @@ -275,7 +275,7 @@ def __init__(self, nlist, default_r_cut=None, default_r_on=0., mode='none'): super().__init__(nlist, default_r_cut, default_r_on, mode) params = TypeParameter( 'params', 'particle_types', - TypeParameterDict(epsilon=float, sigma=float, len_keys=2)) + TypeParameterDict(epsilon=float, sigma=positive_real, len_keys=2)) self._add_typeparam(params) @@ -311,7 +311,7 @@ class ExpandedGaussian(Pair): * ``epsilon`` (`float`, **required**) - energy parameter :math:`\varepsilon` :math:`[\mathrm{energy}]` * ``sigma`` (`float`, **required**) - particle size - :math:`\sigma` :math:`[\mathrm{length}]` + :math:`\sigma > 0` :math:`[\mathrm{length}]` * ``delta`` (`float`, **required**) - shift distance :math:`\delta` :math:`[\mathrm{length}]` @@ -331,7 +331,7 @@ def __init__(self, nlist, default_r_cut=None, default_r_on=0., mode='none'): params = TypeParameter( 'params', 'particle_types', TypeParameterDict(epsilon=float, - sigma=float, + sigma=positive_real, delta=float, len_keys=2)) self._add_typeparam(params) @@ -1844,7 +1844,7 @@ class LJGauss(Pair): * ``epsilon`` (`float`, **required**) - energy parameter :math:`\varepsilon` :math:`[\mathrm{energy}]` * ``sigma`` (`float`, **required**) - - Gaussian width :math:`\sigma` :math:`[\mathrm{length}]` + Gaussian width :math:`\sigma > 0` :math:`[\mathrm{length}]` * ``r0`` (`float`, **required**) - Gaussian center :math:`r_0` :math:`[\mathrm{length}]` @@ -1868,5 +1868,8 @@ def __init__(self, super().__init__(nlist, default_r_cut, default_r_on, mode) params = TypeParameter( 'params', 'particle_types', - TypeParameterDict(epsilon=float, sigma=float, r0=float, len_keys=2)) + TypeParameterDict(epsilon=float, + sigma=positive_real, + r0=float, + len_keys=2)) self._add_typeparam(params) diff --git a/hoomd/md/pytest/test_potential.py b/hoomd/md/pytest/test_potential.py index 83b0871dea..a710d09b5c 100644 --- a/hoomd/md/pytest/test_potential.py +++ b/hoomd/md/pytest/test_potential.py @@ -182,6 +182,7 @@ def _invalid_params(): gauss_valid_dict = {'sigma': 0.05, 'epsilon': 0.05} gauss_invalid_dicts = _make_invalid_param_dict(gauss_valid_dict) + gauss_invalid_dicts.append({'sigma': 0, 'epsilon': 0.05}) invalid_params_list.extend( _make_invalid_params(gauss_invalid_dicts, md.pair.Gaussian, {})) @@ -192,6 +193,11 @@ def _invalid_params(): } expanded_gaussian_invalid_dicts = _make_invalid_param_dict( expanded_gaussian_valid_dict) + expanded_gaussian_invalid_dicts.append({ + 'sigma': 0, + 'epsilon': 0.05, + 'delta': 0.1 + }) invalid_params_list.extend( _make_invalid_params(expanded_gaussian_invalid_dicts, md.pair.ExpandedGaussian, {})) @@ -316,6 +322,7 @@ def _invalid_params(): ljgauss_valid_dict = {'r0': 1.8, 'epsilon': 2.0, 'sigma': 0.02} ljgauss_invalid_dicts = _make_invalid_param_dict(ljgauss_valid_dict) + ljgauss_invalid_dicts.append({'r0': 1.8, 'epsilon': 0.2, 'sigma': 0}) invalid_params_list.extend( _make_invalid_params(ljgauss_invalid_dicts, hoomd.md.pair.LJGauss, {})) table_valid_dict = { diff --git a/sphinx-doc/credits.rst b/sphinx-doc/credits.rst index b9ea0a621d..a95b0d3baa 100644 --- a/sphinx-doc/credits.rst +++ b/sphinx-doc/credits.rst @@ -65,6 +65,7 @@ The following people have contributed to HOOMD-blue: * Jenny Fothergill, Boise State University * Jens Glaser, Oak Ridge National Laboratory * Joseph Berleant, University of Michigan +* Joseph Burkhart, University of Michigan * Joshua A. Anderson, University of Michigan * Kelly Wang, University of Michigan * Kevin Daly, Princeton University