diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
index c9994fb8dc..ecb7b82c86 100644
--- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
@@ -228,6 +228,10 @@ TDNBModels = $(wallBoilingSubModels)/TDNBModels
$(TDNBModels)/TDNBModel/TDNBModel.C
$(TDNBModels)/Schroeder/Schroeder.C
+nucleateFluxModels = $(wallBoilingSubModels)/nucleateFluxModels
+$(nucleateFluxModels)/nucleateFluxModel/nucleateFluxModel.C
+$(nucleateFluxModels)/Kutadeladze/Kutadeladze.C
+
/* Turbulence */
turbulence/multiphaseCompressibleTurbulenceModels.C
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.C
new file mode 100644
index 0000000000..2b0f4edfa7
--- /dev/null
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.C
@@ -0,0 +1,135 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | www.openfoam.com
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ Copyright (C) 2021 OpenCFD Ltd
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "Kutadeladze.H"
+#include "addToRunTimeSelectionTable.H"
+#include "uniformDimensionedFields.H"
+#include "phasePairKey.H"
+#include "phaseSystem.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallBoilingModels
+{
+namespace nucleateFluxModels
+{
+ defineTypeNameAndDebug(Kutadeladze, 0);
+ addToRunTimeSelectionTable
+ (
+ nucleateFluxModel,
+ Kutadeladze,
+ dictionary
+ );
+}
+}
+}
+
+// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
+
+Foam::wallBoilingModels::nucleateFluxModels::Kutadeladze::Kutadeladze
+(
+ const dictionary& dict
+)
+:
+ nucleateFluxModel(),
+ Cn_(dict.getOrDefault("Cn", 5.66e-10)),
+ an_(dict.getOrDefault("an", 2.5)),
+ bn_(dict.getOrDefault("bn", 1)),
+ n_(dict.getOrDefault("n", 1))
+{}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+Foam::tmp
+Foam::wallBoilingModels::nucleateFluxModels::Kutadeladze::qNucleate
+(
+ const phaseModel& liquid,
+ const phaseModel& vapor,
+ const label patchi,
+ const scalarField& Tl,
+ const scalarField& Tsatw,
+ const scalarField& L
+) const
+{
+ const auto& p = liquid.mesh().lookupObject("p");
+ const scalarField& pb = p.boundaryField()[patchi];
+
+ const labelUList& cells = liquid.mesh().boundary()[patchi].faceCells();
+
+ tmp trhoVapor = vapor.thermo().rhoEoS(Tsatw, pb, cells);
+ const scalarField& rhoVapor = trhoVapor.ref();
+
+ tmp trhoLiq = liquid.thermo().rhoEoS(Tsatw, pb, cells);
+ const scalarField& rhoLiq = trhoLiq.ref();
+
+ const phasePairKey pair(liquid.name(), vapor.name());
+ const scalarField sigma
+ (
+ liquid.fluid().sigma(pair)().boundaryField()[patchi]
+ );
+
+ const fvPatchScalarField& Tw =
+ liquid.thermo().T().boundaryField()[patchi];
+
+ const scalarField kappaLiquid(liquid.kappa(patchi));
+
+ tmp tCpliq = liquid.thermo().Cp();
+ const volScalarField& Cpliq = tCpliq();
+ const scalarField& Cpliquid = Cpliq.boundaryField()[patchi];
+
+ const scalarField muLiquid(liquid.mu(patchi));
+
+ const scalarField deltaTsub
+ (
+ pow(max((Tw-Tsatw), scalar(0)), an_)
+ );
+
+ return
+ Cn_*kappaLiquid*pow(Cpliquid, 1.5)*pow(rhoLiq,1.28)*pow(pb,1.75)
+ *deltaTsub
+ /
+ (pow(muLiquid, 0.625)*pow(sigma,0.9)*pow(L,1.5)*pow(rhoVapor,1.5));
+}
+
+
+void Foam::wallBoilingModels::nucleateFluxModels::Kutadeladze::write
+(
+ Ostream& os
+) const
+{
+ nucleateFluxModel::write(os);
+ os.writeEntry("Cn", Cn_);
+ os.writeEntry("an", an_);
+ os.writeEntry("bn", bn_);
+ os.writeEntry("n", n_);
+}
+
+
+// ************************************************************************* //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.H
new file mode 100644
index 0000000000..079113692f
--- /dev/null
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.H
@@ -0,0 +1,160 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | www.openfoam.com
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ Copyright (C) 2021 OpenCFD Ltd
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallBoilingModels::nucleateFluxModels::Kutadeladze
+
+Description
+ Nucleate flux sub-cooling correlation
+
+ References:
+ \verbatim
+ Wang, L., Li, Y., Zhang, F., Xie, F., & Ma, Y. (2016).
+ Correlations for calculating heat transfer of hydrogen pool boiling.
+ International Journal of Hydrogen Energy, 41(38), 17118-17131.
+ \endverbatim
+
+Usage
+ Example of the model specification:
+ \verbatim
+ nucleateFluxModel
+ {
+ // Mandatory entries
+ type Kutadeladze;
+
+ // Optional entries
+ Cn ;
+ an ;
+ bn ;
+ n ;
+ }
+ \endverbatim
+
+ where the entries mean:
+ \table
+ Property | Description | Type | Reqd | Deflt
+ type | Type name: Kutadeladze | word | yes | -
+ Cn | Model coefficient | scalar | no | 5.66e-10
+ an | Coefficient for deltaT sub-cooling | scalar | no | 2.5
+ bn | Exponent for n | scalar | no | 1
+ n | Nucleating boiling paramemeter | scalar | no | 1
+ \endtable
+
+SourceFiles
+ Kutadeladze.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef Kutadeladze_H
+#define Kutadeladze_H
+
+#include "nucleateFluxModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallBoilingModels
+{
+namespace nucleateFluxModels
+{
+
+/*---------------------------------------------------------------------------*\
+ Class Kutadeladze Declaration
+\*---------------------------------------------------------------------------*/
+
+class Kutadeladze
+:
+ public nucleateFluxModel
+{
+ // Private Data
+
+ //- Model coefficient
+ scalar Cn_;
+
+ //- Coefficient for deltaT sub-cooling
+ scalar an_;
+
+ //- Exponent for n
+ scalar bn_;
+
+ //- Nucleating boiling paramemeter
+ scalar n_;
+
+
+ // Private Member Functions
+
+ //- No copy construct
+ Kutadeladze(const Kutadeladze&) = delete;
+
+ //- No copy assignment
+ void operator=(const Kutadeladze&) = delete;
+
+
+public:
+
+ //- Runtime type information
+ TypeName("Kutadeladze");
+
+
+ // Constructors
+
+ //- Construct from a dictionary
+ Kutadeladze(const dictionary& dict);
+
+
+ //- Destructor
+ virtual ~Kutadeladze() = default;
+
+
+ // Member Functions
+
+ //- Calculate and return the nucleation-site density
+ virtual tmp qNucleate
+ (
+ const phaseModel& liquid,
+ const phaseModel& vapor,
+ const label patchi,
+ const scalarField& Tl,
+ const scalarField& Tsatw,
+ const scalarField& L
+ ) const;
+
+ //- Write
+ virtual void write(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace nucleateFluxModels
+} // End namespace wallBoilingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.C
new file mode 100644
index 0000000000..d50e7e4ed9
--- /dev/null
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.C
@@ -0,0 +1,78 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | www.openfoam.com
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ Copyright (C) 2021 OpenCFD Ltd
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+\*---------------------------------------------------------------------------*/
+
+#include "nucleateFluxModel.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+ namespace wallBoilingModels
+ {
+ defineTypeNameAndDebug(nucleateFluxModel, 0);
+ defineRunTimeSelectionTable(nucleateFluxModel, dictionary);
+ }
+}
+
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr
+Foam::wallBoilingModels::nucleateFluxModel::New
+(
+ const dictionary& dict
+)
+{
+ const word modelType(dict.get("type"));
+
+ Info<< "Selecting nucleateFluxModel: " << modelType << endl;
+
+ auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
+
+ if (!cstrIter.found())
+ {
+ FatalIOErrorInLookup
+ (
+ dict,
+ "nucleateFluxModel",
+ modelType,
+ *dictionaryConstructorTablePtr_
+ ) << abort(FatalIOError);
+ }
+
+ return cstrIter()(dict);
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
+
+void Foam::wallBoilingModels::nucleateFluxModel::write(Ostream& os) const
+{
+ os.writeEntry("type", this->type());
+}
+
+
+// ************************************************************************* //
diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.H
new file mode 100644
index 0000000000..952c3d75ac
--- /dev/null
+++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.H
@@ -0,0 +1,118 @@
+/*---------------------------------------------------------------------------*\
+ ========= |
+ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
+ \\ / O peration |
+ \\ / A nd | www.openfoam.com
+ \\/ M anipulation |
+-------------------------------------------------------------------------------
+ Copyright (C) 2021 OpenCFD Ltd
+-------------------------------------------------------------------------------
+License
+ This file is part of OpenFOAM.
+
+ OpenFOAM is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with OpenFOAM. If not, see .
+
+Class
+ Foam::wallBoilingModels::nucleateFluxModel
+
+Description
+ Base class for nucleation flux models
+
+SourceFiles
+ nucleateFluxModel.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef nucleateFluxModel_H
+#define nucleateFluxModel_H
+
+#include "volFields.H"
+#include "dictionary.H"
+#include "runTimeSelectionTables.H"
+#include "phaseModel.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace wallBoilingModels
+{
+/*---------------------------------------------------------------------------*\
+ Class nucleateFluxModel Declaration
+\*---------------------------------------------------------------------------*/
+
+class nucleateFluxModel
+{
+public:
+
+ //- Runtime type information
+ TypeName("nucleateFluxModel");
+
+
+ //- Declare runtime construction
+ declareRunTimeSelectionTable
+ (
+ autoPtr,
+ nucleateFluxModel,
+ dictionary,
+ (
+ const dictionary& dict
+ ),
+ (dict)
+ );
+
+
+ // Generated Methods
+
+ //- Default construct
+ nucleateFluxModel() = default;
+
+ //- Destructor
+ virtual ~nucleateFluxModel() = default;
+
+
+ // Selectors
+
+ //- Select default constructed
+ static autoPtr New(const dictionary& dict);
+
+
+ // Member Functions
+
+ //- Calculate nucleate heat flux
+ virtual tmp qNucleate
+ (
+ const phaseModel& liquid,
+ const phaseModel& vapor,
+ const label patchi,
+ const scalarField& Tl,
+ const scalarField& Tsatw,
+ const scalarField& L
+ ) const = 0;
+
+ //- Write
+ virtual void write(Ostream& os) const;
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace wallBoilingModels
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //