Compiled registrations#

Every name on dseams.core is documented on src/include/internal/lua_api.hpp. Doxygen reads that file; Sphinx includes the XML through Breathe. This page is not a hand list.

The public require("dseams") helpers are in require(“dseams”). Fennel call shape is in Call dseams from Fennel.

Cloud readLammpsTrjO(std::string filename, int targetFrame, int typeO, sol::optional<bool> isSlice, sol::optional<std::array<double, 3>> low, sol::optional<std::array<double, 3>> high)#

One LAMMPS dump frame, one atom type.

Cloud readLammpsTrjreduced(std::string filename, int targetFrame, int typeI, sol::optional<bool> isSlice, sol::optional<std::array<double, 3>> low, sol::optional<std::array<double, 3>> high)#

One LAMMPS dump frame, dropping atoms outside the slice when asked.

Cloud readXYZ(const std::string &filename)#

XYZ coordinates, whole file.

Cloud readChemfiles(std::string filename, int targetFrame, sol::optional<int> typeFilter)#

One chemfiles frame.

typeFilter -1 keeps every type.

Cloud readCon(std::string filename, int targetFrame)#

One readcon .con frame.

int writeDump(const Cloud &yCloud, std::string path, std::string outFile)#

Write a LAMMPS dump.

int writeHistogram(const Cloud &yCloud, const std::vector<std::vector<int>> &nList, const std::vector<double> &avgQ6)#

Write cij / q6 / q3 columns.

std::vector<std::vector<int>> neighListO(double rcutoff, const Cloud &yCloud, int typeI)#

Distance-cutoff neighbour list, one type, by atom ID.

std::vector<std::vector<int>> getNewNeighbourListByIndex(const Cloud &yCloud, double cutoff)#

Index-ordered neighbour list built from the cloud.

std::vector<std::vector<int>> neighbourListByIndex(const Cloud &yCloud, std::vector<std::vector<int>> nList)#

Convert an ID-ordered list to cloud indices.

std::vector<std::vector<int>> kNearestNeighbourList(const Cloud &yCloud, int k, double candidateCutoff, int typeI, sol::optional<bool> mutual)#

Periodic k-nearest graph.

mutual defaults to true (intersection). false is the union graph.

std::tuple<double, double> shellSeparation(const Cloud &yCloud, int k, int typeI)#

{max d_k, min d_{k+1}}.

The cutoff graph equals the k-nearest graph when max d_k <= rcut <= min d_{k+1}.

std::vector<std::vector<int>> getHbondNetwork(std::string filename, Cloud &yCloud, std::vector<std::vector<int>> nList, int targetFrame, int Htype, sol::optional<double> dist, sol::optional<double> angle)#

Hydrogen-bond network.

Defaults 2.42 A and 30 deg.

std::vector<std::vector<int>> getHbondNetworkFromClouds(Cloud &yCloud, Cloud &hCloud, std::vector<std::vector<int>> nList, sol::optional<double> dist, sol::optional<double> angle)#

Hydrogen-bond network from an oxygen cloud and a hydrogen cloud.

std::vector<std::vector<int>> ringNetwork(std::vector<std::vector<int>> nList, int maxDepth)#

Primitive rings, hop-bounded.

sol::table cageAffiliation(sol::this_state ts, std::vector<std::vector<int>> rings, std::vector<std::vector<int>> nList)#

Claim-free HC/DDC flags on six-rings.

Returns {hc, ddc}.

sol::table seededCageAffiliation(sol::this_state ts, std::vector<std::vector<int>> strictRings, std::vector<std::vector<int>> strictNList, std::vector<std::vector<int>> permRings, std::vector<std::vector<int>> permNList)#

Mutual seeds, union completion.

Returns {hc, ddc}.

void classifyBonds(Cloud &yCloud, std::vector<std::vector<int>> nList, const sol::object &ruleSpec, sol::optional<bool> isSlice)#

Classify bonds with a named rule or a {staggeredMax, eclipsedMin, eclipsedMax, coordinationNumber} table.

void registerBondClassifier(std::string name, const sol::table &t)#

Register a named bond-classification rule.

std::vector<std::string> bondClassifierNames()#

Names of registered bond-classification rules.

void getCorrelPlus(Cloud &yCloud, std::vector<std::vector<int>> nList, sol::optional<bool> isSlice, sol::optional<int> coordinationNumber)#

CHILL+ c_ij.

std::vector<std::string> getIceTypePlus(Cloud &yCloud, std::vector<std::vector<int>> nList, std::string path, int firstFrame, sol::optional<bool> isSlice, sol::optional<std::string> outputFileName)#

CHILL+ ice types, write a file, return state names.

std::vector<std::string> getIceTypePlusNoPrint(Cloud &yCloud, std::vector<std::vector<int>> nList, sol::optional<bool> isSlice)#

CHILL+ ice types, no file.

void getCorrel(Cloud &yCloud, std::vector<std::vector<int>> nList, sol::optional<bool> isSlice, sol::optional<int> coordinationNumber)#

CHILL c_ij.

std::vector<std::string> getIceType(Cloud &yCloud, std::vector<std::vector<int>> nList, std::string path, int firstFrame, sol::optional<bool> isSlice, sol::optional<std::string> outputFileName)#

CHILL ice types, write a file, return state names.

std::vector<std::string> getIceTypeNoPrint(Cloud &yCloud, std::vector<std::vector<int>> nList, sol::optional<bool> isSlice)#

