From eda41a684a31beef1b669072b34761e59534b3fe Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 1 Feb 2019 15:10:16 -0800 Subject: [PATCH] ENH: Changing energy Eq in interCondensatingEvaporatingFoam from e to T. T proved to be more generic solution. --- .../interCondensatingEvaporatingFoam/UEqn.H | 25 ----------------- .../createFields.H | 17 +++++++++--- .../interCondensatingEvaporatingFoam/eEqn.H | 27 ++++++++++++------- .../interCondensatingEvaporatingFoam.C | 4 +-- 4 files changed, 33 insertions(+), 40 deletions(-) delete mode 100644 applications/solvers/multiphase/interCondensatingEvaporatingFoam/UEqn.H diff --git a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/UEqn.H b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/UEqn.H deleted file mode 100644 index 249c5a3cb1..0000000000 --- a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/UEqn.H +++ /dev/null @@ -1,25 +0,0 @@ - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(rhoPhi, U) - + turbulence->divDevRhoReff(rho, U) - ); - - UEqn.relax(); - - if (pimple.momentumPredictor()) - { - solve - ( - UEqn - == - fvc::reconstruct - ( - ( - interface.surfaceTensionForce() - - ghf*fvc::snGrad(rho) - - fvc::snGrad(p_rgh) - ) * mesh.magSf() - ) - ); - } diff --git a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/createFields.H b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/createFields.H index 6414b371e9..8324a25e96 100644 --- a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/createFields.H +++ b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/createFields.H @@ -40,9 +40,6 @@ autoPtr mixture = temperaturePhaseChangeTwoPhaseMixture::New(thermo(), mesh); -// Correct e from T and alpha -//thermo->correct(); - volScalarField& alpha1(thermo->alpha1()); volScalarField& alpha2(thermo->alpha2()); @@ -139,3 +136,17 @@ volScalarField pDivU dimensionedScalar(p.dimensions()/dimTime, Zero) ); +// Need to store rho for ddt(rhoCp, U) +volScalarField rhoCp +( + IOobject + ( + "rhoCp", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + rho*thermo->Cp() +); +rhoCp.oldTime(); diff --git a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/eEqn.H b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/eEqn.H index 205cd09868..29b1ae466f 100644 --- a/applications/solvers/multiphase/interCondensatingEvaporatingFoam/eEqn.H +++ b/applications/solvers/multiphase/interCondensatingEvaporatingFoam/eEqn.H @@ -1,6 +1,7 @@ { tmp tcp(thermo->Cp()); const volScalarField& cp = tcp(); + rhoCp = rho*cp; kappaEff = thermo->kappa() + rho*cp*turbulence->nut()/Prt; @@ -11,18 +12,26 @@ pDivU = (p*fvc::div(rhoPhi/fvc::interpolate(rho))); } - fvScalarMatrix eEqn + const surfaceScalarField rhoCpPhi(fvc::interpolate(cp)*rhoPhi); + + Pair> vDotAlphal = mixture->mDot(); + + const volScalarField& vDotcAlphal = vDotAlphal[0](); + const volScalarField& vDotvAlphal = vDotAlphal[1](); + const volScalarField vDotvmcAlphal(vDotvAlphal - vDotcAlphal); + + fvScalarMatrix TEqn ( - fvm::ddt(rho, e) - + fvm::div(rhoPhi, e) - - fvm::laplacian(kappaEff/cp, e) - + pDivU + fvm::ddt(rhoCp, T) + + fvm::div(rhoCpPhi, T, "div(rhoCpPhi,T)") + - fvm::Sp(fvc::ddt(rhoCp) + fvc::div(rhoCpPhi), T) + - fvm::laplacian(kappaEff, T) + + thermo->hc()*vDotvmcAlphal + + pDivU ); - eEqn.relax(); - eEqn.solve(); - - thermo->correct(); + TEqn.relax(); + TEqn.solve(); Info<< "min/max(T) = " << min(T).value() << ", " << max(T).value() <T(); - volScalarField& e = thermo->he(); - e.oldTime(); turbulence->validate(); -- GitLab