Ticket #14833: patch-slepc-2.3.3.diff
File patch-slepc-2.3.3.diff, 31.8 KB (added by mmoll@…, 17 years ago) |
---|
-
config/configure.
diff -u config/configure.py:1.23 config/configure.py:1.23.2.1
old new 163 163 log.Write('Configure Options: '+str.join(' ',sys.argv)) 164 164 log.Write('Working directory: '+os.getcwd()) 165 165 log.Write('Python version:\n' + sys.version) 166 log.Write('make: ' + petscconf.MAKE) 167 log.Write('PETSc source directory: ' + petscdir) 168 log.Write('PETSc install directory: ' + petscconf.INSTALL_DIR) 169 log.Write('PETSc version: ' + petscconf.VERSION) 170 log.Write('PETSc architecture: ' + petscconf.ARCH) 171 log.Write('SLEPc source directory: ' + slepcdir) 172 log.Write('SLEPc install directory: ' + prefixdir) 166 173 log.Write('='*80) 167 174 168 175 # Check if PETSc is working -
config/lapack.
diff -u config/lapack.py:1.12 config/lapack.py:1.12.2.2
old new 52 52 conf.write(' -DSLEPC_MISSING_LAPACK_' + i.upper()) 53 53 54 54 55 functions = ['stevr','bdsdc'] 55 56 if petscconf.PRECISION == 'single': 56 functions = ['slamch','sstevr','sbdsdc']57 prefix = 's' 57 58 else: 58 functions = ['dlamch','dstevr','dbdsdc']59 prefix = 'd' 59 60 60 61 for i in functions: 61 62 f = '#if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_UNDERSCORE)\n' 62 f += i + '_\n'63 f += prefix + i + '_\n' 63 64 f += '#elif defined(PETSC_HAVE_FORTRAN_CAPS)\n' 64 f += i.upper() + '\n'65 f += prefix.upper() + i.upper() + '\n' 65 66 f += '#else\n' 66 f += i + '\n'67 f += prefix + i + '\n' 67 68 f += '#endif\n' 68 69 69 70 log.Write('=== Checking LAPACK '+i+' function...') 70 71 if not check.Link([f],[],[]): 71 missing.append( i)72 missing.append(prefix + i) 72 73 conf.write(' -DSLEPC_MISSING_LAPACK_' + i.upper()) 73 74 74 75 conf.write('\n') -
include/slepc.
diff -u include/slepc.h:1.11 include/slepc.h:1.11.4.1
old new 47 47 EXTERN PetscErrorCode SlepcMatConvertSeqDense(Mat,Mat*); 48 48 EXTERN PetscErrorCode SlepcCheckOrthogonality(Vec*,PetscInt,Vec *,PetscInt,Mat,PetscScalar*); 49 49 50 extern PetscTruth SlepcInitializeCalled; 51 50 52 PETSC_EXTERN_CXX_END 51 53 #endif 52 54 -
include/slepcblaslapack.
diff -u include/slepcblaslapack.h:1.31 include/slepcblaslapack.h:1.31.4.1
old new 97 97 #define LAPACKormlq_ SLEPC_BLASLAPACK(unmlq,UNMLQ) 98 98 #endif 99 99 100 #define LAPACKlamch_ SLEPC_BLASLAPACKREAL(lamch,LAMCH)101 100 #define LAPACKstevr_ SLEPC_BLASLAPACKREAL(stevr,STEVR) 102 101 #define LAPACKbdsdc_ SLEPC_BLASLAPACKREAL(bdsdc,BDSDC) 103 102 104 103 EXTERN_C_BEGIN 105 104 106 EXTERN PetscReal LAPACKlamch_(const char*,PetscBLASInt);107 105 EXTERN PetscReal LAPACKlanhs_(const char*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscReal*,PetscBLASInt); 108 106 EXTERN PetscReal LAPACKlange_(const char*,PetscBLASInt*,PetscBLASInt*,PetscScalar*,PetscBLASInt*,PetscReal*,PetscBLASInt); 109 107 EXTERN void LAPACKlaev2_(PetscScalar*,PetscScalar*,PetscScalar*,PetscReal*,PetscReal*,PetscReal*,PetscScalar*); -
include/slepcsvd.
diff -u include/slepcsvd.h:1.26 include/slepcsvd.h:1.26.2.2
old new 139 139 #endif 140 140 EXTERN PetscErrorCode SVDRegisterDestroy(void); 141 141 142 PETSC_EXTERN_CXX_END 142 143 #endif -
include/slepcversion.
diff -u include/slepcversion.h:1.13 include/slepcversion.h:1.13.2.7
old new 19 19 #define SLEPC_VERSION_MAJOR 2 20 20 #define SLEPC_VERSION_MINOR 3 21 21 #define SLEPC_VERSION_SUBMINOR 3 22 #define SLEPC_VERSION_PATCH 022 #define SLEPC_VERSION_PATCH 7 23 23 #define SLEPC_VERSION_DATE "June 1, 2007" 24 #define SLEPC_VERSION_PATCH_DATE " June 1, 2007"24 #define SLEPC_VERSION_PATCH_DATE "March 3, 2008" 25 25 #define SLEPC_AUTHOR_INFO " The SLEPc Team\n\ 26 26 slepc-maint@grycap.upv.es\n\ 27 27 http://www.grycap.upv.es/slepc\n" -
include/finclude/slepceps.
diff -u include/finclude/slepceps.h:1.7 include/finclude/slepceps.h:1.7.4.1
old new 21 21 #define EPSSUBSPACE 'subspace' 22 22 #define EPSARNOLDI 'arnoldi' 23 23 #define EPSLANCZOS 'lanczos' 24 #define EPSKRYLOVSCHUR 'krylovschur' 24 25 #define EPSLAPACK 'lapack' 25 26 #define EPSARPACK 'arpack' 26 27 #define EPSBLZPACK 'blzpack' 27 #define EPSPLANSO 'planso'28 28 #define EPSTRLAN 'trlan' 29 #define EPSLOBPCG 'lobpcg' 29 #define EPSBLOPEX 'blopex' 30 #define EPSPRIMME 'primme' 30 31 31 32 ! Convergence flags. 32 33 ! They sould match the flags in $SLEPC_DIR/include/slepceps.h … … 66 67 parameter (EPS_SMALLEST_REAL = 3) 67 68 parameter (EPS_LARGEST_IMAGINARY = 4) 68 69 parameter (EPS_SMALLEST_IMAGINARY = 5) 69 70 integer EPS_MGS_ORTH71 integer EPS_CGS_ORTH72 73 parameter (EPS_MGS_ORTH = 0)74 parameter (EPS_CGS_ORTH = 1)75 76 integer EPS_ORTH_REFINE_NEVER77 integer EPS_ORTH_REFINE_IFNEEDED78 integer EPS_ORTH_REFINE_ALWAYS79 80 parameter (EPS_ORTH_REFINE_NEVER = 0)81 parameter (EPS_ORTH_REFINE_IFNEEDED = 1)82 parameter (EPS_ORTH_REFINE_ALWAYS = 2)83 70 84 71 integer EPSPOWER_SHIFT_CONSTANT 85 72 integer EPSPOWER_SHIFT_RAYLEIGH … … 94 81 95 82 parameter (EPS_ONE_SIDE = 0) 96 83 parameter (EPS_TWO_SIDE = 1) 84 85 integer EPS_RITZ 86 integer EPS_HARMONIC 87 integer EPS_REFINED 88 integer EPS_REFINED_HARMONIC 89 90 parameter (EPS_RITZ = 1) 91 parameter (EPS_HARMONIC = 2) 92 parameter (EPS_REFINED = 3) 93 parameter (EPS_REFINED_HARMONIC = 4) 97 94 98 integer EPSLANCZOS_REORTHOG_ NONE95 integer EPSLANCZOS_REORTHOG_LOCAL 99 96 integer EPSLANCZOS_REORTHOG_FULL 100 97 integer EPSLANCZOS_REORTHOG_SELECTIVE 101 98 integer EPSLANCZOS_REORTHOG_PERIODIC 102 99 integer EPSLANCZOS_REORTHOG_PARTIAL 103 100 104 parameter (EPSLANCZOS_REORTHOG_ NONE= 0)101 parameter (EPSLANCZOS_REORTHOG_LOCAL = 0) 105 102 parameter (EPSLANCZOS_REORTHOG_FULL = 1) 106 103 parameter (EPSLANCZOS_REORTHOG_SELECTIVE = 2) 107 104 parameter (EPSLANCZOS_REORTHOG_PERIODIC = 3) 108 105 parameter (EPSLANCZOS_REORTHOG_PARTIAL = 4) 109 106 107 integer EPSPRIMME_DYNAMIC 108 integer EPSPRIMME_DEFAULT_MIN_TIME 109 integer EPSPRIMME_DEFAULT_MIN_MATVECS 110 integer EPSPRIMME_ARNOLDI 111 integer EPSPRIMME_GD 112 integer EPSPRIMME_GD_PLUSK 113 integer EPSPRIMME_GD_OLSEN_PLUSK 114 integer EPSPRIMME_JD_OLSEN_PLUSK 115 integer EPSPRIMME_RQI 116 integer EPSPRIMME_JDQR 117 integer EPSPRIMME_JDQMR 118 integer EPSPRIMME_JDQMR_ETOL 119 integer EPSPRIMME_SUBSPACE_ITERATION 120 integer EPSPRIMME_LOBPCG_ORTHOBASIS 121 integer EPSPRIMME_LOBPCG_ORTHOBASIS_WINDOW 122 123 parameter (EPSPRIMME_DYNAMIC = 0) 124 parameter (EPSPRIMME_DEFAULT_MIN_TIME = 1) 125 parameter (EPSPRIMME_DEFAULT_MIN_MATVECS = 2) 126 parameter (EPSPRIMME_ARNOLDI = 3) 127 parameter (EPSPRIMME_GD = 4) 128 parameter (EPSPRIMME_GD_PLUSK = 5) 129 parameter (EPSPRIMME_GD_OLSEN_PLUSK = 7) 130 parameter (EPSPRIMME_JD_OLSEN_PLUSK = 8) 131 parameter (EPSPRIMME_RQI = 9) 132 parameter (EPSPRIMME_JDQR = 10) 133 parameter (EPSPRIMME_JDQMR = 11) 134 parameter (EPSPRIMME_JDQMR_ETOL = 12) 135 parameter (EPSPRIMME_SUBSPACE_ITERATION = 13) 136 parameter (EPSPRIMME_LOBPCG_ORTHOBASIS = 14) 137 parameter (EPSPRIMME_LOBPCG_ORTHOBASIS_WINDOW = 15) 138 139 integer EPSPRIMME_NONE 140 integer EPSPRIMME_DIAGONAL 141 142 parameter (EPSPRIMME_NONE = 0) 143 parameter (EPSPRIMME_DIAGONAL = 1) 144 110 145 #endif -
new file include/finclude/slepcip.h
diff -u /dev/null include/finclude/slepcip.h:1.1
- + 1 ! 2 ! Include file for Fortran use of the IP object in SLEPc 3 ! 4 ! 5 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6 ! SLEPc - Scalable Library for Eigenvalue Problem Computations 7 ! Copyright (c) 2002-2007, Universidad Politecnica de Valencia, Spain 8 ! 9 ! This file is part of SLEPc. See the README file for conditions of use 10 ! and additional information. 11 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 ! 13 #if !defined(__SLEPCIP_H) 14 #define __SLEPCIP_H 15 16 #define IP PetscFortranAddr 17 18 integer IP_MGS_ORTH 19 integer IP_CGS_ORTH 20 21 parameter (IP_MGS_ORTH = 0) 22 parameter (IP_CGS_ORTH = 1) 23 24 integer IP_ORTH_REFINE_NEVER 25 integer IP_ORTH_REFINE_IFNEEDED 26 integer IP_ORTH_REFINE_ALWAYS 27 28 parameter (IP_ORTH_REFINE_NEVER = 0) 29 parameter (IP_ORTH_REFINE_IFNEEDED = 1) 30 parameter (IP_ORTH_REFINE_ALWAYS = 2) 31 32 integer IP_MGS_ORTH 33 integer IP_CGS_ORTH 34 35 parameter (IP_MGS_ORTH = 0) 36 parameter (IP_CGS_ORTH = 1) 37 38 #endif -
include/finclude/slepcst.
diff -u include/finclude/slepcst.h:1.5 include/finclude/slepcst.h:1.5.4.1
old new 29 29 parameter (STMATMODE_INPLACE = 1) 30 30 parameter (STMATMODE_SHELL = 2) 31 31 32 integer STINNER_HERMITIAN33 integer STINNER_SYMMETRIC34 integer STINNER_B_HERMITIAN35 integer STINNER_B_SYMMETRIC36 37 parameter (STINNER_HERMITIAN = 0)38 parameter (STINNER_SYMMETRIC = 1)39 parameter (STINNER_B_HERMITIAN = 2)40 parameter (STINNER_B_SYMMETRIC = 3)41 42 32 #endif -
new file include/finclude/slepcsvd.h
diff -u /dev/null include/finclude/slepcsvd.h:1.2
- + 1 ! 2 ! Include file for Fortran use of the SVD object in SLEPc 3 ! 4 ! 5 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 6 ! SLEPc - Scalable Library for Eigenvalue Problem Computations 7 ! Copyright (c) 2002-2007, Universidad Politecnica de Valencia, Spain 8 ! 9 ! This file is part of SLEPc. See the README file for conditions of use 10 ! and additional information. 11 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 ! 13 #if !defined(__SLEPCSVD_H) 14 #define __SLEPCSVD_H 15 16 #define SVD PetscFortranAddr 17 #define SVDType character*(80) 18 #define SVDConvergedReason integer 19 20 #define SVDCROSS 'cross' 21 #define SVDCYCLIC 'cyclic' 22 #define SVDLAPACK 'lapack' 23 #define SVDLANCZOS 'lanczos' 24 #define SVDTRLANCZOS 'trlanczos' 25 26 ! Convergence flags. 27 ! They sould match the flags in $SLEPC_DIR/include/slepcsvd.h 28 29 integer SVD_CONVERGED_TOL 30 integer SVD_DIVERGED_ITS 31 integer SVD_DIVERGED_BREAKDOWN 32 integer SVD_CONVERGED_ITERATING 33 34 parameter (SVD_CONVERGED_TOL = 2) 35 parameter (SVD_DIVERGED_ITS = -3) 36 parameter (SVD_DIVERGED_BREAKDOWN = -4) 37 parameter (SVD_CONVERGED_ITERATING = 0) 38 39 integer SVD_TRANSPOSE_EXPLICIT 40 integer SVD_TRANSPOSE_IMPLICIT 41 42 parameter (SVD_TRANSPOSE_EXPLICIT = 0) 43 parameter (SVD_TRANSPOSE_IMPLICIT = 1) 44 45 integer SVD_LARGEST 46 integer SVD_SMALLEST 47 48 parameter (SVD_LARGEST = 0) 49 parameter (SVD_SMALLEST = 1) 50 51 #endif -
src/eps/impls/primme/primmes.
diff -u src/eps/impls/primme/primmes.c:1.20 src/eps/impls/primme/primmes.c:1.20.2.1
old new 67 67 static void applyPreconditioner_PRIMME(void *in, void *out, int *blockSize, struct primme_params *primme); 68 68 69 69 static void par_GlobalSumDouble(void *sendBuf, void *recvBuf, int *count, primme_params *primme) { 70 MPI_Allreduce((double*)sendBuf, (double*)recvBuf, *count, MPI_DOUBLE, MPI_SUM, ((EPS)(primme->commInfo))->comm); 70 PetscErrorCode ierr; 71 ierr = MPI_Allreduce((double*)sendBuf, (double*)recvBuf, *count, MPI_DOUBLE, MPI_SUM, ((EPS)(primme->commInfo))->comm);CHKERRABORT(((EPS)(primme->commInfo))->comm,ierr); 71 72 } 72 73 73 74 #undef __FUNCT__ … … 82 83 83 84 PetscFunctionBegin; 84 85 85 MPI_Comm_size(eps->comm,&numProcs);86 MPI_Comm_rank(eps->comm,&procID);86 ierr = MPI_Comm_size(eps->comm,&numProcs);CHKERRQ(ierr); 87 ierr = MPI_Comm_rank(eps->comm,&procID);CHKERRQ(ierr); 87 88 88 89 /* Check some constraints and set some default values */ 89 90 ierr = VecGetSize(eps->vec_initial,&N);CHKERRQ(ierr); … … 331 332 if (flg) {ierr = EPSPRIMMESetBlockSize(eps,op);CHKERRQ(ierr);} 332 333 op = 0; 333 334 ierr = PetscOptionsEList("-eps_primme_method","set method for solving the eigenproblem", 334 "EPSPRIMMESetMethod",methodList,15,methodList[ 0],&op,&flg); CHKERRQ(ierr);335 "EPSPRIMMESetMethod",methodList,15,methodList[1],&op,&flg); CHKERRQ(ierr); 335 336 if (flg) {ierr = EPSPRIMMESetMethod(eps, methodN[op]);CHKERRQ(ierr);} 336 337 ierr = PetscOptionsEList("-eps_primme_precond","set preconditioner type", 337 338 "EPSPRIMMESetPrecond",precondList,2,precondList[0],&op,&flg); CHKERRQ(ierr); … … 456 457 457 458 PetscFunctionBegin; 458 459 459 if (method == PETSC_DEFAULT) ops->method = D YNAMIC;460 if (method == PETSC_DEFAULT) ops->method = DEFAULT_MIN_TIME; 460 461 else ops->method = (primme_preset_method)method; 461 462 462 463 PetscFunctionReturn(0); … … 484 485 . -eps_primme_set_method - Sets the method for the PRIMME library. 485 486 486 487 Note: 487 If not set, the method defaults to EPSPRIMME_D YNAMIC.488 If not set, the method defaults to EPSPRIMME_DEFAULT_MIN_TIME. 488 489 489 490 Level: advanced 490 491 … … 690 691 primme_initialize(&primme->primme); 691 692 primme->primme.matrixMatvec = multMatvec_PRIMME; 692 693 primme->primme.globalSumDouble = par_GlobalSumDouble; 693 primme->method = DYNAMIC;694 primme->method = EPSPRIMME_DEFAULT_MIN_TIME; 694 695 ierr = PetscObjectComposeFunctionDynamic((PetscObject)eps,"EPSPRIMMESetBlockSize_C","EPSPRIMMESetBlockSize_PRIMME",EPSPRIMMESetBlockSize_PRIMME);CHKERRQ(ierr); 695 696 ierr = PetscObjectComposeFunctionDynamic((PetscObject)eps,"EPSPRIMMESetMethod_C","EPSPRIMMESetMethod_PRIMME",EPSPRIMMESetMethod_PRIMME);CHKERRQ(ierr); 696 697 ierr = PetscObjectComposeFunctionDynamic((PetscObject)eps,"EPSPRIMMESetPrecond_C","EPSPRIMMESetPrecond_PRIMME",EPSPRIMMESetPrecond_PRIMME);CHKERRQ(ierr); -
src/eps/interface/basic.
diff -u src/eps/interface/basic.c:1.31 src/eps/interface/basic.c:1.31.2.1
old new 208 208 PetscValidPointer(outeps,2); 209 209 *outeps = 0; 210 210 211 PetscHeaderCreate(eps,_p_EPS,struct _EPSOps,EPS_COOKIE,-1,"EPS",comm,EPSDestroy,EPSView);211 ierr = PetscHeaderCreate(eps,_p_EPS,struct _EPSOps,EPS_COOKIE,-1,"EPS",comm,EPSDestroy,EPSView);CHKERRQ(ierr); 212 212 *outeps = eps; 213 213 214 214 eps->bops->publish = EPSPublish_Petsc; -
src/eps/interface/dense.
diff -u src/eps/interface/dense.c:1.44 src/eps/interface/dense.c:1.44.4.1
old new 651 651 @*/ 652 652 PetscErrorCode EPSDenseTridiagonal(int n,PetscScalar *A,int lda,PetscReal *w,PetscScalar *V) 653 653 { 654 #if defined(SLEPC_MISSING_LAPACK_ DSTEVR)654 #if defined(SLEPC_MISSING_LAPACK_STEVR) 655 655 PetscFunctionBegin; 656 SETERRQ(PETSC_ERR_SUP," DSTEVR - Lapack routine is unavailable.");656 SETERRQ(PETSC_ERR_SUP,"STEVR - Lapack routine is unavailable."); 657 657 #else 658 658 PetscErrorCode ierr; 659 659 PetscReal abstol = 0.0,vl,vu,*D,*E,*work; -
src/examples/
diff -u src/examples/makefile:1.25 src/examples/makefile:1.25.4.1
old new 99 99 #------------------------------------------------------------------------------------ 100 100 101 101 runex1_1: 102 -@${MPIEXEC} -np 1 ex1 > ex1_1.tmp 2>&1; \102 -@${MPIEXEC} -np 1 ./ex1 > ex1_1.tmp 2>&1; \ 103 103 if (${DIFF} output/ex1_1.out ex1_1.tmp) then true; \ 104 104 else echo "Possible problem with ex1_1, diffs above"; fi; \ 105 105 ${RM} -f ex1_1.tmp 106 106 107 testex1: ex1.PETSc 108 @if [ "${PETSC_WITH_BATCH}" != "" ]; then \ 109 echo "Running with batch filesystem; to test run src/examples/ex1 with" ; \ 110 echo "your systems batch system"; \ 111 else \ 112 ${MPIEXEC} -np 1 ./ex1 > ex1_1.tmp 2>&1; \ 113 if (${DIFF} output/ex1_1.out ex1_1.tmp > /dev/null 2>&1) then \ 114 echo "C/C++ example src/examples/ex1 run successfully with 1 MPI process"; \ 115 else echo "Possible error running C/C++ src/examples/ex1 with 1 MPI process"; \ 116 cat ex1_1.tmp; fi; \ 117 ${RM} -f ex1_1.tmp; fi 118 107 119 runex1f_1: 108 -@${MPIEXEC} -np 1 ex1f > ex1f_1.tmp 2>&1; \120 -@${MPIEXEC} -np 1 ./ex1f > ex1f_1.tmp 2>&1; \ 109 121 if (${DIFF} output/ex1f_1.out ex1f_1.tmp) then true; \ 110 122 else echo "Possible problem with ex1f_1, diffs above"; fi; \ 111 123 ${RM} -f ex1f_1.tmp 112 124 125 testex1f: ex1f.PETSc 126 @if [ "${PETSC_WITH_BATCH}" != "" ]; then \ 127 echo "Running with batch filesystem; to test run src/examples/ex1f with" ; \ 128 echo "your systems batch system"; \ 129 else \ 130 ${MPIEXEC} -np 1 ./ex1f > ex1f_1.tmp 2>&1; \ 131 if (${DIFF} output/ex1f_1.out ex1f_1.tmp > /dev/null 2>&1) then \ 132 echo "Fortran example src/examples/ex1f run successfully with 1 MPI process"; \ 133 else echo "Possible error running Fortran src/examples/ex1f with 1 MPI process"; \ 134 cat ex1f_1.tmp; fi; \ 135 ${RM} -f ex1f_1.tmp; fi 136 113 137 runex2_1: 114 -@${MPIEXEC} -np 1 ex2 > ex2_1.tmp 2>&1; \138 -@${MPIEXEC} -np 1 ./ex2 > ex2_1.tmp 2>&1; \ 115 139 if (${DIFF} output/ex2_1.out ex2_1.tmp) then true; \ 116 140 else echo "Possible problem with ex2_1, diffs above"; fi; \ 117 141 ${RM} -f ex2_1.tmp 118 142 119 143 runex3_1: 120 -@${MPIEXEC} -np 1 ex3 > ex3_1.tmp 2>&1; \144 -@${MPIEXEC} -np 1 ./ex3 > ex3_1.tmp 2>&1; \ 121 145 if (${DIFF} output/ex3_1.out ex3_1.tmp) then true; \ 122 146 else echo "Possible problem with ex3_1, diffs above"; fi; \ 123 147 ${RM} -f ex3_1.tmp 124 148 125 149 runex4_1: 126 -@${MPIEXEC} -np 1 ex4 -file ${SLEPC_DIR}/src/mat/examples/rdb200.petsc > ex4_1.tmp 2>&1; \150 -@${MPIEXEC} -np 1 ./ex4 -file ${SLEPC_DIR}/src/mat/examples/rdb200.petsc > ex4_1.tmp 2>&1; \ 127 151 if (${DIFF} output/ex4_1.out ex4_1.tmp) then true; \ 128 152 else echo "Possible problem with ex4_1, diffs above"; fi; \ 129 153 ${RM} -f ex4_1.tmp 130 154 131 155 runex5_1: 132 -@${MPIEXEC} -np 1 ex5 -st_shift 1 > ex5_1.tmp 2>&1; \156 -@${MPIEXEC} -np 1 ./ex5 -st_shift 1 > ex5_1.tmp 2>&1; \ 133 157 if (${DIFF} output/ex5_1.out ex5_1.tmp) then true; \ 134 158 else echo "Possible problem with ex5_1, diffs above"; fi; \ 135 159 ${RM} -f ex5_1.tmp 136 160 137 161 runex5_2: 138 -@${MPIEXEC} -np 2 ex5 -st_shift 1 > ex5_2.tmp 2>&1; \162 -@${MPIEXEC} -np 2 ./ex5 -st_shift 1 > ex5_2.tmp 2>&1; \ 139 163 if (${DIFF} output/ex5_1.out ex5_2.tmp) then true; \ 140 164 else echo "Possible problem with ex5_2, diffs above"; fi; \ 141 165 ${RM} -f ex5_2.tmp 142 166 143 167 runex6f_1: 144 -@${MPIEXEC} -np 1 ex6f -st_shift 1 -eps_max_it 1000 -eps_ncv 12 -eps_tol 1e-5 > ex6f_1.tmp 2>&1; \168 -@${MPIEXEC} -np 1 ./ex6f -st_shift 1 -eps_max_it 1000 -eps_ncv 12 -eps_tol 1e-5 > ex6f_1.tmp 2>&1; \ 145 169 if (${DIFF} output/ex6f_1.out ex6f_1.tmp) then true; \ 146 170 else echo "Possible problem with ex6f_1, diffs above"; fi; \ 147 171 ${RM} -f ex6f_1.tmp 148 172 149 173 runex7_1: 150 -@${MPIEXEC} -np 1 ex7 -f1 ${SLEPC_DIR}/src/mat/examples/bfw62a.petsc -f2 ${SLEPC_DIR}/src/mat/examples/bfw62b.petsc > ex7_1.tmp 2>&1; \174 -@${MPIEXEC} -np 1 ./ex7 -f1 ${SLEPC_DIR}/src/mat/examples/bfw62a.petsc -f2 ${SLEPC_DIR}/src/mat/examples/bfw62b.petsc > ex7_1.tmp 2>&1; \ 151 175 if (${DIFF} output/ex7_1.out ex7_1.tmp) then true; \ 152 176 else echo "Possible problem with ex7_1, diffs above"; fi; \ 153 177 ${RM} -f ex7_1.tmp 154 178 155 179 runex8_1: 156 -@${MPIEXEC} -np 1 ex8 > ex8_1.tmp 2>&1; \180 -@${MPIEXEC} -np 1 ./ex8 > ex8_1.tmp 2>&1; \ 157 181 if (${DIFF} output/ex8_1.out ex8_1.tmp) then true; \ 158 182 else echo "Possible problem with ex8_1, diffs above"; fi; \ 159 183 ${RM} -f ex8_1.tmp 160 184 161 185 runex9_1: 162 -@${MPIEXEC} -np 1 ex9 > ex9_1.tmp 2>&1; \186 -@${MPIEXEC} -np 1 ./ex9 > ex9_1.tmp 2>&1; \ 163 187 if (${DIFF} output/ex9_1.out ex9_1.tmp) then true; \ 164 188 else echo "Possible problem with ex9_1, diffs above"; fi; \ 165 189 ${RM} -f ex9_1.tmp 166 190 167 191 runex10_1: 168 -@${MPIEXEC} -np 1 ex10 > ex10_1.tmp 2>&1; \192 -@${MPIEXEC} -np 1 ./ex10 > ex10_1.tmp 2>&1; \ 169 193 if (${DIFF} output/ex10_1.out ex10_1.tmp) then true; \ 170 194 else echo "Possible problem with ex10_1, diffs above"; fi; \ 171 195 ${RM} -f ex10_1.tmp 172 196 173 197 runex11_1: 174 -@${MPIEXEC} -np 1 ex11 > ex11_1.tmp 2>&1; \198 -@${MPIEXEC} -np 1 ./ex11 > ex11_1.tmp 2>&1; \ 175 199 if (${DIFF} output/ex11_1.out ex11_1.tmp) then true; \ 176 200 else echo "Possible problem with ex11_1, diffs above"; fi; \ 177 201 ${RM} -f ex11_1.tmp 178 202 179 203 runex12_1: 180 -@${MPIEXEC} -np 1 ex12 -eps_type power -st_shift 1 -eps_nev 2 > ex12_1.tmp 2>&1; \204 -@${MPIEXEC} -np 1 ./ex12 -eps_type power -st_shift 1 -eps_nev 2 > ex12_1.tmp 2>&1; \ 181 205 if (${DIFF} output/ex12_1.out ex12_1.tmp) then true; \ 182 206 else echo "Possible problem with ex12_1, diffs above"; fi; \ 183 207 ${RM} -f ex12_1.tmp 184 208 185 209 runex13_1: 186 -@${MPIEXEC} -np 1 ex13 > ex13_1.tmp 2>&1; \210 -@${MPIEXEC} -np 1 ./ex13 > ex13_1.tmp 2>&1; \ 187 211 if (${DIFF} output/ex13_1.out ex13_1.tmp) then true; \ 188 212 else echo "Possible problem with ex13_1, diffs above"; fi; \ 189 213 ${RM} -f ex13_1.tmp 190 214 191 215 runex14_1: 192 -@${MPIEXEC} -np 1 ex14 -file ${SLEPC_DIR}/src/mat/examples/rdb200.petsc > ex14_1.tmp 2>&1; \216 -@${MPIEXEC} -np 1 ./ex14 -file ${SLEPC_DIR}/src/mat/examples/rdb200.petsc > ex14_1.tmp 2>&1; \ 193 217 if (${DIFF} output/ex14_1.out ex14_1.tmp) then true; \ 194 218 else echo "Possible problem with ex14_1, diffs above"; fi; \ 195 219 ${RM} -f ex14_1.tmp 196 220 197 221 runex15_1: 198 -@${MPIEXEC} -np 1 ex15 > ex15_1.tmp 2>&1; \222 -@${MPIEXEC} -np 1 ./ex15 > ex15_1.tmp 2>&1; \ 199 223 if (${DIFF} output/ex15_1.out ex15_1.tmp) then true; \ 200 224 else echo "Possible problem with ex15_1, diffs above"; fi; \ 201 225 ${RM} -f ex15_1.tmp -
src/ip/ipbasic.
diff -u src/ip/ipbasic.c:1.9 src/ip/ipbasic.c:1.9.4.1
old new 101 101 102 102 PetscFunctionBegin; 103 103 PetscValidPointer(newip,2); 104 PetscHeaderCreate(ip,_p_IP,struct _IPOps,IP_COOKIE,-1,"IP",comm,IPDestroy,IPView);104 ierr = PetscHeaderCreate(ip,_p_IP,struct _IPOps,IP_COOKIE,-1,"IP",comm,IPDestroy,IPView);CHKERRQ(ierr); 105 105 *newip = ip; 106 106 ip->orthog_type = IP_CGS_ORTH; 107 107 ip->orthog_ref = IP_ORTH_REFINE_IFNEEDED; -
src/ip/ipdot.
diff -u src/ip/ipdot.c:1.6 src/ip/ipdot.c:1.6.4.1
old new 48 48 PetscValidHeaderSpecific(x,VEC_COOKIE,2); 49 49 PetscValidPointer(norm,3); 50 50 51 ierr = IPInnerProduct(ip,x,x,&p);CHKERRQ(ierr); 52 53 if (PetscAbsScalar(p)<PETSC_MACHINE_EPSILON) 54 PetscInfo(ip,"Zero norm, either the vector is zero or a semi-inner product is being used\n"); 55 51 if (!ip->matrix && ip->bilinear_form == IPINNER_HERMITIAN) { 52 ierr = VecNorm(x,NORM_2,norm);CHKERRQ(ierr); 53 } else { 54 ierr = IPInnerProduct(ip,x,x,&p);CHKERRQ(ierr); 55 if (PetscAbsScalar(p)<PETSC_MACHINE_EPSILON) 56 PetscInfo(ip,"Zero norm, either the vector is zero or a semi-inner product is being used\n"); 56 57 #if defined(PETSC_USE_COMPLEX) 57 if (PetscRealPart(p)<0.0 || PetscAbsReal(PetscImaginaryPart(p))>PETSC_MACHINE_EPSILON)58 SETERRQ(1,"IPNorm: The inner product is not well defined");59 *norm = PetscSqrtScalar(PetscRealPart(p));58 if (PetscRealPart(p)<0.0 || PetscAbsReal(PetscImaginaryPart(p))>PETSC_MACHINE_EPSILON) 59 SETERRQ(1,"IPNorm: The inner product is not well defined"); 60 *norm = PetscSqrtScalar(PetscRealPart(p)); 60 61 #else 61 if (p<0.0) SETERRQ(1,"IPNorm: The inner product is not well defined");62 *norm = PetscSqrtScalar(p);62 if (p<0.0) SETERRQ(1,"IPNorm: The inner product is not well defined"); 63 *norm = PetscSqrtScalar(p); 63 64 #endif 65 } 64 66 65 67 PetscFunctionReturn(0); 66 68 } … … 94 96 PetscValidHeaderSpecific(x,VEC_COOKIE,2); 95 97 PetscValidPointer(norm,3); 96 98 97 ierr = IPInnerProductBegin(ip,x,x,&p);CHKERRQ(ierr); 99 if (!ip->matrix && ip->bilinear_form == IPINNER_HERMITIAN) { 100 ierr = VecNormBegin(x,NORM_2,norm);CHKERRQ(ierr); 101 } else { 102 ierr = IPInnerProductBegin(ip,x,x,&p);CHKERRQ(ierr); 103 } 98 104 99 105 PetscFunctionReturn(0); 100 106 } … … 130 136 PetscValidHeaderSpecific(x,VEC_COOKIE,2); 131 137 PetscValidPointer(norm,3); 132 138 133 ierr = IPInnerProductEnd(ip,x,x,&p);CHKERRQ(ierr); 134 135 if (PetscAbsScalar(p)<PETSC_MACHINE_EPSILON) 136 PetscInfo(ip,"Zero norm, either the vector is zero or a semi-inner product is being used\n"); 139 if (!ip->matrix && ip->bilinear_form == IPINNER_HERMITIAN) { 140 ierr = VecNormEnd(x,NORM_2,norm);CHKERRQ(ierr); 141 } else { 142 ierr = IPInnerProductEnd(ip,x,x,&p);CHKERRQ(ierr); 143 if (PetscAbsScalar(p)<PETSC_MACHINE_EPSILON) 144 PetscInfo(ip,"Zero norm, either the vector is zero or a semi-inner product is being used\n"); 137 145 138 146 #if defined(PETSC_USE_COMPLEX) 139 if (PetscRealPart(p)<0.0 || PetscAbsReal(PetscImaginaryPart(p))>PETSC_MACHINE_EPSILON)140 SETERRQ(1,"IPNorm: The inner product is not well defined");141 *norm = PetscSqrtScalar(PetscRealPart(p));147 if (PetscRealPart(p)<0.0 || PetscAbsReal(PetscImaginaryPart(p))>PETSC_MACHINE_EPSILON) 148 SETERRQ(1,"IPNorm: The inner product is not well defined"); 149 *norm = PetscSqrtScalar(PetscRealPart(p)); 142 150 #else 143 if (p<0.0) SETERRQ(1,"IPNorm: The inner product is not well defined");144 *norm = PetscSqrtScalar(p);151 if (p<0.0) SETERRQ(1,"IPNorm: The inner product is not well defined"); 152 *norm = PetscSqrtScalar(p); 145 153 #endif 154 } 146 155 147 156 PetscFunctionReturn(0); 148 157 } -
src/st/impls/sinvert/sinvert.
diff -u src/st/impls/sinvert/sinvert.c:1.29 src/st/impls/sinvert/sinvert.c:1.29.4.1
old new 117 117 ierr = KSPSetOperators(st->ksp,st->mat,st->mat,DIFFERENT_NONZERO_PATTERN);CHKERRQ(ierr); 118 118 break; 119 119 default: 120 ierr = MatDuplicate(st->A,MAT_COPY_VALUES,&st->mat);CHKERRQ(ierr);121 120 if (st->sigma != 0.0) { 121 ierr = MatDuplicate(st->A,MAT_COPY_VALUES,&st->mat);CHKERRQ(ierr); 122 122 if (st->B) { 123 123 ierr = MatAXPY(st->mat,-st->sigma,st->B,st->str);CHKERRQ(ierr); 124 124 } else { -
src/st/interface/stfunc.
diff -u src/st/interface/stfunc.c:1.32 src/st/interface/stfunc.c:1.32.2.1
old new 137 137 PetscValidPointer(newst,2); 138 138 *newst = 0; 139 139 140 PetscHeaderCreate(st,_p_ST,struct _STOps,ST_COOKIE,-1,"ST",comm,STDestroy,STView);140 ierr = PetscHeaderCreate(st,_p_ST,struct _STOps,ST_COOKIE,-1,"ST",comm,STDestroy,STView);CHKERRQ(ierr); 141 141 st->bops->publish = STPublish_Petsc; 142 142 ierr = PetscMemzero(st->ops,sizeof(struct _STOps));CHKERRQ(ierr); 143 143 -
src/st/interface/stsolve.
diff -u src/st/interface/stsolve.c:1.46 src/st/interface/stsolve.c:1.46.4.1
old new 64 64 Output Parameter: 65 65 . B - output matrix 66 66 67 Note: 68 The output matrix B must be destroyed after use. 69 67 70 Level: developer 68 71 @*/ 69 72 PetscErrorCode STGetBilinearForm(ST st,Mat *B) … … 81 84 #define __FUNCT__ "STGetBilinearForm_Default" 82 85 PetscErrorCode STGetBilinearForm_Default(ST st,Mat *B) 83 86 { 87 PetscErrorCode ierr; 88 84 89 PetscFunctionBegin; 85 90 *B = st->B; 91 if (*B) { 92 ierr = PetscObjectReference((PetscObject)*B);CHKERRQ(ierr); 93 } 86 94 PetscFunctionReturn(0); 87 95 } 88 96 -
src/svd/impls/cross/cross.
diff -u src/svd/impls/cross/cross.c:1.9 src/svd/impls/cross/cross.c:1.9.2.1
old new 118 118 119 119 ierr = EPSSetOperators(cross->eps,cross->mat,PETSC_NULL);CHKERRQ(ierr); 120 120 ierr = EPSSetProblemType(cross->eps,EPS_HEP);CHKERRQ(ierr); 121 ierr = EPSSetWhichEigenpairs(cross->eps,svd->which == SVD_LARGEST ? EPS_LARGEST_REAL : EPS_SMALLEST_REAL);CHKERRQ(ierr); 121 122 ierr = EPSSetDimensions(cross->eps,svd->nsv,svd->ncv);CHKERRQ(ierr); 122 123 ierr = EPSSetTolerances(cross->eps,svd->tol,svd->max_it);CHKERRQ(ierr); 123 124 ierr = EPSSetUp(cross->eps);CHKERRQ(ierr); … … 136 137 PetscScalar sigma; 137 138 138 139 PetscFunctionBegin; 139 ierr = EPSSetWhichEigenpairs(cross->eps,svd->which == SVD_LARGEST ? EPS_LARGEST_REAL : EPS_SMALLEST_REAL);CHKERRQ(ierr);140 140 ierr = EPSSetInitialVector(cross->eps,svd->vec_initial);CHKERRQ(ierr); 141 141 ierr = EPSSolve(cross->eps);CHKERRQ(ierr); 142 142 ierr = EPSGetConverged(cross->eps,&svd->nconv);CHKERRQ(ierr); -
src/svd/impls/cyclic/cyclic.
diff -u src/svd/impls/cyclic/cyclic.c:1.10 src/svd/impls/cyclic/cyclic.c:1.10.2.1
old new 133 133 134 134 ierr = EPSSetOperators(cyclic->eps,cyclic->mat,PETSC_NULL);CHKERRQ(ierr); 135 135 ierr = EPSSetProblemType(cyclic->eps,EPS_HEP);CHKERRQ(ierr); 136 ierr = EPSSetWhichEigenpairs(cyclic->eps,svd->which == SVD_LARGEST ? EPS_LARGEST_REAL : EPS_SMALLEST_MAGNITUDE);CHKERRQ(ierr); 136 137 ierr = EPSSetDimensions(cyclic->eps,svd->nsv,svd->ncv);CHKERRQ(ierr); 137 138 ierr = EPSSetTolerances(cyclic->eps,svd->tol,svd->max_it);CHKERRQ(ierr); 138 139 ierr = EPSSetUp(cyclic->eps);CHKERRQ(ierr); … … 163 164 VecScatter vsU,vsV; 164 165 165 166 PetscFunctionBegin; 166 ierr = EPSSetWhichEigenpairs(cyclic->eps,svd->which == SVD_LARGEST ? EPS_LARGEST_REAL : EPS_SMALLEST_MAGNITUDE);CHKERRQ(ierr);167 167 ierr = EPSSolve(cyclic->eps);CHKERRQ(ierr); 168 168 ierr = EPSGetConverged(cyclic->eps,&svd->nconv);CHKERRQ(ierr); 169 169 ierr = EPSGetIterationNumber(cyclic->eps,&svd->its);CHKERRQ(ierr); -
src/svd/interface/svdbasic.
diff -u src/svd/interface/svdbasic.c:1.29 src/svd/interface/svdbasic.c:1.29.2.1
old new 189 189 PetscFunctionBegin; 190 190 PetscValidPointer(outsvd,2); 191 191 192 PetscHeaderCreate(svd,_p_SVD,struct _SVDOps,SVD_COOKIE,-1,"SVD",comm,SVDDestroy,SVDView);192 ierr = PetscHeaderCreate(svd,_p_SVD,struct _SVDOps,SVD_COOKIE,-1,"SVD",comm,SVDDestroy,SVDView);CHKERRQ(ierr); 193 193 *outsvd = svd; 194 194 195 195 svd->bops->publish = SVDPublish_Petsc; -
src/svd/interface/svdopts.
diff -u src/svd/interface/svdopts.c:1.17 src/svd/interface/svdopts.c:1.17.4.1
old new 288 288 switch (which) { 289 289 case SVD_LARGEST: 290 290 case SVD_SMALLEST: 291 svd->which = which; 291 if (svd->which != which) { 292 svd->setupcalled = 0; 293 svd->which = which; 294 } 292 295 break; 293 296 default: 294 297 SETERRQ(PETSC_ERR_ARG_OUTOFRANGE,"Invalid 'which' parameter"); -
src/sys/ftn-custom/zslepc_start.
diff -u src/sys/ftn-custom/zslepc_start.c:1.8 src/sys/ftn-custom/zslepc_start.c:1.8.4.1
old new 19 19 20 20 extern PetscTruth SlepcBeganPetsc; 21 21 22 static PetscTruth SlepcInitializeCalled=PETSC_FALSE;22 extern PetscTruth SlepcInitializeCalled; 23 23 24 24 #ifdef PETSC_HAVE_FORTRAN_CAPS 25 25 #define petscinitialize_ PETSCINITIALIZE