void neighborhoodTest() { typedef FlagField<wlb::uint8_t> FField; FField ff ( 3,3,3,1 ); auto i = ff.registerFlag("Interface"); auto l = ff.registerFlag("Liquid"); auto g = ff.registerFlag("Gas"); for( auto it = ff.begin(); it != ff.end(); ++it ) addFlag(it, l); ff.addFlag(1,0,0,i); ff.addFlag(1,2,2,g); for( auto it = ff.begin(); it != ff.end(); ++it ) { if (it.x() == 1 && it.y() == 1 && it.z() == 1) { WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q19>(it, i) ); WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q19>(it, g) ); WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q19>(it, l) ); } if (it.x() == 1 && it.y() == 2 && it.z() == 2) { WALBERLA_CHECK( !isFlagInNeighborhood<stencil::D3Q19>(it, i) ); WALBERLA_CHECK( !isFlagInNeighborhood<stencil::D3Q19>(it, g) ); WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q19>(it, l) ); } } ff.removeFlag(1,0,0,i); ff.addFlag(0,0,0,i); ff.removeFlag(1,2,2,g); ff.addFlag(2,2,2,g); for( auto it = ff.begin(); it != ff.end(); ++it ) { if (it.x() == 1 && it.y() == 1 && it.z() == 1) { WALBERLA_CHECK( field::isFlagInNeighborhood<stencil::D3Q27>(it, i) ); WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q27>(it, g) ); WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q27>(it, l) ); } if (it.x() == 2 && it.y() == 2 && it.z() == 2) { WALBERLA_CHECK( !isFlagInNeighborhood<stencil::D3Q27>(it, i) ); WALBERLA_CHECK( !isFlagInNeighborhood<stencil::D3Q27>(it, g) ); WALBERLA_CHECK( isFlagInNeighborhood<stencil::D3Q27>(it, l) ); } } }
void printingTest() { typedef FlagField<wlb::uint8_t> FField; FField ff ( 3,3,3,1 ); auto ns = ff.registerFlag("NoSlip"); auto fs = ff.registerFlag("FreeSlip"); auto ob = ff.registerFlag("Obstacle"); for(cell_idx_t i=0; i < cell_idx_c( ff.xSize() ); ++i) ff.addFlag(i,0,0,ns); for(cell_idx_t i=0; i < cell_idx_c( ff.ySize() ); ++i) ff.addFlag(0,i,0,fs); ff.addFlag(0,1,0,ob); ff.addFlag(1,0,0,ob); //printSlice( cout,ff, 2,0 ); }