Skip to content

Commit

Permalink
Merge Pull Request #12150 from trilinos/Trilinos/master_merge_2023081…
Browse files Browse the repository at this point in the history
…8_175814

Automatically Merged using Trilinos Master Merge AutoTester
PR Title: Trilinos Master Merge PR Generator: Auto PR created to promote from master_merge_20230818_175814 branch to master
PR Author: trilinos-autotester
  • Loading branch information
trilinos-autotester authored Aug 19, 2023
2 parents 9625731 + 6917da1 commit f3ff0b5
Show file tree
Hide file tree
Showing 272 changed files with 42,201 additions and 8,009 deletions.
1 change: 1 addition & 0 deletions PackagesList.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ TRIBITS_ALLOW_MISSING_EXTERNAL_PACKAGES(Komplex) # 27030 targets
TRIBITS_ALLOW_MISSING_EXTERNAL_PACKAGES(Moertel) # 26995 targets
TRIBITS_ALLOW_MISSING_EXTERNAL_PACKAGES(TriKota) # 26995 targets
TRIBITS_ALLOW_MISSING_EXTERNAL_PACKAGES(Domi) # 26946 targets
TRIBITS_ALLOW_MISSING_EXTERNAL_PACKAGES(FEI)

#
# Disable certain packages on certain platforms.
Expand Down
6 changes: 3 additions & 3 deletions Version.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@
# for release mode and set the version.
#

SET(Trilinos_VERSION 14.3)
SET(Trilinos_VERSION 14.5)
SET(Trilinos_MAJOR_VERSION 14)
SET(Trilinos_MAJOR_MINOR_VERSION 140300)
SET(Trilinos_VERSION_STRING "14.3 (Dev)")
SET(Trilinos_MAJOR_MINOR_VERSION 140500)
SET(Trilinos_VERSION_STRING "14.5 (Dev)")
SET(Trilinos_ENABLE_DEVELOPMENT_MODE_DEFAULT ON) # Change to 'OFF' for a release

# Used by testing scripts and should not be used elsewhere
Expand Down
12 changes: 8 additions & 4 deletions packages/framework/ini-files/config-specs.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2150,6 +2150,7 @@ opt-set-cmake-var Zoltan_ch_simple_parmetis_parallel_DISABLE BOOL FORCE : ON
opt-set-cmake-var Zoltan_ch_7944_parmetis_parallel_DISABLE BOOL FORCE : ON
opt-set-cmake-var Zoltan_ch_simple_scotch_parallel_DISABLE BOOL FORCE : ON
opt-set-cmake-var Epetra_Directory_test_LL_MPI_1_DISABLE BOOL FORCE : ON
opt-set-cmake-var SEACASAprepro_lib_aprepro_lib_array_test_DISABLE BOOL FORCE : ON

# These tests time out if other stuff is running on the machine at the same time.
# Not a LOT of other stuff, but they seem to be more resource-intensive than one would
Expand All @@ -2175,10 +2176,14 @@ opt-set-cmake-var ROL_example_PinT_parabolic-control_AugmentedSystem_test_MPI_2_
use rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use PACKAGE-ENABLES|ALL

[rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-off_all]
use rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_all
[rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-off_no-package-enables]
use rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use USE-DEPRECATED|NO

[rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-off_all]
use rhel7_sems-intel-2021.3-sems-openmpi-4.0.5_release-debug_shared_no-kokkos-arch_no-asan_no-complex_fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-off_no-package-enables
use PACKAGE-ENABLES|ALL

[rhel7_sems-cuda-11.4.2-sems-gnu-10.1.0-sems-openmpi-4.0.5_release_static_Volta70_no-asan_complex_no-fpic_mpi_pt_no-rdc_no-uvm_deprecated-on_no-package-enables]
# uses sems-v2 modules
use RHEL7_SEMS_COMPILER|CUDA
Expand Down Expand Up @@ -2662,8 +2667,7 @@ use rhel7_sems-gnu-8.3.0-openmpi-1.10.7-serial_debug_shared_no-kokkos-arch_no-as
use PACKAGE-ENABLES|ALL

[rhel7_cxx-20-sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_all]
# uses sems-v2 modules
use rhel7_sems-gnu-8.3.0-openmpi-1.10.7-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables
use PACKAGE-ENABLES|ALL
opt-set-cmake-var CMAKE_CXX_STANDARD STRING FORCE : 20

