Skip to content

BandStructure of complex compounds include more than one branch #10

Description

@JVergnet

Hi
I'm currently trying to plot bandstructures of compounds that have at least 3 branches in their HighSymmKPath. Your code relies on the fact that you have only one branch and that the highSymmetry Kpoints are evenly spaced.
I developped the following addition to your code : although it does not renders as beautifully as yours, it has the advantage of providing labels and index of all the Kpoints in all the branches :

(as i am new to git hub, i don't know exactly how to submit a pull that is not fully finished so i post it here) :
I would replace the following lines :

labels

nlabs = len(labels)
step = len(bands.kpoints) / (nlabs - 1)
for i, lab in enumerate(labels):
ax1.vlines(i * step, emin, emax, "k")
ax1.set_xticks([i * step for i in range(nlabs)])
ax1.set_xticklabels(labels)

ax1.set_xlim(0, len(bands.kpoints))

With this code :

#Scanning the branches in the HighSymmKpath
index=0
branch_list=[]
while index < len(bands.kpoints) :
branch=bands.get_branch(index)[0]
branch_list.append(branch)
index=branch['end_index']+2

print(branch_list)

#Scanning the branch_list to extract start and end points of those branches
point_list=[]
for i,branch in enumerate(branch_list) :
pt=[branch['start_index'] , branch['name'].split("-")[0]]
# print(pt,i)
#if the previous end point is the same as the current start one, we dont ass it
if i==0 or (pt[1] != point_list[-1][1]) :
point_list.append(pt)
point_list.append([branch['end_index'] , branch['name'].split("-")[-1]])

print(point_list)

#adding the HighSymm Kpoints through their labels and index
for point in point_list :
p=ax.vlines(point[0],emin, emax,"k")

Xticks=ax.set_xticks([point_list[i][0] for i in range(len(point_list))])
Xtickslabel=ax.set_xticklabels([point_list[i][1] for i in range(len(point_list))])

Thanks

(See You in January !)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions