This notebook calculates and compares the torus one-point conformal block and Nekrasov's partition function of N=2* U(2) theory.

We first load the Combinatorica package to use the function Paritions[] to enumarete Young diagrams

<<Combinatorica`

CFT

B  Evaluates < 0 | LLL .... LLLL | 0 >  by commutation relations.

B[{}]:=1

B[{n_,x___}]/; n<0:=0

B[{n_,x___}]/; n==0:=D0  B[{x}]

B[{x___,n_}]/; n>0:=0

B[{x___,n_}]/; n==0:=D0  B[{x}]

B[{l___,m_,n_,r___}] /; (m≠ -n  && m≥ 0  && n<0 ) :=(m-n) B[{l,m+n,r}] +B[{l,n,m,r}]

B[{l___,m_,n_,r___}] /; (m== -n  && m≥ 0  && n<0 ) :=(m-n) B[{l,m+n,r}] +B[{l,n,m,r}]+ c m(m^2-1)/12 B[{l,r}]

r  Evaluates < 0 | LLL .. O .. LLLL | 0 >  by commutation relations.

R[{},{}]=Z^(D1−D2−D3)

R[{n_,x___},z_]/; n<0:=0

R[{n_,x___},z_]/; n==0:=D1 R[{x},z]

R[z_,{x___,n_}]/; n>0:=0

R[z_,{x___,n_}]/; n==0:=D3  R[z,{x}]

R[{l___,m_,n_,r___},z_] /; (m≠ -n  && m≥ 0  && n<0 ) :=(m-n) R[{l,m+n,r},z] +R[{l,n,m,r},z]

R[{l___,m_,n_,r___},z_] /; (m== -n  && m≥ 0  && n<0 ) :=(m-n) R[{l,m+n,r},z] +R[{l,n,m,r},z]+ c  m(m^2-1)/12 R[{l,r},z]

R[z_,{l___,m_,n_,r___}] /; (m≠ -n  && m≥ 0  && n<0 ) :=(m-n) R[z,{l,m+n,r}] +R[z,{l,n,m,r}]

R[z_,{l___,m_,n_,r___}] /; (m== -n  && m≥ 0  && n<0 ) :=(m-n) R[z,{l,m+n,r}] +R[z,{l,n,m,r}]+ c m(m^2-1)/12 R[z,{l,r}]

R[{x___,m_},{y___}]/; m≥ 0 := R[{x},{m,y}] + (1+m) Z^m D2 R[{x},{y}]+  Z^(m+1)D[ R[{x},{y}],Z]

R[{x___},{m_,y___}]/; m<0 := R[{x,m},{y}] - (1+m) Z^m D2 R[{x},{y}]-  Z^(m+1)D[ R[{x},{y}],Z]

ket[n_]:=Module[{par=Partitions[n]},Table[R[Reverse[par[[i]]],{}]/.Z->1,{i,1,Length[par]}]]

bra[n_]:=Module[{par=Partitions[n]},Table[R[{},-par[[i]]]/.Z->1,{i,1,Length[par]}]]

mid[n_,m_]:=Module[{parL=Partitions[n],parR=Partitions[m]},Table[R[Reverse[parL[[i]]],-parR[[j]]]/.Z->1,{i,1,Length[parL]},{j,1,Length[parR]}]]

Kac matrix.

Kac[n_]:=Kac[n]=Module[{par=Partitions[n]},Table[B[Join[Reverse[ par[[i]]],-par[[j]]]],{i,1,Length[par]},{j,1,Length[par]}]]

Nekrasov parittion functions

DualPartition[l_]:=Module[{i},Table[Length[Select[l,(#>=i)&]],{i,1,l[[1]]}]]

DualPartition[{}]={};

get[Y_,i_]:=If[i>Length[Y],0,Y[[i]]]

arm and leg lengths

arm[Y_,{i_,j_}]:=get[Y,i]-j

leg[Y_,{i_,j_}]:=get[DualPartition[Y],j]-i

boxes[Y_]:=Join@@Module[{i,j},Table[Table[{i,j},{j,1,Y[[i]]}],{i,1,Length[Y]}]]

e[a_,Y1_,Y2_,s_]:=a-(Subscript[ϵ, 1])  leg[Y2,s] + (Subscript[ϵ, 2]) (arm[Y1,s]+1)

Contribution of a W-boson

fromWa[a_,bb_,Y1_,Y2_]:=(Times @@ ( (e[a-bb,Y1,Y2,#]((Subscript[ϵ, 1])+(Subscript[ϵ, 2])-e[a-bb,Y1,Y2,#]))&/@ boxes[Y1]))

Contribution of a U(2) vector multiplet

fromSU2V[a_,Y1_,Y2_]:=1/(fromWa[a,a,Y1,Y1]fromWa[a,-a,Y1,Y2]fromWa[-a,a,Y2,Y1]fromWa[-a,-a,Y2,Y2])

youngPairs[k_]:=youngPairs[k]=Join@@ Module[{i},Join@@ Table[Outer[List,Partitions[i],Partitions[k-i],1],{i,0,k}]]

Contribution of a hyper in the doublet of SU(2)

eigen[a_,Y_]:=(a +(Subscript[ϵ, 1]) #[[1]]+(Subscript[ϵ, 2]) #[[2]]) &/@ boxes[Y]

eigen[a_,Y1_,Y2_]:=eigen[a,Y1]~Join~eigen[-a,Y2]

fund[a_,Y1_,Y2_,m_]:=(Times@@((#-m)&/@eigen[a,Y1,Y2]))

antifund[a_,Y1_,Y2_,m_]:=(Times@@((#-((Subscript[ϵ, 1])+(Subscript[ϵ, 2])-m))&/@eigen[a,Y1,Y2]))

Contribution of a hyper in bifundamental

factorA[a_,bb_,Y1_,Y2_,mb_]:=(Times @@ ( ((e[a-bb,Y1,Y2,#]-mb))&/@ boxes[Y1]))

factorB[a_,bb_,Y1_,Y2_,mb_]:=(Times @@ ( (((Subscript[ϵ, 1])+(Subscript[ϵ, 2])-e[bb-a,Y2,Y1,#]-mb))&/@ boxes[Y2]))

bifundX[a1_,a2_,Y1_,Y2_,Y3_,Y4_,mb_]:= factorA[a1,a2,Y1,Y3,mb]factorA[a1,-a2,Y1,Y4,mb]factorA[-a1,a2,Y2,Y3,mb]factorA[-a1,-a2,Y2,Y4,mb] factorB[a1,a2,Y1,Y3,mb]factorB[a1,-a2,Y1,Y4,mb]factorB[-a1,a2,Y2,Y3,mb]factorB[-a1,-a2,Y2,Y4,mb]

Comparison

Torus 1-point conformal block.   C1 is the dimension of the state in the intermediate channel; D0 is the dimension of the operator inserted .

F1[n_]:=Tr[(Inverse[Kac[n]]/.D0->C1).(mid[n,n]/.{D1-> C1,D2->D0, D3->C1 })]

FF[n_]:=Sum[ q^i  F1[i],{i,0,n}]+O[q]^(n+1)

i instanton contribution of U(2) N = 2* theory.  μ is the mass of the adjoint ; a is the vev.

Z[i_]:=Module [{A=youngPairs[i]},Sum[Module[{A1=A[[s]][[1]],A2=A[[s]][[2]]},bifundX[a,a,A1,A2,A1,A2,μ]fromSU2V[a,A1,A2]],{s,1,Length[A]}]]

ZZ[n_]:=Sum[ q^i  Z[i],{i,0,n}]+O[q]^(n+1)

Virasoro data in terms via a,  ϵ1 ϵ2

Q2=((Subscript[ϵ, 1])+(Subscript[ϵ, 2]))^2/((Subscript[ϵ, 1]) (Subscript[ϵ, 2]));

c=1+6 Q2;

mapping of the instanton side and the conformal block side

Δ[a_]:=Q2/4-a^2/((Subscript[ϵ, 1])(Subscript[ϵ, 2]))

map={D0-> Δ[m],C1-> Δ[a]};

μ=m+((Subscript[ϵ, 1])+(Subscript[ϵ, 2]))/2;

"U(1) factor"

u1exp[a_,b_]:=2(((Subscript[ϵ, 1])+(Subscript[ϵ, 2]))/2 -a )(((Subscript[ϵ, 1])+(Subscript[ϵ, 2]))/2+b)/((Subscript[ϵ, 1])(Subscript[ϵ, 2]))

U1factor[n_]:=Product[(1- q^i)^(u1exp[m,m]-1)+O[q]^(n+1),{i,1,n}]

k is the instanton number up to which you'd like to calculate. 
The results is in a series expansion in q.  Change it to 2 or 3 to have fun.

k=1;

FFF=FF[k]/.map

U1=U1factor[k]

ZZZ=ZZ[k]

Finally we compare  U1 factor × conformal block vs. the instanton partition function. The difference should vanish to the order k, giving ((O[q])^(k+1)) .

U1   FFF- ZZZ //FullSimplify

Aug/18/2010  -- Yuji Tachikawa