Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segment selection #53

Open
MariaEstRo opened this issue Mar 29, 2022 · 4 comments
Open

Segment selection #53

MariaEstRo opened this issue Mar 29, 2022 · 4 comments
Labels
question Further information is requested

Comments

@MariaEstRo
Copy link

Hi,
I'm using effmass with FHI-AIMS inputs/outputs and I would like to extract the effective mass for specific segments.
I am aware there is an option called "extrema.generate_segments" that performs that task.
However, I'm struggling with this since I don't know how to use the argument "bk" properly.
Could you, please, provide some examples using the "extrema.generate_segments" option with the bk argument?

Best regards,
María

@lucydot
Copy link
Owner

lucydot commented May 24, 2023

Hello @MariaEstRo, apologies for lateness (!) of reply.
I'll give a short reply here, if you are still working on this and need more guidance then let me know.

There are two ways you could approach this. You could use extrema.generate_segments without the bk argument to generate a list of segments, visualise the generated segments and then select the segment that is of interest to you from the list. This is the approach that is followed in the tutorial: https://nbviewer.org/github/lucydot/effmass/blob/master/Tutorial.ipynb.

The bk argument is useful if effmass can't automatically find the part of the bandstructure you are interested in. In this case, you can set the bk keyword:

bk (list(int)): To manually set an extrema point, in format [bands index, kpoint index].

The API documentation can be useful if you want to use settings that are not covered in the tutorial. For example, the API documentation for extrema.generate_segments is here: https://effmass.readthedocs.io/en/latest/extrema.html#effmass.extrema.generate_segments

@MariaEstRo
Copy link
Author

Hi Lucy,
Thank you so much for your reply.
I tried what you suggested and although the first approach works well for me I am still struggling with the bk option.
I read through the link you posted but I have not managed to use bk yet.
I tried these 2 formats based on the API documentation:
bk=[x,[kx,ky,kz]]
bk=(x,[kx,ky,kz])
being x an integer number corresponding the band index and kx,ky,kz being integer numbers corresponding to the kpoint index.

Regards,
María

@lucydot
Copy link
Owner

lucydot commented May 24, 2023

Hi @MariaEstRo, I think bk=[x,y] where x is an integer number corresponding to the band index and y is an integer number corresponding to the kpoint index should work. kpoints are stored as a 2d array (https://effmass.readthedocs.io/en/latest/inputs.html#effmass.inputs.Data.kpoints), so it will be the row index corresponding to the kpoint of interest.

Can I ask why you want to use the bk option rather than the first option - is it because it suits your workflow better? It is useful for me to understand how people are using effmass, so I can work out ways to improve (though of course getting the time to actually work on this is another matter 😅 ).

@MariaEstRo
Copy link
Author

Hi, Lucy.
Sorry for the delay. I wanted to use the bk option rather than the "extrema.generate.segment" as the latter did not find the segment I was interested in.
Best regards,
María

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants