I want to compare the wall shear stress calculated directly from my CFD solver with the value that I can calculate from ParaView based on `GradientOfUnstructuredDataSet`

. I use this formula for wall shear stress calculation:

\vec{\tau}_{WSS} = \mathbf{T} \cdot \mathbf{n} - (\mathbf{n} \cdot \mathbf{T} \cdot \mathbf{n}) \mathbf{n}

Where \mathbf{T} is the shear stress tensor: \mathbf{T} = \mu (\nabla \mathbf{u} + (\nabla \mathbf{u})^{T}). My question is how `GradientOfUnstructuredDataSet`

, which I used to calculate velocity gradient tensor and finally \mathbf{T}, handles boundaries. As far as I understand `vtkGradientFilter`

, which `GradientOfUnstructuredDataSet`

is just a wrapper around `vtkGradientFilter`

, calculate gradients by using simple finite difference in each cell. So, I really appreciate if someone could describe how `vtkGradientFilter`

or `GradientOfUnstructuredDataSet`

handles boundary, which might help me to explain why the calculated values from my CFD solver and ParaView are so different. By the way, the wall shear stress from my CFD solver is validated and verified in comparison to other solvers and experimental data. So, I’m confident that my CFD solver gives accurate wall shear stress values.