완성된 HHT trial의 constraint 자료 중복 평가 제거

This commit is contained in:
KOKO\Mimi
2026-10-14 21:46:11 +09:00
parent 2850ceaa89
commit 0e5b3e05dd
11 changed files with 939 additions and 16 deletions
@@ -10,9 +10,34 @@
#include <utility>
#include "fesa/elements/finite_rotation.h"
#include "elements/nonlinear_mitc4_configuration_internal.h"
#include "math/dense_blas_internal.h"
namespace fesa {
nonlinear_mitc4_internal::ConfigurationSnapshot
nonlinear_mitc4_internal::ConfigurationSnapshot::Read(
const NonlinearMitc4Shell& element) {
ConfigurationSnapshot result{};
std::size_t index = 0U;
for (const auto& coordinates : element.coordinates_)
for (std::size_t c = 0U; c < 3U; ++c)
result.values[index++] = coordinates[c];
for (const auto& frame : element.initial_frames_)
for (std::size_t i = 0U; i < 3U; ++i)
for (std::size_t j = 0U; j < 3U; ++j)
result.values[index++] = frame(i, j);
for (const auto& director : element.initial_directors_)
for (std::size_t c = 0U; c < 3U; ++c) result.values[index++] = director[c];
result.values[index++] = element.thickness_;
result.values[index++] = element.youngs_modulus_;
result.values[index++] = element.poisson_ratio_;
result.values[index] = element.drilling_stiffness_;
result.source = element.source_location_;
result.identity = element.identity_;
return result;
}
namespace {
constexpr std::size_t kNodeCount = 4U;