I am trying to make an animation of an accretion disk or a planetary disk.
For example, a cool disk showing below (created by NAHKS TR’EHNL):
or in this link
Here is what I have been tried so far:
step1:define some basic parameters.
{rmin, rmax, scale} = {0.1, 1.0, 0.2};
where rmin is the inner boundary of the disk;
rmax is the outer boundary of the disk;
scale is the scale height of the disk
Step 2: Define a function that gives the shape of the intersection/crosssection of the disk:
intersec[r_] := scale*(r - rmin)^0.5/(rmax - rmin)^0.5
You can see that the function =0 at the inner boundary and =scale (in this case 0.2) at the outer boundary of the disk. This will outline the height of the disk. Below is how this function looks like when plotted by the following code:
Plot[intersec[r], {r, 0, rmax}, PlotRange -> All, Axes -> False, Frame -> True, FrameLabel -> {"radius", "disk height"}]
Step 3 Making a parametric plot of the disk by using the color function:
figdisk = ParametricPlot3D[{r Cos[\[Theta]], r Sin[\[Theta]],
intersec[r]}, {r, rmin, rmax}, {\[Theta], 0, 2 \[Pi]}, PlotPoints -> 100, Mesh -> False, Axes -> False, Boxed -> False, BoundaryStyle -> Opacity[0], Lighting -> {{"Ambient", White}}, Background -> Black, ColorFunctionScaling -> False, ColorFunction -> (ColorData[{"SolarColors", "Reverse"}][Abs@#3/scale + 0.1 RandomReal[{-1, 1}]] &)];
The trick here is set the color of the disk as a funtion of the radius, or in terms of the intersec funtion, as a function of the disk height. So it shows temperature gradient effect. Then random values are assigned to the colorfunction, so to mimic the random fluctuations.
For black hole, a simple sphere:
figBH = Graphics3D[{Black, Sphere[{0, 0, 0}, rmin]}];
for jet I use a cone:
figjet = ParametricPlot3D[{0.05 z Cos[t], 0.05 z Sin[t],
z}, {z, -rmin, 5 rmin}, {t, 0, 2 \[Pi]}, Mesh -> False, PlotStyle -> Glow[Blend[{White, Lighter@Blue}]]];
Then
Show[figdisk, figBH, figjet]
Now the problem is that:
- The way I choose to plot the disk only gives a surface, which is not symmetric above and below the equatorial plane. you can see this by the following figure with viewpoint adjusted and white background;
- The appearance of the example given at the top of this post seems to be natural. It is more like a real flow with fluctuations and even some random magnetic field lines on it.
-
Same for the jet, the example’s jet is more realistic with fluid-like materials ejected outward while mine jet….. I have seen this post that simulated realistic jet engine flame, but it does not look like the fragmented thing in the example.
Can anyone help me to improve this piece of art? Thank you so much in advance!