From f0def801b21138ec22893c9fbf3d1a0e3e9cd310 Mon Sep 17 00:00:00 2001 From: sergio Date: Wed, 15 Oct 2014 11:53:02 +0100 Subject: [PATCH] BUG: Adding mapping functions to radiationCoupledBase --- .../MarshakRadiationFvPatchScalarField.C | 9 ++-- ...iationFixedTemperatureFvPatchScalarField.C | 8 ++-- .../radiationCoupledBase.C | 38 +++++++++++++++- .../radiationCoupledBase.H | 45 +++++++++++++++---- 4 files changed, 85 insertions(+), 15 deletions(-) diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C index 2bd7a38f3d..9f72eea828 100644 --- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.C +++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiation/MarshakRadiationFvPatchScalarField.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-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -61,7 +61,8 @@ Foam::MarshakRadiationFvPatchScalarField::MarshakRadiationFvPatchScalarField ( p, ptf.emissivityMethod(), - ptf.emissivity_ + ptf.emissivity_, + mapper ), TName_(ptf.TName_) {} @@ -136,7 +137,8 @@ void Foam::MarshakRadiationFvPatchScalarField::autoMap const fvPatchFieldMapper& m ) { - scalarField::autoMap(m); + mixedFvPatchScalarField::autoMap(m); + radiationCoupledBase::autoMap(m); } @@ -147,6 +149,7 @@ void Foam::MarshakRadiationFvPatchScalarField::rmap ) { mixedFvPatchScalarField::rmap(ptf, addr); + radiationCoupledBase::rmap(ptf, addr); } diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C index d98d0c56f5..218ec2a9dd 100644 --- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.C +++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/MarshakRadiationFixedTemperature/MarshakRadiationFixedTemperatureFvPatchScalarField.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-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -63,7 +63,8 @@ MarshakRadiationFixedTemperatureFvPatchScalarField ( p, ptf.emissivityMethod(), - ptf.emissivity_ + ptf.emissivity_, + mapper ), Trad_(ptf.Trad_, mapper) {} @@ -136,6 +137,7 @@ void Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::autoMap ) { mixedFvPatchScalarField::autoMap(m); + radiationCoupledBase::autoMap(m); Trad_.autoMap(m); } @@ -147,7 +149,7 @@ void Foam::MarshakRadiationFixedTemperatureFvPatchScalarField::rmap ) { mixedFvPatchScalarField::rmap(ptf, addr); - + radiationCoupledBase::rmap(ptf, addr); const MarshakRadiationFixedTemperatureFvPatchScalarField& mrptf = refCast(ptf); diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C index ced47a9504..e34ebe4287 100644 --- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.C +++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.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-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -66,6 +66,20 @@ Foam::radiationCoupledBase::radiationCoupledBase {} +Foam::radiationCoupledBase::radiationCoupledBase +( + const fvPatch& patch, + const word& calculationType, + const scalarField& emissivity, + const fvPatchFieldMapper& mapper +) +: + patch_(patch), + method_(emissivityMethodTypeNames_[calculationType]), + emissivity_(emissivity, mapper) +{} + + Foam::radiationCoupledBase::radiationCoupledBase ( const fvPatch& patch, @@ -189,6 +203,28 @@ Foam::scalarField Foam::radiationCoupledBase::emissivity() const } +void Foam::radiationCoupledBase::autoMap +( + const fvPatchFieldMapper& m +) +{ + emissivity_.autoMap(m); +} + + +void Foam::radiationCoupledBase::rmap +( + const fvPatchScalarField& ptf, + const labelList& addr +) +{ + const radiationCoupledBase& mrptf = + refCast(ptf); + + emissivity_.rmap(mrptf.emissivity_, addr); +} + + void Foam::radiationCoupledBase::write(Ostream& os) const { os.writeKeyword("emissivityMode") << emissivityMethodTypeNames_[method_] diff --git a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H index 12d805c078..f6e4cd4830 100644 --- a/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H +++ b/src/thermophysicalModels/radiationModels/derivedFvPatchFields/radiationCoupledBase/radiationCoupledBase.H @@ -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-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -42,6 +42,7 @@ SourceFiles #include "scalarField.H" #include "NamedEnum.H" #include "fvPatch.H" +#include "fvPatchFieldMapper.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -99,6 +100,15 @@ public: const scalarField& emissivity ); + //- Construct from patch, emissivity mode and emissivity and mapper + radiationCoupledBase + ( + const fvPatch& patch, + const word& calculationMethod, + const scalarField& emissivity, + const fvPatchFieldMapper& mapper + ); + //- Construct from patch and dictionary radiationCoupledBase ( @@ -109,15 +119,34 @@ public: // Member functions - //- Method to obtain emissivity - word emissivityMethod() const - { - return emissivityMethodTypeNames_[method_]; - } + // Access + + //- Method to obtain emissivity + word emissivityMethod() const + { + return emissivityMethodTypeNames_[method_]; + } - //- Calculate corresponding emissivity field - scalarField emissivity() const; + //- Calculate corresponding emissivity field + scalarField emissivity() const; + + + // Mapping functions + + //- Map (and resize as needed) from self given a mapping object + void autoMap + ( + const fvPatchFieldMapper& + ); + + //- Reverse map the given fvPatchField onto this fvPatchField + void rmap + ( + const fvPatchScalarField&, + const labelList& + ); + //- Write void write(Ostream&) const;