def gen_plant(self): # set heliostat field characteristics: 6.09m*6.09m, abs = 0, aim_h = 61 self.pos[:,1] = self.pos[:,1]-4. # correct6ion for the true position of the plate on the tower. self.field = HeliostatField(self.pos, 6.09, 6.09, absorptivity=0.04, aim_height=60, sigma_xy=1e-3, option=None) self.rec_w = 11 self.rec_h = 11 self.rec, recobj = one_sided_receiver(self.rec_w, self.rec_h) rec_trans = rotx(N.pi/-2) rec_trans[2,3] = self.field._th #================= ground_rec = False #================= if ground_rec: # Evaluating missed rays in the field along with receiver radius = 1.10 * math.sqrt((self.x_dist/2)**2 + (self.y_dist/2)**2) self.ground_rec, ground_recobj = one_sided_receiver(3*radius, 3*radius) ground_rec_trans = rotz(0) ground_rec_trans[0,3] = self.field_centre[0] ground_rec_trans[1,3] = self.field_centre[1] recobj.set_transform(rec_trans) ground_recobj.set_transform(ground_rec_trans) self.plant = Assembly(objects=[recobj, ground_recobj], subassemblies=[self.field]) else: # Evaluating just the receiver recobj.set_transform(rec_trans) self.plant = Assembly(objects=[recobj], subassemblies=[self.field])
def gen_plant(self, width=6.1, height=6.1, absorptivity=0.04, aim_height=60., sigma_xy=1e-3, rec_w=11., rec_h=11.): self.pos[:, 1] = self.pos[:, 1] - 4. # correction for the true position of the plate on the tower. self.width = width self.height = height self.absorptivity = absorptivity self.field = HeliostatField(self.pos, width, height, absorptivity, aim_height, sigma_xy) self.rec_w = rec_w self.rec_h = rec_h rec, recobj = one_sided_receiver(self.rec_w, self.rec_h) rec_trans = rotx(N.pi / -2) rec_trans[2, 3] = self.field._th # Evaluating just the receiver recobj.set_transform(rec_trans) self.plant = Assembly(objects=[recobj], subassemblies=[self.field])
def gen_plant(self): # set heliostat field characteristics: 6.09m*6.09m, abs = 0, aim_h = 61 self.pos[:, 1] = self.pos[:, 1] - 4. # correct6ion for the true position of the plate on the tower. self.field = HeliostatField(self.pos, 6.09, 6.09, absorptivity=0.04, aim_height=60, sigma_xy=1e-3, option=None) self.rec_w = 11 self.rec_h = 11 self.rec, recobj = one_sided_receiver(self.rec_w, self.rec_h) rec_trans = rotx(N.pi / -2) rec_trans[2, 3] = self.field._th #================= ground_rec = False #================= if ground_rec: # Evaluating missed rays in the field along with receiver radius = 1.10 * math.sqrt((self.x_dist / 2)**2 + (self.y_dist / 2)**2) self.ground_rec, ground_recobj = one_sided_receiver( 3 * radius, 3 * radius) ground_rec_trans = rotz(0) ground_rec_trans[0, 3] = self.field_centre[0] ground_rec_trans[1, 3] = self.field_centre[1] recobj.set_transform(rec_trans) ground_recobj.set_transform(ground_rec_trans) self.plant = Assembly(objects=[recobj, ground_recobj], subassemblies=[self.field]) else: # Evaluating just the receiver recobj.set_transform(rec_trans) self.plant = Assembly(objects=[recobj], subassemblies=[self.field])
def gen_plant(self): xy = radial_stagger(-N.pi/4, N.pi/4 + 0.0001, self.ang_res, 5, 20, self.radial_res) self.pos = N.hstack((xy, N.zeros((xy.shape[0], 1)))) self.field = HeliostatField(self.pos, 0.5, 0.5, 0, 10) self.rec, recobj = one_sided_receiver(1., 1.) rec_trans = roty(N.pi/2) rec_trans[2,3] = 10 recobj.set_transform(rec_trans) self.plant = Assembly(objects=[recobj], subassemblies=[self.field])
def gen_plant(self): # import custom coordinate file self.pos = N.loadtxt("sandia_hstat_coordinates.csv", delimiter=',') self.pos *= 0.1 # set heliostat field characteristics: 0.52m*0.52m, abs = 0, aim_h = 61 self.field = HeliostatField(self.pos, 6.09e-1, 6.09e-1, 0, 6.1,1e-3) self.reclist, recobj = one_sided_receiver(1.0, 1.0, 0.8) rec_trans = rotx(N.pi/-2) # originally N.pi/2, changed to minus rotx(N.pi/-2) print(recobj) rec_trans[2,3] = 6.1 # height of the tower original 6.1 recobj.set_transform(rec_trans) self.plant = Assembly(objects=[recobj], subassemblies=[self.field])
def gen_plant(self, width=6.1, height=6.1, absorptivity=0.04, aim_height=60., sigma_xy=1e-3, rec_w=11., rec_h=11.): self.pos[:,1] = self.pos[:,1]-4. # correction for the true position of the plate on the tower. self.width = width self.height = height self.absorptivity = absorptivity self.field = HeliostatField(self.pos, width, height, absorptivity, aim_height, sigma_xy) self.rec_w = rec_w self.rec_h = rec_h rec, recobj = one_sided_receiver(self.rec_w, self.rec_h) rec_trans = rotx(N.pi/-2) rec_trans[2,3] = self.field._th # Evaluating just the receiver recobj.set_transform(rec_trans) self.plant = Assembly(objects=[recobj], subassemblies=[self.field])