void chtRcThermalDiffusivityResistanceFvPatchScalarField::calcThermalDiffusivity ( chtRegionCoupleBase& owner, const chtRegionCoupleBase& neighbour ) const { const fvPatch& p = owner.patch(); const fvMesh& mesh = p.boundaryMesh().mesh(); const magLongDelta& mld = magLongDelta::New(mesh); const chtRcTemperatureFvPatchScalarField& TwOwn = dynamic_cast<const chtRcTemperatureFvPatchScalarField&> ( p.lookupPatchField<volScalarField, scalar>("T") ); scalarField& k = owner; const scalarField& fOwn = owner.originalPatchField(); const scalarField TcOwn = TwOwn.patchInternalField(); scalarField fNei(p.size()); scalarField TcNei(p.size()); scalarField TwNei(p.size()); scalarField QrOwn(p.size(), 0.0); scalarField fourQroOwn(p.size(), 0.0); scalarField fourQroNei(p.size(), 0.0); if (TwOwn.radiation()) { QrOwn += p.lookupPatchField<volScalarField, scalar>("Qr"); fourQroOwn += 4.0*radiation::sigmaSB.value()*pow4(TwOwn); } scalarField Qr = QrOwn; scalarField cond(p.size()); { Field<VectorN<scalar, 5> > lData(neighbour.size()); const scalarField& lfNei = neighbour.originalPatchField(); scalarField lTcNei = TwOwn.shadowPatchField().patchInternalField(); const scalarField& lTwNei = TwOwn.shadowPatchField(); forAll(lData, facei) { lData[facei][0] = lTcNei[facei]; lData[facei][1] = lfNei[facei]; lData[facei][2] = lTwNei[facei]; } if(TwOwn.shadowPatchField().radiation()) { const scalarField& lQrNei = owner.lookupShadowPatchField<volScalarField, scalar>("Qr"); forAll(lData, facei) { lData[facei][3] = lQrNei[facei]; } } if(isA<chtRcThermalDiffusivitySlaveFvPatchScalarField>(owner)) { forAll(lData, facei) { lData[facei][4] = conductivity_[facei]; } } const Field<VectorN<scalar, 5> > iData = owner.regionCouplePatch().interpolate(lData); forAll(iData, facei) { TcNei[facei] = iData[facei][0]; fNei[facei] = iData[facei][1]; TwNei[facei] = iData[facei][2]; }
void chtRcThermalDiffusivityFvPatchScalarField::calcThermalDiffusivity ( chtRegionCoupleBase& owner, const chtRegionCoupleBase& neighbour ) const { if(debug) { Info << "In chtRcThermalDiffusivityFvPatchScalarField::calcThermalDiffusivity on " << this->dimensionedInternalField().name() << " in " << this->patch().boundaryMesh().mesh().name() << endl; } const fvPatch& p = owner.patch(); const fvMesh& mesh = p.boundaryMesh().mesh(); const magLongDelta& mld = magLongDelta::New(mesh); const chtRcTemperatureFvPatchScalarField& TwOwn = dynamic_cast<const chtRcTemperatureFvPatchScalarField&> ( p.lookupPatchField<volScalarField, scalar>("T") ); scalarField& k = owner; const scalarField& fOwn = owner.originalPatchField(); const scalarField TcOwn = TwOwn.patchInternalField(); scalarField fNei(p.size()); scalarField TcNei(p.size()); scalarField Qr(p.size(), 0.0); scalarField fourQro(p.size(), 0.0); if (TwOwn.radiation()) { Qr += p.lookupPatchField<volScalarField, scalar>("Qr"); fourQro += 4.0*radiation::sigmaSB.value()*pow4(TwOwn); } { Field<VectorN<scalar, 4> > lData ( neighbour.size(), pTraits<VectorN<scalar, 4> >::zero ); const scalarField& lfNei = neighbour.originalPatchField(); scalarField lTcNei = TwOwn.shadowPatchField().patchInternalField(); forAll(lData, facei) { lData[facei][0] = lTcNei[facei]; lData[facei][1] = lfNei[facei]; } if(TwOwn.shadowPatchField().radiation()) { const scalarField& lQrNei = owner.lookupShadowPatchField<volScalarField, scalar>("Qr"); const scalarField& lTwNei = TwOwn.shadowPatchField(); forAll(lData, facei) { lData[facei][2] = lTwNei[facei]; lData[facei][3] = lQrNei[facei]; } }