feat(cpp-object-oriented-modular-refactoring): step 19 - boundary-condition-policy

This commit is contained in:
KOKO\Mimi
2026-08-16 11:23:20 +09:00
parent f26e0a61a8
commit 64a43948ef
27 changed files with 919 additions and 365 deletions
+9 -1
View File
@@ -7,6 +7,7 @@
#include <vector>
#include "fesa/analysis/analysis_model.h"
#include "fesa/constraints/boundary_condition.h"
#include "fesa/elements/element.h"
#include "fesa/math/vector.h"
@@ -39,6 +40,12 @@ class DofManager {
Status Build(const AnalysisModel& analysis_model,
const ElementView& elements);
/// @brief Builds mappings from explicit runtime elements and boundaries.
/// @param boundaries Non-owning definitions in stable source order.
/// @return Success after atomic replacement or a structured failure.
Status Build(const AnalysisModel& analysis_model, const ElementView& elements,
const BoundaryConditionView& boundaries);
/// @brief Returns the full node-by-component DOF count.
std::size_t FullDofCount() const noexcept;
/// @brief Returns the free-equation count.
@@ -75,7 +82,8 @@ class DofManager {
/// @brief Builds from copied layouts after the caller fixes their order.
Status BuildLayouts(const AnalysisModel& analysis_model,
const std::vector<ElementDofLayout>& layouts);
const std::vector<ElementDofLayout>& layouts,
const BoundaryConditionView& boundaries);
/// @brief Takes ownership of fully validated stable equation mappings.
DofManager(std::size_t full_dof_count,