From 05b9fe38b08be0b43907e4eecae62978f2505608 Mon Sep 17 00:00:00 2001 From: xiao312 Date: Thu, 13 Apr 2023 16:34:30 +0800 Subject: [PATCH] Update createFields.H & EEqn.H & YEqn.H for dfLowMachFoam and dfSprayFoam --- applications/solvers/dfLowMachFoam/EEqn.H | 43 +++++++--- applications/solvers/dfLowMachFoam/YEqn.H | 56 +++++++++---- .../solvers/dfLowMachFoam/createFields.H | 4 +- applications/solvers/dfSprayFoam/EEqn.H | 82 +++++++++++++------ applications/solvers/dfSprayFoam/YEqn.H | 62 ++++++++++---- .../solvers/dfSprayFoam/createFields.H | 3 + 6 files changed, 180 insertions(+), 70 deletions(-) diff --git a/applications/solvers/dfLowMachFoam/EEqn.H b/applications/solvers/dfLowMachFoam/EEqn.H index c59430a8..11ac3819 100644 --- a/applications/solvers/dfLowMachFoam/EEqn.H +++ b/applications/solvers/dfLowMachFoam/EEqn.H @@ -1,18 +1,37 @@ { volScalarField& he = thermo.he(); - fvScalarMatrix EEqn - ( - fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he) - + fvc::ddt(rho, K) + fvc::div(phi, K) - - dpdt - - fvm::laplacian(turbulence->alphaEff(), he) - + diffAlphaD - == - fvc::div(hDiffCorrFlux) - ); + if ( turbName == "laminar") + { + fvScalarMatrix EEqn + ( + fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he) + + fvc::ddt(rho, K) + fvc::div(phi, K) + - dpdt + - fvm::laplacian(turbulence->alphaEff(), he) + + diffAlphaD + == + fvc::div(hDiffCorrFlux) + ); + + EEqn.relax(); + + EEqn.solve(); + } + else + { + fvScalarMatrix EEqn + ( + fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he) + + fvc::ddt(rho, K) + fvc::div(phi, K) + - dpdt + - fvm::laplacian(turbulence->alphaEff(), he) + ); + + EEqn.relax(); + + EEqn.solve(); + } - EEqn.relax(); - EEqn.solve(); } diff --git a/applications/solvers/dfLowMachFoam/YEqn.H b/applications/solvers/dfLowMachFoam/YEqn.H index 8e0befd6..9d7199db 100644 --- a/applications/solvers/dfLowMachFoam/YEqn.H +++ b/applications/solvers/dfLowMachFoam/YEqn.H @@ -53,25 +53,51 @@ time_monitor_corrDiff += double(end - start) / double(CLOCKS_PER_SEC); if (i != inertIndex) { tmp DEff = chemistry->rhoD(i) + turbulence->mut()/Sct; - fvScalarMatrix YiEqn - ( - fvm::ddt(rho, Yi) - + mvConvection->fvmDiv(phi, Yi) - + mvConvection->fvmDiv(phiUc, Yi) - == + + if (turbName == "laminar") + { + fvScalarMatrix YiEqn + ( + fvm::ddt(rho, Yi) + + mvConvection->fvmDiv(phi, Yi) + + mvConvection->fvmDiv(phiUc, Yi) + == + ( + splitting + ? fvm::laplacian(DEff(), Yi) + : (fvm::laplacian(DEff(), Yi) + combustion->R(Yi)) + ) + ); + + YiEqn.relax(); + + YiEqn.solve("Yi"); + + Yi.max(0.0); + Yt += Yi; + } + else + { + fvScalarMatrix YiEqn ( - splitting - ? fvm::laplacian(DEff(), Yi) - : (fvm::laplacian(DEff(), Yi) + combustion->R(Yi)) - ) - ); + fvm::ddt(rho, Yi) + + mvConvection->fvmDiv(phi, Yi) + == + ( + splitting + ? fvm::laplacian(DEff(), Yi) + : (fvm::laplacian(DEff(), Yi) + combustion->R(Yi)) + ) + ); + + YiEqn.relax(); - YiEqn.relax(); + YiEqn.solve("Yi"); - YiEqn.solve("Yi"); + Yi.max(0.0); + Yt += Yi; + } - Yi.max(0.0); - Yt += Yi; } } diff --git a/applications/solvers/dfLowMachFoam/createFields.H b/applications/solvers/dfLowMachFoam/createFields.H index e4c5ba9b..9b471038 100644 --- a/applications/solvers/dfLowMachFoam/createFields.H +++ b/applications/solvers/dfLowMachFoam/createFields.H @@ -79,10 +79,12 @@ autoPtr> combustion Info<< "end Creating reaction model\n" << endl; -//const word combModelName(combustion->type()); const word combModelName(mesh.objectRegistry::lookupObject("combustionProperties").lookup("combustionModel")); Info << "Combustion Model Name is confirmed as "<< combModelName << endl; +const word turbName(mesh.objectRegistry::lookupObject("turbulenceProperties").lookup("simulationType")); +Info << "Turbulence Model Name is confirmed as "<< turbName << endl; + dfChemistryModel* chemistry = combustion->chemistry(); PtrList& Y = chemistry->Y(); const word inertSpecie(chemistry->lookup("inertSpecie")); diff --git a/applications/solvers/dfSprayFoam/EEqn.H b/applications/solvers/dfSprayFoam/EEqn.H index c014e7dc..4b5cc83f 100644 --- a/applications/solvers/dfSprayFoam/EEqn.H +++ b/applications/solvers/dfSprayFoam/EEqn.H @@ -9,29 +9,61 @@ hcSource.source() -= parcels.rhoTrans(i)*chemistry->mixture().Hc(i)/runTime.deltaT(); } //hSource.source() -= parcels.hsTrans()/runTime.deltaT();// equivalent to parcels.Sh(he) - fvScalarMatrix EEqn - ( - fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he) - + fvc::ddt(rho, K) + fvc::div(phi, K) - - dpdt - - fvm::laplacian(turbulence->alphaEff(), he) - + diffAlphaD - == - rho*(U&g) - + parcels.Sh(he) - + hcSource - + fvc::div(hDiffCorrFlux) - //+ radiation->Sh(thermo, he) - //+ fvOptions(rho, he) - ); - - EEqn.relax(); - - //fvOptions.constrain(EEqn); - - EEqn.solve(); - - //fvOptions.correct(he); - - //radiation->correct(); + + if ( turbName == "laminar") + { + fvScalarMatrix EEqn + ( + fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he) + + fvc::ddt(rho, K) + fvc::div(phi, K) + - dpdt + - fvm::laplacian(turbulence->alphaEff(), he) + + diffAlphaD + == + rho*(U&g) + + parcels.Sh(he) + + hcSource + + fvc::div(hDiffCorrFlux) + //+ radiation->Sh(thermo, he) + //+ fvOptions(rho, he) + ); + + EEqn.relax(); + + //fvOptions.constrain(EEqn); + + EEqn.solve(); + + //fvOptions.correct(he); + + //radiation->correct(); + } + else + { + fvScalarMatrix EEqn + ( + fvm::ddt(rho, he) + mvConvection->fvmDiv(phi, he) + + fvc::ddt(rho, K) + fvc::div(phi, K) + - dpdt + - fvm::laplacian(turbulence->alphaEff(), he) + + diffAlphaD + == + rho*(U&g) + + parcels.Sh(he) + + hcSource + + fvc::div(hDiffCorrFlux) + //+ radiation->Sh(thermo, he) + //+ fvOptions(rho, he) + ); + + EEqn.relax(); + + //fvOptions.constrain(EEqn); + + EEqn.solve(); + + //fvOptions.correct(he); + + //radiation->correct(); + } } diff --git a/applications/solvers/dfSprayFoam/YEqn.H b/applications/solvers/dfSprayFoam/YEqn.H index 7027adfe..8e0aee0c 100644 --- a/applications/solvers/dfSprayFoam/YEqn.H +++ b/applications/solvers/dfSprayFoam/YEqn.H @@ -32,28 +32,56 @@ const surfaceScalarField phiUc = linearInterpolate(sumYDiffError) & mesh.Sf(); if (i != inertIndex) { tmp DEff = chemistry->rhoD(i) + turbulence->mut()/Sct; - fvScalarMatrix YEqn - ( - fvm::ddt(rho, Yi) - + mvConvection->fvmDiv(phi, Yi) - - fvm::laplacian(DEff(), Yi) - + mvConvection->fvmDiv(phiUc, Yi) - == - parcels.SYi(i, Yi) - + combustion->R(Yi) - //+ fvOptions(rho, Yi) - ); + + if ( turbName == "laminar") + { + fvScalarMatrix YEqn + ( + fvm::ddt(rho, Yi) + + mvConvection->fvmDiv(phi, Yi) + - fvm::laplacian(DEff(), Yi) + + mvConvection->fvmDiv(phiUc, Yi) + == + parcels.SYi(i, Yi) + + combustion->R(Yi) + //+ fvOptions(rho, Yi) + ); - YEqn.relax(); + YEqn.relax(); - //fvOptions.constrain(YEqn); + //fvOptions.constrain(YEqn); - YEqn.solve("Yi"); + YEqn.solve("Yi"); - //fvOptions.correct(Yi); + //fvOptions.correct(Yi); - Yi.max(0.0); - Yt += Yi; + Yi.max(0.0); + Yt += Yi; + } + else + { + fvScalarMatrix YEqn + ( + fvm::ddt(rho, Yi) + + mvConvection->fvmDiv(phi, Yi) + - fvm::laplacian(DEff(), Yi) + == + parcels.SYi(i, Yi) + + combustion->R(Yi) + //+ fvOptions(rho, Yi) + ); + + YEqn.relax(); + + //fvOptions.constrain(YEqn); + + YEqn.solve("Yi"); + + //fvOptions.correct(Yi); + + Yi.max(0.0); + Yt += Yi; + } } } diff --git a/applications/solvers/dfSprayFoam/createFields.H b/applications/solvers/dfSprayFoam/createFields.H index 04786bf8..0dd3b0d1 100644 --- a/applications/solvers/dfSprayFoam/createFields.H +++ b/applications/solvers/dfSprayFoam/createFields.H @@ -75,6 +75,9 @@ autoPtr turbulence ) ); +const word turbName(mesh.objectRegistry::lookupObject("turbulenceProperties").lookup("simulationType")); +Info << "Turbulence Model Name is confirmed as "<< turbName << endl; + Info<< "Creating reaction model\n" << endl; autoPtr> combustion (