Expand Down
5 changes: 5 additions & 0 deletions packages/framework/pr_tools/LaunchDriver.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ def main(argv):
help='The INI file containing supported systems')
parser.add_argument('--in-container', default=False, action="store_true",
help="Build is happening in a container")
parser.add_argument("--kokkos-develop", default=False, action="store_true",
help="Build is requiring to pull the current develop of kokkos and kokkos-kernels packages")
args = parser.parse_args(argv)

if os.getenv("TRILINOS_DIR") == None:
Expand All @@ -108,6 +110,9 @@ def main(argv):
if args.in_container:
cmd += " --no-bootstrap"

if args.kokkos_develop:
cmd += " --kokkos-develop"

print("LaunchDriver> EXEC: " + cmd, flush=True)

cmd_output = subprocess.run(cmd, shell=True)
Expand Down
112 changes: 59 additions & 53 deletions packages/framework/pr_tools/PullRequestLinuxDriver.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ source ${SCRIPTPATH:?}/common.bash
# Fetch arguments
on_weaver=$(echo "$@" | grep '\-\-on_weaver' &> /dev/null && echo "1")
on_ats2=$(echo "$@" | grep '\-\-on_ats2' &> /dev/null && echo "1")
on_kokkos_develop=$(echo "$@" | grep '\-\-kokkos\-develop' &> /dev/null && echo "1")

bootstrap=$(echo "$@" | grep '\-\-\no\-bootstrap' &> /dev/null && echo "0" || echo "1")

