feat(solid): add Hex8 input and three-DOF semantics

This commit is contained in:
KOKO\Mimi
2026-10-09 01:12:30 +09:00
parent df0388ae2f
commit 9acf18db4b
16 changed files with 1468 additions and 98 deletions
+21
View File
@@ -112,6 +112,13 @@ class StepDefinition {
/// @brief Returns the static maximum-increment provenance value.
double MaximumIncrement() const noexcept;
/// @brief Reports the source STATIC DIRECT fixed-schedule selection.
bool IsDirectStatic() const noexcept;
/// @brief Returns the fixed Solid static increment count, or zero otherwise.
std::uint32_t IncrementCount() const noexcept;
/// @brief Returns the source static INC limit.
std::uint32_t MaximumIncrements() const noexcept;
/// @brief Returns the source location of the step declaration.
const SourceLocation& Location() const noexcept;
@@ -145,6 +152,9 @@ class StepDefinition {
SourceLocation location_;
std::optional<FrequencyStepDefinition> frequency_;
std::optional<DynamicStepDefinition> dynamic_;
bool direct_static_{false};
std::uint32_t increment_count_{0U};
std::uint32_t maximum_increments_{100U};
};
/// @brief Owns the complete immutable semantic model definition.
@@ -176,6 +186,15 @@ class Domain {
const DomainCollectionView<Mitc4ShellDefinition>& ShellElements()
const noexcept;
/// @brief Returns C3D8 definitions in stable source order.
const DomainCollectionView<Hex8Definition>& SolidElements() const noexcept;
/// @brief Returns homogeneous Solid section assignments.
const DomainCollectionView<SolidSection>& SolidSections() const noexcept;
/// @brief Reports whether this model has exclusively Solid elements.
bool IsSolid() const noexcept;
/// @brief Returns immutable model-level amplitude curves in source order.
const std::vector<TabularAmplitudeDefinition>& Amplitudes() const noexcept;
/// @brief Returns all materials in stable Domain index order.
const DomainCollectionView<Material>& Materials() const noexcept;
@@ -262,6 +281,8 @@ class Domain {
DomainCollectionView<ElementDefinition> elements_view_;
DomainCollectionView<EulerBeam3DDefinition> beam_elements_view_;
DomainCollectionView<Mitc4ShellDefinition> shell_elements_view_;
DomainCollectionView<Hex8Definition> solid_elements_view_;
DomainCollectionView<SolidSection> solid_sections_view_;
DomainCollectionView<ElementProperty> properties_view_;
DomainCollectionView<GeneralBeamSection> sections_view_;
DomainCollectionView<ShellSection> shell_sections_view_;