/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation Copyright (C) 2021-2023 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . Class Foam::ThermoSurfaceFilm Group grpLagrangianIntermediateSurfaceFilmSubModels Description Thermo parcel surface film model. SourceFiles ThermoSurfaceFilm.C ThermoSurfaceFilmI.H \*---------------------------------------------------------------------------*/ #ifndef Foam_ThermoSurfaceFilm_H #define Foam_ThermoSurfaceFilm_H #include "KinematicSurfaceFilm.H" #include "UPtrList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { /*---------------------------------------------------------------------------*\ Class ThermoSurfaceFilm Declaration \*---------------------------------------------------------------------------*/ template class ThermoSurfaceFilm : public KinematicSurfaceFilm { protected: // Data Types //- Convenience typedef to the cloud's parcel type typedef typename CloudType::parcelType parcelType; typedef typename regionModels::areaSurfaceFilmModels::liquidFilmBase areaFilm; typedef typename regionModels::surfaceFilmModels::surfaceFilmRegionModel regionFilm; // Protected Data //- Reference to the cloud thermo package const SLGThermo& thermo_; // Cached injector fields per film patch //- Film temperature / patch face scalarField TFilmPatch_; //- Film specific heat capacity / patch face scalarField CpFilmPatch_; // Protected Member Functions // Injection from sheet (ejection) helper functions //- Cache the film fields in preparation for injection virtual void cacheFilmFields ( const label filmPatchi, const label primaryPatchi, const regionFilm& ); //- Cache the finite area film fields in preparation for injection virtual void cacheFilmFields(const areaFilm&); //- Set the individual parcel properties virtual void setParcelProperties ( parcelType& p, const label filmFacei ) const; public: //- Runtime type information TypeName("thermoSurfaceFilm"); // Constructors //- Construct from components ThermoSurfaceFilm(const dictionary& dict, CloudType& owner); //- Construct copy ThermoSurfaceFilm(const ThermoSurfaceFilm& sfm); //- Construct and return a clone using supplied owner cloud virtual autoPtr> clone() const { return autoPtr> ( new ThermoSurfaceFilm(*this) ); } //- Destructor virtual ~ThermoSurfaceFilm() = default; // Member Functions // Interaction models //- Absorb parcel into film template void absorbInteraction ( filmType&, const parcelType& p, const polyPatch& pp, const label facei, const scalar mass, bool& keepParticle ); // Evaluation //- Transfer parcel from cloud to surface film // Returns true if parcel is to be transferred virtual bool transferParcel ( parcelType& p, const polyPatch& pp, bool& keepParticle ); // I-O //- Write surface film info virtual void info(); }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository #include "ThermoSurfaceFilm.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //