Commands - Maple Help

Overview of the VectorField Commands

Description

 • The VectorField-related commands in the LieAlgebrasOfVectorFields package provide a general purpose toolkit for dealing with vector fields and one-forms.
 • With these commands you can:
 1 perform basic operations such as plus, minus and scalar multiplications on vector fields and one-forms.
 2 find basic properties such as space where a vector field and one-form lives.
 3 calculate Lie derivative of a scalar vector field or one-form with respect to a vector field, and Lie bracket of two vector fields.
 4 change coordinates on vector fields or one-forms.
 5 access to some Maple existing builtins including map, subs, normal, expand, simplify, indets, has, hastype, type that have been overloaded to work for a vector field or a one-form.
 • The VectorField functionality has been written in an object-oriented way, so utilizes the VectorField and OneForm objects, and almost all methods are within these two objects. There are only three exports related to VectorFields and OneForms, and their purposes are constructing the VectorField or the OneForm object.
 • To use the VectorField package, first a VectorField or OneForm object must be constructed via the constructor methods. Then once a VectorField or OneForm object is constructed successfully, a variety of methods will be available. For more detail about these two objects, see Overview of the VectorField object, Overview of the OneForm object.

List of VectorField Related Commands

 • There are three commands for creating a VectorField or an OneForm object. These objects then give access to variety of methods.

 A constructor to create a VectorField object / data structure. A constructor to create a OneForm object / data structure. A command for finding the differential df of function f, as a OneForm object.

List of VectorField and OneForm Objects Methods

 • The following is a list of methods that are available in VectorField and OneForm object.

 • The following operators (=,+,-,?[]) are overloaded for use on both VectorField and OneForm objects. See VectorField & OneForm Objects Operator Methods for more detail.
 • The following Maple builtins functions are extended for allowing both VectorField and OneForm objects: type, expand, has, hastype, indets, map, normal, simplify, subs. See VectorField & OneForm Objects Overloaded Builtins for more detail.

Examples

Loading the LieAlgebrasOfVectorFields package, the relevant exports are commands for constructing VectorField and OneForm objects.

 > $\mathrm{with}\left(\mathrm{LieAlgebrasOfVectorFields}\right)$
 $\left[{\mathrm{Differential}}{,}{\mathrm{DisplayStructure}}{,}{\mathrm{Distribution}}{,}{\mathrm{EliminationLAVF}}{,}{\mathrm{EliminationSystem}}{,}{\mathrm{IDBasis}}{,}{\mathrm{IsLinearizable}}{,}{\mathrm{LAVF}}{,}{\mathrm{LHLibrary}}{,}{\mathrm{LHPDE}}{,}{\mathrm{LHPDO}}{,}{\mathrm{MapDE}}{,}{\mathrm{OneForm}}{,}{\mathrm{SymmetryLAVF}}{,}{\mathrm{VFPDO}}{,}{\mathrm{VectorField}}\right]$ (1)

Construct a two-dimensional rotation vector field in (x,y) coordinates.

 > $X≔\mathrm{VectorField}\left(-y\mathrm{D}\left[x\right]+x\mathrm{D}\left[y\right],\mathrm{space}=\left[x,y\right]\right)$
 ${X}{≔}{-}{y}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{x}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (2)

The VectorField object X exports the following methods:

 > $\mathrm{exports}\left(X,'\mathrm{static}'\right)$
 ${\mathrm{GetComponents}}{,}{\mathrm{GetSpace}}{,}{\mathrm{AreSameSpace}}{,}{\mathrm{LieDerivative}}{,}{\mathrm{Commutator}}{,}{\mathrm{LieBracket}}{,}{\mathrm{dchange}}{,}{\mathrm{DChange}}{,}{\mathrm{=}}{,}{\mathrm{+}}{,}{\mathrm{-}}{,}{\mathrm{*}}{,}{\mathrm{?\left[\right]}}{,}{\mathrm{map}}{,}{\mathrm{subs}}{,}{\mathrm{normal}}{,}{\mathrm{expand}}{,}{\mathrm{simplify}}{,}{\mathrm{indets}}{,}{\mathrm{has}}{,}{\mathrm{hastype}}{,}{\mathrm{type}}{,}{\mathrm{ModuleType}}{,}{\mathrm{ModulePrint}}{,}{\mathrm{ModuleCopy}}$ (3)

Common operators are overloaded for the VectorField object.

 > $2X$
 ${-}{2}{}{y}{}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{2}{}{x}{}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (4)

Basic data attributes of X can be retrieved:

 > $\mathrm{GetComponents}\left(X\right)$
 $\left[{-}{y}{,}{x}\right]$ (5)
 > $\mathrm{GetSpace}\left(X\right)$
 $\left[{x}{,}{y}\right]$ (6)
 > $\mathrm{LieBracket}\left(X,X\right)$
 ${0}$ (7)
 > $Y≔\mathrm{VectorField}\left(\mathrm{\xi }\left(x\right)\mathrm{D}\left[x\right]+\mathrm{\eta }\left(y\right)\mathrm{D}\left[y\right]\right)$
 ${Y}{≔}{\mathrm{\xi }}{}\left({x}\right){}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\eta }}{}\left({y}\right){}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (8)

Substituting the components of the VectorField Y using existing Maple command subs,

 > $\mathrm{Yp}≔\mathrm{subs}\left(\left[\mathrm{\xi }=\mathrm{\alpha },\mathrm{\eta }=\mathrm{\beta }\right],Y\right)$
 ${\mathrm{Yp}}{≔}{\mathrm{\alpha }}{}\left({x}\right){}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{+}{\mathrm{\beta }}{}\left({y}\right){}\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}$ (9)

The new components are substituted successfully.

 > $\mathrm{GetComponents}\left(\mathrm{Yp}\right)$
 $\left[{\mathrm{\alpha }}{}\left({x}\right){,}{\mathrm{\beta }}{}\left({y}\right)\right]$ (10)
 > $\mathrm{type}\left(\mathrm{Yp},'\mathrm{VectorField}'\right)$
 ${\mathrm{true}}$ (11)
 > $\mathrm{type}\left(\mathrm{Yp},'\mathrm{OneForm}'\right)$
 ${\mathrm{false}}$ (12)