From ee3afdd71e34e34a54676f20ec9f1292d6c8d316 Mon Sep 17 00:00:00 2001 From: v1j4y Date: Tue, 20 Dec 2016 16:02:23 +0100 Subject: [PATCH] modified makefile to seperate into bin and lib dirs also now added neigenvalues option --- Makefile | 38 ++++++++++++++++++++++++++------------ src/ex1.c | 5 +++-- src/read2.c | 5 ++++- src/read2.h | 1 + 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index fba9d00..99f2424 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,37 @@ include ${SLEPC_DIR}/lib/slepc/conf/slepc_common -CC=gcc +#CC=gcc +#FC = ifort MAKE = /usr/bin/make -MKDIR_P = mkdir -p -OBJ_DIR = obj +MKDIR_P = /bin/mkdir -p +OBJ_DIR := obj +LIB_DIR := libs +BIN_DIR := bin +SRC_DIR := src -irpf90.a: - cd src && irpf90 init && $(MAKE) && cp irpf90.a ../ +.PHONY: ex1 + +ex1: ${BIN_DIR}/ex1 ${OBJ_DIR}: ${MKDIR_P} ${OBJ_DIR} -directories: ${OBJ_DIR} +${LIB_DIR}: + ${MKDIR_P} ${LIB_DIR} -obj/read2.o: src/read2.c directories - ${CC} -c -o $@ $< +${BIN_DIR}: + ${MKDIR_P} ${BIN_DIR} -obj/ex1.o: src/ex1.c - -${CC} -c -o $@ $< ${SLEPC_EPS_LIB} +directories: ${OBJ_DIR} ${LIB_DIR} ${BIN_DIR} -ex1: obj/read2.o irpf90.a obj/ex1.o src/read2.h src/stimsyr.h chkopts - -${CLINKER} -o ex1 obj/ex1.o obj/read2.o irpf90.a ${SLEPC_EPS_LIB}# -lifcore -lirc -lcomposerxe_gen_helpers_core_2.3 +${LIB_DIR}/irpf90.a: directories + cd ${SRC_DIR} && irpf90 init && $(MAKE) irpf90.a && cp irpf90.a ../${LIB_DIR} + +${OBJ_DIR}/read2.o: ${SRC_DIR}/read2.c directories chkopts + ${CC} ${SLEPC_INCLUDE} ${PETSC_CC_INCLUDES} -c -o $@ $< ${SLEPC_EPS_LIB} + +${OBJ_DIR}/ex1.o: ${SRC_DIR}/ex1.c + -${CC} ${SLEPC_INCLUDE} ${PETSC_CC_INCLUDES} -c -o $@ $< ${SLEPC_EPS_LIB} + +${BIN_DIR}/ex1: ${OBJ_DIR}/read2.o ${LIB_DIR}/irpf90.a ${OBJ_DIR}/ex1.o ${SRC_DIR}/read2.h ${SRC_DIR}/stimsyr.h chkopts + -${CLINKER} ${SLEPC_INCLUDE} ${PETSC_CC_INCLUDES} -o ${BIN_DIR}/ex1 ${OBJ_DIR}/ex1.o ${OBJ_DIR}/read2.o ${LIB_DIR}/irpf90.a ${SLEPC_EPS_LIB}# -lifcore -lirc -lcomposerxe_gen_helpers_core_2.3 # ${RM} ex1.o read2.o diff --git a/src/ex1.c b/src/ex1.c index b29a2b5..8d3c3a9 100644 --- a/src/ex1.c +++ b/src/ex1.c @@ -124,12 +124,13 @@ int main(int argc,char **argv) ierr = EPSSetWhichEigenpairs(eps,EPS_SMALLEST_REAL);CHKERRQ(ierr); ierr = EPSSetFromOptions(eps);CHKERRQ(ierr); - tol = 1.e-8; + tol = 1.e-9; maxit = 10000000; ierr = EPSSetTolerances(eps,tol,maxit);CHKERRQ(ierr); nev = 4; ncv = 10; mpd = 10; + nev = getdata.nroots; ierr = EPSSetDimensions(eps,nev,PETSC_DECIDE,PETSC_DECIDE);CHKERRQ(ierr); ierr = PetscTime(&t1);CHKERRQ(ierr); @@ -156,7 +157,7 @@ int main(int argc,char **argv) " k ||Ax-kx||/||kx||\n" " ----------------- ------------------\n");CHKERRQ(ierr); - for (i=0;inroots=atol(line); + break; } /* end of switch */ } /* end of the input file */ diff --git a/src/read2.h b/src/read2.h index 6c98ab4..db7021a 100644 --- a/src/read2.h +++ b/src/read2.h @@ -14,6 +14,7 @@ typedef struct { double xjjz[700]; double xjjxy[700]; double xtt[700]; + long int nroots; } Data ;