I expected that such substituions to work but they does not
The piece of program,
depends(P,RHO);
defmatch(i,any);
defrule(p_r, P([],[],i), 'diff(P,RHO)*rho([],[],i));
/define the Euler equation */
Eil: D_t*V([i1])+
V([i0])@L[V,i1]=-(P([])@i1)/rho([])+(V([i0])|_V/2-Phi([]))@i1;
/*take the exterior derivative */
(C65) rhs(Eil)@i2;
(D65) RHO([],[],I1)*P([],[],I2)/RHO([],[])^2
-P([],[],I1)*RHO([],[],I2)/RHO([],[])^2
/*then replace the derivative from p to rho*/
(C66) applyb1(%,p_r);
(D66) RHO([],[],I1)*P([],[],I2)/RHO([],[])^2
-P([],[],I1)*RHO([],[],I2)/RHO([],[])^2
????
If I define to match exactly indices i1,i2 via
defrule(p_r1, P([],[],i1), 'diff(P,RHO)*rho([],[],i1));
defrule(p_r2, P([],[],i2), 'diff(P,RHO)*rho([],[],i2));
(C68) apply1(d65,p_r1,p_r2);
(D68) 0
This is correct. What could be wrong with defmatch(i, any). Why
it does not work?
rgds,
Valerij