Line data Source code
1 : !-------------------------------------------------------------------------------- 2 : ! Copyright (c) 2021 Peter Grünberg Institut, Forschungszentrum Jülich, Germany 3 : ! This file is part of FLEUR and available as free software under the conditions 4 : ! of the MIT license as expressed in the LICENSE file in more detail. 5 : !-------------------------------------------------------------------------------- 6 : MODULE m_dfpt_check 7 : 8 : IMPLICIT NONE 9 : 10 : CONTAINS 11 0 : SUBROUTINE dfpt_check(fi, xcpot) 12 : 13 : USE m_types_fleurinput 14 : USE m_types_xcpot_libxc 15 : USE m_juDFT_stop, only : juDFT_error 16 : 17 : TYPE(t_fleurinput), INTENT(IN) :: fi 18 : CLASS(t_xcpot), INTENT(IN) :: xcpot 19 : 20 : LOGICAL :: l_libxc 21 : 22 0 : l_libxc = .FALSE. 23 : 24 : !Symmetry 25 0 : IF (fi%sym%nop.GT.1) CALL judft_error("juPhon uses only unit symmetry.") 26 : 27 : !Coretails 28 0 : IF (fi%input%ctail) CALL judft_error("juPhon coretails are problematic at the moment.") 29 : 30 : !!LOs 31 : !IF (ANY(fi%atoms%nlo.GT.0)) THEN 32 : ! CALL judft_error("juPhon doesn't do local orbitals yet.") 33 : !END IF 34 : 35 : !Noco 36 0 : IF (fi%noco%l_noco) CALL judft_error("juPhon doesn't do non-collinear systems yet.") 37 : 38 : !libxc 39 : SELECT TYPE(xcpot) 40 : TYPE IS (t_xcpot_libxc) 41 : l_libxc=.TRUE. 42 : END SELECT 43 : 44 0 : IF (.NOT.l_libxc) CALL judft_error("juPhon needs libxc functionals.") 45 : 46 : !GGA 47 0 : IF (xcpot%needs_grad()) CALL judft_error("juPhon doesn't do GGA functionals yet.") 48 : 49 : !MetaGGA 50 0 : IF (xcpot%exc_is_MetaGGA() .or. xcpot%vx_is_MetaGGA()) CALL judft_error("juPhon doesn't do MetaGGA functionals.") 51 : 52 : !DFTU etc. 53 0 : IF ((fi%atoms%n_u.GT.0).OR.(fi%atoms%n_hia.GT.0).OR.(fi%atoms%n_opc.GT.0)) CALL judft_error("juPhon doesn't do DFT+X [yet].") 54 : 55 : !SOC: 56 0 : IF (fi%noco%l_soc) CALL judft_error("juPhon doesn't do spin-orbit coupling yet.") 57 : 58 : !Spin spirals: 59 0 : IF (fi%noco%l_ss) CALL judft_error("juPhon doesn't do spin-spiral systems [yet].") 60 : 61 : !vdW 62 0 : IF (fi%input%vdw.GT.0) CALL judft_error("juPhon doesn't do van-der-Waals systems.") 63 : 64 : !Film 65 0 : IF (fi%input%film) CALL judft_error("juPhon doesn't do film systems.") 66 : 67 : !Hybrid/RDMFT 68 0 : IF (fi%hybinp%l_hybrid .OR. fi%input%l_rdmft) CALL judft_error("juPhon doesn't do hybrid or RDMFT.") 69 0 : END SUBROUTINE dfpt_check 70 0 : END MODULE m_dfpt_check