An ice-type model is a lattice model defined on a lattice of coordination number 4. That is, each vertex of the lattice is connected by an edge to four "nearest neighbours". A state of the model consists of an arrow on each edge of the lattice, such that the number of arrows pointing inwards at each vertex is 2. This restriction on the arrow configurations is known as the ice rule. In graph theoretic terms, the states are Eulerian orientations of an underlying 4- regular undirected graph. The partition function also counts the number of nowhere-zero 3-flows.