예제 #1
0
# volume to examine
volume_corner1 = (0, 0, 0)
volume_corner2 = (.12, .12, .05)

grid3D = np.mgrid[volume_corner1[0]:volume_corner2[0]:resolution,
                  volume_corner1[1]:volume_corner2[1]:resolution,
                  volume_corner1[2]:volume_corner2[2]:resolution]
grid2D = np.mgrid[volume_corner1[0]:volume_corner2[0]:resolution / 2.0,
                  volume_corner1[1]:volume_corner2[1]:resolution / 2.0, 0:1]

# create list of grid points
points3D = np.vstack(map(np.ravel, grid3D)).T
points2D = np.vstack(map(np.ravel, grid2D)).T

# calculate B field at given points
bs = biotsavart.BiotSavart(wire=w1)
bs.AddWire(w2)

B = bs.CalculateB(points=points3D)
Babs = np.linalg.norm(B, axis=1)

B2D = bs.CalculateB(points=points2D)
B2Dabs = np.linalg.norm(B2D, axis=1)
B2Dabs = B2Dabs.clip(0, 0.01)
B2Dabsgrid = B2Dabs.reshape(grid2D.shape[1:-1]).T

# draw results

# prepare axes
a = vv.gca()
a.cameraType = '3d'
예제 #2
0
# some basic calculations for testing

import numpy as np

import visvis as vv

import wire
import biotsavart

# simple solenoid
w = wire.Wire(path=wire.Wire.SolenoidPath(),
              discretization_length=0.01,
              current=100).Translate((0.1, 0.1, 0)).Rotate(axis=(1, 0, 0),
                                                           deg=45)
sol = biotsavart.BiotSavart(wire=w)

resolution = 0.02
volume_corner1 = (-.2, -.3, -.2)
volume_corner2 = (.3, .3, .4)

grid = np.mgrid[volume_corner1[0]:volume_corner2[0]:resolution,
                volume_corner1[1]:volume_corner2[1]:resolution,
                volume_corner1[2]:volume_corner2[2]:resolution]

# create list of grid points
points = np.vstack(map(np.ravel, grid)).T

# calculate B field at given points
B = sol.CalculateB(points=points)
예제 #3
0
파일: tenloops.py 프로젝트: brash99/phys202
# some basic calculations for testing

import numpy as np

import visvis as vv

import wire
import biotsavart

wirelist = []
# simple wire
for i in range(21):
    wirelist.append(wire.Wire(path=wire.Wire.SinusoidalCircularPath(radius=0.5,amplitude=0.0,frequency=12.0,pts=200), discretization_length=0.01,current=2000).Translate([0.0,0.0,-0.5+i*0.05]))

sol = biotsavart.BiotSavart(wire=wirelist[0])

for i in range(1,21):
    sol.AddWire(wirelist[i])

resolution = 0.1
volume_corner1 = (-0.9, -0.9, -0.9)
volume_corner2 = (0.9, 0.9, 0.9)

grid = np.mgrid[volume_corner1[0]:volume_corner2[0]:resolution, volume_corner1[1]:volume_corner2[1]:resolution, volume_corner1[2]:volume_corner2[2]:resolution]

# create list of grid points
points = np.vstack(map(np.ravel, grid)).T

# calculate B field at given points
B = sol.CalculateB(points=points)