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 InhomogeneityDescriptor
{
public:
InhomogeneityDescriptor() {}
InhomogeneityDescriptor(XMLTag&, std::istream&);

void write_xml(oxstream&) const;

bool inhomogeneous_vertices() const;
bool inhomogeneous_sites() const;
bool inhomogeneous_edges() const;
bool inhomogeneous_bonds() const;
bool inhomogeneous() 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 InhomogeneityDescriptor class

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

return true if the lattice has inhomogeneous sites (vertices).

  bool inhomogeneous_bonds() const;
bool inhomogeneous_edges() const;

return true if the lattice has inhomogeneous bons (edges) disorder.

  bool inhomogeneous() const;

returns true if the lattice has either inhomogeneous sites or bonds.

  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 inhomogeneous, 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 inhomogeneities.

  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 inhomogeneous, 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 inhomogeneities.

  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 an inhomogeneous 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 an ihomogeneous lattice where each edge bond) is distinct.

copyright (c) 1994-2010 by Matthias Troyer

Distributed under the Boost Software License, Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt)