# bluerrror/swrc-hcc-fitter architecture

> Architecture diagram of the GitHub repository bluerrror/swrc-hcc-fitter, 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/bluerrror/swrc-hcc-fitter
- Repository: https://github.com/bluerrror/swrc-hcc-fitter

## Overview

SWRC/HCC Fitter is a desktop and web application for fitting soil water-retention and hydraulic-conductivity curves, then comparing and reporting results. The documented workflow is: load or choose soil measurements, select models and a fit objective, run fitting with an uncertainty method, inspect diagnostics and derived quantities, and export results. The README also describes session restore and example soil databases. The repository tree contains only the README and a setup executable, with no application source; component paths and undocumented call wiring therefore cannot be verified.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User interaction"]
  node_interface["Fitter interface"]
end

subgraph group_fitting["Curve fitting"]
  node_fit["Fit workflow"]
  node_retention["Retention models"]
  node_conductivity["Conductivity models"]
  node_objectives["Fit objectives"]
  node_uncertainty["Uncertainty estimates"]
end

subgraph group_analysis["Results analysis"]
  node_comparison["Model comparison"]
  node_diagnostics["Statistical diagnostics"]
  node_derived["Water summaries"]
  node_plots["Curve plots"]
end

subgraph group_data["Data and export"]
  node_file_input["File loading"]
  node_example_data[("Example databases")]
  node_session["Session restore"]
  node_report["PDF report"]
  node_exports["CSV export"]
end

node_user(("Soil researcher"))
node_online_app["Online application"]

node_user -->|"uses"| node_interface
node_user -->|"loads measurements"| node_file_input
node_user -->|"chooses dataset"| node_example_data
node_file_input -->|"provides measurements"| node_fit
node_example_data -->|"provides measurements"| node_fit
node_user -->|"starts fit"| node_fit
node_interface -->|"configures fit"| node_fit
node_fit -->|"fits curves"| node_retention
node_fit -->|"fits curves"| node_conductivity
node_fit -->|"scores fit"| node_objectives
node_fit -->|"estimates uncertainty"| node_uncertainty
node_fit -->|"compares models"| node_comparison
node_fit -->|"calculates metrics"| node_diagnostics
node_fit -->|"calculates summaries"| node_derived
node_fit -->|"produces curves"| node_plots
node_user -->|"opens session"| node_session
node_session -->|"restores settings"| node_interface
node_user -->|"exports results"| node_exports
node_user -->|"generates report"| node_report
node_user -.->|"uses online"| node_online_app

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_interface toneBlue
class node_fit,node_retention,node_conductivity,node_objectives,node_uncertainty toneAmber
class node_comparison,node_diagnostics,node_derived,node_plots toneMint
class node_file_input,node_example_data,node_session,node_report,node_exports toneRose
class node_user,node_online_app toneIndigo
```

## Components

### User interaction

- **Fitter interface**

### Curve fitting

- **Fit workflow**
- **Retention models**
- **Conductivity models**
- **Fit objectives**
- **Uncertainty estimates**

### Results analysis

- **Model comparison**
- **Statistical diagnostics**
- **Water summaries**
- **Curve plots**

### Data and export

- **File loading**
- **Example databases**
- **Session restore**
- **PDF report**
- **CSV export**

### Other components

- **Soil researcher**
- **Online application**

## Connections

- Soil researcher → Fitter interface: uses
- Soil researcher → File loading: loads measurements
- Soil researcher → Example databases: chooses dataset
- File loading → Fit workflow: provides measurements
- Example databases → Fit workflow: provides measurements
- Soil researcher → Fit workflow: starts fit
- Fitter interface → Fit workflow: configures fit
- Fit workflow → Retention models: fits curves
- Fit workflow → Conductivity models: fits curves
- Fit workflow → Fit objectives: scores fit
- Fit workflow → Uncertainty estimates: estimates uncertainty
- Fit workflow → Model comparison: compares models
- Fit workflow → Statistical diagnostics: calculates metrics
- Fit workflow → Water summaries: calculates summaries
- Fit workflow → Curve plots: produces curves
- Soil researcher → Session restore: opens session
- Session restore → Fitter interface: restores settings
- Soil researcher → CSV export: exports results
- Soil researcher → PDF report: generates report
- Soil researcher → Online application: uses online
