def test_case(focus, num_rays=100, h_depth=0.7, side=0.4): # Case parameters (to be moved out: D = 5. center = N.c_[[0, 7., 7.]] x = -1/(math.sqrt(2)) direction = N.array([0,x,x]) radius_sun = 2.5 ang_range = 0.005 iterate = 100 min_energy = 1e-6 # Model: assembly = MiniDish(D, focus, 0.9, focus + h_depth, side, h_depth, 0.9) assembly.set_transform(rotx(-N.pi/4)) # Rays: sun = solar_disk_bundle(num_rays, center, direction, radius_sun, ang_range, flux=1000.) # Do the tracing: engine = TracerEngine(assembly) engine.ray_tracer(sun, iterate, min_energy) # Plot, scale in suns: f = plot_hits(assembly.histogram_hits()[0]/(side/50)**2/1000., (-side/2., side/2., -side/2., side/2.)) f.show()
def setUp(self): """Create a basic minidish assembly to abuse""" self.md = MiniDish(5, 5, 0.9, 5.7, .4, 0.7, 0.9) self.e = tracer.tracer_engine.TracerEngine(self.md) pos = N.zeros((3, 5)) pos[0] = N.r_[-2:2:5j] pos[2] = 6. self.pos = pos dir = N.zeros((3, 5)) dir[2] = -1. self.dir = dir