Snapshot optimized solver and audit diagnostics before numerical experiments
This commit is contained in:
@@ -526,6 +526,18 @@ namespace prepared_barotropic_closure_test_utils {
|
||||
|
||||
const MPI_Comm communicator = f.mesh->GetComm();
|
||||
|
||||
mfem::Vector retained, enthalpyOnly, displacementOnly;
|
||||
preparedOperator.MultReference(densityVariation, enthalpyVariation, displacementVariation, retained);
|
||||
preparedOperator.ApplyEnthalpyJacobianAction(enthalpyVariation, enthalpyOnly);
|
||||
preparedOperator.ApplyDisplacementJacobianAction(displacementVariation, displacementOnly);
|
||||
CHECK(relative_error(preparedCompleteAction, retained, communicator) < 2.0e-12);
|
||||
CHECK(relative_error(enthalpyOnly, referenceEnthalpyAction, communicator) < 2.0e-12);
|
||||
CHECK(relative_error(displacementOnly, referenceDisplacementAction, communicator) < 2.0e-12);
|
||||
preparedOperator.ApplyEnthalpyJacobianAction(zeroEnthalpy, enthalpyOnly);
|
||||
preparedOperator.ApplyDisplacementJacobianAction(zeroDisplacement, displacementOnly);
|
||||
CHECK(enthalpyOnly.Norml2() == 0.0);
|
||||
CHECK(displacementOnly.Norml2() == 0.0);
|
||||
|
||||
CHECK(relative_error(preparedResidual, referenceResidual, communicator) < 2.0e-12);
|
||||
CHECK(relative_error(preparedDensityAction, referenceDensityAction, communicator) < 2.0e-12);
|
||||
CHECK(relative_error(preparedEnthalpyAction, referenceEnthalpyAction, communicator) < 2.0e-12);
|
||||
@@ -831,6 +843,16 @@ namespace prepared_barotropic_closure_test_utils {
|
||||
mfem::Vector preparedAction;
|
||||
preparedOperator.BuildResidual(preparedResidual);
|
||||
preparedOperator.Mult(densityVariation, enthalpyVariation, displacementVariation, preparedAction);
|
||||
CHECK(preparedOperator.GetTensorElementCount() > 0);
|
||||
mfem::Vector cached, tensorColumn, cachedColumn;
|
||||
preparedOperator.MultCachedReference(densityVariation, enthalpyVariation, displacementVariation, cached);
|
||||
CHECK(relative_error(preparedAction, cached, communicator) < 2.0e-11);
|
||||
preparedOperator.ApplyEnthalpyJacobianAction(enthalpyVariation, tensorColumn);
|
||||
preparedOperator.ApplyEnthalpyJacobianAction(enthalpyVariation, cachedColumn, false);
|
||||
CHECK(relative_error(tensorColumn, cachedColumn, communicator) < 2.0e-11);
|
||||
preparedOperator.ApplyDisplacementJacobianAction(displacementVariation, tensorColumn);
|
||||
preparedOperator.ApplyDisplacementJacobianAction(displacementVariation, cachedColumn, false);
|
||||
CHECK(relative_error(tensorColumn, cachedColumn, communicator) < 2.0e-11);
|
||||
|
||||
mfem::Vector fullReferenceResidual;
|
||||
mean_field::operators::kernels::apply_barotropic_closure(
|
||||
|
||||
Reference in New Issue
Block a user