# muttimarcello/msc_thesis_indirect_lt_trajectory_optimization architecture

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

- Interactive diagram: https://gitdiagram.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization
- Repository: https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization

## Overview

This is a thesis research codebase for indirect low-thrust SEP trajectory optimization, organized as three validation case studies: variable-parameter and constant-parameter two-body asteroid rendezvous, and constant-parameter CR3BP Earth–Moon transfer. The documented workflow is to run optimal-control case studies and use their numerical results to validate the formulation; the README also describes energy-to-fuel continuation and post-processing. No source excerpts were provided, so implementation-level calls are not verifiable; dashed, uncited edges indicate only the documented or strongly implied workflow.

Main entry points: [`src/2BP_VP/FO_2BP_SEP.m`](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/FO_2BP_SEP.m) (Asteroid rendezvous), [`src/2BP_CP/FO_2BP_SEP.m`](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/FO_2BP_SEP.m) (Asteroid rendezvous), [`src/CR3BP_CP/CR3BP_OCP.m`](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/CR3BP_CP/CR3BP_OCP.m) (Earth-Moon transfer), [`results/results.txt`](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/results/results.txt) (Numerical results)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_vp["2BP Variable SEP"]
  node_vp_case["Asteroid rendezvous<br/>[FO_2BP_SEP.m]"]
  node_vp_time["Time optimization<br/>[TO_OCP.m]"]
  node_vp_energy_fuel["Energy and fuel<br/>[FO_OCP.m]"]
  node_vp_dynamics["Homotopy dynamics"]
  node_vp_propagation["Trajectory propagation<br/>[TO_ode87.m]"]
  node_vp_analysis["Analysis tools"]
end

subgraph group_cp["2BP Constant SEP"]
  node_cp_case["Asteroid rendezvous<br/>[FO_2BP_SEP.m]"]
  node_cp_time["Time optimization<br/>[TO_OCP.m]"]
  node_cp_energy_fuel["Energy and fuel<br/>[FO_OCP.m]"]
  node_cp_dynamics["Homotopy dynamics"]
  node_cp_propagation["Trajectory propagation<br/>[TO_ode87.m]"]
  node_cp_analysis["Analysis tools"]
end

subgraph group_cr3bp["CR3BP Transfer"]
  node_cr3bp_case["Earth-Moon transfer<br/>[CR3BP_OCP.m]"]
  node_cr3bp_dynamics["CR3BP dynamics"]
  node_cr3bp_time["Time optimization<br/>[TO_CR3BP_cp.m]"]
end

subgraph group_validation["Validation"]
  node_results["Numerical results<br/>[results.txt]"]
end

node_researcher(("Mission analyst"))
node_spice[("SPICE kernels")]

node_researcher -.->|"runs case"| node_vp_case
node_researcher -.->|"runs case"| node_cp_case
node_researcher -.->|"runs case"| node_cr3bp_case
node_vp_case -.->|"optimizes time"| node_vp_time
node_vp_case -.->|"optimizes energy/fuel"| node_vp_energy_fuel
node_vp_energy_fuel -.->|"uses homotopy"| node_vp_dynamics
node_vp_case -.->|"propagates trajectory"| node_vp_propagation
node_vp_case -.->|"supports analysis"| node_vp_analysis
node_cp_case -.->|"optimizes time"| node_cp_time
node_cp_case -.->|"optimizes energy/fuel"| node_cp_energy_fuel
node_cp_energy_fuel -.->|"uses homotopy"| node_cp_dynamics
node_cp_case -.->|"propagates trajectory"| node_cp_propagation
node_cp_case -.->|"supports analysis"| node_cp_analysis
node_cr3bp_case -.->|"optimizes time"| node_cr3bp_time
node_cr3bp_case -.->|"uses dynamics"| node_cr3bp_dynamics
node_vp_case -.->|"produces evidence"| node_results
node_cp_case -.->|"produces evidence"| node_results
node_cr3bp_case -.->|"produces evidence"| node_results
node_vp_case -.->|"uses kernels"| node_spice
node_cp_case -.->|"uses kernels"| node_spice
node_cr3bp_case -.->|"uses kernels"| node_spice