# Configure ccache via environment variables
Expand Down Expand Up @@ -89,67 +91,71 @@ sig_script_old=$(get_md5sum ${REPO_ROOT:?}/packages/framework/pr_tools/PullReque
# Get the md5 checksum of the Merge script
sig_merge_old=$(get_md5sum ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriverMerge.py)


print_banner "Merge Source into Target"
message_std "PRDriver> " "TRILINOS_SOURCE_SHA: ${TRILINOS_SOURCE_SHA:?}"

# Prepare the command for the MERGE operation
merge_cmd_options=(
${TRILINOS_SOURCE_REPO:?}
${TRILINOS_TARGET_REPO:?}
${TRILINOS_TARGET_BRANCH:?}
${TRILINOS_SOURCE_SHA:?}
${WORKSPACE:?}
)
merge_cmd="${PYTHON_EXE:?} ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriverMerge.py ${merge_cmd_options[@]}"


# Call the script to handle merging the incoming branch into
# the current trilinos/develop branch for testing.
message_std "PRDriver> " ""
message_std "PRDriver> " "Execute Merge Command: ${merge_cmd:?}"
message_std "PRDriver> " ""
execute_command_checked "${merge_cmd:?}"
#err=$?
#if [ $err != 0 ]; then
# print_banner "An error occurred during merge"
# exit $err
#fi
print_banner "Merge completed"
if [[ ${on_kokkos_develop} == "1" ]]; then
message_std "PRDriver> --kokkos-develop is set - setting kokkos and kokkos-kernels packages to current develop"
./$SCRIPTPATH/SetKokkosDevelop.sh
else
print_banner "Merge Source into Target"
message_std "PRDriver> " "TRILINOS_SOURCE_SHA: ${TRILINOS_SOURCE_SHA:?}"

# Prepare the command for the MERGE operation
merge_cmd_options=(
${TRILINOS_SOURCE_REPO:?}
${TRILINOS_TARGET_REPO:?}
${TRILINOS_TARGET_BRANCH:?}
${TRILINOS_SOURCE_SHA:?}
${WORKSPACE:?}
)
merge_cmd="${PYTHON_EXE:?} ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriverMerge.py ${merge_cmd_options[@]}"


# Call the script to handle merging the incoming branch into
# the current trilinos/develop branch for testing.
message_std "PRDriver> " ""
message_std "PRDriver> " "Execute Merge Command: ${merge_cmd:?}"
message_std "PRDriver> " ""
execute_command_checked "${merge_cmd:?}"
#err=$?
#if [ $err != 0 ]; then
# print_banner "An error occurred during merge"
# exit $err
#fi
print_banner "Merge completed"


print_banner "Check for PR Driver Script Modifications"
print_banner "Check for PR Driver Script Modifications"

# Get the md5 checksum of this script:
#sig_script_new=$(get_md5sum ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriver.sh)
sig_script_new=$(get_md5sum ${SCRIPTFILE:?})
message_std "PRDriver> " ""
message_std "PRDriver> " "Script File: ${SCRIPTFILE:?}"
message_std "PRDriver> " "Old md5sum : ${sig_script_old:?}"
message_std "PRDriver> " "New md5sum : ${sig_script_new:?}"
# Get the md5 checksum of this script:
#sig_script_new=$(get_md5sum ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriver.sh)
sig_script_new=$(get_md5sum ${SCRIPTFILE:?})
message_std "PRDriver> " ""
message_std "PRDriver> " "Script File: ${SCRIPTFILE:?}"
message_std "PRDriver> " "Old md5sum : ${sig_script_old:?}"
message_std "PRDriver> " "New md5sum : ${sig_script_new:?}"

# Get the md5 checksum of the Merge script
#sig_merge_new=$(get_md5sum ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriverMerge.py)
export MERGE_SCRIPT=${SCRIPTPATH:?}/PullRequestLinuxDriverMerge.py
sig_merge_new=$(get_md5sum ${MERGE_SCRIPT:?})
message_std "PRDriver> " ""
message_std "PRDriver> " "Script File: ${MERGE_SCRIPT:?}"
message_std "PRDriver> " "Old md5sum : ${sig_merge_old:?}"
message_std "PRDriver> " "New md5sum : ${sig_merge_new:?}"

if [ "${sig_script_old:?}" != "${sig_script_new:?}" ] || [ "${sig_merge_old:?}" != "${sig_merge_new:?}" ]
then
message_std "PRDriver> " ""
message_std "PRDriver> " "Driver or Merge script change detected. Re-launching PR Driver"
message_std "PRDriver> " ""
${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriver.sh
exit $?
fi

# Get the md5 checksum of the Merge script
#sig_merge_new=$(get_md5sum ${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriverMerge.py)
export MERGE_SCRIPT=${SCRIPTPATH:?}/PullRequestLinuxDriverMerge.py
sig_merge_new=$(get_md5sum ${MERGE_SCRIPT:?})
message_std "PRDriver> " ""
message_std "PRDriver> " "Script File: ${MERGE_SCRIPT:?}"
message_std "PRDriver> " "Old md5sum : ${sig_merge_old:?}"
message_std "PRDriver> " "New md5sum : ${sig_merge_new:?}"

if [ "${sig_script_old:?}" != "${sig_script_new:?}" ] || [ "${sig_merge_old:?}" != "${sig_merge_new:?}" ]
then
message_std "PRDriver> " ""
message_std "PRDriver> " "Driver or Merge script change detected. Re-launching PR Driver"
message_std "PRDriver> " "Driver and Merge scripts unchanged, proceeding to TEST phase"
message_std "PRDriver> " ""
${REPO_ROOT:?}/packages/framework/pr_tools/PullRequestLinuxDriver.sh
exit $?
fi

message_std "PRDriver> " ""
message_std "PRDriver> " "Driver and Merge scripts unchanged, proceeding to TEST phase"
message_std "PRDriver> " ""

# determine what MODE we are using
mode="standard"
if [[ "${JOB_BASE_NAME:?}" == "Trilinos_pullrequest_gcc_8.3.0_installation_testing" ]]; then
Expand Down
20 changes: 20 additions & 0 deletions packages/framework/pr_tools/SetKokkosDevelop.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
SCRIPTFILE=$(realpath ${WORKSPACE:?}/Trilinos/packages/framework/pr_tools/SetKokkosDevelop.sh)
SCRIPTPATH=$(dirname $SCRIPTFILE)
source ${SCRIPTPATH:?}/common.bash
PACKAGESPATH=$(realpath ${WORKSPACE:?}/Trilinos/packages)

# Ensures git is loaded properly
if ! command -v git &> /dev/null; then
message_std "SetKokkosDevelop> ERROR: git is not available"
exit 1
fi

cd $PACKAGESPATH
rm -rf kokkos kokkos-kernels
git clone --depth=1 --single-branch --branch=develop --shallow-submodules https://github.com/kokkos/kokkos.git
git clone --depth=1 --single-branch --branch=develop --shallow-submodules https://github.com/kokkos/kokkos-kernels.git
message_std "SetKokkosDevelop> INFO: updated kokkos and kokkos-kernels packages with current develop"

# Returns to previous path from before running this script
cd -
2 changes: 1 addition & 1 deletion packages/ifpack2/src/Ifpack2_ETI_LO_GO_SYCL.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
TPETRA_ETI_MANGLING_TYPEDEFS()

#define LCLINST(LO, GO) \
IFPACK2_@UPPER_CASE_CLASS@_INSTANT(LO, GO, Tpetra_Kokkos_Compat_KokkosSYCLWrapperNode)
IFPACK2_@UPPER_CASE_CLASS@_INSTANT(LO, GO, Tpetra_KokkosCompat_KokkosSYCLWrapperNode)

IFPACK2_INSTANTIATE_LG(LCLINST)

Expand Down
2 changes: 1 addition & 1 deletion packages/ifpack2/src/Ifpack2_ETI_SC_LO_GO_SYCL.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
IFPACK2_ETI_MANGLING_TYPEDEFS()

#define LCLINST(SC, LO, GO) \
IFPACK2_@UPPER_CASE_CLASS@_INSTANT(SC, LO, GO, Tpetra_Kokkos_Compat_KokkosSYCLWrapperNode)
IFPACK2_@UPPER_CASE_CLASS@_INSTANT(SC, LO, GO, Tpetra_KokkosCompat_KokkosSYCLWrapperNode)

IFPACK2_INSTANTIATE_SLG(LCLINST)

Expand Down
23 changes: 2 additions & 21 deletions packages/ifpack2/src/Ifpack2_MDF_def.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -522,17 +522,7 @@ void MDF<MatrixType>::initialize ()
MDF_handle_ = rcp( new MDF_handle_device_type(A_local_device) );
MDF_handle_->set_verbosity(Verbosity_);

// if constexpr (Details::MDFImpl::is_supported_scalar_type<scalar_type>::value)
if constexpr (std::is_arithmetic_v<scalar_type>)
{
KokkosSparse::Experimental::mdf_symbolic(A_local_device,*MDF_handle_);
}
else
{
TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "Ifpack2::MDF::initialize: "
"MDF on complex scalar types is not currently supported. "
"Please report this to the Ifpack2 developers.");
}
KokkosSparse::Experimental::mdf_symbolic(A_local_device,*MDF_handle_);

isAllocated_ = true;
}
Expand Down Expand Up @@ -613,16 +603,7 @@ void MDF<MatrixType>::compute ()
// Compute the ordering and factorize
auto A_local_device = A_local_crs->getLocalMatrixDevice();

if constexpr (std::is_arithmetic_v<scalar_type>)
{
KokkosSparse::Experimental::mdf_numeric(A_local_device,*MDF_handle_);
}
else
{
TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, prefix <<
"MDF on complex scalar types is not currently supported. "
"Please report this to the Ifpack2 developers.");
}
KokkosSparse::Experimental::mdf_numeric(A_local_device,*MDF_handle_);
}

// Ordering convention for MDF impl and here are reversed. Do reverse here to avoid confusion
Expand Down
65 changes: 28 additions & 37 deletions packages/ifpack2/test/unit_tests/Ifpack2_UnitTestMDF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,24 +128,17 @@ void test_mdf_reference_problem(
using row_matrix_t = Tpetra::RowMatrix<Scalar,LO,GO,Node>;
using crs_matrix_t = Tpetra::CrsMatrix<Scalar,LO,GO,Node>;
Teuchos::RCP<const Tpetra::Map<LO,GO,Node> > rowmap(tif_utest::create_tpetra_map<LO,GO,Node>(locNumRow));
Teuchos::RCP<crs_matrix_t> crsmatrix(new crs_matrix_t(rowmap,maxEntrPerRow));
Teuchos::RCP<crs_matrix_t> crsmatrix(new crs_matrix_t(rowmap,rowmap,maxEntrPerRow));

//Fill matrix
{
GO rb = rowmap()->getGlobalElement(0);
GO col_indices[maxEntrPerRow];

for(LO row_lo = 0; row_lo < locNumRow; ++row_lo)
{
for(LO row_lo = 0; row_lo < locNumRow; ++row_lo) {
const LO & entrStart = crs_row_map[row_lo];
const LO entriesInRow = crs_row_map[row_lo+1] - entrStart;
for (LO i =0; i < entriesInRow; ++i)
col_indices[i] = crs_col_ind[entrStart + i] + rb;

crsmatrix->insertGlobalValues (row_lo + rb,
crsmatrix->insertLocalValues (row_lo,
entriesInRow,
&crs_values[entrStart],
col_indices);
&crs_col_ind[entrStart]);
}
crsmatrix->fillComplete();
}
Expand All @@ -155,7 +148,7 @@ void test_mdf_reference_problem(
{
Teuchos::ParameterList params;
params.set("fact: mdf level-of-fill", 0.0);
params.set("Verbosity",0);
params.set("Verbosity", 0);
TEST_NOTHROW(prec.setParameters(params));
}

Expand Down Expand Up @@ -300,38 +293,36 @@ TEUCHOS_UNIT_TEST_TEMPLATE_3_DECL(Ifpack2MDF, Test1, Scalar, LocalOrdinal, Globa

TEUCHOS_UNIT_TEST_TEMPLATE_3_DECL(Ifpack2MDF, Test2, Scalar, LocalOrdinal, GlobalOrdinal)
{
// Finite difference Advection-difussion problem with uniform spacing, D = 0.1, and v = {1,0}.
// 0 = D lapl(c) - v div(c)
// Finite difference Advection-difussion problem with uniform spacing, D = 0.1, and v = {1,0}, and source term
// 0 = D lapl(c) - v div(c) + src
// where source = 0.1*(sin(x/Lx*2*pi)/2+1)*(sin(y/Ly*2*pi)/2+1)
// Matrix generated in matlab

const LocalOrdinal locNumRow = 9;
const LocalOrdinal maxEntrPerRow = 5;

const LocalOrdinal crs_row_map[locNumRow + 1] = {0, 5, 10, 15, 20, 25, 30, 35, 40, 45};
const LocalOrdinal crs_row_map[] = {0, 4, 9, 13, 17, 22, 26, 30, 35, 39};
const LocalOrdinal crs_col_ind[] = {
0, 1, 2, 3, 6,
0, 1, 3, 6,
0, 1, 2, 4, 7,
0, 1, 2, 5, 8,
0, 3, 4, 5, 6,
1, 2, 5, 8,
0, 3, 4, 6,
1, 3, 4, 5, 7,
2, 3, 4, 5, 8,
0, 3, 6, 7, 8,
2, 4, 5, 8,
0, 3, 6, 7,
1, 4, 6, 7, 8,
2, 5, 6, 7, 8
};
2, 5, 7, 8};
const Scalar crs_values[] = {
-0.6, -0.1, 0.9, -0.1, -0.1,
0.9, -0.6, -0.1, -0.1, -0.1,
-0.1, 0.9, -0.6, -0.1, -0.1,
-0.1, -0.6, -0.1, 0.9, -0.1,
-0.1, 0.9, -0.6, -0.1, -0.1,
-0.1, -0.1, 0.9, -0.6, -0.1,
-0.1, -0.1, -0.6, -0.1, 0.9,
-0.1, -0.1, 0.9, -0.6, -0.1,
-0.1, -0.1, -0.1, 0.9, -0.6
};
const LocalOrdinal known_Perm[] = {0, 3, 6, 1, 4, 5, 7, 8, 2};
const Scalar known_sln[] = {5.16247188607349, 5.52439770923273, 6.238246086077, 4.89405015653464, 5.66305162810038, 5.1671248742544, 4.75093559248463, 5.88204162861661, 4.46367801745558};
-0.3946, -0.1, -0.1, -0.1,
0.9, -0.5187, -0.1, -0.1, -0.1,
0.9, -0.4567, -0.1, -0.1,
-0.1, -0.5187, -0.1, -0.1,
-0.1, 0.9, -0.5679, -0.1, -0.1,
-0.1, 0.9, -0.5433, -0.1,
-0.1, -0.1, -0.4567, -0.1,
-0.1, -0.1, 0.9, -0.5433, -0.1,
-0.1, -0.1, 0.9, -0.5};
const LocalOrdinal known_Perm[] = {5, 8, 2, 4, 7, 6, 3, 0, 1};
const Scalar known_sln[] = {-1.33087277527186, -2.60397120798988, -7.11775593415348, -0.999724724820625, -1.69383010526766, -2.51463317632001, -1.14468009596675, -2.12778343905707, -4.46471296630885};
const LocalOrdinal locNumRow = 9;
const LocalOrdinal maxEntrPerRow = 5;

test_mdf_reference_problem<maxEntrPerRow,Scalar,LocalOrdinal,GlobalOrdinal,Node>(
success,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ TEUCHOS_UNIT_TEST_TEMPLATE_3_DECL(Ifpack2ILUT, ParILUT, Scalar, LocalOrdinal, Gl
out << "|b-Ax| = [" << norms(0) << ", " << norms(1) << "]" << std::endl;
out << "|b-Ax|/|b| = [" << norms(0)/bnorms(0) << ", " << norms(1)/bnorms(1) << "]" << std::endl;
TEST_COMPARE(norms(0), <, 0.2 * bnorms(0));
TEST_COMPARE(norms(1), <, 0.2 * bnorms(1));
TEST_COMPARE(norms(1), <, 0.25 * bnorms(1));
} //ParILUT


Expand Down
Loading

0 comments on commit f3ff0b5

Please sign in to comment.