Author Topic: Adaptive CNA for 2D binary systems  (Read 1308 times)

ejp213

  • Newbie
  • *
  • Posts: 2
Adaptive CNA for 2D binary systems
« on: January 06, 2017, 07:32:30 PM »
I am currently using OVITO to perform CNA on some 2D binary systems.  I am following the example given here: https://www.ovito.org/manual/python/introduction/examples.html#example-compute-cna-bond-indices.

I have been using bond-based CNA, but I would like to use adaptive CNA to get better results with the systems I am working on.  However, I need access to the bond information to calculate the bond indices since my systems are 2D and the default structure types provided by OVITO are not suitable.  Is there any way to get to this information, or otherwise accomplish what I am trying to do – using CNA in adaptive mode?

Alexander Stukowski

  • Administrator
  • Hero Member
  • *****
  • Posts: 638
Re: Adaptive CNA for 2D binary systems
« Reply #1 on: January 08, 2017, 11:29:29 AM »
The adaptive mode of the CNA is currently only implemented for certain three-dimensional crystal structures like FCC and BCC. In principle, it would be possible to extend this approach to two-dimensional structures, but that would require modifying the C++ code of the CNA modifier. The point is that the adaptive mode, which is responsible for picking the optimal neighbor cutoff for each atom, always requires some a priori knowledge on the specific structure to search for. It is not a general method that is independent of the structure you are trying to identify.

But maybe it is possible to stick to the conventional bond-based CNA mode and instead change the way bonds are created. This could improve the identification of the crystalline 2D structure your are looking for in a similar manner as the adaptive CNA mode.

For example, writing a custom PythonScriptModifier, which can be used in place of a CreateBondsModifier, might be an idea. Instead of creating bonds up to a certain cutoff radius, the custom modifier could create exactly N bonds on each atom using the NearestNeighborFinder class.

ejp213

  • Newbie
  • *
  • Posts: 2
Re: Adaptive CNA for 2D binary systems
« Reply #2 on: January 09, 2017, 04:23:45 PM »
Thank you.  I was thinking of generating the bonds manually but wanted to see if there was a better way.  Unfortunately with my systems I believe it will be somewhat more complicated than choosing a fixed number of nearest neighbors, although the NearestNeighborFinder may still be useful.