
Calling Sequence


fieldplot3d(f, x=r1, y=r2, z=r3, options)
fieldplot3d(f, r1, r2, r3, options)


Parameters


f



Vector field to be plotted

x



first coordinate

r1



range of first coordinate

y



second coordinate

r2



range of second coordinate

z



third coordinate

r3



range of third coordinate

options



options that control the behavior of fieldplot3d





Description


•

A typical call to the fieldplot3d function is fieldplot3d(f, x=a..b, y=c..d, z=p..q), where f is a list of three maple expressions in x, y and z, and a..b, c..d, and p..q specifies the three axes ranges of the field. The result is a threedimensional vector field with the vector evaluated at (x, y, z) located at this point.

•

It is possible to input procedures, rather than expressions, as the components of a vector field. A typical call in this case is fieldplot3d(f, a..b, c..d, p..q), where f is a list of three maple procedures in three variables.

•

It is also possible to input a threedimensional VectorField from the VectorCalculus package to be plotted, which works with either calling sequence as the coordinates are given as part of the field vector.

•

A call to fieldplot3d produces a PLOT3D data structure, which is then printed. For information on these data structures, see plot3d/structure.


Remaining arguments are interpreted as options which are specified as equations of the form option = value. In particular, the following optional arguments are available:


The arrows option allows you to specify the style of arrow used to represent a vector. The possible values are line, small (or thin), medium (or slim), large (or thick) and solid, with thin being the default.

•

grid=[value1,value2,value3]


The grid option allows you to set the initial size of the threedimensional grid. The default is [8,8,8].


The fieldstrength option allows finer control of how the size of the drawn vectors corresponds to the strength of the field. value can be any of the following:


maximal or maximal(v): The size of the arrow corresponds to the ratio of the field strength at the given point to the maximal field strength at all points in the grid. The value v (by default $1$) is a scaling factor used to adjust the ratio. Values smaller than $1$ reduce the size of all arrows, while values larger than $1$ increase the size of all arrows. Note: In cases where $1<v$, the drawing of arrows that are larger than the maximum size is controlled through the clipping option (see below).


average or average(v): The size of the arrow corresponds to the ratio of the field strength at the given point to the average field strength at all points in the grid. The value v (by default $2$) multiplies the computed average to determine the maximum arrow size. The drawing of arrows that are larger than the maximum size is controlled through the clipping option (see below). This option is most useful for fields that have large regions with small values, as it allows scaling up to view the field direction for those regions.


fixed or fixed(v): The size of all arrows is fixed to v (by default $0.9$) times the maximum arrow size for the grid. The value v must be a positive value no larger than $1$. Use of this option results in a direction plot for the field. Note: In cases where a coordinate transform is applied, the size of the arrows depends on the transform.


log or log[v]: The size of the arrows is rescaled according to the formula size = exp(ln(strength/max)/(1+v)) where strength is the strength of the field at the point, and max is the maximum strength of the field on the grid. The value v (by default $2$) must be larger than $\mathrm{1}$. Values of v larger than zero have the effect of reducing the variation of the arrow length throughout the field, while values smaller than zero increase the variation. Using the value $v=0$ produces an identical plot to the default maximal plot. This option is most useful for fields that have either very large or very small variations, for example, an inverse square law.


scaleto(v): The size of the arrows is scaled so that the maximum fieldstrength is assumed to be v (which must be a positive numeric value). This option is most useful when constructing an animation of fieldplots where the maximal field strength is not consistent between frames of the animation, but the relative field strength between the frames is relevant.


The clipping boolean option specifies how to draw arrows that have too large a magnitude. If set to true, arrows are drawn without an arrow head. If set to false, arrows are drawn with their magnitude. By default, this option is false if a coordinate transform is applied (via the coords argument), and true otherwise. This option is only useful if the fieldstrength option is used to increase the size of the arrows, or the field has been transformed. These are the only cases in which arrows may exceed the desired length.

•

Use with Coordinate Transforms


Some discussion of the behavior of fieldplot3d when used in combination with the coords options is required.


Under a coordinate transform, both the field and the location of the arrows are adjusted. Options like view and axes labels apply only to the plot after the transform has been applied.


