Common Neighbor Analysis (Honeycutt and Andersen, J. Phys. Chem. 91, 4950) is a popular tool for structural analysis. This would be a useful feature for some kinds of topological neighborhood analysis. Implementations exist in OVITO and asap3.
I propose the creation of a freud.network.Network class that would allow for the creation of a network from a NeighborQuery (development in progress) or NeighborList object, and a corresponding class freud.network.CommonNeighborAnalysis that uses the Network class to compute CNA fingerprints for particles.
I think the Network class should wrap a networkx graph, storing particle positions as node properties and neighbor distances as edge properties. This would greatly accelerate user-specified analysis outside of freud.
I chose networkx because it is pure Python and easy to install. The graph_tool library (https://graph-tool.skewed.de/) is much faster than networkx but is very difficult to install. In this case, I think a pure-Python approach would be warranted for compatibility with such a common tool.
Common Neighbor Analysis (Honeycutt and Andersen, J. Phys. Chem. 91, 4950) is a popular tool for structural analysis. This would be a useful feature for some kinds of topological neighborhood analysis. Implementations exist in OVITO and asap3.
I propose the creation of a
freud.network.Network
class that would allow for the creation of a network from aNeighborQuery
(development in progress) orNeighborList
object, and a corresponding classfreud.network.CommonNeighborAnalysis
that uses theNetwork
class to compute CNA fingerprints for particles.I think the
Network
class should wrap anetworkx
graph, storing particle positions as node properties and neighbor distances as edge properties. This would greatly accelerate user-specified analysis outside offreud
.I chose
networkx
because it is pure Python and easy to install. Thegraph_tool
library (https://graph-tool.skewed.de/) is much faster thannetworkx
but is very difficult to install. In this case, I think a pure-Python approach would be warranted for compatibility with such a common tool.