Question: How do I program a partial differential operator to perform both explicit & symbolic differentiations simultaneously?

Thank you everyone for all your help. However, what I am leading up to in my research requires that I overcome the following hurdle. Let p[m] represent an unspecified function of three variables, e1, e2, and e3. (In reality, the explicit formula for the function is known, but I will not use that formula.) m is an index. So, p[1], p[2], p[3] etc are different functions of e1, e2, e3. I need to program an operator, T, which acts on p[m] and returns - symbolically - T(p[m]) = 1*e1*diff(p[m],e1) + 2*e2*diff(p[m],e2) + 3*e3*diff(p[m],e3) In case anyone has guessed already, T has gone under such names as an "Euler" operator. Then, I need T to be able to act on T(p[m]) and return T(T(p[m])) = 1^2*e1*diff(p[m],e1) + 2^2*e2*diff(p[m],e2) +3^3*e3*diff(p[m],e2) + 1*e1*(1*e1*diff(p[m],{e1,2}) +2*e2*diff(p[m],{e1,e2}) + ...) + ... in other words: when applied the SECOND time, my operator, T, will perform the EXPLICIT partial differentiation (please correct my Maple terminology - if it's not called "explicit", what word do Maplers use?) upon the e1, e2, e3 but differentiate p[m] only symbolically? My SECOND challenge is: program an operator - which is really the total differential operator, so I will call it "D", here - such that when I apply D to p[m] I get in return D(p[m])= diff(p[m],e1)*diff(e1,x) + diff(p[m],e2)*diff(e2,x) +diff(p[m],e3)*diff(e3,x) So, D symbolically partially differentiates p[m] with respect to the e1, e2, e3, and totally differentiates e1, e2, e3 symbolically with respect to x. I then need to be able to combine T and D. I will apply T first, and then D. So, for example, I need to see what D(T(p[m]) is as a linear combination of diff(p[m],e1), diff(p[m],e2), diff(p[m],e3), diff(p[m],{e1,e2}) ... with coefficients which are polynomials in e1, e2, e3, diff(e1,x), diff(e2, x), diff(e3,x) and integers. Thanks
Please Wait...