(***********************************************************************)
(* USAGE.M *)
(* Bernd Fiedler, Fakultaet Math/Inf, Universitaet Leipzig, 05.09.1996 *)
(* *)
(* Usage-File zu VECTAN Version 1.1 *)
(***********************************************************************)
(************************** Usage **************************************)
BacCab::usage =
"BacCab[expr,x,y,z] applies the bac-cab-rule VP[x,VP[y,z]] -> SP[x,z]y -
SP[x,y]z to the expression expr by means of ReplaceAll."
DefineVector::usage =
"DefineVector[v] declares the expression v a vector field. DefineVector can
be used to a list of expressions too (DefineVector[{v1,v2,...}])."
DefineVector::error = "Expression `1` is already declared a vector field."
DefineVector::inf = "Vector field `1` has been established."
div::usage =
"div[vect] denotes the divergence of the vector field vect."
div::error1 =
"Two vector fields `1` and `2` occur as arguments of div."
div::error2 =
"The argument of div is not a vector field."
divValue::usage =
"A value wert can be assigned to the operation div[vect] on the vector field
vect by means of a statement vect/: divValue[vect] := wert . See the comments
in def.m and the explanations in vectan.ps."
divValue::muster =
"VECTAN identifies only the pattern divValue[vect]."
dot::usage =
"dot[x] denotes the derivative of x according to a variable t, which differs
from the spatial variables x1, x2, x3. If x is not a vector field, then there
holds true dot[x] = Derivative[1][x]. If x is a vector field x = Vect[x],
then there is valid dot[x] = Vect[x']."
dotValue::usage =
"A value wert can be assigned to the operation dot[x] on the symbol x
by means of a statement x/: dotValue[x] := wert. Here x may be a vector field
as well as a function. See the comments in def.m and the explanations in
vectan.ps."
dotValue::muster =
"VECTAN identifies only the patterns dotValue[vect] and dotValue[func]."
grad::usage =
"grad[f] denotes the gradient of the function f. grad[vect1,vect2] denotes
the derivative of the vector field vect2 in the direction of the vector field
vect1, i.e. ()[vect2] ."
grad::error1 =
"grad has been applied to a vector field `1` ."
gradValue::usage =
"A value wert can be assigned to the operation grad[f] on the function f
by means of a statement f/: gradValue[f] := wert. Furthermore, a value wert
can be assigned to the operation grad[vect1,vect2] on the vector fields vect1
and vect2 by means of one of the statements vect1/: gradValue[vect1,vect2] :=
wert or vect2/: gradValue[vect1,vect2] := wert. See the comments in def.m and
the explanations in vectan.ps."
gradValue::muster =
"VECTAN identifies the following patterns:
gradValue[func], gradValue[vec1,vec2],
gradValue[vec1,grad[func]], gradValue[vec1,rot[vec2]],
gradValue[vec1,VP[vec2,vec3]], gradValue[vec1,grad[vec2,vec3]],
gradValue[grad[func],vec1], gradValue[rot[vec1],vec2],
gradValue[VP[vec1,vec2],vec3], gradValue[grad[vec1,vec2],vec3]."
graddotValue::usage =
"A value wert can be assigned to the operation
grad[m-th dot-derivative of vect1, n-th dot-derivative of vect2]
by means of a statement
vect1/: graddotValue[vect1,vect2,m,n] := wert. A statement
vect2/: graddotValue[vect1,vect2,m,n] := wert has the same effect.
Furthermore the numbers m, n are allowed to be zero. A value for a pattern
grad[x_, Vect[Derivative[n][vect2]]] can be defined by
vect2/: graddotValue[x_,vect2,0,n] := wert, where wert may be depending on x.
In the same way, a value for a
pattern grad[Vect[Derivative[m][vect1]],x_] can be established by
vect1/: graddotValue[vect1,x_,m,0] := wert. See the comments in def.m and the
explanations in vectan.ps."
graddotValue::muster =
"VECTAN identifies the following patterns:
graddotValue[vect1,vect2,m,n] (m,n >= 1),
graddotValue[vect1,vect2,m,0] (m >= 1),
graddotValue[vect1,vect2,0,n] (n>= 1).
The non-differenciated vectors of the last two patterns may even be
expressions with the heads grad, rot, VP."
Mu::usage =
"Mu[symbol] prints the message symbol::muster, if such a message is defined
in VECTAN. The symbols divValue, dotValue, gradValue, graddotValue, rotValue,
SPValue, VPValue possess such messages."
rot::usage =
"rot[vect] denotes the curl of the vector field vect."
rot::error1 =
"Two vector fields `1` and `2` occur as arguments of rot."
rot::error2 =
"The argument of rot is not a vector field."
rotValue::usage =
"A value wert can be assigned to the operation rot[vect] on the vector field
vect by means of a statement vect/: rotValue[vect] := wert . See the comments
in def.m and the explanations in vectan.ps."
rotValue::muster =
"VECTAN identifies only the pattern rotValue[vect]."
SP::usage =
"SP[vect1,vect2] denotes the scalar product of the vector fields vect1,
vect2."
SP::error1 = "A scalar product contains a factor `1` which is not a vector."
SPValue::usage =
"A value wert can be assigned to the expression SP[vect1,vect2]
by means of a statement vect1/: SPValue[vect1,vect2] := wert or vect2/:
SPValue[vect1,vect2] := wert . See the
comments in def.m and the explanations in vectan.ps."
SPValue::muster =
"VECTAN identifies the following patterns:
SPValue[vec1,vec2], SPValue[grad[f],vec],
SPValue[rot[vec1],vec2]], SPValue[grad[vec1,vec2],vec3],
SPValue[vec1,VP[vec2,vec3]]."
VASave::usage =
"VASave[filename] stores all definitions which are contained in the current
context in the file filename. Thus VASave stores all definitions generated in
a VECTAN session if and only if all these definitions belong to the current
context. Therefore, the current context should not be changed in the course
of a VECTAN session."
VASave::error = "The syntax of VASave is VASave[filename] where filename has
to be a string."
Vect::usage =
"Vect is the head of an expression which VECTAN consideres a vector field.
The FullForm of a vector field vect is Vect[vect]."
VectQ::usage =
"VectQ[x] yields True if x possesses one of the heads Vect, grad, rot, VP.
Otherwise, Vect[x] yields False."
VP::usage =
"VP[vect1,vect2] denotes the vector product of the vector fields vect1,
vect2."
VP::error1 = "A vector product contains a factor `1` which is not a vector."
VPValue::usage =
"A value wert can be assigned to the expression VP[vect1,vect2]
by means of a statement vect1/: VPValue[vect1,vect2] := wert or vect2/:
VPValue[vect1,vect2] := wert . See the
comments in def.m and the explanations in vectan.ps."
VPValue::muster =
"VECTAN identifies the following patterns:
VPValue[vec1,vec2], VPValue[grad[f],vec],
VPValue[rot[vec1],vec2], VPValue[grad[vec1,vec2],vec3]."
$BacCab::usage =
"If $BacCab = True, then the rule VP[a,VP[b,c]] = SP[a,c]b - SP[a,b]c is used
automatically. If $BacCab = False, then this rule can be applied only by
means of the command BacCab[expr,a,b,c]."
$KillSpat::usage =
"If $KillSpat = True, then expressions in the form (scalar
triple product)*vector are automatically converted into expressions in the
form (scalar product)*vector, where 'scalar product' is not a scalar triple
product. 'vector' may be an expression u with VectQ[u] = True."
$SpatRule::usage =
"If $SpatRule = True, then products of scalar triple products like
SP[a,VP[b,c]]*SP[d,VP[e,f]] are automatically converted into sums of products
of scalar products, where the scalar products do not contain a vector
product."
$VPChar::usage =
"The variable $VPChar contains a string that is used to print the sign of the
vector product."
(************************** System Variables ***************************)
$BacCab = False ;
$KillSpat = False;
$SpatRule = True;
(* $VPChar = " "<>FromCharacterCode[145]<>" " ; *)
$VPChar = " "<>FromCharacterCode[158]<>" " ;