Connect MITC4 drilling evidence across analysis procedures
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <cstddef>
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
#include "fesa/core/status.h"
|
||||
@@ -72,6 +73,8 @@ class AnalysisState {
|
||||
double PhysicalStrainEnergy() const noexcept;
|
||||
/// @brief Returns global force and moment equilibrium components.
|
||||
const std::array<double, 6>& Equilibrium() const noexcept;
|
||||
/// @brief Returns actual MITC4 mode and artificial spatial moment evidence.
|
||||
const std::optional<Mitc4DrillingEvidence>& Mitc4Drilling() const noexcept;
|
||||
/// @brief Returns normalized shell verification metrics.
|
||||
const std::array<double, 3>& VerificationMetrics() const noexcept;
|
||||
|
||||
@@ -96,6 +99,7 @@ class AnalysisState {
|
||||
double physical_strain_energy_{0.0};
|
||||
std::array<double, 6> equilibrium_{};
|
||||
std::array<double, 3> verification_metrics_{};
|
||||
std::optional<Mitc4DrillingEvidence> mitc4_drilling_;
|
||||
};
|
||||
|
||||
} // namespace fesa
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
#include "fesa/core/source_identity.h"
|
||||
@@ -54,6 +55,7 @@ struct DynamicAcceptedFrameState {
|
||||
double external_work = 0.0;
|
||||
double energy_defect = 0.0;
|
||||
std::array<double, 6> global_equilibrium{};
|
||||
std::optional<Mitc4DrillingEvidence> mitc4_drilling;
|
||||
std::array<double, 3> linear_momentum{};
|
||||
std::array<double, 3> angular_momentum{};
|
||||
std::array<double, 3> linear_momentum_rate{};
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "fesa/math/matrix.h"
|
||||
#include "fesa/elements/mitc4_drilling_mode.h"
|
||||
#include "fesa/solvers/eigen/eigen_solver.h"
|
||||
|
||||
namespace fesa {
|
||||
@@ -53,6 +54,7 @@ struct EigenAnalysisState {
|
||||
explicit EigenAnalysisState(FeastEigenResult backend_result)
|
||||
: backend{std::move(backend_result)} {}
|
||||
|
||||
std::optional<Mitc4DrillingMode> drilling_mode;
|
||||
std::size_t full_dof_count{0U};
|
||||
std::size_t free_dof_count{0U};
|
||||
std::size_t mass_null_dimension{0U};
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
#include "fesa/core/source_identity.h"
|
||||
@@ -46,6 +47,7 @@ struct NonlinearTrialState {
|
||||
std::vector<ShellResultRow> shell_results;
|
||||
double physical_strain_energy;
|
||||
std::array<double, 6> global_equilibrium;
|
||||
std::optional<Mitc4DrillingEvidence> mitc4_drilling;
|
||||
};
|
||||
|
||||
/// @brief Stores one authoritative nonlinear increment frame.
|
||||
@@ -69,6 +71,7 @@ struct AcceptedFrameState {
|
||||
std::vector<ShellResultRow> shell_results;
|
||||
double physical_strain_energy;
|
||||
std::array<double, 6> global_equilibrium;
|
||||
std::optional<Mitc4DrillingEvidence> mitc4_drilling;
|
||||
};
|
||||
|
||||
/// @brief Owns committed nonlinear state and validated accepted frames.
|
||||
|
||||
Reference in New Issue
Block a user