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
.conframe.
-
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/q3columns.
-
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.
mutualdefaults to true (intersection).falseis 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.
atomIDis 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.bopAnalysisis"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.
templatePathdefaults 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.