Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: When to use Module inside Manipulate

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101044] Re: [mg101025] When to use Module inside Manipulate
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Mon, 22 Jun 2009 04:22:52 -0400 (EDT)
  • References: <200906211105.HAA02588@smc.vnet.net>
  • Reply-to: drmajorbob at bigfoot.com

I'd start more like this:

Clear[T, Psi, anima]
Psi[x_, y_, amp_, phase_, a_, b_, T_] =
   Sqrt[1 - amp^2] Exp[-I \[Pi]^2/2 (4/a^2 + 1/b^2) T] 2/Sqrt[a b] Sin[
      2 Pi x/a] Sin[Pi y/b] +
    amp Exp[I phase] Exp[-I \[Pi]^2/2 (9/a^2 + 1/b^2) T] 2/
      Sqrt[a b] Sin[3 Pi x/a] Sin[Pi y/b];
anima[x_, y_, amp_, phase_, a_, b_] :=
  Animate[GraphicsRow[{Plot3D[
      Re[Psi[x, y, amp, phase, 1, 1, t]], {x, 0, 1}, {y, 0, 1},
      PlotRange -> {{0, 1}, {0, 1}, {-3, 3}},
      PerformanceGoal -> "Quality", ColorFunction -> "Rainbow",
      Mesh -> None],
     Plot3D[Im[Psi[x, y, amp, phase, 1, 1, t]], {x, 0, 1}, {y, 0, 1},
      PlotRange -> {{0, 1}, {0, 1}, {-3, 3}},
      ColorFunction -> "Rainbow", PerformanceGoal -> "Quality",
      Mesh -> None]}, ImageSize -> 600], {t, 0.001, 5},
   AnimationRunning -> False, AnimationRate -> .05]

DynamicModule[{amp, phase},
  Manipulate[
   anima[x, y, amp, phase, 1, 1],
   {{amp, 0.5}, 0, 1, Appearance -> "Labeled", ImageSize -> Small},
   {phase, 0, 2 Pi, Appearance -> "Labeled", ImageSize -> Small},
   ControlPlacement -> Left,
   SaveDefinitions -> True]
  ]

Bobby

On Sun, 21 Jun 2009 06:05:59 -0500, Porscha Louise McRobbie  
<pmcrobbi at umich.edu> wrote:

> Hello,
>
> I have defined a 2D complex function, and made side-by-side animations
> of the Re/Im parts inside a Manipulate.
>
> As written, I have the function definition as well as the animation
> wrapped in Module, and the animation/manipulate commands work fine
> (albeit slowly). However, if I remove that Module (it seems redundant
> to me), leaving only the outer DynamicModule, the cell where the
> graphs appear is highlighted, and the animate/manipulate no longer work.
>
> Any ideas about what I'm doing wrong? I suspect I'm not understanding
> how to localize variables properly.
>
> Thanks in advance,
> Porscha
>
>
>
> DynamicModule[{amp, phase, a, b},
>
>   Manipulate[a = 1; b = 1;
>
>    Module[{Psi, T},
>
>     Psi[x_, y_] =
>      Sqrt[1 - amp^2] Exp[-I \[Pi]^2/2  (4/a^2 + 1/b^2) T] 2/
>        Sqrt[a b] Sin[(2 Pi x)/a] Sin[(Pi y)/b] +
>       amp Exp[I phase] Exp[-I \[Pi]^2/2  (9/a^2 + 1/b^2) T] 2/
>        Sqrt[a b] Sin[(3 Pi x)/a] Sin[(Pi y)/b] ;
>
>     Animate[
>
>      GraphicsRow[{Plot3D[Re[Psi[x, y] /. T -> t], {x, 0, 1}, {y, 0, 1},
>          PlotRange -> {{0, 1}, {0, 1}, {-3, 3}},
>         PerformanceGoal -> "Quality", ColorFunction -> "Rainbow",
>         Mesh -> None],
>
>        Plot3D[Im[Psi[x, y] /. T -> t], {x, 0, 1}, {y, 0, 1},
>         PlotRange -> {{0, 1}, {0, 1}, {-3, 3}},
>         ColorFunction -> "Rainbow", PerformanceGoal -> "Quality",
>         Mesh -> None]}, ImageSize -> 600],
>
>      {t, 0.001, 5}, AnimationRunning -> False, AnimationRate -> .05]],
>
>    {{amp, 0.5}, 0, 1, Appearance -> "Labeled",
>     ImageSize -> Small}, {phase, 0, 2 Pi, Appearance -> "Labeled",
>     ImageSize -> Small}, ControlPlacement -> Left,
>    SaveDefinitions -> True]]
>



-- 
DrMajorBob at bigfoot.com


  • Prev by Date: Re: laptop recommendation to run mathematica fast?
  • Next by Date: Re: When to use Module inside Manipulate
  • Previous by thread: When to use Module inside Manipulate
  • Next by thread: Re: When to use Module inside Manipulate