# koraygokceler/rf_cavity_neural_operator architecture

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

- Interactive diagram: https://gitdiagram.com/koraygokceler/rf_cavity_neural_operator
- Repository: https://github.com/koraygokceler/rf_cavity_neural_operator

## Overview

RF Cavity Neural Operator generates FEM-labelled cavity data, trains a field-prediction model, and serves predictions and visualization through a web interface. The graph preserves the documented data-to-training workflow and the main service, QoI, and display layers. Edges are limited to README statements and sampled source references; several implementation details, including frontend requests and job orchestration, were not fully sampled.

Main entry points: [`src/service/model.py`](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/model.py) (Model service), [`src/service/api.py`](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/api.py) (Web API), [`src/data/field_dataset.py`](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data/field_dataset.py) (Field dataset), [`src/data_gen/dataset_generator_3d.py`](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/dataset_generator_3d.py) (Dataset generator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data generation"]
  node_shapes["Cavity shapes<br/>[cavity_shapes.py]"]
  node_generator["Dataset generator"]
  node_labels["Field labels<br/>[field_labels.py]"]
  node_highorder["High-order FEM<br/>[highorder.py]"]
  node_dataset["Field dataset<br/>[field_dataset.py]"]
  node_features["Mesh features<br/>[mesh_features.py]"]
end

subgraph group_learning["Model and training"]
  node_train_entry["Training entry<br/>[train.py]"]
  node_trainer["Training module"]
  node_operator["Field operator"]
  node_hcurl["H&#40;curl&#41; algebra<br/>[hcurl.py]"]
  node_layers["Model layers<br/>[layers.py]"]
end

subgraph group_service["Prediction service"]
  node_api["Web API<br/>[api.py]"]
  node_geometry["Geometry service<br/>[geometry.py]"]
  node_prediction["Model service<br/>[model.py]"]
  node_jobs["Background jobs<br/>[jobs.py]"]
end

subgraph group_web["Web interface"]
  node_frontend["Web application<br/>[App.tsx]"]
  node_workspace["Workspace<br/>[Workspace.tsx]"]
  node_webapi["API client<br/>[api.ts]"]
  node_fieldview["Field view<br/>[useFieldView.ts]"]
  node_viewer["3D viewer<br/>[Viewer3D.tsx]"]
end

subgraph group_results["QoI and visualization"]
  node_qoi["Cavity figures<br/>[figures.py]"]
  node_display["Field display<br/>[hcurl_display.py]"]
end

node_engineer(("Engineer"))

node_engineer -->|"generates data"| node_generator
node_generator -->|"draws geometry"| node_shapes
node_generator -->|"creates labels"| node_labels
node_labels -->|"solves modes"| node_highorder
node_labels -->|"computes QoI"| node_qoi
node_dataset -->|"builds operators"| node_highorder
node_dataset -->|"builds features"| node_features
node_train_entry -->|"loads samples"| node_dataset
node_train_entry -->|"starts training"| node_trainer
node_trainer -->|"trains model"| node_operator
node_operator -->|"uses algebra"| node_hcurl
node_operator -->|"uses layers"| node_layers
node_engineer -->|"requests prediction"| node_api
node_api -->|"checks geometry"| node_geometry
node_api -->|"requests prediction"| node_prediction
node_prediction -->|"loads mesh"| node_geometry
node_prediction -->|"builds model item"| node_dataset
node_prediction -->|"builds operators"| node_highorder
node_prediction -->|"computes figures"| node_qoi
node_prediction -->|"prepares fields"| node_display
node_api -->|"dispatches jobs"| node_jobs
node_frontend -->|"shows workspace"| node_workspace
node_workspace -->|"uses client"| node_webapi
node_workspace -->|"renders field view"| node_fieldview
node_fieldview -->|"uses viewer helpers"| node_viewer
node_webapi -.->|"calls endpoints"| node_api
node_viewer -.->|"renders fields"| node_display

click node_shapes "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/cavity_shapes.py"
click node_generator "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/dataset_generator_3d.py"
click node_labels "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/field_labels.py"
click node_highorder "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/highorder.py"
click node_dataset "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data/field_dataset.py"
click node_features "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data/mesh_features.py"
click node_train_entry "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/train.py"
click node_trainer "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/training/lightning_module.py"
click node_operator "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/models/eigenspace_operator_field.py"
click node_hcurl "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/models/hcurl.py"
click node_layers "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/models/layers.py"
click node_api "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/api.py"
click node_geometry "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/geometry.py"
click node_prediction "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/model.py"
click node_jobs "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/jobs.py"
click node_frontend "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/App.tsx"
click node_workspace "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/components/Workspace.tsx"
click node_webapi "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/api.ts"
click node_fieldview "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/components/useFieldView.ts"
click node_viewer "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/components/Viewer3D.tsx"
click node_qoi "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/qoi/figures.py"
click node_display "https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/viz/hcurl_display.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_shapes,node_generator,node_labels,node_highorder,node_dataset,node_features toneBlue
class node_train_entry,node_trainer,node_operator,node_hcurl,node_layers toneAmber
class node_api,node_geometry,node_prediction,node_jobs toneMint
class node_frontend,node_workspace,node_webapi,node_fieldview,node_viewer toneRose
class node_qoi,node_display,node_engineer toneIndigo
```

## Components

### Data generation

- [Cavity shapes](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/cavity_shapes.py): `src/data_gen/cavity_shapes.py`
- [Dataset generator](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/dataset_generator_3d.py): `src/data_gen/dataset_generator_3d.py`
- [Field labels](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/field_labels.py): `src/data_gen/field_labels.py`
- [High-order FEM](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data_gen/highorder.py): `src/data_gen/highorder.py`
- [Field dataset](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data/field_dataset.py): `src/data/field_dataset.py`
- [Mesh features](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/data/mesh_features.py): `src/data/mesh_features.py`

### Model and training

- [Training entry](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/train.py): `train.py`
- [Training module](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/training/lightning_module.py): `src/training/lightning_module.py`
- [Field operator](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/models/eigenspace_operator_field.py): `src/models/eigenspace_operator_field.py`
- [H(curl) algebra](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/models/hcurl.py): `src/models/hcurl.py`
- [Model layers](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/models/layers.py): `src/models/layers.py`

### Prediction service

- [Web API](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/api.py): `src/service/api.py`
- [Geometry service](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/geometry.py): `src/service/geometry.py`
- [Model service](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/model.py): `src/service/model.py`
- [Background jobs](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/service/jobs.py): `src/service/jobs.py`

### Web interface

- [Web application](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/App.tsx): `web/src/App.tsx`
- [Workspace](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/components/Workspace.tsx): `web/src/components/Workspace.tsx`
- [API client](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/api.ts): `web/src/api.ts`
- [Field view](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/components/useFieldView.ts): `web/src/components/useFieldView.ts`
- [3D viewer](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/web/src/components/Viewer3D.tsx): `web/src/components/Viewer3D.tsx`

### QoI and visualization

- [Cavity figures](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/qoi/figures.py): `src/qoi/figures.py`
- [Field display](https://github.com/koraygokceler/rf_cavity_neural_operator/blob/main/src/viz/hcurl_display.py): `src/viz/hcurl_display.py`

### Other components

- **Engineer**

## Connections

- Engineer → Dataset generator: generates data (evidence: `README.md`)
- Dataset generator → Cavity shapes: draws geometry (evidence: `src/data_gen/dataset_generator_3d.py`)
- Dataset generator → Field labels: creates labels (evidence: `src/data_gen/dataset_generator_3d.py`)
- Field labels → High-order FEM: solves modes (evidence: `src/data_gen/field_labels.py`)
- Field labels → Cavity figures: computes QoI (evidence: `src/data_gen/field_labels.py`)
- Field dataset → High-order FEM: builds operators (evidence: `src/data/field_dataset.py`)
- Field dataset → Mesh features: builds features (evidence: `src/data/field_dataset.py`)
- Training entry → Field dataset: loads samples (evidence: `train.py`)
- Training entry → Training module: starts training (evidence: `train.py`)
- Training module → Field operator: trains model (evidence: `src/training/lightning_module.py`)
- Field operator → H(curl) algebra: uses algebra (evidence: `src/models/eigenspace_operator_field.py`)
- Field operator → Model layers: uses layers (evidence: `src/models/eigenspace_operator_field.py`)
- Engineer → Web API: requests prediction (evidence: `src/service/api.py`)
- Web API → Geometry service: checks geometry (evidence: `src/service/api.py`)
- Web API → Model service: requests prediction (evidence: `src/service/api.py`)
- Model service → Geometry service: loads mesh (evidence: `src/service/model.py`)
- Model service → Field dataset: builds model item (evidence: `src/service/model.py`)
- Model service → High-order FEM: builds operators (evidence: `src/service/model.py`)
- Model service → Cavity figures: computes figures (evidence: `src/service/model.py`)
- Model service → Field display: prepares fields (evidence: `src/service/model.py`)
- Web API → Background jobs: dispatches jobs (evidence: `src/service/api.py`)
- Web application → Workspace: shows workspace (evidence: `web/src/App.tsx`)
- Workspace → API client: uses client (evidence: `web/src/components/Workspace.tsx`)
- Workspace → Field view: renders field view (evidence: `web/src/components/Workspace.tsx`)
- Field view → 3D viewer: uses viewer helpers (evidence: `web/src/components/useFieldView.ts`)
- API client → Web API: calls endpoints
- 3D viewer → Field display: renders fields
