Howto calculate mass flux with variable density flow
From OpenFOAMWiki
In traditional CFD, mass flow at a boundary is calculated by writing explicit loops. In OpenFOAM, these loops can be invoked implicitly. Also, most OpenFOAM solvers include a variable phi that represents the mass flux. So calculating the mass flux only requires the following steps:
- ) Identifying the boundary where we want to do the summation
- ) Implicitly doing the sum over the specified boundary.
The following code fragment shows how to do this for a boundary named "velocity_inlet."
// find the identification number (e.g. label) for our boundary of interest.
label inletPatch = mesh.boundaryMesh().findPatchID("velocity_inlet");
// if we don't have such a patch, warn the user
if (inletPatch==-1)
{
Info << "Failure to find patch named velocity_inlet for mass flow calc."
<<endl;
}
else // calculate the result and do output
{
// the sum operator implicity loops over the boundary faces and stores the result in inFlux
// note inflow is negative according to dot product. Lets multiply by -1 to
// make it positive.
scalar inFlux = -1.0* sum(phi.boundaryField()[inletPatch]);
Info << " Inflow= " << inFlux <<" [kg/s] " ;
}