tmp<Field<Type> > regionCouplingFvPatchField<Type>::patchNeighbourField() const
{
    Field<Type> sField = shadowPatchField().patchInternalField();

    tmp<Field<Type> > tpnf
    (
         regionCouplePatch_.interpolate
         (
             shadowPatchField().patchInternalField()
         )
    );

    Field<Type>& pnf = tpnf();

    if (regionCouplePatch_.bridgeOverlap())
    {
        // Symmetry treatment used for overlap
        vectorField nHat = this->patch().nf();

        // Use mirrored neighbour field for interpolation
        // HJ, 21/Jan/2009
        Field<Type> bridgeField =
            transform(I - 2.0*sqr(nHat), this->patchInternalField());

        regionCouplePatch_.bridge(bridgeField, pnf);
    }

    return tpnf;
}
void chtRcThermalDiffusivityResistanceFvPatchScalarField::updateCoeffs()
{
    if (updated())
    {
        return;
    }

    calcThermalDiffusivity(*this, shadowPatchField());
}