Example #1
0
 def test_collective_step(self):
     world = World()
     obstacle = world.add(Obstacle(geometry_at(0)),
                          physics=GeometryMovement(geometry_at))
     inflow = world.add(Inflow(geometry_at(0)))
     inflow.physics = world.get_physics(obstacle)
     static_obstacle = world.add(Obstacle(box[0:1]))
     world.step()
     self.assertAlmostEqual(obstacle.age, 1.0)
     self.assertAlmostEqual(obstacle.geometry.center[0], 1.0)
     self.assertAlmostEqual(inflow.age, 1.0)
     # self.assertAlmostEqual(inflow.field.geometry.center[0], 1.0)
     self.assertAlmostEqual(static_obstacle.age, 1.0)
Example #2
0
 def test_effects(self):
     world = World()
     fluid = world.add(Fluid(Domain([16, 16])))
     fan = world.add(Fan(Sphere((10, 8), 5), [-1, 0]))
     obstacle = world.add(Obstacle(box[0:1, 0:1]))
     world.step(dt=1)
     world.step(dt=0.5)
     assert fluid.age == fan.age == obstacle.age == 1.5
Example #3
0
 def test_complex_step(self):
     q = QuantumWave(Domain([4, 4]))
     q = q.copied_with(amplitude=WavePacket([2, 2], 1.0, [0.5, 0]))
     pot = StepPotential(box[0:1, 0:1], 1.0)
     SCHROEDINGER.step(q,
                       1.0,
                       potentials=[pot],
                       obstacles=[Obstacle(box[3:4, 0:1])])
     numpy.testing.assert_equal(q.amplitude.data.shape, [1, 4, 4, 1])
Example #4
0
 def test_fluid_tf(self):
     world = World()
     fluid = Fluid(Domain([16, 16]))
     world.add(fluid)
     world.add(Inflow(Sphere((8, 8), radius=4)))
     world.add(Obstacle(box[4:16, 0:8]))
     fluid_in = fluid.copied_with(density=placeholder, velocity=placeholder)
     fluid_out = world.step(fluid_in)
     self.assertIsInstance(fluid_out, Fluid)
     session = Session(Scene.create('data', copy_calling_script=False))
     fluid = session.run(fluid_out, {fluid_in: fluid})
     fluid = session.run(fluid_out, {fluid_in: fluid})
     self.assertIsInstance(fluid, Fluid)
Example #5
0
    def test_geometry_movement(self):
        obstacle = Obstacle(geometry_at(0))
        phys = GeometryMovement(geometry_at)

        obstacle = phys.step(obstacle, dt=2.0)
        self.assertIsInstance(obstacle, Obstacle)
        self.assertAlmostEqual(obstacle.age, 2.0)
        self.assertAlmostEqual(obstacle.geometry.center[0], 2.0)
        self.assertAlmostEqual(obstacle.velocity[0], 1.0)

        obstacle = phys.step(obstacle, dt=2.0)
        self.assertIsInstance(obstacle, Obstacle)
        self.assertAlmostEqual(obstacle.age, 4.0)
        self.assertAlmostEqual(obstacle.geometry.center[0], 4.0)
        self.assertAlmostEqual(obstacle.velocity[0], 1.0)