diff --git a/dockerfiles/Dockerfile b/dockerfiles/Dockerfile index a31c3b7..40c278f 100644 --- a/dockerfiles/Dockerfile +++ b/dockerfiles/Dockerfile @@ -14,7 +14,8 @@ LABEL description="PFLARE" ENV CHECKOUT_BRANCH=$BRANCH ENV PETSC_ARCH=$ARCH # -on_error_abort ensures any test failures are caught and the build fails -ENV PETSC_OPTIONS="-on_error_abort" +# fp trap turns on floating point exception trapping in petsc +ENV PETSC_OPTIONS="-on_error_abort -fp_trap on" WORKDIR /build diff --git a/src/Gmres_Poly.F90 b/src/Gmres_Poly.F90 index 780da67..b5d88d4 100644 --- a/src/Gmres_Poly.F90 +++ b/src/Gmres_Poly.F90 @@ -1225,7 +1225,7 @@ subroutine mat_mult_powers_share_sparsity_cpu(matrix, poly_order, poly_sparsity_ ! ~~~~~~~~~~~ if (ncols /= 0 .AND. coefficients(term) /= 0d0) then call MatSetValues(cmat, one, [global_row_start + i_loc-1], ncols, cols, & - coefficients(term) * vals_power_temp, ADD_VALUES, ierr) + coefficients(term) * vals_power_temp(1:ncols), ADD_VALUES, ierr) end if ! This should now have the value of A^(term-1) in it