#ifndef FESA_ANALYSIS_LINEAR_STATIC_ANALYSIS_H_ #define FESA_ANALYSIS_LINEAR_STATIC_ANALYSIS_H_ #include "fesa/analysis/analysis.h" namespace fesa { class LinearSolver; class ParallelFor; class ResultsWriter; /// @brief Retains the legacy Analysis facade for linear-static callers. /// @note Numerical stages are owned by LinearStaticProcedureExecutor. class LinearStaticAnalysis final : public Analysis { public: /// @brief Creates a procedure using non-owned backend adapters. /// @note All three adapters must outlive this analysis object. LinearStaticAnalysis(const ParallelFor& parallel_for, LinearSolver& linear_solver, ResultsWriter& results_writer); /// @brief Prepares, executes, and writes a linear-static analysis. /// @return The first stage failure or successful result finalization. Status Run(const AnalysisRequest& request) override; private: const ParallelFor& parallel_for_; LinearSolver& linear_solver_; ResultsWriter& results_writer_; }; } // namespace fesa #endif // FESA_ANALYSIS_LINEAR_STATIC_ANALYSIS_H_