Minimum site distance?

Hi Axel,

I am doing a surface science study of CO on Co(0001); trying to construct a lattice gas model. In general I have no problems with ATAT (now that I got it running! Thanks for your help on that again!) when I restrict the adsorption site of CO to a single type of site (one site in the lat.in defined unit cell). However, to get a more thorough and accurate model, I really need to allow for every site to be potentially occupied (there are six per unit cell). This leads to two problems: (1) the saturation coverage (in alloy parlance, 100% concentration of species CO) is 6 times what it should be, and (2) many, many structures have these sites occupied at the distance specified in the lat.in, which should not be allowed - really no two sites should be any closer to each other than the unit cell length specified in the lat.in. So my question/request would be to include a "minimum site-to-site distance" as an option. As it is, there are a number of structures that cannot possibly be optimized to a stable structure and I have to spend time babysitting the structure directories to ensure the disallowed structures don’t run.

For reference, here is my lat.in file:

2.4983499 2.4983499 21.0519008636 90 90 120
1 0 0
0 1 0
0 0 1
0.66665998100000 0.33334001900000 0.19165000300000 Co_T
0.00000000000000 0.00000000000000 0.09582000200000 Co_F
0.00000000000000 0.00000000000000 0.28747001300000 Co_T
0.00000000000000 0.00000000000000 0.36344774700000 Vac,CO_T
0.00000000000000 0.50000000000000 0.35344774700000 Vac,CO_T
0.50000000000000 0.00000000000000 0.35344774700000 Vac,CO_T
0.50000000000000 0.50000000000000 0.35344774700000 Vac,CO_T
0.33333333333330 0.66666666666660 0.34344774700000 Vac,CO_T
0.66666666666660 0.33333333333330 0.34344774700000 Vac,CO_T

If I only include one the the "Vac,CO_T" sites, there’s no problem, but I need the other sites to be possible.

For now, this isn’t keeping me from making the model, it just requires a lot of additional work on my part.

Thanks in advance.

Just an update to the problem I’m having.

While early into running this system it looked like I’d be able to use at least a decent percentage of the structures generated, it has quickly become clear that this is not the case. MAPS constructs mostly supercells with more than 1 site occupied per unit cell (this is the restriction, I’ve come to realize, that I’d really like to impose). I’m afraid I’m at a loss as to how to make this sort of system work. Hopefully it is something you can include in future version of the code. Until then, I’ll be doing this by hand.

Thanks, Axel!

Have you tried the -c0 -c1 options of maps or the crange.in file in mmaps?
It won’t rule out everything you want but it will reduce the number of structures useless to your calculation.

I have had to put this particular project on the back burner for a short period, but as soon as I get back to it, I will let you know how this works out for me.

Thanks a million!

Hi Axel,

I’m back on this problem. Can you explain exactly how to use the -c0 -c1 options you mentioned? Do I call maps as "maps -0.00 -0.33 " or "maps -c0 0.00 -c1 0.33" or something else?

Thanks in advance!

maps -c0=0.0 -c1=0.33

Hi Axel,

This has turned out to be better but overall insufficient, I’m afraid. We actually tried this with a H/Fe(110) system where H can occupy 3 mutually independent sites within the unit cell and while more structures of use were generated, an overly large number of useless ones were too.

I think we’re going to be at your mercy here. Until we have a means to restrict the number of occupied sites per unit cell, we are approaching the necessity of a "by hand" method. Computational time is being strained by the number of results we have to throw away.

To be clear, ATAT has been perfect for single site-containing systems, so thank you so much for that. If you find yourself with time to add this constraint, we would be forever grateful. If not, I completely understand.

Best wishes!

Oh wow! I walked away assuming it’d be years before you’d be able to implement anything!

Thank you so much for this; it’s actually pretty much perfect. I don’t mind sifting through results a little if we’ve eliminated the problem of wasting computer time, which this does. I think a hard-coded fix might be nice as well sometime in the far-flug future, but this largely solves our problem.

Again, thank you.

Ok, I’ve implemented something that may be useful. The test is outside of the maps command (because it allows more flexibility if users want to add their own criteria).
Download and install the "Beta version of the latest update", which should be version>=3.37.

You should then by able to run something like:

maps -2d -c0=0 -c1=0.17 &
pollmach -t "mindist -r=0.7 -e -s=str.out" runstruct_vasp &

read

pollmach -h
mindist 
mindist -h

for more info.
Sorry, if this just redoes some of the "manual" screening you were doing, but hopefully it’s helpful.
There will be a lot of useless directories created but you won’t waste time running vasp.