On 15-04-25 06:26 PM, Matthew Knepley wrote:
On Sat, Apr 25, 2015 at 8:23 PM, Danyang Su <[email protected]
<mailto:[email protected]>> wrote:
On 15-04-25 06:03 PM, Barry Smith wrote:
If this is what you got in your last run
at ../../gas_advection/velocity_g.F90:1344
1344 cinfrt =
cinfrt_dg(i1) * diff(ic,idim) !diff is a very
small value, e.g., 1.0d-316
then it is still catching floating point underflow, which
we do not want. This means either the change I suggested you
make in the fp.c code didn't work or it actually uses a
different floating point trap than that one. BTW: absurd
numbers like 1.0d-316 are often a symptom of uninitialized
data; could that be a problem that diff is not filled
correctly for all the ic, idim you are using?
This going round and round is very frustrating and a waste
of time. You need to be more proactive yourself and explore
the code and poke around to figure out how to solve the problem.
Please email
$PETSC_DIR/$PETSC_ARCH/include/petscvariables.h so I can see
what FP trap is being used on your machine.
Barry
Do you mean $PETSC_DIR/$PETSC_ARCH/conf/petscvariables? Otherwise
I cannot find this file.
Its include/petscconf.h
Do I need to reconfigure PETSc after changing the code you mentioned?
No, but you need to rebuild.
Yes, I have done 'gnumake'.
Matt Danyang On Apr 25, 2015, at 2:24 PM, Danyang Su <[email protected] <mailto:[email protected]>> wrote: On 15-04-25 11:55 AM, Barry Smith wrote: On Apr 25, 2015, at 1:51 PM, Danyang Su <[email protected] <mailto:[email protected]>> wrote: On 15-04-25 11:32 AM, Barry Smith wrote: I told you this yesterday. It is probably stopping here on a harmless underflow. You need to edit the PETSc code to not worry about underflow. Edit the file /home/dsu/Soft/PETSc/petsc-3.5.2/src/sys/error/fp.c and locate #elif defined PETSC_HAVE_XMMINTRIN_H _MM_SET_EXCEPTION_MASK(_MM_MASK_INEXACT); #else change it to #elif defined PETSC_HAVE_XMMINTRIN_H _MM_SET_EXCEPTION_MASK(_MM_MASK_INEXACT | _MM_MASK_UNDERFLOW); #else Then run make gnumake in the PETSc directory to compile the new version. Now link and run the program again with -fp_trap and see where it gets stuck this time. Did you do this? Barry Yes, I did change the code in fp.c and run 'make gnumake' in the PETSc directory. I just did a double check and ran make gnumake again and got the following information this time. dsu@nwmop:~/Soft/PETSc/petsc-3.5.2$ make gnumake Building PETSc using GNU Make with 10 build threads ========================================== make[1]: Entering directory `/home/dsu/Soft/PETSc/petsc-3.5.2' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/home/dsu/Soft/PETSc/petsc-3.5.2' ========================================= Then I recompiled the codes, ran with -fp_trap and still got the following error Backtrace for this error: Note: The EXACT line numbers in the stack are not available, [2]PETSC ERROR: INSTEAD the line number of the start of the function [2]PETSC ERROR: is given. [2]PETSC ERROR: [2] PetscDefaultFPTrap line 379 /home/dsu/Soft/PETSc/petsc-3.5.2/src/sys/error/fp.c INSTEAD the line number of the start of the function [3]PETSC ERROR: is given. [3]PETSC ERROR: [3] PetscDefaultFPTrap line 379 /home/dsu/Soft/PETSc/petsc-3.5.2/src/sys/error/fp.c [2]PETSC ERROR: User provided function() line 0 in Unknown file trapped floating point error [3]PETSC ERROR: User provided function() line 0 in Unknown file trapped floating point error This is different then what you sent a few minutes ago where it crashed in hypre. Anyways you need to use the -start_in_debugger business I sent in the previous email to see the exact place the problem occurs. Here is the information shown on gdb screen Program received signal SIGFPE, Arithmetic exception. 0x00000000006c2bef in velocity_g (l_sufx=1, suffix=..., nmax=12, njamxc=34, cinfradx=..., radial_coordx=.FALSE., _suffix=3) at ../../gas_advection/velocity_g.F90:1344 1344 cinfrt = cinfrt_dg(i1) * diff(ic,idim) !diff is a very small value, e.g., 1.0d-316 (gdb) After type cont on gdb screen, I got error information as below [1]PETSC ERROR: *** unknown floating point error occurred *** [1]PETSC ERROR: The specific exception can be determined by running in a debugger. When the [1]PETSC ERROR: debugger traps the signal, the exception can be found with fetestexcept(0x3d) [1]PETSC ERROR: where the result is a bitwise OR of the following flags: [1]PETSC ERROR: FE_INVALID=0x1 FE_DIVBYZERO=0x4 FE_OVERFLOW=0x8 FE_UNDERFLOW=0x10 FE_INEXACT=0x20 [1]PETSC ERROR: Try option -start_in_debugger [1]PETSC ERROR: likely location of problem given in stack below [1]PETSC ERROR: --------------------- Stack Frames ------------------------------------ [1]PETSC ERROR: Note: The EXACT line numbers in the stack are not available, [1]PETSC ERROR: INSTEAD the line number of the start of the function [1]PETSC ERROR: is given. [1]PETSC ERROR: [1] PetscDefaultFPTrap line 379 /home/dsu/Soft/PETSc/petsc-3.5.2/src/sys/error/fp.c [1]PETSC ERROR: User provided function() line 0 in Unknown file trapped floating point error [0]PETSC ERROR: *** unknown floating point error occurred *** [0]PETSC ERROR: The specific exception can be determined by running in a debugger. When the [0]PETSC ERROR: debugger traps the signal, the exception can be found with fetestexcept(0x3d) [0]PETSC ERROR: where the result is a bitwise OR of the following flags: [0]PETSC ERROR: FE_INVALID=0x1 FE_DIVBYZERO=0x4 FE_OVERFLOW=0x8 FE_UNDERFLOW=0x10 FE_INEXACT=0x20 [0]PETSC ERROR: Try option -start_in_debugger [0]PETSC ERROR: likely location of problem given in stack below Thanks, Danyang Thanks, Danyang On Apr 25, 2015, at 1:05 AM, Danyang Su <[email protected] <mailto:[email protected]>> wrote: Hi Barry and Satish, How can I get rid of unknown floating point error when a very small value is multiplied. e.g., cinfrt_dg(i1) and diff(ic,idim) are 1.0250235986806329E-008 8.6178408169776945E-317 respectively, cinfrt = cinfrt_dg(i1) * diff(ic,idim) I get the following error when run with "-fp_trap -start_in_debugger". Backtrace for this error: *** unknown floating point error occurred *** [2]PETSC ERROR: The specific exception canbe determined by running in a debugger. When the[2]PETSC ERROR: debugger traps the signal, the exception can be found with fetestexcept(0x3d)[2]PETSC ERROR: cinfrt_dg(i1),diff(ic,idim)1.0250235986806329E-008 8.6178408169776945E-317 where the result is a bitwise OR of the following flags: [2]PETSC ERROR: FE_INVALID=0x1 FE_DIVBYZERO=0x4 FE_OVERFLOW=0x8 FE_UNDERFLOW=0x10 FE_INEXACT=0x20 [2]PETSC ERROR: Try option -start_in_debugger [2]PETSC ERROR: likely location of problem given in stack below Thanks, Danyang On 15-04-24 01:54 PM, Danyang Su wrote: On 15-04-24 01:23 PM, Satish Balay wrote:c 4 1.0976214263087059E-067I don't think this number can be stored in a real*4. Satish Thanks, Satish. It is caused by this number. On Fri, 24 Apr 2015, Danyang Su wrote: On 15-04-24 11:12 AM, Barry Smith wrote: On Apr 24, 2015, at 1:05 PM, Danyang Su <[email protected] <mailto:[email protected]>> wrote: Hi All, One of my case crashes because of floating point exception when using 4 processors, as shown below. But if I run this case with 1 processor, it works fine. I have tested the codes with around 100 cases up to 768 processors, all other cases work fine. I just wonder if this kind of error is caused because of NaN in jacobi matrix, RHS or preconditioner? Yes, almost for sure it is one of these places. First run the bad case with -fp_trap if all goes well you'll see the function where the FPE is generated. Then run also with -start_in_debugger and type cont in all four debugger windows. When the FPE happens the debugger should stop showing exactly where the FPE happens. Barry Hi Barry, If run with -fp_trap -start_in_debugger, I got the following error [0]PETSC ERROR: *** unknown floating point error occurred *** [0]PETSC ERROR: The specific exception can be determined by running in a debugger. When the [0]PETSC ERROR: debugger traps the signal, the exception can be found with fetestexcept(0x3d) [0]PETSC ERROR: where the result is a bitwise OR of the following flags: [0]PETSC ERROR: FE_INVALID=0x1 FE_DIVBYZERO=0x4 FE_OVERFLOW=0x8 FE_UNDERFLOW=0x10 FE_INEXACT=0x20 [0]PETSC ERROR: Try option -start_in_debugger [0]PETSC ERROR: likely location of problem given in stack below [0]PETSC ERROR: --------------------- Stack Frames ------------------------------------ [0]PETSC ERROR: Note: The EXACT line numbers in the stack are not available, [0]PETSC ERROR: INSTEAD the line number of the start of the function [0]PETSC ERROR: is given. [0]PETSC ERROR: [0] PetscDefaultFPTrap line 379 /home/dsu/Soft/PETSc/petsc-3.5.2/src/sys/error/fp.c [0]PETSC ERROR: User provided function() line 0 in Unknown file trapped floating point error Program received signal SIGABRT: Process abort signal. Backtrace for this error: #0 0x7F4FEAB1C7D7 #1 0x7F4FEAB1CDDE #2 0x7F4FE9E1AD3F #3 0x7F4FE9E1ACC9 #4 0x7F4FE9E1E0D7 #5 0x7F4FEB0B6DCB #6 0x7F4FEB0B1825 #7 0x7F4FEB0B817F #8 0x7F4FE9E1AD3F #9 0x6972C8 in tprfrtlc_ at tprfrtlc.F90:2393 (discriminator 3) #10 0x4C6C87 in gcreact_ at gcreact.F90:678 #11 0x707E19 in initicrt_ at initicrt.F90:589 #12 0x4F42D0 in initprob_ at initprob.F90:430 #13 0x5AAF72 in driver_pc at driver_pc.F90:438 I checked the code at tprfrtlc.F90:2393,realbuffer_gb(1:nvars) =(/time,(c(ic),ic=1,nc-1), & (cx(ix),ix=1,nxout)/) All the values (time, c, cx) are reasonable, as shown below. The only possibility is that realbuffer_gb is in declared as real*4 if using sing precision output while time, c, cx are declared in real*8. I have a lot of similar data conversion from real*8 to real*4 output, other code does not return error. time 0.0000000000000000 c 1 9.9999999999999995E-008 c 2 3.1555251077549618E-003 c 3 7.1657814842179362E-008 c 4 1.0976214263087059E-067 c 5 5.2879822292305797E-004 c 6 9.9999999999999964E-005 c 7 6.4055731968811337E-005 c 8 3.4607572892578404E-020 cx 1 3.4376650636008101E-005 cx 2 7.3989678854017763E-012 cx 3 9.5317170613607207E-012 cx 4 2.2344525794718353E-015 cx 5 3.0624685689695889E-008 cx 6 1.0046157902783967E-007 cx 7 1.5320169154914984E-004 cx 8 8.6930292776346176E-014 cx 9 3.5944267559348721E-005 cx 10 3.0072645866951157E-018 cx 11 2.3592486321095017E-013 Thanks, Danyang I can check all the entries of jacobi matrix to see if the value is valid, but this seems not a good idea as it takes a long time to reach this point. If I restart the simulation from a specified time (e.g., 7.685 in this case), then the error does not occur. Would you please give me any suggestion on debugging this case? Thanks and Regards, Danyang timestep: 2730time: 7.665E+00 years delt: 1.000E-02 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 timestep: 2731time: 7.675E+00 years delt: 1.000E-02 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 timestep: 2732time: 7.685E+00 years delt: 1.000E-02 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 timestep: 2733time: 7.695E+00 years delt: 1.000E-02 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 timestep: 2734time: 7.705E+00 years delt: 1.000E-02 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 Reduce time step for reactive transport timestep: 2734time: 7.700E+00 years delt: 5.000E-03 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 Reduce time step for reactive transport timestep: 2734time: 7.697E+00 years delt: 2.500E-03 yearsiter: 1 timestep: max.sia: 0.000E+00 tol.sia: 0.000E+00 [1]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- [1]PETSC ERROR: Floating point exception [2]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- [2]PETSC ERROR: Floating point exception [2]PETSC ERROR: Vec entry at local location 0 is not-a-number or infinite at end of function: Parameter number 3 [2]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. [2]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014 [2]PETSC ERROR: [1]PETSC ERROR: Vec entry at local location 0 is not-a-number or infinite at end of function: Parameter number 3 [1]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. [1]PETSC ERROR: Petsc Release Version 3.5.2, Sep, 08, 2014 [1]PETSC ERROR: ../min3p_thcm_petsc_dbg on a linux-gnu-dbg named nwmop by dsu Thu Apr 23 15:38:52 2015 [1]PETSC ERROR: Configure options PETSC_ARCH=linux-gnu-dbg --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-mpich --download-mumps --download-hypre --download-superlu_dist --download-metis --download-parmetis --download-scalapack [1]PETSC ERROR: #1 VecValidValues() line 34 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/vec/vec/interface/rvector.c ../min3p_thcm_petsc_dbg on a linux-gnu-dbg named nwmop by dsu Thu Apr 23 15:38:52 2015 [2]PETSC ERROR: Configure options PETSC_ARCH=linux-gnu-dbg --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-mpich --download-mumps --download-hypre --download-superlu_dist --download-metis --download-parmetis --download-scalapack [2]PETSC ERROR: #1 VecValidValues() line 34 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/vec/vec/interface/rvector.c [2]PETSC ERROR: [1]PETSC ERROR: #2 PCApply() line 442 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/pc/interface/precon.c [1]PETSC ERROR: #2 PCApply() line 442 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/pc/interface/precon.c [2]PETSC ERROR: #3 KSP_PCApply() line 230 in /home/dsu/Soft/PETSc/petsc-3.5.2/include/petsc-private/kspimpl.h #3 KSP_PCApply() line 230 in /home/dsu/Soft/PETSc/petsc-3.5.2/include/petsc-private/kspimpl.h [1]PETSC ERROR: #4 KSPInitialResidual() line 63 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/ksp/interface/itres.c [2]PETSC ERROR: #4 KSPInitialResidual() line 63 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/ksp/interface/itres.c [1]PETSC ERROR: #5 KSPSolve_GMRES() line 234 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/ksp/impls/gmres/gmres.c [2]PETSC ERROR: #5 KSPSolve_GMRES() line 234 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/ksp/impls/gmres/gmres.c [2]PETSC ERROR: #6 KSPSolve() line 459 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/ksp/interface/itfunc.c [1]PETSC ERROR: #6 KSPSolve() line 459 in /home/dsu/Soft/PETSc/petsc-3.5.2/src/ksp/ksp/interface/itfunc.c ^C[mpiexec@nwmop] Sending Ctrl-C to processes as requested [mpiexec@nwmop] Press Ctrl-C again to force abort --What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.-- Norbert Wiener
#if !defined(INCLUDED_PETSCCONF_H)
#define INCLUDED_PETSCCONF_H
#ifndef IS_COLORING_MAX
#define IS_COLORING_MAX 65535
#endif
#ifndef STDC_HEADERS
#define STDC_HEADERS 1
#endif
#ifndef MPIU_COLORING_VALUE
#define MPIU_COLORING_VALUE MPI_UNSIGNED_SHORT
#endif
#ifndef PETSC_UINTPTR_T
#define PETSC_UINTPTR_T uintptr_t
#endif
#ifndef PETSC_HAVE_PTHREAD
#define PETSC_HAVE_PTHREAD 1
#endif
#ifndef PETSC_HAVE_SSL
#define PETSC_HAVE_SSL 1
#endif
#ifndef PETSC_DEPRECATED
#define PETSC_DEPRECATED(why) __attribute((deprecated))
#endif
#ifndef PETSC_REPLACE_DIR_SEPARATOR
#define PETSC_REPLACE_DIR_SEPARATOR '\\'
#endif
#ifndef PETSC_HAVE_SO_REUSEADDR
#define PETSC_HAVE_SO_REUSEADDR 1
#endif
#ifndef PETSC_HAVE_MPI
#define PETSC_HAVE_MPI 1
#endif
#ifndef PETSC_PREFETCH_HINT_T2
#define PETSC_PREFETCH_HINT_T2 _MM_HINT_T2
#endif
#ifndef PETSC_PREFETCH_HINT_T0
#define PETSC_PREFETCH_HINT_T0 _MM_HINT_T0
#endif
#ifndef PETSC_PREFETCH_HINT_T1
#define PETSC_PREFETCH_HINT_T1 _MM_HINT_T1
#endif
#ifndef PETSC_USE_SOCKET_VIEWER
#define PETSC_USE_SOCKET_VIEWER 1
#endif
#ifndef PETSC_DIR
#define PETSC_DIR "/home/dsu/Soft/PETSc/petsc-3.5.2"
#endif
#ifndef PETSC_HAVE_HYPRE
#define PETSC_HAVE_HYPRE 1
#endif
#ifndef PETSC_LIB_DIR
#define PETSC_LIB_DIR "/home/dsu/Soft/PETSc/petsc-3.5.2/linux-gnu-dbg/lib"
#endif
#ifndef PETSC_HAVE_SUPERLU_DIST
#define PETSC_HAVE_SUPERLU_DIST 1
#endif
#ifndef PETSC_HAVE_PARMETIS
#define PETSC_HAVE_PARMETIS 1
#endif
#ifndef PETSC_HAVE_FORTRAN
#define PETSC_HAVE_FORTRAN 1
#endif
#ifndef PETSC_USE_ISATTY
#define PETSC_USE_ISATTY 1
#endif
#ifndef PETSC_SLSUFFIX
#define PETSC_SLSUFFIX "so"
#endif
#ifndef PETSC_FUNCTION_NAME_CXX
#define PETSC_FUNCTION_NAME_CXX __func__
#endif
#ifndef PETSC_HAVE_MUMPS
#define PETSC_HAVE_MUMPS 1
#endif
#ifndef PETSC_HAVE_FBLASLAPACK
#define PETSC_HAVE_FBLASLAPACK 1
#endif
#ifndef PETSC_HAVE_ATOLL
#define PETSC_HAVE_ATOLL 1
#endif
#ifndef PETSC_HAVE_DOUBLE_ALIGN_MALLOC
#define PETSC_HAVE_DOUBLE_ALIGN_MALLOC 1
#endif
#ifndef PETSC_UNUSED
#define PETSC_UNUSED __attribute((unused))
#endif
#ifndef PETSC_FUNCTION_NAME_C
#define PETSC_FUNCTION_NAME_C __func__
#endif
#ifndef PETSC_HAVE_VALGRIND
#define PETSC_HAVE_VALGRIND 1
#endif
#ifndef PETSC_USE_SINGLE_LIBRARY
#define PETSC_USE_SINGLE_LIBRARY 1
#endif
#ifndef PETSC_HAVE_BUILTIN_EXPECT
#define PETSC_HAVE_BUILTIN_EXPECT 1
#endif
#ifndef PETSC_HAVE_METIS
#define PETSC_HAVE_METIS 1
#endif
#ifndef PETSC_DIR_SEPARATOR
#define PETSC_DIR_SEPARATOR '/'
#endif
#ifndef PETSC_PATH_SEPARATOR
#define PETSC_PATH_SEPARATOR ':'
#endif
#ifndef PETSC_HAVE_XMMINTRIN_H
#define PETSC_HAVE_XMMINTRIN_H 1
#endif
#ifndef PETSC_PREFETCH_HINT_NTA
#define PETSC_PREFETCH_HINT_NTA _MM_HINT_NTA
#endif
#ifndef PETSC_Prefetch
#define PETSC_Prefetch(a,b,c) _mm_prefetch((const char*)(a),(c))
#endif
#ifndef PETSC_HAVE_BLASLAPACK
#define PETSC_HAVE_BLASLAPACK 1
#endif
#ifndef PETSC_HAVE_GZIP
#define PETSC_HAVE_GZIP 1
#endif
#ifndef PETSC_HAVE_STRING_H
#define PETSC_HAVE_STRING_H 1
#endif
#ifndef PETSC_HAVE_SYS_TYPES_H
#define PETSC_HAVE_SYS_TYPES_H 1
#endif
#ifndef PETSC_HAVE_ENDIAN_H
#define PETSC_HAVE_ENDIAN_H 1
#endif
#ifndef PETSC_HAVE_SYS_PROCFS_H
#define PETSC_HAVE_SYS_PROCFS_H 1
#endif
#ifndef PETSC_HAVE_DLFCN_H
#define PETSC_HAVE_DLFCN_H 1
#endif
#ifndef PETSC_HAVE_SCHED_H
#define PETSC_HAVE_SCHED_H 1
#endif
#ifndef PETSC_HAVE_STDINT_H
#define PETSC_HAVE_STDINT_H 1
#endif
#ifndef PETSC_HAVE_LINUX_KERNEL_H
#define PETSC_HAVE_LINUX_KERNEL_H 1
#endif
#ifndef PETSC_HAVE_TIME_H
#define PETSC_HAVE_TIME_H 1
#endif
#ifndef PETSC_HAVE_MATH_H
#define PETSC_HAVE_MATH_H 1
#endif
#ifndef PETSC_TIME_WITH_SYS_TIME
#define PETSC_TIME_WITH_SYS_TIME 1
#endif
#ifndef PETSC_HAVE_SYS_PARAM_H
#define PETSC_HAVE_SYS_PARAM_H 1
#endif
#ifndef PETSC_HAVE_PTHREAD_H
#define PETSC_HAVE_PTHREAD_H 1
#endif
#ifndef PETSC_HAVE_UNISTD_H
#define PETSC_HAVE_UNISTD_H 1
#endif
#ifndef PETSC_HAVE_STDLIB_H
#define PETSC_HAVE_STDLIB_H 1
#endif
#ifndef PETSC_HAVE_SYS_WAIT_H
#define PETSC_HAVE_SYS_WAIT_H 1
#endif
#ifndef PETSC_HAVE_SETJMP_H
#define PETSC_HAVE_SETJMP_H 1
#endif
#ifndef PETSC_HAVE_LIMITS_H
#define PETSC_HAVE_LIMITS_H 1
#endif
#ifndef PETSC_HAVE_SYS_UTSNAME_H
#define PETSC_HAVE_SYS_UTSNAME_H 1
#endif
#ifndef PETSC_HAVE_NETINET_IN_H
#define PETSC_HAVE_NETINET_IN_H 1
#endif
#ifndef PETSC_HAVE_SYS_SOCKET_H
#define PETSC_HAVE_SYS_SOCKET_H 1
#endif
#ifndef PETSC_HAVE_FLOAT_H
#define PETSC_HAVE_FLOAT_H 1
#endif
#ifndef PETSC_HAVE_SEARCH_H
#define PETSC_HAVE_SEARCH_H 1
#endif
#ifndef PETSC_HAVE_SYS_RESOURCE_H
#define PETSC_HAVE_SYS_RESOURCE_H 1
#endif
#ifndef PETSC_HAVE_SYS_TIMES_H
#define PETSC_HAVE_SYS_TIMES_H 1
#endif
#ifndef PETSC_HAVE_NETDB_H
#define PETSC_HAVE_NETDB_H 1
#endif
#ifndef PETSC_HAVE_MALLOC_H
#define PETSC_HAVE_MALLOC_H 1
#endif
#ifndef PETSC_HAVE_PWD_H
#define PETSC_HAVE_PWD_H 1
#endif
#ifndef PETSC_HAVE_FCNTL_H
#define PETSC_HAVE_FCNTL_H 1
#endif
#ifndef PETSC_HAVE_STRINGS_H
#define PETSC_HAVE_STRINGS_H 1
#endif
#ifndef PETSC_HAVE_SYS_SYSINFO_H
#define PETSC_HAVE_SYS_SYSINFO_H 1
#endif
#ifndef PETSC_HAVE_SYS_TIME_H
#define PETSC_HAVE_SYS_TIME_H 1
#endif
#ifndef PETSC_USING_F90
#define PETSC_USING_F90 1
#endif
#ifndef PETSC_USING_F2003
#define PETSC_USING_F2003 1
#endif
#ifndef PETSC_HAVE_RTLD_NOW
#define PETSC_HAVE_RTLD_NOW 1
#endif
#ifndef PETSC_HAVE_RTLD_LOCAL
#define PETSC_HAVE_RTLD_LOCAL 1
#endif
#ifndef PETSC_HAVE_RTLD_LAZY
#define PETSC_HAVE_RTLD_LAZY 1
#endif
#ifndef PETSC_C_STATIC_INLINE
#define PETSC_C_STATIC_INLINE static inline
#endif
#ifndef PETSC_HAVE_FORTRAN_UNDERSCORE
#define PETSC_HAVE_FORTRAN_UNDERSCORE 1
#endif
#ifndef PETSC_HAVE_CXX_NAMESPACE
#define PETSC_HAVE_CXX_NAMESPACE 1
#endif
#ifndef PETSC_HAVE_RTLD_GLOBAL
#define PETSC_HAVE_RTLD_GLOBAL 1
#endif
#ifndef PETSC_C_RESTRICT
#define PETSC_C_RESTRICT __restrict__
#endif
#ifndef PETSC_CXX_RESTRICT
#define PETSC_CXX_RESTRICT __restrict__
#endif
#ifndef PETSC_CXX_STATIC_INLINE
#define PETSC_CXX_STATIC_INLINE static inline
#endif
#ifndef PETSC_HAVE_LIBZ
#define PETSC_HAVE_LIBZ 1
#endif
#ifndef PETSC_HAVE_LIBDL
#define PETSC_HAVE_LIBDL 1
#endif
#ifndef PETSC_HAVE_LIBGFORTRAN
#define PETSC_HAVE_LIBGFORTRAN 1
#endif
#ifndef PETSC_HAVE_LIBSCALAPACK
#define PETSC_HAVE_LIBSCALAPACK 1
#endif
#ifndef PETSC_HAVE_LIBMETIS
#define PETSC_HAVE_LIBMETIS 1
#endif
#ifndef PETSC_HAVE_LIBCRYPTO
#define PETSC_HAVE_LIBCRYPTO 1
#endif
#ifndef PETSC_HAVE_LIBM
#define PETSC_HAVE_LIBM 1
#endif
#ifndef PETSC_HAVE_LIBDMUMPS
#define PETSC_HAVE_LIBDMUMPS 1
#endif
#ifndef PETSC_HAVE_LIBMUMPS_COMMON
#define PETSC_HAVE_LIBMUMPS_COMMON 1
#endif
#ifndef PETSC_HAVE_LIBPTHREAD
#define PETSC_HAVE_LIBPTHREAD 1
#endif
#ifndef PETSC_HAVE_LIBMPICHCXX
#define PETSC_HAVE_LIBMPICHCXX 1
#endif
#ifndef PETSC_HAVE_LIBPARMETIS
#define PETSC_HAVE_LIBPARMETIS 1
#endif
#ifndef PETSC_HAVE_LIBFBLAS
#define PETSC_HAVE_LIBFBLAS 1
#endif
#ifndef PETSC_HAVE_LIBSUPERLU_DIST_3
#define PETSC_HAVE_LIBSUPERLU_DIST_3 1
#endif
#ifndef PETSC_HAVE_LIBZMUMPS
#define PETSC_HAVE_LIBZMUMPS 1
#endif
#ifndef PETSC_HAVE_LIBSTDC__
#define PETSC_HAVE_LIBSTDC__ 1
#endif
#ifndef PETSC_HAVE_FENV_H
#define PETSC_HAVE_FENV_H 1
#endif
#ifndef PETSC_HAVE_LIBHYPRE
#define PETSC_HAVE_LIBHYPRE 1
#endif
#ifndef PETSC_HAVE_LIBPORD
#define PETSC_HAVE_LIBPORD 1
#endif
#ifndef PETSC_HAVE_LIBSMUMPS
#define PETSC_HAVE_LIBSMUMPS 1
#endif
#ifndef PETSC_HAVE_LIBMPICHF90
#define PETSC_HAVE_LIBMPICHF90 1
#endif
#ifndef PETSC_HAVE_LIBCMUMPS
#define PETSC_HAVE_LIBCMUMPS 1
#endif
#ifndef PETSC_HAVE_LIBFLAPACK
#define PETSC_HAVE_LIBFLAPACK 1
#endif
#ifndef PETSC_HAVE_ERF
#define PETSC_HAVE_ERF 1
#endif
#ifndef PETSC_HAVE_LIBSSL
#define PETSC_HAVE_LIBSSL 1
#endif
#ifndef PETSC_HAVE_LIBQUADMATH
#define PETSC_HAVE_LIBQUADMATH 1
#endif
#ifndef PETSC_HAVE_TGAMMA
#define PETSC_HAVE_TGAMMA 1
#endif
#ifndef PETSC_ARCH
#define PETSC_ARCH "linux-gnu-dbg"
#endif
#ifndef PETSC_CLANGUAGE_C
#define PETSC_CLANGUAGE_C 1
#endif
#ifndef PETSC_USE_ERRORCHECKING
#define PETSC_USE_ERRORCHECKING 1
#endif
#ifndef PETSC_MISSING_DREAL
#define PETSC_MISSING_DREAL 1
#endif
#ifndef PETSC_SIZEOF_MPI_COMM
#define PETSC_SIZEOF_MPI_COMM 4
#endif
#ifndef PETSC_BITS_PER_BYTE
#define PETSC_BITS_PER_BYTE 8
#endif
#ifndef PETSC_SIZEOF_MPI_FINT
#define PETSC_SIZEOF_MPI_FINT 4
#endif
#ifndef PETSC_SIZEOF_VOID_P
#define PETSC_SIZEOF_VOID_P 8
#endif
#ifndef PETSC_RETSIGTYPE
#define PETSC_RETSIGTYPE void
#endif
#ifndef PETSC_HAVE_CXX_COMPLEX
#define PETSC_HAVE_CXX_COMPLEX 1
#endif
#ifndef PETSC_SIZEOF_LONG
#define PETSC_SIZEOF_LONG 8
#endif
#ifndef PETSC_USE_FORTRANKIND
#define PETSC_USE_FORTRANKIND 1
#endif
#ifndef PETSC_SIZEOF_SIZE_T
#define PETSC_SIZEOF_SIZE_T 8
#endif
#ifndef PETSC_HAVE_SIGINFO_T
#define PETSC_HAVE_SIGINFO_T 1
#endif
#ifndef PETSC_SIZEOF_CHAR
#define PETSC_SIZEOF_CHAR 1
#endif
#ifndef PETSC_SIZEOF_DOUBLE
#define PETSC_SIZEOF_DOUBLE 8
#endif
#ifndef PETSC_SIZEOF_FLOAT
#define PETSC_SIZEOF_FLOAT 4
#endif
#ifndef PETSC_HAVE_C99_COMPLEX
#define PETSC_HAVE_C99_COMPLEX 1
#endif
#ifndef PETSC_SIZEOF_INT
#define PETSC_SIZEOF_INT 4
#endif
#ifndef PETSC_SIZEOF_LONG_LONG
#define PETSC_SIZEOF_LONG_LONG 8
#endif
#ifndef PETSC_SIZEOF_SHORT
#define PETSC_SIZEOF_SHORT 2
#endif
#ifndef PETSC_HAVE_STRCASECMP
#define PETSC_HAVE_STRCASECMP 1
#endif
#ifndef PETSC_HAVE_GET_NPROCS
#define PETSC_HAVE_GET_NPROCS 1
#endif
#ifndef PETSC_HAVE_POPEN
#define PETSC_HAVE_POPEN 1
#endif
#ifndef PETSC_HAVE_SIGSET
#define PETSC_HAVE_SIGSET 1
#endif
#ifndef PETSC_HAVE_GETWD
#define PETSC_HAVE_GETWD 1
#endif
#ifndef PETSC_HAVE_VSNPRINTF
#define PETSC_HAVE_VSNPRINTF 1
#endif
#ifndef PETSC_HAVE_TIMES
#define PETSC_HAVE_TIMES 1
#endif
#ifndef PETSC_HAVE_DLSYM
#define PETSC_HAVE_DLSYM 1
#endif
#ifndef PETSC_HAVE_SNPRINTF
#define PETSC_HAVE_SNPRINTF 1
#endif
#ifndef PETSC_HAVE_GETHOSTBYNAME
#define PETSC_HAVE_GETHOSTBYNAME 1
#endif
#ifndef PETSC_HAVE_GETCWD
#define PETSC_HAVE_GETCWD 1
#endif
#ifndef PETSC_HAVE_DLERROR
#define PETSC_HAVE_DLERROR 1
#endif
#ifndef PETSC_HAVE_FORK
#define PETSC_HAVE_FORK 1
#endif
#ifndef PETSC_HAVE_RAND
#define PETSC_HAVE_RAND 1
#endif
#ifndef PETSC_HAVE_GETTIMEOFDAY
#define PETSC_HAVE_GETTIMEOFDAY 1
#endif
#ifndef PETSC_HAVE_DLCLOSE
#define PETSC_HAVE_DLCLOSE 1
#endif
#ifndef PETSC_HAVE_UNAME
#define PETSC_HAVE_UNAME 1
#endif
#ifndef PETSC_HAVE_GETHOSTNAME
#define PETSC_HAVE_GETHOSTNAME 1
#endif
#ifndef PETSC_HAVE_MKSTEMP
#define PETSC_HAVE_MKSTEMP 1
#endif
#ifndef PETSC_HAVE_SIGACTION
#define PETSC_HAVE_SIGACTION 1
#endif
#ifndef PETSC_HAVE_DRAND48
#define PETSC_HAVE_DRAND48 1
#endif
#ifndef PETSC_HAVE_MEMALIGN
#define PETSC_HAVE_MEMALIGN 1
#endif
#ifndef PETSC_HAVE_VA_COPY
#define PETSC_HAVE_VA_COPY 1
#endif
#ifndef PETSC_HAVE_CLOCK
#define PETSC_HAVE_CLOCK 1
#endif
#ifndef PETSC_HAVE_ACCESS
#define PETSC_HAVE_ACCESS 1
#endif
#ifndef PETSC_HAVE_SIGNAL
#define PETSC_HAVE_SIGNAL 1
#endif
#ifndef PETSC_HAVE_USLEEP
#define PETSC_HAVE_USLEEP 1
#endif
#ifndef PETSC_HAVE_GETRUSAGE
#define PETSC_HAVE_GETRUSAGE 1
#endif
#ifndef PETSC_HAVE_VFPRINTF
#define PETSC_HAVE_VFPRINTF 1
#endif
#ifndef PETSC_HAVE_NANOSLEEP
#define PETSC_HAVE_NANOSLEEP 1
#endif
#ifndef PETSC_HAVE_GETDOMAINNAME
#define PETSC_HAVE_GETDOMAINNAME 1
#endif
#ifndef PETSC_HAVE_TIME
#define PETSC_HAVE_TIME 1
#endif
#ifndef PETSC_HAVE_LSEEK
#define PETSC_HAVE_LSEEK 1
#endif
#ifndef PETSC_HAVE_SOCKET
#define PETSC_HAVE_SOCKET 1
#endif
#ifndef PETSC_HAVE_SYSINFO
#define PETSC_HAVE_SYSINFO 1
#endif
#ifndef PETSC_HAVE_READLINK
#define PETSC_HAVE_READLINK 1
#endif
#ifndef PETSC_HAVE_REALPATH
#define PETSC_HAVE_REALPATH 1
#endif
#ifndef PETSC_HAVE_DLOPEN
#define PETSC_HAVE_DLOPEN 1
#endif
#ifndef PETSC_HAVE_MEMMOVE
#define PETSC_HAVE_MEMMOVE 1
#endif
#ifndef PETSC_HAVE__GFORTRAN_IARGC
#define PETSC_HAVE__GFORTRAN_IARGC 1
#endif
#ifndef PETSC_SIGNAL_CAST
#define PETSC_SIGNAL_CAST
#endif
#ifndef PETSC_HAVE_SLEEP
#define PETSC_HAVE_SLEEP 1
#endif
#ifndef PETSC_HAVE_VPRINTF
#define PETSC_HAVE_VPRINTF 1
#endif
#ifndef PETSC_HAVE_BZERO
#define PETSC_HAVE_BZERO 1
#endif
#ifndef PETSC_HAVE_GETPAGESIZE
#define PETSC_HAVE_GETPAGESIZE 1
#endif
#ifndef PETSC_WRITE_MEMORY_BARRIER
#define PETSC_WRITE_MEMORY_BARRIER() asm volatile("sfence":::"memory")
#endif
#ifndef PETSC_MEMORY_BARRIER
#define PETSC_MEMORY_BARRIER() asm volatile("mfence":::"memory")
#endif
#ifndef PETSC_READ_MEMORY_BARRIER
#define PETSC_READ_MEMORY_BARRIER() asm volatile("lfence":::"memory")
#endif
#ifndef PETSC_CPU_RELAX
#define PETSC_CPU_RELAX() asm volatile("rep; nop" ::: "memory")
#endif
#ifndef PETSC_HAVE_MPI_F90MODULE
#define PETSC_HAVE_MPI_F90MODULE 1
#endif
#ifndef PETSC_HAVE_MPI_IALLREDUCE
#define PETSC_HAVE_MPI_IALLREDUCE 1
#endif
#ifndef PETSC_HAVE_MPI_IN_PLACE
#define PETSC_HAVE_MPI_IN_PLACE 1
#endif
#ifndef PETSC_HAVE_MPI_COMM_C2F
#define PETSC_HAVE_MPI_COMM_C2F 1
#endif
#ifndef PETSC_HAVE_MPI_COMBINER_CONTIGUOUS
#define PETSC_HAVE_MPI_COMBINER_CONTIGUOUS 1
#endif
#ifndef PETSC_HAVE_MPI_INT64_T
#define PETSC_HAVE_MPI_INT64_T 1
#endif
#ifndef PETSC_HAVE_MPI_TYPE_GET_EXTENT
#define PETSC_HAVE_MPI_TYPE_GET_EXTENT 1
#endif
#ifndef PETSC_HAVE_MPI_WIN_CREATE
#define PETSC_HAVE_MPI_WIN_CREATE 1
#endif
#ifndef PETSC_HAVE_MPI_TYPE_DUP
#define PETSC_HAVE_MPI_TYPE_DUP 1
#endif
#ifndef PETSC_HAVE_MPI_INIT_THREAD
#define PETSC_HAVE_MPI_INIT_THREAD 1
#endif
#ifndef PETSC_HAVE_MPI_LONG_DOUBLE
#define PETSC_HAVE_MPI_LONG_DOUBLE 1
#endif
#ifndef PETSC_HAVE_MPI_COMM_F2C
#define PETSC_HAVE_MPI_COMM_F2C 1
#endif
#ifndef PETSC_HAVE_MPI_TYPE_GET_ENVELOPE
#define PETSC_HAVE_MPI_TYPE_GET_ENVELOPE 1
#endif
#ifndef PETSC_HAVE_MPICH_CH3_SOCK
#define PETSC_HAVE_MPICH_CH3_SOCK 1
#endif
#ifndef PETSC_HAVE_MPI_COMBINER_DUP
#define PETSC_HAVE_MPI_COMBINER_DUP 1
#endif
#ifndef PETSC_HAVE_MPICH_NUMVERSION
#define PETSC_HAVE_MPICH_NUMVERSION 30100300
#endif
#ifndef PETSC_HAVE_MPIIO
#define PETSC_HAVE_MPIIO 1
#endif
#ifndef PETSC_HAVE_MPI_COMM_SPAWN
#define PETSC_HAVE_MPI_COMM_SPAWN 1
#endif
#ifndef PETSC_HAVE_MPICH_CH3_SOCK_FIXED_NBC_PROGRESS
#define PETSC_HAVE_MPICH_CH3_SOCK_FIXED_NBC_PROGRESS 1
#endif
#ifndef PETSC_HAVE_MPI_FINT
#define PETSC_HAVE_MPI_FINT 1
#endif
#ifndef PETSC_HAVE_MPI_IBARRIER
#define PETSC_HAVE_MPI_IBARRIER 1
#endif
#ifndef PETSC_HAVE_MPI_ALLTOALLW
#define PETSC_HAVE_MPI_ALLTOALLW 1
#endif
#ifndef PETSC_HAVE_MPI_REPLACE
#define PETSC_HAVE_MPI_REPLACE 1
#endif
#ifndef PETSC_HAVE_MPI_EXSCAN
#define PETSC_HAVE_MPI_EXSCAN 1
#endif
#ifndef PETSC_HAVE_MPI_C_DOUBLE_COMPLEX
#define PETSC_HAVE_MPI_C_DOUBLE_COMPLEX 1
#endif
#ifndef PETSC_HAVE_MPI_FINALIZED
#define PETSC_HAVE_MPI_FINALIZED 1
#endif
#ifndef PETSC_BLASLAPACK_UNDERSCORE
#define PETSC_BLASLAPACK_UNDERSCORE 1
#endif
#ifndef PETSC_USE_SCALAR_REAL
#define PETSC_USE_SCALAR_REAL 1
#endif
#ifndef PETSC_HAVE_ISINF
#define PETSC_HAVE_ISINF 1
#endif
#ifndef PETSC_HAVE_ISNAN
#define PETSC_HAVE_ISNAN 1
#endif
#ifndef PETSC_USE_REAL_DOUBLE
#define PETSC_USE_REAL_DOUBLE 1
#endif
#ifndef PETSC__GNU_SOURCE
#define PETSC__GNU_SOURCE 1
#endif
#ifndef PETSC__BSD_SOURCE
#define PETSC__BSD_SOURCE 1
#endif
#ifndef PETSC_USE_GDB_DEBUGGER
#define PETSC_USE_GDB_DEBUGGER 1
#endif
#ifndef PETSC_MEMALIGN
#define PETSC_MEMALIGN 16
#endif
#ifndef PETSC_USE_PROC_FOR_SIZE
#define PETSC_USE_PROC_FOR_SIZE 1
#endif
#ifndef PETSC_HAVE_DYNAMIC_LIBRARIES
#define PETSC_HAVE_DYNAMIC_LIBRARIES 1
#endif
#ifndef PETSC_HAVE_SHARED_LIBRARIES
#define PETSC_HAVE_SHARED_LIBRARIES 1
#endif
#ifndef PETSC_USE_SHARED_LIBRARIES
#define PETSC_USE_SHARED_LIBRARIES 1
#endif
#ifndef PETSC_USE_INFO
#define PETSC_USE_INFO 1
#endif
#ifndef PETSC_Alignx
#define PETSC_Alignx(a,b)
#endif
#ifndef PETSC_USE_BACKWARD_LOOP
#define PETSC_USE_BACKWARD_LOOP 1
#endif
#ifndef PETSC_USE_DEBUG
#define PETSC_USE_DEBUG 1
#endif
#ifndef PETSC_IS_COLOR_VALUE_TYPE_SIZE
#define PETSC_IS_COLOR_VALUE_TYPE_SIZE PETSC_SIZEOF_SHORT
#endif
#ifndef PETSC_USE_LOG
#define PETSC_USE_LOG 1
#endif
#ifndef PETSC_IS_COLOR_VALUE_TYPE
#define PETSC_IS_COLOR_VALUE_TYPE short
#endif
#ifndef PETSC_USE_CTABLE
#define PETSC_USE_CTABLE 1
#endif
#ifndef PETSC_LEVEL1_DCACHE_LINESIZE
#define PETSC_LEVEL1_DCACHE_LINESIZE 64
#endif
#ifndef PETSC_LEVEL1_DCACHE_SIZE
#define PETSC_LEVEL1_DCACHE_SIZE 32768
#endif
#ifndef PETSC_LEVEL1_DCACHE_ASSOC
#define PETSC_LEVEL1_DCACHE_ASSOC 8
#endif
#ifndef PETSC_HAVE_FORTRAN_GET_COMMAND_ARGUMENT
#define PETSC_HAVE_FORTRAN_GET_COMMAND_ARGUMENT 1
#endif
#ifndef PETSC_HAVE_GFORTRAN_IARGC
#define PETSC_HAVE_GFORTRAN_IARGC 1
#endif
#ifndef PETSC_HAVE_SCHED_CPU_SET_T
#define PETSC_HAVE_SCHED_CPU_SET_T 1
#endif
#ifndef PETSC_HAVE_PTHREAD_BARRIER_T
#define PETSC_HAVE_PTHREAD_BARRIER_T 1
#endif
#ifndef PETSC_HAVE_SYS_SYSCTL_H
#define PETSC_HAVE_SYS_SYSCTL_H 1
#endif
#endif
