---
name: structure-builder
description: >
  Use when the user asks to load, fetch, build, modify, or transform crystal/molecular
  structures. Covers database import, supercell, defects, doping, intercalation, nanotubes,
  and atom-level editing.
---

# Structure Builder

## Loading Structures

### From Online Databases
- `catgo_fetch_crystal` — Load crystal by formula or structure_id from OPTIMADE providers
  (`mp`=Materials Project, `mc3d`, `alexandria`, `twodmatpedia`, `omdb`)
- `catgo_search_crystals` — Search and list multiple matches. Use this first when browsing,
  then `catgo_fetch_crystal` with a specific `structure_id`.
- `catgo_fetch_molecule` — Fetch molecules from PubChem by name, formula, or SMILES.

**Provider heuristics**:
- General inorganic crystals: `mp` (largest database)
- 2D materials: `twodmatpedia`
- Organic molecules: use `catgo_fetch_molecule`, not OPTIMADE

### From Current Viewer
Call `catgo_structure_info` to inspect the loaded structure. All structure-modifying tools
auto-fetch the current viewer structure — no need to pass structure dicts.

## Atom-Level Operations

| Tool | Use When |
|------|----------|
| `catgo_add_atom` / `catgo_add_atoms` | Adding atoms at Cartesian positions (Angstroms) |
| `catgo_delete_atoms` | Removing atoms by 0-based index |
| `catgo_replace_atom` | Changing element at a site |
| `catgo_move_atom` / `catgo_move_atoms` | Repositioning atoms |

## Lattice and Cell Operations

| Tool | Use When |
|------|----------|
| `catgo_supercell` | Expanding unit cell by [na, nb, nc] or 3x3 matrix |
| `catgo_set_lattice` | Adding/changing periodic cell (wraps molecules in a box) |
| `catgo_merge` | Combining two structures at a given position |

## Defect Engineering

| Tool | Use When |
|------|----------|
| `catgo_build_defect` | Point defects: vacancy, substitution, interstitial |
| `catgo_doping` | Substitutional doping (replace host with dopant) |
| `catgo_substitution` | Combinatorial multi-site substitution |
| `catgo_intercalation` | Insert species (Li, Na) into layered structures |
| `catgo_build_strain` | Apply strain/deformation (Voigt notation or 3x3 matrix) |

## Nanostructures

| Tool | Use When |
|------|----------|
| `catgo_nanotube_build` | Carbon or BN nanotubes from chiral indices (n, m) |
| `catgo_nanotube_info` | Compute nanotube geometry before building |

## Common Recipes

### Doped supercell
1. `catgo_fetch_crystal` → 2. `catgo_supercell` → 3. `catgo_doping` → 4. `catgo_structure_info`

### Defective structure for DFT
1. Fetch bulk → 2. `catgo_supercell` (large enough to avoid defect-defect interaction) →
3. `catgo_build_defect` → 4. `catgo_structure_info`

### Intercalated battery material
1. `catgo_fetch_crystal` (e.g. MoS2) → 2. `catgo_intercalation` (species="Li") → 3. Verify
