Looking at Friends and Neighbors: A Node’s Point-of-View (2-D Cluster Variation Method)

Looking at Friends and Neighbors: A Node’s Point-of-View (2-D Cluster Variation Method)

Looking around from a Node’s Point-of-View:

 

As we move from procedural code to object-oriented Python for a Cluster Variation Method (CVM) grid, our perspective shifts. We now need to look at the world from a node’s point-of-view.

It’s a lot like updating one’s relationship status in Facebook – except that after updating our own (node) status, we need to not only update the values for all of our own configuration variables, but then we need to travel around the circle of our nearest- and next-nearest-neighbors, and help them update their status as well.

This blog post will walk us through the first step in this process. We don’t have code this week; instead we’re identifying how the various configuration variables show up in a 2-D CVM grid. This will tell us how we need to prepare the grid for our object-oriented programming (OOP) approach.

 
Italian-renaissance-border-2-thin

 

Refreshing Ourselves on the Basics

 

Let’s refresh our memory by looking at a very small 1-D CVM grid, as shown in the previous post and in several historical posts on the 1-D CVM system. (See links at the end of this post.)

Figure 1: Micro-system for the 1-D Cluster Variation Method ensemble (single zigzag chain) with equilibrium-values for the configuration values z(i), where the interaction enthalpy is set to zero.

We recall the following key points as we look at Figure 1:

  • The minimal size for a CVM grid (1-D or 2-D) must allow for at least one each of the different configuration variables; this includes the eight different z(i) triplet configuration variables, as z(2) and z(5) each have degeneracy; they look different when read left-to-right vs. right-to-left, so both versions of each need to be included,
  • A 1-D CVM grid (as shown in the above figure) is composed of two rows, forming a single zig-zag chain.

Here’s another important thing: In all my experimental designs and all graphical depictions (both 1-D and 2-D), the grids have wrap-arounds. For the 1-D CVM (a single zig-zag chain), the wrap-around is simply in the horizontal dimension. It’s like taking a ribbon and connecting the ends (without twisting; no Mobius strip!). For the 2-D CVM grid, it’s like making an envelope; the horizontal edges connect and the vertical edges connect.

This means that we don’t lose nearest-neighbor (y), next-nearest neighbor (w), or triplet (z) connections at the edge of the grid; to see the connection, we just find the ‘continuation’ at the grid’s corresponding far edge or corner.

The wrap-around connections are shown visually in all the figures (at least, all that I’ve produced to date), so that you can visually trace all the configuration variables.

 
Italian-renaissance-border-2-thin

 

Terminology: Grids, Nodes, and Nets

 

I’m going to use the following terms consistently going forward:

  • Grid – refers to the entire grid of nodes created for a given CVM project,
  • Node – an individual element of the grid; any given node can be “on” or “off”; “black” or “white,” or A or B, and
  • Nets – a net is a set of neighborly same-type nodes.

Thus, in the figure above, we see a 1-D CVM grid, with eight nodes (and showing also two wrap-around nodes on the far right). The wrap-around nodes are shown just for our visual clarity, so that it’s easier for us to identify the configuration variables associated with the far-right nodes.

The system shown in the grid above is at minimal free energy for the case where there is no interaction enthalpy; that is, the interaction enthalpy parameter epsilon1 equals zero. This means that all configuration variables are equally possible; we see an even distribution (one each) of the possible z-type (triplet) configuration variables in the above figure.

Further, the activation energy for the nodes in the “on” (A) nodes is zero. That means, there is no energetic preference for a node to be in state A or state B. This is why we see an equal number of A and B nodes in this figure.

(This blog post is not going to focus on the thermodynamics. However, I’m making these points just to connect this and subsequent examples to the theoretical work done previously, and explained in some of the previous posts.)

As we allow non-zero values for the activation enthalpy (epsilon-0, the energy that makes a node in state A to be more energetic than one in the rest state B), then we’ll have proportionately fewer nodes in state A as the activation enthalpy increases. Topographically, we’ll be looking at smaller “islands” of A nodes surrounded by an ocean of B nodes, or possibly fewer islands.

Whether we get smaller islands or fewer islands (of larger size) depends on our interaction energy (epsilon-1).

