Commit f7713d61 authored by Daniel Wortmann's avatar Daniel Wortmann

Merge branch 'develop' of iffgit.fz-juelich.de:fleur/fleur into develop

parents 7a9c2342 ef8fa644
This diff is collapsed.
......@@ -68,7 +68,6 @@ MODULE m_banddos_io
INTEGER :: hdfError, dimsInt(7)
INTEGER :: version
INTEGER :: fakeLogical
REAL :: eFermiPrev
LOGICAL :: l_error
......@@ -100,9 +99,7 @@ MODULE m_banddos_io
CALL h5gcreate_f(fileID, '/general', generalGroupID, hdfError)
CALL io_write_attint0(generalGroupID,'spins',input%jspins)
CALL io_write_attreal0(generalGroupID,'lastFermiEnergy',eFermiPrev)
fakeLogical = 0
IF (banddos%unfoldband) fakeLogical = 1
CALL io_write_attint0(generalGroupID,'bandUnfolding',fakeLogical)
CALL io_write_attlog0(generalGroupID,'bandUnfolding',banddos%unfoldband)
CALL h5gclose_f(generalGroupID, hdfError)
CALL h5gcreate_f(fileID, '/cell', cellGroupID, hdfError)
......@@ -249,6 +246,7 @@ MODULE m_banddos_io
INTEGER(HID_T) :: jsymSpaceID, jsymSetID
INTEGER(HID_T) :: ksymSpaceID, ksymSetID
INTEGER(HID_T) :: bUWeightsSpaceID, bUWeightsSetID
INTEGER(HID_T) :: supercellSpaceID, supercellSetID
INTEGER :: hdfError, dimsInt(7)
......@@ -306,6 +304,14 @@ MODULE m_banddos_io
IF (banddos%unfoldband) THEN
CALL h5gcreate_f(fileID, '/bandUnfolding', bandUnfoldingGroupID, hdfError)
dims(:1)=(/3/)
dimsInt = dims
CALL h5screate_simple_f(1,dims(:1),supercellSpaceID,hdfError)
CALL h5dcreate_f(bandUnfoldingGroupID, "supercell", H5T_NATIVE_INTEGER, supercellSpaceID, supercellSetID, hdfError)
CALL h5sclose_f(supercellSpaceID,hdfError)
CALL io_write_integer1(supercellSetID,(/1/),dimsInt(:1),(/banddos%s_cell_x,banddos%s_cell_y,banddos%s_cell_z/))
CALL h5dclose_f(supercellSetID, hdfError)
dims(:3)=(/neigd,kpts%nkpt,input%jspins/)
dimsInt = dims
CALL h5screate_simple_f(3,dims(:3),bUWeightsSpaceID,hdfError)
......
......@@ -8,7 +8,7 @@ MODULE m_writeBasis
CONTAINS
SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,results,eig_id,oneD)
SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,results,eig_id,oneD,sphhar,stars,vacuum)
USE m_types
USE m_juDFT
......@@ -17,7 +17,7 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
USE m_hdf_tools
#endif
USE m_genmtbasis
! USE m_cdn_io
USE m_pot_io
USE m_abcof
USE m_eig66_io, ONLY : read_eig
......@@ -26,8 +26,10 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
TYPE(t_dimension),INTENT(IN) :: DIMENSION
TYPE(t_enpara),INTENT(IN) :: enpara
! TYPE(t_banddos),INTENT(IN) :: banddos
! TYPE(t_sphhar),INTENT(IN) :: sphhar
! TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_sphhar),INTENT(IN) :: sphhar
TYPE(t_stars),INTENT(IN) :: stars
TYPE(t_vacuum),INTENT(IN) :: vacuum
TYPE(t_input),INTENT(IN) :: input
TYPE(t_noco),INTENT(IN) :: noco
......@@ -51,7 +53,7 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
LOGICAL :: l_exist
CHARACTER(LEN=30) :: filename
CHARACTER(LEN=30) :: kpt_name
CHARACTER(LEN=50) :: kpt_name
CHARACTER(LEN=30) :: jsp_name
CHARACTER(LEN=30) :: itype_name
! CHARACTER(LEN=30) :: l_name
......@@ -264,6 +266,14 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atomicNumbers)
CALL h5dclose_f(atomicNumbersSetID, hdfError)
dims(:1)=(/atoms%ntype/)
dimsInt=dims
CALL h5screate_simple_f(1,dims(:1),atomicNumbersSpaceID,hdfError)
CALL h5dcreate_f(atomsGroupID, "ztype", H5T_NATIVE_INTEGER, atomicNumbersSpaceID, atomicNumbersSetID, hdfError)
CALL h5sclose_f(atomicNumbersSpaceID,hdfError)
CALL io_write_integer1(atomicNumbersSetID,(/1/),dimsInt(:1),atoms%nz)
CALL h5dclose_f(atomicNumbersSetID, hdfError)
dims(:1)=(/atoms%nat/)
dimsInt=dims
CALL h5screate_simple_f(1,dims(:1),equivAtomsClassSpaceID,hdfError)
......@@ -304,8 +314,8 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
! DO nk = mpi%n_start,kpts%nkpt,mpi%n_stride
DO nk = 1,kpts%nkpt
CALL lapw%init(input,noco,kpts,atoms,sym,nk,cell,l_zref)
write(kpt_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/kpt_',nk
!write(kpt_name , '(2a,f12.10,a,f12.10,a,f12.10)') TRIM(ADJUSTL(jsp_name)),'_',kpts%bk(1,nk),',',kpts%bk(2,nk),',',kpts%bk(3,nk)
!write(kpt_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/kpt_',nk
write(kpt_name , '(2a,f12.10,a,f12.10,a,f12.10)') TRIM(ADJUSTL(jsp_name)),'/kpt_',kpts%bk(1,nk),',',kpts%bk(2,nk),',',kpts%bk(3,nk)
CALL h5gcreate_f(fileID, TRIM(ADJUSTL(kpt_name)), kptGroupID, hdfError)
!--------------------enter output gvec etc here--------------------
!lapw%gvec(3,nv,input%jspins)
......@@ -332,13 +342,13 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
dims(:3)=(/atoms%jmtd,2,atoms%lmaxd+1/)
dimsInt = dims
CALL h5screate_simple_f(3,dims(:3),itypeSpaceID,hdfError)
CALL h5dcreate_f(itypeGroupID, "radfun_u", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
CALL h5dcreate_f(itypeGroupID, "f", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
CALL h5sclose_f(itypeSpaceID,hdfError)
CALL io_write_real3(itypeSetID,(/1,1,1/),dimsInt(:3),f(:,:,0:,jsp))
CALL h5dclose_f(itypeSetID, hdfError)
CALL h5screate_simple_f(3,dims(:3),itypeSpaceID,hdfError)
CALL h5dcreate_f(itypeGroupID, "radfun_udot", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
CALL h5dcreate_f(itypeGroupID, "g", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
CALL h5sclose_f(itypeSpaceID,hdfError)
CALL io_write_real3(itypeSetID,(/1,1,1/),dimsInt(:3),g(:,:,0:,jsp))
CALL h5dclose_f(itypeSetID, hdfError)
......@@ -346,7 +356,7 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
dims(:3)=(/atoms%jmtd,2,atoms%nlod/)
dimsInt = dims
CALL h5screate_simple_f(3,dims(:3),itypeSpaceID,hdfError)
CALL h5dcreate_f(itypeGroupID, "radfun_ulo", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
CALL h5dcreate_f(itypeGroupID, "flo", H5T_NATIVE_DOUBLE, itypeSpaceID, itypeSetID, hdfError)
CALL h5sclose_f(itypeSpaceID,hdfError)
CALL io_write_real3(itypeSetID,(/1,1,1/),dimsInt(:3),flo(:,:,:))
CALL h5dclose_f(itypeSetID, hdfError)
......@@ -437,8 +447,8 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,r
! DO nk = mpi%n_start,kpts%nkpt,mpi%n_stride
DO nk = 1,kpts%nkpt
CALL lapw%init(input,noco,kpts,atoms,sym,nk,cell,l_zref)
write(kpt_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/kpt_',nk
!write(kpt_name , '(2a,f12.10,a,f12.10,a,f12.10)') TRIM(ADJUSTL(jsp_name)),'_',kpts%bk(1,nk),',',kpts%bk(2,nk),',',kpts%bk(3,nk)
!write(kpt_name , '(2a,i0)') TRIM(ADJUSTL(jsp_name)),'/kpt_',nk
write(kpt_name , '(2a,f12.10,a,f12.10,a,f12.10)') TRIM(ADJUSTL(jsp_name)),'/kpt_',kpts%bk(1,nk),',',kpts%bk(2,nk),',',kpts%bk(3,nk)
CALL h5gcreate_f(fileID, TRIM(ADJUSTL(kpt_name)), kptGroupID, hdfError)
!--------------------abcoff, zmat, eig output here-------------------
!,results%neig(nk,jsp),results%eig(:,nk,jsp)
......@@ -479,7 +489,8 @@ write(*,*)numbands,ndbands
CALL h5sclose_f(eigSpaceID,hdfError)
CALL io_write_real1(eigSetID,(/1/),dimsInt(:1),results%eig(:numbands,nk,jsp))
CALL h5dclose_f(eigSetID, hdfError)
CALL io_write_attint0(kptGroupID,'numbands',numbands)
IF (zMat%l_real) THEN
dims(:2)=(/nbasfcn,numbands/)
dimsInt=dims
......@@ -604,6 +615,11 @@ write(*,*)numbands,ndbands
CALL h5gclose_f(jspGroupID, hdfError)
END DO
CALL h5fclose_f(fileID, hdfError)
!-------------------------write potential--------------------
CALL writePotential(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,1,vTot%iter,vTot%mt,vTot%pw,vTot%vacz,vTot%vacxy)
CALL writePotential(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,2,vTot%iter,vTot%mt,vTot%pw,vTot%vacz,vTot%vacxy)
CALL writePotential(stars,vacuum,atoms,cell,sphhar,input,sym,oneD,3,vTot%iter,vTot%mt,vTot%pw,vTot%vacz,vTot%vacxy)
......
......@@ -523,6 +523,7 @@
<xsd:element name="kPointList" type="KPointListType"/>
<xsd:element name="kPointDensity" type="KPointDensityType"/>
</xsd:choice>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="altKPointSet" type="AltKPointSetType"/>
</xsd:sequence>
<xsd:attribute name="valenceElectrons" type="xsd:string" use="optional"/>
<xsd:attribute default="hist" name="mode" type="BZIntegrationModeEnum" use="optional"/>
......@@ -598,7 +599,20 @@
<xsd:attribute name="maxEnergy" type="xsd:string" use="required"/>
<xsd:attribute name="sigma" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="AltKPointSetType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="kPointMesh" type="KPointMeshType"/>
<xsd:element name="kPointCount" type="KPointCountType"/>
<xsd:element name="kPointList" type="KPointListType"/>
<xsd:element name="kPointDensity" type="KPointDensityType"/>
<xsd:element name="kPointListFile" type="KPointListFileType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="purpose" type="KPointSetPurposeEnum" use="required"/>
</xsd:complexType>
<xsd:complexType name="KPointMeshType">
<xsd:attribute name="nx" type="xsd:positiveInteger" use="required"/>
<xsd:attribute name="ny" type="xsd:positiveInteger" use="required"/>
......@@ -630,6 +644,10 @@
<xsd:attribute name="gamma" type="FleurBool" use="required"/>
</xsd:complexType>
<xsd:complexType name="KPointListFileType">
<xsd:attribute name="filename" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="SpecialPointType">
<xsd:simpleContent>
<xsd:extension base="String3DVecType">
......@@ -901,6 +919,13 @@
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="KPointSetPurposeEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="bands"/>
<xsd:enumeration value="GW"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NobleGasConfigEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="[He]"/>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -173,6 +173,7 @@ CONTAINS
!write(91,'(3f15.8)') kpts%bk
!write(92,*) kpts%wtkpt
ALLOCATE (kpts%sc_list(13,p_kpts%nkpt))
kpts%specialPointIndices(:) = p_kpts%specialPointIndices(:)
kpts%sc_list=list
!write(90,'(10f15.8)') kpts%sc_list
END SUBROUTINE find_supercell_kpts
......
......@@ -401,7 +401,7 @@ CONTAINS
CALL forcetheo%postprocess()
IF ((input%gw.GT.0).AND.(mpi%irank.EQ.0)) THEN
CALL writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,results,eig_id,oneD)
CALL writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,mpi,DIMENSION,results,eig_id,oneD,sphhar,stars,vacuum)
END IF
CALL enpara%mix(mpi,atoms,vacuum,input,vTot%mt(:,0,:,:),vtot%vacz)
......
......@@ -58,7 +58,7 @@ CONTAINS
! Local type instances
TYPE(t_potden) :: workDen,exc,veff
! Local Scalars
INTEGER ifftd,ifftd2,ifftxc3d,ispin
INTEGER ifftd,ifftd2,ifftxc3d,ispin,i
#ifdef CPP_MPI
include 'mpif.h'
integer:: ierr
......@@ -173,6 +173,13 @@ CONTAINS
exc%mt = exc%mt - xcpot%get_exchange_weight() * exc%mt
END IF
DO ispin = 1, input%jspins
DO i = 1, stars%ng3
vx%pw(i,ispin) = vx%pw(i,ispin) / stars%nstr(i)
vx%pw_w(i,ispin) = vx%pw_w(i,ispin) / stars%nstr(i)
END DO
END DO
results%te_veff = 0.0
DO ispin = 1, input%jspins
WRITE (6,FMT=8050) ispin
......
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