View Issue Details

IDProjectCategoryView StatusLast Update
0003061OpenFOAM[All Projects] Bugpublic2018-09-01 09:16
ReporterjanGaertnerAssigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformGNU/LinuxOSUbuntuOS Version14.04
Product Version5.0 
Fixed in Version 
Summary0003061: basicThermo::lookupThermo(const fvPatchScalarField&) does not work for multiphase flow
DescriptionThe lookup function of basicThermo uses the if case with the Foam::basicThermo::dictName("thermophysicalProperties") to check if the thermo model exists. If this is used to lookup the thermomodel in the mixedEnergyFvPatchScalarField::updateCoeffs() not the thermo model of the phase is returned for multiphase flows.

This happens when the temperature equation in the multiphase solver are replaced by solving a phase enthalpy equation.
Steps To ReproduceWrite out the h.<phase> file of one phase with a multiphase flow simulation and a mixed boundary condition for the temperature (such as inletOutlet). The boundary condition is then not correctly computed for the h.<phase> file.

I have found that the reason is the returned pointer to the thermophysicalProperties thermo model and not the thermophysicalProperties.<phase> model.
TagsNo tags attached.

Activities

wyldckat

2018-08-30 10:13

updater   ~0010006

There are several multiphase solvers in OpenFOAM. Please specify which solver should be used to reproduce this error, along with a tutorial/test case that can be used to test this.

janGaertner

2018-08-30 10:27

reporter   ~0010010

I had used compressibleInterFoam and solved for the liquid enthalpy with a general transport equation for testing purposes.

janGaertner

2018-08-30 11:23

reporter   ~0010013

I found the error when:

* Include a hEqn.H transport equation in compressibleInterFoam so that updateCoeffs is called.
   volScalarField& hePhase1 = mixture.thermo1().he();
   fvm::ddt(rho1,hePhase1) + fvm::div(phi,hePhase1)

* Write a print statement in heThermo<BasicThermo, MixtureType>::he(p,T, patchi) that prints out the calculated values.
* Additionally, give back the thermo model to cout with Info<<thermo in updateCoeffs in mixedEnergyFvPatchScalarField::updateCoeffs()

You will see, that the he() function is called for both thermo models and it is not clear which is then the returned value.
Also, the printed dictionary of thermo is the thermophysicalProperties one and not thermophysicalProperties.<phase>

Issue History

Date Modified Username Field Change
2018-08-30 08:44 janGaertner New Issue
2018-08-30 10:13 wyldckat Note Added: 0010006
2018-08-30 10:27 janGaertner Note Added: 0010010
2018-08-30 11:23 janGaertner Note Added: 0010013