Files
FESADev/include/fesa/analysis/linear_static_analysis.h
T

35 lines
1.1 KiB
C++

#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_