Run First-Principles Calculations

Complete First-Principles Calculations

workchainaiida_tbextraction.fp_run.FirstPrinciplesRunBase

Base class for first-principles runs, calculation the reference bandstructure and Wannier90 inputs.

Inputs:

  • kpoints, KpointsData, required – k-points on which the bandstructure is evaluated.
  • kpoints_mesh, KpointsData, required – K-points mesh used when calculating the Wannier inputs.
  • metadata, Namespace
    Namespace Ports
    • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
    • description, str, optional, non_db – Description to set on the process node.
    • label, str, optional, non_db – Label to set on the process node.
    • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • structure, StructureData, required – Structure of the material.
  • wannier_parameters, Dict, optional – Parameters of the Wannier calculation. This output needs to be set if the parameters are modified by the workchain in any way.
  • wannier_projections, (OrbitalData, List), optional – Projections used in the Wannier90 calculation, given either as OrbitalData, or a list of strings corresponding to the lines in the wannier90.win projections input block.

Outputs:

  • bands, BandsData, required – The reference bandstructure.
  • wannier_bands, BandsData, required – Bands parsed from the .eig file.
  • wannier_input_folder, FolderData, required – Folder containing the .mmn, .amn and .eig input files.
  • wannier_parameters, Dict, required – Parameters for the Wannier90 calculation.
  • wannier_projections, List, optional
  • wannier_settings, Dict, optional

workchainaiida_tbextraction.fp_run.QuantumEspressoFirstPrinciplesRun

Calculate Wannier90 inputs and reference bands with Quantum Espresso. Workflow for calculating the inputs needed for the tight-binding calculation and evaluation with Quantum Espresso. The workflow first performs an SCF step, and then passes uses the remote folder from that calculation as input for a bands calculation, and an NSCF + Wannier90 pre-processing + PW2WANNIER90 calculation for the Wannier90 inputs.

Inputs:

  • bands, Namespace – Inputs passed to the workflow generating the reference band structure.
    Namespace Ports
    • bands, Namespace
      Namespace Ports
      • automatic_parallelization, Dict, optional – When defined, the work chain will first launch an initialization calculation to determine the dimensions of the problem, and based on this it will try to set optimal parallelization flags.
      • clean_workdir, Bool, optional – If True, work directories of all called calculation jobs will be cleaned at the end of execution.
      • handler_overrides, Dict, optional – Mapping where keys are process handler names and the values are a boolean, where True will enable the corresponding handler and False will disable it. This overrides the default value set by the enabled keyword of the process_handler decorator with which the method is decorated.
      • kpoints_distance, Float, optional – The minimum desired distance in 1/Å between k-points in reciprocal space. The explicit k-points will be generated automatically by a calculation function based on the input structure.
      • kpoints_force_parity, Bool, optional – Optional input when constructing the k-points based on a desired kpoints_distance. Setting this to True will force the k-point mesh to have an even number of points along each lattice vector except for any non-periodic directions.
      • max_iterations, Int, optional – Maximum number of iterations the work chain will restart the process to finish successfully.
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • description, str, optional, non_db – Description to set on the process node.
        • label, str, optional, non_db – Label to set on the process node.
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • pseudo_family, Str, optional – An alternative to specifying the pseudo potentials manually in pseudos: one can specify the name of an existing pseudo potential family and the work chain will generate the pseudos automatically based on the input structure.
      • pw, Namespace
        Namespace Ports
        • code, Code, required – The Code to use for this job.
        • hubbard_file, SinglefileData, optional – SinglefileData node containing the output Hubbard parameters from a HpCalculation
        • metadata, Namespace
          Namespace Ports
          • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
          • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
          • description, str, optional, non_db – Description to set on the process node.
          • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
          • label, str, optional, non_db – Label to set on the process node.
          • options, Namespace
            Namespace Ports
            • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
            • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
            • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
            • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
            • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
            • input_filename, str, optional, non_db
            • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
            • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
            • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
            • output_filename, str, optional, non_db
            • parser_name, str, optional, non_db
            • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
            • priority, str, optional, non_db – Set the priority of the job to be queued
            • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
            • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
            • resources, dict, optional, non_db
            • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
            • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
            • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
            • withmpi, bool, optional, non_db
            • without_xml, bool, optional, non_db – If set to True the parser will not fail if the XML file is missing in the retrieved folder.
          • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
        • parameters, Dict, required – The input parameters that are to be used to construct the input file.
        • parent_folder, RemoteData, optional – An optional working directory of a previously completed calculation to restart from.
        • pseudos, Namespace – A mapping of UpfData nodes onto the kind name to which they should apply.
        • settings, Dict, optional – Optional parameters to affect the way the calculation job and the parsing are performed.
        • vdw_table, SinglefileData, optional – Optional van der Waals table contained in a SinglefileData.
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • description, str, optional, non_db – Description to set on the process node.
      • label, str, optional, non_db – Label to set on the process node.
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • kpoints, KpointsData, optional – An explicit k-points list or mesh. Either this or kpoints_distance has to be provided.
  • kpoints_mesh, KpointsData, required – K-points mesh used when calculating the Wannier inputs.
  • metadata, Namespace
    Namespace Ports
    • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
    • description, str, optional, non_db – Description to set on the process node.
    • label, str, optional, non_db – Label to set on the process node.
    • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • scf, Namespace
    Namespace Ports
    • automatic_parallelization, Dict, optional – When defined, the work chain will first launch an initialization calculation to determine the dimensions of the problem, and based on this it will try to set optimal parallelization flags.
    • clean_workdir, Bool, optional – If True, work directories of all called calculation jobs will be cleaned at the end of execution.
    • handler_overrides, Dict, optional – Mapping where keys are process handler names and the values are a boolean, where True will enable the corresponding handler and False will disable it. This overrides the default value set by the enabled keyword of the process_handler decorator with which the method is decorated.
    • kpoints_distance, Float, optional – The minimum desired distance in 1/Å between k-points in reciprocal space. The explicit k-points will be generated automatically by a calculation function based on the input structure.
    • kpoints_force_parity, Bool, optional – Optional input when constructing the k-points based on a desired kpoints_distance. Setting this to True will force the k-point mesh to have an even number of points along each lattice vector except for any non-periodic directions.
    • max_iterations, Int, optional – Maximum number of iterations the work chain will restart the process to finish successfully.
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • description, str, optional, non_db – Description to set on the process node.
      • label, str, optional, non_db – Label to set on the process node.
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • pseudo_family, Str, optional – An alternative to specifying the pseudo potentials manually in pseudos: one can specify the name of an existing pseudo potential family and the work chain will generate the pseudos automatically based on the input structure.
    • pw, Namespace
      Namespace Ports
      • code, Code, required – The Code to use for this job.
      • hubbard_file, SinglefileData, optional – SinglefileData node containing the output Hubbard parameters from a HpCalculation
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
        • description, str, optional, non_db – Description to set on the process node.
        • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
        • label, str, optional, non_db – Label to set on the process node.
        • options, Namespace
          Namespace Ports
          • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
          • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
          • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
          • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
          • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
          • input_filename, str, optional, non_db
          • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
          • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
          • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
          • output_filename, str, optional, non_db
          • parser_name, str, optional, non_db
          • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
          • priority, str, optional, non_db – Set the priority of the job to be queued
          • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
          • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
          • resources, dict, optional, non_db
          • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
          • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
          • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
          • withmpi, bool, optional, non_db
          • without_xml, bool, optional, non_db – If set to True the parser will not fail if the XML file is missing in the retrieved folder.
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • parameters, Dict, required – The input parameters that are to be used to construct the input file.
      • parent_folder, RemoteData, optional – An optional working directory of a previously completed calculation to restart from.
      • pseudos, Namespace – A mapping of UpfData nodes onto the kind name to which they should apply.
      • settings, Dict, optional – Optional parameters to affect the way the calculation job and the parsing are performed.
      • vdw_table, SinglefileData, optional – Optional van der Waals table contained in a SinglefileData.
  • structure, StructureData, required – input crystal structure
  • to_wannier, Namespace – Inputs passed to the workflow generating the Wannier90 inputs.
    Namespace Ports
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • description, str, optional, non_db – Description to set on the process node.
      • label, str, optional, non_db – Label to set on the process node.
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • nscf, Namespace
      Namespace Ports
      • automatic_parallelization, Dict, optional – When defined, the work chain will first launch an initialization calculation to determine the dimensions of the problem, and based on this it will try to set optimal parallelization flags.
      • clean_workdir, Bool, optional – If True, work directories of all called calculation jobs will be cleaned at the end of execution.
      • handler_overrides, Dict, optional – Mapping where keys are process handler names and the values are a boolean, where True will enable the corresponding handler and False will disable it. This overrides the default value set by the enabled keyword of the process_handler decorator with which the method is decorated.
      • kpoints_distance, Float, optional – The minimum desired distance in 1/Å between k-points in reciprocal space. The explicit k-points will be generated automatically by a calculation function based on the input structure.
      • kpoints_force_parity, Bool, optional – Optional input when constructing the k-points based on a desired kpoints_distance. Setting this to True will force the k-point mesh to have an even number of points along each lattice vector except for any non-periodic directions.
      • max_iterations, Int, optional – Maximum number of iterations the work chain will restart the process to finish successfully.
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • description, str, optional, non_db – Description to set on the process node.
        • label, str, optional, non_db – Label to set on the process node.
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • pseudo_family, Str, optional – An alternative to specifying the pseudo potentials manually in pseudos: one can specify the name of an existing pseudo potential family and the work chain will generate the pseudos automatically based on the input structure.
      • pw, Namespace
        Namespace Ports
        • code, Code, required – The Code to use for this job.
        • hubbard_file, SinglefileData, optional – SinglefileData node containing the output Hubbard parameters from a HpCalculation
        • metadata, Namespace
          Namespace Ports
          • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
          • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
          • description, str, optional, non_db – Description to set on the process node.
          • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
          • label, str, optional, non_db – Label to set on the process node.
          • options, Namespace
            Namespace Ports
            • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
            • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
            • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
            • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
            • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
            • input_filename, str, optional, non_db
            • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
            • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
            • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
            • output_filename, str, optional, non_db
            • parser_name, str, optional, non_db
            • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
            • priority, str, optional, non_db – Set the priority of the job to be queued
            • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
            • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
            • resources, dict, optional, non_db
            • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
            • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
            • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
            • withmpi, bool, optional, non_db
            • without_xml, bool, optional, non_db – If set to True the parser will not fail if the XML file is missing in the retrieved folder.
          • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
        • parameters, Dict, required – The input parameters that are to be used to construct the input file.
        • parent_folder, RemoteData, optional – An optional working directory of a previously completed calculation to restart from.
        • pseudos, Namespace – A mapping of UpfData nodes onto the kind name to which they should apply.
        • settings, Dict, optional – Optional parameters to affect the way the calculation job and the parsing are performed.
        • vdw_table, SinglefileData, optional – Optional van der Waals table contained in a SinglefileData.
    • pw2wannier, Namespace
      Namespace Ports
      • code, Code, required – The Code to use for this job.
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
        • description, str, optional, non_db – Description to set on the process node.
        • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
        • label, str, optional, non_db – Label to set on the process node.
        • options, Namespace
          Namespace Ports
          • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
          • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
          • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
          • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
          • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
          • input_filename, str, optional, non_db
          • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
          • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
          • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
          • output_filename, str, optional, non_db
          • parser_name, str, optional, non_db
          • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
          • priority, str, optional, non_db – Set the priority of the job to be queued
          • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
          • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
          • resources, dict, required, non_db – Set the dictionary of resources to be used by the scheduler plugin, like the number of nodes, cpus etc. This dictionary is scheduler-plugin dependent. Look at the documentation of the scheduler for more details.
          • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
          • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
          • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
          • withmpi, bool, optional, non_db
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • parameters, Dict, optional – Use a node that specifies the input parameters for the namelists
      • settings, Dict, optional – Use an additional node for special settings
    • wannier, Namespace
      Namespace Ports
      • code, Code, required – The Code to use for this job.
      • kpoint_path, Dict, optional – Description of the k-points path to be used for bands interpolation; it should contain two properties: a list path of length-2 tuples with the labels of the endpoints of the path; and a dictionary point_coords giving the scaled coordinates for each high-symmetry endpoint.
      • local_input_folder, FolderData, optional – Get input files (.amn, .mmn, …) from a class FolderData stored in the AiiDA repository.
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
        • description, str, optional, non_db – Description to set on the process node.
        • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
        • label, str, optional, non_db – Label to set on the process node.
        • options, Namespace
          Namespace Ports
          • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
          • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
          • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
          • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
          • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
          • input_filename, str, optional, non_db
          • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
          • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
          • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
          • output_filename, str, optional, non_db
          • parser_name, str, optional, non_db
          • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
          • priority, str, optional, non_db – Set the priority of the job to be queued
          • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
          • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
          • resources, dict, required, non_db – Set the dictionary of resources to be used by the scheduler plugin, like the number of nodes, cpus etc. This dictionary is scheduler-plugin dependent. Look at the documentation of the scheduler for more details.
          • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
          • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
          • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
          • withmpi, bool, optional, non_db
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • remote_input_folder, RemoteData, optional – Get input files (.amn, .mmn, …) from a class RemoteData possibly stored in a remote computer.
      • settings, Dict, optional – Additional settings to manage the Wannier90 calculation.
  • wannier_parameters, Dict, optional – Parameters of the Wannier calculation. This output needs to be set if the parameters are modified by the workchain in any way.
  • wannier_projections, (OrbitalData, List), optional – Projections used in the Wannier90 calculation, given either as OrbitalData, or a list of strings corresponding to the lines in the wannier90.win projections input block.

Outputs:

  • bands, BandsData, required – The reference bandstructure.
  • wannier_bands, BandsData, required – Bands parsed from the .eig file.
  • wannier_input_folder, FolderData, required – Folder containing the .mmn, .amn and .eig input files.
  • wannier_parameters, Dict, required – Parameters for the Wannier90 calculation.
  • wannier_projections, List, optional
  • wannier_settings, Dict, optional

Outline:

run_scf(Run the SCF calculation step.)
run_bands_and_wannier(Run the reference bands and wannier input workflows.)
finalize(Add outputs of the bandstructure and wannier input calculations.)

Reference Bands Workflows

workchainaiida_tbextraction.fp_run.reference_bands.ReferenceBandsBase

The base class for WorkChains which can be used to calculate the reference bandstructure. It defines the inputs required by these WorkChains.

Inputs:

  • kpoints, KpointsData, required – k-points on which the bandstructure is evaluated.
  • metadata, Namespace
    Namespace Ports
    • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
    • description, str, optional, non_db – Description to set on the process node.
    • label, str, optional, non_db – Label to set on the process node.
    • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • structure, StructureData, required – Structure of the material.

Outputs:

  • bands, BandsData, required – The reference bandstructure.

workchainaiida_tbextraction.fp_run.reference_bands.QuantumEspressoReferenceBands

