Sei sulla pagina 1di 29

ABSTRACT

Development of Sample Rotator for High-field, Ultra-low Temperature NMR


Experiments

Nathaniel J. Kan
Yale University

The purpose of this project was to lay the foundation for the construction of a
platform tilt-angle rotator for high-field, ultra-low temperature NMR experiments. The
sample rotator will be used in a continuation of NMR experiments being performed in
Sean Barrett’s lab to gather more information about the many-electron “particles” known
as skyrmions. The induced magnetic field contribution for a rotating piezo-electric
actuator made by attocube Systems was measured, and several models were built to
determine contribution across the sample at for different physical orientations of the
actuator. The actuator produced an induced magnetic field that was comparable to the
induced field in a similar sized block of titanium. From this data it appears likely that the
actuator will be usable in a sample rotator for future skyrmion experiments.

1
Development of Sample Rotator for High-field, Ultra-low
Temperature NMR Experiments

By
Nathaniel J. Kan

Physics 472 Final Report


Advisor: Sean E. Barrett

2
Contents
1 Background 4
1.1 Introduction: Skyrmions 4
1.2 Present Experimental Setup 5
1.3 New Experimental Setup 6
2 Sample Rotator 7
2.1 Constraints for a Sample Rotator 7
3 Experimental Setup 9
3.1 Probe 9
3.2 Physical Setup 10
4 Data 12
4.1 Converting into B-field 12
5 Analysis 14
5.1 Sphere Model 14
5.2 Octagonal Prism Model 16
5.3 Field vs Actuator Distance Simulation 18
6 Conclusion 20
6.1 Future Work 20
6.2 Final Comments 21
Appendix A: Igor 5.0 Octagonal Prism Model Procedure 22
Appendix B: Field vs Actuator Distance Simulation 26
Bibliography 29

3
1 Background

1.1 Introduction: Skyrmions

Optically Pumped Nuclear Magnetic Resonance (OPNMR) has been used to


investigate the behaviors of conduction electrons in two-dimensional electron systems
(2DES) under high field and low temperature conditions. These OPNMR experiments,
particularly those performed in the Barrett OPNMR lab at Yale University, are of
particular relevance to this project. Such experiments have so far provided us with
incomplete descriptions of the many-electron spin-textures known as skyrmions.
The experiments conducted in the Barrett lab use 2DES samples composed of thin
(300Å) layers of GaAs between two layers of Al0.1Ga0.9As. These samples maintain a
structure that behaves as many quantum wells. The physical states of the system are
determined by the Landau filling factor [1]:
nhc
ν= (1.01)
eBtot cos θ
where n is the 2D density of electrons in the well, h is Planck’s constant, c is the speed of
light, and e is the charge of an electron. If we consider a 2DES system with at its ground
state at ν = 1 (Figure 1.1.1a), and then add a single electron, we bring the system to ν = 1
+ ε. Due to the Pauli Exclusion principal the added electron will be spin oriented opposite
the polarization, and in order to minimize electrostatic repulsion nearby electrons will
have their spins oriented away from the added electron (Figure 1.1.1b). This spin-texture
is referred to as a skyrmion. By controlling the filling factor, the number of skyrmions in
a 2DES can be changed.

4
Figure 1.1.1.
Currently many unanswered questions exist about skyrmion behavior. It remains
unproven what formation skyrmions will arrange themselves in (whether skyrmions will
form a crystal). Further measurements of skyrmions at lower temperatures (<0.4 K) will
yield more answers about skyrmion localization and other properties.

1.2 Present Experimental Setup

NMR measurements of the 2DES sample in the ~300 mK – 20 K regime were


conducted in an Oxford Instruments 12Tesla/89mm wide bore Teslatron superconducting
magnet [2]. In experiments conducted near ν = 1, data was recorded while varying the
sample temperature T and Landau filling factor ν. ~300 mK – 20 K temperatures were
achieved by pumping liquid 3He with an Oxford Instruments 3He sorption-pumped
Heliox cryostat made by Oxford Instruments and varying the pumping speed.
To control the filling factor ν, the angle between the sample and the lab field was
adjusted manually between every measurement where the filling factor changed. This

