Yes this helps and appears to work, but leads me to a new issue.
In both the case of newtonian and a non-newtonian (ie. nonlinear parameter depending on velocity) models, the post_process() and get_pars() functions evaluate an equation over a the entire mesh ('Omega' : 'all'). How do i evaluate different equations over regions of the mesh (e.g. 'Omega1' : 'cells of group 1').
For example, here is something i have tried:
stress = problem.evaluate('ev_cauchy_stress.i.Omega1(viscosity1.D, u) + ev_cauchy_stress.i.Omega2(viscosity2.D, u)', mode='el_avg') out['cauchy_stress'] = Struct(name='output_data', mode='cell', data=stress, dofs=None)
this leads to an error that operands could not be broadcast together with different shapes.
In the case of a non-newtonian simulation this is especially relevant and important as I want to simulate flow in two different regions with different viscosities. The get_pars() shown in example  in your reply only deals with one, how do i apply this to two regions of a single mesh?