Integrate Refactor solver sources and dual MSVC CMake builds
This commit is contained in:
@@ -223,16 +223,15 @@ std::vector<std::uint8_t> ReadConstraintMask(const Hdf5File& file) {
|
||||
|
||||
fesa::Vector3 SpatialMoment(const fesa::Vector3& phi,
|
||||
const fesa::Vector3& generalized) {
|
||||
const fesa::Matrix transform = fesa::InverseTransposeLeftJacobianSO3(phi);
|
||||
return {transform(0U, 0U) * generalized.X() +
|
||||
transform(0U, 1U) * generalized.Y() +
|
||||
transform(0U, 2U) * generalized.Z(),
|
||||
transform(1U, 0U) * generalized.X() +
|
||||
transform(1U, 1U) * generalized.Y() +
|
||||
transform(1U, 2U) * generalized.Z(),
|
||||
transform(2U, 0U) * generalized.X() +
|
||||
transform(2U, 1U) * generalized.Y() +
|
||||
transform(2U, 2U) * generalized.Z()};
|
||||
// Independent closed-form action, used only as a test oracle.
|
||||
const double angle = phi.Norm();
|
||||
const double square = angle * angle;
|
||||
const double coefficient = angle < 1e-4 ?
|
||||
1.0 / 12.0 + square / 720.0 + square * square / 30240.0 +
|
||||
square * square * square / 1209600.0 :
|
||||
(1.0 - 0.5 * angle / std::tan(0.5 * angle)) / square;
|
||||
return generalized + 0.5 * phi.Cross(generalized) +
|
||||
coefficient * phi.Cross(phi.Cross(generalized));
|
||||
}
|
||||
|
||||
std::array<double, 6> ReconstructGlobalBalance(const Hdf5File& file) {
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
#include "thermal_gauss_oracle.h"
|
||||
#include "thermal_slab_oracle.h"
|
||||
|
||||
#include "fesa/assembly/thermal_assembler.h"
|
||||
|
||||
namespace {
|
||||
namespace ti = fesa::thermal_transient_internal;
|
||||
using fesa::Vector;
|
||||
|
||||
Reference in New Issue
Block a user