Jeffrey-Kirwan residue formula for N=4,D=1GLSM

Boris Pioline, Jan 6, 2016; 

Based on Hori, Kim, Lee, “Witten index and wall-crossing”, [arXiv:1407.2567]  JHEP 1501 (2015) 124
and Benini Eager Hori Tachikawa, “Elliptic genera of 2d N=2 gauge theories”, [arXiv:1308.4896] 

We use Cauchy' s determinant formula to decompose the vector multiplet, and apply the Jeffrey-Kirwan formula for each piece separately;
The chiral multiplets matter are specified from a charge matrix, or from a quiver.

SetDirectory[NotebookDirectory[]];
<<CoulombHiggs`

Various examples of quivers

(* 2 node, Grassmannian *)
a12=-5;
Mat={{0,a12},{-a12,0}};
RMat={{0,0},{0,0}};

Nvec={1,2};Cvec={-1,1/2};

Nvec={1,4};Cvec={-1,1/4};

Nvec={1,3};Cvec={-1,1/3};

Nvec={1,1};Cvec={-1,1};

Nvec={2,2};Cvec={-1,1};

Nvec={2,3};Cvec={-1/2,1/3};

(* 1 node with one adjoint *)
Mat={{1}};
RMat={{2/3}};
Nvec={2};
Cvec={0};

(* 2 node with one adjoint *)
a12=-3;
Mat={{1,a12},{-a12,0}};
RMat={{2/3,0},{0,0}};
Nvec={2,1};
Cvec={-1,1}/Nvec;

(* 3-node linear quiver *)
Clear[a12,a23];
a12=3;a23=-2;a31=0;
Nvec={1,3,1};
Cvec={2,-7,5}/Nvec;
r12=0;r23=0;r31=0;
Mat={{0,a12,-a31},{-a12,0,a23},{a31,-a23,0}};
RMat={{0,r12,r31},{r12,0,r23},{r31,r23,0}};

(* 3 node,Abelian *)
a12=2;a23=3;a31=0;
a12=2;a23=4;a31=-3;
a12=6;a23=-3;a31=0;
a12=7;a23=3;a31=4;
a12=10;a23=4;a31=4;
a12=10;a23=5;a31=3;
a12=6;a23=-3;a31=0;
a12=6;a23=5;a31=4;

r12=0;r23=0;r31=2;

Mat={{0,a12,-a31},{-a12,0,a23},{a31,-a23,0}};
RMat={{0,r12,r31},{r12,0,r23},{r31,r23,0}};

Cvec={4,-3,-1};
Cvec={1,2,-3};
Cvec={5,-1,-4};
Cvec={4,-11,7};
Cvec={5,-2,-3};
Nvec=Table[1,{i,Length[Mat]}];

(* 3 node, non-Abelian *)
Nvec={1,1,2};
Cvec={-1,-3,4}/Nvec;
Cvec={1.1,2.9,-4}/Nvec;
(* I *)
Cvec={1,3,-2}/Nvec;
(* II *)
Cvec={-3,5,-2}/Nvec;

(* 3 node, no loop *)
a12=4;a23=-3;a31=0;
Nvec={1,2,1};
Cvec={2,-7,5}/Nvec;
r12=0;r23=0;r31=0;
Mat={{0,a12,-a31},{-a12,0,a23},{a31,-a23,0}};
RMat={{0,r12,r31},{r12,0,r23},{r31,r23,0}};

(* 4 node - a case with large partial cancellations between flags *)
Mat={{0,3,3,0},{-3,0,0,-5},{-3,0,0,-5},{0,5,5,0}};
Nvec=Table[1,{i,Length[Mat]}];
Cvec={10,-2,-15,7};
RMat=(({{0, 1, 0, 0}, {1, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}));
$QuiverMultiplier=1;

Evaluate the Higgs branch and Coulomb branch formulae

Higgs=Simplify[HiggsBranchFormula[Mat,Cvec,Nvec]];Series[Higgs,{y,0,10}]

Series[Higgs,{y,1,0}]

Coulomb=DropFugacity[Simplify[CoulombBranchFormula[Mat,Cvec,Nvec]]];
Series[Coulomb,{y,0,10}]

Simplify[Series[Coulomb-Higgs,{y,0,10}]]

ListLoopRCharges[Mat,RMat]

(* shift the FI parameters such that Nvec Cvec0 = 0 *)
Cvec0=Cvec-(Plus@@(Nvec Cvec))/(Plus@@Nvec);
(* perturb the stability parameter *)
$QuiverPerturb2=50*50*1000; 
Etavec=Flatten[Table[Table[Cvec[[i]],{j,Nvec[[i]]}],{i,Length[Mat]}]]+
1/1000/$QuiverPerturb2 Table[Random[Integer,{1,1000}],{i,Plus@@Nvec}];
FrozenCartan={{1,1}};
ChargeMatrix=ChargeMatrixFromQuiver[Mat,RMat,Nvec];
Hirzebruch=JKIndex[ChargeMatrix,Nvec,Etavec]

Simplify[Plus@@Flatten[Hirzebruch]-Coulomb]

Hirzebruch=JKIndexSplit[ChargeMatrix,Nvec,Etavec];

Simplify[Plus@@Flatten[Hirzebruch]-Coulomb]

Some non-quiver examples, from Benini Eager Hori Tachikawa

(* the last two columns in ChargeMatrix are R-charge and multiplicity *)

(* K3 *)
Nvec={1,1};
ChargeMatrix={{-2,-3,2,1},{1,0,0,2},{0,1,0,3}};
Etavec={1.1, 0.9}; (* geometric *)
Etavec={-1,1}; (* Hybrid I *)
Etavec={1,-1}; (* Hybrid II *)
FrozenCartan={};

(* K3 *)
Nvec={1};
ChargeMatrix={{-4,2,1},{1,0,4}};
Etavec={1};
FrozenCartan={};

(* 2 parameter model *)
Nvec={1,1};
ChargeMatrix={{-4,0,2,1},{0,1,0,2},{1,0,0,3},{1,-2,0,1}};
Etavec={-1.1,-0.9} (* phase III, Landau Ginzburg, 8 flags *);
Etavec={1.1,0.9} (* phase I, geometric, 1 flag *);
Etavec={1.1,-0.2} (* phase II, orbifold, 3 flags *);
Etavec={-1.1,0.9} (* phase IV, hybrid, 4 flags *);
FrozenCartan={};

(* Gulliksen-Negard *)
Nvec={2,1};
ChargeMatrix={{0,0,1,0,8},{-1,0,0,0,4},{0,-1,0,0,4},{1,0,-1,2,4},{0,1,-1,2,4}};
Etavec={-1.1,-.9,1};
FrozenCartan={};

(* Rodland *)
Nvec={2};
ChargeMatrix={{-1,-1,2,7},{1,0,0,7},{0,1,0,7}};
FrozenCartan={};
Etavec={.9,1.1};

Hirzebruch=JKIndex[ChargeMatrix,Nvec,Etavec]

Simplify[Plus@@Hirzebruch]

Hirzebruch=JKIndexSplit[ChargeMatrix,Nvec,Etavec]

Simplify[Plus@@Flatten[Hirzebruch]]