5
was accomplished by a rotator assembly that could adjust the angle θ between the growth
axis of the sample and the applied field Btot. As the other factors in the filling factor
equation were held constant while manipulating θ it was possible to directly control the
filling factor.

1.3 New Experimental Setup

In order to take further data on skyrmion behavior, a more powerful cooling


system is needed. The project of building a sample rotator for ultra-low temperature and
high-field NMR experiments was originally conceived to fulfill the design needs of an
experiment utilizing a Magnex Scientific 15.3 Tesla/123mm wide bore superconducting
high resolution magnet with a custom ordered dilution refrigerator that would allow
sample temperatures nearing ~15 mK.
The solution used to adjust Landau filling factor in the old experimental setup is
impractical for the <100 mK temperature range. In the previous solution, manual
adjustment of the rotator assembly required a recooling of the sample for every
adjustment of θ. Such rotation would require mechanical access from the exterior of the
dilution refrigerator, which would significantly heat the sample during rotation. Because
of the long cooling time required by the dilution refrigerator to reach the ~15 mK
temperature, it is desirable to develop a rotation mechanism that does not significantly
heat the system. Such a system could cut down wait time between measurements by days.

6
2 Sample Rotator

2.1 Constraints for a Sample Rotator

In the next phase of Barrett lab’s skyrmion experiments, the goal is to be able to
take measurements at ultra-low temperatures nearing 15 mK. This will allow more
accurate measurements, as lower temperatures results in less movement in the system and
thus clearer resolution in the data. Because the present experimental setup uses a slow
method of ramping up current in the inductor, it is much less difficult to devise a method
of changing the tilt angle of the platform than the lab field. The primary concern of this
project was to lay the foundation for the design of a sample rotation device. This sample
rotator will need to sit inside the dilution fridge that is responsible for cooling the sample.
There are several challenges in designing the sample rotation device. The rotator
mechanism will need to function in the ultra-low temperature regime, and generate as
little heat as possible to minimize heat conduction from the exterior of the dilution fridge
to the sample. The rotator will also need to be composed primarily of non-magnetic
materials, so that emissions from the rotator do not interfere with the measurements from
the sample. Also, the sample rotator design will be confined by the size of the cavity in
the dilution refrigerator.
Currently we are considering using a piezo-electric rotator designed by attocube
Systems as the rotating mechanism in the experiment. This rotator has the advantage of
being controlled in very small precise steps (0.001 deg.), which will allow us to much
more easily devise a method of independently determining θ and minimize heat

7
conduction by controlling the rate that steps are sent to the actuator. The actuator works
on the slipstick principal—voltage is sent to the actuator in sawtooth waves with a very
long ramp-up time and a very short ramp-down time. Due to friction, this results in the
ramp-up causing rotation in both the top and bottom plates, so that the relative position of
the two plates does not change, while the ramp-down is quickly contracts the piezo and
moves the bottom plate back without changing the location of the top plate.
In order to determine whether the attocube actuator is a viable solution, we
needed to create a model of the magnetic field profile of the actuator. While attocube
actuators are designed with some non-magnetic components, the body of the actuator is
largely titanium (which is paramagnetic). In the presence of an external magnetic field
(such as the field from an NMR magnet), a paramagnetic field will gain a magnetization
and cause an induced magnetic field. Before we could commit to using the attocube
actuator, it was necessary to measure the induced field and extrapolate the possible
interference across a 2DES sample from a rotator built with the actuator. While the
sample rotator would ideally use the attocube piezo-rotator, at this time the only available
objects for testing is an attocube linear piezo-actuator, which is constructed from the
same materials and works according to the same principals.

8
3 Experimental Setup
3.1 Probe

