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

34 lines
1.1 KiB
C++

#ifndef FESA_ANALYSIS_HHT_DYNAMIC_PROCEDURE_H_
#define FESA_ANALYSIS_HHT_DYNAMIC_PROCEDURE_H_
#include "fesa/analysis/dynamic_execution_result.h"
#include "fesa/core/status.h"
namespace fesa {
class Domain;
class LinearSolver;
class NewtonIterationLogWriter;
class ParallelFor;
class TangentSolver;
/// @brief Executes endpoint-equilibrium HHT with consistent shell inertia.
class HhtDynamicProcedureExecutor {
public:
/// @brief Retains caller-owned deterministic execution and solve adapters.
HhtDynamicProcedureExecutor(const ParallelFor& parallel_for,
LinearSolver& positive_solver,
TangentSolver& tangent_solver);
/// @brief Returns complete accepted history without opening result output.
Result<DynamicExecutionResult> Execute(const Domain& domain,
NewtonIterationLogWriter& log) const;
private:
const ParallelFor& parallel_for_;
LinearSolver& positive_solver_;
TangentSolver& tangent_solver_;
};
} // namespace fesa
#endif // FESA_ANALYSIS_HHT_DYNAMIC_PROCEDURE_H_