Input File Format

This section describes the required format of the input.txt file used by superhex. The file is written in JSON format and includes various parameters that control how the program operates. Below is an example of the input file:

{
    "structure_file": "MnTe.vasp",
    "LatDim": 3,
    "range_volume": true,
    "volumes": [1, 12],
    "magnetic_atoms": ["Mn"],
    "cutoff_radius": 25,
    "n_configs": 100,
    "all_configs": false,
    "verbosity": "high",
    "seed": 42,
    "num_processes": 4
}

Parameter Descriptions

  • structure_file: The path to the structure file, which can be in VASP, CIF, or other supported formats. In this case, it is MnTe.vasp.

  • LatDim: The lattice dimensionality, specifying the number of dimensions in the structure. For a 3D structure, set LatDim: 3.

  • range_volume: A boolean (true or false) that specifies whether to search over a range of supercell volumes. If true, the program will consider volumes within the range defined by the volumes parameter.

  • volumes: An array specifying the range of supercell volumes to evaluate. In this example, the program will consider volumes from 1 to 12.

  • magnetic_atoms: A list of atoms in the structure that have magnetic moments. Here, Mn is the only magnetic atom considered.

  • cutoff_radius: The maximum distance (in angstroms) for considering exchange interactions. In this example, the cutoff is set to 25 angstroms.

  • n_configs: The number of random magnetic configurations to generate. In this case, the program will generate 100 configurations.

  • all_configs: A boolean value that determines whether to generate all possible configurations (true) or limit them to n_configs (false). For large systems, setting this to false is recommended.

  • verbosity: Specifies the level of detail in the output. The options are “low”, “medium”, and “high”. In this example, “high” will provide the most detailed output.

  • seed: The seed for random number generation, ensuring reproducibility. Here, the seed is set to 42.

  • num_processes: The number of CPU processes to use for parallel computation. In this example, 4 processes will be used.