40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#ifndef FESA_ANALYSIS_HHT_REDUCED_PROCEDURE_H_
|
|
#define FESA_ANALYSIS_HHT_REDUCED_PROCEDURE_H_
|
|
|
|
#include <cstdint>
|
|
|
|
#include "fesa/analysis/dynamic_execution_result.h"
|
|
#include "fesa/core/status.h"
|
|
|
|
namespace fesa {
|
|
namespace hht_reduced_internal {
|
|
class ShellHhtIntegrator;
|
|
constexpr std::uint32_t kMaximumOuterCorrections = 100U;
|
|
constexpr bool CanApplyOuterCorrection(const std::uint32_t completed) {
|
|
return completed < kMaximumOuterCorrections;
|
|
}
|
|
} // namespace hht_reduced_internal
|
|
|
|
class Domain;
|
|
class EquilibriumAlgorithm;
|
|
class LinearSolver;
|
|
class NewtonIterationLogWriter;
|
|
class ParallelFor;
|
|
class TangentSolver;
|
|
|
|
Result<DynamicExecutionResult> ExecuteReducedHht(
|
|
const Domain& domain, NewtonIterationLogWriter& log,
|
|
const ParallelFor& parallel_for, LinearSolver& positive_solver,
|
|
TangentSolver& tangent_solver);
|
|
|
|
/// @brief Borrows caller iteration policy for the complete production core.
|
|
Result<DynamicExecutionResult> ExecuteReducedHht(
|
|
const Domain& domain, NewtonIterationLogWriter& log,
|
|
const ParallelFor& parallel_for, LinearSolver& positive_solver,
|
|
TangentSolver& tangent_solver,
|
|
const hht_reduced_internal::ShellHhtIntegrator& integrator,
|
|
EquilibriumAlgorithm& algorithm);
|
|
} // namespace fesa
|
|
|
|
#endif // FESA_ANALYSIS_HHT_REDUCED_PROCEDURE_H_
|