Structure

McSAS3 ships a generated module dependency overview for the maintained top-level modules in src/mcsas3.

The rendered Mermaid version is tracked in the repository at:

  • design_documentation/generated_module_dependencies.md

It is generated by:

  • tools/generate_dependency_diagram.py

The content below is included from the generated Markdown file.

This file is generated by python tools/generate_dependency_diagram.py. It captures imports between top-level modules in src/mcsas3 and is intended as a maintained structure overview rather than a full call graph.

flowchart LR
  subgraph module_Public API and entry points["Public API and entry points"]
    module___init__["__init__"]
    module___main__["__main__"]
    module_cli_tools["cli_tools"]
    module_mc_plot["mc_plot"]
    module_mcsas3_cli_histogrammer["mcsas3_cli_histogrammer"]
    module_mcsas3_cli_runner["mcsas3_cli_runner"]
    module_workflows["workflows"]
  end
  subgraph module_Canonical data and workflow layer["Canonical data and workflow layer"]
    module_data_adapters["data_adapters"]
    module_data_model["data_model"]
    module_ingestion["ingestion"]
    module_mc_hdf["mc_hdf"]
    module_optimizer_input["optimizer_input"]
    module_preprocessing["preprocessing"]
  end
  subgraph module_Optimization and analysis core["Optimization and analysis core"]
    module_mc_analysis["mc_analysis"]
    module_mc_core["mc_core"]
    module_mc_hat["mc_hat"]
    module_mc_model["mc_model"]
    module_mc_model_histogrammer["mc_model_histogrammer"]
    module_mc_opt["mc_opt"]
    module_osb["osb"]
  end
  subgraph module_Other internal modules["Other internal modules"]
    module__cli_common["_cli_common"]
    module_cli_histogram["cli_histogram"]
    module_cli_optimize["cli_optimize"]
    module_parameter_units["parameter_units"]
    module_plot_labels["plot_labels"]
    module_runtime_paths["runtime_paths"]
  end
  module___init__ --> module_data_adapters
  module___init__ --> module_data_model
  module___init__ --> module_workflows
  module___main__ --> module_cli_histogram
  module___main__ --> module_cli_optimize
  module_cli_histogram --> module__cli_common
  module_cli_histogram --> module_mc_analysis
  module_cli_histogram --> module_mc_plot
  module_cli_histogram --> module_workflows
  module_cli_optimize --> module__cli_common
  module_cli_optimize --> module_workflows
  module_cli_tools --> module_cli_histogram
  module_cli_tools --> module_cli_optimize
  module_cli_tools --> module_workflows
  module_data_adapters --> module_data_model
  module_mc_analysis --> module_data_adapters
  module_mc_analysis --> module_data_model
  module_mc_analysis --> module_mc_core
  module_mc_analysis --> module_mc_hdf
  module_mc_analysis --> module_mc_model_histogrammer
  module_mc_analysis --> module_optimizer_input
  module_mc_analysis --> module_plot_labels
  module_mc_core --> module_data_adapters
  module_mc_core --> module_mc_hdf
  module_mc_core --> module_mc_model
  module_mc_core --> module_mc_opt
  module_mc_core --> module_optimizer_input
  module_mc_core --> module_osb
  module_mc_hat --> module_data_adapters
  module_mc_hat --> module_mc_core
  module_mc_hat --> module_mc_hdf
  module_mc_hat --> module_mc_model
  module_mc_hat --> module_mc_opt
  module_mc_hat --> module_optimizer_input
  module_mc_hdf --> module_data_model
  module_mc_model --> module_mc_hdf
  module_mc_model --> module_parameter_units
  module_mc_model_histogrammer --> module_mc_core
  module_mc_model_histogrammer --> module_mc_hdf
  module_mc_model_histogrammer --> module_mc_model
  module_mc_model_histogrammer --> module_mc_opt
  module_mc_model_histogrammer --> module_parameter_units
  module_mc_model_histogrammer --> module_plot_labels
  module_mc_opt --> module_mc_hdf
  module_mc_plot --> module_optimizer_input
  module_mc_plot --> module_plot_labels
  module_mcsas3_cli_histogrammer --> module_cli_histogram
  module_mcsas3_cli_histogrammer --> module_runtime_paths
  module_mcsas3_cli_runner --> module_cli_optimize
  module_mcsas3_cli_runner --> module_runtime_paths
  module_optimizer_input --> module_data_adapters
  module_osb --> module_data_adapters
  module_osb --> module_optimizer_input
  module_parameter_units --> module_data_model
  module_plot_labels --> module_parameter_units
  module_preprocessing --> module_data_adapters
  module_preprocessing --> module_data_model
  module_workflows --> module_data_adapters
  module_workflows --> module_data_model
  module_workflows --> module_ingestion
  module_workflows --> module_mc_hat
  module_workflows --> module_mc_hdf
  module_workflows --> module_preprocessing
  classDef public fill:#e7f0ff,stroke:#3a66b3,color:#1d2b45;
  classDef canonical fill:#e8f8ee,stroke:#2a7f45,color:#153523;
  classDef core fill:#fff2df,stroke:#b06a00,color:#4d3200;
  classDef other fill:#f2f2f2,stroke:#777777,color:#333333;
  class module___init__,module___main__,module_cli_tools,module_mc_plot,module_mcsas3_cli_histogrammer,module_mcsas3_cli_runner,module_workflows public;
  class module_data_adapters,module_data_model,module_ingestion,module_mc_hdf,module_optimizer_input,module_preprocessing canonical;
  class module_mc_analysis,module_mc_core,module_mc_hat,module_mc_model,module_mc_model_histogrammer,module_mc_opt,module_osb core;
  class module__cli_common,module_cli_histogram,module_cli_optimize,module_parameter_units,module_plot_labels,module_runtime_paths other;

Regeneration

Run:

./.venv/bin/python tools/generate_dependency_diagram.py

Notes

  • The diagram is generated from import statements, so it shows module coupling rather than runtime call flow.

  • External dependencies are intentionally omitted.

  • The layer grouping is curated for readability; edges within and across layers remain generated.