SQS
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
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
| Parameter | Type | Default | Description |
|---|---|---|---|
project_id | str | Required | The project ID where the exploration will be created |
name | str | Required | Name of the SQS exploration |
target_concentrations | list | Required | List of {"element": str, "weight": float} dicts that must sum to 1.0 |
structure_id | str | Required | ID of the structure to use as starting point |
structure_type | str | "userupload" | Structure type: "fhiaims", "mlrelax", or "userupload" |
action | str | "DRAFT" | Action to take: "DRAFT" or "LAUNCH" |
description | str | None | Optional description of the exploration |
max_size | int | 8 | Maximum supercell size for SQS generation |
cluster_cutoffs | list | None | Cluster cutoff distances (default: [4.0, 4.0]) |
extra_exploration_kwargs | dict | None | Additional 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.