That get scaled positions command is useful and helps a user figure out how to define their sites. I would certainly include that in an example.
On Saturday, February 11, 2023, Aditya "Ashi" Savara <
adityasa...@u.northwestern.edu> wrote:
> One thing to recognize is that you are looking at the representation. The sites for processes and their locations are defined by the user. If you define your sites and build a simple adsorption like with CO, you can then do one step and show and another step and show. Then you can see how the site definition works relative to that lattice. You can document what you wrote in this email and anything else you think a person should know, and the we can add it go intro2kmcos. It is on the roadmap to gather a bunch of examples of typical lattice structures.
>
> On Saturday, February 11, 2023 at 4:28:20 AM UTC+5:30 EricS wrote:
>>
>> Hi Aditya and kmcos community,
>>
>> Thanks for the guidance as I learn more about your software.
>> Looking over the two Pt111 files you linked above, I see that the kmc_model_lattice representation numbers for the cell and scaled_positions can, in certain cases, be obtained from helper functions available in ASE. These files use the fcc111 function from the ase package.
>> Apparently, we can build a 2D hexagonal lattice with a two atom unit cell with non-orthogonal unit cell vectors. Looking through the ASE docs, there is a helper function we can use the following:
>>
>> # numbers / atoms inserted for carbon but this can be modified, 6 angstroms of space is given in the c direction
>> from ase.lattice.hexagonal import GrapheneFactory
>> g = GrapheneFactory()
>> graphene = g('C', latticeconstant={'a':2.46, 'c':6})
>> >>> print(graphene)
>> Lattice(symbols='C2', pbc=True, cell=[[2.46, 0.0, 0.0], [-1.2299999999999995, 2.130422493309719, 0.0], [0.0, 0.0, 6.0]])
>> >>> print(graphene.cell)
>> Cell([[2.46, 0.0, 0.0], [-1.2299999999999995, 2.130422493309719, 0.0], [0.0, 0.0, 6.0]])
>> >>> print(graphene.get_scaled_positions())
>> [[0. 0. 0. ]
>> [0.33333333 0.66666667 0. ]]
>> In the plane that matters, the geometry is as follows with the first and second vectors in yellow and purple and the first and second scaled positions labeled as atoms 1 and 2:
>>
>> As far as I understand, this specifies the lattice. As far as I can reason, each unit cell would have 3 bridge site adsorbates in this cell at the midpoint of the three bonds that attach to atom "2".
>>
>> Best,
>> Eric
>> On Thursday, February 9, 2023 at 5:53:50 PM UTC-8 Aditya "Ashi" Savara wrote:
>>>
>>> Kmcos can handle a hexagonal lattice, because all 2D periodic lattices can be mapped onto tetragonal lattice. Since sites in kmcos can go "outside" of the rectangular box of the unit cell, it is possible to have the sites located in a parallelogram shape that doesn't match the rectangle of the unit cell. I don't know how the below particular example looks, or even it it works, but it is probably something worth looking at as a start.
>>>
https://github.com/kmcos/kmcos/blob/master/examples/Pt_111__build.py>>>
https://github.com/kmcos/kmcos/blob/master/examples/model_Pt111_surface__build.py>>> If you do make a hexagonal lattice example, it would be good to add it to our examples.
>>> If I am not mistaken the 2D simulations have periodic boundary conditions by default, but this can be turned off. The example at the first link seems to turn it off for the Z direction, though that is unnecessary for that example.
>>> I actually could not remember how to turn the periodic boundary conditions on and off. If you do end up testing with some diffusion model by trying turn it off in one direction (like x only and leave y on) and see that the syntax in the above example works, do let us know. Then we can add it to the documentation and perhaps even add an example related to pbc. I thought it was possible to turn it on and off after build/compilation, but the above example seems to suggest otherwise.
>>> Yes, a diffusion can be "blocked" by something being in the way by simply requiring the recipient site to be empty when defining the diffusion the process, which is the typical way of doing things and how the diffusion example is written.
>>> Note: I see that intro2kmcos says some different things... including Task 8 saying something more like what I remembered, that there is a way to have periodic boundary conditions (or not) by modifying the kmc_settings.py file. But I don't seem to see that done in the solutions folder. So it seems like that solution is not quite complete.
>>>
>>> On Thursday, February 9, 2023 at 8:20:31 PM UTC-5 EricS wrote:
>>>>
>>>> Hello Kmcos users,
>>>> I am in the process of studying the examples which may ultimately answer some of my questions but it might be more efficient to ask directly.
>>>> Can kmcos handle a hexagonal lattice?
>>>> Do all 2D simulations inherently have periodic boundary conditions in 2D?
>>>> I strongly assume this is possible but just to confirm: adding an immobile adsorbate to block / direct diffusion is possible, correct?
>>>> Best,
>>>> Eric
>
> You received this message because you are subscribed to a topic in the Google Groups "kmcos-users" group.
.
.
.