35 lines
1.1 KiB
C++
35 lines
1.1 KiB
C++
#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<LinearStaticExecutionResult> Execute(const Domain& domain) const;
|
|
|
|
private:
|
|
const ParallelFor& parallel_for_;
|
|
LinearSolver& linear_solver_;
|
|
};
|
|
|
|
} // namespace fesa
|
|
|
|
#endif // FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_
|