double dAdAlnpsi(nu1,yx1,yx2,yy1,yy2,yz1,yz2,x,y,z,t) double nu1,yx1,yy1,yz1,yx2,yy2,yz2,x,y,z,t; { double Pi=3.14159265358979324; double sinh(),cosh(),cos(),sqrt(); double psi,psih,Lpsi,LLpsi,dpsi2,Ldpsi2p2dpsidLpsi; double L1psi,L2psi,dpsiddpsi2; double d10psi,d01psi; double d10psi2,d01psi2; double d11psi,d20psi,d02psi; double d11psi2,d20psi2,d02psi2; double d12psi,d21psi,d30psi,d03psi; double d13psi,d31psi,d22psi,d40psi,d04psi; double dApsi,dipsi2,d00dAlnpsi,diidAlnpsi; double nu2,c0,s02,c1,c2,s1,s2,x1,x12; double r1,r2,r1r2h,r12,r22,r1r2h2,m1,m2; double u1,u11,u12,u13,u14,u2,u21,u22,u23,u24; double v1,v11,v12,v13,v14,v2,v21,v22,v23,v24; double c11,c12,c13,c14,c21,c22,c23,c24; x1=sqrt((yx2-yx1)*(yx2-yx1)+(yy2-yy1)*(yy2-yy1)+(yz2-yz1)*(yz2-yz1)); r1=sqrt((x-yx1)*(x-yx1)+(y-yy1)*(y-yy1)+(z-yz1)*(z-yz1)); r2=sqrt((x-yx2)*(x-yx2)+(y-yy2)*(y-yy2)+(z-yz2)*(z-yz2)); r1r2h=((x-yx1)*(x-yx2)+(y-yy1)*(y-yy2)+(z-yz1)*(z-yz2))/r1/r2; x12=x1*x1; r12=r1*r1; r22=r2*r2; r1r2h2=r1r2h*r1r2h; nu2=1-nu1; m1=2*Pi*nu1; m2=2*Pi*nu2; c0=cos(2*Pi*t); s02=1.0-c0*c0; 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; u13=(m1*m1*m1*c1-3*u12)/r1; u14=(m1*m1*m1*m1*s1-4*u13)/r1; u2=s2/r2; u21=(m2*c2-u2)/r2; u22=(m2*m2*s2-2*u21)/r2; u23=(m2*m2*m2*c2-3*u22)/r2; u24=(m2*m2*m2*m2*s2-4*u23)/r2; v1=s1*r1; v11=m1*c1*r1+s1; v12=m1*(m1*s1*r1+2*c1); v13=m1*m1*(m1*c1*r1+3*s1); v14=m1*m1*m1*(m1*s1*r1+4*c1); v2=s2*r2; v21=m2*c2*r2+s2; v22=m2*(m2*s2*r2+2*c2); v23=m2*m2*(m2*c2*r2+3*s2); v24=m2*m2*m2*(m2*s2*r2+4*c2); c11=m1*s1; c12=m1*m1*c1; c13=m1*m1*m1*s1; c14=m1*m1*m1*m1*c1; c21=m2*s2; c22=m2*m2*c2; c23=m2*m2*m2*s2; c24=m2*m2*m2*m2*c2; psih=c1*c2+c2*x1*u1+c1*x1*u2+x12*u1*u2/2+u2*v1/2+u1*v2/2; d10psi=c11*c2+c2*x1*u11+c11*x1*u2+x12*u11*u2/2+u2*v11/2+u11*v2/2; d01psi=c1*c21+c21*x1*u1+c1*x1*u21+x12*u1*u21/2+u21*v1/2+u1*v21/2; d11psi=c11*c21+c21*x1*u11+c11*x1*u21+x12*u11*u21/2+u21*v11/2+u11*v21/2; d20psi=c12*c2+c2*x1*u12+c12*x1*u2+x12*u12*u2/2+u2*v12/2+u12*v2/2; d02psi=c1*c22+c22*x1*u1+c1*x1*u22+x12*u1*u22/2+u22*v1/2+u1*v22/2; d30psi=c13*c2+c2*x1*u13+c13*x1*u2+x12*u13*u2/2+u2*v13/2+u13*v2/2; d03psi=c1*c23+c23*x1*u1+c1*x1*u23+x12*u1*u23/2+u23*v1/2+u1*v23/2; d12psi=c11*c22+c22*x1*u11+c11*x1*u22+x12*u11*u22/2+u22*v11/2+u11*v22/2; d21psi=c12*c21+c21*x1*u12+c12*x1*u21+x12*u12*u21/2+u21*v12/2+u12*v21/2; d40psi=c14*c2+c2*x1*u14+c14*x1*u2+x12*u14*u2/2+u2*v14/2+u14*v2/2; d04psi=c1*c24+c24*x1*u1+c1*x1*u24+x12*u1*u24/2+u24*v1/2+u1*v24/2; d13psi=c11*c23+c23*x1*u11+c11*x1*u23+x12*u11*u23/2+u23*v11/2+u11*v23/2; d31psi=c13*c21+c21*x1*u13+c13*x1*u21+x12*u13*u21/2+u21*v13/2+u13*v21/2; d22psi=c12*c22+c22*x1*u12+c12*x1*u22+x12*u12*u22/2+u22*v12/2+u12*v22/2; psi=psih-c0; d10psi2=d10psi*d10psi; d01psi2=d01psi*d01psi; d20psi2=d20psi*d20psi; d02psi2=d02psi*d02psi; d11psi2=d11psi*d11psi; L1psi=d20psi+2*d10psi/r1; L2psi=d02psi+2*d01psi/r2; Lpsi=L1psi+L2psi+2*r1r2h*d11psi; dApsi=Lpsi+4*Pi*Pi*c0; dipsi2=d10psi*d10psi+d01psi*d01psi+2*r1r2h*d10psi*d01psi; dpsi2=dipsi2+4*Pi*Pi*s02; /* dAlnpsi=dApsi/psi-dpsi2/psi/psi; */ d00dAlnpsi =(Lpsi-4*Pi*Pi*psih)*(2*s02/psi-c0); d00dAlnpsi -=2*(dipsi2+4*Pi*Pi*(1-psih*psih))*(3*s02/psi-c0)/psi; d00dAlnpsi *=4*Pi*Pi/psi/psi; LLpsi=d04psi+2*d22psi+d40psi+8*d12psi/r1+4*d30psi/r1+4*d13psi*r1r2h+ 4*d31psi*r1r2h-8*d11psi*r1r2h/r12+8*d21psi*r1r2h/r1+ 4*d22psi*r1r2h2-4*d12psi*r1r2h2/r1-8*d11psi*r1r2h/r22+ 4*d03psi/r2+8*d21psi/r2+12*d11psi/(r1*r2)+8*d12psi*r1r2h/r2- 4*d21psi*r1r2h2/r2+4*d11psi*r1r2h2/(r1*r2); Ldpsi2p2dpsidLpsi=2*d02psi2+4*d01psi*d03psi+4*d11psi2+4*d10psi*d12psi+ 2*d20psi2+4*d01psi*d21psi+4*d10psi*d30psi-4*d10psi2/r12+ 4*d02psi*d10psi/r1+16*d01psi*d11psi/r1+8*d10psi*d20psi/r1+ 4*d03psi*d10psi*r1r2h+8*d02psi*d11psi*r1r2h+12*d01psi*d12psi*r1r2h+ 8*d11psi*d20psi*r1r2h+12*d10psi*d21psi*r1r2h+4*d01psi*d30psi*r1r2h- 8*d01psi*d10psi*r1r2h/r12+8*d10psi*d11psi*r1r2h/r1+ 8*d01psi*d20psi*r1r2h/r1+4*d11psi2*r1r2h2+8*d10psi*d12psi*r1r2h2+ 4*d02psi*d20psi*r1r2h2+8*d01psi*d21psi*r1r2h2- 4*d02psi*d10psi*r1r2h2/r1-8*d01psi*d11psi*r1r2h2/r1- 4*d01psi2/r22-8*d01psi*d10psi*r1r2h/r22+8*d01psi*d02psi/r2+ 16*d10psi*d11psi/r2+4*d01psi*d20psi/r2+4*d01psi*d10psi/(r1*r2)+ 8*d02psi*d10psi*r1r2h/r2+8*d01psi*d11psi*r1r2h/r2- 8*d10psi*d11psi*r1r2h2/r2-4*d01psi*d20psi*r1r2h2/r2+ 4*d01psi*d10psi*r1r2h2/(r1*r2); dpsiddpsi2=2*d01psi2*d02psi+4*d01psi*d10psi*d11psi+2*d10psi2*d20psi+ 2*d01psi2*d10psi/r1+4*d01psi*d02psi*d10psi*r1r2h+ 4*d01psi2*d11psi*r1r2h+4*d10psi2*d11psi*r1r2h+ 4*d01psi*d10psi*d20psi*r1r2h+2*d02psi*d10psi2*r1r2h2+ 4*d01psi*d10psi*d11psi*r1r2h2+2*d01psi2*d20psi*r1r2h2- 2*d01psi2*d10psi*r1r2h2/r1+2*d01psi*d10psi2/r2- 2*d01psi*d10psi2*r1r2h2/r2; diidAlnpsi =2*(dApsi-3*dpsi2/psi)*dipsi2/psi+(2*dpsi2/psi-dApsi)*Lpsi; diidAlnpsi /=psi*psi; diidAlnpsi +=(LLpsi-(Ldpsi2p2dpsidLpsi-4*dpsiddpsi2/psi)/psi)/psi; return(d00dAlnpsi+diidAlnpsi); }