39 lines
881 B
C++
39 lines
881 B
C++
#ifndef FESA_ELEMENTS_ELEMENT_DOF_LAYOUT_H_
|
|
#define FESA_ELEMENTS_ELEMENT_DOF_LAYOUT_H_
|
|
|
|
#include <cstdint>
|
|
#include <functional>
|
|
#include <vector>
|
|
|
|
#include "fesa/core/source_identity.h"
|
|
|
|
namespace fesa {
|
|
|
|
/// @brief Identifies one component in the stable six-DOF node layout.
|
|
enum class DofComponent : std::uint8_t {
|
|
kUx,
|
|
kUy,
|
|
kUz,
|
|
kUrx,
|
|
kUry,
|
|
kUrz,
|
|
};
|
|
|
|
/// @brief Describes one runtime element's stable node and component order.
|
|
struct ElementDofLayout {
|
|
SourceEntityId source_id;
|
|
std::vector<EntityIndex> node_indices;
|
|
std::vector<DofComponent> components_per_node;
|
|
};
|
|
|
|
class Element;
|
|
|
|
/// @brief Provides non-owning runtime elements in stable owner order.
|
|
/// @note Every referenced element must outlive this view.
|
|
using ElementView = std::vector<std::reference_wrapper<const Element>>;
|
|
|
|
|
|
} // namespace fesa
|
|
|
|
#endif // FESA_ELEMENTS_ELEMENT_DOF_LAYOUT_H_
|