I want to make a slab model of 19 Sb(111) bilayers on top of InAs(111)B-(1X1) substrate. I am able to get the slab but how can I get the exact number 19? Also, how can I put it on top of In As? What are the things I need to take into consideration while building it?
As far as I know, there is no straightforward way in pymatgen to force your slabs to have your exact desired number of layers. In my own workflow, I use a tool to resize slabs by removing layers after generating an initial slab using pymatgen. You should be careful with this approach though if you require certain terminations.
As for your second question; pymatgen has an
Interface class for some time now residing in
pymatgen.core.interface module. You can pass two slabs with matching lattice vectors to
Interface.from_slabs() to get the interface you want. If you don’t want to do the lattice matching yourself, you might want to take a look at
pymatgen.analysis.interfaces.coherent_interfaces module. There is a nice tutorial showing how to use it here.
Thank you so much for the reply. Did you use VESTA as the tool you mentioned? I will go through the link.