"""Read two register geometries and calculate an explicitly chosen interaction."""

from __future__ import annotations

import json
from math import dist

from cascaqit import AtomRegister


def experiment() -> dict[str, object]:
    c6 = 15_625.0
    rows = []
    for spacing in (5.0, 10.0):
        register = AtomRegister.line(count=2, spacing=spacing)
        distance = dist(register.sites[0].position, register.sites[1].position)
        rows.append(
            {
                "positions_um": [site.position for site in register.sites],
                "distance_um": distance,
                "interaction_rad_per_us": c6 / distance**6,
            }
        )
    return {
        "c6_rad_um6_per_us": c6,
        "geometries": rows,
        "state_evolution_performed": False,
    }


if __name__ == "__main__":
    print(json.dumps(experiment(), sort_keys=True))
