On 21/03/12 21:45, Lucas Nussbaum wrote: >> The following packages have unmet dependencies: >> sbuild-build-depends-getdp-dummy : Depends: libpetsc3.1-dev but it is not >> installable >> Depends: libslepc3.1-dev but it is not >> installable >> E: Broken packages
Bumping the dependencies to libpetsc3.2-dev and libslepc3.2-dev, updating the paths in debian/rules and applying the attached patch makes it build again. I didn't test if the resulting package works. There are also a lot of new warnings related to Fortran code in contrib. So someone who is more familiar with getdp should look into this. Regards -- Sebastian Ramacher
diff --git a/Legacy/EigenSolve.cpp b/Legacy/EigenSolve.cpp index f2928f9..0fc0889 100644 --- a/Legacy/EigenSolve.cpp +++ b/Legacy/EigenSolve.cpp @@ -13,8 +13,8 @@ void EigenSolve(struct DofData * DofData_P, int NumEigenvalues, #if defined(HAVE_ARPACK) && defined(HAVE_SLEPC) // if both Arpack and SLEPC are available, use Arpack by default // (set "-slepc" on the command line to force SLEPC) - PetscTruth slepc = PETSC_FALSE, set; - PetscOptionsGetTruth(PETSC_NULL, "-slepc", &slepc, &set); + PetscBool slepc = PETSC_FALSE, set; + PetscOptionsGetBool(PETSC_NULL, "-slepc", &slepc, &set); if(slepc) EigenSolve_SLEPC(DofData_P, NumEigenvalues, shift_r, shift_i); else diff --git a/Legacy/EigenSolve_SLEPC.cpp b/Legacy/EigenSolve_SLEPC.cpp index bec19d5..3e6cec3 100644 --- a/Legacy/EigenSolve_SLEPC.cpp +++ b/Legacy/EigenSolve_SLEPC.cpp @@ -130,8 +130,8 @@ static void _storeEigenVectors(struct DofData *DofData_P, int nconv, Current.Time = re; Current.TimeImag = im; } - _try(VecDestroy(xr)); - _try(VecDestroy(xi)); + _try(VecDestroy(&xr)); + _try(VecDestroy(&xi)); } static void _linearEVP(struct DofData * DofData_P, int numEigenValues, @@ -203,8 +203,6 @@ static void _linearEVP(struct DofData * DofData_P, int numEigenValues, Msg::Error("SLEPc diverged after %d iterations", its); else if(reason == EPS_DIVERGED_BREAKDOWN) Msg::Error("SLEPc generic breakdown in method"); - else if(reason == EPS_DIVERGED_NONSYMMETRIC) - Msg::Error("The operator is nonsymmetric"); // get number of converged approximate eigenpairs PetscInt nconv; @@ -217,7 +215,7 @@ static void _linearEVP(struct DofData * DofData_P, int numEigenValues, // print eigenvalues and store eigenvectors in DofData _storeEigenVectors(DofData_P, nconv, eps, PETSC_NULL); - _try(EPSDestroy(eps)); + _try(EPSDestroy(&eps)); } static void _quadraticEVP(struct DofData * DofData_P, int numEigenValues, @@ -307,7 +305,7 @@ static void _quadraticEVP(struct DofData * DofData_P, int numEigenValues, // print eigenvalues and store eigenvectors in DofData _storeEigenVectors(DofData_P, nconv, PETSC_NULL, qep); - _try(QEPDestroy(qep)); + _try(QEPDestroy(&qep)); // restore operators LinAlg_ProdMatrixDouble(&DofData_P->M3, -1.0, &DofData_P->M3); diff --git a/Legacy/LinAlg_PETSC.cpp b/Legacy/LinAlg_PETSC.cpp index fe76f19..4b3dd72 100644 --- a/Legacy/LinAlg_PETSC.cpp +++ b/Legacy/LinAlg_PETSC.cpp @@ -127,13 +127,13 @@ static void _fillseq(gVector *V) VecScatterBegin(ctx, V->V, V->Vseq, INSERT_VALUES, SCATTER_FORWARD); VecScatterEnd(ctx, V->V, V->Vseq, INSERT_VALUES, SCATTER_FORWARD); #endif - VecScatterDestroy(ctx); + VecScatterDestroy(&ctx); } void LinAlg_CreateMatrix(gMatrix *M, gSolver *Solver, int n, int m) { PetscInt prealloc = 100; - PetscTruth set; + PetscBool set; PetscOptionsGetInt(PETSC_NULL, "-petsc_prealloc", &prealloc, &set); // prealloc cannot be bigger than the number of rows! @@ -161,19 +161,19 @@ void LinAlg_CreateMatrix(gMatrix *M, gSolver *Solver, int n, int m) void LinAlg_DestroySolver(gSolver *Solver) { for(int i = 0; i < 10; i++) - if(Solver->ksp[i]) _try(KSPDestroy(Solver->ksp[i])); + if(Solver->ksp[i]) _try(KSPDestroy(&Solver->ksp[i])); } void LinAlg_DestroyVector(gVector *V) { - _try(VecDestroy(V->V)); + _try(VecDestroy(&V->V)); if(Msg::GetCommSize() > 1) - _try(VecDestroy(V->Vseq)); + _try(VecDestroy(&V->Vseq)); } void LinAlg_DestroyMatrix(gMatrix *M) { - _try(MatDestroy(M->M)); + _try(MatDestroy(&M->M)); } void LinAlg_CopyScalar(gScalar *S1, gScalar *S2) @@ -303,7 +303,7 @@ void LinAlg_PrintVector(FILE *file, gVector *V, bool matlab) _try(PetscViewerASCIIOpen(PETSC_COMM_WORLD, "vector.m", &fd)); _try(PetscViewerSetFormat(fd, PETSC_VIEWER_ASCII_MATLAB)); _try(VecView(V->V, fd)); - _try(PetscViewerDestroy(fd)); + _try(PetscViewerDestroy(&fd)); } } @@ -314,7 +314,7 @@ void LinAlg_PrintMatrix(FILE *file, gMatrix *M, bool matlab) _try(PetscViewerASCIIOpen(PETSC_COMM_WORLD, "matrix.m", &fd)); _try(PetscViewerSetFormat(fd, PETSC_VIEWER_ASCII_MATLAB)); _try(MatView(M->M, fd)); - _try(PetscViewerDestroy(fd)); + _try(PetscViewerDestroy(&fd)); } void LinAlg_WriteScalar(FILE *file, gScalar *S) @@ -881,7 +881,7 @@ static void _zitsol(gMatrix *A, gVector *B, gVector *X) { int precond = 1, lfil = 30, im = 100, maxits = 200; double tol0 = 0.01, tol = 1e-10; - PetscTruth set; + PetscBool set; PetscOptionsGetInt(PETSC_NULL, "-zitsol_precond", &precond, &set); PetscOptionsGetInt(PETSC_NULL, "-zitsol_lfil", &lfil, &set); PetscOptionsGetInt(PETSC_NULL, "-zitsol_im", &im, &set); @@ -990,8 +990,8 @@ static void _solve(gMatrix *A, gVector *B, gSolver *Solver, gVector *X, { #if defined(HAVE_ZITSOL) // testing Yousef's new preconditioners and solvers - PetscTruth set, zitsol = PETSC_FALSE; - PetscOptionsGetTruth(PETSC_NULL, "-zitsol", &zitsol, &set); + PetscBool set, zitsol = PETSC_FALSE; + PetscOptionsGetBool(PETSC_NULL, "-zitsol", &zitsol, &set); if(zitsol){ _zitsol(A, B, X); return; } #endif diff --git a/configure.in b/configure.in index a1581cc..1270c52 100644 --- a/configure.in +++ b/configure.in @@ -160,7 +160,7 @@ if test "x$enable_petsc" != "xno" -a "x$enable_sparskit" != "xyes"; then fi LAPACK="yes" LINKER="\${CLINKER}" - FLAGS="${FLAGS} \${PETSCFLAGS} \${PETSC_INCLUDE}" + FLAGS="${FLAGS} \${PETSCFLAGS} \${PETSC_INCLUDE} \${PETSC_CC_INCLUDES}" AC_DEFINE(HAVE_PETSC) BO="${BO} Petsc" fi @@ -173,7 +173,7 @@ if test "x${PETSC}" = "xyes" -a "x$enable_slepc" != "xno"; then AC_CHECK_FILE(${SLEPC_DIR}/include/slepcqep.h,SLEPC="yes",SLEPC="no") if test "x${SLEPC}" = "xyes"; then GETDP_LIBS="${GETDP_LIBS} -L${SLEPC_DIR}/${PETSC_ARCH}/lib -lslepc" - FLAGS="${FLAGS} -I${SLEPC_DIR}/include" + FLAGS="${FLAGS} -I${SLEPC_DIR}/include -I${SLEPC_DIR}/${PETSC_ARCH}/include" AC_DEFINE(HAVE_SLEPC) BO="${BO} Slepc" else
signature.asc
Description: OpenPGP digital signature