ALPS Project: lattice library

Header file: lattice/disorder.h

defines a class to store disorder information for a lattice and containing member functions to apply the disorder to a graph.

Synopsis

namespace alps {

class DisorderDescriptor
{
public:
DisorderDescriptor() {}
DisorderDescriptor(XMLTag&, std::istream&);

void write_xml(oxstream&) const;

bool disordered_vertices() const;
bool disordered_sites() const;
bool disordered_edges() const;
bool disordered_bonds() const;
bool disordered() const;

template <class G, class M> void disorder_vertices(G& g, M& m) const;
template <class G, class M> void disorder_sites(G& g, M& m) const;
template <class G> void disorder_vertices(G& g) const;
template <class G> void disorder_sites(G& g) const;

template <class G, class M> void disorder_edges(G& g, M& m) const;
template <class G, class M> void disorder_bonds(G& g, M& m) const;
template <class G> void disorder_edges(G& g) const;
template <class G> void disorder_bonds(G& g) const;
};


template <class G, class MAP> void disorder_vertices(G& g, MAP& m);
template <class G, class MAP> void disorder_sites(G& g, MAP& m)
template <class G, class MAP> void disorder_edges(G& g, MAP& m);
template <class G, class MAP> void disorder_bonds(G& g, MAP& m)

}

The DisorderDescriptor class

DisorderDescriptor() {}
is the default constructor, not creating any disorder
DisorderDescriptor(XMLTag&, std::istream&);
reads the XML elements <DISORDER> and <CHANGED> of the lattice XML schema.
void write_xml(oxstream&) const;
writes the disorder description in XML format.
  bool disordered_sites() const;
bool disordered_vertices() const;

return true if the lattice has site (vertex) disorder.

  bool disordered_bonds() const;
bool disordered_edges() const;

return true if the lattice has bond (edge) disorder.

  bool disordered() const;

returns true if the lattice has either site or bond disorder.

  template <class G, class M> void disorder_vertices(G& g, M& m) const;
template <class G, class M> void disorder_sites(G& g, M& m) const;

If sites (vertices) are disordered, they are given new unique types, stored in the property map passed. At the moment only disordering of all vertices is implemented, although the XML schema allows for more specific disorder.

  template <class G> void disorder_vertices(G& g) const;
template <class G> void disorder_sites(G& g) const;

is the same as above but stores the vertex (site) types in the property map with tag vertex_type_t (same as site_type_t).

  template <class G, class M> void disorder_edges(G& g, M& m) const;
template <class G, class M> void disorder_bonds(G& g, M& m) const;

If bonds (edges) are disordered, they are given new unique types, stored in the property map passed. At the moment only disordering of all edges is implemented, although the XML schema allows for more specific disorder.

  template <class G> void disorder_edges(G& g) const;
template <class G> void disorder_bonds(G& g) const;

is the same as above but stores the edge bond) types in the property map with tag edge_type_t (same as bond_type_t).

Free disordering functions

template <class G, class MAP> void disorder_vertices(G& g, MAP& M);
template <class G, class MAP> void disorder_sites(G& g, MAP& M);
These functions take a graph g and a vertex property map m and assigns a unique integer identifier to each vertex (site), effectively "disordering" the vertices and obtaining a disordered lattice where each vertex (site) is distinct.
template <class G, class MAP> void disorder_edges(G& g, MAP& M);
template <class G, class MAP> void disorder_bonds(G& g, MAP& M);
These functions take a graph g and an edge property map m and assigns a unique integer identifier to each edge bond), effectively "disordering" the edges and obtaining a disordered lattice where each edge bond) is distinct.

copyright (c) 2000-2004 by Matthias Troyer