Anisotropy in liggghts with bonds

Submitted by tjleps on Thu, 11/15/2018 - 20:05

I've been simulating tensile tests of elastic materials to validate my model for some research I'm doing, however I'm finding that I get anisotropy in bond formation where I get layers that do not bond well, even with different seeds for bond formation and insert/pack random particle insertion.

My procedure is to insert the particles and form the bonds in a single processor simulation, then write the atom and bond data to a file and load the data into a multithreaded simulation. However the lamellar behavior of the bonded particles remains even if the processor boundaries are changed, so it does not appear to be an issue with that.

The test coupon is ~10X66 particles in cross section, so I would assume there are enough particles to maintain statistical uniformity in the bonds.

I've looked through the code for random particle insertion and can't find any biases there, and the bonds should be formed in order of nearest neighbors from what I can tell, so I can't think of a reason for there to be any biases in the bond formation.

Does anyone have any idea what may be going on here?

I've attached images of two identical simulations rotated about the y axis.

tarent_liu | Wed, 07/31/2019 - 13:48

I downloaded the package from https://github.com/richti83/LIGGGHTS-WITH-BONDS and copied it to the source file. When I compiled the package (type "make yes-bondspackage" in src), it said "bondspackage do not exist". Could you help me with that please? Could you tell me what correct steps are from downloding the package to running it successfully in 3.8? Thanks a lot !

tjleps | Fri, 11/30/2018 - 00:21

I've now quantified that the average bond angle from the positive Z axis in the positive Z hemisphere is ~1.15 radians and the average angle from the positive X axis in the positive X hemisphere is ~0.85 radians for both simulations. If the bonds were forming completely isotropically in every direction the average angle should be 1 radian. Does anyone know what may be causing this?

tjleps | Fri, 11/30/2018 - 23:30

I've run a new simulation where I let particles, inserted randomly into a cube, to settle under gravity before bonding them, to try to eliminate possible anisotropy in the particle insertion. I still get approximately the same difference in average bonding angles for the different directions. I can't find anywhere in the code where there should be a preference for one direction over another, and I'm pretty stumped here.

tjleps | Wed, 12/05/2018 - 00:07

This also is occurring in MSchramm's bonds framework. I think there may be an issue in how LIGGGHTS is finding nearest neighbors.

tjleps | Wed, 12/05/2018 - 17:11

I'm forming the bonds in serial. My process for running my simulations is to insert/pack a random packing and form the bonds on a single processor, then write the atom states and bond list to a data file to restart the simulation in parallel. I've run trials with 3-12 bonds per atom and still get the same behavior. The trials I attached in the initial post had 6 bonds per atom.

I just ran a simulation using a simple cubic lattice instead and got average bond angles of zero in all directions, which is what is expected geometrically, using the same matlab script.

tjleps | Wed, 12/05/2018 - 17:16

In the case of the cube of particles I allowed to settle, I inserted them on a single processor, restarted with multiple processors to allow them to settle, then restarted again on a single processor to form the bonds.

tjleps | Fri, 12/14/2018 - 21:27

I've now run simulations with BCC and FCC lattices with no problem in how the bonds are formed, or how I'm measuring the bonding direction preferences. I've ruled out many possible explanations and I'm concerned that there's something fundamentally failing with the neighboring process that is encouraging bonds in some directions preferentially to others. I cannot find any directional preference anywhere in the bonding process, and it persists even when random grains are allowed to settle under gravity before bonding, so I don't think there's a problem in the bonding or "insert/pack random" code. Does anybody have any further insight?