fix rigid combine two atoms

Submitted by quincy.suehr on Wed, 05/14/2014 - 22:58

I am a little bit new LIGGGHTS and am trying to create a simulation of multisphere rigid bodies rotating in a cyllinder. However, after researching I am still very confused as to how the fix rigid command works.

How does one combine particles into a group to be 'fixed rigidly'?

Any help in this matter would be greatly appreciated!

Thanks!
Quincy

Daniel Queteschiner | Thu, 05/15/2014 - 10:10

Well, there are 3 different ways you can specify rigid bodies: single, molecule and group.
For all of these options you have to create a separate data file that basically specifies the positions of the individual atoms and an ID indicating the rigid body they are part of (the exact format/parameters to specify depend on the atom_style and fix rigid style).
Once you have set up this data file, you can use the read_data command in your input script to load/create those atoms. Then use the fix rigid to actually create the rigid bodies.

A few hints regarding the different rigid style:
The 'single' rigid style allows for exactly one rigid body. It should be possible to use any atom_style for this rigid style (see the read_data documentation for details on the parameters you have to specify in the data file). Unless all atoms of your simulation are part of the rigid body, you have to use the group command to set up the group of atoms forming the rigid body. Reference that group in the fix rigid command.

The 'molecule' style allows for as many rigid bodies as you want. However, the atom_style that can be used must have a molecule-ID property. This will restrict you to one of angle, bond, full, line, molecular or tri. All atoms with the same molecule-ID will form a rigid body.

The 'group' style should work with any atom_style. You will have to use the group command in the input script to specify the group of atoms forming a rigid body (i.e. one group describes one rigid body). There is one major limitation here: there is a maximum of 31 groups (i.e. rigid bodies) you can specify in LIGGGHTS.

Furthermore, to prevent interaction between the individual atoms of a single rigid body, you may also have to use the neigh_modify command, e.g.
neigh_modify exclude molecule all
or
neigh_modify exclude group body1 body1

Hope this helps.

quincy.suehr | Fri, 05/16/2014 - 20:47

This has helped a lot to get me started (as soon as I got the read_data syntax correct)!

One last question, lets say I wanted something on the order of 1000 rigid bodies, but with a normal distribution of particle sizes. Is there some expediant way to place them such as particletemplate/sphere and particlediscretedistribution?

Is this the feature that the non-free version will support when it has been discussed?

Thanks!
Quincy

Riccardo Maione's picture

Riccardo Maione | Fri, 05/16/2014 - 21:43

What you can do is insert particle with a normal insert with the distribution you want selce the particle with the region command and after do a FIx rigid, for example with a run every command

Fix insert bla bla bla
Region

Run 1000 every 100 Group region FIx a all group Group

However it si all written in documentation

I hope this was of some help

Mohammad Manjiu... | Thu, 11/07/2019 - 00:21

Hi,

The replies were very helpful to me when I am trying to make walls of particle which should move together in the simulation. I am using two rigid bodies up and bottom and try to move them each other direction with applied force. But I am getting that after a certain time step my rigid bodies are rotating slightly, I want to stop rotating them and move linearly to each other direction. Thanks in advance

Riccardo Maione's picture

Riccardo Maione | Mon, 12/16/2019 - 15:07

Hello Mohammad,

sorry for the late response, but if still you are so unlucky that you still need some help, I can share with you some simulation files for shearing with walls made of particles, probably this will help you. you can write me a pm on the site.

best wishes,
Riccardo

Ali Tousi | Sat, 02/27/2021 - 19:07

Hello Riccardo,
I am trying to make a simple friction simulation for SiC.
I make the top and bottom layer of the box rigid separately, and try to move the top atom move linearly in a direction and apply force to the same rigid body to represent the normal pressure.
But there are to problems:
1) the rigid body seems to don't interact with the rest of the atoms (molecules) and move freely in the system
2) get the warning error that atoms are time integrated more than once.
(I might mention the langevin thermostat is used on very next layers to the rigid bodies and the rest of the system is on the nvt ensemble)
I would appreciate it if you could share your shear walls simulation so I might find some help there.
Many thanks,
Ali

Mohammad Manjiu... | Tue, 04/21/2020 - 06:33

Hi, Ricardo

It would be a great help if you can share that with me or give some hints on how to move linearly. Thanks

Riccardo Maione's picture

Riccardo Maione | Wed, 05/06/2020 - 16:55

Hello Mohammad,

i can't send you anything if you don't give me an address,

Regards,
Riccardo