Bond Model liggghts

Submitted by bprasad on Thu, 11/10/2016 - 10:40

Hallo Liggghts experts,

i am trying to simulate Nanoindentation and for such kind of simulation i need to use bond model. As i m very new in this field, i m facing lot of difficulty to start with scratch. I was wondering if any one can provide me an example script of bond model. That will be a great help for me.

Thanks for your support.

Thanking You
Braj

VBaric | Mon, 11/14/2016 - 16:29

Hi Braj,
would you give some more information on what kind of bond you need? There are several implemented like a capillary bond. A stiff bond which can represent e.g. sinter necks is not implemented in LIGGGHTS-PUBLIC. But you can use this one: https://github.com/richti83/LIGGGHTS-WITH-BONDS. For this you would have to either use this liggghts version (3.3) and compile it from that source or you have to copy the relevant files into you src/ folder (from src/bondspackage) and recompile it.

But as long as you don't know what kind of bonds you need it does not make sense to refer to any examples.

Regards
VBaric

bprasad | Mon, 11/21/2016 - 15:31

Hallo VBaric,

thanks for your valuable reply. Actually i want to build a constant bond between particles, which is breakable after certain amount of load. In other words i can say that i want to create an elastic bond between two rigid particles which is breakable once a certain amount of load is reached. I do not know whether this information is sufficient to explain what i am looking for or not. I was trying to write a script from scratch but it is difficult for me as i am very new to this particle simulation world.

I am using the LIGGGHTS_PUBLIC ( version 3.5) and also installed the package "MOLECULE", so that i can build the bond between particles.

Thanking you for your help.

Regards
Braj

VBaric | Tue, 11/29/2016 - 11:13

Hi Braj,
in that case there is a model which you can use that should suite you purpose:
https://github.com/richti83/LIGGGHTS-WITH-BONDS

Here you can use the file in the /src/bondspackage/ folder and copy them to your /src/ folder to use it in LIGGGHTS 3.5. Maybe you will have to make some adjustments, since some keywords have changed, but that should be minor ones. In /examples you find the necessary entries in your input script.
It does what you need, since it is based on "Potyondy and Cundall 2004, A bonded-particle model for rock" but you will probably have to read the source code to understand what you have to do.
FYI: I am having some trouble with the bond model in my case (compression of porous particle layers) which I couldn't fix yet, but a colleague has been using it without issues.

apple | Wed, 04/12/2017 - 14:03

Your rely is very valuable. I have installed LIGGGHTS 3.3. according to your link. Now I'm puzzled about several sentences in the bond example. For example, the first row in "in.bonds" is
" atom_style hybrid granular bond/gran n_bondtypes 1 bonds_per_atom 6"
but I don't know the meaning of " n_bondtypes 1 bonds_per_atom 6" , and there is no related explanation in the help doc.
Could you give me the illustration detailed?

mschramm | Wed, 04/12/2017 - 20:47

The reason there is no information on the doc is because this is a user made contribution. I have experience using this model because I am trying to implement a velocity based dampening force. To break down the command

atom_style --> declare what type of atoms you would like to use.
hybrid --> declare that you would like to use multiple atom styles
granular --> keep track of atoms position, velocity, angular velocity ...
bond/gran --> user made contribution that provides stiff bonds between atoms
n_bondtypes --> how many different types of bonds would you like to use in the system (bonds with different properties)
1 --> You would like to use one bond type
bonds_per_atom --> How many bonds would you like each atom to have at maximum
6 --> allow up to 6 bonds to each atom

bprasad | Thu, 04/13/2017 - 13:32

the link https://github.com/richti83/LIGGGHTS-WITH-BONDS have helped me a lot and the paper "Potyondy and Cundall 2004, A bonded-particle model for rock" have also helped me to understand the bonding mechanism.

Taking in.bond input file as an example i have build a rectangular area filled with particles, which are bonded parallel with each other. My problem is : When i start the simulation, then the particle enter in the simulation box with gravitational acceleration and hit the wall and some bonds break.

As my primary target is to do the simulation of nanoindentation , i want my particles to be boned but do not move until unless i bring an indenter which press the particle distribution for a particular time period.

is it possible to get the bonded particle distribution in the simulation with zero velocity?? If yes then can you please help me out how can i get this.

mschramm | Thu, 04/13/2017 - 16:54

What are your values that you are using in the bond_coeff's command?
If you are looking for granular behavior Kn == {Young's Modulus}/{Bond_Length} and Kt == {G}/{Bond_Length} where G == {Young's Modulus}/(2*(1+{Poison's Ratio})).

As for having bonds break early, you can try using a higher break tolerance (Last 2 values of the command bond_coeff 1 rd Kn Kt 1 1e10 1e10). If this does not work you can turn off breakage in the bond_gran.cpp file (I don't recommend this...)

As for inserting the particles, you can do what you are currently doing but use walls to better confine your particles to the shape you would like them to be bonded as. Spawn in the particles and let them come to rest BEFORE applying bonds to them. Then remove the confining walls and run the rest of the simulation.

Or do exactly what your are doing currently but change your gravity constant to a lower number.