Forum Navigation
You need to log in to create posts and topics.

Updating the topology

Hello everyone!

 

My question regards the updating of the system's topology. I'm performing a tensile stress experiment on double network elastomers using LAMMPS, in which I'm looking at bond fracture specifically. I was wondering if and how it is possible to update the topology in Ovito as break occur. Whether this is automatic or manual.

I'm confined to the Basic version so I'd prefer any solutions be given for that, but should this be a Pro exclusive solution I'd still be interested in hearing it.

 

Thank you in advance,

 

Friso

Hi Friso,

OVITO can either load a static bond topology from a LAMMPS data file (or a series of data files, which would allow you to import a changing topology), or it can compute an ad-hoc bond topology based on the current atomic positions according to a distance-based criterion (Create Bonds modifier). Is that what you need? Or is the bond fracture rather something happening in LAMMPS as part of the MD model? I am thinking of fix bond/react, for example.

If so, please provide some more details. Perhaps we can extend OVITO's I/O capabilities to support loading time-varying bonding information that is dumped by LAMMPS during such a simulation.

-Alex

Quote from Alexander Stukowski on July 28, 2020, 2:46 pm

Hi Friso,

OVITO can either load a static bond topology from a LAMMPS data file (or a series of data files, which would allow you to import a changing topology), or it can compute an ad-hoc bond topology based on the current atomic positions according to a distance-based criterion (Create Bonds modifier). Is that what you need? Or is the bond fracture rather something happening in LAMMPS as part of the MD model? I am thinking of fix bond/react, for example.

If so, please provide some more details. Perhaps we can extend OVITO's I/O capabilities to support loading time-varying bonding information that is dumped by LAMMPS during such a simulation.

-Alex

Hi Alex,

Thank you for your quick response.

 

I am indeed using bond fracture as part of the MD model in LAMMPS, but rather than the bond/react, fix bond/break. The create bond modifier is not an option as the experiment relies on a set polymer network topology.

 

To provide more details on the MD simulations, I'm looking into the bond breaking effects within a double network elastomer during tensile stress based on the work of A. Bose.

Bose was able to generate LAMMPS data files which contain topology of these networks, which I've since adapted to replace certain bonds for a weaker variant. The LAMMPS simulation has the atom_style as bond of course, with a harmonic bond_style, and a Lennard-Jones interaction potential. The system in then put under tensile stress using the fix deform (erate) command, during which we output the bond breaking events and other relevant information. As I mentioned before, the bond breaking is performed using fix bond/break, at a specific distance (set to 1.7 in my case) , with a breaking probability of 1.

 

The specific reasons for wanting to update the topology in Ovito are mainly for visualisation. When visualising the simulation, not being able to update the topology can lead to issues with how bonds are displayed. I've attached a screenshot that shows this problem.

Furthermore, I've been looking into the forces on the bonds inside the system, and seeing how the forces are distributed. I calculate this based off the simple harmonic potential set in LAMMPS, using the modification Compute Property. These 'long' bonds that should be broken will of course lead to issues when visualising this, with the Color Coding modification and with the visuals period. I've attached another screenshot of this as well.

 

I hope I've cleared up all the information you've asked for, but if not please let me know, I'm happy to provide for information.

Thank you for your help.

 

Friso

Uploaded files:
  • You need to login to have access to uploads.

Thank you for providing some background info. I will work on extending OVITO to support the loading of dynamic bond topologies.

I am wondering how you would dump the current bond topology from LAMMPS. I assume you are already using the dump custom command to write out the atomic positions during the MD simulation. Would you additionally use a  dump local command to write out the bonding information? For example like this:

compute 1 all property/local btype batom1 batom2
dump 2 all local 1000 bonds.dump index c_1[*]

These commands produce a special type of dump file that OVITO currently cannot read (because it contains per-bond data and not per-atom data). My current idea is to add a new file reader to OVITO for this file format, which would allow users to import a bond list for each trajectory frame via OVITO's Load Trajectory modifier.

Thank you for the quick response again.

I am indeed already using the dump local command to output the current bond topology, and information on the length and force of bonds, as I'm using this for other things. The exact command I use it as follows:

dump 2 all local 10000 tmpBonds.dump c_bonds[1] c_bonds[2] c_prop[1] c_prop[2]

With c_bonds being defined as follows:

compute bonds all property/local batom1 batom2

So this outputs the current bond topology as a vector of the two particles IDs in every bond.

That is great to hear that you are thinking of adding this feature in the future. I guess I will have to be patient for now, but thank you for the great support. If you have any additional questions for me, please do let me know.

 

Friso

 

Dear Friso,

Let me follow up on your question. I spent the last few days extending OVITO's capabilities and added support for the LAMMPS "dump local" file format mentioned above. This should allow you to dump the changing bond topology from a reactive molecular dynamics simulations to an output file and load it into OVITO. Please see the added section on this doc page of the Load Trajectory modifier for further details.

You can download the current development builds of OVITO Pro here:

http://www.ovito.org/download/testing/ovito-pro-3.1.3-x86_64-devel3.2.tar.xz

http://www.ovito.org/download/testing/ovito-pro-3.1.3-win64-devel3.2.zip

http://www.ovito.org/download/testing/ovito-pro-3.1.3-macos-devel3.2.dmg

I'll try to provide dev builds of OVITO Basic later -- or you can request a trial license for Pro if you want to try out the new capability immediately.