I am symulating the fracture prosses of glassy epoxy network (T = 300K) using fix bond/react for bond disosiation. My system is initially small (so I can test my method) and consists of 36 DGEBA and 16 DETDA molecules. My system has been crosslinked with fix bond/react and has been properlly equilibrade and densified as described here.
The final equilibration prior deformation is 20ns in NPT with 1atm and 300K. I use LAMMPS version LAMMPS 23 Jun 2022 (I know is not the latest…) and my question/problem is the following. (I will attach also my .in files for reference)
After some bonds are broken my system developes drifting movement out of nowere. During deformation my system does not drift unlit the first bond is broken. Does anyone have any idea why this happens? Is this something like the “drifting ice cube” phenomenon? And is there a way to prevent it? Or maybe the developer of fix bond/react @jrgissing has noticed anything similar?
This tends to indicate that the momentum is not exactly balanced during bond breaking. Without more details it is quite hard to give more relevant insights on your issue. Looking at your input, I notice you are using the temp/rescale as is from the bond/react doc. Have you tried not using the temp/rescale thermostat on the reacting group? Or switching it to another one like langevin? This is where kinetic energy is dissipated in your simulation so that’s where I would look first.
However:
You can consider using the fix momentum command. Maybe you can find some combination with the group used by bond/react to solve your problem while waiting for further investigations.
Clearly not, or very far related. The flying ice-cube is an issue caused by wrong kinetic energy equipartition in molecular degrees of freedom because of some thermostat algorithm.
Hello dear Germain,
Thank you for the imediate response!
Ok let me see if I undertand corectly,
From the documentation of fix bond/react we have
Optionally, you can enforce additional behaviors on reacting atoms. For example, it may be beneficial to force reacting atoms to remain at a certain temperature. For this, you can use the internally-created dynamic group named “bond_react_MASTER_group”, which consists of all atoms currently involved in a reaction. For example, adding the following command would add an additional thermostat to the group of all currently-reacting atoms:
so, I used the temp/rescale command to thermostat the reaction group while the rest of the atoms are thermostated with the thermostat from NPT. I have tried to NOT used the temp/rescale but the drift remains. I will switch to lavengin thermostat to see if it works better. Afterwards I will use fix momentum as you suggested!
So I tried some things you syggested. First of all I wanted to see if the drifting exists in other reactions exept from bond breaking. So i tested a small crosslinking algorithm with fix bond/react. In fact the system drifts also as the bonds start to form. FIrst of all if you apply fix momentum to all atoms it fixes the problem (the simulation is very slow though) but if you apply fix momentum only to the reaction group the system drifts. I fixed that issue by applying a loop to the system every N timesteps that resets the velocities of all atoms with:
mor yes rot yes
The system do not druft also if you apply Langevin barostat in both the reacting and non reactive dynamic groups. I attach the files so you can have a look. in.crosslinking_velocyty (6.6 KB) in.crosslinking_langevin (7.2 KB)
This resolves the issue for the crosslinking that is not a productive simulation cause the only thing you need is the final crosslinked structure.
On the other hand when you deform a structure you can not have velocity reset every time a bond breaks and also if you deform in NPT you can not have langevin (am I write?) If you have any other suggestions let me know!