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'])
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"):