34template<
typename T,
typename DESCRIPTOR>
37 std::vector<int> bulkMaterials)
44template<
typename T,
typename DESCRIPTOR>
50 for (
int iCloc = 0; iCloc < sLattice.
getLoadBalancer().size(); ++iCloc) {
52 bulkIndicator->getBlockIndicatorF(iCloc),
59template<
typename T,
typename DESCRIPTOR>
62 block.forSpatialLocations([&](
auto iX,
auto iY) {
63 if (indicator(iX,iY)) {
64 for (
int iPop = 1; iPop < DESCRIPTOR::q ; ++iPop) {
67 if (block.isInside({iXn,iYn}) && bulkIndicator(iXn, iYn)) {
68 T intersection[] = { T(), T() };
82template<
typename T,
typename DESCRIPTOR>
87 block.getDynamics(iX, iY)->defineU(iPop, u);
89 clout <<
"defineUBouzidi(" << iX <<
", " << iY <<
" )" << std::endl;
95template<
typename T,
typename DESCRIPTOR>
101template<
typename T,
typename DESCRIPTOR>
104 bool _output =
false;
108 clout <<
"setBoundaryIntersection(" << iX <<
", " << iY <<
" )" << std::endl;
AnalyticalF are applications from DD to XD, where X is set by the constructor.
Base block indicator functor (discrete)
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.
Super class maintaining block lattices for a cuboid decomposition.
LoadBalancer< T > & getLoadBalancer()
Read and write access to the load balancer.
Dynamics for offLattice boundary conditions OffDynamics are basically NoLatticeDynamics with the addi...
void setBoundaryIntersection(int iPop, T distance)
Set Intersection of the link and the boundary.
bool getBoundaryIntersection(int iPop, T intersection[DESCRIPTOR::d])
Get Intersection of the link and the boundary.
constexpr int c(unsigned iPop, unsigned iDim) any_platform
constexpr int opposite(unsigned iPop) any_platform
bool getBoundaryIntersection(BlockLattice< T, DESCRIPTOR > &block, int iX, int iY, int iPop, T point[DESCRIPTOR::d])
void defineUBouzidi(SuperLattice< T, DESCRIPTOR > &sLattice, SuperGeometry< T, 2 > &superGeometry, int material, AnalyticalF2D< T, T > &u, std::vector< int > bulkMaterials=std::vector< int >(1, 1))
void setBoundaryIntersection(BlockLattice< T, DESCRIPTOR > &block, int iX, int iY, int iPop, T distance)
Top level namespace for all of OpenLB.