# gabriel-amici/morsecoulomb architecture

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

- Interactive diagram: https://gitdiagram.com/gabriel-amici/morsecoulomb
- Repository: https://github.com/gabriel-amici/morsecoulomb

## Overview

MorseCoulomb is a research toolkit for numerical studies of dynamics in one-dimensional Coulomb, soft-Coulomb, Morse-soft-Coulomb, and normalized Morse-soft-Coulomb potentials. Its principal workflow is to run analysis scripts that use the `emerald` library to model classical or quantum dynamics and produce quantities such as ionization probabilities, spectra, and population transitions. The tree documents classical phase-space and ionization studies, plus quantum Hamiltonian and time-evolution work. Call edges are limited where sampled source confirms them; several script and quantum connections are inferred only at the documented subsystem level.

Main entry points: [`src/emerald/classical/msc_ionization.py`](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_ionization.py) (MsC ionization), [`scripts/ionization`](https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/ionization) (Ionization studies), [`src/emerald/classical/normalized_msc_ionization.py`](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/normalized_msc_ionization.py) (Normalized ionization), [`scripts/poincare`](https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/poincare) (Poincaré studies)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflows["Research workflows"]
  node_ionization_scripts["Ionization studies"]
  node_poincare_scripts["Poincaré studies"]
  node_hamiltonian_scripts["Hamiltonian studies"]
  node_evolution_scripts["Evolution studies"]
end

subgraph group_classical["Classical dynamics"]
  node_classical_core["Classical dynamics"]
  node_msc_ionization["MsC ionization<br/>[msc_ionization.py]"]
  node_normalized_ionization["Normalized ionization"]
  node_classical_driven["Driven dynamics<br/>[msc_driven.py]"]
  node_classical_unperturbed["Bound motion<br/>[msc_unperturbed.py]"]
  node_poincare["Poincaré maps<br/>[msc_poincare.py]"]
end

subgraph group_potentials["Potential models"]
  node_potential_family["Potential models"]
  node_msc_potential["Morse-soft-Coulomb<br/>[msc_potential.py]"]
  node_normalized_potential["Normalized Morse-soft-Coulomb"]
end

