Add immutable MITC4 drilling selection and direct director springs

This commit is contained in:
KOKO\Mimi
2026-10-20 08:52:43 +09:00
parent 52e321e15c
commit 8bac3ebf49
9 changed files with 670 additions and 22 deletions
+8
View File
@@ -8,6 +8,7 @@
#include "fesa/core/status.h"
#include "fesa/elements/element.h"
#include "fesa/elements/mitc4_shell_definition.h"
#include "fesa/elements/mitc4_drilling_mode.h"
#include "fesa/materials/isotropic_linear_elastic_material.h"
#include "fesa/math/matrix.h"
#include "fesa/math/vector.h"
@@ -92,6 +93,11 @@ class Mitc4Shell final : public Element {
std::array<std::array<double, 3>, 4> initial_directors,
const ShellSection& section, const LinearElasticMaterial& material);
/// @brief Returns this immutable kernel's production drilling formulation.
[[nodiscard]] Mitc4DrillingMode DrillingMode() const noexcept {
return drilling_mode_;
}
/// @brief Returns the factory-bound MITC4 DOF order.
const ElementDofLayout& DofLayout() const noexcept override;
@@ -163,6 +169,7 @@ class Mitc4Shell final : public Element {
private:
friend class ElementFactory;
friend struct mitc4_drilling_internal::TestAccess;
/// @brief Binds Domain identity after the numerical candidate is valid.
void BindRuntime(ElementDofLayout layout, EntityIndex element_index,
@@ -203,6 +210,7 @@ class Mitc4Shell final : public Element {
double thickness_;
double youngs_modulus_;
double poisson_ratio_;
Mitc4DrillingMode drilling_mode_;
SourceLocation source_location_;
std::string identity_;
ElementDofLayout dof_layout_;