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

Kim model driver for analytical potential #102

Open
Rana-Phy opened this issue Jan 27, 2023 · 3 comments
Open

Kim model driver for analytical potential #102

Rana-Phy opened this issue Jan 27, 2023 · 3 comments

Comments

@Rana-Phy
Copy link

Dear developer,
I have a very basic question about fitting analytical potential e.g sw/bop. As a beginner I may not describing my question properly. I hope you will understand and answer.
There is a tutorial on Si sw. If I want to fit for SiC, what are the things I need to modify in existing kim model. Further If someone wish to develop an analytical potential for a new system from what will be starting point in Kliff.
Are there templates/scripts/command for set/modify initial inputs e.g atom types; before optimization by kliff.

Best regards
Rana

@mjwen
Copy link
Collaborator

mjwen commented Jan 27, 2023

Hi @Rana-Phy

Fitting multispecies SW would be very similar to fitting Si SW. Take the GaN potential here for example, what you need to do is

  1. in line 59 of the Si tutorial, change the model name to SW_BereSerra_2006_GaN__MO_861114678890_001
  2. in line 80 of the same tutorial, set the parameters you want to optimize (and provide the initial guesses). In the Si tutorial, the is one value (Si-Si interaction) for each potential parameter, but for GaN, there will be 3 (Ga-Ga, Ga-N, N-N interactions) for each potential parameter. The initial values can be obtained via model.echo_model_params() as in the tutorial. Alternatively, find it in the SW_GaN.params file on the GaN model page.

To develop a new analytical potential, if the functional form is not on openkim.org yet, there are two ways to do it.

  1. Code your model in KLIFF using Python (here is an example for Lennard-Jones) and use it as usual (here is an example to use the Lennard-Jones)
  2. Directly code your model as a KIM model, and use it in a way as in the Si tutorial

1 might be quicker and easier, which is good to test different functional forms. But if you want to take advantage of the kim-api to use the model in molecular simulation packages like LAMMPS, it should be a KIM model (i.e. you need to go through step 2). I'd suggest doing 1 first to get the final model and then transfer it as a KIM model.

@Rana-Phy
Copy link
Author

Dear Dr. @mjwen

Thanks for your reply. I hope I almost get it.
Is that mean for AB system, I need to write a *.params file with A-A, A-B, B-B interactions and CMakeLists.txt.
Then class KIMModel(Model) will import the initial parameters for fitting.

Best regards,
Rana

@mjwen
Copy link
Collaborator

mjwen commented Feb 7, 2023

For fitting an existing model for AB system, you do not need to explicitly interact with CMakeLists.txt and such.

Take the SW_BereSerra_2006_GaN__MO_861114678890_001 model as an example, when you do model.echo_model_params(), you will be able to see all parameters for A-A, A-B, and B-B interactions. And you just need to use model.set_opt_params(...) to select the parameters you want to optimize.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants