Exemple #1
0
def test_bounce_back_boundary_not_applied_if_mask_empty(f_lattice):
    f, lattice = f_lattice
    f_old = copy(f)
    mask = (f[0] < 0).cpu().numpy()  # will not contain any points
    bounce_back = BounceBackBoundary(mask, lattice)
    f = bounce_back(f)
    assert f.cpu().numpy() == pytest.approx(f_old.cpu().numpy())
Exemple #2
0
def test_bounce_back_boundary(f_lattice):
    f, lattice = f_lattice
    f_old = copy(f)
    mask = (f[0] > 0).cpu().numpy()  # will contain all points
    bounce_back = BounceBackBoundary(mask, lattice)
    f = bounce_back(f)
    assert f[lattice.stencil.opposite].cpu().numpy() == pytest.approx(
        f_old.cpu().numpy())
Exemple #3
0
 def boundaries(self, *args):
     x, y = self.grid
     return [
         EquilibriumBoundaryPU(
             np.abs(x) < 1e-6, self.units.lattice, self.units,
             np.array([self.units.characteristic_velocity_pu, 0])),
         EquilibriumOutletP(self.units.lattice, [0, -1]),
         EquilibriumOutletP(self.units.lattice, [0, 1]),
         EquilibriumOutletP(self.units.lattice, [1, 0]),
         BounceBackBoundary(self.mask, self.units.lattice)
     ]