Please have a look at this example, with a co-flow fuel/oxidizer streams, entering the domain from different sections of the nozzles (a central and an external one) and burning when they get in contact with each others. Material properties are computed as a function of the thermodynamic state of the mixture (i.e. in each cell, depending on temperature and composition we use the kinetic theory of gases to update the gas phase properties).
From your description it seems very similar to this. You have single phase flows, and you want to vary the material properties depending on the local temperature and composition. The
two-phase.h module is for immiscible phases. On the other side, the
navier-stokes/centered.h solver is already able to handle variable density and viscosity, without necessarily using
two-phase.h. Here's a possible way to do it:
#include "navier-stokes/centered.h"
face vector alphav[], muv[];
scalar rhov[];
scalar T[], Y[]; // your temperature and composition fields
int main() {
alpha = alphav;
rho = rhov;
mu = muv;
run();
}
#define rholaw(T,Y) (some expression for rho as a function of T and Y)
#define mulaw(T,Y) (some expression for mu as a function of T and Y)
event properties (i++) {
foreach()
rhov[] = cm[]*rholaw (T[],Y[]);
foreach_face() {
double Tf = face_value (T, 0);
double Yf = face_value (Y, 0);
muv.x[] = fm.x[]*mulaw (Tf, Yf);
alphav.x[] = fm.x[]/rholaw (Tf, Yf);
}
}