diff --git a/3rd_party/gslib/install b/3rd_party/gslib/install index 727264f39..0802c9773 100755 --- a/3rd_party/gslib/install +++ b/3rd_party/gslib/install @@ -1,12 +1,12 @@ #!/bin/bash set -e -VER=1.0.7 +VER=1.0.8 if [ "$1" == "clean" ]; then - rm -rf lib include 2>/dev/null + rm -rf lib include 2>/dev/null find . -name '*.o' -exec rm {} + - find . -name '*.a' -exec rm {} + + find . -name '*.a' -exec rm {} + exit 0 fi @@ -16,7 +16,7 @@ fi if [ ! -d ./gslib ]; then wget --no-check-certificate -O v$VER.tar.gz http://github.com/gslib/gslib/archive/v$VER.tar.gz - mkdir gslib + mkdir gslib tar -zxvf v$VER.tar.gz -C ./gslib --strip-components=1 fi diff --git a/3rd_party/parRSB/install b/3rd_party/parRSB/install index 3e569220f..a94ae16ac 100755 --- a/3rd_party/parRSB/install +++ b/3rd_party/parRSB/install @@ -1,7 +1,7 @@ #!/bin/bash set -e -VER=0.8 +VER=0.9 if [ "$1" == "clean" ]; then rm -rf parRSB/build lib include 2>/dev/null diff --git a/core/makenek.inc b/core/makenek.inc index 5c6322b0e..baddc20f4 100644 --- a/core/makenek.inc +++ b/core/makenek.inc @@ -313,7 +313,7 @@ do fi if [ "$i" == "PARRSB" ]; then PARRSB=1 - PARRSB_OPT=" DESTDIR=.. UNDERSCORE=$UNDERSCORE MPI=$MPI BLAS=0" + PARRSB_OPT=" DESTDIR=${SOURCE_ROOT_PARRSB} UNDERSCORE=$UNDERSCORE MPI=$MPI BLAS=0" PARRSB_OPT+=" GSLIBPATH=${SOURCE_ROOT_GSLIB}" USR_LFLAGS+=" -L${SOURCE_ROOT_PARRSB}/lib -lparRSB" PARRSB_INC="${SOURCE_ROOT_PARRSB}/include" @@ -350,7 +350,7 @@ if [ $VENDOR_BLAS -ne 1 ]; then fi # gslib build options -GSLIB_OPT+=" DESTDIR=.." +GSLIB_OPT+=" DESTDIR=${SOURCE_ROOT_GSLIB}" GSLIB_OPT+=" MPI=$MPI MPIIO=$MPIIO" GSLIB_OPT+=" ADDUS=$UNDERSCORE USREXIT=0 BLAS=2" GSLIB_IFLAGS=" -I$SOURCE_ROOT_GSLIB/include" diff --git a/core/map2.f b/core/map2.f index d99d77640..ae52f0b7b 100644 --- a/core/map2.f +++ b/core/map2.f @@ -186,12 +186,13 @@ subroutine get_vert_map(nlv) if (ierr.ne.0) then ifread_con = .false. tol = connectivityTol - call find_con(wk,size(wk),tol,ierr) + call find_con(wk,nwk,tol,ierr) if(ierr.ne.0) then tol = tol / 10.0; - call find_con(wk,size(wk),tol,ierr) + call find_con(wk,nwk,tol,ierr) endif - call err_chk(ierr,' find_con failed!$') + call err_chk(ierr,'Connectivity calculation failed! '// + & 'Try tightening mesh::connectivityTol$') endif c fluid elements @@ -511,8 +512,8 @@ subroutine find_con(wk,nwk,tol,ierr) enddo enddo - call fparrsb_find_conn(vtx8,xyz,nelt,ndim,eid8,npf,tol,nekcomm, - $ 0,ierr) + call fparrsb_conn_mesh(vtx8,xyz,nelt,ndim,eid8,npf,tol,nekcomm, + $ ierr) k=1 l=1 diff --git a/core/partitioner.c b/core/partitioner.c index c32947f58..ce5f00798 100644 --- a/core/partitioner.c +++ b/core/partitioner.c @@ -343,12 +343,24 @@ void fpartMesh(long long *el, long long *vl, double *xyz, const int *lelt, int * ierr = 1; #if defined(PARRSB) - parrsb_options options = parrsb_default_options; - - options.debug_level = 0; - if (*loglevel > 2) - options.debug_level = 1; + // General options + // partitioner: Partition algo: 0 - RSB, 1 - RCB, 2 - RIB (Default: 0) + // verbose_level: Verbose level: 0, 1, 2, .. etc (Default: 1) + // profile_level: Profile level: 0, 1, 2, .. etc (Default: 1) + // two_level: Use two level partitioning algo (Default: 0) + // repair: Repair disconnected components: 0 - No, 1 - Yes (Default: 0) + // RSB specific + // rsb_algo: RSB algo: 0 - Lanczos, 1 - RQI (Default: 0) + // rsb_pre: RSB pre-partition algo: 0 - None, 1 - RCB , 2 - RIB (Default: 1) + // rsb_max_iter: Maximum iterations in Lanczos or RQI (Default: 50) + // rsb_tol: Tolerance for Lanczos or RQI (Default: 1e-3) + // RSB-MG specific + // rsb_mg_grammian: MG Grammian: 0 or 1 (Default: 0) + // rsb_mg_factor: MG Coarsening factor (Default: 2, should be > 1) + // RSB-Lanczos specific + // rsb_lanczos_max_restarts: Maximum restarts in Lanczos (Default: 50) + parrsb_options options = parrsb_default_options; if (partitioner & 1) options.partitioner = 0; else if (partitioner & 2) @@ -357,7 +369,7 @@ void fpartMesh(long long *el, long long *vl, double *xyz, const int *lelt, int * if (partitioner & 1) options.rsb_algo = algo; - if(*loglevel >2) + if (*loglevel > 2) printPartStat(vl, nel, nv, cext); ierr = parrsb_part_mesh(part, seq, vl, xyz, nel, nv, options, comm.c); @@ -368,7 +380,7 @@ void fpartMesh(long long *el, long long *vl, double *xyz, const int *lelt, int * if (ierr != 0) goto err; - if(*loglevel >2) + if (*loglevel > 2) printPartStat(vl, nel, nv, cext); #elif defined(PARMETIS)