# giapinner88/hfm_bvp_solver architecture

> Architecture diagram of the GitHub repository giapinner88/hfm_bvp_solver, 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/giapinner88/hfm_bvp_solver
- Repository: https://github.com/giapinner88/hfm_bvp_solver

## Overview

This small Python library solves a static continuum-beam boundary-value problem and returns its centerline shape. The example exercises the solver for several loads and plots the resulting shapes. The solver source is sampled; the example’s plotting flow is also sampled, while dependency internals are not.

Main entry points: [`hfm_solver.py`](https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.py) (solve_hfm), [`example.py`](https://github.com/giapinner88/hfm_bvp_solver/blob/main/example.py) (Load comparison)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_solver_core["Solver core"]
  node_solve_hfm["solve_hfm<br/>[hfm_solver.py]"]
  node_bvp_model["BVP equations<br/>[hfm_solver.py]"]
  node_shape_result["Beam shape<br/>[hfm_solver.py]"]
end

subgraph group_example["Example workflow"]
  node_example_script["Load comparison<br/>[example.py]"]
end

node_user(("User"))
node_scipy["SciPy solve_bvp"]
node_matplotlib["Matplotlib"]

node_user -->|"runs"| node_example_script
node_example_script -->|"solves loads"| node_solve_hfm
node_solve_hfm -->|"defines equations"| node_bvp_model
node_solve_hfm -->|"calls"| node_scipy
node_scipy -->|"returns solution"| node_solve_hfm
node_solve_hfm -->|"returns shape"| node_shape_result
node_solve_hfm -->|"returns results"| node_example_script
node_example_script -->|"plots shapes"| node_matplotlib

click node_example_script "https://github.com/giapinner88/hfm_bvp_solver/blob/main/example.py"
click node_solve_hfm "https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.py"
click node_bvp_model "https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.py"
click node_shape_result "https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.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_solve_hfm,node_bvp_model,node_shape_result,node_user toneBlue
class node_example_script toneAmber
class node_scipy,node_matplotlib toneIndigo
```

## Components

### Solver core

- [solve_hfm](https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.py): `hfm_solver.py`
- [BVP equations](https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.py): `hfm_solver.py`
- [Beam shape](https://github.com/giapinner88/hfm_bvp_solver/blob/main/hfm_solver.py): `hfm_solver.py`

### Example workflow

- [Load comparison](https://github.com/giapinner88/hfm_bvp_solver/blob/main/example.py): `example.py`

### Other components

- **User**
- **SciPy solve_bvp**
- **Matplotlib**

## Connections

- User → Load comparison: runs
- Load comparison → solve_hfm: solves loads
- solve_hfm → BVP equations: defines equations
- solve_hfm → SciPy solve_bvp: calls
- SciPy solve_bvp → solve_hfm: returns solution
- solve_hfm → Beam shape: returns shape
- solve_hfm → Load comparison: returns results
- Load comparison → Matplotlib: plots shapes
