Wall Shear Stress on Bouzidi Wall
OpenLB – Open Source Lattice Boltzmann Code › Forums › on OpenLB › General Topics › Wall Shear Stress on Bouzidi Wall
- This topic has 5 replies, 4 voices, and was last updated 8 months, 2 weeks ago by mathias.
-
AuthorPosts
-
December 8, 2023 at 5:44 pm #8005TSchenkelParticipant
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,
Torsten
December 11, 2023 at 11:21 am #8009AdrianKeymasterTaking a quick look at the implementation in
src/functors/lattice/latticePhysWallShearStress3D.hh
the normals are computed w.r.t. the givenIndicatorF3D
. This means that you can provide the sameSTLreader
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.
December 11, 2023 at 1:02 pm #8011TSchenkelParticipantThanks.
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?l49:
SuperLatticePhysF3D<T, DESCRIPTOR>(sLattice, converter, 3), // changed this from 1 to 3 to give WSS vector
l155ff:
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];
December 15, 2023 at 4:48 pm #8077FBukreevKeymasterDear 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,
FedorDecember 15, 2023 at 5:56 pm #8078TSchenkelParticipantThanks a lot for the confirmation. Is there a reason why it only reported the magnitude, rather than the vector?
December 20, 2023 at 10:37 am #8097mathiasKeymasterNot really.
-
AuthorPosts
- You must be logged in to reply to this topic.