Plotting fermi3d cross_section#

Symmetry does not currently work! Make sure for fermi surface calculations turn off symmetry

Plotting fermi3d cross_section example.

First download the example files with the code below. Then replace data_dir below.

Downloading example#
 data_dir = pyprocar.download_example(save_dir='',
                             material='Fe',
                             code='vasp',
                             spin_calc_type='non-colinear',
                             calc_type='fermi')
# sphinx_gallery_thumbnail_number = 1
import pyvista
# You do not need this. This is to ensure an image is rendered off screen when generating exmaple gallery.
pyvista.OFF_SCREEN = True

importing pyprocar and specifying local data_dir

import os
import pyprocar

data_dir = f"{pyprocar.utils.ROOT}{os.sep}data{os.sep}examples{os.sep}Fe{os.sep}vasp{os.sep}non-colinear{os.sep}fermi"


# First create the FermiHandler object, this loads the data into memory. Then you can call class methods to plot
# Symmetry only works for specfic space groups currently.
# For the actual calculations turn off symmetry and set 'apply_symmetry'=False
fermiHandler = pyprocar.FermiHandler(
                                    code="vasp",
                                    dirname=data_dir,
                                    apply_symmetry=True)
WARNING : Fermi Energy not set! Set `fermi={value}`. By default, using fermi energy found in given directory.
---------------------------------------------------------------------------------------------------------------

Cross section#

# show_cross_section_area can show the outermost cross section area
show_cross_section_area=False

# slice_normal is the initial orientation of the the cross section plane widget
slice_normal=(1,0,0)

# slice_origin is the initial position of the center of the cross section plane widget
slice_origin=(0,0,0)

# line_width is the size of the line of the cross section
line_width=5.0

# when you run this code, you will be able to adjust the widget manually.
# If you want to save the position of the widget use this keyword argument to save an image.
# This must be a string to the filename where you will save the image
#save_2d_slice=''

fermiHandler.plot_fermi_cross_section(
                              slice_normal=slice_normal,
                              slice_origin=slice_origin,
                              cross_section_slice_linewidth=line_width,
                              mode="spin_texture",
                              spin_texture=True,
                              arrow_size=0.5,
                              show=True,)
plot fermi3d cross section
                --------------------------------------------------------
                There are additional plot options that are defined in a configuration file.
                You can change these configurations by passing the keyword argument to the function
                To print a list of plot options set print_plot_opts=True

                Here is a list modes : plain , parametric , spin_texture , overlay
                Here is a list of properties: fermi_speed , fermi_velocity , harmonic_effective_mass
                --------------------------------------------------------

Bands Near Fermi :  [4, 5, 6, 7, 8, 9]

Cross section. Save slice#

# when you run this code, you will be able to adjust the widget manually.
# If you want to save the position of the widget use this keyword argument to save an image.
# This must be a string to the filename where you will save the image
save_2d_slice='2d_slice.png'

fermiHandler.plot_fermi_cross_section(
                              slice_normal=slice_normal,
                              slice_origin=slice_origin,
                              cross_section_slice_linewidth=line_width,

                              mode="spin_texture",
                              spin_texture=True,
                              arrow_size=0.5,
                              save_2d_slice=save_2d_slice,
                              show=True,)
  • plot fermi3d cross section
  • plot fermi3d cross section
                --------------------------------------------------------
                There are additional plot options that are defined in a configuration file.
                You can change these configurations by passing the keyword argument to the function
                To print a list of plot options set print_plot_opts=True

                Here is a list modes : plain , parametric , spin_texture , overlay
                Here is a list of properties: fermi_speed , fermi_velocity , harmonic_effective_mass
                --------------------------------------------------------

Bands Near Fermi :  [4, 5, 6, 7, 8, 9]

Total running time of the script: ( 2 minutes 2.077 seconds)

Gallery generated by Sphinx-Gallery