feat(cpp-object-oriented-modular-refactoring): step 9 - result-io-vector3
This commit is contained in:
@@ -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],
|
||||
|
||||
Reference in New Issue
Block a user