Simulations

ML Relax

Perform structural relaxation using machine learning force fields for individual structures.

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:

ModelStatusDeveloper
ORB v3 ConservativeActiveOrbital Materials
eSEN 30M OAMActiveMeta 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

ml_relax.py
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:

ml_relax.py
from atomict.simulation.mlrelax import get_mlrelax

response = get_mlrelax("your-mlrelax-id")
response.json
{
  "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:

ml_relax.py
# 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:

ml_relax.py
files = get_mlrelax_files("your-mlrelax-id")

for file_assoc in files['results']:
    filename = file_assoc['user_upload']['filename']
    print(f"  - {filename}")