def _update_density(self): """ Computes density of the group. """ density = 0 area = self.area real_area = area*(self._scale**2) for rod_ in self: distance = methods.distance_between_points(self.center, rod_.center) density += rod_.area*methods.norm_gaussian(distance, rad=self.radius) if not density or not real_area: density = 0 else: density = float(density)/real_area return density
def __init__(self, center, rad, zone_coords, rods, kappas, real_kappas, allowed_kappa_error, real_rad): """ Initialization """ self._main_coords = zone_coords pos_rad = methods.distance_between_points(center, (zone_coords[0], zone_coords[1])) if pos_rad > zone_coords[2]-rad: rad = methods.same_area_rad(rad, pos_rad, zone_coords[2]) self._zone_coords = (center[0], center[1], rad) self._real_radius = real_rad # + real_kappas self._scale = real_rad*1.0/rad self._rods = queue.Queue(rods) self._kappas = kappas self._real_kappas = real_kappas self._allowed_kappa_error = allowed_kappa_error
def area(self): """ Area of subsystem """ position_rad = methods.distance_between_points(self.main_center, self.center) return methods.effective_area(self.radius, position_rad, self.main_radius)