Skip to main content

EpanetConsoleCore Design Documentation

Architecture Overview

EpanetConsoleCore is designed as a modular console application that serves as the main executable for hydraulic network simulations using EPANET. It provides a robust interface for simulation execution, data management, and results processing.

System Architecture

Component Interaction

Technical Specifications

  • Target Framework: .NET 8.0
  • Platform: Cross-platform (Windows/Linux)
  • Architecture: Console Application
  • Hosting Model: InProcess
  • Version: 1.0.0-alpha.0

Component Architecture

Core Components

  1. Simulation Engine

    • EPANET integration
    • Hydraulic calculations
    • Water quality analysis
    • Results processing
  2. Data Management

    • PostgreSQL integration
    • Data persistence
    • Query optimization
    • Cache management
  3. Configuration Management

    • Settings management
    • File handling
    • Environment configuration
    • Logging setup

Dependencies

NuGet Packages

  • EPANET.NET
  • Microsoft.EntityFrameworkCore
  • NLog
  • Newtonsoft.Json

Internal Project References

  • HTModels
  • HTLogger
  • EN2PostgresContext

Data Flow Architecture

Error Handling Architecture

Deployment Architecture

  • Cross-platform deployment
  • Environment-specific configuration
  • Logging integration
  • Error reporting

Performance Considerations

  • Memory management
  • CPU optimization
  • I/O operations
  • Resource cleanup

Error Handling

  • Exception handling
  • Error logging
  • User feedback
  • Recovery procedures

Integration Architecture

  • File system integration
  • Database connectivity
  • Logging system
  • Configuration management

Future Architecture Considerations

  • Enhanced simulation capabilities
  • Extended data processing
  • Improved error handling
  • Additional integration options