# vanhoang0507/exph-methods architecture

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

- Interactive diagram: https://gitdiagram.com/vanhoang0507/exph-methods
- Repository: https://github.com/vanhoang0507/exph-methods

## Overview

ExpH is a MATLAB research implementation of explicit exponential integrators for stiff semilinear problems. The main workflow is to run a documented test problem with an ExpH method, evaluating the required phi-function actions through the adaptive Krylov routine, and inspect convergence, accuracy, or efficiency results. The repository also includes a tensor-operations package used by some experiments and a nonlocal-problem branch. Relationships follow the README; source excerpts were unavailable, so specific script-to-integrator calls are not asserted.

Main entry points: [`Example 1_HocOst/hocost_1d.m`](https://github.com/vanhoang0507/exph-methods/blob/main/Example%201_HocOst/hocost_1d.m) (1D HocOst), [`Example 4_HocOst_nonlocal/hocost_integral_1d.m`](https://github.com/vanhoang0507/exph-methods/blob/main/Example%204_HocOst_nonlocal/hocost_integral_1d.m) (Nonlocal HocOst), [`phipmsimuliom/phipm_simul_iom.m`](https://github.com/vanhoang0507/exph-methods/blob/main/phipmsimuliom/phipm_simul_iom.m) (Phi-action Krylov), [`integrators/ExpH4s3.m`](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH4s3.m) (ExpH4s3)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_problems["Test problems"]
  node_hocost["1D HocOst<br/>[hocost_1d.m]"]
  node_adr["2D ADR"]
  node_brusselator["3D Brusselator"]
  node_nonlocal["Nonlocal HocOst"]
end

subgraph group_methods["ExpH methods"]
  node_exph2["ExpH2<br/>[ExpH2.m]"]
  node_exph3["ExpH3<br/>[ExpH3.m]"]
  node_exph4s3["ExpH4s3<br/>[ExpH4s3.m]"]
  node_exph5s3["ExpH5s3<br/>[ExpH5s3.m]"]
  node_exph5s4["ExpH5s4<br/>[ExpH5s4.m]"]
  node_exph5s5["ExpH5s5<br/>[ExpH5s5.m]"]
  node_exprk45["ExpRK45<br/>[ExpRK45.m]"]
  node_exprb42["expRB42<br/>[expRB42.m]"]
  node_exprb43["expRB43<br/>[expRB43.m]"]
end

subgraph group_numerics["Numerical kernels"]
  node_phipm["Phi-action Krylov<br/>[phipm_simul_iom.m]"]
  node_expmnorm["Exponential norm<br/>[expmnorm.m]"]
end

subgraph group_tensor["Tensor operations"]
  node_kronpack["KronPACK"]
end

node_researcher(("Researcher"))

node_researcher -->|"runs experiment"| node_hocost
node_researcher -->|"runs experiment"| node_adr
node_researcher -->|"runs experiment"| node_brusselator
node_researcher -->|"runs experiment"| node_nonlocal
node_hocost -->|"tests methods"| node_exph2
node_hocost -->|"tests methods"| node_exph3
node_hocost -->|"tests methods"| node_exph4s3
node_hocost -->|"tests methods"| node_exph5s3
node_hocost -->|"tests methods"| node_exph5s4
node_hocost -->|"tests methods"| node_exph5s5
node_nonlocal -->|"tests methods"| node_exph2
node_nonlocal -->|"tests methods"| node_exph3
node_nonlocal -->|"tests methods"| node_exph4s3
node_nonlocal -->|"tests methods"| node_exph5s3
node_nonlocal -->|"tests methods"| node_exph5s4
node_nonlocal -->|"tests methods"| node_exph5s5
node_adr -->|"compares methods"| node_exph4s3
node_brusselator -->|"compares methods"| node_exph4s3
node_exph2 -->|"evaluates phi actions"| node_phipm
node_exph3 -->|"evaluates phi actions"| node_phipm
node_exph4s3 -->|"evaluates phi actions"| node_phipm
node_exph5s3 -->|"evaluates phi actions"| node_phipm
node_exph5s4 -->|"evaluates phi actions"| node_phipm
node_exph5s5 -->|"evaluates phi actions"| node_phipm
node_adr -.->|"uses tensor operations"| node_kronpack
node_brusselator -.->|"uses tensor operations"| node_kronpack

click node_hocost "https://github.com/vanhoang0507/exph-methods/blob/main/Example%201_HocOst/hocost_1d.m"
click node_adr "https://github.com/vanhoang0507/exph-methods/tree/main/Example%202_2d_ADR"
click node_brusselator "https://github.com/vanhoang0507/exph-methods/tree/main/Example%203_3d_brusselator"
click node_nonlocal "https://github.com/vanhoang0507/exph-methods/blob/main/Example%204_HocOst_nonlocal/hocost_integral_1d.m"
click node_exph2 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH2.m"
click node_exph3 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH3.m"
click node_exph4s3 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH4s3.m"
click node_exph5s3 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH5s3.m"
click node_exph5s4 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH5s4.m"
click node_exph5s5 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH5s5.m"
click node_exprk45 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpRK45.m"
click node_exprb42 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/expRB42.m"
click node_exprb43 "https://github.com/vanhoang0507/exph-methods/blob/main/integrators/expRB43.m"
click node_phipm "https://github.com/vanhoang0507/exph-methods/blob/main/phipmsimuliom/phipm_simul_iom.m"
click node_expmnorm "https://github.com/vanhoang0507/exph-methods/blob/main/phipmsimuliom/expmnorm.m"
click node_kronpack "https://github.com/vanhoang0507/exph-methods/tree/main/KronPACK/src"

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_hocost,node_adr,node_brusselator,node_nonlocal toneBlue
class node_exph2,node_exph3,node_exph4s3,node_exph5s3,node_exph5s4,node_exph5s5,node_exprk45,node_exprb42,node_exprb43 toneAmber
class node_phipm,node_expmnorm toneMint
class node_kronpack toneRose
class node_researcher toneIndigo
```

## Components

### Test problems

- [1D HocOst](https://github.com/vanhoang0507/exph-methods/blob/main/Example%201_HocOst/hocost_1d.m): `Example 1_HocOst/hocost_1d.m`
- [2D ADR](https://github.com/vanhoang0507/exph-methods/tree/main/Example%202_2d_ADR): `Example 2_2d_ADR`
- [3D Brusselator](https://github.com/vanhoang0507/exph-methods/tree/main/Example%203_3d_brusselator): `Example 3_3d_brusselator`
- [Nonlocal HocOst](https://github.com/vanhoang0507/exph-methods/blob/main/Example%204_HocOst_nonlocal/hocost_integral_1d.m): `Example 4_HocOst_nonlocal/hocost_integral_1d.m`

### ExpH methods

- [ExpH2](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH2.m): `integrators/ExpH2.m`
- [ExpH3](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH3.m): `integrators/ExpH3.m`
- [ExpH4s3](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH4s3.m): `integrators/ExpH4s3.m`
- [ExpH5s3](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH5s3.m): `integrators/ExpH5s3.m`
- [ExpH5s4](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH5s4.m): `integrators/ExpH5s4.m`
- [ExpH5s5](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpH5s5.m): `integrators/ExpH5s5.m`
- [ExpRK45](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/ExpRK45.m): `integrators/ExpRK45.m`
- [expRB42](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/expRB42.m): `integrators/expRB42.m`
- [expRB43](https://github.com/vanhoang0507/exph-methods/blob/main/integrators/expRB43.m): `integrators/expRB43.m`

### Numerical kernels

- [Phi-action Krylov](https://github.com/vanhoang0507/exph-methods/blob/main/phipmsimuliom/phipm_simul_iom.m): `phipmsimuliom/phipm_simul_iom.m`
- [Exponential norm](https://github.com/vanhoang0507/exph-methods/blob/main/phipmsimuliom/expmnorm.m): `phipmsimuliom/expmnorm.m`

### Tensor operations

- [KronPACK](https://github.com/vanhoang0507/exph-methods/tree/main/KronPACK/src): `KronPACK/src`

### Other components

- **Researcher**

## Connections

- Researcher → 1D HocOst: runs experiment
- Researcher → 2D ADR: runs experiment
- Researcher → 3D Brusselator: runs experiment
- Researcher → Nonlocal HocOst: runs experiment
- 1D HocOst → ExpH2: tests methods
- 1D HocOst → ExpH3: tests methods
- 1D HocOst → ExpH4s3: tests methods
- 1D HocOst → ExpH5s3: tests methods
- 1D HocOst → ExpH5s4: tests methods
- 1D HocOst → ExpH5s5: tests methods
- Nonlocal HocOst → ExpH2: tests methods
- Nonlocal HocOst → ExpH3: tests methods
- Nonlocal HocOst → ExpH4s3: tests methods
- Nonlocal HocOst → ExpH5s3: tests methods
- Nonlocal HocOst → ExpH5s4: tests methods
- Nonlocal HocOst → ExpH5s5: tests methods
- 2D ADR → ExpH4s3: compares methods
- 3D Brusselator → ExpH4s3: compares methods
- ExpH2 → Phi-action Krylov: evaluates phi actions
- ExpH3 → Phi-action Krylov: evaluates phi actions
- ExpH4s3 → Phi-action Krylov: evaluates phi actions
- ExpH5s3 → Phi-action Krylov: evaluates phi actions
- ExpH5s4 → Phi-action Krylov: evaluates phi actions
- ExpH5s5 → Phi-action Krylov: evaluates phi actions
- 2D ADR → KronPACK: uses tensor operations
- 3D Brusselator → KronPACK: uses tensor operations
