35 lines
1.1 KiB
C++
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_
|