scalarField Foam::OFinterpolate(const fvPatch& patch, const objectRegistry& db, scalarField boundaryTheta){

    const volScalarField& Theta = db.lookupObject<volScalarField>("Theta");
    const vectorField ThetaGradient = fvc::grad(Theta,"leastSquares");
    const vectorField& patchDeltas = patch.delta();     // cell-centre to face-centre vector

    for(int i=0; i<patch.size(); i++){
        boundaryTheta[i] = Theta[patch.faceCells()[i]]
                            + ( ThetaGradient[i] & patchDeltas[i] );
    }

    return boundaryTheta;

}