Re: [petsc-dev] misleading error message in VecWAXPY
We could check PetscIsInfOrNanScalar first. On Tue, Jun 5, 2012 at 1:13 PM, Barry Smith <[email protected]> wrote:
Suggestions for improvements for the checks?
#define PetscValidLogicalCollectiveScalar(a,b,c) \ do { \ PetscErrorCode _7_ierr; \ PetscReal b1[2],b2[2]; \ b1[0] = -PetscRealPart(b); b1[1] = PetscRealPart(b); \ _7_ierr = MPI_Allreduce(b1,b2,2,MPIU_REAL,MPIU_MAX,((PetscObject)a)->comm);CHKERRQ(_7_ierr); \ if (-b2[0] != b2[1]) SETERRQ1(((PetscObject)a)->comm,PETSC_ERR_ARG_WRONG,"Scalar value must be same on all processes, argument # %d",c); \ } while (0)
#define PetscValidLogicalCollectiveReal(a,b,c) \ do { \ PetscErrorCode _7_ierr; \ PetscReal b1[2],b2[2]; \ b1[0] = -b; b1[1] = b; \ _7_ierr = MPI_Allreduce(b1,b2,2,MPIU_REAL,MPIU_MAX,((PetscObject)a)->comm);CHKERRQ(_7_ierr); \ if (-b2[0] != b2[1]) SETERRQ1(((PetscObject)a)->comm,PETSC_ERR_ARG_WRONG,"Real value must be same on all processes, argument # %d",c); \ } while (0)
On Jun 5, 2012, at 11:25 AM, Blaise Bourdin wrote:
Hi,
It looks like when VecWAXPY is called with alpha=Nan, PetscValidLogicalCollectiveScalar causes the message "Scalar value must be same on all processes, argument # 2" to be printed. This is a bit misleading, and confusing when running on only 1 processor.
Is this something worth fixing?
Blaise
-- Department of Mathematics and Center for Computation & Technology Louisiana State University, Baton Rouge, LA 70803, USA Tel. +1 (225) 578 1612, Fax +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin
participants (1)
-
Jed Brown