Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
1f067169
Commit
1f067169
authored
Dec 10, 2021
by
sergio
Committed by
Andrew Heather
Dec 15, 2021
Browse files
ENH: Kutaledze: new nucleate flux model
parent
66156998
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/phaseSystemModels/reactingEuler/multiphaseSystem/Make/files
View file @
1f067169
...
...
@@ -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
...
...
src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.C
0 → 100644
View file @
1f067169
/*---------------------------------------------------------------------------*\
========= |
\\ / 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 <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#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
<
scalar
>
(
"Cn"
,
5.66e-10
)),
an_
(
dict
.
getOrDefault
<
scalar
>
(
"an"
,
2
.
5
)),
bn_
(
dict
.
getOrDefault
<
scalar
>
(
"bn"
,
1
)),
n_
(
dict
.
getOrDefault
<
scalar
>
(
"n"
,
1
))
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam
::
tmp
<
Foam
::
scalarField
>
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
<
volScalarField
>
(
"p"
);
const
scalarField
&
pb
=
p
.
boundaryField
()[
patchi
];
const
labelUList
&
cells
=
liquid
.
mesh
().
boundary
()[
patchi
].
faceCells
();
tmp
<
scalarField
>
trhoVapor
=
vapor
.
thermo
().
rhoEoS
(
Tsatw
,
pb
,
cells
);
const
scalarField
&
rhoVapor
=
trhoVapor
.
ref
();
tmp
<
scalarField
>
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
<
volScalarField
>
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_
);
}
// ************************************************************************* //
src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/Kutadeladze/Kutadeladze.H
0 → 100644
View file @
1f067169
/*---------------------------------------------------------------------------*\
========= |
\\ / 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 <http://www.gnu.org/licenses/>.
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 <scalar>;
an <scalar>;
bn <scalar>;
n <scalar>;
}
\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
<
scalarField
>
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
// ************************************************************************* //
src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.C
0 → 100644
View file @
1f067169
/*---------------------------------------------------------------------------*\
========= |
\\ / 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 <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include
"nucleateFluxModel.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
namespace
wallBoilingModels
{
defineTypeNameAndDebug
(
nucleateFluxModel
,
0
);
defineRunTimeSelectionTable
(
nucleateFluxModel
,
dictionary
);
}
}
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam
::
autoPtr
<
Foam
::
wallBoilingModels
::
nucleateFluxModel
>
Foam
::
wallBoilingModels
::
nucleateFluxModel
::
New
(
const
dictionary
&
dict
)
{
const
word
modelType
(
dict
.
get
<
word
>
(
"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
());
}
// ************************************************************************* //
src/phaseSystemModels/reactingEuler/multiphaseSystem/derivedFvPatchFields/wallBoilingSubModels/nucleateFluxModels/nucleateFluxModel/nucleateFluxModel.H
0 → 100644
View file @
1f067169
/*---------------------------------------------------------------------------*\
========= |
\\ / 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 <http://www.gnu.org/licenses/>.
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
<
nucleateFluxModel
>
New
(
const
dictionary
&
dict
);
// Member Functions
//- Calculate nucleate heat flux
virtual
tmp
<
scalarField
>
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
// ************************************************************************* //
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment