(* ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*) (* || mathematica syntax || yukterez.net || physics.stackexchange.com/a/837426/24093 || disk vs ring field lines ||*) (* ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||*) G=1; M=1; я1a=10; я2a=11; я1b=0; я2b=5; n=-1/2; PR=25; IS=400; ε=1/1000; f[{x_, y_, z_}, я1_, я2_]:=-{ If[Abs[x]<=ε, 0, ((2 Sqrt[я2] G M x (-EllipticE[(4 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]+(1-(2 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)) EllipticK[(4 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]))/((-я1^2 π+я2^2 π) (x^2+y^2)^(3/4) Sqrt[(я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]))- If[я1==0, 0, ((2 Sqrt[я1] G M x (-EllipticE[(4 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]+(1-(2 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)) EllipticK[(4 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]))/((-я1^2 π+я2^2 π) (x^2+y^2)^(3/4) Sqrt[(я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]))]], If[Abs[y]<=ε, 0, ((2 Sqrt[я2] G M y (-EllipticE[(4 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]+(1-(2 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)) EllipticK[(4 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]))/((-я1^2 π+я2^2 π) (x^2+y^2)^(3/4) Sqrt[(я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]))- If[я1==0, 0, ((2 Sqrt[я1] G M y (-EllipticE[(4 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]+(1-(2 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)) EllipticK[(4 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]))/((-я1^2 π+я2^2 π) (x^2+y^2)^(3/4) Sqrt[(я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]))]], If[Abs[z]<=ε, 0, -1/((-я1^2 π+я2^2 π) Abs[z]) 2 G M z ((-π+((я2+Sqrt[x^2+y^2+z^2]) ((Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])/(-Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2]))^(1/2) EllipticPi[-((2 Sqrt[x^2+y^2])/(-Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])), (4 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)]+(-я2+Sqrt[x^2+y^2+z^2]) Sqrt[(-Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])/(Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])] EllipticPi[(2 Sqrt[x^2+y^2])/(Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2]), (4 я2 Sqrt[x^2+y^2])/(я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2)])/(Sqrt[я2^2+x^2+y^2+2 я2 Sqrt[x^2+y^2]+z^2]))-(-π+((я1+Sqrt[x^2+y^2+z^2]) Sqrt[(Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])/(-Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])] EllipticPi[-((2 Sqrt[x^2+y^2])/(-Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])), (4 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)]+(-я1+Sqrt[x^2+y^2+z^2]) Sqrt[(-Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])/(Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2])] EllipticPi[(2 Sqrt[x^2+y^2])/(Sqrt[x^2+y^2]+Sqrt[x^2+y^2+z^2]), (4 я1 Sqrt[x^2+y^2])/(я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2)])/(Sqrt[я1^2+x^2+y^2+2 я1 Sqrt[x^2+y^2]+z^2])))]}; g[{x_, y_, z_}, n_]:=f[{x, y, z}, я1a, я2a]+n f[{x, y, z}, я1b, я2b]; vcp1v=Show[VectorPlot[{g[{x, ε, z}, n][[1]], g[{x, ε, z}, n][[3]]}, {x, -PR, PR}, {z, -PR, PR}, ImageSize->IS, VectorPoints->35, VectorScale->0.02, PlotRange->PR], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3]}], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3], Thickness[0.01], Line[{{-я2a, 0}, {я2a, 0}}]}]] vcp1s=Show[StreamPlot[{g[{x, ε, z}, n][[1]], g[{x, ε, z}, n][[3]]}, {x, -PR, PR}, {z, -PR, PR}, ImageSize->IS, PlotRange->PR], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3]}], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3], Thickness[0.01], Line[{{-я2a, 0}, {я2a, 0}}]}]] vcp2v=Show[VectorPlot[{g[{x, y, ε}, n][[1]], g[{x, y, ε}, n][[2]]}, {x, -PR, PR}, {y, -PR, PR}, ImageSize->IS, VectorPoints->35, VectorScale->0.02, PlotRange->PR], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3]}], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3], If[я1b<=ε, Disk[{0, 0}, я2b], Annulus[{0, 0}, {я1b, я2b}]], Annulus[{0, 0}, {я1a, я2a}]}]] vcp2s=Show[StreamPlot[{g[{x, y, ε}, n][[1]], g[{x, y, ε}, n][[2]]}, {x, -PR, PR}, {y, -PR, PR}, ImageSize->IS, PlotRange->PR], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3]}], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3], If[я1b<=ε, Disk[{0, 0}, я2b], Annulus[{0, 0}, {я1b, я2b}]], If[я1b<=ε, Disk[{0, 0}, я2b], Annulus[{0, 0}, {я1b, я2b}]], Annulus[{0, 0}, {я1a, я2a}]}]] ctp1c=Show[ParallelTable[ContourPlot[{Norm[g[{x, ε, z}, n]]== 10^(-xx)}, {x, -PR, PR}, {z, -PR, PR}, ImageSize->IS, MaxRecursion->8, PlotPoints->50, ClippingStyle->Automatic, PlotRange->PR], {xx, 1, 4+1/2, 1/10}], Graphics[{Glow[GrayLevel[2/5]], Opacity[0.3], Thickness[0.01], Line[{{-я2a, 0}, {я2a, 0}}]}]]