Lattices¶
Lattices in MARQOV are user defined classes that expose a certain interface such that we can derive a Monte Carlo procedure from them. As all of MARQOV’s components, lattice have required parts and optional parts. there are two required functions of a lattice, those being
std::vector<int> Lattice::nbrs(const int alpha, const int i) const
which enables us to infer neighbour relations in your graph, since the returned vector should contain the indices of the neighbours of the site i. The second function is
std::size_t size() const
which gives us the information how many sites there are in your lattice.
Then there are a few optional functions, that, if present, enable additional functionality of MARQOV
std::vector<int> Lattice::crds(const int i) const
std::vector<int> Lattice::flexnbrs(const int alpha, const int i) const
void writelat(H5::Group& h5loc, const Lattice& l)