To isolate the field produced by the actuator, we repeated measurements with and
without the actuator in the probe. Measurements were done by recording the NMR signal
from a D2O droplet approximately 1 mm3. The Larmor frequency of D2O is 78.4 MHz.
We used the low frequency circuit in the probe (Figure 3.1.1).

Figure 3.1.1.

For a given L, R (where in our circuit R was the resistivity of copper wire
contained by the circuit), and resonant frequency ω, the capacitances of the tuning
capacitor CT and the matching capacitor CM are given by the following equations:

Lω − R / 50 R 2 − 50R + L2ω 2
CT = (3.01)
ω (R 2 + L2ω 2 )

9
R / 50
CM = (3.02)
ω R 2 − 50R + L2ω 2
The matching capacitor matches the impedance of the probe to the impedance of
the 50Ω cable to the NMR spectrometer, while the tuning capacitor is used to adjust the
resonant frequency of the probe’s RF coil. The tuning and matching capacitors in our
probe were both variable capacitors which could be adjusted manually between 2-12 pF.
Additional capacitors were added in parallel to get the circuit within the appropriate
range to allow the variance in the tuning and matching capacitors to bring the resonant
frequency of the circuit to the Larmor frequency of D2O. The probe circuit was then
tuned by adjusting the variable capacitors in order to minimize power from a
spectrometer reflected by the probe at 78.4 MHz.

3.2 Physical Setup

When planning the physical location of the attocube actuator in the probe can, we
wanted to maintain degrees of freedom in two axes. The actuator, which is shaped
roughly like an octagon prism, was attached with non-magnetic material to the end of a
long plastic rod (~5’) close to the center of one of its octagon faces. The rod was placed
in the hollow shaft of the probe, so that when the probe was placed in the magnet bore,
the rod extended out the top of the probe shaft and the magnet. This extended end was
then rigidly affixed to the lab frame. The probe’s RF coil below the actuator with a slight
r-axis offset. In this setup (Figure 3.2.1) the probe (and the D20 sample) could rotate
freely 360 degrees around the actuator. The plastic rod could be unfixed from and
reattached to the lab frame in order to take measurements at different z values. Figure
3.2.2 demonstrates the different positions of the RF coil relative to the actuator.

10
Figure 3.2.1.

Figure 3.2.2.

11
4 Data

4.1 Converting into B-field

For any applied field B a particle with a net spin has a Larmor frequency of
ν = γB [3] (4.01)
Our measurements recorded the frequency shift between the resonant frequency
for D2O from to the 12T lab field that was due to the additional field caused by the
induced magnetization in the actuator. The frequency difference (∆ν) between the
measurements with the actuator and without the actuator at a given {z,r} is related to the
magnetic field due solely to the induced field in the actuator by the gyromagnetic ratio γ:
∆ ν = γ B attocube (4.02)
In our measurement coordinate system, z is the z-distance between the center of
the attocube actuator and the sample, r is the radial distance between the sample and the
axis of rotation, and θ is the angular offset of the coil. We recorded data at three values of
z {z = 2.6 cm, z = 3.1 cm, z = 3.6 cm}, r = 1.18 cm, and θ from 0 to 360 degrees (Figure
4.1.1). To isolate the field due to the actuator, we also first recorded data without the
actuator in the probe. The field due to the actuator for a given {z, r, θ} is then given by:
ν attocube − ν control
B attocube = (4.03)
γ
The gyromagnetic ratio of D2O is 6.65 * 106 s-1 T-1.

12
Figure 4.1.1.
We later introduced several changes to correct various quirks observed in the
data. In order to explain a mysterious second period in the data, we believe it was very
likely that our θ = 0 changed with respect to the coil location and that we reversed the θ
direction we were recording in between the trials with and without the actuator. Also, in
order to make our B-field data better fit an expected 1/r3 decay, we adjusted our z values
by ±5 mm. This offset appears to be due to a regular error measurement in our z-
coordinate.

