Snapshot optimized solver and audit diagnostics before numerical experiments
This commit is contained in:
@@ -38,6 +38,8 @@ export namespace mean_field::operators {
|
||||
|
||||
void Prepare(const mfem::Vector &displacement);
|
||||
void PreparePrimal(const mfem::Vector &displacement);
|
||||
// Previous weight-recomputation path for isolated preparation comparisons.
|
||||
void PrepareReference(const mfem::Vector &displacement);
|
||||
[[nodiscard]] GravitySourcePreparationResult TryPrepare(const mfem::Vector &displacement);
|
||||
[[nodiscard]] GravitySourcePreparationResult TryPreparePrimal(const mfem::Vector &displacement);
|
||||
void Mult(
|
||||
@@ -64,6 +66,11 @@ export namespace mean_field::operators {
|
||||
}
|
||||
}
|
||||
|
||||
void MultDisplacementVariationTrueReference(
|
||||
const mfem::Vector &densityTrue, const mfem::Vector &displacementVariationTrue,
|
||||
mfem::Vector &actionVariationTrue) const;
|
||||
[[nodiscard]] int GetTensorVariationElementCount() const noexcept;
|
||||
|
||||
void MultTranspose(
|
||||
const mfem::Vector &potential,
|
||||
mfem::Vector &action
|
||||
@@ -109,7 +116,7 @@ export namespace mean_field::operators {
|
||||
|
||||
[[nodiscard]] GravitySourcePreparationResult TryPrepareImpl(
|
||||
const mfem::Vector &displacement,
|
||||
PreparationMode mode
|
||||
PreparationMode mode, bool useCachedMeshWeight = true
|
||||
);
|
||||
|
||||
const fem::FEM &m_fem;
|
||||
@@ -137,6 +144,11 @@ export namespace mean_field::operators {
|
||||
mutable mfem::Vector m_element_displacement_variation;
|
||||
mutable mfem::Vector m_quadrature_variation_action;
|
||||
mutable mfem::Vector m_element_variation_action;
|
||||
void MultDisplacementVariationTrueImpl(const mfem::Vector &densityTrue,
|
||||
const mfem::Vector &displacementVariationTrue, mfem::Vector &actionVariationTrue,
|
||||
bool useTensorPath) const;
|
||||
mutable mfem::DenseMatrix m_tensorSamples;
|
||||
mutable mfem::Vector m_tensorWorkspace;
|
||||
mutable mfem::DenseMatrix m_reference_displacement_jacobian;
|
||||
mfem::Vector m_displacement_true;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user