Source code for pyprocar.scripts.scriptKmesh2D
import numpy as np
from ..utils import welcome
[docs]
def generate2dkmesh(x1:float, y1:float, x2:float, y2:float, z:float, nkx:int, nky:int,):
"""_summary_
Parameters
----------
x1 : float
The beginning value to generate x coords
y1 : float
The beginning value to generate y coords
x2 : float
The end value to generate x coords
y2 : float
The end value to generate y coords
z : float
The z coordinate
nkx : int
The number of points to generate in the x direction
nky : int
The number of points to generate in the y direction
Returns
-------
_type_
_description_
"""
welcome()
kx = np.linspace(x1, x2, nkx)
ky = np.linspace(y1, y2, nky)
with open("Kgrid.dat", "w") as wf:
wf.write("Generated by PyProcar\n")
wf.write("%d\n" % (nkx * nky))
wf.write("Reciprocal\n")
kpoints = []
for ikx in kx:
for iky in ky:
wf.write(
" {: >12.7f} {: >12.7f} {: >12.7f} {: >12.7f}\n".format(
ikx, iky, z, 1.0
)
)
kpoints.append([ikx,iky,z])
kpoints=np.array(kpoints)
return kpoints