Skip to content

basic architecture#9

Merged
ChronoInferna merged 5 commits into
mainfrom
dev/architecture
Dec 22, 2025
Merged

basic architecture#9
ChronoInferna merged 5 commits into
mainfrom
dev/architecture

Conversation

@ChronoInferna

Copy link
Copy Markdown
Owner

This pull request introduces the foundational architecture for the LFMC library by adding core class interfaces, improving documentation, and streamlining the build system. The most significant changes include the introduction of Manager, Process, and Scheme classes using the Strategy Pattern, comprehensive documentation for timer utilities, and enhancements to the CMake build configuration.

Core Architecture

  • Introduced the Manager class in manager.hpp to coordinate and manage multiple Process and Scheme instances at runtime using the Strategy Pattern. The class uses runtime polymorphism and provides methods to set the current process and scheme.
  • Added the abstract Process class in process.hpp to represent stochastic processes, and the abstract Scheme class in scheme.hpp to represent numerical schemes for simulating these processes. Both are designed for extensibility and future concrete implementations. [1] [2]
  • As a note, these are due to change and are placeholders for whatever implementation of the Strategy Pattern we decide to move forward with.

Timer Utility Improvements

  • Enhanced documentation in timer.hpp for both Timer and ScopedTimer classes, clarifying their purpose and usage. Updated method signatures to use noexcept for improved safety and performance.
  • Updated the implementation in timer.cpp to match the new noexcept signatures and streamlined the elapsed time calculation.

Build System and Source Organization

  • Modified src/CMakeLists.txt to automatically include all .cpp files in the src/ directory as sources, simplifying project maintenance as new source files are added.
  • Added necessary include directives to manager.cpp, process.cpp, and scheme.cpp to ensure correct compilation with the new class headers. [1] [2]

Documentation and Cleanup

  • Removed placeholder comments from docs/CMakeLists.txt to clean up the documentation build configuration.

@ChronoInferna ChronoInferna merged commit df81cc9 into main Dec 22, 2025
3 checks passed
@ChronoInferna ChronoInferna deleted the dev/architecture branch December 22, 2025 19:05
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