Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'mid_l': the second smallest allowed cell vector. The second
smallest vector must be larger than this.
'max_l': the third smallest allowed cell vector. The largest cell
vector must be larger than this.
Returns:
a Lattice object with the specified parameters
"""
try:
cell_matrix = para2matrix((a, b, c, alpha, beta, gamma), radians=radians)
except:
printx("Error: invalid cell parameters for lattice.", priority=1)
return
volume = np.linalg.det(cell_matrix)
# Initialize a Lattice instance
l = Lattice(ltype, volume, PBC=PBC, **kwargs)
l.a, l.b, l.c = a, b, c
l.alpha, l.beta, l.gamma = alpha * rad, beta * rad, gamma * rad
l.matrix = cell_matrix
l.ltype = ltype
l.volume = volume
l.random = False
l.allow_volume_reset = False
return l
else:
unique_axis = "c"
else:
unique_axis = "c"
self.volume = self.estimate_volume()
if self.dim == 3 or self.dim == 0:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
)
elif self.dim == 2:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
# NOTE self.thickness is part of 2D class
thickness=self.thickness,
)
elif self.dim == 1:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
# NOTE self.area is part of 1D class
area=self.area,
)
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
)
elif self.dim == 2:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
# NOTE self.thickness is part of 2D class
thickness=self.thickness,
)
elif self.dim == 1:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
# NOTE self.area is part of 1D class
area=self.area,
)
# Set the tolerance matrix for checking inter-atomic distances
if type(tm) == Tol_matrix:
self.tol_matrix = tm
else:
try:
self.tol_matrix = Tol_matrix(prototype=tm)
# TODO Remove bare except
except:
printx(
midls.append(mol.box.midl)
maxls.append(mol.box.maxl)
# The Lattice object used to generate lattice matrices
if self.dim == 3 or self.dim == 0:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
min_l=max(minls),
mid_l=max(midls),
max_l=max(maxls),
)
elif self.dim == 2:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
min_l=max(minls),
mid_l=max(midls),
max_l=max(maxls),
thickness=self.thickness,
)
elif self.dim == 1:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
min_l=max(minls),
if self.number in range(3, 8):
unique_axis = "c"
else:
unique_axis = "a"
elif self.dim == 1:
if self.number in range(3, 8):
unique_axis = "a"
else:
unique_axis = "c"
else:
unique_axis = "c"
self.volume = self.estimate_volume()
if self.dim == 3 or self.dim == 0:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
)
elif self.dim == 2:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
# NOTE self.thickness is part of 2D class
thickness=self.thickness,
)
elif self.dim == 1:
self.lattice = Lattice(
'mid_l': the second smallest allowed cell vector. The second smallest vector
must be larger than this.
'max_l': the third smallest allowed cell vector. The largest cell vector must
be larger than this.
Returns:
a Lattice object with the specified parameters
"""
m = np.array(matrix)
if np.shape(m) != (3, 3):
printx("Error: Lattice matrix must be 3x3", priority=1)
return
[a, b, c, alpha, beta, gamma] = matrix2para(m)
volume = np.linalg.det(m)
# Initialize a Lattice instance
l = Lattice(ltype, volume, PBC=PBC, **kwargs)
l.a, l.b, l.c = a, b, c
l.alpha, l.beta, l.gamma = alpha, beta, gamma
l.matrix = m
l.ltype = ltype
l.volume = volume
l.random = False
l.allow_volume_reset = False
return l
mid_l=max(midls),
max_l=max(maxls),
)
elif self.dim == 2:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
min_l=max(minls),
mid_l=max(midls),
max_l=max(maxls),
thickness=self.thickness,
)
elif self.dim == 1:
self.lattice = Lattice(
self.group.lattice_type,
self.volume,
PBC=self.PBC,
unique_axis=unique_axis,
min_l=max(minls),
mid_l=max(midls),
max_l=max(maxls),
area=self.area,
)
self.generate_crystal()