honeyplots Module

Providing plotting facilities for hex tessellations


Uses

  • module~~honeyplots~~UsesGraph module~honeyplots honeyplots module~hex_coordinates hex_coordinates module~honeyplots->module~hex_coordinates module~hex_layout hex_layout module~honeyplots->module~hex_layout module~hex_neighbors hex_neighbors module~honeyplots->module~hex_neighbors module~xy_coordinates xy_coordinates module~honeyplots->module~xy_coordinates module~xy_neighbors xy_neighbors module~honeyplots->module~xy_neighbors ogpf ogpf module~honeyplots->ogpf pyplot_module pyplot_module module~honeyplots->pyplot_module assert_m assert_m module~hex_coordinates->assert_m module~hex_neighbors->module~hex_coordinates module~xy_coordinates->module~hex_coordinates module~xy_coordinates->module~hex_layout module~xy_coordinates->assert_m module~xy_neighbors->module~hex_layout module~xy_neighbors->module~xy_coordinates stdlib_sorting stdlib_sorting module~xy_neighbors->stdlib_sorting

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: N = 6
real(kind=8), private, parameter :: FL(3) = [0.4510d0, 0.3098d0, 0.5882d0]
real(kind=8), private, parameter :: HY(3) = [0.9804d0, 0.7608d0, 0.0196d0]

Interfaces

public interface plot

  • public subroutine xy_plot(lattice, nn_mask, nnn_mask, backend, figure_name, script_name, set_terminal)

    CURRENTLY GNUPLOT DOES NOT SUPPORT NN AND NNN LINKS, HELP IS WELCOME! Simple plotter for class(xy_lattice) objects. If optional argument nn_mask is passed it draws the nearest-neighbor bonds too. Similarly, if optional argument nnn_mask is passed a dashed link to next-nearest neighbors would be drawed. Otherwise only lallice sites. It features two backends, giving access to either matplotlib(pyplot) or gnuplot internal machinery. Either library needs to be installed in your system for hex_plot to work. You can specify a figure_name to save the plot to disk. If not specified the plot would be just displayed in a popup window (or the terminal with suitable configuration of the gnuplot backend) and a corresponding script saved, aiming at fast reproduction (the script will all contain data). The script has a default name (hex_plot.{py,gp}), but you can optionally give your own custom string, do not forget the appropriate file extension. Regarding output formats instead, the two backends have slightly different behavior: pyplot would infer the format from the given file extension in figure_name, whilst gnuplot does need a proper "output terminal" to be set. You can do that by passing the optional set_parameter variable. Refer to original gnuplot documentation for the list of available terminals and how they should be chosen. For convenience we report that you can get the list of (system dependent) available terminals in your console by executing the gnuplot -e "set terminal" command in your shell. Furthermore all systems should be compatible with the "dumb" terminal option, which would direct the plot to the terminal itself, in the form of ASCII art. This can be very useful for HPC workflows.

    Arguments

    Type IntentOptional Attributes Name
    type(xy_lattice), intent(in) :: lattice
    logical, intent(in), optional, allocatable :: nn_mask(:,:)
    logical, intent(in), optional, allocatable :: nnn_mask(:,:)
    character(len=*), intent(in), optional :: backend

    default: "pyplot" (or "gnuplot")

    character(len=*), intent(in), optional :: figure_name
    character(len=*), intent(in), optional :: script_name
    character(len=*), intent(in), optional :: set_terminal

    relevant to gnuplot backend

  • public subroutine hex_plot(layout, hexagons, backend, figure_name, script_name, set_terminal)

    Simple plotter for arrays of type(hex). It features two backends, giving access to either matplotlib(pyplot) or gnuplot internal machinery. Either library needs to be installed in your system for hex_plot to work. You can specify a figure_name to save the plot to disk. If not specified the plot would be just displayed in a popup window (or the terminal with suitable configuration of the gnuplot backend) and a corresponding script saved, aiming at fast reproduction (the script will all contain data). The script has a default name (hex_plot.{py,gp}), but you can optionally give your own custom string, do not forget the appropriate file extension. Regarding output formats instead, the two backends have slightly different behavior: pyplot would infer the format from the given file extension in figure_name, whilst gnuplot does need a proper "output terminal" to be set. You can do that by passing the optional set_parameter variable. Refer to original gnuplot documentation for the list of available terminals and how they should be chosen. For convenience we report that you can get the list of (system dependent) available terminals in your console by executing the gnuplot -e "set terminal" command in your shell. Furthermore all systems should be compatible with the "dumb" terminal option, which would direct the plot to the terminal itself, in the form of ASCII art. This can be very useful for HPC workflows.

    Arguments

    Type IntentOptional Attributes Name
    type(unit_cell), intent(in) :: layout
    type(hex), intent(in) :: hexagons(:)
    character(len=*), intent(in), optional :: backend

    default: "pyplot" (or "gnuplot")

    character(len=*), intent(in), optional :: figure_name
    character(len=*), intent(in), optional :: script_name
    character(len=*), intent(in), optional :: set_terminal

    relevant to gnuplot backend


