# rishab-bansal/nvidia_physicsnemo_projects architecture

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

- Interactive diagram: https://gitdiagram.com/rishab-bansal/nvidia_physicsnemo_projects
- Repository: https://github.com/rishab-bansal/nvidia_physicsnemo_projects

## Overview

This repository contains two PhysicsNeMo examples that train physics-informed neural networks: a time-dependent 1D wave equation and a steady 2D lid-driven cavity flow. In each, a main script defines the physics and geometry, builds a network, and registers boundary and interior constraints before invoking the solver. The wave example also adds initial conditions and analytical-reference validation. Existing output trees show saved checkpoints and sampled constraint or validator data. The README is empty; relationships reflect the sampled scripts, not unsampled framework internals.

Main entry points: [`1D Wave Equation/wave_1D_main.py`](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py) (Wave training), [`Cavity Flow/cavity_main.py`](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py) (Cavity training), [`1D Wave Equation/wave_equation.py`](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_equation.py) (Wave equation), [`1D Wave Equation/config.yml`](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/config.yml) (Wave config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_wave["1D Wave"]
  node_wave_main["Wave training<br/>[wave_1D_main.py]"]
  node_wave_pde["Wave equation<br/>[wave_equation.py]"]
  node_wave_config["Wave config<br/>[config.yml]"]
  node_wave_conditions["Wave constraints<br/>[wave_1D_main.py]"]
  node_wave_validation["Analytical validation<br/>[wave_1D_main.py]"]
  node_wave_outputs[("Wave run artifacts")]
end

subgraph group_cavity["Cavity Flow"]
  node_cavity_main["Cavity training<br/>[cavity_main.py]"]
  node_cavity_physics["Flow equations<br/>[cavity_main.py]"]
  node_cavity_conditions["Cavity constraints<br/>[cavity_main.py]"]
  node_cavity_config["Cavity config<br/>[config.yml]"]
  node_cavity_outputs[("Cavity run artifacts")]
end

subgraph group_framework["PhysicsNeMo Runtime"]
  node_architecture["Network factory"]
  node_domain["Domain and geometry"]
  node_solver["Solver"]
end

node_engineer(("Engineer"))

node_engineer -->|"runs"| node_wave_main
node_engineer -->|"runs"| node_cavity_main
node_wave_main -->|"loads config"| node_wave_config
node_wave_main -->|"constructs PDE"| node_wave_pde
node_wave_main -->|"instantiates network"| node_architecture
node_wave_main -->|"builds domain"| node_domain
node_wave_main -->|"registers constraints"| node_wave_conditions
node_wave_main -->|"registers validator"| node_wave_validation
node_wave_main -->|"creates and runs"| node_solver
node_solver -->|"writes artifacts"| node_wave_outputs
node_cavity_main -->|"loads config"| node_cavity_config
node_cavity_main -->|"constructs equations"| node_cavity_physics
node_cavity_main -->|"instantiates network"| node_architecture
node_cavity_main -->|"builds domain"| node_domain
node_cavity_main -->|"registers constraints"| node_cavity_conditions
node_cavity_main -->|"creates and runs"| node_solver
node_solver -->|"writes artifacts"| node_cavity_outputs

click node_wave_main "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py"
click node_wave_pde "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_equation.py"
click node_wave_config "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/config.yml"
click node_wave_conditions "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py"
click node_wave_validation "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py"
click node_wave_outputs "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/tree/main/1D%20Wave%20Equation/outputs/wave_1D_main"
click node_cavity_main "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py"
click node_cavity_physics "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py"
click node_cavity_conditions "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py"
click node_cavity_config "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/config.yml"
click node_cavity_outputs "https://github.com/rishab-bansal/nvidia_physicsnemo_projects/tree/main/Cavity%20Flow/outputs/cavity_main"

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_wave_main,node_wave_pde,node_wave_config,node_wave_conditions,node_wave_validation,node_wave_outputs toneBlue
class node_cavity_main,node_cavity_physics,node_cavity_conditions,node_cavity_config,node_cavity_outputs toneAmber
class node_architecture,node_domain,node_solver toneMint
class node_engineer toneIndigo
```

## Components

### 1D Wave

- [Wave training](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py): `1D Wave Equation/wave_1D_main.py`
- [Wave equation](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_equation.py): `1D Wave Equation/wave_equation.py`
- [Wave config](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/config.yml): `1D Wave Equation/config.yml`
- [Wave constraints](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py): `1D Wave Equation/wave_1D_main.py`
- [Analytical validation](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/1D%20Wave%20Equation/wave_1D_main.py): `1D Wave Equation/wave_1D_main.py`
- [Wave run artifacts](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/tree/main/1D%20Wave%20Equation/outputs/wave_1D_main): `1D Wave Equation/outputs/wave_1D_main`

### Cavity Flow

- [Cavity training](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py): `Cavity Flow/cavity_main.py`
- [Flow equations](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py): `Cavity Flow/cavity_main.py`
- [Cavity constraints](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/cavity_main.py): `Cavity Flow/cavity_main.py`
- [Cavity config](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/blob/main/Cavity%20Flow/config.yml): `Cavity Flow/config.yml`
- [Cavity run artifacts](https://github.com/rishab-bansal/nvidia_physicsnemo_projects/tree/main/Cavity%20Flow/outputs/cavity_main): `Cavity Flow/outputs/cavity_main`

### PhysicsNeMo Runtime

- **Network factory**
- **Domain and geometry**
- **Solver**

### Other components

- **Engineer**

## Connections

- Engineer → Wave training: runs
- Engineer → Cavity training: runs
- Wave training → Wave config: loads config
- Wave training → Wave equation: constructs PDE
- Wave training → Network factory: instantiates network
- Wave training → Domain and geometry: builds domain
- Wave training → Wave constraints: registers constraints
- Wave training → Analytical validation: registers validator
- Wave training → Solver: creates and runs
- Solver → Wave run artifacts: writes artifacts
- Cavity training → Cavity config: loads config
- Cavity training → Flow equations: constructs equations
- Cavity training → Network factory: instantiates network
- Cavity training → Domain and geometry: builds domain
- Cavity training → Cavity constraints: registers constraints
- Cavity training → Solver: creates and runs
- Solver → Cavity run artifacts: writes artifacts
