I want to plot a skyrmion (like shown above) represented by a 3D vectorial arrows but showing in a 2D plane.
My code is as follows:
λ = 633*10^(-9);
ω = 2*π*3*10^8/λ;
k0 = 2 π/λ;
kr = 1.05*k0;
kz = Sqrt[kr^2 - k0^2];
Fr =
Plot[{0.8*kz*kr^2/(2*ω)*1/r*BesselJ[1, kr*r]^2/(4.96*10^11)},
{r, -1.5*λ, +1.5*λ},
PlotRange -> All]
Fθ =
Plot[{0.2*kz*kr^2/(2*ω)*1/r*BesselJ[1, kr*r]^2/(4.96*10^11)},
{r, -1.5*λ, +1.5*λ},
PlotRange -> All]
Fz =
Plot[{kr^3/(2*ω)*1/r*BesselJ[1, kr*r]*(BesselJ[0, kr*r] -
BesselJ[2, kr*r])/2/(4.96*10^11)},
{r, -1.5*λ, +1.5*λ},
PlotRange -> All]
I used 4.96*10^11 to normalize the data.
As you can see, Fr
, Fθ
and Fz
are in cylindrical coordinate, but there is only one variable, r
with {r, -1.5 λ, +1.5 λ}
.
I've searched all day through this forum and tried VectorPlot3D
, ListVectorPlot3D
, but failed.
Please, can anybody help me to solve this?