Train a Lennard-Jones potential#

In this tutorial, we train a Lennard-Jones potential that is build in KLIFF (i.e. not models archived on OpenKIM). From a user’s perspective, a KLIFF built-in model is not different from a KIM model.

Compare this with Train a Stillinger-Weber potential.

Out:

2022-04-28 11:07:49.718 | INFO     | kliff.dataset.dataset:_read:397 - 4 configurations read from /Users/mjwen/Applications/kliff/examples/Si_training_set_4_configs
#================================================================================
# Available parameters to optimize.
# Parameters in `original` space.
# Model: LJ6-12
#================================================================================

name: epsilon
value: [1.]
size: 1

name: sigma
value: [2.]
size: 1

name: cutoff
value: [5.]
size: 1


#================================================================================
# Model parameters that are optimized.
# Note that the parameters are in the transformed space if
# `params_transform` is provided when instantiating the model.
#================================================================================

sigma 1
  2.0000000000000000e+00

epsilon 1
  1.0000000000000000e+00


2022-04-28 11:07:49.726 | INFO     | kliff.calculators.calculator:create:107 - Create calculator for 4 configurations.
2022-04-28 11:07:49.726 | INFO     | kliff.loss:minimize:290 - Start minimization using method: L-BFGS-B.
2022-04-28 11:07:49.727 | INFO     | kliff.loss:_scipy_optimize:404 - Running in serial mode.
2022-04-28 11:07:53.172 | INFO     | kliff.loss:minimize:292 - Finish minimization using method: L-BFGS-B.
#================================================================================
# Model parameters that are optimized.
# Note that the parameters are in the transformed space if
# `params_transform` is provided when instantiating the model.
#================================================================================

sigma 1
  2.0629043239028659e+00

epsilon 1
  1.5614870430532530e+00

from kliff.calculators import Calculator
from kliff.dataset import Dataset
from kliff.loss import Loss
from kliff.models import LennardJones
from kliff.utils import download_dataset

# training set
dataset_path = download_dataset(dataset_name="Si_training_set_4_configs")
tset = Dataset(dataset_path)
configs = tset.get_configs()

# calculator
model = LennardJones()
model.echo_model_params()

# fitting parameters
model.set_opt_params(sigma=[["default"]], epsilon=[["default"]])
model.echo_opt_params()

calc = Calculator(model)
calc.create(configs)

# loss
loss = Loss(calc, nprocs=1)
result = loss.minimize(method="L-BFGS-B", options={"disp": True, "maxiter": 10})


# print optimized parameters
model.echo_opt_params()
model.save("kliff_model.yaml")

Total running time of the script: ( 0 minutes 5.538 seconds)

Gallery generated by Sphinx-Gallery