Connect MITC4 drilling evidence across analysis procedures
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
#include "fesa/analysis/dynamic_analysis_state.h"
|
||||
|
||||
#include "results/mitc4_drilling_evidence.h"
|
||||
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
#include <stdexcept>
|
||||
@@ -273,6 +275,12 @@ Status DynamicAnalysisState::CommitAcceptedFrame(
|
||||
return Failure(FailureCategory::kSolver,
|
||||
"Frame physical evidence is nonfinite or has invalid size.");
|
||||
}
|
||||
if (!results_internal::ValidDrillingEvidence(frame.mitc4_drilling,
|
||||
frame.global_equilibrium) ||
|
||||
(!accepted_frames_.empty() && !results_internal::SameDrillingInventory(
|
||||
frame.mitc4_drilling, accepted_frames_.back().mitc4_drilling)))
|
||||
return Failure(FailureCategory::kSolver,
|
||||
"Accepted drilling evidence must be finite, consistent, and retain its mode.");
|
||||
for (const std::size_t dof : constrained_dofs_) {
|
||||
if (frame.generalized_coordinates[dof] != 0.0 ||
|
||||
frame.velocity[dof] != 0.0 || frame.acceleration[dof] != 0.0 ||
|
||||
|
||||
Reference in New Issue
Block a user