Animate flow lines of time-dependent 3D dynamical systemHow can I create a fountain effect?

What's the point of fighting monsters in Zelda BotW?

Looking for a plural noun related to ‘fulcrum’ or ‘pivot’ that denotes multiple things as crucial to success

Did Cambridge award LLB?

Why didn't Doc believe Marty was from the future?

I feel cheated on by my new employer, does this sound right? Offered salary < advertised salary

What ways are there to "PEEK" memory sections in (different) BASIC(s)

Cutting numbers into a specific decimals

Why is 3/4 a simple meter while 6/8 is a compound meter?

Is the Amazon rainforest the "world's lungs"?

Export STL as ASCII or binary?

What is Soda Fountain Etiquette?

Why is "I let him to sleep" incorrect (or is it)?

If the integral of a series of functions converges to zero, does that series also converge pointwise to zero?

Another "Ask One Question" Question

Why does Sauron not permit his followers to use his name?

Notice period 60 days but I need to join in 45 days

What happens after an Aboleth's body is remade in the Elemental Plane of Water following its death?

Coupling two 15 Amp circuit breaker for 20 Amp

Count the number of triangles

Why doesn't Starship have four landing legs?

Heat output from a 200W electric radiator?

Can two aircraft stay on the same runway at the same time?

Which polygons can be turned inside out by a smooth deformation?

How can I reply to people who accuse me of putting people out of work?



Animate flow lines of time-dependent 3D dynamical system


How can I create a fountain effect?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








8












$begingroup$


I've spent a bunch of time perusing Stack Exchange to try to find an answer and found nothing; hopefully this isn't a duplicate.



I have a time-dependent vector field $Phi_t(x,y,z)=(xlambda^t,ylambda^-t,z+t)$, $lambda>1$ arbitrary; for my example, I'm restricting to the region $[0,1]times[0,1]timesmathbbR$. What I would like to do is:



  • fix some $lambda>1$;

  • generate some number of random initial points;

  • compute / store the orbits of these points over some length of time;

  • plot these orbits in 3D with animation.

I've currently managed to do all of this except animate the flow lines.



Here's my current code:



seeds = RandomReal[-1, 1, 250, 3]; (* 250 random initial points *)
lam = 1.5; (* [Lambda]>1 fixed *)

