Problem with kmcos tutorial

83 views
Skip to first unread message

Ghaem Hasanzadeh

unread,
Jan 31, 2023, 9:50:26 AM1/31/23
to kmcos-users
Dear KMCOS developers,

I hope you are doing great,

I am currently using KMCOS for doing kMC calculations for the growth of Ga2O3, but when I was using the tutorial (https://github.com/kmcos/intro2kmcos), for the solid-on-solid part, it seems that the script (SOSadsdes__build.py) generates the kmc_setting.py but it does not run kMC algorithm due to an error: 

 ERROR: interval_search_real can't find available process
 This usually means one of the following:
  - you forgot to define rate constants
  - you create a dead-lock: e.g. adsorption without corresponding desorption.
  - you started the model in an initial state without transitions

I suspect that one of the conditions does not allow adsorption, but I would be grateful if you could help me solve this problem.

Best wishes,
Qaem 

kmcos-users

unread,
Jan 31, 2023, 9:53:34 AM1/31/23
to kmcos-users
Are you saying that you got that error with growth.py, or something else?

You haven't actually provided enough information for us to know why you got the error, though it does sound like the error is not due to anything you did.

Ghaem Hasanzadeh

unread,
Jan 31, 2023, 11:20:30 AM1/31/23
to kmcos-users
If I just run the growth.py script in this folder, I get the following error which means some files are missing:

Error: No module named 'kmc_model'
    Could not find the kmc module. The kmc implements the actual
    kmc model. This can be created from a kmcos xml file using
    kmcos export <xml-file>
    Hint: are you in a directory containing a compiled kMC model?


so I need to run the SOSadsdes__build.py script again which provides the basic information about the processes and rates and then go to the created folder " SOS_adsdes_local_smart", and run "kmcos view", or growth.py. But this time I get the mentioned error:

 ERROR: interval_search_real can't find available process
 This usually means one of the following:
  - you forgot to define rate constants
  - you create a dead-lock: e.g. adsorption without corresponding desorption.
  - you started the model in an initial state without transitions


Actually, I am not changing anything just running the scripts. 

Thank you for your help,
Qaem

kmcos-users

unread,
Jan 31, 2023, 12:30:28 PM1/31/23
to kmcos-users
After additional insight from Ghaem and looking at the files, it looks like the example was not quite finished when it was added to the workshop materials. I have provided Qaem additional guidance, and we'll probably have the example updated after that.

**

It sounds like you should use the model.put command to put a bunch of a particular species at the bottom layer using a loop. See here:
https://kmcos.readthedocs.io/en/latest/tutorials/index.html#introduction

I’m surprised the growth.py does not do so:
https://github.com/kmcos/intro2kmcos/blob/master/solutions/SOSadsdes_local_smart/growth.py

So it sounds like you should use put command for bottom layer in growth.py.

When I look at this process:

<process enabled="True" name="Ads_sub" rate_constant="kads">

<condition coord_layer="default" coord_name="sc" coord_offset="0 0 0" species="empty"/>

<condition coord_layer="default" coord_name="sc" coord_offset="0 0 -1" species="sub"/>

<action coord_layer="default" coord_name="sc" coord_offset="0 0 0" species="Pt"/>


That process does require a “sub” species.  So I think the growth.py file needs to be changed to first put “sub” at the bottom of the cell.

Looking at the SOS files, it looks like “sub” is currently defined as a Pd atom. So it looks like that exercise is supposed to involve first putting a layer of sub species (which are Pd atoms) at the bottom.

So you should add a loop of “put” before the steps occur in growth.py, then when you get it working we can update in the repository.

it looks like Growth.py runs several separate model instances. So you’d have to add the put command below this line, so that the put occurs each time.

model = KMC_Model(banner=False,

size = size,

random_seed = random_seed)

I guess Juan didn’t really complete this example when he added it to intro2kmcos.  But now you can!

We should also explain the “put” command in the intro2kmcos word doc, in the section for this exercise.  It’s good to have the put command in intro2kmcos anyway.

***

Qaem plans to provide the updated materials once Qaem gets them working.
Reply all
Reply to author
Forward
0 new messages