Subroutines

public subroutine xy_plot(lattice, nn_mask, nnn_mask, backend, figure_name, script_name, set_terminal)

CURRENTLY GNUPLOT DOES NOT SUPPORT NN AND NNN LINKS, HELP IS WELCOME! Simple plotter for class(xy_lattice) objects. If optional argument nn_mask is passed it draws the nearest-neighbor bonds too. Similarly, if optional argument nnn_mask is passed a dashed link to next-nearest neighbors would be drawed. Otherwise only lallice sites. It features two backends, giving access to either matplotlib(pyplot) or gnuplot internal machinery. Either library needs to be installed in your system for hex_plot to work. You can specify a figure_name to save the plot to disk. If not specified the plot would be just displayed in a popup window (or the terminal with suitable configuration of the gnuplot backend) and a corresponding script saved, aiming at fast reproduction (the script will all contain data). The script has a default name (hex_plot.{py,gp}), but you can optionally give your own custom string, do not forget the appropriate file extension. Regarding output formats instead, the two backends have slightly different behavior: pyplot would infer the format from the given file extension in figure_name, whilst gnuplot does need a proper "output terminal" to be set. You can do that by passing the optional set_parameter variable. Refer to original gnuplot documentation for the list of available terminals and how they should be chosen. For convenience we report that you can get the list of (system dependent) available terminals in your console by executing the gnuplot -e "set terminal" command in your shell. Furthermore all systems should be compatible with the "dumb" terminal option, which would direct the plot to the terminal itself, in the form of ASCII art. This can be very useful for HPC workflows.

Read more…

Arguments

Type IntentOptional Attributes Name
type(xy_lattice), intent(in) :: lattice
logical, intent(in), optional, allocatable :: nn_mask(:,:)
logical, intent(in), optional, allocatable :: nnn_mask(:,:)
character(len=*), intent(in), optional :: backend

default: "pyplot" (or "gnuplot")

character(len=*), intent(in), optional :: figure_name
character(len=*), intent(in), optional :: script_name
character(len=*), intent(in), optional :: set_terminal

relevant to gnuplot backend

public subroutine hex_plot(layout, hexagons, backend, figure_name, script_name, set_terminal)

Simple plotter for arrays of type(hex). It features two backends, giving access to either matplotlib(pyplot) or gnuplot internal machinery. Either library needs to be installed in your system for hex_plot to work. You can specify a figure_name to save the plot to disk. If not specified the plot would be just displayed in a popup window (or the terminal with suitable configuration of the gnuplot backend) and a corresponding script saved, aiming at fast reproduction (the script will all contain data). The script has a default name (hex_plot.{py,gp}), but you can optionally give your own custom string, do not forget the appropriate file extension. Regarding output formats instead, the two backends have slightly different behavior: pyplot would infer the format from the given file extension in figure_name, whilst gnuplot does need a proper "output terminal" to be set. You can do that by passing the optional set_parameter variable. Refer to original gnuplot documentation for the list of available terminals and how they should be chosen. For convenience we report that you can get the list of (system dependent) available terminals in your console by executing the gnuplot -e "set terminal" command in your shell. Furthermore all systems should be compatible with the "dumb" terminal option, which would direct the plot to the terminal itself, in the form of ASCII art. This can be very useful for HPC workflows.

Arguments

Type IntentOptional Attributes Name
type(unit_cell), intent(in) :: layout
type(hex), intent(in) :: hexagons(:)
character(len=*), intent(in), optional :: backend

default: "pyplot" (or "gnuplot")

character(len=*), intent(in), optional :: figure_name
character(len=*), intent(in), optional :: script_name
character(len=*), intent(in), optional :: set_terminal

relevant to gnuplot backend