func[x_, y_, z_, t_] := x lam^t, y lam^(-t), z + t; (* the vector field itself *)
orbit[k_] := Table[func[seeds[[k]], n], n, 0, 9.75, 0.25]; (* function to compute the orbit for a single initial point *)
orbits = orbit[#] & /@ Range[1, Length[seeds], 1]; (* computes orbits for all initial points *)

Graphics3D[
Red, Arrowheads[-.01, .01], Arrow[BezierCurve[orbits[[#]]]] & /@ Range[1, Length[seeds], 1]
, PlotRange -> -1, 1, -1, 1, -1, 1, Boxed -> False, Axes -> True, AxesEdge -> -1, -1, -1, -1, -1, -1, ViewPoint -> 2.6056479300835718`, 2.1387445365836095`, 0.29388887642263006`, ViewVertical -> 0.3985587476649791`, 0.332086389794556`, 0.8549090912915488`, ImageSize -> 400]


Here's the output:
enter image description here



This is okay, but what I'd really like is something that can either



  1. animate one entire flow line a little at a time, then the next flow line a little at a time, etc. (in the same plot); or

  2. animate all flow lines simultaneously, a little at a time.

Can anyone help me with this?



Note: By defining an auxiliary function buildorbits[k_,n_]:=orbits[[k, 1 ;; n]];, I can animate single orbits using a very "hackish-feeling" implementation of ListAnimate. For instance:



enter image description here



; is this really my best option, though?










share|improve this question











$endgroup$













  • $begingroup$
    Is capital Phi the vector field or the flow? You say vector field, but you never integrate it; instead, it seems to be used to compute the "orbit" (= trajectory?) of the seed points, as if it were the flow.
    $endgroup$
    – Michael E2
    Aug 16 at 20:34










  • $begingroup$
    @MichaelE2 - When I said vector field, I mean vector field in the sense of a map from $mathbbR^m$ to $mathbbR^n$ for some $m,ngeq 1$. I'm not sure if this is standard terminology, but to me as far as I'm concerned: For each $t_0$, $Phi_t_0$ ($Phi$ evaluated at time $t=t_0$) is a "vector field," and the family $t_0inmathbbR$ is a "flow".
    $endgroup$
    – cstover
    Aug 16 at 20:48










  • $begingroup$
    A "flow" is a function $Phi_t(x,y,z)$ that gives the position at time $t$ of the particle that started at the point $(x,y,z)$. Formally, it is a vector field in the way that coordinates are vectors. The flow of a vector field $F$ satisfies $partial_t Phi_t = F$ at all $(x,y,z)$ and $t$ if $F=F(x,y,z,t)$ is time-dependent. So that a "flow" is related to a "vector field," and I think it is traditional to keep the terms separated. I was asking whether your vector field was more like the flow $Phi$ or the vector field $F$. I think you're saying it's the flow. Thanks.
    $endgroup$
    – Michael E2
    Aug 16 at 21:09










  • $begingroup$
    @MichaelE2 - I think you're right. Thanks for explaining! I appreciate any chance to clear up gaps in my understanding.
    $endgroup$
    – cstover
    Aug 16 at 21:23

















8












$begingroup$


I've spent a bunch of time perusing Stack Exchange to try to find an answer and found nothing; hopefully this isn't a duplicate.



I have a time-dependent vector field $Phi_t(x,y,z)=(xlambda^t,ylambda^-t,z+t)$, $lambda>1$ arbitrary; for my example, I'm restricting to the region $[0,1]times[0,1]timesmathbbR$. What I would like to do is:



  • fix some $lambda>1$;

  • generate some number of random initial points;

  • compute / store the orbits of these points over some length of time;

  • plot these orbits in 3D with animation.

I've currently managed to do all of this except animate the flow lines.



Here's my current code:



seeds = RandomReal[-1, 1, 250, 3]; (* 250 random initial points *)
lam = 1.5; (* [Lambda]>1 fixed *)

func[x_, y_, z_, t_] := x lam^t, y lam^(-t), z + t; (* the vector field itself *)
orbit[k_] := Table[func[seeds[[k]], n], n, 0, 9.75, 0.25]; (* function to compute the orbit for a single initial point *)
orbits = orbit[#] & /@ Range[1, Length[seeds], 1]; (* computes orbits for all initial points *)

Graphics3D[
Red, Arrowheads[-.01, .01], Arrow[BezierCurve[orbits[[#]]]] & /@ Range[1, Length[seeds], 1]
, PlotRange -> -1, 1, -1, 1, -1, 1, Boxed -> False, Axes -> True, AxesEdge -> -1, -1, -1, -1, -1, -1, ViewPoint -> 2.6056479300835718`, 2.1387445365836095`, 0.29388887642263006`, ViewVertical -> 0.3985587476649791`, 0.332086389794556`, 0.8549090912915488`, ImageSize -> 400]


Here's the output:
enter image description here



This is okay, but what I'd really like is something that can either



  1. animate one entire flow line a little at a time, then the next flow line a little at a time, etc. (in the same plot); or

  2. animate all flow lines simultaneously, a little at a time.

Can anyone help me with this?



Note: By defining an auxiliary function buildorbits[k_,n_]:=orbits[[k, 1 ;; n]];, I can animate single orbits using a very "hackish-feeling" implementation of ListAnimate. For instance:



enter image description here



; is this really my best option, though?










share|improve this question











$endgroup$













  • $begingroup$
    Is capital Phi the vector field or the flow? You say vector field, but you never integrate it; instead, it seems to be used to compute the "orbit" (= trajectory?) of the seed points, as if it were the flow.
    $endgroup$
    – Michael E2
    Aug 16 at 20:34










  • $begingroup$
    @MichaelE2 - When I said vector field, I mean vector field in the sense of a map from $mathbbR^m$ to $mathbbR^n$ for some $m,ngeq 1$. I'm not sure if this is standard terminology, but to me as far as I'm concerned: For each $t_0$, $Phi_t_0$ ($Phi$ evaluated at time $t=t_0$) is a "vector field," and the family $t_0inmathbbR$ is a "flow".
    $endgroup$
    – cstover
    Aug 16 at 20:48










  • $begingroup$
    A "flow" is a function $Phi_t(x,y,z)$ that gives the position at time $t$ of the particle that started at the point $(x,y,z)$. Formally, it is a vector field in the way that coordinates are vectors. The flow of a vector field $F$ satisfies $partial_t Phi_t = F$ at all $(x,y,z)$ and $t$ if $F=F(x,y,z,t)$ is time-dependent. So that a "flow" is related to a "vector field," and I think it is traditional to keep the terms separated. I was asking whether your vector field was more like the flow $Phi$ or the vector field $F$. I think you're saying it's the flow. Thanks.
    $endgroup$
    – Michael E2
    Aug 16 at 21:09










  • $begingroup$
    @MichaelE2 - I think you're right. Thanks for explaining! I appreciate any chance to clear up gaps in my understanding.
    $endgroup$
    – cstover
    Aug 16 at 21:23













8












8








8


2



$begingroup$


I've spent a bunch of time perusing Stack Exchange to try to find an answer and found nothing; hopefully this isn't a duplicate.



I have a time-dependent vector field $Phi_t(x,y,z)=(xlambda^t,ylambda^-t,z+t)$, $lambda>1$ arbitrary; for my example, I'm restricting to the region $[0,1]times[0,1]timesmathbbR$. What I would like to do is:



  • fix some $lambda>1$;

  • generate some number of random initial points;

  • compute / store the orbits of these points over some length of time;

  • plot these orbits in 3D with animation.

I've currently managed to do all of this except animate the flow lines.



Here's my current code:



seeds = RandomReal[-1, 1, 250, 3]; (* 250 random initial points *)
lam = 1.5; (* [Lambda]>1 fixed *)

func[x_, y_, z_, t_] := x lam^t, y lam^(-t), z + t; (* the vector field itself *)
orbit[k_] := Table[func[seeds[[k]], n], n, 0, 9.75, 0.25]; (* function to compute the orbit for a single initial point *)
orbits = orbit[#] & /@ Range[1, Length[seeds], 1]; (* computes orbits for all initial points *)

Graphics3D[
Red, Arrowheads[-.01, .01], Arrow[BezierCurve[orbits[[#]]]] & /@ Range[1, Length[seeds], 1]
, PlotRange -> -1, 1, -1, 1, -1, 1, Boxed -> False, Axes -> True, AxesEdge -> -1, -1, -1, -1, -1, -1, ViewPoint -> 2.6056479300835718`, 2.1387445365836095`, 0.29388887642263006`, ViewVertical -> 0.3985587476649791`, 0.332086389794556`, 0.8549090912915488`, ImageSize -> 400]


Here's the output:
enter image description here



This is okay, but what I'd really like is something that can either



  1. animate one entire flow line a little at a time, then the next flow line a little at a time, etc. (in the same plot); or

  2. animate all flow lines simultaneously, a little at a time.

Can anyone help me with this?



Note: By defining an auxiliary function buildorbits[k_,n_]:=orbits[[k, 1 ;; n]];, I can animate single orbits using a very "hackish-feeling" implementation of ListAnimate. For instance:



enter image description here



; is this really my best option, though?










share|improve this question











$endgroup$




I've spent a bunch of time perusing Stack Exchange to try to find an answer and found nothing; hopefully this isn't a duplicate.



I have a time-dependent vector field $Phi_t(x,y,z)=(xlambda^t,ylambda^-t,z+t)$, $lambda>1$ arbitrary; for my example, I'm restricting to the region $[0,1]times[0,1]timesmathbbR$. What I would like to do is:



  • fix some $lambda>1$;

  • generate some number of random initial points;

  • compute / store the orbits of these points over some length of time;

  • plot these orbits in 3D with animation.

I've currently managed to do all of this except animate the flow lines.



Here's my current code:



seeds = RandomReal[-1, 1, 250, 3]; (* 250 random initial points *)
lam = 1.5; (* [Lambda]>1 fixed *)

func[x_, y_, z_, t_] := x lam^t, y lam^(-t), z + t; (* the vector field itself *)
orbit[k_] := Table[func[seeds[[k]], n], n, 0, 9.75, 0.25]; (* function to compute the orbit for a single initial point *)
orbits = orbit[#] & /@ Range[1, Length[seeds], 1]; (* computes orbits for all initial points *)

Graphics3D[
Red, Arrowheads[-.01, .01], Arrow[BezierCurve[orbits[[#]]]] & /@ Range[1, Length[seeds], 1]
, PlotRange -> -1, 1, -1, 1, -1, 1, Boxed -> False, Axes -> True, AxesEdge -> -1, -1, -1, -1, -1, -1, ViewPoint -> 2.6056479300835718`, 2.1387445365836095`, 0.29388887642263006`, ViewVertical -> 0.3985587476649791`, 0.332086389794556`, 0.8549090912915488`, ImageSize -> 400]


Here's the output:
enter image description here



This is okay, but what I'd really like is something that can either



  1. animate one entire flow line a little at a time, then the next flow line a little at a time, etc. (in the same plot); or

  2. animate all flow lines simultaneously, a little at a time.

Can anyone help me with this?



Note: By defining an auxiliary function buildorbits[k_,n_]:=orbits[[k, 1 ;; n]];, I can animate single orbits using a very "hackish-feeling" implementation of ListAnimate. For instance:



enter image description here



; is this really my best option, though?







graphics3d animation






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Aug 18 at 3:36









J. M. is away

100k10 gold badges317 silver badges474 bronze badges




100k10 gold badges317 silver badges474 bronze badges










asked Aug 16 at 20:13









cstovercstover

757 bronze badges




757 bronze badges














  • $begingroup$
    Is capital Phi the vector field or the flow? You say vector field, but you never integrate it; instead, it seems to be used to compute the "orbit" (= trajectory?) of the seed points, as if it were the flow.
    $endgroup$
    – Michael E2
    Aug 16 at 20:34










  • $begingroup$
    @MichaelE2 - When I said vector field, I mean vector field in the sense of a map from $mathbbR^m$ to $mathbbR^n$ for some $m,ngeq 1$. I'm not sure if this is standard terminology, but to me as far as I'm concerned: For each $t_0$, $Phi_t_0$ ($Phi$ evaluated at time $t=t_0$) is a "vector field," and the family $t_0inmathbbR$ is a "flow".
    $endgroup$
    – cstover
    Aug 16 at 20:48










  • $begingroup$
    A "flow" is a function $Phi_t(x,y,z)$ that gives the position at time $t$ of the particle that started at the point $(x,y,z)$. Formally, it is a vector field in the way that coordinates are vectors. The flow of a vector field $F$ satisfies $partial_t Phi_t = F$ at all $(x,y,z)$ and $t$ if $F=F(x,y,z,t)$ is time-dependent. So that a "flow" is related to a "vector field," and I think it is traditional to keep the terms separated. I was asking whether your vector field was more like the flow $Phi$ or the vector field $F$. I think you're saying it's the flow. Thanks.
    $endgroup$
    – Michael E2
    Aug 16 at 21:09










  • $begingroup$
    @MichaelE2 - I think you're right. Thanks for explaining! I appreciate any chance to clear up gaps in my understanding.
    $endgroup$
    – cstover
    Aug 16 at 21:23
















  • $begingroup$
    Is capital Phi the vector field or the flow? You say vector field, but you never integrate it; instead, it seems to be used to compute the "orbit" (= trajectory?) of the seed points, as if it were the flow.
    $endgroup$
    – Michael E2
    Aug 16 at 20:34










  • $begingroup$
    @MichaelE2 - When I said vector field, I mean vector field in the sense of a map from $mathbbR^m$ to $mathbbR^n$ for some $m,ngeq 1$. I'm not sure if this is standard terminology, but to me as far as I'm concerned: For each $t_0$, $Phi_t_0$ ($Phi$ evaluated at time $t=t_0$) is a "vector field," and the family $t_0inmathbbR$ is a "flow".
    $endgroup$
    – cstover
    Aug 16 at 20:48










  • $begingroup$
    A "flow" is a function $Phi_t(x,y,z)$ that gives the position at time $t$ of the particle that started at the point $(x,y,z)$. Formally, it is a vector field in the way that coordinates are vectors. The flow of a vector field $F$ satisfies $partial_t Phi_t = F$ at all $(x,y,z)$ and $t$ if $F=F(x,y,z,t)$ is time-dependent. So that a "flow" is related to a "vector field," and I think it is traditional to keep the terms separated. I was asking whether your vector field was more like the flow $Phi$ or the vector field $F$. I think you're saying it's the flow. Thanks.
    $endgroup$
    – Michael E2
    Aug 16 at 21:09










  • $begingroup$
    @MichaelE2 - I think you're right. Thanks for explaining! I appreciate any chance to clear up gaps in my understanding.
    $endgroup$
    – cstover
    Aug 16 at 21:23















$begingroup$
Is capital Phi the vector field or the flow? You say vector field, but you never integrate it; instead, it seems to be used to compute the "orbit" (= trajectory?) of the seed points, as if it were the flow.
$endgroup$
– Michael E2
Aug 16 at 20:34




$begingroup$
Is capital Phi the vector field or the flow? You say vector field, but you never integrate it; instead, it seems to be used to compute the "orbit" (= trajectory?) of the seed points, as if it were the flow.
$endgroup$
– Michael E2
Aug 16 at 20:34












$begingroup$
@MichaelE2 - When I said vector field, I mean vector field in the sense of a map from $mathbbR^m$ to $mathbbR^n$ for some $m,ngeq 1$. I'm not sure if this is standard terminology, but to me as far as I'm concerned: For each $t_0$, $Phi_t_0$ ($Phi$ evaluated at time $t=t_0$) is a "vector field," and the family $t_0inmathbbR$ is a "flow".
$endgroup$
– cstover
Aug 16 at 20:48




$begingroup$
@MichaelE2 - When I said vector field, I mean vector field in the sense of a map from $mathbbR^m$ to $mathbbR^n$ for some $m,ngeq 1$. I'm not sure if this is standard terminology, but to me as far as I'm concerned: For each $t_0$, $Phi_t_0$ ($Phi$ evaluated at time $t=t_0$) is a "vector field," and the family $t_0inmathbbR$ is a "flow".
$endgroup$
– cstover
Aug 16 at 20:48












$begingroup$
A "flow" is a function $Phi_t(x,y,z)$ that gives the position at time $t$ of the particle that started at the point $(x,y,z)$. Formally, it is a vector field in the way that coordinates are vectors. The flow of a vector field $F$ satisfies $partial_t Phi_t = F$ at all $(x,y,z)$ and $t$ if $F=F(x,y,z,t)$ is time-dependent. So that a "flow" is related to a "vector field," and I think it is traditional to keep the terms separated. I was asking whether your vector field was more like the flow $Phi$ or the vector field $F$. I think you're saying it's the flow. Thanks.
$endgroup$
– Michael E2
Aug 16 at 21:09




$begingroup$
A "flow" is a function $Phi_t(x,y,z)$ that gives the position at time $t$ of the particle that started at the point $(x,y,z)$. Formally, it is a vector field in the way that coordinates are vectors. The flow of a vector field $F$ satisfies $partial_t Phi_t = F$ at all $(x,y,z)$ and $t$ if $F=F(x,y,z,t)$ is time-dependent. So that a "flow" is related to a "vector field," and I think it is traditional to keep the terms separated. I was asking whether your vector field was more like the flow $Phi$ or the vector field $F$. I think you're saying it's the flow. Thanks.
$endgroup$
– Michael E2
Aug 16 at 21:09












$begingroup$
@MichaelE2 - I think you're right. Thanks for explaining! I appreciate any chance to clear up gaps in my understanding.
$endgroup$
– cstover
Aug 16 at 21:23




$begingroup$
@MichaelE2 - I think you're right. Thanks for explaining! I appreciate any chance to clear up gaps in my understanding.
$endgroup$
– cstover
Aug 16 at 21:23










2 Answers
2






active

oldest

votes


















9













$begingroup$

You can use ParametricPlot3D to get smoother orbits:



SeedRandom[1]
n = 50;
seeds = RandomReal[-1, 1, n, 3];
tbar = 10;

Animate[ParametricPlot3D[Evaluate[func[seeds[[#]], t] & /@ Range[Length@seeds]],
t, 0, tmax,
BoxRatios -> 1,
PlotStyle -> Arrowheads[Medium],
ImageSize -> 400,
PlotRange -> -60, 60, -1, 1, -10, 10] /. Line -> Arrow,
tmax, .01, tbar]


enter image description here



Update: "Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?"



colors = Table[Hue@RandomReal[], n];

Animate[ParametricPlot3D[Evaluate[ConditionalExpression[func[seeds[[#]], t - (#-1) tbar],
(# - 1) tbar <= t <= # tbar] & /@ Range[n]],
t, 0, tmax,
BaseStyle -> Arrowheads[Medium],
BoxRatios -> 1,
ImageSize -> 400,
PlotStyle -> colors,
PerformanceGoal -> "Quality",
PlotRange -> -50, 60, -1, 1, -5, 15] /. Line -> Arrow,
tmax, .01, n tbar,
AnimationRate -> 10]


enter image description here






share|improve this answer











$endgroup$














  • $begingroup$
    That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
    $endgroup$
    – cstover
    Aug 16 at 20:51










  • $begingroup$
    I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
    $endgroup$
    – cstover
    Aug 16 at 21:06










  • $begingroup$
    Thank you kindly!
    $endgroup$
    – cstover
    Aug 16 at 22:12










  • $begingroup$
    @cstover, please see the update re sequential display of orbits.
    $endgroup$
    – kglr
    Aug 18 at 5:59










  • $begingroup$
    This is phenomenal, thank you so much!
    $endgroup$
    – cstover
    Aug 19 at 7:05


















9













$begingroup$

Not exactly what was asked, but another way to visualize the flow, based on How can I create a fountain effect?:



DynamicModule[
x0, y0, z0, last = 0, lam = 1.5, n = 500, colors, replace,
last = Clock[Infinity];
x0, y0, z0 = RandomReal[-1, 1, 3, n];
colors = RandomColor[n];

Graphics3D[GraphicsComplex[
Dynamic@ With[t = Clock[Infinity],
With[dt = (t - last)/2, With[dl = lam^dt,
last = t;
x0 = x0*dl; y0 = y0/dl; z0 = z0 + dt; (* integration of velocity *)
replace = Pick[Range@n, UnitStep[z0 - 1], 1];
x0[[replace]] = RandomReal[-1, 1, Length@replace];
y0[[replace]] = RandomReal[-1, 1, Length@replace];
z0[[replace]] = RandomReal[-1, -1 + dt, Length@replace];
Transpose@x0, y0, z0
]]],
Point[Range@n, VertexColors -> colors]],
PlotRange -> -2, 2, -2, 2, -1, 1, Axes -> True,
AxesLabel -> x, y, z],

Initialization :> (x0, y0, z0 = RandomReal[-1, 1, 3, n])
]


enter image description here



The integration is based on the ODE for $Phi$, which is autonomous and linear and can be done by scalings and translation:
$$d over dt,(x,y,z) = (x log lambda, -y log lambda, 1)$$






share|improve this answer











$endgroup$










  • 1




    $begingroup$
    That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
    $endgroup$
    – cstover
    Aug 17 at 1:00










  • $begingroup$
    Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
    $endgroup$
    – CA Trevillian
    Aug 17 at 2:02






  • 1




    $begingroup$
    @CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
    $endgroup$
    – Michael E2
    Aug 17 at 3:33













Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "387"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f203839%2fanimate-flow-lines-of-time-dependent-3d-dynamical-system%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









9













$begingroup$

You can use ParametricPlot3D to get smoother orbits:



SeedRandom[1]
n = 50;
seeds = RandomReal[-1, 1, n, 3];
tbar = 10;

Animate[ParametricPlot3D[Evaluate[func[seeds[[#]], t] & /@ Range[Length@seeds]],
t, 0, tmax,
BoxRatios -> 1,
PlotStyle -> Arrowheads[Medium],
ImageSize -> 400,
PlotRange -> -60, 60, -1, 1, -10, 10] /. Line -> Arrow,
tmax, .01, tbar]


enter image description here



Update: "Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?"



colors = Table[Hue@RandomReal[], n];

Animate[ParametricPlot3D[Evaluate[ConditionalExpression[func[seeds[[#]], t - (#-1) tbar],
(# - 1) tbar <= t <= # tbar] & /@ Range[n]],
t, 0, tmax,
BaseStyle -> Arrowheads[Medium],
BoxRatios -> 1,
ImageSize -> 400,
PlotStyle -> colors,
PerformanceGoal -> "Quality",
PlotRange -> -50, 60, -1, 1, -5, 15] /. Line -> Arrow,
tmax, .01, n tbar,
AnimationRate -> 10]


enter image description here






share|improve this answer











$endgroup$














  • $begingroup$
    That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
    $endgroup$
    – cstover
    Aug 16 at 20:51










  • $begingroup$
    I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
    $endgroup$
    – cstover
    Aug 16 at 21:06










  • $begingroup$
    Thank you kindly!
    $endgroup$
    – cstover
    Aug 16 at 22:12










  • $begingroup$
    @cstover, please see the update re sequential display of orbits.
    $endgroup$
    – kglr
    Aug 18 at 5:59










  • $begingroup$
    This is phenomenal, thank you so much!
    $endgroup$
    – cstover
    Aug 19 at 7:05















9













$begingroup$

You can use ParametricPlot3D to get smoother orbits:



SeedRandom[1]
n = 50;
seeds = RandomReal[-1, 1, n, 3];
tbar = 10;

Animate[ParametricPlot3D[Evaluate[func[seeds[[#]], t] & /@ Range[Length@seeds]],
t, 0, tmax,
BoxRatios -> 1,
PlotStyle -> Arrowheads[Medium],
ImageSize -> 400,
PlotRange -> -60, 60, -1, 1, -10, 10] /. Line -> Arrow,
tmax, .01, tbar]


enter image description here



Update: "Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?"



colors = Table[Hue@RandomReal[], n];

Animate[ParametricPlot3D[Evaluate[ConditionalExpression[func[seeds[[#]], t - (#-1) tbar],
(# - 1) tbar <= t <= # tbar] & /@ Range[n]],
t, 0, tmax,
BaseStyle -> Arrowheads[Medium],
BoxRatios -> 1,
ImageSize -> 400,
PlotStyle -> colors,
PerformanceGoal -> "Quality",
PlotRange -> -50, 60, -1, 1, -5, 15] /. Line -> Arrow,
tmax, .01, n tbar,
AnimationRate -> 10]


enter image description here






share|improve this answer











$endgroup$














  • $begingroup$
    That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
    $endgroup$
    – cstover
    Aug 16 at 20:51










  • $begingroup$
    I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
    $endgroup$
    – cstover
    Aug 16 at 21:06










  • $begingroup$
    Thank you kindly!
    $endgroup$
    – cstover
    Aug 16 at 22:12










  • $begingroup$
    @cstover, please see the update re sequential display of orbits.
    $endgroup$
    – kglr
    Aug 18 at 5:59










  • $begingroup$
    This is phenomenal, thank you so much!
    $endgroup$
    – cstover
    Aug 19 at 7:05













9














9










9







$begingroup$

You can use ParametricPlot3D to get smoother orbits:



SeedRandom[1]
n = 50;
seeds = RandomReal[-1, 1, n, 3];
tbar = 10;

Animate[ParametricPlot3D[Evaluate[func[seeds[[#]], t] & /@ Range[Length@seeds]],
t, 0, tmax,
BoxRatios -> 1,
PlotStyle -> Arrowheads[Medium],
ImageSize -> 400,
PlotRange -> -60, 60, -1, 1, -10, 10] /. Line -> Arrow,
tmax, .01, tbar]


enter image description here



Update: "Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?"



colors = Table[Hue@RandomReal[], n];

Animate[ParametricPlot3D[Evaluate[ConditionalExpression[func[seeds[[#]], t - (#-1) tbar],
(# - 1) tbar <= t <= # tbar] & /@ Range[n]],
t, 0, tmax,
BaseStyle -> Arrowheads[Medium],
BoxRatios -> 1,
ImageSize -> 400,
PlotStyle -> colors,
PerformanceGoal -> "Quality",
PlotRange -> -50, 60, -1, 1, -5, 15] /. Line -> Arrow,
tmax, .01, n tbar,
AnimationRate -> 10]


enter image description here






share|improve this answer











$endgroup$



You can use ParametricPlot3D to get smoother orbits:



SeedRandom[1]
n = 50;
seeds = RandomReal[-1, 1, n, 3];
tbar = 10;

Animate[ParametricPlot3D[Evaluate[func[seeds[[#]], t] & /@ Range[Length@seeds]],
t, 0, tmax,
BoxRatios -> 1,
PlotStyle -> Arrowheads[Medium],
ImageSize -> 400,
PlotRange -> -60, 60, -1, 1, -10, 10] /. Line -> Arrow,
tmax, .01, tbar]


enter image description here



Update: "Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?"



colors = Table[Hue@RandomReal[], n];

Animate[ParametricPlot3D[Evaluate[ConditionalExpression[func[seeds[[#]], t - (#-1) tbar],
(# - 1) tbar <= t <= # tbar] & /@ Range[n]],
t, 0, tmax,
BaseStyle -> Arrowheads[Medium],
BoxRatios -> 1,
ImageSize -> 400,
PlotStyle -> colors,
PerformanceGoal -> "Quality",
PlotRange -> -50, 60, -1, 1, -5, 15] /. Line -> Arrow,
tmax, .01, n tbar,
AnimationRate -> 10]


enter image description here







share|improve this answer














share|improve this answer



share|improve this answer








edited Aug 18 at 6:38

























answered Aug 16 at 20:46









kglrkglr

214k10 gold badges245 silver badges490 bronze badges




214k10 gold badges245 silver badges490 bronze badges














  • $begingroup$
    That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
    $endgroup$
    – cstover
    Aug 16 at 20:51










  • $begingroup$
    I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
    $endgroup$
    – cstover
    Aug 16 at 21:06










  • $begingroup$
    Thank you kindly!
    $endgroup$
    – cstover
    Aug 16 at 22:12










  • $begingroup$
    @cstover, please see the update re sequential display of orbits.
    $endgroup$
    – kglr
    Aug 18 at 5:59










  • $begingroup$
    This is phenomenal, thank you so much!
    $endgroup$
    – cstover
    Aug 19 at 7:05
















  • $begingroup$
    That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
    $endgroup$
    – cstover
    Aug 16 at 20:51










  • $begingroup$
    I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
    $endgroup$
    – cstover
    Aug 16 at 21:06










  • $begingroup$
    Thank you kindly!
    $endgroup$
    – cstover
    Aug 16 at 22:12










  • $begingroup$
    @cstover, please see the update re sequential display of orbits.
    $endgroup$
    – kglr
    Aug 18 at 5:59










  • $begingroup$
    This is phenomenal, thank you so much!
    $endgroup$
    – cstover
    Aug 19 at 7:05















$begingroup$
That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
$endgroup$
– cstover
Aug 16 at 20:51




$begingroup$
That's amazing! I tried for a while to use built-in functions such as ParametricPlot3D, but I never could get the arguments quite right. Okay, follow-up question: Is there a way to use this this implementation to animate as all of orbit 1, followed by all of orbit 2, followed by....?
$endgroup$
– cstover
Aug 16 at 20:51












$begingroup$
I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
$endgroup$
– cstover
Aug 16 at 21:06




$begingroup$
I would like to keep orbit 1 when orbit 2 is rendered, and keep both when orbit 3 is rendered, etc. But, if it's not too much trouble, I would appreciate seeing how to do one version with them kept and one with them erased...just to become a better programmer.
$endgroup$
– cstover
Aug 16 at 21:06












$begingroup$
Thank you kindly!
$endgroup$
– cstover
Aug 16 at 22:12




$begingroup$
Thank you kindly!
$endgroup$
– cstover
Aug 16 at 22:12












$begingroup$
@cstover, please see the update re sequential display of orbits.
$endgroup$
– kglr
Aug 18 at 5:59




$begingroup$
@cstover, please see the update re sequential display of orbits.
$endgroup$
– kglr
Aug 18 at 5:59












$begingroup$
This is phenomenal, thank you so much!
$endgroup$
– cstover
Aug 19 at 7:05




$begingroup$
This is phenomenal, thank you so much!
$endgroup$
– cstover
Aug 19 at 7:05













9













$begingroup$

Not exactly what was asked, but another way to visualize the flow, based on How can I create a fountain effect?:



DynamicModule[
x0, y0, z0, last = 0, lam = 1.5, n = 500, colors, replace,
last = Clock[Infinity];
x0, y0, z0 = RandomReal[-1, 1, 3, n];
colors = RandomColor[n];

Graphics3D[GraphicsComplex[
Dynamic@ With[t = Clock[Infinity],
With[dt = (t - last)/2, With[dl = lam^dt,
last = t;
x0 = x0*dl; y0 = y0/dl; z0 = z0 + dt; (* integration of velocity *)
replace = Pick[Range@n, UnitStep[z0 - 1], 1];
x0[[replace]] = RandomReal[-1, 1, Length@replace];
y0[[replace]] = RandomReal[-1, 1, Length@replace];
z0[[replace]] = RandomReal[-1, -1 + dt, Length@replace];
Transpose@x0, y0, z0
]]],
Point[Range@n, VertexColors -> colors]],
PlotRange -> -2, 2, -2, 2, -1, 1, Axes -> True,
AxesLabel -> x, y, z],

Initialization :> (x0, y0, z0 = RandomReal[-1, 1, 3, n])
]


enter image description here



The integration is based on the ODE for $Phi$, which is autonomous and linear and can be done by scalings and translation:
$$d over dt,(x,y,z) = (x log lambda, -y log lambda, 1)$$






share|improve this answer











$endgroup$










  • 1




    $begingroup$
    That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
    $endgroup$
    – cstover
    Aug 17 at 1:00










  • $begingroup$
    Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
    $endgroup$
    – CA Trevillian
    Aug 17 at 2:02






  • 1




    $begingroup$
    @CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
    $endgroup$
    – Michael E2
    Aug 17 at 3:33















9













$begingroup$

Not exactly what was asked, but another way to visualize the flow, based on How can I create a fountain effect?:



DynamicModule[
x0, y0, z0, last = 0, lam = 1.5, n = 500, colors, replace,
last = Clock[Infinity];
x0, y0, z0 = RandomReal[-1, 1, 3, n];
colors = RandomColor[n];

Graphics3D[GraphicsComplex[
Dynamic@ With[t = Clock[Infinity],
With[dt = (t - last)/2, With[dl = lam^dt,
last = t;
x0 = x0*dl; y0 = y0/dl; z0 = z0 + dt; (* integration of velocity *)
replace = Pick[Range@n, UnitStep[z0 - 1], 1];
x0[[replace]] = RandomReal[-1, 1, Length@replace];
y0[[replace]] = RandomReal[-1, 1, Length@replace];
z0[[replace]] = RandomReal[-1, -1 + dt, Length@replace];
Transpose@x0, y0, z0
]]],
Point[Range@n, VertexColors -> colors]],
PlotRange -> -2, 2, -2, 2, -1, 1, Axes -> True,
AxesLabel -> x, y, z],

Initialization :> (x0, y0, z0 = RandomReal[-1, 1, 3, n])
]


enter image description here



The integration is based on the ODE for $Phi$, which is autonomous and linear and can be done by scalings and translation:
$$d over dt,(x,y,z) = (x log lambda, -y log lambda, 1)$$






share|improve this answer











$endgroup$










  • 1




    $begingroup$
    That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
    $endgroup$
    – cstover
    Aug 17 at 1:00










  • $begingroup$
    Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
    $endgroup$
    – CA Trevillian
    Aug 17 at 2:02






  • 1




    $begingroup$
    @CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
    $endgroup$
    – Michael E2
    Aug 17 at 3:33













9














9










9







$begingroup$

Not exactly what was asked, but another way to visualize the flow, based on How can I create a fountain effect?:



DynamicModule[
x0, y0, z0, last = 0, lam = 1.5, n = 500, colors, replace,
last = Clock[Infinity];
x0, y0, z0 = RandomReal[-1, 1, 3, n];
colors = RandomColor[n];

Graphics3D[GraphicsComplex[
Dynamic@ With[t = Clock[Infinity],
With[dt = (t - last)/2, With[dl = lam^dt,
last = t;
x0 = x0*dl; y0 = y0/dl; z0 = z0 + dt; (* integration of velocity *)
replace = Pick[Range@n, UnitStep[z0 - 1], 1];
x0[[replace]] = RandomReal[-1, 1, Length@replace];
y0[[replace]] = RandomReal[-1, 1, Length@replace];
z0[[replace]] = RandomReal[-1, -1 + dt, Length@replace];
Transpose@x0, y0, z0
]]],
Point[Range@n, VertexColors -> colors]],
PlotRange -> -2, 2, -2, 2, -1, 1, Axes -> True,
AxesLabel -> x, y, z],

Initialization :> (x0, y0, z0 = RandomReal[-1, 1, 3, n])
]


enter image description here



The integration is based on the ODE for $Phi$, which is autonomous and linear and can be done by scalings and translation:
$$d over dt,(x,y,z) = (x log lambda, -y log lambda, 1)$$






share|improve this answer











$endgroup$



Not exactly what was asked, but another way to visualize the flow, based on How can I create a fountain effect?:



DynamicModule[
x0, y0, z0, last = 0, lam = 1.5, n = 500, colors, replace,
last = Clock[Infinity];
x0, y0, z0 = RandomReal[-1, 1, 3, n];
colors = RandomColor[n];

Graphics3D[GraphicsComplex[
Dynamic@ With[t = Clock[Infinity],
With[dt = (t - last)/2, With[dl = lam^dt,
last = t;
x0 = x0*dl; y0 = y0/dl; z0 = z0 + dt; (* integration of velocity *)
replace = Pick[Range@n, UnitStep[z0 - 1], 1];
x0[[replace]] = RandomReal[-1, 1, Length@replace];
y0[[replace]] = RandomReal[-1, 1, Length@replace];
z0[[replace]] = RandomReal[-1, -1 + dt, Length@replace];
Transpose@x0, y0, z0
]]],
Point[Range@n, VertexColors -> colors]],
PlotRange -> -2, 2, -2, 2, -1, 1, Axes -> True,
AxesLabel -> x, y, z],

Initialization :> (x0, y0, z0 = RandomReal[-1, 1, 3, n])
]


enter image description here



The integration is based on the ODE for $Phi$, which is autonomous and linear and can be done by scalings and translation:
$$d over dt,(x,y,z) = (x log lambda, -y log lambda, 1)$$







share|improve this answer














share|improve this answer



share|improve this answer








edited Aug 17 at 12:56

























answered Aug 16 at 22:18









Michael E2Michael E2

159k13 gold badges216 silver badges516 bronze badges




159k13 gold badges216 silver badges516 bronze badges










  • 1




    $begingroup$
    That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
    $endgroup$
    – cstover
    Aug 17 at 1:00










  • $begingroup$
    Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
    $endgroup$
    – CA Trevillian
    Aug 17 at 2:02






  • 1




    $begingroup$
    @CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
    $endgroup$
    – Michael E2
    Aug 17 at 3:33












  • 1




    $begingroup$
    That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
    $endgroup$
    – cstover
    Aug 17 at 1:00










  • $begingroup$
    Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
    $endgroup$
    – CA Trevillian
    Aug 17 at 2:02






  • 1




    $begingroup$
    @CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
    $endgroup$
    – Michael E2
    Aug 17 at 3:33







1




1




$begingroup$
That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
$endgroup$
– cstover
Aug 17 at 1:00




$begingroup$
That's really neat! While this may not be the question I asked, it's a hugely rewarding answer that I think will help me learn a lot! Thank you so much!
$endgroup$
– cstover
Aug 17 at 1:00












$begingroup$
Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
$endgroup$
– CA Trevillian
Aug 17 at 2:02




$begingroup$
Michael, wow! Several +1s for the self-link to your previous work (especially the gravity hose, WOW!) and for this answer also. So this can be a constructive comment, please, can you elaborate on how much the RAM usage is impacted with depictions such as these? Very exquisite work.
$endgroup$
– CA Trevillian
Aug 17 at 2:02




1




1




$begingroup$
@CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
$endgroup$
– Michael E2
Aug 17 at 3:33




$begingroup$
@CATrevillian Thanks. The graphics take up about 60K for the colors and 12-13K for the coordinates. The coordinate data gets copied at each step, plus 4K for the computation of replace, and the arrays x0, y0, z0 are partially overwritten (but not copied, I think) at each step and stay packed (I think). If GraphicsComplex & VertexColors are efficient, then it's conceivable that only the 13K of coordinate data needs to be shipped to the GPU at each step since the basic graphics structure does not change (but I don't know anything about how GPUs actually work).
$endgroup$
– Michael E2
Aug 17 at 3:33

















draft saved

draft discarded
















































Thanks for contributing an answer to Mathematica Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f203839%2fanimate-flow-lines-of-time-dependent-3d-dynamical-system%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form