cyoda Documentation

cyoda Documentation#

This section of the documentation describes the bindings made with Pybind11. The internal module is called cyoda.

PydSEAMSlib bindings#

readXYZ(filename)

A function to populate a PointCloudDouble with data from a file

readLammpsTrjreduced(filename, targetFrame, ...)

A Function that reads in only atoms of the desired type and ignores all atoms which are not in the slice as well.

readLammpsTrjO(filename, targetFrame, typeO, ...)

A Function for reading oxygen atom in a specified frame

readLammpsTrj(filename, targetFrame, ...)

A Function for reading in a specified frame

readBonds(filename)

Reads bonds into a vector of vectors from a file with a specific format

atomInSlice(x, y, z, coordLow, coordHigh)

If this is 3 then the particle is inside the volume slice

clearNeighbourList(nList)

Erases memory for a vector of vectors for the neighbour list, Call this before creating the neighbour list for a new frame

getNewNeighbourListByIndex(yCloud, cutoff)

Gets a neighbour list by index, according to a pointCloud given as the input

halfNeighList(yCloud, rcutoff, typeI)

Inefficient O(n^2) implementation of neighbour lists

neighbourListByIndex(yCloud, nList)

Converts the neighbour list build with atom IDs into a neighbour list of atom indices, according to the pointCloud

neighList(yCloud, rcutoff, typeI, typeJ)

All these functions use atom IDs and not indices

neighListO(rcutoff, yCloud, typeI)

Inefficient O(n^2) implementation of neighbour lists

createBondsFromCages(rings, cageList, type, ...)

Creates a vector of vectors containing bond connectivity information from the rings vector of vectors and cage information

getHbondDistanceOH(oCloud, hCloud, ...)

Calculates the distance of the hydrogen bond between O and H (of different atoms)

populateHbonds(filename, yCloud, nList, ...)

Create a vector of vectors containing the hydrogen bond connectivity information.

populateHbondsWithInputClouds(yCloud, ...)

Create a vector of vectors (similar to the neighbour list conventions) containing the hydrogen bond connectivity information.

trimBonds(bonds)

Remove duplicate bonds

clearGraph(currentGraph)

Function for clearing vectors in Graph after multiple usage

countAllRingsFromIndex(neighHbondList, maxDepth)

Creates a vector of vectors of all possible rings

findRings(fullGraph, v, visited, maxDepth, ...)

Main function that searches for all rings

populateGraphFromIndices(nList)

Creates a graph object and fills it with the information from a neighbour list of INDICES NOT ATOM IDs created before

populateGraphFromNListID(yCloud, neighHbondList)

Creates a graph object and fills it with the information from a neighbour list and pointCloud created before

removeNonSPrings(fullGraph)

Removes the non-SP rings, using the Franzblau shortest path criterion

restoreEdgesFromIndices(fullGraph, nList)

Re-fills the neighbour lists of a graph object from a neighbour list of INDICES NOT ATOM IDs created before

ringNetwork(nList, maxDepth)

Returns a vector of vectors containing the rings

shortestPath(fullGraph, v, visited, ...)

Calculates the shortest path

assignPolygonType(rings, atomTypes, nRings)

Assign an atomType (equal to the number of nodes in the ring) given n-membered rings

assignPrismType(rings, listPrism, ringSize, ...)

Assign an atomType (equal to the number of nodes in the ring) given a vector with a list of indices of rings comprising the prisms

atomsFromCages(rings, cageList, clusterCages)

Gets the atoms in the cages of a given cluster

atomsInSingleSlice(yCloud, ...)

Given a pointCloud set the inSlice bool for every atom, if the atoms are inside the specified (single) region

averageRMSDatom(rmsdPerAtom, noOfCommonAtoms)

Average the RMSD per atom

basalPrismConditions(nList, basal1, basal2)

Tests whether two rings are basal rings (true) or not (false) for a prism (strict criterion)

buildRefDDC(fileName)

Build a reference Double-Diamond cage, reading in from a template XYZ file

buildRefHC(fileName)

Build a reference Hexagonal cage, reading in from a template XYZ file

clearRingList(rings)

Erases memory for a vector of vectors for a list of rings

clusterCages(yCloud, path, rings, cageList, ...)

Clustering Clusters cages using the Stillinger algorithm and prints out individual XYZ files of clusters.

commonElementsInThreeRings(ring1, ring2, ring3)

Common elements in 3 rings

compareRings(ring1, ring2)

Compares two disordered vectors and checks to see if they contain the same elements

deformedPrismTypes(atomState, atomTypes, ...)

Get the atom type values for deformed prisms

discardExtraTetragonBlocks(basal1, basal2, ...)

Checks whether two 4-membered rings are parallel in one dimension or not to prevent overcounting

findPrisms(rings, ringType, nPerfectPrisms, ...)

Find out which rings are prisms.

findsCommonElements(ring1, ring2)

Returns the common elements of two rings

findTripletInRing(ring, triplet)

Searches a particular ring for a triplet

getEdgeMoleculesInRings(rings, oCloud, ...)

Function that loops through the PointCloud used to construct the neighbour list (used to generate primitive rings) and sets the inSlice bool values of edge atoms which belong to rings that are formed by atoms in the slice.

getPointCloudOneAtomType(yCloud, outCloud, ...)

Given a pointCloud containing certain atom types, this returns a pointCloud containing atoms of only the desired type

getSingleRingSize(rings, ringSize)

Returns a vector of vectors of rings of a single size.

getSingleRingSize(rings, ringSize)

Returns a vector of vectors of rings of a single size.

hasCommonElements(ring1, ring2)

Returns a vector of vectors of rings of a single size.

moleculesInSingleSlice(yCloud, ...)

Given a pointCloud set the inSlice bool for every atom, if the atoms are inside the specified (single) region

polygonRingAnalysis(path, rings, nList, ...)

Find out which rings are prisms, looping through all ring sizes upto the maxDepth The input ringsAllSizes array has rings of every size

printSliceGetEdgeMoleculesInRings(path, ...)

Function that loops through the PointCloud used to construct the neighbour list (used to generate primitive rings) and sets the inSlice bool values of edge atoms which belong to rings that are formed by atoms in the slice.

prismAnalysis(path, rings, nList, yCloud, ...)

Find out which rings are prisms, looping through all ring sizes upto the maxDepth The input ringsAllSizes array has rings of every size

relaxedPrismConditions(nList, basal1, basal2)

Two candidate basal rings of a prism block should have at least one bond between them

rmAxialTranslations(yCloud, atomID, ...)

Shift the entire ice nanotube and remove axial translations

setAtomsWithSameMolID(yCloud, ...)

Function that loops through a given input PointCloud and sets the inSlice bool for every Point according to whether the molecule is in the specified (single) slice or not.

shapeMatchDDC(yCloud, refPoints, cageList, ...)

Shape-matching for a target DDC

shapeMatchHC(yCloud, refPoints, cageUnit, ...)

Shape-matching for a target HC

topoBulkCriteria(path, rings, nList, yCloud, ...)

Topological network methods Finds the HCs and DDCs for the system

topoUnitMatchingBulk(path, rings, nList, ...)

Topological unit matching for bulk water.

updateRMSDatom(rings, cageUnit, rmsd, ...)

Calulate the RMSD for each ring, using RMSD values (rmsd) obtained from the shape-matching of each cage

rdf2Danalysis_AA(path, rdfValues, yCloud, ...)

Calculates the in-plane RDF for quasi-two-dimensional water, when both the atoms are of the same type

bulkPolygonRingAnalysis(path, rings, nList, ...)

Find out rings in the bulk, looping through all ring sizes upto the maxDepth

clusterAnalysis(path, iceCloud, yCloud, ...)

Does the cluster analysis of ice particles in the system.

getCorrelPlus(yCloud, nList, isSlice)

Gets c_ij and then classifies bond types according to the CHILL+ algorithm.

getIceTypePlus(yCloud, nList, path, ...)

Classifies each atom according to the CHILL+ algorithm

writeDump(yCloud, path, outFile)

Generic function for writing out to a dump file.

getq6(yCloud, nList, isSlice)

q6 can distinguish between water and ice.

reclassifyWater(yCloud, q6)

Reclassifies atoms which may have been mis-classified as water using the averaged q6 and q3 parameters.

printIceType(yCloud, path, firstFrame, ...)

Prints out the iceType for a particular frame onto the terminal.

recenterClusterCloud(iceCloud, nList)

Recenters the largest ice cluster, by applying a transformation on the largest ice cluster coordinates.