#ifndef FESA_ANALYSIS_NONLINEAR_STATIC_PROCEDURE_H_ #define FESA_ANALYSIS_NONLINEAR_STATIC_PROCEDURE_H_ #include "fesa/analysis/prepared_analysis.h" namespace fesa { class NewtonIterationLogWriter; class ParallelFor; class TangentSolver; /// @brief Executes fixed-load-factor full-Newton nonlinear static analysis. class NonlinearStaticProcedureExecutor { public: /// @brief Creates a procedure executor with caller-owned backend adapters. /// @param parallel_for Deterministic element-local execution adapter. /// @param tangent_solver Fresh unsymmetric tangent solve adapter. NonlinearStaticProcedureExecutor(const ParallelFor& parallel_for, TangentSolver& tangent_solver); /// @brief Computes accepted nonlinear frames and appends iteration records. /// @return A validated nonlinear state without writing HDF5 output. Result Execute( const Domain& domain, NewtonIterationLogWriter& log) const; private: const ParallelFor& parallel_for_; TangentSolver& tangent_solver_; }; } // namespace fesa #endif // FESA_ANALYSIS_NONLINEAR_STATIC_PROCEDURE_H_