feat(cpp-object-oriented-modular-refactoring): step 22 - result-recovery-modules
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#ifndef FESA_RESULTS_GLOBAL_EQUILIBRIUM_RECOVERY_H_
|
||||
#define FESA_RESULTS_GLOBAL_EQUILIBRIUM_RECOVERY_H_
|
||||
|
||||
#include "fesa/core/status.h"
|
||||
#include "fesa/fem/dof_manager.h"
|
||||
#include "fesa/math/sparse_matrix.h"
|
||||
#include "fesa/math/vector.h"
|
||||
#include "fesa/model/domain.h"
|
||||
#include "results/recovery_candidate.h"
|
||||
|
||||
namespace fesa::results_internal {
|
||||
|
||||
/// @brief Owns full residual, reaction evidence, and free equilibrium scale.
|
||||
struct GlobalEquilibriumResult {
|
||||
Vector internal_force;
|
||||
Vector residual;
|
||||
Vector reaction;
|
||||
double normalized_free_residual{0.0};
|
||||
};
|
||||
|
||||
/// @brief Computes K*d-F, full reaction evidence, and free residual metric.
|
||||
/// @return The complete global residual candidate or a structured failure.
|
||||
Result<GlobalEquilibriumResult> GlobalEquilibriumRecovery(
|
||||
const Domain& domain, const DofManager& dofs,
|
||||
const SparseMatrix& full_stiffness, const Vector& full_displacement,
|
||||
const Vector& full_external_force);
|
||||
|
||||
/// @brief Adds shell global force and moment equilibrium evidence.
|
||||
/// @note Moments are taken about the fixed global origin.
|
||||
Status RecoverShellGlobalEvidence(const Domain& domain, const DofManager& dofs,
|
||||
const Vector& external_force,
|
||||
const GlobalEquilibriumResult& global,
|
||||
RecoveryCandidate& candidate);
|
||||
|
||||
} // namespace fesa::results_internal
|
||||
|
||||
#endif // FESA_RESULTS_GLOBAL_EQUILIBRIUM_RECOVERY_H_
|
||||
Reference in New Issue
Block a user