Commit dcd5b476 authored by Matthias Redies's avatar Matthias Redies

adaptet input for etotal xc-functionals

parent 7788609c
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -310,12 +310,16 @@
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="XCLibXCIDType">
<xsd:attribute name="exchange" type="xsd:integer" use="required"/>
<xsd:attribute name="correlation" type="xsd:integer" use="required"/>
<xsd:attribute name="exchange" type="xsd:integer" use="required"/>
<xsd:attribute name="correlation" type="xsd:integer" use="required"/>
<xsd:attribute name="etot_exchange" type="xsd:integer" use="optional"/>
<xsd:attribute name="etot_correlation" type="xsd:integer" use="optional"/>
</xsd:complexType>
<xsd:complexType name="XCLibXCNameType">
<xsd:attribute name="exchange" type="xsd:string" use="required"/>
<xsd:attribute name="correlation" type="xsd:string" use="required"/>
<xsd:attribute name="exchange" type="xsd:string" use="required"/>
<xsd:attribute name="correlation" type="xsd:string" use="required"/>
<xsd:attribute name="etot_exchange" type="xsd:string" use="optional"/>
<xsd:attribute name="etot_correlation" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="XCParamsType">
<xsd:attribute name="igrd" type="xsd:integer" use="required"/>
......
......@@ -1159,34 +1159,63 @@ unsigned char FleurInputSchema_xsd[] = {
0x43, 0x49, 0x44, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
0x22, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x20, 0x74,
0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74,
0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72,
0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74,
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65,
0x3d, 0x22, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64,
0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73,
0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22,
0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a,
0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e,
0x0a, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d,
0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d,
0x65, 0x3d, 0x22, 0x58, 0x43, 0x4c, 0x69, 0x62, 0x58, 0x43, 0x4e, 0x61,
0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72,
0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x20, 0x74, 0x79,
0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69,
0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71,
0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20,
0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72,
0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22,
0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0x22, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d,
0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72,
0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69,
0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x63, 0x6f,
0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73,
0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75,
0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64,
0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78,
0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x74, 0x6f, 0x74, 0x5f,
0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x20, 0x20, 0x20,
0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69,
0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d,
0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e,
0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a,
0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61,
0x6d, 0x65, 0x3d, 0x22, 0x65, 0x74, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x72,
0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x74, 0x79,
0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x69, 0x6e, 0x74, 0x65,
0x67, 0x65, 0x72, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70,
0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20,
0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c,
0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x3c,
0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x54,
0x79, 0x70, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x58, 0x43,
0x4c, 0x69, 0x62, 0x58, 0x43, 0x4e, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70,
0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78,
0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x78, 0x63, 0x68, 0x61,
0x6e, 0x67, 0x65, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22,
0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d,
0x65, 0x3d, 0x22, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70,
0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e,
0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22, 0x72, 0x65, 0x71, 0x75,
0x69, 0x72, 0x65, 0x64, 0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20,
0x20, 0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65,
0x74, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x22, 0x20, 0x20, 0x20, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78,
0x73, 0x64, 0x3a, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75,
0x73, 0x65, 0x3d, 0x22, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
0x22, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x78,
0x73, 0x64, 0x3a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x65, 0x74, 0x6f, 0x74, 0x5f,
0x63, 0x6f, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x78, 0x73, 0x64, 0x3a, 0x73,
0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x75, 0x73, 0x65, 0x3d, 0x22,
0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0x2f, 0x3e, 0x0a,
0x20, 0x20, 0x20, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d,
0x70, 0x6c, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x3e, 0x0a, 0x20, 0x20,
0x20, 0x3c, 0x78, 0x73, 0x64, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65,
......@@ -3572,4 +3601,4 @@ unsigned char FleurInputSchema_xsd[] = {
0x3e, 0x0a, 0x0a, 0x3c, 0x2f, 0x78, 0x73, 0x64, 0x3a, 0x73, 0x63, 0x68,
0x65, 0x6d, 0x61, 0x3e, 0x0a
};
unsigned int FleurInputSchema_xsd_len = 42857;
unsigned int FleurInputSchema_xsd_len = 43205;
......@@ -42,7 +42,7 @@ CONTAINS
CLASS(t_xcpot_libxc),INTENT(OUT) :: xcpot
INTEGER, INTENT(IN) :: jspins
INTEGER, INTENT(IN) :: vxc_id_x, vxc_id_c ! potential functional
INTEGER, INTENT(IN), OPTIONAL :: exc_id_x, exc_id_c ! energy functionals
INTEGER, INTENT(IN) :: exc_id_x, exc_id_c ! energy functionals
LOGICAL :: same_functionals ! are vxc and exc equal
#ifdef CPP_LIBXC
......@@ -52,14 +52,10 @@ CONTAINS
xcpot%func_vxc_id_x = vxc_id_x
xcpot%func_vxc_id_c = vxc_id_c
xcpot%func_exc_id_x = merge(exc_id_x, vxc_id_x, PRESENT(exc_id_x))
xcpot%func_exc_id_c = merge(exc_id_c, vxc_id_c, PRESENT(exc_id_c))
same_functionals = (xcpot%func_vxc_id_x == xcpot%func_exc_id_x) &
.and. (xcpot%func_vxc_id_c == xcpot%func_exc_id_c)
xcpot%func_exc_id_x = exc_id_x
xcpot%func_exc_id_c = exc_id_c
if(xcpot%func_vxc_id_x == 0 .or. xcpot%func_exc_id_x == 0 ) then
CALL judft_error("LibXC exchange- and correlation-function indicies need to be set"&
,hint='Try this: ' // ACHAR(10) //&
'<xcFunctional name="libxc" relativisticCorrections="F">' // ACHAR(10) //&
......@@ -93,6 +89,8 @@ CONTAINS
WRITE(*,*) "No Correlation functional"
END IF
same_functionals = (xcpot%func_vxc_id_x == xcpot%func_exc_id_x) &
.and. (xcpot%func_vxc_id_c == xcpot%func_exc_id_c)
IF(.not. same_functionals) THEN
CALL write_xc_info(xcpot%exc_func_x)
IF (xcpot%func_exc_id_c>0) THEN
......
......@@ -202,7 +202,7 @@ contains
!make some auxillary xcpot, that is not a GGA (we don't need gradients)
call aux_xcpot%init(input%jspins, id_exch, id_corr)
call aux_xcpot%init(input%jspins, id_exch, id_corr, id_exch, id_corr)
if(aux_xcpot%is_gga()) call juDFT_error("aux_xcpot must not be GGA", &
hint="choose id_corr and id_exch correctly")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment