Source code for ase2sprkkr.input_parameters.definitions.bsfek

"""DOS task input parameters definition"""

from ...common.grammar_types import SetOf, Integer
from .sections import TASK, CONTROL, TAU, ENERGY, SITES, STRCONST, MODE
from ..input_parameters_definitions import InputParametersDefinition as InputParameters, InputValueDefinition as V
from ...common.generated_configuration_definitions import Length
from ...common.configuration_definitions import if_not_defined


[docs] def input_parameters(): """BSF - Bloch-spectral-function task input-parameters definition""" out = InputParameters( "bsfek", [ CONTROL("BSF"), TAU, TASK("BSF").copy( [ V("NK", 300, info="total number of k-points"), V( "KPATH", Integer(min=1, max=5), info="Predefined path in k-space", description=""" Bravais-lattice KPATH path ========================== orb 1 Γ-Σ-X-G-U-A-Z-Λ-Γ-∆-Y-H-T-B-Z + X-D-S-C-Y + U-P-R-E-T + S-Q-T 2 Γ-Σ-X-G-U-A-Z-Λ-Γ-∆-Y-H-T-B-Z 3 Γ-Σ-X-G-U-A-Z-Λ-Γ 4 Γ-∆-Y-H-T-B-Z hex 1 Γ-Σ-M-T’-K-T-Γ-∆-A-R-L-S’-H-S-A + M-U-L + K-P-H 2 Γ-Σ-M-T’-K-T-Γ-∆-A-R-L-S’-H-S-A 3 Γ-Σ-M-T’-K-T-Γ-∆-A 4 Γ-Σ-M 5 K-T-Γ sc 1 Γ-∆-X-Y-M-V-R-Λ-Γ-Σ-M 2 Γ-∆-X-Y-M-V-R-Λ-Γ 3 Γ-∆-X-Y-M-V-R 4 Γ-∆-X-Y-M fcc 1 X-∆-Γ-Λ-L-Q-W-N-K-Σ-Γ + L-M-U-S-X-Z-W-D-U 2 X-∆-Γ-Λ-L-Q-W-N-K-Σ-Γ 3 X-∆-Γ-Λ-L 4 Γ-∆-X 5 Γ-Λ-L bcc 1 Γ-D-H-G-N-Σ-Γ-Λ-P-F-H + N-D-P 2 Γ-D-H-G-N-Σ-Γ-Λ-P-F-H 3 Γ-D-H-G-N-Σ-Γ-Λ-P 4 Γ-D-H-G-N-Σ-Γ 5 Γ-D-H """, is_optional=True, ), *if_not_defined( "KPATH", [ V( "NKDIR", Length("KA", "KE", default_values=[[0.0, 0.0, 0.0], [1.0, 1.0, 1.0]]), info="Number of directions treated in k-spaces", is_required="Please, specify either TASK.KPATH or TASK.KA and TASK.KE", ), V( "KA", SetOf(float, length=3), is_repeated="NUMBERED", info="First k-vector segment in k-space in multiples of 2π/a and rectangular coordinates with * = 1, ...,NKDIR", is_required="Please, specify either TASK.KPATH or TASK.KA and TASK.KE", ), V( "KE", SetOf(float, length=3), is_repeated="NUMBERED", info="First k-vector segment in k-space in multiples of 2π/a and rectangular coordinates with * = 1, ...,NKDIR", is_required="Please, specify either TASK.KPATH or TASK.KA and TASK.KE", ), ], ), ] ), ENERGY( emin=(-0.2, "The lowest E-value", None), emax=(-1.0, "The highest E-value", None), defaults={"GRID": 3, "NE": 200, "ImE": 0.001}, ), CONTROL("BLOCHSF"), TAU, MODE, STRCONST, SITES, ], executable="kkrgen", mpi=True, info="BSFEK - Bloch spectral functions in the E-K plane", ) class BSFEKTaskSection(out["TASK"].result_class): def k_path_gui(self, atoms): from ase2sprkkr.gui.k_path import k_path_gui out = k_path_gui(atoms) if out: self.KPATH.clear() self.set(out) out["TASK"].result_class = BSFEKTaskSection return out
# TODO - AKI scripts to generate KA/KE