Figure 4.1.2.

13
5 Analysis

5.1 Sphere Model

Our first attempt to model the actuator was to assume that the behaved like a
uniformly magnetized titanium sphere (Figure 5.1.1).

Figure 5.1.1.
The induced magnetization of M of a paramagnetic object in a uniform field Bz is
given by:
Bz
M =K (5.01)
µ0
where K is the magnetic volume susceptibility, and µ0 is the Permeability of Free Space.

14
K can be expressed in terms of the molar susceptibility χm and the molar volume Vm [4]:
χm
K= (5.02)
Vm
For titanium, χm = 3709.5 * 10-6 cm3 mol -1 and Vm = 10.64 cm3 mol -1. In the 12 T lab
field this yields a magnetization M = 1.7 * 103 T.
The field due to a sphere with a uniformly magnetization M is a textbook
problem. The potential of the sphere for a position x = {φ, θ, r} is given by [1]:

4π ⎛r ⎞
A φ (x ) = µ 0 M 0 a 2 ⎜⎜ <2 ⎟ sin (θ )
⎟ (5.03)
3 ⎝ r> ⎠
where a is the radius of the sphere and r< (r>) is the smaller (larger) of a and r (Figure
5.1.2).

Figure 5.1.2.
Bφ = 0 (5.04)

Br =
1
(A φ sin θ ) (5.05)
r sin θ ∂θ
1∂
Bθ = − (Aφ r ) (5.06)
r ∂r
We are only interested in the cases where r > a, so (5.03) becomes:
4π a3
A φ (x ) = µ 0 M 0 2 sin (θ ) (5.07)
3 r
Plugging this into (5.05) and (5.06) gives:
8π a3
Br = µ 0 M 0 3 cos θ (5.08)
3 r
4π a3
Bθ = µ 0 M 0 3 sin θ (5.09)
3 r

15
We can transform this to give us the z-component of the field:
a3 ⎛2 ⎞
Bz = µ0M 0 ⎜ − sin θ ⎟
2
(5.10)
r3 ⎝3 ⎠
We did a Х2 fit allowing the XY location (because the actuator’s center of mass
was slightly offset from the axis of rotation and center of volume) and the radius of the
sphere to vary. The best fit to the data was

Figure 5.1.2.

5.2 Octagonal Prism Model

The next model we did was an octagonal prism with a rectangular slit removed
from it, the dimensions of which were the actual figures measured from the actuator. The
magnetic potential from any uniformly charged object is:
r r
r µ0 M ⋅ n
Φ(r ) =
4π ∫ r 2
∂A (5.11)

16
The field is given by:
r
B = ∇ ⋅ ∫ ∂Φ (5.12)

For the octagonal prism model we wrote a procedure in the program Igor 5.0 that
modeled the surface shell of the prism as an array of points, and then numerically
summed the B-field contributions of each point to each point in a sample ring (which
approximated our ring of sample points).
r r
Due to the M ⋅ n term in (5.11), the only surfaces that give non-zero contributions
are the surfaces parallel to the XY plane. To account for the missing rectangular box we
summed the contributions from points of an overlaid box with an opposite magnetization.
The total field in the z-direction at a sample point is then
M 0 µ0 ⎛ ∆x∆y z ⎞
Bz =

∑ ⎜⎝ r2
× ⎟
r⎠
(5.13)

where r is the distance between the nth point and the observation point. See Appendix A
for a complete copy of the procedure.

Figure 5.2.1.
The results of the octagonal prism were interesting. The octagonal prism model is
slightly less accurate in matching the data than the spherical approximation. This is due
to the fact that there was no Х2 fit to maximize various input parameters. The octagonal
model much more accurate depicts the true volume and location of the actuator, however.

17
Figure 5.2.2.

5.3 Field vs Actuator Distance Simulation

For the actuator is usable for the purposes of a sample rotator, we estimate that the
induced field across the sample should be no greater than 5 ppm (for our models less than
60 x 10-6 T). Once we were fairly confident that our models of a paramagnetic uniformly
magnetized object were reasonably good approximations, we constructed a final model
that measured the induced magnetic field against the distance from a magnetized block of
comparable volume to the actuator. The block in the sample has its large face normal to
the XY plane (Figure 5.3.1), which simulates a possible orientation of the actuator in a
sample rotator. See Appendix B for the full Igor 5.0 procedure.

18
Figure 5.3.1.
According to the model, the sample must be at least 2 cm away from the center of
actuator to reduce the force from the field to below 5 ppm (Figure 5.3.2). In the
orientation of components for the new dilution refrigerator probe, the sample rotator will
most probably be 3-5 cm away from the sample. Because of these constraints we believe
the attocube actuator is a workable solution for the purpose of a sample rotator.

Figure 5.3.2.

19
6 Conclusion

6.1 Future Work

There are additional projects that need to be completed before a sample rotator
can be built. The heat conduction due to the electrical connectors of the piezo-actuator
needs to be tested to determine the necessary cooling time between θ rotations and
measurements. Also, it would be desirable to develop a system of measuring the platform
angle θ independent of counting the number of ramping steps sent into the actuator. By
using an independent method of tracking θ the experimenter can be sure that noise or
distortions in the voltage signal have not caused a smaller or greater angular step per
wave, and therefore a miscalculation of θ. At this point there is no definite “best method”
for determining absolute θ; several methods being considered are building a mechanical
stop into the rotator and stepping from that angle in each of our measurements, or a
similar solution using an attocube fiber-optic system that tracks location by reflecting
light off a grating on the rotating platform.
Finally, the piezo-actuator sample rotator needs to be constructed. The rotator
could be as simple as the attocube rotating actuator with a non-magnetic plate extending
from its rotating face for the sample to rest on. The location of the actuator will be limited
by the physical constraints of the dilution refrigerator. It may also be desirable to retest
the magnetic field profile due to the completed working rotator to ensure that it is within
acceptable levels across the sample.

20
6.2 Final Comments

Throughout the process of testing the actuator to develop a field profile we have
learned several important lessons in experimental procedure. For future experimenters
working on this project it may be helpful to review these notes.
First, in our tests there was a significant time lapse (~several weeks) between
the NMR measurements without the actuator and the measurements with the actuator. As
the field due to the NMR magnet drifts over time, this resulted in a larger drift of the lab
field between our two data sets, which has to be approximated and accounted for. By
cutting down the wait time between measurements (for example, doing the measurements
on consecutive days) we feel this would drastically reduce error due to drift estimations.
Second, it is important to build the circuit so that the test object (the actuator)
can fit inside. While this may seem obvious, we initially planned to build our circuit to
certain physical dimensions that would allow the actuator free rotation at several different
z-values. However, through the course of building the circuit, components had to be
moved or added. This resulted in a final circuit that would not accommodate the actuator,
which was not discovered until we had taken the test data for the control profile.
Third, the experimenter should make sure to use a consistent angular convention
in every test. Four, in order to maximize the effect of the induced field, the applied lab
field should be as large as possible. This will make it much easier to see the effects of the
object on field structure.
Last, for any experimenters pursuing this project, it may be helpful to retake the
data. When doing so, it would be a good idea to take data at different orientations of the
actuator in order to better test the accuracy of the model. Also, a more accurate method of
fixing the test object in the lab frame while rotating the probe would yield much more
accurate measurements along the z-axis.

21
Appendix A: Igor 5.0 Octagonal Prism Model Procedure
Function RectangleBvariationNeg(cx,cy,cz,cs,sx,sy,sz,sr,ss,ca,cb,ch,thetastart)
// Calculate the Bfield for an array of points defined by the circle with center at (sx,sy) and radius sr.
Variable cx,cy,cz,cs,sx,sy,sz,sr,ss,ca,cb,ch,thetastart //Variable cx,cy,cz,cnpnts,sx,sy,sz,sr,snpnts
//ca = start hole x, cb = end hole x, ch = height hole, thetastart = phase shift
Variable m
m = 1.703*10^3 // m = total magnetization of the object
//Variable cs,ss // cs = step size for x and y dim of rectangle, ss = step size in radians along circle
//cs = cx*cy/cnpnts

//cnpnts number of points on 'charged rectangle' over which to integrate.


//snpnts number of points in sample to be evaluated.
//ngpnts number of points in absent rectangle to be evaluated
Variable cnpnts,snpnts,ngpnts,grdpnts

grdpnts = 2*(cx/cs)*(cy/cs)*2*pi/ss+2*((cb-ca)/cs)*(cy/cs)*2*pi/ss
print "start time",time()
DoWindow/K graph0
DoWindow/K graph1
DoWindow/K graph2
DoWindow/K table0
DoWindow/K table1 //kills leftover graphs and tables created by this macro from previous
run.

Make/N=(grdpnts)/D/O xc, yc, xn, yn, xs, ys // generates longer waves than needed. waves will
be redimensioned later.

Variable xj, yj // looping variables for tracking current x,y within charged plate
Variable k, i, theta // loop variable
xj=0
yj=0
k=0
i=0
theta=thetastart
ngpnts=0

// first generate array of points for the charged rectangular plate


do // loop through x
if(xj>=(ca-0.0001)&&xj<=(cb+.0001))
do // loop through y
xc[i]=xj
yc[i]=yj

xn[ngpnts]=xj
yn[ngpnts]=yj

ngpnts+=1

i+=1
yj+=cs
while(yj<=(cy+0.0001))
else
do // loop through y
xc[i]=xj

22
yc[i]=yj

i+=1
yj+=cs
while(yj<=(cy+0.0001))
endif
yj=0 // reset yj to -cr and step to next xj value.
xj+=cs
while(xj<=(cx+0.0001))

// now generate array of points for the sample circle


do // loop through theta
xs[k]=sx-sr*sin(theta)
ys[k]=sy+sr*cos(theta)
theta+=ss
k+=1
while(theta<=2*Pi+thetastart)

snpnts=k //use i and k to redeminsion waves xs, ys, zs and xc, yc.
cnpnts=i

ReDimension/N=(snpnts) xs, ys
ReDimension/N=(cnpnts) xc, yc
ReDimension/N=(ngpnts) xn, yn
print "number of points for 'charged rectangle'", cnpnts
print "number of points for sample", snpnts
print "number of points for negative block", ngpnts

Display yc vs xc
ModifyGraph mode=3,marker=19
AppendToGraph ys vs xs
ModifyGraph mode=3,marker=19,rgb(ys)=(0,0,65535)
AppendToGraph yn vs xn
ModifyGraph mode=3,marker=19,rgb(yn)=(0,65535,0)
Make/N=(snpnts)/D/O Bext //this is the field wave evaluated at points (xs,ys)
Bext=0// initialize wave to zero

print "start integration loop 1 at", time()

i=0 // index for points on rectangle plate


k=0 // index for Bext points in sample

Variable xdelta, ydelta, zdelta, rsquare, multiplyconst // multiplyconst = the constants in front of
the whole thing
multiplyconst = 10^-7*m
print "multiply factor", multiplyconst
//Variable height = cz/2
do // loop for different points within the sample
do // integrating over lower & upper charged rectangles at same time.
xdelta=xc[i]-xs[k]
ydelta=yc[i]-ys[k]

// Top plate has positive charge and located at 0


zdelta = sz
rsquare = (zdelta^2+xdelta^2+ydelta^2)
Bext[k]+= (+1)*zdelta*cs*cs/rsquare

23
// Bottom plate has negative charge and located at -cz
zdelta = cz+sz
rsquare = (zdelta^2+xdelta^2+ydelta^2)
Bext[k]+= (-1)*zdelta*cs*cs/rsquare

i+=1 // step through points on disk to integrate


while (i<=cnpnts-1)

i=0 //reset loop variable

if(k == round(.25*snpnts))
print "25% complete at", time()
elseif(k == round(.50*snpnts))
print "50% complete at", time()
elseif(k == round(.75*snpnts))
print "75% complete at", time()
elseif(k == round(.90*snpnts))
print "90% complete at", time()
endif
k+=1
while (k<=snpnts-1)
print "start integration loop 2 at", time()

i=0 // index for points on rectangle plate


k=0 // index for Bext points in sample

//Variable height = cz/2


do // loop for different points within the sample
do // integrating over lower & upper charged rectangles at same time.
xdelta=xn[i]-xs[k]
ydelta=yn[i]-ys[k]

// Top plate has negative and located at 0


zdelta = sz
rsquare = (zdelta^2+xdelta^2+ydelta^2)
Bext[k]+= (-1)*zdelta*cs*cs/rsquare

// Bottom plate has positive charge and located at -ch


zdelta = ch+sz
rsquare = (zdelta^2+xdelta^2+ydelta^2)
Bext[k]+= (+1)*zdelta*cs*cs/rsquare

i+=1 // step through points on disk to integrate


while (i<=ngpnts-1)
// multiply Bext[k] by all the constants
Bext[k] *= multiplyconst

i=0 // reset loop variable

if(k == round(.25*snpnts))
print "25% complete at", time()
elseif(k == round(.50*snpnts))
print "50% complete at", time()
elseif(k == round(.75*snpnts))
print "75% complete at", time()

24
elseif(k == round(.90*snpnts))
print "90% complete at", time()
endif
k+=1
while (k<=snpnts-1)
print "stop integration loop at", time()

Edit xc,yc,xn,yn,xs,ys,Bext // displays these waves in a table.


Display Bext // plots Bext as a function of kth point.
ModifyGraph mode=0

End

25
Appendix B: Field vs Actuator Distance Simulation
Function OctagonBvariationJustin(cx,cy,cz,cs,sx,sy,sz,sr,ss,thetastart)
// Calculate the Bfield for an array of points defined by the circle with center at (sx,sy) and radius sr.
Variable cx,cy,cz,cs,sx,sy,sz,sr,ss,thetastart //Variable cx,cy,cz,cnpnts,sx,sy,sz,sr,snpnts
//ca = start hole x, cb = end hole x, ch = height hole, thetastart = phase shift
// a = corner x length, b = corner y height
Variable m
m = 1.703*10^3 // m = total magnetization of the object (assumes ~180 ppm of dimensionless chi
for Titanium, and B=12 Tesla, and mu_0=4Pie-7)
//Variable cs,ss // cs = step size for x and y dim of rectangle, ss = step size in radians along circle
//cs = cx*cy/cnpnts

//cnpnts number of points on 'charged rectangle' over which to integrate.


//snpnts number of points in sample to be evaluated.
//ngpnts number of points in absent rectangle to be evaluated
Variable cnpnts,snpnts,ngpnts,grdpnts,dpnts

grdpnts = 2*(cx/cs)*(cy/cs)*2*pi/ss
print "start time",time()
DoWindow/K graph0
DoWindow/K graph1
DoWindow/K graph2
DoWindow/K table0
DoWindow/K table1 //kills leftover graphs and tables created by this macro from previous
run.

Make/N=(grdpnts)/D/O xc, yc, xs, zs, ys, angle // generates longer waves than needed. waves will
be redimensioned later.
Variable xj, yj // looping variables for tracking current x,y within charged plate
Variable k, i, theta // loop variable
Variable ymin, ymax // hold the max y and min y for calculating corners
xj=0
yj=0
k=0
i=0
theta=thetastart
ngpnts=0
dpnts=0

// first generate array of points for the charged rectangular plate


do // loop through x
do // loop through y
xc[i]=xj
yc[i]=yj
i+=1
yj+=cs
while(yj<=(cy+0.0001))
yj=0 // reset yj to -cr and step to next xj value.
xj+=cs
while(xj<=(cx+0.0001))

// now generate array of points for the sample circle


// now generate array of points for the sample circle
do // loop through theta

26
zs[k]=sz-sr*sin(theta)
ys[k]=sy+sr*cos(theta)
xs[k]=sx

theta+=ss
angle[k]=360-(theta-thetastart)*180/Pi

k+=1

while(theta<=2*Pi+thetastart)

snpnts=k //use i and k to redeminsion waves xs, ys, zs and xc, yc.
cnpnts=i

ReDimension/N=(snpnts) xs, ys, zs, angle


ReDimension/N=(cnpnts) xc, yc
print "number of points for 'charged rectangle'", cnpnts
print "number of points for sample", snpnts

Display/W=(1,1,500,500) yc vs xc
ModifyGraph mode=3,marker=19,rgb(yc)=(65535,0,0)
AppendToGraph ys vs xs
ModifyGraph mode=3,marker=19,rgb(ys)=(0,0,65535)
Make/N=(snpnts)/D/O Bext //this is the field wave evaluated at points (xs,ys)
Bext=0// initialize wave to zero

print "start integration loop 1 at", time()

i=0 // index for points on rectangle plate


k=0 // index for Bext points in sample

Variable xdelta, ydelta, zdelta, rsquare, multiplyconst // multiplyconst = the constants in front of
the whole thing
multiplyconst = 10^-7*m
print "multiply factor", multiplyconst

//Variable height = cz/2


do // loop for different points within the sample
do // integrating over upper charged rectangle first
xdelta=xc[i]-sx
ydelta=yc[i]-ys[k]
zdelta=cz-zs[k]

// Top plate has positive charge


rsquare = (zdelta^2+xdelta^2+ydelta^2)^(3/2)
Bext[k]+= (+1)*zdelta*cs*cs/rsquare

i+=1 // step through points on disk to integrate


while (i<=cnpnts-1)
i=0 //reset loop variable

do // integrating over lower charged rectangle second


xdelta=xc[i]-sx
ydelta=yc[i]-ys[k]
zdelta=-zs[k]

27
// Bottom plate has negative charge
rsquare = (zdelta^2+xdelta^2+ydelta^2)^(3/2)
Bext[k]+= (-1)*zdelta*cs*cs/rsquare

i+=1 // step through points on disk to integrate


while (i<=cnpnts-1)

// multiply Bext[k] by all the constants


Bext[k] *= multiplyconst

i=0 //reset loop variable

if(k == round(.25*snpnts))
print "25% complete at", time()
elseif(k == round(.50*snpnts))
print "50% complete at", time()
elseif(k == round(.75*snpnts))
print "75% complete at", time()
elseif(k == round(.90*snpnts))
print "90% complete at", time()
endif
k+=1
while (k<=snpnts-1)
print "start integration loop 2 at", time()

Edit xc,yc,zs,ys,angle,Bext // displays these waves in a table.


Display Bext vs angle // plots Bext as a function of kth point.
ModifyGraph mode=0
End

28
Bibliography

[1] S. E. Barrett, R. Tycko, “Optically Pumped NMR of Semiconductors and Two-


dimensional Electron Systems,” Encyclopedia of Nuclear Magnetic Resonance,
Supplementary Volume.
[2] A. E. Dementyev, “Spin in the Quantum Hall Effect: OPNMR Studies of Skyrmions
and Composite Fermions,” Dissertation, Yale University.
[3] J.P. Hornak, “The Basics of NMR,” http://www.cis.rit.edu/htbooks/nmr/inside.htm
[4] “Magnetic Susceptibility of the Elements and Inorganic Compounds,” http://www-
d0.fnal.gov/hardware/cal/lvps_info/engineering/elementmagn.pdf

29

Potrebbero piacerti anche