diff --git a/src/lagrangian/intermediate/Make/options b/src/lagrangian/intermediate/Make/options index db20632300..b98ad82181 100644 --- a/src/lagrangian/intermediate/Make/options +++ b/src/lagrangian/intermediate/Make/options @@ -17,7 +17,8 @@ EXE_INC = \ -I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \ -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ -I$(LIB_SRC)/turbulenceModels/compressible/LES/lnInclude \ - -I$(LIB_SRC)/surfaceFilmModels/lnInclude \ + -I$(LIB_SRC)/regionModels/regionModel/lnInclude \ + -I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude LIB_LIBS = \ diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C index a454c5daad..f529722113 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.C @@ -133,29 +133,33 @@ void Foam::SurfaceFilmModel::inject(TrackData& td) } // Retrieve the film model from the owner database - const surfaceFilmModels::surfaceFilmModel& filmModel = + const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel = this->owner().db().objectRegistry::template lookupObject - + ( "surfaceFilmProperties" ); - const labelList& filmPatches = filmModel.filmBottomPatchIDs(); + if (!filmModel.active()) + { + return; + } + + const labelList& filmPatches = filmModel.intCoupledPatchIDs(); const labelList& primaryPatches = filmModel.primaryPatchIDs(); + const polyBoundaryMesh& pbm = this->owner().mesh().boundaryMesh(); + forAll(filmPatches, i) { - const label primaryPatchI = primaryPatches[i]; - const directMappedWallPolyPatch& wpp = - refCast - ( - this->owner().mesh().boundaryMesh()[primaryPatchI] - ); - - const labelList& injectorCellsPatch = wpp.faceCells(); - const label filmPatchI = filmPatches[i]; - const mapDistribute& distMap = wpp.map(); + const label primaryPatchI = primaryPatches[i]; + const directMappedPatchBase& mapPatch = + filmModel.mappedPatches()[filmPatchI]; + const mapDistribute& distMap = mapPatch.map(); + + const labelList& injectorCellsPatch = pbm[primaryPatchI].faceCells(); + cacheFilmFields(filmPatchI, primaryPatchI, distMap, filmModel); forAll(injectorCellsPatch, j) @@ -209,7 +213,7 @@ void Foam::SurfaceFilmModel::cacheFilmFields const label filmPatchI, const label primaryPatchI, const mapDistribute& distMap, - const surfaceFilmModels::surfaceFilmModel& filmModel + const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ) { massParcelPatch_ = filmModel.massForPrimary().boundaryField()[filmPatchI]; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H index 35c4157512..4421e169c7 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/SurfaceFilmModel/SurfaceFilmModel/SurfaceFilmModel.H @@ -47,9 +47,12 @@ namespace Foam { // Forward declaration of classes -namespace surfaceFilmModels +namespace regionModels { - class surfaceFilmModel; + namespace surfaceFilmModels + { + class surfaceFilmModel; + } } class mapDistribute; @@ -114,7 +117,7 @@ protected: const label filmPatchI, const label primaryPatchI, const mapDistribute& distMap, - const surfaceFilmModels::surfaceFilmModel& filmModel + const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ); //- Set the individual parcel properties diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C index c0d9f69e77..679a930594 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -141,7 +141,7 @@ Foam::vector Foam::ThermoSurfaceFilm::splashDirection template void Foam::ThermoSurfaceFilm::absorbInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, const parcelType& p, const polyPatch& pp, const label faceI, @@ -218,7 +218,7 @@ void Foam::ThermoSurfaceFilm::bounceInteraction template void Foam::ThermoSurfaceFilm::drySplashInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, const parcelType& p, const polyPatch& pp, const label faceI, @@ -274,7 +274,7 @@ void Foam::ThermoSurfaceFilm::drySplashInteraction template void Foam::ThermoSurfaceFilm::wetSplashInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, parcelType& p, const polyPatch& pp, const label faceI, @@ -331,6 +331,7 @@ void Foam::ThermoSurfaceFilm::wetSplashInteraction U = -epsilon*(Un) + 5/7*(Ut); keepParticle = true; + return; } else if ((We >= 20) && (We < Wec)) // spread - assume absorb { @@ -350,7 +351,7 @@ void Foam::ThermoSurfaceFilm::wetSplashInteraction template void Foam::ThermoSurfaceFilm::splashInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, const parcelType& p, const polyPatch& pp, const label faceI, @@ -390,8 +391,8 @@ void Foam::ThermoSurfaceFilm::splashInteraction const scalar dBarSplash = 1/cbrt(6.0)*cbrt(mRatio/Ns)*d + ROOTVSMALL; // cumulative diameter splash distribution - const scalar dMin = 0.01*d; - const scalar dMax = d; + const scalar dMax = cbrt(mRatio)*d; + const scalar dMin = 0.001*dMax; const scalar K = exp(-dMin/dBarSplash) - exp(-dMax/dBarSplash); // surface energy of secondary parcels [J] @@ -567,11 +568,11 @@ bool Foam::ThermoSurfaceFilm::transferParcel ) { // Retrieve the film model from the owner database - surfaceFilmModels::surfaceFilmModel& filmModel = - const_cast + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel = + const_cast ( this->owner().db().objectRegistry::template - lookupObject + lookupObject ( "surfaceFilmProperties" ) @@ -579,7 +580,7 @@ bool Foam::ThermoSurfaceFilm::transferParcel const label patchI = pp.index(); - if (filmModel.isFilmPatch(patchI)) + if (filmModel.isRegionPatch(patchI)) { const label faceI = pp.whichFace(p.face()); @@ -627,10 +628,11 @@ bool Foam::ThermoSurfaceFilm::transferParcel } } + // transfer parcel/parcel interactions complete return true; } - // do not transfer parcel + // parcel not interacting with film return false; } @@ -641,7 +643,7 @@ void Foam::ThermoSurfaceFilm::cacheFilmFields const label filmPatchI, const label primaryPatchI, const mapDistribute& distMap, - const surfaceFilmModels::surfaceFilmModel& filmModel + const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ) { SurfaceFilmModel::cacheFilmFields diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H index fa1b6a1af2..bf66b2198b 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/SurfaceFilmModel/ThermoSurfaceFilm/ThermoSurfaceFilm.H @@ -104,7 +104,7 @@ protected: const SLGThermo& thermo_; - // Cached injector fields per film patch + // Cached injector fields per film patch //- Film temperature / patch face scalarList TFilmPatch_; @@ -168,7 +168,7 @@ protected: //- Absorb parcel into film void absorbInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, const parcelType& p, const polyPatch& pp, const label faceI, @@ -188,7 +188,7 @@ protected: //- Parcel interaction with dry surface void drySplashInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, const parcelType& p, const polyPatch& pp, const label faceI, @@ -198,7 +198,7 @@ protected: //- Parcel interaction with wetted surface void wetSplashInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, parcelType& p, const polyPatch& pp, const label faceI, @@ -208,7 +208,7 @@ protected: //- Bai parcel splash interaction model void splashInteraction ( - surfaceFilmModels::surfaceFilmModel& filmModel, + regionModels::surfaceFilmModels::surfaceFilmModel& filmModel, const parcelType& p, const polyPatch& pp, const label faceI, @@ -228,7 +228,7 @@ protected: const label filmPatchI, const label primaryPatchI, const mapDistribute& distMap, - const surfaceFilmModels::surfaceFilmModel& filmModel + const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ); //- Set the individual parcel properties @@ -247,7 +247,7 @@ public: // Constructors - //- Construct from components + //- Construct from components ThermoSurfaceFilm ( const dictionary& dict,