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

Enhancement/md pair gaussian value check #1810

Merged
merged 11 commits into from
Jun 24, 2024
17 changes: 10 additions & 7 deletions hoomd/md/pair/pair.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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` > 0, **required**) - particle size :math:`\sigma`
:math:`[\mathrm{length}]`
joaander marked this conversation as resolved.
Show resolved Hide resolved

Type: `TypeParameter` [`tuple` [``particle_type``, ``particle_type``],
Expand All @@ -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)


Expand Down Expand Up @@ -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}]`

Expand All @@ -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)
Expand Down Expand Up @@ -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}]`

Expand All @@ -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)
7 changes: 7 additions & 0 deletions hoomd/md/pytest/test_potential.py
Original file line number Diff line number Diff line change
Expand Up @@ -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, {}))

Expand All @@ -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, {}))
Expand Down Expand Up @@ -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 = {
Expand Down
1 change: 1 addition & 0 deletions sphinx-doc/credits.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading