Optimize First-Principles-derived Tight-Binding Models

workchainaiida_tbextraction.optimize_fp_tb.OptimizeFirstPrinciplesTightBinding

Creates a tight-binding model by first running first-principles calculations to get a reference bandstructure and Wannier90 input, and then optimizing the energy window to get an optimized symmetric tight-binding model.

Inputs:

  • code_tbmodels, Code, required – Code that runs the TBmodels CLI.
  • cost_tol, Float, optional – Tolerance in the ‘cost_value’ for the window optimization.
  • fp_run, Namespace – Inputs passed to the fp_run_workflow
  • fp_run_workflow, Str, required – Workflow which executes the first-principles calculations
  • initial_window, List, optional – Initial value for the disentanglement energy windows, given as a list [dis_win_min, dis_froz_min, dis_froz_max, dis_win_max].
  • 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.
  • model_evaluation, Namespace – Inputs that will be passed to the model_evaluation_workflow.
  • model_evaluation_workflow, Str, required – AiiDA workflow that will be used to evaluate the tight-binding model.
  • slice_reference_bands, List, optional – Indices for the reference bands which should be included in the model evaluation.
  • slice_tb_model, List, optional – Indices for slicing (re-ordering) the tight-binding model.
  • structure, StructureData, required – Structure of the material for which the tight-binding model should be calculated.
  • symmetries, SinglefileData, optional – File containing the symmetries which will be applied to the tight-binding model. The file must be in symmetry-representation HDF5 format.
  • wannier, Namespace
    Namespace Ports
    • code, Code, required – The Code to use for this job.
    • kpoint_path, Dict, optional – Description of the kpoints-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
    • 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 – Filename to which the input for the code that is to be run will be written.
        • 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 – Filename to which the content of stdout of the code that is to be run will be written.
        • 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 will be written.
        • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler will be written.
        • seedname, (str), optional, non_db
        • withmpi, bool, optional, non_db
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • projections, (OrbitalData, Dict, List), optional – Starting projections for the Wannierisation procedure
    • settings, Dict, optional –

      Additional settings to manage the Wannier90 calculation.

      It can contain the following keys:

      General options:

      • random_projections: Enables using random projections if

        or not enough projections are defined.

      • postproc_setup: Use Wannier90 in ‘postproc_setup’ mode.

        This affects which input and output files are expected.

      File handling options:

      • additional_remote_symlink_list: List of custom files to

        link on the remote.

      • additional_remote_copy_list: List of custom files to

        copy from a source on the remote.

      • additional_local_copy_list: List of custom files to copy

        from a local source.

      • additional_retrieve_list: List of additional filenames

        to be retrieved.

      • exclude_retrieve_list: List of filename patterns to

        exclude from retrieving. Does not affect files listed in additional_retrieve_list.

  • 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.
  • window_tol, Float, optional – Tolerance in energy windows for the window optimization.

Outputs:

  • window, List, required

Outline:

fp_run(Runs the first-principles calculation workflow.)
run_window_search(Runs the workflow which creates the optimized tight-binding model.)
finalize(Add the outputs of the window_search sub-workflow.)

workchainaiida_tbextraction.optimize_strained_fp_tb.OptimizeStrainedFirstPrinciplesTightBinding

Workflow to optimize a DFT-based tight-binding model for different strain values.

Inputs:

  • code_tbmodels, Code, required – Code that runs the TBmodels CLI.
  • cost_tol, Float, optional – Tolerance in the ‘cost_value’ for the window optimization.
  • fp_run, Namespace – Inputs passed to the fp_run_workflow
  • fp_run_workflow, Str, required – Workflow which executes the first-principles calculations
  • initial_window, List, optional – Initial value for the disentanglement energy windows, given as a list [dis_win_min, dis_froz_min, dis_froz_max, dis_win_max].
  • 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.
  • model_evaluation, Namespace – Inputs that will be passed to the model_evaluation_workflow.
  • model_evaluation_workflow, Str, required – AiiDA workflow that will be used to evaluate the tight-binding model.
  • slice_reference_bands, List, optional – Indices for the reference bands which should be included in the model evaluation.
  • slice_tb_model, List, optional – Indices for slicing (re-ordering) the tight-binding model.
  • strain_kind, Str, required
  • strain_parameters, Str, required
  • strain_strengths, List, required
  • structure, StructureData, required
  • symmetries, SinglefileData, required
  • symmetry_repr_code, Code, required
  • wannier, Namespace
    Namespace Ports
    • code, Code, required – The Code to use for this job.
    • kpoint_path, Dict, optional – Description of the kpoints-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
    • 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 – Filename to which the input for the code that is to be run will be written.
        • 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 – Filename to which the content of stdout of the code that is to be run will be written.
        • 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 will be written.
        • scheduler_stdout, str, optional, non_db – Filename to which the content of stdout of the scheduler will be written.
        • seedname, (str), optional, non_db
        • withmpi, bool, optional, non_db
      • store_provenance, bool, optional, non_db – If set to False provenance will not be stored in the database.
    • projections, (OrbitalData, Dict, List), optional – Starting projections for the Wannierisation procedure
    • settings, Dict, optional –

      Additional settings to manage the Wannier90 calculation.

      It can contain the following keys:

      General options:

      • random_projections: Enables using random projections if

        or not enough projections are defined.

      • postproc_setup: Use Wannier90 in ‘postproc_setup’ mode.

        This affects which input and output files are expected.

      File handling options:

      • additional_remote_symlink_list: List of custom files to

        link on the remote.

      • additional_remote_copy_list: List of custom files to

        copy from a source on the remote.

      • additional_local_copy_list: List of custom files to copy

        from a local source.

      • additional_retrieve_list: List of additional filenames

        to be retrieved.

      • exclude_retrieve_list: List of filename patterns to

        exclude from retrieving. Does not affect files listed in additional_retrieve_list.

  • 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.
  • window_tol, Float, optional – Tolerance in energy windows for the window optimization.

Outputs:

None defined.

Outline:

run_strain(Apply strain to the initial structure to get the strained structures.)
run_optimize_dft_tb(Run the tight-binding optimization for each strained structure.)
finalize(Retrieve and output results.)