From 29f2eddf8098d89e4c1a98a5fd0144dba176d7da Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 10 Dec 2021 10:03:24 +0000 Subject: [PATCH] ENH: Shirai: new TDNB model --- .../reactingEuler/multiphaseSystem/Make/files | 1 + .../TDNBModels/Shirai/Shirai.C | 98 +++++++++++ .../TDNBModels/Shirai/Shirai.H | 155 ++++++++++++++++++ 3 files changed, 254 insertions(+) create mode 100644 src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.C create mode 100644 src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.H diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files index f756f5b031..c03bcb3ffb 100644 --- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files @@ -228,6 +228,7 @@ $(MHFModels)/Jeschar/Jeschar.C TDNBModels = $(wallBoilingSubModels)/TDNBModels $(TDNBModels)/TDNBModel/TDNBModel.C $(TDNBModels)/Schroeder/Schroeder.C +$(TDNBModels)/Shirai/Shirai.C nucleateFluxModels = $(wallBoilingSubModels)/nucleateFluxModels $(nucleateFluxModels)/nucleateFluxModel/nucleateFluxModel.C diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.C new file mode 100644 index 0000000000..d8e1700687 --- /dev/null +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.C @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 "Shirai.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace wallBoilingModels +{ +namespace TDNBModels +{ + defineTypeNameAndDebug(Shirai, 0); + addToRunTimeSelectionTable + ( + TDNBModel, + Shirai, + dictionary + ); +} +} +} + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::wallBoilingModels::TDNBModels::Shirai::Shirai +( + const dictionary& dict +) +: + TDNBModel(), + Tc_(dict.get("Tc")), + Pc_(dict.get("Pc")) +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::tmp +Foam::wallBoilingModels::TDNBModels::Shirai::TDNB +( + const phaseModel& liquid, + const phaseModel& vapor, + const label patchi, + const scalarField& Tl, + const scalarField& Tsatw, + const scalarField& L +) const +{ + tmp tp = liquid.thermo().p().boundaryField()[patchi]; + + const scalarField pRatio(max(min(tp/Pc_, scalar(1)), scalar(0))); + + return + ( + (0.8823*pow3(pRatio) - 1.8938*sqr(pRatio) + 1.4322*pRatio + 0.6289)*Tc_ + ); +} + + +void Foam::wallBoilingModels::TDNBModels::Shirai::write +( + Ostream& os +) const +{ + TDNBModel::write(os); + os.writeEntry("Tc", Tc_); + os.writeEntry("Pc", Pc_); +} + + +// ************************************************************************* // diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.H new file mode 100644 index 0000000000..04e4c636aa --- /dev/null +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/TDNBModels/Shirai/Shirai.H @@ -0,0 +1,155 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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::TDNBModels::Shirai + +Description + Temperature of departure from nulceate boiling correlation. + + References: + \verbatim + Shirai, Y., Tatsumoto, H., Shiotsu, M., Hata, K., + Kobayashi, H., Naruo, Y., & Inatani, Y. (2010). + Boiling heat transfer from a horizontal flat + plate in a pool of liquid hydrogen. + Cryogenics, 50(6-7), 410-416. + DOI:10.1016/j.cryogenics.2010.04.001 + \endverbatim + +Usage + Example of the model specification: + \verbatim + TDNBModel + { + // Mandatory entries + type Shirai; + Tc ; + Pc ; + } + \endverbatim + + where the entries mean: + \table + Property | Description | Type | Reqd | Deflt + type | Type name: Shirai | word | yes | - + Tc | Critical temperature | scalar | yes | - + Pc | Critical pressure | scalar | yes | - + \endtable + +Note + - Correlation based on fiting data from Fig 11 from above references. + - Suitable for liquid Helium, Nitrogen, Oxygen and Hydrogen. + +SourceFiles + Shirai.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Shirai_H +#define Shirai_H + +#include "TDNBModel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace wallBoilingModels +{ +namespace TDNBModels +{ + +/*---------------------------------------------------------------------------*\ + Class Shirai Declaration +\*---------------------------------------------------------------------------*/ + +class Shirai +: + public TDNBModel +{ + // Private Data + + //- Critical temperature + scalar Tc_; + + //- Critical pressure + scalar Pc_; + + + // Private Member Functions + + //- No copy construct + Shirai(const Shirai&) = delete; + + //- No copy assignment + void operator=(const Shirai&) = delete; + + +public: + + //- Runtime type information + TypeName("Shirai"); + + + // Constructors + + //- Construct from a dictionary + Shirai(const dictionary& dict); + + + //- Destructor + virtual ~Shirai() = default; + + + // Member Functions + + //- Calculate and return the nucleation-site density + virtual tmp TDNB + ( + 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 TDNBModels +} // End namespace wallBoilingModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //