An Application from Appendix B.1 

Although some operations do not seem to be predefined in Maple, the necessary operations do work as expected, we can now use Appendix B.1 of Bird, Stewart, and Lightfoot to define the individual components of τ as functions of x, y, and z.  However, before I do so, I note that the use of tensors is not compatible with the use of the divergence operator ∇. instead, we use our own function Divergence2 to accomplish the divergence operation. 

 

> `τxx` := unapply(-2*mu*(D[1](vx))(x, y, z)+(2/3*mu-kappa)*Divergence2(v(x, y, z)), x, y, z); 1
`τxx` := unapply(-2*mu*(D[1](vx))(x, y, z)+(2/3*mu-kappa)*Divergence2(v(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τxx` := proc (x, y, z) options operator, arrow; -2*mu*(D[1](vx))(x, y, z)+(2/3*mu-kappa)*(D[1](vx(x, y, z))+D[2](vy(x, y, z))+D[3](vz(x, y, z))) end proc], [proc (x, y...
(Typesetting:-mprintslash)([`τxx` := proc (x, y, z) options operator, arrow; -2*mu*(D[1](vx))(x, y, z)+(2/3*mu-kappa)*(D[1](vx(x, y, z))+D[2](vy(x, y, z))+D[3](vz(x, y, z))) end proc], [proc (x, y...
 

> `τyy` := unapply(-2*mu*(D[2](vy))(x, y, z)+(2/3*mu-kappa)*Divergence2(v(x, y, z)), x, y, z); 1
`τyy` := unapply(-2*mu*(D[2](vy))(x, y, z)+(2/3*mu-kappa)*Divergence2(v(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τyy` := proc (x, y, z) options operator, arrow; -2*mu*(D[2](vy))(x, y, z)+(2/3*mu-kappa)*(D[1](vx(x, y, z))+D[2](vy(x, y, z))+D[3](vz(x, y, z))) end proc], [proc (x, y...
(Typesetting:-mprintslash)([`τyy` := proc (x, y, z) options operator, arrow; -2*mu*(D[2](vy))(x, y, z)+(2/3*mu-kappa)*(D[1](vx(x, y, z))+D[2](vy(x, y, z))+D[3](vz(x, y, z))) end proc], [proc (x, y...
 

> `τzz` := unapply(-2*mu*(D[3](vz))(x, y, z)+(2/3*mu-kappa)*Divergence2(v(x, y, z)), x, y, z); 1
`τzz` := unapply(-2*mu*(D[3](vz))(x, y, z)+(2/3*mu-kappa)*Divergence2(v(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τzz` := proc (x, y, z) options operator, arrow; -2*mu*(D[3](vz))(x, y, z)+(2/3*mu-kappa)*(D[1](vx(x, y, z))+D[2](vy(x, y, z))+D[3](vz(x, y, z))) end proc], [proc (x, y...
(Typesetting:-mprintslash)([`τzz` := proc (x, y, z) options operator, arrow; -2*mu*(D[3](vz))(x, y, z)+(2/3*mu-kappa)*(D[1](vx(x, y, z))+D[2](vy(x, y, z))+D[3](vz(x, y, z))) end proc], [proc (x, y...
 

> `τxy` := unapply(-mu*((D[1](vy))(x, y, z)+(D[2](vx))(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τxy` := proc (x, y, z) options operator, arrow; -mu*((D[1](vy))(x, y, z)+(D[2](vx))(x, y, z)) end proc], [proc (x, y, z) options operator, arrow; -mu*((D[1](vy))(x, y,... 

> `τyx` := unapply(-mu*((D[1](vy))(x, y, z)+(D[2](vx))(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τyx` := proc (x, y, z) options operator, arrow; -mu*((D[1](vy))(x, y, z)+(D[2](vx))(x, y, z)) end proc], [proc (x, y, z) options operator, arrow; -mu*((D[1](vy))(x, y,... 

> `τyz` := unapply(-mu*((D[2](vz))(x, y, z)+(D[3](vy))(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τyz` := proc (x, y, z) options operator, arrow; -mu*((D[2](vz))(x, y, z)+(D[3](vy))(x, y, z)) end proc], [proc (x, y, z) options operator, arrow; -mu*((D[2](vz))(x, y,... 

> `τzy` := unapply(-mu*((D[2](vz))(x, y, z)+(D[3](vy))(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τzy` := proc (x, y, z) options operator, arrow; -mu*((D[2](vz))(x, y, z)+(D[3](vy))(x, y, z)) end proc], [proc (x, y, z) options operator, arrow; -mu*((D[2](vz))(x, y,... 

> `τxz` := unapply(-mu*((D[1](vz))(x, y, z)+(D[3](vx))(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τxz` := proc (x, y, z) options operator, arrow; -mu*((D[1](vz))(x, y, z)+(D[3](vx))(x, y, z)) end proc], [proc (x, y, z) options operator, arrow; -mu*((D[1](vz))(x, y,... 

> `τzx` := unapply(-mu*((D[1](vz))(x, y, z)+(D[3](vx))(x, y, z)), x, y, z); 1
 

(Typesetting:-mprintslash)([`τzx` := proc (x, y, z) options operator, arrow; -mu*((D[1](vz))(x, y, z)+(D[3](vx))(x, y, z)) end proc], [proc (x, y, z) options operator, arrow; -mu*((D[1](vz))(x, y,... 

 

We can now see that τMatrix is effectively a function of x, y, and z.  Note if needed the function eval can be used to display a tensor or matrix, although in many cases it is unnecessary. 

 

> eval(`τMatrix`(x, y, z)); 1
 













 

 

At least as far as the definitions in Appendix B.1 are concerned, τ also appears to posses the desired properties to display as expected. 

 

> `τTensor`(x, y, z); 1