The WorkChain to calculate reference bands with Quantum ESPRESSO.

Inputs:

  • bands, Namespace
    Namespace Ports
    • automatic_parallelization, Dict, optional – When defined, the work chain will first launch an initialization calculation to determine the dimensions of the problem, and based on this it will try to set optimal parallelization flags.
    • clean_workdir, Bool, optional – If True, work directories of all called calculation jobs will be cleaned at the end of execution.
    • handler_overrides, Dict, optional – Mapping where keys are process handler names and the values are a boolean, where True will enable the corresponding handler and False will disable it. This overrides the default value set by the enabled keyword of the process_handler decorator with which the method is decorated.
    • kpoints_distance, Float, optional – The minimum desired distance in 1/Å between k-points in reciprocal space. The explicit k-points will be generated automatically by a calculation function based on the input structure.
    • kpoints_force_parity, Bool, optional – Optional input when constructing the k-points based on a desired kpoints_distance. Setting this to True will force the k-point mesh to have an even number of points along each lattice vector except for any non-periodic directions.
    • max_iterations, Int, optional – Maximum number of iterations the work chain will restart the process to finish successfully.
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • description, str, optional, non_db – Description to set on the process node.
      • label, str, optional, non_db – Label to set on the process node.
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • pseudo_family, Str, optional – An alternative to specifying the pseudo potentials manually in pseudos: one can specify the name of an existing pseudo potential family and the work chain will generate the pseudos automatically based on the input structure.
    • pw, Namespace
      Namespace Ports
      • code, Code, required – The Code to use for this job.
      • hubbard_file, SinglefileData, optional – SinglefileData node containing the output Hubbard parameters from a HpCalculation
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
        • description, str, optional, non_db – Description to set on the process node.
        • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
        • label, str, optional, non_db – Label to set on the process node.
        • options, Namespace
          Namespace Ports
          • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
          • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
          • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
          • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
          • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
          • input_filename, str, optional, non_db
          • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
          • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
          • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
          • output_filename, str, optional, non_db
          • parser_name, str, optional, non_db
          • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
          • priority, str, optional, non_db – Set the priority of the job to be queued
          • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
          • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
          • resources, dict, optional, non_db
          • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
          • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
          • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
          • withmpi, bool, optional, non_db
          • without_xml, bool, optional, non_db – If set to True the parser will not fail if the XML file is missing in the retrieved folder.
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • parameters, Dict, required – The input parameters that are to be used to construct the input file.
      • parent_folder, RemoteData, optional – An optional working directory of a previously completed calculation to restart from.
      • pseudos, Namespace – A mapping of UpfData nodes onto the kind name to which they should apply.
      • settings, Dict, optional – Optional parameters to affect the way the calculation job and the parsing are performed.
      • vdw_table, SinglefileData, optional – Optional van der Waals table contained in a SinglefileData.
  • kpoints, KpointsData, optional – An explicit k-points list or mesh. Either this or kpoints_distance has to be provided.
  • metadata, Namespace
    Namespace Ports
    • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
    • description, str, optional, non_db – Description to set on the process node.
    • label, str, optional, non_db – Label to set on the process node.
    • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • structure, StructureData, required – Structure of the material.

