Merge pull request #128015 from cburstedde/package-p4est-sc
This commit is contained in:
commit
458c985073
@ -1701,6 +1701,18 @@
|
|||||||
githubId = 3471749;
|
githubId = 3471749;
|
||||||
name = "Claudio Bley";
|
name = "Claudio Bley";
|
||||||
};
|
};
|
||||||
|
cburstedde = {
|
||||||
|
email = "burstedde@ins.uni-bonn.de";
|
||||||
|
github = "cburstedde";
|
||||||
|
githubId = 109908;
|
||||||
|
name = "Carsten Burstedde";
|
||||||
|
keys = [
|
||||||
|
{
|
||||||
|
longkeyid = "rsa2048/0x0704CD9E550A6BCD";
|
||||||
|
fingerprint = "1127 A432 6524 BF02 737B 544E 0704 CD9E 550A 6BCD";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
cdepillabout = {
|
cdepillabout = {
|
||||||
email = "cdep.illabout@gmail.com";
|
email = "cdep.illabout@gmail.com";
|
||||||
github = "cdepillabout";
|
github = "cdepillabout";
|
||||||
|
62
pkgs/development/libraries/science/math/p4est-sc/default.nix
Normal file
62
pkgs/development/libraries/science/math/p4est-sc/default.nix
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitHub
|
||||||
|
, autoreconfHook, pkg-config
|
||||||
|
, p4est-sc-debugEnable ? true, p4est-sc-mpiSupport ? true
|
||||||
|
, mpi, openmpi, openssh, zlib
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
dbg = if debugEnable then "-dbg" else "";
|
||||||
|
debugEnable = p4est-sc-debugEnable;
|
||||||
|
mpiSupport = p4est-sc-mpiSupport;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "p4est-sc${dbg}";
|
||||||
|
version = "unstable-2021-06-14";
|
||||||
|
|
||||||
|
# fetch an untagged snapshot of the prev3-develop branch
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cburstedde";
|
||||||
|
repo = "libsc";
|
||||||
|
rev = "1ae814e3fb1cc5456652e0d77550386842cb9bfb";
|
||||||
|
sha256 = "14vm0b162jh8399pgpsikbwq4z5lkrw9vfzy3drqykw09n6nc53z";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||||
|
propagatedBuildInputs = [ zlib ]
|
||||||
|
++ lib.optional mpiSupport mpi
|
||||||
|
++ lib.optional (mpiSupport && mpi == openmpi) openssh
|
||||||
|
;
|
||||||
|
inherit debugEnable mpiSupport;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
echo "dist_scaclocal_DATA += config/sc_v4l2.m4" >> Makefile.am
|
||||||
|
'';
|
||||||
|
preConfigure = ''
|
||||||
|
echo "2.8.0" > .tarball-version
|
||||||
|
${if mpiSupport then "unset CC" else ""}
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = lib.optional debugEnable "--enable-debug"
|
||||||
|
++ lib.optional mpiSupport "--enable-mpi"
|
||||||
|
;
|
||||||
|
|
||||||
|
makeFlags = [ "V=0" ];
|
||||||
|
|
||||||
|
dontDisableStatic = true;
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
branch = "prev3-develop";
|
||||||
|
description = "Support for parallel scientific applications";
|
||||||
|
longDescription = ''
|
||||||
|
The SC library provides support for parallel scientific applications.
|
||||||
|
Its main purpose is to support the p4est software library, hence
|
||||||
|
this package is called p4est-sc, but it works standalone, too.
|
||||||
|
'';
|
||||||
|
homepage = "https://www.p4est.org/";
|
||||||
|
downloadPage = "https://github.com/cburstedde/libsc.git";
|
||||||
|
license = lib.licenses.lgpl21Plus;
|
||||||
|
maintainers = [ lib.maintainers.cburstedde ];
|
||||||
|
};
|
||||||
|
}
|
59
pkgs/development/libraries/science/math/p4est/default.nix
Normal file
59
pkgs/development/libraries/science/math/p4est/default.nix
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitHub
|
||||||
|
, autoreconfHook, pkg-config
|
||||||
|
, p4est-withMetis ? true, metis
|
||||||
|
, p4est-sc
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (p4est-sc) debugEnable mpiSupport;
|
||||||
|
dbg = if debugEnable then "-dbg" else "";
|
||||||
|
withMetis = p4est-withMetis;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "p4est${dbg}";
|
||||||
|
version = "unstable-2021-06-22";
|
||||||
|
|
||||||
|
# fetch an untagged snapshot of the prev3-develop branch
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "cburstedde";
|
||||||
|
repo = "p4est";
|
||||||
|
rev = "7423ac5f2b2b64490a7a92e5ddcbd251053c4dee";
|
||||||
|
sha256 = "0vffnf48rzw6d0as4c3x1f31b4kapmdzr1hfj5rz5ngah72gqrph";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||||
|
propagatedBuildInputs = [ p4est-sc ];
|
||||||
|
buildInputs = lib.optional withMetis metis;
|
||||||
|
inherit debugEnable mpiSupport withMetis;
|
||||||
|
|
||||||
|
patches = [ ./p4est-metis.patch ];
|
||||||
|
postPatch = ''
|
||||||
|
sed -i -e "s:\(^\s*ACLOCAL_AMFLAGS.*\)\s@P4EST_SC_AMFLAGS@\s*$:\1 -I ${p4est-sc}/share/aclocal:" Makefile.am
|
||||||
|
'';
|
||||||
|
preConfigure = ''
|
||||||
|
echo "2.8.0" > .tarball-version
|
||||||
|
${if mpiSupport then "unset CC" else ""}
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [ "--with-sc=${p4est-sc}" ]
|
||||||
|
++ lib.optional withMetis "--with-metis"
|
||||||
|
++ lib.optional debugEnable "--enable-debug"
|
||||||
|
++ lib.optional mpiSupport "--enable-mpi"
|
||||||
|
;
|
||||||
|
|
||||||
|
inherit (p4est-sc) makeFlags dontDisableStatic enableParallelBuilding doCheck;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
branch = "prev3-develop";
|
||||||
|
description = "Parallel AMR on Forests of Octrees";
|
||||||
|
longDescription = ''
|
||||||
|
The p4est software library provides algorithms for parallel AMR.
|
||||||
|
AMR refers to Adaptive Mesh Refinement, a technique in scientific
|
||||||
|
computing to cover the domain of a simulation with an adaptive mesh.
|
||||||
|
'';
|
||||||
|
homepage = "https://www.p4est.org/";
|
||||||
|
downloadPage = "https://github.com/cburstedde/p4est.git";
|
||||||
|
license = lib.licenses.gpl2Plus;
|
||||||
|
maintainers = [ lib.maintainers.cburstedde ];
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
diff --git a/src/p4est_connectivity.c b/src/p4est_connectivity.c
|
||||||
|
index 95339136..c93528f2 100644
|
||||||
|
--- a/src/p4est_connectivity.c
|
||||||
|
+++ b/src/p4est_connectivity.c
|
||||||
|
@@ -3715,6 +3715,7 @@ p4est_connectivity_reorder_newid (sc_MPI_Comm comm, int k,
|
||||||
|
sc_array_t * newid)
|
||||||
|
{
|
||||||
|
const int n = (int) conn->num_trees;
|
||||||
|
+ int metis_n;
|
||||||
|
int *xadj;
|
||||||
|
int *adjncy;
|
||||||
|
int *part;
|
||||||
|
@@ -3862,10 +3863,12 @@ p4est_connectivity_reorder_newid (sc_MPI_Comm comm, int k,
|
||||||
|
|
||||||
|
P4EST_GLOBAL_INFO ("Entering metis\n");
|
||||||
|
/* now call metis */
|
||||||
|
+ metis_n = n;
|
||||||
|
P4EST_EXECUTE_ASSERT_INT
|
||||||
|
- (METIS_PartGraphRecursive (&n, &ncon, xadj, adjncy, NULL, NULL,
|
||||||
|
+ (METIS_PartGraphRecursive (&metis_n, &ncon, xadj, adjncy, NULL, NULL,
|
||||||
|
NULL, &k, NULL, NULL, NULL, &volume, part),
|
||||||
|
METIS_OK);
|
||||||
|
+ P4EST_ASSERT (metis_n == n);
|
||||||
|
P4EST_GLOBAL_INFO ("Done metis\n");
|
||||||
|
|
||||||
|
P4EST_GLOBAL_STATISTICSF ("metis volume %d\n", volume);
|
@ -29883,6 +29883,18 @@ in
|
|||||||
|
|
||||||
rubiks = callPackage ../development/libraries/science/math/rubiks { };
|
rubiks = callPackage ../development/libraries/science/math/rubiks { };
|
||||||
|
|
||||||
|
p4est-sc = callPackage ../development/libraries/science/math/p4est-sc {
|
||||||
|
p4est-sc-debugEnable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
p4est-sc-dbg = callPackage ../development/libraries/science/math/p4est-sc { };
|
||||||
|
|
||||||
|
p4est = callPackage ../development/libraries/science/math/p4est { };
|
||||||
|
|
||||||
|
p4est-dbg = callPackage ../development/libraries/science/math/p4est {
|
||||||
|
p4est-sc = p4est-sc-dbg;
|
||||||
|
};
|
||||||
|
|
||||||
petsc = callPackage ../development/libraries/science/math/petsc { };
|
petsc = callPackage ../development/libraries/science/math/petsc { };
|
||||||
|
|
||||||
parmetis = callPackage ../development/libraries/science/math/parmetis { };
|
parmetis = callPackage ../development/libraries/science/math/parmetis { };
|
||||||
|
Loading…
Reference in New Issue
Block a user