-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgVectors.py
More file actions
71 lines (63 loc) · 2.25 KB
/
gVectors.py
File metadata and controls
71 lines (63 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# -*- coding: utf-8 -*-
"""
Created on Mon Jul 22 11:50:57 2024
@author: Jacob Watkiss
"""
"""
-----------------------------------------------
Imports any necessary packages, libraries, modules etc.
-----------------------------------------------
"""
import numpy as np
import globalvariables as g
IErr=g.IErr
"""
-----------------------------------------------
Define the function
-----------------------------------------------
"""
def gVectors(RarVecM,RbrVecM,RcrVecM,RNormDirM,Rhkl,RConvergenceAngle,
INhkl,IPixelCount):
"""
-----------------------------------------------
Declare/call the variables
-----------------------------------------------
"""
RgPool=np.zeros((INhkl,3),dtype="float")
RgPoolMag=np.zeros(INhkl,dtype="float")
RgDotNorm=np.zeros(INhkl,dtype="float")
RgMatrix=np.zeros((INhkl,INhkl,3),dtype="float")
"""
-----------------------------------------------
Calculate the g-vector pool, the magnitudes and component
parallel to specimen surface
-----------------------------------------------
"""
for j in range(0,INhkl):
for i in range(0,3):
RgPool[j][i]=(Rhkl[j][0]*RarVecM[i])+(Rhkl[j][1]*RbrVecM[i])+(Rhkl[j][2]*RcrVecM[i])
RgPoolMag[j]=np.sqrt(np.dot(RgPool[j][:],RgPool[j][:]))
RgDotNorm[j]=np.dot(RgPool[j][:],RNormDirM)
"""
-----------------------------------------------
Calculate matrix of g-vectors that corresponds to Ug matrix
-----------------------------------------------
"""
for j in range(0,INhkl):
for i in range(0,INhkl):
RgMatrix[j][i][:]=RgPool[j][:]-RgPool[i][:]
"""
-----------------------------------------------
Outputs and returns all
-----------------------------------------------
"""
print("First 16 g-vectors:\n",RgMatrix[0:16][0][:])
print("g-vectors and magnitude (1/A), in the microscope reference frame")
for j in range(0,INhkl):
print("hkl:",Rhkl[j][:])
print("g mag:",RgPoolMag[j])
print("g.n list")
for j in range(0,INhkl):
print("hkl:",Rhkl[j][:])
print("g.n:",RgDotNorm[j])
return RgPool,RgPoolMag,RgDotNorm,RgMatrix