Stillinger-Weber¶
Use this empirical model directly via the Python API:
from graph_pes.models import StillingerWeber
model = StillingerWeber()
model.predict_energy(graph)
# or monatomic water
model = StillingerWeber.monatomic_water()
model.predict_energy(graph)
or within a graph-pes-train
configuration file to train a new model.
model:
+StillingerWeber:
sigma: 3
Definition¶
- class graph_pes.models.StillingerWeber(
- lambda_=21.0,
- epsilon=2.1682,
- sigma=2.0951,
- A=(7.049556277, False),
- B=(0.6022245584, False),
- a=(1.8, False),
- p=(4, False),
- q=(0, False),
- gamma=(1.2, False),
The Stillinger-Weber potential predicts the total energy as a sum over two-body and three-body interactions:
\[E = \epsilon \sum_i \sum_{j>i} \varphi_2(r_{ij}) + \zeta \epsilon \cdot \sum_i \sum_{j \ne i} \sum_{k>j} \varphi_3(r_{ij}, r_{ik}, \theta_{ijk})\]where:
\[\varphi_2(r) = A \left[ B \left( \frac{\sigma}{r} \right)^p - \left( \frac{\sigma}{r} \right)^q \right] \exp\left( \frac{\sigma}{r-a\sigma} \right)\]\[\varphi_3(r, s, \theta) = [\cos \theta - \cos \theta_0]^2 \exp\left( \frac{\gamma \sigma}{r - a\sigma} \right) \exp\left( \frac{\gamma \sigma}{s - a\sigma} \right)\]Default parameters are given for the original Stillinger-Weber potential, and hence are appropriate for modelling Si.
When a parameter expects a
tuple[float, bool]
, the first element is the value of the parameter and the second is a boolean indicating whether the parameter should be trainable.- Parameters:
- classmethod monatomic_water()[source]¶
The Stillinger-Weber potential for monatomic water with \(\epsilon = 0.268381\), \(\sigma = 2.3925\), and \(\lambda = 23.15\).
This potential expects as input a structure containing just the oxygen atoms.
- Return type: