|
[Date Index]
[Thread Index]
[Author Index]
Re: Manipulate a VectorFieldPlot3D
- To: mathgroup at smc.vnet.net
- Subject: [mg80501] Re: Manipulate a VectorFieldPlot3D
- From: Albert <awnl at arcor.net>
- Date: Thu, 23 Aug 2007 06:24:09 -0400 (EDT)
- References: <faj4u1$8rp$1@smc.vnet.net>
Hi,
> I would like to 3D plot two time dependent fields E and B.
> I have two questions about the current state of my notebook:
>
> Why the options Axes and AxesLabel produce an error, while producing
> the expected behaviour (adding the axes label!)
>
> How can I have a Manipulate object that would allow me to scan over time?
The following code works for me. Since the generation of the plots is
somewhat lengthy I used the option ContinousAction->False for
Manipulate. As has already been explained in this group thath it seems
to be the best approach to define functions of the variables you want to
Manipulate. This way there is no need for explicit usage of Dynamic
anywhere...
Clear["Global`*"]
<<PhysicalConstants`
Needs["VectorFieldPlots`"]
c=299792458;(*SpeedOfLight*)
\[Mu]=\[Pi]/2500000;(*VacuumPermeability*)
\[Epsilon]=8.854187817`*^-12;(*VacuumPermittivity*)
\[Omega]=1;(*Angular speed*)
p=1;(*Unit dipole moment*)
k=\[Omega]/c;(*Norm of the wave vector*)
r=Norm[{x,y,z}];(*Norm of the position vector*)
a=10;
Ex[t_]=(y^2+z^2) Cos[\[Omega] t-k r]-x y Sin[\[Omega] t-k r];
Ey[t_]=(x^2+z^2) Sin[\[Omega] t-k r]-x y Cos[\[Omega] t-k r];
Ez[t_]=z (x Cos[\[Omega] t-k r]+y Sin[\[Omega] t-k r]);
Bx[t_]=-z Sin[\[Omega] t-k r];
By[t_]=z Cos[\[Omega] t-k r];
Bz[t_]=x Sin[\[Omega] t-k r]-y Cos[\[Omega] t-k r];
Manipulate[
Column[{
Row[{"time = ",t}],
Row[{
Show[
VectorFieldPlot3D[(\[Omega]^2 p/4 \[Pi] \[Epsilon] c^2 r^3)
{Ex[t],Ey[t],Ez[t]},{x,-a,a},{y,-a,a},{z,-a,a},VectorHeads->True],
Axes->True,AxesLabel->{x,y,z},PlotLabel->"E",ImageSize->300
],
Show[
VectorFieldPlot3D[(\[Mu] \[Omega]^2 p/4 \[Pi] c r^2)
{Bx[t],By[t],Bz[t]},{x,-a,a},{y,-a,a},{z,-a,a},VectorHeads->True],
Axes->True,AxesLabel->{x,y,z},PlotLabel->"B",ImageSize->300
]
}]
}],
{t,0,100},
ContinuousAction->False
]
For this case I probably would prefer to visualize the time dependency
with something like:
With[{c1 = (\[Omega]^2 p/4 \[Pi] \[Epsilon] c^2 r^3),
c2 = (\[Mu] \[Omega]^2 p/4 \[Pi] c r^2)},
graphlist = Table[
PrintTemporary[t];
Column[{
Row[{"time = ", t}],
Row[{
Show[
VectorFieldPlot3D[
c1 {Ex[t], Ey[t], Ez[t]}, {x, -a, a}, {y, -a, a}, {z, -a,
a}, VectorHeads -> True], Axes -> True,
AxesLabel -> {x, y, z}, PlotLabel -> "E", ImageSize -> 300,
PlotRange -> {{-a, a}, {-a, a}, {-a, a}}
],
Show[
VectorFieldPlot3D[
c2 {Bx[t], By[t], Bz[t]}, {x, -a, a}, {y, -a, a}, {z, -a,
a}, VectorHeads -> True], Axes -> True,
AxesLabel -> {x, y, z}, PlotLabel -> "B", ImageSize -> 300,
PlotRange -> {{-a, a}, {-a, a}, {-a, a}}
]
}]
}],
{t, 0, 100, 10}
]
];
ListAnimate[graphlist]
hth,
albert
Prev by Date:
Re: ParametricPlot3D from 5.2 to 6.0
Next by Date:
Re: Manipulate a VectorFieldPlot3D
Previous by thread:
Manipulate a VectorFieldPlot3D
Next by thread:
Re: Manipulate a VectorFieldPlot3D
|