namespace prism3

Overview

namespace prism3 {
 
// global functions
 
int findBulkPrisms(const std::vector<std::vector<int>>& rings, std::vector<ring::strucType>& ringType, const std::vector<std::vector<int>>& nList, molSys::PointCloud<molSys::Point<double>, double>& yCloud, std::vector<double>& rmsdPerAtom, double heightCutoff = 8);
bool basalPrismConditions(const std::vector<std::vector<int>>& nList, std::vector<int>& basal1, std::vector<int>& basal2);
bool relaxedPrismConditions(const std::vector<std::vector<int>>& nList, std::vector<int>& basal1, std::vector<int>& basal2);
bool basalRingsSeparation(molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, double heightCutoff = 8);
 
} // namespace prism3

Detailed Documentation

Global Functions

int findBulkPrisms(const std::vector<std::vector<int>>& rings, std::vector<ring::strucType>& ringType, const std::vector<std::vector<int>>& nList, molSys::PointCloud<molSys::Point<double>, double>& yCloud, std::vector<double>& rmsdPerAtom, double heightCutoff = 8)

Find out which rings are prisms.

bool basalPrismConditions(const std::vector<std::vector<int>>& nList, std::vector<int>& basal1, std::vector<int>& basal2)

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

bool relaxedPrismConditions(const std::vector<std::vector<int>>& nList, std::vector<int>& basal1, std::vector<int>& basal2)

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

bool basalRingsSeparation(molSys::PointCloud<molSys::Point<double>, double>& yCloud, const std::vector<int>& basal1, const std::vector<int>& basal2, double heightCutoff = 8)

Check to see that candidate basal prisms are not really far from each other.