Exemplo n.º 1
0
    def test_homogeneous_flow_field(self):
        u = np.array([1., 2., 3.])
        gamma = 2.3

        flow_field = constraints.HomogeneousFlowField(u=u, gamma=gamma)
        np.testing.assert_almost_equal(u, flow_field.u)

        self.system.constraints.add(flow_field)

        p = self.system.part.add(pos=[0.5, 0.5, 0.5], v=[3., 4., 5.])

        self.system.integrator.run(0)
        np.testing.assert_almost_equal(gamma * (u - p.v), np.copy(p.f))

        self.assertAlmostEqual(self.system.analysis.energy()['total'],
                               self.system.analysis.energy()['kinetic'])
Exemplo n.º 2
0
acc_mean_variance.update()
acc_time_series.update()
acc_correlator.update()

system.auto_update_accumulators.add(acc_mean_variance)
system.auto_update_accumulators.add(acc_time_series)
system.auto_update_accumulators.add(acc_correlator)

# constraints
system.constraints.add(shape=Sphere(center=system.box_l / 2, radius=0.1),
                       particle_type=17)
system.constraints.add(shape=Wall(normal=[1. / np.sqrt(3)] * 3, dist=0.5))
system.constraints.add(constraints.Gravity(g=[1., 2., 3.]))
system.constraints.add(constraints.HomogeneousMagneticField(H=[1., 2., 3.]))
system.constraints.add(
    constraints.HomogeneousFlowField(u=[1., 2., 3.], gamma=2.3))
pot_field_data = constraints.ElectricPotential.field_from_fn(
    system.box_l, np.ones(3), lambda x: np.linalg.norm(10 * np.ones(3) - x))
checkpoint.register("pot_field_data")
system.constraints.add(
    constraints.PotentialField(field=pot_field_data,
                               grid_spacing=np.ones(3),
                               default_scale=1.6))
vec_field_data = constraints.ForceField.field_from_fn(
    system.box_l, np.ones(3), lambda x: 10 * np.ones(3) - x)
checkpoint.register("vec_field_data")
system.constraints.add(
    constraints.ForceField(field=vec_field_data,
                           grid_spacing=np.ones(3),
                           default_scale=1.4))
if espressomd.has_features("ELECTROSTATICS"):