feat(cpp-object-oriented-modular-refactoring): step 9 - result-io-vector3

This commit is contained in:
KOKO\Mimi
2026-08-16 07:40:16 +09:00
parent 1cb1f26cdc
commit 0be8d1bd89
6 changed files with 140 additions and 148 deletions
+7 -11
View File
@@ -20,6 +20,7 @@
#include "fesa/assembly/parallel_for.h"
#include "fesa/assembly/sparse_assembler.h"
#include "fesa/fem/dof_manager.h"
#include "fesa/math/vector3.h"
#include "fesa/model/domain.h"
namespace {
@@ -719,14 +720,14 @@ TEST(ResultRecovery, KeepsFullResidualAndComputesGlobalShellEquilibrium) {
}
}
// MITC4-REC-004
// MITC4-REC-004, C-DUP-002
TEST(ResultRecovery, UsesGlobalOriginForShellMomentBalance) {
auto centered_definition = MakeShellDefinition();
auto translated_definition = centered_definition;
constexpr std::array<double, 3> translation{7.0, 11.0, 0.0};
constexpr fesa::Vector3 translation{7.0, 11.0, 0.0};
for (auto& node : translated_definition.nodes) {
for (std::size_t component = 0U; component < translation.size();
++component) {
for (std::size_t component = 0U;
component < translation.Components().size(); ++component) {
node.coordinates[component] += translation[component];
}
}
@@ -753,13 +754,8 @@ TEST(ResultRecovery, UsesGlobalOriginForShellMomentBalance) {
EXPECT_NEAR(translated.Equilibrium()[component], centered_force[component],
1.0e-12);
}
const std::array<double, 3> translated_moment_delta{
translation[1U] * centered_force[2U] -
translation[2U] * centered_force[1U],
translation[2U] * centered_force[0U] -
translation[0U] * centered_force[2U],
translation[0U] * centered_force[1U] -
translation[1U] * centered_force[0U]};
const fesa::Vector3 translated_moment_delta =
translation.Cross(fesa::Vector3{centered_force});
for (std::size_t component = 0U; component < 3U; ++component) {
EXPECT_NEAR(translated.Equilibrium()[3U + component] -
centered.Equilibrium()[3U + component],