feat: map fixed-step HHT shell dynamics input

This commit is contained in:
KOKO\Mimi
2026-09-22 21:18:15 +09:00
parent 1dbd8cc5a0
commit 0820259d50
7 changed files with 554 additions and 25 deletions
+13
View File
@@ -88,9 +88,15 @@ class StepDefinition {
/// @brief Reports whether this step defines the frequency procedure.
bool IsFrequency() const noexcept;
/// @brief Reports whether this step defines the HHT dynamic procedure.
bool IsDynamic() const noexcept;
/// @brief Returns frequency source semantics when this is a frequency step.
const FrequencyStepDefinition* Frequency() const noexcept;
/// @brief Returns dynamic source semantics when this is a dynamic step.
const DynamicStepDefinition* Dynamic() const noexcept;
/// @brief Reports the source NLGEOM setting for this static step.
bool UsesNonlinearGeometry() const noexcept;
@@ -118,6 +124,9 @@ class StepDefinition {
/// @brief Converts one parsed frequency-step record to owned semantics.
explicit StepDefinition(FrequencyStepDefinition definition);
/// @brief Converts one parsed dynamic-step record to owned semantics.
explicit StepDefinition(DynamicStepDefinition definition);
std::string name_;
std::vector<std::unique_ptr<BoundaryCondition>> boundary_conditions_;
BoundaryConditionView boundary_conditions_view_;
@@ -135,6 +144,7 @@ class StepDefinition {
double maximum_increment_;
SourceLocation location_;
std::optional<FrequencyStepDefinition> frequency_;
std::optional<DynamicStepDefinition> dynamic_;
};
/// @brief Owns the complete immutable semantic model definition.
@@ -204,6 +214,9 @@ class Domain {
/// @brief Returns the sole frequency source definition when present.
const FrequencyStepDefinition* Frequency() const noexcept;
/// @brief Returns the sole dynamic source definition when present.
const DynamicStepDefinition* Dynamic() const noexcept;
/// @brief Returns sorted nonfatal mapping diagnostics.
const std::vector<Diagnostic>& Warnings() const noexcept;