Structures

SQS

Generate special quasi-random structures for alloy simulations.

1. Overview

Special Quasirandom Structures (SQS) are periodic supercells designed to mimic the statistical properties of truly random metal alloys with configurational disorder (Zunger et al. (1990)). The SQS method creates finite supercells whose correlation functions match those of an infinite random alloy as closely as possible.

The Atomic Tessellator SQS module provides:

  • SQS Exploration Creation - Generate structures with specified target concentrations
  • Structure Management - Retrieve, monitor, and delete SQS explorations
  • File Association - Link user-uploaded files to SQS simulations
  • Flexible Structure Types - Support for FHI-aims, MLRelax, and user-uploaded structures
sqs.py
from atomict.simulation.sqs import create_sqs_exploration

result = create_sqs_exploration(
    project_id="your-project-id",
    name="Al-Ni Alloy SQS",
    target_concentrations=[
        {"element": "Al", "weight": 0.75},  # 75% Aluminum
        {"element": "Ni", "weight": 0.25}   # 25% Nickel
    ],
    structure_id="your-structure-id",
    structure_type="userupload",
    action="DRAFT",
    description="description"
    max_size=12,
    cluster_cutoffs=[3.5, 4.5],
)

1.1 Function Arguments

ParameterTypeDefaultDescription
project_idstrRequiredThe project ID where the exploration will be created
namestrRequiredName of the SQS exploration
target_concentrationslistRequiredList of {"element": str, "weight": float} dicts that must sum to 1.0
structure_idstrRequiredID of the structure to use as starting point
structure_typestr"userupload"Structure type: "fhiaims", "mlrelax", or "userupload"
actionstr"DRAFT"Action to take: "DRAFT" or "LAUNCH"
descriptionstrNoneOptional description of the exploration
max_sizeint8Maximum supercell size for SQS generation
cluster_cutoffslistNoneCluster cutoff distances (default: [4.0, 4.0])
extra_exploration_kwargsdictNoneAdditional API parameters for advanced use

1.2 Parameter Details

Structure Type (structure_type)

Specifies the type of structure to use as the starting point for SQS generation. The platform supports three structure types:

  • "userupload" - Use a structure uploaded by the user through the file management system
  • "mlrelax" - Use a structure that has been optimized through the MLRelax workflow
  • "fhiaims" - Use a structure from a completed FHI-aims calculation

Different structure types provide varying levels of optimization and computational accuracy, allowing you to choose the most appropriate starting geometry based on your computational workflow and accuracy requirements.

Cluster Cutoffs (cluster_cutoffs)

Cutoff radii per order that define the cluster space. Cutoffs are specified in units of Ångstrom and refer to the longest distance between two atoms in the cluster.

The first element refers to pairs, the second to triplets, the third to quadruplets, and so on. cutoffs=[7.0, 4.5] thus implies that all pairs distanced 7 Å or less will be included, as well as all triplets among which the longest distance is no longer than 4.5 Å.

Maximum Size (max_size)

The maximum number of supercells of the primitive cell to generate to try to find a structure with the target concentrations.

Recommended small values (1-3) are usually enough, but if you're using highly symmetrical structures you might need higher values (200), since the primitive structure might be a small single number of atoms.

2. Managing SQS Explorations

2.1 Retrieve SQS Details

Get information about existing SQS explorations:

from atomict.simulation.sqs import get_simulation

# Basic retrieval
exploration = get_simulation("exploration-id")
print(f"Name: {exploration['name']}")
print(f"Status: {exploration['task']['status']}")

# Get full details
full_exploration = get_simulation("exploration-id", full=True)

2.2 Delete SQS Explorations

Remove SQS explorations when no longer needed:

from atomict.simulation.sqs import delete_sqs_exploration

# Delete exploration
result = delete_sqs_exploration("exploration-id")
print("SQS exploration deleted successfully")

2.3 File Association

Associate user-uploaded files with SQS simulations:

from atomict.simulation.sqs import associate_user_upload_with_sqs_simulation

# Link a file to SQS simulation
result = associate_user_upload_with_sqs_simulation(
    user_upload_id="file-id",
    exploration_id="exploration-id"
)

3. Compositional Tuning and Alloy Screening

For compositional tuning use cases where you want to test different alloy concentrations systematically, please see High Throughput SQS which allows you to run multiple SQS explorations with varying target concentrations in parallel.