Integrate Refactor solver sources and dual MSVC CMake builds

This commit is contained in:
KOKO\Mimi
2026-10-18 02:10:51 +09:00
parent 7ee32e5837
commit 12d51480de
218 changed files with 17842 additions and 9689 deletions
@@ -13,6 +13,8 @@
#include "fesa/elements/element_definition.h"
#include "fesa/model/domain.h"
#include "assembly/ordered_contribution_internal.h"
namespace fesa {
namespace {
@@ -250,14 +252,13 @@ Result<SurfacePressureAssemblyCandidate> AssembleSurfacePressure(
for (std::size_t local_row = 0U; local_row < kFacetDofCount; ++local_row) {
const std::size_t full_row = task.scatter[local_row];
const double force = contribution.force[local_row];
const double accumulated = full_force[full_row] + force;
if (!std::isfinite(force) || !std::isfinite(accumulated)) {
if (!assembly_internal::AccumulateFiniteLoad(full_force, full_row,
force)) {
return Result<SurfacePressureAssemblyCandidate>::Failure(Failure(
FailureCategory::kSolver, task.input.location,
"nonfinite-pressure-accumulation", task.input.entity_identity,
"Stable pressure force reduction produced a nonfinite value."));
}
full_force[full_row] = accumulated;
for (std::size_t local_column = 0U; local_column < kFacetDofCount;
++local_column) {
const double tangent = contribution.external_tangent[
@@ -268,12 +269,9 @@ Result<SurfacePressureAssemblyCandidate> AssembleSurfacePressure(
"nonfinite-pressure-tangent", task.input.entity_identity,
"A pressure local tangent contains a nonfinite value."));
}
tangent_contributions.push_back(
{full_row,
task.scatter[local_column],
tangent,
task_index,
local_row * kFacetDofCount + local_column});
assembly_internal::AppendLocalMatrixEntry(
task.scatter, local_row, local_column, tangent, task_index,
tangent_contributions);
}
}
}