click node_vp_case "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/FO_2BP_SEP.m"
click node_vp_time "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/TO_OCP.m"
click node_vp_energy_fuel "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/FO_OCP.m"
click node_vp_dynamics "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/src/2BP_VP/FO_dyn"
click node_vp_propagation "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/TO_ode87.m"
click node_vp_analysis "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/docs/2BP_VP/post_processing"
click node_cp_case "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/FO_2BP_SEP.m"
click node_cp_time "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/TO_OCP.m"
click node_cp_energy_fuel "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/FO_OCP.m"
click node_cp_dynamics "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/src/2BP_CP/FO_dyn"
click node_cp_propagation "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/TO_ode87.m"
click node_cp_analysis "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/docs/2BP_CP/post_processing"
click node_cr3bp_case "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/CR3BP_CP/CR3BP_OCP.m"
click node_cr3bp_dynamics "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/src/CR3BP_CP/CR3BP_dyn"
click node_cr3bp_time "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/CR3BP_CP/TO_CR3BP_cp.m"
click node_results "https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/results/results.txt"

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_vp_case,node_vp_time,node_vp_energy_fuel,node_vp_dynamics,node_vp_propagation,node_vp_analysis toneBlue
class node_cp_case,node_cp_time,node_cp_energy_fuel,node_cp_dynamics,node_cp_propagation,node_cp_analysis,node_spice toneAmber
class node_cr3bp_case,node_cr3bp_dynamics,node_cr3bp_time toneMint
class node_results toneRose
class node_researcher toneIndigo
```

## Components

### 2BP Variable SEP

- [Asteroid rendezvous](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/FO_2BP_SEP.m): `src/2BP_VP/FO_2BP_SEP.m`
- [Time optimization](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/TO_OCP.m): `src/2BP_VP/TO_OCP.m`
- [Energy and fuel](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/FO_OCP.m): `src/2BP_VP/FO_OCP.m`
- [Homotopy dynamics](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/src/2BP_VP/FO_dyn): `src/2BP_VP/FO_dyn`
- [Trajectory propagation](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_VP/TO_ode87.m): `src/2BP_VP/TO_ode87.m`
- [Analysis tools](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/docs/2BP_VP/post_processing): `docs/2BP_VP/post_processing`

### 2BP Constant SEP

- [Asteroid rendezvous](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/FO_2BP_SEP.m): `src/2BP_CP/FO_2BP_SEP.m`
- [Time optimization](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/TO_OCP.m): `src/2BP_CP/TO_OCP.m`
- [Energy and fuel](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/FO_OCP.m): `src/2BP_CP/FO_OCP.m`
- [Homotopy dynamics](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/src/2BP_CP/FO_dyn): `src/2BP_CP/FO_dyn`
- [Trajectory propagation](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/2BP_CP/TO_ode87.m): `src/2BP_CP/TO_ode87.m`
- [Analysis tools](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/docs/2BP_CP/post_processing): `docs/2BP_CP/post_processing`

### CR3BP Transfer

- [Earth-Moon transfer](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/CR3BP_CP/CR3BP_OCP.m): `src/CR3BP_CP/CR3BP_OCP.m`
- [CR3BP dynamics](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/tree/main/src/CR3BP_CP/CR3BP_dyn): `src/CR3BP_CP/CR3BP_dyn`
- [Time optimization](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/src/CR3BP_CP/TO_CR3BP_cp.m): `src/CR3BP_CP/TO_CR3BP_cp.m`

### Validation

- [Numerical results](https://github.com/muttimarcello/msc_thesis_indirect_lt_trajectory_optimization/blob/main/results/results.txt): `results/results.txt`

### Other components

- **Mission analyst**
- **SPICE kernels**

## Connections

- Mission analyst → Asteroid rendezvous: runs case
- Mission analyst → Asteroid rendezvous: runs case
- Mission analyst → Earth-Moon transfer: runs case
- Asteroid rendezvous → Time optimization: optimizes time
- Asteroid rendezvous → Energy and fuel: optimizes energy/fuel
- Energy and fuel → Homotopy dynamics: uses homotopy
- Asteroid rendezvous → Trajectory propagation: propagates trajectory
- Asteroid rendezvous → Analysis tools: supports analysis
- Asteroid rendezvous → Time optimization: optimizes time
- Asteroid rendezvous → Energy and fuel: optimizes energy/fuel
- Energy and fuel → Homotopy dynamics: uses homotopy
- Asteroid rendezvous → Trajectory propagation: propagates trajectory
- Asteroid rendezvous → Analysis tools: supports analysis
- Earth-Moon transfer → Time optimization: optimizes time
- Earth-Moon transfer → CR3BP dynamics: uses dynamics
- Asteroid rendezvous → Numerical results: produces evidence
- Asteroid rendezvous → Numerical results: produces evidence
- Earth-Moon transfer → Numerical results: produces evidence
- Asteroid rendezvous → SPICE kernels: uses kernels
- Asteroid rendezvous → SPICE kernels: uses kernels
- Earth-Moon transfer → SPICE kernels: uses kernels
