Skip to content

Commit

Permalink
[workspace] Upgrade petsc to latest release v3.17.1 (RobotLocomotion#…
Browse files Browse the repository at this point in the history
…17273)

Co-authored-by: Betsy McPhail <betsy.mcphail@kitware.com>
Co-authored-by: Xuchen Han <xuchen.han@tri.global>
  • Loading branch information
3 people authored and hongkai-dai committed Jun 3, 2022
1 parent 7037a35 commit 8e2da89
Show file tree
Hide file tree
Showing 13 changed files with 73 additions and 76 deletions.
3 changes: 3 additions & 0 deletions tools/workspace/petsc/package.BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ _SRCS = glob([
"src/dm/impls/da/hypre/**",
"src/dm/impls/da/usfft/**",
"src/dm/impls/forest/p4est/**",
"src/dm/impls/plex/adaptors/**",
"src/dm/impls/plex/generators/**",
"src/ksp/ksp/impls/gmres/agmres/**",
"src/ksp/ksp/interface/saws/**",
Expand Down Expand Up @@ -100,6 +101,7 @@ _SRCS = glob([
"src/mat/impls/sbaij/seq/cholmod/**",
"src/mat/impls/scalapack/**",
"src/mat/order/amd/**",
"src/mat/order/metisnd/**",
"src/mat/partition/impls/chaco/**",
"src/mat/partition/impls/party/**",
"src/mat/partition/impls/pmetis/**",
Expand All @@ -119,6 +121,7 @@ _SRCS = glob([
"src/sys/classes/viewer/impls/socket/**",
"src/sys/logging/utils/**",
"src/ts/**",
"src/vec/is/sf/impls/basic/neighbor/**",
"src/vec/is/sf/impls/window/**",
"src/vec/vec/impls/seq/seqcuda/**",
])
Expand Down
4 changes: 2 additions & 2 deletions tools/workspace/petsc/patches/baij.patch
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ index 7cf0f8e22a..c83e639fd7 100644
+++ src/mat/impls/baij/seq/baij.c
@@ -1797,7 +1797,8 @@ PetscErrorCode MatGetValues_SeqBAIJ(Mat A,PetscInt m,const PetscInt im[],PetscIn
row = im[k]; brow = row/bs;
if (row < 0) {v += n; continue;} /* SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Negative row"); */
if (row >= A->rmap->N) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Row %D too large", row);
if (row < 0) {v += n; continue;} /* negative row */
PetscCheck(row < A->rmap->N,PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE,"Row %" PetscInt_FMT " too large", row);
- rp = aj + ai[brow]; ap = aa + bs2*ai[brow];
+ rp = aj ? aj + ai[brow] : NULL;
+ ap = aa ? aa + bs2*ai[brow] : NULL;
Expand Down
4 changes: 2 additions & 2 deletions tools/workspace/petsc/patches/destroy.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
--- src/sys/objects/destroy.c
+++ src/sys/objects/destroy.c
@@ -110,7 +111,8 @@ PetscErrorCode PetscObjectViewFromOptions(PetscObject obj,PetscObject bobj,const
PetscErrorCode ierr;
@@ -94,7 +94,8 @@ PetscErrorCode PetscObjectViewFromOptions(PetscObject obj,PetscObject bobj,const
{
PetscViewer viewer;
PetscBool flg;
- static PetscBool incall = PETSC_FALSE;
Expand Down
8 changes: 4 additions & 4 deletions tools/workspace/petsc/patches/dlregispetsc.patch
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

/*
@@ -108,7 +107,6 @@ PETSC_EXTERN PetscErrorCode PetscDLLibraryRegister_petscsys(void)
ierr = PetscDLLibraryRegister_petscdm();CHKERRQ(ierr);
ierr = PetscDLLibraryRegister_petscksp();CHKERRQ(ierr);
ierr = PetscDLLibraryRegister_petscsnes();CHKERRQ(ierr);
- ierr = PetscDLLibraryRegister_petscts();CHKERRQ(ierr);
PetscCall(PetscDLLibraryRegister_petscdm());
PetscCall(PetscDLLibraryRegister_petscksp());
PetscCall(PetscDLLibraryRegister_petscsnes());
- PetscCall(PetscDLLibraryRegister_petscts());
#endif
PetscFunctionReturn(0);
}
4 changes: 2 additions & 2 deletions tools/workspace/petsc/patches/inherit.patch
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
{
- static PetscInt idcnt = 1;
+ static atomic_int atomic_idcnt = 1;
PetscErrorCode ierr;
#if defined(PETSC_USE_LOG)
PetscObject *newPetscObjects;
@@ -48,7 +49,7 @@ PetscErrorCode PetscHeaderCreate_Private(PetscObject h,PetscClassId classid,con
PetscInt newPetscObjectsMaxCounts,i;
@@ -47,7 +48,7 @@ PetscErrorCode PetscHeaderCreate_Private(PetscObject h,PetscClassId classid,con
#if defined(PETSC_HAVE_SAWS)
h->amsmem = PETSC_FALSE;
#endif
Expand Down
6 changes: 2 additions & 4 deletions tools/workspace/petsc/patches/mal.patch
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
diff --git a/src/sys/memory/mal.c b/src/sys/memory/mal.c
index 87678c5f2f..eabd9b2b97 100644
--- src/sys/memory/mal.c
+++ src/sys/memory/mal.c
@@ -414,9 +414,15 @@ PetscErrorCode PetscMallocA(int n,PetscBool clear,int lineno,const char *functio
@@ -399,9 +399,15 @@ PetscErrorCode PetscMallocA(int n,PetscBool clear,int lineno,const char *functio
if (petscmalloccoalesce) {
char *p;
ierr = (*PetscTrMalloc)(sumbytes,clear,lineno,function,filename,(void**)&p);CHKERRQ(ierr);
PetscCall((*PetscTrMalloc)(sumbytes,clear,lineno,function,filename,(void**)&p));
- for (i=0; i<n; i++) {
- *ptr[i] = bytes[i] ? p : NULL;
- p = (char*)PetscAddrAlign(p + bytes[i]);
Expand Down
6 changes: 3 additions & 3 deletions tools/workspace/petsc/patches/matrix.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- src/mat/interface/matrix.c
+++ src/mat/interface/matrix.c
@@ -5536,7 +5536,7 @@ PetscErrorCode MatNorm(Mat mat,NormType type,PetscReal *nrm)
@@ -5316,7 +5316,7 @@ PetscErrorCode MatNorm(Mat mat,NormType type,PetscReal *nrm)
This variable is used to prevent counting of MatAssemblyBegin() that
are called from within a MatAssemblyEnd().
*/
Expand All @@ -9,10 +9,10 @@
/*@
MatAssemblyBegin - Begins assembling the matrix. This routine should
be called after completing all calls to MatSetValues().
@@ -5656,7 +5656,7 @@ PetscErrorCode MatAssembled(Mat mat,PetscBool *assembled)
@@ -5433,7 +5433,7 @@ PetscErrorCode MatAssembled(Mat mat,PetscBool *assembled)
@*/
PetscErrorCode MatAssemblyEnd(Mat mat,MatAssemblyType type)
{
PetscErrorCode ierr;
- static PetscInt inassm = 0;
+ static _Thread_local PetscInt inassm = 0;
PetscBool flg = PETSC_FALSE;
Expand Down
20 changes: 10 additions & 10 deletions tools/workspace/petsc/patches/petscimpl.patch
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@

#if defined(PETSC_CLANG_STATIC_ANALYZER)
#define PetscDisableStaticAnalyzerForExpressionUnderstandingThatThisIsDangerousAndBugprone(expr)
@@ -886,9 +887,9 @@ PETSC_EXTERN PetscMPIInt Petsc_ShmComm_keyval;
@@ -852,9 +853,9 @@ struct PetscCommStash {
PetscCommDuplicate(), PetscCommDestroy(), PetscCommGetNewTag(), PetscObjectGetName()
*/
typedef struct {
- PetscMPIInt tag; /* next free tag value */
- PetscInt refcount; /* number of references, communicator can be freed when this reaches 0 */
- PetscInt namecount; /* used to generate the next name, as in Vec_0, Mat_1, ... */
+ atomic_int atomic_tag; /* next free tag value */
+ atomic_int atomic_refcount; /* number of references, communicator can be freed when this reaches 0 */
+ atomic_int atomic_namecount; /* used to generate the next name, as in Vec_0, Mat_1, ... */
PetscMPIInt *iflags; /* length of comm size, shared by all calls to PetscCommBuildTwoSided_Allreduce/RedScatter on this comm */
- PetscMPIInt tag; /* next free tag value */
- PetscInt refcount; /* number of references, communicator can be freed when this reaches 0 */
- PetscInt namecount; /* used to generate the next name, as in Vec_0, Mat_1, ... */
+ atomic_int atomic_tag; /* next free tag value */
+ atomic_int atomic_refcount; /* number of references, communicator can be freed when this reaches 0 */
+ atomic_int atomic_namecount; /* used to generate the next name, as in Vec_0, Mat_1, ... */
PetscMPIInt *iflags; /* length of comm size, shared by all calls to PetscCommBuildTwoSided_Allreduce/RedScatter on this comm */
struct PetscCommStash *comms; /* communicators available for PETSc to pass off to other packages */
} PetscCommCounter;

@@ -972,7 +973,7 @@ PETSC_STATIC_INLINE PetscErrorCode PetscSpinlockDestroy(PetscSpinlock *omp_lock)
@@ -939,7 +940,7 @@ static inline PetscErrorCode PetscSpinlockDestroy(PetscSpinlock *omp_lock)
return 0;
}
#else
Expand Down
8 changes: 4 additions & 4 deletions tools/workspace/petsc/patches/pname.patch
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
--- src/sys/objects/pname.c
+++ src/sys/objects/pname.c
@@ -131,7 +131,7 @@ PetscErrorCode PetscObjectName(PetscObject obj)
@@ -127,7 +127,7 @@ PetscErrorCode PetscObjectName(PetscObject obj)
/* If the union has extra bytes, their value is implementation-dependent, but they will normally be what we set last
* in 'ucomm.ptr = NULL'. This output is always implementation-defined (and varies from run to run) so the union
* abuse acceptable. */
- ierr = PetscSNPrintf(name,64,"%s_%p_%D",obj->class_name,ucomm.ptr,counter->namecount++);CHKERRQ(ierr);
+ ierr = PetscSNPrintf(name,64,"%s_%p_%D",obj->class_name,ucomm.ptr,atomic_fetch_add(&counter->atomic_namecount,1));CHKERRQ(ierr);
ierr = PetscStrallocpy(name,&obj->name);CHKERRQ(ierr);
- PetscCall(PetscSNPrintf(name,64,"%s_%p_%" PetscInt_FMT,obj->class_name,ucomm.ptr,counter->namecount++));
+ PetscCall(PetscSNPrintf(name,64,"%s_%p_%" PetscInt_FMT,obj->class_name,ucomm.ptr,atomic_fetch_add(&counter->atomic_namecount,1)));
PetscCall(PetscStrallocpy(name,&obj->name));
}
PetscFunctionReturn(0);
25 changes: 12 additions & 13 deletions tools/workspace/petsc/patches/remove_packages.patch
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
Do not load unused packages to reduce build footprint
--- src/sys/dll/reg.c
+++ src/sys/dll/reg.c
@@ -114,9 +114,6 @@ PETSC_INTERN PetscErrorCode PetscInitialize_DynamicLibraries(void)
@@ -112,9 +112,6 @@ PETSC_INTERN PetscErrorCode PetscInitialize_DynamicLibraries(void)
#if defined(PETSC_USE_SINGLE_LIBRARY)
ierr = AOInitializePackage();CHKERRQ(ierr);
ierr = PetscSFInitializePackage();CHKERRQ(ierr);
PetscCall(AOInitializePackage());
PetscCall(PetscSFInitializePackage());
-#if !defined(PETSC_USE_COMPLEX)
- ierr = CharacteristicInitializePackage();CHKERRQ(ierr);
- PetscCall(CharacteristicInitializePackage());
-#endif
ierr = ISInitializePackage();CHKERRQ(ierr);
ierr = VecInitializePackage();CHKERRQ(ierr);
ierr = MatInitializePackage();CHKERRQ(ierr);
@@ -124,8 +121,6 @@ PETSC_INTERN PetscErrorCode PetscInitialize_DynamicLibraries(void)
ierr = PCInitializePackage();CHKERRQ(ierr);
ierr = KSPInitializePackage();CHKERRQ(ierr);
ierr = SNESInitializePackage();CHKERRQ(ierr);
- ierr = TSInitializePackage();CHKERRQ(ierr);
- ierr = TaoInitializePackage();CHKERRQ(ierr);
PetscCall(ISInitializePackage());
PetscCall(VecInitializePackage());
PetscCall(MatInitializePackage());
@@ -123,7 +120,5 @@ PETSC_INTERN PetscErrorCode PetscInitialize_DynamicLibraries(void)
PetscCall(KSPInitializePackage());
PetscCall(SNESInitializePackage());
- PetscCall(TSInitializePackage());
- PetscCall(TaoInitializePackage());
#else
SETERRQ(PETSC_COMM_WORLD,PETSC_ERR_SUP,"Cannot use -library_preload with multiple static PETSc libraries");
#endif
47 changes: 24 additions & 23 deletions tools/workspace/petsc/patches/tagm.patch
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
--- src/sys/objects/tagm.c
+++ src/sys/objects/tagm.c
@@ -66,14 +66,14 @@ PetscErrorCode PetscCommGetNewTag(MPI_Comm comm,PetscMPIInt *tag)
ierr = MPI_Comm_get_attr(comm,Petsc_Counter_keyval,&counter,&flg);CHKERRMPI(ierr);
if (!flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_CORRUPT,"Bad MPI communicator supplied; must be a PETSc communicator");
@@ -63,15 +63,15 @@ PetscErrorCode PetscCommGetNewTag(MPI_Comm comm,PetscMPIInt *tag)
PetscCallMPI(MPI_Comm_get_attr(comm,Petsc_Counter_keyval,&counter,&flg));
PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_ARG_CORRUPT,"Bad MPI communicator supplied; must be a PETSc communicator");

- if (counter->tag < 1) {
- ierr = PetscInfo1(NULL,"Out of tags for object, starting to recycle. Comm reference count %d\n",counter->refcount);CHKERRQ(ierr);
+ if (atomic_load(&counter->atomic_tag) < 1) {
+ ierr = PetscInfo1(NULL,"Out of tags for object, starting to recycle. Comm reference count %d\n",atomic_load(&counter->atomic_refcount));CHKERRQ(ierr);
ierr = MPI_Comm_get_attr(MPI_COMM_WORLD,MPI_TAG_UB,&maxval,&flg);CHKERRMPI(ierr);
if (!flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_LIB,"MPI error: MPI_Comm_get_attr() is not returning a MPI_TAG_UB");

- PetscCall(PetscInfo(NULL,"Out of tags for object, starting to recycle. Comm reference count %" PetscInt_FMT "\n",counter->refcount));
+ PetscCall(PetscInfo(NULL,"Out of tags for object, starting to recycle. Comm reference count %" PetscInt_FMT "\n",atomic_load(&counter->atomic_refcount)));
PetscCallMPI(MPI_Comm_get_attr(MPI_COMM_WORLD,MPI_TAG_UB,&maxval,&flg));
PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_LIB,"MPI error: MPI_Comm_get_attr() is not returning a MPI_TAG_UB");
- counter->tag = *maxval - 128; /* hope that any still active tags were issued right at the beginning of the run */
+ atomic_store(&counter->atomic_tag, *maxval - 128); /* hope that any still active tags were issued right at the beginning of the run */
}
Expand All @@ -19,25 +20,25 @@
if (PetscDefined(USE_DEBUG)) {
/*
Hanging here means that some processes have called PetscCommGetNewTag() and others have not.
@@ -126,7 +126,7 @@ PetscErrorCode PetscCommDuplicate(MPI_Comm comm_in,MPI_Comm *comm_out,PetscMPII
ierr = MPI_Comm_get_attr(MPI_COMM_WORLD,MPI_TAG_UB,&maxval,&flg);CHKERRMPI(ierr);
if (!flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_LIB,"MPI error: MPI_Comm_get_attr() is not returning a MPI_TAG_UB");
ierr = PetscNew(&counter);CHKERRQ(ierr); /* all fields of counter are zero'ed */
@@ -208,7 +208,7 @@ PetscErrorCode PetscCommDuplicate(MPI_Comm comm_in,MPI_Comm *comm_out,PetscMPII
PetscCallMPI(MPI_Comm_get_attr(MPI_COMM_WORLD,MPI_TAG_UB,&maxval,&flg));
PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_LIB,"MPI error: MPI_Comm_get_attr() is not returning a MPI_TAG_UB");
PetscCall(PetscNew(&counter)); /* all fields of counter are zero'ed */
- counter->tag = *maxval;
+ atomic_store(&counter->atomic_tag, *maxval);
ierr = MPI_Comm_set_attr(*comm_out,Petsc_Counter_keyval,counter);CHKERRMPI(ierr);
ierr = PetscInfo3(NULL,"Duplicating a communicator %ld %ld max tags = %d\n",(long)comm_in,(long)*comm_out,*maxval);CHKERRQ(ierr);
PetscCallMPI(MPI_Comm_set_attr(*comm_out,Petsc_Counter_keyval,counter));
PetscCall(PetscInfo(NULL,"Duplicating a communicator %ld %ld max tags = %d\n",(long)comm_in,(long)*comm_out,*maxval));

@@ -153,16 +153,16 @@ PetscErrorCode PetscCommDuplicate(MPI_Comm comm_in,MPI_Comm *comm_out,PetscMPII
ierr = MPI_Barrier(comm_in);CHKERRMPI(ierr);
@@ -235,16 +235,16 @@ PetscErrorCode PetscCommDuplicate(MPI_Comm comm_in,MPI_Comm *comm_out,PetscMPII
PetscCallMPI(MPI_Barrier(comm_in));
}

- if (counter->tag < 1) {
- ierr = PetscInfo1(NULL,"Out of tags for object, starting to recycle. Comm reference count %d\n",counter->refcount);CHKERRQ(ierr);
- PetscCall(PetscInfo(NULL,"Out of tags for object, starting to recycle. Comm reference count %" PetscInt_FMT "\n",counter->refcount));
+ if (atomic_load(&counter->atomic_tag) < 1) {
+ ierr = PetscInfo1(NULL,"Out of tags for object, starting to recycle. Comm reference count %d\n",atomic_load(&counter->atomic_refcount));CHKERRQ(ierr);
ierr = MPI_Comm_get_attr(MPI_COMM_WORLD,MPI_TAG_UB,&maxval,&flg);CHKERRMPI(ierr);
if (!flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_LIB,"MPI error: MPI_Comm_get_attr() is not returning a MPI_TAG_UB");
+ PetscCall(PetscInfo(NULL,"Out of tags for object, starting to recycle. Comm reference count %" PetscInt_FMT "\n",atomic_load(&counter->atomic_refcount)));
PetscCallMPI(MPI_Comm_get_attr(MPI_COMM_WORLD,MPI_TAG_UB,&maxval,&flg));
PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_LIB,"MPI error: MPI_Comm_get_attr() is not returning a MPI_TAG_UB");
- counter->tag = *maxval - 128; /* hope that any still active tags were issued right at the beginning of the run */
+ atomic_store(&counter->atomic_tag, *maxval - 128); /* hope that any still active tags were issued right at the beginning of the run */
}
Expand All @@ -47,17 +48,17 @@

- counter->refcount++; /* number of references to this comm */
+ atomic_fetch_add(&counter->atomic_refcount,1); /* number of references to this comm */
ierr = PetscSpinlockUnlock(&PetscCommSpinLock);CHKERRQ(ierr);
PetscCall(PetscSpinlockUnlock(&PetscCommSpinLock));
PetscFunctionReturn(0);
}
@@ -199,9 +199,7 @@ PetscErrorCode PetscCommDestroy(MPI_Comm *comm)
if (!flg) SETERRQ(PETSC_COMM_SELF,PETSC_ERR_ARG_CORRUPT,"Inner MPI_Comm does not have expected tag/name counter, problem with corrupted memory");
@@ -280,9 +280,7 @@ PetscErrorCode PetscCommDestroy(MPI_Comm *comm)
PetscCheck(flg,PETSC_COMM_SELF,PETSC_ERR_ARG_CORRUPT,"Inner MPI_Comm does not have expected tag/name counter, problem with corrupted memory");
}

- counter->refcount--;
-
- if (!counter->refcount) {
+ if (!atomic_fetch_sub(&counter->atomic_refcount,1)) {
/* if MPI_Comm has outer comm then remove reference to inner MPI_Comm from outer MPI_Comm */
ierr = MPI_Comm_get_attr(icomm,Petsc_OuterComm_keyval,&ucomm,&flg);CHKERRMPI(ierr);
PetscCallMPI(MPI_Comm_get_attr(icomm,Petsc_OuterComm_keyval,&ucomm,&flg));
if (flg) {
4 changes: 2 additions & 2 deletions tools/workspace/petsc/repository.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ def petsc_repository(
github_archive(
name = name,
repository = "petsc/petsc",
commit = "v3.16.5",
sha256 = "1adf81bfb42104af469443fbcdb4211a7cae674dcb46b6c312ff29a7ffb8ff45", # noqa
commit = "v3.17.1",
sha256 = "6dfe03613ccf5cd2d19f6267057ebb734a49e81e300f11ba7fc1601bbe585796", # noqa
build_file = "@drake//tools/workspace/petsc:package.BUILD.bazel",
mirrors = mirrors,
patches = [
Expand Down
10 changes: 3 additions & 7 deletions tools/workspace/petsc/stubs/petscconf.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#pragma once

// TODO(jwnimmer-tri): This file is a lightly-edited version of what comes out
// of upstream's configure script. Between some combination of hard-coded
// settings and platform-specific word size sensing, we need to reconstruct
// and/or generate this file on the fly.
// of upstream's configure script that has been tweaked to work on all of our
// supported platforms, and to remove some unwanted bits. We need to document
// a more careful procedure for how to update and/or re-create this file.

#define MPI_Comm_create_errhandler(p_err_fun, p_errhandler) \
MPI_Errhandler_create((p_err_fun), (p_errhandler))
Expand Down Expand Up @@ -38,7 +38,6 @@
#define PETSC_HAVE_CXX 1
#define PETSC_HAVE_CXX_COMPLEX 1
#define PETSC_HAVE_CXX_COMPLEX_FIX 1
#define PETSC_HAVE_CXX_DIALECT_CXX03 1
#define PETSC_HAVE_CXX_DIALECT_CXX11 1
#define PETSC_HAVE_CXX_DIALECT_CXX14 1
#define PETSC_HAVE_CXX_DIALECT_CXX17 1
Expand Down Expand Up @@ -73,9 +72,6 @@
#define PETSC_HAVE_MEMMOVE 1
#define PETSC_HAVE_MMAP 1
#define PETSC_HAVE_MPIUNI 1
#define PETSC_HAVE_MPI_IN_PLACE 1
#define PETSC_HAVE_MPI_TYPE_DUP 1
#define PETSC_HAVE_MPI_TYPE_GET_ENVELOPE 1
#define PETSC_HAVE_NANOSLEEP 1
#define PETSC_HAVE_NETDB_H 1
#define PETSC_HAVE_NETINET_IN_H 1
Expand Down

0 comments on commit 8e2da89

Please sign in to comment.