# isif-3/frenkel-ladd-method architecture

> Architecture diagram of the GitHub repository isif-3/frenkel-ladd-method, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/isif-3/frenkel-ladd-method
- Repository: https://github.com/isif-3/frenkel-ladd-method

## Overview

This repository packages a documented Frenkel–Ladd workflow for LAMMPS ACE free-energy calculations: prepare and equilibrate each phase, define Einstein reference positions, run forward/backward switching, integrate the switching work and add reference corrections, then compare phase free energies. The README supports the calculation sequence and the sampled scripts support switching analysis, run inspection, and phase-difference summaries. The input template, skill, and example directories document or demonstrate usage; unsampled internals are represented only where the README establishes their role.

Main entry points: [`scripts/analyze_fl_switching.py`](https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/analyze_fl_switching.py) (Switching integration), [`docs/04_workflow.md`](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md) (Workflow guidance), [`templates/in.lammps`](https://github.com/isif-3/frenkel-ladd-method/blob/main/templates/in.lammps) (LAMMPS input template), [`docs/03_lammps_fix_ti_spring.md`](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/03_lammps_fix_ti_spring.md) (TI spring switching)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Calculation workflow"]
  node_workflow_guide["Workflow guidance<br/>[04_workflow.md]"]
  node_input_template["LAMMPS input template<br/>[in.lammps]"]
  node_relax_equilibrate["Relax and equilibrate<br/>[04_workflow.md]"]
  node_einstein_reference["Einstein reference positions<br/>[04_workflow.md]"]
  node_switching["TI spring switching"]
end

subgraph group_analysis["Analysis tools"]
  node_run_check["Run inspection<br/>[check_fl_run.py]"]
  node_switching_analysis["Switching integration"]
  node_phase_compare["Phase comparison"]
end

subgraph group_guidance["Guidance and examples"]
  node_theory["Theory and formulas<br/>[02_formulas.md]"]
  node_validation["Validation guidance"]
  node_amorphous["Amorphous cautions"]
  node_skill["Codex workflow skill<br/>[SKILL.md]"]
  node_examples["Workflow examples"]
end

node_user(("Researcher"))
node_structure["Structure and ACE inputs"]
node_lammps["LAMMPS"]
node_switching_output["Switching data"]
node_free_energy["Phase free energies"]
node_phase_differences["Signed differences"]

node_user -->|"provides"| node_structure
node_user -->|"follows"| node_workflow_guide
node_workflow_guide -->|"uses"| node_input_template
node_structure -->|"supplies inputs"| node_relax_equilibrate
node_input_template -->|"configures"| node_lammps
node_relax_equilibrate -->|"runs in"| node_lammps
node_lammps -->|"minimizes"| node_einstein_reference
node_einstein_reference -->|"defines reference"| node_switching
node_switching -->|"runs in"| node_lammps
node_lammps -->|"writes"| node_switching_output
node_switching_output -->|"inspected by"| node_run_check
node_switching_output -->|"read by"| node_switching_analysis
node_switching_analysis -->|"calculates"| node_free_energy
node_theory -->|"describes formulas"| node_switching_analysis
node_free_energy -->|"read from CSV"| node_phase_compare
node_phase_compare -->|"reports"| node_phase_differences
node_validation -->|"guides checks"| node_user
node_amorphous -->|"warns about"| node_user
node_skill -->|"guides use"| node_user
node_examples -->|"demonstrates"| node_user

click node_workflow_guide "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md"
click node_input_template "https://github.com/isif-3/frenkel-ladd-method/blob/main/templates/in.lammps"
click node_relax_equilibrate "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md"
click node_einstein_reference "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md"
click node_switching "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/03_lammps_fix_ti_spring.md"
click node_run_check "https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/check_fl_run.py"
click node_switching_analysis "https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/analyze_fl_switching.py"
click node_phase_compare "https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/summarize_phase_differences.py"
click node_theory "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/02_formulas.md"
click node_validation "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/05_validation_checklist.md"
click node_amorphous "https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/06_amorphous_caveats.md"
click node_skill "https://github.com/isif-3/frenkel-ladd-method/blob/main/skills/frenkel-ladd-lammps/SKILL.md"
click node_examples "https://github.com/isif-3/frenkel-ladd-method/tree/main/examples"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workflow_guide,node_input_template,node_relax_equilibrate,node_einstein_reference,node_switching toneBlue
class node_run_check,node_switching_analysis,node_phase_compare toneAmber
class node_theory,node_validation,node_amorphous,node_skill,node_examples toneMint
class node_user,node_structure,node_lammps,node_switching_output,node_free_energy,node_phase_differences toneIndigo
```

## Components

### Calculation workflow

- [Workflow guidance](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md): `docs/04_workflow.md`
- [LAMMPS input template](https://github.com/isif-3/frenkel-ladd-method/blob/main/templates/in.lammps): `templates/in.lammps`
- [Relax and equilibrate](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md): `docs/04_workflow.md`
- [Einstein reference positions](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/04_workflow.md): `docs/04_workflow.md`
- [TI spring switching](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/03_lammps_fix_ti_spring.md): `docs/03_lammps_fix_ti_spring.md`

### Analysis tools

- [Run inspection](https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/check_fl_run.py): `scripts/check_fl_run.py`
- [Switching integration](https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/analyze_fl_switching.py): `scripts/analyze_fl_switching.py`
- [Phase comparison](https://github.com/isif-3/frenkel-ladd-method/blob/main/scripts/summarize_phase_differences.py): `scripts/summarize_phase_differences.py`

### Guidance and examples

- [Theory and formulas](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/02_formulas.md): `docs/02_formulas.md`
- [Validation guidance](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/05_validation_checklist.md): `docs/05_validation_checklist.md`
- [Amorphous cautions](https://github.com/isif-3/frenkel-ladd-method/blob/main/docs/06_amorphous_caveats.md): `docs/06_amorphous_caveats.md`
- [Codex workflow skill](https://github.com/isif-3/frenkel-ladd-method/blob/main/skills/frenkel-ladd-lammps/SKILL.md): `skills/frenkel-ladd-lammps/SKILL.md`
- [Workflow examples](https://github.com/isif-3/frenkel-ladd-method/tree/main/examples): `examples`

### Other components

- **Researcher**
- **Structure and ACE inputs**
- **LAMMPS**
- **Switching data**
- **Phase free energies**
- **Signed differences**

## Connections

- Researcher → Structure and ACE inputs: provides
- Researcher → Workflow guidance: follows
- Workflow guidance → LAMMPS input template: uses
- Structure and ACE inputs → Relax and equilibrate: supplies inputs
- LAMMPS input template → LAMMPS: configures
- Relax and equilibrate → LAMMPS: runs in
- LAMMPS → Einstein reference positions: minimizes
- Einstein reference positions → TI spring switching: defines reference
- TI spring switching → LAMMPS: runs in
- LAMMPS → Switching data: writes
- Switching data → Run inspection: inspected by
- Switching data → Switching integration: read by
- Switching integration → Phase free energies: calculates
- Theory and formulas → Switching integration: describes formulas
- Phase free energies → Phase comparison: read from CSV
- Phase comparison → Signed differences: reports
- Validation guidance → Researcher: guides checks
- Amorphous cautions → Researcher: warns about
- Codex workflow skill → Researcher: guides use
- Workflow examples → Researcher: demonstrates
