66 using namespace boundaryhelper;
68 const int margin = includeOuterCells ? 0 : 1;
69 std::vector<int> discreteNormal(4,0);
70 blockGeometryStructure.forSpatialLocations([&](
auto iX,
auto iY,
auto iZ) {
71 if (blockGeometryStructure.getNeighborhoodRadius({iX, iY, iZ}) >= margin
72 && indicator(iX, iY, iZ)) {
74 discreteNormal = indicator.
getBlockGeometry().getStatistics().getType(iX, iY, iZ);
75 if (discreteNormal[0] == 0) {
77 if (discreteNormal[1] != 0 && discreteNormal[1] == -1) {
82 else if (discreteNormal[1] != 0 && discreteNormal[1] == 1) {
87 else if (discreteNormal[2] != 0 && discreteNormal[2] == -1) {
92 else if (discreteNormal[2] != 0 && discreteNormal[2] == 1) {
97 else if (discreteNormal[3] != 0 && discreteNormal[3] == -1) {
102 else if (discreteNormal[3] != 0 && discreteNormal[3] == 1) {
109 else if (discreteNormal[0] == 1) {
110 dynamics = _block.template getDynamics<
typename MixinDynamics::template exchange_momenta<
115 promisePostProcessorForNormal<T,DESCRIPTOR,OuterVelocityCornerProcessor3D>(
119 else if (discreteNormal[0] == 2) {
120 dynamics = _block.
getDynamics(PlainMixinDynamicsForNormalMomenta<T,DESCRIPTOR,
125 else if (discreteNormal[0] == 3) {
126 dynamics = _block.template getDynamics<
typename MixinDynamics::template exchange_momenta<
131 promisePostProcessorForNormalSpecial<T,DESCRIPTOR,OuterVelocityEdgeProcessor3D>(
135 else if (discreteNormal[0] == 4) {
136 dynamics = _block.
getDynamics(PlainMixinDynamicsForNormalSpecialMomenta<T,DESCRIPTOR,
141 dynamics->
getParameters(_block).template set<descriptors::OMEGA>(omega);
virtual void addPostProcessor(std::type_index stage, LatticeR< DESCRIPTOR::d > latticeR, PostProcessorPromise< T, DESCRIPTOR > &&promise)=0
Schedule post processor for application to latticeR in stage.
void setLocalVelocityBoundary(SuperLattice< T, DESCRIPTOR > &sLattice, T omega, SuperGeometry< T, 2 > &superGeometry, int material)
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)
Communication after propagation.