feat: add property model foundation

This commit is contained in:
김경종
2026-06-09 11:56:42 +09:00
parent f4196efb10
commit 7ea08441ed
23 changed files with 661 additions and 25 deletions
+8 -2
View File
@@ -7,6 +7,7 @@
#include "fesa/element/Element.hpp"
#include "fesa/load/Load.hpp"
#include "fesa/material/Material.hpp"
#include "fesa/property/Property.hpp"
#include "fesa/property/ShellProperty.hpp"
#include <cstddef>
@@ -22,7 +23,8 @@ public:
void addNode(Node node);
void addElement(std::unique_ptr<fesa::element::Element> element);
void addMaterial(std::unique_ptr<fesa::material::Material> material);
void addShellProperty(fesa::property::ShellProperty property);
void addProperty(std::unique_ptr<fesa::property::Property> property);
void addShellProperty(std::unique_ptr<fesa::property::ShellProperty> property);
void addNodeSet(std::string name, std::vector<NodeId> node_ids);
void addElementSet(std::string name, std::vector<ElementId> element_ids);
std::size_t addBoundaryCondition(std::unique_ptr<fesa::boundary::BoundaryCondition> boundary);
@@ -41,6 +43,10 @@ public:
const fesa::material::Material& material(MaterialId id) const;
std::size_t materialCount() const noexcept;
const fesa::property::Property* findProperty(PropertyId id) const noexcept;
const fesa::property::Property& property(PropertyId id) const;
std::size_t propertyCount() const noexcept;
const fesa::property::ShellProperty* findShellProperty(PropertyId id) const noexcept;
const fesa::property::ShellProperty& shellProperty(PropertyId id) const;
std::size_t shellPropertyCount() const noexcept;
@@ -69,7 +75,7 @@ private:
std::unordered_map<NodeId, Node> nodes_;
std::unordered_map<ElementId, std::unique_ptr<fesa::element::Element>> elements_;
std::unordered_map<MaterialId, std::unique_ptr<fesa::material::Material>> materials_;
std::unordered_map<PropertyId, fesa::property::ShellProperty> shell_properties_;
std::unordered_map<PropertyId, std::unique_ptr<fesa::property::Property>> properties_;
std::unordered_map<std::string, std::vector<NodeId>> node_sets_;
std::unordered_map<std::string, std::vector<ElementId>> element_sets_;
std::vector<std::unique_ptr<fesa::boundary::BoundaryCondition>> boundary_conditions_;