Skip to content

Add the CADET-Process characterization workbench - #3

Merged
hannahlanzrath merged 6 commits into
mainfrom
characterization-workbench
Oct 7, 2026
Merged

hannahlanzrath merged 6 commits into
mainfrom
characterization-workbench

Conversation

@hannahlanzrath

@hannahlanzrath hannahlanzrath commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Depends on #2 (base-gui) — this diff is only the incremental addition on top.

  • CharacterizationWorkbenchWidget: a staged, sidebar-navigated replication of a chromatography-characterization pipeline (system periphery → column bed porosity/dispersion → particle transport → binding/adsorption → capacity), each stage a joint multi-experiment fit against CADETProcess.characterization, chained so an accepted stage's result seeds the next.
  • ParameterHistoryWidget: provenance — which experiment(s) determined which parameters, with the optimizer, objective and configuration hash, and a "re-apply" action.
  • cadetgui/sensitivity.py: a finite-difference parameter-sensitivity/identifiability diagnostic (not yet wired into a widget).
  • examples/characterization.ipynb plus synthetic example data (examples/data/characterization/, examples/generate_characterization_example_data.py) exercising each stage with a known "true" answer.

Test plan

  • ruff check clean
  • pytest -m "not slow": 637 passed
  • pytest -m slow: 12 passed
  • characterization.ipynb executed end-to-end via jupyter nbconvert --execute

@hannahlanzrath hannahlanzrath mentioned this pull request Sep 28, 2026
@hannahlanzrath hannahlanzrath changed the title Add the CADET-Process characterization workbench (not for merge yet) Add the CADET-Process characterization workbench Sep 28, 2026
Base automatically changed from base-gui to main September 28, 2026 12:48
@hannahlanzrath
hannahlanzrath force-pushed the characterization-workbench branch from c7522fd to db531d8 Compare September 28, 2026 13:56
…constants for hardware units

- Simulator picks the output time step per process (the smallest of 1 s,
  cycle time / 5000 and shortest section / 20, at most 20000 points per
  cycle), so pulses lasting seconds are resolved; used by run_process,
  parameter estimation and the h5 export.
- Optimization results carry the final Pareto front (pareto_front), also
  after a cancel.
- The parameter-estimation preview can update lazily (auto_preview).
- cadetprocessadapter lists the configurable hardware units with seed
  values (CONFIGURABLE_UNITS, UNIT_SEED_DEFAULTS).
@hannahlanzrath
hannahlanzrath force-pushed the characterization-workbench branch from 8be5277 to 931146c Compare October 7, 2026 07:17
…and chain steps

- Study: components with roles, measurements (Comparison: recipe,
  experimental trace, calibration) and chain steps (StepSetup) that fit
  CADET-Process characterization stages; accepted results go into a
  ParameterStore with provenance and feed later steps.
- characterization_guide maps lab experiments onto it: experiment types,
  the default chain (extra-column volume, column packing, particle
  transport, binding, capacity) and species transfers; step_checks is the
  single source of step readiness.
- process_builder builds processes from saved recipes; experimental_data
  reads generic and ÄKTA/Unicorn CSV exports (delimiter, decimal comma,
  metadata lines); starting_values supplies standard starting values per
  binding model and process template.
- Synthetic two-step example chain with its generator.
…on workbench; lab-scale defaults

- Lab-scale defaults: 0.5 cm x 5 cm column, 1 mL/min, 10 min cycle,
  1 mL standalone CSTR; a slow test checks every template and experiment
  type peaks or breaks through inside its cycle.
- Shared building blocks: SidebarShell (groups, warnings, show
  listeners), bench_root, glossary/help helpers, FlowRateSection;
  ConfigurationWidget gains snapshot(), select_models() and standard
  starting values that survive form rebuilds; InstrumentWidget edits the
  study's components and highlights units.
- CharacterizationWorkbenchWidget: Setup (one card per chain step, the
  current one open), System, Measurements (add flow, measured trace
  preview, removal from steps), one page per step (measurements,
  variables, optimizer, live fit plot, Pareto candidates, accept),
  Parameters and a Guide (workflow, lab checks, optimizers, glossary).
- Both benches take include= and prebuilt widgets; excluded panes are not
  built.
The parameter-estimation example CSVs come from a deterministic generator
(examples/generate_example_data.py) and fit without entering values
first.
@hannahlanzrath
hannahlanzrath force-pushed the characterization-workbench branch from 931146c to a1a019b Compare October 7, 2026 08:25
@hannahlanzrath
hannahlanzrath merged commit ed1a3ba into main Oct 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant