From 2bb6c5379e9469eca7cb6e7ae39762a59123568f Mon Sep 17 00:00:00 2001 From: Daniel Wortmann Date: Mon, 27 Aug 2018 15:34:56 +0200 Subject: [PATCH] Added a script to simplifly the generation of tests and modified the testing environment. Documentation still missing. Contributes to #190 --- cmake/Files_and_Targets.txt | 5 +++- diagonalization/chase_diag.F90 | 31 ++++++++++++++--------- tests/{CMakeLists.txt => tests_old.cmake} | 1 + 3 files changed, 24 insertions(+), 13 deletions(-) rename tests/{CMakeLists.txt => tests_old.cmake} (99%) diff --git a/cmake/Files_and_Targets.txt b/cmake/Files_and_Targets.txt index 0e02a7e9..fd36e1ff 100644 --- a/cmake/Files_and_Targets.txt +++ b/cmake/Files_and_Targets.txt @@ -29,7 +29,6 @@ include(mix/CMakeLists.txt) include(vgen/CMakeLists.txt) include(inpgen/CMakeLists.txt) include(docs/CMakeLists.txt) -include(tests/CMakeLists.txt) include(mpi/CMakeLists.txt) include(hybrid/CMakeLists.txt) include(eels/CMakeLists.txt) @@ -39,6 +38,10 @@ include(wannier/uhu/CMakeLists.txt) include(forcetheorem/CMakeLists.txt) include(rdmft/CMakeLists.txt) + +include(tests/tests_old.cmake) +include(tests/tests_new.cmake) + set(inpgen_F77 ${inpgen_F77} inpgen/element.f inpgen/atom_input.f inpgen/crystal.f inpgen/lattice2.f inpgen/setab.f inpgen/super_check.f inpgen/atom_sym.f inpgen/generator.f inpgen/read_record.f inpgen/soc_or_ssdw.f inpgen/symproperties.f diff --git a/diagonalization/chase_diag.F90 b/diagonalization/chase_diag.F90 index 8870ce47..fbef30c4 100644 --- a/diagonalization/chase_diag.F90 +++ b/diagonalization/chase_diag.F90 @@ -379,21 +379,28 @@ IMPLICIT NONE IF (myid==0) CALL write_eig(chase_eig_id,ikpt,jsp,nev+nex,nev+nex,& eigenvalues(:(nev+nex)),zmat=zMatTemp) - CALL hmat%copy(zmatTemp,1,1) !Copy matrix into distributed form - call zmatTemp%free() - - ! --> recover the generalized eigenvectors z by solving z' = l^t * z + !Back-Transform IF (smat%l_real) THEN - CALL pdtrtrs('U','N','N',hmat%global_size1,nev,smat%data_r,1,1,smat%blacs_desc,& - hmat%data_r,1,1,smat%blacs_desc,info) + CALL PDTRTRI('U','N',smat%global_size1,smat%data_r,1,1,smat%blacs_desc,info) + CALL PDGEMM('N','N',smat%global_size1,smat%global_size1,smat%global_size1,1.0,smat%data_r,1,1,smat%blacs_desc,zmatTemp%data_r,1,1,zmattemp%blacs_desc,0.0,hmat%data_r,1,1,hmat%blacs_desc) ELSE - CALL pztrtrs('U','N','N',hmat%global_size1,nev,smat%data_c,1,1,smat%blacs_desc,& - hmat%data_c,1,1,smat%blacs_desc,info) - END IF - IF (info.NE.0) THEN - WRITE (6,*) 'Error in p?trtrs: info =',info - CALL juDFT_error("Diagonalization failed",calledby="chase_diag") + STOP 'chase no complex' ENDIF +!!$ CALL hmat%copy(zmatTemp,1,1) !Copy matrix into distributed form +!!$ call zmatTemp%free() +!!$ +!!$ ! --> recover the generalized eigenvectors z by solving z' = l^t * z +!!$ IF (smat%l_real) THEN +!!$ CALL pdtrtrs('U','N','N',hmat%global_size1,hmat%global_size1,smat%data_r,1,1,smat%blacs_desc,& +!!$ hmat%data_r,1,1,smat%blacs_desc,info) +!!$ ELSE +!!$ CALL pztrtrs('U','N','N',hmat%global_size1,hmat%global_size1,smat%data_c,1,1,smat%blacs_desc,& +!!$ hmat%data_c,1,1,smat%blacs_desc,info) +!!$ END IF +!!$ IF (info.NE.0) THEN +!!$ WRITE (6,*) 'Error in p?trtrs: info =',info +!!$ CALL juDFT_error("Diagonalization failed",calledby="chase_diag") +!!$ ENDIF ! Redistribute eigvec from ScaLAPACK distribution to each process ! having all eigenvectors corresponding to his eigenvalues as above diff --git a/tests/CMakeLists.txt b/tests/tests_old.cmake similarity index 99% rename from tests/CMakeLists.txt rename to tests/tests_old.cmake index f8eed57e..2d28943f 100644 --- a/tests/CMakeLists.txt +++ b/tests/tests_old.cmake @@ -54,3 +54,4 @@ if (${FLEUR_USE_MPI}) ${test} "${CMAKE_BINARY_DIR}/fleur_MPI" "${mpi_exec}") endforeach(test) endif() + -- GitLab