ML Relax
Perform structural relaxation and single-point energy calculations using state-of-the-art machine learning force fields trained on large datasets to predict atomic forces and optimize crystal structures. ML Relax provides fast, accurate structural optimization without the computational cost of ab initio/DFT methods.
Atomic Tessellator offers the following models:
| Model | Status | Developer |
|---|---|---|
| ORB v3 Conservative | Active | Orbital Materials |
| eSEN 30M OAM | Active | Meta FAIR |
1. Computation Types
- Relaxation - Optimize atomic positions and lattice parameters (default)
- Single-Point - Calculate energy and forces without optimization
Use relaxation when you need to find the equilibrium structure of your material, and single-point calculations when you already have an optimized structure and only need energy or force information. Single-point calculations are faster since they skip the iterative optimization process.
2. ML Relax Configuration
from atomict.simulation.mlrelax import (
create_mlrelaxation,
COMPUTATION_TYPE_RELAXATION,
COMPUTATION_TYPE_SINGLE_POINT
)
from atomict.simulation.models import MODEL_ORB_V3_CONSERVATIVE
result = create_mlrelaxation(
project_id="your-project-id",
source_geometry_id="your-structure-id",
action="DRAFT",
name="ML Relaxation Example",
description="description",
# configure to be relaxation or single-point
computation_type=COMPUTATION_TYPE_RELAXATION,
f_max=0.05,
model=MODEL_ORB_V3_CONSERVATIVE,
extra_simulation_kwargs={
"selected_cluster": cluster_id
}
)
2.1 Parameter Details
Force Convergence (f_max)
Controls the force convergence threshold for structural relaxation. The optimization continues until all atomic forces are below this threshold. Here's a simple guide you can use:
f_max=0.01- Tight convergence for high-accuracy calculations (slower)f_max=0.05- Standard convergence for balanced speed and accuracy (default)f_max=0.1- Loose convergence for fast screening calculations
3. Retrieve ML Relax Details
Get comprehensive information about an ML relaxation:
from atomict.simulation.mlrelax import get_mlrelax
response = get_mlrelax("your-mlrelax-id")
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "ML Relaxation Example",
"description": "Structural relaxation using ORB v3 Conservative",
"computation_type": 0,
"f_max": 0.05,
"model": 2,
"source_geometry_id": "structure-uuid",
"source_geometry": {
"id": "structure-uuid",
"filename": "crystal_structure.cif",
"file_type": "cif"
},
"project": "project-uuid",
"created_at": "2025-01-15T10:30:00Z",
"edited_at": "2025-01-15T10:35:00Z",
"task": {
"id": "task-uuid",
"status": 0,
"progress": null,
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:35:00Z",
"owner": "user-uuid",
"k8s_cluster": null,
"running_on": null
}
}
4. File Operations
Link user-uploaded files to ML relaxation simulations:
# Associate a file with the ML relaxation
association = associate_user_upload_with_mlrelaxation(
user_upload_id="your-upload-id",
mlrelax_id="your-mlrelax-id"
)
print(f"Associated file: {association}")
Retrieve all files linked to an ML relaxation:
files = get_mlrelax_files("your-mlrelax-id")
for file_assoc in files['results']:
filename = file_assoc['user_upload']['filename']
print(f" - {filename}")