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.

Share decompose(const Cloud& cloud, int rank, int nRanks, double halo)

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.

Cloud subCloud(const Cloud& cloud, const std::vector<int>& atoms)

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.