Plotting with Configurations in pyprocar — PyProcar 6.2.1 documentation

Skip to main content
`Ctrl`+`K`

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.

Downloading example

     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 = os.path.join(
        pyprocar.utils.DATA_DIR, "examples", "Fe", "vasp", "non-colinear", "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: C:\Users\lllang\Desktop\Current_Projects\pyprocar\pyprocar\cfg
     ____        ____
    |  _ \ _   _|  _ \ _ __ ___   ___ __ _ _ __
    | |_) | | | | |_) | '__/ _ \ / __/ _` | '__|
    |  __/| |_| |  __/| | | (_) | (_| (_| | |
    |_|    \__, |_|   |_|  \___/ \___\__,_|_|
           |___/
    A Python library for electronic structure pre/post-processing.

    Version 6.3.2 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:\data\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.3.2 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:\data\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.3.2 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:\data\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 14.125 seconds)

Gallery generated by Sphinx-Gallery