ENH: phaseSystemModels: new namespaces for various submodels

Co-authored-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
This commit is contained in:
sergio
2022-06-14 13:49:20 +01:00
committed by Kutalmis Bercin
parent 9a80d0d5ef
commit 45c3ba0e8e
83 changed files with 860 additions and 455 deletions

View File

@ -1,5 +1,5 @@
{
for (phaseModel& phase : fluid.phases())
for (multiphaseInter::phaseModel& phase : fluid.phases())
{
PtrList<volScalarField>& Y = phase.Y();

View File

@ -63,9 +63,10 @@
Info<< "Creating multiphaseSystem\n" << endl;
autoPtr<multiphaseSystem> fluidPtr = multiphaseSystem::New(mesh);
autoPtr<multiphaseInter::multiphaseSystem> fluidPtr =
multiphaseInter::multiphaseSystem::New(mesh);
multiphaseSystem& fluid = fluidPtr();
multiphaseInter::multiphaseSystem& fluid = fluidPtr();
if (!fluid.incompressible())
{
@ -118,9 +119,12 @@
surfaceScalarField& rhoPhi = fluid.rhoPhi();
// Construct incompressible turbulence model
autoPtr<CompressibleTurbulenceModel<multiphaseSystem>> turbulence
autoPtr
<
CompressibleTurbulenceModel<multiphaseInter::multiphaseSystem>
> turbulence
(
CompressibleTurbulenceModel<multiphaseSystem>::New
CompressibleTurbulenceModel<multiphaseInter::multiphaseSystem>::New
(
rho,
U,
@ -129,6 +133,8 @@
)
);
fluid.setTurbulence(turbulence());
// Creating radiation model
autoPtr<radiation::radiationModel> radiation
(

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2016-2017 OpenFOAM Foundation
Copyright (C) 2016-2020 OpenCFD Ltd.
Copyright (C) 2016-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -34,6 +34,7 @@ License
#include "wallPolyPatch.H"
#include "turbulentFluidThermoModel.H"
#include "addToRunTimeSelectionTable.H"
#include "multiphaseInterSystem.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -236,6 +237,19 @@ bool Foam::functionObjects::wallHeatFlux::execute()
calcHeatFlux(thermo.alpha(), thermo.he(), wallHeatFlux);
}
else if
(
foundObject<multiphaseInterSystem>
(multiphaseInterSystem::phasePropertiesName)
)
{
const auto& thermo = lookupObject<multiphaseInterSystem>
(
multiphaseInterSystem::phasePropertiesName
);
calcHeatFlux(thermo.kappaEff()(), thermo.T(), wallHeatFlux);
}
else
{
FatalErrorInFunction

View File

@ -7,7 +7,6 @@ $(diameter)/diameterModel/diameterModel.C
$(diameter)/constantDiameter/constantDiameter.C
$(diameter)/isothermalDiameter/isothermalDiameter.C
drag = interfacialModels/dragModels
$(drag)/dragModel/dragModel.C
$(drag)/Ergun/Ergun.C
@ -24,7 +23,7 @@ heatTransfer = interfacialModels/heatTransferModels
$(heatTransfer)/heatTransferModel/heatTransferModel.C
$(heatTransfer)/RanzMarshall/RanzMarshall.C
derivedFvPatchFields/alphaContactAngle/alphaContactAngleFvPatchScalarField.C
alphaContactAngle/alphaContactAngleFvPatchScalarField.C
LIB = $(FOAM_LIBBIN)/libmultiphaseSystem

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +34,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
alphaContactAngleFvPatchScalarField::interfaceThetaProps::interfaceThetaProps
(
@ -142,6 +145,7 @@ makePatchTypeField
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace multiphaseEuler
} // End namespace Foam
// ************************************************************************* //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -35,8 +36,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef alphaContactAngleFvPatchScalarField_H
#define alphaContactAngleFvPatchScalarField_H
#ifndef Foam_multiphaseEuler_alphaContactAngleFvPatchScalarField_H
#define Foam_multiphaseEuler_alphaContactAngleFvPatchScalarField_H
#include "zeroGradientFvPatchFields.H"
#include "multiphaseSystem.H"
@ -45,6 +46,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
/*---------------------------------------------------------------------------*\
Class alphaContactAngleFvPatch Declaration
@ -208,6 +211,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace diameterModels
{
defineTypeNameAndDebug(constant, 0);
@ -44,11 +47,12 @@ namespace diameterModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::diameterModels::constant::constant
Foam::multiphaseEuler::diameterModels::constant::constant
(
const dictionary& dict,
const phaseModel& phase
@ -61,7 +65,8 @@ Foam::diameterModels::constant::constant
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::diameterModels::constant::d() const
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::diameterModels::constant::d() const
{
return tmp<Foam::volScalarField>
(

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::diameterModels::constant
Foam::multiphaseEuler::diameterModels::constant
Description
Constant dispersed-phase particle diameter model.
@ -35,8 +35,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef diameterModels_constant_H
#define diameterModels_constant_H
#ifndef Foam_multiphaseEuler_diameterModels_constant_H
#define Foam_multiphaseEuler_diameterModels_constant_H
#include "diameterModel.H"
@ -44,6 +44,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace diameterModels
{
@ -90,6 +92,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace diameterModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
Copyright (C) 2019-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,15 +31,18 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace multiphaseEuler
{
defineTypeNameAndDebug(diameterModel, 0);
defineRunTimeSelectionTable(diameterModel, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::diameterModel::diameterModel
Foam::multiphaseEuler::diameterModel::diameterModel
(
const dictionary& dict,
const phaseModel& phase
@ -52,7 +55,8 @@ Foam::diameterModel::diameterModel
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
Foam::autoPtr<Foam::multiphaseEuler::diameterModel>
Foam::multiphaseEuler::diameterModel::New
(
const dictionary& dict,
const phaseModel& phase

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::diameterModel
Foam::multiphaseEuler::diameterModel
Description
Abstract base-class for dispersed-phase particle diameter models.
@ -35,8 +35,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef diameterModel_H
#define diameterModel_H
#ifndef Foam_multiphaseEuler_diameterModel_H
#define Foam_multiphaseEuler_diameterModel_H
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -46,6 +46,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
/*---------------------------------------------------------------------------*\
Class diameterModel Declaration
@ -115,6 +117,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End namespace multiphaseEuler
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace diameterModels
{
defineTypeNameAndDebug(isothermal, 0);
@ -44,11 +47,12 @@ namespace diameterModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::diameterModels::isothermal::isothermal
Foam::multiphaseEuler::diameterModels::isothermal::isothermal
(
const dictionary& dict,
const phaseModel& phase
@ -62,7 +66,8 @@ Foam::diameterModels::isothermal::isothermal
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::diameterModels::isothermal::d() const
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::diameterModels::isothermal::d() const
{
const volScalarField& p = phase_.U().db().lookupObject<volScalarField>
(

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::diameterModels::isothermal
Foam::multiphaseEuler::diameterModels::isothermal
Description
Isothermal dispersed-phase particle diameter model.
@ -35,8 +35,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef diameterModels_isothermal_H
#define diameterModels_isothermal_H
#ifndef Foam_multiphaseEuler_diameterModels_isothermal_H
#define Foam_multiphaseEuler_diameterModels_isothermal_H
#include "diameterModel.H"
@ -44,6 +44,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace diameterModels
{
@ -93,6 +95,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace diameterModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(Ergun, 0);
@ -44,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::Ergun::Ergun
Foam::multiphaseEuler::dragModels::Ergun::Ergun
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +65,13 @@ Foam::dragModels::Ergun::Ergun
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::Ergun::~Ergun()
Foam::multiphaseEuler::dragModels::Ergun::~Ergun()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::Ergun::K
Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::Ergun::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::Ergun
Foam::multiphaseEuler::dragModels::Ergun
Description
H, Enwald, E. Peirano, A-E Almstedt
@ -37,8 +38,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef Ergun_H
#define Ergun_H
#ifndef Foam_multiphaseEuler_dragModels_Ergun_H
#define Foam_multiphaseEuler_dragModels_Ergun_H
#include "dragModel.H"
@ -46,6 +47,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -88,6 +91,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(Gibilaro, 0);
@ -44,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::Gibilaro::Gibilaro
Foam::multiphaseEuler::dragModels::Gibilaro::Gibilaro
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +65,13 @@ Foam::dragModels::Gibilaro::Gibilaro
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::Gibilaro::~Gibilaro()
Foam::multiphaseEuler::dragModels::Gibilaro::~Gibilaro()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::Gibilaro::K
Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::Gibilaro::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::Gibilaro
Foam::multiphaseEuler::dragModels::Gibilaro
Description
H, Enwald, E. Peirano, A-E Almstedt
@ -37,8 +38,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef Gibilaro_H
#define Gibilaro_H
#ifndef Foam_multiphaseEuler_dragModels_Gibilaro_H
#define Foam_multiphaseEuler_dragModels_Gibilaro_H
#include "dragModel.H"
@ -46,6 +47,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -88,6 +91,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(GidaspowErgunWenYu, 0);
@ -44,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +65,14 @@ Foam::dragModels::GidaspowErgunWenYu::GidaspowErgunWenYu
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::GidaspowErgunWenYu::~GidaspowErgunWenYu()
Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu::~GidaspowErgunWenYu()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowErgunWenYu::K
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::GidaspowErgunWenYu
Foam::multiphaseEuler::dragModels::GidaspowErgunWenYu
Description
D. Gidaspow, Multiphase flow and fluidization,
@ -35,8 +36,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef GidaspowErgunWenYu_H
#define GidaspowErgunWenYu_H
#ifndef Foam_multiphaseEuler_dragModels_GidaspowErgunWenYu_H
#define Foam_multiphaseEuler_dragModels_GidaspowErgunWenYu_H
#include "dragModel.H"
@ -44,6 +45,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -86,6 +89,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(GidaspowSchillerNaumann, 0);
@ -44,11 +47,13 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann
Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann::
GidaspowSchillerNaumann
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +66,15 @@ Foam::dragModels::GidaspowSchillerNaumann::GidaspowSchillerNaumann
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::GidaspowSchillerNaumann::~GidaspowSchillerNaumann()
Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann::
~GidaspowSchillerNaumann()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::GidaspowSchillerNaumann::K
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::GidaspowSchillerNaumann
Foam::multiphaseEuler::dragModels::GidaspowSchillerNaumann
Description
H, Enwald, E. Peirano, A-E Almstedt
@ -44,8 +45,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef GidaspowSchillerNaumann_H
#define GidaspowSchillerNaumann_H
#ifndef Foam_multiphaseEuler_dragModels_GidaspowSchillerNaumann_H
#define Foam_multiphaseEuler_dragModels_GidaspowSchillerNaumann_H
#include "dragModel.H"
@ -53,6 +54,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -95,6 +98,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(SchillerNaumann, 0);
@ -44,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::SchillerNaumann::SchillerNaumann
Foam::multiphaseEuler::dragModels::SchillerNaumann::SchillerNaumann
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +65,14 @@ Foam::dragModels::SchillerNaumann::SchillerNaumann
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::SchillerNaumann::~SchillerNaumann()
Foam::multiphaseEuler::dragModels::SchillerNaumann::~SchillerNaumann()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::SchillerNaumann::K
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::dragModels::SchillerNaumann::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::SchillerNaumann
Foam::multiphaseEuler::dragModels::SchillerNaumann
Description
@ -33,8 +34,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef SchillerNaumann_H
#define SchillerNaumann_H
#ifndef Foam_multiphaseEuler_dragModels_SchillerNaumann_H
#define Foam_multiphaseEuler_dragModels_SchillerNaumann_H
#include "dragModel.H"
@ -42,6 +43,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -84,6 +87,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(SyamlalOBrien, 0);
@ -44,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::SyamlalOBrien::SyamlalOBrien
Foam::multiphaseEuler::dragModels::SyamlalOBrien::SyamlalOBrien
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +65,14 @@ Foam::dragModels::SyamlalOBrien::SyamlalOBrien
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::SyamlalOBrien::~SyamlalOBrien()
Foam::multiphaseEuler::dragModels::SyamlalOBrien::~SyamlalOBrien()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::SyamlalOBrien::K
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::dragModels::SyamlalOBrien::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::SyamlalOBrien
Foam::multiphaseEuler::dragModels::SyamlalOBrien
Description
Syamlal, M., Rogers, W. and O'Brien, T. J. (1993) MFIX documentation,
@ -36,8 +37,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef SyamlalOBrien_H
#define SyamlalOBrien_H
#ifndef Foam_multiphaseEuler_dragModels_SyamlalOBrien_H
#define Foam_multiphaseEuler_dragModels_SyamlalOBrien_H
#include "dragModel.H"
@ -45,6 +46,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -87,6 +90,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(WenYu, 0);
@ -44,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::WenYu::WenYu
Foam::multiphaseEuler::dragModels::WenYu::WenYu
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -61,13 +65,13 @@ Foam::dragModels::WenYu::WenYu
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::dragModels::WenYu::~WenYu()
Foam::multiphaseEuler::dragModels::WenYu::~WenYu()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::WenYu::K
Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::WenYu::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::WenYu
Foam::multiphaseEuler::dragModels::WenYu
Description
H, Enwald, E. Peirano, A-E Almstedt
@ -47,8 +48,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef WenYu_H
#define WenYu_H
#ifndef Foam_multiphaseEuler_dragModels_WenYu_H
#define Foam_multiphaseEuler_dragModels_WenYu_H
#include "dragModel.H"
@ -56,6 +57,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -98,6 +101,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(blended, 0);
@ -45,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::blended::blended
Foam::multiphaseEuler::dragModels::blended::blended
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -64,7 +67,7 @@ Foam::dragModels::blended::blended
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::blended::K
Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::blended::K
(
const volScalarField& Ur
) const

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::blended
Foam::multiphaseEuler::dragModels::blended
Description
Blends two drag models based on the phase fractions to handle
@ -36,8 +36,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef blended_H
#define blended_H
#ifndef Foam_multiphaseEuler_dragModels_blended_H
#define Foam_multiphaseEuler_dragModels_blended_H
#include "dragModel.H"
@ -45,6 +45,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -93,6 +95,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
Copyright (C) 2019-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,15 +31,18 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace multiphaseEuler
{
defineTypeNameAndDebug(dragModel, 0);
defineRunTimeSelectionTable(dragModel, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModel::dragModel
Foam::multiphaseEuler::dragModel::dragModel
(
const dictionary& dict,
const phaseModel& phase1,
@ -56,7 +59,8 @@ Foam::dragModel::dragModel
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
Foam::autoPtr<Foam::multiphaseEuler::dragModel>
Foam::multiphaseEuler::dragModel::New
(
const dictionary& dict,
const phaseModel& phase1,

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModel
Foam::multiphaseEuler::dragModel
Description
@ -33,8 +34,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef dragModel_H
#define dragModel_H
#ifndef Foam_multiphaseEuler_dragModel_H
#define Foam_multiphaseEuler_dragModel_H
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -44,6 +45,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
/*---------------------------------------------------------------------------*\
Class dragModel Declaration
@ -144,6 +147,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
defineTypeNameAndDebug(interface, 0);
@ -45,11 +47,12 @@ namespace dragModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dragModels::interface::interface
Foam::multiphaseEuler::dragModels::interface::interface
(
const dictionary& interfaceDict,
const phaseModel& phase1,
@ -62,7 +65,7 @@ Foam::dragModels::interface::interface
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::dragModels::interface::K
Foam::tmp<Foam::volScalarField> Foam::multiphaseEuler::dragModels::interface::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dragModels::interface
Foam::multiphaseEuler::dragModels::interface
Description
Drag between phase separated by a VoF resolved interface.
@ -34,8 +35,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef interface_H
#define interface_H
#ifndef Foam_multiphaseEuler_dragModels_interface_H
#define Foam_multiphaseEuler_dragModels_interface_H
#include "dragModel.H"
@ -43,6 +44,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace dragModels
{
@ -85,6 +88,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace dragModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,6 +33,8 @@ License
namespace Foam
{
namespace multiphaseEuler
{
namespace heatTransferModels
{
defineTypeNameAndDebug(RanzMarshall, 0);
@ -44,11 +47,12 @@ namespace heatTransferModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::heatTransferModels::RanzMarshall::RanzMarshall
Foam::multiphaseEuler::heatTransferModels::RanzMarshall::RanzMarshall
(
const dictionary& interfaceDict,
const volScalarField& alpha1,
@ -62,13 +66,14 @@ Foam::heatTransferModels::RanzMarshall::RanzMarshall
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::heatTransferModels::RanzMarshall::~RanzMarshall()
Foam::multiphaseEuler::heatTransferModels::RanzMarshall::~RanzMarshall()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::heatTransferModels::RanzMarshall::K
Foam::tmp<Foam::volScalarField>
Foam::multiphaseEuler::heatTransferModels::RanzMarshall::K
(
const volScalarField& Ur
) const

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::heatTransferModels::RanzMarshall
Foam::multiphaseEuler::heatTransferModels::RanzMarshall
Description
@ -33,8 +34,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef RanzMarshall_H
#define RanzMarshall_H
#ifndef Foam_multiphaseEuler_heatTransferModels_RanzMarshall_H
#define Foam_multiphaseEuler_heatTransferModels_RanzMarshall_H
#include "heatTransferModel.H"
@ -42,6 +43,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
namespace heatTransferModels
{
@ -85,6 +88,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace heatTransferModels
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
Copyright (C) 2019-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,15 +31,18 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace multiphaseEuler
{
defineTypeNameAndDebug(heatTransferModel, 0);
defineRunTimeSelectionTable(heatTransferModel, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::heatTransferModel::heatTransferModel
Foam::multiphaseEuler::heatTransferModel::heatTransferModel
(
const dictionary& dict,
const volScalarField& alpha1,
@ -56,7 +59,8 @@ Foam::heatTransferModel::heatTransferModel
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
Foam::autoPtr<Foam::multiphaseEuler::heatTransferModel>
Foam::multiphaseEuler::heatTransferModel::New
(
const dictionary& dict,
const volScalarField& alpha1,

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::heatTransferModel
Foam::multiphaseEuler::heatTransferModel
Description
@ -35,8 +35,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef heatTransferModel_H
#define heatTransferModel_H
#ifndef Foam_multiphaseEuler_heatTransferModel_H
#define Foam_multiphaseEuler_heatTransferModel_H
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -46,6 +46,8 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
/*---------------------------------------------------------------------------*\
Class heatTransferModel Declaration
@ -129,6 +131,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace multiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2018 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -251,10 +251,22 @@ void Foam::multiphaseSystem::correctContactAngle
forAll(boundary, patchi)
{
if (isA<alphaContactAngleFvPatchScalarField>(gbf[patchi]))
if
(
isA<multiphaseEuler::alphaContactAngleFvPatchScalarField>
(
gbf[patchi]
)
)
{
const alphaContactAngleFvPatchScalarField& acap =
refCast<const alphaContactAngleFvPatchScalarField>(gbf[patchi]);
const auto& acap =
refCast
<
const multiphaseEuler::alphaContactAngleFvPatchScalarField
>
(
gbf[patchi]
);
vectorField& nHatPatch = nHatb[patchi];
@ -414,7 +426,7 @@ Foam::multiphaseSystem::multiphaseSystem
dragModels_.set
(
iter.key(),
dragModel::New
multiphaseEuler::dragModel::New
(
iter(),
*phases_.lookup(iter.key().first()),
@ -645,7 +657,7 @@ Foam::multiphaseSystem::dragCoeffs() const
forAllConstIters(dragModels_, iter)
{
const dragModel& dm = *iter();
const multiphaseEuler::dragModel& dm = *iter();
volScalarField* Kptr =
(

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
Copyright (C) 2019-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -42,8 +42,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef multiphaseSystem_H
#define multiphaseSystem_H
#ifndef Foam_multiphaseEuler_multiphaseSystem_H
#define Foam_multiphaseEuler_multiphaseSystem_H
#include "incompressible/transportModel/transportModel.H"
#include "IOdictionary.H"
@ -121,8 +121,11 @@ public:
};
typedef HashPtrTable<dragModel, interfacePair, interfacePair::symmHash>
dragModelTable;
typedef
HashPtrTable
<
multiphaseEuler::dragModel, interfacePair, interfacePair::symmHash
> dragModelTable;
typedef HashPtrTable<volScalarField, interfacePair, interfacePair::symmHash>
dragCoeffFields;

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -188,7 +189,7 @@ Foam::phaseModel::phaseModel
);
}
dPtr_ = diameterModel::New
dPtr_ = multiphaseEuler::diameterModel::New
(
phaseDict_,
*this

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,8 +32,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef phaseModel_H
#define phaseModel_H
#ifndef Foam_multiphaseEuler_phaseModel_H
#define Foam_multiphaseEuler_phaseModel_H
#include "dictionary.H"
#include "dictionaryEntry.H"
@ -45,8 +46,11 @@ SourceFiles
namespace Foam
{
namespace multiphaseEuler
{
// Forward declarations
class diameterModel;
}
/*---------------------------------------------------------------------------*\
Class phaseModel Declaration
@ -88,7 +92,7 @@ class phaseModel
autoPtr<surfaceScalarField> phiPtr_;
//- Diameter model
autoPtr<diameterModel> dPtr_;
autoPtr<multiphaseEuler::diameterModel> dPtr_;
public:

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd
Copyright (C) 2017-2022 OpenCFD Ltd
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -37,6 +37,8 @@ License
#include "RASModel.H"
#include "LESModel.H"
using namespace Foam::multiphaseInter;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
defineTurbulenceModelTypes

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +33,8 @@ License
#include "rhoThermo.H"
#include "zeroGradientFvPatchFields.H"
using namespace Foam::multiphaseInter;
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class Thermo, class OtherThermo>

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,6 +45,8 @@ SourceFiles
namespace Foam
{
using namespace multiphaseInter;
// Forward Declarations
class phaseModel;
class phasePair;
@ -132,7 +134,7 @@ public:
InterfaceCompositionModel(const dictionary& dict, const phasePair& pair);
//- Destructor
~InterfaceCompositionModel() = default;
virtual ~InterfaceCompositionModel() = default;
// Member Functions

View File

@ -5,7 +5,7 @@ phasePair/phasePair.C
phasePair/phasePairKey.C
phasePair/orderedPhasePair.C
phaseSystem/phaseSystem.C
multiphaseInterSystem/multiphaseInterSystem.C
multiphaseSystem/multiphaseSystem.C
multiphaseSystem/multiphaseSystemNew.C

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2020 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +33,8 @@ License
#include "volFields.H"
#include "fundamentalConstants.H"
using namespace Foam::multiphaseInter;
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class BasePhaseSystem>

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2020 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -34,10 +34,10 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef MassTransferPhaseSystem_H
#define MassTransferPhaseSystem_H
#ifndef Foam_multiphaseInter_MassTransferPhaseSystem_H
#define Foam_multiphaseInter_MassTransferPhaseSystem_H
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "HashPtrTable.H"
#include "interfaceCompositionModel.H"
@ -46,6 +46,8 @@ SourceFiles
namespace Foam
{
using namespace multiphaseInter;
/*---------------------------------------------------------------------------*\
Class MassTransferPhaseSystem Declaration
\*---------------------------------------------------------------------------*/
@ -144,7 +146,7 @@ public:
//- Calculate mass transfer for species
virtual void massSpeciesTransfer
(
const phaseModel& phase,
const Foam::phaseModel& phase,
volScalarField::Internal& Su,
volScalarField::Internal& Sp,
const word speciesName

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,14 +32,19 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace multiphaseInter
{
defineTypeNameAndDebug(interfaceCompositionModel, 0);
defineRunTimeSelectionTable(interfaceCompositionModel, dictionary);
}
}
const Foam::Enum<Foam::interfaceCompositionModel::modelVariable>
Foam::interfaceCompositionModel::modelVariableNames_
const Foam::Enum
<
Foam::multiphaseInter::interfaceCompositionModel::modelVariable
>
Foam::multiphaseInter::interfaceCompositionModel::modelVariableNames_
{
{ modelVariable::T, "temperature" },
{ modelVariable::P, "pressure" },
@ -50,7 +55,7 @@ Foam::interfaceCompositionModel::modelVariableNames_
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::interfaceCompositionModel::interfaceCompositionModel
Foam::multiphaseInter::interfaceCompositionModel::interfaceCompositionModel
(
const dictionary& dict,
const phasePair& pair
@ -74,8 +79,8 @@ Foam::interfaceCompositionModel::interfaceCompositionModel
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::interfaceCompositionModel>
Foam::interfaceCompositionModel::New
Foam::autoPtr<Foam::multiphaseInter::interfaceCompositionModel>
Foam::multiphaseInter::interfaceCompositionModel::New
(
const dictionary& dict,
const phasePair& pair
@ -113,31 +118,42 @@ Foam::interfaceCompositionModel::New
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
const Foam::word Foam::interfaceCompositionModel::transferSpecie() const
const Foam::word Foam::multiphaseInter::interfaceCompositionModel
::transferSpecie() const
{
return speciesName_;
}
const Foam::phasePair& Foam::interfaceCompositionModel::pair() const
const Foam::phasePair& Foam::multiphaseInter::interfaceCompositionModel
::pair() const
{
return pair_;
}
const Foam::word& Foam::interfaceCompositionModel::variable() const
const Foam::multiphaseInterSystem& Foam::multiphaseInter
::interfaceCompositionModel::fluid() const
{
return pair().to().fluid();
}
const Foam::word& Foam::multiphaseInter::interfaceCompositionModel
::variable() const
{
return modelVariableNames_[modelVariable_];
}
bool Foam::interfaceCompositionModel::includeDivU() const noexcept
bool Foam::multiphaseInter::interfaceCompositionModel::includeDivU()
const noexcept
{
return true;
}
bool Foam::interfaceCompositionModel::includeVolChange()
bool Foam::multiphaseInter::interfaceCompositionModel::includeVolChange()
{
return includeVolChange_;
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -50,9 +50,14 @@ namespace Foam
{
// Forward Declarations
class phaseModel;
class phasePair;
namespace multiphaseInter
{
// Forward Declarations
class phaseModel;
/*---------------------------------------------------------------------------*\
Class interfaceCompositionModel Declaration
\*---------------------------------------------------------------------------*/
@ -212,6 +217,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End multiphaseInter
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +25,7 @@ License
\*---------------------------------------------------------------------------*/
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "surfaceTensionModel.H"
#include "porousModel.H"
@ -46,23 +46,27 @@ License
namespace Foam
{
defineTypeNameAndDebug(phaseSystem, 0);
defineTypeNameAndDebug(multiphaseInterSystem, 0);
}
/* * * * * * * * * * * * * * * private static data * * * * * * * * * * * * * */
const Foam::word Foam::phaseSystem::phasePropertiesName("phaseProperties");
const Foam::word
Foam::multiphaseInterSystem::phasePropertiesName("phaseProperties");
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
void Foam::phaseSystem::calcMu()
void Foam::multiphaseInterSystem::calcMu()
{
mu_ = mu()();
}
Foam::phaseSystem::phaseModelTable
Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const
Foam::multiphaseInterSystem::phaseModelTable
Foam::multiphaseInterSystem::generatePhaseModels
(
const wordList& phaseNames
) const
{
phaseModelTable phaseModels;
@ -71,7 +75,7 @@ Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const
phaseModels.insert
(
phaseName,
phaseModel::New
multiphaseInter::phaseModel::New
(
*this,
phaseName
@ -83,7 +87,7 @@ Foam::phaseSystem::generatePhaseModels(const wordList& phaseNames) const
}
Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::generatePhi
Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseInterSystem::generatePhi
(
const phaseModelTable& phaseModels
) const
@ -105,7 +109,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::generatePhi
}
void Foam::phaseSystem::generatePairs(const dictTable& modelDicts)
void Foam::multiphaseInterSystem::generatePairs(const dictTable& modelDicts)
{
forAllConstIters(modelDicts, iter)
{
@ -152,7 +156,7 @@ void Foam::phaseSystem::generatePairs(const dictTable& modelDicts)
}
void Foam::phaseSystem::generatePairsTable()
void Foam::multiphaseInterSystem::generatePairsTable()
{
forAllConstIters(phaseModels_, phaseIter1)
{
@ -201,7 +205,7 @@ void Foam::phaseSystem::generatePairsTable()
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::phaseSystem::phaseSystem
Foam::multiphaseInterSystem::multiphaseInterSystem
(
const fvMesh& mesh
)
@ -288,13 +292,13 @@ Foam::phaseSystem::phaseSystem
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::phaseSystem::~phaseSystem()
Foam::multiphaseInterSystem::~multiphaseInterSystem()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::he
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::he
(
const volScalarField& p,
const volScalarField& T
@ -305,7 +309,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::he
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::he
(
const scalarField& p,
const scalarField& T,
@ -317,7 +321,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::he
(
const scalarField& p,
const scalarField& T,
@ -329,7 +333,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::he
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::hc() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::hc() const
{
auto iter = phaseModels_.cbegin();
@ -347,7 +351,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::hc() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::THE
(
const scalarField& e,
const scalarField& p,
@ -360,7 +364,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::THE
(
const scalarField& e,
const scalarField& p,
@ -373,7 +377,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::THE
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::rho() const
{
auto iter = phaseModels_.cbegin();
@ -391,7 +395,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::rho() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::rho(const label patchI) const
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::rho
(
const label patchI
) const
{
auto iter = phaseModels_.cbegin();
@ -414,7 +421,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::rho(const label patchI) const
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cp() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::Cp() const
{
auto iter = phaseModels_.cbegin();
@ -432,7 +439,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cp() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cp
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::Cp
(
const scalarField& p,
const scalarField& T,
@ -455,7 +462,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cp
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cv() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::Cv() const
{
auto iter = phaseModels_.cbegin();
@ -473,7 +480,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cv() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cv
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::Cv
(
const scalarField& p,
const scalarField& T,
@ -496,7 +503,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cv
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::rhoEoS
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::rhoEoS
(
const scalarField& p,
const scalarField& T,
@ -508,7 +515,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::rhoEoS
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::gamma() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::gamma() const
{
auto iter = phaseModels_.cbegin();
@ -532,7 +539,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::gamma() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::gamma
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::gamma
(
const scalarField& p,
const scalarField& T,
@ -546,7 +553,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::gamma
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cpv() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::Cpv() const
{
auto iter = phaseModels_.cbegin();
@ -564,7 +571,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::Cpv() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cpv
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::Cpv
(
const scalarField& p,
const scalarField& T,
@ -587,7 +594,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::Cpv
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::CpByCpv() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::CpByCpv() const
{
auto iter = phaseModels_.cbegin();
@ -605,7 +612,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::CpByCpv() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::CpByCpv
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::CpByCpv
(
const scalarField& p,
const scalarField& T,
@ -633,14 +640,14 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::CpByCpv
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::W() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::W() const
{
NotImplemented;
return nullptr;
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::kappa() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::kappa() const
{
auto iter = phaseModels_.cbegin();
@ -658,7 +665,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::kappa() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappa(const label patchI) const
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::kappa
(
const label patchI
) const
{
auto iter = phaseModels_.cbegin();
@ -681,7 +691,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappa(const label patchI) const
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphahe() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::alphahe() const
{
phaseModelTable::const_iterator phaseModelIter = phaseModels_.begin();
@ -699,7 +709,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphahe() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphahe
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::alphahe
(
const label patchi
) const
@ -723,7 +733,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphahe
}
Foam::tmp<Foam::volScalarField>Foam::phaseSystem::kappaEff
Foam::tmp<Foam::volScalarField>Foam::multiphaseInterSystem::kappaEff
(
const volScalarField& kappat
) const
@ -734,7 +744,7 @@ Foam::tmp<Foam::volScalarField>Foam::phaseSystem::kappaEff
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappaEff
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::kappaEff
(
const scalarField& kappat,
const label patchI
@ -744,7 +754,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::kappaEff
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphaEff
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::alphaEff
(
const volScalarField& alphat
) const
@ -767,7 +777,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::alphaEff
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphaEff
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::alphaEff
(
const scalarField& alphat,
const label patchI
@ -796,13 +806,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::alphaEff
}
const Foam::dimensionedScalar& Foam::phaseSystem::Prt() const
const Foam::dimensionedScalar& Foam::multiphaseInterSystem::Prt() const
{
return Prt_;
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::mu() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::mu() const
{
auto iter = phaseModels_.cbegin();
@ -820,7 +830,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::mu() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::mu(const label patchI) const
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::mu
(
const label patchI
) const
{
auto iter = phaseModels_.cbegin();
@ -843,7 +856,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::mu(const label patchI) const
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nu() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nu() const
{
auto iter = phaseModels_.cbegin();
@ -861,7 +874,10 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nu() const
}
Foam::tmp<Foam::scalarField> Foam::phaseSystem::nu(const label patchI) const
Foam::tmp<Foam::scalarField> Foam::multiphaseInterSystem::nu
(
const label patchI
) const
{
auto iter = phaseModels_.cbegin();
@ -884,31 +900,82 @@ Foam::tmp<Foam::scalarField> Foam::phaseSystem::nu(const label patchI) const
}
const Foam::surfaceScalarField& Foam::phaseSystem::phi() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::mut() const
{
return turb_->mut();
}
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::muEff() const
{
return turb_->muEff();
}
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nut() const
{
return turb_->nut();
}
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nuEff() const
{
return turb_->nuEff();
}
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::kappaEff() const
{
return(this->kappa() + this->Cp()*turb_->mut()/Prt_);
}
Foam::tmp<Foam::scalarField>
Foam::multiphaseInterSystem::kappaEff(const label patchi) const
{
tmp<scalarField> tCp(this->Cp()().boundaryField()[patchi]);
return this->kappa(patchi) + tCp()*turb_->mut(patchi)/Prt_.value();
}
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::alphaEff() const
{
return this->alpha() + turb_->mut()/Prt_;
}
Foam::tmp<Foam::scalarField>
Foam::multiphaseInterSystem::alphaEff(const label patchi) const
{
return (this->alpha(patchi) + turb_->mut(patchi))/Prt_.value();
}
const Foam::surfaceScalarField& Foam::multiphaseInterSystem::phi() const
{
return phi_;
}
Foam::surfaceScalarField& Foam::phaseSystem::phi()
Foam::surfaceScalarField& Foam::multiphaseInterSystem::phi()
{
return phi_;
}
const Foam::surfaceScalarField& Foam::phaseSystem::rhoPhi() const
const Foam::surfaceScalarField& Foam::multiphaseInterSystem::rhoPhi() const
{
return rhoPhi_;
}
Foam::surfaceScalarField& Foam::phaseSystem::rhoPhi()
Foam::surfaceScalarField& Foam::multiphaseInterSystem::rhoPhi()
{
return rhoPhi_;
}
void Foam::phaseSystem::correct()
void Foam::multiphaseInterSystem::correct()
{
forAllIters(phaseModels_, iter)
{
@ -919,7 +986,7 @@ void Foam::phaseSystem::correct()
}
void Foam::phaseSystem::correctTurbulence()
void Foam::multiphaseInterSystem::correctTurbulence()
{
forAllIters(phaseModels_, iter)
{
@ -928,32 +995,35 @@ void Foam::phaseSystem::correctTurbulence()
}
const Foam::phaseSystem::phaseModelTable& Foam::phaseSystem::phases() const
const Foam::multiphaseInterSystem::phaseModelTable&
Foam::multiphaseInterSystem::phases() const
{
return phaseModels_;
}
Foam::phaseSystem::phaseModelTable& Foam::phaseSystem::phases()
Foam::multiphaseInterSystem::phaseModelTable&
Foam::multiphaseInterSystem::phases()
{
return phaseModels_;
}
const Foam::phaseSystem::phasePairTable&
Foam::phaseSystem::totalPhasePairs() const
const Foam::multiphaseInterSystem::phasePairTable&
Foam::multiphaseInterSystem::totalPhasePairs() const
{
return totalPhasePairs_;
}
Foam::phaseSystem::phasePairTable& Foam::phaseSystem::totalPhasePairs()
Foam::multiphaseInterSystem::phasePairTable&
Foam::multiphaseInterSystem::totalPhasePairs()
{
return totalPhasePairs_;
}
bool Foam::phaseSystem::incompressible() const
bool Foam::multiphaseInterSystem::incompressible() const
{
forAllConstIters(phaseModels_, iter)
{
@ -967,13 +1037,13 @@ bool Foam::phaseSystem::incompressible() const
}
bool Foam::phaseSystem::incompressible(const word phaseName) const
bool Foam::multiphaseInterSystem::incompressible(const word phaseName) const
{
return phaseModels_[phaseName]->thermo().incompressible();
}
bool Foam::phaseSystem::isochoric() const
bool Foam::multiphaseInterSystem::isochoric() const
{
forAllConstIters(phaseModels_, iter)
{
@ -987,14 +1057,14 @@ bool Foam::phaseSystem::isochoric() const
}
const Foam::fvMesh& Foam::phaseSystem::mesh() const
const Foam::fvMesh& Foam::multiphaseInterSystem::mesh() const
{
return mesh_;
}
Foam::tmp<Foam::surfaceScalarField>
Foam::phaseSystem::surfaceTensionForce() const
Foam::multiphaseInterSystem::surfaceTensionForce() const
{
auto tstf = tmp<surfaceScalarField>::New
(
@ -1044,7 +1114,7 @@ Foam::phaseSystem::surfaceTensionForce() const
}
Foam::tmp<Foam::volVectorField> Foam::phaseSystem::U() const
Foam::tmp<Foam::volVectorField> Foam::multiphaseInterSystem::U() const
{
auto tstf = tmp<volVectorField>::New
(
@ -1070,13 +1140,13 @@ Foam::tmp<Foam::volVectorField> Foam::phaseSystem::U() const
Foam::tmp<Foam::volScalarField>
Foam::phaseSystem::surfaceTensionCoeff(const phasePairKey& key) const
Foam::multiphaseInterSystem::surfaceTensionCoeff(const phasePairKey& key) const
{
return surfaceTensionModels_[key]->sigma();
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::coeffs
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::coeffs
(
const word& key
) const
@ -1085,14 +1155,14 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::coeffs
}
void Foam::phaseSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
void Foam::multiphaseInterSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
{
const scalarField& Vc = mesh_.V();
scalarField& Udiag = UEqn.diag();
forAllConstIters(phaseModels_, iteri)
{
const phaseModel& phasei = iteri()();
const multiphaseInter::phaseModel& phasei = iteri()();
auto iterk = iteri;
@ -1100,7 +1170,7 @@ void Foam::phaseSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
{
if (iteri()().name() != iterk()().name())
{
const phaseModel& phasek = iterk()();
const multiphaseInter::phaseModel& phasek = iterk()();
// Phase i and k
const phasePairKey keyik
@ -1123,7 +1193,7 @@ void Foam::phaseSystem::addInterfacePorosity(fvVectorMatrix& UEqn)
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::K
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::K
(
const volScalarField& alpha1,
const volScalarField& alpha2
@ -1136,7 +1206,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::K
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface
Foam::tmp<Foam::volScalarField> Foam::multiphaseInterSystem::nearInterface
(
const volScalarField& alpha1,
const volScalarField& alpha2
@ -1150,7 +1220,8 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface
}
Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface() const
Foam::tmp<Foam::volScalarField>
Foam::multiphaseInterSystem::nearInterface() const
{
auto tnearInt = tmp<volScalarField>::New
(
@ -1188,7 +1259,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseSystem::nearInterface() const
}
Foam::tmp<Foam::surfaceVectorField> Foam::phaseSystem::nHatfv
Foam::tmp<Foam::surfaceVectorField> Foam::multiphaseInterSystem::nHatfv
(
const volScalarField& alpha1,
const volScalarField& alpha2
@ -1212,7 +1283,7 @@ Foam::tmp<Foam::surfaceVectorField> Foam::phaseSystem::nHatfv
}
Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::nHatf
Foam::tmp<Foam::surfaceScalarField> Foam::multiphaseInterSystem::nHatf
(
const volScalarField& alpha1,
const volScalarField& alpha2
@ -1223,7 +1294,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::phaseSystem::nHatf
}
bool Foam::phaseSystem::read()
bool Foam::multiphaseInterSystem::read()
{
if (regIOobject::read())
{

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -24,17 +24,17 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::phaseSystem
Foam::multiphaseInterSystem
Description
SourceFiles
phaseSystem.C
multiphaseInterSystem.C
\*---------------------------------------------------------------------------*/
#ifndef phaseSystem_H
#define phaseSystem_H
#ifndef multiphaseInterSystem_H
#define multiphaseInterSystem_H
#include "basicThermo.H"
@ -48,6 +48,8 @@ SourceFiles
#include "compressibleTransportModel.H"
#include "localMin.H"
#include "compressibleTurbulenceModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
@ -61,10 +63,10 @@ class surfaceTensionModel;
class porousModel;
/*---------------------------------------------------------------------------*\
Class phaseSystem Declaration
Class multiphaseInterSystem Declaration
\*---------------------------------------------------------------------------*/
class phaseSystem
class multiphaseInterSystem
:
public basicThermo,
public compressibleTransportModel
@ -81,7 +83,7 @@ public:
phasePairTable;
typedef HashTable<autoPtr<phaseModel>> phaseModelTable;
typedef HashTable<autoPtr<multiphaseInter::phaseModel>> phaseModelTable;
typedef HashTable<volScalarField::Internal> SuSpTable;
@ -145,6 +147,9 @@ protected:
//- Turbulent Prandt number
dimensionedScalar Prt_;
//- Turbulence model
compressibleTurbulenceModel* turb_;
// Sub Models
@ -162,7 +167,7 @@ protected:
void calcMu();
//- Generate the phases
HashTable<autoPtr<phaseModel>> generatePhaseModels
HashTable<autoPtr<multiphaseInter::phaseModel>> generatePhaseModels
(
const wordList& names
) const;
@ -170,7 +175,7 @@ protected:
//- Generate the mixture flux
tmp<surfaceScalarField> generatePhi
(
const HashTable<autoPtr<phaseModel>>& phaseModels
const HashTable<autoPtr<multiphaseInter::phaseModel>>& phaseModels
) const;
//- Generate pairs
@ -252,7 +257,7 @@ protected:
public:
//- Runtime type information
TypeName("phaseSystem");
TypeName("multiphaseInterSystem");
//- Default name of the phase properties dictionary
static const word phasePropertiesName;
@ -261,13 +266,15 @@ public:
// Constructors
//- Construct from fvMesh
phaseSystem(const fvMesh& mesh);
multiphaseInterSystem(const fvMesh& mesh);
//- Destructor
virtual ~phaseSystem();
virtual ~multiphaseInterSystem();
// Member Functions
// Energy related thermo functionaliy functions
//- Return access to the internal energy field [J/Kg]
@ -484,6 +491,47 @@ public:
virtual tmp<scalarField> nu(const label patchi) const;
// Turbulence
//- Set turbulence model
void setTurbulence(compressibleTurbulenceModel& turb)
{
turb_ = &turb;
}
//- Return pointer to turbulence model
compressibleTurbulenceModel* turbulence() const
{
return turb_;
}
//- Return the turbulent dynamic viscosity
tmp<volScalarField> mut() const;
//- Return the effective dynamic viscosity
tmp<volScalarField> muEff() const;
//- Return the turbulent kinematic viscosity
tmp<volScalarField> nut() const;
//- Return the effective kinematic viscosity
tmp<volScalarField> nuEff() const;
//- Effective thermal turbulent diffusivity for temperature
// of mixture [J/m/s/K]
tmp<volScalarField> kappaEff() const;
//- Effective thermal turbulent diffusivity for temperature
// of mixture for patch [J/m/s/K]
tmp<scalarField> kappaEff(const label patchi) const;
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
tmp<volScalarField> alphaEff() const;
//- Effective thermal turbulent diffusivity of mixture [kg/m/s]
tmp<scalarField> alphaEff(const label patchi) const;
// Phase fluxes
//- Constant access to the total flux
@ -547,7 +595,7 @@ public:
//- Calculate mass transfer for species
virtual void massSpeciesTransfer
(
const phaseModel& phase,
const multiphaseInter::phaseModel& phase,
volScalarField::Internal& Su,
volScalarField::Internal& Sp,
const word speciesName
@ -605,8 +653,8 @@ public:
template <class modelType>
const modelType& lookupSubModel
(
const phaseModel& from,
const phaseModel& to
const multiphaseInter::phaseModel& from,
const multiphaseInter::phaseModel& to
) const;
@ -672,7 +720,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
# include "phaseSystemTemplates.H"
# include "multiphaseInterSystemTemplates.H"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -28,7 +28,7 @@ License
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
template<class modelType>
void Foam::phaseSystem::createSubModels
void Foam::multiphaseInterSystem::createSubModels
(
const dictTable& modelDicts,
HashTable
@ -57,7 +57,7 @@ void Foam::phaseSystem::createSubModels
template<class modelType>
void Foam::phaseSystem::createSubModels
void Foam::multiphaseInterSystem::createSubModels
(
const dictTable& modelDicts,
const fvMesh& mesh,
@ -87,7 +87,7 @@ void Foam::phaseSystem::createSubModels
template<class modelType>
void Foam::phaseSystem::generatePairsAndSubModels
void Foam::multiphaseInterSystem::generatePairsAndSubModels
(
const word& modelName,
HashTable
@ -107,7 +107,7 @@ void Foam::phaseSystem::generatePairsAndSubModels
template<class modelType>
void Foam::phaseSystem::generatePairsAndSubModels
void Foam::multiphaseInterSystem::generatePairsAndSubModels
(
const word& modelName,
const fvMesh& mesh,
@ -128,7 +128,7 @@ void Foam::phaseSystem::generatePairsAndSubModels
template<class modelType>
void Foam::phaseSystem::generatePairsAndSubModels
void Foam::multiphaseInterSystem::generatePairsAndSubModels
(
const word& modelName,
HashTable
@ -176,7 +176,10 @@ void Foam::phaseSystem::generatePairsAndSubModels
template <class modelType>
const modelType& Foam::phaseSystem::lookupSubModel(const phasePair& key) const
const modelType& Foam::multiphaseInterSystem::lookupSubModel
(
const phasePair& key
) const
{
return
mesh().lookupObject<modelType>
@ -187,10 +190,10 @@ const modelType& Foam::phaseSystem::lookupSubModel(const phasePair& key) const
template <class modelType>
const modelType& Foam::phaseSystem::lookupSubModel
const modelType& Foam::multiphaseInterSystem::lookupSubModel
(
const phaseModel& from,
const phaseModel& to
const multiphaseInter::phaseModel& from,
const multiphaseInter::phaseModel& to
) const
{
return lookupSubModel<modelType>(orderedPhasePair(from, to));

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2020 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -47,20 +47,22 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace multiphaseInter
{
defineTypeNameAndDebug(multiphaseSystem, 0);
defineRunTimeSelectionTable(multiphaseSystem, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::multiphaseSystem::multiphaseSystem
Foam::multiphaseInter::multiphaseSystem::multiphaseSystem
(
const fvMesh& mesh
)
:
phaseSystem(mesh),
multiphaseInterSystem(mesh),
cAlphas_(),
ddtAlphaMax_(0.0),
limitedPhiAlphas_(phaseModels_.size()),
@ -71,7 +73,7 @@ Foam::multiphaseSystem::multiphaseSystem
phases_.setSize(phaseModels_.size());
forAllIters(phaseModels_, iter)
{
phaseModel& pm = iter()();
multiphaseInter::phaseModel& pm = iter()();
phases_.set(phasei++, &pm);
}
@ -80,7 +82,7 @@ Foam::multiphaseSystem::multiphaseSystem
// Initiate Su and Sp
forAllConstIters(phaseModels_, iter)
{
const phaseModel& pm = iter()();
const multiphaseInter::phaseModel& pm = iter()();
Su_.insert
(
@ -119,13 +121,13 @@ Foam::multiphaseSystem::multiphaseSystem
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
void Foam::multiphaseSystem::calculateSuSp()
void Foam::multiphaseInter::multiphaseSystem::calculateSuSp()
{
this->alphaTransfer(Su_, Sp_);
}
void Foam::multiphaseSystem::solve()
void Foam::multiphaseInter::multiphaseSystem::solve()
{
const dictionary& alphaControls = mesh_.solverDict("alpha");
label nAlphaSubCycles(alphaControls.get<label>("nAlphaSubCycles"));
@ -167,7 +169,7 @@ void Foam::multiphaseSystem::solve()
}
void Foam::multiphaseSystem::solveAlphas()
void Foam::multiphaseInter::multiphaseSystem::solveAlphas()
{
const dictionary& alphaControls = mesh_.solverDict("alpha");
@ -196,7 +198,7 @@ void Foam::multiphaseSystem::solveAlphas()
for (int acorr=0; acorr<nAlphaCorr; acorr++)
{
label phasei = 0;
for (phaseModel& phase1 : phases_)
for (multiphaseInter::phaseModel& phase1 : phases_)
{
const volScalarField& alpha1 = phase1;
@ -217,7 +219,7 @@ void Foam::multiphaseSystem::solveAlphas()
surfaceScalarField& phiAlphaCorr = phiAlphaCorrs[phasei];
for (phaseModel& phase2 : phases_)
for (multiphaseInter::phaseModel& phase2 : phases_)
{
const volScalarField& alpha2 = phase2;
@ -277,7 +279,7 @@ void Foam::multiphaseSystem::solveAlphas()
}
// Set Su and Sp to zero
for (const phaseModel& phase : phases_)
for (const multiphaseInter::phaseModel& phase : phases_)
{
Su_[phase.name()] = dimensionedScalar("Su", dimless/dimTime, Zero);
Sp_[phase.name()] = dimensionedScalar("Sp", dimless/dimTime, Zero);
@ -293,7 +295,7 @@ void Foam::multiphaseSystem::solveAlphas()
// Limit phiAlphaCorr on each phase
phasei = 0;
for (phaseModel& phase : phases_)
for (multiphaseInter::phaseModel& phase : phases_)
{
volScalarField& alpha1 = phase;
@ -333,7 +335,7 @@ void Foam::multiphaseSystem::solveAlphas()
);
phasei = 0;
for (phaseModel& phase : phases_)
for (multiphaseInter::phaseModel& phase : phases_)
{
volScalarField& alpha1 = phase;
@ -398,7 +400,7 @@ void Foam::multiphaseSystem::solveAlphas()
// Reset rhoPhi
rhoPhi_ = dimensionedScalar("rhoPhi", dimMass/dimTime, Zero);
for (phaseModel& phase : phases_)
for (multiphaseInter::phaseModel& phase : phases_)
{
volScalarField& alpha1 = phase;
sumAlpha += alpha1;
@ -415,7 +417,7 @@ void Foam::multiphaseSystem::solveAlphas()
volScalarField sumCorr(1.0 - sumAlpha);
for (phaseModel& phase : phases_)
for (multiphaseInter::phaseModel& phase : phases_)
{
volScalarField& alpha = phase;
alpha += alpha*sumCorr;
@ -431,37 +433,43 @@ void Foam::multiphaseSystem::solveAlphas()
}
const Foam::UPtrList<Foam::phaseModel>& Foam::multiphaseSystem::phases() const
const Foam::UPtrList<Foam::multiphaseInter::phaseModel>&
Foam::multiphaseInter::multiphaseSystem::phases() const
{
return phases_;
}
Foam::UPtrList<Foam::phaseModel>& Foam::multiphaseSystem::phases()
Foam::UPtrList<Foam::multiphaseInter::phaseModel>&
Foam::multiphaseInter::multiphaseSystem::phases()
{
return phases_;
}
const Foam::phaseModel& Foam::multiphaseSystem::phase(const label i) const
const Foam::multiphaseInter::phaseModel&
Foam::multiphaseInter::multiphaseSystem::phase(const label i) const
{
return phases_[i];
}
Foam::phaseModel& Foam::multiphaseSystem::phase(const label i)
Foam::multiphaseInter::phaseModel&
Foam::multiphaseInter::multiphaseSystem::phase(const label i)
{
return phases_[i];
}
Foam::dimensionedScalar Foam::multiphaseSystem::ddtAlphaMax() const
Foam::dimensionedScalar
Foam::multiphaseInter::multiphaseSystem::ddtAlphaMax() const
{
return ddtAlphaMax_;
}
Foam::scalar Foam::multiphaseSystem::maxDiffNo() const
Foam::scalar
Foam::multiphaseInter::multiphaseSystem::maxDiffNo() const
{
auto iter = phaseModels_.cbegin();
@ -476,26 +484,28 @@ Foam::scalar Foam::multiphaseSystem::maxDiffNo() const
}
const Foam::multiphaseSystem::compressionFluxTable&
Foam::multiphaseSystem::limitedPhiAlphas() const
const Foam::multiphaseInter::multiphaseSystem::compressionFluxTable&
Foam::multiphaseInter::multiphaseSystem::limitedPhiAlphas() const
{
return limitedPhiAlphas_;
}
Foam::multiphaseSystem::SuSpTable& Foam::multiphaseSystem::Su()
Foam::multiphaseInter::multiphaseSystem::SuSpTable&
Foam::multiphaseInter::multiphaseSystem::Su()
{
return Su_;
}
Foam::multiphaseSystem::SuSpTable& Foam::multiphaseSystem::Sp()
Foam::multiphaseInter::multiphaseSystem::SuSpTable&
Foam::multiphaseInter::multiphaseSystem::Sp()
{
return Sp_;
}
bool Foam::multiphaseSystem::read()
bool Foam::multiphaseInter::multiphaseSystem::read()
{
return true;
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2020 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -37,7 +37,7 @@ SourceFiles
#ifndef multiphaseSystem_H
#define multiphaseSystem_H
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "UPtrList.H"
#include "phasePairKey.H"
@ -45,14 +45,15 @@ SourceFiles
namespace Foam
{
namespace multiphaseInter
{
/*---------------------------------------------------------------------------*\
Class multiphaseSystem Declaration
\*---------------------------------------------------------------------------*/
class multiphaseSystem
:
public phaseSystem
public multiphaseInterSystem
{
protected:
@ -170,6 +171,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
} // End namespace multiphaseInter
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,7 +29,8 @@ License
// * * * * * * * * * * * * * * * * Selector * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::multiphaseSystem> Foam::multiphaseSystem::New
Foam::autoPtr<Foam::multiphaseInter::multiphaseSystem>
Foam::multiphaseInter::multiphaseSystem::New
(
const fvMesh& mesh
)
@ -64,7 +65,7 @@ Foam::autoPtr<Foam::multiphaseSystem> Foam::multiphaseSystem::New
) << exit(FatalIOError);
}
return autoPtr<multiphaseSystem>(ctorPtr(mesh));
return autoPtr<multiphaseInter::multiphaseSystem>(ctorPtr(mesh));
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +27,7 @@ License
#include "addToRunTimeSelectionTable.H"
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "multiphaseSystem.H"
#include "MassTransferPhaseSystem.H"
@ -36,7 +36,8 @@ License
namespace Foam
{
typedef
MassTransferPhaseSystem<multiphaseSystem> massTransferMultiphaseSystem;
MassTransferPhaseSystem
<multiphaseInter::multiphaseSystem> massTransferMultiphaseSystem;
addNamedToRunTimeSelectionTable
(

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +27,7 @@ License
#include "MovingPhaseModel.H"
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "fixedValueFvPatchFields.H"
#include "slipFvPatchFields.H"
@ -46,7 +46,7 @@ License
template<class BasePhaseModel>
Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
)
:
@ -57,7 +57,11 @@ Foam::MovingPhaseModel<BasePhaseModel>::MovingPhaseModel
(
IOobject
(
IOobject::groupName("alphaPhi", phaseModel::name()),
IOobject::groupName
(
"alphaPhi",
multiphaseInter::phaseModel::name()
),
fluid.mesh().time().timeName(),
fluid.mesh()
),
@ -124,7 +128,7 @@ diffNo() const
(
IOobject
(
IOobject::groupName("diffNo", phaseModel::name()),
IOobject::groupName("diffNo", multiphaseInter::phaseModel::name()),
U_.mesh().time().timeName(),
U_.mesh()
),

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -75,7 +75,7 @@ public:
MovingPhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,8 +27,7 @@ License
#include "MultiComponentPhaseModel.H"
#include "phaseSystem.H"
#include "multiphaseSystem.H"
#include "multiphaseInterSystem.H"
#include "fvmDdt.H"
#include "fvmDiv.H"
#include "fvmSup.H"
@ -47,7 +46,7 @@ template<class BasePhaseModel, class phaseThermo>
Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::
MultiComponentPhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
)
:
@ -221,7 +220,10 @@ void Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::solveYi
surfaceScalarField phir(0.0*phi);
forAllConstIter(phaseSystem::phaseModelTable,this->fluid().phases(),iter2)
forAllConstIter
(
multiphaseInterSystem::phaseModelTable,this->fluid().phases(),iter2
)
{
const volScalarField& alpha2 = iter2()();
if (&alpha2 == &alpha1)
@ -272,7 +274,9 @@ void Foam::MultiComponentPhaseModel<BasePhaseModel, phaseThermo>::solveYi
forAllConstIter
(
phaseSystem::phaseModelTable, this->fluid().phases(), iter2
multiphaseInterSystem::phaseModelTable,
this->fluid().phases(),
iter2
)
{
//const volScalarField& alpha2 = iter2()().oldTime();

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -89,7 +89,7 @@ public:
MultiComponentPhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2020 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -26,7 +26,7 @@ License
\*---------------------------------------------------------------------------*/
#include "PurePhaseModel.H"
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "basicThermo.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -34,7 +34,7 @@ License
template<class BasePhaseModel, class phaseThermo>
Foam::PurePhaseModel<BasePhaseModel, phaseThermo>::PurePhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
)
:

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -47,7 +47,7 @@ SourceFiles
namespace Foam
{
class phaseSystem;
class multiphaseInterSystem;
/*---------------------------------------------------------------------------*\
Class PurePhaseModel Declaration
@ -75,7 +75,7 @@ public:
PurePhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +27,7 @@ License
#include "StaticPhaseModel.H"
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
#include "fvcDdt.H"
#include "fvcDiv.H"
@ -39,7 +39,7 @@ License
template<class BasePhaseModel>
Foam::StaticPhaseModel<BasePhaseModel>::StaticPhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
)
:
@ -49,7 +49,7 @@ Foam::StaticPhaseModel<BasePhaseModel>::StaticPhaseModel
(
IOobject
(
IOobject::groupName("phi", phaseModel::name()),
IOobject::groupName("phi", multiphaseInter::phaseModel::name()),
fluid.mesh().time().timeName(),
fluid.mesh()
),
@ -60,7 +60,11 @@ Foam::StaticPhaseModel<BasePhaseModel>::StaticPhaseModel
(
IOobject
(
IOobject::groupName("alphaPhi", phaseModel::name()),
IOobject::groupName
(
"alphaPhi",
multiphaseInter::phaseModel::name()
),
fluid.mesh().time().timeName(),
fluid.mesh()
),
@ -87,7 +91,7 @@ Foam::StaticPhaseModel<BasePhaseModel>::phi() const
(
IOobject
(
IOobject::groupName("phi", phaseModel::name()),
IOobject::groupName("phi", multiphaseInter::phaseModel::name()),
U_.mesh().time().timeName(),
U_.mesh()
),
@ -110,19 +114,20 @@ template<class BasePhaseModel>
Foam::tmp<Foam::surfaceScalarField>
Foam::StaticPhaseModel<BasePhaseModel>::alphaPhi() const
{
return tmp<surfaceScalarField>
(
new surfaceScalarField
return tmp<surfaceScalarField>::New
(
IOobject
(
IOobject::groupName("alphaPhi", phaseModel::name()),
IOobject::groupName
(
"alphaPhi",
multiphaseInter::phaseModel::name()
),
U_.mesh().time().timeName(),
U_.mesh()
),
U_.mesh(),
dimensionedScalar(dimensionSet(0, 3, -1, 0, 0), Zero)
)
);
}
@ -140,19 +145,16 @@ template<class BasePhaseModel>
Foam::tmp<Foam::volVectorField>
Foam::StaticPhaseModel<BasePhaseModel>::U() const
{
return tmp<volVectorField>
(
new volVectorField
return tmp<volVectorField>::New
(
IOobject
(
IOobject::groupName("U", phaseModel::name()),
IOobject::groupName("U", multiphaseInter::phaseModel::name()),
U_.mesh().time().timeName(),
U_.mesh()
),
U_.mesh(),
dimensionedVector(dimVelocity, Zero)
)
);
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -71,7 +71,7 @@ public:
StaticPhaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -46,15 +46,17 @@ License
> \
> \
Name; \
\
namespace multiphaseInter \
{ \
addNamedToRunTimeSelectionTable \
( \
phaseModel, \
Name, \
phaseSystem, \
multiphaseInterSystem, \
Name \
); \
}
} \
} \
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -26,21 +26,24 @@ License
\*---------------------------------------------------------------------------*/
#include "phaseModel.H"
#include "phaseSystem.H"
#include "multiphaseInterSystem.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace multiphaseInter
{
defineTypeNameAndDebug(phaseModel, 0);
defineRunTimeSelectionTable(phaseModel, phaseSystem);
defineRunTimeSelectionTable(phaseModel, multiphaseInterSystem);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::phaseModel::phaseModel
Foam::multiphaseInter::phaseModel::phaseModel
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
)
:
@ -64,10 +67,10 @@ Foam::phaseModel::phaseModel
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::phaseModel>
Foam::phaseModel::New
Foam::autoPtr<Foam::multiphaseInter::phaseModel>
Foam::multiphaseInter::phaseModel::New
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
)
{
@ -78,7 +81,7 @@ Foam::phaseModel::New
Info<< "Selecting phaseModel for "
<< phaseName << ": " << modelType << endl;
auto* ctorPtr = phaseSystemConstructorTable(modelType);
auto* ctorPtr = multiphaseInterSystemConstructorTable(modelType);
if (!ctorPtr)
{
@ -87,7 +90,7 @@ Foam::phaseModel::New
dict,
"phaseModel",
modelType,
*phaseSystemConstructorTablePtr_
*multiphaseInterSystemConstructorTablePtr_
) << exit(FatalIOError);
}
@ -97,49 +100,51 @@ Foam::phaseModel::New
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
const Foam::phaseSystem& Foam::phaseModel::fluid() const
const Foam::multiphaseInterSystem&
Foam::multiphaseInter::phaseModel::fluid() const
{
return fluid_;
}
void Foam::phaseModel::correct()
void Foam::multiphaseInter::phaseModel::correct()
{
thermo().correct();
}
void Foam::phaseModel::correctTurbulence()
void Foam::multiphaseInter::phaseModel::correctTurbulence()
{
// do nothing
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::rho() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::rho() const
{
return thermo().rho();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::rho(const label patchI) const
Foam::tmp<Foam::scalarField>
Foam::multiphaseInter::phaseModel::rho(const label patchI) const
{
return thermo().rho(patchI);
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::hc() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::hc() const
{
return thermo().hc();
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::Cp() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::Cp() const
{
return thermo().Cp();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::Cp
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::Cp
(
const scalarField& p,
const scalarField& T,
@ -150,13 +155,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::Cp
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::Cv() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::Cv() const
{
return thermo().Cv();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::Cv
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::Cv
(
const scalarField& p,
const scalarField& T,
@ -167,13 +172,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::Cv
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::gamma() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::gamma() const
{
return thermo().gamma();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::gamma
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::gamma
(
const scalarField& p,
const scalarField& T,
@ -184,13 +189,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::gamma
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::Cpv() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::Cpv() const
{
return thermo().Cpv();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::Cpv
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::Cpv
(
const scalarField& p,
const scalarField& T,
@ -201,13 +206,13 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::Cpv
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::CpByCpv() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::CpByCpv() const
{
return thermo().CpByCpv();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::CpByCpv
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::CpByCpv
(
const scalarField& p,
const scalarField& T,
@ -218,43 +223,47 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::CpByCpv
}
const Foam::volScalarField& Foam::phaseModel::alpha() const
const Foam::volScalarField& Foam::multiphaseInter::phaseModel::alpha() const
{
return thermo().alpha();
}
const Foam::scalarField& Foam::phaseModel::alpha(const label patchI) const
const Foam::scalarField&
Foam::multiphaseInter::phaseModel::alpha(const label patchI) const
{
return thermo().alpha(patchI);
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::kappa() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::kappa() const
{
return thermo().kappa();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::kappa(const label patchI) const
Foam::tmp<Foam::scalarField>
Foam::multiphaseInter::phaseModel::kappa(const label patchI) const
{
return thermo().kappa(patchI);
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::alphahe() const
Foam::tmp<Foam::volScalarField>
Foam::multiphaseInter::phaseModel::alphahe() const
{
return thermo().alphahe();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::alphahe(const label patchI) const
Foam::tmp<Foam::scalarField>
Foam::multiphaseInter::phaseModel::alphahe(const label patchI) const
{
return thermo().alphahe(patchI);
}
Foam::tmp<Foam::volScalarField>Foam::phaseModel::kappaEff
Foam::tmp<Foam::volScalarField>Foam::multiphaseInter::phaseModel::kappaEff
(
const volScalarField& kappat
) const
@ -265,7 +274,7 @@ Foam::tmp<Foam::volScalarField>Foam::phaseModel::kappaEff
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::kappaEff
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::kappaEff
(
const scalarField& kappat,
const label patchI
@ -275,7 +284,7 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::kappaEff
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::alphaEff
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::alphaEff
(
const volScalarField& alphat
) const
@ -284,7 +293,7 @@ Foam::tmp<Foam::volScalarField> Foam::phaseModel::alphaEff
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::alphaEff
Foam::tmp<Foam::scalarField> Foam::multiphaseInter::phaseModel::alphaEff
(
const scalarField& alphat,
const label patchI
@ -294,31 +303,33 @@ Foam::tmp<Foam::scalarField> Foam::phaseModel::alphaEff
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::mu() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::mu() const
{
return thermo().mu();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::mu(const label patchi) const
Foam::tmp<Foam::scalarField>
Foam::multiphaseInter::phaseModel::mu(const label patchi) const
{
return thermo().mu(patchi);
}
Foam::tmp<Foam::volScalarField> Foam::phaseModel::nu() const
Foam::tmp<Foam::volScalarField> Foam::multiphaseInter::phaseModel::nu() const
{
return thermo().nu();
}
Foam::tmp<Foam::scalarField> Foam::phaseModel::nu(const label patchi) const
Foam::tmp<Foam::scalarField>
Foam::multiphaseInter::phaseModel::nu(const label patchi) const
{
return thermo().nu(patchi);
}
bool Foam::phaseModel::read()
bool Foam::multiphaseInter::phaseModel::read()
{
return true;
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2021 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,8 +33,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef phaseModel_H
#define phaseModel_H
#ifndef Foam_multiphaseInter_phaseModel_H
#define Foam_multiphaseInter_phaseModel_H
#include "dictionary.H"
#include "dimensionedScalar.H"
@ -50,8 +50,10 @@ namespace Foam
{
// Forward Declarations
class phaseSystem;
class multiphaseInterSystem;
namespace multiphaseInter
{
/*---------------------------------------------------------------------------*\
Class phaseModel Declaration
\*---------------------------------------------------------------------------*/
@ -62,8 +64,8 @@ class phaseModel
{
// Private Data
//- Reference to the phaseSystem to which this phase belongs
const phaseSystem& fluid_;
//- Reference to the multiphaseInterSystem to which this phase belongs
const multiphaseInterSystem& fluid_;
//- Name of phase
word name_;
@ -79,9 +81,9 @@ public:
(
autoPtr,
phaseModel,
phaseSystem,
multiphaseInterSystem,
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
),
(fluid, phaseName)
@ -90,8 +92,8 @@ public:
// Constructors
//- Construct from phaseSystem and phaseName
phaseModel(const phaseSystem& fluid, const word& phaseName);
//- Construct from multiphaseInterSystem and phaseName
phaseModel(const multiphaseInterSystem& fluid, const word& phaseName);
//- Destructor
@ -102,7 +104,7 @@ public:
static autoPtr<phaseModel> New
(
const phaseSystem& fluid,
const multiphaseInterSystem& fluid,
const word& phaseName
);
@ -116,7 +118,7 @@ public:
}
//- Return the system to which this phase belongs
const phaseSystem& fluid() const;
const multiphaseInterSystem& fluid() const;
//- Correct phase thermo
virtual void correct();
@ -325,6 +327,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace multiphaseInter
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -42,7 +42,7 @@ makePhaseTypes
(
MovingPhaseModel,
PurePhaseModel,
phaseModel,
multiphaseInter::phaseModel,
rhoThermo,
pureMovingPhaseModel // Name of the phase type
);
@ -51,7 +51,7 @@ makePhaseTypes
(
StaticPhaseModel,
PurePhaseModel,
phaseModel,
multiphaseInter::phaseModel,
rhoThermo,
pureStaticPhaseModel
);
@ -60,7 +60,7 @@ makePhaseTypes
(
StaticPhaseModel,
PurePhaseModel,
phaseModel,
multiphaseInter::phaseModel,
solidThermo,
pureStaticSolidPhaseModel
);
@ -69,7 +69,7 @@ makePhaseTypes
(
MovingPhaseModel,
MultiComponentPhaseModel,
phaseModel,
multiphaseInter::phaseModel,
rhoReactionThermo,
multiComponentMovingPhaseModel
);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,8 +31,8 @@ License
Foam::orderedPhasePair::orderedPhasePair
(
const phaseModel& from,
const phaseModel& to
const multiphaseInter::phaseModel& from,
const multiphaseInter::phaseModel& to
)
:
phasePair(from, to, true)
@ -41,13 +41,13 @@ Foam::orderedPhasePair::orderedPhasePair
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
const Foam::phaseModel& Foam::orderedPhasePair::from() const
const Foam::multiphaseInter::phaseModel& Foam::orderedPhasePair::from() const
{
return phase1();
}
const Foam::phaseModel& Foam::orderedPhasePair::to() const
const Foam::multiphaseInter::phaseModel& Foam::orderedPhasePair::to() const
{
return phase2();
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -58,8 +58,8 @@ public:
//- Construct from two phases and gravity
orderedPhasePair
(
const phaseModel& from,
const phaseModel& to
const multiphaseInter::phaseModel& from,
const multiphaseInter::phaseModel& to
);
@ -70,10 +70,10 @@ public:
// Member Functions
//- Dispersed phase
virtual const phaseModel& from() const;
virtual const multiphaseInter::phaseModel& from() const;
//- Continuous phase
virtual const phaseModel& to() const;
virtual const multiphaseInter::phaseModel& to() const;
//- Pair name
virtual word name() const;

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,8 +33,8 @@ License
Foam::phasePair::phasePair
(
const phaseModel& phase1,
const phaseModel& phase2,
const multiphaseInter::phaseModel& phase1,
const multiphaseInter::phaseModel& phase2,
const bool ordered
)
:
@ -46,7 +46,7 @@ Foam::phasePair::phasePair
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
const Foam::phaseModel& Foam::phasePair::from() const
const Foam::multiphaseInter::phaseModel& Foam::phasePair::from() const
{
FatalErrorInFunction
<< "Requested from phase from an unordered pair."
@ -56,7 +56,7 @@ const Foam::phaseModel& Foam::phasePair::from() const
}
const Foam::phaseModel& Foam::phasePair::to() const
const Foam::multiphaseInter::phaseModel& Foam::phasePair::to() const
{
FatalErrorInFunction
<< "Requested to phase from an unordered pair."

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -58,10 +58,10 @@ class phasePair
// Private data
//- Phase 1
const phaseModel& phase1_;
const multiphaseInter::phaseModel& phase1_;
//- Phase 2
const phaseModel& phase2_;
const multiphaseInter::phaseModel& phase2_;
public:
@ -71,8 +71,8 @@ public:
//- Construct from two phases
phasePair
(
const phaseModel& phase1,
const phaseModel& phase2,
const multiphaseInter::phaseModel& phase1,
const multiphaseInter::phaseModel& phase2,
const bool ordered = false
);
@ -84,10 +84,10 @@ public:
// Member Functions
//- From phase
virtual const phaseModel& from() const;
virtual const multiphaseInter::phaseModel& from() const;
//- To phase
virtual const phaseModel& to() const;
virtual const multiphaseInter::phaseModel& to() const;
//- Pair name
virtual word name() const;
@ -96,10 +96,10 @@ public:
// Access
// Phase 1
inline const phaseModel& phase1() const;
inline const multiphaseInter::phaseModel& phase1() const;
// Phase 2
inline const phaseModel& phase2() const;
inline const multiphaseInter::phaseModel& phase2() const;
};

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,13 +27,13 @@ License
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
inline const Foam::phaseModel& Foam::phasePair::phase1() const
inline const Foam::multiphaseInter::phaseModel& Foam::phasePair::phase1() const
{
return phase1_;
}
inline const Foam::phaseModel& Foam::phasePair::phase2() const
inline const Foam::multiphaseInter::phaseModel& Foam::phasePair::phase2() const
{
return phase2_;
}

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2019 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +34,8 @@ License
namespace Foam
{
namespace reactingMultiphaseEuler
{
alphaContactAngleFvPatchScalarField::interfaceThetaProps::interfaceThetaProps
(
@ -142,6 +145,7 @@ makePatchTypeField
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace reactingMultiphaseEuler
} // End namespace Foam
// ************************************************************************* //

View File

@ -69,8 +69,8 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef alphaContactAngleFvPatchScalarField_H
#define alphaContactAngleFvPatchScalarField_H
#ifndef Foam_reactingMultiphaseEuler_alphaContactAngleFvPatchScalarField_H
#define Foam_reactingMultiphaseEuler_alphaContactAngleFvPatchScalarField_H
#include "zeroGradientFvPatchFields.H"
#include "multiphaseSystem.H"
@ -79,6 +79,8 @@ SourceFiles
namespace Foam
{
namespace reactingMultiphaseEuler
{
/*---------------------------------------------------------------------------*\
Class alphaContactAngleFvPatch Declaration
@ -246,6 +248,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace reactingMultiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2018 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,6 +34,8 @@ License
namespace Foam
{
namespace reactingMultiphaseEuler
{
namespace surfaceTensionModels
{
defineTypeNameAndDebug(constantSurfaceTensionCoefficient, 0);
@ -44,12 +47,12 @@ namespace surfaceTensionModels
);
}
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::surfaceTensionModels::constantSurfaceTensionCoefficient::
constantSurfaceTensionCoefficient
Foam::reactingMultiphaseEuler::surfaceTensionModels::
constantSurfaceTensionCoefficient::constantSurfaceTensionCoefficient
(
const dictionary& dict,
const phasePair& pair,
@ -63,15 +66,16 @@ constantSurfaceTensionCoefficient
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::surfaceTensionModels::constantSurfaceTensionCoefficient::
~constantSurfaceTensionCoefficient()
Foam::reactingMultiphaseEuler::surfaceTensionModels::
constantSurfaceTensionCoefficient::~constantSurfaceTensionCoefficient()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField>
Foam::surfaceTensionModels::constantSurfaceTensionCoefficient::sigma() const
Foam::reactingMultiphaseEuler::surfaceTensionModels::
constantSurfaceTensionCoefficient::sigma() const
{
const fvMesh& mesh(this->pair_.phase1().mesh());

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2018 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -43,6 +44,8 @@ SourceFiles
namespace Foam
{
namespace reactingMultiphaseEuler
{
namespace surfaceTensionModels
{
@ -91,6 +94,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace surfaceTensionModels
} // End namespace reactingMultiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2018 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
Copyright (C) 2019-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -32,17 +32,21 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace reactingMultiphaseEuler
{
defineTypeNameAndDebug(surfaceTensionModel, 0);
defineRunTimeSelectionTable(surfaceTensionModel, dictionary);
}
}
const Foam::dimensionSet Foam::surfaceTensionModel::dimSigma(1, 0, -2, 0, 0);
const Foam::dimensionSet
Foam::reactingMultiphaseEuler::surfaceTensionModel::dimSigma(1, 0, -2, 0, 0);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::surfaceTensionModel::surfaceTensionModel
Foam::reactingMultiphaseEuler::surfaceTensionModel::surfaceTensionModel
(
const dictionary& dict,
const phasePair& pair,
@ -67,8 +71,8 @@ Foam::surfaceTensionModel::surfaceTensionModel
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::surfaceTensionModel>
Foam::surfaceTensionModel::New
Foam::autoPtr<Foam::reactingMultiphaseEuler::surfaceTensionModel>
Foam::reactingMultiphaseEuler::surfaceTensionModel::New
(
const dictionary& dict,
const phasePair& pair
@ -98,7 +102,7 @@ Foam::surfaceTensionModel::New
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
bool Foam::surfaceTensionModel::writeData(Ostream& os) const
bool Foam::reactingMultiphaseEuler::surfaceTensionModel::writeData(Ostream& os) const
{
return os.good();
}

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2018 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,6 +49,9 @@ namespace Foam
// Forward Declarations
class phasePair;
namespace reactingMultiphaseEuler
{
/*---------------------------------------------------------------------------*\
Class surfaceTensionModel Declaration
\*---------------------------------------------------------------------------*/
@ -128,6 +131,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace reactingMultiphaseEuler
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2013-2019 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -394,10 +394,20 @@ void Foam::multiphaseSystem::correctContactAngle
forAll(boundary, patchi)
{
if (isA<alphaContactAngleFvPatchScalarField>(gbf[patchi]))
if
(
isA<reactingMultiphaseEuler::alphaContactAngleFvPatchScalarField>
(
gbf[patchi]
)
)
{
const alphaContactAngleFvPatchScalarField& acap =
refCast<const alphaContactAngleFvPatchScalarField>(gbf[patchi]);
const auto& acap =
refCast
<
const reactingMultiphaseEuler::
alphaContactAngleFvPatchScalarField
>(gbf[patchi]);
vectorField& nHatPatch = nHatb[patchi];
@ -407,8 +417,8 @@ void Foam::multiphaseSystem::correctContactAngle
/mesh_.magSf().boundaryField()[patchi]
);
alphaContactAngleFvPatchScalarField::thetaPropsTable::
const_iterator tp =
reactingMultiphaseEuler::alphaContactAngleFvPatchScalarField::
thetaPropsTable::const_iterator tp =
acap.thetaProps()
.find(phasePairKey(phase1.name(), phase2.name()));

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2018 OpenFOAM Foundation
Copyright (C) 2018 OpenCFD Ltd.
Copyright (C) 2018-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -170,7 +170,8 @@ Foam::tmp<Foam::volScalarField> Foam::phasePair::EoH2() const
Foam::tmp<Foam::volScalarField> Foam::phasePair::sigma() const
{
return
phase1().fluid().lookupSubModel<surfaceTensionModel>
phase1().fluid().
lookupSubModel<reactingMultiphaseEuler::surfaceTensionModel>
(
phasePair(phase1(), phase2())
).sigma();

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2018 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
Copyright (C) 2019-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -326,9 +326,13 @@ Foam::phaseSystem::sigma(const phasePairKey& key) const
{
return volScalarField::New
(
surfaceTensionModel::typeName + ":sigma",
reactingMultiphaseEuler::surfaceTensionModel::typeName + ":sigma",
this->mesh_,
dimensionedScalar("zero", surfaceTensionModel::dimSigma, 0)
dimensionedScalar
(
reactingMultiphaseEuler::surfaceTensionModel::dimSigma,
0
)
);
}
}

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015-2019 OpenFOAM Foundation
Copyright (C) 2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -60,9 +61,12 @@ namespace Foam
class blendingMethod;
template<class modelType> class BlendedInterfacialModel;
class surfaceTensionModel;
class aspectRatioModel;
namespace reactingMultiphaseEuler
{
class surfaceTensionModel;
}
/*---------------------------------------------------------------------------*\
Class phaseSystem Declaration
\*---------------------------------------------------------------------------*/
@ -104,7 +108,7 @@ protected:
typedef
HashTable
<
autoPtr<surfaceTensionModel>,
autoPtr<reactingMultiphaseEuler::surfaceTensionModel>,
phasePairKey,
phasePairKey::hash
>

View File

@ -6,7 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2019 OpenFOAM Foundation
Copyright (C) 2020 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -1209,7 +1209,7 @@ Foam::diameterModels::populationBalanceModel::sigmaWithContinuousPhase
) const
{
return
fluid_.lookupSubModel<surfaceTensionModel>
fluid_.lookupSubModel<reactingMultiphaseEuler::surfaceTensionModel>
(
phasePair(dispersedPhase, continuousPhase_)
).sigma();