CHILL ice types, no file.

sol::table steinhardtQl(sol::this_state ts, const Cloud &yCloud, std::vector<std::vector<int>> nList, int orderL)#

{ql, qlBar} from a neighbour list.

sol::table steinhardtQlVoronoi(sol::this_state ts, const Cloud &yCloud, double candidateCutoff, int orderL)#

{ql, qlBar} from a Voronoi neighbour list.

sol::table voronoiFacetWeights(sol::this_state ts, const Cloud &yCloud, double candidateCutoff)#

Per-atom {neighbours, weights, certified}.

sol::table classifyTemplates(sol::this_state ts, const Cloud &cloud, std::vector<std::vector<int>> nList, int kNeigh)#

Overlay each neighbour shell onto FCC, HCP, BCC, SC.

std::vector<double> soapSpectrum(const Cloud &yCloud, int iatom, std::vector<std::vector<int>> nList, int nMax, int lMax, double rcut)#

Bartok SOAP of one particle.

std::vector<std::vector<double>> soapSpectrumAll(const Cloud &yCloud, std::vector<std::vector<int>> nList, int nMax, int lMax, double rcut)#

SOAP of every particle.

std::vector<std::vector<double>> voronoiFeatures(const Cloud &yCloud, double candidateCutoff)#

Per-atom {q4, q6, q8} from one Voronoi pass.

int ringAnalysis(std::string path, std::vector<std::vector<int>> rings, std::vector<std::vector<int>> nList, Cloud &yCloud, int maxDepth, double sheetArea, int firstFrame)#

Quasi-2D polygon-ring analysis.

Writes under path.

int calcRDF(std::string path, std::vector<double> &rdfValues, const Cloud &yCloud, double cutoff, double binwidth, int firstFrame, int finalFrame)#

Quasi-2D RDF, same species.

Accumulates into rdfValues.

int prismAnalysis(std::string path, const std::vector<std::vector<int>> &rings, const std::vector<std::vector<int>> &nList, Cloud &cloud, int maxDepth, int atomID, int firstFrame, int currentFrame, bool doShapeMatching)#

Quasi-1D prism analysis.

atomID is the first-frame ID.

int clusterAnalysis(std::string path, Cloud &iceCloud, Cloud &yCloud, const std::vector<std::vector<int>> &nList, std::vector<std::vector<int>> &iceNeighbourList, double cutoff, int firstFrame, std::string bopAnalysis)#

Largest ice cluster into iceCloud.

bopAnalysis is "q6" or "chill".

int recenterCluster(Cloud &iceCloud, const std::vector<std::vector<int>> &nList)#

Recenter the largest-cluster cloud.

Cloud getPointCloudAtomsOfOneAtomType(Cloud &yCloud, Cloud &outCloud, int atomTypeI, bool isSlice, std::array<double, 3> coordLow, std::array<double, 3> coordHigh)#

Copy one atom type into outCloud.

void selectInSingleSlice(Cloud &yCloud, bool clearPreviousSliceSelection, std::array<double, 3> coordLow, std::array<double, 3> coordHigh)#

Mark molecules whose atoms fall in a single AABB slice.

void selectEdgeAtomsInRingsWithinSlice(const std::vector<std::vector<int>> &rings, Cloud &oCloud, Cloud &yCloud, std::array<double, 3> coordLow, std::array<double, 3> coordHigh, bool identicalCloud)#

Rings that touch the slice keep every member.

void selectAtomsInSliceWithRingEdgeAtoms(std::string path, const std::vector<std::vector<int>> &rings, Cloud &oCloud, Cloud &yCloud, std::array<double, 3> coordLow, std::array<double, 3> coordHigh, bool identicalCloud)#

Same selection, then write molecule IDs and a LAMMPS data file.

int bulkRingNumberAnalysis(std::string path, const std::vector<std::vector<int>> &rings, const std::vector<std::vector<int>> &nList, Cloud &yCloud, int maxDepth, int firstFrame)#

Bulk ring-number histogram, every size up to maxDepth.

int bulkTopologicalNetworkCriterion(std::string path, const std::vector<std::vector<int>> &rings, const std::vector<std::vector<int>> &nList, Cloud &yCloud, int firstFrame, bool onlyTetrahedral)#

Bulk DDC/HC topological network criterion.

int bulkTopoUnitMatching(std::string path, std::vector<std::vector<int>> rings, std::vector<std::vector<int>> nList, Cloud &yCloud, int firstFrame, bool printClusters, bool onlyTetrahedral, sol::optional<std::string> templatePath)#

Topological unit matching.

templatePath defaults to "templates".

void registerIO(sol::state_view lua, sol::table m)#

PointCloud usertype, trajectory readers and the file writers

void registerNeighbours(sol::state_view lua, sol::table m)#

Neighbour list construction, by atom ID and by cloud index.

void registerRings(sol::state_view lua, sol::table m)#

Primitive ring enumeration and the RingUpdater usertype.

void registerOrder(sol::state_view lua, sol::table m)#

CHILL, CHILL+, Steinhardt and Voronoi-weighted order parameters.

void registerDescriptors(sol::state_view lua, sol::table m)#

Template overlay, SOAP and Voronoi structure descriptors.

void registerTopology(sol::state_view lua, sol::table m)#

Topological network criteria, clustering and selection analyses.

void registerAll(sol::state_view lua, sol::table m)#

Every registration group above, into table m.