Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
    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