Connect MITC4 drilling evidence across analysis procedures

This commit is contained in:
KOKO\Mimi
2026-10-20 09:21:39 +09:00
parent 294ffbf8a1
commit c6188b3ad7
30 changed files with 763 additions and 28 deletions
+5
View File
@@ -1,11 +1,14 @@
#ifndef FESA_ELEMENTS_ELEMENT_H_
#define FESA_ELEMENTS_ELEMENT_H_
#include <array>
#include <optional>
#include <variant>
#include <vector>
#include "fesa/core/status.h"
#include "fesa/elements/element_dof_layout.h"
#include "fesa/elements/mitc4_drilling_mode.h"
#include "fesa/math/matrix.h"
#include "fesa/math/vector.h"
#include "fesa/results/result_records.h"
@@ -30,6 +33,8 @@ struct BeamElementResultRows {
struct ShellElementResultRows {
std::vector<ShellResultRow> rows;
double physical_strain_energy{0.0};
std::optional<Mitc4DrillingMode> drilling_mode;
std::array<double, 3> drilling_moment{};
};
/// @brief Selects the physical recovery shape of one runtime element.
@@ -178,6 +178,8 @@ class ShellReferenceElement : public Element {
virtual Result<Mitc4Stiffness> Stiffness() const = 0;
/// @copydoc Mitc4Shell::Mass
virtual Result<Mitc4Mass> Mass(double density) const = 0;
/// @brief Returns the actual immutable reference-kernel drilling formulation.
virtual Mitc4DrillingMode DrillingMode() const noexcept = 0;
};
/// @brief Borrows the same linear MITC4 kernel for stiffness and recovery.
@@ -190,6 +192,7 @@ class Mitc4ReferenceAdapter final : public ShellReferenceElement {
Result<ElementResultBundle> Recover(const Vector& u) const override;
Result<Mitc4Stiffness> Stiffness() const override;
Result<Mitc4Mass> Mass(double density) const override;
Mitc4DrillingMode DrillingMode() const noexcept override;
private:
const Mitc4Shell& kernel_;