Hi Ali,
Sorry that I am just getting around to looking at this, but one thing caught my eye when I looked at the code.
A common problem in DGM implementations is that there is usually not a clear definition of what is meant when one says ‘tortuosity’ (some mean the tortuosity, tau_g, while some mean the “tortuosity factor”, (tau_g)^2).
Your code seems to handle the tortuosity the same way that the Cantera DGM module does - i.e. the tortuosity used is actually the tortuosity factor, otherwise effective diffusion coefficients (binary and Knudsen) and permeability should be divided by (tau_g)^2, rather than tau_g.
I just wanted to point out that the tortuosity is also required to calculate property gradients. The gradient we care about is the gradient with respect to pore length, and so the distance between discretized locations that is used to calculate property gradients should be the ‘axial length’ (i.e. in the direction of finite volume surface normal) multiplied by tau_g. In your code, this would be coded as:
DISINV = 1/(PTXR-PTXL)/Tortuosity;
Note that the tortuosity terms can still all be lumped into a “tortuosity factor” (and probably should, since it is computationally faster), and in this case the true physical meaning of the tortuosity factor for this implementation (and most DGM implementations) is (tau_g)^3.
Lastly, I’ll note that for the Cantera DGM module, the user provides an input parameter ‘delta’ that specifies the “distance from state 1 to state 2” (i.e. the numerator for property gradient calcs). The user could therefore choose to “pre-correct” delta for the tortuosity, such that the tortuosity factor provided to the DGM module is the common (tau_g)^2. This seems somewhat risky, though, since the tortuosity provided to Cantera and that used to correct delta would be two different values.
Anyway, this is a longer comment than I originally intended to make, but are just some thoughts I wanted to share. FYI - it is a medium-term goal of mine to make the underlying C++ module available from the Matlab interface.
Cheers,
Steven