feat(solid): add Hex8 input and three-DOF semantics
This commit is contained in:
@@ -6,7 +6,11 @@
|
||||
namespace fesa {
|
||||
|
||||
/// @brief Identifies the supported concrete element-property semantics.
|
||||
enum class ElementPropertyKind { kGeneralBeamSection, kShellSection };
|
||||
enum class ElementPropertyKind {
|
||||
kGeneralBeamSection,
|
||||
kShellSection,
|
||||
kSolidSection
|
||||
};
|
||||
|
||||
/// @brief Provides stable identity for a Domain-owned element property.
|
||||
class ElementProperty {
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
#ifndef FESA_PROPERTIES_SOLID_SECTION_H_
|
||||
#define FESA_PROPERTIES_SOLID_SECTION_H_
|
||||
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#include "fesa/properties/element_property.h"
|
||||
|
||||
namespace fesa {
|
||||
/// @brief Owns a homogeneous Solid material assignment without thickness.
|
||||
class SolidSection final : public ElementProperty {
|
||||
public:
|
||||
/// @brief Constructs a parser-validated ELSET and material assignment.
|
||||
SolidSection(SourceEntityId source, std::string name,
|
||||
EntityIndex material_index, SourceLocation location)
|
||||
: source_id_{std::move(source)},
|
||||
name_{std::move(name)},
|
||||
material_index_{material_index},
|
||||
location_{std::move(location)} {}
|
||||
ElementPropertyKind Kind() const noexcept override {
|
||||
return ElementPropertyKind::kSolidSection;
|
||||
}
|
||||
const SourceEntityId& SourceId() const noexcept override {
|
||||
return source_id_;
|
||||
}
|
||||
const SourceLocation& Location() const noexcept override { return location_; }
|
||||
/// @brief Returns the source ELSET spelling.
|
||||
const std::string& Name() const noexcept { return name_; }
|
||||
/// @brief Returns the stable Domain material index.
|
||||
EntityIndex MaterialIndex() const noexcept { return material_index_; }
|
||||
|
||||
private:
|
||||
SourceEntityId source_id_;
|
||||
std::string name_;
|
||||
EntityIndex material_index_;
|
||||
SourceLocation location_;
|
||||
};
|
||||
} // namespace fesa
|
||||
#endif // FESA_PROPERTIES_SOLID_SECTION_H_
|
||||
Reference in New Issue
Block a user