DFT Parameter Benchmark

The DFT Parameter Benchmark tool tests VASP parameters (kspacing, ENCUT, ISPIN, …) per crystallographic phase to find optimal settings that satisfy a given convergence threshold. For each parameter sweep it:

  • Selects one representative bulk structure per phase.

  • Submits calculations via AiiDA for each parameter value.

  • Analyses convergence and recommends the cheapest settings within the threshold.

  • Generates convergence plots and a copy-pasteable TOML snippet.

Generate a dft benchmark template file using atl_gen_configuration_file -t dft_benchmark.

Attention

All keys are mandatory unless stated otherwise.

General - [general]

General settings for the benchmark.

  • log_path:

    • Description: Path where the logs will be stored.

    • Type: (str, PosixPath)

    • Default: '/tmp/'.

  • aiida_group_name:

    • Description: Name of the AiiDA group for benchmark calculations.

    • Type: (str)

    • Default: 'dft_benchmark'.

  • max_batch:

    • Description: Maximum number of calculations in the queue at once.

    • Type: (int)

    • Default: 50.

  • queue_check_interval_seconds:

    • Description: Interval in seconds to check the queue.

    • Type: (int)

    • Default: 240.

  • dry_run:

    • Description: If True, list calculations without submitting.

    • Type: (optional, bool)

    • Default: False.

Database - [database]

Database settings.

  • db_path:

    • Description: Path to the initial database (extxyz format).

    • Type: (str, PosixPath)

Calculation - [calculation]

DFT calculation settings.

  • calc_type:

    • Description: Type of calculation (benchmarks use static).

    • Type: (str)

    • Default: 'static'.

    • Possible values are: static.

  • aiida_potential_family:

    • Description: AiiDA potential family name.

    • Type: (str)

    • Example: 'vasp-5.4-PBE-2023'.

  • potential_mapping:

    • Description: Mapping of elements to specific potential labels.

    • Type: (optional, dict)

Kpoints - [kpoints]

Base k-point settings (used as reference for non-kspacing benchmarks).

  • kspacing:

    • Description: K-spacing in Å⁻¹. Use ATL_DEFAULT for a single value.

    • Type: (dict)

    • Example:

{'ATL_DEFAULT': 0.05}

Queue - [queue]

Queue settings for HPC schedulers.

  • code_string:

    • Description: Name of the code as defined in AiiDA.

    • Type: (str)

  • account:

    • Description: Account to be used for the calculations.

    • Type: (optional, str)

  • qos:

    • Description: Quality of service parameter.

    • Type: (optional, str)

  • node_cpus:

    • Description: Number of CPUs per node.

    • Type: (int)

  • max_wallclock_seconds:

    • Description: Maximum wallclock time in seconds.

    • Type: (int)

    • Default: 16200.

  • max_memory_kb:

    • Description: Maximum memory per node in KB.

    • Type: (optional, int)

  • multiple:

    • Description: Whether to use multiple nodes.

    • Type: (bool)

    • Default: False.

  • custom_scheduler_commands:

    • Description: Custom scheduler commands.

    • Type: (optional, str)

Options_Resources - [queue.options_resources]

Scheduler resource options.

  • tot_num_mpiprocs:

    • Description: Total number of MPI processes.

    • Type: (int)

    • Default: 24.

  • parallel_env:

    • Description: Parallel environment.

    • Type: (str)

    • Default: ' '.

Incar - [incar]

Base INCAR settings (only bulk needed for benchmarks).

  • bulk:

    • Description: Base INCAR settings for bulk structures.

    • Type: (optional, dict)

Benchmark sweep configuration. Each sub-key defines a parameter to test. - [benchmark]

Benchmark sweep configuration. Each sub-key defines a parameter to test.

Benchmark sweep configuration. Each sub-key defines a parameter to test. - [benchmark.XXXXX]

This key describes settings for dynamic entries. Several entries can be added by using different key names.

The key name (XXXXX) is used as the reference name. Replace XXXXX with a name of your choice.

Accepted parameters for each entry:

  • values:

    • Description: List of parameter values to test.

    • Type: (list)

  • reference_value:

    • Description: Explicit reference value (overrides auto-detection).

    • Type: (optional, float)

  • direction:

    • Description: Which end is tightest: ‘min’ (smallest) or ‘max’ (largest).

    • Type: (optional, str)

    • Possible values are: min, max.