13 #include "libmesh/petsc_matrix.h" 22 params.
addRequiredParam<std::string>(
"mat1",
"The petsc binary mat file containing matrix1");
23 params.
addRequiredParam<std::string>(
"mat2",
"The petsc binary mat file containing matrix2");
25 "equivalence_tol", 1e-8,
"The relative tolerance for comparing equivalence");
31 _equiv_tol(getParam<
Real>(
"equivalence_tol")),
32 _mat1_name(getParam<
std::string>(
"mat1")),
33 _mat2_name(getParam<
std::string>(
"mat2"))
45 if ((mat1->row_start() != mat2->row_start()) || (mat1->row_stop() != mat2->row_stop()) ||
46 (mat1->col_start() != mat2->col_start()) || (mat1->col_stop() != mat2->col_stop()))
52 for (
const auto i :
make_range(mat1->row_start(), mat1->row_stop()))
53 for (
const auto j :
make_range(mat1->col_start(), mat1->col_stop()))
55 const auto val1 = (*mat1)(i,
j);
56 const auto val2 = (*mat2)(i,
j);
bool absoluteFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
virtual Real getValue() const override
virtual void execute() override
std::unique_ptr< PetscMatrix< Number > > createMatrixFromFile(const libMesh::Parallel::Communicator &comm, Mat &petsc_mat, const std::string &binary_mat_file, unsigned int mat_number_to_load=1)
const Parallel::Communicator & _communicator
static InputParameters validParams()
const std::string & _mat2_name
static InputParameters validParams()
void min(const T &r, T &o, Request &req) const
virtual void finalize() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool relativeFuzzyEqual(const T &var1, const T2 &var2, const T3 &tol=libMesh::TOLERANCE *libMesh::TOLERANCE)
MatrixEqualityCheck(const InputParameters ¶meters)
IntRange< T > make_range(T beg, T end)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
Checks if two matrices are the same by comparing their coefficients.
registerMooseObject("NavierStokesApp", MatrixEqualityCheck)
const std::string & _mat1_name