Dynamics of Phase Separation from Holography

This script extracts the stress-energy tensor of simulations of the spinodal instability.

General definitions

(* point to data directory - beware to unpack the archives first *)

path= "./";

(* parameters of the theory defining the scalar potential and the set scale *)

ϕ0=2.0;
ϕM=2.3 I;

spectator + settling runs -> ongoing FinisTerra

(* phase merger + spectator *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1600_eps_0_3_k_1_L_8_u_192_tot";*)

(* allmost settled *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_3_k_1_L_7_u_192_tot";*)

(* phase separation, pre phase merger *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_2_L_7_u_192_tot";*)

(* spectator peak *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1200_eps_0_25_k_1_L_6_u_192_tot";*)

(* phase separation, slow melt *)

(*foldername="inst_phi0_2_0_phiM_2_3i_z_1200_eps_0_42_k_2_L_6_tot";*)

phase separated simulations -> settled and finished;
Choose the simulation to look at by uncommenting relevant foldername1 line

(* phase merger *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_1_L_7_u_192_tot";*)

(* early merge *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1200_eps_0_3_k_1_L_6_u_192_tot";*)

(* phase separation, side peak crossing periodic boundary *)

(*foldername="inst_phi0_2_0_phiM_2_3i_z_1200_eps_0_3_L_6_u_192_tot";*)

(* central peak  *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1200_eps_0_2_k_1_L_6_u_192_tot";*)

(* strong middle peak, fast merge *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1100_eps_0_3_k_1_L_5_5_u_192_tot";*)

(* two side peaks early merger *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1000_eps_0_3_k_1_L_5_u_192_take2_tot";*)

(* Beautiful phase separation with first triple merger - quite symmetric *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1000_eps_0_3_L_5_u_192_tot";*)

(* central peak *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1000_eps_0_25_k_1_L_5_u_192_tot";*)

(* single peak *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1000_eps_0_2_k_1_L_5_u_192_tot";*)

(* central peak allmost settled  *)

foldername1="inst_phi0_2_0_phiM_2_3i_z_900_eps_0_3_k_1_L_4_5_u_192_tot";

(* phase separation *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_800_eps_0_3_k_1_L_4_u_192_tot";*)

(* white noise phase separation induce 4peaks merger *)

(* numerical noise, central peak fully settled  *)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_800_eps_0_3_L_4_u_192_tot";*)

metastable simulations with specially seeded unstable mode

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_4_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_5_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_6_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_7_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_8_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_9_L_7_u_192_tot";*)

(*foldername1="inst_phi0_2_0_phiM_2_3i_z_1400_eps_0_25_k_2_k_4_L_7_u_192_tot";*)

load the data

zlist1=Flatten[Import[ToString[path]<>ToString[foldername1]<>"/z.dat",Format->"Table"]];
nz1=Length[zlist1];
tlist1=Import[ToString[path]<>ToString[foldername1]<>"/t.dat",Format->"Table"][[;;,2]];
tl1=Length[tlist1];

(* deal with computing time t > 10000 *)

presteps1=Import[ToString[path]<>ToString[foldername1]<>"/t.dat",Format->"Table"][[;;,1]];

steps1=Table[If[presteps1[[n]]<10^7,IntegerString[presteps1[[n]],10,7],IntegerString[presteps1[[n]],10,8]],{n,tl1}];

(* 
  Choose how many numerical steps you want to load and visualize:
		100 will just load the last steps of a simulation,
				but speed up the data loading
		  tl1 - 1 means all the evolution
                 be warned that this may take quite some time to load all data files
				 alternatively only load every tenth
 *)

nrsteps=100;

(*nrsteps=tl1-1;*)

(*Loads boundary data*)

a4list1=Table[Transpose[Import[ToString[path]<>ToString[foldername1]<>"/a4_s"<>ToString[steps1[[i]]]<>".dat",Format->"Table","HeaderLines"->0]][[2]],{i,tl1-nrsteps,tl1}];
b4list1=Table[Transpose[Import[ToString[path]<>ToString[foldername1]<>"/b4_s"<>ToString[steps1[[i]]]<>".dat",Format->"Table","HeaderLines"->0]][[2]],{i,tl1-nrsteps,tl1}];
f2list1=Table[Transpose[Import[ToString[path]<>ToString[foldername1]<>"/f2_s"<>ToString[steps1[[i]]]<>".dat",Format->"Table","HeaderLines"->0]][[2]],{i,tl1-nrsteps,tl1}];
ϕ2list1=Table[Transpose[Import[ToString[path]<>ToString[foldername1]<>"/phi2_s"<>ToString[steps1[[i]]]<>".dat",Format->"Table","HeaderLines"->0]][[2]],{i,tl1-nrsteps,tl1}];

(*Interpolates boundary data*)

(Subscript[A1c, 4])=Interpolation[Partition[Flatten[Table[{tlist1[[i]],zlist1[[j]],a4list1[[i,j]]},{i,1,nrsteps},{j,1,nz1}]],3],InterpolationOrder->5];
(Subscript[B1c, 4])=Interpolation[Partition[Flatten[Table[{tlist1[[i]],zlist1[[j]],b4list1[[i,j]]},{i,1,nrsteps},{j,1,nz1}]],3],InterpolationOrder->5];
(Subscript[F1c, 4])=Interpolation[Partition[Flatten[Table[{tlist1[[i]],zlist1[[j]],f2list1[[i,j]]},{i,1,nrsteps},{j,1,nz1}]],3],InterpolationOrder->5];
(Subscript[ϕ1c, 2])=Interpolation[Partition[Flatten[Table[{tlist1[[i]],zlist1[[j]],ϕ2list1[[i,j]]},{i,1,nrsteps},{j,1,nz1}]],3],InterpolationOrder->5];

(* definition stress energy tensor *)

SEupdown1[t_,z_]={{(ϕ0^4*(9-7*ϕM^2))/(36*ϕM^2)+(3*Subscript[Ac,4][t,z])/4+ϕ0*Subscript[ϕc,2][t,z],-Subscript[Fc,4][t,z],0,0},{Subscript[Fc,4][t,z],ϕ0^4*(-5/108+1/(4*ϕM^2))-Subscript[Ac,4][t,z]/4-2*Subscript[Bc,4][t,z]+(ϕ0*Subscript[ϕc,2][t,z])/3,0,0},{0,0,ϕ0^4*(-5/108+1/(4*ϕM^2))-Subscript[Ac,4][t,z]/4+Subscript[Bc,4][t,z]+(ϕ0*Subscript[ϕc,2][t,z])/3,0},{0,0,0,ϕ0^4*(-5/108+1/(4*ϕM^2))-Subscript[Ac,4][t,z]/4+Subscript[Bc,4][t,z]+(ϕ0*Subscript[ϕc,2][t,z])/3}}/. {(Subscript[Ac, 4])->((Subscript[A1c, 4])[#1,#2]&),(Subscript[Fc, 4])->((Subscript[F1c, 4])[#1,#2]&),(Subscript[Bc, 4])->((Subscript[B1c, 4])[#1,#2]&),(Subscript[ϕc, 2])->((Subscript[ϕ1c, 2])[#1,#2]&)};

SEupdown1lambda[t_,z_]:=SEupdown1[t/ϕ0,z/ϕ0][[1,1]]/ϕ0^4

SEupdown2lambda[t_,z_]:=SEupdown1[t/ϕ0,z/ϕ0][[2,2]]/ϕ0^4

SEupdown3lambda[t_,z_]:=SEupdown1[t/ϕ0,z/ϕ0][[3,3]]/ϕ0^4

plot energy density at the last time of the evolution:

Plot[{-SEupdown1lambda[tlist1[[nrsteps]],z],0.03115,0.05861,0.000984,0.00009374},{z,zlist1[[1]] ϕ0,zlist1[[-1]]ϕ0},PlotRange->Full,ImageSize->800,LabelStyle->{24,FontFamily->"Times",Black},FrameLabel->{"z Λ","ϵ/(Λ^4)"},Frame->True,PlotStyle->{{Darker[Blue],AbsoluteThickness[3]},{Darker[Green],AbsoluteThickness[2],AbsoluteDashing[{9,12}]},{Orange,AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Darker[Green],AbsoluteDashing[{16,12}]},{Orange,AbsoluteDashing[{2,7}]}},PlotLegends->Placed[LineLegend[{Style["tΛ="<>ToString[tlist1[[-1]] ϕ0],FontFamily->"Times",20]},LegendMarkers->Automatic,LegendMarkerSize->{40,20}],{{0.05,0.59},{0,0}}],ImageSize->800]

LogPlot[{-SEupdown1lambda[tlist1[[nrsteps]],z],0.03115,0.05861,0.000984,0.00009374},{z,zlist1[[1]] ϕ0,zlist1[[-1]]ϕ0},PlotRange->Full,ImageSize->800,LabelStyle->{24,FontFamily->"Times",Black},FrameLabel->{"z Λ","ϵ/(Λ^4)"},Frame->True,PlotStyle->{{Darker[Blue],AbsoluteThickness[3]},{Darker[Green],AbsoluteThickness[2],AbsoluteDashing[{9,12}]},{Orange,AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Darker[Green],AbsoluteDashing[{16,12}]},{Orange,AbsoluteDashing[{2,7}]}},PlotLegends->Placed[LineLegend[{Style["tΛ="<>ToString[tlist1[[-1]] ϕ0],FontFamily->"Times",20]},LegendMarkers->Automatic,LegendMarkerSize->{40,20}],{{0.05,0.59},{0,0}}],ImageSize->800]

plot pressures of the evolution - longitudinal profile and some time evolution in the middle:

Plot[{-SEupdown2lambda[tlist1[[nrsteps]]ϕ0,z],-SEupdown3lambda[tlist1[[nrsteps]]ϕ0,z]},{z ,zlist1[[1]]  ϕ0,zlist1[[-1]]ϕ0},PlotRange->Full,ImageSize->800,LabelStyle->{24,FontFamily->"Times",Black},FrameLabel->{"t Λ",""},Frame->True,PlotStyle->{{Darker[Blue],AbsoluteThickness[3]},{Purple,AbsoluteThickness[3],AbsoluteDashing[{9,12}]},{Darker[Green],AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Orange,AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Darker[Green],AbsoluteDashing[{16,12}]},{Orange,AbsoluteDashing[{2,7}]}},PlotLegends->Placed[LineLegend[{Style["(Subscript[P, L])/(Λ^4)",FontFamily->"Times",20],Style["(Subscript[P, T])/(Λ^4)",FontFamily->"Times",20],Style["tΛ=1800",FontFamily->"Times",20]},LegendMarkers->Automatic,LegendMarkerSize->{40,20}],{{0.03,0.15},{0,0}}]]

Plot[{-SEupdown2lambda[t,0],-SEupdown3lambda[t,0]},{t ,tlist1[[1]]  ϕ0,tlist1[[nrsteps]]ϕ0},PlotRange->Full,ImageSize->800,LabelStyle->{24,FontFamily->"Times",Black},FrameLabel->{"t Λ",""},Frame->True,PlotStyle->{{Darker[Blue],AbsoluteThickness[3]},{Purple,AbsoluteThickness[3],AbsoluteDashing[{9,12}]},{Darker[Green],AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Orange,AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Darker[Green],AbsoluteDashing[{16,12}]},{Orange,AbsoluteDashing[{2,7}]}},PlotLegends->Placed[LineLegend[{Style["(Subscript[P, L])/(Λ^4)",FontFamily->"Times",20],Style["(Subscript[P, T])/(Λ^4)",FontFamily->"Times",20],Style["tΛ=1800",FontFamily->"Times",20]},LegendMarkers->Automatic,LegendMarkerSize->{40,20}],{{0.03,0.15},{0,0}}]]

Plot[{-SEupdown2lambda[tlist1[[nrsteps]]ϕ0,z]},{z ,zlist1[[1]]  ϕ0,zlist1[[-1]]ϕ0},PlotRange->Full,ImageSize->800,LabelStyle->{24,FontFamily->"Times",Black},FrameLabel->{"t Λ","(Subscript[P, L])/(Λ^4)"},Frame->True,PlotStyle->{{Darker[Blue],AbsoluteThickness[3]},{Purple,AbsoluteThickness[3],AbsoluteDashing[{9,12}]},{Darker[Green],AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Orange,AbsoluteThickness[2],AbsoluteDashing[{2,7}]},{Darker[Green],AbsoluteDashing[{16,12}]},{Orange,AbsoluteDashing[{2,7}]}}]