-
Notifications
You must be signed in to change notification settings - Fork 189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Control boundary condition per LB node #4252
Comments
@christophlohrmann's draft was merged in the walberla branch. |
Progress report: it is now possible to set per-node slip velocities. There are still a few rough edges, for example when adding a new LB boundary, the core automatically clears the flag field and rebuilds it with the vector of LB boundaries. This means the per-node velocities must be set after all LB boundaries have been added. If one sets boundary velocities and then adds a new LB boundary, the per-node velocity information is silently lost and the sampled flow profile will be wrong. There are two samples to illustrate the new feature. By default they produce quiver plots to show the fluid motion; pass option |
In the end, the concept of the old-style LB Boundaries should be removed entirely.
|
Rhis is done in the Walberla branch. |
This sketches the steps that need to be taken to allow setting lb (velocity) boundary conditions on a per-node level. this would allow, e.g., for tangential flow around a cylinder (four-roller mill etc).
This is for the Walberla branch.
Objective: LB boundary velocity (and in the future, other BC) should be settable per node. Furthermore, there should be a quick way to mark all lb nodes as boundary that lie inside a Shape. In this way, user can, if suitable, use the boudaries much as with the current implementation.
Outline:
Details
1. Rastering
See utils/include/utils/raster.hpp for an idea.
Rather than returning a list of return values from the funciotn called at raster points, the new function should return a list of index-triplets for those raster points for which the funciotn f returned true.
With that a
std::Vector<Utils::Vector3i> lb_nodes_inside_shape(const& Shape)
can be written that returns the indices of lb nodes which are insde the shape. (Probably, a lambda should be used as test funciot for the raster funciton).2. Exposing boundary related functions
See the lb_lbnode_get/set_velocity() functions in src/core/grid_based_algorithms/lb_interface.cpp and the corresponding functions in src/python/espressomd/lb.pxd as template
5. Generator
See the LBFluidWalberla.nodes() generator as template
The text was updated successfully, but these errors were encountered: