feat(fem-and-beam-kernel): step 2 — beam-local-frame

This commit is contained in:
KOKO\Mimi
2026-07-31 02:08:27 +09:00
parent 63a71b7e03
commit 7ddd8e690e
5 changed files with 470 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
#pragma once
#include <array>
#include <optional>
#include <vector>
#include <fesa/core/diagnostic.hpp>
#include <fesa/core/vec3.hpp>
namespace fesa {
using Matrix12 = std::array<std::array<double, 12>, 12>;
struct BeamFrame final {
Vec3 ex;
Vec3 ey;
Vec3 ez;
};
struct BeamFrameResult final {
std::optional<BeamFrame> frame;
std::vector<Diagnostic> diagnostics;
};
[[nodiscard]] BeamFrameResult make_beam_frame(
const Vec3& first,
const Vec3& second,
const Vec3& orientation);
[[nodiscard]] Matrix12 beam_transformation(const BeamFrame& frame);
} // namespace fesa