Outputs:

  • bands, BandsData, required – The reference bandstructure.

Outline:

run_calc(Run the QE calculation.)
get_bands(Get the bands from the  Quantum ESPRESSO calculation.)

Wannier90 Input Workflows

workchainaiida_tbextraction.fp_run.wannier_input.WannierInputBase

The base class for WorkChains which can be used to calculate the Wannier90 input files. It defines the inputs required by these WorkChains.

Inputs:

  • kpoints_mesh, KpointsData, required – K-points mesh used when calculating the Wannier inputs.
  • metadata, Namespace
    Namespace Ports
    • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
    • description, str, optional, non_db – Description to set on the process node.
    • label, str, optional, non_db – Label to set on the process node.
    • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • structure, StructureData, required – Structure of the material.
  • wannier_parameters, Dict, optional – Parameters of the Wannier calculation. This output needs to be set if the parameters are modified by the workchain in any way.
  • wannier_projections, (OrbitalData, List), optional – Projections used in the Wannier90 calculation, given either as OrbitalData, or a list of strings corresponding to the lines in the wannier90.win projections input block.

Outputs:

  • wannier_bands, BandsData, required – Bands parsed from the .eig file.
  • wannier_input_folder, FolderData, required – Folder containing the .mmn, .amn and .eig input files.
  • wannier_parameters, Dict, required – Parameters for the Wannier90 calculation.
  • wannier_projections, List, optional
  • wannier_settings, Dict, optional

workchainaiida_tbextraction.fp_run.wannier_input.QuantumEspressoWannierInput

Calculates the Wannier90 input files using Quantum ESPRESSO / pw2wannier90.

