1""" 2.. _tut_lj: 3 4Train a Lennard-Jones potential 5=============================== 6 7In this tutorial, we train a Lennard-Jones potential that is build in KLIFF (i.e. not 8models archived on OpenKIM_). From a user's perspective, a KLIFF built-in model is not 9different from a KIM model. 10 11Compare this with :ref:`tut_kim_sw`. 12 13.. _OpenKIM: https://openkim.org 14""" 15from kliff.calculators import Calculator 16from kliff.dataset import Dataset 17from kliff.loss import Loss 18from kliff.models import LennardJones 19from kliff.utils import download_dataset 20 21# training set 22dataset_path = download_dataset(dataset_name="Si_training_set_4_configs") 23tset = Dataset(dataset_path) 24configs = tset.get_configs() 25 26# calculator 27model = LennardJones() 28model.echo_model_params() 29 30# fitting parameters 31model.set_opt_params(sigma=[["default"]], epsilon=[["default"]]) 32model.echo_opt_params() 33 34calc = Calculator(model) 35calc.create(configs) 36 37# loss 38loss = Loss(calc, nprocs=1) 39result = loss.minimize(method="L-BFGS-B", options={"disp": True, "maxiter": 10}) 40 41 42# print optimized parameters 43model.echo_opt_params() 44model.save("kliff_model.yaml") 45