commit
f2af89a0b6

@ 0,0 +1,289 @@


\documentclass{ian}




\usepackage{graphicx}


\usepackage{dsfont}




\begin{document}




\hbox{}


\hfil{\bf\LARGE


Liquid crystals\par


\vskip10pt


\hfil and the HeilmannLieb model


}


\vskip40pt




\hfil{\bf\large Ian Jauslin}\par


\hfil{\it School of Mathematics, Institute for Advanced Study}\par


\hfil{\tt\color{blue}\href{mailto:jauslin@ias.edu}{jauslin@ias.edu}}


\hskip20pt


{\tt\color{blue}\href{http://ian.jauslin.org}{http://ian.jauslin.org}}\par


\vskip40pt




\hfil{\bf Abstract}\par


Liquid crystals are everywhere, and they do more for you than you might think. They tell you the weather, the time, and will kindly let you know that your connection to eduroam was rejected, and that you'll have to listen to the rest of the seminar. Indeed, most displays run on liquid crystals, from the small dials in digital wristwatches to large flatscreen televisions. In this paper, I will review some results pertaining to why (or, perhaps, how) liquid crystals exist in the first place. In particular, I will focus on a model introduced by Heilmann and Lieb in 1979, for which Lieb and I have recently proved the emergence of a nematic liquid crystal phase.


\vskip40pt




\tableofcontents




\vskip40pt




\pagestyle{plain}




\section{Gases, liquids and crystals}


\indent Let's start with a familiar paradigm: many materials (water, for example) occur in many different phases, each of which is stable in a given range of temperatures and pressures. At 101.3\~kPa (the standard atmospheric pressure), water is gaseous above 100$^\circ$C, liquid between $0^\circ$C and $100^\circ$C and solid below $0^\circ$C. These three phases are, rather dramatically, different, both from a microscopic and a macroscopic point of view.




\indent Gases have a low density, so low, in fact, that it's constituent molecules barely notice each other's presence. Solids and liquids are much denser (by a factor of $10^3$ in the case of water). Pushed together into close quarters, its constituent molecules interact strongly with each other. The absence (or, rather, weakness) of interactions between the molecules in a gas has observable macroscopic consequences: it implies the {\it ideal gas law}, $pV=nk_BT$, which, in particular, says that gases are rather amenable to being compressed or dilated, in contrast to liquids and solids.




\indent In liquids, the molecules move around each other in a disorderly fashion, despite the smallness of the elbowroom allotted to them. Solids, on the other hand, cope with the density by spontaneously ordering: the molecules arrange themselves in a regular pattern. This is no small feat: an ice cube might contain a septillion ($10^{24}$) molecules, and almost all of these are aligned! As a consequence, liquids flow, whereas solids don't exactly do much of anything.


\bigskip




\begin{figure}


\hfil\includegraphics[width=5cm]{gas.png}


\hfil\includegraphics[width=5cm]{liquid.png}


\hfil\includegraphics[width=5cm]{crystal.png}


\caption{A caricatural depiction of a gas, liquid and crystalline phase. In the gaseous phase, the density is so low that the particles barely interact. The solid phase has a high density, and the molecules spontaneously align. The liquid phase has a large density, but displays no long range order.}


\label{fig:glc}


\end{figure}


\bigskip




\indent The question of interest here, is whether one can prove that these phases actually occur in models of interacting molecules. To be definite, let us focus on the hard sphere model, in which each molecule is represented by a sphere, and particles interact solely through the condition that the spheres may not overlap. This system has a gas phase at low densities, and is expected to have a crystalline phase at high densities\~\cite{WJ57,AW57,IK15}, with a first order phase transition between the two.




\indent The gas phase is rather well understood: at low densities, particles rarely ever run into each other, and one can compute many observables in terms of convergent power series in the density. These expansions are called {\it virial expansions}, and date back, at least, to the early years of the XX\textsuperscript{th} century\~\cite{Ka02}. Of particular note are two papers, one by Ursell\~\cite{Ur27} and the other by Mayer\~\cite{Ma37}, in which a systematic recipe is introduced to compute virial expansions for any model with shortrange (integrable) pair interactions. The convergence of this construction was later proved by Groeneveld\~\cite{Gr62}, Ruelle\~\cite{Ru63} and Penrose\~\cite{Pe63}.




\indent On the other side of the spectrum, at high densities, the situation is a bit more dicey, even for such a simple system as the hard sphere model. Even at close packing, that is, at the largest possible density, it is a challenge to prove that the system is crystalline. There is an old conjecture, often attributed to Kepler, which states that the maximal density configuration is either a facecentered cubic lattice, a hexagonal close packing, or a combination thereof. This is also called the {\it cannonball stacking} (or, for the more peaceful minded among us, the {\it orange stacking}) problem, since the question reduces to finding the optimal way of stacking cannonballs. Hales proved this conjecture\~\cite{Ha05}, using the assistance of a computer. There has been some debate over the validity of this proof, and it has recently been formalized and checked by a formal proof checker\~\cite{HAe17}. However, at densities which are lower than close packing, there is, as of yet, no proof of crystallization in the hard sphere model.




\indent In short, in the hard sphere model, one can get rigorous control over the low density gas phase and the maximal density crystalline phase, but there are no results for intermediate densities, and, in particular, no proof that the phase transition exists and is of first order.


\bigskip




\indent The main difficulty in proving that the hard sphere model crystallizes at high density is that it is a {\it continuum} model: the positions of the spheres can take any value in $\mathbb R^3$. This spells out trouble for imposing translational order: if two neighboring spheres differ infinitesimally from the crystalline structure, and so do the next pair, and the next pair, and so on, then two spheres which are sufficiently far from each other could have completely decorrelated positions, which would break the crystalline structure.




\indent In fact, if one puts the system on a lattice, that is, if one restricts the positions of the hard spheres (or, more generally, the particles) to a discrete set, then proving crystallization is feasible in certain cases. For example, Dobrushin\~\cite{Do68} proved it for the nearest neighbor exclusion on the square lattice, Baxter~\\cite{Ba82} on the hexagonal lattice, Heilmann and Pr\ae stgaard\~\cite{HP74} for the thirdnearest neighbor exclusion on the square lattice, a result which was generalized by Lebowitz and I\~\cite{JL17b} to a class of hardcore lattice particle models in $d\geqslant 2$ dimensions. In all of these cases, the basic idea is to map the dense particle system to a dilute model of holes, for which lowdensity methods can be used. The issue is that the interaction between holes can be difficult to treat, even on the lattice. The same could be done for the continuum model, but the interaction between holes is simply too complicated to control.


\bigskip




\indent The hard sphere model does not have a liquid phase. A simple model which is expected to have a gas, a liquid and a crystalline phase is the {\it WidomRowlinson} model\~\cite{WR70}. It consists of two species of particles, called A and Bparticles, which interact via a hardcore repulsion, like the hard sphere model. The difference with the hard spheres is that the radius of the interaction depends on whether it occurs between two A particles ($R_{AA}$), two B's ($R_{BB}$) or an A and a B ($R_{AB}$, with $R_{AB}>R_{AA},R_{BB}$). In the gas phase, all particles intermingle, whereas in the `liquid' phase, A's and B's are segregated and disordered. In the crystalline phase, they are ordered, like in the hard sphere model. Ruelle\~\cite{Ru71} was the first to prove the existence of the `liquid' phase in the case where the radii of the AA and BB interactions is 0. The result was generalized to a large class of WidomRowlinsonlike models by Bricmont, Kuroda and Lebowitz\~\cite{BKL84}. Proving crystallization, however, would be just as difficult as in the hard sphere model.




\indent All the theorems I mentioned until now are about the existence of gas, liquid or crystalline phases, not about the nature of the phase transition between them. In the case of the gasliquid transition Maxwell\~\cite{Ma75} developed a heuristic construction to account for the corrections to the ideal gas law near the transition point. By introducing a family of forces acting between particles in a gas, Van der Waals derived an equation which refined the ideal gas law. The Van der Waals equation gives good agreement with experiments provided the density is small enough, but, at larger values, one finds an unphysical regime, in which the pressure increases with the volume. The Maxwell construction consists in flattening out that region, and interpreting it as the liquidvapor phase transition. The construction was shown to be rigorous by Lebowitz and Penrose\~\cite{LP66} in a system of particles with an infinitely weak and infinitely long range interaction called a {\it Ka\v c} potential.






\section{Liquid crystals}


\indent The takehome message which is buried somewhere in the previous section is that liquids are disordered and crystals are ordered, thus making the term `liquid crystal' an oxymoron. Liquid crystals are phases which combine properties of ordered and disordered matter. They are typically found in systems of anisotropic molecules, which may be long and elongated like rods, or flat and wide like plates, or shaped like a boomerang, or a helix, et c\ae tera... Whereas there are many types of liquid crystals, we will mostly focus on {\it nematic} liquid crystals, which occur in rodshaped molecules (see figure\~\ref{fig:nematic}). A rod has 5 degrees of freedom: 3 specify the position of the center of the rod and 2 its orientation. In a nematic phase, the orientational degrees of freedom exhibit long range order, that is, the rods are aligned, whereas the positional degrees of freedom are disordered (see figure\~\ref{fig:nematic}). This phase is quite different from the ones mentioned until now, because it is {\it partially} ordered. From a macroscopic point of view, liquid crystals flow, like liquids, which is made possible by the positional disorder of the molecules. The orientational order manifests itself mostly through optical properties: a nematic liquid crystal is a polarizing filter, only allowing light polarized along the orientation of the molecules through.


\bigskip




\begin{figure}


\hfil\includegraphics[width=7cm]{nematic.png}


\hfil\includegraphics[width=7cm]{chiral.png}


\caption{Caricatural depiction of a nematic liquid crystal phase and a chiral nematic liquid crystal phase. In the first the rodshaped molecules are mostly aligned, but their positions are disordered. The second consists of a stack of horizontal planes, in each of which the rods are aligned but their positions are disordered. The orientation of the rods changes from one plane to the next.}


\label{fig:nematic}


\end{figure}


\bigskip




\indent Liquid crystals have come to play an important role in various display technologies, and have been used in digital watches, Game Boys, flat screen computer monitors, televisions, and smartphones. The basic mechanism underlying these technologies relies on liquid crystals that can be switched between a nematic and a {\it chiral} nematic phase. In a chiral nematic phase, the molecules are arranged in a stack of planes, in each of which the molecules are aligned. The direction in each plane is rotated from one plane to the next (see figure\~\ref{fig:nematic}). Because nematic liquid crystals are polarizing filters, by stacking the molecules in this way, chiral nematic liquid crystals alter the polarization of light. In particular, if horizontally polarized light is shined through a chiral nematic liquid crystal whose total change in the angle of the particles is $90^\circ$, then it will come out with a vertical polarization.




\indent Using this mechanism, one can design an electronic light filter. In its {\it off} (opaque) state, the filter consists of a chiral nematic liquid crystal sandwiched between two horizontal polarizing filters. In this state, the filter does not let any light through, since the first filter only allows horizontal light through, which is rotated by the liquid crystal and is vertically polarized by the time it reaches the second filter, which blocks the signal. To turn the filter {\it on} (transparent), an electric field is applied through the liquid crystal, which, by the {\it Twisted Nematic Field} effect, becomes nematic. At this point, the horizontally polarized light can make its way through the filter.




\indent Modern LCD displays (`LCD' stands for Liquid Crystal Display) are made of an array of LEDs (Light Emitting Diodes), three for each pixel. Of these three, one is blue, another green, and the third red. In front of each of these LEDs, there is an electronic light filter, like the ones I just described. Pixels are turned on or off by applying an electric field through the filter or not. (By varying the strength of the field, one can adjust the proportion of the crystal that is chiral nematic, and thus adjust the brightness of the pixel, beyond a simple on/off switch.)




\indent LCD technology is on its way out of smartphones, televisions and computer monitors, since, as it turns out, one gets better contrast by controlling the intensity of the LEDs directly. This is a bit of a technological challenge, which has been overcome only recently, through the introduction of OLEDs (Organic Light Emitting Diode). However, as of yet, OLED displays are still quite a bit more expensive than LCDs.


\bigskip




\indent The question of interest here is why, or rather how, do liquid crystal phases exist? In other words, can one construct a microscopic model in which one can prove the emergence of a liquid crystalline phase?




\indent Onsager\~\cite{On49} made a significant first step in this direction. He set out to understand a colloidal suspension of tobacco mosaic viruses, which consist of a single strand of RNA cozily nestled into a cylindrical shell of proteins. The virus is shaped like a rigid cylinder, about 18nm in diameter and 300nm long. Onsager modeled the suspension as a system of hard cylinders (in which the only interaction between cylinders is that they are not allowed to overlap), which are meant to represent the electrostatic repulsion between viruses, whose effective diameter far exceeds the size of the virus itself (Onsager noted that a nematic phase would appear even at densities as low as 2 percent, so the electrostatic repulsion must play a role in the formation of this phase). To study the system, Onsager computed a virial expansion, truncated at second order, and, by a (nonrigorous) selfconsistency argument, conjectured that the nematic phase exists, and that the phase transition is of first order.




\indent The earliest attempt (to my knowledge) at a rigorous proof of a nematic phase was undertaken by Heilmann and Lieb\~\cite{HL79}. The model they considered is a dimer model on the square lattice $\mathbb Z^2$. A dimer is an object that occupies an edge of the lattice and its two endpoints (see figure\~\ref{fig:hl}), with the constraint that no two dimers can cover the same vertex. (This is sometimes called a {\it monomerdimer} model, and the sites that are not covered by any dimers are called {\it monomers}.) Dimers represent molecules, which have a (discrete) position, and a (discrete) orientation, which can be either vertical or horizontal. One may, therefore, wonder whether the monomerdimer model exhibits a nematic phase, but, in an earlier paper\~\cite{HL72}, Heilmann and Lieb had proved that there are no phase transitions in the monomerdimer model, which, in particular, implies that there is no long range orientational order, and, therefore, no nematic phase. In order to favor orientational order, Heilmann and Lieb\~\cite{HL79} introduced an interaction between dimers to induce alignment. The interaction favors configurations in which pairs of dimers are {\it adjacent} and {\it aligned}, that is, they are neighbors and are contained within the same row or column (see figure\~\ref{fig:hl}). They proved, using a reflection positivity argument, that dimers spontaneously align if the interaction is strong enough. In other words, there is long range orientational order. However, their argument does not show that there is no positional order, thus stopping short of proving the emergence of a nematic phase in this model.




\indent Since then, other models have been introduced in which a nematic phase has been proved to form. Bricmont, Kuroda and Lebowitz\~\cite{BKL84} noticed that a system of infinitely thin needles in two dimensions, in which the needles are allowed to be in one of two orientations (say, horizontal and vertical) is, essentially, a WidomRowlinson model. If more orientations are allowed (but a finite number of them), then the model closely resembles a {\it multicomponent} WidomRowlinson model. They commented that the machinery developed in their paper\~\cite{BKL84} for the WidomRowlinson model could easily be adapted to prove a nematic phase in this model.




\indent Ioffe, Velenik and Zahradn\'ik\~\cite{IVZ06} discussed a model of rods on $\mathbb Z^2$, in which rods consist of adjacent and aligned vertices, and are of varying length. The parameters of the model are tuned so as to make it {\it integrable}, and, by solving it exactly, they showed the emergence of a nematic phase. Disertori and Giuliani\~\cite{DG13} considered a system of rods on $\mathbb Z^2$ of {\it fixed} length, which is {\it not} integrable, and showed the existence of a nematic phase.




\indent There had also been some progress in proving the HeilmannLieb conjecture: Alberici\~\cite{Al16} considered an interacting dimer model that is almost identical to the HeilmannLieb model, except that the chemical potentials of the horizontal and vertical dimers are different, which means that vertical dimers are favored over horizontal ones. This is a rather mild assumption, since Heilmann and Lieb proved\~\cite{HL79} that dimers tend to align, so one of the orientations is spontaneously favored over the other, but in Alberici's model, this uniformity in the orientation is built into the model directly. Nevertheless, there was little doubt that the conjecture is true, and Papanikolaou, Charrier and Fradkin\~\cite{PCF14} showed numerical evidence for the lack of positional order in the system.




\indent Lieb and I\~\cite{JL17c} have recently presented a proof of this conjecture, which I will discuss in the next section.


\bigskip




\begin{figure}


\hfil\includegraphics[width=8cm]{interaction.pdf}


\caption{A dimer configuration in the HeilmannLieb model. Pairs of dimers which are adjacent and aligned interact, which is represented by a red wavy line.}


\label{fig:hl}


\end{figure}


\bigskip




\section{Nematic order in the HeilmannLieb model}


\indent I will now introduce the HeilmannLieb model on a more formal footing, state the theorem that implies the emergence of nematic order, and go through the main ideas of its proof.


\bigskip




\subsection{The HeilmannLieb model}


\indent In\~\cite{HL79}, Heilmann Lieb actually introduced five models, in two and three dimensions, and proved longrange orientational order for each of them. The model which we consider here is called `model\~I' in\~\cite{HL79}. As was mentioned above, it is an interacting (monomer)dimer model on $\mathbb Z^2$. We consider the system in the {\it grandcanonical ensemble}, which means that we pick dimer configurations randomly, according to the Gibbs grandcanonical distribution. In order to define it, and, in the process, introduce some relevant notations, I will define the average of an observable $A$:


\begin{equation}


\left<A\right>_{\mathrm v}


=


\lim_{L\to\infty}


\frac1{\Xi_{\Lambda_L}(z,J)}


\sum_{\underline\delta\in\Omega_{\mathrm v}(\Lambda_L)}


A(\underline\delta)


z^{\underline\delta}


\prod_{\delta\neq\delta'\in\underline\delta}e^{\frac12J\mathds 1_{\delta\sim\delta'}}


\end{equation}


in which


\begin{itemize}


\item $\Lambda_L:=\{1,\cdots,L\}\times\{1,\cdots,L\}\subset\mathbb Z^2$ is a {\it finite} subset of $\mathbb Z^2$ of volume $L^2$,


\item $\Omega_{\mathrm v}(\Lambda_L)$ is the set of (monomer)dimer configurations on $\Lambda_L$, with {\it vertical} boundary conditions (I will come back to these later),


\item $A$ is an observable, that is, a map from $\Omega_{\mathrm v}(\Lambda_L)$ to $\mathbb R$,


\item $z\geqslant 0$ is a parameter called the {\it fugacity} (if $\beta$ is the inverse temperature and $\mu$ is the chemical potential, then $z\equiv e^{\beta\mu}$),


\item $\underline\delta$ is the number of dimers in $\underline\delta$


\item $J\geqslant 0$ is the {\it interaction strength}


\item $\mathds 1_{\delta\sim\delta'}\in\{0,1\}$ is equal to 1 if and only if $\delta$ and $\delta'$ are adjacent and aligned


\item $\Xi_{\Lambda_L}(z,J)$ is a normalization constant, called the {\it partition function}:


\begin{equation}


\Xi_{\Lambda_L}(z,J)


:=


\sum_{\underline\delta\in\Omega_{\mathrm v}(\Lambda_L)}


z^{\underline\delta}


\prod_{\delta\neq\delta'\in\underline\delta}e^{\frac12J\mathds 1_{\delta\sim\delta'}}


.


\label{Xi}


\end{equation}


\end{itemize}


Note that the fugacity $z$ is related to the density of dimers: if $z$ is large, then configurations with many dimers are favored. Similarly, when $J$ is large, configurations with many interactions are more probable.


\bigskip




\indent Heilmann and Lieb showed that, if $J\gg \mathrm{max}(1,\log z)$, then, given a vertical edge $e_{\mathrm v}$ and a horizontal one $e_{\mathrm h}$, the probability that they are both occupied is small. This implies that the system has at least two extremal Gibbs measures, one of which mostly contains vertical dimers, while the other mostly contains horizontal ones. In an effort to study each of these separately, I will impose a boundary condition that will select the vertical Gibbs measure (the same could, obviously, be done for the horizontal phase). This is done by isolating two horizontal strips of height $\ell_0:=e^{\frac32J}z^{\frac12}$ at the top and bottom of $\Lambda_L$ (see figure\~\ref{fig:boundary}). Horizontal dimers are forbidden from intersecting these strips. Since these regions have a large volume, they are likely to contain many vertical dimers, which will push the other dimers in the bulk to be vertical as well. The choice of the size $e^{\frac32J}z^{\frac12}$ of the strips will be clarified later.


\bigskip




\begin{figure}


\hfil\includegraphics[width=8cm]{boundary.pdf}


\caption{The boundary condition is chosen in such a way to favor vertical dimers. The blue strips, whose height is $\ell_0:=e^{\frac32J}z^{\frac12}$, are devoid of horizontal dimers.}


\label{fig:boundary}


\end{figure}




\subsection{Main result}


\indent Let me state the theorem that Lieb and I proved\~\cite{JL17c}, after which I will comment on why it implies the existence of a nematic phase.


\bigskip




\theo{Theorem}\label{theo:main}


We assume that


\begin{equation}


J\gg z\gg 1


.


\label{Jz}


\end{equation}


Given an edge $e$, we define the observable $\mathds 1_e$, which returns 1 if $e$ is occupied by a dimer, and 0 if not. Given two vertical edges $e_{\mathrm v}$ and $e_{\mathrm v}'$, $\left<\mathds 1_{e_{\mathrm v}}\right>_{\mathrm v}$ (that is, the probability that $e_{\mathrm v}$ is occupied) is {\it independent} of the choice of $e_{\mathrm v}$, and


\begin{equation}


\left<\mathds 1_{e_{\mathrm v}}\right>_{\mathrm v}=\frac12\left(1+O(z^{\frac12}e^{\frac12J})\right)


\label{v}


\end{equation}


\begin{equation}


\left<\mathds 1_{e_{\mathrm v}}\mathds 1_{e_{\mathrm v}'}\right>_{\mathrm v}\left<\mathds 1_{e_{\mathrm v}}\right>_{\mathrm v}\left<\mathds 1_{e_{\mathrm v}'}\right>_{\mathrm v}


=O\left(e^{c\ \mathrm{dist}_{\mathrm{HL}}(e_{\mathrm v},e_{\mathrm v}')}\right)


\label{vv}


\end{equation}


in which $\mathrm{dist}_{\mathrm{HL}}$ is the distance induced by the norm


\begin{equation}


\(x,y)\_{\mathrm{HL}}=Jx+\ell_0^{1}y


.


\label{HLnorm}


\end{equation}


Similarly, given two horizontal edges $e_{\mathrm h}$ and $e_{\mathrm h}'$, $\left<\mathds 1_{e_{\mathrm h}}\right>_{\mathrm v}$ is {\it independent} of the choice of $e_{\mathrm h}$, and


\begin{equation}


\left<\mathds 1_{e_{\mathrm h}}\right>_{\mathrm v}=O(e^{3J})


\label{h}


\end{equation}


\begin{equation}


\left<\mathds 1_{e_{\mathrm h}}\mathds 1_{e_{\mathrm h}'}\right>_{\mathrm v}\left<\mathds 1_{e_{\mathrm h}}\right>_{\mathrm v}\left<\mathds 1_{e_{\mathrm h}'}\right>_{\mathrm v}


=O\left(e^{6Jc\ \mathrm{dist}_{\mathrm{HL}}(e_{\mathrm h},e_{\mathrm h}')}\right)


.


\label{hh}


\end{equation}


Finally,


\begin{equation}


\left<\mathds 1_{e_{\mathrm h}}\mathds 1_{e_{\mathrm v}}\right>_{\mathrm v}\left<\mathds 1_{e_{\mathrm h}}\right>_{\mathrm v}\left<\mathds 1_{e_{\mathrm v}}\right>_{\mathrm v}


=O\left(e^{3Jc\ \mathrm{dist}_{\mathrm{HL}}(e_{\mathrm h},e_{\mathrm v})}\right)


.


\label{hv}


\end{equation}


\endtheo


\bigskip




\indent This theorem implies long range orientational order and the absence of positional order. Indeed, (\ref{h}) and\~(\ref{v}) imply that the probability of finding a horizontal dimer is much smaller than that of a vertical dimer. This is not a trivial fact, since the symmetry between vertical and horizontal dimers is only broken at the boundary, which is {\it infinitely} far away from $e_{\mathrm h}$ or $e_{\mathrm v}$. In addition, (\ref{hv}) means that the joint probability of finding a vertical and a horizontal dimer is low (and, up to exponentially small terms, equal to the product of the probabilities of finding a dimer in each site). This implies orientational order




\indent The probability that a vertical or horizontal edge is occupied is independent on the location of that edge. This is a good sign, but is not sufficient to prove that there is no positional order. Indeed, the Gibbs measure could be a mixture of two measures, in which half of the vertical edges are favored in one of the measures, while the other half is favored in the other. The decay of the correlation functions\~(\ref{vv}), (\ref{hh}) and\~(\ref{hv}) forbid this. Indeed, they show that the joint probability of finding a dimer at an edge $e$ and another at $e'$ is equal to a term that does not depend on $e$ or $e'$ plus an exponentially vanishing term.




\indent Thus, there is long range orientational order, and no positional order: the symmetry of the system is partially broken. Therefore, in this range of parameters\~(\ref{Jz}), the system is in a {\it nematic} phase.


\bigskip




\indent The range of parameters\~(\ref{Jz}) makes some sense, but is, presumably, not the optimal one. The orientational order is due to the interaction and to the large density of dimers. Therefore, it is natural to expect that $J,z$ should be rather large. However, the range for which Heilmann and Lieb's proof holds is much wider:


\begin{equation}


J\gg\mathrm{max}(1,\log z)


.


\end{equation}


(This inequality does not even require $z\gg 1$, because, by making $J$ big enough, the dimer density is already large.)


\bigskip




\indent An interesting point is hidden in\~(\ref{HLnorm}): the truncated correlation functions decay exponentially, but the rate of the decay is extremely anisotropic. In the horizontal direction, the rate is $J\gg 1$, which means that correlations are strongly dampened in the horizontal direction. In the vertical direction, it is $\ell_0^{1}\equiv e^{\frac32J}z^{\frac12}\ll 1$. Therefore, the correlation length in the vertical direction is huge. This is the expected behavior, and is due to the large density of dimers. Indeed, in a column that contains only vertical dimers, that is, no horizontal dimers {\it and} no empty sites, the dimers can either only occupy even or only occupy odd edges. These dimers are strongly correlated. It is only when an empty site or a horizontal dimer is encountered that this restriction is relaxed. However, in this dense nematic phase, such events are {\it improbable}. On the other hand, it is {\it probable} to find an empty site in any interval of size $\approx \ell_0$, which is why correlations decay exponentially on that scale.




\subsection{Ideas of the proof}


\indent It all starts with Heilmann and Lieb's result\~\cite{HL79}, which, I recall, ensures that most dimers are vertical. If {\it all} dimers were vertical, then the model would be solvable exactly: every column would be independent from the other columns (dimers are vertical and interact vertically), and each column is a onedimensional system that can be solved by a transfer matrix technique. The observables in the right sides of\~(\ref{v}) and\~(\ref{vv}) can be computed exactly, so\~(\ref{v}) and\~(\ref{vv}) can be checked explicitly. Incidentally, this is where $e^{\frac32J}z^{\frac12}$ appears, as the correlation length of the onedimensional interacting dimer model. (As long as there are no horizontal dimers, the exponential decay in the horizontal direction could be replaced by a sharp step function, but this is not terribly important.) I will call the model with only vertical dimers the `vertical dimer model', and the model with vertical and horizontal dimers the `full model'. The proof is based on showing that the full model is {\it close}, in a sense to be made precise, to the vertical dimer model. Given Heilmann and Lieb's result, this is not a surprising claim.


\bigskip




\indent Instead of focusing on dimer configurations, we will look at where {\it interfaces} between vertical and horizontal phases lie (see figure\~\ref{fig:dimer_contour}). The basic idea behind this approach is that interfaces should be unlikely, so there will be few of them and they will be far apart. Locating an interface is slightly ambiguous when there are monomers (empty sites) around (are monomers in the vertical or horizontal phase?), but this can be dealt with rather easily. With this in mind, we can rewrite the partition function\~(\ref{Xi}), symbolically, as: (I will mostly be discussing the computation of the partition function, the correlation functions in theorem\~\ref{theo:main} can be computed in a similar way)


\begin{equation}


\frac{\Xi_{\Lambda_L}(z,J)}{Z_{\Lambda_L}(z,J)}


=


\sum_{\displaystyle\mathop{\scriptstyle\mathrm{interface}}_{\mathrm{configurations}}}e^{W(\mathrm{interfaces})}\left(\prod_{\displaystyle\mathop{\scriptstyle\mathrm{interfaces}}_{\mathrm{in\,configuration}}}\zeta(\mathrm{interface})\right)


\label{loop_model}


\end{equation}


where $Z_{\Lambda_L}(z,J)$ is the partition function of the vertical dimer model, $\zeta$ is the {\it effective activity} of each interface, and $W$ is the {\it effective interaction} between interfaces. Once the interface configuration has been fixed, the partition function reduces to a product of partition functions in the areas between the interfaces. In these areas, dimers are either all horizontal or all vertical, so, using the exact solution of the vertical (horizontal) dimer model, one can compute these partition functions exactly. This yields an expression for the activity $\zeta$ and the interaction $W$.




\indent The dominant factor in the activity comes from the interactions that are broken by the interface (since there is no force between a horizontal and a vertical dimer, there are no interactions along the interface, see figure\~\ref{fig:dimer_contour}). When the dimer density is large enough, each site contributes, roughly (ignoring empty sites), a half of an interaction (see figure\~\ref{fig:dimer_contour}). When an interface runs between two sites, it cuts one of the two halfinteractions of the sites, so, roughly, the activity of an interface of length (that is, the number of edges the interface cuts) $l$ is


\begin{equation}


\zeta(\mathrm{interface\ of\ length\ }l)\lesssim e^{\frac12Jl}


.


\end{equation}


When $J$ is large, this is a very small factor, which is consistent with the fact that interfaces are rare. In fact, if there were no interaction, then the system would reduce to a rarefied {\it gas} of interfaces, which, as was mentioned previously, can be solved by standard expansions (in this case, it would be called a {\it cluster expansion}, see, for instance, \cite{Ru99,GBG04,KP86,BZ00} for details).


\bigskip




\begin{figure}


\hfil\includegraphics[width=8cm]{dimer_contour.pdf}


\caption{The interfaces in the configuration of figure\~\ref{fig:hl}. Each interface cuts interactions: whereas, in the uniform phases, if one were to neglect the presence of monomers (empty sites), there would be one half of an interaction for each site, whenever an interface runs between two sites, one of the halfinteractions disappears.}


\label{fig:dimer_contour}


\end{figure}




\indent The interaction is much nastier. There are, essentially, two contributions, both of which cause trouble. The first is standard in problems which require PirogovSinai theory\~\cite{PS75,BKL84,KP84}. Interfaces have geometric constraints, which depend on whether they separate a vertical phase outside from a horizontal phase inside, or the other way around. It is, therefore, important to keep track of the orientation of the phase outside an interface. However, if an interface has horizontal dimers outside it, it must be surrounded by an interface which has vertical dimers outside it. This induces an interaction between interfaces, which does not decay with the distance between them. A simple solution to this problem is to pretend that every interface has vertical dimers outside it. This can be done by rotating the dimers in each horizontal phase. However, the partition function of the horizontal dimer model and that of the vertical dimer model in an anisotropic region are different (there is no reason to assume that the horizontal regions are isotropic). It is expected that the ratio of these two partition functions is, at most, exponentially large in the size of the {\it boundary} of the region. If this is true, this rotating operation would yield a large factor $e^{l}$, which would be compensated by the gain $e^{\frac12Jl}$ coming from the activity of the interface. To prove that the ratio is, indeed, exponentially large in the size of the boundary, we use the expression\~(\ref{loop_model}) (with $\Lambda_L$ replaced by the horizontal region) to explicitly compute the ratio, and prove the appropriate bound.




\indent The second contribution to the interaction comes from the fact that there are dimers between interfaces (see figure\~\ref{fig:segments}). Let us focus on the case in which these are vertical dimers. As was mentioned above, the correlation length in a column of vertical dimers is very large ($\ell_0:=e^{\frac32J}z^{\frac12}\gg 1$) which means that the partition function in a column of height $\ll\ell_0$ depends strongly on its height. This translates to an interaction between interfaces which decays exponentially with the distance between interfaces, but with a very small rate $\ell_0^{1}\ll 1$. Therefore, the interaction is weak when the distance separating the interfaces is at least $\ell_0$, but can be (and is) strong on shorter length scales. Overcoming this is the main difficulty (and novelty) of the proof.




\indent In other words, there are two length scales in the problem: 1, which is the size of a dimer, and $\ell_0$, the correlation length of the vertical dimer model. In addition, the system is very anisotropic (in a vertical phase, $\ell_0$ appears in the vertical direction, and conversely in a horizontal phase). As a consequence, the twoscale nature of the problem cannot be dealt with by a coarsegraining procedure (as was done in\~\cite{DG13}): the coarsegrained block would need to be a square of size $\ell_0$ (because both columns of height $\ell_0$ and rows of length $\ell_0$ need to be taken into account). However, computing the partition function within this elementary block is already a hard problem. For the same reason, a reflection positivity argument similar to the one in\~\cite{HL79} cannot be used.




\indent At first glance, the situation is not terribly dire: the interaction is onedimensional (vertical or horizontal) and, when summing over the positions of the interfaces, one only really needs to sum over the length of one interaction per interface. This yields a factor $\sum_{l}e^{\ell_0^{1}l}\approx\ell_0\gg 1$, but each interface contributes, at least $e^{3J}$ (because its length is, at least, 6). Provided $z\ll e^{3J}$, $\ell_0e^{3J}\ll 1$, which is good. However, there also are columns of dimers that do not touch any interface, and go straight through $\Lambda_L$ (see figure\~\ref{fig:segments}). These are called {\it trivial polymers}. If $L$ is larger than $\ell_0$, these cause no trouble, but, as was mentioned earlier, we need to compute the partition function for any horizontal region, which could contain columns of length $\ll \ell_0$. Therefore, we need to ensure that this situation never arises, which we accomplish by redefining the loop model to include interactions of length $<\ell_0$, thus removing them from the horizontal regions entirely.


\bigskip




\begin{figure}


\hfil\includegraphics[width=8cm]{segments.pdf}


\caption{An interface configuration. The highlighted vertical and horizontal lines represent the interactions between the interfaces, which are mediated by the dimers between them.}


\label{fig:segments}


\end{figure}


\bigskip




\indent After having dealt with the interactions as stated above, one can use a cluster expansion to compute the ratio in the left side of\~(\ref{loop_model}) as the exponential of an absolutely converging series. This actually tells us more than just the statement of theorem\~\ref{theo:main}: the free energy and every correlation function can be computed, and estimated, in this way.




\section{Concluding remarks}


\indent The HeilmannLieb model has now joined the few other models\~\cite{BKL84,IVZ06,DG13} for which there is a proof of the existence of a nematic liquid crystal phase. There are a few open problems related to this result, some more important than others, which I would like to mention.




\indent We have shown that the nematic phase appears in the range $J\gg z\gg 1$, but expect it to exist whenever $J\gg\mathrm{max}(1,\log z)$. The reasons why we have restricted the range in such a way are extremely technical, so much so that I did not deem it appropriate to expound on them in this review, and I have little doubt that they can be relaxed.




\indent As was mentioned above, Heilmann and Lieb\~\cite{HL79} actually proved orientational ordering for {\it five} models, two of which are twodimensional dimer models, two are three dimensional fourmer systems (a fourmer covers four vertices, and is shaped like a square), and the last is a threedimensional dimer model. The proof that was discussed here only really works for the first of these five models, but it is not hard to imagine how to adapt it to the other two twodimensional models. The situation could get more complicated in three dimensions. In fact, all four papers\~\cite{BKL84,IVZ06,DG13,JL17c} cited here concern twodimensional systems. Disertori, Giuliani and I are currently in the final stages of proving a result for a system of hard {\it plates} in threedimensions. The plates we are considering are $k\times k^\alpha\times1$ parallelepipeds with $k$ large and $\alpha>\frac34$, and they are allowed to be in any one of six orthogonal orientations. We show that a {\it uniaxial platenematic} phase emerges in a certain range of densities. In this phase, the short axis of the plates exhibits long range order, which means that the plates are, for the most part, horizontal. It would be rather interesting to prove the existence of a nematic phase in a threedimensional {\it rod} model (note that Heilmann and Lieb did prove long range orientational order for a threedimensional dimer model\~\cite{HL79}).




\indent The important open problem is to prove Onsager's heuristic result\~\cite{On49}, and show the existence of a nematic phase in a {\it continuous} system of rods. Since this would involve breaking a continuous symmetry, one would have to consider a threedimensional continuum model, for which, as was just mentioned, there is no proof of a nematic phase even with discrete orientations.






\vfill


\eject




\begin{thebibliography}{WWW99}


\small


\IfFileExists{bibliography/bibliography.tex}{\input bibliography/bibliography.tex}{}


\end{thebibliography}






\end{document}


@ 0,0 +1,63 @@


PROJECTNAME=$(basename $(wildcard *.tex))


LIBS=$(notdir $(wildcard libs/*))


FIGS=$(notdir $(wildcard figs/*.fig))




PDFS=$(addsuffix .pdf, $(PROJECTNAME))


SYNCTEXS=$(addsuffix .synctex.gz, $(PROJECTNAME))




all: $(PROJECTNAME)




$(PROJECTNAME): $(LIBS) $(FIGS)


pdflatex filelineerror $@.tex


pdflatex filelineerror $@.tex


pdflatex synctex=1 $@.tex




$(PROJECTNAME).aux: $(LIBS) $(FIGS)


pdflatex filelineerror draftmode $(PROJECTNAME).tex






$(SYNCTEXS): $(LIBS) $(FIGS)


pdflatex synctex=1 $(patsubst %.synctex.gz, %.tex, $@)






libs: $(LIBS)




$(LIBS):


ln fs libs/$@ ./




bibliography/bibliography.tex: $(PROJECTNAME).aux


BBlog c bibliography/conf.BBlog d $(BIBLIOGRAPHY) b bibliography/bibliography.tex




figs: $(FIGS)




$(FIGS):


make C figs/$@


for pdf in $$(find figs/$@/ name '*.pdf'); do ln fs "$$pdf" ./ ; done


for png in $$(find figs/$@/ name '*.png'); do ln fs "$$png" ./ ; done






cleanaux: cleanfigsaux


rm f $(addsuffix .aux, $(PROJECTNAME))


rm f $(addsuffix .log, $(PROJECTNAME))


rm f $(addsuffix .out, $(PROJECTNAME))


rm f $(addsuffix .toc, $(PROJECTNAME))




cleanlibs:


rm f $(LIBS)




cleanfigs:


$(foreach fig,$(addprefix figs/, $(FIGS)), make C $(fig) clean; )


rm f $(notdir $(wildcard figs/*.fig/*.pdf))


rm f $(notdir $(wildcard figs/*.fig/*.png))




cleanfigsaux:


$(foreach fig,$(addprefix figs/, $(FIGS)), make C $(fig) cleanaux; )






cleantex:


rm f $(PDFS) $(SYNCTEXS)




cleanbibliography:


rm f bibliography/bibliography.tex




clean: cleanaux cleantex cleanlibs cleanfigs


@ 0,0 +1,48 @@


This directory contains the source files to typeset the article, and generate


the figures. This can be accomplished by running


make




This document uses a custom class file, located in the 'libs' directory, which


defines a number of commands. Most of these are dropin replacements for those


defined in the 'article' class.




Some extra functionality is provided in custom style files, located in the


'libs' directory.






* Dependencies:




pdflatex


TeXlive packages:


amsfonts


color


doublestroke


graphics


hyperref


latex


marginnote


pgf


standalone


GNU make


python3


gnuplot




* Files:




Jauslin_IAMP_2018.tex:


main LaTeX file




libs:


custom LaTeX class and style files




figs:


source code for the figures




figs/dimer_example.fig/dimer_conf.py:


this python script randomly generates a suitable dimer configuration for


the figures interaction.pdf boundary.pdf and dimer_contour.pdf




figs/atoms.fig/*.py:


these python script generate the figures gas.png, liquid.png, crystal.png,


nematic.png and chiral.png




@ 0,0 +1,97 @@


\bibitem[Al16]{Al16}D. Alberici  {\it A Cluster Expansion Approach to the HeilmannLieb Liquid Crystal Model}, Journal of Statistical Physics, volume~\162, issue~\3, pages~\761791, 2016,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s1095501514218}{10.1007/s1095501514218}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1506.02255}{1506.02255}}.\par\medskip




\bibitem[AW57]{AW57}B.J. Alder, T.E. Wainwright  {\it Phase Transition for a Hard Sphere System}, The Journal of Chemical Physics, volume~\27, issue~\5, pages~\12081209, 1957,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.1743957}{10.1063/1.1743957}}.\par\medskip




\bibitem[Ba82]{Ba82}R.J. Baxter  {\it Exactly solved models in Statistical Mechanics}, Academic Press, 1982.\par\medskip




\bibitem[BZ00]{BZ00}A. Bovier, M. Zahradn\'\i k  {\it A Simple Inductive Approach to the Problem of Convergence of Cluster Expansions of Polymer Models}, Journal of Statistical Physics, volume~\100, issue~\34, pages~\765778, 2000,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1023/A:1018631710626}{10.1023/A:1018631710626}}.\par\medskip




\bibitem[BKL84]{BKL84}J. Bricmont, K. Kuroda, J.L. Lebowitz  {\it The struture of Gibbs states and phase coexistence for nonsymmetric continuum WidomRowlinson models}, Zeitschrift f\"ur Wahrscheinlichkeitstheorie und Verwandte Gebiete, volume~\67, issue~\2, pages~\121138, 1984,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF00535264}{10.1007/BF00535264}}.\par\medskip




\bibitem[DG13]{DG13}M. Disertori, A. Giuliani  {\it The nematic phase of a system of long hard rods}, Communications in Mathematical Physics, volume~\323, pages~\143175, 2013,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s0022001317671}{10.1007/s0022001317671}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1112.5564}{1112.5564}}.\par\medskip




\bibitem[Do68]{Do68}R.L. Dobrushin  {\it The problem of uniqueness of a Gibbsian random field and the problem of phase transitions}, Functional Analysis and its Applications, volume~\2, issue~\4, pages~\302312, 1968,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF01075682}{10.1007/BF01075682}}.\par\medskip




\bibitem[GBG04]{GBG04}G. Gallavotti, F. Bonetto, G. Gentile  {\it Aspects of Ergodic, Qualitative and Statistical Theory of Motion}, Springer, 2004.\par\medskip




\bibitem[Gr62]{Gr62}J. Groeneveld  {\it Two theorems on classical manyparticle systems}, Physics Letters, volume~\3, issue~\1, pages~\5051, 1962,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1016/00319163(62)901981}{10.1016/00319163(62)901981}}.\par\medskip




\bibitem[Ha05]{Ha05}T.C. Hales  {\it A proof of the Kepler conjecture}, Annals of Mathematics, volume~\162, issue~\3, pages~\10651185, 2005,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.4007/annals.2005.162.1065}{10.4007/annals.2005.162.1065}}.\par\medskip




\bibitem[HAe17]{HAe17}T. Hales, M. Adams, G. Bauer, T.D. Dang, J. Harrison, L.T. Hoang, C. Kaliszyk, V. Magron, S. Mclaughlin, T. Nguyen, Q.T. Nguyen, T. Nipkow, S. Obua, J. Pleso, J. Rute, A. Solovyev, T.H.A. Ta, N.T. Tran, T.D. Trieu, J. Urban, K. Vu, R. Zumkeller  {\it A formal proof of the Kepler conjecture}, Forum of Mathematics, Pi, volume~\5, issue~\2, pages~\129, 2017,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1017/fmp.2017.1}{10.1017/fmp.2017.1}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1501.02155}{1501.02155}}.\par\medskip




\bibitem[HL72]{HL72}O.J. Heilmann, E.H. Lieb  {\it Theory of monomerdimer systems}, Communications in Mathematical Physics, volume~\25, issue~\3, pages~\190232, 1972,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF01877590}{10.1007/BF01877590}}.\par\medskip




\bibitem[HP74]{HP74}O.J. Heilmann, E. Pr\ae{}stgaard  {\it Phase transition in a lattice gas with third nearest neighbour exclusion on a square lattice}, Journal of Physics A, volume~\7, issue~\15, pages~\19131917, 1974,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1088/03054470/7/15/017}{10.1088/03054470/7/15/017}}.\par\medskip




\bibitem[HL79]{HL79}O.J. Heilmann, E.H. Lieb  {\it Lattice models for liquid crystals}, Journal of Statistical Physics, volume~\20, issue~\6, pages~\679693, 1979,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF01009518}{10.1007/BF01009518}}.\par\medskip




\bibitem[IVZ06]{IVZ06}D. Ioffe, Y. Velenik, M. Zahradn\'\i k  {\it EntropyDriven Phase Transition in a Polydisperse HardRods Lattice System}, Journal of Statistical Physics, volume~\122, issue~\4, pages~\761786, 2006,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s1095500580858}{10.1007/s1095500580858}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/math/0503222}{math/0503222}}.\par\medskip




\bibitem[IK15]{IK15}M. Isobe, W. Krauth  {\it Hardsphere melting and crystallization with eventchain Monte Carlo}, The Journal of Chemical Physics, volume~\143, number~\084509, 2015,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.4929529}{10.1063/1.4929529}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1505.07896}{1505.07896}}.\par\medskip




\bibitem[JL17]{JL17b}I. Jauslin, J.L. Lebowitz  {\it Highfugacity expansion, LeeYang zeros and orderdisorder transitions in hardcore lattice systems}, 2017,\par\penalty10000


arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1708.01912}{1708.01912}}.\par\medskip




\bibitem[JL17b]{JL17c}I. Jauslin, E.H. Lieb  {\it Nematic liquid crystal phase in a system of interacting dimers and monomers}, 2017,\par\penalty10000


arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1709.05297}{1709.05297}}.\par\medskip




\bibitem[Ka02]{Ka02}H.\~Kamerlingh Onnes  {\it Expression of the equation of state of gases and liquids by means of series}, KNAW, Proceedings, 4, p.\~125147, 1902.\par\medskip




\bibitem[KP84]{KP84}R. Koteck\'y, D. Preiss  {\it An inductive approach to the PirogovSinai theory}, Proceedings of the~\11th Winter School on Abstract Analysis, Rendiconti del Circolo Matematico di Palermo, Serie II, supplemento~\3, pages~\161164, 1984.\par\medskip




\bibitem[KP86]{KP86}R. Koteck\'y, D. Preiss  {\it Cluster expansion for abstract polymer models}, Communications in Mathematical Physics, volume~\103, issue~\3, pages~\491498, 1986,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF01211762}{10.1007/BF01211762}}.\par\medskip




\bibitem[LP66]{LP66}J.L. Lebowitz, O. Penrose  {\it Rigorous Treatment of the Van Der Waals‐Maxwell Theory of the Liquid‐Vapor Transition}, Journal of Mathematical Physics, volume~\7, issue~\1, pages~\98113, 1966,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.1704821}{10.1063/1.1704821}}.\par\medskip




\bibitem[Ma75]{Ma75}J. ClerkMaxwell  {\it On the Dynamical Evidence of the Molecular Constitution of Bodies}, Nature, volume~\11 , pages~\357359, 1875,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1038/011357a0}{10.1038/011357a0}}.\par\medskip




\bibitem[Ma37]{Ma37}J.E. Mayer  {\it The Statistical Mechanics of Condensing Systems. I}, The Journal of Chemical Physics, volume~\5, issue~\67, pages~\6773, 1937,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.1749933}{10.1063/1.1749933}}.\par\medskip




\bibitem[On49]{On49}L. Onsager  {\it The effects of shape on the interaction of colloidal particles}, Annals of the New York Academy of Sciences, volume~\51, pages~\627659, 1949,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1111/j.17496632.1949.tb27296.x}{10.1111/j.17496632.1949.tb27296.x}}.\par\medskip




\bibitem[PCF14]{PCF14}S. Papanikolaou, D. Charrier, E. Fradkin  {\it Ising nematic fluid phase of hardcore dimers on the square lattice}, Physical Review B, volume~\89, page~\035128, 2014,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRevB.89.035128}{10.1103/PhysRevB.89.035128}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1310.4173}{1310.4173}}.\par\medskip




\bibitem[Pe63]{Pe63}O. Penrose  {\it Convergence of Fugacity Expansions for Fluids and Lattice Gases}, Journal of Mathematical Physics, volume~\4, issue~\10, pages~\13121320, 1963,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.1703906}{10.1063/1.1703906}}.\par\medskip




\bibitem[PS75]{PS75}S.A. Pirogov, Y.G. Sinai  {\it Phase diagrams of classical lattice systems}, Theoretical and Mathematical Physics, volume~\25, pages~\11851192, 1975,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF01040127}{10.1007/BF01040127}}.\par\medskip




\bibitem[Ru63]{Ru63}D. Ruelle  {\it Correlation functions of classical gases}, Annals of Physics, volume~\25, issue~\1, pages~\109120, 1963,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1016/00034916(63)903361}{10.1016/00034916(63)903361}}.\par\medskip




\bibitem[Ru71]{Ru71}D. Ruelle  {\it Existence of a phase transition in a continuous classical system}, Physical Review Letters, volume~\27, issue~\16, pages~\10401041, 1971,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRevLett.27.1040}{10.1103/PhysRevLett.27.1040}}.\par\medskip




\bibitem[Ru99]{Ru99}D. Ruelle  {\it Statistical mechanics: rigorous results}, Imperial College Press, World Scientific, (first edition: Benjamin, 1969), 1999.\par\medskip




\bibitem[Ur27]{Ur27}H.D. Ursell  {\it The evaluation of Gibbs' phaseintegral for imperfect gases}, Mathematical Proceedings of the Cambridge Philosophical Society, volume~\23, issue~\6, pages~\685697, 1927,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1017/S0305004100011191}{10.1017/S0305004100011191}}.\par\medskip




\bibitem[WR70]{WR70}B. Widom, J.S. Rowlinson  {\it New Model for the Study of Liquid–Vapor Phase Transitions}, The Journal of Chemical Physics, volume~\52, pages~\16701684, 1970,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.1673203}{10.1063/1.1673203}}.\par\medskip




\bibitem[WJ57]{WJ57}W.W. Wood, J.D. Jacobson  {\it Preliminary results from a recalculation of the Monte Carlo equation of state of hard spheres}, The Journal of Chemical Physics, volume~\27, issue~\5, pages~\12071208, 1957,\par\penalty10000


doi:{\tt\color{blue}\href{http://dx.doi.org/10.1063/1.1743956}{10.1063/1.1743956}}.\par\medskip




@ 0,0 +1,15 @@


PROJECTNAME=crystal liquid gas nematic chiral


PNGS=$(addsuffix .png, $(PROJECTNAME))




all: $(PNGS)




$(PNGS):


cp $(patsubst %.png, %, $@)base.gp $(patsubst %.png, %, $@).gp


python $(patsubst %.png, %, $@).py >> $(patsubst %.png, %, $@).gp


gnuplot $(patsubst %.png, %, $@).gp > $@




cleanaux:


rm f $(addsuffix .gp, $(PROJECTNAME))




clean: cleanaux


rm f $(PNGS)


@ 0,0 +1,22 @@


set terminal pngcairo size 2048,2048




set key off


unset colorbox


unset border


unset xtics


unset ytics


unset ztics




set parametric




set view 80,10,1.5


set view equal xyz




set isosample 100




set pm3d depthorder


set pm3d lighting primary 0.50 specular 0.6




set palette defined (0 "#339999", 1 "#339999")




splot \


@ 0,0 +1,102 @@


#!/usr/bin/env python3




from math import *


import random


import sys




# size of space


L=30


# number of lines


H=5


# heigh of lines


height=5


# number of rods per line


N=16


# aspect ratio


a=10


# spread in theta angle


spread_t=pi/60


# in phi


spread_p=pi/60


# in height


spread_h=1/120




# check whether two rods overlap


def check_overlap(rod1,rod2):


# relative placement


relative_pos=unrotate(subtract(rod2[0],rod1[0]), rod1[1])


if(abs(relative_pos[0])<2 and abs(relative_pos[1])<2 and abs(relative_pos[2])<2):


return(True)


# relative angle


relative_ang=cart_to_spherical(unrotate(spherical_to_cart(rod2[1]), rod1[1]))


# exclusion volume


# rotate other rod


relative_pos=unrotate(relative_pos, [0,relative_ang[1]])


#if(abs(relative_pos[1])<2 and abs(relative_pos[0])2<abs(sin(relative_ang[0]))*a and abs(relative_pos[2])a2<abs(cos(relative_ang[0])*a)):


if(abs(relative_pos[1])<2 and abs(relative_pos[0])2<abs(sin(relative_ang[0]))*a and abs(sin(relative_ang[0])*relative_pos[2]cos(relative_ang[0])*relative_pos[0])2<abs(sin(relative_ang[0])*a)):


return(True)


return(False)




# def subtract vectors


def subtract(x,y):


return([x[0]y[0],x[1]y[1],x[2]y[2]])


# rotate vector


def unrotate(x,w):


ret=[x[0],x[1],x[2]]


# rotate phi


tmp=cos(w[1])*ret[0]+sin(w[1])*ret[1]


ret[1]=sin(w[1])*ret[0]+cos(w[1])*ret[1]


ret[0]=tmp


# rotate theta


tmp=cos(w[0])*ret[0]sin(w[0])*ret[2]


ret[2]=sin(w[0])*ret[0]+cos(w[0])*ret[2]


ret[0]=tmp


return(ret)




# convert coordinates


def spherical_to_cart(w):


return([cos(w[1])*sin(w[0]),sin(w[1])*sin(w[0]),cos(w[0])])


def cart_to_spherical(x):


w=[0,0]


w[0]=acos(x[2])


if(sin(w[0]==0)):


return([w[0],0])


c=x[0]/sin(w[0])


s=x[1]/sin(w[0])


# to avoid truncation errors


if(abs(c)>1 and abs(c)<1.0001):


if(c>0):


return([w[0],0])


else:


return([w[0],pi])


if(s>=0):


return([w[0],acos(c)])


return([w[0],2*piacos(c)])




# configuration


config=[]


# add rods


for h in range(H):


config_h=[]


while len(config_h)<N:


# random position and angles


x=[random.uniform(0,L), random.uniform(0,L), random.gauss(h*height,spread_h)]


w=[abs(random.gauss(pi/2,spread_t)), random.gauss(pi/2*(1h/(H1)),spread_p)]


# chek it does not interfere with other rods


fine=True


for rod in config+config_h:


if(check_overlap(rod,[x,w])):


fine=False


break


if fine:


config_h.append([x,w])


config=config+config_h




for i in range(len(config)):


rod=config[i]


print(str(rod[0][0])+"+("+str(cos(rod[1][1])*cos(rod[1][0]))+")*cos(u)*sin(v)+("+str(sin(rod[1][1]))+")*sin(u)*sin(v)+("+str(cos(rod[1][1])*sin(rod[1][0])*a)+")*cos(v)", end=", ")


print(str(rod[0][1])+"+("+str(sin(rod[1][1])*cos(rod[1][0]))+")*cos(u)*sin(v)+("+str(cos(rod[1][1]))+")*sin(u)*sin(v)+("+str(sin(rod[1][1])*sin(rod[1][0])*a)+")*cos(v)", end=", ")


print(str(rod[0][2])+"+("+str(sin(rod[1][0]))+")*cos(u)*sin(v)+("+str(cos(rod[1][0])*a)+")*cos(v)", end=" ")


print("with pm3d", end="")


if i<len(config)1:


print(", \\")


@ 0,0 +1,21 @@


set terminal pngcairo size 2048,2048




set key off


unset colorbox


unset border


unset xtics


unset ytics


unset ztics




set parametric




set view equal xyz




set isosample 100




set pm3d depthorder


set pm3d lighting primary 0.50 specular 0.6




set palette defined (0 "#339999", 1"#339999")




splot \


@ 0,0 +1,24 @@


#!/usr/bin/env python3




from math import *


import random


import sys




# size of lattice


N=5




# configuration


config=[]


for i in range(N):


for j in range(N):


for k in range(N):


config.append([2*i+((j+k)%2),sqrt(3)*(j+(k%2)/3),2*sqrt(6)/3*k])






for i in range(len(config)):


print(str(config[i][0])+"+cos(u)*sin(v)", end=",")


print(str(config[i][1])+"+sin(u)*sin(v)", end=",")


print(str(config[i][2])+"+cos(v)", end=" ")


print("with pm3d", end="")


if i<len(config)1:


print(", \\")


@ 0,0 +1,21 @@


set terminal pngcairo size 2048,2048




set key off


unset colorbox


unset border


unset xtics


unset ytics


unset ztics




set parametric




set view equal xyz




set isosample 100




set pm3d depthorder


set pm3d lighting primary 0.5 specular 0.6




set palette defined (0 "#339999", 1"#339999")




splot \


@ 0,0 +1,39 @@


#!/usr/bin/env python3




from math import *


import random




# size of space


L=15


# number of particles


N=6




# check whether two rods overlap


def check_overlap(sphere1,sphere2):


if(sqrt((sphere2[0]sphere1[0])**2+(sphere2[1]sphere1[1])**2+(sphere2[2]sphere1[2])**2)<2):


return(True)


return(False)




# configuration


config=[]


# add spheres


while len(config)<N:


# random position


x=[random.uniform(0,L), random.uniform(0,L), random.uniform(0,L)]


# check it does not interfere with other spheres


fine=True


for sphere in config:


if(check_overlap(sphere,x)):


fine=False


break


if fine:


config.append(x)




for i in range(len(config)):


sphere=config[i]


print(str(sphere[0])+"+cos(u)*sin(v)", end=", ")


print(str(sphere[1])+"+sin(u)*sin(v)", end=", ")


print(str(sphere[2])+"+cos(v)", end=" ")


print("with pm3d", end="")


if i<len(config)1:


print(", \\")


@ 0,0 +1,21 @@


set terminal pngcairo size 2048,2048




set key off


unset colorbox


unset border


unset xtics


unset ytics


unset ztics




set parametric




set view equal xyz




set isosample 100




set pm3d depthorder


set pm3d lighting primary 0.50 specular 0.6




set palette defined (0 "#339999", 1"#339999")




splot \


@ 0,0 +1,39 @@


#!/usr/bin/env python3




from math import *


import random




# size of space


L=15


# number of particles


N=100




# check whether two rods overlap


def check_overlap(sphere1,sphere2):


if(sqrt((sphere2[0]sphere1[0])**2+(sphere2[1]sphere1[1])**2+(sphere2[2]sphere1[2])**2)<2):


return(True)


return(False)




# configuration


config=[]


# add spheres


while len(config)<N:


# random position


x=[random.uniform(0,L), random.uniform(0,L), random.uniform(0,L)]


# check it does not interfere with other spheres


fine=True


for sphere in config:


if(check_overlap(sphere,x)):


fine=False


break


if fine:


config.append(x)




for i in range(len(config)):


sphere=config[i]


print(str(sphere[0])+"+cos(u)*sin(v)", end=", ")


print(str(sphere[1])+"+sin(u)*sin(v)", end=", ")


print(str(sphere[2])+"+cos(v)", end=" ")


print("with pm3d", end="")


if i<len(config)1:


print(", \\")


@ 0,0 +1,21 @@


set terminal pngcairo size 2048,2048




set key off


unset colorbox


unset border


unset xtics


unset ytics


unset ztics




set parametric




set view equal xyz




set isosample 100




set pm3d depthorder


set pm3d lighting primary 0.50 specular 0.6




set palette defined (0 "#339999", 1 "#339999")




splot \


@ 0,0 +1,90 @@


#!/usr/bin/env python3




from math import *


import random




# size of space


L=30


# number of rods


N=75


# aspect ratio


a=10


# spread in theta angle


spread=pi/30




# check whether two rods overlap


def check_overlap(rod1,rod2):


# relative placement


relative_pos=unrotate(subtract(rod2[0],rod1[0]), rod1[1])


if(abs(relative_pos[0])<2 and abs(relative_pos[1])<2 and abs(relative_pos[2])<2):


return(True)


# relative angle


relative_ang=cart_to_spherical(unrotate(spherical_to_cart(rod2[1]), rod1[1]))


# exclusion volume


# rotate other rod


relative_pos=unrotate(relative_pos, [0,relative_ang[1]])


#if(abs(relative_pos[1])<2 and abs(relative_pos[0])2<abs(sin(relative_ang[0]))*a and abs(relative_pos[2])a2<abs(cos(relative_ang[0])*a)):


if(abs(relative_pos[1])<2 and abs(relative_pos[0])2<abs(sin(relative_ang[0]))*a and abs(sin(relative_ang[0])*relative_pos[2]cos(relative_ang[0])*relative_pos[0])2<abs(sin(relative_ang[0])*a)):


return(True)


return(False)




# def subtract vectors


def subtract(x,y):


return([x[0]y[0],x[1]y[1],x[2]y[2]])


# rotate vector


def unrotate(x,w):


ret=[x[0],x[1],x[2]]


# rotate phi


tmp=cos(w[1])*ret[0]+sin(w[1])*ret[1]


ret[1]=sin(w[1])*ret[0]+cos(w[1])*ret[1]


ret[0]=tmp


# rotate theta


tmp=cos(w[0])*ret[0]sin(w[0])*ret[2]


ret[2]=sin(w[0])*ret[0]+cos(w[0])*ret[2]


ret[0]=tmp


return(ret)




# convert coordinates


def spherical_to_cart(w):


return([cos(w[1])*sin(w[0]),sin(w[1])*sin(w[0]),cos(w[0])])


def cart_to_spherical(x):


w=[0,0]


w[0]=acos(x[2])


if(sin(w[0]==0)):


return([w[0],0])


c=x[0]/sin(w[0])


s=x[1]/sin(w[0])


# to avoid truncation errors


if(abs(c)>1 and abs(c)<1.0001):


if(c>0):


return([w[0],0])


else:


return([w[0],pi])


if(s>=0):


return([w[0],acos(c)])


return([w[0],2*piacos(c)])




# configuration


config=[]


# add rods


while len(config)<N:


# random position and angles


x=[random.uniform(0,L), random.uniform(0,L), random.uniform(0,L)]


w=[abs(random.gauss(0,spread)), random.uniform(0,2*pi)]


# chek it does not interfere with other rods


fine=True


for rod in config:


if(check_overlap(rod,[x,w])):


fine=False


break


if fine:


config.append([x,w])




for i in range(len(config)):


rod=config[i]


print(str(rod[0][0])+"+("+str(cos(rod[1][1])*cos(rod[1][0]))+")*cos(u)*sin(v)+("+str(sin(rod[1][1]))+")*sin(u)*sin(v)+("+str(cos(rod[1][1])*sin(rod[1][0])*a)+")*cos(v)", end=", ")


print(str(rod[0][1])+"+("+str(sin(rod[1][1])*cos(rod[1][0]))+")*cos(u)*sin(v)+("+str(cos(rod[1][1]))+")*sin(u)*sin(v)+("+str(sin(rod[1][1])*sin(rod[1][0])*a)+")*cos(v)", end=", ")


print(str(rod[0][2])+"+("+str(sin(rod[1][0]))+")*cos(u)*sin(v)+("+str(cos(rod[1][0])*a)+")*cos(v)", end=" ")


print("with pm3d", end="")


if i<len(config)1:


print(", \\")


@ 0,0 +1,38 @@


PROJECTNAME=interaction boundary dimer_contour


LIBS=$(notdir $(wildcard libs/*))




PDFS=$(addsuffix .pdf, $(PROJECTNAME))


SOURCES=$(addsuffix .tikz.tex, $(PROJECTNAME))




all: $(PDFS)




$(PDFS): $(SOURCES) $(LIBS)


echo $(LIBS)


pdflatex jobname $(basename $@) filelineerror $(patsubst %.pdf, %.tikz.tex, $@)




$(SOURCES):


python3 dimer_conf.py




install: $(PDFS)


cp $^ $(INSTALLDIR)/




installsources: $(SOURCES)


cp $^ $(INSTALLDIR)/




$(LIBS):


ln fs libs/$@ ./




cleanlibs:


rm f $(LIBS)




cleanaux:


rm f $(addsuffix .aux, $(PROJECTNAME))


rm f $(addsuffix .log, $(PROJECTNAME))




cleantex:


rm f $(PDFS)




cleansources:


rm f $(SOURCES)




clean: cleanlibs cleanaux cleantex cleansources


@ 0,0 +1,261 @@


#!/usr/bin/env python3




import random


from math import *




# size of the grid


L=24


# boundary thickness (must be even)


l0=4


# activity and interaction


z=3


J=5






# draw random dimers in a select area


def fill_dimers(mask,direction):


if(direction=="h"):


d=[1,0]


else:


d=[0,1]




dimers=[]




# keep track of which sites are occupied


occupied=[]


for i in range(L):


occupied.append([])


for j in range(L):


occupied[i].append(0)




for i in range(10000):


# pick a random edge (indexed by its lowerleft corner)


e=None


while(e==None or e[0]+d[0]>=L or e[1]+d[1]>=L or mask[e[0]][e[1]]==0 or mask[e[0]+d[0]][e[1]+d[1]]==0):


e=[random.randint(0,L1),random.randint(0,L1)]


# check whether a dimer can be added to the edge


if(occupied[e[0]][e[1]]==0 and occupied[e[0]+d[0]][e[1]+d[1]]==0):


# number of interactions


interactions=0


if(e[0]+2*d[0]<L and e[1]+2*d[1]<L and occupied[e[0]+2*d[0]][e[1]+2*d[1]]==1):


interactions=interactions+1


if(e[0]d[0]>=0 and e[1]d[1]>=0 and occupied[e[0]d[0]][e[1]d[1]]==1):


interactions=interactions+1


# probability of adding the dimer


p=1/(1+1/z*exp(J*interactions))


if(p>random.random()):


# add dimer


dimers.append(e)


occupied[e[0]][e[1]]=1


occupied[e[0]+d[0]][e[1]+d[1]]=1




return(dimers)




# find interactions


def interactions(dimers,direction):


if(direction=="h"):


d=[1,0]


else:


d=[0,1]




out=[]


for d1 in dimers:


for d2 in dimers:


if(d1[0]d2[0]==2*d[0] and d1[1]d2[1]==2*d[1]):


out.append([d2[0]+d[0],d2[1]+d[1]])


return(out)




# find interactions with boundary


def boundary_interactions(dimers,rho):


out=[]


for d in dimers:


for v in rho:


if(d[0]==v[0] and d[1]==v[1]):


out.append([d[0],d[1]1])


elif(d[0]==v[0] and d[1]==v[1]1):


out.append([d[0],d[1]+1])


return(out)






# draw dimers


def draw_dimers(v_dimers,h_dimers,file_desc,color):


for d in v_dimers:


print("\\dimer{[color="+color+"]("+str(d[0])+","+str(d[1])+")}v", file=file_desc)


print("", file=file_desc)


for d in h_dimers:


print("\\dimer{[color="+color+"]("+str(d[0])+","+str(d[1])+")}h", file=file_desc)


print("", file=file_desc)




# draw interactions


def draw_interactions(v_interactions,h_interactions,file_desc):


for d in v_interactions:


print("\\interaction{("+str(d[0])+","+str(d[1])+")}v", file=file_desc)


print("", file=file_desc)


for d in h_interactions:


print("\\interaction{("+str(d[0])+","+str(d[1])+")}h", file=file_desc)


print("", file=file_desc)






# draw loops


def draw_loops(loops,file_desc,color):


for loop in loops:


print("\\draw[color="+color+", line width=3pt]",end="",file=file_desc)


for e in loop:


print("("+str(e[0])+","+str(e[1])+")",end="",file=file_desc)


print("cycle;",file=file_desc)




# init tikz file


def init_tikz(filename):


file_desc=open(filename,"w")


print("\\documentclass{standalone}\n\n\\usepackage{tikz}\n\\usepackage{dimer}\n\\usetikzlibrary{decorations.pathmorphing}\n\n\\begin{document}\n\\begin{tikzpicture}\n\n", file=file_desc)


return(file_desc)




# close tikz file


def close_tikz(file_desc):


print("\\end{tikzpicture}\n\\end{document}", file=file_desc)


file_desc.close()






mu=int(L/2)




# loops


loop1=[]


for i in range(0,2*l0):


loop1.append([mul0+i,mu+4.5])


for i in range(0,4):


loop1.append([mu+l01+0.5,mu+4i])


for i in range(0,l0):


loop1.append([mu+l0+i,mu+0.5])


for i in range(0,6):


loop1.append([mu+2*l01+0.5,mui])


for i in range(0,4*l0):


loop1.append([mu+2*l01i,mu5.5])


for i in range(0,6):


loop1.append([mu2*l00.5,mu5+i])


for i in range(0,l0):


loop1.append([mu2*l0+i,mu+0.5])


for i in range(0,4):


loop1.append([mul00.5,mu+1+i])


# core of loop1


core_loop1=[]


for i in range(0,2*l04):


core_loop1.append([mul0+2+i,mu+3.5])


for i in range(0,3):


core_loop1.append([mu+l03+0.5,mu+3i])


core_loop1.append([mu+l02,mu+0.5])


core_loop1.append([mu+l01,mu+0.5])


for i in range(0,l02):


core_loop1.append([mu+l0+i,mu1+0.5])


for i in range(0,4):


core_loop1.append([mu+2*l03+0.5,mu1i])


for i in range(0,4*l04):


core_loop1.append([mu+2*l03i,mu4.5])


for i in range(0,4):


core_loop1.append([mu2*l0+20.5,mu4+i])


for i in range(0,l02):


core_loop1.append([mu2*l0+2+i,mu1+0.5])


core_loop1.append([mul0,mu+0.5])


core_loop1.append([mul0+1,mu+0.5])


for i in range(0,3):


core_loop1.append([mul0+20.5,mu+1+i])




loop2=[[mu1,mu+2.5],[mu0.5,mu+2],[mu0.5,mu+1],[mu1,mu+0.5],[mu1.5,mu+1],[mu1.5,mu+2]]


loop3=[[mu1,mu1.5],[mu,mu1.5],[mu+0.5,mu2],[mu+0.5,mu3],[mu,mu3.5],[mu1,mu3.5],[mu1.5,mu3],[mu1.5,mu2]]






loops=[loop1,loop2,loop3]




# masks


# init


v_mask=[]


h_mask=[]


for i in range(L):


v_mask.append([])


h_mask.append([])


for j in range(L):


v_mask[i].append(1)


h_mask[i].append(0)


# draw masks


for i in range(mul0,mu+l0):


for j in range(mu+1,mu+5):


v_mask[i][j]=0


for i in range(mu2*l0,mu+2*l0):


for j in range(mu5,mu+1):


v_mask[i][j]=0


for i in range(mul0+2,mu+l02):


for j in range(mu+1,mu+4):


h_mask[i][j]=1


for i in range(mul0,mu+l0):


h_mask[i][mu]=1


for i in range(mu2*l0+2,mu+2*l02):


for j in range(mu4,mu):


h_mask[i][j]=1


h_mask[mu1][mu+1]=0


h_mask[mu1][mu+2]=0


h_mask[mu1][mu3]=0


h_mask[mu1][mu2]=0


h_mask[mu][mu3]=0


h_mask[mu][mu2]=0




# random dimers in mask


v_dimers=fill_dimers(v_mask,"v")


h_dimers=fill_dimers(h_mask,"h")




# mantle dimers


h_mantle=[]


for i in range(0,l0):


h_mantle.append([mul0+2*i,mu+4])


for i in range(0,4):


h_mantle.append([mu+l02,mu+4i])


h_mantle.append([mul0,mu+4i])


for i in range(0,int(l0/2)):


h_mantle.append([mu+l0+2*i,mu])


h_mantle.append([mul022*i,mu])


for i in range(0,5):


h_mantle.append([mu+2*l02,mui])


h_mantle.append([mu2*l0,mui])


for i in range(0,2*l0):


h_mantle.append([mu2*l0+2*i,mu5])




v_mantle=[]


v_mantle.append([mu1,mu+1])


v_mantle.append([mu1,mu3])


v_mantle.append([mu,mu3])




# interactions


v_interactions=interactions(v_dimers+v_mantle,"v")


h_interactions=interactions(h_dimers+h_mantle,"h")




# magnetized part of the boundary


rho=[]


for i in range(0,L):


if(random.randint(0,1)==0):


rho.append([i,0])


if(random.randint(0,1)==0):


rho.append([i,L1])






# files




interaction=init_tikz("interaction.tikz.tex")


print("\\grid{"+str(L1)+"}{"+str(L1)+"}{(0,0)}\n", file=interaction)


draw_interactions(v_interactions,h_interactions,interaction)


draw_dimers(v_dimers+v_mantle,h_dimers+h_mantle,interaction,"black")


close_tikz(interaction)




boundary=init_tikz("boundary.tikz.tex")


print("\\fill[color=cyan](0.5,0.5)++("+str(L)+",0)++(0,"+str(l0)+")++("+str(L)+",0)cycle;", file=boundary)


print("\\fill[color=cyan](0.5,"+str(Ll00.5)+")++("+str(L)+",0)++(0,"+str(l0)+")++("+str(L)+",0)cycle;", file=boundary)


print("", file=boundary)


print("\\grid{"+str(L1)+"}{"+str(L1)+"}{(0,0)}\n", file=boundary)


draw_dimers(v_dimers+v_mantle,h_dimers+h_mantle,boundary,"black")


close_tikz(boundary)




contour=init_tikz("dimer_contour.tikz.tex")


print("\\grid{"+str(L1)+"}{"+str(L1)+"}{(0,0)}\n", file=contour)


draw_loops([loop1,loop2,loop3],contour,"blue")


draw_interactions(v_interactions,h_interactions,contour)


draw_dimers(v_dimers,h_dimers,contour,"black")


draw_dimers(v_mantle,h_mantle,contour,"black")


close_tikz(contour)




@ 0,0 +1 @@


../../libs/dimer.sty


@ 0,0 +1,25 @@


PROJECTNAME=$(basename $(basename $(wildcard *.tikz.tex)))


LIBS=$(notdir $(wildcard libs/*))




PDFS=$(addsuffix .pdf, $(PROJECTNAME))




all: $(PDFS)




$(PDFS): $(LIBS)


echo $(LIBS)


pdflatex jobname $(basename $@) filelineerror $(patsubst %.pdf, %.tikz.tex, $@)




$(LIBS):


ln fs libs/$@ ./




cleanlibs:


rm f $(LIBS)




cleanaux:


rm f $(addsuffix .aux, $(PROJECTNAME))


rm f $(addsuffix .log, $(PROJECTNAME))




cleantex:


rm f $(PDFS)




clean: cleanlibs cleanaux cleantex


@ 0,0 +1,33 @@


% square lattice (width #1, height #2, origin #3)


\def\grid#1#2#3{


\foreach\i in {0,...,#2}{


\draw#3++(0,\i)++(#1,0);


}


\foreach\i in {0,...,#1}{


\draw#3++(\i,0)++(0,#2);


}


}




% dimer (bottomleft vertex #1, vertical or horizontal #2)


\def\dimer#1#2{


\if#2h


\draw[line width=5pt]#1++(1,0);


\fill#1circle(7pt);


\fill#1++(1,0)circle(7pt);


\else


\draw[line width=5pt]#1++(0,1);


\fill#1circle(7pt);


\fill#1++(0,1)circle(7pt);


\fi


}




% interactions (bottomleft vertex #1, vertical or horizontal #2)


\def\interaction#1#2{


\if#2h


\draw[line width=5pt, color=white]#1++(1,0);


\draw[line width=4pt, decorate, decoration={snake}, color=red]#1++(1,0);


\else


\draw[line width=5pt, color=white]#1++(0,1);


\draw[line width=4pt, decorate, decoration={snake}, color=red]#1++(0,1);


\fi


}


@ 0,0 +1 @@


../libs/Makefile


@ 0,0 +1 @@


../../libs/dimer.sty


@ 0,0 +1,132 @@


\documentclass{standalone}




\usepackage{tikz}


\usepackage{dimer}




\begin{document}


\begin{tikzpicture}






%% mantles




% blue


\fill[color=blue](2,6.5)++(13,0)++(0.5,0.5)++(0,8)++(0.5,0.5)++(13,0)++(0.5,0.5)++(0,8)cycle;


\fill[color=white](4,7.5)++(9,0)++(0.5,0.5)++(0,6)++(0.5,0.5)++(9,0)++(0.5,0.5)++(0,6)cycle;


% red


\fill[color=red](6,8.5)++(4,0)++(0.5,0.5)++(0,5)++(0.5,0.5)++(4,0)++(0.5,0.5)++(0,5)cycle;


\fill[color=white](7,10.5)++(2,0)++(0.5,0.5)++(0,1)++(0.5,0.5)++(2,0)++(0.5,0.5)++ 