Integrate Refactor solver sources and dual MSVC CMake builds
This commit is contained in:
@@ -4,11 +4,13 @@
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <filesystem>
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
#include "fesa/analysis/dynamic_analysis_state.h"
|
||||
#include "fesa/analysis/hht_time_integration.h"
|
||||
#include "fesa/elements/element_capabilities.h"
|
||||
#include "fesa/elements/nonlinear_mitc4_inertia.h"
|
||||
#include "fesa/elements/nonlinear_mitc4_shell.h"
|
||||
#include "fesa/math/sparse_matrix.h"
|
||||
@@ -25,8 +27,10 @@ namespace hht_internal {
|
||||
struct RuntimeShell {
|
||||
EntityIndex element_index;
|
||||
std::array<std::size_t, 24> scatter;
|
||||
NonlinearMitc4Shell internal;
|
||||
NonlinearMitc4Inertia inertia;
|
||||
std::unique_ptr<NonlinearMitc4Shell> internal_kernel;
|
||||
std::unique_ptr<NonlinearMitc4Inertia> inertia_kernel;
|
||||
std::unique_ptr<ShellTrialElement> internal;
|
||||
std::unique_ptr<ShellInertiaElement> inertia;
|
||||
};
|
||||
|
||||
/// @brief Captures only controls used by the current MSVC x64 local evaluator.
|
||||
@@ -138,6 +142,12 @@ Result<SparseMatrix> ScaledFree(const SparseMatrix& matrix,
|
||||
Status CheckLinearSolve(const SparseMatrix& matrix, const Vector& rhs,
|
||||
const Vector& solution);
|
||||
|
||||
/// @brief Streams checked canonical solves into the caller's infinity norm.
|
||||
/// @note The caller owns factorization and the initial norm. Each column is
|
||||
/// discarded after ascending absolute row-sum accumulation; failures preserve norm.
|
||||
Status AccumulateCheckedCanonicalNorm(const SparseMatrix& matrix,
|
||||
TangentSolver& solver, double& norm);
|
||||
|
||||
/// @brief Finds analytic admissible node null directions without rank cuts.
|
||||
std::vector<std::size_t> NullNodes(
|
||||
const DofManager& dofs,
|
||||
|
||||
Reference in New Issue
Block a user