How secquoia/chemoperator works
ChemOperator’s main workflow samples reactor parameters, runs a simulator to produce a SimulationRecord, writes split HDF5 datasets, then reads and preprocesses them for neural-operator models and experiments. The graph preserves the distinct reactor families and the documented PhysicsNeMo flow capability. Source excerpts are partial, so links between unsampled subsystems are included only where the README documents the workflow or capabilities.
Main entry points: generation.py Split generator · processor.py Tensor processing · workflow.py Experiment workflow · hdf5.py Split HDF5
Components 26
Simulation
- Parameter sampling
src/chem_operator/sampling.py - CSTR simulators
src/chem_operator/reactors/cstr/dataset_generator.py - PFR simulators
src/chem_operator/reactors/pfr/dataset_generator.py - Packed-bed simulator
src/chem_operator/reactors/packed_bed_1D/dataset_generator.py - Pipe-flow simulators
src/chem_operator/reactors/pipe_flow/dataset_generator.py - Transient pipe flow
src/chem_operator/reactors/pipe_flow_transient/dataset_generator.py - Heated PFR
src/chem_operator/reactors/pfr_heat/dataset_generator.py - Quasi-2D reactor
src/chem_operator/reactors/q2d/dataset_generator.py
Dataset pipeline
- Split generator
src/chem_operator/_datasets/generation.py - Split HDF5
src/chem_operator/_datasets/hdf5.py - Lazy dataset
src/chem_operator/_datasets/operator.py - Dataset inspection
src/chem_operator/_datasets/inspection.py
Model preparation
- Tensor processing
src/chem_operator/_dataset_processing/processor.py - Field packing
src/chem_operator/_dataset_processing/packing.py - Normalization
src/chem_operator/_normalization/base.py - Model adapters
src/chem_operator/_models/adapters.py - DeepXDE adapter
src/chem_operator/_models/deepxde.py - Operator models
src/chem_operator/_models
Experiments and outputs
- Experiment workflow
src/chem_operator/_experiments/workflow.py - Model trainers
src/chem_operator/_experiments/trainers.py - Artifacts and metrics
src/chem_operator/_experiments/artifacts.py - Artifact plotting
src/chem_operator/plotting.py
PhysicsNeMo flow
- Flow PDE definitions
src/chem_operator/reactors/pipe_flow_transient/dataset_generator.py
Other components
- Researcher
- Cantera
- Q2D solver
Quasi-2D-packbed-experiement/external/Quasi-2D-packbed/compile/main.cpp
Connections 27
- Researcher → Split generator: requests generation
- Split generator → Parameter sampling: samples parameters
- Split generator → CSTR simulators: runs cases
- Split generator → PFR simulators: runs cases
- Split generator → Packed-bed simulator: runs cases
- Split generator → Pipe-flow simulators: runs cases
- Split generator → Transient pipe flow: runs cases
- Split generator → Heated PFR: runs cases
- Split generator → Quasi-2D reactor: runs cases
- CSTR simulators → Cantera: solves with
- PFR simulators → Cantera: solves with
- Packed-bed simulator → Cantera: uses kinetics
- Quasi-2D reactor → Q2D solver: invokes optionally
- Split generator → Split HDF5: writes splits
- Lazy dataset → Split HDF5: reads cases
- Dataset inspection → Split HDF5: inspects files
- Lazy dataset → Tensor processing: provides samples
- Tensor processing → Field packing: packs fields
- Tensor processing → Normalization: normalizes fields
- Tensor processing → Model adapters: prepares tensors
- Tensor processing → DeepXDE adapter: adapts samples
- Model adapters → Operator models: formats inputs
- Researcher → Experiment workflow: starts experiment
- Experiment workflow → Model trainers: dispatches training
- Experiment workflow → Artifacts and metrics: records outputs
- Artifacts and metrics → Artifact plotting: supplies artifacts
- Flow PDE definitions → Researcher: defines flow PDEs