Generate a super-cell comprising of unit-cells with different molecules

Greeting everybody,

I have the coordinates of the unit-cell for a particular type of gas hydrate. I can create a super-cell in lammps using the command below:

replicate nx ny nz keyword

But this will create a box that contains nx*ny*nz number of identical unit-cells. However, I would like to have a super-cell in which some of the unit-cells have different numbers of guest molecules or have a different type of guest molecule in it. Is there any way to do this easily in LAMMPS?

Note: In gas hydrates, host molecules create cage-like structures that trap guest molecules in them. See below:


Thanks @akohlmey . I was thinking the other way to do this is to use the command read_data data.water add append, but this would be a hard task yet possible. Am I correct?

I don’t understand what you are suggesting here and how this is connected to your original question. Furthermore, I don’t know you, so how should I be able to tell you what is easy to difficult for you.

I you want to create structures like in the image you are showing, I would not even bother with trying to build this with LAMMPS. LAMMPS is not really a builder tool for complex structures. This kind of complex geometries most certainly require some custom programming. How to do that and what kind of information is required in them, strongly depends on the force field and the kind of modeling you want to do. So there is no way that I can give you some specific advice.

1 Like

I meant creating nx*ny*nz number of different unit-cells, each having its own molecular topology. Then use read add append shift to append those unit-cells and create a super-cell.

You are not making sense by asking about this. Either you try it out and get it to work the way you want or you don’t. There is nothing to gain from your side in asking others whether it “would work” because only you will know whether this will be satisfactory for you. Whatever you have mentioned so far was either completely impossible to do, or described so vaguely that it is not possible to give a meaningful suggestion. I have explained this now for the second time. I will not do it a third.