diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C index adac03499be76cad746566620c47b211041e5917..c3424ff451e727d1c322f957b7649038f27341ba 100644 --- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C +++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.C @@ -122,7 +122,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField filmRegionName_("surfaceFilmProperties"), pyrolysisRegionName_("pyrolysisProperties"), TnbrName_("undefined-Tnbr"), - QrNbrName_("undefined-QrNbr"), QrName_("undefined-Qr"), convectiveScaling_(1.0), filmDeltaDry_(0.0), @@ -148,7 +147,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField filmRegionName_(psf.filmRegionName_), pyrolysisRegionName_(psf.pyrolysisRegionName_), TnbrName_(psf.TnbrName_), - QrNbrName_(psf.QrNbrName_), QrName_(psf.QrName_), convectiveScaling_(psf.convectiveScaling_), filmDeltaDry_(psf.filmDeltaDry_), @@ -175,7 +173,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField dict.lookupOrDefault<word>("pyrolysisRegion", "pyrolysisProperties") ), TnbrName_(dict.lookup("Tnbr")), - QrNbrName_(dict.lookup("QrNbr")), QrName_(dict.lookup("Qr")), convectiveScaling_(dict.lookupOrDefault<scalar>("convectiveScaling", 1.0)), filmDeltaDry_(readScalar(dict.lookup("filmDeltaDry"))), @@ -231,7 +228,6 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField filmRegionName_(psf.filmRegionName_), pyrolysisRegionName_(psf.pyrolysisRegionName_), TnbrName_(psf.TnbrName_), - QrNbrName_(psf.QrNbrName_), QrName_(psf.QrName_), convectiveScaling_(psf.convectiveScaling_), filmDeltaDry_(psf.filmDeltaDry_), @@ -241,8 +237,7 @@ filmPyrolysisRadiativeCoupledMixedFvPatchScalarField // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField:: -updateCoeffs() +void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::updateCoeffs() { if (updated()) { @@ -294,34 +289,49 @@ updateCoeffs() const pyrolysisModelType& pyrolysis = pyrModel(); const filmModelType& film = filmModel(); - label myPatchINrbPatchI = -1; - // Obtain Rad heat (Qr) scalarField Qr(patch().size(), 0.0); - if (QrName_ != "none") // primary region (region0) + + label coupledPatchI = -1; + if (pyrolysisRegionName_ == mesh.name()) { - Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_); - myPatchINrbPatchI = nbrPatch.index(); + coupledPatchI = patchI; + if (QrName_ != "none") + { + Qr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrName_); + mpp.distribute(Qr); + } } - - if (QrNbrName_ != "none") // pyrolysis region + else if (pyrolysis.primaryMesh().name() == mesh.name()) + { + coupledPatchI = nbrPatch.index(); + if (QrName_ != "none") + { + Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_); + } + } + else { - Qr = nbrPatch.lookupPatchField<volScalarField, scalar>(QrNbrName_); - mpp.distribute(Qr); - myPatchINrbPatchI = patchI; + FatalErrorIn + ( + "void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::" + "updateCoeffs()" + ) + << type() << " condition is intended to be applied to either the " + << "primary or pyrolysis regions only" + << exit(FatalError); } - const label filmPatchI = - pyrolysis.nbrCoupledPatchID(film, myPatchINrbPatchI); + const label filmPatchI = pyrolysis.nbrCoupledPatchID(film, coupledPatchI); const scalarField htcw(film.htcw().h()().boundaryField()[filmPatchI]); // Obtain htcw htcwfilm = - const_cast<pyrolysisModelType&>(pyrolysis).mapRegionPatchField + pyrolysis.mapRegionPatchField ( film, - myPatchINrbPatchI, + coupledPatchI, filmPatchI, htcw, true @@ -335,11 +345,11 @@ updateCoeffs() // Obtain delta filmDelta = - const_cast<pyrolysisModelType&>(pyrolysis).mapRegionPatchField<scalar> + pyrolysis.mapRegionPatchField<scalar> ( film, "deltaf", - myPatchINrbPatchI, + coupledPatchI, true ); @@ -414,14 +424,13 @@ void filmPyrolysisRadiativeCoupledMixedFvPatchScalarField::write pyrolysisRegionName_ ); os.writeKeyword("Tnbr")<< TnbrName_ << token::END_STATEMENT << nl; - os.writeKeyword("QrNbr")<< QrNbrName_ << token::END_STATEMENT << nl; os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl; os.writeKeyword("convectiveScaling") << convectiveScaling_ - << token::END_STATEMENT << nl; - os.writeKeyword("filmDeltaDry") << filmDeltaDry_ << - token::END_STATEMENT << nl; - os.writeKeyword("filmDeltaWet") << filmDeltaWet_ << - token::END_STATEMENT << endl; + << token::END_STATEMENT << nl; + os.writeKeyword("filmDeltaDry") << filmDeltaDry_ + << token::END_STATEMENT << nl; + os.writeKeyword("filmDeltaWet") << filmDeltaWet_ + << token::END_STATEMENT << endl; temperatureCoupledBase::write(os); } diff --git a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H index e4161e1bfc99a036b8e8603a1815bf900180e941..67788bd3c70018ec678b124686ecf4cc4ddbaf06 100644 --- a/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H +++ b/src/regionModels/regionCoupling/derivedFvPatchFields/filmPyrolysisRadiativeCoupledMixed/filmPyrolysisRadiativeCoupledMixedFvPatchScalarField.H @@ -38,7 +38,6 @@ Description type filmPyrolysisRadiativeCoupledMixed; Tnbr T; kappa fluidThermo; - QrNbr none; Qr Qr; kappaName none; filmDeltaDry 0.0; @@ -91,7 +90,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class filmPyrolysisRadiativeCoupledMixedFvPatchScalarField Declaration + Class filmPyrolysisRadiativeCoupledMixedFvPatchScalarField Declaration \*---------------------------------------------------------------------------*/ class filmPyrolysisRadiativeCoupledMixedFvPatchScalarField @@ -121,10 +120,7 @@ private: //- Name of field on the neighbour region const word TnbrName_; - //- Name of the radiative heat flux in the neighbout region - const word QrNbrName_; - - //- Name of the radiative heat flux in local region + //- Name of the radiative heat flux const word QrName_; //- Convective Scaling Factor (as determined by Prateep's tests) diff --git a/src/regionModels/regionModel/regionModel/regionModel.C b/src/regionModels/regionModel/regionModel/regionModel.C index 388559c18b83317a06c2dd92a93dd58bf5662269..5bf2951451580c3dd9a527a59088a88b5e97e3cd 100644 --- a/src/regionModels/regionModel/regionModel/regionModel.C +++ b/src/regionModels/regionModel/regionModel/regionModel.C @@ -197,7 +197,7 @@ Foam::regionModels::regionModel::interRegionAMI const label regionPatchI, const label nbrPatchI, const bool flip -) +) const { label nbrRegionID = findIndex(interRegionAMINames_, nbrRegion.name()); diff --git a/src/regionModels/regionModel/regionModel/regionModel.H b/src/regionModels/regionModel/regionModel/regionModel.H index 1b8fecababc793e85e9139352ceb4c60748208cd..83afc6898be4f61e57fbced338b25a8b19536af3 100644 --- a/src/regionModels/regionModel/regionModel/regionModel.H +++ b/src/regionModels/regionModel/regionModel/regionModel.H @@ -125,10 +125,11 @@ protected: // Inter-region AMI interpolation caching //- List of region names this region is coupled to - wordList interRegionAMINames_; + mutable wordList interRegionAMINames_; //- List of AMI objects per coupled region - PtrList<PtrList<AMIPatchToPatchInterpolation> > interRegionAMI_; + mutable PtrList<PtrList<AMIPatchToPatchInterpolation> > + interRegionAMI_; // Protected member functions @@ -146,7 +147,7 @@ protected: const label regionPatchI, const label nbrPatchI, const bool flip - ); + ) const; public: @@ -257,7 +258,7 @@ public: const label nbrPatchI, const Field<Type>& nbrField, const bool flip = false - ); + ) const; //- Map patch field from another region model to local patch template<class Type> @@ -267,7 +268,7 @@ public: const word& fieldName, const label regionPatchI, const bool flip = false - ); + ) const; //- Map patch internal field from another region model to local // patch @@ -278,7 +279,7 @@ public: const word& fieldName, const label regionPatchI, const bool flip = false - ); + ) const; //- Convert a local region field to the primary region template<class Type> diff --git a/src/regionModels/regionModel/regionModel/regionModelTemplates.C b/src/regionModels/regionModel/regionModel/regionModelTemplates.C index 5855ee5906140583195366d71df9d507bab9b608..dad46878ab268484f571b0f166a2c54c83c2849d 100644 --- a/src/regionModels/regionModel/regionModel/regionModelTemplates.C +++ b/src/regionModels/regionModel/regionModel/regionModelTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,7 +32,7 @@ Foam::regionModels::regionModel::mapRegionPatchField const label nbrPatchI, const Field<Type>& nbrField, const bool flip -) +) const { int oldTag = UPstream::msgType(); UPstream::msgType() = oldTag + 1; @@ -56,7 +56,7 @@ Foam::regionModels::regionModel::mapRegionPatchField const word& fieldName, const label regionPatchI, const bool flip -) +) const { typedef GeometricField<Type, fvPatchField, volMesh> fieldType; @@ -108,7 +108,7 @@ Foam::regionModels::regionModel::mapRegionPatchInternalField const word& fieldName, const label regionPatchI, const bool flip -) +) const { typedef GeometricField<Type, fvPatchField, volMesh> fieldType;