View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000958 | OpenFOAM | Bug | public | 2013-08-13 16:36 | 2013-08-20 15:05 |
Reporter | dkxls | Assigned To | |||
Priority | high | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Linux x86_64 | OS | openSUSE | OS Version | 12.2 |
Summary | 0000958: [ThermoParcel]: Wrong heat conductivity at droplet surface due to const. Prandtl number assumption | ||||
Description | The ThermoParcel uses a constant Prandtl number assumption for the heat conductivity (kappas) at the droplet surface, which gives wrong values in high temperature spray simulation (e.g. engines). In Foam::ThermoParcel<ParcelType>::calcSurfaceValues, kappas should obtained from the thermo class, like Cp and mus. The Prandtl number can then be calculated as: Pr = Cpc_*mus/kappas; This does not only give correct values for kappas and Pr, but the Prandtl number can also be removed from the constant properties entirely, as it is in fact not a constant property anymore. | ||||
Tags | Heat transfer, Lagrangian, spray, sprayEngineFoam, sprayFoam | ||||
|
After a more thorough review of the source code, I have two remarks: 1) The Prandtl number is computed at two independent place, 1) in the ThermoParcel (calcSurfaceValues) and 2) in the ReactingParcel template (correctSurfaceValues), where the second computation is only done if BirdCorrection is 'true'. The two computations differ largely and I cannot find a reference for the 'Bird correction' way. Especially the Cp averaging based on mole fractions, where the quantity itself has units [J/kg/K] seems odd! However, as said I don't have a reference for that. 2) If I am correct, then there is no access to the cell pressure from within the ThermoParcel template. Hence the kappa computation in ThermoParcel would require a volScalarField for kappa in the same way as Cp, which seems unfeasible. Thus I would suggest a redefinition of 'calcSurfaceValues' in ReactingParcel and compute the heat conductivity like this: kappas = 0; forAll(Ys, i) { kappas += Ys[i]*thermo.carrier().kappa(i, pc_, T); } Note: Mass averaging for the mixture heat conductivity is just a rough approximation, but probably still a good tradeoff between accuracy, computational time and code complexity. |
|
Thanks for the report - kappa calculation updated by commit 4324b6 |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-08-13 16:36 | dkxls | New Issue | |
2013-08-13 16:37 | dkxls | Tag Attached: Lagrangian | |
2013-08-13 16:37 | dkxls | Tag Attached: spray | |
2013-08-13 16:37 | dkxls | Tag Attached: sprayEngineFoam | |
2013-08-13 16:37 | dkxls | Tag Attached: sprayFoam | |
2013-08-13 16:37 | dkxls | Tag Attached: Heat transfer | |
2013-08-13 18:42 | dkxls | Note Added: 0002397 | |
2013-08-20 15:05 |
|
Note Added: 0002429 | |
2013-08-20 15:05 |
|
Status | new => resolved |
2013-08-20 15:05 |
|
Fixed in Version | => 2.2.x |
2013-08-20 15:05 |
|
Resolution | open => fixed |
2013-08-20 15:05 |
|
Assigned To | => user2 |