Hi! I’m trying to simulate two initial states, one per simulation, and then combine them both in a third simulation where one simulation would go from (0,0,0) to (x,y,z) for example, and the other one would go from (0,0,z) to (x,y,z2), if that makes sense, as if placing one simulation box on top of the other one.
I’ve tried different combinations of the write/read data and write/read restart functions, but as the dump files have clearly shown, between the moment the atom mesh is created and the moment those files are written, the box varies in volume because of its thermostating, making what I want to do quite difficult.
The best solution I’ve found is to generate one box entirely, evaluate the [min,max] of its size and then using an appropriate fix deform on the second box to make it fit in the x and y boundaries (for the given example above), but even then, to make sure the vertical component of the box coincides with the first one without creating a big gap between the two boxes or straining it too much, keeping it from reaching equilibrium with its own thermostating, is quite difficult.
I’m guessing the cleanest way to do so would be to use a third party program or Python/C++ script that would ensure both boxes are in accordance with one another, generates a data file and then read by LAMMPS in the final simulation, but since that solution’s quite advanced, I wanted to ask if there was a way in LAMMPS I just hadn’t thought of in the first place!
I’ve also tried simply creating both boxes in the same simulation, segregating them in different regions and groups and thermostating both with different fixes (one has to have initially twice the temperature of the other one), but this resulted in both boxes reaching a somewhat intermediate temperature, which I figure is caused simply by the fact it would otherwise create an unphysical system because of the step in temperature through the mesh.
Thanks a lot for your input!
Have a good day,
Antoine.