Implement alternate and recommended way to set properties of abstract base class

See: https://github.com/lammps/lammps/security/code-scanning/476
This commit is contained in:
Axel Kohlmeyer
2022-09-26 21:01:22 -04:00
parent 7238a29cb7
commit 3e9dca3017
2 changed files with 9 additions and 11 deletions

View File

@ -4,12 +4,13 @@ import pickle
class MLIAPUnified(ABC): class MLIAPUnified(ABC):
"""Abstract base class for MLIAPUnified.""" """Abstract base class for MLIAPUnified."""
def __init__(self): def __init__(self, interface = None, element_types = None,
self.interface = None ndescriptors = None, nparams = None, rcutfac = None):
self.element_types = None self.interface = interface
self.ndescriptors = None self.element_types = element_types
self.nparams = None self.ndescriptors = ndescriptors
self.rcutfac = None self.nparams = nparams
self.rcutfac = rcutfac
@abstractmethod @abstractmethod
def compute_gradients(self, data): def compute_gradients(self, data):

View File

@ -6,16 +6,13 @@ class MLIAPUnifiedLJ(MLIAPUnified):
"""Test implementation for MLIAPUnified.""" """Test implementation for MLIAPUnified."""
def __init__(self, element_types, epsilon=1.0, sigma=1.0, rcutfac=1.25): def __init__(self, element_types, epsilon=1.0, sigma=1.0, rcutfac=1.25):
super().__init__() # ARGS: interface, element_types, ndescriptors, nparams, rcutfac
self.element_types = element_types super().__init__(None, element_types, 1, 3, rcutfac)
self.ndescriptors = 1
self.nparams = 3
# Mimicking the LJ pair-style: # Mimicking the LJ pair-style:
# pair_style lj/cut 2.5 # pair_style lj/cut 2.5
# pair_coeff * * 1 1 # pair_coeff * * 1 1
self.epsilon = epsilon self.epsilon = epsilon
self.sigma = sigma self.sigma = sigma
self.rcutfac = rcutfac
def compute_gradients(self, data): def compute_gradients(self, data):
"""Test compute_gradients.""" """Test compute_gradients."""