# mrcharlezzz/ordinary-differential-ecuation-calculator architecture

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

- Interactive diagram: https://gitdiagram.com/mrcharlezzz/ordinary-differential-ecuation-calculator
- Repository: https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator

## Overview

This is a Tkinter ODE calculator and visualization tool. Users enter a differential equation, initial values, and a step size; the interface parses the ODE, computes an Euler approximation, and can show a direction field. The analysis UI also presents error and condition metrics and least-squares fits. The excerpts establish the main calculation and plotting calls, but omit parts of the interface wiring; README-described capabilities are retained where their exact callers are not visible.

Main entry points: [`App/Front.py`](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Front.py) (Calculator interface), [`main.py`](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/main.py) (Application launcher), [`App/Interpreter/Differential.py`](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Differential.py) (ODE parser), [`App/Math_Methods.py`](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Math_Methods.py) (Euler solver)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["User interface"]
  node_launcher["Application launcher<br/>[main.py]"]
  node_interface["Calculator interface<br/>[Front.py]"]
end

subgraph group_math["ODE computation"]
  node_ode_parser["ODE parser<br/>[Differential.py]"]
  node_function_parser["Function parser<br/>[Function.py]"]
  node_euler["Euler solver<br/>[Math_Methods.py]"]
end

subgraph group_analysis["Analysis and fitting"]
  node_error_metrics["Error metrics<br/>[Math_Methods.py]"]
  node_line_fit["Linear fit<br/>[Line.py]"]
  node_parabola_fit["Parabolic fit<br/>[Parabola.py]"]
end

subgraph group_viz["Visualization"]
  node_field_plot["Direction field plot<br/>[ODE_Graf.py]"]
  node_error_plots["Error and condition plots<br/>[ODE_Graf.py]"]
  node_fit_plot["Least-squares plot<br/>[ODE_Graf.py]"]
end

node_user(("User"))

node_user -->|"enters inputs"| node_interface
node_launcher -->|"starts"| node_interface
node_interface -->|"parses ODE"| node_ode_parser
node_interface -->|"requests solution"| node_euler
node_interface -->|"plots field"| node_field_plot
node_interface -.->|"shows metrics"| node_error_metrics
node_interface -.->|"plots analysis"| node_error_plots
node_interface -->|"fits line"| node_line_fit
node_interface -->|"fits parabola"| node_parabola_fit
node_interface -->|"plots fits"| node_fit_plot

click node_launcher "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/main.py"
click node_interface "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Front.py"
click node_ode_parser "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Differential.py"
click node_function_parser "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Function.py"
click node_euler "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Math_Methods.py"
click node_error_metrics "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Math_Methods.py"
click node_line_fit "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Line.py"
click node_parabola_fit "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Parabola.py"
click node_field_plot "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/ODE_Graf.py"
click node_error_plots "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/ODE_Graf.py"
click node_fit_plot "https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/ODE_Graf.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_launcher,node_interface,node_user toneBlue
class node_ode_parser,node_function_parser,node_euler toneAmber
class node_error_metrics,node_line_fit,node_parabola_fit toneMint
class node_field_plot,node_error_plots,node_fit_plot toneRose
```

## Components

### User interface

- [Application launcher](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/main.py): `main.py`
- [Calculator interface](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Front.py): `App/Front.py`

### ODE computation

- [ODE parser](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Differential.py): `App/Interpreter/Differential.py`
- [Function parser](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Function.py): `App/Interpreter/Function.py`
- [Euler solver](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Math_Methods.py): `App/Math_Methods.py`

### Analysis and fitting

- [Error metrics](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Math_Methods.py): `App/Math_Methods.py`
- [Linear fit](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Line.py): `App/Interpreter/Line.py`
- [Parabolic fit](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/Interpreter/Parabola.py): `App/Interpreter/Parabola.py`

### Visualization

- [Direction field plot](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/ODE_Graf.py): `App/ODE_Graf.py`
- [Error and condition plots](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/ODE_Graf.py): `App/ODE_Graf.py`
- [Least-squares plot](https://github.com/mrcharlezzz/ordinary-differential-ecuation-calculator/blob/main/App/ODE_Graf.py): `App/ODE_Graf.py`

### Other components

- **User**

## Connections

- User → Calculator interface: enters inputs (evidence: `ReadMe.md`)
- Application launcher → Calculator interface: starts (evidence: `main.py`)
- Calculator interface → ODE parser: parses ODE (evidence: `App/Front.py`)
- Calculator interface → Euler solver: requests solution (evidence: `App/Front.py`)
- Calculator interface → Direction field plot: plots field (evidence: `App/Front.py`)
- Calculator interface → Error metrics: shows metrics (evidence: `App/Front.py`)
- Calculator interface → Error and condition plots: plots analysis (evidence: `App/Front.py`)
- Calculator interface → Linear fit: fits line (evidence: `App/Front.py`)
- Calculator interface → Parabolic fit: fits parabola (evidence: `App/Front.py`)
- Calculator interface → Least-squares plot: plots fits (evidence: `App/Front.py`)
