double A[4][4],F[4][4][4]; void AF(nu1,yx1,yx2,yy1,yy2,yz1,yz2,x,y,z,t) double nu1,yx1,yx2,yy1,yy2,yz1,yz2,x,y,z,t; { /* Periodic gauge, Rechi=Re(chi-tilde)/pr, Imchi=Im(chitilde)/pr, phi0=(1-1/phi)/pr */ double dA[4][4][4]; double eps[4][4][4]; double Pi=3.14159265358979324; double sinh(),cosh(),sin(),cos(),sqrt(); double As,psi,Rechi,Imchi,phi0,phi; double d010psi,d001psi,d011psi,d020psi,d002psi; double d100Rechi,d100Imchi,d100phi,d100phi0; double d010Rechi,d010Imchi,d010phi,d010phi0; double d001Rechi,d001Imchi,d001phi,d001phi0; double d011Rechi,d011Imchi,d011phi0; double d110Rechi,d110Imchi,d110phi0; double d101Rechi,d101Imchi,d101phi0; double d200Rechi,d200Imchi,d200phi0; double d020Rechi,d020Imchi,d020phi0; double d002Rechi,d002Imchi,d002phi0; double c0,s0,c1,c2,s1,s2,pr,pr2; double r1,r2,m0,m1,m2,nu2; double rh11,rh12,rh13,rh21,rh22,rh23; double u1,u11,u12,u2,u21,u22; double v1,v11,v12,v2,v21,v22; double k1,k11,k12,k2,k21,k22; double c11,c12,c21,c22,c01,c02,s01,s02; double rh111,rh122,rh133,rh112,rh121,rh113,rh131,rh123,rh132; double rh211,rh222,rh233,rh212,rh221,rh213,rh231,rh223,rh232; int a,b,n,m; eps[1][2][3]=eps[2][3][1]=eps[3][1][2]=1.0; eps[1][3][2]=eps[2][1][3]=eps[3][2][1]=-1.0; for(a=1;a<4;a++) for(n=0;n<4;n++) F[a][n][n]=0.0; nu2=1-nu1; pr2=(yx2-yx1)*(yx2-yx1)+(yy2-yy1)*(yy2-yy1)+(yz2-yz1)*(yz2-yz1); pr=sqrt(pr2); rh11=x-yx1; rh12=y-yy1; rh13=z-yz1; rh21=x-yx2; rh22=y-yy2; rh23=z-yz2; r1=sqrt(rh11*rh11+rh12*rh12+rh13*rh13); r2=sqrt(rh21*rh21+rh22*rh22+rh23*rh23); rh11=rh11/r1; rh12=rh12/r1; rh13=rh13/r1; rh21=rh21/r2; rh22=rh22/r2; rh23=rh23/r2; rh111=(1-rh11*rh11)/r1; rh122=(1-rh12*rh12)/r1; rh133=(1-rh13*rh13)/r1; rh112=rh121=-rh11*rh12/r1; rh113=rh131=-rh11*rh13/r1; rh123=rh132=-rh12*rh13/r1; rh211=(1-rh21*rh21)/r2; rh222=(1-rh22*rh22)/r2; rh233=(1-rh23*rh23)/r2; rh212=rh221=-rh21*rh22/r2; rh213=rh231=-rh21*rh23/r2; rh223=rh232=-rh22*rh23/r2; m0=2*Pi; m1=2*Pi*nu1; m2=2*Pi*nu2; c0=cos(m0*t); s0=sin(m0*t); c1=cosh(m1*r1); c2=cosh(m2*r2); s1=sinh(m1*r1); s2=sinh(m2*r2); u1=s1/r1; u11=(m1*c1-u1)/r1; u12=(m1*m1*s1-2*u11)/r1; u2=s2/r2; u21=(m2*c2-u2)/r2; u22=(m2*m2*s2-2*u21)/r2; v1=s1*r1; v11=m1*c1*r1+s1; v12=m1*(m1*s1*r1+2*c1); v2=s2*r2; v21=m2*c2*r2+s2; v22=m2*(m2*s2*r2+2*c2); k1=c1+pr*u1; k11=m1*s1+pr*u11; k12=m1*m1*c1+pr*u12; k2=c2+pr*u2; k21=m2*s2+pr*u21; k22=m2*m2*c2+pr*u22; c11=m1*s1; c12=m1*m1*c1; c21=m2*s2; c22=m2*m2*c2; c01=-m0*s0; c02=-m0*m0*c0; s01=m0*c0; s02=-m0*m0*s0; psi=k1*k2+(u1*v2+v1*u2-pr2*u1*u2)/2-c0; Rechi=(u2+c0*u1)/psi; Imchi=(-s0*u1)/psi; phi0=(c1*u2+c2*u1+pr*u1*u2)/psi; phi=1.0/(1-pr*phi0); d010psi=k11*k2+(u11*v2+v11*u2-pr2*u11*u2)/2; d001psi=k1*k21+(u1*v21+v1*u21-pr2*u1*u21)/2; d100Rechi=(c01*u1+Rechi*c01)/psi; d010Rechi=(c0*u11-Rechi*d010psi)/psi; d001Rechi=(u21-Rechi*d001psi)/psi; d100Imchi=(-s01*u1+Imchi*c01)/psi; d010Imchi=(-s0*u11-Imchi*d010psi)/psi; d001Imchi=(-Imchi*d001psi)/psi; d100phi0=phi0*c01/psi; d010phi0=(c11*u2+c2*u11+pr*u11*u2-phi0*d010psi)/psi; d001phi0=(c1*u21+c21*u1+pr*u1*u21-phi0*d001psi)/psi; d100phi=pr*d100phi0*phi*phi; d010phi=pr*d010phi0*phi*phi; d001phi=pr*d001phi0*phi*phi; d011psi=k11*k21+(u11*v21+v11*u21-pr2*u11*u21)/2; d020psi=k12*k2+(u12*v2+v12*u2-pr2*u12*u2)/2; d002psi=k1*k22+(u1*v22+v1*u22-pr2*u1*u22)/2; d011Rechi=(-Rechi*d011psi-d001Rechi*d010psi-d010Rechi*d001psi)/psi; d110Rechi=(c01*u11-d100Rechi*d010psi+d010Rechi*c01)/psi; d101Rechi=(-d100Rechi*d001psi+d001Rechi*c01)/psi; d200Rechi=(c02*u1+Rechi*c02+2*d100Rechi*c01)/psi; d020Rechi=(c0*u12-Rechi*d020psi-2*d010Rechi*d010psi)/psi; d002Rechi=(u22-Rechi*d002psi-2*d001Rechi*d001psi)/psi; d011Imchi=(-Imchi*d011psi-d001Imchi*d010psi-d010Imchi*d001psi)/psi; d110Imchi=(-s01*u11-d100Imchi*d010psi+d010Imchi*c01)/psi; d101Imchi=(-d100Imchi*d001psi+d001Imchi*c01)/psi; d200Imchi=(-s02*u1+Imchi*c02+2*d100Imchi*c01)/psi; d020Imchi=(-s0*u12-Imchi*d020psi-2*d010Imchi*d010psi)/psi; d002Imchi=(-Imchi*d002psi-2*d001Imchi*d001psi)/psi; d011phi0=(c11*u21+c21*u11+pr*u11*u21-phi0*d011psi- d010phi0*d001psi-d001phi0*d010psi)/psi; d110phi0=(d010phi0*c01-d100phi0*d010psi)/psi; d101phi0=(d001phi0*c01-d100phi0*d001psi)/psi; d200phi0=(phi0*c02+2*d100phi0*c01)/psi; d020phi0=(c12*u2+c2*u12+pr*u12*u2-phi0*d020psi-2*d010phi0*d010psi)/psi; d002phi0=(c1*u22+c22*u1+pr*u1*u22-phi0*d002psi-2*d001phi0*d001psi)/psi; A[1][0]=rh11*d010Rechi+rh21*d001Rechi+rh12*d010Imchi+rh22*d001Imchi; A[1][1]=m1*Imchi-d100Rechi-rh13*d010Imchi-rh23*d001Imchi; A[1][2]=rh13*d010Rechi+rh23*d001Rechi-d100Imchi-m1*Rechi; A[1][3]=rh11*d010Imchi+rh21*d001Imchi-rh12*d010Rechi-rh22*d001Rechi; A[2][0]=rh12*d010Rechi+rh22*d001Rechi-rh11*d010Imchi-rh21*d001Imchi; A[2][1]=d100Imchi+m1*Rechi-rh13*d010Rechi-rh23*d001Rechi; A[2][2]=m1*Imchi-d100Rechi-rh13*d010Imchi-rh23*d001Imchi; A[2][3]=rh12*d010Imchi+rh22*d001Imchi+rh11*d010Rechi+rh21*d001Rechi; A[3][0]=rh13*d010phi0+rh23*d001phi0; A[3][1]=rh12*d010phi0+rh22*d001phi0; A[3][2]=-rh11*d010phi0-rh21*d001phi0; A[3][3]=-d100phi0; dA[1][0][0]=pr*(d100phi*A[1][0]+phi* (rh11*d110Rechi+rh21*d101Rechi+rh12*d110Imchi+rh22*d101Imchi)); dA[1][0][1]=pr*((rh11*d010phi+rh21*d001phi)*A[1][0]+phi*( rh11*(rh11*d020Rechi+rh21*d011Rechi+rh12*d020Imchi+rh22*d011Imchi)+ rh21*(rh11*d011Rechi+rh21*d002Rechi+rh12*d011Imchi+rh22*d002Imchi)+ rh111*d010Rechi+rh211*d001Rechi+rh121*d010Imchi+rh221*d001Imchi)); dA[1][0][2]=pr*((rh12*d010phi+rh22*d001phi)*A[1][0]+phi*( rh12*(rh11*d020Rechi+rh21*d011Rechi+rh12*d020Imchi+rh22*d011Imchi)+ rh22*(rh11*d011Rechi+rh21*d002Rechi+rh12*d011Imchi+rh22*d002Imchi)+ rh112*d010Rechi+rh212*d001Rechi+rh122*d010Imchi+rh222*d001Imchi)); dA[1][0][3]=pr*((rh13*d010phi+rh23*d001phi)*A[1][0]+phi*( rh13*(rh11*d020Rechi+rh21*d011Rechi+rh12*d020Imchi+rh22*d011Imchi)+ rh23*(rh11*d011Rechi+rh21*d002Rechi+rh12*d011Imchi+rh22*d002Imchi)+ rh113*d010Rechi+rh213*d001Rechi+rh123*d010Imchi+rh223*d001Imchi)); dA[1][1][0]=pr*(d100phi*A[1][1]+phi* (m1*d100Imchi-d200Rechi-rh13*d110Imchi-rh23*d101Imchi)); dA[1][1][1]=pr*((rh11*d010phi+rh21*d001phi)*A[1][1]+phi*( rh11*(m1*d010Imchi-d110Rechi-rh13*d020Imchi-rh23*d011Imchi)+ rh21*(m1*d001Imchi-d101Rechi-rh13*d011Imchi-rh23*d002Imchi)- rh131*d010Imchi-rh231*d001Imchi)); dA[1][1][2]=pr*((rh12*d010phi+rh22*d001phi)*A[1][1]+phi*( rh12*(m1*d010Imchi-d110Rechi-rh13*d020Imchi-rh23*d011Imchi)+ rh22*(m1*d001Imchi-d101Rechi-rh13*d011Imchi-rh23*d002Imchi)- rh132*d010Imchi-rh232*d001Imchi)); dA[1][1][3]=pr*((rh13*d010phi+rh23*d001phi)*A[1][1]+phi*( rh13*(m1*d010Imchi-d110Rechi-rh13*d020Imchi-rh23*d011Imchi)+ rh23*(m1*d001Imchi-d101Rechi-rh13*d011Imchi-rh23*d002Imchi)- rh133*d010Imchi-rh233*d001Imchi)); dA[1][2][0]=pr*(d100phi*A[1][2]+phi* (rh13*d110Rechi+rh23*d101Rechi-d200Imchi-m1*d100Rechi)); dA[1][2][1]=pr*((rh11*d010phi+rh21*d001phi)*A[1][2]+phi*( rh11*(rh13*d020Rechi+rh23*d011Rechi-d110Imchi-m1*d010Rechi)+ rh21*(rh13*d011Rechi+rh23*d002Rechi-d101Imchi-m1*d001Rechi)+ rh131*d010Rechi+rh231*d001Rechi)); dA[1][2][2]=pr*((rh12*d010phi+rh22*d001phi)*A[1][2]+phi*( rh12*(rh13*d020Rechi+rh23*d011Rechi-d110Imchi-m1*d010Rechi)+ rh22*(rh13*d011Rechi+rh23*d002Rechi-d101Imchi-m1*d001Rechi)+ rh132*d010Rechi+rh232*d001Rechi)); dA[1][2][3]=pr*((rh13*d010phi+rh23*d001phi)*A[1][2]+phi*( rh13*(rh13*d020Rechi+rh23*d011Rechi-d110Imchi-m1*d010Rechi)+ rh23*(rh13*d011Rechi+rh23*d002Rechi-d101Imchi-m1*d001Rechi)+ rh133*d010Rechi+rh233*d001Rechi)); dA[1][3][0]=pr*(d100phi*A[1][3]+phi* (rh11*d110Imchi+rh21*d101Imchi-rh12*d110Rechi-rh22*d101Rechi)); dA[1][3][1]=pr*((rh11*d010phi+rh21*d001phi)*A[1][3]+phi*( rh11*(rh11*d020Imchi+rh21*d011Imchi-rh12*d020Rechi-rh22*d011Rechi)+ rh21*(rh11*d011Imchi+rh21*d002Imchi-rh12*d011Rechi-rh22*d002Rechi)+ rh111*d010Imchi+rh211*d001Imchi-rh121*d010Rechi-rh221*d001Rechi)); dA[1][3][2]=pr*((rh12*d010phi+rh22*d001phi)*A[1][3]+phi*( rh12*(rh11*d020Imchi+rh21*d011Imchi-rh12*d020Rechi-rh22*d011Rechi)+ rh22*(rh11*d011Imchi+rh21*d002Imchi-rh12*d011Rechi-rh22*d002Rechi)+ rh112*d010Imchi+rh212*d001Imchi-rh122*d010Rechi-rh222*d001Rechi)); dA[1][3][3]=pr*((rh13*d010phi+rh23*d001phi)*A[1][3]+phi*( rh13*(rh11*d020Imchi+rh21*d011Imchi-rh12*d020Rechi-rh22*d011Rechi)+ rh23*(rh11*d011Imchi+rh21*d002Imchi-rh12*d011Rechi-rh22*d002Rechi)+ rh113*d010Imchi+rh213*d001Imchi-rh123*d010Rechi-rh223*d001Rechi)); dA[2][0][0]=pr*(d100phi*A[2][0]+phi* (rh12*d110Rechi+rh22*d101Rechi-rh11*d110Imchi-rh21*d101Imchi)); dA[2][0][1]=pr*((rh11*d010phi+rh21*d001phi)*A[2][0]+phi*( rh11*(rh12*d020Rechi+rh22*d011Rechi-rh11*d020Imchi-rh21*d011Imchi)+ rh21*(rh12*d011Rechi+rh22*d002Rechi-rh11*d011Imchi-rh21*d002Imchi)+ rh121*d010Rechi+rh221*d001Rechi-rh111*d010Imchi-rh211*d001Imchi)); dA[2][0][2]=pr*((rh12*d010phi+rh22*d001phi)*A[2][0]+phi*( rh12*(rh12*d020Rechi+rh22*d011Rechi-rh11*d020Imchi-rh21*d011Imchi)+ rh22*(rh12*d011Rechi+rh22*d002Rechi-rh11*d011Imchi-rh21*d002Imchi)+ rh122*d010Rechi+rh222*d001Rechi-rh112*d010Imchi-rh212*d001Imchi)); dA[2][0][3]=pr*((rh13*d010phi+rh23*d001phi)*A[2][0]+phi*( rh13*(rh12*d020Rechi+rh22*d011Rechi-rh11*d020Imchi-rh21*d011Imchi)+ rh23*(rh12*d011Rechi+rh22*d002Rechi-rh11*d011Imchi-rh21*d002Imchi)+ rh123*d010Rechi+rh223*d001Rechi-rh113*d010Imchi-rh213*d001Imchi)); dA[2][1][0]=pr*(d100phi*A[2][1]+phi* (d200Imchi+m1*d100Rechi-rh13*d110Rechi-rh23*d101Rechi)); dA[2][1][1]=pr*((rh11*d010phi+rh21*d001phi)*A[2][1]+phi*( rh11*(d110Imchi+m1*d010Rechi-rh13*d020Rechi-rh23*d011Rechi)+ rh21*(d101Imchi+m1*d001Rechi-rh13*d011Rechi-rh23*d002Rechi)- rh131*d010Rechi-rh231*d001Rechi)); dA[2][1][2]=pr*((rh12*d010phi+rh22*d001phi)*A[2][1]+phi*( rh12*(d110Imchi+m1*d010Rechi-rh13*d020Rechi-rh23*d011Rechi)+ rh22*(d101Imchi+m1*d001Rechi-rh13*d011Rechi-rh23*d002Rechi)- rh132*d010Rechi-rh232*d001Rechi)); dA[2][1][3]=pr*((rh13*d010phi+rh23*d001phi)*A[2][1]+phi*( rh13*(d110Imchi+m1*d010Rechi-rh13*d020Rechi-rh23*d011Rechi)+ rh23*(d101Imchi+m1*d001Rechi-rh13*d011Rechi-rh23*d002Rechi)- rh133*d010Rechi-rh233*d001Rechi)); dA[2][2][0]=pr*(d100phi*A[2][2]+phi* (m1*d100Imchi-d200Rechi-rh13*d110Imchi-rh23*d101Imchi)); dA[2][2][1]=pr*((rh11*d010phi+rh21*d001phi)*A[2][2]+phi*( rh11*(m1*d010Imchi-d110Rechi-rh13*d020Imchi-rh23*d011Imchi)+ rh21*(m1*d001Imchi-d101Rechi-rh13*d011Imchi-rh23*d002Imchi)- rh131*d010Imchi-rh231*d001Imchi)); dA[2][2][2]=pr*((rh12*d010phi+rh22*d001phi)*A[2][2]+phi*( rh12*(m1*d010Imchi-d110Rechi-rh13*d020Imchi-rh23*d011Imchi)+ rh22*(m1*d001Imchi-d101Rechi-rh13*d011Imchi-rh23*d002Imchi)- rh132*d010Imchi-rh232*d001Imchi)); dA[2][2][3]=pr*((rh13*d010phi+rh23*d001phi)*A[2][2]+phi*( rh13*(m1*d010Imchi-d110Rechi-rh13*d020Imchi-rh23*d011Imchi)+ rh23*(m1*d001Imchi-d101Rechi-rh13*d011Imchi-rh23*d002Imchi)- rh133*d010Imchi-rh233*d001Imchi)); dA[2][3][0]=pr*(d100phi*A[2][3]+phi* (rh12*d110Imchi+rh22*d101Imchi+rh11*d110Rechi+rh21*d101Rechi)); dA[2][3][1]=pr*((rh11*d010phi+rh21*d001phi)*A[2][3]+phi*( rh11*(rh12*d020Imchi+rh22*d011Imchi+rh11*d020Rechi+rh21*d011Rechi)+ rh21*(rh12*d011Imchi+rh22*d002Imchi+rh11*d011Rechi+rh21*d002Rechi)+ rh121*d010Imchi+rh221*d001Imchi+rh111*d010Rechi+rh211*d001Rechi)); dA[2][3][2]=pr*((rh12*d010phi+rh22*d001phi)*A[2][3]+phi*( rh12*(rh12*d020Imchi+rh22*d011Imchi+rh11*d020Rechi+rh21*d011Rechi)+ rh22*(rh12*d011Imchi+rh22*d002Imchi+rh11*d011Rechi+rh21*d002Rechi)+ rh122*d010Imchi+rh222*d001Imchi+rh112*d010Rechi+rh212*d001Rechi)); dA[2][3][3]=pr*((rh13*d010phi+rh23*d001phi)*A[2][3]+phi*( rh13*(rh12*d020Imchi+rh22*d011Imchi+rh11*d020Rechi+rh21*d011Rechi)+ rh23*(rh12*d011Imchi+rh22*d002Imchi+rh11*d011Rechi+rh21*d002Rechi)+ rh123*d010Imchi+rh223*d001Imchi+rh113*d010Rechi+rh213*d001Rechi)); dA[3][0][0]=pr*(d100phi*A[3][0]+phi* (rh13*d110phi0+rh23*d101phi0)); dA[3][0][1]=pr*((rh11*d010phi+rh21*d001phi)*A[3][0]+phi*( rh11*(rh13*d020phi0+rh23*d011phi0)+ rh21*(rh13*d011phi0+rh23*d002phi0)+ rh131*d010phi0+rh231*d001phi0)); dA[3][0][2]=pr*((rh12*d010phi+rh22*d001phi)*A[3][0]+phi*( rh12*(rh13*d020phi0+rh23*d011phi0)+ rh22*(rh13*d011phi0+rh23*d002phi0)+ rh132*d010phi0+rh232*d001phi0)); dA[3][0][3]=pr*((rh13*d010phi+rh23*d001phi)*A[3][0]+phi*( rh13*(rh13*d020phi0+rh23*d011phi0)+ rh23*(rh13*d011phi0+rh23*d002phi0)+ rh133*d010phi0+rh233*d001phi0)); dA[3][1][0]=pr*(d100phi*A[3][1]+phi* (rh12*d110phi0+rh22*d101phi0)); dA[3][1][1]=pr*((rh11*d010phi+rh21*d001phi)*A[3][1]+phi*( rh11*(rh12*d020phi0+rh22*d011phi0)+ rh21*(rh12*d011phi0+rh22*d002phi0)+ rh121*d010phi0+rh221*d001phi0)); dA[3][1][2]=pr*((rh12*d010phi+rh22*d001phi)*A[3][1]+phi*( rh12*(rh12*d020phi0+rh22*d011phi0)+ rh22*(rh12*d011phi0+rh22*d002phi0)+ rh122*d010phi0+rh222*d001phi0)); dA[3][1][3]=pr*((rh13*d010phi+rh23*d001phi)*A[3][1]+phi*( rh13*(rh12*d020phi0+rh22*d011phi0)+ rh23*(rh12*d011phi0+rh22*d002phi0)+ rh123*d010phi0+rh223*d001phi0)); dA[3][2][0]=pr*(d100phi*A[3][2]-phi* (rh11*d110phi0+rh21*d101phi0)); dA[3][2][1]=pr*((rh11*d010phi+rh21*d001phi)*A[3][2]-phi*( rh11*(rh11*d020phi0+rh21*d011phi0)+ rh21*(rh11*d011phi0+rh21*d002phi0)+ rh111*d010phi0+rh211*d001phi0)); dA[3][2][2]=pr*((rh12*d010phi+rh22*d001phi)*A[3][2]-phi*( rh12*(rh11*d020phi0+rh21*d011phi0)+ rh22*(rh11*d011phi0+rh21*d002phi0)+ rh112*d010phi0+rh212*d001phi0)); dA[3][2][3]=pr*((rh13*d010phi+rh23*d001phi)*A[3][2]-phi*( rh13*(rh11*d020phi0+rh21*d011phi0)+ rh23*(rh11*d011phi0+rh21*d002phi0)+ rh113*d010phi0+rh213*d001phi0)); dA[3][3][0]=pr*(d100phi*A[3][3]-phi* d200phi0); dA[3][3][1]=pr*((rh11*d010phi+rh21*d001phi)*A[3][3]-phi*( rh11*d110phi0+ rh21*d101phi0)); dA[3][3][2]=pr*((rh12*d010phi+rh22*d001phi)*A[3][3]-phi*( rh12*d110phi0+ rh22*d101phi0)); dA[3][3][3]=pr*((rh13*d010phi+rh23*d001phi)*A[3][3]-phi*( rh13*d110phi0+ rh23*d101phi0)); for(a=1;a<4;a++) for(n=0;n<4;n++) A[a][n] *=phi*pr; A[3][0] +=m1; for(a=1;a<4;a++) for(n=0;n<4;n++) for(m=0;m