Regarding parallel code error

1 view
Skip to first unread message

Md Mahmudul Islam

unread,
2:44 AM (6 hours ago) 2:44 AM
to deal.II User Group
Hello deal.ii community,
I hope you all are doing great. I am writing my code in parallel, following step-55. I am working on time-dependent, incompressible, parameterized NSE with UQ. I can compile and run my code but if I run my code in 8 processors it runs in 1 and the give me error for other processors.
Could anyone please help me to solve the issue? I have attached the code and parameter file.

Thanks for your time and help.

Number of active cells: 16

   Number of degrees of freedom: 187 (162+25)

Time step size = 0.02, Number of time steps = 50

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.

   Solved in 36 iterations.


--------------------------------------------------------

An error occurred in line <529> of file </Users/mdmahmudulislam/dealii-candi/tmp/unpack/deal.II-v9.7.0/include/deal.II/lac/vector.templates.h> in function

    typename Vector<Number>::real_type dealii::Vector<float>::l2_norm() const [number = float]

The violated condition was: 

    dealii::numbers::is_finite(scale * std::sqrt(sum))

Additional information: 

    In a significant number of places, deal.II checks that some

    intermediate value is a finite number (as opposed to plus or minus

    infinity, or NaN/Not a Number). In the current function, we

    encountered a number that is not finite (its value is (nan,0) and

    therefore violates the current assertion).

    

    This may be due to the fact that some operation in this function

    created such a value, or because one of the arguments you passed to

    the function already had this value from some previous operation. In

    the latter case, this function only triggered the error but may not

    actually be responsible for the computation of the number that is not

    finite.

    

    There are two common cases where this situation happens. First, your

    code (or something in deal.II) divides by zero in a place where this

    should not happen. Or, you are trying to solve a linear system with an

    unsuitable solver (such as an indefinite or non-symmetric linear

    system using a Conjugate Gradient solver); such attempts oftentimes

    yield an operation somewhere that tries to divide by zero or take the

    square root of a negative value.

    

    In any case, when trying to find the source of the error, recall that

    the location where you are getting this error is simply the first

    place in the program where there is a check that a number (e.g., an

    element of a solution vector) is in fact finite, but that the actual

    error that computed the number may have happened far earlier. To find

    this location, you may want to add checks for finiteness in places of

    your program visited before the place where this error is produced.

    One way to check for finiteness is to use the 'AssertIsFinite' macro.


Stacktrace:

-----------

#0  2   libdeal_II.g.9.7.0.dylib            0x000000011778f500 _ZNK6dealii6VectorIfE7l2_normEv + 636: 2   libdeal_II.g.9.7.0.dylib            0x000000011778f500 _ZNK6dealii6VectorIfE7l2_normEv 

#1  3   step-55                             0x0000000104a72300 _ZN4SNSE29StochasticNavierStokesProblemILi2EE6EnergyEd + 400: 3   step-55                             0x0000000104a72300 _ZN4SNSE29StochasticNavierStokesProblemILi2EE6EnergyEd 

#2  4   step-55                             0x0000000104a61fe8 _ZN4SNSE29StochasticNavierStokesProblemILi2EE3runEv + 3048: 4   step-55                             0x0000000104a61fe8 _ZN4SNSE29StochasticNavierStokesProblemILi2EE3runEv 

#3  5   step-55                             0x0000000104a611cc main + 184: 5   step-55                             0x0000000104a611cc main 

#4  6   dyld                                0x000000018bbe9d54 start + 7184: 6   dyld                                0x000000018bbe9d54 start 

--------------------------------------------------------


Calling MPI_Abort now.

To break execution in a GDB session, execute 'break MPI_Abort' before running. You can also put the following into your ~/.gdbinit:

  set breakpoint pending on

  break MPI_Abort

  set breakpoint pending auto



Best Regards,
Md Mahmudul Islam
Graduate Student,
University of Alabama at Birmingham
parameter-file.prm
step-55.cc
Reply all
Reply to author
Forward
0 new messages