24#ifndef SET_BOUNCE_BACK_VELOCITY_BOUNDARY_3D_HH
25#define SET_BOUNCE_BACK_VELOCITY_BOUNDARY_3D_HH
33template<
typename T,
typename DESCRIPTOR>
36 setBounceBackVelocityBoundary<T,DESCRIPTOR>(superGeometry.
getMaterialIndicator(material),omega,sLattice);
39template<
typename T,
typename DESCRIPTOR>
43 bool includeOuterCells =
false;
44 if (indicator->getSuperGeometry().getOverlap() == 1) {
45 includeOuterCells =
true;
46 clout <<
"WARNING: overlap == 1, boundary conditions set on overlap despite unknown neighbor materials" << std::endl;
48 clout << sLattice.
getLoadBalancer().size() <<
"sLattice.getLoadBalancer.size()" << std::endl;
50 setBounceBackVelocityBoundary<T,DESCRIPTOR>(indicator->getBlockIndicatorF(iC),omega,includeOuterCells,sLattice.
getBlock(iC));
56template<
typename T,
typename DESCRIPTOR>
60 const int margin = includeOuterCells ? 0 : 1;
61 std::vector<int> discreteNormal(4,0);
63 T default_u[] = {0.0, 0.0, 0.0};
64 blockGeometryStructure.forSpatialLocations([&](
auto iX,
auto iY,
auto iZ) {
65 if (blockGeometryStructure.getNeighborhoodRadius({iX, iY, iZ}) >= margin
66 && indicator(iX, iY, iZ)) {
71 setBoundary(_block, iX,iY,iZ, dynamics, postProcessor);
Base block indicator functor.
BlockGeometry< T, 3 > & getBlockGeometry()
Get underlying block geometry structure.
Platform-abstracted block lattice for external access and inter-block interaction.
Smart pointer for managing the various ways of passing functors around.
class for marking output with some text
Representation of a statistic for a parallel 2D geometry.
std::unique_ptr< SuperIndicatorF< T, D > > getMaterialIndicator(std::vector< int > &&materials)
Returns a material indicator using the given vector of materials.
Base indicator functor (discrete)
Super class maintaining block lattices for a cuboid decomposition.
BlockLattice< T, DESCRIPTOR > & getBlock(int locC)
Return BlockLattice with local index locC.
LoadBalancer< T > & getLoadBalancer()
Read and write access to the load balancer.
Top level namespace for all of OpenLB.
void setBounceBackVelocityBoundary(SuperGeometry< T, 3 > &superGeometry, int material, T omega, SuperLattice< T, DESCRIPTOR > &sLattice)
Initialising the setLocalVelocityBoundary function on the superLattice domain.
void setBoundary(BlockLattice< T, DESCRIPTOR > &block, int iX, int iY, Dynamics< T, DESCRIPTOR > *dynamics, PostProcessorGenerator2D< T, DESCRIPTOR > *postProcessor)
Interface for per-cell dynamics.
Dynamics constructed as a tuple of momenta, equilibrium and collision.