-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathseries.py
45 lines (42 loc) · 1.37 KB
/
series.py
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
"""
Series expansion tool for generating different kinds of series.
"""
class Series(object):
def __init__(self, structure):
self.structure = structure
def volume_steps(self, vzero, dv, vsteps, coverazero, dcovera, coasteps):
#create volume steps
volume = []
covera = []
i = vsteps - 1
while i > -1:
volume.append(vzero - (i-int(vsteps/2))*dv)
i = i-1
#create c/a steps
i = coasteps - 1
while i > -1:
covera.append(coverazero - (i-int(coasteps/2))*dcovera)
i = i-1
#create lattice parameters out of c/a steps
scale = {}
for coa in covera:
scale[str(coa)] = []
for v in volume:
scale[str(coa)].append((2./3.**(1/2.)*v/coa)**(1/3.))
return scale, covera
def covera_steps(self, coazero, dcoa, nsteps):
#create c/a steps
covera = []
i = nsteps - 1
while i > -1:
covera.append(coverazero - (i-int(coasteps/2))*dcovera)
i = i-1
return covera
def latt_steps(self, lattzero, dlatt, nsteps):
#create lattice parameter steps
scale = []
i = nsteps - 1
while i > -1:
scale.append(lattzero - (i-int(nsteps/2))*dlatt)
i = i-1
return scale