56 using namespace boundaryhelper;
59 std::vector<int> discreteNormal(4,0);
60 blockGeometryStructure.forSpatialLocations([&](
auto iX,
auto iY,
auto iZ) {
61 if (blockGeometryStructure.getNeighborhoodRadius({iX, iY, iZ}) >= margin
62 && indicator(iX, iY, iZ)) {
63 discreteNormal = blockGeometryStructure.getStatistics().getType(iX, iY, iZ);
65 if(discreteNormal[0] == 2 || discreteNormal[0] == 4) {
66 throw std::runtime_error(
"No valid discrete normal found. This BC is not suited for curved walls.");
69 if (discreteNormal[0] == 0) {
70 _block.
defineDynamics({iX, iY, iZ}, DirectionOrientationMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
73 else if (discreteNormal[0] == 1) {
74 _block.
defineDynamics({iX, iY, iZ}, NormalMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
78 else if (discreteNormal[0] == 3) {
79 _block.
defineDynamics({iX, iY, iZ}, NormalSpecialMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
void setAdvectionDiffusionTemperatureBoundary(SuperLattice< T, DESCRIPTOR > &sLattice, SuperGeometry< T, 2 > &superGeometry, int material)
Initialising the AdvectionDiffusionTemperatureBoundary on the superLattice domain This is an advectio...