def setUp(self): default_syris_init() lens = Lens(3.0, f_number=1.4, focal_length=100.0 * q.mm) camera = Camera(1 * q.um, 0.1, 10, 1.0, 12, (64, 64)) detector = Detector(None, lens, camera) ps = detector.pixel_size t = np.linspace(0, 1, 10) * q.mm x = t y = np.zeros(len(t)) z = np.zeros(len(t)) points = list(zip(x, y, z)) * q.mm mb_0 = MetaBall( Trajectory(points, pixel_size=ps, furthest_point=1 * q.um, velocity=1 * q.mm / q.s), 1 * q.um, ) mb_1 = MetaBall( Trajectory(points, pixel_size=ps, furthest_point=1 * q.um, velocity=2 * q.mm / q.s), 1 * q.um, ) self.experiment = Experiment([mb_0, mb_1], None, detector, 0 * q.m, None)
def setUp(self): default_syris_init(double_precision=True) self.energy = 20 * q.keV self.lam = 6.19920937165e-11 * q.m self.size = 64 self.distance = 1 * q.m self.pixel_size = 1 * q.um
def setUp(self): default_syris_init(profiling=True) self.data = np.arange(10).astype(cfg.PRECISION.np_float) self.mem = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR, hostbuf=self.data)
def setUp(self): default_syris_init() self.energies = np.arange(10, 20) * q.keV self.energy = 15 * q.keV delta = np.linspace(1e-5, 1e-6, len(self.energies)) beta = np.linspace(1e-8, 1e-9, len(self.energies)) self.material = Material("foo", delta + beta * 1j, self.energies) self.thickness = 1 * q.mm self.fltr = MaterialFilter(self.thickness, self.material)
def setUp(self): # Double precision needed for spherical phase profile default_syris_init() self.ps = 1 * q.um self.n = 128 self.size = (100, 100) * q.um self.sample_dist = 30 * q.m self.dE = 1 * q.keV self.energies = np.arange(1, 39, self.dE.magnitude) * q.keV self.trajectory = Trajectory([(self.n / 2, self.n / 2, 0)] * self.ps)
def setUp(self): default_syris_init() self.pixel_size = 1e-3 self.precision_places = int(np.log10(1 / self.pixel_size)) self.prg = g_util.get_program(g_util.get_metaobjects_source()) self.poly_deg = 4 self.roots_mem = cl.Buffer( cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE, size=(self.poly_deg + 1) * cfg.PRECISION.cl_float, )
def setUp(self): default_syris_init() self.prg = g_util.get_program( g_util.get_source(["polyobject.cl", "heapsort.cl"], precision_sensitive=True)) self.num = 10 self.data = np.array([1, 8, np.nan, -1, np.nan, 8, 680, 74, 2, 0]).astype(cfg.PRECISION.np_float) self.mem = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR, hostbuf=self.data)
def setUp(self): default_syris_init() self.data = [] sizes = [8, 32] tile_counts = [2, 4] for j in range(len(sizes)): for i in range(len(sizes)): size = sizes[j], sizes[i] for t_j in range(len(tile_counts)): for t_i in range(len(tile_counts)): tiles_count = tile_counts[t_j], tile_counts[t_i] self.data.append((size, tiles_count))
def setUp(self): default_syris_init() wavelengths = np.arange(10) * q.nm qe = np.ones(len(wavelengths)) self.camera = Camera( 1e-3 * q.um, 1.0, 10.0, 0, 10, (64, 64), wavelengths=wavelengths, quantum_efficiencies=qe, exp_time=1 * q.s, fps=1 / q.s, )
def setUp(self): default_syris_init() self.num_0 = np.array([17 - 38j], dtype=cfg.PRECISION.np_cplx) self.num_1 = np.array([-135 + 563j], dtype=cfg.PRECISION.np_cplx) self.mem_0 = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR, hostbuf=self.num_0) self.mem_1 = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE | cl.mem_flags.COPY_HOST_PTR, hostbuf=self.num_1) self.mem_out = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE, cfg.PRECISION.cl_cplx) self.host_array = np.empty(1, cfg.PRECISION.np_cplx) src = gpu_util.get_source(["vcomplex.cl"]) self.prg = cl.Program(cfg.OPENCL.ctx, src).build()
def setUp(self): # Double precision needed for spherical phase profile default_syris_init(double_precision=True) self.dE = 0.1 * q.keV self.energies = np.arange(14.8, 15, self.dE.magnitude) * q.keV self.trajectory = Trajectory([(0, 0, 0)] * q.m) self.ps = 10 * q.um self.source = BendingMagnet( 2.5 * q.GeV, 150 * q.mA, 1.5 * q.T, 30 * q.m, self.dE, np.array([0.2, 0.8]) * q.mm, self.ps, self.trajectory, )
def test_fft(self): data = gpu_util.get_array( np.random.normal(100, 100, size=(4, 4)).astype(cfg.PRECISION.np_float) ) orig = gpu_util.get_host(data) data = ip.fft_2(data) ip.ifft_2(data) np.testing.assert_almost_equal(orig, data.get().real, decimal=4) # Test double precision default_syris_init(double_precision=True) data = gpu_util.get_array( np.random.normal(100, 100, size=(4, 4)).astype(cfg.PRECISION.np_float) ) gt = np.fft.fft2(data.get()) data = ip.fft_2(data) np.testing.assert_almost_equal(gt, data.get(), decimal=4) gt = np.fft.ifft2(data.get()) data = ip.ifft_2(data) np.testing.assert_almost_equal(gt, data.get(), decimal=4)
def setUp(self): default_syris_init(double_precision=True) self.poly_deg = 4 self.coeffs = np.array([5, 87, -2, 37, 17], dtype=cfg.PRECISION.np_float) self.coeffs_mem = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_ONLY | cl.mem_flags.COPY_HOST_PTR, hostbuf=self.coeffs) self.scalar_mem = cl.Buffer(cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE, size=cfg.PRECISION.cl_float) self.pixel_size = 1e-3 self.precision_places = int(np.log10(1 / self.pixel_size)) self.prg = g_util.get_program(g_util.get_metaobjects_source()) self.roots_mem = cl.Buffer( cfg.OPENCL.ctx, cl.mem_flags.READ_WRITE, size=(self.poly_deg + 1) * cfg.PRECISION.cl_float, )
def test_creation(self): default_syris_init() energies = np.arange(1, 10, 1) * q.keV make_henke("foo", energies, formula="H")
def setUp(self): default_syris_init() self.energies = np.arange(1, 5, 1) * q.keV self.refractive_indices = np.array( [i + i * 1j for i in range(1, len(self.energies) + 1)])
def setUp(self): default_syris_init() energies = list(range(10, 20)) * q.keV self.energy = energies[len(energies) // 2] self.material = Material("foo", np.arange(len(energies), dtype=np.complex), energies)
def setUp(self): default_syris_init() self.triangles = make_cube() self.trajectory = Trajectory([(0, 0, 0)] * q.m) self.mesh = Mesh(self.triangles, self.trajectory)
def setUp(self): default_syris_init() self.pixel_size = 1 * q.um
def setUp(self): default_syris_init() self.n = 2 self.kernel_fn = "vfloat_test.cl"