feat(hex8): integrate paired HHT dynamic state and bounded verification
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
#ifndef FESA_ANALYSIS_SOLID_HHT_DYNAMIC_PROCEDURE_H_
|
||||
#define FESA_ANALYSIS_SOLID_HHT_DYNAMIC_PROCEDURE_H_
|
||||
|
||||
#include "fesa/analysis/solid_dynamic_analysis_state.h"
|
||||
|
||||
namespace fesa {
|
||||
class LinearSolver;
|
||||
class ParallelFor;
|
||||
class TangentSolver;
|
||||
|
||||
/// @brief Owns the validated 3N dynamic result independently of serialization.
|
||||
struct SolidDynamicExecutionResult {
|
||||
DofManager dofs;
|
||||
SolidDynamicAnalysisState state;
|
||||
};
|
||||
|
||||
/// @brief Integrates linear or TL Solid mechanics with constant consistent
|
||||
/// mass.
|
||||
class SolidHhtDynamicProcedureExecutor {
|
||||
public:
|
||||
/// @brief Retains caller-owned adapters which must outlive execution.
|
||||
SolidHhtDynamicProcedureExecutor(const ParallelFor& parallel_for,
|
||||
LinearSolver& mass_solver,
|
||||
TangentSolver& tangent_solver);
|
||||
/// @brief Returns complete accepted history without opening output files.
|
||||
Result<SolidDynamicExecutionResult> Execute(const Domain& domain) const;
|
||||
/// @brief Executes into an empty initialized state, preserving accepted
|
||||
/// history on every failure. Domain must match the state inventory and
|
||||
/// schedule.
|
||||
Status ExecuteInto(const Domain& domain,
|
||||
SolidDynamicAnalysisState& state) const;
|
||||
/// @brief Internal verification only; alpha0 verifies conservative dynamics.
|
||||
/// @note This does not extend the approved INP parameter subset.
|
||||
Status ExecuteIntoForVerification(const Domain& domain,
|
||||
SolidDynamicAnalysisState& state,
|
||||
double alpha) const;
|
||||
|
||||
private:
|
||||
const ParallelFor& parallel_for_;
|
||||
LinearSolver& mass_solver_;
|
||||
TangentSolver& tangent_solver_;
|
||||
};
|
||||
} // namespace fesa
|
||||
#endif // FESA_ANALYSIS_SOLID_HHT_DYNAMIC_PROCEDURE_H_
|
||||
Reference in New Issue
Block a user