#ifndef FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_ #define FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_ #include "fesa/analysis/linear_static_execution_result.h" #include "fesa/core/status.h" namespace fesa { class Domain; class LinearSolver; class ParallelFor; /// @brief Executes the approved linear-static procedure on a prepared Domain. class LinearStaticProcedureExecutor { public: /// @brief Creates a procedure executor with caller-owned backend adapters. /// @param parallel_for Deterministic element-local execution adapter. /// @param linear_solver Factorization and substitution adapter. LinearStaticProcedureExecutor(const ParallelFor& parallel_for, LinearSolver& linear_solver); /// @brief Computes linear-static state without writing HDF5 output. /// @return A validated state and sorted diagnostics, or a procedure failure. Result Execute(const Domain& domain) const; private: const ParallelFor& parallel_for_; LinearSolver& linear_solver_; }; } // namespace fesa #endif // FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_