Inputs:

  • kpoints_mesh, KpointsData, required – K-points mesh used when calculating the Wannier inputs.
  • metadata, Namespace
    Namespace Ports
    • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
    • description, str, optional, non_db – Description to set on the process node.
    • label, str, optional, non_db – Label to set on the process node.
    • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
  • nscf, Namespace
    Namespace Ports
    • automatic_parallelization, Dict, optional – When defined, the work chain will first launch an initialization calculation to determine the dimensions of the problem, and based on this it will try to set optimal parallelization flags.
    • clean_workdir, Bool, optional – If True, work directories of all called calculation jobs will be cleaned at the end of execution.
    • handler_overrides, Dict, optional – Mapping where keys are process handler names and the values are a boolean, where True will enable the corresponding handler and False will disable it. This overrides the default value set by the enabled keyword of the process_handler decorator with which the method is decorated.
    • kpoints_distance, Float, optional – The minimum desired distance in 1/Å between k-points in reciprocal space. The explicit k-points will be generated automatically by a calculation function based on the input structure.
    • kpoints_force_parity, Bool, optional – Optional input when constructing the k-points based on a desired kpoints_distance. Setting this to True will force the k-point mesh to have an even number of points along each lattice vector except for any non-periodic directions.
    • max_iterations, Int, optional – Maximum number of iterations the work chain will restart the process to finish successfully.
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • description, str, optional, non_db – Description to set on the process node.
      • label, str, optional, non_db – Label to set on the process node.
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • pseudo_family, Str, optional – An alternative to specifying the pseudo potentials manually in pseudos: one can specify the name of an existing pseudo potential family and the work chain will generate the pseudos automatically based on the input structure.
    • pw, Namespace
      Namespace Ports
      • code, Code, required – The Code to use for this job.
      • hubbard_file, SinglefileData, optional – SinglefileData node containing the output Hubbard parameters from a HpCalculation
      • metadata, Namespace
        Namespace Ports
        • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
        • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
        • description, str, optional, non_db – Description to set on the process node.
        • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
        • label, str, optional, non_db – Label to set on the process node.
        • options, Namespace
          Namespace Ports
          • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
          • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
          • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
          • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
          • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
          • input_filename, str, optional, non_db
          • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
          • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
          • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
          • output_filename, str, optional, non_db
          • parser_name, str, optional, non_db
          • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
          • priority, str, optional, non_db – Set the priority of the job to be queued
          • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
          • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
          • resources, dict, optional, non_db
          • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
          • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
          • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
          • withmpi, bool, optional, non_db
          • without_xml, bool, optional, non_db – If set to True the parser will not fail if the XML file is missing in the retrieved folder.
        • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
      • parameters, Dict, required – The input parameters that are to be used to construct the input file.
      • parent_folder, RemoteData, optional – An optional working directory of a previously completed calculation to restart from.
      • pseudos, Namespace – A mapping of UpfData nodes onto the kind name to which they should apply.
      • settings, Dict, optional – Optional parameters to affect the way the calculation job and the parsing are performed.
      • vdw_table, SinglefileData, optional – Optional van der Waals table contained in a SinglefileData.
  • pw2wannier, Namespace
    Namespace Ports
    • code, Code, required – The Code to use for this job.
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
      • description, str, optional, non_db – Description to set on the process node.
      • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
      • label, str, optional, non_db – Label to set on the process node.
      • options, Namespace
        Namespace Ports
        • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
        • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
        • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
        • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
        • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
        • input_filename, str, optional, non_db
        • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
        • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
        • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
        • output_filename, str, optional, non_db
        • parser_name, str, optional, non_db
        • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
        • priority, str, optional, non_db – Set the priority of the job to be queued
        • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
        • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
        • resources, dict, required, non_db – Set the dictionary of resources to be used by the scheduler plugin, like the number of nodes, cpus etc. This dictionary is scheduler-plugin dependent. Look at the documentation of the scheduler for more details.
        • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
        • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
        • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
        • withmpi, bool, optional, non_db
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • parameters, Dict, optional – Use a node that specifies the input parameters for the namelists
    • settings, Dict, optional – Use an additional node for special settings
  • structure, StructureData, required – input crystal structure
  • wannier, Namespace
    Namespace Ports
    • code, Code, required – The Code to use for this job.
    • kpoint_path, Dict, optional – Description of the k-points path to be used for bands interpolation; it should contain two properties: a list path of length-2 tuples with the labels of the endpoints of the path; and a dictionary point_coords giving the scaled coordinates for each high-symmetry endpoint.
    • local_input_folder, FolderData, optional – Get input files (.amn, .mmn, …) from a class FolderData stored in the AiiDA repository.
    • metadata, Namespace
      Namespace Ports
      • call_link_label, str, optional, non_db – The label to use for the CALL link if the process is called by another process.
      • computer, Computer, optional, non_db – When using a “local” code, set the computer on which the calculation should be run.
      • description, str, optional, non_db – Description to set on the process node.
      • dry_run, bool, optional, non_db – When set to True will prepare the calculation job for submission but not actually launch it.
      • label, str, optional, non_db – Label to set on the process node.
      • options, Namespace
        Namespace Ports
        • account, str, optional, non_db – Set the account to use in for the queue on the remote computer
        • append_text, str, optional, non_db – Set the calculation-specific append text, which is going to be appended in the scheduler-job script, just after the code execution
        • custom_scheduler_commands, str, optional, non_db – Set a (possibly multiline) string with the commands that the user wants to manually set for the scheduler. The difference of this option with respect to the prepend_text is the position in the scheduler submission file where such text is inserted: with this option, the string is inserted before any non-scheduler command
        • environment_variables, dict, optional, non_db – Set a dictionary of custom environment variables for this calculation
        • import_sys_environment, bool, optional, non_db – If set to true, the submission script will load the system environment variables
        • input_filename, str, optional, non_db
        • max_memory_kb, int, optional, non_db – Set the maximum memory (in KiloBytes) to be asked to the scheduler
        • max_wallclock_seconds, int, optional, non_db – Set the wallclock in seconds asked to the scheduler
        • mpirun_extra_params, (list, tuple), optional, non_db – Set the extra params to pass to the mpirun (or equivalent) command after the one provided in computer.mpirun_command. Example: mpirun -np 8 extra_params[0] extra_params[1] … exec.x
        • output_filename, str, optional, non_db
        • parser_name, str, optional, non_db
        • prepend_text, str, optional, non_db – Set the calculation-specific prepend text, which is going to be prepended in the scheduler-job script, just before the code execution
        • priority, str, optional, non_db – Set the priority of the job to be queued
        • qos, str, optional, non_db – Set the quality of service to use in for the queue on the remote computer
        • queue_name, str, optional, non_db – Set the name of the queue on the remote computer
        • resources, dict, required, non_db – Set the dictionary of resources to be used by the scheduler plugin, like the number of nodes, cpus etc. This dictionary is scheduler-plugin dependent. Look at the documentation of the scheduler for more details.
        • scheduler_stderr, str, optional, non_db – Filename to which the content of stderr of the scheduler is written.
        • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler is written.
        • submit_script_filename, str, optional, non_db – Filename to which the job submission script is written.
        • withmpi, bool, optional, non_db
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • remote_input_folder, RemoteData, optional – Get input files (.amn, .mmn, …) from a class RemoteData possibly stored in a remote computer.
    • settings, Dict, optional – Additional settings to manage the Wannier90 calculation.
  • wannier_parameters, Dict, optional – Parameters of the Wannier calculation. This output needs to be set if the parameters are modified by the workchain in any way.
  • wannier_projections, (OrbitalData, List), optional – Projections used in the Wannier90 calculation, given either as OrbitalData, or a list of strings corresponding to the lines in the wannier90.win projections input block.

Outputs:

  • wannier_bands, BandsData, required – Bands parsed from the .eig file.
  • wannier_input_folder, FolderData, required – Folder containing the .mmn, .amn and .eig input files.
  • wannier_parameters, Dict, required – Parameters for the Wannier90 calculation.
  • wannier_projections, List, optional
  • wannier_settings, Dict, optional

Outline:

run_nscf(Run the NSCF and wannier90 -pp calculation.)
run_wannier90_preproc(Run Wannier90 with the -pp option to create the nnkp file.)
run_pw2wannier90(Run the pw2wannier90 calculation.)
get_result(Get the pw2wannier90 result and create the necessary outputs.)