Commit 53704f0c authored by Henderson, Shane's avatar Henderson, Shane
Browse files

Merge branch 'hotfix_slepc' into 'master'

Fixes build and tests with TPL_ENABLE_SLEPC=ON

See merge request https://code.ornl.gov/futility/Futility/-/merge_requests/417
parents 4fe46138 12749465
Loading
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -42,6 +42,9 @@ USE ForTeuchos_ParameterList
#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>6)) || (PETSC_VERSION_MAJOR>=4))
USE PETSCSNES
#ifdef FUTILITY_HAVE_SLEPC
USE SLEPCEPS
#endif
#endif
#endif

+10 −2
Original line number Diff line number Diff line
@@ -33,10 +33,18 @@ USE VectorTypes
USE MatrixTypes
USE Sorting

#ifdef FUTILITY_HAVE_PETSC
#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))
#ifdef FUTILITY_HAVE_SLEPC
USE SLEPCEPS
#endif
#endif
#endif

IMPLICIT NONE

#ifdef FUTILITY_HAVE_PETSC
#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))
#include <petsc/finclude/petsc.h>
#else
@@ -1849,7 +1857,7 @@ SUBROUTINE getEigenVecs(A,lsmall,numvecs,V)
    !Assemble the matrix
    CALL A%assemble(ierr)
    !Set the operators (Only matrix A)
    CALL EPSSetOperators(eps, A%A,PETSC_NULL_OBJECT,ierr)
    CALL EPSSetOperators(eps, A%A,PETSC_NULL_MAT,ierr)
  ENDSELECT

  !Get the eigenvectors
+7 −1
Original line number Diff line number Diff line
@@ -17,6 +17,13 @@ USE VectorTypes
USE MatrixTypes
USE PartitionGraph

#ifdef FUTILITY_HAVE_SLEPC
#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))
USE PETSCSYS
#endif
#endif

IMPLICIT NONE

TYPE(PartitionGraphType) :: testPG,testSG
@@ -25,7 +32,6 @@ TYPE(ParamType) :: refG1Params,refG2Params,refG3Params,refG4Params
TYPE(ExceptionHandlerType),POINTER :: e

#ifdef FUTILITY_HAVE_SLEPC
#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))
#include <petsc/finclude/petsc.h>
#else
+8 −3
Original line number Diff line number Diff line
@@ -10,9 +10,14 @@ PROGRAM testTPLSLEPC

USE IntrType

#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))
USE PETSCSYS
USE SLEPCEPS
#endif

IMPLICIT NONE

#include <petscversion.h>
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))
#include <petsc/finclude/petsc.h>
#include <slepc/finclude/slepc.h>
@@ -130,7 +135,7 @@ SUBROUTINE testEX1F()
  CALL EPSCreate(PETSC_COMM_WORLD,eps,ierr)

  ! Set operators. In this case, it is a standard eigenvalue problem
  CALL EPSSetOperators(eps,A,PETSC_NULL_OBJECT,ierr)
  CALL EPSSetOperators(eps,A,PETSC_NULL_MAT,ierr)
  CALL EPSSetProblemType(eps,EPS_HEP,ierr)

  ! Set solver parameters at runtime
@@ -173,7 +178,7 @@ SUBROUTINE testEX1F()
    DO i=0,nconv-1
      ! Get converged eigenpairs: i-th eigenvalue is stored in kr
      ! (real part) and ki (imaginary part)
      CALL EPSGetEigenpair(eps,i,kr,ki,PETSC_NULL_OBJECT,PETSC_NULL_OBJECT,ierr)
      CALL EPSGetEigenpair(eps,i,kr,ki,PETSC_NULL_VEC,PETSC_NULL_VEC,ierr)

      ! Compute the relative error associated to each eigenpair
#if (((PETSC_VERSION_MAJOR>=3) && (PETSC_VERSION_MINOR>=6)) || (PETSC_VERSION_MAJOR>=4))