Note
Go to the end to download the full example code.
Plotting with Configurations in pyprocar#
This example illustrates how to utilize various configurations for plotting the 2D Fermi surface with non-colinear spin textures using the pyprocar package. It provides a structured way to explore and demonstrate different configurations for the fermi2D function. For more information about fermi2D, refer to 2D spin-texture.
Preparation#
Before diving into plotting, we need to download the example files. Use the following code to do this. Once downloaded, specify the data_dir to point to the location of the downloaded data.
data_dir = pyprocar.download_example(save_dir='',
material='Fe',
code='vasp',
spin_calc_type='non-colinear',
calc_type='fermi')
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"
# Section 1: Locating and Printing Configuration Files
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# This section demonstrates where the configuration files are located in the package.
# It also shows how to print the configurations by setting print_plot_opts=True.
#
# Path to the configuration files in the package
config_path = os.path.join(pyprocar.__path__[0], 'cfg')
print(f"Configuration files are located at: {config_path}")
# Print the configurations
pyprocar.fermi2D(code='vasp', dirname=data_dir,fermi=5.599480, print_plot_opts=True)
Configuration files are located at: z:\research projects\pyprocar\pyprocar\cfg
____ ____
| _ \ _ _| _ \ _ __ ___ ___ __ _ _ __
| |_) | | | | |_) | '__/ _ \ / __/ _` | '__|
| __/| |_| | __/| | | (_) | (_| (_| | |
|_| \__, |_| |_| \___/ \___\__,_|_|
|___/
A Python library for electronic structure pre/post-processing.
Version 6.2.0 created on Jun 10th, 2021
Please cite:
Uthpala Herath, Pedram Tavadze, Xu He, Eric Bousquet, Sobhit Singh, Francisco Muñoz and Aldo Romero.,
PyProcar: A Python library for electronic structure pre/post-processing.,
Computer Physics Communications 251 (2020):107080.
Developers:
- Francisco Muñoz
- Aldo Romero
- Sobhit Singh
- Uthpala Herath
- Pedram Tavadze
- Eric Bousquet
- Xu He
- Reese Boucher
- Logan Lang
- Freddy Farah
dirname : Z:\Research Projects\pyprocar\data\examples\Fe\vasp\non-colinear\fermi
bands : None
atoms : None
orbitals : None
spin comp. : None
energy : None
rot. symmetry : 1
origin (trasl.) : [0, 0, 0]
rotation : [0, 0, 0, 1]
save figure : None
spin_texture : False
--------------------------------------------------------
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 , plain_bands , parametric
--------------------------------------------------------
add_axes_labels : {'description': 'Boolean to add axes labels', 'value': True}
add_legend : {'description': 'Boolean to add legend', 'value': False}
plot_color_bar : {'description': 'Boolean to plot the color bar', 'value': False}
cmap : {'description': 'The colormap used for the plot.', 'value': 'jet'}
clim : {'description': 'The color scale for the color bar', 'value': [None, None]}
color : {'description': 'The colors for the spin plot lines.', 'value': ['blue', 'red']}
linestyle : {'description': 'The linestyles for the spin plot lines.', 'value': ['solid', 'dashed']}
linewidth : {'description': 'The linewidth of the fermi surface', 'value': 0.2}
no_arrow : {'description': 'Boolean to use no arrows to represent the spin texture', 'value': False}
arrow_color : {'description': 'The linestyles for the spin plot lines.', 'value': None}
arrow_density : {'description': 'The arrow density for the spin texture', 'value': 10}
arrow_size : {'description': 'The arrow size for the spin texture', 'value': 3}
spin_projection : {'description': 'The projection for the color scale for spin texture', 'value': 'z^2'}
marker : {'description': 'Controls the marker used for the spin plot', 'value': '.'}
dpi : {'description': 'The dpi value to save the image as', 'value': 'figure'}
x_label : {'description': 'The x label of the plot', 'value': '$k_{x}$ ($\\AA^{-1}$)'}
y_label : {'description': 'The x label of the plot', 'value': '$k_{y}$ ($\\AA^{-1}$)'}
WARNING : Make sure the kmesh has kz points with kz=0.0 +- 0.01
----------------------------------------------------------------------------------------------------------
_____________________________________________________
Useful band indices for spin-0 : [4 5 6 7 8 9]
# Section 2: Spin Texture Projection with Custom Settings
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# This section demonstrates how to customize the appearance of the spin texture arrows.
# We'll adjust the colormap, color limits.
#
pyprocar.fermi2D(code='vasp',
fermi=5.599480,
dirname=data_dir,
spin_texture=True,
spin_projection='x',
arrow_size=3,
arrow_density=10,
plot_color_bar=True,
cmap='jet',
clim=[0, 1])
____ ____
| _ \ _ _| _ \ _ __ ___ ___ __ _ _ __
| |_) | | | | |_) | '__/ _ \ / __/ _` | '__|
| __/| |_| | __/| | | (_) | (_| (_| | |
|_| \__, |_| |_| \___/ \___\__,_|_|
|___/
A Python library for electronic structure pre/post-processing.
Version 6.2.0 created on Jun 10th, 2021
Please cite:
Uthpala Herath, Pedram Tavadze, Xu He, Eric Bousquet, Sobhit Singh, Francisco Muñoz and Aldo Romero.,
PyProcar: A Python library for electronic structure pre/post-processing.,
Computer Physics Communications 251 (2020):107080.
Developers:
- Francisco Muñoz
- Aldo Romero
- Sobhit Singh
- Uthpala Herath
- Pedram Tavadze
- Eric Bousquet
- Xu He
- Reese Boucher
- Logan Lang
- Freddy Farah
dirname : Z:\Research Projects\pyprocar\data\examples\Fe\vasp\non-colinear\fermi
bands : None
atoms : None
orbitals : None
spin comp. : None
energy : None
rot. symmetry : 1
origin (trasl.) : [0, 0, 0]
rotation : [0, 0, 0, 1]
save figure : None
spin_texture : True
--------------------------------------------------------
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 , plain_bands , parametric
--------------------------------------------------------
WARNING : Make sure the kmesh has kz points with kz=0.0 +- 0.01
----------------------------------------------------------------------------------------------------------
_____________________________________________________
Useful band indices for spin-0 : [4 5 6 7 8 9]
# Section 3: Adjusting DPI
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#
# This section demonstrates how to adjust the dots per inch (DPI) for the combined plot.
#
pyprocar.fermi2D(code='vasp',
dirname=data_dir,
fermi=5.599480,
spin_texture=True,
spin_projection='z',
arrow_size=3,
arrow_density=10,
plot_color_bar=True,
cmap='jet',
clim=[0, 1],
dpi=300)
____ ____
| _ \ _ _| _ \ _ __ ___ ___ __ _ _ __
| |_) | | | | |_) | '__/ _ \ / __/ _` | '__|
| __/| |_| | __/| | | (_) | (_| (_| | |
|_| \__, |_| |_| \___/ \___\__,_|_|
|___/
A Python library for electronic structure pre/post-processing.
Version 6.2.0 created on Jun 10th, 2021
Please cite:
Uthpala Herath, Pedram Tavadze, Xu He, Eric Bousquet, Sobhit Singh, Francisco Muñoz and Aldo Romero.,
PyProcar: A Python library for electronic structure pre/post-processing.,
Computer Physics Communications 251 (2020):107080.
Developers:
- Francisco Muñoz
- Aldo Romero
- Sobhit Singh
- Uthpala Herath
- Pedram Tavadze
- Eric Bousquet
- Xu He
- Reese Boucher
- Logan Lang
- Freddy Farah
dirname : Z:\Research Projects\pyprocar\data\examples\Fe\vasp\non-colinear\fermi
bands : None
atoms : None
orbitals : None
spin comp. : None
energy : None
rot. symmetry : 1
origin (trasl.) : [0, 0, 0]
rotation : [0, 0, 0, 1]
save figure : None
spin_texture : True
--------------------------------------------------------
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 , plain_bands , parametric
--------------------------------------------------------
WARNING : Make sure the kmesh has kz points with kz=0.0 +- 0.01
----------------------------------------------------------------------------------------------------------
_____________________________________________________
Useful band indices for spin-0 : [4 5 6 7 8 9]
Total running time of the script: (0 minutes 12.888 seconds)