Skip to content

Wall Shear Stress on Bouzidi Wall

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB General Topics Wall Shear Stress on Bouzidi Wall

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
  • #8005

    Dear Community,

    we are trying out OpenLB for blood flow simulations. The Aorta3D case is helpful in getting this set up.

    The most important output of our simulations will be Wall Shear Stress metrics (time averaged WSS Vector and Magnitude, OSI, transverse Wall Shear Stress, …).

    Looking at …WallShearStress3D I think I will be able to output the full vector, rather than the magnitude. But I am uncertain about how the normals are calculated.

    Does the normal only work for walls that are aligned with the lattice, or does the functor also work for curved (Bouzidi BC) walls?

    If it works for curved walls, is there a way to output the WSS mapped to the STL surface, rather than on the lattice?

    Best wishes,



    Taking a quick look at the implementation in src/functors/lattice/latticePhysWallShearStress3D.hh the normals are computed w.r.t. the given IndicatorF3D. This means that you can provide the same STLreader indicator you used to set up the interpolated bounce back boundaries as an argument here and it will be used to compute the normals.

    However the lattice functors are by design evaluated lattice-cell-wise and exported to VTK at discrete cell locations and not mapped to any surface. One could add such capabilities to OpenLB e.g. as an analytical functor that is evaluatable at the STL surface but this is not currently being worked on.



    ad 1: That is what I figured. I checked that by setting up the STLReader and modified the functor to output the normals (will need those for other postprocessing). They did indeed all point towards the centre.

    ad 2: How difficult would it be to set up such an analytical functor? Just starting to get my head round OpenLB (and object-oriented C++). Where would I start looking for something to use as a template for such a functor?

    Re 3D WSS vector, does the following change to latticePhysWallShearStress3D.hh look correct to output the WSS vector in 3D in the global coordinate system?


    SuperLatticePhysF3D<T, DESCRIPTOR>(sLattice, converter, 3), // changed this from 1 to 3 to give WSS vector


        T WSS[3];
        WSS[0] = traction[0] - tractionNormalComponent[0];
        WSS[1] = traction[1] - tractionNormalComponent[1];
        WSS[2] = traction[2] - tractionNormalComponent[2];
        // magnitude of the wall shear stress vector
        // output[0] = util::sqrt(WSS[0]*WSS[0] + WSS[1]*WSS[1] + WSS[2]*WSS[2]);
        // Output all 3 components of WSS vector
        output[0]= WSS[0];
        output[1]= WSS[1];
        output[2]= WSS[2];
    • This reply was modified 4 months, 1 week ago by TSchenkel.
    • This reply was modified 4 months, 1 week ago by TSchenkel.

    Dear Torsten,

    your modification shows now the 3 components of the WSS in the global axes directions.

    If you need somewhere the normal or distance to the STL surface, than you can use the surfaceNormal() and distance() function of the indicator, which ist STL as well. You can find these functions in the developer guide and in the setBouzidi file.

    Best wishes,


    Thanks a lot for the confirmation. Is there a reason why it only reported the magnitude, rather than the vector?


    Not really.

Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.