Connect MITC4 drilling evidence across analysis procedures
This commit is contained in:
@@ -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_;
|
||||
|
||||
Reference in New Issue
Block a user