This page documents an OPTIMADE Property Definition. See https://schemas.optimade.org/ for more information.
ID: https://schemas.httk.org/defs/v0.1/properties/electronic/electronic_band_structure
Definition name: electronic_band_structure
Property name: Electronic band structure
Description: Electronic band energies of the referenced structure along a path of k-points through the Brillouin zone (a line-mode band structure).
Type: dictionary
Implementation requirements:
- Support: OPTIONAL support in implementations, i.e., MAY be null.
Only band structures along a path are meant.
Eigenvalues on a uniform k-point mesh are not a band structure in this sense; their energy distribution belongs in an electronic density of states, see electronic_density_of_states.
Requirements/Conventions:
It MUST be a dictionary with the following keys:
kpoints: REQUIRED; List of lists of 3 floats.
The k-points of the path, in path order, over the dimension _httk_dim_kpoints.
Each k-point is given in fractional coordinates (dimension dim_lattice) in the reciprocal basis of the referenced structure: the Cartesian wavevector is the sum of the coordinates times the reciprocal lattice vectors b_1, b_2, b_3, where b_i . a_j = 2 pi delta_ij for the lattice vectors a_j of the referenced structure.
The path is a sequence of straight segments.
A segment boundary inside the list is encoded by two consecutive labelled k-points: the same point listed twice with the same label (a junction) or two different points with different labels (a discontinuity, across which the band energies are not continuous).
The first and last k-points of the list bound the first and last segment; they SHOULD be labelled.
Every segment MUST contain at least one k-point that is not a boundary point.
kpoint_label_indices: REQUIRED; List of integers.
The 0-based indices into kpoints of the k-points that carry a label, over the dimension _httk_dim_kpoint_labels.
Each index MUST be a valid index into kpoints, and the indices MUST be strictly increasing.
The list MAY be empty when the producer has no labels; the path is then a single continuous segment.
kpoint_labels: REQUIRED; List of strings.
The label of each k-point listed in kpoint_label_indices, over the dimension _httk_dim_kpoint_labels: kpoint_labels[i] labels the k-point kpoints[kpoint_label_indices[i]].
It MUST have the same length as kpoint_label_indices.
Labels are the names of high-symmetry points as given by the producer (for example GAMMA or \Gamma for the zone centre); no normalized vocabulary is implied.
energies: REQUIRED; List of lists of floats.
The band energies in eV, as a list over the dimension _httk_dim_bands of lists over _httk_dim_kpoints: energies[n][k] is the energy of band n at the k-point kpoints[k].
For a collinear spin-polarized calculation it holds the spin-up channel; otherwise it holds the only channel, which for a non-collinear calculation contains all spinor bands.
Band n at each k-point MUST be the (n+1)-th lowest eigenvalue at that k-point: the bands are sorted by energy at each k-point and are not reordered to follow band crossings.
Producers converting data whose bands were reordered to follow wavefunction connectivity across crossings MUST sort the values at each k-point.
The energies are on the absolute energy scale of the calculation (the scale of fermi_energy); they are not shifted to the Fermi energy.
energies_spin_down: OPTIONAL; List of lists of floats.
The band energies in eV of the spin-down channel, in the same form, order and energy scale as energies and with the same dimensions.
It MUST be present if and only if the calculation is collinear spin-polarized.
fermi_energy: REQUIRED; Float.
The Fermi energy in eV reported with the calculation, on the same absolute energy scale as energies.
The value refers to the referenced structure (the entry the record is a product of); the k-point coordinates are only meaningful in its reciprocal basis. A producer whose coordinates refer to a different cell MUST either reference that cell as the structure the value is a product of, or transform the coordinates to the referenced structure's reciprocal basis.
Vasprun.calculate_efermi with its default tolerance of 0.001 eV) as fermi_energy.
That value is VASP's Fermi energy E-fermi (as written to vasprun.xml) unless E-fermi crosses a band (some band of some spin channel has, over the k-points, eigenvalues both below and above it) while E-fermi + 1 meV or, failing that, E-fermi - 1 meV crosses no band; it is then the midpoint between the highest eigenvalue below and the lowest eigenvalue above that shifted energy (mid-gap).
This note describes such data; it is not a requirement of this definition.A null value means the quantity is not available or not recorded.
Examples:
JSON definition:
{
"$id": "https://schemas.httk.org/defs/v0.1/properties/electronic/electronic_band_structure",
"$schema": "https://schemas.optimade.org/meta/v1.3/optimade/property_definition.json",
"title": "Electronic band structure",
"x-optimade-type": "dictionary",
"x-optimade-definition": {
"kind": "property",
"version": "0.1.0",
"format": "1.3",
"name": "electronic_band_structure",
"label": "electronic_band_structure_electronic_httk"
},
"x-optimade-unit": "inapplicable",
"x-optimade-unit-definitions": [
{
"$id": "https://schemas.optimade.org/defs/v1.2/units/si/general/electronvolt",
"title": "electron volt",
"symbol": "eV",
"display-symbol": "eV",
"description": "A unit of energy that representing the kinetic energy acquired by an electron as it accelerates through a 1 volt potential difference in a vacuum using the current, or one of the historical, definitions given in the editions of the International System of Units (SI).\n\nThe electronvolt unit appears in the International System of Units (SI), 1st ed. (1970) defined as \"1 electronvolt is the energy acquired by an electron after traversing a potential difference of 1 V in a vacuum; 1 eV = 1.60219\u00d710\u207b\u00b9\u2079 J approximately.\"\nThis definition makes the unit equal to 1 volt times the value of the elementary charge.\nIn the 2019 redefinition of the SI units the elementary charge is exactly 1.602176634\u00b710\u207b\u00b9\u2079 C, making the electron volt exactly equal to 1.602176634\u00b710\u207b\u00b9\u2079 J.\nThe International System of Units (SI), 9th ed. (2019) accordingly notes the exact relationship with the SI 2019 derived unit joule as \"1 eV = 1.602176634\u00b710\u207b\u00b9\u2079 J\" but retains the definition from 1970 in a footnote.\n\nThe unit is categorized in the International System of Units (SI), 9th ed. (2019) as \"Non-SI units accepted for use with the SI units\".\n\nThis is a generalized definition taken to reference the current, or one of the historical, SI unit definitions.\nThis definition is intended for situations when it is not possible to be more precise, e.g., in contexts where data have been collected that uses different historical SI definitions.",
"compatibility": [
"https://schemas.optimade.org/defs/v1.2/units/si/1970/accepted/electronvolt",
"https://schemas.optimade.org/defs/v1.2/units/si/1983/accepted/electronvolt",
"https://schemas.optimade.org/defs/v1.2/units/si/2019/accepted/electronvolt"
],
"resources": [
{
"relation": "Definition in the International System of Units (SI), 9th Edition",
"resource-id": "https://www.bipm.org/en/publications/si-brochure"
},
{
"relation": "Wikipedia article describing the unit",
"resource-id": "https://en.wikipedia.org/wiki/Electronvolt"
}
],
"approximate-relations": [
{
"base-units": [
{
"symbol": "V",
"id": "https://schemas.optimade.org/defs/v1.2/units/si/general/volt"
},
{
"symbol": "e",
"id": "https://schemas.optimade.org/defs/v1.2/constants/codata/2018/electromagnetic/elementarycharge"
}
],
"base-units-expression": "e*V"
}
],
"x-optimade-definition": {
"label": "electronvolt_si_general",
"kind": "unit",
"format": "1.2",
"version": "1.2.0",
"name": "electronvolt"
}
}
],
"x-optimade-requirements": {
"support": "may",
"sortable": false,
"query-support": "none"
},
"type": [
"object",
"null"
],
"required": [
"kpoints",
"kpoint_label_indices",
"kpoint_labels",
"energies",
"fermi_energy"
],
"description": "Electronic band energies of the referenced structure along a path of k-points through the Brillouin zone (a line-mode band structure).\n\nOnly band structures along a path are meant.\nEigenvalues on a uniform k-point mesh are not a band structure in this sense; their energy distribution belongs in an electronic density of states, see `electronic_density_of_states`.\n\n**Requirements/Conventions**:\n\n- It MUST be a dictionary with the following keys:\n\n - **kpoints**: REQUIRED; List of lists of 3 floats.\n The k-points of the path, in path order, over the dimension `_httk_dim_kpoints`.\n Each k-point is given in fractional coordinates (dimension `dim_lattice`) in the reciprocal basis of the referenced structure: the Cartesian wavevector is the sum of the coordinates times the reciprocal lattice vectors b_1, b_2, b_3, where b_i . a_j = 2 pi delta_ij for the lattice vectors a_j of the referenced structure.\n The path is a sequence of straight segments.\n A segment boundary inside the list is encoded by two consecutive labelled k-points: the same point listed twice with the same label (a junction) or two different points with different labels (a discontinuity, across which the band energies are not continuous).\n The first and last k-points of the list bound the first and last segment; they SHOULD be labelled.\n Every segment MUST contain at least one k-point that is not a boundary point.\n\n - **kpoint\\_label\\_indices**: REQUIRED; List of integers.\n The 0-based indices into `kpoints` of the k-points that carry a label, over the dimension `_httk_dim_kpoint_labels`.\n Each index MUST be a valid index into `kpoints`, and the indices MUST be strictly increasing.\n The list MAY be empty when the producer has no labels; the path is then a single continuous segment.\n\n - **kpoint\\_labels**: REQUIRED; List of strings.\n The label of each k-point listed in `kpoint_label_indices`, over the dimension `_httk_dim_kpoint_labels`: `kpoint_labels[i]` labels the k-point `kpoints[kpoint_label_indices[i]]`.\n It MUST have the same length as `kpoint_label_indices`.\n Labels are the names of high-symmetry points as given by the producer (for example `GAMMA` or `\\Gamma` for the zone centre); no normalized vocabulary is implied.\n\n - **energies**: REQUIRED; List of lists of floats.\n The band energies in eV, as a list over the dimension `_httk_dim_bands` of lists over `_httk_dim_kpoints`: `energies[n][k]` is the energy of band n at the k-point `kpoints[k]`.\n For a collinear spin-polarized calculation it holds the spin-up channel; otherwise it holds the only channel, which for a non-collinear calculation contains all spinor bands.\n Band n at each k-point MUST be the (n+1)-th lowest eigenvalue at that k-point: the bands are sorted by energy at each k-point and are not reordered to follow band crossings.\n Producers converting data whose bands were reordered to follow wavefunction connectivity across crossings MUST sort the values at each k-point.\n The energies are on the absolute energy scale of the calculation (the scale of `fermi_energy`); they are not shifted to the Fermi energy.\n\n - **energies\\_spin\\_down**: OPTIONAL; List of lists of floats.\n The band energies in eV of the spin-down channel, in the same form, order and energy scale as `energies` and with the same dimensions.\n It MUST be present if and only if the calculation is collinear spin-polarized.\n\n - **fermi\\_energy**: REQUIRED; Float.\n The Fermi energy in eV reported with the calculation, on the same absolute energy scale as `energies`.\n\n- The value refers to the referenced structure (the entry the record is a product of); the k-point coordinates are only meaningful in its reciprocal basis.\n A producer whose coordinates refer to a different cell MUST either reference that cell as the structure the value is a product of, or transform the coordinates to the referenced structure's reciprocal basis.\n- Producer note: band structures converted from pymatgen (for example from atomate2 and emmet) carry pymatgen's Fermi energy (`Vasprun.calculate_efermi` with its default tolerance of 0.001 eV) as `fermi_energy`.\n That value is VASP's Fermi energy E-fermi (as written to `vasprun.xml`) unless E-fermi crosses a band (some band of some spin channel has, over the k-points, eigenvalues both below and above it) while E-fermi + 1 meV or, failing that, E-fermi - 1 meV crosses no band; it is then the midpoint between the highest eigenvalue below and the lowest eigenvalue above that shifted energy (mid-gap).\n This note describes such data; it is not a requirement of this definition.\n\nA null value means the quantity is not available or not recorded.",
"properties": {
"kpoints": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_kpoints"
],
"sizes": [
null
]
},
"type": [
"array"
],
"description": "The k-points of the path in fractional coordinates of the reciprocal basis of the referenced structure, in path order.",
"items": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"dim_lattice"
],
"sizes": [
3
]
},
"type": [
"array"
],
"items": {
"x-optimade-type": "float",
"x-optimade-unit": "dimensionless",
"type": [
"number"
]
}
}
},
"kpoint_label_indices": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_kpoint_labels"
],
"sizes": [
null
]
},
"type": [
"array"
],
"description": "The strictly increasing 0-based indices into `kpoints` of the labelled k-points.",
"items": {
"x-optimade-type": "integer",
"x-optimade-unit": "dimensionless",
"type": [
"integer"
]
}
},
"kpoint_labels": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_kpoint_labels"
],
"sizes": [
null
]
},
"type": [
"array"
],
"description": "The label of each k-point listed in `kpoint_label_indices`, in the same order.",
"items": {
"x-optimade-type": "string",
"x-optimade-unit": "inapplicable",
"type": [
"string"
]
}
},
"energies": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_bands"
],
"sizes": [
null
]
},
"type": [
"array"
],
"description": "The band energies of the spin-up or only channel, per band and k-point, on the absolute energy scale of the calculation.",
"items": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_kpoints"
],
"sizes": [
null
]
},
"type": [
"array"
],
"items": {
"x-optimade-type": "float",
"x-optimade-unit": "eV",
"type": [
"number"
]
}
}
},
"energies_spin_down": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_bands"
],
"sizes": [
null
]
},
"type": [
"array"
],
"description": "The band energies of the spin-down channel of a collinear spin-polarized calculation, in the form of `energies`.",
"items": {
"x-optimade-type": "list",
"x-optimade-unit": "inapplicable",
"x-optimade-dimensions": {
"names": [
"_httk_dim_kpoints"
],
"sizes": [
null
]
},
"type": [
"array"
],
"items": {
"x-optimade-type": "float",
"x-optimade-unit": "eV",
"type": [
"number"
]
}
}
},
"fermi_energy": {
"x-optimade-type": "float",
"x-optimade-unit": "eV",
"type": [
"number"
],
"description": "The Fermi energy reported with the calculation, on the absolute energy scale of `energies`."
}
}
}