def gen_sensors_custom(self, positions, angles): sensors = [] for pos, angle in zip(positions, angles): s = Sensor(pos=(pos[0], pos[1], pos[2])) s.rotate(angle=angle[0], axis=(1, 0, 0)) s.rotate(angle=angle[1], axis=(0, 1, 0)) s.rotate(angle=angle[2], axis=(0, 0, 1)) sensors.append(s) return sensors
def gen_sensors_all(self, positions, pos_offsets, angles, angle_offsets): sensors = [] for pos, pos_offset, angle, angle_offset in zip( positions, pos_offsets, angles, angle_offsets): s = Sensor(pos=(pos[0] + pos_offset[0], pos[1] + pos_offset[1], pos[2] + pos_offset[2])) s.rotate(angle=angle[0] + angle_offset[0], axis=(1, 0, 0)) s.rotate(angle=angle[1] + angle_offset[1], axis=(0, 1, 0)) s.rotate(angle=angle[2] + angle_offset[2], axis=(0, 0, 1)) sensors.append(s) return sensors
def gen_sensors(self): sensors = [] for pos,pos_offset,angle,angle_offset in zip(self.config['sensor_pos'],\ self.config['sensor_pos_offsets'],self.config['sensor_angle'],self.config['sensor_angle_offsets']): s = Sensor(pos=(pos[0] + pos_offset[0], pos[1] + pos_offset[1], pos[2] + pos_offset[2])) s.rotate(angle=angle[0] + angle_offset[0], axis=(1, 0, 0)) s.rotate(angle=angle[1] + angle_offset[1], axis=(0, 1, 0)) s.rotate(angle=angle[2] + angle_offset[2], axis=(0, 0, 1)) sensors.append(s) return sensors
def gen_sensors(pos, pos_offset, angle, angle_offset): sensors = [] i = 0 for p in pos: s = Sensor(pos=(pos[i][0] + pos_offset[i][0], pos[i][1] + pos_offset[i][1], pos[i][2] + pos_offset[i][2])) s.rotate(angle=angle[i][0] + angle_offset[i][0], axis=(1, 0, 0)) s.rotate(angle=angle[i][1] + angle_offset[i][1], axis=(0, 1, 0)) s.rotate(angle=angle[i][2] + angle_offset[i][2], axis=(0, 0, 1)) sensors.append(s) i = i + 1 return sensors
from magpylib import source, Sensor, Collection ##### Single source example sensorPosition = [5,0,0] sensor = Sensor(pos=sensorPosition, angle=90, axis=(0,0,1)) cyl = source.magnet.Cylinder([1,2,300],[0.2,1.5]) # Read field from absolute position in system absoluteReading = cyl.getB(sensorPosition) print(absoluteReading) # [ 0.50438605 1.0087721 297.3683702 ] # Now, read from sensor and print the relative output relativeReading = sensor.getB(cyl) print(relativeReading) # [ 1.0087721 -0.50438605 297.3683702 ]
axis = 0 movie_path = '/home/letrend/Videos/magnetic_arrangements/more_sensors' # def gen_magnets(): # magnets = [Box(mag=(0,0,2000),dim=(5,5,5),pos=(0,0,10))] # return magnets # define sensor sensor_pos = [[-22.7, 7.7, 0], [-14.7, -19.4, 0], [14.7, -19.4, 0], [22.7, 7.7, 0] ] #[[22.7,7.7,0],[14.7,-19.4,0],[-14.7,-19.4,0],[-22.7,7.7,0]] # sensor_rot = [[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]]] sensors = [] for pos in sensor_pos: # sensors.append(Sensor(pos=pos,angle=sensor_rot[i][0], axis=sensor_rot[i][1])) s = Sensor(pos=pos, angle=90, axis=(0, 0, 1)) sensors.append(s) # for i in np.linspace(0,360,10): # # sensors.append(Sensor(pos=pos,angle=sensor_rot[i][0], axis=sensor_rot[i][1])) # s = Sensor(pos=(math.sin(i)*15,math.cos(i)*15,15),angle=90,axis=(0,0,1)) # sensors.append(s) # def gen_magnets(): # return [Box(mag=(500,0,0),dim=(10,10,10),pos=(0,12,0)), Box(mag=(0,500,0),dim=(10,10,10),pos=(10.392304845,-6,0),angle=60, axis=(0,0,1)), Box(mag=(0,0,500),dim=(10,10,10),pos=(-10.392304845,-6,0),angle=-60, axis=(0,0,1))] cs = 5 dimx, dimy, dimz = 3, 3, 3 mag_pos = [ 4, 0, 1, 0,
import random import MDAnalysis import MDAnalysis.visualization.streamlines_3D import mayavi from mayavi import mlab import math # define sensor sensor_pos = [(-22.7, 7.7, 0), (-14.7, -19.4, 0), (14.7, -19.4, 0), (22.7, 7.7, 0)] # sensor_rot = [[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]],[0,[0,0,1]]] sensors = [] i = 0 for pos in sensor_pos: # sensors.append(Sensor(pos=pos,angle=sensor_rot[i][0], axis=sensor_rot[i][1])) sensors.append(Sensor(pos=pos)) def gen_magnets(): return [ Box(mag=(500, 0, 0), dim=(10, 10, 10), pos=(0, 12, 0)), Box(mag=(0, 500, 0), dim=(10, 10, 10), pos=(10.392304845, -6, 0), angle=60, axis=(0, 0, 1)), Box(mag=(0, 0, 500), dim=(10, 10, 10), pos=(-10.392304845, -6, 0), angle=-60, axis=(0, 0, 1))