subgraph group_quantum["Quantum dynamics"]
  node_quantum_core["Quantum models"]
  node_sc_hamiltonian["sC Hamiltonian<br/>[sc_unperturbed.py]"]
  node_msc_hamiltonian["MsC Hamiltonian<br/>[msc_unperturbed.py]"]
  node_quantum_coupling["Coupled states<br/>[msc_coupled.py]"]
  node_coupling_utils["Coupling utilities<br/>[coupling_utils.py]"]
  node_time_evolution["Quantum evolution<br/>[msc_coupled.py]"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs analyses"| node_ionization_scripts
node_researcher -->|"runs analyses"| node_poincare_scripts
node_researcher -->|"runs analyses"| node_hamiltonian_scripts
node_researcher -->|"runs analyses"| node_evolution_scripts
node_ionization_scripts -->|"uses MsC analysis"| node_msc_ionization
node_ionization_scripts -->|"uses normalized analysis"| node_normalized_ionization
node_poincare_scripts -->|"uses maps"| node_poincare
node_hamiltonian_scripts -->|"uses spectra model"| node_msc_hamiltonian
node_evolution_scripts -->|"uses evolution model"| node_time_evolution
node_msc_ionization -->|"calls integrator"| node_classical_driven
node_msc_ionization -->|"gets orbit data"| node_classical_unperturbed
node_msc_ionization -->|"reads energy and turning points"| node_msc_potential
node_normalized_ionization -->|"reads energy and turning points"| node_normalized_potential
node_normalized_ionization -->|"gets orbit data"| node_classical_unperturbed
node_sc_hamiltonian -->|"uses sC model"| node_potential_family
node_quantum_coupling -->|"uses utilities"| node_coupling_utils

click node_ionization_scripts "https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/ionization"
click node_poincare_scripts "https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/poincare"
click node_hamiltonian_scripts "https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/msc_hamiltonian"
click node_evolution_scripts "https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/quantum_time_evolution"
click node_classical_core "https://github.com/gabriel-amici/morsecoulomb/tree/main/src/emerald/classical"
click node_msc_ionization "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_ionization.py"
click node_normalized_ionization "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/normalized_msc_ionization.py"
click node_classical_driven "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_driven.py"
click node_classical_unperturbed "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_unperturbed.py"
click node_poincare "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_poincare.py"
click node_potential_family "https://github.com/gabriel-amici/morsecoulomb/tree/main/src/emerald/potentials"
click node_msc_potential "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/potentials/msc_potential.py"
click node_normalized_potential "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/potentials/normalized_msc_potential.py"
click node_quantum_core "https://github.com/gabriel-amici/morsecoulomb/tree/main/src/emerald/quantum"
click node_sc_hamiltonian "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/sc_unperturbed.py"
click node_msc_hamiltonian "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/msc_unperturbed.py"
click node_quantum_coupling "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/msc_coupled.py"
click node_coupling_utils "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/coupling_utils.py"
click node_time_evolution "https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/msc_coupled.py"

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_ionization_scripts,node_poincare_scripts,node_hamiltonian_scripts,node_evolution_scripts toneBlue
class node_classical_core,node_msc_ionization,node_normalized_ionization,node_classical_driven,node_classical_unperturbed,node_poincare toneAmber
class node_potential_family,node_msc_potential,node_normalized_potential toneMint
class node_quantum_core,node_sc_hamiltonian,node_msc_hamiltonian,node_quantum_coupling,node_coupling_utils,node_time_evolution toneRose
class node_researcher toneIndigo
```

## Components

### Research workflows

- [Ionization studies](https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/ionization): `scripts/ionization`
- [Poincaré studies](https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/poincare): `scripts/poincare`
- [Hamiltonian studies](https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/msc_hamiltonian): `scripts/msc_hamiltonian`
- [Evolution studies](https://github.com/gabriel-amici/morsecoulomb/tree/main/scripts/quantum_time_evolution): `scripts/quantum_time_evolution`

### Classical dynamics

- [Classical dynamics](https://github.com/gabriel-amici/morsecoulomb/tree/main/src/emerald/classical): `src/emerald/classical`
- [MsC ionization](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_ionization.py): `src/emerald/classical/msc_ionization.py`
- [Normalized ionization](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/normalized_msc_ionization.py): `src/emerald/classical/normalized_msc_ionization.py`
- [Driven dynamics](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_driven.py): `src/emerald/classical/msc_driven.py`
- [Bound motion](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_unperturbed.py): `src/emerald/classical/msc_unperturbed.py`
- [Poincaré maps](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/classical/msc_poincare.py): `src/emerald/classical/msc_poincare.py`

### Potential models

- [Potential models](https://github.com/gabriel-amici/morsecoulomb/tree/main/src/emerald/potentials): `src/emerald/potentials`
- [Morse-soft-Coulomb](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/potentials/msc_potential.py): `src/emerald/potentials/msc_potential.py`
- [Normalized Morse-soft-Coulomb](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/potentials/normalized_msc_potential.py): `src/emerald/potentials/normalized_msc_potential.py`

### Quantum dynamics

- [Quantum models](https://github.com/gabriel-amici/morsecoulomb/tree/main/src/emerald/quantum): `src/emerald/quantum`
- [sC Hamiltonian](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/sc_unperturbed.py): `src/emerald/quantum/sc_unperturbed.py`
- [MsC Hamiltonian](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/msc_unperturbed.py): `src/emerald/quantum/msc_unperturbed.py`
- [Coupled states](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/msc_coupled.py): `src/emerald/quantum/msc_coupled.py`
- [Coupling utilities](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/coupling_utils.py): `src/emerald/quantum/coupling_utils.py`
- [Quantum evolution](https://github.com/gabriel-amici/morsecoulomb/blob/main/src/emerald/quantum/msc_coupled.py): `src/emerald/quantum/msc_coupled.py`

### Other components

- **Researcher**

## Connections

- Researcher → Ionization studies: runs analyses
- Researcher → Poincaré studies: runs analyses
- Researcher → Hamiltonian studies: runs analyses
- Researcher → Evolution studies: runs analyses
- Ionization studies → MsC ionization: uses MsC analysis
- Ionization studies → Normalized ionization: uses normalized analysis
- Poincaré studies → Poincaré maps: uses maps
- Hamiltonian studies → MsC Hamiltonian: uses spectra model
- Evolution studies → Quantum evolution: uses evolution model
- MsC ionization → Driven dynamics: calls integrator
- MsC ionization → Bound motion: gets orbit data
- MsC ionization → Morse-soft-Coulomb: reads energy and turning points
- Normalized ionization → Normalized Morse-soft-Coulomb: reads energy and turning points
- Normalized ionization → Bound motion: gets orbit data
- sC Hamiltonian → Potential models: uses sC model
- Coupled states → Coupling utilities: uses utilities
