diff --git a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C index 2b04637b04..d636481b31 100644 --- a/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C +++ b/applications/solvers/compressible/rhoCentralFoam/BCs/T/smoluchowskiJumpTFvPatchScalarField.C @@ -185,12 +185,10 @@ void Foam::smoluchowskiJumpTFvPatchScalarField::updateCoeffs() dimensionedScalar Pr ( - dimensionedScalar::lookupOrDefault - ( - "Pr", - thermophysicalProperties, - 1.0 - ) + "Pr", + dimless, + thermophysicalProperties.subDict("mixture").subDict("transport") + .lookup("Pr") ); Field C2 diff --git a/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H b/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H deleted file mode 100644 index e0b16f0f39..0000000000 --- a/applications/solvers/compressible/rhoCentralFoam/readThermophysicalProperties.H +++ /dev/null @@ -1,23 +0,0 @@ -Info<< "Reading thermophysicalProperties\n" << endl; - -// Pr defined as a separate constant to enable calculation of k, currently -// inaccessible through thermo -IOdictionary thermophysicalProperties -( - IOobject - ( - "thermophysicalProperties", - runTime.constant(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) -); - -dimensionedScalar Pr -( - "Pr", - dimless, - thermophysicalProperties.subDict("mixture").subDict("transport") - .lookup("Pr") -); diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C index 0d69256d21..5f25016a84 100644 --- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C +++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralDyMFoam/rhoCentralDyMFoam.C @@ -46,7 +46,6 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" - #include "readThermophysicalProperties.H" #include "readTimeControls.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -236,13 +235,10 @@ int main(int argc, char *argv[]) if (!inviscid) { - volScalarField k("k", thermo.Cp()*muEff/Pr); solve ( fvm::ddt(rho, e) - fvc::ddt(rho, e) - fvm::laplacian(turbulence->alphaEff(), e) - + fvc::laplacian(turbulence->alpha(), e) - - fvc::laplacian(k, T) ); thermo.correct(); rhoE = rho*(e + 0.5*magSqr(U)); diff --git a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C index 84a122d0dd..24752a166a 100644 --- a/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C +++ b/applications/solvers/compressible/rhoCentralFoam/rhoCentralFoam.C @@ -45,7 +45,6 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" - #include "readThermophysicalProperties.H" #include "readTimeControls.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H b/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H index 8a83efdd86..c6096d743d 100644 --- a/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H +++ b/applications/solvers/compressible/rhoPimpleFoam/rhoPimplecFoam/pEqn.H @@ -7,7 +7,7 @@ volScalarField rAU(1.0/UEqn().A()); volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1())); volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn() == fvOptions(rho, U))().H(); +HbyA = rAU*UEqn().H(); if (pimple.nCorrPIMPLE() <= 1) { diff --git a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H index 9398c3e8d0..b4c7207138 100644 --- a/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H +++ b/applications/solvers/compressible/rhoSimpleFoam/rhoPorousSimpleFoam/UEqn.H @@ -4,12 +4,12 @@ ( fvm::div(phi, U) + turbulence->divDevRhoReff(U) + == + fvOptions(rho, U) ); UEqn().relax(); - mrfZones.addCoriolis(rho, UEqn()); - // Include the porous media resistance and solve the momentum equation // either implicit in the tensorial resistance or transport using by // including the spherical part of the resistance in the momentum diagonal @@ -30,7 +30,7 @@ for (int UCorr=0; UCorrdivDevReff(Urel) + SRF->Su() + == + fvOptions(Urel) ); UrelEqn().relax(); fvOptions.constrain(UrelEqn()); - solve(UrelEqn() == -fvc::grad(p) + fvOptions(Urel)); + solve(UrelEqn() == -fvc::grad(p)); fvOptions.correct(Urel); diff --git a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H index 9b5b1a89a4..8aa20cd151 100644 --- a/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/SRFPimpleFoam/pEqn.H @@ -1,6 +1,6 @@ volScalarField rAUrel(1.0/UrelEqn().A()); volVectorField HbyA("HbyA", Urel); -HbyA = rAUrel*(UrelEqn() == fvOptions(Urel))().H(); +HbyA = rAUrel*UrelEqn().H(); if (pimple.nCorrPISO() <= 1) { diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H index 7a7d604b48..430e60c848 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/UEqn.H @@ -5,6 +5,8 @@ tmp UEqn fvm::ddt(U) + fvm::div(phi, U) + turbulence->divDevReff(U) + == + fvOptions(U) ); UEqn().relax(); diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H index 217304168b..4c48bb2a18 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/pEqn.H @@ -1,5 +1,5 @@ volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn() == fvOptions(U))().H(); +HbyA = rAU*UEqn().H(); if (pimple.nCorrPISO() <= 1) { diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/UEqn.H b/applications/solvers/incompressible/potentialFreeSurfaceFoam/UEqn.H index 4c84e256c0..69a95ab712 100644 --- a/applications/solvers/incompressible/potentialFreeSurfaceFoam/UEqn.H +++ b/applications/solvers/incompressible/potentialFreeSurfaceFoam/UEqn.H @@ -3,6 +3,8 @@ tmp UEqn fvm::ddt(U) + fvm::div(phi, U) + turbulence->divDevReff(U) + == + fvOptions(U) ); @@ -12,7 +14,7 @@ fvOptions.constrain(UEqn()); if (pimple.momentumPredictor()) { - solve(UEqn() == -fvc::grad(p_gh) + fvOptions(U)); + solve(UEqn() == -fvc::grad(p_gh)); fvOptions.correct(U); } diff --git a/applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H b/applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H index 780bb28022..6f6b9834e4 100644 --- a/applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H +++ b/applications/solvers/incompressible/potentialFreeSurfaceFoam/pEqn.H @@ -2,7 +2,7 @@ volScalarField rAU(1.0/UEqn().A()); surfaceScalarField rAUf("Dp", fvc::interpolate(rAU)); volVectorField HbyA("HbyA", U); -HbyA = rAU*(UEqn() == fvOptions(U))().H(); +HbyA = rAU*UEqn().H(); if (pimple.nCorrPISO() <= 1) { @@ -18,6 +18,7 @@ surfaceScalarField phiHbyA adjustPhi(phiHbyA, U, p_gh); +fvOptions.relativeFlux(phiHbyA); // Non-orthogonal pressure corrector loop while (pimple.correctNonOrthogonal()) diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index c4503cc101..1425a3e5f2 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C @@ -36,7 +36,6 @@ Description #include "basicReactingMultiphaseCloud.H" #include "rhoCombustionModel.H" #include "radiationModel.H" -#include "IOporosityModelList.H" #include "fvIOoptionList.H" #include "SLGThermo.H" #include "pimpleControl.H" diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H index 4562d1ed19..b64277749e 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/EEqns.H @@ -14,14 +14,22 @@ volScalarField& he1 = thermo1.he(); volScalarField& he2 = thermo2.he(); + volScalarField Cpv1(thermo1.Cpv()); + volScalarField Cpv2(thermo2.Cpv()); + fvScalarMatrix he1Eqn ( fvm::ddt(alpha1, he1) + fvm::div(alphaPhi1, he1) + + // Compressibity correction + - fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), he1) + - fvm::laplacian(k1, he1) == - heatTransferCoeff*(thermo1.he(p, thermo2.T())/thermo1.Cp())/rho1 - - fvm::Sp(heatTransferCoeff/thermo1.Cp()/rho1, he1) + heatTransferCoeff*(thermo2.T() - thermo1.T())/rho1 + + heatTransferCoeff*he1/Cpv1/rho1 + - fvm::Sp(heatTransferCoeff/Cpv1/rho1, he1) + alpha1*(dpdt/rho1 - (fvc::ddt(K1) + fvc::div(phi1, K1))) ); @@ -29,10 +37,15 @@ ( fvm::ddt(alpha2, he2) + fvm::div(alphaPhi2, he2) + + // Compressibity correction + - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), he2) + - fvm::laplacian(k2, he2) == - heatTransferCoeff*(thermo2.he(p, thermo1.T())/thermo2.Cp())/rho2 - - fvm::Sp(heatTransferCoeff/thermo2.Cp()/rho2, he2) + heatTransferCoeff*(thermo1.T() - thermo2.T())/rho2 + + heatTransferCoeff*he2/Cpv2/rho2 + - fvm::Sp(heatTransferCoeff/Cpv2/rho2, he2) + alpha2*(dpdt/rho2 - (fvc::ddt(K2) + fvc::div(phi2, K2))) ); diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H index a243db6300..ce5c622f9a 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/UEqns.H @@ -31,6 +31,9 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime); fvm::ddt(alpha1, U1) + fvm::div(alphaPhi1, U1) + // Compressibity correction + - fvm::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), U1) + + Cvm*rho2*alpha1*alpha2/rho1* ( fvm::ddt(U1) @@ -61,6 +64,9 @@ fvVectorMatrix U2Eqn(U2, U2.dimensions()*dimVol/dimTime); fvm::ddt(alpha2, U2) + fvm::div(alphaPhi2, U2) + // Compressibity correction + - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), U2) + + Cvm*rho2*alpha1*alpha2/rho2* ( fvm::ddt(U2) diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H index 7dfad758b4..a20f53e014 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/alphaEqn.H @@ -2,8 +2,8 @@ surfaceScalarField alphaPhi1("alphaPhi" + phase1Name, phi1); surfaceScalarField alphaPhi2("alphaPhi" + phase2Name, phi2); { - word alphaScheme("div(phi,alpha)"); - word alpharScheme("div(phir,alpha)"); + word alphaScheme("div(phi," + alpha1.name() + ')'); + word alpharScheme("div(phir," + alpha1.name() + ')'); surfaceScalarField phic("phic", phi); surfaceScalarField phir("phir", phi1 - phi2); diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H index bc9a07b0a8..b74e1b18d7 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/turbulenceModel/kEpsilon.H @@ -16,6 +16,10 @@ if (turbulence) ( fvm::ddt(alpha2, epsilon) + fvm::div(alphaPhi2, epsilon) + + // Compressibity correction + - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), epsilon) + - fvm::laplacian ( alpha1Eps*nuEff2, epsilon, @@ -41,6 +45,10 @@ if (turbulence) ( fvm::ddt(alpha2, k) + fvm::div(alphaPhi2, k) + + // Compressibity correction + - fvm::Sp(fvc::ddt(alpha2) + fvc::div(alphaPhi2), k) + - fvm::laplacian ( alpha1k*nuEff2, k, diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options index 7cd8f48ee4..688b9364b6 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/Make/options +++ b/applications/solvers/multiphase/multiphaseEulerFoam/Make/options @@ -1,4 +1,4 @@ -EXE_INC = \ +EXE_INC = -g \ -IphaseModel/lnInclude \ -ImultiphaseSystem/lnInclude \ -ImultiphaseFixedFluxPressure \ diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H b/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H index e6478e4d89..a63ff3c85a 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/UEqns.H @@ -32,9 +32,10 @@ forAllIter(PtrDictionary, fluid.phases(), iter) "div(Rc)" ) == - - fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U) + //- fvm::Sp(fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), U) //- (alpha*phase.rho())*fluid.lift(phase) - + (alpha/phase.rho())*fluid.Svm(phase) + //+ + (alpha/phase.rho())*fluid.Svm(phase) - fvm::Sp ( slamDampCoeff @@ -53,7 +54,7 @@ forAllIter(PtrDictionary, fluid.phases(), iter) alpha*(1 + (1/phase.rho())*fluid.Cvm(phase)), UEqns[phasei] ); - UEqns[phasei].relax(); + //UEqns[phasei].relax(); phasei++; } diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H index 07d867b1e7..5e71a2eeeb 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/pEqn.H @@ -67,8 +67,29 @@ const volScalarField& alpha = phase; alphafs.set(phasei, fvc::interpolate(alpha).ptr()); - rAUs.set(phasei, (1.0/UEqns[phasei].A()).ptr()); - rAlphaAUfs.set(phasei, fvc::interpolate(alpha*rAUs[phasei]).ptr()); + + volScalarField dragCoeffi + ( + IOobject + ( + "dragCoeffi", + runTime.timeName(), + mesh + ), + fluid.dragCoeff(phase, dragCoeffs())/phase.rho(), + zeroGradientFvPatchScalarField::typeName + ); + dragCoeffi.correctBoundaryConditions(); + + rAUs.set(phasei, (1.0/(UEqns[phasei].A() + dragCoeffi)).ptr()); + rAlphaAUfs.set + ( + phasei, + ( + alphafs[phasei] + /fvc::interpolate(UEqns[phasei].A() + dragCoeffi) + ).ptr() + ); HbyAs[phasei] = rAUs[phasei]*UEqns[phasei].H(); @@ -115,10 +136,9 @@ } phiHbyAs[phasei] += - fvc::interpolate - ( - (1.0/phase.rho())*rAUs[phasei]*(*dcIter()) - )*phase2Ptr->phi(); + fvc::interpolate((*dcIter())/phase.rho()) + /fvc::interpolate(UEqns[phasei].A() + dragCoeffi) + *phase2Ptr->phi(); HbyAs[phasei] += (1.0/phase.rho())*rAUs[phasei]*(*dcIter()) @@ -240,7 +260,7 @@ + rAlphaAUfs[phasei]*mSfGradp/phase.rho() ); - // phase.U() = fvc::reconstruct(phase.phi()); + //phase.U() = fvc::reconstruct(phase.phi()); phase.U().correctBoundaryConditions(); U += alpha*phase.U(); diff --git a/applications/utilities/mesh/advanced/collapseEdges/collapseDict b/applications/utilities/mesh/advanced/collapseEdges/collapseDict index 340c33049f..170a0a890d 100644 --- a/applications/utilities/mesh/advanced/collapseEdges/collapseDict +++ b/applications/utilities/mesh/advanced/collapseEdges/collapseDict @@ -14,6 +14,11 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// If on, after collapsing check the quality of the mesh. If bad faces are +// generated then redo the collapsing with stricter filtering. +controlMeshQuality on; + + collapseEdgesCoeffs { // Edges shorter than this absolute value will be merged @@ -22,21 +27,13 @@ collapseEdgesCoeffs // The maximum angle between two edges that share a point attached to // no other edges maximumMergeAngle 30; - - // The amount that minimumEdgeLength will be reduced by for each - // edge if that edge's collapse generates a poor quality face - reductionFactor 0.5; } collapseFacesCoeffs { // The initial face length factor - initialFaceLengthFactor 0.5; - - // The amount that initialFaceLengthFactor will be reduced by for each - // face if its collapse generates a poor quality face - reductionFactor $initialFaceLengthFactor; + initialFaceLengthFactor 0.5; // If the face can't be collapsed to an edge, and it has a span less than // the target face length multiplied by this coefficient, collapse it @@ -63,12 +60,20 @@ collapseFacesCoeffs } -meshQualityCoeffs +controlMeshQualityCoeffs { // Name of the dictionary that has the mesh quality coefficients used // by motionSmoother::checkMesh #include "meshQualityDict"; + // The amount that minimumEdgeLength will be reduced by for each + // edge if that edge's collapse generates a poor quality face + edgeReductionFactor 0.5; + + // The amount that initialFaceLengthFactor will be reduced by for each + // face if its collapse generates a poor quality face + faceReductionFactor $initialFaceLengthFactor; + // Maximum number of smoothing iterations for the reductionFactors maximumSmoothingIterations 2; diff --git a/applications/utilities/mesh/advanced/collapseEdges/meshQualityDict b/applications/utilities/mesh/advanced/collapseEdges/meshQualityDict index 49810f468b..9a514a8e17 100644 --- a/applications/utilities/mesh/advanced/collapseEdges/meshQualityDict +++ b/applications/utilities/mesh/advanced/collapseEdges/meshQualityDict @@ -2,24 +2,16 @@ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: dev | -| \\ / A nd | Web: http://www.openfoam.org | +| \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ - FoamFile { version 2.0; format ascii; - - root ""; - case ""; - instance ""; - local ""; - class dictionary; object meshQualityDict; } - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //- Maximum non-orthogonality allowed. Set to 180 to disable. diff --git a/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C b/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C index 9b184f994e..a1cfc83aeb 100644 --- a/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C +++ b/src/dynamicMesh/polyMeshFilter/polyMeshFilter.C @@ -427,9 +427,13 @@ Foam::polyMeshFilter::polyMeshFilter(const fvMesh& mesh) IOobject::NO_WRITE ) ), + controlMeshQuality_ + ( + dict_.lookupOrDefault("controlMeshQuality", false) + ), collapseEdgesCoeffDict_(dict_.subDict("collapseEdgesCoeffs")), - collapseFacesCoeffDict_(dict_.subDict("collapseFacesCoeffs")), - meshQualityCoeffDict_(dict_.subDict("meshQualityCoeffs")), + collapseFacesCoeffDict_(dict_.subOrEmptyDict("collapseFacesCoeffs")), + meshQualityCoeffDict_(dict_.subOrEmptyDict("controlMeshQualityCoeffs")), minLen_(readScalar(collapseEdgesCoeffDict_.lookup("minimumEdgeLength"))), maxCos_ ( @@ -443,27 +447,39 @@ Foam::polyMeshFilter::polyMeshFilter(const fvMesh& mesh) ), edgeReductionFactor_ ( - readScalar(collapseEdgesCoeffDict_.lookup("reductionFactor")) + meshQualityCoeffDict_.lookupOrDefault("edgeReductionFactor", -1) ), maxIterations_ ( - readLabel(meshQualityCoeffDict_.lookup("maximumIterations")) + meshQualityCoeffDict_.lookupOrAddDefault