namespace seams::domain¶
Overview¶
namespace domain {
// typedefs
typedef molSys::PointCloud<molSys::Point<double>, double> Cloud;
// structs
struct RingSummary;
struct Share;
// global functions
RingSummary summarize(const std::vector<std::vector<int>>& ringList, int nAtoms, int maxDepth);
std::uint64_t hilbertKey(std::uint32_t x, std::uint32_t y, std::uint32_t z, int bits);
Share decompose(const Cloud& cloud, int rank, int nRanks, double halo);
Cloud subCloud(const Cloud& cloud, const std::vector<int>& atoms);
std::vector<std::vector<int>> rings(const Cloud& cloud, double cutoff, int maxDepth, int rank, int nRanks);
} // namespace domain
Detailed Documentation¶
Global Functions¶
RingSummary summarize(const std::vector<std::vector<int>>& ringList, int nAtoms, int maxDepth)
The summary of ringList over a frame of nAtoms atoms.
std::uint64_t hilbertKey(std::uint32_t x, std::uint32_t y, std::uint32_t z, int bits)
Position of cell (x, y, z) along the Hilbert curve over a 2^bits grid.
The atoms rank rank of nRanks owns, and every atom within halo of one of them. Without a periodic box rank 0 owns every atom.
The listed atoms of cloud, in that order, in the same box.
std::vector<std::vector<int>> rings(const Cloud& cloud, double cutoff, int maxDepth, int rank, int nRanks)
Primitive rings of the cutoff graph up to maxDepth members whose lowest-indexed member rank rank owns, by frame index, as primitive::ringNetwork lists them for the graph with ascending rows. Each rank needs only its share, and the ranks’ rings partition the frame’s.