lagrangian: Refactored to remove direct dependency on surfaceFilm
The lagrangian<->surfaceFilm interface is now in the new src/parcelSurfaceFilmModels library.
This commit is contained in:
@ -67,7 +67,6 @@ MomentumTransportModels/Allwmake $targetType $*
|
||||
ThermophysicalTransportModels/Allwmake $targetType $*
|
||||
wmake $targetType radiationModels
|
||||
wmake $targetType combustionModels
|
||||
wmake $targetType surfaceFilmModels
|
||||
mesh/Allwmake $targetType $*
|
||||
renumber/Allwmake $targetType $*
|
||||
fvAgglomerationMethods/Allwmake $targetType $*
|
||||
@ -79,6 +78,9 @@ functionObjects/Allwmake $targetType $*
|
||||
|
||||
lagrangian/Allwmake $targetType $*
|
||||
|
||||
wmake $targetType surfaceFilmModels
|
||||
wmake $targetType parcelSurfaceFilmModels
|
||||
|
||||
wmake $targetType sixDoFRigidBodyMotion
|
||||
wmake $targetType sixDoFRigidBodyState
|
||||
wmake $targetType rigidBodyDynamics
|
||||
|
||||
@ -5,7 +5,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/parcel/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/DSMC/lnInclude \
|
||||
-I$(LIB_SRC)/surfaceFilmModels/lnInclude \
|
||||
-I$(LIB_SRC)/functionObjects/utilities/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
@ -15,5 +14,4 @@ LIB_LIBS = \
|
||||
-llagrangian \
|
||||
-llagrangianParcel \
|
||||
-llagrangianParcelTurbulence \
|
||||
-lsurfaceFilmModels \
|
||||
-lutilityFunctionObjects
|
||||
|
||||
@ -113,9 +113,6 @@ clouds/Templates/MomentumCloud/cloudSolution/cloudSolution.C
|
||||
# averaging methods
|
||||
submodels/MPPIC/AveragingMethods/makeAveragingMethods.C
|
||||
|
||||
# surface films
|
||||
submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilmBase.C
|
||||
|
||||
# fvModels
|
||||
fvModels/clouds/clouds.C
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/multicomponentThermo/lnInclude \
|
||||
-I$(LIB_SRC)/radiationModels/lnInclude \
|
||||
-I$(LIB_SRC)/surfaceFilmModels/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude
|
||||
@ -21,7 +20,6 @@ LIB_LIBS = \
|
||||
-lmulticomponentThermophysicalModels \
|
||||
-lradiationModels \
|
||||
-lphysicalProperties \
|
||||
-lsurfaceFilmModels \
|
||||
-lsampling \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2020-2021 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2020-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -52,6 +52,8 @@ Foam::autoPtr<Foam::parcelCloud> Foam::parcelCloud::New
|
||||
|
||||
Info<< "Selecting " << parcelCloud::typeName << " " << type << endl;
|
||||
|
||||
libs.open(dict, "libs");
|
||||
|
||||
viscosityConstructorTable::iterator cstrIter =
|
||||
viscosityConstructorTablePtr_->find(type);
|
||||
|
||||
@ -93,6 +95,8 @@ Foam::autoPtr<Foam::parcelCloud> Foam::parcelCloud::New
|
||||
|
||||
Info<< "Selecting " << parcelCloud::typeName << " " << type << endl;
|
||||
|
||||
libs.open(dict, "libs");
|
||||
|
||||
thermoConstructorTable::iterator cstrIter =
|
||||
thermoConstructorTablePtr_->find(type);
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -33,7 +33,7 @@ License
|
||||
#include "makeReactingMultiphaseParcelInjectionModels.H" // MP variant
|
||||
#include "makeParcelPatchInteractionModels.H"
|
||||
#include "makeReactingMultiphaseParcelStochasticCollisionModels.H" // MP variant
|
||||
#include "makeReactingParcelSurfaceFilmModels.H" // Reacting variant
|
||||
#include "makeParcelSurfaceFilmModels.H"
|
||||
|
||||
// Thermodynamic
|
||||
#include "makeParcelHeatTransferModels.H"
|
||||
@ -59,7 +59,7 @@ makeReactingMultiphaseParcelStochasticCollisionModels
|
||||
(
|
||||
reactingMultiphaseCloud
|
||||
);
|
||||
makeReactingParcelSurfaceFilmModels(reactingMultiphaseCloud);
|
||||
makeParcelSurfaceFilmModels(reactingMultiphaseCloud);
|
||||
|
||||
// Thermo sub-models
|
||||
makeParcelHeatTransferModels(reactingMultiphaseCloud);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -33,7 +33,7 @@ License
|
||||
#include "makeReactingParcelInjectionModels.H" // Reacting variant
|
||||
#include "makeParcelPatchInteractionModels.H"
|
||||
#include "makeParcelStochasticCollisionModels.H"
|
||||
#include "makeReactingParcelSurfaceFilmModels.H" // Reacting variant
|
||||
#include "makeParcelSurfaceFilmModels.H"
|
||||
|
||||
// Thermodynamic
|
||||
#include "makeParcelHeatTransferModels.H"
|
||||
@ -52,7 +52,7 @@ makeParcelDispersionModels(reactingCloud);
|
||||
makeReactingParcelInjectionModels(reactingCloud);
|
||||
makeParcelPatchInteractionModels(reactingCloud);
|
||||
makeParcelStochasticCollisionModels(reactingCloud);
|
||||
makeReactingParcelSurfaceFilmModels(reactingCloud);
|
||||
makeParcelSurfaceFilmModels(reactingCloud);
|
||||
|
||||
// Thermo sub-models
|
||||
makeParcelHeatTransferModels(reactingCloud);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -40,7 +40,7 @@ License
|
||||
|
||||
// Reacting
|
||||
#include "makeReactingParcelPhaseChangeModels.H"
|
||||
#include "makeReactingParcelSurfaceFilmModels.H"
|
||||
#include "makeParcelSurfaceFilmModels.H"
|
||||
|
||||
// Spray
|
||||
#include "DistortedSphereDragForce.H"
|
||||
@ -64,7 +64,7 @@ makeParcelCompositionModels(sprayCloud);
|
||||
|
||||
// Reacting sub-models
|
||||
makeReactingParcelPhaseChangeModels(sprayCloud);
|
||||
makeReactingParcelSurfaceFilmModels(sprayCloud);
|
||||
makeParcelSurfaceFilmModels(sprayCloud);
|
||||
|
||||
// Spray sub-models
|
||||
makeParticleForceModelType(DistortedSphereDragForce, sprayCloud);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2021 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -33,7 +33,7 @@ License
|
||||
#include "makeThermoParcelInjectionModels.H"
|
||||
#include "makeParcelPatchInteractionModels.H"
|
||||
#include "makeParcelStochasticCollisionModels.H"
|
||||
#include "makeThermoParcelSurfaceFilmModels.H" // thermo variant
|
||||
#include "makeParcelSurfaceFilmModels.H"
|
||||
|
||||
// Thermodynamic
|
||||
#include "makeParcelHeatTransferModels.H"
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
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 "thermoCloud.H"
|
||||
#include "makeThermoParcelSurfaceFilmModels.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeThermoParcelSurfaceFilmModels(thermoCloud);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -28,16 +28,11 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "NoSurfaceFilm.H"
|
||||
#include "ThermoSurfaceFilm.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define makeParcelSurfaceFilmModels(CloudType) \
|
||||
\
|
||||
makeSurfaceFilmModel(CloudType); \
|
||||
\
|
||||
makeSurfaceFilmModelType(NoSurfaceFilm, CloudType); \
|
||||
#define makeThermoParcelSurfaceFilmModels(CloudType) \
|
||||
makeSurfaceFilmModelType(ThermoSurfaceFilm, CloudType);
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,6 +24,9 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "ParticleErosion.H"
|
||||
#include "mathematicalConstants.H"
|
||||
|
||||
using namespace Foam::constant;
|
||||
|
||||
// * * * * * * * * * * * * * Protectd Member Functions * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -30,6 +30,7 @@ License
|
||||
#include "fvmLaplacian.H"
|
||||
#include "fvcReconstruct.H"
|
||||
#include "volPointInterpolation.H"
|
||||
#include "fixedValueFvPatchFields.H"
|
||||
#include "zeroGradientFvPatchFields.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -29,14 +29,27 @@ License
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
Foam::UPtrList<Foam::surfaceFilm>&
|
||||
Foam::NoSurfaceFilm<CloudType>::surfaceFilmPtrs() const
|
||||
const Foam::labelList& Foam::NoSurfaceFilm<CloudType>::filmPatches() const
|
||||
{
|
||||
static UPtrList<surfaceFilm> null;
|
||||
static labelList null;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::NoSurfaceFilm<CloudType>::cacheFilmFields(const label filmi)
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::NoSurfaceFilm<CloudType>::setParcelProperties
|
||||
(
|
||||
parcelType& p,
|
||||
const label filmFacei
|
||||
) const
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
@ -81,15 +94,6 @@ bool Foam::NoSurfaceFilm<CloudType>::transferParcel
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::NoSurfaceFilm<CloudType>::setParcelProperties
|
||||
(
|
||||
parcelType&,
|
||||
const label
|
||||
) const
|
||||
{}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::NoSurfaceFilm<CloudType>::info(Ostream&)
|
||||
{}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -62,7 +62,17 @@ protected:
|
||||
// Protected Member Functions
|
||||
|
||||
//- Return pointers to the films
|
||||
virtual UPtrList<surfaceFilm>& surfaceFilmPtrs() const;
|
||||
virtual const labelList& filmPatches() const;
|
||||
|
||||
//- Cache the film fields in preparation for injection
|
||||
virtual void cacheFilmFields(const label filmi);
|
||||
|
||||
//- Set the individual parcel properties
|
||||
virtual void setParcelProperties
|
||||
(
|
||||
parcelType& p,
|
||||
const label filmFacei
|
||||
) const;
|
||||
|
||||
|
||||
public:
|
||||
@ -106,13 +116,6 @@ public:
|
||||
bool& keepParticle
|
||||
);
|
||||
|
||||
//- Set parcel properties
|
||||
virtual void setParcelProperties
|
||||
(
|
||||
parcelType& p,
|
||||
const label filmCelli
|
||||
) const;
|
||||
|
||||
|
||||
// I-O
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -24,64 +24,8 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "SurfaceFilmModel.H"
|
||||
#include "UPtrList.H"
|
||||
#include "surfaceFilm.H"
|
||||
#include "volFields.H"
|
||||
#include "surfaceFields.H"
|
||||
#include "mathematicalConstants.H"
|
||||
|
||||
using namespace Foam::constant;
|
||||
|
||||
|
||||
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::SurfaceFilmModel<CloudType>::cacheFilmFields
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const surfaceFilm& filmModel
|
||||
)
|
||||
{
|
||||
massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, massParcelPatch_);
|
||||
|
||||
diameterParcelPatch_ =
|
||||
filmModel.cloudDiameterTrans().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, diameterParcelPatch_);
|
||||
|
||||
UFilmPatch_ = filmModel.U().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, UFilmPatch_);
|
||||
|
||||
rhoFilmPatch_ = filmModel.rho().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, rhoFilmPatch_);
|
||||
|
||||
deltaFilmPatch_[primaryPatchi] =
|
||||
filmModel.delta().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, deltaFilmPatch_[primaryPatchi]);
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::SurfaceFilmModel<CloudType>::setParcelProperties
|
||||
(
|
||||
parcelType& p,
|
||||
const label filmFacei
|
||||
) const
|
||||
{
|
||||
// Set parcel properties
|
||||
scalar vol = mathematical::pi/6.0*pow3(diameterParcelPatch_[filmFacei]);
|
||||
p.d() = diameterParcelPatch_[filmFacei];
|
||||
p.U() = UFilmPatch_[filmFacei];
|
||||
p.rho() = rhoFilmPatch_[filmFacei];
|
||||
|
||||
p.nParticle() = massParcelPatch_[filmFacei]/p.rho()/vol;
|
||||
|
||||
if (ejectedParcelType_ >= 0)
|
||||
{
|
||||
p.typeId() = ejectedParcelType_;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
@ -93,9 +37,7 @@ Foam::SurfaceFilmModel<CloudType>::SurfaceFilmModel(CloudType& owner)
|
||||
ejectedParcelType_(0),
|
||||
massParcelPatch_(0),
|
||||
diameterParcelPatch_(0),
|
||||
UFilmPatch_(0),
|
||||
rhoFilmPatch_(0),
|
||||
deltaFilmPatch_(owner.mesh().boundary().size()),
|
||||
deltaFilmPatch_(0),
|
||||
nParcelsTransferred_(0),
|
||||
nParcelsInjected_(0)
|
||||
{}
|
||||
@ -117,9 +59,7 @@ Foam::SurfaceFilmModel<CloudType>::SurfaceFilmModel
|
||||
),
|
||||
massParcelPatch_(0),
|
||||
diameterParcelPatch_(0),
|
||||
UFilmPatch_(0),
|
||||
rhoFilmPatch_(0),
|
||||
deltaFilmPatch_(owner.mesh().boundary().size()),
|
||||
deltaFilmPatch_(),
|
||||
nParcelsTransferred_(0),
|
||||
nParcelsInjected_(0)
|
||||
{}
|
||||
@ -136,8 +76,6 @@ Foam::SurfaceFilmModel<CloudType>::SurfaceFilmModel
|
||||
ejectedParcelType_(sfm.ejectedParcelType_),
|
||||
massParcelPatch_(sfm.massParcelPatch_),
|
||||
diameterParcelPatch_(sfm.diameterParcelPatch_),
|
||||
UFilmPatch_(sfm.UFilmPatch_),
|
||||
rhoFilmPatch_(sfm.rhoFilmPatch_),
|
||||
deltaFilmPatch_(sfm.deltaFilmPatch_),
|
||||
nParcelsTransferred_(sfm.nParcelsTransferred_),
|
||||
nParcelsInjected_(sfm.nParcelsInjected_)
|
||||
@ -157,69 +95,60 @@ template<class CloudType>
|
||||
template<class TrackCloudType>
|
||||
void Foam::SurfaceFilmModel<CloudType>::inject(TrackCloudType& cloud)
|
||||
{
|
||||
forAll(surfaceFilmPtrs(), filmi)
|
||||
{
|
||||
const surfaceFilm& filmModel = surfaceFilmPtrs()[filmi];
|
||||
const labelList& filmPatches = this->filmPatches();
|
||||
|
||||
const labelList& filmPatches = filmModel.intCoupledPatchIDs();
|
||||
const labelList& primaryPatches = filmModel.primaryPatchIDs();
|
||||
forAll(filmPatches, filmi)
|
||||
{
|
||||
const label filmPatchi = filmPatches[filmi];
|
||||
|
||||
const fvMesh& mesh = this->owner().mesh();
|
||||
const polyBoundaryMesh& pbm = mesh.boundaryMesh();
|
||||
|
||||
forAll(filmPatches, i)
|
||||
const labelList& injectorCellsPatch = pbm[filmPatchi].faceCells();
|
||||
|
||||
cacheFilmFields(filmi);
|
||||
|
||||
const vectorField& Cf = mesh.C().boundaryField()[filmPatchi];
|
||||
const vectorField& Sf = mesh.Sf().boundaryField()[filmPatchi];
|
||||
const scalarField& magSf = mesh.magSf().boundaryField()[filmPatchi];
|
||||
|
||||
forAll(injectorCellsPatch, j)
|
||||
{
|
||||
const label filmPatchi = filmPatches[i];
|
||||
const label primaryPatchi = primaryPatches[i];
|
||||
|
||||
const labelList& injectorCellsPatch =
|
||||
pbm[primaryPatchi].faceCells();
|
||||
|
||||
cacheFilmFields(filmPatchi, primaryPatchi, filmModel);
|
||||
|
||||
const vectorField& Cf = mesh.C().boundaryField()[primaryPatchi];
|
||||
const vectorField& Sf = mesh.Sf().boundaryField()[primaryPatchi];
|
||||
const scalarField& magSf =
|
||||
mesh.magSf().boundaryField()[primaryPatchi];
|
||||
|
||||
forAll(injectorCellsPatch, j)
|
||||
if (massParcelPatch_[j] > 0)
|
||||
{
|
||||
if (massParcelPatch_[j] > 0)
|
||||
const label celli = injectorCellsPatch[j];
|
||||
|
||||
const scalar offset =
|
||||
max
|
||||
(
|
||||
diameterParcelPatch_[j],
|
||||
deltaFilmPatch_[j]
|
||||
);
|
||||
const point pos = Cf[j] - 1.1*offset*Sf[j]/magSf[j];
|
||||
|
||||
// Create a new parcel
|
||||
parcelType* pPtr =
|
||||
new parcelType(this->owner().pMesh(), pos, celli);
|
||||
|
||||
// Check/set new parcel thermo properties
|
||||
cloud.setParcelThermoProperties(*pPtr);
|
||||
|
||||
setParcelProperties(*pPtr, j);
|
||||
|
||||
if (pPtr->nParticle() > 0.001)
|
||||
{
|
||||
const label celli = injectorCellsPatch[j];
|
||||
// Check new parcel properties
|
||||
cloud.checkParcelProperties(*pPtr, false);
|
||||
|
||||
const scalar offset =
|
||||
max
|
||||
(
|
||||
diameterParcelPatch_[j],
|
||||
deltaFilmPatch_[primaryPatchi][j]
|
||||
);
|
||||
const point pos = Cf[j] - 1.1*offset*Sf[j]/magSf[j];
|
||||
// Add the new parcel to the cloud
|
||||
cloud.addParticle(pPtr);
|
||||
|
||||
// Create a new parcel
|
||||
parcelType* pPtr =
|
||||
new parcelType(this->owner().pMesh(), pos, celli);
|
||||
|
||||
// Check/set new parcel thermo properties
|
||||
cloud.setParcelThermoProperties(*pPtr);
|
||||
|
||||
setParcelProperties(*pPtr, j);
|
||||
|
||||
if (pPtr->nParticle() > 0.001)
|
||||
{
|
||||
// Check new parcel properties
|
||||
cloud.checkParcelProperties(*pPtr, false);
|
||||
|
||||
// Add the new parcel to the cloud
|
||||
cloud.addParticle(pPtr);
|
||||
|
||||
nParcelsInjected_++;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: cache mass and re-distribute?
|
||||
delete pPtr;
|
||||
}
|
||||
nParcelsInjected_++;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: cache mass and re-distribute?
|
||||
delete pPtr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -36,21 +36,16 @@ SourceFiles
|
||||
#ifndef SurfaceFilmModel_H
|
||||
#define SurfaceFilmModel_H
|
||||
|
||||
#include "IOdictionary.H"
|
||||
#include "autoPtr.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
#include "CloudSubModelBase.H"
|
||||
#include "surfaceMesh.H"
|
||||
#include "dimensionedTypes.H"
|
||||
#include "polyPatch.H"
|
||||
#include "runTimeSelectionTables.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// Forward declaration of classes
|
||||
class surfaceFilm;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class SurfaceFilmModel Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -84,14 +79,8 @@ protected:
|
||||
//- Parcel diameter / patch face
|
||||
scalarField diameterParcelPatch_;
|
||||
|
||||
//- Film velocity / patch face
|
||||
vectorField UFilmPatch_;
|
||||
|
||||
//- Film density / patch face
|
||||
scalarField rhoFilmPatch_;
|
||||
|
||||
//- Film height of all film patches / patch face
|
||||
List<scalarField> deltaFilmPatch_;
|
||||
scalarField deltaFilmPatch_;
|
||||
|
||||
|
||||
// Counters
|
||||
@ -105,24 +94,18 @@ protected:
|
||||
|
||||
// Protected functions
|
||||
|
||||
//- Return pointers to the films
|
||||
virtual UPtrList<surfaceFilm>&
|
||||
surfaceFilmPtrs() const = 0;
|
||||
//- Return list of film patches
|
||||
virtual const labelList& filmPatches() const = 0;
|
||||
|
||||
//- Cache the film fields in preparation for injection
|
||||
virtual void cacheFilmFields
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const surfaceFilm&
|
||||
);
|
||||
virtual void cacheFilmFields(const label filmi) = 0;
|
||||
|
||||
//- Set the individual parcel properties
|
||||
virtual void setParcelProperties
|
||||
(
|
||||
parcelType& p,
|
||||
const label filmFacei
|
||||
) const;
|
||||
) const = 0;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -25,11 +25,10 @@ License
|
||||
|
||||
#include "ThermoSurfaceFilm.H"
|
||||
#include "thermoSurfaceFilm.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "mathematicalConstants.H"
|
||||
#include "Pstream.H"
|
||||
#include "ThermoCloud.H"
|
||||
#include "meshTools.H"
|
||||
#include "mathematicalConstants.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
using namespace Foam::constant::mathematical;
|
||||
|
||||
@ -464,6 +463,8 @@ Foam::ThermoSurfaceFilm<CloudType>::surfaceFilmPtrs() const
|
||||
|
||||
// Cache pointers to the surface film models
|
||||
surfaceFilms_.resize(surfaceFilmNames_.size());
|
||||
filmPatches_.setSize(surfaceFilms_.size());
|
||||
|
||||
forAll(surfaceFilms_, filmi)
|
||||
{
|
||||
surfaceFilms_.set
|
||||
@ -474,6 +475,16 @@ Foam::ThermoSurfaceFilm<CloudType>::surfaceFilmPtrs() const
|
||||
surfaceFilmNames_[filmi] + "Properties"
|
||||
)
|
||||
);
|
||||
|
||||
if (surfaceFilms_[filmi].primaryPatchIDs().size() > 1)
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Number of film primary patch IDs > 1 for film "
|
||||
<< surfaceFilms_[filmi].name()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
filmPatches_[filmi] = surfaceFilms_[filmi].primaryPatchIDs()[0];
|
||||
}
|
||||
}
|
||||
|
||||
@ -482,19 +493,38 @@ Foam::ThermoSurfaceFilm<CloudType>::surfaceFilmPtrs() const
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::cacheFilmFields
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const surfaceFilm& filmModel
|
||||
)
|
||||
const Foam::labelList& Foam::ThermoSurfaceFilm<CloudType>::filmPatches() const
|
||||
{
|
||||
SurfaceFilmModel<CloudType>::cacheFilmFields
|
||||
(
|
||||
filmPatchi,
|
||||
primaryPatchi,
|
||||
filmModel
|
||||
);
|
||||
// Ensure filmPatches_ has been initialise
|
||||
surfaceFilmPtrs();
|
||||
|
||||
return filmPatches_;
|
||||
}
|
||||
|
||||
|
||||
template<class CloudType>
|
||||
void Foam::ThermoSurfaceFilm<CloudType>::cacheFilmFields(const label filmi)
|
||||
{
|
||||
const surfaceFilm& filmModel = this->surfaceFilmPtrs()[filmi];
|
||||
const label filmPatchi = filmModel.intCoupledPatchIDs()[0];
|
||||
|
||||
this->massParcelPatch_ =
|
||||
filmModel.cloudMassTrans().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, this->massParcelPatch_);
|
||||
|
||||
this->diameterParcelPatch_ =
|
||||
filmModel.cloudDiameterTrans().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, this->diameterParcelPatch_);
|
||||
|
||||
UFilmPatch_ = filmModel.U().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, UFilmPatch_);
|
||||
|
||||
rhoFilmPatch_ = filmModel.rho().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, rhoFilmPatch_);
|
||||
|
||||
this->deltaFilmPatch_ =
|
||||
filmModel.delta().boundaryField()[filmPatchi];
|
||||
filmModel.toPrimary(filmPatchi, this->deltaFilmPatch_);
|
||||
|
||||
const thermoSurfaceFilm& thermalFilmModel =
|
||||
refCast<const thermoSurfaceFilm>(filmModel);
|
||||
@ -515,7 +545,19 @@ void Foam::ThermoSurfaceFilm<CloudType>::setParcelProperties
|
||||
const label filmFacei
|
||||
) const
|
||||
{
|
||||
SurfaceFilmModel<CloudType>::setParcelProperties(p, filmFacei);
|
||||
// Set parcel properties
|
||||
const scalar vol =
|
||||
mathematical::pi/6.0*pow3(this->diameterParcelPatch_[filmFacei]);
|
||||
p.d() = this->diameterParcelPatch_[filmFacei];
|
||||
p.U() = UFilmPatch_[filmFacei];
|
||||
p.rho() = rhoFilmPatch_[filmFacei];
|
||||
|
||||
p.nParticle() = this->massParcelPatch_[filmFacei]/p.rho()/vol;
|
||||
|
||||
if (this->ejectedParcelType_ >= 0)
|
||||
{
|
||||
p.typeId() = this->ejectedParcelType_;
|
||||
}
|
||||
|
||||
// Set parcel properties
|
||||
p.T() = TFilmPatch_[filmFacei];
|
||||
@ -543,6 +585,8 @@ Foam::ThermoSurfaceFilm<CloudType>::ThermoSurfaceFilm
|
||||
)
|
||||
),
|
||||
surfaceFilms_(),
|
||||
UFilmPatch_(0),
|
||||
rhoFilmPatch_(0),
|
||||
TFilmPatch_(0),
|
||||
CpFilmPatch_(0),
|
||||
interactionType_
|
||||
@ -584,6 +628,8 @@ Foam::ThermoSurfaceFilm<CloudType>::ThermoSurfaceFilm
|
||||
rndGen_(sfm.rndGen_),
|
||||
surfaceFilmNames_(sfm.surfaceFilmNames_),
|
||||
surfaceFilms_(),
|
||||
UFilmPatch_(sfm.UFilmPatch_),
|
||||
rhoFilmPatch_(sfm.rhoFilmPatch_),
|
||||
TFilmPatch_(sfm.TFilmPatch_),
|
||||
CpFilmPatch_(sfm.CpFilmPatch_),
|
||||
interactionType_(sfm.interactionType_),
|
||||
@ -646,7 +692,7 @@ bool Foam::ThermoSurfaceFilm<CloudType>::transferParcel
|
||||
}
|
||||
case interactionType::splashBai:
|
||||
{
|
||||
if (this->deltaFilmPatch_[patchi][facei] < deltaWet_)
|
||||
if (this->deltaFilmPatch_[facei] < deltaWet_)
|
||||
{
|
||||
drySplashInteraction
|
||||
(
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -56,6 +56,11 @@ SourceFiles
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// Forward declaration of classes
|
||||
class surfaceFilm;
|
||||
class Random;
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class ThermoSurfaceFilmBase Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
@ -87,9 +92,15 @@ class ThermoSurfaceFilm
|
||||
public SurfaceFilmModel<CloudType>,
|
||||
public ThermoSurfaceFilmBase
|
||||
{
|
||||
// Private Member Functions
|
||||
|
||||
//- Return pointers to the films
|
||||
UPtrList<surfaceFilm>& surfaceFilmPtrs() const;
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
// Protected Data
|
||||
|
||||
//- Convenience typedef to the cloud's parcel type
|
||||
typedef typename CloudType::parcelType parcelType;
|
||||
@ -106,9 +117,18 @@ protected:
|
||||
//- Pointers to the surface films
|
||||
mutable UPtrList<surfaceFilm> surfaceFilms_;
|
||||
|
||||
//- List of film patches
|
||||
mutable labelList filmPatches_;
|
||||
|
||||
|
||||
// Cached injector fields per film patch
|
||||
|
||||
//- Film velocity / patch face
|
||||
vectorField UFilmPatch_;
|
||||
|
||||
//- Film density / patch face
|
||||
scalarField rhoFilmPatch_;
|
||||
|
||||
//- Film temperature / patch face
|
||||
scalarField TFilmPatch_;
|
||||
|
||||
@ -219,17 +239,11 @@ protected:
|
||||
bool& keepParticle
|
||||
);
|
||||
|
||||
|
||||
//- Return pointers to the films
|
||||
virtual UPtrList<surfaceFilm>& surfaceFilmPtrs() const;
|
||||
virtual const labelList& filmPatches() const;
|
||||
|
||||
//- Cache the film fields in preparation for injection
|
||||
virtual void cacheFilmFields
|
||||
(
|
||||
const label filmPatchi,
|
||||
const label primaryPatchi,
|
||||
const surfaceFilm& filmModel
|
||||
);
|
||||
virtual void cacheFilmFields(const label filmi);
|
||||
|
||||
//- Set the individual parcel properties
|
||||
virtual void setParcelProperties
|
||||
|
||||
@ -10,7 +10,6 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/MomentumTransportModels/momentumTransportModels/lnInclude \
|
||||
-I$(LIB_SRC)/MomentumTransportModels/incompressible/lnInclude \
|
||||
-I$(LIB_SRC)/MomentumTransportModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/surfaceFilmModels/lnInclude \
|
||||
-I$(LIB_SRC)/sampling/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude
|
||||
@ -28,7 +27,6 @@ LIB_LIBS = \
|
||||
-lincompressibleMomentumTransportModels \
|
||||
-lcompressibleMomentumTransportModels \
|
||||
-lphysicalProperties \
|
||||
-lsurfaceFilmModels \
|
||||
-lsampling \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools
|
||||
|
||||
7
src/parcelSurfaceFilmModels/Make/files
Normal file
7
src/parcelSurfaceFilmModels/Make/files
Normal file
@ -0,0 +1,7 @@
|
||||
ThermoSurfaceFilmBase.C
|
||||
makeThermoParcelSurfaceFilmModels.C
|
||||
makeReactingParcelSurfaceFilmModels.C
|
||||
makeReactingMultiphaseParcelSurfaceFilmModels.C
|
||||
makeSprayParcelSurfaceFilmModels.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libparcelSurfaceFilmModels
|
||||
23
src/parcelSurfaceFilmModels/Make/options
Normal file
23
src/parcelSurfaceFilmModels/Make/options
Normal file
@ -0,0 +1,23 @@
|
||||
EXE_INC = \
|
||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||
-I$(LIB_SRC)/lagrangian/parcel/lnInclude \
|
||||
-I$(LIB_SRC)/physicalProperties/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/multicomponentThermo/lnInclude \
|
||||
-I$(LIB_SRC)/surfaceFilmModels/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
-llagrangian \
|
||||
-llagrangianParcel \
|
||||
-lphysicalProperties \
|
||||
-lspecie \
|
||||
-lfluidThermophysicalModels \
|
||||
-lthermophysicalProperties \
|
||||
-lmulticomponentThermophysicalModels \
|
||||
-lsurfaceFilmModels \
|
||||
-lfiniteVolume \
|
||||
-lmeshTools
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2022 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2022-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -0,0 +1,33 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
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 "reactingMultiphaseCloud.H"
|
||||
#include "makeReactingParcelSurfaceFilmModels.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeReactingParcelSurfaceFilmModels(reactingMultiphaseCloud);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,33 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
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 "reactingCloud.H"
|
||||
#include "makeReactingParcelSurfaceFilmModels.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeReactingParcelSurfaceFilmModels(reactingCloud);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -28,15 +28,11 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "NoSurfaceFilm.H"
|
||||
#include "ThermoSurfaceFilm.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define makeReactingParcelSurfaceFilmModels(CloudType) \
|
||||
\
|
||||
makeSurfaceFilmModel(CloudType); \
|
||||
makeSurfaceFilmModelType(NoSurfaceFilm, CloudType); \
|
||||
makeSurfaceFilmModelType(ThermoSurfaceFilm, CloudType);
|
||||
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
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 "sprayCloud.H"
|
||||
#include "makeReactingParcelSurfaceFilmModels.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeReactingParcelSurfaceFilmModels(sprayCloud);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,33 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
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 "thermoCloud.H"
|
||||
#include "makeThermoParcelSurfaceFilmModels.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
makeThermoParcelSurfaceFilmModels(thermoCloud);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,42 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
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 makeThermoParcelSurfaceFilmModels_H
|
||||
#define makeThermoParcelSurfaceFilmModels_H
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "ThermoSurfaceFilm.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define makeThermoParcelSurfaceFilmModels(CloudType) \
|
||||
makeSurfaceFilmModelType(ThermoSurfaceFilm, CloudType);
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -16,6 +16,8 @@ FoamFile
|
||||
|
||||
type thermoCloud;
|
||||
|
||||
libs ("libparcelSurfaceFilmModels.so");
|
||||
|
||||
solution
|
||||
{
|
||||
coupled no;
|
||||
|
||||
@ -108,13 +108,7 @@ boundary
|
||||
(1 2 21 20)
|
||||
(12 11 30 31)
|
||||
(13 12 31 32)
|
||||
);
|
||||
}
|
||||
cylinder
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
|
||||
(5 0 19 24)
|
||||
(10 5 24 29)
|
||||
(16 10 29 35)
|
||||
|
||||
@ -15,7 +15,7 @@ FoamFile
|
||||
|
||||
region wallFilm;
|
||||
|
||||
patches (walls cylinder);
|
||||
patches (walls);
|
||||
|
||||
extrudeModel linearNormal;
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
"(sides|frontAndBack|walls_top|cylinder_top)"
|
||||
"(sides|frontAndBack|walls_top)"
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
"(walls_top|cylinder_top)"
|
||||
walls_top
|
||||
{
|
||||
type slip;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ boundaryField
|
||||
{
|
||||
#includeEtc "caseDicts/setConstraintTypes"
|
||||
|
||||
"(sides|frontAndBack|walls_top|cylinder_top)"
|
||||
"(sides|frontAndBack|walls_top)"
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
|
||||
@ -16,6 +16,8 @@ FoamFile
|
||||
|
||||
type reactingCloud;
|
||||
|
||||
libs ("libparcelSurfaceFilmModels.so");
|
||||
|
||||
solution
|
||||
{
|
||||
coupled no;
|
||||
|
||||
@ -108,13 +108,7 @@ boundary
|
||||
(1 2 21 20)
|
||||
(12 11 30 31)
|
||||
(13 12 31 32)
|
||||
);
|
||||
}
|
||||
cylinder
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
|
||||
(5 0 19 24)
|
||||
(10 5 24 29)
|
||||
(16 10 29 35)
|
||||
|
||||
@ -15,7 +15,7 @@ FoamFile
|
||||
|
||||
region wallFilm;
|
||||
|
||||
patches (walls cylinder);
|
||||
patches (walls);
|
||||
|
||||
extrudeModel linearNormal;
|
||||
|
||||
|
||||
@ -16,6 +16,8 @@ FoamFile
|
||||
|
||||
type reactingCloud;
|
||||
|
||||
libs ("libparcelSurfaceFilmModels.so");
|
||||
|
||||
solution
|
||||
{
|
||||
coupled yes;
|
||||
|
||||
@ -46,7 +46,7 @@ boundary
|
||||
(1 5 4 0)
|
||||
);
|
||||
}
|
||||
floor
|
||||
boxes
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
@ -54,12 +54,6 @@ boundary
|
||||
(0 3 2 1)
|
||||
);
|
||||
}
|
||||
boxes
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
();
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ FoamFile
|
||||
|
||||
region wallFilm;
|
||||
|
||||
patches (floor boxes);
|
||||
patches (boxes);
|
||||
|
||||
extrudeModel linearNormal;
|
||||
|
||||
|
||||
@ -16,6 +16,8 @@ FoamFile
|
||||
|
||||
type reactingCloud;
|
||||
|
||||
libs ("libparcelSurfaceFilmModels.so");
|
||||
|
||||
solution
|
||||
{
|
||||
coupled no;
|
||||
|
||||
Reference in New Issue
Block a user