A significant issue arises when scaling the arrows that describe the vector field after the transform has been applied. Specifically, the transform may map many points on the grid to nearly the same volume in the transformed region. The fieldplot3d command uses an averaging technique to determine a suitable rescaling of the field vectors after the transform. In some cases, this may not be what is desired, so the fieldstrength and clipping options can be used to adjust the plot.


In addition, arrows that are located at transform singularities are not drawn if they have a component in a direction that becomes undefined at the singularity. As an example, a purely radial field will always have arrows drawn in spherical coordinates, but the field $\left[0\,1\,0\right]$ will have no arrows drawn at $r=0$.

•

The remaining options are the same as those available for the plot3d command. For more information, see plot3d/option.

•

fieldplot3d may be defined by with(plots) or with(plots,fieldplot3d). It can also be used by the name plots[fieldplot3d].



Examples


>

$\mathrm{with}\left(\mathrm{plots}\right)\:$

>

$\mathrm{fieldplot3d}\left(\left[2x\,2y\,1\right]\,x=1..1\,y=1..1\,z=1..1\,\mathrm{grid}=\left[5\,5\,5\right]\right)$

>

$\mathrm{fieldplot3d}\left(\left[\left(x\,y\,z\right)\mapsto 2\cdot x\,\left(x\,y\,z\right)\mapsto 2\cdot y\,\left(x\,y\,z\right)\mapsto 1\right]\,1..1\,1..1\,1..1\right)$

Use with VectorCalculus
>

$\mathrm{with}\left(\mathrm{VectorCalculus}\right)\:$

>

$\mathrm{SetCoordinates}\left(\mathrm{cartesian}\left[x,y,z\right]\right)\:$

>

$\mathrm{fld}\u2254\mathrm{VectorField}\left(\u27e8z\,y\,x\u27e9\right)$

>

$\mathrm{fieldplot3d}\left(\mathrm{fld}\,0..1\,0..1\,0..1\right)$

A radial plot in spherical coordinates
>

$\mathrm{fieldplot3d}\left(\left[1\,0\,0\right]\,r=0..1\,t=0..\frac{\mathrm{\pi}}{2}\,p=0..\frac{\mathrm{\pi}}{2}\,\mathrm{coords}=\mathrm{spherical}\right)$

Note that the plots package uses a convention for the order of spherical coordinates that is different from e.g. the VectorCalculus package. In particular, the polar angle comes after the azimuthal angle in the plots package. We construct plots showing both of these vector fields and display them together using the display command.
>

$\mathrm{azimuth}\u2254\mathrm{fieldplot3d}\left(\left[0\,1\,0\right]\,0.6..1\,0..2\mathrm{\pi}\,0.1\mathrm{\pi}..0.9\mathrm{\pi}\,\mathrm{coords}=\mathrm{spherical}\,\mathrm{grid}=\left[2\,6\,6\right]\,\mathrm{color}=\mathrm{red}\right)\:$

>

$\mathrm{pole}\u2254\mathrm{fieldplot3d}\left(\left[0\,0\,1\right]\,0.6..1\,0..2\mathrm{\pi}\,0.1\mathrm{\pi}..0.9\mathrm{\pi}\,\mathrm{coords}=\mathrm{spherical}\,\mathrm{grid}=\left[2\,6\,6\right]\,\mathrm{color}=\mathrm{blue}\right)\:$

>

$\mathrm{display}\left(\mathrm{azimuth}\,\mathrm{pole}\right)$

Use of `3D` arrows
>

$r\u2254\mathrm{sqrt}\left({x}^{2}+{y}^{2}+{z}^{2}\right)\:$

>

$\mathrm{fld}\u2254\left[\frac{x}{r}\,\frac{y}{r}\,\frac{z}{r}\right]\:$

>

$\mathrm{fieldplot3d}\left(\mathrm{fld}\,x=0..1\,y=0..1\,z=0..1\,\mathrm{arrows}=\mathrm{`3D`}\,\mathrm{grid}=\left[4\,4\,4\right]\right)$

Smaller arrows. This is the command to create the plot from the Plotting Guide.
>

$\mathrm{fieldplot3d}\left(\mathrm{fld}\,x=0..1\,y=0..1\,z=0..1\,\mathrm{arrows}=\mathrm{`3D`}\,\mathrm{fieldstrength}=\mathrm{maximal}\left(0.5\right)\,\mathrm{grid}=\left[3\,3\,3\right]\right)$



