mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'vv-lagrangian-heat-transfer-models' into 'develop'
ENH: CloudFunctionObject: new particle function objects See merge request Development/openfoam!443
This commit is contained in:
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2018-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2018-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -27,7 +27,7 @@ License
|
||||
|
||||
#include "basicHeterogeneousReactingCloud.H"
|
||||
|
||||
#include "makeParcelCloudFunctionObjects.H"
|
||||
#include "makeReactingParcelCloudFunctionObjects.H"
|
||||
|
||||
// Kinematic
|
||||
#include "makeThermoParcelForces.H" // thermo variant
|
||||
@ -52,7 +52,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeParcelCloudFunctionObjects(basicHeterogeneousReactingCloud);
|
||||
makeReactingParcelCloudFunctionObjects(basicHeterogeneousReactingCloud);
|
||||
|
||||
// Kinematic sub-models
|
||||
makeThermoParcelForces(basicHeterogeneousReactingCloud);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "basicReactingMultiphaseCloud.H"
|
||||
|
||||
#include "makeReactingParcelCloudFunctionObjects.H" // Reacting variant
|
||||
#include "makeReactingParcelCloudFunctionObjects.H"
|
||||
|
||||
// Kinematic
|
||||
#include "makeThermoParcelForces.H" // thermo variant
|
||||
@ -56,7 +56,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeParcelCloudFunctionObjects(basicReactingMultiphaseCloud);
|
||||
makeReactingParcelCloudFunctionObjects(basicReactingMultiphaseCloud);
|
||||
|
||||
// Kinematic sub-models
|
||||
makeThermoParcelForces(basicReactingMultiphaseCloud);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "basicReactingCloud.H"
|
||||
|
||||
#include "makeReactingParcelCloudFunctionObjects.H" // Reacting variant
|
||||
#include "makeReactingParcelCloudFunctionObjects.H"
|
||||
|
||||
// Kinematic
|
||||
#include "makeThermoParcelForces.H" // thermo variant
|
||||
@ -52,7 +52,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeParcelCloudFunctionObjects(basicReactingCloud);
|
||||
makeReactingParcelCloudFunctionObjects(basicReactingCloud);
|
||||
|
||||
// Kinematic sub-models
|
||||
makeThermoParcelForces(basicReactingCloud);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "basicThermoCloud.H"
|
||||
|
||||
#include "makeParcelCloudFunctionObjects.H"
|
||||
#include "makeThermoParcelCloudFunctionObjects.H"
|
||||
|
||||
// Kinematic
|
||||
#include "makeThermoParcelForces.H" // thermo variant
|
||||
@ -48,7 +48,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeParcelCloudFunctionObjects(basicThermoCloud);
|
||||
makeThermoParcelCloudFunctionObjects(basicThermoCloud);
|
||||
|
||||
// Kinematic sub-models
|
||||
makeThermoParcelForces(basicThermoCloud);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -42,6 +42,7 @@ License
|
||||
#include "PatchParticleHistogram.H"
|
||||
#include "RemoveParcels.H"
|
||||
#include "VoidFraction.H"
|
||||
#include "KinematicReynoldsNumber.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2018 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -42,11 +42,14 @@ License
|
||||
#include "PatchParticleHistogram.H"
|
||||
#include "RemoveParcels.H"
|
||||
#include "VoidFraction.H"
|
||||
#include "NusseltNumber.H"
|
||||
#include "HeatTransferCoeff.H"
|
||||
#include "ThermoReynoldsNumber.H"
|
||||
#include "WeberNumberReacting.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define makeParcelCloudFunctionObjects(CloudType) \
|
||||
#define makeReactingParcelCloudFunctionObjects(CloudType) \
|
||||
\
|
||||
makeCloudFunctionObject(CloudType); \
|
||||
\
|
||||
@ -61,6 +64,9 @@ License
|
||||
makeCloudFunctionObjectType(PatchParticleHistogram, CloudType); \
|
||||
makeCloudFunctionObjectType(RemoveParcels, CloudType); \
|
||||
makeCloudFunctionObjectType(VoidFraction, CloudType); \
|
||||
makeCloudFunctionObjectType(NusseltNumber, CloudType); \
|
||||
makeCloudFunctionObjectType(HeatTransferCoeff, CloudType); \
|
||||
makeCloudFunctionObjectType(ThermoReynoldsNumber, CloudType); \
|
||||
makeCloudFunctionObjectType(WeberNumberReacting, CloudType);
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,74 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef makeThermoParcelCloudFunctionObjects_H
|
||||
#define makeThermoParcelCloudFunctionObjects_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "FacePostProcessing.H"
|
||||
#include "ParticleCollector.H"
|
||||
#include "ParticleErosion.H"
|
||||
#include "ParticleTracks.H"
|
||||
#include "ParticleTrap.H"
|
||||
#include "PatchCollisionDensity.H"
|
||||
#include "PatchInteractionFields.H"
|
||||
#include "PatchPostProcessing.H"
|
||||
#include "PatchParticleHistogram.H"
|
||||
#include "RemoveParcels.H"
|
||||
#include "VoidFraction.H"
|
||||
#include "NusseltNumber.H"
|
||||
#include "HeatTransferCoeff.H"
|
||||
#include "ThermoReynoldsNumber.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define makeThermoParcelCloudFunctionObjects(CloudType) \
|
||||
\
|
||||
makeCloudFunctionObject(CloudType); \
|
||||
\
|
||||
makeCloudFunctionObjectType(FacePostProcessing, CloudType); \
|
||||
makeCloudFunctionObjectType(ParticleCollector, CloudType); \
|
||||
makeCloudFunctionObjectType(ParticleErosion, CloudType); \
|
||||
makeCloudFunctionObjectType(ParticleTracks, CloudType); \
|
||||
makeCloudFunctionObjectType(ParticleTrap, CloudType); \
|
||||
makeCloudFunctionObjectType(PatchCollisionDensity, CloudType); \
|
||||
makeCloudFunctionObjectType(PatchInteractionFields, CloudType); \
|
||||
makeCloudFunctionObjectType(PatchPostProcessing, CloudType); \
|
||||
makeCloudFunctionObjectType(PatchParticleHistogram, CloudType); \
|
||||
makeCloudFunctionObjectType(RemoveParcels, CloudType); \
|
||||
makeCloudFunctionObjectType(VoidFraction, CloudType); \
|
||||
makeCloudFunctionObjectType(NusseltNumber, CloudType); \
|
||||
makeCloudFunctionObjectType(HeatTransferCoeff, CloudType); \
|
||||
makeCloudFunctionObjectType(ThermoReynoldsNumber, CloudType);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,114 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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 "HeatTransferCoeff.H"
|
||||
#include "ThermoCloud.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::HeatTransferCoeff<CloudType>::HeatTransferCoeff
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(dict, owner, modelName, typeName)
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::HeatTransferCoeff<CloudType>::HeatTransferCoeff
|
||||
(
|
||||
const HeatTransferCoeff<CloudType>& htc
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(htc)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::HeatTransferCoeff<CloudType>::postEvolve
|
||||
(
|
||||
const typename parcelType::trackingData& td
|
||||
)
|
||||
{
|
||||
auto& c = this->owner();
|
||||
const auto& tc =
|
||||
static_cast<const ThermoCloud<KinematicCloud<Cloud<parcelType>>>&>(c);
|
||||
|
||||
if (!c.template foundObject<IOField<scalar>>("htc"))
|
||||
{
|
||||
auto* htcPtr =
|
||||
new IOField<scalar>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"htc",
|
||||
c.time().timeName(),
|
||||
c,
|
||||
IOobject::NO_READ
|
||||
)
|
||||
);
|
||||
|
||||
htcPtr->store();
|
||||
}
|
||||
|
||||
auto& htc = c.template lookupObjectRef<IOField<scalar>>("htc");
|
||||
htc.setSize(c.size());
|
||||
|
||||
const auto& heatTransfer = tc.heatTransfer();
|
||||
typename parcelType::trackingData& nctd =
|
||||
const_cast<typename parcelType::trackingData&>(td);
|
||||
|
||||
label parceli = 0;
|
||||
forAllConstIters(c, parcelIter)
|
||||
{
|
||||
const parcelType& p = parcelIter();
|
||||
|
||||
scalar Ts, rhos, mus, Pr, kappas;
|
||||
p.template calcSurfaceValues<CloudType>
|
||||
(
|
||||
c, nctd, p.T(), Ts, rhos, mus, Pr, kappas
|
||||
);
|
||||
const scalar Re = p.Re(rhos, p.U(), td.Uc(), p.d(), mus);
|
||||
|
||||
htc[parceli++] = heatTransfer.htc(p.d(), Re, Pr, kappas, 0);
|
||||
}
|
||||
|
||||
|
||||
if (c.size() && c.time().writeTime())
|
||||
{
|
||||
htc.write();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,154 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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::HeatTransferCoeff
|
||||
|
||||
Group
|
||||
grpLagrangianIntermediateFunctionObjects
|
||||
|
||||
Description
|
||||
Calculates and writes particle heat transfer coefficient field on the cloud.
|
||||
|
||||
Operands:
|
||||
\table
|
||||
Operand | Type | Location
|
||||
input | - | -
|
||||
output file | - | -
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/htc
|
||||
\endtable
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/<CloudProperties>:
|
||||
\verbatim
|
||||
cloudFunctionObjects
|
||||
{
|
||||
HeatTransferCoeff1
|
||||
{
|
||||
// Mandatory entries
|
||||
type HeatTransferCoeff;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: HeatTransferCoeff | word | yes | -
|
||||
\endtable
|
||||
|
||||
SourceFiles
|
||||
HeatTransferCoeff.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef HeatTransferCoeff_H
|
||||
#define HeatTransferCoeff_H
|
||||
|
||||
#include "CloudFunctionObject.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class HeatTransferCoeff Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
template<class CloudType>
|
||||
class HeatTransferCoeff
|
||||
:
|
||||
public CloudFunctionObject<CloudType>
|
||||
{
|
||||
// Private Data
|
||||
|
||||
// Typedefs
|
||||
|
||||
//- Convenience typedef for parcel type
|
||||
typedef typename CloudType::parcelType parcelType;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("HeatTransferCoeff");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const HeatTransferCoeff<CloudType>&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from dictionary
|
||||
HeatTransferCoeff
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
);
|
||||
|
||||
//- Copy construct
|
||||
HeatTransferCoeff(const HeatTransferCoeff<CloudType>& vf);
|
||||
|
||||
//- Construct and return a clone
|
||||
virtual autoPtr<CloudFunctionObject<CloudType>> clone() const
|
||||
{
|
||||
return autoPtr<CloudFunctionObject<CloudType>>
|
||||
(
|
||||
new HeatTransferCoeff<CloudType>(*this)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~HeatTransferCoeff() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Post-evolve hook
|
||||
virtual void postEvolve(const typename parcelType::trackingData& td);
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
#include "HeatTransferCoeff.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,100 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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 "KinematicReynoldsNumber.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::KinematicReynoldsNumber<CloudType>::KinematicReynoldsNumber
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(dict, owner, modelName, typeName)
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::KinematicReynoldsNumber<CloudType>::KinematicReynoldsNumber
|
||||
(
|
||||
const KinematicReynoldsNumber<CloudType>& re
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(re)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::KinematicReynoldsNumber<CloudType>::postEvolve
|
||||
(
|
||||
const typename parcelType::trackingData& td
|
||||
)
|
||||
{
|
||||
auto& c = this->owner();
|
||||
|
||||
if (!c.template foundObject<IOField<scalar>>("Re"))
|
||||
{
|
||||
auto* RePtr =
|
||||
new IOField<scalar>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Re",
|
||||
c.time().timeName(),
|
||||
c,
|
||||
IOobject::NO_READ
|
||||
)
|
||||
);
|
||||
|
||||
RePtr->store();
|
||||
}
|
||||
|
||||
auto& Re = c.template lookupObjectRef<IOField<scalar>>("Re");
|
||||
Re.setSize(c.size());
|
||||
|
||||
label parceli = 0;
|
||||
forAllConstIters(c, parcelIter)
|
||||
{
|
||||
const parcelType& p = parcelIter();
|
||||
|
||||
Re[parceli++] = p.Re(td);
|
||||
}
|
||||
|
||||
|
||||
if (c.size() && c.time().writeTime())
|
||||
{
|
||||
Re.write();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,171 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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::KinematicReynoldsNumber
|
||||
|
||||
Group
|
||||
grpLagrangianIntermediateFunctionObjects
|
||||
|
||||
Description
|
||||
Calculates and writes particle Reynolds number field on the cloud.
|
||||
The normalisation factors are calculated without thermal effects.
|
||||
|
||||
\f[
|
||||
\mathrm{Re}_p =
|
||||
\frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c}
|
||||
\f]
|
||||
|
||||
\vartable
|
||||
\mathrm{Re}_p | Particle Reynolds number
|
||||
d_p | Particle diameter
|
||||
\rho_c | Density of carrier
|
||||
\mu_c | Dynamic viscosity of carrier
|
||||
\mathbf{u}_\mathrm{rel} | Relative velocity between particle and carrier
|
||||
\endvartable
|
||||
|
||||
Operands:
|
||||
\table
|
||||
Operand | Type | Location
|
||||
input | - | -
|
||||
output file | - | -
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/kinematicRe
|
||||
\endtable
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/\<CloudProperties\>:
|
||||
\verbatim
|
||||
cloudFunctions
|
||||
{
|
||||
KinematicReynoldsNumber1
|
||||
{
|
||||
// Mandatory entries
|
||||
type KinematicReynoldsNumber;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: KinematicReynoldsNumber | word | yes | -
|
||||
\endtable
|
||||
|
||||
See also
|
||||
- Foam::ThermoReynoldsNumber
|
||||
|
||||
SourceFiles
|
||||
KinematicReynoldsNumber.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef KinematicReynoldsNumber_H
|
||||
#define KinematicReynoldsNumber_H
|
||||
|
||||
#include "CloudFunctionObject.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class KinematicReynoldsNumber Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
template<class CloudType>
|
||||
class KinematicReynoldsNumber
|
||||
:
|
||||
public CloudFunctionObject<CloudType>
|
||||
{
|
||||
// Private Data
|
||||
|
||||
// Typedefs
|
||||
|
||||
//- Convenience typedef for parcel type
|
||||
typedef typename CloudType::parcelType parcelType;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("ReynoldsNumber");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const KinematicReynoldsNumber<CloudType>&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from dictionary
|
||||
KinematicReynoldsNumber
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
);
|
||||
|
||||
//- Copy construct
|
||||
KinematicReynoldsNumber(const KinematicReynoldsNumber<CloudType>& vf);
|
||||
|
||||
//- Construct and return a clone
|
||||
virtual autoPtr<CloudFunctionObject<CloudType>> clone() const
|
||||
{
|
||||
return autoPtr<CloudFunctionObject<CloudType>>
|
||||
(
|
||||
new KinematicReynoldsNumber<CloudType>(*this)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~KinematicReynoldsNumber() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Post-evolve hook
|
||||
virtual void postEvolve(const typename parcelType::trackingData& td);
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
#include "KinematicReynoldsNumber.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,114 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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 "NusseltNumber.H"
|
||||
#include "ThermoCloud.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::NusseltNumber<CloudType>::NusseltNumber
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(dict, owner, modelName, typeName)
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::NusseltNumber<CloudType>::NusseltNumber
|
||||
(
|
||||
const NusseltNumber<CloudType>& nu
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(nu)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::NusseltNumber<CloudType>::postEvolve
|
||||
(
|
||||
const typename parcelType::trackingData& td
|
||||
)
|
||||
{
|
||||
auto& c = this->owner();
|
||||
const auto& tc =
|
||||
static_cast<const ThermoCloud<KinematicCloud<Cloud<parcelType>>>&>(c);
|
||||
|
||||
if (!c.template foundObject<IOField<scalar>>("Nu"))
|
||||
{
|
||||
auto* NuPtr =
|
||||
new IOField<scalar>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Nu",
|
||||
c.time().timeName(),
|
||||
c,
|
||||
IOobject::NO_READ
|
||||
)
|
||||
);
|
||||
|
||||
NuPtr->store();
|
||||
}
|
||||
|
||||
auto& Nu = c.template lookupObjectRef<IOField<scalar>>("Nu");
|
||||
Nu.setSize(c.size());
|
||||
|
||||
const auto& heatTransfer = tc.heatTransfer();
|
||||
typename parcelType::trackingData& nctd =
|
||||
const_cast<typename parcelType::trackingData&>(td);
|
||||
|
||||
label parceli = 0;
|
||||
forAllConstIters(c, parcelIter)
|
||||
{
|
||||
const parcelType& p = parcelIter();
|
||||
|
||||
scalar Ts, rhos, mus, Pr, kappas;
|
||||
p.template calcSurfaceValues<CloudType>
|
||||
(
|
||||
c, nctd, p.T(), Ts, rhos, mus, Pr, kappas
|
||||
);
|
||||
const scalar Re = p.Re(rhos, p.U(), td.Uc(), p.d(), mus);
|
||||
|
||||
Nu[parceli++] = heatTransfer.Nu(Re, Pr);
|
||||
}
|
||||
|
||||
|
||||
if (c.size() && c.time().writeTime())
|
||||
{
|
||||
Nu.write();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,154 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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::NusseltNumber
|
||||
|
||||
Group
|
||||
grpLagrangianIntermediateFunctionObjects
|
||||
|
||||
Description
|
||||
Calculates and writes particle Nusselt number field on the cloud.
|
||||
|
||||
Operands:
|
||||
\table
|
||||
Operand | Type | Location
|
||||
input | - | -
|
||||
output file | - | -
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/Nu
|
||||
\endtable
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/<CloudProperties>:
|
||||
\verbatim
|
||||
cloudFunctionObjects
|
||||
{
|
||||
NusseltNumber1
|
||||
{
|
||||
// Mandatory entries
|
||||
type NusseltNumber;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: NusseltNumber | word | yes | -
|
||||
\endtable
|
||||
|
||||
SourceFiles
|
||||
NusseltNumber.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef NusseltNumber_H
|
||||
#define NusseltNumber_H
|
||||
|
||||
#include "CloudFunctionObject.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class NusseltNumber Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
template<class CloudType>
|
||||
class NusseltNumber
|
||||
:
|
||||
public CloudFunctionObject<CloudType>
|
||||
{
|
||||
// Private Data
|
||||
|
||||
// Typedefs
|
||||
|
||||
//- Convenience typedef for parcel type
|
||||
typedef typename CloudType::parcelType parcelType;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("NusseltNumber");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const NusseltNumber<CloudType>&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from dictionary
|
||||
NusseltNumber
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
);
|
||||
|
||||
//- Copy construct
|
||||
NusseltNumber(const NusseltNumber<CloudType>& vf);
|
||||
|
||||
//- Construct and return a clone
|
||||
virtual autoPtr<CloudFunctionObject<CloudType>> clone() const
|
||||
{
|
||||
return autoPtr<CloudFunctionObject<CloudType>>
|
||||
(
|
||||
new NusseltNumber<CloudType>(*this)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~NusseltNumber() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Post-evolve hook
|
||||
virtual void postEvolve(const typename parcelType::trackingData& td);
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
#include "NusseltNumber.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,110 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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 "ThermoReynoldsNumber.H"
|
||||
#include "ThermoCloud.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::ThermoReynoldsNumber<CloudType>::ThermoReynoldsNumber
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(dict, owner, modelName, typeName)
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::ThermoReynoldsNumber<CloudType>::ThermoReynoldsNumber
|
||||
(
|
||||
const ThermoReynoldsNumber<CloudType>& re
|
||||
)
|
||||
:
|
||||
CloudFunctionObject<CloudType>(re)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::ThermoReynoldsNumber<CloudType>::postEvolve
|
||||
(
|
||||
const typename parcelType::trackingData& td
|
||||
)
|
||||
{
|
||||
auto& c = this->owner();
|
||||
|
||||
if (!c.template foundObject<IOField<scalar>>("Re"))
|
||||
{
|
||||
auto* RePtr =
|
||||
new IOField<scalar>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Re",
|
||||
c.time().timeName(),
|
||||
c,
|
||||
IOobject::NO_READ
|
||||
)
|
||||
);
|
||||
|
||||
RePtr->store();
|
||||
}
|
||||
|
||||
auto& Re = c.template lookupObjectRef<IOField<scalar>>("Re");
|
||||
Re.setSize(c.size());
|
||||
|
||||
typename parcelType::trackingData& nctd =
|
||||
const_cast<typename parcelType::trackingData&>(td);
|
||||
|
||||
label parceli = 0;
|
||||
forAllConstIters(c, parcelIter)
|
||||
{
|
||||
const parcelType& p = parcelIter();
|
||||
|
||||
scalar Ts, rhos, mus, Pr, kappas;
|
||||
p.template calcSurfaceValues<CloudType>
|
||||
(
|
||||
c, nctd, p.T(), Ts, rhos, mus, Pr, kappas
|
||||
);
|
||||
|
||||
Re[parceli++] = p.Re(rhos, p.U(), td.Uc(), p.d(), mus);
|
||||
}
|
||||
|
||||
|
||||
if (c.size() && c.time().writeTime())
|
||||
{
|
||||
Re.write();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,177 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / 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::ThermoReynoldsNumber
|
||||
|
||||
Group
|
||||
grpLagrangianIntermediateFunctionObjects
|
||||
|
||||
Description
|
||||
Calculates and writes particle Reynolds number field on the cloud.
|
||||
The normalisation factors are calculated with thermal effects.
|
||||
|
||||
\f[
|
||||
\mathrm{Re}_p =
|
||||
\frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c}
|
||||
\f]
|
||||
|
||||
\vartable
|
||||
\mathrm{Re}_p | Particle Reynolds number
|
||||
d_p | Particle diameter
|
||||
\rho_c | Density of carrier in the film surrounding particle
|
||||
\mu_c | Dynamic viscosity of carrier in the film surrounding particle
|
||||
\mathbf{u}_\mathrm{rel} | Relative velocity between particle and carrier
|
||||
\endvartable
|
||||
|
||||
Operands:
|
||||
\table
|
||||
Operand | Type | Location
|
||||
input | - | -
|
||||
output file | - | -
|
||||
output field | scalarField | \<time\>/lagrangian/\<cloud\>/thermoRe
|
||||
\endtable
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/\<CloudProperties\>:
|
||||
\verbatim
|
||||
cloudFunctions
|
||||
{
|
||||
ThermoReynoldsNumber1
|
||||
{
|
||||
// Mandatory entries
|
||||
type ThermoReynoldsNumber;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
type | Type name: ThermoReynoldsNumber | word | yes | -
|
||||
\endtable
|
||||
|
||||
Note
|
||||
- Normalisation factors \c rhoc and \c muc are based on temperature
|
||||
dependent values calculated inside the film surrounding the particle
|
||||
rather than freestream values; therefore, \c ThermoReynoldsNumber should not
|
||||
be expected to operate with kinematic (non-thermo) applications.
|
||||
|
||||
See also
|
||||
- Foam::KinematicReynoldsNumber
|
||||
|
||||
SourceFiles
|
||||
ThermoReynoldsNumber.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef ThermoReynoldsNumber_H
|
||||
#define ThermoReynoldsNumber_H
|
||||
|
||||
#include "CloudFunctionObject.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class ThermoReynoldsNumber Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
template<class CloudType>
|
||||
class ThermoReynoldsNumber
|
||||
:
|
||||
public CloudFunctionObject<CloudType>
|
||||
{
|
||||
// Private Data
|
||||
|
||||
// Typedefs
|
||||
|
||||
//- Convenience typedef for parcel type
|
||||
typedef typename CloudType::parcelType parcelType;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
//- Runtime type information
|
||||
TypeName("ReynoldsNumber");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const ThermoReynoldsNumber<CloudType>&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from dictionary
|
||||
ThermoReynoldsNumber
|
||||
(
|
||||
const dictionary& dict,
|
||||
CloudType& owner,
|
||||
const word& modelName
|
||||
);
|
||||
|
||||
//- Copy construct
|
||||
ThermoReynoldsNumber(const ThermoReynoldsNumber<CloudType>& vf);
|
||||
|
||||
//- Construct and return a clone
|
||||
virtual autoPtr<CloudFunctionObject<CloudType>> clone() const
|
||||
{
|
||||
return autoPtr<CloudFunctionObject<CloudType>>
|
||||
(
|
||||
new ThermoReynoldsNumber<CloudType>(*this)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~ThermoReynoldsNumber() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Post-evolve hook
|
||||
virtual void postEvolve(const typename parcelType::trackingData& td);
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#ifdef NoRepository
|
||||
#include "ThermoReynoldsNumber.C"
|
||||
#endif
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -46,7 +47,7 @@ Foam::HeatTransferModel<CloudType>::HeatTransferModel
|
||||
)
|
||||
:
|
||||
CloudSubModelBase<CloudType>(owner, dict, typeName, type),
|
||||
BirdCorrection_(this->coeffDict().lookup("BirdCorrection"))
|
||||
BirdCorrection_(this->coeffDict().template get<Switch>("BirdCorrection"))
|
||||
{}
|
||||
|
||||
|
||||
@ -61,13 +62,6 @@ Foam::HeatTransferModel<CloudType>::HeatTransferModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::HeatTransferModel<CloudType>::~HeatTransferModel()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -31,7 +31,77 @@ Group
|
||||
grpLagrangianIntermediateHeatTransferSubModels
|
||||
|
||||
Description
|
||||
Templated heat transfer model class
|
||||
Templated class to calculate the fluid-particle heat transfer
|
||||
coefficients based on a specified Nusselt-number model.
|
||||
|
||||
\f[
|
||||
h = \frac{\mathrm{Nu} \, \kappa}{d_p}
|
||||
\f]
|
||||
where
|
||||
|
||||
\vartable
|
||||
h | Convective heat transfer coefficient of the flow
|
||||
\mathrm{Nu} | Nusselt number
|
||||
\kappa | Thermal conductivity of carrier in the film
|
||||
d_p | Particle diameter
|
||||
\endvartable
|
||||
|
||||
Optionally, Bird-Stewart-Lightfoot correction can be applied
|
||||
to correct the heat transfer coefficient for evaporation:
|
||||
|
||||
\f[
|
||||
h_{corr} = h \, \frac{\beta}{ \exp(\beta) + 1 }
|
||||
\f]
|
||||
with
|
||||
|
||||
\f[
|
||||
\beta = \frac{N \, C_p \, W}{h}
|
||||
\f]
|
||||
where
|
||||
|
||||
\vartable
|
||||
\beta | Correction factor
|
||||
N | Molar flux
|
||||
C_p | Specific heat capacity
|
||||
W | Molecular weight
|
||||
\endvartable
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
Bird, R. B., Stewart, W. E., & Lightfoot, E. N. (1960).
|
||||
Transport phenomena.
|
||||
John Wiley & Sons., New York.
|
||||
DOI:10.1002/aic.690070245
|
||||
\endverbatim
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/\<CloudProperties\>:
|
||||
\verbatim
|
||||
subModels
|
||||
{
|
||||
heatTransferModel <model>;
|
||||
|
||||
<model>Coeffs
|
||||
{
|
||||
BirdCorrection true;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
heatTransferModel | Type name: \<model\> | word | yes | -
|
||||
\<model\>Coeffs | Model properties | dict | cndtnl | -
|
||||
BirdCorrection | Flag to apply Bird-Stewart-Lightfoot's <!--
|
||||
--> correction to the heat transfer coefficient | bool | cndtnl | -
|
||||
\endtable
|
||||
|
||||
Options for the \c \<model\> entry:
|
||||
\verbatim
|
||||
RanzMarshall | Ranz-Marshall correlation for Nusselt number
|
||||
none | No active model
|
||||
\endverbatim
|
||||
|
||||
SourceFiles
|
||||
HeatTransferModel.C
|
||||
@ -63,7 +133,7 @@ class HeatTransferModel
|
||||
{
|
||||
// Private Data
|
||||
|
||||
//- Apply Bird's correction to the htc
|
||||
//- Flag to apply Bird-Stewart-Lightfoot's correction to the htc
|
||||
const Switch BirdCorrection_;
|
||||
|
||||
|
||||
@ -86,6 +156,12 @@ public:
|
||||
);
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const HeatTransferModel<CloudType>&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct null from owner
|
||||
@ -99,7 +175,7 @@ public:
|
||||
const word& type
|
||||
);
|
||||
|
||||
//- Construct copy
|
||||
//- Copy construct
|
||||
HeatTransferModel(const HeatTransferModel<CloudType>& htm);
|
||||
|
||||
//- Construct and return a clone
|
||||
@ -107,7 +183,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~HeatTransferModel();
|
||||
virtual ~HeatTransferModel() = default;
|
||||
|
||||
|
||||
//- Selector
|
||||
@ -121,7 +197,7 @@ public:
|
||||
// Member Functions
|
||||
|
||||
//- The Bird HTC correction flag
|
||||
bool BirdCorrection() const
|
||||
bool BirdCorrection() const noexcept
|
||||
{
|
||||
return BirdCorrection_;
|
||||
}
|
||||
@ -129,7 +205,7 @@ public:
|
||||
|
||||
// Evaluation
|
||||
|
||||
//- Nusselt number
|
||||
//- Return Nusselt number
|
||||
virtual scalar Nu
|
||||
(
|
||||
const scalar Re,
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -50,38 +51,4 @@ Foam::NoHeatTransfer<CloudType>::NoHeatTransfer
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::NoHeatTransfer<CloudType>::~NoHeatTransfer()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
bool Foam::NoHeatTransfer<CloudType>::active() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::scalar Foam::NoHeatTransfer<CloudType>::Nu
|
||||
(
|
||||
const scalar,
|
||||
const scalar
|
||||
) const
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::scalar Foam::NoHeatTransfer<CloudType>::Pr() const
|
||||
{
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -30,7 +31,26 @@ Group
|
||||
grpLagrangianIntermediateHeatTransferSubModels
|
||||
|
||||
Description
|
||||
Dummy heat transfer model for 'none'
|
||||
Nusselt-number model providing an interface to the
|
||||
properties of \c HeatTransferModel without any active model.
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/\<CloudProperties\>:
|
||||
\verbatim
|
||||
subModels
|
||||
{
|
||||
heatTransferModel none;
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
heatTransferModel | Type name: none | word | yes | -
|
||||
\endtable
|
||||
|
||||
SourceFiles
|
||||
NoHeatTransfer.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -59,12 +79,18 @@ public:
|
||||
TypeName("none");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const NoHeatTransfer&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from dictionary
|
||||
NoHeatTransfer(const dictionary&, CloudType& owner);
|
||||
|
||||
//- Construct copy
|
||||
//- Copy construct
|
||||
NoHeatTransfer(const NoHeatTransfer<CloudType>& im);
|
||||
|
||||
//- Construct and return a clone
|
||||
@ -78,19 +104,31 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~NoHeatTransfer();
|
||||
virtual ~NoHeatTransfer() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Flag to indicate whether model activates heat transfer model
|
||||
virtual bool active() const;
|
||||
virtual bool active() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//- Nusselt number
|
||||
virtual scalar Nu(const scalar, const scalar) const;
|
||||
|
||||
//- Prandtl number
|
||||
virtual scalar Pr() const;
|
||||
// Evaluation
|
||||
|
||||
//- Return Nusselt number
|
||||
virtual scalar Nu(const scalar Re, const scalar Pr) const
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
//- Return Prandtl number
|
||||
virtual scalar Pr() const
|
||||
{
|
||||
return 1.0;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -36,21 +37,22 @@ Foam::RanzMarshall<CloudType>::RanzMarshall
|
||||
CloudType& cloud
|
||||
)
|
||||
:
|
||||
HeatTransferModel<CloudType>(dict, cloud, typeName)
|
||||
HeatTransferModel<CloudType>(dict, cloud, typeName),
|
||||
a_(this->coeffDict().template getOrDefault<scalar>("a", 2.0)),
|
||||
b_(this->coeffDict().template getOrDefault<scalar>("b", 0.6)),
|
||||
m_(this->coeffDict().template getOrDefault<scalar>("m", 1.0/2.0)),
|
||||
n_(this->coeffDict().template getOrDefault<scalar>("n", 1.0/3.0))
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
Foam::RanzMarshall<CloudType>::RanzMarshall(const RanzMarshall<CloudType>& htm)
|
||||
:
|
||||
HeatTransferModel<CloudType>(htm)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::RanzMarshall<CloudType>::~RanzMarshall()
|
||||
HeatTransferModel<CloudType>(htm),
|
||||
a_(htm.a_),
|
||||
b_(htm.b_),
|
||||
m_(htm.m_),
|
||||
n_(htm.n_)
|
||||
{}
|
||||
|
||||
|
||||
@ -63,7 +65,8 @@ Foam::scalar Foam::RanzMarshall<CloudType>::Nu
|
||||
const scalar Pr
|
||||
) const
|
||||
{
|
||||
return 2.0 + 0.6*sqrt(Re)*cbrt(Pr);
|
||||
// (AOB:p. 18 below Eq. 42)
|
||||
return a_ + b_*pow(Re, m_)*pow(Pr, n_);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -30,7 +31,90 @@ Group
|
||||
grpLagrangianIntermediateHeatTransferSubModels
|
||||
|
||||
Description
|
||||
The Ranz-Marshall correlation for heat transfer
|
||||
Nusselt-number model using the empirical Ranz-Marshall correlation
|
||||
to be used in modelling of the fluid-particle heat transfer coefficient:
|
||||
|
||||
\f[
|
||||
\mathrm{Nu} = a + b \, \mathrm{Re}_p^{m} \, \mathrm{Pr}^{n}
|
||||
\f]
|
||||
with
|
||||
|
||||
\f[
|
||||
\mathrm{Re}_p =
|
||||
\frac{\rho_c \, | \mathbf{u}_\mathrm{rel} | \, d_p}{\mu_c}
|
||||
\f]
|
||||
|
||||
\f[
|
||||
\mathrm{Pr} = \frac{ C_p \, \mu_c }{ \kappa_c }
|
||||
\f]
|
||||
where
|
||||
|
||||
\vartable
|
||||
\mathrm{Nu} | Nusselt number
|
||||
\mathrm{Re}_p | Particle Reynolds number
|
||||
\mathrm{Pr} | Prandtl number
|
||||
d_p | Particle diameter
|
||||
\rho_c | Density of carrier in the film surrounding particle
|
||||
\mu_c | Dynamic viscosity of carrier in the film surrounding particle
|
||||
\mathbf{u}_\mathrm{rel} | Relative velocity between particle and carrier
|
||||
a | Correlation coefficient
|
||||
b | Correlation coefficient
|
||||
m | Correlation exponent of particle Reynolds number
|
||||
n | Correlation exponent of Prandtl number
|
||||
C_p | Specific heat capacity
|
||||
\kappa_c | Thermal conductivity of carrier in the film
|
||||
\endvartable
|
||||
|
||||
Reference:
|
||||
\verbatim
|
||||
Standard model:
|
||||
Ranz, W. E., & Marshall, W. R. (1952).
|
||||
Evaporation from drops - part 1.
|
||||
Chem. Eng. Prog, 48, 22, pp. 141-146.
|
||||
|
||||
Ranz, W. E., & Marshall, W. R. (1952).
|
||||
Evaporation from drops - part 2.
|
||||
Chem. Eng. Prog, 48, 4, pp. 173-180.
|
||||
|
||||
Expressions (tag:AOB), p. 18:
|
||||
Amsden, A. A., O'Rourke, P. J., & Butler, T. D. (1989).
|
||||
KIVA-II: A computer program for chemically
|
||||
reactive flows with sprays (No. LA-11560-MS).
|
||||
Los Alamos National Lab.(LANL), Los Alamos, NM (United States).
|
||||
DOI:10.2172/6228444
|
||||
\endverbatim
|
||||
|
||||
Usage
|
||||
Minimal example by using \c constant/\<CloudProperties\>:
|
||||
\verbatim
|
||||
subModels
|
||||
{
|
||||
// Mandatory entries
|
||||
heatTransferModel RanzMarshall;
|
||||
|
||||
// Optional entries
|
||||
RanzMarshallCoeffs
|
||||
{
|
||||
a 2.0;
|
||||
b 0.6;
|
||||
m 0.5;
|
||||
n 0.66666;
|
||||
}
|
||||
}
|
||||
\endverbatim
|
||||
|
||||
where the entries mean:
|
||||
\table
|
||||
Property | Description | Type | Reqd | Deflt
|
||||
heatTransferModel | Type name: RanzMarshall | word | yes | -
|
||||
a | Correlation coefficient | scalar | no | 2.0
|
||||
b | Correlation coefficient | scalar | no | 0.6
|
||||
m | Correlation exponent of particle Reynolds number | scalar | no | 0.5
|
||||
n | Correlation exponent of Prandtl number | scalar | no | 1.0/3.0
|
||||
\endtable
|
||||
|
||||
SourceFiles
|
||||
RanzMarshall.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -53,6 +137,20 @@ class RanzMarshall
|
||||
:
|
||||
public HeatTransferModel<CloudType>
|
||||
{
|
||||
// Private Data
|
||||
|
||||
//- Correlation coefficient
|
||||
const scalar a_;
|
||||
|
||||
//- Correlation coefficient
|
||||
const scalar b_;
|
||||
|
||||
//- Correlation exponent of particle Reynolds number
|
||||
const scalar m_;
|
||||
|
||||
//- Correlation exponent of Prandtl number
|
||||
const scalar n_;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -60,12 +158,18 @@ public:
|
||||
TypeName("RanzMarshall");
|
||||
|
||||
|
||||
// Generated Methods
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const RanzMarshall&) = delete;
|
||||
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from dictionary
|
||||
RanzMarshall(const dictionary& dict, CloudType& cloud);
|
||||
|
||||
//- Construct copy
|
||||
//- Copy construct
|
||||
RanzMarshall(const RanzMarshall<CloudType>& im);
|
||||
|
||||
//- Construct and return a clone
|
||||
@ -79,14 +183,14 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~RanzMarshall();
|
||||
virtual ~RanzMarshall() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
// Evaluation
|
||||
|
||||
//- Nusselt number
|
||||
//- Return Nusselt number
|
||||
virtual scalar Nu
|
||||
(
|
||||
const scalar Re,
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "basicSprayCloud.H"
|
||||
|
||||
#include "makeReactingParcelCloudFunctionObjects.H" // Reacting variant
|
||||
#include "makeReactingParcelCloudFunctionObjects.H"
|
||||
|
||||
// Kinematic
|
||||
#include "makeThermoParcelForces.H" // thermo variant
|
||||
@ -59,7 +59,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeParcelCloudFunctionObjects(basicSprayCloud);
|
||||
makeReactingParcelCloudFunctionObjects(basicSprayCloud);
|
||||
|
||||
// Kinematic sub-models
|
||||
makeThermoParcelForces(basicSprayCloud);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2020 OpenCFD Ltd.
|
||||
Copyright (C) 2020-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -199,6 +199,18 @@ makeThermos
|
||||
specie
|
||||
);
|
||||
|
||||
makeThermos
|
||||
(
|
||||
rhoThermo,
|
||||
heRhoThermo,
|
||||
pureMixture,
|
||||
tabulatedTransport,
|
||||
sensibleEnthalpy,
|
||||
hPolynomialThermo,
|
||||
icoPolynomial,
|
||||
specie
|
||||
);
|
||||
|
||||
makeThermos
|
||||
(
|
||||
rhoThermo,
|
||||
@ -563,6 +575,18 @@ makeThermos
|
||||
specie
|
||||
);
|
||||
|
||||
makeThermos
|
||||
(
|
||||
rhoThermo,
|
||||
heRhoThermo,
|
||||
pureMixture,
|
||||
tabulatedTransport,
|
||||
sensibleInternalEnergy,
|
||||
hPolynomialThermo,
|
||||
icoPolynomial,
|
||||
specie
|
||||
);
|
||||
|
||||
makeThermos
|
||||
(
|
||||
rhoThermo,
|
||||
|
||||
8
tutorials/lagrangian/sprayFoam/aachenBomb/Allclean
Executable file
8
tutorials/lagrangian/sprayFoam/aachenBomb/Allclean
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cleanCase0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
12
tutorials/lagrangian/sprayFoam/aachenBomb/Allrun
Executable file
12
tutorials/lagrangian/sprayFoam/aachenBomb/Allrun
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
restore0Dir
|
||||
|
||||
runApplication blockMesh
|
||||
|
||||
runApplication $(getApplication)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -232,6 +232,21 @@ cloudFunctions
|
||||
{
|
||||
type WeberNumber;
|
||||
}
|
||||
|
||||
ReynoldsNumber1
|
||||
{
|
||||
type ReynoldsNumber;
|
||||
}
|
||||
|
||||
NusseltNumber1
|
||||
{
|
||||
type NusseltNumber;
|
||||
}
|
||||
|
||||
HeatTransferCoeff1
|
||||
{
|
||||
type HeatTransferCoeff;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user