diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files index 9a0afbd7..7e028175 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/Make/files @@ -5,6 +5,7 @@ dragModels/Ergun/Ergun.C dragModels/Gibilaro/Gibilaro.C dragModels/GidaspowErgunWenYu/GidaspowErgunWenYu.C dragModels/GidaspowSchillerNaumann/GidaspowSchillerNaumann.C +dragModels/Lain/Lain.C dragModels/SchillerNaumann/SchillerNaumann.C dragModels/SyamlalOBrien/SyamlalOBrien.C dragModels/TomiyamaCorrelated/TomiyamaCorrelated.C @@ -20,6 +21,8 @@ liftModels/liftModel/liftModel.C liftModels/liftModel/newLiftModel.C liftModels/noLift/noLift.C liftModels/constantLiftCoefficient/constantLiftCoefficient.C +liftModels/Moraga/Moraga.C +liftModels/LegendreMagnaudet/LegendreMagnaudet.C liftModels/TomiyamaLift/TomiyamaLift.C heatTransferModels/heatTransferModel/heatTransferModel.C @@ -36,16 +39,19 @@ wallLubricationModels/wallLubricationModel/wallLubricationModel.C wallLubricationModels/wallLubricationModel/newWallLubricationModel.C wallLubricationModels/noWallLubrication/noWallLubrication.C wallLubricationModels/Antal/Antal.C +wallLubricationModels/Frank/Frank.C turbulentDispersionModels/turbulentDispersionModel/turbulentDispersionModel.C turbulentDispersionModels/turbulentDispersionModel/newTurbulentDispersionModel.C turbulentDispersionModels/noTurbulentDispersion/noTurbulentDispersion.C turbulentDispersionModels/constantTurbulentDispersionCoefficient/constantTurbulentDispersionCoefficient.C +turbulentDispersionModels/Burns/Burns.C turbulentDispersionModels/Gosman/Gosman.C aspectRatioModels/aspectRatioModel/aspectRatioModel.C aspectRatioModels/aspectRatioModel/newAspectRatioModel.C aspectRatioModels/constantAspectRatio/constantAspectRatio.C aspectRatioModels/VakhrushevEfremov/VakhrushevEfremov.C +aspectRatioModels/Wellek/Wellek.C LIB = $(FOAM_LIBBIN)/libcompressibleEulerianInterfacialModels diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C new file mode 100644 index 00000000..43aae935 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.C @@ -0,0 +1,74 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "Wellek.H" +#include "orderedPhasePair.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace aspectRatioModels +{ + defineTypeNameAndDebug(Wellek, 0); + addToRunTimeSelectionTable + ( + aspectRatioModel, + Wellek, + dictionary + ); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::aspectRatioModels::Wellek::Wellek +( + const dictionary& dict, + const orderedPhasePair& pair +) +: + aspectRatioModel(dict, pair) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::aspectRatioModels::Wellek::~Wellek() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +Foam::tmp +Foam::aspectRatioModels::Wellek::E() const +{ + return scalar(1)/(scalar(1) + 0.163*pow(pair_.Eo(), 0.757)); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H new file mode 100644 index 00000000..c9c6fa7b --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/aspectRatioModels/Wellek/Wellek.H @@ -0,0 +1,107 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::aspectRatioModels::Wellek + +Description + Aspect ratio model of Wellek et al. + + References: + \verbatim + "Implementation and Comparison of Correlations for interfacial Forces + in a Gas-Liquid System within an Euler-Euler Framework" + M Otromke + PhD Thesis + April 2013 + \endverbatim + + \verbatim + "Shape of liquid drops moving in liquid media" + R M Wellek, A K Agrawal, A H P Skelland + International Journal of Multiphase Flow + Volume 12, Issue 5, Pages 854-862, September 1966 + \endverbatim + +SourceFiles + Wellek.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Wellek_H +#define Wellek_H + +#include "aspectRatioModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace aspectRatioModels +{ + +/*---------------------------------------------------------------------------*\ + Class Wellek Declaration +\*---------------------------------------------------------------------------*/ + +class Wellek +: + public aspectRatioModel +{ +public: + + //- Runtime type information + TypeName("Wellek"); + + + // Constructors + + //- Construct from a dictionary and an ordered phase pair + Wellek + ( + const dictionary& dict, + const orderedPhasePair& pair + ); + + + //- Destructor + virtual ~Wellek(); + + + // Member Functions + + //- Aspect ratio + virtual tmp E() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace aspectRatioModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.C new file mode 100644 index 00000000..74ce22f7 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.C @@ -0,0 +1,75 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "Lain.H" +#include "phasePair.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace dragModels +{ + defineTypeNameAndDebug(Lain, 0); + addToRunTimeSelectionTable(dragModel, Lain, dictionary); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::dragModels::Lain::Lain +( + const dictionary& dict, + const phasePair& pair, + const bool registerObject +) +: + dragModel(dict, pair, registerObject) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::dragModels::Lain::~Lain() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp Foam::dragModels::Lain::CdRe() const +{ + volScalarField Re(pair_.Re()); + + return + neg(Re - 1.5)*16.0 + + pos(Re - 1.5)*neg(Re - 80.0)*14.9*pow(Re, 0.22) + + pos(Re - 80.0)*neg(Re - 1500.0)*48*(1.0 - 2.21/sqrt(max(Re, SMALL))) + + pos(Re - 1500.0)*2.61*Re; +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.H new file mode 100644 index 00000000..231fbcc8 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/dragModels/Lain/Lain.H @@ -0,0 +1,112 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::dragModels::Lain + +Description + Drag model of Lain et al. + + References: + \verbatim + "Implementation and Comparison of Correlations for interfacial Forces + in a Gas-Liquid System within an Euler-Euler Framework" + M Otromke + PhD Thesis + April 2013 + \endverbatim + + \verbatim + "Modelling hydrodynamics and turbulence in a bubble column using the + Euler-Lagrange procedure" + S Lain, D Brodera, M Sommerfelda, M F Goza + International Journal of Multiphase Flow + Volume 28, Issue 8, Pages 1381-1407, August 2002 + \endverbatim + +SourceFiles + Lain.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Lain_H +#define Lain_H + +#include "dragModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class phasePair; + +namespace dragModels +{ + +/*---------------------------------------------------------------------------*\ + Class Lain Declaration +\*---------------------------------------------------------------------------*/ + +class Lain +: + public dragModel +{ +public: + + //- Runtime type information + TypeName("Lain"); + + + // Constructors + + //- Construct from a dictionary and a phase pair + Lain + ( + const dictionary& dict, + const phasePair& pair, + const bool registerObject + ); + + + //- Destructor + virtual ~Lain(); + + + // Member Functions + + //- Drag coefficient + virtual tmp CdRe() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace dragModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C index 84f32a85..e1d0b3d4 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/heatTransferModels/RanzMarshall/RanzMarshall.C @@ -62,7 +62,7 @@ Foam::heatTransferModels::RanzMarshall::~RanzMarshall() Foam::tmp Foam::heatTransferModels::RanzMarshall::K() const { - volScalarField Nu(scalar(2) + 0.6*pair_.Re()*cbrt(pair_.Pr())); + volScalarField Nu(scalar(2) + 0.6*sqrt(pair_.Re())*cbrt(pair_.Pr())); return 6.0 diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C new file mode 100644 index 00000000..e58b3652 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.C @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "LegendreMagnaudet.H" +#include "phasePair.H" +#include "fvc.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace liftModels +{ + defineTypeNameAndDebug(LegendreMagnaudet, 0); + addToRunTimeSelectionTable(liftModel, LegendreMagnaudet, dictionary); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::liftModels::LegendreMagnaudet::LegendreMagnaudet +( + const dictionary& dict, + const phasePair& pair +) +: + liftModel(dict, pair), + residualRe_("residualRe", dimless, dict.lookup("residualRe")) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::liftModels::LegendreMagnaudet::~LegendreMagnaudet() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp Foam::liftModels::LegendreMagnaudet::Cl() const +{ + volScalarField Re(max(pair_.Re(), residualRe_)); + + volScalarField Sr + ( + sqr(pair_.dispersed().d()) + /( + Re + *pair_.continuous().nu() + ) + *mag(fvc::grad(pair_.continuous().U())) + ); + + volScalarField ClLowSqr + ( + sqr(6.0*2.255) + *sqr(Sr) + /( + pow4(constant::mathematical::pi) + *Re + *pow3(Sr + 0.2*Re) + ) + ); + + volScalarField ClHighSqr + ( + sqr(0.5*(Re + 16.0)/(Re + 29.0)) + ); + + return sqrt(ClLowSqr + ClHighSqr); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H new file mode 100644 index 00000000..9be41a3d --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/LegendreMagnaudet/LegendreMagnaudet.H @@ -0,0 +1,118 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::liftModels::LegendreMagnaudet + +Description + Lift model of Legendre and Magnaudet. + + References: + \verbatim + "Implementation and Comparison of Correlations for interfacial Forces + in a Gas-Liquid System within an Euler-Euler Framework" + M Otromke + PhD Thesis + April 2013 + \endverbatim + + \verbatim + "The lift force on a spherical bubble in a viscous linear shear flow" + D Legendre, J Magnaudet + Journal of Fluid Mechanics + Volume 368, pp 81-126, August 1998 + \endverbatim + +SourceFiles + LegendreMagnaudet.C + +\*---------------------------------------------------------------------------*/ + +#ifndef LegendreMagnaudet_H +#define LegendreMagnaudet_H + +#include "liftModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class phasePair; + +namespace liftModels +{ + +/*---------------------------------------------------------------------------*\ + Class LegendreMagnaudet Declaration +\*---------------------------------------------------------------------------*/ + +class LegendreMagnaudet +: + public liftModel +{ +private: + + // Private data + + //- Residual Reynold's number + const dimensionedScalar residualRe_; + + +public: + + //- Runtime type information + TypeName("LegendreMagnaudet"); + + + // Constructors + + //- Construct from a dictionary and a phase pair + LegendreMagnaudet + ( + const dictionary& dict, + const phasePair& pair + ); + + + //- Destructor + virtual ~LegendreMagnaudet(); + + + // Member Functions + + //- Lift coefficient + virtual tmp Cl() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace liftModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C new file mode 100644 index 00000000..24ab01e7 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.C @@ -0,0 +1,77 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "Moraga.H" +#include "phasePair.H" +#include "fvc.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace liftModels +{ + defineTypeNameAndDebug(Moraga, 0); + addToRunTimeSelectionTable(liftModel, Moraga, dictionary); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::liftModels::Moraga::Moraga +( + const dictionary& dict, + const phasePair& pair +) +: + liftModel(dict, pair) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::liftModels::Moraga::~Moraga() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp Foam::liftModels::Moraga::Cl() const +{ + volScalarField ReSqrSr + ( + pair_.Re() + *sqr(pair_.dispersed().d()) + /pair_.continuous().nu() + *mag(fvc::grad(pair_.continuous().U())) + ); + + return 0.2*exp(- ReSqrSr/3.6e5 - 0.12)*exp(ReSqrSr/3.0e7); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H new file mode 100644 index 00000000..b38a5efd --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/liftModels/Moraga/Moraga.H @@ -0,0 +1,110 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::liftModels::Moraga + +Description + Lift model of Moraga et al. + + References: + \verbatim + "Implementation and Comparison of Correlations for interfacial Forces + in a Gas-Liquid System within an Euler-Euler Framework" + M Otromke + PhD Thesis + April 2013 + \endverbatim + + \verbatim + "Lateral forces on spheres in turbulent uniform shear flow" + F J Moraga, F J Bonetto, R T Lahey + International Journal of Multiphase Flow + Volume 25, Issues 6-7, Pages 1321-1372, September 1999 + \endverbatim + +SourceFiles + Moraga.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Moraga_H +#define Moraga_H + +#include "liftModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class phasePair; + +namespace liftModels +{ + +/*---------------------------------------------------------------------------*\ + Class Moraga Declaration +\*---------------------------------------------------------------------------*/ + +class Moraga +: + public liftModel +{ +public: + + //- Runtime type information + TypeName("Moraga"); + + + // Constructors + + //- Construct from a dictionary and a phase pair + Moraga + ( + const dictionary& dict, + const phasePair& pair + ); + + + //- Destructor + virtual ~Moraga(); + + + // Member Functions + + //- Lift coefficient + virtual tmp Cl() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace liftModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C new file mode 100644 index 00000000..6beb9579 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.C @@ -0,0 +1,102 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "Burns.H" +#include "phasePair.H" +#include "fvc.H" +#include "PhaseIncompressibleTurbulenceModel.H" +#include "addToRunTimeSelectionTable.H" + +#include "dragModel.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace turbulentDispersionModels +{ + defineTypeNameAndDebug(Burns, 0); + addToRunTimeSelectionTable + ( + turbulentDispersionModel, + Burns, + dictionary + ); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::turbulentDispersionModels::Burns::Burns +( + const dictionary& dict, + const phasePair& pair +) +: + turbulentDispersionModel(dict, pair), + sigma_("sigma", dimless, dict.lookup("sigma")), + residualAlpha_("residualAlpha", dimless, dict.lookup("residualAlpha")) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::turbulentDispersionModels::Burns::~Burns() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp +Foam::turbulentDispersionModels::Burns::F() const +{ + const fvMesh& mesh(pair_.phase1().mesh()); + const dragModel& + drag + ( + mesh.lookupObject + ( + IOobject::groupName(dragModel::typeName, pair_.name()) + ) + ); + + return + - 0.75 + *drag.CdRe() + *pair_.dispersed() + *pair_.continuous().nu() + *pair_.continuous().turbulence().nut() + /( + sigma_ + *sqr(pair_.dispersed().d()) + ) + *pair_.continuous().rho() + *fvc::grad(pair_.continuous()) + *(1.0 + pair_.dispersed()/max(pair_.continuous(), residualAlpha_)); +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H new file mode 100644 index 00000000..6804ec32 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/turbulentDispersionModels/Burns/Burns.H @@ -0,0 +1,120 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::turbulentDispersionModels::Burns + +Description + Turbulent dispersion model of Burns et al. + + References: + \verbatim + "Implementation and Comparison of Correlations for interfacial Forces + in a Gas-Liquid System within an Euler-Euler Framework" + M Otromke + PhD Thesis + April 2013 + \endverbatim + + \verbatim + "The Favre averaged drag model for turbulent dispersion in Eulerian + multi-phase flows" + A D Burns, T Frank, I Hamill, J M Shi + 5th international conference on multiphase flow + Volume 4, Paper 392, May 2004 + \endverbatim + +SourceFiles + Burns.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Burns_H +#define Burns_H + +#include "turbulentDispersionModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class phasePair; + +namespace turbulentDispersionModels +{ + +/*---------------------------------------------------------------------------*\ + Class Burns Declaration +\*---------------------------------------------------------------------------*/ + +class Burns +: + public turbulentDispersionModel +{ + // Private data + + //- Schmidt number + const dimensionedScalar sigma_; + + //- Residual phase fraction + const dimensionedScalar residualAlpha_; + + +public: + + //- Runtime type information + TypeName("Burns"); + + + // Constructors + + //- Construct from a dictionary and a phase pair + Burns + ( + const dictionary& dict, + const phasePair& pair + ); + + + //- Destructor + virtual ~Burns(); + + + // Member Functions + + //- Turbulent dispersion force + virtual tmp F() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace turbulentDispersionModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C new file mode 100644 index 00000000..c89f1233 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.C @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "Frank.H" +#include "phasePair.H" +#include "fvc.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace wallLubricationModels +{ + defineTypeNameAndDebug(Frank, 0); + addToRunTimeSelectionTable + ( + wallLubricationModel, + Frank, + dictionary + ); +} +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::wallLubricationModels::Frank::Frank +( + const dictionary& dict, + const phasePair& pair +) +: + wallLubricationModel(dict, pair), + Cwd_("Cwd", dimless, dict.lookup("Cwd")), + Cwc_("Cwc", dimless, dict.lookup("Cwc")), + p_(readScalar(dict.lookup("p"))) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::wallLubricationModels::Frank::~Frank() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp Foam::wallLubricationModels::Frank::F() const +{ + volVectorField Ur(pair_.Ur()); + volVectorField nWall(- fvc::grad(yWall_)); + nWall /= mag(nWall) + SMALL; + + volScalarField Eo(pair_.Eo()); + volScalarField yTilde(yWall_/(Cwc_*pair_.dispersed().d())); + + return + ( + pos(Eo - 1.0)*neg(Eo - 5.0)*exp(-0.933*Eo + 0.179) + + pos(Eo - 5.0)*neg(Eo - 33.0)*(0.00599*Eo - 0.0187) + + pos(Eo - 33.0)*0.179 + ) + *max + ( + dimensionedScalar("zero", dimless/dimLength, 0.0), + (1.0 - yTilde)/(Cwd_*yWall_*pow(yTilde, p_ - 1.0)) + ) + *pair_.dispersed() + *pair_.continuous().rho() + *magSqr(Ur - (Ur & nWall)*nWall) + *nWall; +} + + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H new file mode 100644 index 00000000..3ba0f985 --- /dev/null +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/interfacialModels/wallLubricationModels/Frank/Frank.H @@ -0,0 +1,125 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::wallLubricationModels::Frank + +Description + Wall lubrication model of Frank. + + References: + \verbatim + "Implementation and Comparison of Correlations for interfacial Forces + in a Gas-Liquid System within an Euler-Euler Framework" + M Otromke + PhD Thesis + April 2013 + \endverbatim + + \verbatim + "Advances in Computational Fluid Dynamics (CFD) of 3-dimensional Gas- + Liquid Multiphase Flows" + T Frank + NAFEMS Seminar : Simulation of Complex Flows (CFD) + Pages 1-18, April 2005 + \endverbatim + +SourceFiles + Frank.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Frank_H +#define Frank_H + +#include "wallLubricationModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +class phasePair; + +namespace wallLubricationModels +{ + +/*---------------------------------------------------------------------------*\ + Class Frank Declaration +\*---------------------------------------------------------------------------*/ + +class Frank +: + public wallLubricationModel +{ +private: + + // Private data + + //- Coefficient d + const dimensionedScalar Cwd_; + + //- Coefficient c + const dimensionedScalar Cwc_; + + //- Power p + const scalar p_; + + +public: + + //- Runtime type information + TypeName("Frank"); + + + // Constructors + + //- Construct from components + Frank + ( + const dictionary& dict, + const phasePair& pair + ); + + + //- Destructor + virtual ~Frank(); + + + // Member Functions + + //- Wall lubrication force + tmp F() const; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace wallLubricationModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 29baaf9c..6db46aea 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/phaseIncompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -422,19 +422,12 @@ void Foam::RASModels::kineticTheoryModel::correct() *gs0_*(1.0/da)*ThetaSqrt/sqrtPi ); - // NB, drag = K*alpha*alpha2, - // (the alpha and alpha2 has been extracted from the drag function for - // numerical reasons) + // Drag volScalarField magUr(mag(U - Uc_)); volScalarField alpha2Prim ( - max - ( - alpha*(1.0 - alpha), - residualAlpha_ - ) - *phase_.fluid().drag(phase_).K()/rho + phase_.fluid().drag(phase_).K()/rho ); // Eq. 3.25, p. 50 Js = J1 - J2 diff --git a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/BlendedInterfacialModel/blendingMethods/linear/linear.C b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/BlendedInterfacialModel/blendingMethods/linear/linear.C index 6bda7558..48dcd085 100644 --- a/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/BlendedInterfacialModel/blendingMethods/linear/linear.C +++ b/applications/solvers/multiphase/twoPhaseEulerFoam/twoPhaseSystem/BlendedInterfacialModel/blendingMethods/linear/linear.C @@ -135,9 +135,9 @@ Foam::tmp Foam::blendingMethods::linear::f1 ( (phase1 - maxFullAlpha) /(maxPartAlpha - maxFullAlpha + SMALL), - 0.0 + scalar(0.0) ), - 1.0 + scalar(1.0) ); } @@ -160,9 +160,9 @@ Foam::tmp Foam::blendingMethods::linear::f2 ( (maxPartAlpha - phase2) /(maxPartAlpha - maxFullAlpha + SMALL), - 0.0 + scalar(0.0) ), - 1.0 + scalar(1.0) ); } diff --git a/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict b/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict index 15e099fb..9ce767ea 100644 --- a/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict +++ b/applications/utilities/mesh/manipulation/createBaffles/createBafflesDict @@ -19,7 +19,17 @@ FoamFile // - or converting boundary faces into a boundary face // (internalFacesOnly=false)(though should use really createPatch // to do this) -// - specification in one of two modes: +// +// - selection of faces (and orientation) to 'baffle' through: +// faceZone: +// type faceZone; +// zoneName f0; +// searchableSurface: +// type searchableSurface; +// surface triSurfaceMesh; +// name baffle1D.stl; +// +// - specification of patches for baffle sides in one of two modes: // - patchPairs : create two patches of same type, same input // - patches : create patches separately, full control over what // to create on what side diff --git a/src/OpenFOAM/meshes/polyMesh/polyMesh.C b/src/OpenFOAM/meshes/polyMesh/polyMesh.C index c20baae3..ce71727d 100644 --- a/src/OpenFOAM/meshes/polyMesh/polyMesh.C +++ b/src/OpenFOAM/meshes/polyMesh/polyMesh.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -1448,6 +1448,15 @@ Foam::label Foam::polyMesh::findCell const cellRepresentation decompMode ) const { + if (Pstream::parRun() && decompMode == FACEDIAGTETS) + { + // Force construction of face-diagonal decomposition before testing + // for zero cells. If parallel running a local domain might have zero + // cells so never construct the face-diagonal decomposition (which + // uses parallel transfers) + (void)tetBasePtIs(); + } + if (nCells() == 0) { return -1; diff --git a/src/OpenFOAM/primitives/Tensor/tensor/tensor.C b/src/OpenFOAM/primitives/Tensor/tensor/tensor.C index 8ddf9d29..d0d3b30b 100644 --- a/src/OpenFOAM/primitives/Tensor/tensor/tensor.C +++ b/src/OpenFOAM/primitives/Tensor/tensor/tensor.C @@ -119,7 +119,7 @@ Foam::vector Foam::eigenValues(const tensor& t) + t.xy()*t.yx()*t.zz() + t.xx()*t.yz()*t.zy(); // If there is a zero root - if (mag(c) < ROOTVSMALL) + if (mag(c) < 1e-100) { scalar disc = sqr(a) - 4*b; @@ -313,7 +313,7 @@ Foam::vector Foam::eigenValues(const symmTensor& t) + t.xy()*t.xy()*t.zz() + t.xx()*t.yz()*t.yz(); // If there is a zero root - if (mag(c) < ROOTVSMALL) + if (mag(c) < 1e-100) { scalar disc = sqr(a) - 4*b; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/ErgunWenYuDrag/ErgunWenYuDragForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/ErgunWenYuDrag/ErgunWenYuDragForce.C index ae26d505..a18ffbec 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/ErgunWenYuDrag/ErgunWenYuDragForce.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/ErgunWenYuDrag/ErgunWenYuDragForce.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -110,7 +110,7 @@ Foam::forceSuSp Foam::ErgunWenYuDragForce::calcCoupled ( vector::zero, (mass/p.rho()) - *(150.0*(1.0 - alphac) + 1.75*Re)*muc/(alphac*sqr(p.d())) + *(150.0*(1.0 - alphac)/alphac + 1.75*Re)*muc/(alphac*sqr(p.d())) ); } else @@ -119,7 +119,7 @@ Foam::forceSuSp Foam::ErgunWenYuDragForce::calcCoupled ( vector::zero, (mass/p.rho()) - *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/sqr(p.d()) + *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/(alphac*sqr(p.d())) ); } } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/PlessisMasliyahDrag/PlessisMasliyahDragForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/PlessisMasliyahDrag/PlessisMasliyahDragForce.C index 1b7dee57..970dee90 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/PlessisMasliyahDrag/PlessisMasliyahDragForce.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/PlessisMasliyahDrag/PlessisMasliyahDragForce.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -123,7 +123,7 @@ Foam::forceSuSp Foam::PlessisMasliyahDragForce::calcCoupled ( vector::zero, (mass/p.rho()) - *(A*(1.0 - alphac) + B*Re)*muc/(alphac*sqr(p.d())) + *(A*(1.0 - alphac)/alphac + B*Re)*muc/(alphac*sqr(p.d())) ); } diff --git a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/WenYuDrag/WenYuDragForce.C b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/WenYuDrag/WenYuDragForce.C index 415bd06b..57356aa1 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/WenYuDrag/WenYuDragForce.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/Drag/WenYuDrag/WenYuDragForce.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -105,7 +105,7 @@ Foam::forceSuSp Foam::WenYuDragForce::calcCoupled ( vector::zero, (mass/p.rho()) - *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/sqr(p.d()) + *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/(alphac*sqr(p.d())) ); } diff --git a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C index 8736987c..3791ad53 100644 --- a/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C +++ b/src/parallel/decompose/ptscotchDecomp/ptscotchDecomp.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -532,12 +532,23 @@ Foam::label Foam::ptscotchDecomp::decompose if (maxWeights > minWeights) { - // Convert to integers. - velotab.setSize(cWeights.size()); - - forAll(velotab, i) + if (cWeights.size()) { - velotab[i] = int((cWeights[i]/minWeights - 1)*rangeScale) + 1; + // Convert to integers. + velotab.setSize(cWeights.size()); + + forAll(velotab, i) + { + velotab[i] = int((cWeights[i]/minWeights - 1)*rangeScale) + 1; + } + } + else + { + // Locally zero cells but not globally. Make sure we have + // some size so .begin() does not return null pointer. Data + // itself is never used. + velotab.setSize(1); + velotab[0] = 1; } } diff --git a/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C b/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C index a1bf1cc0..b2294fe9 100644 --- a/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C +++ b/src/thermophysicalModels/radiationModels/submodels/absorptionEmissionModel/wideBandAbsorptionEmission/wideBandAbsorptionEmission.C @@ -102,7 +102,7 @@ Foam::radiation::wideBandAbsorptionEmission::wideBandAbsorptionEmission << nl << exit(FatalError); } } - coeffs_[nSpec][nBand].initialise(specDicts.subDict(key)); + coeffs_[nBand][nSpec].initialise(specDicts.subDict(key)); nSpec++; } nBand++; diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C index 4b51db9f..ea273e25 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -269,7 +269,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs() } } } - q = (Ta_ - Tp)*(1.0/h_ + totalSolidRes); + q = (Ta_ - Tp)/(1.0/h_ + totalSolidRes); break; } default: @@ -287,7 +287,7 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs() { if (q[i] > 0) //in { - this->refGrad()[i] = q[i]/KWall[i]; + this->refGrad()[i] = q[i]/KWall[i]; this->refValue()[i] = 0.0; this->valueFraction()[i] = 0.0; } diff --git a/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties b/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties index c0341ddd..d39da39a 100644 --- a/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties +++ b/tutorials/lagrangian/MPPICFoam/cyclone/constant/kinematicCloudProperties @@ -20,7 +20,7 @@ solution active true; coupled true; transient yes; - cellValueSourceCorrection on; + cellValueSourceCorrection off; maxCo 1.0; @@ -69,26 +69,25 @@ subModels model1 { type patchInjection; - parcelBasisType fixed; + massTotal 40; + SOI 1; + parcelBasisType mass; patchName inlet; + duration 4; + parcelsPerSecond 100644; U0 (-10 0 0); - nParticle 500000; - parcelsPerSecond 244462; + flowRateProfile constant 1; sizeDistribution { type normal; normalDistribution { - expectation 50e-6; - variance 20e-6; - minValue 10e-6; - maxValue 90e-6; + expectation 100e-6; + variance 25e-6; + minValue 20e-6; + maxValue 180e-6; } } - flowRateProfile constant 1; - massTotal 0; - SOI 1; - duration 4; } } diff --git a/tutorials/multiphase/interFoam/laminar/damBreak/constant/polyMesh/boundary b/tutorials/multiphase/interFoam/laminar/damBreak/constant/polyMesh/boundary deleted file mode 100644 index 95b2b1c9..00000000 --- a/tutorials/multiphase/interFoam/laminar/damBreak/constant/polyMesh/boundary +++ /dev/null @@ -1,53 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 2.3.0 | -| \\ / A nd | Web: www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class polyBoundaryMesh; - location "constant/polyMesh"; - object boundary; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -5 -( - leftWall - { - type wall; - nFaces 50; - startFace 4432; - } - rightWall - { - type wall; - nFaces 50; - startFace 4482; - } - lowerWall - { - type wall; - nFaces 62; - startFace 4532; - } - atmosphere - { - type patch; - nFaces 46; - startFace 4594; - } - defaultFaces - { - type empty; - inGroups 1(empty); - nFaces 4536; - startFace 4640; - } -) - -// ************************************************************************* //