Topic: Semi-Compressible flow

I'm working on problems which constitutive behavior which becomes incompressible after a while. These types of problems require the normal split of in pressure and deviatoric strain(rate);
a(v,p;dv) - b(p,dv) = l(dv)
b(dp,v) = 0
but to deal with the case that the flow might be compressible, an additional term is added;
a(v,p;dv) - b(p,dv) = l(dv)
b(dp,v) + c(v,p;dp)= 0

Modifications to, at least StokesFlow will be minimal. Just asking for the extra tangent and add it. No extra equations or unknowns.
The material routine would need to be extended

    virtual void computeDeviatoricStressVector(FloatArray &stress_dev, double &eps_vol, GaussPoint *gp, const FloatArray &eps_dev, double pressure, TimeStep *tStep) = 0;

and the additional tangents (which would default to zero)

    // ds_dev/deps_dev  (original tangent)
    virtual void giveDeviatoricStiffnessMatrix(FloatMatrix & answer, MatResponseMode mode, GaussPoint * gp, TimeStep * tStep) = 0;
    // ds_dev/ dp
    virtual void giveDeviatoricPressureTanget(FloatArray & answer, MatResponseMode mode, GaussPoint * gp, TimeStep * tStep) { ... }
    // deps_vol/ deps_dev
    virtual void giveVolumetricDeviatoricTanget(FloatArray & answer, MatResponseMode mode, GaussPoint * gp, TimeStep * tStep) { ... }
    // deps_vol/ dp
    virtual void giveVolumetricPressureTanget(double & answer, MatResponseMode mode, GaussPoint * gp, TimeStep * tStep) { answer = 0; }

This would also let the material be pressure-dependent, even if it stays incompressible.

Are there any objections?