ALPS Project: lattice library
For the simulation of lattice models the graph concepts of the Boost Graph Library (BGL) provide a good
foundation. However, as discussed with the corresponding lattice schema at
http://xml.comp-phys.org/. We want
to be able to automatically create a "lattice" graph by translating a "unit
cell".
This library defines concepts, traits, generic functions and some concrete
classes to implement this idea. Lattices, Finite lattices, unit cells,
and graphs as presented for the lattice schema can
be created from an XML description, and a graph generated from them. The
generic concepts presented below make the library extensible.
The lattice library contains code for the automatic generation of a graph
from a lattice description.
The usual usage scenario will be to create a library
of lattices and graphs by reading an XML file. The library can then be asked
to create a graph, if one passes the graph name and optionally parameters.
We refer to the example for a self-explaining
usage example.
Download, Configuring, Building and Installing
are discussed here.
Documentation
Concepts
Headers
- General header
- lattice.h includes all headers of the lattice library.
- Traits classes
- Generic functions and template classes
- Classes
- lattice/boundary.h defines
classes describing boundary crossings on lattices with periodic boundary
conditions
- lattice/disorder.h defines
a class decsribing disorder on lattices and functions to apply the disorder
to a graph
- lattice/hypercubic.h defines
a template class hypercubic_lattice which makes a hypercubic
finite lattice with open or periodic boundary conditions from an infinite
lattice.
- lattice/latticelibrary.h
defines a class to hold a colection of graphs and lattices, read from XML,
and a factory to create graphs from this collection.
- lattice/graph_helper.h
defines a helper class to easily create graphs and useful helper functions
to access graph properties.
To build the examples go to the test/lattice
subdirectory of ALPS directory and type
make examples
The source code and of the examples is well documented
and self-explanatory.
To run the examples type
./example1 < example1.input
./example2 < example2.input
./example3 < example3.input
./example4
./parity < parity.input
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)