feat: add analysis model objects
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "fesa/core/ElementDefinition.hpp"
|
||||
|
||||
#include <array>
|
||||
#include <cstddef>
|
||||
|
||||
namespace fesa::element {
|
||||
|
||||
using fesa::core::ElementId;
|
||||
using fesa::core::ElementType;
|
||||
using fesa::core::NodeId;
|
||||
using fesa::core::PropertyId;
|
||||
|
||||
class Element {
|
||||
public:
|
||||
virtual ~Element() = default;
|
||||
|
||||
virtual ElementId id() const noexcept = 0;
|
||||
virtual ElementType type() const noexcept = 0;
|
||||
virtual std::size_t nodeCount() const noexcept = 0;
|
||||
virtual const std::array<NodeId, 4>& connectivity() const noexcept = 0;
|
||||
virtual PropertyId propertyId() const noexcept = 0;
|
||||
};
|
||||
|
||||
} // namespace fesa::element
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "fesa/element/Element.hpp"
|
||||
|
||||
namespace fesa::element {
|
||||
|
||||
class Mitc4Element final : public Element {
|
||||
public:
|
||||
Mitc4Element(ElementId id, std::array<NodeId, 4> connectivity, PropertyId property_id);
|
||||
|
||||
ElementId id() const noexcept override;
|
||||
ElementType type() const noexcept override;
|
||||
std::size_t nodeCount() const noexcept override;
|
||||
std::size_t dofCount() const noexcept;
|
||||
const std::array<NodeId, 4>& connectivity() const noexcept override;
|
||||
PropertyId propertyId() const noexcept override;
|
||||
|
||||
private:
|
||||
ElementId id_;
|
||||
std::array<NodeId, 4> connectivity_;
|
||||
PropertyId property_id_;
|
||||
};
|
||||
|
||||
} // namespace fesa::element
|
||||
Reference in New Issue
Block a user