| # |
| # This file contains site-specific information. The definitions below |
| # should be changed to match the locations of libraries at your site. |
| # The following naming convention is used: |
| # XXX_LIB - location of library XXX |
| # XXX_INCLUDE - directory for include files needed for library XXX |
| # |
| # ---------------------------------------------------------------------------------------- |
| # Locations of OPTIONAL packages. Comment out those you do not have. |
| # ---------------------------------------------------------------------------------------- |
| # |
| # Location of ARPACK (MPI version) |
| # |
| ARPACK_INCLUDE = |
| ARPACK_LIB = -L/usr/local/soft/ARPACK/lib/lib${BOPT}/${PETSC_ARCH} -lparpack -larpack |
| SLEPC_HAVE_ARPACK = -DSLEPC_HAVE_ARPACK |
| # |
| # Location of BLZPACK |
| # |
| #BLZPACK_INCLUDE = |
| #BLZPACK_LIB = -L/home/jroman/soft/blzpack/lib/${PETSC_ARCH} -lblzpack |
| #SLEPC_HAVE_BLZPACK = -DSLEPC_HAVE_BLZPACK |
| # |
| # Location of PLANSO |
| # |
| #PLANSO_INCLUDE = |
| #PLANSO_LIB = -L/home/jroman/soft/PLAN/lib/${PETSC_ARCH} -lplan -llanso |
| #SLEPC_HAVE_PLANSO = -DSLEPC_HAVE_PLANSO |
| # |
| # Location of TRLAN |
| # |
| #TRLAN_INCLUDE = |
| #TRLAN_LIB = -L/home/jroman/soft/TRLan/lib/${PETSC_ARCH} -ltrlan_mpi -L${PGI}/linux86/lib -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgftnrtl -lpgc |
| #SLEPC_HAVE_TRLAN = -DSLEPC_HAVE_TRLAN |
| slepc_oshared: slepc_chk_dir |
| -@echo "BEGINNING TO BUILD SLEPC SHARED LIBRARIES" |
| -@echo "=========================================" |
| @for LIBNAME in ${SLEPC_SHLIBS}; do \ |
| cd ${SLEPC_PDIR}; ${OMAKE} -f ${SLEPC_DIR}/makefile oshared LIBNAME=$$LIBNAME; \ |
| done |
| -@echo "Completed building SLEPC shared libraries" |
| -@echo "=========================================" |
| # |
| # Builds Fortran-77 wrappers |
| # |
| slepc_fortranstubs: |
| @-bfort -dir ${SLEPC_DIR}/src/fortran/auto \ |
| -mnative -ansi -nomsgs -anyname -mapptr -mpi -ferr -ptrprefix Petsc\ |
| -ptr64 PETSC_USE_POINTER_CONVERSION -fcaps PETSC_HAVE_FORTRAN_CAPS \ |
| -fuscore PETSC_HAVE_FORTRAN_UNDERSCORE ${SOURCEC} |
| slepc_fixfortran: |
| @echo "Fixing pointers in src/fortran/auto" |
| -@for FILENAME in ${SOURCEC} ; do \ |
| if [ ! -f $$FILENAME ]; then \ |
| echo "Error: file $$FILENAME specified in SOURCEC does not exist."; \ |
| else \ |
| cat $$FILENAME | \ |
| sed "s/^void /void PETSC_STDCALL /" | \ |
| sed "s/PetscToPointer(int)/PetscToPointer(void *)/" | \ |
| sed "s/PetscRmPointer(int)/PetscRmPointer(void *)/" | \ |
| sed "s/PetscToPointer(a) (a)/PetscToPointer(a) (*(long *)(a))/" | \ |
| sed "s/PetscFromPointer(a) (int)(a)/PetscFromPointer(a) (long)(a)/" | \ |
| sed "s/PetscToPointer( \*(int\*)/PetscToPointer( /" >_$$FILENAME; \ |
| /bin/mv _$$FILENAME $$FILENAME ;\ |
| fi; \ |
| done |
| # |
| # |
| slepc_deleteshared: chkopts_basic |
| ${RM} ${SLEPC_LDIR}/*.${SLSUFFIX} ${SLEPC_LDIR}/so_locations |
| slepc_noshared: |
| # --------------------------------------------------------------------------------------- |
| # Rules for the automatic generation of documentation, tutorials etc |
| # See rule for allmanualpages and allhtml in ${PETSC_DIR}/makefile |
| # |
| # Builds manual pages in HTML in two stages |
| # 1.) manualpages_buildcite: builds the file manualpages.cit for hyperlinks |
| # 2.) manualpages: builds the html pages, complete with hyperlinks |
| slepc_chk_manualpage_dir: |
| @if [ ! -d "${SLEPC_DIR}/docs/manualpages/${MANSEC}" ]; then \ |
| echo Making directory ${SLEPC_DIR}/docs/manualpages/${MANSEC} for library; \ |
| ${MKDIR} ${SLEPC_DIR}/docs/manualpages/${MANSEC}; fi |
| slepc_manualpages_buildcite: slepc_chk_manualpage_dir |
| @-if [ "${MANSEC}" != "" ] ; then \ |
| doctext -html -indexdir ../${MANSEC} \ |
| -index ${SLEPC_DIR}/docs/manualpages/manualpages.cit \ |
| -mpath ${SLEPC_DIR}/docs/manualpages/${MANSEC} ${SOURCEC} ${SOURCEH}; fi |
| # |
| # |
| slepc_manualpages: |
| -@if [ "${MANSEC}" != "" ] ; then \ |
| doctext -html \ |
| -mpath ${LOC}/docs/manualpages/${MANSEC} -heading SLEPc \ |
| -defn ${SLEPC_DIR}/docs/tex/doctext/html.def \ |
| -locdir ${LOCDIR} -mapref ${LOC}/docs/manualpages/manualpages.cit \ |
| ${SOURCEC} ${SOURCEH}; fi |
| # |
| # Example usage for manual pages; adds each example that uses a function to that functions |
| # manual page up to a limit of 10 examples. |
| # |
| slepc_manexamples: |
| -@base=`basename ${LOCDIR}`; \ |
| if [ "$${base}" = "tutorials" ] ; then \ |
| echo "Generating manual example links" ; \ |
| for i in ${EXAMPLESC} ${EXAMPLESF} foo ; do \ |
| if [ "$$i" != "foo" ] ; then \ |
| a=`cat $$i | mapnames -map ${LOC}/docs/manualpages/manualpages.cit \ |
| -printmatch -o /dev/null | sort | uniq` ; \ |
| for j in $$a ; do \ |
| b=`ls ${LOC}/docs/manualpages/*/$${j}.html | cut -f9` ; \ |
| l=`grep tutorials $${b} | wc -l`; \ |
| if [ $$l -le 10 ] ; then \ |
| if [ $$l -eq 0 ] ; then \ |
| echo "<P><H3><FONT COLOR=\"#CC3333\">Examples</FONT></H3>" >> $$b; \ |
| fi; \ |
| echo "<A HREF=\"../../../BB\">BB</A><BR>" | sed s?BB?${LOCDIR}$$i.html?g >> $$b; \ |
| grep -v /BODY $$b > ltmp; \ |
| echo "</BODY></HTML>" >> ltmp; \ |
| mv -f ltmp $$b; \ |
| fi; \ |
| done; \ |
| fi; \ |
| done; \ |
| fi |
| # |
| # Goes through all examples adding the Concepts: to the /tmp/exampleconcepts file |
| # |
| slepc_exampleconcepts: |
| -@base=`basename ${LOCDIR}`; \ |
| if [ "$${base}" = "tutorials" ] ; then \ |
| echo "Generating concepts list" ; \ |
| for i in ${EXAMPLESC} ${EXAMPLESF} foo ; do \ |
| if [ "$$i" != "foo" ] ; then \ |
| grep Concepts: $$i | sed -e s?Concepts:??g -e s?\!??g > ltmp; \ |
| line=`cat ltmp | wc -l`; \ |
| line=`expr $$line - 1` ; \ |
| line=`expr $$line + 1` ; \ |
| while [ $$line -gt 0 ] ; do \ |
| a=`head -$$line ltmp | tail -1`; \ |
| echo ${LOCDIR}$$i $$a >> ${LOC}/docs/tex/exampleconcepts; \ |
| line=`expr $$line - 1` ; \ |
| done; \ |
| ${RM} ltmp; \ |
| fi; \ |
| done; \ |
| fi |
| # |
| # Goes through all manual pages removing the Concepts: field and adding the |
| # concepts to the /tmp/manconcepts file |
| # |
| slepc_manconcepts: |
| -@${RM} ${LOC}/docs/tex/manconcepts ${LOC}/docs/tex/exampleconcepts |
| -@for i in docs/manualpages/*/*.html ; do \ |
| ${RM} ltmp; \ |
| grep Concepts: $$i | sed s?Concepts:??g > ltmp; \ |
| line=`cat ltmp | wc -l`; \ |
| line=`expr $$line - 1` ; \ |
| line=`expr $$line + 1` ; \ |
| if [ $$line -gt 0 ] ; then \ |
| while [ $$line -gt 0 ] ; do \ |
| a=`head -$$line ltmp | tail -1`; \ |
| echo $$i $$a >> ${LOC}/docs/tex/manconcepts; \ |
| line=`expr $$line - 1` ; \ |
| done; \ |
| grep -v Concepts: $$i > tmp; \ |
| mv tmp $$i; \ |
| fi; \ |
| ${RM} ltmp; \ |
| done |
| slepc_getexlist: |
| -${SLEPC_DIR}/maint/getexlist -locdir ${LOCDIR} -byfile -destdir ${LOC}/docs/manualpages/concepts/ ${EXAMPLESC$ {EXAMPLESF} |
| -@rm -f logfile.txt |
| # |
| # Rules for generating html code from C and Fortran |
| # |
| slepc_html: |
| -@sed -e s?man+../?man+ROOT/docs/manualpages/? ${LOC}/docs/manualpages/manualpages.cit > /tmp/$$USER.htmlmap |
| -@cat /home/jroman/tmp/www.index >> /tmp/$$USER.htmlmap |
| -@ROOT=`echo ${LOCDIR} | sed -e s?/[a-z]*?/..?g -e s?src/??g -e s?include/??g` ;\ |
| loc=`pwd | sed -e s?\$${PETSC_DIR}?$${LOC}/?g -e s?/disks??g`; \ |
| for i in ${SOURCEC} ${SOURCEF} ${SOURCEH} ${EXAMPLESC} ${EXAMPLESF} ${EXAMPLESCH} ${EXAMPLESFH} ${EXAMPLESMATLAB} foo ; do\ |
| if [ -f $$i ]; then \ |
| iroot=`echo $$i | sed -e s?[a-z.]*/??g`;\ |
| IROOT=`echo $${i} | sed -e s?[.][.]??g` ;\ |
| if [ "$${IROOT}" != "$${i}" ] ; then \ |
| IROOT=".."; \ |
| else \ |
| IROOT=$${ROOT};\ |
| fi;\ |
| ${RM} $${loc}/$$i.html; \ |
| echo "<center><a href=\"$${iroot}\">Actual source code: $${iroot}</a></center><br>" > $${loc}/$$i.html; \ |
| grep -v __FUNCT__ $$i | sed -e "s/CHKERRQ(ierr);//g" -e "s/PetscFunctionReturn(0)/return(0)/g" \ |
| -e "s/ierr = //g" | c2html -n | ${PETSC_DIR}/maint/fixinclude $$i $${ROOT} | \ |
| grep -v PetscValid | grep -v PetscFunctionBegin | grep -v PetscCheck | grep -v "int ierr;" |\ |
| grep -v '#if !defined(__' | grep -v '#define __' | \ |
| mapnames -map /tmp/$$USER.htmlmap -inhtml | sed -e s?ROOT?$${IROOT}?g >> $${loc}/$$i.html ; \ |
| fi; \ |
| done |
| -@ROOT=`echo ${LOCDIR} | sed -e s?/[a-z]*?/..?g -e s?src/??g -e s?include/??g` ;\ |
| loc=`pwd | sed -e s?\$${PETSC_DIR}?$${LOC}/?g -e s?/disks??g`; ${RM} $${loc}/index.html; \ |
| cat ${PETSC_DIR}/docs/manualpages/sec/bop.${MANSEC} | sed -e "s?<A HREF=\"PETSC_DIR[a-z/]*\">Examples</A>?<A HREF=\"$${ROOT}/docs/manualpages/${MANSEC}\">Manual pages</A>?g" -e "s?PETSC_DIR?$${ROOT}/?g"> $${loc}/index.html; \ |
| echo "<p>" >> $${loc}/index.html |
| -@loc=`pwd | sed -e s?\$${PETSC_DIR}?$${LOC}/?g -e s?/disks??g`;\ |
| if [ "${EXAMPLESC}" != "" ] ; then \ |
| for file in ${EXAMPLESC} foo ; do \ |
| if [ -f $$file ]; then \ |
| cmess=`grep "static char help" $${file} | cut -d\" -f2 | cut -d\. -f1`; \ |
| echo "<a href=\"$${file}.html\">$${file}: $${cmess}</a><br>" >> $${loc}/index.html;\ |
| fi; \ |
| done ;\ |
| else \ |
| for file in ${DIRS} foo; do \ |
| if [ -d $$file ]; then \ |
| echo "<a href=\"$${file}/\">$${file}/</a><br>" >> $${loc}/index.html; \ |
| fi; \ |
| done; \ |
| echo " " >> $${loc}/index.html; \ |
| for file in ${SOURCEH} ${SOURCEC} ${SOURCEF} foo ; do \ |
| if [ -f $$file ]; then \ |
| echo "<a href=\"$${file}.html\">$${file}</a><br>" >> $${loc}/index.html; \ |
| fi; \ |
| done; \ |
| fi ;\ |
| echo " " >> $${loc}/index.html; \ |
| echo "<a href=\"makefile.html\">makefile</a><br>" >> $${loc}/index.html |
| -@loc=`pwd | sed -e s?\$${PETSC_DIR}?$${LOC}/?g -e s?/disks??g`; \ |
| cat makefile | c2html | mapnames -map /tmp/$$USER.htmlmap -inhtml > $${loc}/makefile.html |
| -@${RM} /tmp/$$USER.htmlmap tmp |
| slepc_cleanhtml: |
| -@${RM} makefile.html *.c.html *.F.html *.h.html *.h90.html inex.html *.m.html |
| # |
| # SLEPc-specific definitions: |
| # |
| # SLEPC_LIB_DIR (defined from $SLEPC_DIR) determines the libraries that are linked. |
| # SLEPC_PDIR (defined from $SLEPC_DIR) determines where the libraries are built. |
| # SLEPC_LIB_DIR and SLEPC_PDIR will usually be identical. |
| # |
| # If you change SLEPC_PDIR in your makefile you MUST put it after the |
| # include line. |
| # |
| # LIBNAME - library name |
| # SLEPC_INCLUDE - locations of include files |
| # |
| # Definitions from the PETSc makefile system: |
| # |
| # SOURCE - source files |
| # SSOURCE - single precision versions of some source code |
| # OBJS - object files |
| # SOBJS - single precision versions of some object files |
| # DOCS - files that contain documentation, readmes etc. |
| # CPPFLAGS - preprocessor flags for *.c, *.F preprocessing |
| # PETSC_PARCH - corresponds to the PARCH_arch in the source files, set in |
| # the file bmake/${PETSC_ARCH}/base |
| # |
| INSTALL_LIB_DIR = ${SLEPC_DIR}/lib/lib${BOPT}/${PETSC_ARCH} |
| SLEPC_LIB_DIR = ${SLEPC_DIR}/lib/lib${BOPT}/${PETSC_ARCH} |
| SLEPC_INCLUDE = -I${SLEPC_DIR} -I${SLEPC_DIR}/include |
| CCPPFLAGS = ${SLEPC_INCLUDE} ${PETSC_CCPPFLAGS} |
| FCPPFLAGS = ${SLEPC_INCLUDE} ${PETSC_FCPPFLAGS} |
| C_SH_LIB_PATH = ${CLINKER_SLFLAG}${SLEPC_LIB_DIR} ${PETSC_C_SH_LIB_PATH} |
| F_SH_LIB_PATH = ${FLINKER_SLFLAG}${SLEPC_LIB_DIR} ${PETSC_F_SH_LIB_PATH} |
| # |
| # Defines all libraries needed for using SLEPC as well as all lower-level PETSc |
| # components (such as vectors and matrices). The order of listing these libraries |
| # is important! |
| # |
| SLEPC_LIB = -L${SLEPC_LIB_DIR} -lslepc ${SLEPC_EXTERNAL_LIB} ${PETSC_SLES_LIB} |
| # SLEPC_LIB = -L${SLEPC_LIB_DIR} -lslepc |
| # SLEPC_LIB = -L${SLEPC_LIB_DIR} -lslepc ${PETSC_SYS_LIB} |
| # SLEPC_LIB = -L${SLEPC_LIB_DIR} -lslepc ${PETSC_SLES_LIB} |
| # SLEPC_LIB = ${SLEPC_LIB_DIR}/libslepc.a ${PETSC_SLES_LIB} |
| # |
| # Link if you are using the SLEPC Fortran interface. |
| # |
| #SLEPC_FORTRAN_LIB = -L${SLEPC_LIB_DIR} -lslepcfortran |
| SLEPC_FORTRAN_LIB = -L${SLEPC_LIB_DIR} -lslepcfortran ${PETSC_FORTRAN_LIB} |
| # |
| # Link if you are using code from the contributed part of SLEPC |
| # |
| SLEPC_CONTRIB = -L${SLEPC_LIB_DIR} -lslepccontrib |
| # --------------------------------------------------------------------------------------- |
| # |
| # PCONF - indicates which OPTIONAL external packages are available at your site; appropriate |
| # ones are defined in bmake/${PETSC_ARCH}/packages (as are the library locations). |
| # Ones that are not defined are ignored. You only need to edit this to add a new |
| # package that SLEPc has never seen before. Never remove any of these, rather remove |
| # them from the appropriate bmake/${PETSC_ARCH}/packages |
| # |
| # |
| PCONF_PETSC = ${PETSC_HAVE_MPE} ${PETSC_HAVE_BLOCKSOLVE} ${PETSC_HAVE_PVODE} ${PETSC_HAVE_PARMETIS} ${PETSC_HAVE_AMS} ${PETSC_HAVE_SPAI} ${PETSC_HAVE_X11} ${PETSC_HAVE_MATLAB_ENGINE} ${PETSC_HAVE_ADIC} ${PETSC_HAVE_JAVA} ${PETSC_HAVE_LUSOL} ${PETSC_HAVE_DSCPACK} ${PETSC_HAVE_RAMG} ${PETSC_HAVE_MATLAB} ${PETSC_HAVE_ESSL} ${PETSC_HAVE_ADIFOR} ${PETSC_HAVE_SUPERLUDIST} ${PETSC_HAVE_SUPERLU} ${PETSC_HAVE_SPOOLES} ${PETSC_HAVE_UMFPACK} ${PETSC_HAVE_CCA} ${PETSC_HAVE_TRILINOS} ${PETSC_HAVE_HYPRE} ${PETSC_HAVE_MATHEMATICA} ${PETSC_HAVE_TRIANGLE} ${PETSC_HAVE_PLAPACK} ${PETSC_HAVE_SAMG} |
| PCONF = ${PCONF_PETSC} ${SLEPC_HAVE_ARPACK} ${SLEPC_HAVE_BLZPACK} ${SLEPC_HAVE_PLANSO} ${SLEPC_HAVE_TRLAN} |
| SLEPC_EXTERNAL_LIB = ${ARPACK_LIB} ${BLZPACK_LIB} ${PLANSO_LIB} ${TRLAN_LIB} |
| # |
| # Some variables used to build shared libraries |
| # |
| SHLIBS = libslepc libslepcfortran |
| # The following include file defines the packages installed in your system. |
| # |
| include ${SLEPC_DIR}/bmake/${PETSC_ARCH}/packages |
| slepc_clean: clean |
| slepc_chkopts: chkopts |
| slepc_testexamples_1: testexamples_1 |
| # |
| # This file contains site-specific information. The definitions below |
| # should be changed to match the locations of libraries at your site. |
| # The following naming convention is used: |
| # XXX_LIB - location of library XXX |
| # XXX_INCLUDE - directory for include files needed for library XXX |
| # |
| # ---------------------------------------------------------------------------------------- |
| # Locations of OPTIONAL packages. Comment out those you do not have. |
| # ---------------------------------------------------------------------------------------- |
| # |
| # Location of ARPACK (MPI version) |
| # |
| ARPACK_INCLUDE = |
| ARPACK_LIB = -L/usr/local/soft/ARPACK/lib/lib${BOPT}/${PETSC_ARCH} -lparpack -larpack |
| SLEPC_HAVE_ARPACK = -DSLEPC_HAVE_ARPACK |
| # |
| # Location of BLZPACK |
| # |
| #BLZPACK_INCLUDE = |
| #BLZPACK_LIB = -L/home/jroman/soft/blzpack/lib/${PETSC_ARCH} -lblzpack |
| #SLEPC_HAVE_BLZPACK = -DSLEPC_HAVE_BLZPACK |
| # |
| # Location of PLANSO |
| # |
| #PLANSO_INCLUDE = |
| #PLANSO_LIB = -L/home/jroman/soft/PLAN/lib/${PETSC_ARCH} -lplan -llanso |
| #SLEPC_HAVE_PLANSO = -DSLEPC_HAVE_PLANSO |
| # |
| # Location of TRLAN |
| # |
| #TRLAN_INCLUDE = |
| #TRLAN_LIB = -L/home/jroman/soft/TRLan/lib/${PETSC_ARCH} -ltrlan_mpi -L${PGI}/linux86/lib -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgftnrtl -lpgc |
| #SLEPC_HAVE_TRLAN = -DSLEPC_HAVE_TRLAN |
| # |
| # This file contains site-specific information. The definitions below |
| # should be changed to match the locations of libraries at your site. |
| # The following naming convention is used: |
| # XXX_LIB - location of library XXX |
| # XXX_INCLUDE - directory for include files needed for library XXX |
| # |
| # ---------------------------------------------------------------------------------------- |
| # Locations of OPTIONAL packages. Comment out those you do not have. |
| # ---------------------------------------------------------------------------------------- |
| # |
| # Location of ARPACK (MPI version) |
| # |
| #ARPACK_INCLUDE = |
| #ARPACK_LIB = -L/home/jroman/soft/ARPACK/lib/${PETSC_ARCH} -lparpack -larpack |
| #SLEPC_HAVE_ARPACK = -DSLEPC_HAVE_ARPACK |
| # |
| # Location of BLZPACK |
| # |
| #BLZPACK_INCLUDE = |
| #BLZPACK_LIB = -L/home/jroman/soft/blzpack/lib/${PETSC_ARCH} -lblzpack |
| #SLEPC_HAVE_BLZPACK = -DSLEPC_HAVE_BLZPACK |
| # |
| # Location of PLANSO |
| # |
| #PLANSO_INCLUDE = |
| #PLANSO_LIB = -L/home/jroman/soft/PLAN/lib/${PETSC_ARCH} -lplan -llanso |
| #SLEPC_HAVE_PLANSO = -DSLEPC_HAVE_PLANSO |
| # |
| # Location of TRLAN |
| # |
| #TRLAN_INCLUDE = |
| #TRLAN_LIB = -L/home/jroman/soft/TRLan/lib/${PETSC_ARCH} -ltrlan_mpi |
| #SLEPC_HAVE_TRLAN = -DSLEPC_HAVE_TRLAN |
| # |
| # This file contains site-specific information. The definitions below |
| # should be changed to match the locations of libraries at your site. |
| # The following naming convention is used: |
| # XXX_LIB - location of library XXX |
| # XXX_INCLUDE - directory for include files needed for library XXX |
| # |
| # ---------------------------------------------------------------------------------------- |
| # Locations of OPTIONAL packages. Comment out those you do not have. |
| # ---------------------------------------------------------------------------------------- |
| # |
| # Location of ARPACK (MPI version) |
| # |
| #ARPACK_INCLUDE = |
| #ARPACK_LIB = -L/usr/local/soft/ARPACK/lib/lib${BOPT}/${PETSC_ARCH} -lparpack -larpack |
| #SLEPC_HAVE_ARPACK = -DSLEPC_HAVE_ARPACK |
| # |
| # Location of BLZPACK |
| # |
| #BLZPACK_INCLUDE = |
| #BLZPACK_LIB = -L/home/jroman/soft/blzpack/lib/${PETSC_ARCH} -lblzpack |
| #SLEPC_HAVE_BLZPACK = -DSLEPC_HAVE_BLZPACK |
| # |
| # Location of PLANSO |
| # |
| #PLANSO_INCLUDE = |
| #PLANSO_LIB = -L/home/jroman/soft/PLAN/lib/${PETSC_ARCH} -lplan -llanso |
| #SLEPC_HAVE_PLANSO = -DSLEPC_HAVE_PLANSO |
| # |
| # Location of TRLAN |
| # |
| #TRLAN_INCLUDE = |
| #TRLAN_LIB = -L/home/jroman/soft/TRLan/lib/${PETSC_ARCH} -ltrlan_mpi -L${PGI}/linux86/lib -lpgf90 -lpgf90_rpm1 -lpgf902 -lpgftnrtl -lpgc |
| #SLEPC_HAVE_TRLAN = -DSLEPC_HAVE_TRLAN |
| # |
| # SLEPc uses the portable makefile system provided by the PETSc library. |
| # The following include files set customized site, optimization, and version |
| # options. Do NOT remove any of these include files! You should generally |
| # need to edit only ${SLEPC_DIR}/bmake/${PETSC_ARCH}/packages to specify the |
| # packages installed in your system. |
| # |
| include ${PETSC_DIR}/bmake/common/base |
| include ${SLEPC_DIR}/bmake/slepc_common_variables |
| include ${SLEPC_DIR}/bmake/slepc_common_basic |
| include ${PETSC_DIR}/bmake/common/test |
| #if !defined(__SLEPCVERSION_H) |
| #define __SLEPCVERSION_H |
| /* ========================================================================== */ |
| /* |
| Current SLEPC version number and release date |
| */ |
| #define SLEPC_VERSION_NUMBER "SLEPc Version 2.1.5-3, Released Sep 25, 2003" |
| #define SLEPC_VERSION_MAJOR 2 |
| #define SLEPC_VERSION_MINOR 1 |
| #define SLEPC_VERSION_SUBMINOR 5 |
| #define SLEPC_VERSION_PATCH 3 |
| #define SLEPC_VERSION_DATE "Sep 25, 2003" |
| #define SLEPC_AUTHOR_INFO "The SLEPc Team\n\ |
| Bug reports, questions: slepc-maint@grycap.upv.es\n\ |
| Web page: http://www.grycap.upv.es/slepc\n" |
| #endif |
| /* |
| Spectral transformation module for eigenvalue problems. |
| */ |
| #if !defined(__SLEPCST_H) |
| #define __SLEPCST_H |
| #include "petscsles.h" |
| extern int ST_COOKIE; |
| typedef struct _p_ST* ST; |
| #define STNONE "none" |
| #define STSHELL "shell" |
| #define STSHIFT "shift" |
| #define STSINV "sinvert" |
| typedef char *STType; |
| extern int STCreate(MPI_Comm,ST*); |
| extern int STDestroy(ST); |
| extern int STSetType(ST,STType); |
| extern int STGetType(ST,STType*); |
| extern int STSetOperators(ST,Mat,Mat); |
| extern int STGetOperators(ST,Mat*,Mat*); |
| extern int STSetUp(ST); |
| extern int STSetFromOptions(ST); |
| extern int STView(ST,PetscViewer); |
| extern int STApply(ST,Vec,Vec); |
| extern int STApplyB(ST,Vec,Vec); |
| extern int STApplyNoB(ST,Vec,Vec); |
| extern PetscFList STList; |
| extern int STRegisterAll(char*); |
| extern int STRegisterDestroy(void); |
| extern int STRegister(char*,char*,char*,int(*)(ST)); |
| #if defined(PETSC_USE_DYNAMIC_LIBRARIES) |
| #define STRegisterDynamic(a,b,c,d) STRegister(a,b,c,0) |
| #else |
| #define STRegisterDynamic(a,b,c,d) STRegister(a,b,c,d) |
| #endif |
| extern int STSetSLES(ST,SLES); |
| extern int STGetSLES(ST,SLES*); |
| extern int STSetShift(ST,PetscScalar); |
| extern int STGetShift(ST,PetscScalar*); |
| extern int STGetNumberOfShifts(ST,int*); |
| extern int STSetVector(ST,Vec); |
| extern int STGetVector(ST,Vec*); |
| extern int STSetOptionsPrefix(ST,char*); |
| extern int STAppendOptionsPrefix(ST,char*); |
| extern int STGetOptionsPrefix(ST,char**); |
| extern int STBackTransform(ST,PetscScalar*,PetscScalar*); |
| extern int STAssociatedSLESSolve(ST,Vec,Vec); |
| /* --------- options specific to particular spectral transformations-------- */ |
| extern int STSinvertSetShiftMat(ST); |
| extern int STSinvertSetMatStructure(ST,MatStructure); |
| extern int STShellSetApply(ST, int (*)(void*,Vec,Vec), void*); |
| extern int STShellSetBackTransform(ST, int (*)(void*,PetscScalar*,PetscScalar*)); |
| extern int STShellSetName(ST,char*); |
| extern int STShellGetName(ST,char**); |
| #endif |
| /* |
| User interface for the SLEPC eigenproblem solvers. |
| */ |
| #if !defined(__SLEPCEPS_H) |
| #define __SLEPCEPS_H |
| #include "slepc.h" |
| #include "slepcst.h" |
| extern int EPS_COOKIE; |
| /*S |
| EPS - Abstract SLEPc object that manages all the eigenvalue |
| problem solvers. |
| Level: beginner |
| Concepts: eigen solvers |
| .seealso: EPSCreate(), ST |
| S*/ |
| typedef struct _p_EPS* EPS; |
| #define EPSPOWER "power" |
| #define EPSRQI "rqi" |
| #define EPSSUBSPACE "subspace" |
| #define EPSARNOLDI "arnoldi" |
| #define EPSLAPACK "lapack" |
| /* the next ones are interfaces to external libraries */ |
| #define EPSARPACK "arpack" |
| #define EPSBLZPACK "blzpack" |
| #define EPSPLANSO "planso" |
| #define EPSTRLAN "trlan" |
| typedef char * EPSType; |
| typedef enum { EPS_HEP=1, EPS_GHEP, |
| EPS_NHEP, EPS_GNHEP } EPSProblemType; |
| typedef enum { EPS_LARGEST_MAGNITUDE, EPS_SMALLEST_MAGNITUDE, |
| EPS_LARGEST_ALGEBRAIC, EPS_SMALLEST_ALGEBRAIC, |
| EPS_LARGEST_REAL, EPS_SMALLEST_REAL, |
| EPS_LARGEST_IMAGINARY, EPS_SMALLEST_IMAGINARY, |
| EPS_BOTH_ENDS } EPSWhich; |
| typedef enum { EPS_MGS_ORTH, EPS_CGS_ORTH, |
| EPS_IR_ORTH } EPSOrthogonalizationType; |
| extern int EPSCreate(MPI_Comm,EPS *); |
| extern int EPSDestroy(EPS); |
| extern int EPSSetType(EPS,EPSType); |
| extern int EPSGetType(EPS,EPSType*); |
| extern int EPSSetProblemType(EPS,EPSProblemType); |
| extern int EPSGetProblemType(EPS,EPSProblemType*); |
| extern int EPSSetOperators(EPS,Mat,Mat); |
| extern int EPSSetFromOptions(EPS); |
| extern int EPSSetUp(EPS); |
| extern int EPSSolve(EPS,int*); |
| extern int EPSView(EPS,PetscViewer); |
| extern PetscFList EPSList; |
| extern int EPSRegisterAll(char *); |
| extern int EPSRegisterDestroy(void); |
| extern int EPSRegister(char*,char*,char*,int(*)(EPS)); |
| #if defined(PETSC_USE_DYNAMIC_LIBRARIES) |
| #define EPSRegisterDynamic(a,b,c,d) EPSRegister(a,b,c,0) |
| #else |
| #define EPSRegisterDynamic(a,b,c,d) EPSRegister(a,b,c,d) |
| #endif |
| extern int EPSSetST(EPS,ST); |
| extern int EPSGetST(EPS,ST*); |
| extern int EPSSetTolerances(EPS,PetscReal,int); |
| extern int EPSGetTolerances(EPS,PetscReal*,int*); |
| extern int EPSSetDimensions(EPS,int,int); |
| extern int EPSGetDimensions(EPS,int*,int*); |
| extern int EPSGetConverged(EPS,int*); |
| extern int EPSGetSolution(EPS,PetscScalar**,PetscScalar**,Vec**); |
| extern int EPSComputeError(EPS,PetscReal*); |
| extern int EPSGetErrorEstimates(EPS,PetscReal**); |
| extern int EPSSetMonitor(EPS,int (*)(EPS,int,int,PetscReal*,int,void*),void*); |
| extern int EPSSetValuesMonitor(EPS,int (*)(EPS,int,int,PetscScalar*,PetscScalar*,int,void*),void*); |
| extern int EPSClearMonitor(EPS); |
| extern int EPSGetMonitorContext(EPS,void **); |
| extern int EPSGetIterationNumber(EPS,int*); |
| extern int EPSSetInitialVector(EPS,Vec); |
| extern int EPSGetInitialVector(EPS,Vec*); |
| extern int EPSSetDropEigenvectors(EPS); |
| extern int EPSSetWhichEigenpairs(EPS,EPSWhich); |
| extern int EPSGetWhichEigenpairs(EPS,EPSWhich*); |
| extern int EPSSetOrthogonalization(EPS,EPSOrthogonalizationType); |
| extern int EPSGetOrthogonalization(EPS,EPSOrthogonalizationType*); |
| extern int EPSIsGeneralized(EPS,PetscTruth*); |
| extern int EPSIsHermitian(EPS,PetscTruth*); |
| extern int EPSDefaultEstimatesMonitor(EPS,int,int,PetscReal*,int,void*); |
| extern int EPSDefaultValuesMonitor(EPS,int,int,PetscScalar*,PetscScalar*,int,void*); |
| extern int EPSSetOptionsPrefix(EPS,char*); |
| extern int EPSAppendOptionsPrefix(EPS,char*); |
| extern int EPSGetOptionsPrefix(EPS,char**); |
| typedef enum {/* converged */ |
| EPS_CONVERGED_TOL = 2, |
| /* diverged */ |
| EPS_DIVERGED_ITS = -3, |
| EPS_DIVERGED_BREAKDOWN = -4, |
| EPS_DIVERGED_NONSYMMETRIC = -5, |
| EPS_CONVERGED_ITERATING = 0} EPSConvergedReason; |
| extern int EPSGetConvergedReason(EPS,EPSConvergedReason *); |
| extern int EPSBackTransform(EPS); |
| extern int EPSComputeExplicitOperator(EPS,Mat*); |
| extern int EPSSortEigenvalues(int,PetscScalar*,PetscScalar*,EPSWhich,int,int*); |
| extern int EPSDenseNHEP(int,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*); |
| extern int EPSDenseNHEPSorted(int,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*,int,EPSWhich); |
| extern int EPSQRDecomposition(EPS,int,int,PetscScalar*,int); |
| extern int EPSReverseProjection(EPS,int,int,PetscScalar*); |
| extern int EPSSwapEigenpairs(EPS,int,int); |
| extern int STPreSolve(ST,EPS); |
| extern int STPostSolve(ST,EPS); |
| extern int EPSSetDefaults(EPS eps); |
| /* --------- options specific to particular eigensolvers -------- */ |
| extern int EPSSubspaceSetInner(EPS,int); |
| extern int EPSBlzpackSetBlockSize(EPS,int); |
| extern int EPSBlzpackSetInterval(EPS,PetscReal,PetscReal); |
| extern int EPSBlzpackSetMatGetInertia(EPS,int (*f)(Mat,int*,int*,int*)); |
| #endif |
| ! |
| ! Include file for Fortran use of the ST object in SLEPc |
| ! |
| #if !defined(__SLEPCST_H) |
| #define __SLEPCST_H |
| #define ST PetscFortranAddr |
| #define STType character*(80) |
| #define STNONE 'none' |
| #define STSHELL 'shell' |
| #define STSHIFT 'shift' |
| #define STSINV 'sinvert' |
| #endif |
| ! |
| ! Include file for Fortran use of the EPS object in SLEPc |
| ! |
| #if !defined(__SLEPCEPS_H) |
| #define __SLEPCEPS_H |
| #define EPS PetscFortranAddr |
| #define EPSType character*(80) |
| #define EPSConvergedReason integer |
| #define EPSPOWER 'power' |
| #define EPSRQI 'rqi' |
| #define EPSSUBSPACE 'subspace' |
| #define EPSARNOLDI 'arnoldi' |
| #define EPSLAPACK 'lapack' |
| #define EPSARPACK 'arpack' |
| #define EPSBLZPACK 'blzpack' |
| #define EPSPLANSO 'planso' |
| #define EPSTRLAN 'trlan' |
| ! Convergence flags. |
| ! They sould match the flags in $SLEPC_DIR/include/slepceps.h |
| integer EPS_CONVERGED_TOL |
| integer EPS_DIVERGED_ITS |
| integer EPS_DIVERGED_BREAKDOWN |
| integer EPS_DIVERGED_NONSYMMETRIC |
| integer EPS_CONVERGED_ITERATING |
| parameter (EPS_CONVERGED_TOL = 2) |
| parameter (EPS_DIVERGED_ITS = -3) |
| parameter (EPS_DIVERGED_BREAKDOWN = -4) |
| parameter (EPS_DIVERGED_NONSYMMETRIC = -5) |
| parameter (EPS_CONVERGED_ITERATING = 0) |
| #endif |
| ! |
| ! Include file for Fortran use of the SLEPc package |
| #include "petscconf.h" |
| #include "finclude/petscdef.h" |
| #if !defined (PETSC_AVOID_DECLARATIONS) |
| ! ------------------------------------------------------------------------ |
| ! BEGIN COMMON-BLOCK VARIABLES |
| ! Fortran Null |
| ! |
| character*(80) SLEPC_NULL_CHARACTER |
| PetscFortranInt SLEPC_NULL_INTEGER |
| PetscFortranDouble SLEPC_NULL_DOUBLE |
| PetscScalar SLEPC_NULL_SCALAR |
| ! |
| ! A SLEPC_NULL_FUNCTION pointer |
| ! |
| ! external SLEPC_NULL_FUNCTION |
| ! |
| ! Common block to store some of the SLEPc constants, |
| ! which can be set only at runtime. |
| ! (A string should be in a different common block.) |
| ! |
| common /slepcfortran1/ SLEPC_NULL_CHARACTER |
| common /slepcfortran2/ SLEPC_NULL_INTEGER |
| common /slepcfortran3/ SLEPC_NULL_SCALAR |
| common /slepcfortran4/ SLEPC_NULL_DOUBLE |
| ! END COMMON-BLOCK VARIABLES |
| ! ---------------------------------------------------------------------------- |
| ! |
| ! End of Fortran include file for the SLEPc package |
| #endif |
| CFLAGS = |
| FFLAGS = |
| SOURCEC = |
| SOURCEF = |
| SOURCEH = slepc.h slepceps.h slepcst.h |
| OBJSC = |
| OBJSF = |
| LIBBASE = libslepc |
| DIRS = |
| MANSEC = |
| LOCDIR = include/finclude/ |
| include ${SLEPC_DIR}/bmake/slepc_common |
| runexamples: |
| /* |
| Necessary routines in BLAS and LAPACK not included in petscblaslapack.f |
| */ |
| #if !defined(_SLEPCBLASLAPACK_H) |
| #define _SLEPCBLASLAPACK_H |
| #include "petscblaslapack.h" |
| #if !defined(PETSC_USE_COMPLEX) |
| /* |
| These are real case with no character string arguments |
| */ |
| #if defined(PETSC_USES_FORTRAN_SINGLE) |
| /* |
| For these machines we must call the single precision Fortran version |
| */ |
| #define DLARNV SLARNV |
| #define DLAPY2 SLAPY2 |
| #define DGELQF SGELQF |
| #define DORMLQ SORMLQ |
| #define DHSEQR SHSEQR |
| #define DTREVC STREVC |
| #define DGEHRD SGEHRD |
| #define DGEES SGEES |
| #endif |
| #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C) |
| #define LArnv_ dlarnv_ |
| #define LAlapy2_ dlapy2_ |
| #define LAgelqf_ dgelqf_ |
| #define LAormlq_ dormlq_ |
| #define LAhseqr_ dhseqr_ |
| #define LAtrevc_ dtrevc_ |
| #define LAgehrd_ dgehrd_ |
| #define LAgees_ dgees_ |
| #elif defined(PETSC_HAVE_FORTRAN_CAPS) |
| #define LArnv_ DLARNV |
| #define LAlapy2_ DLAPY2 |
| #define LAgelqf_ DGELQF |
| #define LAormlq_ DORMLQ |
| #define LAhseqr_ DHSEQR |
| #define LAtrevc_ DTREVC |
| #define LAgehrd_ DGEHRD |
| #define LAgees_ DGEES |
| #else |
| #define LArnv_ dlarnv |
| #define LAlapy2_ dlapy2 |
| #define LAgelqf_ dgelqf |
| #define LAormlq_ dormlq |
| #define LAhseqr_ dhseqr |
| #define LAtrevc_ dtrevc |
| #define LAgehrd_ dgehrd |
| #define LAgees_ dgees |
| #endif |
| #else |
| /* |
| Complex with no character string arguments |
| */ |
| #if defined(PETSC_USES_FORTRAN_SINGLE) |
| #define ZLARNV CLARNV |
| #define ZGELQF CGELQF |
| #define ZUNMLQ CUNMLQ |
| #define ZHSEQR CHSEQR |
| #define ZTREVC CTREVC |
| #define ZGEHRD CGEHRD |
| #define ZGEES CGEES |
| #endif |
| #if defined(PETSC_HAVE_FORTRAN_UNDERSCORE) || defined(PETSC_BLASLAPACK_F2C) |
| #define LArnv_ zlarnv_ |
| #define LAgelqf_ zgelqf_ |
| #define LAormlq_ zunmlq_ |
| #define LAhseqr_ zhseqr_ |
| #define LAtrevc_ ztrevc_ |
| #define LAgehrd_ zgehrd_ |
| #define LAgees_ zgees_ |
| #elif defined(PETSC_HAVE_FORTRAN_CAPS) |
| #define LArnv_ ZLARNV |
| #define LAgelqf_ ZGELQF |
| #define LAormlq_ ZUNMLQ |
| #define LAhseqr_ ZHSEQR |
| #define LAtrevc_ ZTREVC |
| #define LAgehrd_ ZGEHRD |
| #define LAgees_ ZGEES |
| #else |
| #define LArnv_ zlarnv |
| #define LAgelqf_ zgelqf |
| #define LAormlq_ zunmlq |
| #define LAhseqr_ zhseqr |
| #define LAtrevc_ ztrevc |
| #define LAgehrd_ zgehrd |
| #define LAgees_ zgees |
| #endif |
| #endif |
| EXTERN_C_BEGIN |
| extern void LArnv_(int*,int*,int*,PetscScalar*); |
| extern double LAlapy2_(double*,double*); |
| extern void LAgelqf_(int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,int*); |
| extern void LAormlq_(char*,char*,int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int,int); |
| extern void LAtrevc_(char*,char*,int*,int*,PetscScalar*,int*,PetscScalar*,int*,PetscScalar*,int*,int*,int*,PetscScalar*,int*,int,int); |
| extern void LAgehrd_(int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,int*); |
| #if !defined(PETSC_USE_COMPLEX) |
| extern void LAhseqr_(char*,char*,int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int,int); |
| extern void LAgees_(char*,char*,int*,int*,PetscScalar*,int*,int*,PetscScalar*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int*); |
| #else |
| extern void LAhseqr_(char*,char*,int*,int*,int*,PetscScalar*,int*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,int*,int,int); |
| extern void LAgees_(char*,char*,int*,int*,PetscScalar*,int*,int*,PetscScalar*,PetscScalar*,int*,PetscScalar*,int*,PetscReal*,int*,int*); |
| #endif |
| EXTERN_C_END |
| #endif |
| /* |
| This is the main SLEPc include file (for C and C++). It is included |
| by all other SLEPc include files, so it almost never has to be |
| specifically included. |
| */ |
| #if !defined(__SLEPC_H) |
| #define __SLEPC_H |
| /* ========================================================================== */ |
| /* |
| Current SLEPc version number and release date |
| */ |
| #include "slepcversion.h" |
| /* ========================================================================== */ |
| /* |
| SLEPc logging/profiling information |
| */ |
| #include "slepclog.h" |
| #include <limits.h> |
| #include <float.h> |
| /* ========================================================================== */ |
| /* |
| The PETSc include files. |
| */ |
| #include "petsc.h" |
| #include "petscvec.h" |
| #include "petscmat.h" |
| /* |
| Initialization of SLEPc and other system routines |
| */ |
| extern int SlepcInitialize(int*,char***,char[],const char[]); |
| extern int SlepcFinalize(void); |
| extern int SlepcInitializeFortran(void); |
| extern int SlepcVecSetRandom(Vec); |
| extern int SlepcIsHermitian(Mat,PetscTruth*); |
| #endif |
| This is a directory for public include files. Subdirectories are: |
| - finclude - Fortran interface include files |
| CFLAGS = |
| FFLAGS = |
| SOURCEC = |
| SOURCEF = |
| SOURCEH = slepc.h slepceps.h slepcst.h slepclog.h slepcversion.h slepcblaslapack.h |
| OBJSC = |
| OBJSF = |
| LIBBASE = libslepc |
| DIRS = finclude |
| LOCDIR = include/ |
| MANSEC = |
| include ${SLEPC_DIR}/bmake/slepc_common |
| runexamples: |
| /* |
| Defines profile/logging in SLEPc. |
| */ |
| #if !defined(__SLEPCLOG_H) |
| #define __SLEPCLOG_H |
| #include "slepc.h" |
| /* |
| Lists all SLEPC events for profiling. |
| */ |
| extern int EPS_SetUp, EPS_Solve, ST_SetUp, ST_Apply, ST_ApplyB, ST_ApplyNoB, EPS_Orthogonalization; |
| #endif |