As we play with different values for the interaction enthalpy, we’ll get different topographies. We will have the same total number of A nodes, because the ratio of A-to-B nodes depends on the activation energy (epsilon-0), but not at all on the interaction energy (epsilon-1). However, depending on the interaction enthalpy, we can get topographies that range from archipelagos of many small A islands, distributed in the sea of B nodes, up to a few “continents” of A nodes, each surrounded by the sea of B.

Since we’re starting to focus on the shapes and sizes of our A islands, it’s useful to introduce the notion of a net.

As we increase our activation enthalpy parameter (epsilon-0, mentioned above), we decrease the overall fraction of nodes in state A. This is why it’s useful to think of islands (or continents) of B in a sea of A.

Thus, we’ll reserve the term “net” to describe a connected (neighborly) set of A nodes.

Figure 1 has just one net; all the A nodes are on the left-hand-side; they are contiguous with each other.

Two different ways of visualizing a 2-D CVM grid that contains two "nets" - contiguous sets of "on" (A) nodes.
Figure 2: Two different ways of visualizing a 2-D CVM grid that contains two “nets” – contiguous sets of “on” (A) nodes.

Figure 2 carries the same design shown in Figure 1 into a 2-D CVM. The same base pattern is now repeated four times, two times in the horizontal direction and two in the vertical. This figure also shows the alternative “dot grid” visualization, which is useful when we want to illustrate the configuration variables. Because the vertical instances of this pattern are connected, they each form a net. We thus have two “nets” of A nodes in this 2-D CVM grid.

In previous work (see references below), the focus was all on the essential thermodynamics; how the free energy minimum moved, and finding the corresponding configuration variable values, as we adjusted the two key parameters; the activation enthalpy (epsilon-0) and the interaction enthalpy (epsilon-1). That gave us a decent thermodynamic starting point. As a result of that work, we knew roughly what to expect if we shifted either of our enthalpy parameters in a given direction.

Now, though, we want to see exactly what’s happening when we shift those parameters – and correspondingly, have to adjust node values to find a new free energy minimum.

It’s awkward to keep selecting “flip” nodes at random. If we change a parameter value, and know that we need to flip some node states to achieve free energy minimum, random selection is very likely to give us an “invalid” flip. We can spend a long time just finding a single flip that will give us a reduced free energy.

Thus, we need to get a bit more strategic. We need to know what sort of node flips are most likely to move the grid’s free energy towards the desired new minimum. To do this, we need to describe our topographies.

This means shifting our focus to describing nets:

  • How many nets there are in a grid?
  • What is the distribution of net sizes?
  • What kinds of shapes? (Compact or distributed.)

To answer these questions, we need to be able to describe the nets and even their relationships with each other. This is why we’re shifting to object-oriented (OO) Python for our next stage of work.

 
Italian-renaissance-border-2-thin

 

Visualizing the Configuration Variables in Both 1-D and 2-D CVM Grids

 

The following Figure 3 shows just the z(i) configuration variables; the triplets. These are depicted in a 2-D CVM grid.

For any node in a 2-D CVM grid, there are eight different associated z(i) triplets; four in the horizontal direction, and four vertical.
Figure 3: For any node in a 2-D CVM grid, there are eight different associated z(i) triplets; four in the horizontal direction, and four vertical.

The vertical z(i) configurations extend two rows above and below a given node. However, the way that the rows are established in a staggered configuration means that the horizontal z(i) configurations extend only one column to the left or right about a given node. This is one of the factors that we take into account in designing the object-oriented (OO) approach to computing the configuration variables and the resultant thermodynamic quantities.

We don’t move any further into the OO-based design in this week’s blog. However, the GitHub link in the References below will take you to a slidedeck showing how each of the different configuration variables is mapped into a 2-D CVM grid.

 
Italian-renaissance-border-2-thin

 

Live free or die, my friend –

AJ Maren

Live free or die: Death is not the worst of evils.
Attr. to Gen. John Stark, American Revolutionary War

 
Italian-renaissance-border-2-thin
 

References & Resources

 

The Cluster Variation Method – Essential Papers

 

Previous Related Posts

 

Visualizing the Configuration Variables for 1-D and 2-D CVM Grids (Slidedeck)

 
Italian-renaissance-border-2-thin
 

One thought on “Looking at Friends and Neighbors: A Node’s Point-of-View (2-D Cluster Variation Method)

Leave a Reply

Your email address will not be published. Required fields are marked *